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.
 
 
 

417 lines
20 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_sambaBatchTxn] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[proc_sambaBatchTxn]
(
@flag VARCHAR(50) = NULL
,@user VARCHAR(50) = NULL
,@id INT = NULL
,@extBankId INT = NULL
,@extBankName VARCHAR(200)= NULL
,@extBankBranchId INT = NULL
,@pBankType VARCHAR(50) = NULL
,@extBankBranchName VARCHAR(200)= NULL
)
AS
SET NOCOUNT ON;
SET XACT_ABORT ON;
BEGIN TRY
IF @flag ='i'
BEGIN
IF NOT EXISTS(SELECT 'X' FROM RemittanceLogData.dbo.[temp_money] WITH(NOLOCK) WHERE FLAG IS NULL)
BEGIN
EXEC proc_errorHandler 1, 'Transaction Not Found.', @user
RETURN;
END
INSERT INTO sambaBatch
(
[controlNo]
,[senderName]
,[receiverName]
,[sCountry]
,[sSuperAgent]
,[sSuperAgentName]
,[sAgent]
,[sAgentName]
,[sBranch]
,[sBranchName]
,[paymentMethod]
,[cAmt]
,[tAmt]
,[pAmt]
,[customerRate]
,[payoutCurr]
,[pCountry]
,[pBank]
,[pbankName]
,[pBankBranch]
,[pBankBranchName]
,pBankType
,[accountNo]
,[tranStatus]
,[payStatus]
,[collCurr]
,[tranType]
,[serviceCharge]
,[sCurrCostRate]
,[pMessage]
,[createdBy]
,[createdDate]
,[createdDateLocal]
,senName
,senAddress
,senCity
,senCountry
,senNativeCountry
,senEmail
,senCompanyName
,senIdType
,senIdNumber
,recName
,recAddress
,recHomePhone
,recWorkPhone
,recCity
,recCountry
,recIdType
,recIdNumber
)
SELECT controlNo = refno ,
senderName = SenderName ,
ReceiverName receiverName,
sCountry = SenderCountry ,
sSuperAgent = '4641',
sSuperAgentName = 'INTERNATIONAL AGENTS',
sAgent = '4873',
sAgentName = 'SAMBA FINANCIAL GROUP',
sBranch = '4874',
sBranchName = 'SAMBA FINANCIAL GROUP - RIYADH',
paymentMethod = CASE WHEN tm.paymentType = 'Cash Pay' THEN 'Cash Payment' WHEN tm.paymentType = 'Bank Transfer' THEN 'Bank Deposit' ELSE tm.paymentType END,
cAmt = paidAmt-1.87,
tAmt = paidAmt-1.87,
pAmt = TotalRoundAmt,
customerRate = Today_Dollar_rate,
payoutCurr = receiveCType,
pCountry = 'Nepal',
pBank = CASE WHEN tm.paymentType = 'Bank Transfer' THEN eb.extBankId ELSE NULL END,
pBankName = CASE WHEN tm.paymentType = 'Bank Transfer' THEN eb.bankName ELSE NULL END,
pBankBranch = NULL,
pBankBranchName = CASE WHEN tm.paymentType = 'Bank Transfer' THEN rBankBranch ELSE NULL END,
pBankType = CASE WHEN tm.paymentType = 'Bank Transfer' THEN 'E' ELSE NULL END,
accountNo = tm.rBankACNo,
tranStatus = 'Hold',
payStatus = 'Unpaid',
collCurr = paidCType,
tranType = 'I',
serviceCharge = SCharge,
sCurrCostRate = '1',
pMessage = ReciverMessage,
createdBy =SEmpID,
createdDate = local_DOT,
createdDateLocal = local_DOT,
tm.SenderName,
tm.SenderAddress,
tm.SenderCity,
tm.SenderCountry,
tm.SenderNativeCountry,
tm.SenderEmail,
SenderCompany,
'Passport',
senderPassport,
tm.ReceiverName,
ReceiverAddress+'(AC:'+tm.rBankACNo+')',
ReceiverPhone,
receiver_mobile,
ReceiverCity,
ReceiverCountry,
ReceiverIDDescription ,
ReceiverID
FROM RemittanceLogData.dbo.[temp_money] tm WITH(NOLOCK)
LEFT JOIN agentMaster pb WITH(NOLOCK) ON pb.mapCodeInt = tm.rBankID AND (pb.agentType IN (2904, 2906) OR (pb.agentType = 2903 AND pb.actAsBranch = 'Y'))
LEFT JOIN agentMaster pa WITH(NOLOCK) ON pb.parentId = pa.agentId AND pa.agentType IN (2903, 2905)
LEFT JOIN externalBank eb WITH(NOLOCK) ON eb.mapCodeInt = pa.mapCodeInt
WHERE tm.FLAG is null
UPDATE RemittanceLogData.dbo.[temp_money] SET FLAG = 'Y' WHERE FLAG IS NULL
EXEC proc_errorHandler 0, 'Data submitted successfully', @user
END
IF @flag = 's'
BEGIN
SELECT
id,
[Control No] = dbo.FNADecryptString(controlNo),
[Sender Name] = senderName,
[Receiver Name] = receiverName,
[Sending Country] = sCountry,
[Payment Method] = paymentMethod,
[Payout Amount] = pAmt,
[Bank Name] = pBankName,
[Branch Name] = pBankBranchName,
[Account No.] = accountNo,
[Receiver Address] = recAddress
FROM sambaBatch with(nolock) where approvedDate is null
END
IF @flag = 'u'
BEGIN
UPDATE sambaBatch SET pBank = '',pBankName='',pBankBranch = '',pBankBranchName = '' WHERE ID = @ID
END
IF @flag = 'd'
BEGIN
DELETE FROM sambaBatch WHERE id = @id
EXEC proc_errorHandler 0, 'Record has been deleted successfully', @user
END
IF @flag='update-bank'
BEGIN
DECLARE @pAgent INT,@pBranch INT,@pAgentName VARCHAR(200)
IF @pBankType = 'I'
BEGIN
SET @pAgent = @extBankId
END
ELSE
BEGIN
SELECT @pAgent = internalCode FROM externalBank WITH(NOLOCK) WHERE extBankId = @extBankId
END
SELECT @pAgentName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @pAgent
IF @pBranch IS NULL
SELECT TOP 1 @pBranch = agentId FROM agentMaster WITH(NOLOCK) WHERE parentId = @pAgent AND isHeadOffice = 'Y'
UPDATE sambaBatch SET
pBranch = @pBranch
,pBank = @extBankId
,pBankBranch = @extBankBranchId
,pBankBranchName = @extBankBranchName
,pBankType = @pBankType
,pBankName = @extBankName
,modifiedBy = @user
,modifiedDate = Getdate()
,pAgent = @pAgent
,pAgentName = @pAgentName
WHERE id = @id
EXEC [proc_errorHandler] 0, 'Bank Updated Successfully.', @id
END
IF @flag = 'a'
BEGIN
SELECT
id,
controlNo = dbo.FNADecryptString(controlNo),
senderName,
receiverName,
sCountry,
sSuperAgent,
sSuperAgentName,
sAgent,
sAgentName,
sBranch,
sBranchName,
paymentMethod,
tAmt,
cAmt,
pAmt,
customerRate,
payoutCurr,
pCountry,
pBank,
pBankName,
pBankBranch,
pBankBranchName,
pBankType,
accountNo,
tranStatus,
payStatus,
collCurr,
tranType,
serviceCharge,
sCurrCostRate,
pMessage,
senName,
senAddress,
senCity,
senCountry,
senNativeCountry,
senEmail,
senCompanyName,
senIdType,
senIdNumber,
senContactNo = '',
recName,
recAddress,
recContactNo = isnull(recHomePhone,'')+' , '+isnull(recWorkPhone,''),
recHomePhone,
recWorkPhone,
recCity,
recCountry,
recIdType,
recIdNumber
FROM sambaBatch WITH(NOLOCK) WHERE id = @id
END
IF @flag ='approve'
BEGIN
IF NOT EXISTS(SELECT 'X' FROM sambaBatch WITH(NOLOCK) WHERE approvedDate IS NULL)
BEGIN
EXEC proc_errorHandler 1, 'Transaction Not Found.', @user
RETURN;
END
DECLARE @tranId BIGINT,@controlNoEncrypted VARCHAR(50)
SELECT @controlNoEncrypted = controlNo FROM sambaBatch WITH(NOLOCK) WHERE id = @id
INSERT INTO remitTran
(
[controlNo]
,[senderName]
,[receiverName]
,[sCountry]
,[sSuperAgent]
,[sSuperAgentName]
,[sAgent]
,[sAgentName]
,[sBranch]
,[sBranchName]
,[paymentMethod]
,[cAmt]
,[tAmt]
,[pAmt]
,[customerRate]
,[payoutCurr]
,[pCountry]
,pAgent
,pAgentName
,[pBank]
,[pbankName]
,[pBankBranch]
,[pBankBranchName]
,pBankType
,[accountNo]
,[tranStatus]
,[payStatus]
,[collCurr]
,[tranType]
,[serviceCharge]
,[sCurrCostRate]
,[pMessage]
,[createdBy]
,[createdDate]
,[createdDateLocal]
,approvedBy
,approvedDate
,approvedDateLocal
)
SELECT
[controlNo]
,[senderName]
,[receiverName]
,[sCountry]
,[sSuperAgent]
,[sSuperAgentName]
,[sAgent]
,[sAgentName]
,[sBranch]
,[sBranchName]
,[paymentMethod] = case when pBankBranch is not null then 'Bank Deposit' else [paymentMethod] end
,[cAmt]
,[tAmt]
,[pAmt]
,[customerRate]
,[payoutCurr]
,[pCountry]
,pAgent
,pAgentName
,[pBank]
,[pbankName]
,[pBankBranch]
,[pBankBranchName]
,pBankType
,[accountNo]
,'Payment'
,'Unpaid'
,[collCurr]
,[tranType]
,[serviceCharge]
,[sCurrCostRate]
,[pMessage]
,[createdBy]
,[createdDate]
,[createdDateLocal]
,approvedBy =@user
,approvedDate = getdate()
,approvedDateLocal = getdate()
FROM sambaBatch WITH(NOLOCK) WHERE id = @id
SET @tranId = @@IDENTITY
INSERT INTO tranSenders(tranId,firstName,address,city,country,nativeCountry,email,companyName,idType,idNumber)
SELECT
@tranId,
senName,
senAddress,
senCity,
senCountry,
senNativeCountry,
senEmail,
senCompanyName,
senIdType,
senIdNumber
FROM sambaBatch tm WITH(NOLOCK) WHERE id = @id
INSERT INTO tranReceivers(tranId,firstName,address,homePhone,workPhone,city,country,idType,idNumber)
SELECT
@tranId,
recName,
recAddress,
recHomePhone,
recWorkPhone,
recCity,
recCountry,
recIdType,
recIdNumber
FROM sambaBatch tm WITH(NOLOCK) WHERE id = @id
UPDATE sambaBatch SET approvedBy = @user,approvedDate=GETDATE() WHERE id = @id
EXEC proc_pushToAc @flag= 'i', @controlNoEncrypted = @controlNoEncrypted
EXEC proc_errorHandler 0, 'Transaction has been approved successfully.', @tranId
END
END TRY
BEGIN CATCH
IF @@TRANCOUNT<>0
ROLLBACK TRANSACTION
DECLARE @errorMessage VARCHAR(MAX)
SET @errorMessage = ERROR_MESSAGE()
EXEC proc_errorHandler 1, @errorMessage, @user
END CATCH
GO