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.

662 lines
21 KiB

1 year ago
  1. ALTER PROC dbo.proc_receiveTranLimit
  2. @flag VARCHAR(50) = NULL
  3. ,@user VARCHAR(30) = NULL
  4. ,@rtlId VARCHAR(30) = NULL
  5. ,@agentId INT = NULL
  6. ,@countryId VARCHAR(100) = NULL
  7. ,@userId INT = NULL
  8. ,@sendingCountry VARCHAR(100) = NULL
  9. ,@maxLimitAmt MONEY = NULL
  10. ,@agMaxLimitAmt MONEY = NULL
  11. ,@currency VARCHAR(3) = NULL
  12. ,@tranType VARCHAR(50) = NULL
  13. ,@customerType INT = NULL
  14. ,@branchSelection VARCHAR(50) = NULL
  15. ,@benificiaryIdReq VARCHAR(1) = NULL
  16. ,@relationshipReq VARCHAR(1) = NULL
  17. ,@benificiaryContactReq VARCHAR(1) = NULL
  18. ,@acLengthFrom VARCHAR(50) = NULL
  19. ,@acLengthTo VARCHAR(50) = NULL
  20. ,@acNumberType VARCHAR(50) = NULL
  21. ----,@inExListType CHAR(2) = 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. ,@functionId INT
  45. ,@id VARCHAR(10)
  46. ,@modType VARCHAR(6)
  47. ,@ApproveFunctionId1 INT
  48. ,@ApproveFunctionId2 INT
  49. SELECT
  50. @functionId = 30011400
  51. ,@logIdentifier = 'rtlId'
  52. ,@logParamMain = 'receiveTranLimit'
  53. ,@logParamMod = 'receiveTranLimitMod'
  54. ,@module = '30'
  55. ,@tableAlias = 'Receive Per Transaction Limit'
  56. ,@ApproveFunctionId1 = 30011440
  57. ,@ApproveFunctionId2 = 30011440
  58. DECLARE @maxLimit MONEY
  59. ,@agentCountryId VARCHAR(100)
  60. IF @flag = 'i'
  61. BEGIN
  62. IF EXISTS(SELECT 'X' FROM receiveTranLimit WHERE
  63. ISNULL(agentId, '') = ISNULL(@agentId, '') AND
  64. ISNULL(countryId, '') = ISNULL(@countryId, '') AND
  65. ISNULL(userId, '') = ISNULL(@userId, '') AND
  66. ISNULL(sendingCountry, '') = ISNULL(@sendingCountry, '') AND
  67. currency = @currency AND
  68. ISNULL(tranType, '') = ISNULL(@tranType, '') AND
  69. ISNULL(customerType, '') = ISNULL(@customerType, '') AND
  70. ----inExListType = @inExListType AND
  71. ISNULL(isDeleted, 'N') <> 'Y'
  72. )
  73. BEGIN
  74. EXEC proc_errorHandler 1, 'Record already exists', @rtlId
  75. RETURN
  76. END
  77. IF(ISNULL(@agMaxLimitAmt, 0) > @maxLimitAmt)
  78. BEGIN
  79. EXEC proc_errorHandler 1, 'Max Payout Limit defined for Agent exceeds Max Payout Limit defined for Country', NULL
  80. RETURN
  81. END
  82. IF(@agentId IS NOT NULL)
  83. BEGIN
  84. SELECT @countryId = agentCountryId FROM agentMaster WHERE agentId = @agentId
  85. SELECT @maxLimit = maxLimitAmt FROM receiveTranLimit WITH(NOLOCK) WHERE countryId = @countryId AND agentId IS NULL AND currency = @currency
  86. AND (sendingCountry = @sendingCountry) AND tranType = @tranType
  87. AND ISNULL(isDeleted, 'N') = 'N' AND ISNULL(isActive, 'N') = 'Y'
  88. IF @maxLimit IS NULL
  89. BEGIN
  90. SELECT @maxLimit = maxLimitAmt FROM receiveTranLimit WITH(NOLOCK) WHERE countryId = @countryId AND agentId IS NULL AND currency = @currency
  91. AND (sendingCountry = @sendingCountry) AND tranType IS NULL
  92. AND ISNULL(isDeleted, 'N') = 'N' AND ISNULL(isActive, 'N') = 'Y'
  93. END
  94. IF @maxLimit IS NULL
  95. BEGIN
  96. SELECT @maxLimit = maxLimitAmt FROM receiveTranLimit WITH(NOLOCK) WHERE countryId = @countryId AND agentId IS NULL AND currency = @currency
  97. AND (sendingCountry IS NULL) AND tranType = @tranType
  98. AND ISNULL(isDeleted, 'N') = 'N' AND ISNULL(isActive, 'N') = 'Y'
  99. END
  100. IF @maxLimit IS NULL
  101. SELECT @maxLimit = maxLimitAmt FROM receiveTranLimit WITH(NOLOCK) WHERE countryId = @countryId AND agentId IS NULL AND currency = @currency
  102. AND (sendingCountry IS NULL) AND tranType IS NULL
  103. AND ISNULL(isDeleted, 'N') = 'N' AND ISNULL(isActive, 'N') = 'Y'
  104. --select @maxLimit
  105. --return;
  106. --SELECT * FROM receiveTranLimit WHERE countryId = 105
  107. --SELECT * FROM receiveTranLimit WHERE countryId = 105
  108. --UPDATE receiveTranLimit SET branchSelection = 'Not Required', benificiaryIdReq = 'O', relationshipReq ='O', benificiaryContactReq = 'O' WHERE countryId = 105 AND agentId IS NULL
  109. IF(@maxLimitAmt > @maxLimit)
  110. BEGIN
  111. EXEC proc_errorHandler 1, 'Limit exceeded more than Country Transaction Limit', @rtlId
  112. RETURN
  113. END
  114. END
  115. BEGIN TRANSACTION
  116. INSERT INTO receiveTranLimit (
  117. agentId
  118. ,countryId
  119. ,userId
  120. ,sendingCountry
  121. ,maxLimitAmt
  122. ,agMaxLimitAmt
  123. ,currency
  124. ,tranType
  125. ,customerType
  126. ,branchSelection
  127. ,benificiaryIdReq
  128. ,relationshipReq
  129. ,benificiaryContactReq
  130. ,acLengthFrom
  131. ,acLengthTo
  132. ,acNumberType
  133. ,createdBy
  134. ,createdDate
  135. )
  136. SELECT
  137. @agentId
  138. ,@countryId
  139. ,@userId
  140. ,@sendingCountry
  141. ,@maxLimitAmt
  142. ,@agMaxLimitAmt
  143. ,@currency
  144. ,@tranType
  145. ,@customerType
  146. ,@branchSelection
  147. ,@benificiaryIdReq
  148. ,@relationshipReq
  149. ,@benificiaryContactReq
  150. ,@acLengthFrom
  151. ,@acLengthTo
  152. ,@acNumberType
  153. ,@user
  154. ,GETDATE()
  155. SET @id = SCOPE_IDENTITY()
  156. COMMIT TRANSACTION
  157. EXEC proc_errorHandler 0, 'Record has been added successfully.', @rtlId
  158. END
  159. ELSE IF @flag = 'a'
  160. BEGIN
  161. IF EXISTS (SELECT 'X' FROM receiveTranLimitMod WITH(NOLOCK) WHERE rtlId = @rtlId AND createdBy = @user)
  162. BEGIN
  163. SELECT
  164. *
  165. FROM receiveTranLimitMod WITH(NOLOCK) WHERE rtlId= @rtlId
  166. END
  167. ELSE
  168. BEGIN
  169. SELECT
  170. *
  171. FROM receiveTranLimit WITH(NOLOCK) WHERE rtlId = @rtlId
  172. END
  173. END
  174. ELSE IF @flag = 'u'
  175. BEGIN
  176. IF EXISTS (SELECT 'X' FROM receiveTranLimit WITH(NOLOCK) WHERE rtlId = @rtlId AND ( createdBy <> @user AND approvedBy IS NULL))
  177. BEGIN
  178. EXEC proc_errorHandler 1, 'You can not modify this record. Previous Modification has not been approved yet.', @rtlId
  179. RETURN
  180. END
  181. IF EXISTS (SELECT 'X' FROM receiveTranLimitMod WITH(NOLOCK) WHERE rtlId = @rtlId AND createdBy<> @user)
  182. BEGIN
  183. EXEC proc_errorHandler 1, 'You can not modify this record. Previous Modification has not been approved yet.', @rtlId
  184. RETURN
  185. END
  186. IF EXISTS(SELECT 'X' FROM receiveTranLimit WHERE
  187. rtlId <> @rtlId AND
  188. ISNULL(agentId, '') = ISNULL(@agentId, '') AND
  189. ISNULL(countryId, '') = ISNULL(@countryId, '') AND
  190. ISNULL(userId, '') = ISNULL(@userId, '') AND
  191. ISNULL(sendingCountry, '') = ISNULL(@sendingCountry, '') AND
  192. currency = @currency AND
  193. ISNULL(tranType, '') = ISNULL(@tranType, '') AND
  194. ISNULL(customerType, '') = ISNULL(@customerType, '') AND
  195. ISNULL(isDeleted, 'N') <> 'Y'
  196. )
  197. BEGIN
  198. EXEC proc_errorHandler 1, 'Record already exists', @rtlId
  199. RETURN
  200. END
  201. IF(ISNULL(@agMaxLimitAmt, 0) > @maxLimitAmt)
  202. BEGIN
  203. EXEC proc_errorHandler 1, 'Agent Max Payout Limit Amount exceeds Country Max Payout Limit Amount', NULL
  204. RETURN
  205. END
  206. IF(@agentId IS NOT NULL)
  207. BEGIN
  208. SELECT @countryId = agentCountryId FROM agentMaster WHERE agentId = @agentId
  209. SELECT @maxLimit = maxLimitAmt FROM receiveTranLimit WHERE
  210. countryId = @countryId AND
  211. currency = @currency AND
  212. (sendingCountry = @sendingCountry OR @sendingCountry IS NULL) AND
  213. ISNULL(customerType, '') = ISNULL(@customerType, '') AND
  214. ISNULL(tranType, '') = ISNULL(@tranType, '') AND
  215. ISNULL(isDeleted, 'N') = 'N' AND
  216. ISNULL(isActive, 'N') = 'Y'
  217. /*
  218. IF(@maxLimitAmt > @maxLimit)
  219. BEGIN
  220. EXEC proc_errorHandler 1, 'Limit exceeded more than Country Transaction Limit1', @rtlId
  221. RETURN
  222. END
  223. */
  224. END
  225. BEGIN TRANSACTION
  226. IF EXISTS (SELECT 'X' FROM receiveTranLimit WHERE approvedBy IS NULL AND rtlId = @rtlId AND createdBy = @user)
  227. BEGIN
  228. UPDATE receiveTranLimit SET
  229. agentId = @agentId
  230. ,countryId = @countryId
  231. ,userId = @userId
  232. ,sendingCountry = @sendingCountry
  233. ,maxLimitAmt = @maxLimitAmt
  234. ,agMaxLimitAmt = @agMaxLimitAmt
  235. ,currency = @currency
  236. ,tranType = @tranType
  237. ,customerType = @customerType
  238. ,branchSelection = @branchSelection
  239. ,benificiaryIdReq = @benificiaryIdReq
  240. ,relationshipReq = @relationshipReq
  241. ,benificiaryContactReq = @benificiaryContactReq
  242. ,acLengthFrom = @acLengthFrom
  243. ,acLengthTo = @acLengthTo
  244. ,acNumberType = @acNumberType
  245. WHERE rtlId = @rtlId
  246. END
  247. ELSE
  248. BEGIN
  249. DELETE FROM receiveTranLimitMod WHERE rtlId = @rtlId
  250. INSERT INTO receiveTranLimitMod(
  251. rtlId
  252. ,agentId
  253. ,countryId
  254. ,userId
  255. ,sendingCountry
  256. ,maxLimitAmt
  257. ,agMaxLimitAmt
  258. ,currency
  259. ,tranType
  260. ,customerType
  261. ,branchSelection
  262. ,benificiaryIdReq
  263. ,relationshipReq
  264. ,benificiaryContactReq
  265. ,acLengthFrom
  266. ,acLengthTo
  267. ,acNumberType
  268. ,createdBy
  269. ,createdDate
  270. ,modType
  271. )
  272. SELECT
  273. @rtlId
  274. ,@agentId
  275. ,@countryId
  276. ,@userId
  277. ,@sendingCountry
  278. ,@maxLimitAmt
  279. ,@agMaxLimitAmt
  280. ,@currency
  281. ,@tranType
  282. ,@customerType
  283. ,@branchSelection
  284. ,@benificiaryIdReq
  285. ,@relationshipReq
  286. ,@benificiaryContactReq
  287. ,@acLengthFrom
  288. ,@acLengthTo
  289. ,@acNumberType
  290. ,@user
  291. ,GETDATE()
  292. ,'U'
  293. SET @modType = 'update'
  294. END
  295. COMMIT TRANSACTION
  296. EXEC proc_errorHandler 0, 'Record updated successfully.', @rtlId
  297. END
  298. ELSE IF @flag = 'd'
  299. BEGIN
  300. IF EXISTS (SELECT 'X' FROM receiveTranLimit WITH(NOLOCK) WHERE rtlId = @rtlId AND (createdBy <> @user AND approvedBy IS NULL))
  301. BEGIN
  302. EXEC proc_errorHandler 1, 'You can not delete this record. Previous Modification has not been approved yet.', @rtlId
  303. RETURN
  304. END
  305. IF EXISTS (SELECT 'X' FROM receiveTranLimitMod WITH(NOLOCK) WHERE rtlId = @rtlId and createdBy <> @user)
  306. BEGIN
  307. EXEC proc_errorHandler 1, 'You can not delete this record. Previous Modification has not been approved yet.', @rtlId
  308. RETURN
  309. END
  310. BEGIN TRANSACTION
  311. IF EXISTS (SELECT 'X' FROM receiveTranLimit WITH(NOLOCK) WHERE rtlId = @rtlId AND approvedBy IS NULL AND createdBy = @user)
  312. BEGIN
  313. DELETE FROM receiveTranLimit WHERE rtlId = @rtlId
  314. END
  315. ELSE
  316. BEGIN
  317. INSERT INTO receiveTranLimitMod(
  318. rtlId
  319. ,agentId
  320. ,countryId
  321. ,userId
  322. ,sendingCountry
  323. ,maxLimitAmt
  324. ,agMaxLimitAmt
  325. ,currency
  326. ,tranType
  327. ,customerType
  328. ,branchSelection
  329. ,benificiaryIdReq
  330. ,relationshipReq
  331. ,benificiaryContactReq
  332. ,acLengthFrom
  333. ,acLengthTo
  334. ,acNumberType
  335. ,createdBy
  336. ,createdDate
  337. ,modType
  338. )
  339. SELECT
  340. @rtlId
  341. ,@agentId
  342. ,@countryId
  343. ,@userId
  344. ,@sendingCountry
  345. ,@maxLimitAmt
  346. ,@agMaxLimitAmt
  347. ,@currency
  348. ,@tranType
  349. ,@customerType
  350. ,@branchSelection
  351. ,@benificiaryIdReq
  352. ,@relationshipReq
  353. ,@benificiaryContactReq
  354. ,@acLengthFrom
  355. ,@acLengthTo
  356. ,@acNumberType
  357. ,@user
  358. ,GETDATE()
  359. ,'D'
  360. SET @modType = 'delete'
  361. END
  362. COMMIT TRANSACTION
  363. EXEC proc_errorHandler 0, 'Record deleted successfully', @countryId
  364. END
  365. ELSE IF @flag = 's'
  366. BEGIN
  367. DECLARE @hasRight1 CHAR(1), @hasRight2 CHAR(1)
  368. SET @hasRight1 = dbo.FNAHasRight(@user, CAST(@ApproveFunctionId1 AS VARCHAR))
  369. SET @hasRight2 = dbo.FNAHasRight(@user, CAST(@ApproveFunctionId2 AS VARCHAR))
  370. IF @sortBy IS NULL
  371. SET @sortBy = 'rtlId'
  372. IF @sortOrder IS NULL
  373. SET @sortOrder = 'ASC'
  374. SET @table = '(
  375. SELECT
  376. rtlId = ISNULL(mode.rtlId, main.rtlId)
  377. ,agentId = ISNULL(mode.agentId,main.agentId)
  378. ,countryId = ISNULL(mode.countryId,main.countryId)
  379. ,userId = ISNULL(mode.userId,main.userId)
  380. ,sendingCountry = ISNULL(mode.sendingCountry,main.sendingCountry)
  381. ,maxLimitAmt = ISNULL(mode.maxLimitAmt,main.maxLimitAmt)
  382. ,agMaxLimitAmt = ISNULL(mode.agMaxLimitAmt, main.agMaxLimitAmt)
  383. ,currency = ISNULL(mode.currency,main.currency)
  384. ,tranType = ISNULL(mode.tranType,main.tranType)
  385. ,customerType = ISNULL(mode.customerType,main.customerType)
  386. ,main.createdBy
  387. ,main.createdDate
  388. ,modifiedDate = CASE WHEN main.approvedBy IS NULL THEN main.createdDate ELSE ISNULL(mode.createdDate, main.modifiedDate) END
  389. ,modifiedBy = CASE WHEN main.approvedBy IS NULL THEN main.createdBy ELSE ISNULL(mode.createdBy, main.modifiedBy) END
  390. ,hasChanged = CASE WHEN (main.approvedBy IS NULL) OR
  391. (mode.rtlId IS NOT NULL)
  392. THEN ''Y'' ELSE ''N'' END
  393. FROM receiveTranLimit main WITH(NOLOCK)
  394. LEFT JOIN receiveTranLimitMod mode ON main.rtlId = mode.rtlId
  395. AND (
  396. mode.createdBy = ''' + @user + '''
  397. OR ''Y'' = ''' + @hasRight1 + '''
  398. OR ''Y'' = ''' + @hasRight2 + '''
  399. )
  400. WHERE ISNULL(main.isDeleted, ''N'') <> ''Y''
  401. AND (
  402. main.approvedBy IS NOT NULL
  403. OR main.createdBy = ''' + @user + '''
  404. OR ''Y'' = ''' + @hasRight1 + '''
  405. OR ''Y'' = ''' + @hasRight2 + '''
  406. )
  407. --AND NOT(ISNULL(mode.modType, '''') = ''D'' AND mode.createdBy = ''' + @user + ''')
  408. ) '
  409. SET @table = '(
  410. SELECT
  411. main.rtlId
  412. ,main.agentId
  413. ,main.countryId
  414. ,main.userId
  415. ,main.sendingCountry
  416. ,sCountryName = ISNULL(scm.countryName, ''Any'')
  417. ,main.maxLimitAmt
  418. ,main.agMaxLimitAmt
  419. ,main.currency
  420. ,currencyName = main.currency
  421. ,main.tranType
  422. ,tranTypeText = ISNULL(stm.typeTitle, ''Any'')
  423. ,customerType = ISNULL(ct.detailTitle, ''Any'')
  424. ,main.haschanged
  425. ,main.createdBy
  426. ,main.createdDate
  427. ,main.modifiedBy
  428. FROM ' + @table + ' main
  429. LEFT JOIN countryMaster scm WITH(NOLOCK) ON main.sendingCountry = scm.countryId
  430. LEFT JOIN serviceTypeMaster stm WITH(NOLOCK) ON main.tranType = stm.serviceTypeId
  431. LEFT JOIN staticDataValue ct WITH(NOLOCK) ON main.customerType = ct.valueId
  432. ) x'
  433. SET @sql_filter = ''
  434. --PRINT (@table)
  435. IF @countryId IS NOT NULL
  436. SET @sql_filter = @sql_filter + ' AND ISNULL(countryId, '''') = ''' + @countryId + ''' AND agentId IS NULL'
  437. IF @agentId IS NOT NULL
  438. SET @sql_filter = @sql_filter + ' AND ISNULL(agentId, '''') = ''' + CAST(@agentId AS VARCHAR) + ''''
  439. IF @userId IS NOT NULL
  440. SET @sql_filter = @sql_filter + ' AND ISNULL(userId, '''') = ''' + CAST(@userId AS VARCHAR) + ''''
  441. IF @sendingCountry IS NOT NULL
  442. SET @sql_filter = @sql_filter + ' AND ISNULL(sendingCountry, '''') = ''' + CAST(@sendingCountry AS VARCHAR) + ''''
  443. IF @tranType IS NOT NULL
  444. SET @sql_filter = @sql_filter + ' AND ISNULL(tranType, '''') = ''' + CAST(@tranType AS VARCHAR) + '%'''
  445. SET @select_field_list ='
  446. rtlId
  447. ,agentId
  448. ,countryId
  449. ,userId
  450. ,sendingCountry
  451. ,sCountryName
  452. ,maxLimitAmt
  453. ,agMaxLimitAmt
  454. ,currency
  455. ,currencyName
  456. ,tranType
  457. ,tranTypeText
  458. ,customerType
  459. ,haschanged
  460. ,createdBy
  461. ,createdDate
  462. ,modifiedBy
  463. '
  464. EXEC dbo.proc_paging
  465. @table
  466. ,@sql_filter
  467. ,@select_field_list
  468. ,@extra_field_list
  469. ,@sortBy
  470. ,@sortOrder
  471. ,@pageSize
  472. ,@pageNumber
  473. END
  474. ELSE IF @flag = 'reject'
  475. BEGIN
  476. IF NOT EXISTS (SELECT 'X' FROM receiveTranLimit WITH(NOLOCK) WHERE rtlId = @rtlId and approvedBy IS NULL)
  477. AND
  478. NOT EXISTS (SELECT 'X' FROM receiveTranLimitMod WITH(NOLOCK) WHERE rtlId = @rtlId)
  479. BEGIN
  480. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @rtlId
  481. RETURN
  482. END
  483. IF EXISTS (SELECT 'X' FROM receiveTranLimit WHERE approvedBy IS NULL AND rtlId = @rtlId)
  484. BEGIN --New record
  485. BEGIN TRANSACTION
  486. SET @modType = 'Reject'
  487. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rtlId, @oldValue OUTPUT
  488. INSERT INTO #msg(errorCode, msg, id)
  489. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @rtlId, @user, @oldValue, @newValue
  490. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  491. BEGIN
  492. IF @@TRANCOUNT > 0
  493. ROLLBACK TRANSACTION
  494. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @rtlId
  495. RETURN
  496. END
  497. DELETE FROM receiveTranLimit WHERE rtlId= @rtlId
  498. IF @@TRANCOUNT > 0
  499. COMMIT TRANSACTION
  500. END
  501. ELSE
  502. BEGIN
  503. BEGIN TRANSACTION
  504. SET @modType = 'Reject'
  505. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rtlId, @oldValue OUTPUT
  506. INSERT INTO #msg(errorCode, msg, id)
  507. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @rtlId, @user, @oldValue, @newValue
  508. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  509. BEGIN
  510. IF @@TRANCOUNT > 0
  511. ROLLBACK TRANSACTION
  512. EXEC proc_errorHandler 1, 'Failed to reject the transaction.', @rtlId
  513. RETURN
  514. END
  515. DELETE FROM receiveTranLimitMod WHERE rtlId = @rtlId
  516. IF @@TRANCOUNT > 0
  517. COMMIT TRANSACTION
  518. END
  519. EXEC proc_errorHandler 0, 'Changes rejected successfully.', @rtlId
  520. END
  521. ELSE IF @flag = 'approve'
  522. BEGIN
  523. IF NOT EXISTS (SELECT 'X' FROM receiveTranLimit WITH(NOLOCK) WHERE rtlId = @rtlId AND approvedBy IS NULL)
  524. AND
  525. NOT EXISTS (SELECT 'X' FROM receiveTranLimitMod WITH(NOLOCK) WHERE rtlId = @rtlId)
  526. BEGIN
  527. EXEC proc_errorHandler 1, '<center>Modification approval is not pending.</center>', @rtlId
  528. RETURN
  529. END
  530. BEGIN TRANSACTION
  531. IF EXISTS (SELECT 'X' FROM receiveTranLimit WHERE approvedBy IS NULL AND rtlId = @rtlId )
  532. SET @modType = 'I'
  533. ELSE
  534. SELECT @modType = modType FROM receiveTranLimitMod WHERE rtlId = @rtlId
  535. IF @modType = 'I'
  536. BEGIN --New record
  537. UPDATE receiveTranLimit SET
  538. isActive = 'Y'
  539. ,approvedBy = @user
  540. ,approvedDate= GETDATE()
  541. WHERE rtlId = @rtlId
  542. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rtlId, @newValue OUTPUT
  543. END
  544. ELSE IF @modType = 'U'
  545. BEGIN
  546. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rtlId, @oldValue OUTPUT
  547. UPDATE main SET
  548. main.agentId = mode.agentId
  549. ,main.countryId = mode.countryId
  550. ,main.userId = mode.userId
  551. ,main.sendingCountry = mode.sendingCountry
  552. ,main.maxLimitAmt = mode.maxLimitAmt
  553. ,main.agMaxLimitAmt = mode.agMaxLimitAmt
  554. ,main.currency = mode.currency
  555. ,main.tranType = mode.tranType
  556. ,main.customerType = mode.customerType
  557. ,main.branchSelection = mode.branchSelection
  558. ,main.benificiaryIdReq = mode.benificiaryIdReq
  559. ,main.relationshipReq = mode.relationshipReq
  560. ,main.benificiaryContactReq = mode.benificiaryContactReq
  561. ,main.acLengthFrom = mode.acLengthFrom
  562. ,main.acLengthTo = mode.acLengthTo
  563. ,main.acNumberType = mode.acNumberType
  564. ----,main.inExListType = mode.inExListType
  565. ,main.modifiedDate = GETDATE()
  566. ,main.modifiedBy = @user
  567. FROM receiveTranLimit main
  568. INNER JOIN receiveTranLimitMod mode ON mode.rtlId = main.rtlId
  569. WHERE mode.rtlId = @rtlId
  570. EXEC [dbo].proc_GetColumnToRow 'receiveTranLimit', 'rtlId', @rtlId, @newValue OUTPUT
  571. END
  572. ELSE IF @modType = 'D'
  573. BEGIN
  574. EXEC [dbo].proc_GetColumnToRow @logParamMain, @logIdentifier, @rtlId, @oldValue OUTPUT
  575. UPDATE receiveTranLimit SET
  576. isDeleted = 'Y'
  577. ,isActive = 'N'
  578. ,modifiedDate = GETDATE()
  579. ,modifiedBy = @user
  580. WHERE rtlId = @rtlId
  581. END
  582. DELETE FROM receiveTranLimitMod WHERE rtlId = @rtlId
  583. INSERT INTO #msg(errorCode, msg, id)
  584. EXEC proc_applicationLogs 'i', NULL, @modType, @tableAlias, @rtlId, @user, @oldValue, @newValue
  585. IF EXISTS (SELECT 'x' FROM #msg WHERE errorCode <> '0')
  586. BEGIN
  587. IF @@TRANCOUNT > 0
  588. ROLLBACK TRANSACTION
  589. EXEC proc_errorHandler 1, 'Could not approve the changes.', @rtlId
  590. RETURN
  591. END
  592. IF @@TRANCOUNT > 0
  593. COMMIT TRANSACTION
  594. EXEC proc_errorHandler 0, 'Changes approved successfully.', @rtlId
  595. END
  596. ELSE IF @flag = 'cml' --Get Country Max Limit
  597. BEGIN
  598. SELECT @countryId = agentCountryId FROM agentMaster WITH(NOLOCK) WHERE agentId = @agentId
  599. SELECT TOP 1 maxLimitAmt = ISNULL(maxLimitAmt, 0.00) FROM receiveTranLimit WITH(NOLOCK)
  600. WHERE countryId = @countryId
  601. AND ISNULL(isDeleted, 'N') = 'N'
  602. AND ISNULL(isActive, 'N') = 'Y'
  603. END
  604. END TRY
  605. BEGIN CATCH
  606. IF @@TRANCOUNT > 0
  607. ROLLBACK TRANSACTION
  608. DECLARE @errorMessage VARCHAR(MAX)
  609. SET @errorMessage = ERROR_MESSAGE()
  610. EXEC proc_errorHandler 1, @errorMessage, @rtlId
  611. END CATCH