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.
 
 
 

949 lines
54 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_cePayHistory_v2] Script Date: 9/27/2019 1:30:14 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[proc_cePayHistory_v2]
@flag VARCHAR(50)
,@user VARCHAR(50)
,@rowId BIGINT = NULL
,@ceNumber VARCHAR(256) = NULL
,@originatingAgentRefNum VARCHAR(256) = NULL
,@senderName VARCHAR(256) = NULL
,@senderCountry VARCHAR(256) = NULL
,@senderAgentCode VARCHAR(256) = NULL
,@senderAgentName VARCHAR(256) = NULL
,@senderMobileNumber VARCHAR(256) = NULL
,@senderMessageToBeneficiary VARCHAR(256) = NULL
,@txnCreatedDate VARCHAR(256) = NULL
,@receiverName VARCHAR(256) = NULL
,@receiverMobile VARCHAR(256) = NULL
,@payoutCurrencyCode VARCHAR(256) = NULL
,@payoutCurrencyName VARCHAR(256) = NULL
,@sentAmount VARCHAR(256) = NULL
,@charges VARCHAR(256) = NULL
,@finalPayoutAmount VARCHAR(256) = NULL
,@receiverAccountNumber VARCHAR(256) = NULL
,@receiverIbanNumber VARCHAR(256) = NULL
,@senderAddress VARCHAR(256) = NULL
,@receiverAddress VARCHAR(256) = NULL
,@senderIdType VARCHAR(256) = NULL
,@senderIdNumber VARCHAR(256) = NULL
,@senderIdDateType VARCHAR(256) = NULL
,@senderIdDate VARCHAR(256) = NULL
,@districtId VARCHAR(256) = NULL
,@districtName VARCHAR(256) = NULL
,@serviceId VARCHAR(256) = NULL
,@benBankCode VARCHAR(256) = NULL
,@benBankName VARCHAR(256) = NULL
,@benBranchCode VARCHAR(256) = NULL
,@benBranchName VARCHAR(256) = NULL
,@benAccountType VARCHAR(256) = NULL
,@benEftCode VARCHAR(256) = NULL
,@agentCode VARCHAR(256) = NULL
,@responseCode VARCHAR(256) = NULL
,@responseDesc VARCHAR(256) = NULL
,@userId VARCHAR(256) = NULL
,@pBranch INT = NULL
,@pBranchName VARCHAR(50) = 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
,@rCity VARCHAR(100) = NULL
,@rOccupation VARCHAR(100) = NULL
,@rContactNo VARCHAR(50) = NULL
,@rNativeCountry VARCHAR(100) = NULL
,@relationType VARCHAR(50) = NULL
,@relativeName VARCHAR(100) = NULL
,@remarks VARCHAR(500) = NULL
,@payResponseCode VARCHAR(20) = NULL
,@payResponseMsg VARCHAR(100) = NULL
,@pAgent INT = NULL
,@pAgentName VARCHAR(100) = NULL
,@agentName VARCHAR(200) = NULL
,@sortBy VARCHAR(50) = NULL
,@sortOrder VARCHAR(5) = NULL
,@pageSize INT = NULL
,@pageNumber INT = NULL
,@provider VARCHAR(50) = NULL
,@customerId VARCHAR(50) = NULL
,@membershipId VARCHAR(50) = 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
@ceNumberEnc VARCHAR(50) = dbo.FNAencryptString(@ceNumber)
IF ISNULL(@purpose,'')=''
SET @purpose = 'Family support'
IF @flag = 's'
BEGIN
DECLARE @table VARCHAR(MAX)
,@sql_filter VARCHAR(MAX)
,@select_field_list VARCHAR(MAX)
,@extra_field_list VARCHAR(MAX)
SET @table = '
(
SELECT
rowId=rowId
,''Cash Express'' AS provider
,am.agentName
,dbo.FNADecryptString(ceNumber) AS xpin
,customer = ISNULL(ce.sendername, '''')
,beneficiary = ISNULL(ce.receiverName, '''')
,customerAddress = ISNULL(ce.senderAddress, '''')
,beneficiaryAddress = ISNULL(ce.receiverAddress, '''')
,payoutAmount = ce.finalPayoutAmount
,payoutDate =ce.paidDate
FROM cePayHistory_v2 ce WITH(NOLOCK)
LEFT JOIN agentMaster am WITH(NOLOCK) ON am.agentId = ce.pBranch
WHERE recordStatus NOT IN(''DRAFT'', ''EXPIRED'')
'
IF @ceNumber IS NOT NULL
BEGIN
SET @table = @table + ' AND ceNumber = ''' + @ceNumberEnc + ''''
select @pBranch = pBranch,@user = createdBy from cePayHistory_v2 with(nolock)
where ceNumber = @ceNumberEnc
if @pBranch is null and @user is not null
begin
select @pBranch = agentId from applicationUsers with(nolock)
where userName = @user
update cePayHistory_v2 set pBranch = @pBranch
where ceNumber = @ceNumberEnc
end
END
ELSE
BEGIN
SET @table = @table + ' AND tranPayProcess IS NULL'
END
IF @pAgentName IS NOT NULL
SET @table = @table + ' AND am.agentName LIKE ''' + @pAgentName + '%'''
SET @table = @table + '
) x '
SET @sql_filter = ''
IF @provider IS NOT NULL
SET @sql_filter = @sql_filter + ' AND provider LIKE ''' + @provider + '%'''
SET @select_field_list ='
rowId
,provider
,agentName
,xpin
,customer
,beneficiary
,customerAddress
,beneficiaryAddress
,payoutAmount
,payoutDate
'
EXEC dbo.proc_paging
@table
,@sql_filter
,@select_field_list
,@extra_field_list
,@sortBy
,@sortOrder
,@pageSize
,@pageNumber
RETURN
END
IF @flag = 'i'
BEGIN
IF EXISTS (
SELECT
'x'
FROM cePayHistory_v2
WHERE ceNumber = @ceNumberEnc
)
BEGIN
UPDATE cePayHistory_v2 SET
recordStatus = 'EXPIRED'
WHERE ceNumber = @ceNumberEnc 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 cePayHistory_v2(
ceNumber
,originatingAgentRefNum
,senderName
,senderCountry
,senderAgentCode
,senderAgentName
,senderMobileNumber
,senderMessageToBeneficiary
,txnCreatedDate
,receiverName
,receiverMobile
,payoutCurrencyCode
,payoutCurrencyName
,sentAmount
,charges
,finalPayoutAmount
,receiverAccountNumber
,receiverIbanNumber
,senderAddress
,receiverAddress
,senderIdType
,senderIdNumber
,senderIdDateType
,senderIdDate
,districtId
,districtName
,serviceId
,benBankCode
,benBankName
,benBranchCode
,benBranchName
,benAccountType
,benEftCode
,agentCode
,responseCode
,responseDesc
,userId
,recordStatus
,createdDate
,createdBy
,pBranch
)
SELECT
@ceNumberEnc
,@originatingAgentRefNum
,@senderName
,@senderCountry
,@senderAgentCode
,@senderAgentName
,@senderMobileNumber
,@senderMessageToBeneficiary
,@txnCreatedDate
,@receiverName
,@receiverMobile
,@payoutCurrencyCode
,@payoutCurrencyName
,@sentAmount
,@charges
,@finalPayoutAmount
,@receiverAccountNumber
,@receiverIbanNumber
,@senderAddress
,@receiverAddress
,@senderIdType
,@senderIdNumber
,@senderIdDateType
,@senderIdDate
,@districtId
,@districtName
,@serviceId
,@benBankCode
,@benBankName
,@benBranchCode
,@benBranchName
,@benAccountType
,@benEftCode
,@agentCode
,@responseCode
,@responseDesc
,@userId
,'DRAFT'
,GETDATE()
,@user
,@pBranch
SET @rowId = SCOPE_IDENTITY()
EXEC [proc_errorHandler] 0, 'Transaction Has Been Saved Successfully', @rowId
RETURN
END
IF @flag = 'readyToPay'
BEGIN
--alter table cePayHistory_v2 ADD topupMobileNo VARCHAR(20),
--alter table cePayHistory_v2 ADD customerId bigint,membershipId varchar(50)
UPDATE cePayHistory_v2 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
,relationType = @relationType
,relativeName = @relativeName
,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.','Nepal'
RETURN
END
IF @flag = 'payError'
BEGIN
UPDATE cePayHistory_v2 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 cePayHistory_v2 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 = 33300350
,@sBranchMapCode INT = 33422529
,@sCountry VARCHAR(100)
,@bankName VARCHAR(100) = NULL
,@pBankBranch VARCHAR(100) = NULL
,@sAgentSettRate VARCHAR(100) = NULL
,@agentType INT
,@payoutMethod VARCHAR(50)
,@cAmt MONEY
,@customerRate MONEY
,@payoutCurr VARCHAR(50)
,@collCurr VARCHAR(50)
,@MapCodeIntBranch VARCHAR(50)
,@MapCodeIntAgent VARCHAR(50)
,@MapAgentName VARCHAR(50)
,@companyId INT = 16
,@ControlNoModified VARCHAR(50)
,@controlNo VARCHAR(50)
SELECT
@ceNumber = ce.ceNumber
,@originatingAgentRefNum = ce.originatingAgentRefNum
,@senderName = ce.senderName
,@senderCountry = ce.senderCountry
,@senderAgentCode = ce.senderAgentCode
,@senderAgentName = ce.senderAgentName
,@senderMobileNumber = ce.senderMobileNumber
,@senderMessageToBeneficiary = ce.senderMessageToBeneficiary
,@txnCreatedDate = ce.txnCreatedDate
,@receiverName = ce.receiverName
,@receiverMobile = ce.receiverMobile
,@payoutCurrencyCode = ce.payoutCurrencyCode
,@payoutCurrencyName = ce.payoutCurrencyName
,@sentAmount = ce.sentAmount
,@charges = ce.charges
,@finalPayoutAmount = ce.finalPayoutAmount
,@receiverAccountNumber = ce.receiverAccountNumber
,@receiverIbanNumber = ce.receiverIbanNumber
,@senderAddress = ce.senderAddress
,@receiverAddress = ce.receiverAddress
,@senderIdType = ce.senderIdType
,@senderIdNumber = ce.senderIdNumber
,@senderIdDateType = ce.senderIdDateType
,@senderIdDate = ce.senderIdDate
,@districtId = ce.districtId
,@districtName = ce.districtName
,@serviceId = ce.serviceId
,@benBankCode = ce.benBankCode
,@benBankName = ce.benBankName
,@benBranchCode = ce.benBranchCode
,@benBranchName = ce.benBranchName
,@benAccountType = ce.benAccountType
,@benEftCode = ce.benEftCode
,@agentCode = ce.agentCode
,@responseCode = ce.responseCode
,@responseDesc = ce.responseDesc
,@userId = ce.userId
,@pBranch = ce.pBranch
,@rIdType = ce.rIdType
,@rIdNumber = ce.rIdNumber
,@rIdPlaceOfIssue = ce.rIdPlaceOfIssue
,@rValidDate = ce.rValidDate
,@rDob = ce.rDob
,@rAddress = ce.rAddress
,@rCity = ce.rCity
,@rOccupation = ce.rOccupation
,@rContactNo = ce.rContactNo
--,@nativeCountry = ce.nativeCountry
,@relationType = ce.relationType
,@relativeName = ce.relativeName
,@remarks = ce.remarks
,@payResponseCode = ce.payResponseCode
,@payResponseMsg = ce.payResponseMsg
,@rbankName = rBank
,@rbankBranch = rBankBranch
,@rcheque = rAccountNo
,@rAccountNo = rChequeNo
,@topupMobileNo = topupMobileNo
,@customerId = customerId
,@membershipId = membershipId
,@purpose = purposeOfRemit
,@relationship = relWithSender
,@rIssuedDate = rIssueDate
FROM cePayHistory_v2 ce WITH(NOLOCK)
WHERE rowId = @rowId
SET @ControlNoModified = dbo.FNAEncryptstring(dbo.FNADecryptstring(@ceNumber)+'A')
SELECT
@pAgent = parentId,
@pBranchName = agentName,
@agentType = agentType,
@pCountry = agentCountry,
@pState = agentState,
@pDistrict = agentDistrict,
@pLocation = agentLocation,
@MapCodeIntBranch=mapCodeInt
FROM agentMaster WITH(NOLOCK) WHERE agentId = @pBranch
--## Check if controlno exist in remittran.
IF EXISTS( SELECT 'x' FROM remitTran WITH(NOLOCK) WHERE controlNo = @ControlNoModified)
BEGIN
DECLARE @status VARCHAR(100),@msg VARCHAR(100)
SELECT
@agentName = sAgentName
,@status = payStatus
FROM remitTran WITH(NOLOCK) WHERE controlNo = @ControlNoModified
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
--## Check if txn exist in remitTran but not in Inficare system.
DECLARE
@remitTrandate DATETIME
,@remitTrandateNepal DATETIME
SELECT
@tranId = id
,@remitTrandate = paidDate
,@remitTrandateNepal = paidDateLocal
,@pAgentComm = pAgentComm
,@remitTrandate = GETDATE()
,@remitTrandateNepal = dbo.FNAGetDateInNepalTZ()
FROM remitTran WITH(NOLOCK) WHERE controlNo = @ControlNoModified
--##1. Find Sending Agent Details
SELECT @sBranch = agentId,
@sAgent = parentId,
@sBranchName = agentName,
@agentType = agentType
FROM agentMaster WITH(NOLOCK)
WHERE mapCodeInt = @sBranchMapCode AND ISNULL(isDeleted, 'N') = 'N'
IF @agentType = 2903
BEGIN
SET @sAgent = @sBranch
END
SELECT @sSuperAgent = parentId,
@sAgentName = agentName,
@sCountry = agentCountry
FROM agentMaster WITH(NOLOCK) WHERE agentId = @sAgent
SELECT @sSuperAgentName = agentName
FROM agentMaster WITH(NOLOCK) WHERE agentId = @sSuperAgent
--##2. Find Payout Agent Details
SELECT @pSuperAgent = parentId,
@pAgentName = agentName
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
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, @finalPayoutAmount, 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 = @finalPayoutAmount
,@customerId = @customerId
,@receiverId = @rIdNumber
,@receiverMemId = @membershipId
,@receiverName = @receiverName
,@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, '4670' , @ControlNoModified,@pBranch,@receiverName,@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
--## Inserting Data in remittran table
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]
,[pBankBranch]
,[sAgentSettRate]
,[createdDate]
,[createdDateLocal]
,[createdBy]
,[approvedDate]
,[approvedDateLocal]
,[approvedBy]
,[paidBy]
,[paidDate]
,[paidDateLocal]
--## hardcoded parameters
,[tranStatus]
,[payStatus]
,[collCurr]
,[controlNo2]
,[tranType]
,[sAgent]
,[sAgentName]
,[sBranch]
,[sBranchName]
)
SELECT
@ControlNoModified
,@senderName
,@sCountry
,@sSuperAgent
,@sSuperAgentName
,'Cash Payment'
,@finalPayoutAmount
,@finalPayoutAmount
,@finalPayoutAmount
,@pAgentComm
,@payoutCurrencyCode
,@pAgent
,@pAgentName
,@pSuperAgent
,@pSuperAgentName
,@receiverName
,@pCountry
,@pBranch
,@pBranchName
,@pState
,@pDistrict
,@pLocation
,@purpose
,@remarks
,@pBankBranch
,@SagentsettRate
,GETDATE()
,GETDATE()
,'SWIFT:API'
,GETDATE()
,GETDATE()
,'SWIFT:API'
,@user
,dbo.FNAGetDateInNepalTZ()
,dbo.FNAGetDateInNepalTZ()
--## hardCoded Parameters
,'Paid'
,'Paid'
,@payoutCurrencyCode
,@ceNumber
,'I'
,@sAgent
,@sAgentName
,@sBranch
,@sBranchName
SET @tranId = SCOPE_IDENTITY()
--## Inserting Data in tranSenders table
INSERT INTO tranSenders (
tranId
,firstName
,country
,[address]
,idType
,idNumber
,validDate
,mobile
)
SELECT
@tranId
,@senderName
,@sCountry
,@senderAddress
,@senderIdType
,@senderIdNumber
,@senderIdDate
,@senderMobileNumber
--## Inserting Data in tranReceivers table
INSERT INTO tranReceivers (
tranId
,firstName
,country
,city
,[address]
,homePhone
,idType
,idNumber
,idType2
,idNumber2
,dob
,occupation
,validDate
,idPlaceOfIssue
,relationType
,relativeName
,bankName
,branchName
,chequeNo
,accountNo
,workPhone
,customerId
,membershipId
,mobile
,relWithSender
,purposeOfRemit
,issuedDate2
,validDate2
)
SELECT
@tranId
,@receiverName
,@pCountry
,@receiverAddress
,@receiverAddress
,@rContactNo--@receiverMobile
,@rIdType
,@rIdNumber
,@rIdType
,@rIdNumber
,@rDob
,@rOccupation
,@rValidDate
,@rIdPlaceOfIssue
,@relationType
,@relativeName
,@rbankName
,@rbankBranch
,@rcheque
,@raccountNo
,@topupMobileNo
,@customerId
,@membershipId
,@rContactNo
,@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 cePayHistory_v2 table by paid status
UPDATE cePayHistory_v2 SET
recordStatus = 'PAID'
,tranPayProcess = CASE WHEN @flag = 'Pay' THEN 'REGULAR' ELSE 'RESTORED' END
,payResponseCode = @payResponseCode
,payResponseMsg = @payResponseMsg
,paidDate = GETDATE()
,paidBy = @user
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
END
EXEC Proc_AgentBalanceUpdate @flag = 'p',@tAmt = @finalPayoutAmount ,@settlingAgent = @pBranch
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 = @ControlNoModified
SET @controlNo = dbo.fnadecryptstring(@ControlNoModified)
EXEC [proc_errorHandler] 0, @msg, @controlNo
RETURN
END
IF @flag = 'a'
BEGIN
SELECT TOP 1
rowId
,[controlNo] = dbo.FNADecryptString(ce.ceNumber)
,[sCountry] = ce.senderCountry
,[sName] = ce.senderName
,[sAddress] = ISNULL(ce.senderAddress,'')
,sCity =null
,sMobile =isnull(ce.senderMobileNumber,'')
,sAgentName ='Cash Express'
,sAgent = 4670
,[sIdType] = ce.senderIdType
,[sIdNumber] = ce.senderIdNumber
,[rCountry] = 'Nepal'--ce.Destination_Country
,[rName] = ce.receiverName
,[rAddress] = ce.receiverAddress
,[rCity] = ''--ce.rCity
,[rPhone] = ISNULL(ce.receiverMobile,'')
,[rIdType] = ce.rIdType
,[rIdNumber] = ce.rIdNumber
,[pAmt] = ce.finalPayoutAmount
,[pCurr] = ce.payoutCurrencyCode
,[pBranch] = am.agentName
,branchId = ce.pBranch
,[pUser] = ce.createdBy
,transactionMode = 'Cash Payment' --case paymentMode when 1 then 'Cash Payment' ELSE 'Bank Deposit' END
,PlaceOfIssue = rIdPlaceOfIssue
,rRelativeName = relativeName
,RelationType = relationType
,rContactNo = rContactNo
FROM cePayHistory_v2 ce WITH(NOLOCK)
INNER JOIN agentMaster am WITH(NOLOCK) ON ce.pBranch = am.agentId
WHERE recordStatus <> ('DRAFT') AND rowId = @rowId
ORDER BY rowId DESC
RETURN
END
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
ROLLBACK TRANSACTION
SELECT 1 errorCode, ERROR_MESSAGE() msg, NULL id
--SELECT ERROR_LINE()
--select @senderIdDate
END CATCH
GO