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.

1086 lines
67 KiB

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