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.
303 lines
24 KiB
303 lines
24 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_sendIntlReceipt] Script Date: 12/27/2023 3:00:22 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
|
|
ALTER PROC [dbo].[proc_sendIntlReceipt] (
|
|
@flag VARCHAR(50)
|
|
,@user VARCHAR(30) = NULL
|
|
,@controlNo VARCHAR(30) = NULL
|
|
,@tranId INT = NULL
|
|
,@msgType CHAR(1) = NULL
|
|
,@sortBy VARCHAR(50) = NULL
|
|
,@sortOrder VARCHAR(5) = NULL
|
|
,@pageSize INT = NULL
|
|
,@pageNumber INT = NULL
|
|
)
|
|
AS
|
|
|
|
SET NOCOUNT ON;
|
|
----------------------------------
|
|
--#134 -> Allow edit option of address in Town Area
|
|
--#298 Trim white space of Control number and TranId
|
|
-----------------------------------
|
|
DECLARE @controlNoEncrypted VARCHAR(20)
|
|
SELECT @controlNoEncrypted = dbo.FNAEncryptString(@controlNo)
|
|
|
|
IF @flag = 'receipt'
|
|
BEGIN
|
|
|
|
DECLARE @voucherNo VARCHAR(20), @bonusSchemeId int,@holdTranId INT
|
|
|
|
--6.Message
|
|
DECLARE @headMsg NVARCHAR(MAX)
|
|
,@commonMsg NVARCHAR(MAX)
|
|
,@countrySpecificMsg NVARCHAR(MAX)
|
|
,@bonusPointPending MONEY
|
|
,@bonusPoint MONEY
|
|
,@customerId INT
|
|
|
|
,@sAgent INT
|
|
,@sCountry VARCHAR(50)
|
|
,@sBranch INT
|
|
,@rCountry VARCHAR(50)
|
|
,@rAgent INT
|
|
,@sUser VARCHAR(50)
|
|
,@sUserFullName VARCHAR(75)
|
|
,@paymentMethod VARCHAR(75)
|
|
|
|
|
|
SELECT
|
|
@tranId = rt.id
|
|
,@holdTranId = rt.holdTranId
|
|
,@sCountry = sc.countryId
|
|
,@sAgent = sAgent
|
|
,@sBranch = sBranch
|
|
,@rCountry = rc.countryId
|
|
,@rAgent = pAgent
|
|
,@sUser = rt.createdBy
|
|
,@voucherNo = voucherNo
|
|
,@customerId = sen.customerId
|
|
,@paymentMethod = rt.paymentMethod
|
|
FROM vwRemitTran rt WITH(NOLOCK)
|
|
LEFT JOIN vwTranSenders sen WITH(NOLOCK) ON rt.id = sen.tranId
|
|
INNER JOIN countryMaster sc WITH(NOLOCK) ON rt.sCountry = sc.countryName
|
|
LEFT JOIN countryMaster rc WITH(NOLOCK) ON rt.pCountry = rc.countryName
|
|
WHERE rt.controlNo = LTRIM(RTRIM(@controlNoEncrypted))
|
|
|
|
SELECT
|
|
tranId = ISNULL(trn.holdTranId, trn.id)
|
|
,collMode = CASE WHEN collMode = 'Cash Collect' THEN collMode ELSE 'JP Post' END
|
|
,controlNo = dbo.FNADecryptString(trn.controlNo)
|
|
--Sender Information
|
|
,sMemId = isnull(cm.postalcode,cm.membershipid)
|
|
,sDob = CONVERT(varchar, sen.dob, 23)
|
|
,sen.companyName
|
|
,sCustomerId = sen.customerId
|
|
,senderName = sen.firstName + ISNULL( ' ' + sen.middleName, '') + ISNULL( ' ' + sen.lastName1, '') + ISNULL( ' ' + sen.lastName2, '')
|
|
,sCountryName = sen.country
|
|
,sNativeCountry=sen.nativeCountry
|
|
--,sAddress = isnull(cm.zipcode,'') + isnull(',' + SS.stateName, '') +ISNULL(', '+CM.CITY, '') + isnull(', ' +cm.street,'') + isnull(', ' + cm.additionaladdress,'')
|
|
--,sAddress = DBO.FNAGetCustomerAddress(trn.ID, 'TXN-RECEIPT')
|
|
,sAddress = ISNULL(CM.address,'') + ',' + ISNULL(CM.zipCode,'') + ',' + ISNULL(CM.city,'') + ',' + ISNULL(CM.ADDITIONALADDRESS,'')
|
|
,sContactNo = isnull(sen.mobile, cm.mobile)
|
|
,sIdType = sen.idType
|
|
,sIdNo = sen.idNumber
|
|
,Email = sen.email
|
|
,SDV.detailTitle visaStatus
|
|
|
|
--Receiver Information
|
|
,rMemId = rec.membershipId
|
|
,idExpiry = ISNULL(CONVERT(VARCHAR,sen.validDate,101),'-')
|
|
,rCustomerId = rec.customerId
|
|
,receiverName = rec.firstName + ISNULL( ' ' + rec.middleName, '') + ISNULL( ' ' + rec.lastName1, '') + ISNULL( ' ' + rec.lastName2, '')
|
|
,rCountryName = rec.country
|
|
,rAddress = rec.address
|
|
,rContactNo = COALESCE(rec.mobile, rec.homephone, rec.workphone)
|
|
,rIdType = rec.idType
|
|
,rIdNo = rec.idNumber
|
|
,relWithSender = trn.relWithSender
|
|
--Sending Agent Information
|
|
,sAgentName = CASE WHEN trn.sAgentName = trn.sBranchName THEN trn.sSuperAgentName ELSE trn.sAgentName END
|
|
,sBranchName = trn.sBranchName
|
|
,sAgentCountry = sa.agentCountry
|
|
,headMsg = sa.headMessage
|
|
,sAgentLocation = sLoc.districtName
|
|
,sAgentAddress = sa.agentAddress
|
|
,agentPhone1 = sa.agentPhone1
|
|
|
|
--Payout Agent Information
|
|
,pAgentCountry = trn.pCountry
|
|
,trn.sCountry
|
|
,pAgent = trn.pAgentName
|
|
,pAgentDistrict = rec.district
|
|
,pAgentLocation = rec.state
|
|
,sPremium = ISNULL(ROUND((tAmt * schemePremium) / customerRate, 4),0)
|
|
,exRatePremium = ISNULL(schemePremium,0)
|
|
,pPremium = ISNULL((tAmt * schemePremium),0)
|
|
,premiumDisc = 0
|
|
,trn.collMode
|
|
,trn.tAmt
|
|
,trn.serviceCharge
|
|
,handlingFee = ISNULL(trn.handlingFee, 0)
|
|
,netServiceCharge = serviceCharge
|
|
,totalServiceCharge = serviceCharge + ISNULL(handlingFee, 0)
|
|
|
|
,perAmt = '1'
|
|
,scAmt2 = serviceCharge - ISNULL(trn.handlingFee, 0)
|
|
,exRate = customerRate + ISNULL(schemePremium, 0)
|
|
,trn.cAmt
|
|
,trn.pAmt
|
|
,trn.paymentMethod
|
|
,paymentMode = CASE trn.paymentMethod WHEN 'Cash Payment' THEN 'Cash Pay' WHEN 'Bank Deposit' THEN 'Bank Transfer' ELSE trn.paymentMethod END
|
|
,stm.category
|
|
,pBankName = ISNULL(trn.pBankName, '[ANY WHERE] - ' + trn.pCountry)
|
|
,trn.pBranchName
|
|
,BankName = trn.pBankName
|
|
,BranchName = trn.pBankBranchName
|
|
,headMsg = sa.headMessage
|
|
,trn.accountNo
|
|
,trn.pCountry
|
|
,relationship = ISNULL(trn.relWithSender, '-')
|
|
,purpose = ISNULL(trn.purposeOfRemit, '-')
|
|
,sourceOfFund = ISNULL(trn.sourceOfFund, '-')
|
|
,occupation = ISNULL(OCC.detailTitle,'-')
|
|
,collMode = trn.collMode
|
|
,trn.collCurr
|
|
,paymentMethod = trn.paymentMethod
|
|
,trn.payoutCurr
|
|
,trn.tranStatus
|
|
,trn.payStatus
|
|
,payoutMsg = ISNULL(trn.pMessage, '-')
|
|
,trn.createdBy
|
|
,createdDate = trn.createdDate
|
|
,trn.approvedBy
|
|
,trn.approvedDate
|
|
,trn.paidBy
|
|
,trn.paidDate
|
|
,trn.payTokenId
|
|
,trn.createdDateLocal
|
|
|
|
,SCH.action [schemeAction]
|
|
,trn.handlingFee [schemeFee]
|
|
,iTelSoftPinNumber = ''
|
|
,companyaddress = trn.createdby --sa.companyaddress
|
|
,depositType = trn.depositType
|
|
FROM vwRemitTran trn WITH(NOLOCK)
|
|
INNER JOIN vwTranSenders sen WITH(NOLOCK) ON trn.id = sen.tranId
|
|
LEFT JOIN STATICDATAVALUE OCC ON OCC.VALUEID=SEN.OCCUPATION
|
|
LEFT JOIN CUSTOMERMASTER CM(NOLOCK) ON CM.CUSTOMERID = SEN.CUSTOMERID
|
|
INNER JOIN vwTranReceivers rec WITH(NOLOCK) ON trn.id = rec.tranId
|
|
LEFT JOIN serviceTypeMaster stm WITH(NOLOCK) ON trn.paymentMethod = stm.typeTitle
|
|
LEFT JOIN agentMaster sa WITH(NOLOCK) ON trn.sBranch = sa.agentId
|
|
LEFT JOIN agentMaster pa WITH(NOLOCK) ON trn.pBranch = pa.agentId
|
|
LEFT JOIN api_districtList sLoc WITH(NOLOCK) ON sa.agentLocation = sLoc.districtCode
|
|
LEFT JOIN schemeSetup SCH WITH (NOLOCK) ON SCH.rowId = trn.SchemeId
|
|
LEFT JOIN dbo.staticDataValue SDV WITH (NOLOCK) ON SDV.valueId = sen.visaStatus
|
|
LEFT JOIN dbo.staticDataValue SDV1 WITH (NOLOCK) ON SDV1.valueId = cm.visaStatus
|
|
WHERE trn.controlNo = dbo.fnaencryptstring(LTRIM(RTRIM(@controlNo)))
|
|
|
|
|
|
----------------------------------------------------------------------------------------------
|
|
|
|
SELECT
|
|
@sUserFullName = firstName + ISNULL(' ' + middleName, '') + ISNULL(' ' + lastName, '')
|
|
FROM applicationUsers WITH(NOLOCK) WHERE userName = @sUser
|
|
|
|
SELECT @sCountry = countryId FROM countryMaster WITH(NOLOCK)
|
|
WHERE countryName = (SELECT agentCountry FROM agentMaster WHERE agentId = @sAgent)
|
|
|
|
--Head Message
|
|
SELECT @headMsg = headMessage FROM agentMaster WHERE agentId = @sBranch
|
|
|
|
--print @sAgent
|
|
IF @headMsg IS NULL
|
|
SELECT @headMsg = agentDetails FROM agentMaster WHERE agentId = @sAgent
|
|
|
|
IF @headMsg IS NULL
|
|
SELECT @headMsg = headMsg FROM [message] WHERE countryId = @sCountry AND ISNULL(isDeleted, 'N') = 'N' AND ISNULL(isActive, 'Inactive') = 'Active'
|
|
|
|
IF(@headMsg IS NULL)
|
|
SELECT @headMsg = headMsg FROM [message] WITH(NOLOCK) WHERE countryId IS NULL AND headMsg IS NOT NULL AND ISNULL(isDeleted, 'N') = 'N' AND ISNULL(isActive, 'Inactive') = 'Active'
|
|
|
|
--Common Message
|
|
SELECT @commonMsg = commonMsg FROM [message] WITH(NOLOCK) WHERE countryId = @sCountry AND ISNULL(isDeleted, 'N') = 'N' AND ISNULL(isActive, 'Inactive') = 'Active'
|
|
IF(@commonMsg IS NULL)
|
|
SELECT @commonMsg = commonMsg FROM [message] WITH(NOLOCK) WHERE countryId IS NULL AND commonMsg IS NOT NULL AND ISNULL(isDeleted, 'N') = 'N' AND ISNULL(isActive, 'Inactive') = 'Active'
|
|
|
|
--Country Specific Message
|
|
DECLARE @countryMsg TABLE(sCountry INT,sAgent INT,rCountry INT,rAgent INT,countrySpecificMsg NVARCHAR(MAX), paymentType varchar(100))
|
|
|
|
INSERT INTO @countryMsg(sCountry,sAgent,rCountry,rAgent,countrySpecificMsg, paymentType)
|
|
SELECT countryId,agentId,rCountry,rAgent,countrySpecificMsg,typeTitle
|
|
FROM [message] M WITH(NOLOCK)
|
|
LEFT JOIN serviceTypeMaster S WITH(NOLOCK) ON M.transactionType=S.serviceTypeId
|
|
WHERE isnull(rCountry,'') = isnull(@rCountry,'') AND ISNULL(M.isDeleted, 'N') = 'N'
|
|
AND ISNULL(M.isActive, 'Inactive') = 'Active' AND (msgType = 'S' OR msgType ='B')
|
|
IF @countrySpecificMsg IS NULL
|
|
SELECT @countrySpecificMsg = countrySpecificMsg FROM @countryMsg WHERE sCountry = @sCountry
|
|
AND ISNULL(sAgent,'0') = ISNULL(@sAgent,ISNULL(sAgent,'0')) AND ISNULL(rCountry,'0') = ISNULL(@rCountry,ISNULL(rCountry,'0'))
|
|
AND ISNULL(rAgent,'0')=ISNULL(@rAgent,ISNULL(rAgent,0))
|
|
|
|
IF @countrySpecificMsg IS NULL
|
|
SELECT @countrySpecificMsg = countrySpecificMsg FROM @countryMsg WHERE sCountry = @sCountry AND ISNULL(sAgent,'0') = ISNULL(@sAgent,ISNULL(sAgent,'0')) AND ISNULL(rCountry,'0') = ISNULL(@rCountry,ISNULL(rCountry,'0'))
|
|
|
|
IF @countrySpecificMsg IS NULL
|
|
SELECT @countrySpecificMsg = countrySpecificMsg FROM @countryMsg WHERE sCountry = @sCountry AND ISNULL(sAgent,'0') = ISNULL(@sAgent,ISNULL(sAgent,'0'))
|
|
|
|
IF @countrySpecificMsg IS NULL
|
|
SELECT TOP 1 @countrySpecificMsg = countrySpecificMsg FROM @countryMsg WHERE rCountry = @rCountry AND ISNULL(paymentType,'0') = ISNULL(@paymentMethod,ISNULL(paymentType,'0'))
|
|
|
|
IF @countrySpecificMsg IS NULL
|
|
SELECT TOP 1 @countrySpecificMsg = countrySpecificMsg FROM @countryMsg WHERE rCountry = @rCountry
|
|
|
|
--print @countrySpecificMsg
|
|
|
|
IF @bonusSchemeId is not null
|
|
SELECT @bonusPointPending= bonusPointPending,
|
|
@bonusPoint=isnull(bonusPoint,0) - isnull(Redeemed,0)
|
|
FROM customers WITH (NOLOCK)
|
|
where isnull(isDeleted,'N') <> 'Y' and customerId = @customerId
|
|
|
|
|
|
SELECT @headMsg AS headMsg,@commonMsg AS commonMsg, @countrySpecificMsg AS countrySpecificMsg, @sUserFullName AS sUserFullName
|
|
,ISNULL(@bonusPointPending,0) bonusPointPending,ISNULL(@bonusPoint,0) bonusPoint,@bonusSchemeId [IsBonusOffer]
|
|
|
|
|
|
--SELECT collMode,ISNULL(amt,0) AMT,collDate,@voucherNo [voucherNo]
|
|
-- FROM collectionDetails WITH (NOLOCK)
|
|
--WHERE tranId = @tranId
|
|
|
|
SELECT
|
|
bankName = ISNULL(B.bankName, 'Cash')
|
|
,collMode
|
|
,amt = ISNULL(amt, 0)
|
|
,collDate
|
|
,voucherNo = @voucherNo
|
|
,narration
|
|
FROM collectionDetails C WITH (NOLOCK)
|
|
LEFT JOIN countryBanks B WITH (NOLOCK) ON C.countryBankId = B.countryBankId
|
|
WHERE tranId = LTRIM(RTRIM(@holdTranId))
|
|
|
|
END
|
|
|
|
ELSE IF @flag = 'c' --Check Transaction Control No
|
|
BEGIN
|
|
DECLARE @tranStatus VARCHAR(20)
|
|
SELECT @tranStatus = tranStatus FROM vwRemitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted
|
|
IF @tranStatus IS NULL
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction Not Found', @controlNoEncrypted
|
|
RETURN
|
|
END
|
|
IF @tranStatus = 'Cancel'
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction Not Found', @controlNoEncrypted
|
|
RETURN
|
|
END
|
|
IF @tranStatus = 'Block'
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Transaction is blocked. Please Contact Head Office.', @controlNoEncrypted
|
|
RETURN
|
|
END
|
|
DECLARE @agentId INT
|
|
SELECT @agentId = agentId FROM applicationUsers WITH(NOLOCK) WHERE userName = @user
|
|
IF @agentId = dbo.FNAGetHOAgentId()
|
|
BEGIN
|
|
EXEC proc_errorHandler 0, 'Transaction Found', @controlNoEncrypted
|
|
RETURN
|
|
END
|
|
|
|
--SET @controlNoEncrypted = dbo.FNADEcryptString(@controlNoEncrypted)
|
|
IF NOT EXISTS(SELECT 'X' FROM vwRemitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted AND
|
|
(sBranch = (SELECT agentId FROM applicationUsers WITH(NOLOCK) WHERE userName = @user)))
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'You are not authorized to view this transaction', @controlNoEncrypted
|
|
RETURN
|
|
END
|
|
EXEC proc_errorHandler 0, 'Transaction Found', @controlNo
|
|
END
|