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.

800 lines
52 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_dcPayMasterSA] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE proc [dbo].[proc_dcPayMasterSA]
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(30) = NULL
  11. ,@dcPayMasterSAId VARCHAR(30) = NULL
  12. ,@code VARCHAR(100) = NULL
  13. ,@description VARCHAR(200) = NULL
  14. ,@sCountry INT = NULL
  15. ,@rCountry INT = NULL
  16. ,@baseCurrency VARCHAR(3) = NULL
  17. ,@tranType INT = NULL
  18. ,@commissionBase INT = NULL
  19. ,@commissionCurrency VARCHAR(3) = NULL
  20. ,@isEnable CHAR(1) = NULL
  21. ,@hasChanged CHAR(1) = NULL
  22. ,@sortBy VARCHAR(50) = NULL
  23. ,@sortOrder VARCHAR(5) = NULL
  24. ,@pageSize INT = NULL
  25. ,@pageNumber INT = NULL
  26. AS
  27. SET NOCOUNT ON
  28. SET XACT_ABORT ON
  29. BEGIN TRY
  30. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  31. DECLARE
  32. @sql VARCHAR(MAX)
  33. ,@oldValue VARCHAR(MAX)
  34. ,@newValue VARCHAR(MAX)
  35. ,@module VARCHAR(10)
  36. ,@tableAlias VARCHAR(100)
  37. ,@logIdentifier VARCHAR(50)
  38. ,@logParamMod VARCHAR(100)
  39. ,@logParamMain VARCHAR(100)
  40. ,@table VARCHAR(MAX)
  41. ,@select_field_list VARCHAR(MAX)
  42. ,@extra_field_list VARCHAR(MAX)
  43. ,@sql_filter VARCHAR(MAX)
  44. ,@id VARCHAR(10)
  45. ,@modType VARCHAR(6)
  46. ,@ApprovedFunctionId INT
  47. SELECT
  48. @ApprovedFunctionId = 20191230
  49. ,@logIdentifier = 'dcPayMasterSAId'
  50. ,@logParamMain = 'dcPayMasterSA'
  51. ,@logParamMod = 'dcPayMasterSAHistory'
  52. ,@module = '20'
  53. ,@tableAlias = 'Super Agent Default Paying Commission'
  54. DECLARE @DetailIdList TABLE(detailId BIGINT, modType VARCHAR(10))
  55. DECLARE @detailId BIGINT
  56. IF @flag = 'i'
  57. BEGIN
  58. IF EXISTS(SELECT 'x' FROM dcPayMasterSA WHERE
  59. ISNULL(sCountry, 0) = ISNULL(@sCountry, 0) AND
  60. ISNULL(rCountry, 0) = ISNULL(@rCountry, 0) AND
  61. ISNULL(tranType, 0) = ISNULL(tranType, 0) AND
  62. baseCurrency = @baseCurrency AND
  63. commissionCurrency = @commissionCurrency AND
  64. ISNULL(isDeleted,'N')<>'Y')
  65. BEGIN
  66. EXEC proc_errorHandler 1, 'Record already exist.', @dcPayMasterSAId
  67. RETURN
  68. END
  69. BEGIN TRANSACTION
  70. INSERT INTO dcPayMasterSA (
  71. code
  72. ,[description]
  73. ,sCountry
  74. ,rCountry
  75. ,baseCurrency
  76. ,tranType
  77. ,commissionBase
  78. ,commissionCurrency
  79. ,isEnable
  80. ,createdBy
  81. ,createdDate
  82. )
  83. SELECT
  84. @code
  85. ,@description
  86. ,@sCountry
  87. ,@rCountry
  88. ,@baseCurrency
  89. ,@tranType
  90. ,@commissionBase
  91. ,@commissionCurrency
  92. ,@isEnable
  93. ,@user
  94. ,GETDATE()
  95. SET @dcPayMasterSAId = SCOPE_IDENTITY()
  96. IF @@TRANCOUNT > 0
  97. COMMIT TRANSACTION
  98. EXEC proc_errorHandler 0, 'Record has been added successfully.', @dcPayMasterSAId
  99. END
  100. ELSE IF @flag = 'a'
  101. BEGIN
  102. IF EXISTS (
  103. SELECT 'X' FROM dcPayMasterSAHistory WITH(NOLOCK)
  104. WHERE dcPayMasterSAId = @dcPayMasterSAId AND createdBy = @user AND approvedBy IS NULL
  105. )
  106. BEGIN
  107. SELECT
  108. mode.*
  109. FROM dcPayMasterSAHistory mode WITH(NOLOCK)
  110. INNER JOIN dcPayMasterSA main WITH(NOLOCK) ON mode.dcPayMasterSAId = main.dcPayMasterSAId
  111. WHERE mode.dcPayMasterSAId= @dcPayMasterSAId AND mode.approvedBy IS NULL
  112. END
  113. ELSE
  114. BEGIN
  115. SELECT * FROM dcPayMasterSA WITH(NOLOCK) WHERE dcPayMasterSAId = @dcPayMasterSAId
  116. END
  117. END
  118. ELSE IF @flag = 'u'
  119. BEGIN
  120. IF EXISTS (
  121. SELECT 'X' FROM dcPayMasterSA WITH(NOLOCK)
  122. WHERE dcPayMasterSAId = @dcPayMasterSAId AND ( createdBy <> @user AND approvedBy IS NULL)
  123. )
  124. BEGIN
  125. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @dcPayMasterSAId
  126. RETURN
  127. END
  128. IF EXISTS (
  129. SELECT 'X' FROM dcPayMasterSAHistory WITH(NOLOCK)
  130. WHERE dcPayMasterSAId = @dcPayMasterSAId AND (createdBy<> @user OR modType = 'D') AND approvedBy IS NULL
  131. )
  132. BEGIN
  133. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @dcPayMasterSAId
  134. RETURN
  135. END
  136. IF EXISTS(SELECT 'x' FROM dcPayMasterSA WHERE
  137. dcPayMasterSAId <> @dcPayMasterSAId AND
  138. ISNULL(sCountry, 0) = ISNULL(@sCountry, 0) AND
  139. ISNULL(rCountry, 0) = ISNULL(@rCountry, 0) AND
  140. ISNULL(tranType, 0) = ISNULL(tranType, 0) AND
  141. baseCurrency = @baseCurrency AND
  142. commissionCurrency = @commissionCurrency AND
  143. ISNULL(isDeleted,'N')<>'Y')
  144. BEGIN
  145. EXEC proc_errorHandler 1, 'Record already exist.', @dcPayMasterSAId
  146. RETURN
  147. END
  148. BEGIN TRANSACTION
  149. IF EXISTS (SELECT 'X' FROM dcPayMasterSA WHERE approvedBy IS NULL AND dcPayMasterSAId = @dcPayMasterSAId)
  150. BEGIN
  151. UPDATE dcPayMasterSA SET
  152. code = @code
  153. ,[description] = @description
  154. ,sCountry = @sCountry
  155. ,rCountry = @rCountry
  156. ,baseCurrency = @baseCurrency
  157. ,commissionCurrency = @commissionCurrency
  158. ,tranType = @tranType
  159. ,commissionBase = @commissionBase
  160. ,isEnable = @isEnable
  161. WHERE dcPayMasterSAId = @dcPayMasterSAId
  162. END
  163. ELSE
  164. BEGIN
  165. DELETE FROM dcPayMasterSAHistory WHERE dcPayMasterSAId = @dcPayMasterSAId AND approvedBy IS NULL
  166. INSERT INTO dcPayMasterSAHistory(
  167. dcPayMasterSAId
  168. ,code
  169. ,[description]
  170. ,sCountry
  171. ,rCountry
  172. ,baseCurrency
  173. ,tranType
  174. ,commissionBase
  175. ,commissionCurrency
  176. ,isEnable
  177. ,createdBy
  178. ,createdDate
  179. ,modType
  180. )
  181. SELECT
  182. @dcPayMasterSAId
  183. ,@code
  184. ,@description
  185. ,@sCountry
  186. ,@rCountry
  187. ,@baseCurrency
  188. ,@tranType
  189. ,@commissionBase
  190. ,@commissionCurrency
  191. ,@isEnable
  192. ,@user
  193. ,GETDATE()
  194. ,'U'
  195. END
  196. IF @@TRANCOUNT > 0
  197. COMMIT TRANSACTION
  198. EXEC proc_errorHandler 0, 'Record updated successfully.', @dcPayMasterSAId
  199. END
  200. ELSE IF @flag = 'd'
  201. BEGIN
  202. IF EXISTS (
  203. SELECT 'X' FROM dcPayMasterSA WITH(NOLOCK)
  204. WHERE dcPayMasterSAId = @dcPayMasterSAId AND (createdBy <> @user AND approvedBy IS NULL)
  205. )
  206. BEGIN
  207. EXEC proc_errorHandler 1, '<center>You can not delete this record. <br /> You are trying to perform an illegal operation.</center>', @dcPayMasterSAId
  208. RETURN
  209. END
  210. IF EXISTS (
  211. SELECT 'X' FROM dcPayMasterSAHistory WITH(NOLOCK)
  212. WHERE dcPayMasterSAId = @dcPayMasterSAId AND approvedBy IS NULL
  213. )
  214. BEGIN
  215. EXEC proc_errorHandler 1, '<center>You can not delete this record. <br /> Previous modification has not been approved yet.</center>', @dcPayMasterSAId
  216. RETURN
  217. END
  218. INSERT INTO dcPayMasterSAHistory(
  219. dcPayMasterSAId
  220. ,code
  221. ,[description]
  222. ,sCountry
  223. ,rCountry
  224. ,baseCurrency
  225. ,tranType
  226. ,commissionBase
  227. ,commissionCurrency
  228. ,isEnable
  229. ,createdBy
  230. ,createdDate
  231. ,modType
  232. )
  233. SELECT
  234. dcPayMasterSAId
  235. ,code
  236. ,[description]
  237. ,sCountry
  238. ,rCountry
  239. ,baseCurrency
  240. ,tranType
  241. ,commissionBase
  242. ,commissionCurrency
  243. ,isEnable
  244. ,@user
  245. ,GETDATE()
  246. ,'D'
  247. FROM dcPayMasterSA WHERE dcPayMasterSAId = @dcPayMasterSAId
  248. EXEC proc_errorHandler 0, 'Record deleted successfully.', @dcPayMasterSAId
  249. END
  250. ELSE IF @flag IN ('s', 'p')
  251. BEGIN
  252. IF @sortBy IS NULL
  253. SET @sortBy = 'dcPayMasterSAId'
  254. IF @sortOrder IS NULL
  255. SET @sortOrder = 'ASC'
  256. SET @table = '(
  257. SELECT
  258. dcPayMasterSAId = ISNULL(mode.dcPayMasterSAId, main.dcPayMasterSAId)
  259. ,code = ISNULL(mode.code, main.code)
  260. ,description = ISNULL(mode.description, main.description)
  261. ,sCountry = ISNULL(mode.sCountry, main.sCountry)
  262. ,rCountry = ISNULL(mode.rCountry, main.rCountry)
  263. ,baseCurrency = ISNULL(mode.baseCurrency, main.baseCurrency)
  264. ,tranType = ISNULL(mode.tranType, main.tranType)
  265. ,commissionBase = ISNULL(mode.commissionBase, main.commissionBase)
  266. ,commissionCurrency = ISNULL(mode.commissionCurrency, main.commissionCurrency)
  267. ,isEnable = ISNULL(mode.isEnable, main.isEnable)
  268. ,main.createdBy
  269. ,main.createdDate
  270. ,modifiedBy = CASE WHEN main.approvedBy IS NULL THEN main.createdBy ELSE mode.createdBy END
  271. ,modifiedDate = CASE WHEN main.approvedBy IS NULL THEN main.createdDate ELSE mode.createdDate END
  272. ,hasChanged = CASE WHEN (main.approvedBy IS NULL) OR
  273. (mode.dcPayMasterSAId IS NOT NULL)
  274. THEN ''Y'' ELSE ''N'' END
  275. FROM dcPayMasterSA main WITH(NOLOCK)
  276. LEFT JOIN dcPayMasterSAHistory mode ON main.dcPayMasterSAId = mode.dcPayMasterSAId AND mode.approvedBy IS NULL
  277. AND (
  278. mode.createdBy = ''' + @user + '''
  279. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  280. )
  281. WHERE ISNULL(main.isDeleted, ''N'') <> ''Y''
  282. AND (
  283. main.approvedBy IS NOT NULL
  284. OR main.createdBy = ''' + @user + '''
  285. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  286. )
  287. ) x'
  288. --@sAgent
  289. SET @sql_filter = ''
  290. SET @sql_filter = @sql_filter + ' AND ISNULL(isDeleted, '''') <> ''Y'''
  291. IF @rCountry IS NOT NULL
  292. SET @sql_filter = @sql_filter + ' AND rCountry = ' + CAST(@rCountry AS VARCHAR(50))
  293. IF @sCountry IS NOT NULL
  294. SET @sql_filter = @sql_filter + ' AND sCountry = ' + CAST(@sCountry AS VARCHAR(50))
  295. IF @tranType IS NOT NULL
  296. SET @sql_filter = @sql_filter + ' AND tranType = ' + CAST(@tranType AS VARCHAR(50))
  297. SET @select_field_list = '
  298. dcPayMasterSAId
  299. ,code
  300. ,description
  301. ,sCountry
  302. ,rCountry
  303. ,baseCurrency
  304. ,tranType
  305. ,commissionBase
  306. ,commissionCurrency
  307. ,isEnable
  308. ,createdBy
  309. ,createdDate
  310. ,isDeleted '
  311. EXEC dbo.proc_paging
  312. @table
  313. ,@sql_filter
  314. ,@select_field_list
  315. ,@extra_field_list
  316. ,@sortBy
  317. ,@sortOrder
  318. ,@pageSize
  319. ,@pageNumber
  320. END
  321. ELSE IF @flag = 'm'
  322. BEGIN
  323. DECLARE
  324. @m VARCHAR(MAX)
  325. ,@d VARCHAR(MAX)
  326. SET @m = '(
  327. SELECT
  328. dcPayMasterSAId = ISNULL(mode.dcPayMasterSAId, main.dcPayMasterSAId)
  329. ,code = ISNULL(mode.code, main.code)
  330. ,description = ISNULL(mode.description, main.description)
  331. ,sCountry = ISNULL(mode.sCountry, main.sCountry)
  332. ,rCountry = ISNULL(mode.rCountry, main.rCountry)
  333. ,baseCurrency = ISNULL(mode.baseCurrency, main.baseCurrency)
  334. ,tranType = ISNULL(mode.tranType, main.tranType)
  335. ,commissionBase = ISNULL(mode.commissionBase, main.commissionBase)
  336. ,commissionCurrency = ISNULL(mode.commissionCurrency,main.commissionCurrency)
  337. ,isEnable = ISNULL(mode.isEnable, main.isEnable)
  338. ,modifiedBy = CASE WHEN main.approvedBy IS NULL THEN main.createdBy ELSE mode.createdBy END
  339. ,modifiedDate = CASE WHEN main.approvedBy IS NULL THEN main.createdDate ELSE mode.createdDate END
  340. ,hasChanged = CASE WHEN (main.approvedBy IS NULL) OR
  341. (mode.dcPayMasterSAId IS NOT NULL)
  342. THEN ''Y'' ELSE ''N'' END
  343. FROM dcPayMasterSA main WITH(NOLOCK)
  344. LEFT JOIN dcPayMasterSAHistory mode ON main.dcPayMasterSAId = mode.dcPayMasterSAId AND mode.approvedBy IS NULL
  345. AND (
  346. mode.createdBy = ''' + @user + '''
  347. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  348. )
  349. WHERE ISNULL(main.isDeleted, ''N'') <> ''Y''
  350. AND (
  351. main.approvedBy IS NOT NULL
  352. OR main.createdBy = ''' + @user + '''
  353. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  354. )
  355. ) '
  356. SET @d = '(
  357. SELECT
  358. dcPayDetailSAId = main.dcPayDetailSAId
  359. ,dcPayMasterSAId = main.dcPayMasterSAId
  360. ,fromAmt = ISNULL(mode.fromAmt, main.fromAmt)
  361. ,toAmt = ISNULL(mode.toAmt, main.toAmt)
  362. ,pcnt = ISNULL(mode.pcnt, main.pcnt)
  363. ,minAmt = ISNULL(mode.minAmt, main.minAmt)
  364. ,maxAmt = ISNULL(mode.maxAmt, main.maxAmt)
  365. ,modifiedBy = CASE WHEN main.approvedBy IS NULL THEN main.createdBy ELSE mode.createdBy END
  366. ,modifiedDate = CASE WHEN main.approvedBy IS NULL THEN main.createdDate ELSE mode.createdDate END
  367. ,hasChanged = CASE WHEN (main.approvedBy IS NULL) OR
  368. (mode.dcPayDetailSAId IS NOT NULL)
  369. THEN ''Y'' ELSE ''N'' END
  370. FROM dcPayDetailSA main WITH(NOLOCK)
  371. LEFT JOIN dcPayDetailSAHistory mode ON main.dcPayDetailSAId = mode.dcPayDetailSAId AND mode.approvedBy IS NULL
  372. AND (
  373. mode.createdBy = ''' + @user + '''
  374. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  375. )
  376. WHERE ISNULL(main.isDeleted, ''N'') <> ''Y''
  377. AND (
  378. main.approvedBy IS NOT NULL
  379. OR main.createdBy = ''' + @user + '''
  380. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  381. )
  382. ) '
  383. SET @table = '
  384. (
  385. SELECT
  386. m.dcPayMasterSAId
  387. ,m.description
  388. ,m.sCountry
  389. ,sCountryName = sc.countryName
  390. ,m.rCountry
  391. ,rCountryName = rc.countryName
  392. ,m.tranType
  393. ,tranTypeName = ISNULL(trn.typeTitle, ''All'')
  394. ,m.baseCurrency
  395. ,m.commissionCurrency
  396. ,m.isEnable
  397. ,fromAmt = MIN(d.fromAmt)
  398. ,toAmt = MAX(d.toAmt)
  399. ,modifiedBy = MAX(ISNULL(m.modifiedBy, d.modifiedBy))
  400. ,hasChanged = MAX(CASE WHEN m.hasChanged = ''Y'' OR d.hasChanged = ''Y'' THEN ''Y'' ELSE ''N'' END)
  401. FROM ' + @m + ' m
  402. LEFT JOIN ' + @d + ' d ON m.dcPayMasterSAId = d.dcPayMasterSAId
  403. LEFT JOIN countryMaster rc WITH(NOLOCK) ON m.rCountry = rc.countryId
  404. LEFT JOIN countryMaster sc WITH(NOLOCK) ON m.sCountry = sc.countryId
  405. LEFT JOIN serviceTypeMaster trn WITH(NOLOCK) ON trn.serviceTypeId = m.tranType
  406. GROUP BY
  407. m.dcPayMasterSAId
  408. ,m.description
  409. ,m.sCountry
  410. ,sc.countryName
  411. ,m.rCountry
  412. ,rc.countryName
  413. ,m.tranType
  414. ,trn.typeTitle
  415. ,m.baseCurrency
  416. ,m.commissionCurrency
  417. ,m.isEnable
  418. --,m.modifiedBy
  419. --,d.modifiedBy
  420. ) x
  421. '
  422. --print @table
  423. --
  424. SET @sql_filter = ' '
  425. IF @hasChanged IS NOT NULL
  426. SET @sql_filter = @sql_filter + ' AND hasChanged = ''' + @hasChanged +''''
  427. IF @rCountry IS NOT NULL
  428. SET @sql_filter = @sql_filter + ' AND rCountry = ' + CAST(@rCountry AS VARCHAR(50))
  429. IF @sCountry IS NOT NULL
  430. SET @sql_filter = @sql_filter + ' AND sCountry = ' + CAST(@sCountry AS VARCHAR(50))
  431. IF @tranType IS NOT NULL
  432. SET @sql_filter = @sql_filter + ' AND tranType = ' + CAST(@tranType AS VARCHAR(50))
  433. SET @select_field_list = '
  434. dcPayMasterSAId
  435. ,description
  436. ,sCountry
  437. ,sCountryName
  438. ,rCountry
  439. ,rCountryName
  440. ,tranType
  441. ,tranTypeName
  442. ,baseCurrency
  443. ,commissionCurrency
  444. ,fromAmt
  445. ,toAmt
  446. ,modifiedBy
  447. ,hasChanged
  448. '
  449. SET @extra_field_list = ''
  450. IF @sortBy IS NULL
  451. SET @sortBy = 'dcPayMasterSAId'
  452. IF @sortOrder IS NULL
  453. SET @sortOrder = 'ASC'
  454. EXEC dbo.proc_paging
  455. @table
  456. ,@sql_filter
  457. ,@select_field_list
  458. ,@extra_field_list
  459. ,@sortBy
  460. ,@sortOrder
  461. ,@pageSize
  462. ,@pageNumber
  463. END
  464. ELSE IF @flag IN ('reject', 'rejectAll')
  465. BEGIN
  466. IF NOT EXISTS (
  467. SELECT 'X' FROM dcPayMasterSA WITH(NOLOCK)
  468. WHERE dcPayMasterSAId = @dcPayMasterSAId
  469. )
  470. AND
  471. NOT EXISTS (
  472. SELECT 'X' FROM dcPayMasterSA WITH(NOLOCK)
  473. WHERE dcPayMasterSAId = @dcPayMasterSAId AND approvedBy IS NULL
  474. )
  475. BEGIN
  476. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @dcPayMasterSAId
  477. RETURN
  478. END
  479. IF EXISTS (SELECT 'X' FROM dcPayMasterSA WHERE approvedBy IS NULL AND dcPayMasterSAId = @dcPayMasterSAId)
  480. BEGIN --New record
  481. BEGIN TRANSACTION
  482. SET @modType = 'Reject'
  483. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @dcPayMasterSAId, @oldValue OUTPUT
  484. INSERT INTO #msg(errorCode, msg, id)
  485. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @dcPayMasterSAId, @user, @oldValue, @newValue
  486. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  487. BEGIN
  488. IF @@TRANCOUNT > 0
  489. ROLLBACK TRANSACTION
  490. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @dcPayMasterSAId
  491. RETURN
  492. END
  493. DELETE FROM dcPayMasterSA WHERE dcPayMasterSAId = @dcPayMasterSAId
  494. IF @@TRANCOUNT > 0
  495. COMMIT TRANSACTION
  496. END
  497. ELSE
  498. BEGIN
  499. BEGIN TRANSACTION
  500. SET @modType = 'Reject'
  501. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @dcPayMasterSAId, @oldValue OUTPUT
  502. INSERT INTO #msg(errorCode, msg, id)
  503. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @dcPayMasterSAId, @user, @oldValue, @newValue
  504. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  505. BEGIN
  506. IF @@TRANCOUNT > 0
  507. ROLLBACK TRANSACTION
  508. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @dcPayMasterSAId
  509. RETURN
  510. END
  511. DELETE FROM dcPayMasterSAHistory WHERE dcPayMasterSAId = @dcPayMasterSAId AND approvedBy IS NULL
  512. END
  513. IF @flag = 'rejectAll'
  514. BEGIN
  515. INSERT @DetailIdList
  516. SELECT
  517. dcPayDetailSAId, 'I'
  518. FROM dcPayDetailSA
  519. WHERE
  520. dcPayMasterSAId = @dcPayMasterSAId
  521. AND approvedBy IS NULL
  522. INSERT @DetailIdList
  523. SELECT
  524. mode.dcPayDetailSAId, mode.modType
  525. FROM dcPayDetailSAHistory mode WITH(NOLOCK)
  526. INNER JOIN dcPayDetailSA main WITH(NOLOCK) ON mode.dcPayDetailSAId = main.dcPayDetailSAId
  527. WHERE
  528. main.dcPayMasterSAId = @dcPayMasterSAId
  529. AND mode.approvedBy IS NULL
  530. SELECT
  531. @logIdentifier = 'dcPayDetailSAId'
  532. ,@logParamMain = 'dcPayDetailSA'
  533. ,@logParamMod = 'dcPayDetailSAHistory'
  534. ,@module = '20'
  535. ,@tableAlias = 'Super Agent Default Pay Commission Detail'
  536. WHILE EXISTS(SELECT 'X' FROM @DetailIdList)
  537. BEGIN
  538. SELECT TOP 1 @detailId = detailId, @ModType = modType FROM @DetailIdList
  539. IF EXISTS (SELECT 'X' FROM dcPayDetailSA WHERE approvedBy IS NULL AND dcPayDetailSAId = @detailId )
  540. SET @modType = 'I'
  541. ELSE
  542. SELECT @modType = modType FROM dcPayDetailSAHistory WHERE dcPayDetailSAId = @detailId AND approvedBy IS NULL
  543. IF @modType = 'I'
  544. BEGIN --New record
  545. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @detailId, @oldValue OUTPUT
  546. INSERT INTO #msg(errorCode, msg, id)
  547. EXEC proc_applicationLogs 'i', NULL, 'Reject', @tableAlias, @detailId, @user, @oldValue, @newValue
  548. DELETE FROM dcPayDetailSA WHERE dcPayDetailSAId = @detailId
  549. END
  550. ELSE
  551. BEGIN
  552. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @detailId, @oldValue OUTPUT
  553. INSERT INTO #msg(errorCode, msg, id)
  554. EXEC proc_applicationLogs 'i', NULL, 'Reject', @tableAlias, @detailId, @user, @oldValue, @newValue
  555. DELETE FROM dcPayDetailSAHistory WHERE dcPayDetailSAId = @detailId AND approvedBy IS NULL
  556. END
  557. DELETE FROM @DetailIdList WHERE detailId = @detailId
  558. END
  559. END
  560. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  561. BEGIN
  562. IF @@TRANCOUNT > 0
  563. ROLLBACK TRANSACTION
  564. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @detailId
  565. RETURN
  566. END
  567. IF @@TRANCOUNT > 0
  568. COMMIT TRANSACTION
  569. EXEC proc_errorHandler 0, 'Changes rejected successfully.', @dcPayMasterSAId
  570. END
  571. ELSE IF @flag IN ('approve', 'approveAll')
  572. BEGIN
  573. IF NOT EXISTS (
  574. SELECT 'X' FROM dcPayMasterSA WITH(NOLOCK)
  575. WHERE dcPayMasterSAId = @dcPayMasterSAId
  576. )
  577. AND
  578. NOT EXISTS (
  579. SELECT 'X' FROM dcPayMasterSA WITH(NOLOCK)
  580. WHERE dcPayMasterSAId = @dcPayMasterSAId AND approvedBy IS NULL
  581. )
  582. BEGIN
  583. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @dcPayMasterSAId
  584. RETURN
  585. END
  586. BEGIN TRANSACTION
  587. IF EXISTS (SELECT 'X' FROM dcPayMasterSA WHERE approvedBy IS NULL AND dcPayMasterSAId = @dcPayMasterSAId )
  588. SET @modType = 'I'
  589. ELSE
  590. SELECT @modType = modType FROM dcPayMasterSAHistory WHERE dcPayMasterSAId = @dcPayMasterSAId AND approvedBy IS NULL
  591. IF @modType = 'I'
  592. BEGIN --New record
  593. UPDATE dcPayMasterSA SET
  594. isActive = 'Y'
  595. ,approvedBy = @user
  596. ,approvedDate= GETDATE()
  597. WHERE dcPayMasterSAId = @dcPayMasterSAId
  598. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @dcPayMasterSAId, @newValue OUTPUT
  599. END
  600. ELSE IF @modType = 'U'
  601. BEGIN
  602. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @dcPayMasterSAId, @oldValue OUTPUT
  603. UPDATE main SET
  604. main.code = mode.code
  605. ,main.[description] = mode.[description]
  606. ,main.sCountry = mode.sCountry
  607. ,main.rCountry = mode.rCountry
  608. ,main.baseCurrency = mode.baseCurrency
  609. ,main.tranType = mode.tranType
  610. ,main.commissionBase = mode.commissionBase
  611. ,main.commissionCurrency = mode.commissionCurrency
  612. ,main.isEnable = mode.isEnable
  613. ,main.modifiedDate = GETDATE()
  614. ,main.modifiedBy = @user
  615. FROM dcPayMasterSA main
  616. INNER JOIN dcPayMasterSAHistory mode ON mode.dcPayMasterSAId = main.dcPayMasterSAId
  617. WHERE mode.dcPayMasterSAId = @dcPayMasterSAId AND mode.approvedBy IS NULL
  618. EXEC [dbo].proc_GetColumnToRow 'dcPayMasterSA', 'dcPayMasterSAId', @dcPayMasterSAId, @newValue OUTPUT
  619. END
  620. ELSE IF @modType = 'D'
  621. BEGIN
  622. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @dcPayMasterSAId, @oldValue OUTPUT
  623. UPDATE dcPayMasterSA SET
  624. isDeleted = 'Y'
  625. ,modifiedDate = GETDATE()
  626. ,modifiedBy = @user
  627. WHERE dcPayMasterSAId = @dcPayMasterSAId
  628. END
  629. UPDATE dcPayMasterSAHistory SET
  630. approvedBy = @user
  631. ,approvedDate = GETDATE()
  632. WHERE dcPayMasterSAId = @dcPayMasterSAId AND approvedBy IS NULL
  633. INSERT INTO #msg(errorCode, msg, id)
  634. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @dcPayMasterSAId, @user, @oldValue, @newValue
  635. IF @flag = 'approveAll'
  636. BEGIN
  637. INSERT @DetailIdList
  638. SELECT
  639. dcPayDetailSAId, 'I'
  640. FROM dcPayDetailSA
  641. WHERE
  642. dcPayMasterSAId = @dcPayMasterSAId
  643. AND approvedBy IS NULL
  644. INSERT @DetailIdList
  645. SELECT
  646. ddh.dcPayDetailSAId, ddh.modType
  647. FROM dcPayDetailSAHistory ddh WITH(NOLOCK)
  648. INNER JOIN dcPayDetailSA dd WITH(NOLOCK) ON ddh.dcPayDetailSAId = dd.dcPayDetailSAId
  649. WHERE
  650. dd.dcPayMasterSAId = @dcPayMasterSAId
  651. AND ddh.approvedBy IS NULL
  652. SELECT
  653. @logIdentifier = 'dcPayDetailSAId'
  654. ,@logParamMain = 'dcPayDetailSA'
  655. ,@logParamMod = 'dcPayDetailSAHistory'
  656. ,@module = '20'
  657. ,@tableAlias = 'Super Agent Default Pay Commission Detail'
  658. WHILE EXISTS(SELECT 'X' FROM @DetailIdList)
  659. BEGIN
  660. SELECT TOP 1 @detailId = detailId, @ModType = modType FROM @DetailIdList
  661. IF EXISTS (SELECT 'X' FROM dcPayDetailSA WHERE approvedBy IS NULL AND dcPayDetailSAId = @detailId )
  662. SET @modType = 'I'
  663. ELSE
  664. SELECT @modType = modType FROM dcPayDetailSAHistory WHERE dcPayDetailSAId = @detailId AND approvedBy IS NULL
  665. IF @modType = 'I'
  666. BEGIN --New record
  667. UPDATE dcPayDetailSA SET
  668. isActive = 'Y'
  669. ,approvedBy = @user
  670. ,approvedDate= GETDATE()
  671. WHERE dcPayDetailSAId = @detailId
  672. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @detailId, @newValue OUTPUT
  673. END
  674. ELSE IF @modType = 'U'
  675. BEGIN
  676. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @detailId, @oldValue OUTPUT
  677. UPDATE main SET
  678. main.fromAmt = mode.fromAmt
  679. ,main.toAmt = mode.toAmt
  680. ,main.pcnt = mode.pcnt
  681. ,main.minAmt = mode.minAmt
  682. ,main.maxAmt = mode.maxAmt
  683. ,main.modifiedDate = GETDATE()
  684. ,main.modifiedBy = @user
  685. FROM dcPayDetailSA main
  686. INNER JOIN dcPayDetailSAHistory mode ON mode.dcPayDetailSAId = main.dcPayDetailSAId
  687. WHERE mode.dcPayDetailSAId = @detailId AND mode.approvedBy IS NULL
  688. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @detailId, @newValue OUTPUT
  689. END
  690. ELSE IF @modType = 'D'
  691. BEGIN
  692. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @detailId, @oldValue OUTPUT
  693. UPDATE dcPayDetailSA SET
  694. isDeleted = 'Y'
  695. ,modifiedDate = GETDATE()
  696. ,modifiedBy = @user
  697. WHERE dcPayDetailSAId = @detailId
  698. END
  699. UPDATE dcPayDetailSAHistory SET
  700. approvedBy = @user
  701. ,approvedDate = GETDATE()
  702. WHERE dcPayDetailSAId = @detailId AND approvedBy IS NULL
  703. INSERT INTO #msg(errorCode, msg, id)
  704. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @detailId, @user, @oldValue, @newValue
  705. DELETE FROM @DetailIdList WHERE detailId = @detailId
  706. END
  707. END
  708. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  709. BEGIN
  710. IF @@TRANCOUNT > 0
  711. ROLLBACK TRANSACTION
  712. EXEC proc_errorHandler 1, 'Could not approve the changes.', @dcPayMasterSAId
  713. RETURN
  714. END
  715. IF @@TRANCOUNT > 0
  716. COMMIT TRANSACTION
  717. EXEC proc_errorHandler 0, 'All Changes approved successfully.', @dcPayMasterSAId
  718. END
  719. END TRY
  720. BEGIN CATCH
  721. IF @@TRANCOUNT > 0
  722. ROLLBACK TRANSACTION
  723. DECLARE @errorMessage VARCHAR(MAX)
  724. SET @errorMessage = ERROR_MESSAGE()
  725. EXEC proc_errorHandler 1, @errorMessage, @dcPayMasterSAId
  726. END CATCH
  727. GO