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.
191 lines
10 KiB
191 lines
10 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_sendDomestic] Script Date: 9/27/2019 1:30:14 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER OFF
|
|
GO
|
|
CREATE proc [dbo].[proc_sendDomestic] (
|
|
@flag VARCHAR(50)
|
|
,@user VARCHAR(30)
|
|
,@sBranch INT = NULL
|
|
,@settlingAgent INT = NULL
|
|
,@pBankBranch INT = NULL
|
|
,@pLocation INT = NULL
|
|
,@transferAmt MONEY = NULL
|
|
,@deliveryMethod VARCHAR(50) = NULL
|
|
,@districtId INT = NULL
|
|
,@pLocationId INT = NULL
|
|
,@bankId INT = NULL
|
|
)
|
|
|
|
AS
|
|
|
|
SET XACT_ABORT ON
|
|
BEGIN
|
|
|
|
DECLARE
|
|
@limitBal MONEY
|
|
,@sCountry VARCHAR(100)
|
|
,@deliveryMethodId INT
|
|
,@controlNoEncrypted VARCHAR(20)
|
|
|
|
IF @flag = 'pLocation'
|
|
BEGIN
|
|
SELECT DISTINCT
|
|
id = districtCode
|
|
,value = districtName
|
|
FROM api_districtList adl WITH(NOLOCK)
|
|
LEFT JOIN apiLocationMapping alm WITH(NOLOCK) ON adl.districtCode = alm.apiDistrictCode
|
|
WHERE ISNULL(isDeleted, 'N') = 'N' AND ISNULL(adl.isActive,'Y')='Y'
|
|
AND alm.districtId = ISNULL(@districtId, alm.districtId)
|
|
ORDER BY districtName
|
|
END
|
|
|
|
IF @flag = 'pDistrict'
|
|
BEGIN
|
|
SELECT DISTINCT
|
|
id = zdm.districtId
|
|
,value = zdm.districtName
|
|
FROM zoneDistrictMap zdm WITH(NOLOCK)
|
|
LEFT JOIN apiLocationMapping alm WITH(NOLOCK) ON zdm.districtId = alm.districtId
|
|
WHERE ISNULL(isDeleted, 'N') = 'N'
|
|
AND ISNULL(apiDistrictCode, 0) = ISNULL(ISNULL(@pLocationId, apiDistrictCode), 0)
|
|
ORDER BY districtName
|
|
END
|
|
|
|
IF @flag = 'bank'
|
|
BEGIN
|
|
SELECT
|
|
id = extBankId,
|
|
value = bankName
|
|
FROM externalBank b WITH(NOLOCK)
|
|
WHERE ISNULL(isDeleted,'N') <>'Y'
|
|
ORDER BY bankName
|
|
RETURN
|
|
END
|
|
|
|
IF @flag = 'bankBranch'
|
|
BEGIN
|
|
SELECT
|
|
id = extBranchId,
|
|
value = branchName
|
|
FROM externalBankBranch
|
|
WHERE extBankId = @bankId
|
|
AND ISNULL(isDeleted,'N') <>'Y'
|
|
AND pLocation IS NOT NULL
|
|
ORDER BY branchName
|
|
RETURN
|
|
END
|
|
|
|
IF @flag = 'sc-tb'
|
|
BEGIN
|
|
DECLARE @masterId INT
|
|
SELECT @deliveryMethodId = serviceTypeId
|
|
FROM serviceTypeMaster WITH(NOLOCK) WHERE typeTitle = @deliveryMethod AND ISNULL(isDeleted, 'N') = 'N'
|
|
|
|
IF @deliveryMethod = 'Bank Deposit'
|
|
BEGIN
|
|
SELECT @pLocation = agentLocation FROM agentMaster WITH(NOLOCK) WHERE agentId = @pBankBranch
|
|
END
|
|
ELSE IF @deliveryMethod = 'Cash Payment' AND @transferAmt > 100400
|
|
BEGIN
|
|
EXEC [proc_errorHandler] 1, 'Transfer amount exceeds Limit.', NULL
|
|
RETURN
|
|
END
|
|
|
|
|
|
SELECT
|
|
@masterId = masterId
|
|
FROM dbo.FNAGetDomesticSendComm(@sBranch, NULL, @pLocation, @deliveryMethodId, @transferAmt)
|
|
|
|
SELECT
|
|
fromAmt = fromAmt
|
|
,toAmt = toAmt
|
|
,pcnt = serviceChargePcnt
|
|
,maxAmt = serviceChargeMaxAmt
|
|
,minAmt = serviceChargeMinAmt
|
|
FROM scDetail WHERE scMasterId = @masterId
|
|
ORDER BY fromAmt
|
|
END
|
|
|
|
IF @flag = 'sc'
|
|
BEGIN
|
|
DECLARE @serviceCharge MONEY,@cAmt MONEY
|
|
|
|
-- ## transaction varification
|
|
SET @limitBal = [dbo].FNAGetLimitBal(@settlingAgent)
|
|
IF @transferAmt > @limitBal
|
|
BEGIN
|
|
EXEC [proc_errorHandler] 1, 'Transfer amount exceeds Limit. Please, Check your available limit.', NULL
|
|
RETURN
|
|
END
|
|
|
|
-- ## service charge calculation
|
|
SELECT @deliveryMethodId = serviceTypeId
|
|
FROM serviceTypeMaster WITH(NOLOCK) WHERE typeTitle = @deliveryMethod AND ISNULL(isDeleted, 'N') = 'N'
|
|
|
|
IF @deliveryMethod = 'Bank Deposit'
|
|
BEGIN
|
|
SELECT @pLocation = pLocation FROM externalBankBranch WITH(NOLOCK) WHERE extBranchId = @pBankBranch
|
|
END
|
|
ELSE IF @deliveryMethod = 'Cash Payment' AND @transferAmt > 100400
|
|
BEGIN
|
|
EXEC [proc_errorHandler] 1, 'Transfer amount exceeds Limit.', NULL
|
|
RETURN
|
|
END
|
|
SELECT @serviceCharge = ISNULL(serviceCharge, 0)
|
|
FROM dbo.FNAGetDomesticSendComm(@sBranch, NULL, @pLocation, @deliveryMethodId, @transferAmt)
|
|
|
|
if @serviceCharge = 0
|
|
BEGIN
|
|
EXEC [proc_errorHandler] 1, 'Service Charge not defined.', NULL
|
|
RETURN
|
|
END
|
|
|
|
-- ## invoice print
|
|
DECLARE
|
|
@method VARCHAR(20) = NULL
|
|
,@userId INT
|
|
,@sendLimit MONEY
|
|
,@invPrint CHAR(1)
|
|
|
|
SELECT @userId = userId FROM applicationUsers WITH(NOLOCK) WHERE userName = @user
|
|
SELECT @sendLimit = sendLimit FROM userLimit WITH(NOLOCK)
|
|
WHERE
|
|
userId = @userId
|
|
AND ISNULL(isDeleted, 'N') <> 'Y'
|
|
AND ISNULL(isActive, 'N') = 'Y'
|
|
AND ISNULL(isEnable, 'N') = 'Y'
|
|
SELECT @method = invoicePrintMethod
|
|
FROM agentBusinessFunction WITH(NOLOCK)
|
|
WHERE agentId = (SELECT agentId FROM applicationUsers WITH(NOLOCK) WHERE userName = @user)
|
|
|
|
IF(@sendLimit > @transferAmt)
|
|
SELECT @invPrint = 'Y'
|
|
ELSE IF(@method = 'ba')
|
|
SELECT @invPrint ='Y'
|
|
ELSE
|
|
SELECT @invPrint = 'N'
|
|
|
|
SET @cAmt = @transferAmt + @serviceCharge
|
|
SELECT 0 errorCode, dbo.ShowDecimal(@serviceCharge) serviceCharge, dbo.ShowDecimal(@cAmt) cAmt,@invPrint invoiceMethod
|
|
RETURN
|
|
END
|
|
|
|
IF @flag = 'ac-bal'
|
|
BEGIN
|
|
SELECT
|
|
availableBal = ISNULL(dbo.FNAGetLimitBal(@settlingAgent), 0)
|
|
,balCurrency = cm.currencyCode
|
|
,limExpiry = ISNULL(CONVERT(VARCHAR, expiryDate, 101), 'N/A')
|
|
FROM creditLimit cl
|
|
LEFT JOIN currencyMaster cm WITH(NOLOCK) ON cl.currency = cm.currencyId
|
|
WHERE agentId = @settlingAgent
|
|
END
|
|
END
|
|
|
|
|
|
|
|
|
|
GO
|