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.

1059 lines
65 KiB

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