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.

628 lines
40 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_cisDetail] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER OFF
  7. GO
  8. CREATE proc [dbo].[proc_cisDetail]
  9. @flag VARCHAR(50) = NULL
  10. ,@user VARCHAR(30) = NULL
  11. ,@cisDetailId VARCHAR(30) = NULL
  12. ,@cisMasterId BIGINT = NULL
  13. ,@condition INT = NULL
  14. ,@collMode INT = NULL
  15. ,@paymentMode INT = NULL
  16. ,@tranCount INT = NULL
  17. ,@amount MONEY = NULL
  18. ,@period INT = NULL
  19. ,@isEnable CHAR(1) = NULL
  20. ,@criteria VARCHAR(MAX) = NULL
  21. ,@criteriaValue VARCHAR(MAX) = NULL
  22. ,@sortBy VARCHAR(50) = NULL
  23. ,@sortOrder VARCHAR(5) = NULL
  24. ,@pageSize INT = NULL
  25. ,@pageNumber INT = NULL
  26. AS
  27. SET NOCOUNT ON
  28. SET XACT_ABORT ON
  29. BEGIN TRY
  30. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  31. DECLARE
  32. @sql VARCHAR(MAX)
  33. ,@oldValue VARCHAR(MAX)
  34. ,@newValue VARCHAR(MAX)
  35. ,@module VARCHAR(10)
  36. ,@tableAlias VARCHAR(100)
  37. ,@logIdentifier VARCHAR(50)
  38. ,@logParamMod VARCHAR(100)
  39. ,@logParamMain VARCHAR(100)
  40. ,@table VARCHAR(MAX)
  41. ,@select_field_list VARCHAR(MAX)
  42. ,@extra_field_list VARCHAR(MAX)
  43. ,@sql_filter VARCHAR(MAX)
  44. ,@id VARCHAR(10)
  45. ,@modType VARCHAR(6)
  46. ,@ApprovedFunctionId INT
  47. SELECT
  48. @ApprovedFunctionId = 20601130
  49. ,@logIdentifier = 'cisDetailId'
  50. ,@logParamMain = 'cisDetail'
  51. ,@logParamMod = 'cisDetailHistory'
  52. ,@module = '20'
  53. ,@tableAlias = 'Compliance ID Setup Detail'
  54. DECLARE @criteriaList TABLE(criteriaId INT, valueId VARCHAR(50))
  55. IF @flag = 'i'
  56. BEGIN
  57. BEGIN TRANSACTION
  58. INSERT INTO cisDetail (
  59. cisMasterId
  60. ,condition
  61. ,collMode
  62. ,paymentMode
  63. ,tranCount
  64. ,amount
  65. ,period
  66. ,isEnable
  67. ,createdBy
  68. ,createdDate
  69. )
  70. SELECT
  71. @cisMasterId
  72. ,@condition
  73. ,@collMode
  74. ,@paymentMode
  75. ,@tranCount
  76. ,@amount
  77. ,@period
  78. ,'Y'
  79. ,@user
  80. ,GETDATE()
  81. SET @cisDetailId = SCOPE_IDENTITY()
  82. INSERT @criteriaList(criteriaId, valueId)
  83. SELECT
  84. criteriaId = CASE WHEN ISNUMERIC(a.value) = 0 THEN NULL ELSE CAST(a.value AS INT) END
  85. ,valueId = CASE WHEN ISNUMERIC(b.value) = 0 THEN NULL ELSE CAST(b.value AS INT) END
  86. FROM dbo.Split(',',@criteria) a
  87. INNER JOIN dbo.Split(',', @criteriaValue) b ON a.id = b.id
  88. INSERT cisCriteriaHistory(cisDetailId, criteriaId, idTypeId, modType, createdBy, createdDate)
  89. SELECT @cisDetailId, criteriaId, valueId, 'U', @user, GETDATE() FROM @criteriaList
  90. WHERE criteriaId IS NOT NULL
  91. IF @@TRANCOUNT > 0
  92. COMMIT TRANSACTION
  93. EXEC proc_errorHandler 0, 'Record has been added successfully.', @cisDetailId
  94. END
  95. ELSE IF @flag = 'a'
  96. BEGIN
  97. IF EXISTS (
  98. SELECT 'X' FROM cisDetailHistory WITH(NOLOCK)
  99. WHERE cisDetailId = @cisDetailId AND createdBy = @user AND approvedBy IS NULL
  100. )
  101. BEGIN
  102. SELECT
  103. mode.*
  104. ,amount1 = CAST(mode.amount as DECIMAL(38, 2))
  105. ,criteria = dbo.FNAGetCsvValue(@cisDetailId, 1001, @user)
  106. ,criteriaValue = dbo.FNAGetCsvValue(@cisDetailId, 1002, @user)
  107. FROM cisDetailHistory mode WITH(NOLOCK)
  108. INNER JOIN cisDetail main WITH(NOLOCK) ON mode.cisDetailId = main.cisDetailId
  109. WHERE mode.cisDetailId= @cisDetailId AND mode.approvedBy IS NULL
  110. END
  111. ELSE
  112. BEGIN
  113. SELECT
  114. *
  115. ,amount1 = CAST(amount as DECIMAL(38, 2))
  116. ,criteria = dbo.FNAGetCsvValue(@cisDetailId, 1001, @user)
  117. ,criteriaValue = dbo.FNAGetCsvValue(@cisDetailId, 1002, @user)
  118. FROM cisDetail WITH(NOLOCK) WHERE cisDetailId = @cisDetailId
  119. END
  120. END
  121. ELSE IF @flag = 'u'
  122. BEGIN
  123. IF EXISTS (
  124. SELECT 'X' FROM cisDetail WITH(NOLOCK)
  125. WHERE cisDetailId = @cisDetailId AND ( createdBy <> @user AND approvedBy IS NULL)
  126. )
  127. BEGIN
  128. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @cisDetailId
  129. RETURN
  130. END
  131. IF EXISTS (
  132. SELECT 'X' FROM cisDetailHistory WITH(NOLOCK)
  133. WHERE cisDetailId = @cisDetailId AND approvedBy IS NULL AND (createdBy<> @user OR modType = 'D')
  134. )
  135. BEGIN
  136. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @cisDetailId
  137. RETURN
  138. END
  139. BEGIN TRANSACTION
  140. IF EXISTS (SELECT 'X' FROM cisDetail WHERE approvedBy IS NULL AND cisDetailId = @cisDetailId)
  141. BEGIN
  142. UPDATE cisDetail SET
  143. cisMasterId = @cisMasterId
  144. ,condition = @condition
  145. ,collMode = @collMode
  146. ,paymentMode = @paymentMode
  147. ,tranCount = @tranCount
  148. ,amount = @amount
  149. ,period = @period
  150. ,isEnable = @isEnable
  151. ,modifiedBy = @user
  152. ,modifiedDate = GETDATE()
  153. WHERE cisDetailId = @cisDetailId
  154. DELETE FROM cisCriteriaHistory WHERE cisDetailId = @cisDetailId
  155. INSERT @criteriaList(criteriaId, valueId)
  156. SELECT
  157. criteriaId = CASE WHEN ISNUMERIC(a.value) = 0 THEN NULL ELSE CAST(a.value AS INT) END
  158. ,valueId = CASE WHEN ISNUMERIC(b.value) = 0 THEN NULL ELSE CAST(b.value AS INT) END
  159. FROM dbo.Split(',',@criteria) a
  160. INNER JOIN dbo.Split(',', @criteriaValue) b ON a.id = b.id
  161. INSERT cisCriteriaHistory(cisDetailId, criteriaId, idTypeId, modType, createdBy, createdDate)
  162. SELECT @cisDetailId, criteriaId, valueId, 'U', @user, GETDATE() FROM @criteriaList
  163. WHERE criteriaId IS NOT NULL
  164. END
  165. ELSE
  166. BEGIN
  167. DELETE FROM cisDetailHistory WHERE cisDetailId = @cisDetailId AND approvedBy IS NULL
  168. INSERT INTO cisDetailHistory(
  169. cisDetailId
  170. ,condition
  171. ,collMode
  172. ,paymentMode
  173. ,tranCount
  174. ,amount
  175. ,period
  176. ,isEnable
  177. ,createdBy
  178. ,createdDate
  179. ,modType
  180. )
  181. SELECT
  182. @cisDetailId
  183. ,@condition
  184. ,@collMode
  185. ,@paymentMode
  186. ,@tranCount
  187. ,@amount
  188. ,@period
  189. ,@isEnable
  190. ,@user
  191. ,GETDATE()
  192. ,'U'
  193. DELETE FROM cisCriteriaHistory WHERE cisDetailId = @cisDetailId
  194. INSERT @criteriaList(criteriaId, valueId)
  195. SELECT
  196. criteriaId = CASE WHEN ISNUMERIC(a.value) = 0 THEN NULL ELSE CAST(a.value AS INT) END
  197. ,valueId = CASE WHEN ISNUMERIC(b.value) = 0 THEN NULL ELSE CAST(b.value AS INT) END
  198. FROM dbo.Split(',',@criteria) a
  199. INNER JOIN dbo.Split(',', @criteriaValue) b ON a.id = b.id
  200. INSERT cisCriteriaHistory(cisDetailId, criteriaId, idTypeId, modType, createdBy, createdDate)
  201. SELECT @cisDetailId, criteriaId, valueId, 'U', @user, GETDATE() FROM @criteriaList
  202. WHERE criteriaId IS NOT NULL
  203. END
  204. IF @@TRANCOUNT > 0
  205. COMMIT TRANSACTION
  206. EXEC proc_errorHandler 0, 'Record updated successfully.', @cisDetailId
  207. END
  208. ELSE IF @flag = 'd'
  209. BEGIN
  210. IF EXISTS (
  211. SELECT 'X' FROM cisDetail WITH(NOLOCK)
  212. WHERE cisDetailId = @cisDetailId AND (createdBy <> @user AND approvedBy IS NULL)
  213. )
  214. BEGIN
  215. EXEC proc_errorHandler 1, '<center>You can not delete this record. <br /> You are trying to perform an illegal operation.</center>', @cisDetailId
  216. RETURN
  217. END
  218. IF EXISTS (
  219. SELECT 'X' FROM cisDetailHistory WITH(NOLOCK)
  220. WHERE cisDetailId = @cisDetailId AND approvedBy IS NULL
  221. )
  222. BEGIN
  223. EXEC proc_errorHandler 1, '<center>You can not delete this record. <br /> Previous modification has not been approved yet.</center>', @cisDetailId
  224. RETURN
  225. END
  226. IF EXISTS(SELECT 'X' FROM cisDetail WITH(NOLOCK) WHERE cisDetailId = @cisDetailId AND createdBy = @user AND approvedBy IS NULL)
  227. BEGIN
  228. DELETE FROM cisDetail WHERE cisDetailId = @cisDetailId
  229. DELETE FROM cisCriteriaHistory WHERE cisDetailId = @cisDetailId
  230. EXEC proc_errorHandler 0, 'Record deleted successfully.', @cisDetailId
  231. RETURN
  232. END
  233. INSERT INTO cisDetailHistory(
  234. cisDetailId
  235. ,condition
  236. ,collMode
  237. ,paymentMode
  238. ,tranCount
  239. ,amount
  240. ,period
  241. ,isEnable
  242. ,createdBy
  243. ,createdDate
  244. ,modType
  245. )
  246. SELECT
  247. cisDetailId
  248. ,condition
  249. ,collMode
  250. ,paymentMode
  251. ,tranCount
  252. ,amount
  253. ,period
  254. ,isEnable
  255. ,@user
  256. ,GETDATE()
  257. ,'D'
  258. FROM cisDetail
  259. WHERE cisDetailId = @cisDetailId
  260. SET @modType = 'delete'
  261. INSERT INTO cisCriteriaHistory(
  262. cisCriteriaId
  263. ,cisDetailId
  264. ,criteriaId
  265. ,idTypeId
  266. ,createdBy
  267. ,createdDate
  268. ,modType
  269. )
  270. SELECT
  271. cisCriteriaId
  272. ,cisDetailId
  273. ,criteriaId
  274. ,idTypeId
  275. ,@user
  276. ,GETDATE()
  277. ,'D'
  278. FROM cisCriteria WHERE cisDetailId = @cisDetailId
  279. EXEC proc_errorHandler 0, 'Record deleted successfully.', @cisDetailId
  280. END
  281. ELSE IF @flag IN ('s')
  282. BEGIN
  283. IF @sortBy IS NULL
  284. SET @sortBy = 'condition'
  285. IF @sortOrder IS NULL
  286. SET @sortOrder = 'ASC'
  287. SET @pageNumber = 1
  288. SET @pageSize = 10000
  289. SET @table = '(
  290. SELECT
  291. cisDetailId = ISNULL(mode.cisDetailId, main.cisDetailId)
  292. ,condition = ISNULL(mode.condition, main.condition)
  293. ,collMode = ISNULL(mode.collMode, main.collMode)
  294. ,paymentMode = ISNULL(mode.paymentMode, main.paymentMode)
  295. ,tranCount = ISNULL(mode.tranCount, main.tranCount)
  296. ,amount = ISNULL(mode.amount, main.amount)
  297. ,period = ISNULL(mode.period, main.period)
  298. ,isEnable = ISNULL(mode.isEnable, main.isEnable)
  299. ,main.createdBy
  300. ,main.createdDate
  301. ,modifiedBy = CASE WHEN main.approvedBy IS NULL THEN main.createdBy ELSE mode.createdBy END
  302. ,modifiedDate = CASE WHEN main.approvedBy IS NULL THEN main.createdDate ELSE mode.createdDate END
  303. ,hasChanged = CASE WHEN (main.approvedBy IS NULL) OR
  304. (mode.cisDetailId IS NOT NULL)
  305. THEN ''Y'' ELSE ''N'' END
  306. FROM cisDetail main WITH(NOLOCK)
  307. LEFT JOIN cisDetailHistory mode ON main.cisDetailId = mode.cisDetailId AND mode.approvedBy IS NULL
  308. AND (
  309. mode.createdBy = ''' + @user + '''
  310. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  311. )
  312. WHERE main.cisMasterId = ' + CAST (@cisMasterId AS VARCHAR) + ' AND ISNULL(main.isDeleted, ''N'') <> ''Y''
  313. AND (
  314. main.approvedBy IS NOT NULL
  315. OR main.createdBy = ''' + @user + '''
  316. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  317. )
  318. --AND NOT(ISNULL(mode.modType, '''') = ''D'' AND mode.createdBy = ''' + @user + ''')
  319. ) '
  320. SET @table = '(
  321. SELECT
  322. cisDetailId
  323. ,condition
  324. ,condition1 = ISNULL(con.detailTitle,''All'')
  325. ,collMode
  326. ,collMode1 = ISNULL(cm.detailTitle, ''All'')
  327. ,paymentMode
  328. ,paymentMode1 = ISNULL(pm.typeTitle, ''All'')
  329. ,tranCount
  330. ,amount
  331. ,period
  332. ,isEnable
  333. ,main.createdBy
  334. ,main.createdDate
  335. ,main.modifiedBy
  336. ,hasChanged
  337. FROM ' + @table + ' main
  338. LEFT JOIN staticDataValue con WITH(NOLOCK) ON main.condition = con.valueId
  339. LEFT JOIN staticDataValue cm WITH(NOLOCK) ON main.collMode = cm.valueId
  340. LEFT JOIN serviceTypeMaster pm WITH(NOLOCK) ON main.paymentMode = pm.serviceTypeId
  341. WHERE main.cisDetailId NOT IN(
  342. SELECT
  343. cisDetailId
  344. FROM cisDetailHistory cdh WITH(NOLOCK)
  345. WHERE createdBy = ''' + @user + ''' AND modType = ''D''
  346. )
  347. ) x'
  348. SET @sql_filter = ''
  349. IF @condition IS NOT NULL
  350. SET @sql_filter = @sql_filter + ' AND condition = ' + CAST(@condition AS VARCHAR(50))
  351. IF @collMode IS NOT NULL
  352. SET @sql_filter = @sql_filter + ' AND collMode = ' + CAST(@collMode AS VARCHAR(50))
  353. IF @paymentMode IS NOT NULL
  354. SET @sql_filter = @sql_filter + ' AND paymentMode = ' + CAST(@paymentMode AS VARCHAR(50))
  355. IF @isEnable IS NOT NULL
  356. SET @sql_filter = @sql_filter + ' AND isEnable = ''' + CAST(@isEnable AS VARCHAR(50)) + ''''
  357. SET @select_field_list ='
  358. cisDetailId
  359. ,condition
  360. ,condition1
  361. ,collMode
  362. ,collMode1
  363. ,paymentMode
  364. ,paymentMode1
  365. ,tranCount
  366. ,amount
  367. ,period
  368. ,isEnable
  369. ,createdBy
  370. ,createdDate
  371. ,modifiedBy
  372. ,hasChanged
  373. '
  374. EXEC dbo.proc_paging
  375. @table
  376. ,@sql_filter
  377. ,@select_field_list
  378. ,@extra_field_list
  379. ,@sortBy
  380. ,@sortOrder
  381. ,@pageSize
  382. ,@pageNumber
  383. END
  384. ELSE IF @flag = 'reject'
  385. BEGIN
  386. IF NOT EXISTS (
  387. SELECT 'X' FROM cisDetail WITH(NOLOCK)
  388. WHERE cisDetailId = @cisDetailId
  389. )
  390. AND
  391. NOT EXISTS (
  392. SELECT 'X' FROM cisDetail WITH(NOLOCK)
  393. WHERE cisDetailId = @cisDetailId AND approvedBy IS NULL
  394. )
  395. BEGIN
  396. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @cisDetailId
  397. RETURN
  398. END
  399. IF EXISTS (SELECT 'X' FROM cisDetail WHERE approvedBy IS NULL AND cisDetailId = @cisDetailId)
  400. BEGIN --New record
  401. BEGIN TRANSACTION
  402. SET @modType = 'Reject'
  403. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @cisDetailId, @oldValue OUTPUT
  404. INSERT INTO #msg(errorCode, msg, id)
  405. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @cisDetailId, @user, @oldValue, @newValue
  406. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  407. BEGIN
  408. IF @@TRANCOUNT > 0
  409. ROLLBACK TRANSACTION
  410. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @cisDetailId
  411. RETURN
  412. END
  413. DELETE FROM cisDetail WHERE cisDetailId = @cisDetailId
  414. DELETE FROM cisCriteriaHistory WHERE cisDetailId = @cisDetailId AND approvedBy IS NULL
  415. IF @@TRANCOUNT > 0
  416. COMMIT TRANSACTION
  417. END
  418. ELSE
  419. BEGIN
  420. BEGIN TRANSACTION
  421. SET @modType = 'Reject'
  422. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @cisDetailId, @oldValue OUTPUT
  423. INSERT INTO #msg(errorCode, msg, id)
  424. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @cisDetailId, @user, @oldValue, @newValue
  425. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  426. BEGIN
  427. IF @@TRANCOUNT > 0
  428. ROLLBACK TRANSACTION
  429. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @cisDetailId
  430. RETURN
  431. END
  432. DELETE FROM cisDetailHistory WHERE cisDetailId = @cisDetailId AND approvedBy IS NULL
  433. DELETE FROM cisCriteriaHistory WHERE cisDetailId = @cisDetailId AND approvedBy IS NULL
  434. IF @@TRANCOUNT > 0
  435. COMMIT TRANSACTION
  436. END
  437. EXEC proc_errorHandler 0, 'Changes rejected successfully.', @cisDetailId
  438. END
  439. ELSE IF @flag = 'approve'
  440. BEGIN
  441. IF NOT EXISTS (
  442. SELECT 'X' FROM cisDetail WITH(NOLOCK)
  443. WHERE cisDetailId = @cisDetailId
  444. )
  445. AND
  446. NOT EXISTS (
  447. SELECT 'X' FROM cisDetail WITH(NOLOCK)
  448. WHERE cisDetailId = @cisDetailId AND approvedBy IS NULL
  449. )
  450. BEGIN
  451. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @cisDetailId
  452. RETURN
  453. END
  454. BEGIN TRANSACTION
  455. DECLARE @newCriteriaValue VARCHAR(MAX)
  456. IF EXISTS (SELECT 'X' FROM cisDetail WHERE approvedBy IS NULL AND cisDetailId = @cisDetailId )
  457. SET @modType = 'I'
  458. ELSE
  459. SELECT @modType = modType FROM cisDetailHistory WHERE cisDetailId = @cisDetailId AND approvedBy IS NULL
  460. IF @modType = 'I'
  461. BEGIN --New record
  462. UPDATE cisDetail SET
  463. isActive = 'Y'
  464. ,approvedBy = @user
  465. ,approvedDate= GETDATE()
  466. WHERE cisDetailId = @cisDetailId
  467. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @cisDetailId, @newValue OUTPUT
  468. SELECT
  469. @newCriteriaValue = ISNULL(@newValue + ',', '') + CAST(criteriaId AS VARCHAR(50))
  470. FROM cisCriteriaHistory
  471. WHERE cisDetailId = @cisDetailId AND approvedBy IS NULL
  472. EXEC [dbo].proc_GetColumnToRow 'cisCriteria', 'cisDetailId', @cisDetailId, @oldValue OUTPUT
  473. DELETE FROM cisCriteria WHERE cisDetailId = @cisDetailId
  474. INSERT cisCriteria(criteriaId, idTypeId, cisDetailId, createdBy, createdDate)
  475. SELECT criteriaId, idTypeId, @cisDetailId, @user, GETDATE() FROM cisCriteriaHistory WHERE cisDetailId = @cisDetailId AND approvedBy IS NULL
  476. INSERT INTO #msg(errorCode, msg, id)
  477. EXEC proc_applicationLogs 'i', NULL, 'update', 'Compliance ID Criteria', @cisDetailId, @user, @oldValue, @newCriteriaValue
  478. END
  479. ELSE IF @modType = 'U'
  480. BEGIN
  481. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @cisDetailId, @oldValue OUTPUT
  482. UPDATE main SET
  483. main.condition = mode.condition
  484. ,main.collMode = mode.collMode
  485. ,main.paymentMode = mode.paymentMode
  486. ,main.tranCount = mode.tranCount
  487. ,main.amount = mode.amount
  488. ,main.period = mode.period
  489. ,main.modifiedDate = GETDATE()
  490. ,main.modifiedBy = @user
  491. FROM cisDetail main
  492. INNER JOIN cisDetailHistory mode ON mode.cisDetailId = main.cisDetailId
  493. WHERE mode.cisDetailId = @cisDetailId AND mode.approvedBy IS NULL
  494. EXEC [dbo].proc_GetColumnToRow 'cisDetail', 'cisDetailId', @cisDetailId, @newValue OUTPUT
  495. SELECT
  496. @newCriteriaValue = ISNULL(@newValue + ',', '') + CAST(criteriaId AS VARCHAR(50))
  497. FROM cisCriteriaHistory
  498. WHERE cisDetailId = @cisDetailId
  499. EXEC [dbo].proc_GetColumnToRow 'cisCriteria', 'cisDetailId', @cisDetailId, @oldValue OUTPUT
  500. DELETE FROM cisCriteria WHERE cisDetailId = @cisDetailId
  501. INSERT cisCriteria(criteriaId, idTypeId, cisDetailId, createdBy, createdDate)
  502. SELECT criteriaId, idTypeId, @cisDetailId, @user, GETDATE() FROM cisCriteriaHistory WHERE cisDetailId = @cisDetailId AND approvedBy IS NULL
  503. INSERT INTO #msg(errorCode, msg, id)
  504. EXEC proc_applicationLogs 'i', NULL, 'update', 'Compliance ID Criteria', @cisDetailId, @user, @oldValue, @newCriteriaValue
  505. END
  506. ELSE IF @modType = 'D'
  507. BEGIN
  508. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @cisDetailId, @oldValue OUTPUT
  509. UPDATE cisDetail SET
  510. isDeleted = 'Y'
  511. ,modifiedDate = GETDATE()
  512. ,modifiedBy = @user
  513. WHERE cisDetailId = @cisDetailId
  514. DELETE FROM cisCriteria WHERE cisDetailId = @cisDetailId
  515. END
  516. UPDATE cisDetailHistory SET
  517. approvedBy = @user
  518. ,approvedDate = GETDATE()
  519. WHERE cisDetailId = @cisDetailId AND approvedBy IS NULL
  520. UPDATE cisCriteriaHistory SET
  521. approvedBy = @user
  522. ,approvedDate = GETDATE()
  523. WHERE cisDetailId = @cisDetailId AND approvedBy IS NULL
  524. INSERT INTO #msg(errorCode, msg, id)
  525. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @cisDetailId, @user, @oldValue, @newValue
  526. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  527. BEGIN
  528. IF @@TRANCOUNT > 0
  529. ROLLBACK TRANSACTION
  530. EXEC proc_errorHandler 1, 'Could not approve the changes.', @cisDetailId
  531. RETURN
  532. END
  533. IF @@TRANCOUNT > 0
  534. COMMIT TRANSACTION
  535. EXEC proc_errorHandler 0, 'Changes approved successfully.', @cisDetailId
  536. END
  537. ELSE IF @flag = 'disabled'
  538. BEGIN
  539. --UPDATE csDetail SET isDisabled=case when isDisabled='y' then 'n' else 'y' end where csDetailId=@csDetailId
  540. --EXEC proc_errorHandler 0, 'Record disabled successfully.', @csDetailId
  541. IF (SELECT ISNULL(isEnable,'N') FROM cisDetail WHERE cisDetailId = @cisDetailId) = 'N'
  542. BEGIN
  543. UPDATE cisDetail SET isEnable='Y' WHERE cisDetailId = @cisDetailId
  544. EXEC proc_errorHandler 0, 'Record enabled successfully.', @cisDetailId
  545. RETURN;
  546. END
  547. ELSE
  548. BEGIN
  549. UPDATE cisDetail SET isEnable='N' WHERE cisDetailId = @cisDetailId
  550. EXEC proc_errorHandler 0, 'Record disabled successfully.', @cisDetailId
  551. RETURN;
  552. END
  553. IF (SELECT ISNULL(isEnable,'N') FROM cisDetailHistory WHERE cisDetailId = @cisDetailId)='N'
  554. BEGIN
  555. UPDATE cisDetailHistory SET isEnable='Y' WHERE cisDetailId = @cisDetailId
  556. EXEC proc_errorHandler 0, 'Record enabled successfully.', @cisDetailId
  557. RETURN;
  558. END
  559. ELSE
  560. BEGIN
  561. UPDATE cisDetailHistory SET isEnable='N' WHERE cisDetailId = @cisDetailId
  562. EXEC proc_errorHandler 0, 'Record disabled successfully.', @cisDetailId
  563. RETURN;
  564. END
  565. END
  566. END TRY
  567. BEGIN CATCH
  568. IF @@TRANCOUNT > 0
  569. ROLLBACK TRANSACTION
  570. DECLARE @errorMessage VARCHAR(MAX)
  571. SET @errorMessage = ERROR_MESSAGE()
  572. EXEC proc_errorHandler 1, @errorMessage, @cisDetailId
  573. END CATCH
  574. GO