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.

117 lines
7.0 KiB

1 month ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[PROC_AUTO_APPROVE_TXN_JOB] Script Date: 8/2/2024 4:52:06 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. ALTER PROCEDURE [dbo].[PROC_AUTO_APPROVE_TXN_JOB]
  9. AS
  10. BEGIN
  11. SET NOCOUNT ON;
  12. SET XACT_ABORT ON;
  13. BEGIN TRY
  14. IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL
  15. DROP TABLE #tempTable;
  16. DECLARE @MinAmt MONEY
  17. DECLARE @tranId BIGINT
  18. DECLARE @remarks VARCHAR(100)
  19. DECLARE @controlNo VARCHAR(200)
  20. SELECT @MinAmt = detailDesc
  21. FROM staticDataValue
  22. WHERE typeId = '10200'
  23. AND valueId = '11486'
  24. EXEC JobHistoryRecord @flag = 'i',
  25. @job_name = 'PROC_AUTO_APPROVE_TXN_JOB',
  26. @job_remarks = 'Auto Approved Txn',
  27. @job_value = @MinAmt,
  28. @job_user = 'SYSTEM'
  29. CREATE TABLE #tempTable (
  30. id BIGINT,
  31. controlNo VARCHAR(100),
  32. amt MONEY,
  33. rowId INT
  34. );
  35. INSERT INTO #tempTable
  36. SELECT rtt.id,
  37. rtt.controlNo,
  38. rtt.cAmt,
  39. rowId = 0
  40. FROM remitTranTemp rtt
  41. INNER JOIN tranSenderstemp tst ON rtt.id = tst.tranId
  42. INNER JOIN customerMaster cm ON tst.customerId = cm.customerId
  43. WHERE rtt.tranStatus = 'Hold'
  44. AND rtt.payStatus = 'Unpaid'
  45. AND rtt.approvedBy IS NULL
  46. AND rtt.tranType IN ('M', 'I')
  47. AND rtt.verifiedBy IS NOT NULL
  48. AND rtt.verifiedDate IS NOT NULL
  49. AND ISNULL(rtt.sRouteId, 0) IN (0, 'M')
  50. AND rtt.cAmt <= @MinAmt
  51. AND cm.verificationCode = 'COMPLETED'
  52. WHILE EXISTS (
  53. SELECT TOP 1 1
  54. FROM #tempTable
  55. WHERE rowId = 0
  56. )
  57. BEGIN
  58. SELECT TOP 1
  59. @tranId = id,
  60. @controlNo = controlNo
  61. FROM #tempTable (NOLOCK)
  62. WHERE rowId = 0
  63. CREATE TABLE #tempApprove (
  64. errorCode VARCHAR(10),
  65. Msg VARCHAR(MAX),
  66. Id VARCHAR(50)
  67. );
  68. INSERT INTO #tempApprove (errorCode, Msg, Id)
  69. EXEC proc_ApproveHoldedTXN @flag = 'approve', @user = 'SYSTEM', @id = @tranId
  70. SET @remarks = 'Auto approved txn by job having less than ' + CONVERT(VARCHAR(50), @MinAmt) + ' GBP'
  71. IF EXISTS (
  72. SELECT *
  73. FROM #tempApprove
  74. WHERE errorCode = 0
  75. )
  76. BEGIN
  77. INSERT INTO tranModifyLog (
  78. tranId,
  79. controlNo,
  80. message,
  81. createdBy,
  82. createdDate,
  83. MsgType
  84. )
  85. SELECT @tranId,
  86. @controlNo,
  87. @remarks,
  88. 'SYSTEM',
  89. GETDATE(),
  90. 'Auto Approved Transaction'
  91. END
  92. DROP TABLE #tempApprove
  93. UPDATE #tempTable
  94. SET rowId = 1
  95. WHERE id = @tranId
  96. END
  97. END TRY
  98. BEGIN CATCH
  99. DECLARE @errorMessage VARCHAR(MAX)
  100. SET @errorMessage = ERROR_MESSAGE()
  101. EXEC proc_errorHandler 1, @errorMessage, NULL
  102. END CATCH
  103. END;