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.
 
 
 

158 lines
5.5 KiB

/**
EXEC INBOUND_PROC_MOBILE @flag='bankAccounts',@customerId = '40154'
*/
ALTER PROCEDURE INBOUND_PROC_MOBILE(
@flag VARCHAR(100) = NULL
,@UserId VARCHAR(100) = NULL
,@FromDate VARCHAR(10) = NULL
,@ToDate VARCHAR(10) = NULL
,@customerId VARCHAR(100) = NULL
,@tranId VARCHAR(30) = NULL
,@Id VARCHAR(30) = NULL
,@accountId VARCHAR(30) = NULL
)AS
BEGIN
IF @FromDate IS NULL OR @ToDate IS NULL
BEGIN
SET @FromDate = '2019-10-01'--FORMAT(GETDATE(),'yyyy-MM-dd')
SET @ToDate = FORMAT(GETDATE(),'yyyy-MM-dd')
END
IF @flag = 'tranHistory'
BEGIN
SELECT
tranDate = FORMAT(irt.approvedDate,'yyyy-MM-dd')
,senderName = irt.senderName
,receivedAmount = irt.pAmt
,bank = kbl.BankName
,bankCode = kbl.bankCode
,accountNo = irt.accountNo
,serviceFee = irt.serviceCharge
,MobileNo = ''
,status = CASE WHEN irt.payStatus NOT IN ('PAID','UNPAID','CANCEL') THEN 'PROCESSING' ELSE irt.payStatus END
,controlNo = dbo.FNADecryptString(irt.controlNo)
,sendingCountryCode = cm.CountryCode
,sendingCountryName = cm.countryName
,receivingCountryCode = cms.CountryCode
,receivingCountryName = cms.countryName
,CONVERT(bit,CASE WHEN icl.accountNo IS NOT NULL AND irt.payStatus IN ('PAID','POST','UNPAID') then 1 ELSE 0 END) IsAccountReg
FROM dbo.INBOUND_REMIT_TRAN(NOLOCK) irt
INNER JOIN dbo.INBOUND_TRAN_RECEIVERS(NOLOCK) itr ON irt.id = itr.tranId
INNER JOIN dbo.KoreanBankList(NOLOCK) kbl ON kbl.rowId = irt.pBank
INNER JOIN countryMaster(NOLOCK) cm ON cm.countryName = irt.sCountry
INNER JOIN countryMaster(NOLOCK) cms ON cms.countryName = irt.pCountry
LEFT JOIN INBOUND_CUSTOMERBANKLIST(NOLOCK) icl ON icl.accountNo=irt.accountNo AND icl.bankCode = kbl.bankCode AND icl.customerId= @UserId
WHERE irt.approvedDate BETWEEN @FromDate AND @ToDate + ' 23:59:59' AND itr.customerId = @UserId
END
IF @flag = 'tranDetail'
BEGIN
SELECT
tranDate = FORMAT(irt.approvedDate,'yyyy-MM-dd')
,senderName = irt.senderName
,receivedAmount = irt.pAmt
,bank = kbl.BankName
,bankCode = kbl.bankCode
,accountNo = irt.accountNo
,serviceFee = irt.serviceCharge
,MobileNo = ''
,status = CASE WHEN irt.payStatus NOT IN ('PAID','UNPAID','CANCEL') THEN 'PROCESSING' ELSE irt.payStatus END
,controlNo = dbo.FNADecryptString(irt.controlNo)
,sendingCountryCode = cm.CountryCode
,sendingCountryName = cm.countryName
,receivingCountryCode = cms.CountryCode
,receivingCountryName = cms.countryName
,CONVERT(bit,CASE WHEN icl.accountNo IS NOT NULL AND irt.payStatus IN ('PAID','POST','UNPAID') then 1 ELSE 0 END) IsAccountReg
FROM dbo.INBOUND_REMIT_TRAN(NOLOCK) irt
INNER JOIN dbo.INBOUND_TRAN_RECEIVERS(NOLOCK) itr ON irt.id = itr.tranId
INNER JOIN dbo.KoreanBankList(NOLOCK) kbl ON kbl.rowId = irt.pBank
INNER JOIN countryMaster(NOLOCK) cm ON cm.countryName = irt.sCountry
INNER JOIN countryMaster(NOLOCK) cms ON cms.countryName = irt.pCountry
LEFT JOIN INBOUND_CUSTOMERBANKLIST(NOLOCK) icl ON icl.accountNo=irt.accountNo AND icl.bankCode = kbl.bankCode AND icl.customerId= @UserId
WHERE irt.controlNo = dbo.FNAEncryptString(@tranId) AND itr.customerId = @UserId
END
IF @flag = 'bankAccounts'
BEGIN
DECLARE @bank VARCHAR(100), @account VARCHAR(100)
SELECT
@bank = kbl.bankCode, @account = bankAccountNo
FROM dbo.customerMaster(NOLOCK) cm
INNER JOIN dbo.KoreanBankList(NOLOCK) kbl ON kbl.rowId=cm.bankName
WHERE customerId = @customerId
IF NOT EXISTS(SELECT 'x' FROM INBOUND_CUSTOMERBANKLIST(NOLOCK) WHERE bankCode= @bank AND accountNo = @account AND customerId = @customerId)
BEGIN
INSERT INTO dbo.INBOUND_CUSTOMERBANKLIST
(
customerId,
customerName,
certNumber,
certLimitCount,
bankCode,
accountNo,
accountName,
isRealNameVerified,
isPennyTest,
action,
createdDate,
createdBy,
reqDate,
certDate
)SELECT customerId,firstName,0,0,kbl.bankCode,bankAccountNo,firstName,1,1,'SUCCESS',GETDATE(),email,GETDATE(),GETDATE()
FROM dbo.customerMaster(NOLOCK) cm
INNER JOIN dbo.KoreanBankList(NOLOCK) kbl ON kbl.rowId=cm.bankName
WHERE customerId = @customerId
END
SELECT
ibl.rowId AS Id
,IsPrimary = CASE WHEN ibl.bankCode = @bank AND ibl.accountNo = @account THEN 1 ELSE 0 END
,kbl.bankCode
,ibl.AccountNo
,Bank = kbl.BankName
,IsPennyTestSuccess = CASE WHEN ibl.action='SUCCESS' THEN 1 ELSE 0 END
FROM dbo.INBOUND_CUSTOMERBANKLIST ibl (NOLOCK) INNER JOIN dbo.KoreanBankList(NOLOCK) kbl ON ibl.bankCode = kbl.bankCode
WHERE customerId = @customerId
END
IF @flag = 'deleteAccount'
BEGIN
BEGIN TRAN
INSERT INTO INBOUND_CUSTOMERBANKLIST_HISTORY(
oldRowId,customerId,customerName,certNumber,certLimitCount,bankCode,accountNo,accountName,isRealNameVerified,isPennyTest,action,createdDate,createdBy,reqDate,certDate
) SELECT
rowId,customerId,customerName,certNumber,certLimitCount,bankCode,accountNo,accountName,isRealNameVerified,isPennyTest,action,createdDate,createdBy,reqDate,certDate
FROM INBOUND_CUSTOMERBANKLIST(NOLOCK) WHERE customerId = @customerId AND rowId = @accountId
DELETE FROM INBOUND_CUSTOMERBANKLIST WHERE customerId = @customerId AND rowId = @accountId
COMMIT TRAN
IF @@TRANCOUNT=0
BEGIN
SELECT '0' Code, 'Account has been removed successfully.' Msg, NULL Id
RETURN
END
ELSE
BEGIN
SELECT '1' Code, 'Failed to remove account.' Msg, NULL Id
RETURN
END
END
END