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.

1144 lines
68 KiB

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