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.

1139 lines
33 KiB

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