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.

688 lines
40 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_commissionRuleAdd] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. /*
  9. */
  10. CREATE proc [dbo].[proc_commissionRuleAdd]
  11. @flag VARCHAR(50) = NULL
  12. ,@user VARCHAR(30) = NULL
  13. ,@id INT = NULL
  14. ,@packageId INT = NULL
  15. ,@ruleId VARCHAR(100) = NULL
  16. ,@ruleType VARCHAR(10) = NULL
  17. ,@code VARCHAR(100) = NULL
  18. ,@sortBy VARCHAR(50) = NULL
  19. ,@sortOrder VARCHAR(5) = NULL
  20. ,@pageSize INT = NULL
  21. ,@pageNumber INT = NULL
  22. AS
  23. SET NOCOUNT ON
  24. SET XACT_ABORT ON
  25. BEGIN TRY
  26. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  27. DECLARE
  28. @sql VARCHAR(MAX)
  29. ,@oldValue VARCHAR(MAX)
  30. ,@newValue VARCHAR(MAX)
  31. ,@module VARCHAR(10)
  32. ,@tableAlias VARCHAR(100)
  33. ,@logIdentifier VARCHAR(50)
  34. ,@logParamMod VARCHAR(100)
  35. ,@logParamMain VARCHAR(100)
  36. ,@table VARCHAR(MAX)
  37. ,@select_field_list VARCHAR(MAX)
  38. ,@extra_field_list VARCHAR(MAX)
  39. ,@sql_filter VARCHAR(MAX)
  40. ,@modType VARCHAR(6)
  41. ,@errorMsg VARCHAR(MAX)
  42. ,@rulesId VARCHAR(MAX)
  43. DECLARE
  44. @selectFieldList VARCHAR(MAX)
  45. ,@extraFieldList VARCHAR(MAX)
  46. ,@sqlFilter VARCHAR(MAX)
  47. SELECT
  48. @logIdentifier = 'packageId'
  49. ,@logParamMain = 'commissionPackage'
  50. ,@logParamMod = 'commissionPackageHistory'
  51. ,@module = '20'
  52. ,@tableAlias = 'Commission Package'
  53. DECLARE @commissionRule TABLE(ruleId INT)
  54. DECLARE @commissionRuleNew TABLE(ruleId INT)
  55. DECLARE @found INT = 0
  56. DECLARE @ssAgent INT, @rsAgent INT,@sCountry INT, @rCountry INT,
  57. @sAgent INT, @sBranch INT, @sState INT, @sGroup INT, @rAgent INT, @rBranch INT,
  58. @rState INT, @rGroup INT, @tranType INT
  59. IF @flag = 'i'
  60. BEGIN
  61. SET @rulesId=@ruleId
  62. SET @ruleId=''
  63. IF @ruleType='ds'
  64. BEGIN
  65. --New Commission Rule Table From New PackageId
  66. INSERT @commissionRuleNew
  67. SELECT value FROM dbo.Split(',',@rulesId)
  68. --Old Commission Rule Table From Old PackageId assigned to Group
  69. INSERT @commissionRule
  70. SELECT DISTINCT ruleId FROM commissionPackage
  71. WHERE packageId = @packageId AND ISNULL(isDeleted, 'N') = 'N'
  72. AND ruleType= 'ds'
  73. WHILE EXISTS(SELECT 'X' FROM @commissionRuleNew)
  74. BEGIN
  75. SELECT TOP 1 @ruleId = ruleId FROM @commissionRuleNew
  76. SELECT
  77. @sAgent = sAgent
  78. ,@sBranch = sBranch
  79. ,@sState = sState
  80. ,@sGroup = sGroup
  81. ,@rAgent = rAgent
  82. ,@rBranch = rBranch
  83. ,@rState = rState
  84. ,@rGroup = rGroup
  85. ,@tranType = tranType
  86. FROM scMaster WITH(NOLOCK) WHERE scMasterId = @ruleId
  87. IF EXISTS(SELECT 'X' FROM scMaster WHERE
  88. ISNULL(sAgent, 0) = ISNULL(@sAgent, 0)
  89. AND ISNULL(sBranch, 0) = ISNULL(@sBranch, 0)
  90. AND ISNULL(sState, 0) = ISNULL(@sState, 0)
  91. AND ISNULL(sGroup, 0) = ISNULL(@sGroup, 0)
  92. AND ISNULL(rAgent, 0) = ISNULL(@rAgent, 0)
  93. AND ISNULL(rBranch, 0) = ISNULL(@rBranch, 0)
  94. AND ISNULL(rState, 0) = ISNULL(@rState, 0)
  95. AND ISNULL(rGroup, 0) = ISNULL(@rGroup, 0)
  96. AND ISNULL(tranType, 0) = ISNULL(@tranType, 0)
  97. AND ISNULL(isDeleted, 'N') = 'N'
  98. AND scMasterId IN (SELECT ruleId FROM @commissionRule))
  99. BEGIN
  100. SET @found = 1
  101. END
  102. DELETE FROM @commissionRuleNew WHERE ruleId = @ruleId
  103. END
  104. IF @found = 1
  105. BEGIN
  106. EXEC proc_errorHandler 1, 'This commission rule criteria which has already been defined in this package!', NULL
  107. RETURN
  108. END
  109. END
  110. IF @ruleType='sc'
  111. BEGIN
  112. --New Commission Rule Table From New PackageId
  113. INSERT @commissionRuleNew
  114. SELECT value FROM dbo.Split(',',@rulesId)
  115. --Old Commission Rule Table From Old PackageId assigned to Group
  116. INSERT @commissionRule
  117. SELECT DISTINCT ruleId FROM commissionPackage
  118. WHERE packageId = @packageId AND ISNULL(isDeleted, 'N') = 'N'
  119. AND ruleType= 'sc'
  120. WHILE EXISTS(SELECT 'X' FROM @commissionRuleNew)
  121. BEGIN
  122. SELECT TOP 1 @ruleId = ruleId FROM @commissionRuleNew
  123. SELECT
  124. @sCountry = sCountry
  125. ,@rCountry = rCountry
  126. ,@ssAgent = ssAgent
  127. ,@rsAgent = rsAgent
  128. ,@sAgent = sAgent
  129. ,@sBranch = sBranch
  130. ,@sState = State
  131. ,@sGroup = agentGroup
  132. ,@rAgent = rAgent
  133. ,@rBranch = rBranch
  134. ,@rState = rState
  135. ,@rGroup = rAgentGroup
  136. ,@tranType = tranType
  137. FROM sscMaster WITH(NOLOCK) WHERE sscMasterId = @ruleId
  138. IF EXISTS(SELECT 'X' FROM sscMaster WHERE
  139. ISNULL(sAgent, 0) = ISNULL(@sAgent, 0)
  140. AND ISNULL(sBranch, 0) = ISNULL(@sBranch, 0)
  141. AND ISNULL(State, 0) = ISNULL(@sState, 0)
  142. AND ISNULL(agentGroup, 0) = ISNULL(@sGroup, 0)
  143. AND ISNULL(rAgent, 0) = ISNULL(@rAgent, 0)
  144. AND ISNULL(rBranch, 0) = ISNULL(@rBranch, 0)
  145. AND ISNULL(rState, 0) = ISNULL(@rState, 0)
  146. AND ISNULL(rAgentGroup, 0) = ISNULL(@rGroup, 0)
  147. AND ISNULL(tranType, 0) = ISNULL(@tranType, 0)
  148. AND ISNULL(sCountry, 0) = ISNULL(@sCountry, 0)
  149. AND ISNULL(rCountry, 0) = ISNULL(@rCountry, 0)
  150. AND ISNULL(ssAgent, 0) = ISNULL(@ssAgent, 0)
  151. AND ISNULL(rsAgent, 0) = ISNULL(@rsAgent, 0)
  152. AND ISNULL(isDeleted, 'N') = 'N'
  153. AND sscMasterId IN (SELECT ruleId FROM @commissionRule))
  154. BEGIN
  155. SET @found = 1
  156. END
  157. DELETE FROM @commissionRuleNew WHERE ruleId = @ruleId
  158. END
  159. IF @found = 1
  160. BEGIN
  161. EXEC proc_errorHandler 1, 'This service charge setup criteria which has already been defined in this package!', NULL
  162. RETURN
  163. END
  164. END
  165. IF @ruleType='cp'
  166. BEGIN
  167. --New Commission Rule Table From New PackageId
  168. INSERT @commissionRuleNew
  169. SELECT value FROM dbo.Split(',',@rulesId)
  170. --Old Commission Rule Table From Old PackageId assigned to Group
  171. INSERT @commissionRule
  172. SELECT DISTINCT ruleId FROM commissionPackage
  173. WHERE packageId = @packageId AND ISNULL(isDeleted, 'N') = 'N'
  174. AND ruleType= 'cp'
  175. WHILE EXISTS(SELECT 'X' FROM @commissionRuleNew)
  176. BEGIN
  177. SELECT TOP 1 @ruleId = ruleId FROM @commissionRuleNew
  178. SELECT
  179. @sCountry = sCountry
  180. ,@rCountry = rCountry
  181. ,@ssAgent = ssAgent
  182. ,@rsAgent = rsAgent
  183. ,@sAgent = sAgent
  184. ,@sBranch = sBranch
  185. ,@sState = State
  186. ,@sGroup = agentGroup
  187. ,@rAgent = rAgent
  188. ,@rBranch = rBranch
  189. ,@rState = rState
  190. ,@rGroup = rAgentGroup
  191. ,@tranType = tranType
  192. FROM scPayMaster WITH(NOLOCK) WHERE scPayMasterId = @ruleId
  193. IF EXISTS(SELECT 'X' FROM scPayMaster WHERE
  194. ISNULL(sAgent, 0) = ISNULL(@sAgent, 0)
  195. AND ISNULL(sBranch, 0) = ISNULL(@sBranch, 0)
  196. AND ISNULL(State, 0) = ISNULL(@sState, 0)
  197. AND ISNULL(agentGroup, 0) = ISNULL(@sGroup, 0)
  198. AND ISNULL(rAgent, 0) = ISNULL(@rAgent, 0)
  199. AND ISNULL(rBranch, 0) = ISNULL(@rBranch, 0)
  200. AND ISNULL(rState, 0) = ISNULL(@rState, 0)
  201. AND ISNULL(rAgentGroup, 0) = ISNULL(@rGroup, 0)
  202. AND ISNULL(tranType, 0) = ISNULL(@tranType, 0)
  203. AND ISNULL(sCountry, 0) = ISNULL(@sCountry, 0)
  204. AND ISNULL(rCountry, 0) = ISNULL(@rCountry, 0)
  205. AND ISNULL(ssAgent, 0) = ISNULL(@ssAgent, 0)
  206. AND ISNULL(rsAgent, 0) = ISNULL(@rsAgent, 0)
  207. AND ISNULL(isDeleted, 'N') = 'N'
  208. AND scPayMasterId IN (SELECT ruleId FROM @commissionRule))
  209. BEGIN
  210. SET @found = 1
  211. END
  212. DELETE FROM @commissionRuleNew WHERE ruleId = @ruleId
  213. END
  214. IF @found = 1
  215. BEGIN
  216. EXEC proc_errorHandler 1, 'This pay commission setup criteria which has already been defined in this package!', NULL
  217. RETURN
  218. END
  219. END
  220. IF @ruleType='cs'
  221. BEGIN
  222. --New Commission Rule Table From New PackageId
  223. INSERT @commissionRuleNew
  224. SELECT value FROM dbo.Split(',',@rulesId)
  225. --Old Commission Rule Table From Old PackageId assigned to Group
  226. INSERT @commissionRule
  227. SELECT DISTINCT ruleId FROM commissionPackage
  228. WHERE packageId = @packageId AND ISNULL(isDeleted, 'N') = 'N'
  229. AND ruleType= 'cs'
  230. WHILE EXISTS(SELECT 'X' FROM @commissionRuleNew)
  231. BEGIN
  232. SELECT TOP 1 @ruleId = ruleId FROM @commissionRuleNew
  233. SELECT
  234. @sCountry = sCountry
  235. ,@rCountry = rCountry
  236. ,@ssAgent = ssAgent
  237. ,@rsAgent = rsAgent
  238. ,@sAgent = sAgent
  239. ,@sBranch = sBranch
  240. ,@sState = State
  241. ,@sGroup = agentGroup
  242. ,@rAgent = rAgent
  243. ,@rBranch = rBranch
  244. ,@rState = rState
  245. ,@rGroup = rAgentGroup
  246. ,@tranType = tranType
  247. FROM scSendMaster WITH(NOLOCK) WHERE scSendMasterId = @ruleId
  248. IF EXISTS(SELECT 'X' FROM scSendMaster WHERE
  249. ISNULL(sAgent, 0) = ISNULL(@sAgent, 0)
  250. AND ISNULL(sBranch, 0) = ISNULL(@sBranch, 0)
  251. AND ISNULL(State, 0) = ISNULL(@sState, 0)
  252. AND ISNULL(agentGroup, 0) = ISNULL(@sGroup, 0)
  253. AND ISNULL(rAgent, 0) = ISNULL(@rAgent, 0)
  254. AND ISNULL(rBranch, 0) = ISNULL(@rBranch, 0)
  255. AND ISNULL(rState, 0) = ISNULL(@rState, 0)
  256. AND ISNULL(rAgentGroup, 0) = ISNULL(@rGroup, 0)
  257. AND ISNULL(tranType, 0) = ISNULL(@tranType, 0)
  258. AND ISNULL(sCountry, 0) = ISNULL(@sCountry, 0)
  259. AND ISNULL(rCountry, 0) = ISNULL(@rCountry, 0)
  260. AND ISNULL(ssAgent, 0) = ISNULL(@ssAgent, 0)
  261. AND ISNULL(rsAgent, 0) = ISNULL(@rsAgent, 0)
  262. AND ISNULL(isDeleted, 'N') = 'N'
  263. AND scSendMasterId IN (SELECT ruleId FROM @commissionRule))
  264. BEGIN
  265. SET @found = 1
  266. END
  267. DELETE FROM @commissionRuleNew WHERE ruleId = @ruleId
  268. END
  269. IF @found = 1
  270. BEGIN
  271. EXEC proc_errorHandler 1, 'This send commission setup criteria which has already been defined in this package!', NULL
  272. RETURN
  273. END
  274. END
  275. BEGIN TRANSACTION
  276. INSERT INTO commissionPackageHistory(packageId, ruleId, ruleType, modType, createdBy, createdDate)
  277. SELECT @packageId,value,@ruleType,'I',@user,GETDATE() FROM dbo.Split(',',@rulesId)
  278. INSERT INTO commissionPackage
  279. (packageId,ruleId,ruleType,isActive,createdBy,createdDate)
  280. SELECT @packageId,value,@ruleType,NULL,@user,GETDATE() FROM dbo.Split(',',@rulesId)
  281. UPDATE mode SET
  282. mode.id = main.id
  283. FROM commissionPackageHistory mode
  284. INNER JOIN commissionPackage main ON mode.packageId = main.packageId AND mode.ruleId = main.ruleId AND mode.ruleType = main.ruleType
  285. WHERE mode.approvedBy IS NULL
  286. INSERT INTO #msg(errorCode, msg, id)
  287. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @Id, @user, @oldValue, @newValue
  288. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  289. BEGIN
  290. IF @@TRANCOUNT > 0
  291. ROLLBACK TRANSACTION
  292. EXEC proc_errorHandler 1, 'Failed to add new record.', @id
  293. RETURN
  294. END
  295. IF @@TRANCOUNT > 0
  296. COMMIT TRANSACTION
  297. EXEC proc_errorHandler 0, 'Record has been added successfully.', @id
  298. END
  299. ELSE IF @flag = 'SC'
  300. BEGIN
  301. IF @sortBy IS NULL
  302. SET @sortBy = 'createdDate'
  303. IF @sortOrder IS NULL
  304. SET @sortOrder = 'DESC'
  305. SET @table = '(
  306. SELECT
  307. sscMasterId
  308. ,code = ''<a href="CommissionView.aspx?ruleId= ''+ cast(sscMasterId as varchar) + ''&ruleType=sc">''+ code + ''</a>''
  309. ,description
  310. FROM sscMaster WITH (NOLOCK)
  311. WHERE ISNULL(isDeleted,''N'')<>''Y''
  312. AND ISNULL(isActive,''N'') = ''Y''
  313. AND sscMasterId NOT IN
  314. (
  315. SELECT ruleId FROM commissionPackage
  316. WHERE ruleType = ''SC'' AND ISNULL(isDeleted,''N'')<>''Y''
  317. --AND ISNULL(isActive,''N'') = ''Y''
  318. AND packageId = '''+CAST(@packageId AS VARCHAR)+'''
  319. )
  320. '
  321. SET @sqlFilter = ''
  322. IF @code IS NOT NULL
  323. SET @sqlFilter = @sqlFilter + ' AND code LIKE ''' + @code + '%'''
  324. SET @selectFieldList = '
  325. sscMasterId
  326. ,code
  327. ,description
  328. '
  329. SET @table = @table +') x '
  330. EXEC dbo.proc_paging
  331. @table
  332. ,@sqlFilter
  333. ,@selectFieldList
  334. ,@extraFieldList
  335. ,@sortBy
  336. ,@sortOrder
  337. ,@pageSize
  338. ,@pageNumber
  339. END
  340. ELSE IF @flag = 'CP'
  341. BEGIN
  342. IF @sortBy IS NULL
  343. SET @sortBy = 'createdDate'
  344. IF @sortOrder IS NULL
  345. SET @sortOrder = 'DESC'
  346. SET @table = '(
  347. SELECT
  348. scPayMasterId
  349. ,code = ''<a href="CommissionView.aspx?ruleId= ''+ cast(scPayMasterId as varchar) + ''&ruleType=cp">''+ code + ''</a>''
  350. ,description
  351. FROM scPayMaster WITH (NOLOCK)
  352. WHERE ISNULL(isDeleted,''N'')<>''Y''
  353. --AND ISNULL(isActive,''N'') = ''Y''
  354. AND scPayMasterId NOT IN
  355. (
  356. SELECT ruleId FROM commissionPackage
  357. WHERE ruleType = ''CP'' AND ISNULL(isDeleted,''N'')<>''Y''
  358. AND ISNULL(isActive,''N'') = ''Y''
  359. AND packageId = '''+CAST(@packageId AS VARCHAR)+'''
  360. )
  361. '
  362. SET @sqlFilter = ''
  363. IF @code IS NOT NULL
  364. SET @sqlFilter = @sqlFilter + ' AND code LIKE ''' + @code + '%'''
  365. SET @selectFieldList = '
  366. scPayMasterId
  367. ,code
  368. ,description
  369. '
  370. SET @table = @table +') x '
  371. EXEC dbo.proc_paging
  372. @table
  373. ,@sqlFilter
  374. ,@selectFieldList
  375. ,@extraFieldList
  376. ,@sortBy
  377. ,@sortOrder
  378. ,@pageSize
  379. ,@pageNumber
  380. END
  381. ELSE IF @flag = 'CS'
  382. BEGIN
  383. IF @sortBy IS NULL
  384. SET @sortBy = 'createdDate'
  385. IF @sortOrder IS NULL
  386. SET @sortOrder = 'DESC'
  387. SET @table = '(
  388. SELECT
  389. scSendMasterId
  390. ,code = ''<a href="CommissionView.aspx?ruleId= ''+ cast(scSendMasterId as varchar) + ''&ruleType=cs">''+ code + ''</a>''
  391. ,description
  392. FROM scSendMaster WITH (NOLOCK)
  393. WHERE ISNULL(isDeleted,''N'')<>''Y''
  394. --AND ISNULL(isActive,''N'') = ''Y''
  395. AND scSendMasterId NOT IN
  396. (
  397. SELECT ruleId FROM commissionPackage
  398. WHERE ruleType = ''CS'' AND ISNULL(isDeleted,''N'')<>''Y''
  399. AND ISNULL(isActive,''N'') = ''Y''
  400. AND packageId = '''+CAST(@packageId AS VARCHAR)+'''
  401. )
  402. '
  403. SET @sqlFilter = ''
  404. IF @code IS NOT NULL
  405. SET @sqlFilter = @sqlFilter + ' AND code LIKE ''' + @code + '%'''
  406. SET @selectFieldList = '
  407. scSendMasterId
  408. ,code
  409. ,description
  410. '
  411. SET @table = @table +') x '
  412. EXEC dbo.proc_paging
  413. @table
  414. ,@sqlFilter
  415. ,@selectFieldList
  416. ,@extraFieldList
  417. ,@sortBy
  418. ,@sortOrder
  419. ,@pageSize
  420. ,@pageNumber
  421. END
  422. ELSE IF @flag = 'DS'
  423. BEGIN
  424. IF @sortBy IS NULL
  425. SET @sortBy = 'createdDate'
  426. IF @sortOrder IS NULL
  427. SET @sortOrder = 'DESC'
  428. SET @table = '(
  429. SELECT
  430. scMasterId
  431. ,code = ''<a href="CommissionView.aspx?ruleId= ''+ cast(scMasterId as varchar) + ''&ruleType=ds">''+ code + ''</a>''
  432. ,description
  433. FROM scMaster WITH (NOLOCK)
  434. WHERE ISNULL(isDeleted,''N'')<>''Y''
  435. AND ISNULL(isActive,''N'') = ''Y''
  436. AND scMasterId NOT IN
  437. (
  438. SELECT ruleId FROM commissionPackage
  439. WHERE ruleType = ''DS''
  440. AND ISNULL(isDeleted,''N'')<>''Y''
  441. --AND ISNULL(isActive,''N'') = ''Y''
  442. AND packageId = '''+CAST(@packageId AS VARCHAR)+'''
  443. )
  444. '
  445. SET @sqlFilter = ''
  446. IF @code IS NOT NULL
  447. SET @sqlFilter = @sqlFilter + ' AND code LIKE ''' + @code + '%'''
  448. SET @selectFieldList = '
  449. scMasterId
  450. ,code
  451. ,description
  452. '
  453. SET @table = @table +') x '
  454. EXEC dbo.proc_paging
  455. @table
  456. ,@sqlFilter
  457. ,@selectFieldList
  458. ,@extraFieldList
  459. ,@sortBy
  460. ,@sortOrder
  461. ,@pageSize
  462. ,@pageNumber
  463. END
  464. ---------PRINT @table
  465. ELSE IF @flag = 'reject'
  466. BEGIN
  467. IF NOT EXISTS (
  468. SELECT 'X' FROM commissionPackage WITH(NOLOCK)
  469. WHERE packageId = @packageId
  470. )
  471. AND
  472. NOT EXISTS (
  473. SELECT 'X' FROM commissionPackage WITH(NOLOCK)
  474. WHERE packageId = @packageId AND approvedBy IS NULL
  475. )
  476. BEGIN
  477. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @packageId
  478. RETURN
  479. END
  480. DECLARE @ruleTable TABLE(id INT)
  481. DECLARE @modType2 VARCHAR(20)
  482. INSERT @ruleTable
  483. SELECT id FROM commissionPackageHistory WHERE packageId = @packageId AND approvedBy IS NULL
  484. BEGIN TRANSACTION
  485. WHILE EXISTS(SELECT 'X' FROM @ruleTable)
  486. BEGIN
  487. SELECT TOP 1 @id = id FROM @ruleTable
  488. SELECT @modType = modType FROM commissionPackageHistory WHERE id = @id
  489. IF @modType = 'I'
  490. BEGIN --New record
  491. SET @modType2 = 'Reject'
  492. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @id, @newValue OUTPUT
  493. INSERT INTO #msg(errorCode, msg, id)
  494. EXEC proc_applicationLogs 'i', NULL, @modType2, @tableAlias, @id, @user, @oldValue, @newValue
  495. DELETE FROM commissionPackage WHERE packageId = @packageId AND approvedBy IS NULL
  496. DELETE FROM commissionPackageHistory WHERE packageId = @packageId AND approvedBy IS NULL
  497. END
  498. ELSE IF @modType = 'D'
  499. BEGIN
  500. SET @modType2 = 'Reject'
  501. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @id, @oldValue OUTPUT
  502. INSERT INTO #msg(errorCode, msg, id)
  503. EXEC proc_applicationLogs 'i', NULL, @modType2, @tableAlias, @id, @user, @oldValue, @newValue
  504. DELETE FROM commissionPackageHistory WHERE packageId = @packageId AND approvedBy IS NULL
  505. END
  506. DELETE FROM @ruleTable WHERE id = @id
  507. END
  508. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  509. BEGIN
  510. IF @@TRANCOUNT > 0
  511. ROLLBACK TRANSACTION
  512. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @packageId
  513. RETURN
  514. END
  515. IF @@TRANCOUNT > 0
  516. COMMIT TRANSACTION
  517. EXEC proc_errorHandler 0, 'Changes rejected successfully.', @packageId
  518. END
  519. ELSE IF @flag = 'approve'
  520. BEGIN
  521. IF NOT EXISTS (
  522. SELECT 'X' FROM commissionPackage WITH(NOLOCK)
  523. WHERE packageId = @packageId
  524. )
  525. AND
  526. NOT EXISTS (
  527. SELECT 'X' FROM commissionPackage WITH(NOLOCK)
  528. WHERE packageId = @packageId AND approvedBy IS NULL
  529. )
  530. BEGIN
  531. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @packageId
  532. RETURN
  533. END
  534. BEGIN TRANSACTION
  535. DECLARE @newCriteriaValue VARCHAR(MAX)
  536. INSERT @ruleTable
  537. SELECT id FROM commissionPackageHistory WHERE packageId = @packageId AND approvedBy IS NULL
  538. WHILE EXISTS(SELECT 'X' FROM @ruleTable)
  539. BEGIN
  540. SELECT TOP 1 @id = id FROM @ruleTable
  541. SELECT @modType = modType FROM commissionPackageHistory WHERE id = @id
  542. IF @modType = 'I'
  543. BEGIN --New record
  544. UPDATE commissionPackage SET
  545. isActive = 'Y'
  546. ,approvedBy = @user
  547. ,approvedDate= GETDATE()
  548. WHERE id = @id
  549. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @id, @newValue OUTPUT
  550. END
  551. ELSE IF @modType = 'D'
  552. BEGIN
  553. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @id, @oldValue OUTPUT
  554. UPDATE commissionPackage SET
  555. isDeleted = 'Y'
  556. ,modifiedBy = @user
  557. ,modifiedDate = GETDATE()
  558. WHERE id = @id
  559. END
  560. DELETE FROM @ruleTable WHERE id = @id
  561. INSERT INTO #msg(errorCode, msg, id)
  562. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @id, @user, @oldValue, @newValue
  563. END
  564. UPDATE commissionPackage SET
  565. isActive = 'Y'
  566. ,approvedBy = @user
  567. ,approvedDate = GETDATE()
  568. WHERE packageId = @packageId AND approvedBy IS NULL
  569. UPDATE commissionPackageHistory SET
  570. approvedBy = @user
  571. ,approvedDate = GETDATE()
  572. WHERE packageId = @packageId AND approvedBy IS NULL
  573. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  574. BEGIN
  575. IF @@TRANCOUNT > 0
  576. ROLLBACK TRANSACTION
  577. EXEC proc_errorHandler 1, 'Could not approve the changes.', @packageId
  578. RETURN
  579. END
  580. IF @@TRANCOUNT > 0
  581. COMMIT TRANSACTION
  582. EXEC proc_errorHandler 0, 'Changes approved successfully.', @packageId
  583. END
  584. END TRY
  585. BEGIN CATCH
  586. IF @@TRANCOUNT > 0
  587. ROLLBACK TRANSACTION
  588. SELECT 1 error_code, ERROR_MESSAGE() mes, null id
  589. END CATCH
  590. GO