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.

1099 lines
32 KiB

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