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.
 
 
 

372 lines
12 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_sendReceipt] Script Date: 7/4/2019 11:35:48 AM ******/
DROP PROCEDURE [dbo].[proc_sendReceipt]
GO
/****** Object: StoredProcedure [dbo].[proc_sendReceipt] Script Date: 7/4/2019 11:35:48 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROC [dbo].[proc_sendReceipt] (
@flag VARCHAR(50)
,@user VARCHAR(30) = NULL
,@controlNo VARCHAR(30) = NULL
,@tranId VARCHAR(30) = NULL
,@msgType CHAR(1) = NULL
,@sortBy VARCHAR(50) = NULL
,@sortOrder VARCHAR(5) = NULL
,@pageSize INT = NULL
,@pageNumber INT = NULL
)
AS
DECLARE @controlNoEncrypted VARCHAR(20),@tranStatus VARCHAR(20),@agentId INT
DECLARE @headMsg NVARCHAR(MAX)
,@commonMsg NVARCHAR(MAX)
,@countrySpecificMsg NVARCHAR(MAX)
,@sAgent INT
,@sCountry INT
,@sUser VARCHAR(50)
,@sUserFullName VARCHAR(75)
,@customerId INT
,@bonusPointPending MONEY
,@bonusPoint MONEY
,@bonusSchemeId INT
IF @controlNo IS NOT NULL
BEGIN
SELECT @controlNoEncrypted = dbo.FNAEncryptString(UPPER(@controlNo))
SELECT @tranId = holdTranId FROM vwRemitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted
END
IF @tranId IS NOT NULL
BEGIN
IF ISNUMERIC(@tranId) = 0
BEGIN
EXEC proc_errorHandler 1, 'Invalid Transaction ID', NULL
RETURN
END
SELECT @controlNoEncrypted = controlNo FROM vwRemitTran WITH(NOLOCK) WHERE holdTranId = @tranId OR id = @tranId
SET @controlNo = dbo.FNADecryptString(@controlNoEncrypted)
END
--## Check Transaction Control No
IF @flag = 'c'
BEGIN
IF NOT EXISTS(SELECT 'X' FROM remitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted)
BEGIN
EXEC proc_errorHandler 1, 'Transaction Not Found', @controlNoEncrypted
RETURN
END
SELECT @tranStatus = tranStatus FROM remitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted
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
SELECT @agentId = agentId FROM applicationUsers WHERE userName = @user
IF @agentId = dbo.FNAGetHOAgentId()
BEGIN
EXEC proc_errorHandler 0, 'Transaction Found', @controlNoEncrypted
RETURN
END
--IF NOT EXISTS(SELECT 'X' FROM remitTran 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', @controlNoEncrypted
END
--## transaction information for receipt
IF @flag = 'receipt'
BEGIN
SELECT
@sAgent = sBranch
,@sUser = createdBy
,@customerId = sen.customerId
FROM remitTran rt with(nolock)
inner join tranSenders sen with(nolock) on rt.id = sen.tranId
WHERE controlNo = @controlNoEncrypted
SELECT @bonusSchemeId = bonusSchemeId
FROM bonusOperationSetup
WHERE GETDATE() BETWEEN schemeStartDate AND schemeEndDate
AND isnull(isActive,'N') = 'Y'
IF @bonusSchemeId is not null and @customerId is not null
SELECT
@bonusPointPending= bonusPointPending,
@bonusPoint=isnull(bonusPoint,0)
FROM customerMaster WITH (NOLOCK)
where isnull(isDeleted,'N') <> 'Y'
and customerId = @customerId
SELECT
tranId = trn.id
,controlNo = dbo.FNADecryptString(trn.controlNo)
,sMemId = sen.membershipId
,senderName = UPPER(sen.firstName + ISNULL( ' ' + sen.middleName, '') + ISNULL( ' ' + sen.lastName1, '') + ISNULL( ' ' + sen.lastName2, ''))
,sCountryName = sen.country
,sAddress = sen.address
,sContactNo = COALESCE(sen.mobile, sen.homephone, sen.workphone)
,sIdType = ISNULL(sdv.detailTitle,sen.idType)
,sIdNo = sen.idNumber
,sEmail = sen.email
--Receiver Information
,rMemId = rec.membershipId
,rCustomerId = rec.customerId
,receiverName = UPPER(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
,sAgentName = CASE WHEN trn.sAgentName = trn.sBranchName THEN trn.sSuperAgentName ELSE trn.sAgentName END
,sBranchName = trn.sBranchName
,sAgentCountry = sa.agentCountry
,sAgentLocation = sLoc.districtName
,sAgentAddress = sa.agentAddress
,agentPhone1 = sa.agentPhone1
,pAgentCountry = trn.pCountry
,pAgentDistrict = trn.pDistrict
,pAgentLocation = pLoc.districtName
,trn.tAmt
,trn.serviceCharge
,handlingFee = ISNULL(trn.handlingFee, 0)
,trn.cAmt
,trn.pAmt
,trn.paymentMethod
,relationship = ISNULL(trn.relWithSender, '-')
,purpose = ISNULL(trn.purposeOfRemit, '-')
,sourceOfFund = ISNULL(trn.sourceOfFund, '-')
,collMode = trn.collMode
,trn.collCurr
,trn.accountNo
,branchName = trn.pBankBranchName
,bankName = trn.pBankName
,paymentMethod = trn.paymentMethod
,trn.payoutCurr
,trn.tranStatus
,trn.payStatus
,payoutMsg = isnull(trn.pMessage,'')
,trn.createdBy
,trn.createdDate
,trn.approvedBy
,trn.approvedDate
,trn.paidBy
,trn.paidDate
,trn.payTokenId
,pendingBonus = isnull(cast(@bonusPointPending as varchar),'')
,earnedBonus = isnull(cast(@bonusPoint as varchar),'')
FROM remitTran trn WITH(NOLOCK)
LEFT JOIN tranSenders sen WITH(NOLOCK) ON trn.id = sen.tranId
LEFT JOIN tranReceivers rec WITH(NOLOCK) ON trn.id = rec.tranId
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 pLoc WITH(NOLOCK) ON trn.pLocation = pLoc.districtCode
LEFT JOIN api_districtList sLoc WITH(NOLOCK) ON sa.agentLocation = sLoc.districtCode
LEFT JOIN staticDataValue sdv WITH(NOLOCK) ON sen.idType=CAST(sdv.valueId AS VARCHAR)
WHERE trn.controlNo = @controlNoEncrypted
-->> 6.Message
SELECT
@sUserFullName = firstName + ISNULL(' ' + middleName, '') + ISNULL(' ' + lastName, '')
FROM applicationUsers WHERE userName = @sUser
SELECT @sCountry = countryId FROM countryMaster WITH(NOLOCK)
WHERE countryName = (SELECT agentCountry FROM agentMaster WHERE agentId = @sAgent)
--Head Message
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 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 WHERE countryId = @sCountry AND ISNULL(isDeleted, 'N') <> 'Y'
IF(@commonMsg IS NULL)
SELECT @commonMsg = commonMsg FROM message WHERE countryId IS NULL AND commonMsg IS NOT NULL AND ISNULL(isDeleted, 'N') = 'N' AND ISNULL(isActive, 'Inactive') = 'Active'
--Country Specific Message
SELECT @countrySpecificMsg = countrySpecificMsg FROM message WHERE countryId = @sCountry AND ISNULL(isDeleted, 'N') <> 'Y' AND ISNULL(isActive, 'Inactive') = 'Active'
IF(@countrySpecificMsg IS NULL)
SELECT @countrySpecificMsg = countrySpecificMsg FROM message WHERE countryId IS NULL AND countrySpecificMsg IS NOT NULL AND msgType = @msgType AND ISNULL(isDeleted, 'N') = 'N' AND ISNULL(isActive, 'Inactive') = 'Active'
SELECT @headMsg AS headMsg,@commonMsg AS commonMsg, @countrySpecificMsg AS countrySpecificMsg, @sUserFullName AS sUserFullName
END
--## transaction information for fee receipt
IF @flag = 'receiptFeeCollection'
BEGIN
SELECT
@sAgent = sBranch
,@sUser = createdBy
,@customerId = sen.customerId
FROM remitTran rt with(nolock)
inner join tranSenders sen with(nolock) on rt.id = sen.tranId
WHERE controlNo = @controlNoEncrypted
SELECT @bonusSchemeId = bonusSchemeId
FROM bonusOperationSetup
WHERE GETDATE() BETWEEN schemeStartDate AND schemeEndDate
AND isnull(isActive,'N') = 'Y'
IF @bonusSchemeId is not null and @customerId is not null
SELECT
@bonusPointPending= bonusPointPending,
@bonusPoint=isnull(bonusPoint,0)
FROM customerMaster WITH (NOLOCK)
where isnull(isDeleted,'N') <> 'Y'
and customerId = @customerId
SELECT
tranId = trn.id
,controlNo = dbo.FNADecryptString(trn.controlNo)
--## Sender Information
,sMemId = sen.membershipId
,senderName = UPPER(sen.firstName + ISNULL( ' ' + sen.middleName, '') + ISNULL( ' ' + sen.lastName1, '') + ISNULL( ' ' + sen.lastName2, ''))
,sCountryName = sen.country
,sAddress = sen.address
,sContactNo = COALESCE(sen.mobile, sen.homephone, sen.workphone)
,sIdType = ISNULL(sdv.detailTitle,sen.idType)
,sIdNo = sen.idNumber
,sEmail = sen.email
--## Receiver Information
,receiverName = sMas.name
,rCountryName = sMas.country
,rAddress = sMas.address
,rContactNo = sMas.contactNo
--## student Information
,stdName = rec.stdName
,stdLevel = lvl.name
,stdRollRegNo = rec.stdRollRegNo
,stdSemYr = rec.stdSemYr
,stdFeeType = fee.feeType
,sAgentName = CASE WHEN trn.sAgentName = trn.sBranchName THEN trn.sSuperAgentName ELSE trn.sAgentName END
,sBranchName = trn.sBranchName
,sAgentCountry = sa.agentCountry
,sAgentLocation = sLoc.districtName
,sAgentAddress = sa.agentAddress
,agentPhone1 = sa.agentPhone1
,pAgentCountry = trn.pCountry
,pAgentDistrict = trn.pDistrict
,pAgentLocation = pLoc.districtName
,trn.tAmt
,trn.serviceCharge
,handlingFee = ISNULL(trn.handlingFee, 0)
,trn.cAmt
,trn.pAmt
,trn.paymentMethod
,relationship = ISNULL(trn.relWithSender, '-')
,purpose = ISNULL(trn.purposeOfRemit, '-')
,sourceOfFund = ISNULL(trn.sourceOfFund, '-')
,collMode = trn.collMode
,trn.collCurr
,accountNo=sMas.accountNo
,branchName = BRANCH.agentAddress
,bankName = BANK.agentName
,paymentMethod = trn.paymentMethod
,trn.payoutCurr
,trn.tranStatus
,trn.payStatus
,payoutMsg = isnull(trn.pMessage,'')
,trn.createdBy
,trn.createdDate
,trn.approvedBy
,trn.approvedDate
,trn.paidBy
,trn.paidDate
,trn.payTokenId
,pendingBonus = isnull(cast(@bonusPointPending as varchar),'')
,earnedBonus = isnull(cast(@bonusPoint as varchar),'')
FROM remitTran trn WITH(NOLOCK)
LEFT JOIN tranSenders sen WITH(NOLOCK) ON trn.id = sen.tranId
LEFT JOIN tranReceivers rec WITH(NOLOCK) ON trn.id = rec.tranId
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 pLoc WITH(NOLOCK) ON trn.pLocation = pLoc.districtCode
LEFT JOIN api_districtList sLoc WITH(NOLOCK) ON sa.agentLocation = sLoc.districtCode
LEFT JOIN schoolMaster sMas WITH(NOLOCK) ON sMas.rowId = rec.stdCollegeId
LEFT JOIN schoolLevel lvl with(nolock) on lvl.rowId=rec.stdLevel
LEFT JOIN agentMaster BANK WITH(NOLOCK) ON BANK.agentId=sMas.bankId
LEFT JOIN agentMaster BRANCH WITH(NOLOCK) ON BRANCH.agentId=sMas.bankBranchId
LEFT JOIN schoolFee fee with(nolock) on fee.rowId=rec.feeTypeId
LEFT JOIN staticDataValue sdv WITH(NOLOCK) ON sen.idType=CAST(sdv.valueId AS VARCHAR)
WHERE trn.controlNo = @controlNoEncrypted
END
--## Check Internation send Transaction Control No
IF @flag = 'checkInt'
BEGIN
declare @sBranch int,@userType varchar(20),@parentId int
SELECT @tranStatus = tranStatus,@sAgent = sAgent,@sBranch = sBranch FROM vwRemitTran WITH(NOLOCK) WHERE controlNo = @controlNoEncrypted
IF @tranStatus IS NULL
BEGIN
EXEC proc_errorHandler 1, 'Transaction Not Found', @controlNo
RETURN
END
IF @tranStatus = 'Cancel'
BEGIN
EXEC proc_errorHandler 1, 'Transaction is cancelled', @controlNo
RETURN
END
IF @tranStatus = 'Block'
BEGIN
EXEC proc_errorHandler 1, 'Transaction is blocked. Please Contact Head Office.', @controlNo
RETURN
END
SELECT @agentId = au.agentId,
@userType = userType,
@parentId = am.parentId
FROM applicationUsers au WITH(NOLOCK) inner join agentMaster am with(nolock) ON au.agentId = am.agentId WHERE userName = @user
IF @agentId = dbo.FNAGetHOAgentId()
BEGIN
EXEC proc_errorHandler 0, 'Transaction Found', @controlNo
RETURN
END
if @sBranch = @agentId
BEGIN
EXEC proc_errorHandler 0, 'Transaction Found', @controlNo
RETURN
END
if @sAgent = @parentId and @userType = 'AH'
BEGIN
EXEC proc_errorHandler 0, 'Transaction Found', @controlNo
RETURN
END
EXEC proc_errorHandler 1, 'Transaction not found', @controlNo
END