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
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
|