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.

573 lines
17 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_userWiseTxnLimit] Script Date: 7/4/2019 11:35:48 AM ******/
  4. DROP PROCEDURE [dbo].[proc_userWiseTxnLimit]
  5. GO
  6. /****** Object: StoredProcedure [dbo].[proc_userWiseTxnLimit] Script Date: 7/4/2019 11:35:48 AM ******/
  7. SET ANSI_NULLS ON
  8. GO
  9. SET QUOTED_IDENTIFIER ON
  10. GO
  11. CREATE proc [dbo].[proc_userWiseTxnLimit]
  12. @flag VARCHAR(50) = NULL
  13. ,@user VARCHAR(30) = NULL
  14. ,@limitId INT = NULL
  15. ,@userId INT = NULL
  16. ,@sendPerDay MONEY = NULL
  17. ,@sendPerTxn MONEY = NULL
  18. ,@payPerDay MONEY = NULL
  19. ,@payPerTxn MONEY = NULL
  20. ,@sendTodays MONEY = NULL
  21. ,@payTodays MONEY = NULL
  22. ,@cancelPerDay MONEY = NULL
  23. ,@cancelPerTxn MONEY = NULL
  24. ,@cancelTodays MONEY = NULL
  25. ,@userName VARCHAR(200) = NULL
  26. ,@agentName VARCHAR(200) = NULL
  27. ,@createdBy VARCHAR(100) = NULL
  28. ,@approvedBy VARCHAR(100) = NULL
  29. ,@haschanged CHAR(1) = NULL
  30. ,@sortBy VARCHAR(50) = NULL
  31. ,@sortOrder VARCHAR(5) = NULL
  32. ,@pageSize INT = NULL
  33. ,@pageNumber INT = NULL
  34. AS
  35. SET NOCOUNT ON
  36. SET XACT_ABORT ON
  37. BEGIN TRY
  38. CREATE TABLE #msg(errorCode INT, msg VARCHAR(100), id INT)
  39. DECLARE
  40. @sql VARCHAR(MAX)
  41. ,@oldValue VARCHAR(MAX)
  42. ,@newValue VARCHAR(MAX)
  43. ,@module VARCHAR(10)
  44. ,@tableAlias VARCHAR(100)
  45. ,@logIdentifier VARCHAR(50)
  46. ,@logParamMod VARCHAR(100)
  47. ,@logParamMain VARCHAR(100)
  48. ,@table VARCHAR(MAX)
  49. ,@select_field_list VARCHAR(MAX)
  50. ,@extra_field_list VARCHAR(MAX)
  51. ,@sql_filter VARCHAR(MAX)
  52. ,@functionId INT
  53. ,@id VARCHAR(10)
  54. ,@modType VARCHAR(6)
  55. ,@ApprovedFunctionId INT
  56. SELECT
  57. @functionId = 20231200
  58. ,@logIdentifier = 'limitId'
  59. ,@logParamMain = 'userWiseTxnLimit'
  60. ,@logParamMod = 'userWiseTxnLimitHistory'
  61. ,@module = '20'
  62. ,@tableAlias = 'User Wise Transaction Limit'
  63. ,@ApprovedFunctionId = 20231230
  64. IF @flag IN ('s')
  65. BEGIN
  66. SET @table = '(
  67. SELECT
  68. limitId = ISNULL(mode.limitId, main.limitId)
  69. ,userId = ISNULL(mode.userId,main.userId)
  70. ,sendPerDay = ISNULL(mode.sendPerDay,main.sendPerDay)
  71. ,sendPerTxn = ISNULL(mode.sendPerTxn,main.sendPerTxn)
  72. ,sendTodays = ISNULL(mode.sendTodays,main.sendTodays)
  73. ,payPerDay = ISNULL(mode.payPerDay,main.payPerDay)
  74. ,payPerTxn = ISNULL(mode.payPerTxn,main.payPerTxn)
  75. ,payTodays = ISNULL(mode.payTodays,main.payTodays)
  76. ,cancelPerDay = ISNULL(mode.cancelPerDay,main.cancelPerDay)
  77. ,cancelPerTxn = ISNULL(mode.cancelPerTxn,main.cancelPerTxn)
  78. ,cancelTodays = ISNULL(mode.cancelTodays,main.cancelTodays)
  79. ,main.createdBy
  80. ,main.createdDate
  81. ,modifiedDate = CASE WHEN main.approvedBy IS NULL THEN main.createdDate ELSE mode.createdDate END
  82. ,modifiedBy = CASE WHEN main.approvedBy IS NULL THEN main.createdBy ELSE mode.createdBy END
  83. ,hasChanged = CASE WHEN (main.approvedBy IS NULL) OR
  84. (mode.limitId IS NOT NULL and mode.approvedBy is null) THEN ''Y'' ELSE ''N'' END
  85. FROM userWiseTxnLimit main WITH(NOLOCK)
  86. LEFT JOIN userWiseTxnLimitHistory mode ON main.limitId = mode.limitId AND mode.approvedBy IS NULL
  87. AND ( mode.createdBy = ''' + @user + '''
  88. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  89. )
  90. WHERE ISNULL(main.isDeleted, ''N'') <> ''Y''
  91. AND (
  92. main.approvedBy IS NOT NULL
  93. OR main.createdBy = ''' + @user + '''
  94. OR ''Y'' = dbo.FNAHasRight(''' + @user + ''',' + CAST(@ApprovedFunctionId AS VARCHAR) + ')
  95. )
  96. --AND NOT(ISNULL(mode.modType, '''') = ''D'' AND mode.createdBy = ''' + @user + ''')
  97. ) '
  98. END
  99. IF @flag = 'i'
  100. BEGIN
  101. IF EXISTS(SELECT 'X' FROM userWiseTxnLimit WHERE userId = @userId AND ISNULL(isDeleted, 'N') = 'N')
  102. BEGIN
  103. EXEC proc_errorHandler 1, 'Record already exists', NULL
  104. RETURN
  105. END
  106. BEGIN TRANSACTION
  107. --SELECT * FROM userWiseTxnLimit
  108. INSERT INTO userWiseTxnLimit(
  109. userId
  110. ,sendPerDay
  111. ,sendPerTxn
  112. ,payPerDay
  113. ,payPerTxn
  114. ,cancelPerDay
  115. ,cancelPerTxn
  116. ,createdBy
  117. ,createdDate
  118. )
  119. SELECT
  120. @userId
  121. ,@sendPerDay
  122. ,@sendPerTxn
  123. ,@payPerDay
  124. ,@payPerTxn
  125. ,@cancelPerDay
  126. ,@cancelPerTxn
  127. ,@user
  128. ,GETDATE()
  129. SET @limitId = SCOPE_IDENTITY()
  130. COMMIT TRANSACTION
  131. EXEC proc_errorHandler 0, 'Record has been added successfully.', @limitId
  132. END
  133. ELSE IF @flag = 'a'
  134. BEGIN
  135. IF EXISTS (SELECT 'X' FROM userWiseTxnLimitHistory WITH(NOLOCK) WHERE limitId = @limitId AND approvedBy IS NULL AND createdBy = @user)
  136. BEGIN
  137. SELECT * FROM userWiseTxnLimitHistory WITH(NOLOCK) WHERE limitId= @limitId
  138. END
  139. ELSE
  140. BEGIN
  141. SELECT limitId,
  142. userId,
  143. isnull(sendPerDay,0) sendPerDay,
  144. isnull(sendPerTxn,0) sendPerTxn,
  145. ISNULL(sendTodays,0) sendTodays,
  146. ISNULL(payPerDay,0) payPerDay,
  147. ISNULL(payPerTxn,0) payPerTxn,
  148. ISNULL(payTodays,0) payTodays,
  149. ISNULL(cancelPerDay,0) cancelPerDay,
  150. ISNULL(cancelPerTxn,0) cancelPerTxn,
  151. ISNULL(cancelTodays,0) cancelTodays
  152. FROM userWiseTxnLimit WITH(NOLOCK) WHERE limitId = @limitId
  153. END
  154. END
  155. ELSE IF @flag = 'u'
  156. BEGIN
  157. IF EXISTS (SELECT 'X' FROM userWiseTxnLimit WITH(NOLOCK) WHERE limitId = @limitId AND ( createdBy <> @user AND approvedBy IS NULL))
  158. BEGIN
  159. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @limitId
  160. RETURN
  161. END
  162. IF EXISTS (SELECT 'X' FROM userWiseTxnLimitHistory WITH(NOLOCK) WHERE limitId = @limitId AND approvedBy IS NULL AND createdBy <> @user)
  163. BEGIN
  164. EXEC proc_errorHandler 1, '<center>You can not modify this record. <br /> You are trying to perform an illegal operation.</center>', @limitId
  165. RETURN
  166. END
  167. BEGIN TRANSACTION
  168. IF EXISTS (SELECT 'X' FROM userWiseTxnLimit WHERE approvedBy IS NULL AND limitId = @limitId AND createdBy = @user)
  169. BEGIN
  170. --SELECT * FROM userWiseTxnLimit
  171. UPDATE userWiseTxnLimit SET
  172. userId = @userId
  173. ,sendPerDay = @sendPerDay
  174. ,sendPerTxn = @sendPerTxn
  175. ,payPerDay = @payPerDay
  176. ,payPerTxn = @payPerTxn
  177. ,cancelPerDay = @cancelPerDay
  178. ,cancelPerTxn = @cancelPerTxn
  179. WHERE limitId = @limitId
  180. END
  181. ELSE
  182. BEGIN
  183. --DELETE FROM userWiseTxnLimitHistory WHERE limitId = @limitId
  184. --select * from userWiseTxnLimitHistory
  185. INSERT INTO userWiseTxnLimitHistory(
  186. limitId
  187. ,userId
  188. ,sendPerDay
  189. ,sendPerTxn
  190. ,payPerDay
  191. ,payPerTxn
  192. ,cancelPerDay
  193. ,cancelPerTxn
  194. ,createdBy
  195. ,createdDate
  196. ,modType
  197. )
  198. SELECT
  199. @limitId
  200. ,@userId
  201. ,@sendPerDay
  202. ,@sendPerTxn
  203. ,@payPerDay
  204. ,@payPerTxn
  205. ,@cancelPerDay
  206. ,@cancelPerTxn
  207. ,@user
  208. ,GETDATE()
  209. ,'U'
  210. SET @modType = 'update'
  211. END
  212. COMMIT TRANSACTION
  213. EXEC proc_errorHandler 0, 'Record updated successfully.', @limitId
  214. END
  215. ELSE IF @flag = 'd'
  216. BEGIN
  217. IF EXISTS (SELECT 'X' FROM userWiseTxnLimit WITH(NOLOCK) WHERE limitId = @limitId AND (createdBy <> @user AND approvedBy IS NULL))
  218. BEGIN
  219. EXEC proc_errorHandler 1, 'You can not delete this record. Previous Modification has not been approved yet.', @limitId
  220. RETURN
  221. END
  222. IF EXISTS (SELECT 'X' FROM userWiseTxnLimitHistory WITH(NOLOCK) WHERE limitId = @limitId AND approvedBy IS NULL and createdBy <> @user)
  223. BEGIN
  224. EXEC proc_errorHandler 1, 'You can not delete this record. Previous Modification has not been approved yet.', @limitId
  225. RETURN
  226. END
  227. BEGIN TRANSACTION
  228. IF EXISTS (SELECT 'X' FROM userWiseTxnLimit WITH(NOLOCK) WHERE limitId = @limitId AND approvedBy IS NULL AND createdBy = @user)
  229. BEGIN
  230. DELETE FROM userWiseTxnLimit WHERE limitId = @limitId
  231. END
  232. ELSE
  233. BEGIN
  234. INSERT INTO userWiseTxnLimitHistory(
  235. limitId
  236. ,userId
  237. ,sendPerDay
  238. ,sendPerTxn
  239. ,payPerDay
  240. ,payPerTxn
  241. ,cancelPerDay
  242. ,cancelPerTxn
  243. ,createdBy
  244. ,createdDate
  245. ,modType
  246. )
  247. SELECT
  248. @limitId
  249. ,@userId
  250. ,@sendPerDay
  251. ,@sendPerTxn
  252. ,@payPerDay
  253. ,@payPerTxn
  254. ,@cancelPerDay
  255. ,@cancelPerTxn
  256. ,@user
  257. ,GETDATE()
  258. ,'D'
  259. SET @modType = 'delete'
  260. END
  261. COMMIT TRANSACTION
  262. EXEC proc_errorHandler 0, 'Record deleted successfully', @limitId
  263. END
  264. ELSE IF @flag = 's'
  265. BEGIN
  266. IF @sortBy IS NULL
  267. SET @sortBy = 'limitId'
  268. IF @sortOrder IS NULL
  269. SET @sortOrder = 'ASC'
  270. SET @table = '(
  271. SELECT
  272. main.limitId
  273. ,au.userId
  274. ,name = ISNULL(au.firstName, '''') + ISNULL( '' '' + au.middleName, '''')+ ISNULL( '' '' + au.lastName, '''')
  275. ,au.userName
  276. ,sendPerDay = ISNULL(CAST(main.sendPerDay AS VARCHAR), ''0'')
  277. ,sendPerTxn = ISNULL(CAST(main.sendPerTxn AS VARCHAR), ''0'')
  278. ,sendTodays = ISNULL(CAST(main.sendTodays AS VARCHAR), ''0'')
  279. ,payPerDay = ISNULL(CAST(main.payPerDay AS VARCHAR), ''0'')
  280. ,payPerTxn = ISNULL(CAST(main.payPerTxn AS VARCHAR), ''0'')
  281. ,payTodays = ISNULL(CAST(main.payTodays AS VARCHAR), ''0'')
  282. ,cancelPerDay = ISNULL(CAST(main.cancelPerDay AS VARCHAR), ''0'')
  283. ,cancelPerTxn = ISNULL(CAST(main.cancelPerTxn AS VARCHAR), ''0'')
  284. ,cancelTodays = ISNULL(CAST(main.cancelTodays AS VARCHAR), ''0'')
  285. ,haschanged = ISNULL(main.hasChanged, ''N'')
  286. ,main.createdBy
  287. ,main.createdDate
  288. ,main.modifiedBy
  289. FROM applicationUsers au
  290. LEFT JOIN ' + @table + ' main ON au.userId = main.userId
  291. WHERE au.agentId = dbo.FNAGetHOAgentId()
  292. ) x'
  293. --PRINT (@table)
  294. SET @sql_filter = ''
  295. IF (@haschanged is null and @userName is null and @userId is null)
  296. BEGIN
  297. SET @sql_filter = @sql_filter + ' AND 1=2'
  298. END
  299. ELSE
  300. BEGIN
  301. IF @userName IS NOT NULL
  302. SET @sql_filter = @sql_filter + ' AND ISNULL(userName, '''') LIKE ''%' + @userName + '%'''
  303. IF @userId IS NOT NULL
  304. SET @sql_filter = @sql_filter + ' AND ISNULL(userId, '''') = ''' + CAST(@userId AS VARCHAR) + ''''
  305. IF @haschanged IS NOT NULL
  306. SET @sql_filter = @sql_filter + ' AND hasChanged = ''' + CAST(@haschanged AS VARCHAR) + ''''
  307. END
  308. SET @select_field_list ='
  309. limitId
  310. ,userId
  311. ,name
  312. ,userName
  313. ,sendPerDay
  314. ,sendPerTxn
  315. ,sendTodays
  316. ,payPerDay
  317. ,payPerTxn
  318. ,payTodays
  319. ,cancelPerDay
  320. ,cancelPerTxn
  321. ,cancelTodays
  322. ,haschanged
  323. ,createdBy
  324. ,createdDate
  325. ,modifiedBy
  326. '
  327. EXEC dbo.proc_paging
  328. @table
  329. ,@sql_filter
  330. ,@select_field_list
  331. ,@extra_field_list
  332. ,@sortBy
  333. ,@sortOrder
  334. ,@pageSize
  335. ,@pageNumber
  336. END
  337. ELSE IF @flag = 's1'
  338. BEGIN
  339. IF @sortBy IS NULL
  340. SET @sortBy = 'rowid'
  341. IF @sortOrder IS NULL
  342. SET @sortOrder = 'DESC'
  343. SET @table = '
  344. (
  345. SELECT
  346. rowid,
  347. isnull(sendPerDay,0) sendPerDay,
  348. isnull(sendPerTxn,0) sendPerTxn,
  349. ISNULL(payPerDay,0) payPerDay,
  350. ISNULL(payPerTxn,0) payPerTxn,
  351. ISNULL(cancelPerDay,0) cancelPerDay,
  352. ISNULL(cancelPerTxn,0) cancelPerTxn,
  353. createdBy,
  354. createdDate,
  355. approvedBy,
  356. approveddate,
  357. hasChanged=''N'',
  358. modifiedBy=''''
  359. FROM userWiseTxnLimitHistory WITH(NOLOCK)
  360. WHERE userId = '+CAST(@userId AS VARCHAR)+' and approvedDate is not null)x'
  361. SET @sql_filter = ''
  362. IF @createdBy IS NOT NULL
  363. SET @sql_filter = @sql_filter + ' AND createdBy LIKE ''%' + @createdBy + '%'''
  364. IF @approvedBy IS NOT NULL
  365. SET @sql_filter = @sql_filter + ' AND approvedBy LIKE ''%' + @approvedBy + '%'''
  366. SET @select_field_list ='
  367. rowid
  368. ,sendPerDay
  369. ,sendPerTxn
  370. ,payPerDay
  371. ,payPerTxn
  372. ,cancelPerDay
  373. ,cancelPerTxn
  374. ,createdBy
  375. ,createdDate
  376. ,approvedBy
  377. ,approveddate
  378. ,hasChanged
  379. ,modifiedBy
  380. '
  381. EXEC dbo.proc_paging
  382. @table
  383. ,@sql_filter
  384. ,@select_field_list
  385. ,@extra_field_list
  386. ,@sortBy
  387. ,@sortOrder
  388. ,@pageSize
  389. ,@pageNumber
  390. END
  391. ELSE IF @flag = 'reject'
  392. BEGIN
  393. IF NOT EXISTS (SELECT 'X' FROM userWiseTxnLimit WITH(NOLOCK) WHERE limitId = @limitId and approvedBy IS NULL)
  394. AND
  395. NOT EXISTS (SELECT 'X' FROM userWiseTxnLimitHistory WITH(NOLOCK) WHERE limitId = @limitId AND approvedBy IS NULL)
  396. BEGIN
  397. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @limitId
  398. RETURN
  399. END
  400. IF EXISTS (SELECT 'X' FROM userWiseTxnLimit WHERE approvedBy IS NULL AND limitId = @limitId)
  401. BEGIN --New record
  402. BEGIN TRANSACTION
  403. SET @modType = 'Reject'
  404. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @limitId, @oldValue OUTPUT
  405. INSERT INTO #msg(errorCode, msg, id)
  406. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @limitId, @user, @oldValue, @newValue
  407. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  408. BEGIN
  409. IF @@TRANCOUNT > 0
  410. ROLLBACK TRANSACTION
  411. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @limitId
  412. RETURN
  413. END
  414. DELETE FROM userWiseTxnLimit WHERE limitId= @limitId
  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, @limitId, @oldValue OUTPUT
  423. INSERT INTO #msg(errorCode, msg, id)
  424. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @limitId, @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.', @limitId
  430. RETURN
  431. END
  432. DELETE FROM userWiseTxnLimitHistory WHERE limitId = @limitId
  433. IF @@TRANCOUNT > 0
  434. COMMIT TRANSACTION
  435. END
  436. EXEC proc_errorHandler 0, 'Changes rejected successfully.', @limitId
  437. END
  438. ELSE IF @flag = 'approve'
  439. BEGIN
  440. IF NOT EXISTS (SELECT 'X' FROM userWiseTxnLimit WITH(NOLOCK) WHERE limitId = @limitId AND approvedBy IS NULL)
  441. AND
  442. NOT EXISTS (SELECT 'X' FROM userWiseTxnLimitHistory WITH(NOLOCK) WHERE limitId = @limitId AND approvedBy IS NULL)
  443. BEGIN
  444. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @limitId
  445. RETURN
  446. END
  447. BEGIN TRANSACTION
  448. IF EXISTS (SELECT 'X' FROM userWiseTxnLimit WHERE approvedBy IS NULL AND limitId = @limitId )
  449. SET @modType = 'I'
  450. ELSE
  451. SELECT @modType = modType FROM userWiseTxnLimitHistory WHERE limitId = @limitId AND approvedBy IS NULL
  452. IF @modType = 'I'
  453. BEGIN --New record
  454. UPDATE userWiseTxnLimit SET
  455. isActive = 'Y'
  456. ,approvedBy = @user
  457. ,approvedDate= GETDATE()
  458. WHERE limitId = @limitId
  459. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @limitId, @newValue OUTPUT
  460. END
  461. ELSE IF @modType = 'U'
  462. BEGIN
  463. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @limitId, @oldValue OUTPUT
  464. UPDATE main SET
  465. main.userId = mode.userId
  466. ,main.sendPerDay = mode.sendPerDay
  467. ,main.sendPerTxn = mode.sendPerTxn
  468. ,main.payPerDay = mode.payPerDay
  469. ,main.payPerTxn = mode.payPerTxn
  470. ,main.modifiedDate = GETDATE()
  471. ,main.modifiedBy = @user
  472. FROM userWiseTxnLimit main
  473. INNER JOIN userWiseTxnLimitHistory mode ON mode.limitId = main.limitId
  474. WHERE mode.limitId = @limitId AND mode.approvedBy IS NULL
  475. EXEC [dbo].proc_GetColumnToRow 'userWiseTxnLimit', 'limitId', @limitId, @newValue OUTPUT
  476. END
  477. ELSE IF @modType = 'D'
  478. BEGIN
  479. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @limitId, @oldValue OUTPUT
  480. UPDATE userWiseTxnLimit SET
  481. isDeleted = 'Y'
  482. ,isActive = 'N'
  483. ,modifiedDate = GETDATE()
  484. ,modifiedBy = @user
  485. WHERE limitId = @limitId
  486. UPDATE au SET
  487. au.balance = NULL
  488. FROM applicationUsers au
  489. INNER JOIN userWiseTxnLimit main ON au.userId = main.userId
  490. WHERE main.limitId = @limitId
  491. END
  492. UPDATE userWiseTxnLimitHistory SET
  493. approvedBy = @user
  494. ,approvedDate = GETDATE()
  495. WHERE limitId = @limitId AND approvedBy IS NULL
  496. INSERT INTO #msg(errorCode, msg, id)
  497. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @limitId, @user, @oldValue, @newValue
  498. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  499. BEGIN
  500. IF @@TRANCOUNT > 0
  501. ROLLBACK TRANSACTION
  502. EXEC proc_errorHandler 1, 'Could not approve the changes.', @limitId
  503. RETURN
  504. END
  505. IF @@TRANCOUNT > 0
  506. COMMIT TRANSACTION
  507. EXEC proc_errorHandler 0, 'Changes approved successfully.', @limitId
  508. END
  509. END TRY
  510. BEGIN CATCH
  511. IF @@TRANCOUNT > 0
  512. ROLLBACK TRANSACTION
  513. DECLARE @errorMessage VARCHAR(MAX)
  514. SET @errorMessage = ERROR_MESSAGE()
  515. EXEC proc_errorHandler 1, @errorMessage, @limitId
  516. END CATCH
  517. GO