USE [FastMoneyPro_Remit] GO /****** Object: StoredProcedure [dbo].[PROC_AUTO_APPROVE_TXN_JOB] Script Date: 8/2/2024 4:52:06 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[PROC_AUTO_APPROVE_TXN_JOB] AS BEGIN SET NOCOUNT ON; SET XACT_ABORT ON; BEGIN TRY IF OBJECT_ID('tempdb..#tempTable') IS NOT NULL DROP TABLE #tempTable; DECLARE @MinAmt MONEY DECLARE @tranId BIGINT DECLARE @remarks VARCHAR(100) DECLARE @controlNo VARCHAR(200) SELECT @MinAmt = detailDesc FROM staticDataValue WHERE typeId = '10200' AND valueId = '11486' EXEC JobHistoryRecord @flag = 'i', @job_name = 'PROC_AUTO_APPROVE_TXN_JOB', @job_remarks = 'Auto Approved Txn', @job_value = @MinAmt, @job_user = 'SYSTEM' CREATE TABLE #tempTable ( id BIGINT, controlNo VARCHAR(100), amt MONEY, rowId INT ); INSERT INTO #tempTable SELECT rtt.id, rtt.controlNo, rtt.cAmt, rowId = 0 FROM remitTranTemp rtt INNER JOIN tranSenderstemp tst ON rtt.id = tst.tranId INNER JOIN customerMaster cm ON tst.customerId = cm.customerId WHERE rtt.tranStatus = 'Hold' AND rtt.payStatus = 'Unpaid' AND rtt.approvedBy IS NULL AND rtt.tranType IN ('M', 'I') AND rtt.verifiedBy IS NOT NULL AND rtt.verifiedDate IS NOT NULL AND ISNULL(rtt.sRouteId, 0) IN (0, 'M') AND rtt.cAmt <= @MinAmt AND cm.verificationCode = 'COMPLETED' WHILE EXISTS ( SELECT TOP 1 1 FROM #tempTable WHERE rowId = 0 ) BEGIN SELECT TOP 1 @tranId = id, @controlNo = controlNo FROM #tempTable (NOLOCK) WHERE rowId = 0 CREATE TABLE #tempApprove ( errorCode VARCHAR(10), Msg VARCHAR(MAX), Id VARCHAR(50) ); INSERT INTO #tempApprove (errorCode, Msg, Id) EXEC proc_ApproveHoldedTXN @flag = 'approve', @user = 'SYSTEM', @id = @tranId SET @remarks = 'Auto approved txn by job having less than ' + CONVERT(VARCHAR(50), @MinAmt) + ' GBP' IF EXISTS ( SELECT * FROM #tempApprove WHERE errorCode = 0 ) BEGIN INSERT INTO tranModifyLog ( tranId, controlNo, message, createdBy, createdDate, MsgType ) SELECT @tranId, @controlNo, @remarks, 'SYSTEM', GETDATE(), 'Auto Approved Transaction' END DROP TABLE #tempApprove UPDATE #tempTable SET rowId = 1 WHERE id = @tranId END END TRY BEGIN CATCH DECLARE @errorMessage VARCHAR(MAX) SET @errorMessage = ERROR_MESSAGE() EXEC proc_errorHandler 1, @errorMessage, NULL END CATCH END;