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.
 
 

118 lines
7.0 KiB

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;