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
67 KiB

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