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.

783 lines
51 KiB

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