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.

690 lines
43 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_dcDetail] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE proc [dbo].[proc_dcDetail]
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(30) = NULL
  11. ,@dcDetailId VARCHAR(30) = NULL
  12. ,@dcMasterId INT = NULL
  13. ,@fromAmt MONEY = NULL
  14. ,@toAmt MONEY = NULL
  15. ,@serviceChargePcnt FLOAT = NULL
  16. ,@serviceChargeMinAmt MONEY = NULL
  17. ,@serviceChargeMaxAmt MONEY = NULL
  18. ,@sAgentCommPcnt FLOAT = NULL
  19. ,@sAgentCommMinAmt MONEY = NULL
  20. ,@sAgentCommMaxAmt MONEY = NULL
  21. ,@ssAgentCommPcnt FLOAT = NULL
  22. ,@ssAgentCommMinAmt MONEY = NULL
  23. ,@ssAgentCommMaxAmt MONEY = NULL
  24. ,@pAgentCommPcnt FLOAT = NULL
  25. ,@pAgentCommMinAmt MONEY = NULL
  26. ,@pAgentCommMaxAmt MONEY = NULL
  27. ,@psAgentCommPcnt FLOAT = NULL
  28. ,@psAgentCommMinAmt MONEY = NULL
  29. ,@psAgentCommMaxAmt MONEY = NULL
  30. ,@bankCommPcnt FLOAT = NULL
  31. ,@bankCommMinAmt MONEY = NULL
  32. ,@bankCommMaxAmt MONEY = NULL
  33. ,@sortBy VARCHAR(50) = NULL
  34. ,@sortOrder VARCHAR(5) = NULL
  35. ,@pageSize INT = NULL
  36. ,@pageNumber INT = NULL
  37. AS
  38. SET NOCOUNT ON
  39. SET XACT_ABORT ON
  40. BEGIN TRY
  41. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  42. DECLARE
  43. @sql VARCHAR(MAX)
  44. ,@oldValue VARCHAR(MAX)
  45. ,@newValue VARCHAR(MAX)
  46. ,@module VARCHAR(10)
  47. ,@tableAlias VARCHAR(100)
  48. ,@logIdentifier VARCHAR(50)
  49. ,@logParamMod VARCHAR(100)
  50. ,@logParamMain VARCHAR(100)
  51. ,@table VARCHAR(MAX)
  52. ,@select_field_list VARCHAR(MAX)
  53. ,@extra_field_list VARCHAR(MAX)
  54. ,@sql_filter VARCHAR(MAX)
  55. ,@id VARCHAR(10)
  56. ,@modType VARCHAR(6)
  57. ,@ApprovedFunctionId INT
  58. SELECT
  59. @ApprovedFunctionId = 20231230
  60. ,@logIdentifier = 'dcDetailId'
  61. ,@logParamMain = 'dcDetail'
  62. ,@logParamMod = 'dcDetailHistory'
  63. ,@module = '20'
  64. ,@tableAlias = 'Default Domestic Commission Detail'
  65. IF @flag IN ('i', 'u')
  66. BEGIN
  67. SET @sql = '
  68. SELECT
  69. fromAmt
  70. ,toAmt
  71. FROM dcDetail
  72. WHERE dcMasterId = '+ CAST(ISNULL(@dcMasterId, 0) AS VARCHAR) + '
  73. AND dcDetailId <> ' + CAST(ISNULL(@dcDetailId, 0) AS VARCHAR) + ' AND ISNULL(isDeleted, ''N'') <> ''Y''
  74. '
  75. DECLARE @success INT
  76. EXEC dbo.proc_CheckRange
  77. @sql = @sql
  78. ,@from = @fromAmt
  79. ,@to = @toAmt
  80. ,@id = @dcDetailId
  81. ,@success = @success OUTPUT
  82. IF ISNULL(@success, 0) = 0
  83. RETURN
  84. IF(@serviceChargeMaxAmt < @serviceChargeMinAmt)
  85. BEGIN
  86. EXEC proc_errorHandler 0, 'Min Amount is greater than Max Amount!!!', @dcDetailId
  87. RETURN
  88. END
  89. IF(@sAgentCommMaxAmt < @sAgentCommMinAmt)
  90. BEGIN
  91. EXEC proc_errorHandler 0, 'Min Amount is greater than Max Amount!!!', @dcDetailId
  92. RETURN
  93. END
  94. IF(@ssAgentCommMaxAmt < @ssAgentCommMinAmt)
  95. BEGIN
  96. EXEC proc_errorHandler 0, 'Min Amount is greater than Max Amount!!!', @dcDetailId
  97. RETURN
  98. END
  99. IF(@pAgentCommMaxAmt < @pAgentCommMinAmt)
  100. BEGIN
  101. EXEC proc_errorHandler 0, 'Min Amount is greater than Max Amount!!!', @dcDetailId
  102. RETURN
  103. END
  104. IF(@psAgentCommMaxAmt < @psAgentCommMinAmt)
  105. BEGIN
  106. EXEC proc_errorHandler 0, 'Min Amount is greater than Max Amount!!!', @dcDetailId
  107. RETURN
  108. END
  109. IF(@bankCommMaxAmt < @bankCommMinAmt)
  110. BEGIN
  111. EXEC proc_errorHandler 0, 'Min Amount is greater than Max Amount!!!', @dcDetailId
  112. RETURN
  113. END
  114. END
  115. IF @flag = 'i'
  116. BEGIN
  117. IF EXISTS (
  118. SELECT 'X' FROM dcMaster WITH(NOLOCK)
  119. WHERE dcMasterId = @dcMasterId AND ( createdBy <> @user AND approvedBy IS NULL)
  120. )
  121. BEGIN
  122. EXEC proc_errorHandler 1, 'You can not modify this record. You are trying to perform an illegal operation.', @dcDetailId
  123. RETURN
  124. END
  125. IF EXISTS (
  126. SELECT 'X' FROM dcMasterHistory WITH(NOLOCK)
  127. WHERE dcMasterId = @dcMasterId AND ( createdBy <> @user AND approvedBy IS NULL)
  128. )
  129. BEGIN
  130. EXEC proc_errorHandler 1, 'You can not modify this record. You are trying to perform an illegal operation.', @dcDetailId
  131. RETURN
  132. END
  133. BEGIN TRANSACTION
  134. INSERT INTO dcDetail (
  135. dcMasterId
  136. ,fromAmt
  137. ,toAmt
  138. ,serviceChargePcnt
  139. ,serviceChargeMinAmt
  140. ,serviceChargeMaxAmt
  141. ,sAgentCommPcnt
  142. ,sAgentCommMinAmt
  143. ,sAgentCommMaxAmt
  144. ,ssAgentCommPcnt
  145. ,ssAgentCommMinAmt
  146. ,ssAgentCommMaxAmt
  147. ,pAgentCommPcnt
  148. ,pAgentCommMinAmt
  149. ,pAgentCommMaxAmt
  150. ,psAgentCommPcnt
  151. ,psAgentCommMinAmt
  152. ,psAgentCommMaxAmt
  153. ,bankCommPcnt
  154. ,bankCommMinAmt
  155. ,bankCommMaxAmt
  156. ,createdBy
  157. ,createdDate
  158. )
  159. SELECT
  160. @dcMasterId
  161. ,@fromAmt
  162. ,@toAmt
  163. ,@serviceChargePcnt
  164. ,@serviceChargeMinAmt
  165. ,@serviceChargeMaxAmt
  166. ,@sAgentCommPcnt
  167. ,@sAgentCommMinAmt
  168. ,@sAgentCommMaxAmt
  169. ,@ssAgentCommPcnt
  170. ,@ssAgentCommMinAmt
  171. ,@ssAgentCommMaxAmt
  172. ,@pAgentCommPcnt
  173. ,@pAgentCommMinAmt
  174. ,@pAgentCommMaxAmt
  175. ,@psAgentCommPcnt
  176. ,@psAgentCommMinAmt
  177. ,@psAgentCommMaxAmt
  178. ,@bankCommPcnt
  179. ,@bankCommMinAmt
  180. ,@bankCommMaxAmt
  181. ,@user
  182. ,GETDATE()
  183. SET @dcDetailId = SCOPE_IDENTITY()
  184. IF @@TRANCOUNT > 0
  185. COMMIT TRANSACTION
  186. EXEC proc_errorHandler 0, 'Record has been added successfully.', @dcDetailId
  187. END
  188. ELSE IF @flag = 'a'
  189. BEGIN
  190. IF EXISTS (
  191. SELECT 'X' FROM dcDetailHistory WITH(NOLOCK)
  192. WHERE dcDetailId = @dcDetailId AND createdBy = @user AND approvedBy IS NULL
  193. )
  194. BEGIN
  195. SELECT
  196. mode.*
  197. FROM dcDetailHistory mode WITH(NOLOCK)
  198. INNER JOIN dcDetail main WITH(NOLOCK) ON mode.dcDetailId = main.dcDetailId
  199. WHERE mode.dcDetailId= @dcDetailId AND mode.approvedBy IS NULL
  200. END
  201. ELSE
  202. BEGIN
  203. SELECT * FROM dcDetail WITH(NOLOCK) WHERE dcDetailId = @dcDetailId
  204. END
  205. END
  206. ELSE IF @flag = 'u'
  207. BEGIN
  208. IF EXISTS (
  209. SELECT 'X' FROM dcMaster WITH(NOLOCK)
  210. WHERE dcMasterId = @dcMasterId AND ( createdBy <> @user AND approvedBy IS NULL)
  211. )
  212. BEGIN
  213. EXEC proc_errorHandler 1, 'You can not modify this record. You are trying to perform an illegal operation.', @dcDetailId
  214. RETURN
  215. END
  216. IF EXISTS (
  217. SELECT 'X' FROM dcMasterHistory WITH(NOLOCK)
  218. WHERE dcMasterId = @dcMasterId AND ( createdBy <> @user AND approvedBy IS NULL)
  219. )
  220. BEGIN
  221. EXEC proc_errorHandler 1, 'You can not modify this record. You are trying to perform an illegal operation.', @dcDetailId
  222. RETURN
  223. END
  224. IF EXISTS (
  225. SELECT 'X' FROM dcDetail WITH(NOLOCK)
  226. WHERE dcDetailId = @dcDetailId AND ( createdBy <> @user 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>', @dcDetailId
  230. RETURN
  231. END
  232. IF EXISTS (
  233. SELECT 'X' FROM dcDetailHistory WITH(NOLOCK)
  234. WHERE dcDetailId = @dcDetailId AND (createdBy<> @user OR modType = 'delete')
  235. )
  236. BEGIN
  237. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @dcDetailId
  238. RETURN
  239. END
  240. BEGIN TRANSACTION
  241. IF EXISTS (SELECT 'X' FROM dcDetail WHERE approvedBy IS NULL AND dcDetailId = @dcDetailId)
  242. BEGIN
  243. UPDATE dcDetail SET
  244. dcMasterId = @dcMasterId
  245. ,fromAmt = @fromAmt
  246. ,toAmt = @toAmt
  247. ,serviceChargePcnt = @serviceChargePcnt
  248. ,serviceChargeMinAmt = @serviceChargeMinAmt
  249. ,serviceChargeMaxAmt = @serviceChargeMaxAmt
  250. ,sAgentCommPcnt = @sAgentCommPcnt
  251. ,sAgentCommMinAmt = @sAgentCommMinAmt
  252. ,sAgentCommMaxAmt = @sAgentCommMaxAmt
  253. ,ssAgentCommPcnt = @ssAgentCommPcnt
  254. ,ssAgentCommMinAmt = @ssAgentCommMinAmt
  255. ,ssAgentCommMaxAmt = @ssAgentCommMaxAmt
  256. ,pAgentCommPcnt = @pAgentCommPcnt
  257. ,pAgentCommMinAmt = @pAgentCommMinAmt
  258. ,pAgentCommMaxAmt = @pAgentCommMaxAmt
  259. ,psAgentCommPcnt = @psAgentCommPcnt
  260. ,psAgentCommMinAmt = @psAgentCommMinAmt
  261. ,psAgentCommMaxAmt = @psAgentCommMaxAmt
  262. ,bankCommPcnt = @bankCommPcnt
  263. ,bankCommMinAmt = @bankCommMinAmt
  264. ,bankCommMaxAmt = @bankCommMaxAmt
  265. ,modifiedBy = @user
  266. ,modifiedDate = GETDATE()
  267. WHERE dcDetailId = @dcDetailId
  268. END
  269. ELSE
  270. BEGIN
  271. DELETE FROM dcDetailHistory WHERE dcDetailId = @dcDetailId AND approvedBy IS NULL
  272. INSERT INTO dcDetailHistory(
  273. dcDetailId
  274. ,fromAmt
  275. ,toAmt
  276. ,serviceChargePcnt
  277. ,serviceChargeMinAmt
  278. ,serviceChargeMaxAmt
  279. ,sAgentCommPcnt
  280. ,sAgentCommMinAmt
  281. ,sAgentCommMaxAmt
  282. ,ssAgentCommPcnt
  283. ,ssAgentCommMinAmt
  284. ,ssAgentCommMaxAmt
  285. ,pAgentCommPcnt
  286. ,pAgentCommMinAmt
  287. ,pAgentCommMaxAmt
  288. ,psAgentCommPcnt
  289. ,psAgentCommMinAmt
  290. ,psAgentCommMaxAmt
  291. ,bankCommPcnt
  292. ,bankCommMinAmt
  293. ,bankCommMaxAmt
  294. ,createdBy
  295. ,createdDate
  296. ,modType
  297. )
  298. SELECT
  299. @dcDetailId
  300. ,@fromAmt
  301. ,@toAmt
  302. ,@serviceChargePcnt
  303. ,@serviceChargeMinAmt
  304. ,@serviceChargeMaxAmt
  305. ,@sAgentCommPcnt
  306. ,@sAgentCommMinAmt
  307. ,@sAgentCommMaxAmt
  308. ,@ssAgentCommPcnt
  309. ,@ssAgentCommMinAmt
  310. ,@ssAgentCommMaxAmt
  311. ,@pAgentCommPcnt
  312. ,@pAgentCommMinAmt
  313. ,@pAgentCommMaxAmt
  314. ,@psAgentCommPcnt
  315. ,@psAgentCommMinAmt
  316. ,@psAgentCommMaxAmt
  317. ,@bankCommPcnt
  318. ,@bankCommMinAmt
  319. ,@bankCommMaxAmt
  320. ,@user
  321. ,GETDATE()
  322. ,'U'
  323. END
  324. IF @@TRANCOUNT > 0
  325. COMMIT TRANSACTION
  326. EXEC proc_errorHandler 0, 'Record updated successfully.', @dcDetailId
  327. END
  328. ELSE IF @flag = 'd'
  329. BEGIN
  330. IF EXISTS (
  331. SELECT 'X' FROM dcMaster WITH(NOLOCK)
  332. WHERE dcMasterId = @dcMasterId AND ( createdBy <> @user AND approvedBy IS NULL)
  333. )
  334. BEGIN
  335. EXEC proc_errorHandler 1, 'You can not modify this record. You are trying to perform an illegal operation.', @dcDetailId
  336. RETURN
  337. END
  338. IF EXISTS (
  339. SELECT 'X' FROM dcMasterHistory WITH(NOLOCK)
  340. WHERE dcMasterId = @dcMasterId AND ( createdBy <> @user AND approvedBy IS NULL)
  341. )
  342. BEGIN
  343. EXEC proc_errorHandler 1, 'You can not modify this record. You are trying to perform an illegal operation.', @dcDetailId
  344. RETURN
  345. END
  346. IF EXISTS (
  347. SELECT 'X' FROM dcDetail WITH(NOLOCK)
  348. WHERE dcDetailId = @dcDetailId AND (createdBy <> @user AND approvedBy IS NULL)
  349. )
  350. BEGIN
  351. EXEC proc_errorHandler 1, '<center>You can not delete this record. <br /> You are trying to perform an illegal operation.</center>', @dcDetailId
  352. RETURN
  353. END
  354. IF EXISTS (
  355. SELECT 'X' FROM dcDetailHistory WITH(NOLOCK)
  356. WHERE dcDetailId = @dcDetailId AND approvedBy IS NULL
  357. )
  358. BEGIN
  359. EXEC proc_errorHandler 1, '<center>You can not delete this record. <br /> Previous modification has not been approved yet.</center>', @dcDetailId
  360. RETURN
  361. END
  362. SELECT @dcMasterId = dcMasterId FROM dcDetail WHERE dcDetailId = @dcDetailId
  363. IF EXISTS(SELECT 'X' FROM dcDetail WITH(NOLOCK) WHERE dcDetailId = @dcDetailId AND createdBy = @user AND approvedBy IS NULL)
  364. BEGIN
  365. DELETE FROM dcDetail WHERE dcDetailId = @dcDetailId
  366. EXEC proc_errorHandler 0, 'Record deleted successfully.', @dcMasterId
  367. RETURN
  368. END
  369. INSERT INTO dcDetailHistory(
  370. dcDetailId
  371. ,fromAmt
  372. ,toAmt
  373. ,serviceChargePcnt
  374. ,serviceChargeMinAmt
  375. ,serviceChargeMaxAmt
  376. ,sAgentCommPcnt
  377. ,sAgentCommMinAmt
  378. ,sAgentCommMaxAmt
  379. ,ssAgentCommPcnt
  380. ,ssAgentCommMinAmt
  381. ,ssAgentCommMaxAmt
  382. ,pAgentCommPcnt
  383. ,pAgentCommMinAmt
  384. ,pAgentCommMaxAmt
  385. ,psAgentCommPcnt
  386. ,psAgentCommMinAmt
  387. ,psAgentCommMaxAmt
  388. ,bankCommPcnt
  389. ,bankCommMinAmt
  390. ,bankCommMaxAmt
  391. ,createdBy
  392. ,createdDate
  393. ,modType
  394. )
  395. SELECT
  396. dcDetailId
  397. ,fromAmt
  398. ,toAmt
  399. ,serviceChargePcnt
  400. ,serviceChargeMinAmt
  401. ,serviceChargeMaxAmt
  402. ,sAgentCommPcnt
  403. ,sAgentCommMinAmt
  404. ,sAgentCommMaxAmt
  405. ,ssAgentCommPcnt
  406. ,ssAgentCommMinAmt
  407. ,ssAgentCommMaxAmt
  408. ,pAgentCommPcnt
  409. ,pAgentCommMinAmt
  410. ,pAgentCommMaxAmt
  411. ,psAgentCommPcnt
  412. ,psAgentCommMinAmt
  413. ,psAgentCommMaxAmt
  414. ,bankCommPcnt
  415. ,bankCommMinAmt
  416. ,bankCommMaxAmt
  417. ,@user
  418. ,GETDATE()
  419. ,'D'
  420. FROM dcDetail
  421. WHERE dcDetailId = @dcDetailId
  422. SET @modType = 'delete'
  423. EXEC proc_errorHandler 0, 'Record deleted successfully.', @dcMasterId
  424. END
  425. ELSE IF @flag IN ('s', 'p')
  426. BEGIN
  427. IF @sortBy IS NULL
  428. SET @sortBy = 'dcDetailId'
  429. IF @sortOrder IS NULL
  430. SET @sortOrder = 'ASC'
  431. SET @table = '(
  432. SELECT
  433. dcDetailId = ISNULL(mode.dcDetailId, main.dcDetailId)
  434. ,fromAmt = ISNULL(mode.fromAmt, main.fromAmt)
  435. ,toAmt = ISNULL(mode.toAmt, main.toAmt)
  436. ,serviceChargePcnt = ISNULL(mode.serviceChargePcnt, main.serviceChargePcnt)
  437. ,serviceChargeMinAmt = ISNULL(mode.serviceChargeMinAmt, main.serviceChargeMinAmt)
  438. ,serviceChargeMaxAmt = ISNULL(mode.serviceChargeMaxAmt, main.serviceChargeMaxAmt)
  439. ,sAgentCommPcnt = ISNULL(mode.sAgentCommPcnt, main.sAgentCommPcnt)
  440. ,sAgentCommMinAmt = ISNULL(mode.sAgentCommMinAmt, main.sAgentCommMinAmt)
  441. ,sAgentCommMaxAmt = ISNULL(mode.sAgentCommMaxAmt, main.sAgentCommMinAmt)
  442. ,ssAgentCommPcnt = ISNULL(mode.ssAgentCommPcnt, main.ssAgentCommPcnt)
  443. ,ssAgentCommMinAmt = ISNULL(mode.ssAgentCommMinAmt, main.ssAgentCommMinAmt)
  444. ,ssAgentCommMaxAmt = ISNULL(mode.ssAgentCommMaxAmt, main.ssAgentCommMinAmt)
  445. ,pAgentCommPcnt = ISNULL(mode.pAgentCommPcnt, main.pAgentCommPcnt)
  446. ,pAgentCommMinAmt = ISNULL(mode.pAgentCommMinAmt, main.pAgentCommMinAmt)
  447. ,pAgentCommMaxAmt = ISNULL(mode.pAgentCommMaxAmt, main.pAgentCommMaxAmt)
  448. ,psAgentCommPcnt = ISNULL(mode.psAgentCommPcnt, main.psAgentCommPcnt)
  449. ,psAgentCommMinAmt = ISNULL(mode.psAgentCommMinAmt, main.psAgentCommMinAmt)
  450. ,psAgentCommMaxAmt = ISNULL(mode.psAgentCommMaxAmt, main.psAgentCommMaxAmt)
  451. ,bankCommPcnt = ISNULL(mode.bankCommPcnt, main.bankCommPcnt)
  452. ,bankCommMinAmt = ISNULL(mode.bankCommMinAmt, main.bankCommMinAmt)
  453. ,bankCommMaxAmt = ISNULL(mode.bankCommMaxAmt, main.bankCommMaxAmt)
  454. ,main.createdBy
  455. ,main.createdDate
  456. ,modifiedBy = CASE WHEN main.approvedBy IS NULL THEN main.createdBy ELSE mode.createdBy END
  457. ,modifiedDate = CASE WHEN main.approvedBy IS NULL THEN main.createdDate ELSE mode.createdDate END
  458. ,hasChanged = CASE WHEN (main.approvedBy IS NULL) OR
  459. (mode.dcDetailId IS NOT NULL)
  460. THEN ''Y'' ELSE ''N'' END
  461. FROM dcDetail main WITH(NOLOCK)
  462. LEFT JOIN dcDetailHistory mode ON main.dcDetailId = mode.dcDetailId AND mode.approvedBy IS NULL
  463. AND (
  464. mode.createdBy = ''' + @user + '''
  465. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  466. )
  467. WHERE main.dcMasterId = ' + CAST (@dcMasterId AS VARCHAR) + ' AND ISNULL(main.isDeleted, ''N'') <> ''Y''
  468. AND (
  469. main.approvedBy IS NOT NULL
  470. OR main.createdBy = ''' + @user + '''
  471. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  472. )
  473. --AND NOT(ISNULL(mode.modType, '''') = ''D'' AND mode.createdBy = ''' + @user + ''')
  474. ) x'
  475. SET @sql_filter = ''
  476. SET @select_field_list ='
  477. dcDetailId
  478. ,fromAmt
  479. ,toAmt
  480. ,serviceChargePcnt
  481. ,serviceChargeMinAmt
  482. ,serviceChargeMaxAmt
  483. ,sAgentCommPcnt
  484. ,sAgentCommMinAmt
  485. ,sAgentCommMaxAmt
  486. ,ssAgentCommPcnt
  487. ,ssAgentCommMinAmt
  488. ,ssAgentCommMaxAmt
  489. ,pAgentCommPcnt
  490. ,pAgentCommMinAmt
  491. ,pAgentCommMaxAmt
  492. ,psAgentCommPcnt
  493. ,psAgentCommMinAmt
  494. ,psAgentCommMaxAmt
  495. ,bankCommPcnt
  496. ,bankCommMinAmt
  497. ,bankCommMaxAmt
  498. ,createdBy
  499. ,createdDate
  500. ,modifiedBy
  501. ,hasChanged
  502. '
  503. EXEC dbo.proc_paging
  504. @table
  505. ,@sql_filter
  506. ,@select_field_list
  507. ,@extra_field_list
  508. ,@sortBy
  509. ,@sortOrder
  510. ,@pageSize
  511. ,@pageNumber
  512. END
  513. ELSE IF @flag = 'reject'
  514. BEGIN
  515. IF NOT EXISTS (
  516. SELECT 'X' FROM dcDetail WITH(NOLOCK)
  517. WHERE dcDetailId = @dcDetailId
  518. )
  519. AND
  520. NOT EXISTS (
  521. SELECT 'X' FROM dcDetail WITH(NOLOCK)
  522. WHERE dcDetailId = @dcDetailId AND approvedBy IS NULL
  523. )
  524. BEGIN
  525. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @dcDetailId
  526. RETURN
  527. END
  528. IF EXISTS (SELECT 'X' FROM dcDetail WHERE approvedBy IS NULL AND dcDetailId = @dcDetailId)
  529. BEGIN --New record
  530. BEGIN TRANSACTION
  531. SET @modType = 'Reject'
  532. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @dcDetailId, @oldValue OUTPUT
  533. INSERT INTO #msg(errorCode, msg, id)
  534. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @dcDetailId, @user, @oldValue, @newValue
  535. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  536. BEGIN
  537. IF @@TRANCOUNT > 0
  538. ROLLBACK TRANSACTION
  539. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @dcDetailId
  540. RETURN
  541. END
  542. DELETE FROM dcDetail WHERE dcDetailId = @dcDetailId
  543. IF @@TRANCOUNT > 0
  544. COMMIT TRANSACTION
  545. END
  546. ELSE
  547. BEGIN
  548. BEGIN TRANSACTION
  549. SET @modType = 'Reject'
  550. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @dcDetailId, @oldValue OUTPUT
  551. INSERT INTO #msg(errorCode, msg, id)
  552. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @dcDetailId, @user, @oldValue, @newValue
  553. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  554. BEGIN
  555. IF @@TRANCOUNT > 0
  556. ROLLBACK TRANSACTION
  557. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @dcDetailId
  558. RETURN
  559. END
  560. DELETE FROM dcDetailHistory WHERE dcDetailId = @dcDetailId AND approvedBy IS NULL
  561. IF @@TRANCOUNT > 0
  562. COMMIT TRANSACTION
  563. END
  564. EXEC proc_errorHandler 0, 'Changes rejected successfully.', @dcDetailId
  565. END
  566. ELSE IF @flag = 'approve'
  567. BEGIN
  568. IF NOT EXISTS (
  569. SELECT 'X' FROM dcDetail WITH(NOLOCK)
  570. WHERE dcDetailId = @dcDetailId
  571. )
  572. AND
  573. NOT EXISTS (
  574. SELECT 'X' FROM dcDetail WITH(NOLOCK)
  575. WHERE dcDetailId = @dcDetailId AND approvedBy IS NULL
  576. )
  577. BEGIN
  578. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @dcDetailId
  579. RETURN
  580. END
  581. BEGIN TRANSACTION
  582. IF EXISTS (SELECT 'X' FROM dcDetail WHERE approvedBy IS NULL AND dcDetailId = @dcDetailId )
  583. SET @modType = 'I'
  584. ELSE
  585. SELECT @modType = modType FROM dcDetailHistory WHERE dcDetailId = @dcDetailId AND approvedBy IS NULL
  586. IF @modType = 'I'
  587. BEGIN --New record
  588. UPDATE dcDetail SET
  589. isActive = 'Y'
  590. ,approvedBy = @user
  591. ,approvedDate= GETDATE()
  592. WHERE dcDetailId = @dcDetailId
  593. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @dcDetailId, @newValue OUTPUT
  594. END
  595. ELSE IF @modType = 'U'
  596. BEGIN
  597. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @dcDetailId, @oldValue OUTPUT
  598. UPDATE main SET
  599. main.fromAmt = mode.fromAmt
  600. ,main.toAmt = mode.toAmt
  601. ,main.serviceChargePcnt = mode.serviceChargePcnt
  602. ,main.serviceChargeMinAmt = mode.serviceChargeMinAmt
  603. ,main.serviceChargeMaxAmt = mode.serviceChargeMaxAmt
  604. ,main.sAgentCommPcnt = mode.sAgentCommPcnt
  605. ,main.sAgentCommMinAmt = mode.sAgentCommMinAmt
  606. ,main.sAgentCommMaxAmt = mode.sAgentCommMaxAmt
  607. ,main.ssAgentCommPcnt = mode.ssAgentCommPcnt
  608. ,main.ssAgentCommMinAmt = mode.ssAgentCommMinAmt
  609. ,main.ssAgentCommMaxAmt = mode.ssAgentCommMaxAmt
  610. ,main.pAgentCommPcnt = mode.pAgentCommPcnt
  611. ,main.pAgentCommMinAmt = mode.pAgentCommMinAmt
  612. ,main.pAgentCommMaxAmt = mode.pAgentCommMaxAmt
  613. ,main.psAgentCommPcnt = mode.psAgentCommPcnt
  614. ,main.psAgentCommMinAmt = mode.psAgentCommMinAmt
  615. ,main.psAgentCommMaxAmt = mode.psAgentCommMaxAmt
  616. ,main.bankCommPcnt = mode.bankCommPcnt
  617. ,main.bankCommMinAmt = mode.bankCommMinAmt
  618. ,main.bankCommMaxAmt = mode.bankCommMaxAmt
  619. ,main.modifiedDate = GETDATE()
  620. ,main.modifiedBy = @user
  621. FROM dcDetail main
  622. INNER JOIN dcDetailHistory mode ON mode.dcDetailId = main.dcDetailId
  623. WHERE mode.dcDetailId = @dcDetailId AND mode.approvedBy IS NULL
  624. EXEC [dbo].proc_GetColumnToRow 'dcDetail', 'dcDetailId', @dcDetailId, @newValue OUTPUT
  625. END
  626. ELSE IF @modType = 'D'
  627. BEGIN
  628. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @dcDetailId, @oldValue OUTPUT
  629. UPDATE dcDetail SET
  630. isDeleted = 'Y'
  631. ,modifiedDate = GETDATE()
  632. ,modifiedBy = @user
  633. WHERE dcDetailId = @dcDetailId
  634. END
  635. UPDATE dcDetailHistory SET
  636. approvedBy = @user
  637. ,approvedDate = GETDATE()
  638. WHERE dcDetailId = @dcDetailId AND approvedBy IS NULL
  639. INSERT INTO #msg(errorCode, msg, id)
  640. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @dcDetailId, @user, @oldValue, @newValue
  641. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  642. BEGIN
  643. IF @@TRANCOUNT > 0
  644. ROLLBACK TRANSACTION
  645. EXEC proc_errorHandler 1, 'Could not approve the changes.', @dcDetailId
  646. RETURN
  647. END
  648. IF @@TRANCOUNT > 0
  649. COMMIT TRANSACTION
  650. EXEC proc_errorHandler 0, 'Changes approved successfully.', @dcDetailId
  651. END
  652. END TRY
  653. BEGIN CATCH
  654. IF @@TRANCOUNT > 0
  655. ROLLBACK TRANSACTION
  656. DECLARE @errorMessage VARCHAR(MAX)
  657. SET @errorMessage = ERROR_MESSAGE()
  658. EXEC proc_errorHandler 1, @errorMessage, @dcDetailId
  659. END CATCH
  660. GO