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.
 
 
 

162 lines
11 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[INBOUND_PROC_APPROVE_HOLDED_TXN] Script Date: 9/27/2019 1:30:13 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROC [dbo].[INBOUND_PROC_APPROVE_HOLDED_TXN] (
@flag VARCHAR(50)
,@user VARCHAR(30)
,@userType VARCHAR(10) = NULL
,@branch VARCHAR(50) = NULL
,@id VARCHAR(40) = NULL
,@country VARCHAR(50) = NULL
,@sender VARCHAR(50) = NULL
,@receiver VARCHAR(50) = NULL
,@amt MONEY = NULL
,@bank VARCHAR(50) = NULL
,@voucherNo VARCHAR(50) = NULL
,@branchId INT = NULL
,@pin VARCHAR(50) = NULL
,@errorCode VARCHAR(10) = NULL
,@msg VARCHAR(500) = NULL
,@idList XML = NULL
,@txnDate VARCHAR(20) = NULL
,@txncreatedBy VARCHAR(50) = NULL
,@xml VARCHAR(MAX) = NULL
,@remarks VARCHAR(MAX) = NULL
,@settlingAgentId INT = NULL
,@ControlNo VARCHAR(50) = NULL
,@txnType VARCHAR(1) = NULL
,@sendCountry VARCHAR(50) = NULL
,@sendAgent VARCHAR(50) = NULL
,@sendBranch VARCHAR(50) = NULL
)
AS
BEGIN TRY
DECLARE
@table VARCHAR(MAX)
,@sql VARCHAR(MAX)
,@sqlSelfTxn VARCHAR(MAX)
IF @flag ='OnlineTxn-waitingList'
BEGIN
SELECT
sn = row_number() over(order by trn.sCountry)
,country = upper(trn.sCountry)
,txnCount = count('x')
FROM dbo.INBOUND_REMIT_TRAN_TEMP trn WITH(NOLOCK)
INNER JOIN agentMaster am WITH(NOLOCK) ON trn.sAgent = am.agentId
INNER JOIN dbo.INBOUND_TRAN_SENDERS_TEMP sen WITH(NOLOCK) ON trn.id = sen.tranId
INNER JOIN dbo.INBOUND_TRAN_RECEIVERS_TEMP rec WITH(NOLOCK) ON trn.id = rec.tranId
WHERE trn.tranStatus IN ('Hold','Compliance Hold','OFAC Hold','OFAC/Compliance Hold') AND
trn.payStatus = 'Unpaid'
group by trn.sCountry
End
DECLARE @cdTable VARCHAR(MAX) = ''
SET @cdTable = '
LEFT JOIN (
SELECT
DISTINCT
tranId
,cb.bankName
,cd.countryBankId
FROM collectionDetails cd WITH(NOLOCK)
LEFT JOIN countryBanks cb WITH(NOLOCK) ON cd.countryBankId = cb.countryBankId
INNER JOIN INBOUND_REMIT_TRAN_TEMP trn WITH(NOLOCK) ON cd.tranId = trn.id
AND (trn.tranStatus = ''Hold'' OR trn.tranStatus = ''Compliance Hold'' OR trn.tranStatus = ''OFAC Hold'' )
AND trn.payStatus = ''Unpaid''
) cd ON cd.tranId = trn.id '
IF @flag = 's-admin-online'
BEGIN
SET @table = '
SELECT DISTINCT
trn.id
,branch = am.agentName
,country = trn.pCountry
,senderId = sen.customerId
,sender = sen.firstName + ISNULL( '' '' + sen.middleName, '''') + ISNULL( '' '' + sen.lastName, '''')
,receiverId = rec.customerId
,receiver = rec.firstName + ISNULL( '' '' + rec.middleName, '''') + ISNULL( '' '' + rec.lastName, '''')
,amt = CAST(ISNULL(trn.tAmt,0) + ISNULL(trn.serviceCharge,0) AS DECIMAL(18, 2))
,txnDate = CAST(trn.createdDate AS DATE)
,txncreatedBy = trn.createdBy
,CASE WHEN trn.pAgent=1100 OR trn.pAgent = 1043 THEN 1 ELSE 0 END isThirdPartyTran
FROM INBOUND_REMIT_TRAN_TEMP trn WITH(NOLOCK) ' + @cdTable + '
INNER JOIN agentMaster am WITH(NOLOCK) ON trn.sAgent = am.agentId
INNER JOIN INBOUND_TRAN_SENDERS_TEMP sen WITH(NOLOCK) ON trn.id = sen.tranId
INNER JOIN INBOUND_TRAN_RECEIVERS_TEMP rec WITH(NOLOCK) ON trn.id = rec.tranId
WHERE trn.tranStatus IN (''Hold'',''Compliance Hold'',''OFAC Hold'',''OFAC/Compliance Hold'') AND
trn.payStatus = ''Unpaid''
'
IF @id IS NOT NULL
SET @table = @table + ' AND trn.id = ''' + @id + ''''
IF @branch IS NOT NULL
SET @table = @table + ' AND am.agentId = ''' + @branch + ''''
IF @country IS NOT NULL
SET @table = @table + ' AND trn.pCountry LIKE ''' + @country + '%'''
IF @sendCountry IS NOT NULL
SET @table = @table + ' AND trn.sCountry LIKE ''' + @sendCountry + '%'''
IF @amt IS NOT NULL
SET @table = @table + ' AND trn.pAmt = ' + CAST(@amt AS VARCHAR(20))+ ''
IF @txncreatedBy IS NOT NULL
SET @table = @table + ' AND trn.createdBy = '''+@txncreatedBy+''''
IF @txnDate IS NOT NULL
SET @table = @table + ' AND CAST(trn.createdDate AS DATE)='''+@txnDate +''''
IF @ControlNo IS NOT NULL
SET @table = @table + ' AND trn.controlNo = dbo.fnaEncryptString('''+@ControlNo+''')'
IF @sendAgent IS NOT NULL
SET @table = @table + ' AND trn.sAgent = '''+@sendAgent+''''
IF @sendBranch IS NOT NULL
SET @table = @table + ' AND trn.sBranch = '''+@sendBranch+''''
SET @sql = '
SELECT
* , STUFF((SELECT '''' + US.voucherNo +'' - ''+ CONVERT(VARCHAR(11),US.voucherDate,6) +'' - ''+ CAST(US.voucherAmt AS VARCHAR)+'' || ''
FROM bankCollectionVoucherDetail US
WHERE US.tempTranId = x.id
FOR XML PATH('''')), 1, 1, '''') [voucherDetail]
FROM (
' + @table + '
) x
WHERE 1 = 1 '
IF @sender IS NOT NULL
SET @sql = @sql + ' AND sender LIKE ''' + @sender + '%'''
IF @receiver IS NOT NULL
SET @sql = @sql + ' AND receiver LIKE ''' + @receiver + '%'''
PRINT @sql
EXEC (@sql)
RETURN
END
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION
SELECT 1 error_code, ERROR_MESSAGE() mes, NULL id
END CATCH
GO