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.
797 lines
46 KiB
797 lines
46 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_icPayHistory] Script Date: 9/27/2019 1:30:14 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
CREATE proc [dbo].[proc_icPayHistory] (
|
|
@flag VARCHAR(50)
|
|
,@user VARCHAR(50)
|
|
,@rowId BIGINT = NULL
|
|
------------ IC Pay parameters -----------
|
|
,@ICTC_Number VARCHAR(100) = NULL
|
|
,@Agent_OrderNumber VARCHAR(100) = NULL
|
|
,@Remitter_Name VARCHAR(100) = NULL
|
|
,@Remitter_Address VARCHAR(100) = NULL
|
|
,@Remitter_IDType VARCHAR(100) = NULL
|
|
,@Remitter_IDDtl VARCHAR(100) = NULL
|
|
,@Originating_Country VARCHAR(100) = NULL
|
|
,@Delivery_Mode VARCHAR(100) = NULL
|
|
,@Paying_Amount VARCHAR(100) = NULL
|
|
,@PayingAgent_CommShare VARCHAR(100) = NULL
|
|
,@Paying_Currency VARCHAR(100) = NULL
|
|
,@Paying_Agent VARCHAR(100) = NULL
|
|
,@Paying_AgentName VARCHAR(100) = NULL
|
|
,@Beneficiary_Name VARCHAR(100) = NULL
|
|
,@Beneficiary_Address VARCHAR(100) = NULL
|
|
,@Beneficiary_City VARCHAR(100) = NULL
|
|
,@Destination_Country VARCHAR(100) = NULL
|
|
,@Beneficiary_TelNo VARCHAR(100) = NULL
|
|
,@Beneficiary_MobileNo VARCHAR(100) = NULL
|
|
,@Expected_BenefID VARCHAR(100) = NULL
|
|
,@Bank_Address VARCHAR(100) = NULL
|
|
,@Bank_Account_Number VARCHAR(100) = NULL
|
|
,@Bank_Name VARCHAR(100) = NULL
|
|
,@Purpose_Remit VARCHAR(100) = NULL
|
|
,@Message_PayeeBranch VARCHAR(100) = NULL
|
|
,@Bank_BranchCode VARCHAR(100) = NULL
|
|
,@Settlement_Rate VARCHAR(100) = NULL
|
|
,@PrinSettlement_Amount VARCHAR(100) = NULL
|
|
,@Transaction_SentDate VARCHAR(100) = NULL
|
|
---------------------END--------------------------
|
|
,@payConfirmationNo VARCHAR(100) = NULL
|
|
,@apiStatus VARCHAR(100) = NULL
|
|
,@payResponseCode VARCHAR(20) = NULL
|
|
,@payResponseMsg VARCHAR(100) = NULL
|
|
,@recordStatus VARCHAR(50) = NULL
|
|
,@tranPayProcess VARCHAR(20) = NULL
|
|
,@createdDate DATETIME = NULL
|
|
,@createdBy VARCHAR(30) = NULL
|
|
,@paidDate DATETIME = NULL
|
|
,@paidBy VARCHAR(30) = NULL
|
|
,@pBranch INT = NULL
|
|
,@pBranchName VARCHAR(100) = NULL
|
|
,@pAgent INT = NULL
|
|
,@pAgentName VARCHAR(100) = NULL
|
|
,@rIdType VARCHAR(30) = NULL
|
|
,@rIdNumber VARCHAR(30) = NULL
|
|
,@rIdPlaceOfIssue VARCHAR(50) = NULL
|
|
,@rIssuedDate DATETIME = NULL
|
|
,@rValidDate DATETIME = NULL
|
|
,@rDob DATETIME = NULL
|
|
,@rAddress VARCHAR(100) = NULL
|
|
,@rOccupation VARCHAR(100) = NULL
|
|
,@rContactNo VARCHAR(50) = NULL
|
|
,@rCity VARCHAR(100) = NULL
|
|
,@rNativeCountry VARCHAR(100) = NULL
|
|
,@relationType VARCHAR(50) = NULL
|
|
,@relativeName VARCHAR(100) = NULL
|
|
,@remarks VARCHAR(500) = NULL
|
|
,@approveBy VARCHAR(30) = NULL
|
|
,@approvePwd VARCHAR(100) = NULL
|
|
|
|
,@sCountry VARCHAR(100) = NULL
|
|
|
|
,@agentName VARCHAR(100) = NULL
|
|
,@provider VARCHAR(100) = NULL
|
|
|
|
,@sortBy VARCHAR(50) = NULL
|
|
,@sortOrder VARCHAR(5) = NULL
|
|
,@pageSize INT = NULL
|
|
,@pageNumber INT = NULL
|
|
,@customerId INT = NULL
|
|
,@membershipId INT = NULL
|
|
|
|
,@rbankName VARCHAR(50) = NULL
|
|
,@rbankBranch VARCHAR(100) = NULL
|
|
,@rcheque VARCHAR(50) = NULL
|
|
,@rAccountNo VARCHAR(50) = NULL
|
|
,@topupMobileNo varchar(50) = null
|
|
,@relationship VARCHAR(100) = NULL
|
|
,@purpose VARCHAR(100) = NULL
|
|
)
|
|
AS
|
|
SET XACT_ABORT ON
|
|
|
|
BEGIN TRY
|
|
DECLARE
|
|
@sql VARCHAR(MAX)
|
|
,@table VARCHAR(MAX)
|
|
,@select_field_list VARCHAR(MAX)
|
|
,@extra_field_list VARCHAR(MAX)
|
|
,@sql_filter VARCHAR(MAX)
|
|
,@modType VARCHAR(6)
|
|
,@oldAgent INT
|
|
,@ApprovedFunctionId VARCHAR(8)
|
|
|
|
|
|
IF @flag = 'a'
|
|
BEGIN
|
|
SELECT TOP 1
|
|
rowId
|
|
,[controlNo] = dbo.FNADecryptString(ic.ICTC_Number)
|
|
,[sCountry] = ic.Originating_Country
|
|
,[sName] = ic.Remitter_Name
|
|
,[sAddress] = ISNULL(ic.Remitter_Address,'')
|
|
,[sIdType] = ic.Remitter_IDType
|
|
,[sIdNumber] = ic.Remitter_IDDtl
|
|
,[rCountry] = ic.Destination_Country
|
|
,[rName] = ic.Beneficiary_Name
|
|
,[rAddress] = ic.rAddress
|
|
,[rCity] = ic.rCity
|
|
,[rPhone] = ISNULL(ic.Beneficiary_TelNo,'')
|
|
,[rIdType] = ic.rIdType
|
|
,[rIdNumber] = ic.rIdNumber
|
|
,[pAmt] = ic.Paying_Amount
|
|
,[pCurr] = ic.Paying_Currency
|
|
,[pBranch] = am.agentName
|
|
,[pUser] = ic.createdBy
|
|
FROM icPayHistory ic WITH(NOLOCK)
|
|
INNER JOIN agentMaster am WITH(NOLOCK) ON ic.pBranch = am.agentId
|
|
WHERE recordStatus <> ('DRAFT') AND ICTC_Number = dbo.FNAEncryptString(@ICTC_Number)
|
|
ORDER BY rowId DESC
|
|
RETURN
|
|
END
|
|
|
|
IF @flag = 'i'
|
|
BEGIN
|
|
IF EXISTS (SELECT 'x' FROM icPayHistory WITH(NOLOCK) WHERE ICTC_Number = dbo.FNAEncryptString(@ICTC_Number))
|
|
BEGIN
|
|
UPDATE icPayHistory SET
|
|
recordStatus = 'EXPIRED'
|
|
WHERE ICTC_Number = dbo.FNAEncryptString(@ICTC_Number) AND recordStatus <> 'READYTOPAY'
|
|
END
|
|
IF @pBranch IS NULL
|
|
SELECT @pBranch = agentId FROM applicationUsers WITH(NOLOCK) WHERE userName = @user
|
|
|
|
IF @pBranch = '1001'
|
|
BEGIN
|
|
EXEC [proc_errorHandler] 1, 'Payout branch is missing.', @rowId
|
|
RETURN;
|
|
END
|
|
INSERT INTO icPayHistory (
|
|
ICTC_Number
|
|
,Agent_OrderNumber
|
|
,Remitter_Name
|
|
,Remitter_Address
|
|
,Remitter_IDType
|
|
,Remitter_IDDtl
|
|
,Originating_Country
|
|
,Delivery_Mode
|
|
,Paying_Amount
|
|
,PayingAgent_CommShare
|
|
,Paying_Currency
|
|
,Paying_Agent
|
|
,Paying_AgentName
|
|
,Beneficiary_Name
|
|
,Beneficiary_Address
|
|
,Beneficiary_City
|
|
,Destination_Country
|
|
,Beneficiary_TelNo
|
|
,Beneficiary_MobileNo
|
|
,Expected_BenefID
|
|
,Bank_Address
|
|
,Bank_Account_Number
|
|
,Bank_Name
|
|
,Purpose_Remit
|
|
,Message_PayeeBranch
|
|
,Bank_BranchCode
|
|
,Settlement_Rate
|
|
,PrinSettlement_Amount
|
|
,Transaction_SentDate
|
|
,apiStatus
|
|
,recordStatus
|
|
,pBranch
|
|
,createdDate
|
|
,createdBy )
|
|
SELECT
|
|
dbo.FNAencryptString(@ICTC_Number)
|
|
,@Agent_OrderNumber
|
|
,@Remitter_Name
|
|
,@Remitter_Address
|
|
,CASE
|
|
WHEN @Remitter_IDType = '11' THEN 'Passport'
|
|
WHEN @Remitter_IDType IN('6', '06') THEN 'Driving License'
|
|
WHEN @Remitter_IDType IN('9','09') THEN 'Labour Card'
|
|
WHEN @Remitter_IDType = '15' THEN 'State Id'
|
|
WHEN @Remitter_IDType = '18' THEN 'Alien Registration'
|
|
WHEN @Remitter_IDType = '99' THEN 'Other'
|
|
ELSE @Remitter_IDType
|
|
END --@Remitter_IDType
|
|
,@Remitter_IDDtl
|
|
,@Originating_Country
|
|
,@Delivery_Mode
|
|
,@Paying_Amount
|
|
,@PayingAgent_CommShare
|
|
,@Paying_Currency
|
|
,@Paying_Agent
|
|
,@Paying_AgentName
|
|
,@Beneficiary_Name
|
|
,@Beneficiary_Address
|
|
,@Beneficiary_City
|
|
,@Destination_Country
|
|
,@Beneficiary_TelNo
|
|
,@Beneficiary_MobileNo
|
|
,@Expected_BenefID
|
|
,@Bank_Address
|
|
,@Bank_Account_Number
|
|
,@Bank_Name
|
|
, CASE
|
|
WHEN @Purpose_Remit IN ('1', '01') THEN 'Family Maintenance'
|
|
WHEN @Purpose_Remit IN ('2', '02') THEN 'Tourism'
|
|
WHEN @Purpose_Remit IN ('3', '03') THEN 'Education'
|
|
WHEN @Purpose_Remit IN ('4', '04') THEN 'Medical'
|
|
ELSE @Purpose_Remit
|
|
END --@Purpose_Remit
|
|
,@Message_PayeeBranch
|
|
,@Bank_BranchCode
|
|
,@Settlement_Rate
|
|
,@PrinSettlement_Amount
|
|
,@Transaction_SentDate
|
|
,@apiStatus
|
|
,'DRAFT'
|
|
,@pBranch
|
|
,GETDATE()
|
|
,@user
|
|
SET @rowId = SCOPE_IDENTITY()
|
|
EXEC [proc_errorHandler] 0, 'Transaction Has Been Saved Successfully', @rowId
|
|
RETURN
|
|
END
|
|
|
|
IF @flag = 'readyToPay'
|
|
BEGIN
|
|
--IF NOT EXISTS(SELECT 'X' FROM applicationUsers WITH(NOLOCK) WHERE pwd = DBO.FNAEncryptString(@approvePwd) AND userName = @user)
|
|
--BEGIN
|
|
-- EXEC proc_errorHandler 1, 'TXN password is invalid !', @user
|
|
-- RETURN
|
|
--END
|
|
--alter table icPayHistory add topupMobileNo varchar(20)
|
|
--alter table icPayHistory add customerId bigint,membershipId varchar(50)
|
|
UPDATE icPayHistory SET
|
|
recordStatus = 'READYTOPAY'
|
|
,pBranch = ISNULL(@pBranch ,pBranch)
|
|
,rIdType = @rIdType
|
|
,rIdNumber = @rIdNumber
|
|
,rIdPlaceOfIssue = @rIdPlaceOfIssue
|
|
,rValidDate = @rValidDate
|
|
,rDob = @rDob
|
|
,rAddress = @rAddress
|
|
,rCity = @rCity
|
|
,rOccupation = @rOccupation
|
|
,rContactNo = @rContactNo
|
|
,nativeCountry = @rNativeCountry
|
|
,remarks = @remarks
|
|
,rBank = @rbankName
|
|
,rBankBranch = @rbankBranch
|
|
,rAccountNo = @rAccountNo
|
|
,rChequeNo = @rcheque
|
|
,topupMobileNo = @topupMobileNo
|
|
,customerId = @customerId
|
|
,membershipId = @membershipId
|
|
,relWithSender = @relationship
|
|
,purposeOfRemit = @purpose
|
|
,rIssueDate = @rIssuedDate
|
|
WHERE rowId = @rowId
|
|
EXEC [proc_errorHandler] 0, 'Ready to pay has been recorded successfully.', @rowId
|
|
RETURN
|
|
END
|
|
|
|
IF @flag = 'payError'
|
|
BEGIN
|
|
UPDATE icPayHistory SET
|
|
recordStatus = 'PAYERROR'
|
|
,payResponseCode = @payResponseCode
|
|
,payResponseMsg = @payResponseMsg
|
|
WHERE rowId = @rowId
|
|
EXEC [proc_errorHandler] 0, 'Pay error has been recorded successfully.', @rowId
|
|
RETURN
|
|
END
|
|
|
|
IF @flag IN ('pay', 'restore')
|
|
BEGIN
|
|
IF NOT EXISTS(
|
|
SELECT 'x' FROM icPayHistory WITH(NOLOCK)
|
|
WHERE recordStatus IN('READYTOPAY', 'PAYERROR', 'PAID')
|
|
AND rowid = @rowid )
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction Not Found!', @rowid
|
|
RETURN
|
|
END
|
|
|
|
DECLARE
|
|
@tranId BIGINT
|
|
,@tranIdTemp BIGINT
|
|
,@pSuperAgent INT
|
|
,@pSuperAgentName VARCHAR(100)
|
|
,@pCountry VARCHAR(100)
|
|
,@pState VARCHAR(100)
|
|
,@pDistrict VARCHAR(100)
|
|
,@pLocation INT
|
|
,@pAgentComm MONEY
|
|
,@pAgentCommCurrency VARCHAR(3)
|
|
,@pSuperAgentComm MONEY
|
|
,@pSuperAgentCommCurrency VARCHAR(3)
|
|
|
|
,@sAgent INT
|
|
,@sAgentName VARCHAR(100)
|
|
,@sBranch INT
|
|
,@sBranchName VARCHAR(100)
|
|
,@sSuperAgent INT
|
|
,@sSuperAgentName VARCHAR(100)
|
|
,@sAgentMapCode INT = 33200000
|
|
,@sBranchMapCode INT = 33200100
|
|
|
|
,@bankName VARCHAR(100) = NULL
|
|
,@purposeOfRemit VARCHAR(100) = NULL
|
|
,@pBankBranch VARCHAR(100) = NULL
|
|
,@sAgentSettRate VARCHAR(100) = NULL
|
|
|
|
,@agentType INT
|
|
,@payoutMethod VARCHAR(50)
|
|
,@cAmt MONEY
|
|
,@beneIdNo INT
|
|
,@customerRate MONEY
|
|
,@payoutCurr VARCHAR(50)
|
|
,@collCurr VARCHAR(50)
|
|
|
|
,@MapCodeIntBranch VARCHAR(50)
|
|
,@MapCodeIntAgent VARCHAR(50)
|
|
,@MapAgentName VARCHAR(50)
|
|
,@companyId INT = 16
|
|
,@controlNo VARCHAR(50)
|
|
|
|
SELECT
|
|
@ICTC_Number = ic.ICTC_Number
|
|
,@Agent_OrderNumber = ic.Agent_OrderNumber
|
|
,@Remitter_Name = ic.Remitter_Name
|
|
,@Remitter_Address = ic.Remitter_Address
|
|
,@Remitter_IDType = ic.Remitter_IDType
|
|
,@Remitter_IDDtl = ic.Remitter_IDDtl
|
|
,@Originating_Country = ic.Originating_Country
|
|
,@Delivery_Mode = ic.Delivery_Mode
|
|
,@Paying_Amount = ic.Paying_Amount
|
|
,@PayingAgent_CommShare = ic.PayingAgent_CommShare
|
|
,@Paying_Currency = ic.Paying_Currency
|
|
,@Paying_Agent = ic.Paying_Agent
|
|
,@Paying_AgentName = ic.Paying_AgentName
|
|
,@Beneficiary_Name = ic.Beneficiary_Name
|
|
,@Beneficiary_Address = ic.rAddress
|
|
,@Beneficiary_City = ic.rCity
|
|
,@Destination_Country = ic.Destination_Country
|
|
,@Beneficiary_TelNo = ic.rContactNo
|
|
,@Beneficiary_MobileNo = ic.Beneficiary_MobileNo
|
|
,@Expected_BenefID = ic.Expected_BenefID
|
|
,@Bank_Address = ic.Bank_Address
|
|
,@Bank_Account_Number = ic.Bank_Account_Number
|
|
,@Bank_Name = ic.Bank_Name
|
|
,@Purpose_Remit = ic.Purpose_Remit
|
|
,@Message_PayeeBranch = ic.Message_PayeeBranch
|
|
,@Bank_BranchCode = ic.Bank_BranchCode
|
|
,@Settlement_Rate = ic.Settlement_Rate
|
|
,@PrinSettlement_Amount = ic.PrinSettlement_Amount
|
|
,@Transaction_SentDate = ic.Transaction_SentDate
|
|
,@rIdType = ic.rIdType
|
|
,@rIdNumber = ic.rIdNumber
|
|
,@rValidDate = ic.rValidDate
|
|
,@rDob = ic.rDob
|
|
,@rOccupation = ic.rOccupation
|
|
,@rNativeCountry = ic.nativeCountry
|
|
,@pBranch = pBranch
|
|
,@pBranchName = pb.agentName
|
|
,@rbankName = rBank
|
|
,@rbankBranch = rBankBranch
|
|
,@rcheque = rAccountNo
|
|
,@rAccountNo = rChequeNo
|
|
,@topupMobileNo = topupMobileNo
|
|
,@customerId = customerId
|
|
,@membershipId = membershipId
|
|
,@purpose = purposeOfRemit
|
|
,@relationship = relWithSender
|
|
,@rIssuedDate = rIssueDate
|
|
FROM icPayHistory ic WITH(NOLOCK)
|
|
LEFT JOIN agentMaster pb WITH(NOLOCK) ON ic.pBranch = pb.agentId
|
|
WHERE rowId = @rowId
|
|
|
|
--## Check if controlno exist in remittran.
|
|
IF EXISTS( SELECT 'x' FROM remitTran WITH(NOLOCK) WHERE controlNo = @ICTC_Number)
|
|
BEGIN
|
|
DECLARE @status VARCHAR(100),@msg VARCHAR(100)
|
|
SELECT
|
|
@agentName = sAgentName
|
|
,@status = payStatus
|
|
FROM remitTran WITH(NOLOCK) WHERE controlNo = @ICTC_Number
|
|
SET @msg = 'This transaction belongs to ' + @agentName + ' and is in status: ' + @status
|
|
EXEC proc_errorHandler 1,@msg,NULL
|
|
RETURN
|
|
END
|
|
|
|
--## Set paying agent details.
|
|
SELECT
|
|
@pAgent = parentId,
|
|
@pBranchName = agentName,
|
|
@agentType = agentType,
|
|
@pCountry = agentCountry,
|
|
@pState = agentState,
|
|
@pDistrict = agentDistrict,
|
|
@pLocation = agentLocation,
|
|
@MapCodeIntBranch=mapCodeInt
|
|
FROM agentMaster WITH(NOLOCK) WHERE agentId = @pBranch
|
|
|
|
IF @agentType = 2903
|
|
SET @pAgent = @pBranch
|
|
|
|
SELECT @sBranch = bm.agentId,
|
|
@sAgent = am.agentId,
|
|
@sBranchName = bm.agentName,
|
|
@sAgentName = am.agentName
|
|
FROM agentMaster bm WITH(NOLOCK) inner join agentMaster am with(nolock) on bm.parentId = am.agentId
|
|
WHERE bm.agentId = 4817
|
|
|
|
SELECT @sSuperAgent = '4641',
|
|
@sSuperAgentName = 'INTERNATIONAL AGENTS'
|
|
|
|
--## 2. Find Payout Agent Details
|
|
SELECT @pSuperAgent = parentId
|
|
FROM agentMaster WITH(NOLOCK) WHERE agentId = @pAgent
|
|
|
|
SELECT @pSuperAgentname = agentNAME
|
|
FROM agentMaster WITH(NOLOCK) WHERE agentId = @pSuperAgent
|
|
|
|
--## 3. Find Commission
|
|
DECLARE @sCountryId INT, @deliveryMethodId INT, @pCommCheck MONEY
|
|
SELECT @sCountryId = countryId FROM countryMaster WITH(NOLOCK) WHERE countryName = @sCountry
|
|
|
|
if @sCountryId is null
|
|
select @sCountryId = agentCountryId from agentMaster with(nolock) where agentId = @sBranch
|
|
|
|
SET @payoutMethod = 'Cash Payment'
|
|
DECLARE @pCountryId INT = NULL
|
|
SELECT @pCountryId = countryId FROM countryMaster WITH(NOLOCK) WHERE countryName = @pCountry
|
|
SELECT @deliveryMethodId = serviceTypeId FROM serviceTypeMaster WITH(NOLOCK)
|
|
WHERE typeTitle = @payoutMethod AND ISNULL(isDeleted, 'N') = 'N'
|
|
|
|
SELECT @pSuperAgentComm = 0, @pSuperAgentCommCurrency = 'NPR'
|
|
SELECT @pAgentComm = ISNULL(amount, 0),
|
|
@pCommCheck = amount,
|
|
@pAgentCommCurrency = commissionCurrency,
|
|
@pCommCheck = amount
|
|
FROM dbo.FNAGetPayComm(@sBranch, @sCountryId, NULL, @pSuperAgent, 151,
|
|
@pLocation, @pBranch, 'NPR', @deliveryMethodId, NULL, @Paying_Amount, NULL, NULL, NULL)
|
|
|
|
IF @pCommCheck IS NULL
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Payout Commission not defined', NULL
|
|
RETURN
|
|
END
|
|
|
|
-------Compliance Check Begin----------
|
|
|
|
-- Thirdparty txn doesn't have tranid. Hence, temp tranid is created for compliance checking process. Later on this will replace by actual tranId.
|
|
SELECT @tranIdTemp = ABS(CAST(CRYPT_GEN_RANDOM(8) AS BIGINT))
|
|
|
|
IF NOT EXISTS(SELECT 'X' FROM remitTranCompliancePay WITH(NOLOCK) WHERE tranId = @tranIdTemp AND approvedDate IS NOT NULL)
|
|
BEGIN
|
|
|
|
DECLARE @csMasterId INT, @complianceRes VARCHAR(20), @totalRows INT, @count INT, @compFinalRes VARCHAR(20), @result VARCHAR(MAX),@complianceAction CHAR(1),
|
|
@compApproveRemark VARCHAR(200)
|
|
|
|
DECLARE @csMasterRec TABLE (rowId INT IDENTITY(1,1), masterId INT)
|
|
|
|
INSERT @csMasterRec(masterId)
|
|
SELECT masterId FROM dbo.FNAGetComplianceRuleMaster_Pay(@pBranch, @pCountryId, NULL, @pBranch, NULL, NULL, @customerId)
|
|
SELECT @totalRows = COUNT(*) FROM @csMasterRec
|
|
|
|
DECLARE @denyTxn CHAR(1) = 'N'
|
|
IF EXISTS(SELECT 'X' FROM @csMasterRec)
|
|
BEGIN
|
|
DELETE FROM remitTranCompliancePayTemp WHERE tranId = @tranIdTemp
|
|
SET @count = 1
|
|
WHILE(@count <= @totalRows)
|
|
BEGIN
|
|
SELECT @csMasterId = masterId FROM @csMasterRec WHERE rowId = @count
|
|
|
|
EXEC proc_complianceRuleDetail_Pay
|
|
@user = @user
|
|
,@tranId = @tranIdTemp
|
|
,@tAmt = @Paying_Amount
|
|
,@customerId = @customerId
|
|
,@receiverId = @rIdNumber
|
|
,@receiverMemId = @membershipId
|
|
,@receiverName = @Beneficiary_Name
|
|
,@receiverMobile = @rContactNo
|
|
,@receiverAcNo = @rAccountNo
|
|
,@masterId = @csMasterId
|
|
,@paymentMethod = @deliveryMethodId
|
|
,@checkingFor = 'v'
|
|
,@result = @complianceRes OUTPUT
|
|
|
|
|
|
SET @compFinalRes = ISNULL(@compFinalRes, '') + ISNULL(@complianceRes, '')
|
|
|
|
IF @complianceRes = 'M' AND ISNULL(@complianceAction, '') <> 'C'
|
|
SET @complianceAction = 'M'
|
|
IF @complianceRes = 'C'
|
|
SET @complianceAction = 'C'
|
|
|
|
SET @count = @count + 1
|
|
END
|
|
END
|
|
|
|
IF(ISNULL(@compFinalRes, '') <> '')
|
|
BEGIN
|
|
IF(@compFinalRes <> '')
|
|
BEGIN
|
|
IF EXISTS(SELECT 'X' FROM remitTranCompliancePayTemp WITH(NOLOCK) WHERE tranId = @tranIdTemp)
|
|
BEGIN
|
|
INSERT INTO remitTranCompliancePay(tranId, csDetailTranId, matchTranId)
|
|
SELECT @tranIdTemp, csDetailTranId, matchTranId FROM remitTranCompliancePayTemp WITH(NOLOCK) WHERE tranId = @tranIdTemp
|
|
|
|
|
|
--INSERT tranPayCompliance(tranId,provider,controlNo,pBranch,receiverName,rMemId,dob,
|
|
--rIdType,rIdNumber,rPlaceOfIssue,rContactNo,rRelationType,rRelativeName,relWithSender,purposeOfRemit,createdBy,createdDate)
|
|
--SELECT @tranIdTemp, '4816' , @ICTC_Number,@pBranch,@Beneficiary_Name,@membershipId,@rDob,
|
|
--@rIdType,@rIdNumber,@rIdPlaceOfIssue,@rContactNo,@relationType,@relativeName,@relationship,@purpose,@user,GETDATE()
|
|
|
|
DELETE FROM dbo.remitTranCompliancePayTemp WHERE tranId = @tranIdTemp
|
|
END
|
|
|
|
IF ISNULL(@complianceAction, '') <> ''
|
|
BEGIN
|
|
|
|
--UPDATE remitTran SET
|
|
-- tranStatus = 'Hold'
|
|
--WHERE id = @tranId
|
|
|
|
UPDATE remitTranCompliancePay SET
|
|
approvedRemarks = 'Marked for Compliance'
|
|
,approvedBy = 'system'
|
|
,approvedDate = GETDATE()
|
|
WHERE tranId = @tranIdTemp
|
|
|
|
--UPDATE tranPayCompliance SET
|
|
-- approvedRemarks = 'Marked for Compliance'
|
|
-- ,approvedBy = 'system'
|
|
-- ,approvedDate = GETDATE()
|
|
--WHERE tranId = @tranIdTemp
|
|
END
|
|
|
|
END
|
|
|
|
END
|
|
|
|
END
|
|
|
|
-------Compliance Check End----------
|
|
|
|
BEGIN TRANSACTION
|
|
BEGIN
|
|
INSERT INTO remitTran (
|
|
[controlNo]
|
|
,[senderName]
|
|
|
|
,[sCountry]
|
|
,[sSuperAgent]
|
|
,[sSuperAgentName]
|
|
|
|
,[paymentMethod]
|
|
,[cAmt]
|
|
,[pAmt]
|
|
,[tAmt]
|
|
,[pAgentComm]
|
|
,[payoutCurr]
|
|
|
|
,[pAgent]
|
|
,[pAgentName]
|
|
,[pSuperAgent]
|
|
,[pSuperAgentName]
|
|
,[receiverName]
|
|
|
|
,[pCountry]
|
|
,[pBranch]
|
|
,[pBranchName]
|
|
,[pState]
|
|
,[pDistrict]
|
|
,[pLocation]
|
|
|
|
,[purposeofRemit]
|
|
,[pMessage]
|
|
|
|
,[createdDate]
|
|
,[createdDateLocal]
|
|
,[createdBy]
|
|
,[approvedDate]
|
|
,[approvedDateLocal]
|
|
,[approvedBy]
|
|
,[paidBy]
|
|
,[paidDate]
|
|
,[paidDateLocal]
|
|
|
|
--## hardcoded parameters
|
|
,[tranStatus]
|
|
,[payStatus]
|
|
,[collCurr]
|
|
,[controlNo2]
|
|
,[tranType]
|
|
,[sAgent]
|
|
,[sAgentName]
|
|
,[sBranch]
|
|
,[sBranchName]
|
|
,sCurrCostRate
|
|
)
|
|
SELECT
|
|
@ICTC_Number
|
|
,@Remitter_Name
|
|
,@Originating_Country
|
|
,@sSuperAgent
|
|
,@sSuperAgentName
|
|
,'Cash Payment'
|
|
,ROUND(@Paying_Amount,0)
|
|
,ROUND(@Paying_Amount,0)
|
|
,ROUND(@Paying_Amount,0)
|
|
,@pAgentComm
|
|
,'NPR'
|
|
,@pAgent
|
|
,@pAgentName
|
|
,@pSuperAgent
|
|
,@pSuperAgentName
|
|
,@Beneficiary_Name
|
|
,@pCountry
|
|
,@pBranch
|
|
,@pBranchName
|
|
,@pState
|
|
,@pDistrict
|
|
,@pLocation
|
|
,@purposeOfRemit
|
|
,@remarks
|
|
,GETDATE()
|
|
,GETDATE()
|
|
,'SWIFT:API'
|
|
,GETDATE()
|
|
,GETDATE()
|
|
,'SWIFT:API'
|
|
,@user
|
|
,dbo.FNAGetDateInNepalTZ()
|
|
,dbo.FNAGetDateInNepalTZ()
|
|
|
|
--## HardCoded Parameters
|
|
,'Paid'
|
|
,'Paid'
|
|
,'NPR'
|
|
,@Agent_OrderNumber
|
|
,'I'
|
|
,@sAgent
|
|
,@sAgentName
|
|
,@sBranch
|
|
,@sBranchName
|
|
,'1'
|
|
|
|
SET @tranId = SCOPE_IDENTITY()
|
|
|
|
-- ## insert to TranSenders
|
|
INSERT INTO tranSenders (
|
|
tranId
|
|
,firstName
|
|
,country
|
|
,[address]
|
|
,homePhone
|
|
)
|
|
SELECT
|
|
@tranId
|
|
,@Remitter_Name
|
|
,@Originating_Country
|
|
,@Remitter_Address
|
|
,''
|
|
|
|
-- ## insert to TranReceivers
|
|
INSERT INTO tranReceivers (
|
|
tranId
|
|
,firstName
|
|
,country
|
|
,city
|
|
,[address]
|
|
,homePhone
|
|
,mobile
|
|
,idType
|
|
,idNumber
|
|
,dob
|
|
,occupation
|
|
,validDate
|
|
,bankName
|
|
,branchName
|
|
,chequeNo
|
|
,accountNo
|
|
,workPhone
|
|
,customerId
|
|
,membershipId
|
|
,relWithSender
|
|
,purposeOfRemit
|
|
,issuedDate2
|
|
,validDate2
|
|
)
|
|
SELECT
|
|
@tranId
|
|
,@Beneficiary_Name
|
|
,@Destination_Country
|
|
,@Beneficiary_City
|
|
,@Beneficiary_Address
|
|
,@Beneficiary_MobileNo
|
|
,@Beneficiary_TelNo
|
|
,@rIdType
|
|
,@rIdNumber
|
|
,@rDob
|
|
,@rOccupation
|
|
,@rValidDate
|
|
,@rbankName
|
|
,@rbankBranch
|
|
,@rcheque
|
|
,@raccountNo
|
|
,@topupMobileNo
|
|
,@customerId
|
|
,@membershipId
|
|
,@relationship
|
|
,@purpose
|
|
,@rIssuedDate
|
|
,@rValidDate
|
|
|
|
UPDATE remitTranCompliancePay SET
|
|
tranId = @tranId
|
|
WHERE tranId = @tranIdTemp
|
|
|
|
--UPDATE tranPayCompliance SET
|
|
--tranId = @tranId
|
|
--WHERE tranId = @tranIdTemp
|
|
|
|
|
|
IF @membershipId IS NOT NULL
|
|
BEGIN
|
|
UPDATE dbo.customerMaster SET
|
|
paidTxn = ISNULL(paidTxn,0)+1,
|
|
firstTxnDate = ISNULL(firstTxnDate,GETDATE())
|
|
WHERE membershipId = @membershipId
|
|
END
|
|
-- ## Updating Data in icPayHistory table by paid status
|
|
UPDATE icPayHistory SET
|
|
recordStatus = 'PAID'
|
|
,tranPayProcess = CASE WHEN @flag = 'Pay' THEN 'REGULAR' ELSE 'RESTORED' END
|
|
,payResponseCode = @payResponseCode
|
|
,payResponseMsg = @payResponseMsg
|
|
WHERE rowId = @rowId
|
|
|
|
/*Topup Information Send SMS*/
|
|
IF @membershipId IS NOT NULL
|
|
BEGIN
|
|
EXEC proc_topupQueue
|
|
@flag = 'a'
|
|
,@user = @user
|
|
,@tranId = @tranId
|
|
,@tranType = 'I'
|
|
END
|
|
-- ## Limit Update
|
|
EXEC Proc_AgentBalanceUpdate @flag = 'p',@tAmt = @Paying_Amount ,@settlingAgent = @pBranch
|
|
END
|
|
IF @@TRANCOUNT > 0
|
|
COMMIT TRANSACTION
|
|
SET @msg =
|
|
CASE
|
|
WHEN @flag = 'restore' THEN 'Transaction has been restored successfully'
|
|
ELSE 'Transaction paid successfully'
|
|
END
|
|
|
|
EXEC proc_pushToAc @flag= 'i', @controlNoEncrypted = @ICTC_Number
|
|
|
|
SET @controlNo = dbo.fnadecryptstring(@ICTC_Number)
|
|
EXEC [proc_errorHandler] 0, @msg, @controlNo
|
|
RETURN
|
|
END
|
|
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF @@TRANCOUNT > 0
|
|
ROLLBACK TRANSACTION
|
|
SELECT 1 errorCode, ERROR_MESSAGE() msg, NULL id
|
|
END CATCH
|
|
|
|
|
|
|
|
GO
|