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.

759 lines
50 KiB

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