You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1146 lines
34 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_csMaster] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_csMaster]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_csMaster] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. CREATE PROC [dbo].[proc_csMaster]
  12. @flag VARCHAR(50) = NULL
  13. ,@user VARCHAR(30) = NULL
  14. ,@csMasterId VARCHAR(30) = NULL
  15. ,@sCountry INT = NULL
  16. ,@sAgent INT = NULL
  17. ,@sState INT = NULL
  18. ,@sZip INT = NULL
  19. ,@sGroup INT = NULL
  20. ,@sCustType INT = NULL
  21. ,@rCountry INT = NULL
  22. ,@rAgent INT = NULL
  23. ,@rState INT = NULL
  24. ,@rZip INT = NULL
  25. ,@rGroup INT = NULL
  26. ,@rCustType INT = NULL
  27. ,@currency INT = NULL
  28. ,@ruleScope VARCHAR(5) = NULL
  29. ,@isEnable CHAR(1) = NULL
  30. ,@sortBy VARCHAR(50) = NULL
  31. ,@sortOrder VARCHAR(5) = NULL
  32. ,@pageSize INT = NULL
  33. ,@pageNumber INT = NULL
  34. AS
  35. SET NOCOUNT ON
  36. SET XACT_ABORT ON
  37. BEGIN TRY
  38. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  39. DECLARE
  40. @sql VARCHAR(MAX)
  41. ,@oldValue VARCHAR(MAX)
  42. ,@newValue VARCHAR(MAX)
  43. ,@module VARCHAR(10)
  44. ,@tableAlias VARCHAR(100)
  45. ,@logIdentifier VARCHAR(50)
  46. ,@logParamMod VARCHAR(100)
  47. ,@logParamMain VARCHAR(100)
  48. ,@table VARCHAR(MAX)
  49. ,@select_field_list VARCHAR(MAX)
  50. ,@extra_field_list VARCHAR(MAX)
  51. ,@sql_filter VARCHAR(MAX)
  52. ,@id VARCHAR(10)
  53. ,@modType VARCHAR(6)
  54. ,@ApprovedFunctionId INT
  55. SELECT
  56. @ApprovedFunctionId = 2019025
  57. ,@logIdentifier = 'csMasterId'
  58. ,@logParamMain = 'csMaster'
  59. ,@logParamMod = 'csMasterHistory'
  60. ,@module = '20'
  61. ,@tableAlias = 'Compliance Setup'
  62. DECLARE @DetailIdList TABLE(detailId BIGINT, modType VARCHAR(10))
  63. DECLARE @detailId BIGINT
  64. IF @flag = 'i'
  65. BEGIN
  66. IF EXISTS(
  67. SELECT 'x' FROM csMaster
  68. WHERE ISNULL(sCountry, 0) = ISNULL(@sCountry, 0)
  69. AND ISNULL(sAgent, 0) = ISNULL(@sAgent, 0)
  70. AND ISNULL(sState, 0) = ISNULL(@sState, 0)
  71. AND ISNULL(sZip, 0) = ISNULL(@sZip, 0)
  72. AND ISNULL(sGroup, 0) = ISNULL(@sGroup, 0)
  73. AND ISNULL(sCustType, 0) = ISNULL(@sCustType, 0)
  74. AND ISNULL(rCountry, 0) = ISNULL(@sCountry, 0)
  75. AND ISNULL(rAgent, 0) = ISNULL(@sAgent, 0)
  76. AND ISNULL(rState, 0) = ISNULL(@sState, 0)
  77. AND ISNULL(rZip, 0) = ISNULL(@sZip, 0)
  78. AND ISNULL(rGroup, 0) = ISNULL(@sGroup, 0)
  79. AND ISNULL(rCustType, 0) = ISNULL(@sCustType, 0)
  80. AND ISNULL(ruleScope,0) = ISNULL(@ruleScope,0)
  81. AND ISNULL(isDeleted,'N')<>'Y')
  82. BEGIN
  83. EXEC proc_errorHandler 1, 'Record already exist.', @csMasterId
  84. RETURN
  85. END
  86. BEGIN TRANSACTION
  87. INSERT INTO csMaster (
  88. sCountry
  89. ,sAgent
  90. ,sState
  91. ,sZip
  92. ,sGroup
  93. ,sCustType
  94. ,rCountry
  95. ,rAgent
  96. ,rState
  97. ,rZip
  98. ,rGroup
  99. ,rCustType
  100. ,currency
  101. ,isEnable
  102. ,createdBy
  103. ,createdDate
  104. ,ruleScope
  105. )
  106. SELECT
  107. @sCountry
  108. ,@sAgent
  109. ,@sState
  110. ,@sZip
  111. ,@sGroup
  112. ,@sCustType
  113. ,@rCountry
  114. ,@rAgent
  115. ,@rState
  116. ,@rZip
  117. ,@rGroup
  118. ,@rCustType
  119. ,@currency
  120. ,'Y'
  121. ,@user
  122. ,GETDATE()
  123. ,@ruleScope
  124. SET @csMasterId = SCOPE_IDENTITY()
  125. IF @@TRANCOUNT > 0
  126. COMMIT TRANSACTION
  127. EXEC proc_errorHandler 0, 'Record has been added successfully.', @csMasterId
  128. END
  129. ELSE IF @flag = 'a'
  130. BEGIN
  131. IF EXISTS (
  132. SELECT 'X' FROM csMasterHistory WITH(NOLOCK)
  133. WHERE csMasterId = @csMasterId AND createdBy = @user AND approvedBy IS NULL
  134. )
  135. BEGIN
  136. SELECT
  137. mode.*
  138. FROM csMasterHistory mode WITH(NOLOCK)
  139. INNER JOIN csMaster main WITH(NOLOCK) ON mode.csMasterId = main.csMasterId
  140. WHERE mode.csMasterId= @csMasterId AND mode.approvedBy IS NULL
  141. END
  142. ELSE
  143. BEGIN
  144. SELECT * FROM csMaster WITH(NOLOCK) WHERE csMasterId = @csMasterId
  145. END
  146. END
  147. ELSE IF @flag = 'rd'
  148. BEGIN
  149. SELECT
  150. sCountry = ISNULL(scm.countryName, 'All')
  151. ,sAgent = ISNULL(sam.agentName, 'All')
  152. ,sState = ISNULL(ss.stateName, 'All')
  153. ,sZip
  154. ,sGroup = ISNULL(sg.detailTitle, 'All')
  155. ,sCustType = ISNULL(sct.detailTitle, 'All')
  156. ,rCountry = ISNULL(rcm.countryName, 'All')
  157. ,rAgent = ISNULL(ram.agentName, 'All')
  158. ,rState = ISNULL(rs.stateName, 'All')
  159. ,rZip
  160. ,rGroup = ISNULL(rg.detailTitle, 'All')
  161. ,rCustType = ISNULL(rct.detailTitle, 'All')
  162. ,currency = currency
  163. ,ruleScope = ISNULL(ruleScope,'send')
  164. FROM csMaster cm WITH(NOLOCK)
  165. LEFT JOIN countryMaster scm WITH(NOLOCK) ON cm.sCountry = scm.countryId
  166. LEFT JOIN agentMaster sam WITH(NOLOCK) ON cm.sAgent = sam.agentId
  167. LEFT JOIN countryStateMaster ss WITH(NOLOCK) ON cm.sState = ss.stateId
  168. LEFT JOIN staticDataValue sg WITH(NOLOCK) ON cm.sGroup = sg.valueId
  169. LEFT JOIN staticDataValue sct WITH(NOLOCK) ON cm.sCustType = sct.valueId
  170. LEFT JOIN countryMaster rcm WITH(NOLOCK) ON cm.rCountry = rcm.countryId
  171. LEFT JOIN agentMaster ram WITH(NOLOCK) ON cm.rAgent = ram.agentId
  172. LEFT JOIN countryStateMaster rs WITH(NOLOCK) ON cm.rState = rs.stateId
  173. LEFT JOIN staticDataValue rg WITH(NOLOCK) ON cm.rGroup = rg.valueId
  174. LEFT JOIN staticDataValue rct WITH(NOLOCK) ON cm.rCustType = rct.valueId
  175. WHERE csMasterId = @csMasterId
  176. END
  177. ELSE IF @flag = 'u'
  178. BEGIN
  179. IF EXISTS (
  180. SELECT 'X' FROM csMaster WITH(NOLOCK)
  181. WHERE csMasterId = @csMasterId AND ( createdBy <> @user AND approvedBy IS NULL)
  182. )
  183. BEGIN
  184. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @csMasterId
  185. RETURN
  186. END
  187. IF EXISTS (
  188. SELECT 'X' FROM csMasterHistory WITH(NOLOCK)
  189. WHERE csMasterId = @csMasterId AND (createdBy<> @user OR modType = 'D') AND approvedBy IS NULL
  190. )
  191. BEGIN
  192. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @csMasterId
  193. RETURN
  194. END
  195. IF EXISTS(
  196. SELECT 'x' FROM csMaster
  197. WHERE ISNULL(sCountry, 0) = ISNULL(@sCountry, 0)
  198. AND ISNULL(sAgent, 0) = ISNULL(@sAgent, 0)
  199. AND ISNULL(sState, 0) = ISNULL(@sState, 0)
  200. AND ISNULL(sZip, 0) = ISNULL(@sZip, 0)
  201. AND ISNULL(sGroup, 0) = ISNULL(@sGroup, 0)
  202. AND ISNULL(sCustType, 0) = ISNULL(@sCustType, 0)
  203. AND ISNULL(rCountry, 0) = ISNULL(@sCountry, 0)
  204. AND ISNULL(rAgent, 0) = ISNULL(@sAgent, 0)
  205. AND ISNULL(rState, 0) = ISNULL(@sState, 0)
  206. AND ISNULL(rZip, 0) = ISNULL(@sZip, 0)
  207. AND ISNULL(rGroup, 0) = ISNULL(@sGroup, 0)
  208. AND ISNULL(rCustType, 0) = ISNULL(@sCustType, 0)
  209. AND ISNULL(isDeleted,'N')<>'Y'
  210. AND ISNULL(ruleScope,0) = ISNULL(@ruleScope,0)
  211. AND csMasterId <> @csMasterId)
  212. BEGIN
  213. EXEC proc_errorHandler 1, 'Record already exist.', @csMasterId
  214. RETURN
  215. END
  216. BEGIN TRANSACTION
  217. IF EXISTS (SELECT 'X' FROM csMaster WHERE approvedBy IS NULL AND csMasterId = @csMasterId)
  218. BEGIN
  219. UPDATE csMaster SET
  220. sCountry = @sCountry
  221. ,sAgent = @sAgent
  222. ,sState = @sState
  223. ,sZip = @sZip
  224. ,sGroup = @sGroup
  225. ,sCustType = @sCustType
  226. ,rCountry = @rCountry
  227. ,rAgent = @rAgent
  228. ,rState = @rState
  229. ,rZip = @rZip
  230. ,rGroup = @rGroup
  231. ,rCustType = @rCustType
  232. ,currency = @currency
  233. ,modifiedBy = @user
  234. ,modifiedDate = GETDATE()
  235. ,ruleScope = @ruleScope
  236. WHERE csMasterId = @csMasterId
  237. END
  238. ELSE
  239. BEGIN
  240. DELETE FROM csMasterHistory WHERE csMasterId = @csMasterId AND approvedBy IS NULL
  241. INSERT INTO csMasterHistory(
  242. csMasterId
  243. ,sCountry
  244. ,sAgent
  245. ,sState
  246. ,sZip
  247. ,sGroup
  248. ,sCustType
  249. ,rCountry
  250. ,rAgent
  251. ,rState
  252. ,rZip
  253. ,rGroup
  254. ,rCustType
  255. ,currency
  256. ,isEnable
  257. ,createdBy
  258. ,createdDate
  259. ,modType
  260. ,ruleScope
  261. )
  262. SELECT
  263. @csMasterId
  264. ,@sCountry
  265. ,@sAgent
  266. ,@sState
  267. ,@sZip
  268. ,@sGroup
  269. ,@sCustType
  270. ,@rCountry
  271. ,@rAgent
  272. ,@rState
  273. ,@rZip
  274. ,@rGroup
  275. ,@rCustType
  276. ,@currency
  277. ,@isEnable
  278. ,@user
  279. ,GETDATE()
  280. ,'U'
  281. ,@ruleScope
  282. END
  283. IF @@TRANCOUNT > 0
  284. COMMIT TRANSACTION
  285. EXEC proc_errorHandler 0, 'Record updated successfully.', @csMasterId
  286. END
  287. ELSE IF @flag = 'd'
  288. BEGIN
  289. IF EXISTS (
  290. SELECT 'X' FROM csMaster WITH(NOLOCK)
  291. WHERE csMasterId = @csMasterId AND (createdBy <> @user AND approvedBy IS NULL)
  292. )
  293. BEGIN
  294. EXEC proc_errorHandler 1, '<center>You can not delete this record. <br /> You are trying to perform an illegal operation.</center>', @csMasterId
  295. RETURN
  296. END
  297. IF EXISTS (
  298. SELECT 'X' FROM csMasterHistory WITH(NOLOCK)
  299. WHERE csMasterId = @csMasterId AND approvedBy IS NULL
  300. )
  301. BEGIN
  302. EXEC proc_errorHandler 1, '<center>You can not delete this record. <br /> Previous modification has not been approved yet.</center>', @csMasterId
  303. RETURN
  304. END
  305. INSERT INTO csMasterHistory(
  306. csMasterId
  307. ,sCountry
  308. ,sAgent
  309. ,sState
  310. ,sZip
  311. ,sGroup
  312. ,sCustType
  313. ,rCountry
  314. ,rAgent
  315. ,rState
  316. ,rZip
  317. ,rGroup
  318. ,rCustType
  319. ,currency
  320. ,isEnable
  321. ,createdBy
  322. ,createdDate
  323. ,modType
  324. ,ruleScope
  325. )
  326. SELECT
  327. csMasterId
  328. ,sCountry
  329. ,sAgent
  330. ,sState
  331. ,sZip
  332. ,sGroup
  333. ,sCustType
  334. ,rCountry
  335. ,rAgent
  336. ,rState
  337. ,rZip
  338. ,rGroup
  339. ,rCustType
  340. ,currency
  341. ,isEnable
  342. ,@user
  343. ,GETDATE()
  344. ,'D'
  345. ,ruleScope
  346. FROM csMaster WHERE csMasterId = @csMasterId
  347. EXEC proc_errorHandler 0, 'Record deleted successfully.', @csMasterId
  348. END
  349. ELSE IF @flag = 'm'
  350. BEGIN
  351. DECLARE
  352. @m VARCHAR(MAX)
  353. ,@d VARCHAR(MAX)
  354. SET @m = '(
  355. SELECT
  356. csMasterId = ISNULL(mode.csMasterId, main.csMasterId)
  357. ,sCountry = ISNULL(mode.sCountry, main.sCountry)
  358. ,sAgent = ISNULL(mode.sAgent, main.sAgent)
  359. ,sState = ISNULL(mode.sState, main.sState)
  360. ,sZip = ISNULL(mode.sZip, main.sZip)
  361. ,sGroup = ISNULL(mode.sGroup, main.sGroup)
  362. ,sCustType = ISNULL(mode.sCustType, main.sCustType)
  363. ,rCountry = ISNULL(mode.rCountry, main.rCountry)
  364. ,rAgent = ISNULL(mode.rAgent, main.rAgent)
  365. ,rState = ISNULL(mode.rState, main.rState)
  366. ,rZip = ISNULL(mode.rZip, main.rZip)
  367. ,rGroup = ISNULL(mode.rGroup, main.rGroup)
  368. ,rCustType = ISNULL(mode.rCustType, main.rCustType)
  369. ,currency = ISNULL(mode.currency, main.currency)
  370. ,isDisabled=CASE WHEN ISNULL(ISNULL(mode.isEnable, main.isEnable),''n'')=''y'' then ''Enabled'' else ''Disabled'' END
  371. ,modifiedBy = CASE WHEN main.approvedBy IS NULL THEN main.createdBy ELSE mode.createdBy END
  372. ,modifiedDate = CASE WHEN main.approvedBy IS NULL THEN main.createdDate ELSE mode.createdDate END
  373. ,hasChanged = CASE WHEN (main.approvedBy IS NULL) OR
  374. (mode.csMasterId IS NOT NULL)
  375. THEN ''Y'' ELSE ''N'' END
  376. ,ruleScope = ISNULL(mode.ruleScope,main.ruleScope)
  377. FROM csMaster main WITH(NOLOCK)
  378. LEFT JOIN csMasterHistory mode ON main.csMasterId = mode.csMasterId AND mode.approvedBy IS NULL
  379. AND (
  380. mode.createdBy = ''' + @user + '''
  381. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  382. )
  383. WHERE ISNULL(main.isDeleted, ''N'') <> ''Y''
  384. AND (
  385. main.approvedBy IS NOT NULL
  386. OR main.createdBy = ''' + @user + '''
  387. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  388. )
  389. ) '
  390. SET @d = '(
  391. SELECT
  392. csDetailId = main.csDetailId
  393. ,csMasterId = main.csMasterId
  394. ,tranCount = ISNULL(mode.tranCount, main.tranCount)
  395. ,amount = ISNULL(mode.amount, main.amount)
  396. ,nextAction = ISNULL(mode.nextAction, main.nextAction)
  397. ,modifiedBy = CASE WHEN main.approvedBy IS NULL THEN main.createdBy ELSE mode.createdBy END
  398. ,modifiedDate = CASE WHEN main.approvedBy IS NULL THEN main.createdDate ELSE mode.createdDate END
  399. ,hasChanged = CASE WHEN (main.approvedBy IS NULL) OR
  400. (mode.csDetailId IS NOT NULL)
  401. THEN ''Y'' ELSE ''N'' END
  402. FROM csDetail main WITH(NOLOCK)
  403. LEFT JOIN csDetailHistory mode ON main.csDetailId = mode.csDetailId AND mode.approvedBy IS NULL
  404. AND (
  405. mode.createdBy = ''' + @user + '''
  406. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  407. )
  408. WHERE ISNULL(main.isDeleted, ''N'') <> ''Y''
  409. AND (
  410. main.approvedBy IS NOT NULL
  411. OR main.createdBy = ''' + @user + '''
  412. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  413. )
  414. ) '
  415. SET @table = '
  416. (
  417. SELECT
  418. m.csMasterId
  419. ,m.sCountry
  420. ,sCountryName = ISNULL(sc.countryName, ''All'')
  421. ,m.sAgent
  422. ,sAgentName = ISNULL(sa.agentName, ''All'')
  423. ,m.sState
  424. ,sStateName = ISNULL(ss.stateName, ''All'')
  425. ,m.sZip
  426. ,sGroup = sg.detailTitle
  427. ,m.sCustType
  428. ,m.rCountry
  429. ,rCountryName = ISNULL(rc.countryName, ''All'')
  430. ,m.rAgent
  431. ,rAgentName = ISNULL(ra.agentName, ''All'')
  432. ,m.rState
  433. ,rStateName = ISNULL(rs.stateName, ''All'')
  434. ,m.rZip
  435. ,rGroup = rg.detailTitle
  436. ,m.rCustType
  437. ,m.currency
  438. ,m.isDisabled
  439. ,modifiedBy = MAX(ISNULL(m.modifiedBy, d.modifiedBy))
  440. ,hasChanged = MAX(CASE WHEN m.hasChanged = ''Y'' OR d.hasChanged = ''Y'' THEN ''Y'' ELSE ''N'' END)
  441. ,m.ruleScope
  442. FROM ' + @m + ' m
  443. LEFT JOIN ' + @d + ' d ON m.csMasterId = d.csMasterId
  444. LEFT JOIN countryMaster sc WITH(NOLOCK) ON m.sCountry = sc.countryId
  445. LEFT JOIN agentMaster sa WITH(NOLOCK) ON m.sAgent = sa.agentId
  446. LEFT JOIN countryStateMaster ss WITH(NOLOCK) ON m.sState = ss.stateId
  447. LEFT JOIN staticDataValue sct WITH(NOLOCK) ON m.rCustType = sct.valueId
  448. LEFT JOIN staticDataValue sg WITH(NOLOCK) ON m.sGroup = sg.valueId
  449. LEFT JOIN countryMaster rc WITH(NOLOCK) ON m.rCountry = rc.countryId
  450. LEFT JOIN agentMaster ra WITH(NOLOCK) ON m.rAgent = ra.agentId
  451. LEFT JOIN countryStateMaster rs WITH(NOLOCK) ON m.rState = rs.stateId
  452. LEFT JOIN staticDataValue rct WITH(NOLOCK) ON m.rCustType = rct.valueId
  453. LEFT JOIN staticDataValue rg WITH(NOLOCK) ON m.rGroup = rg.valueId
  454. GROUP BY
  455. m.csMasterId
  456. ,sCountry
  457. ,sc.countryName
  458. ,sAgent
  459. ,sa.agentName
  460. ,sState
  461. ,ss.stateName
  462. ,sZip
  463. ,m.sGroup
  464. ,sg.detailTitle
  465. ,sCustType
  466. ,rCountry
  467. ,rc.countryName
  468. ,rAgent
  469. ,ra.agentName
  470. ,rState
  471. ,rs.stateName
  472. ,rZip
  473. ,m.rGroup
  474. ,rg.detailTitle
  475. ,rCustType
  476. ,currency
  477. ,isDisabled
  478. --,m.modifiedBy
  479. --,d.modifiedBy
  480. ,ruleScope
  481. ) x
  482. '
  483. print @table
  484. --
  485. SET @sql_filter = ' '
  486. IF @sCountry IS NOT NULL
  487. SET @sql_filter = @sql_filter + ' AND sCountry = ' + CAST(@sCountry AS VARCHAR(50))
  488. IF @sAgent IS NOT NULL
  489. SET @sql_filter = @sql_filter + ' AND sAgent = ' + CAST(@sAgent AS VARCHAR(50))
  490. IF @sState IS NOT NULL
  491. SET @sql_filter = @sql_filter + ' AND sState = ' + CAST(@sState AS VARCHAR(50))
  492. IF @sZip IS NOT NULL
  493. SET @sql_filter = @sql_filter + ' AND sZip = ' + CAST(@sZip AS VARCHAR(50))
  494. IF @sGroup IS NOT NULL
  495. SET @sql_filter = @sql_filter + ' AND sGroup = ' + CAST(@sGroup AS VARCHAR(50))
  496. IF @sCustType IS NOT NULL
  497. SET @sql_filter = @sql_filter + ' AND sCustType = ' + CAST(@sCustType AS VARCHAR(50))
  498. IF @rCountry IS NOT NULL
  499. SET @sql_filter = @sql_filter + ' AND rCountry = ' + CAST(@rCountry AS VARCHAR(50))
  500. IF @rAgent IS NOT NULL
  501. SET @sql_filter = @sql_filter + ' AND rAgent = ' + CAST(@rAgent AS VARCHAR(50))
  502. IF @rState IS NOT NULL
  503. SET @sql_filter = @sql_filter + ' AND rState = ' + CAST(@rState AS VARCHAR(50))
  504. IF @rZip IS NOT NULL
  505. SET @sql_filter = @sql_filter + ' AND rZip = ' + CAST(@rZip AS VARCHAR(50))
  506. IF @rGroup IS NOT NULL
  507. SET @sql_filter = @sql_filter + ' AND rGroup = ' + CAST(@rGroup AS VARCHAR(50))
  508. IF @rCustType IS NOT NULL
  509. SET @sql_filter = @sql_filter + ' AND rCustType = ' + CAST(@rCustType AS VARCHAR(50))
  510. IF @currency IS NOT NULL
  511. SET @sql_filter = @sql_filter + ' AND currency = ' + CAST(@currency AS VARCHAR(50))
  512. /*
  513. sHub = @sHub
  514. AND sCountry = @sCountry
  515. AND sAgent = @sAgent
  516. AND sState = @sState
  517. AND sZip = @sZip
  518. AND sGroup = @sGroup
  519. AND sCustType = @sCustType
  520. AND rHub = @rHub
  521. AND rCountry = @sCountry
  522. AND rAgent = @sAgent
  523. AND rState = @sState
  524. AND rZip = @sZip
  525. AND rGroup = @sGroup
  526. AND rCustType = @sCustType
  527. AND currency = @currency
  528. */
  529. SET @select_field_list = '
  530. csMasterId
  531. ,sCountry
  532. ,sCountryName
  533. ,sAgent
  534. ,sAgentName
  535. ,sState
  536. ,sStateName
  537. ,sZip
  538. ,sGroup
  539. ,sCustType
  540. ,rCountry
  541. ,rCountryName
  542. ,rAgent
  543. ,rAgentName
  544. ,rState
  545. ,rStateName
  546. ,rZip
  547. ,rGroup
  548. ,rCustType
  549. ,currency
  550. ,isDisabled
  551. ,modifiedBy
  552. ,hasChanged
  553. ,ruleScope
  554. '
  555. SET @extra_field_list = ''
  556. IF @sortBy IS NULL
  557. SET @sortBy = 'csMasterId'
  558. IF @sortOrder IS NULL
  559. SET @sortOrder = 'ASC'
  560. EXEC dbo.proc_paging
  561. @table
  562. ,@sql_filter
  563. ,@select_field_list
  564. ,@extra_field_list
  565. ,@sortBy
  566. ,@sortOrder
  567. ,@pageSize
  568. ,@pageNumber
  569. END
  570. ELSE IF @flag IN ('reject', 'rejectAll')
  571. BEGIN
  572. IF NOT EXISTS (
  573. SELECT 'X' FROM csMaster WITH(NOLOCK)
  574. WHERE csMasterId = @csMasterId
  575. )
  576. AND
  577. NOT EXISTS (
  578. SELECT 'X' FROM csMaster WITH(NOLOCK)
  579. WHERE csMasterId = @csMasterId AND approvedBy IS NULL
  580. )
  581. BEGIN
  582. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @csMasterId
  583. RETURN
  584. END
  585. IF EXISTS (SELECT 'X' FROM csMaster WHERE approvedBy IS NULL AND csMasterId = @csMasterId)
  586. BEGIN --New record
  587. BEGIN TRANSACTION
  588. SET @modType = 'Reject'
  589. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @csMasterId, @oldValue OUTPUT
  590. INSERT INTO #msg(errorCode, msg, id)
  591. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @csMasterId, @user, @oldValue, @newValue
  592. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  593. BEGIN
  594. IF @@TRANCOUNT > 0
  595. ROLLBACK TRANSACTION
  596. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @csMasterId
  597. RETURN
  598. END
  599. DELETE FROM csMaster WHERE csMasterId = @csMasterId
  600. IF @@TRANCOUNT > 0
  601. COMMIT TRANSACTION
  602. END
  603. ELSE
  604. BEGIN
  605. BEGIN TRANSACTION
  606. SET @modType = 'Reject'
  607. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @csMasterId, @oldValue OUTPUT
  608. INSERT INTO #msg(errorCode, msg, id)
  609. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @csMasterId, @user, @oldValue, @newValue
  610. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  611. BEGIN
  612. IF @@TRANCOUNT > 0
  613. ROLLBACK TRANSACTION
  614. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @csMasterId
  615. RETURN
  616. END
  617. DELETE FROM csMasterHistory WHERE csMasterId = @csMasterId AND approvedBy IS NULL
  618. END
  619. IF @flag = 'rejectAll'
  620. BEGIN
  621. INSERT @DetailIdList
  622. SELECT
  623. csDetailId, 'I'
  624. FROM csDetail
  625. WHERE
  626. csMasterId = @csMasterId
  627. AND approvedBy IS NULL
  628. INSERT @DetailIdList
  629. SELECT
  630. mode.csDetailId, mode.modType
  631. FROM csDetailHistory mode WITH(NOLOCK)
  632. INNER JOIN csDetail main WITH(NOLOCK) ON mode.csDetailId = main.csDetailId
  633. WHERE
  634. main.csMasterId = @csMasterId
  635. AND mode.approvedBy IS NULL
  636. SELECT
  637. @logIdentifier = 'csDetailId'
  638. ,@logParamMain = 'csDetail'
  639. ,@logParamMod = 'csDetailHistory'
  640. ,@module = '20'
  641. ,@tableAlias = 'Compliance Rule Setup Detail'
  642. WHILE EXISTS(SELECT 'X' FROM @DetailIdList)
  643. BEGIN
  644. SELECT TOP 1 @detailId = detailId, @ModType = modType FROM @DetailIdList
  645. IF EXISTS (SELECT 'X' FROM csDetail WHERE approvedBy IS NULL AND csDetailId = @detailId )
  646. SET @modType = 'I'
  647. ELSE
  648. SELECT @modType = modType FROM csDetailHistory WHERE csDetailId = @detailId AND approvedBy IS NULL
  649. IF @modType = 'I'
  650. BEGIN --New record
  651. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @detailId, @oldValue OUTPUT
  652. INSERT INTO #msg(errorCode, msg, id)
  653. EXEC proc_applicationLogs 'i', NULL, 'Reject', @tableAlias, @detailId, @user, @oldValue, @newValue
  654. DELETE FROM csDetail WHERE csDetailId = @detailId
  655. DELETE FROM csCriteriaHistory WHERE csDetailId = @detailId AND approvedBy IS NULL
  656. END
  657. ELSE
  658. BEGIN
  659. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @detailId, @oldValue OUTPUT
  660. INSERT INTO #msg(errorCode, msg, id)
  661. EXEC proc_applicationLogs 'i', NULL, 'Reject', @tableAlias, @detailId, @user, @oldValue, @newValue
  662. DELETE FROM csDetailHistory WHERE csDetailId = @detailId AND approvedBy IS NULL
  663. DELETE FROM csCriteriaHistory WHERE csDetailId = @detailId AND approvedBy IS NULL
  664. END
  665. DELETE FROM @DetailIdList WHERE detailId = @detailId
  666. END
  667. END
  668. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  669. BEGIN
  670. IF @@TRANCOUNT > 0
  671. ROLLBACK TRANSACTION
  672. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @detailId
  673. RETURN
  674. END
  675. IF @@TRANCOUNT > 0
  676. COMMIT TRANSACTION
  677. EXEC proc_errorHandler 0, 'Changes rejected successfully.', @csMasterId
  678. END
  679. ELSE IF @flag IN ('approve','approveAll')
  680. BEGIN
  681. IF NOT EXISTS (
  682. SELECT 'X' FROM csMaster WITH(NOLOCK)
  683. WHERE csMasterId = @csMasterId
  684. )
  685. AND
  686. NOT EXISTS (
  687. SELECT 'X' FROM csMaster WITH(NOLOCK)
  688. WHERE csMasterId = @csMasterId AND approvedBy IS NULL
  689. )
  690. BEGIN
  691. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @csMasterId
  692. RETURN
  693. END
  694. BEGIN TRANSACTION
  695. IF EXISTS (SELECT 'X' FROM csMaster WHERE approvedBy IS NULL AND csMasterId = @csMasterId )
  696. SET @modType = 'I'
  697. ELSE
  698. SELECT @modType = modType FROM csMasterHistory WHERE csMasterId = @csMasterId AND approvedBy IS NULL
  699. IF @modType = 'I'
  700. BEGIN --New record
  701. UPDATE csMaster SET
  702. isActive = 'Y'
  703. ,isEnable = 'Y'
  704. ,approvedBy = @user
  705. ,approvedDate= GETDATE()
  706. WHERE csMasterId = @csMasterId
  707. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @csMasterId, @newValue OUTPUT
  708. END
  709. ELSE IF @modType = 'U'
  710. BEGIN
  711. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @csMasterId, @oldValue OUTPUT
  712. UPDATE main SET
  713. main.sCountry = mode.sCountry
  714. ,main.sAgent = mode.sAgent
  715. ,main.sState = mode.sState
  716. ,main.sZip = mode.sZip
  717. ,main.sGroup = mode.sGroup
  718. ,main.sCustType = mode.sCustType
  719. ,main.rCountry = mode.rCountry
  720. ,main.rAgent = mode.rAgent
  721. ,main.rState = mode.rState
  722. ,main.rZip = mode.rZip
  723. ,main.rGroup = mode.rGroup
  724. ,main.rCustType = mode.rCustType
  725. ,main.currency = mode.currency
  726. ,main.modifiedDate = GETDATE()
  727. ,main.modifiedBy = @user
  728. ,main.ruleScope = mode.ruleScope
  729. FROM csMaster main
  730. INNER JOIN csMasterHistory mode ON mode.csMasterId = main.csMasterId
  731. WHERE mode.csMasterId = @csMasterId AND mode.approvedBy IS NULL
  732. EXEC [dbo].proc_GetColumnToRow 'csMaster', 'csMasterId', @csMasterId, @newValue OUTPUT
  733. END
  734. ELSE IF @modType = 'D'
  735. BEGIN
  736. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @csMasterId, @oldValue OUTPUT
  737. UPDATE csMaster SET
  738. isDeleted = 'Y'
  739. ,modifiedDate = GETDATE()
  740. ,modifiedBy = @user
  741. WHERE csMasterId = @csMasterId
  742. END
  743. UPDATE csMasterHistory SET
  744. approvedBy = @user
  745. ,approvedDate = GETDATE()
  746. WHERE csMasterId = @csMasterId AND approvedBy IS NULL
  747. INSERT INTO #msg(errorCode, msg, id)
  748. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @csMasterId, @user, @oldValue, @newValue
  749. IF @flag = 'approveAll'
  750. BEGIN
  751. INSERT @DetailIdList
  752. SELECT
  753. csDetailId, 'I'
  754. FROM csDetail
  755. WHERE
  756. csMasterId = @csMasterId
  757. AND approvedBy IS NULL
  758. INSERT @DetailIdList
  759. SELECT
  760. ddh.csDetailId, ddh.modType
  761. FROM csDetailHistory ddh WITH(NOLOCK)
  762. INNER JOIN csDetail dd WITH(NOLOCK) ON ddh.csDetailId = dd.csDetailId
  763. WHERE
  764. dd.csMasterId = @csMasterId
  765. AND ddh.approvedBy IS NULL
  766. SELECT
  767. @logIdentifier = 'csDetailId'
  768. ,@logParamMain = 'csDetail'
  769. ,@logParamMod = 'csDetailHistory'
  770. ,@module = '20'
  771. ,@tableAlias = 'Compliance Rule Setup Detail'
  772. DECLARE @newCriteriaValue VARCHAR(MAX)
  773. WHILE EXISTS(SELECT 'X' FROM @DetailIdList)
  774. BEGIN
  775. SELECT TOP 1 @detailId = detailId, @ModType = modType FROM @DetailIdList
  776. IF EXISTS (SELECT 'X' FROM csDetail WHERE approvedBy IS NULL AND csDetailId = @detailId )
  777. SET @modType = 'I'
  778. ELSE
  779. SELECT @modType = modType FROM csDetailHistory WHERE csDetailId = @detailId AND approvedBy IS NULL
  780. IF @modType = 'I'
  781. BEGIN --New record
  782. UPDATE csDetail SET
  783. isActive = 'Y'
  784. ,isEnable = 'Y'
  785. ,approvedBy = @user
  786. ,approvedDate= GETDATE()
  787. WHERE csDetailId = @detailId
  788. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @detailId, @newValue OUTPUT
  789. SELECT
  790. @newCriteriaValue = ISNULL(@newValue + ',', '') + CAST(criteriaId AS VARCHAR(50))
  791. FROM csCriteriaHistory
  792. WHERE csDetailId = @detailId AND approvedBy IS NULL
  793. EXEC [dbo].proc_GetColumnToRow 'csCriteria', 'csDetailId', @detailId, @oldValue OUTPUT
  794. DELETE FROM csCriteria WHERE csDetailId = @detailId
  795. INSERT csCriteria(criteriaId, csDetailId, createdBy, createdDate)
  796. SELECT criteriaId, @detailId, @user, GETDATE() FROM csCriteriaHistory WHERE csDetailId = @detailId AND approvedBy IS NULL
  797. DECLARE @tranCount INT, @amount MONEY
  798. SELECT @tranCount = ISNULL(tranCount, 0), @amount = ISNULL(amount, 0) FROM csDetail cd WITH(NOLOCK)
  799. LEFT JOIN csCriteriaHistory cch WITH(NOLOCK) ON cd.csDetailId = cch.csDetailId AND cch.approvedBy IS NULL
  800. WHERE cd.csDetailId = @detailId
  801. IF ISNULL(@amount, 0) <> 0
  802. BEGIN
  803. INSERT INTO csDetailRec(
  804. csMasterId
  805. ,csDetailId
  806. ,condition
  807. ,collMode
  808. ,paymentMode
  809. ,checkType
  810. ,parameter
  811. ,period
  812. ,criteria
  813. ,nextAction
  814. ,isEnable
  815. ,createdBy
  816. ,createdDate
  817. )
  818. SELECT
  819. csMasterId
  820. ,cd.csDetailId
  821. ,condition
  822. ,collMode
  823. ,paymentMode
  824. ,'Sum'
  825. ,amount
  826. ,period
  827. ,cch.criteriaId
  828. ,cd.nextAction
  829. ,'Y'
  830. ,@user
  831. ,GETDATE()
  832. FROM csDetail cd WITH(NOLOCK)
  833. LEFT JOIN csCriteriaHistory cch WITH(NOLOCK) ON cd.csDetailId = cch.csDetailId AND cch.approvedBy IS NULL
  834. WHERE cd.csDetailId = @detailId
  835. END
  836. IF ISNULL(@tranCount, 0) <> 0
  837. BEGIN
  838. INSERT INTO csDetailRec(
  839. csMasterId
  840. ,csDetailId
  841. ,condition
  842. ,collMode
  843. ,paymentMode
  844. ,checkType
  845. ,parameter
  846. ,period
  847. ,criteria
  848. ,nextAction
  849. ,isEnable
  850. ,createdBy
  851. ,createdDate
  852. )
  853. SELECT
  854. csMasterId
  855. ,cd.csDetailId
  856. ,condition
  857. ,collMode
  858. ,paymentMode
  859. ,'Count'
  860. ,tranCount
  861. ,period
  862. ,cch.criteriaId
  863. ,cd.nextAction
  864. ,'Y'
  865. ,@user
  866. ,GETDATE()
  867. FROM csDetail cd WITH(NOLOCK)
  868. LEFT JOIN csCriteriaHistory cch WITH(NOLOCK) ON cd.csDetailId = cch.csDetailId AND cch.approvedBy IS NULL
  869. WHERE cd.csDetailId = @detailId
  870. END
  871. INSERT INTO #msg(errorCode, msg, id)
  872. EXEC proc_applicationLogs 'i', NULL, 'update', 'Compliance Rule Criteria', @detailId, @user, @oldValue, @newCriteriaValue
  873. END
  874. ELSE IF @modType = 'U'
  875. BEGIN
  876. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @detailId, @oldValue OUTPUT
  877. UPDATE main SET
  878. main.condition = mode.condition
  879. ,main.collMode = mode.collMode
  880. ,main.paymentMode = mode.paymentMode
  881. ,main.tranCount = mode.tranCount
  882. ,main.amount = mode.amount
  883. ,main.period = mode.period
  884. ,main.nextAction = mode.nextAction
  885. ,main.modifiedDate = GETDATE()
  886. ,main.modifiedBy = @user
  887. FROM csDetail main
  888. INNER JOIN csDetailHistory mode ON mode.csDetailId = main.csDetailId
  889. WHERE mode.csDetailId = @detailId AND mode.approvedBy IS NULL
  890. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @detailId, @newValue OUTPUT
  891. SELECT
  892. @newCriteriaValue = ISNULL(@newValue + ',', '') + CAST(criteriaId AS VARCHAR(50))
  893. FROM csCriteriaHistory
  894. WHERE csDetailId = @detailId AND approvedBy IS NULL
  895. EXEC [dbo].proc_GetColumnToRow 'csCriteria', 'csDetailId', @detailId, @oldValue OUTPUT
  896. DELETE FROM csCriteria WHERE csDetailId = @detailId
  897. INSERT csCriteria(criteriaId, csDetailId, createdBy, createdDate)
  898. SELECT criteriaId, @detailId, @user, GETDATE() FROM csCriteriaHistory WHERE csDetailId = @detailId AND approvedBy IS NULL
  899. SELECT @tranCount = ISNULL(tranCount, 0), @amount = ISNULL(amount, 0) FROM csDetail cd WITH(NOLOCK)
  900. LEFT JOIN csCriteriaHistory cch WITH(NOLOCK) ON cd.csDetailId = cch.csDetailId AND cch.approvedBy IS NULL
  901. WHERE cd.csDetailId = @detailId
  902. UPDATE csDetailRec SET
  903. isEnable = 'N'
  904. WHERE csDetailId = @detailId
  905. IF ISNULL(@amount, 0) <> 0
  906. BEGIN
  907. INSERT INTO csDetailRec(
  908. csMasterId
  909. ,csDetailId
  910. ,condition
  911. ,collMode
  912. ,paymentMode
  913. ,checkType
  914. ,parameter
  915. ,period
  916. ,criteria
  917. ,isEnable
  918. ,createdBy
  919. ,createdDate
  920. )
  921. SELECT
  922. csMasterId
  923. ,cd.csDetailId
  924. ,condition
  925. ,collMode
  926. ,paymentMode
  927. ,'Sum'
  928. ,amount
  929. ,period
  930. ,cch.criteriaId
  931. ,'Y'
  932. ,@user
  933. ,GETDATE()
  934. FROM csDetail cd WITH(NOLOCK)
  935. LEFT JOIN csCriteriaHistory cch WITH(NOLOCK) ON cd.csDetailId = cch.csDetailId AND cch.approvedBy IS NULL
  936. WHERE cd.csDetailId = @detailId
  937. END
  938. IF ISNULL(@tranCount, 0) <> 0
  939. BEGIN
  940. INSERT INTO csDetailRec(
  941. csMasterId
  942. ,csDetailId
  943. ,condition
  944. ,collMode
  945. ,paymentMode
  946. ,checkType
  947. ,parameter
  948. ,period
  949. ,criteria
  950. ,isEnable
  951. ,createdBy
  952. ,createdDate
  953. )
  954. SELECT
  955. csMasterId
  956. ,cd.csDetailId
  957. ,condition
  958. ,collMode
  959. ,paymentMode
  960. ,'Count'
  961. ,tranCount
  962. ,period
  963. ,cch.criteriaId
  964. ,'Y'
  965. ,@user
  966. ,GETDATE()
  967. FROM csDetail cd WITH(NOLOCK)
  968. LEFT JOIN csCriteriaHistory cch WITH(NOLOCK) ON cd.csDetailId = cch.csDetailId AND cch.approvedBy IS NULL
  969. WHERE cd.csDetailId = @detailId
  970. END
  971. INSERT INTO #msg(errorCode, msg, id)
  972. EXEC proc_applicationLogs 'i', NULL, 'update', 'Compliance Rule Criteria', @detailId, @user, @oldValue, @newCriteriaValue
  973. END
  974. ELSE IF @modType = 'D'
  975. BEGIN
  976. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @detailId, @oldValue OUTPUT
  977. UPDATE csDetail SET
  978. isDeleted = 'Y'
  979. ,modifiedDate = GETDATE()
  980. ,modifiedBy = @user
  981. WHERE csDetailId = @detailId
  982. DELETE FROM csCriteria WHERE csDetailId = @detailId
  983. END
  984. UPDATE csDetailHistory SET
  985. approvedBy = @user
  986. ,approvedDate = GETDATE()
  987. WHERE csDetailId = @detailId AND approvedBy IS NULL
  988. UPDATE csCriteriaHistory SET
  989. approvedBy = @user
  990. ,approvedDate = GETDATE()
  991. WHERE csDetailId = @detailId AND approvedBy IS NULL
  992. INSERT INTO #msg(errorCode, msg, id)
  993. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @detailId, @user, @oldValue, @newValue
  994. DELETE FROM @DetailIdList WHERE detailId = @detailId
  995. END
  996. END
  997. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  998. BEGIN
  999. IF @@TRANCOUNT > 0
  1000. ROLLBACK TRANSACTION
  1001. EXEC proc_errorHandler 1, 'Could not approve the changes.', @csMasterId
  1002. RETURN
  1003. END
  1004. IF @@TRANCOUNT > 0
  1005. COMMIT TRANSACTION
  1006. EXEC proc_errorHandler 0, 'All Changes approved successfully.', @csMasterId
  1007. END
  1008. ELSE IF @flag = 'disable'
  1009. BEGIN
  1010. --n--enable
  1011. --y --disable
  1012. IF (SELECT isnull(isEnable,'n') FROM csMaster WHERE csMasterId = @csMasterId)='n'
  1013. BEGIN
  1014. UPDATE csMaster SET isEnable='y' WHERE csMasterId = @csMasterId
  1015. EXEC proc_errorHandler 0, 'Record enabled successfully.', @csMasterId
  1016. return;
  1017. END
  1018. ELSE
  1019. BEGIN
  1020. UPDATE csMaster SET isEnable='n' WHERE csMasterId = @csMasterId
  1021. EXEC proc_errorHandler 0, 'Record disabled successfully.', @csMasterId
  1022. RETURN;
  1023. END
  1024. IF (SELECT isnull(isEnable,'n') FROM csMasterHistory WHERE csMasterId = @csMasterId)='n'
  1025. BEGIN
  1026. UPDATE csMasterHistory SET isEnable='y' WHERE csMasterId = @csMasterId
  1027. EXEC proc_errorHandler 0, 'Record enabled successfully.', @csMasterId
  1028. RETURN;
  1029. END
  1030. ELSE
  1031. BEGIN
  1032. UPDATE csMasterHistory SET isEnable='n' WHERE csMasterId = @csMasterId
  1033. EXEC proc_errorHandler 0, 'Record disabled successfully.', @csMasterId
  1034. RETURN;
  1035. END
  1036. END
  1037. ELSE IF @flag = 'ruleScope'
  1038. BEGIN
  1039. --SELECT NULL [0], 'Select' [1] UNION ALL
  1040. SELECT
  1041. [0] = 'Send'
  1042. ,[1] = 'Send'
  1043. UNION ALL
  1044. SELECT
  1045. [0] = 'Pay'
  1046. ,[1] = 'Pay'
  1047. END
  1048. END TRY
  1049. BEGIN CATCH
  1050. IF @@TRANCOUNT > 0
  1051. ROLLBACK TRANSACTION
  1052. DECLARE @errorMessage VARCHAR(MAX)
  1053. SET @errorMessage = ERROR_MESSAGE()
  1054. EXEC proc_errorHandler 1, @errorMessage, @csMasterId
  1055. END CATCH
  1056. GO