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.
 
 
 

131 lines
4.7 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[proc_GetUSDAmountFromCollKRWAmt] Script Date: 7/4/2019 11:35:48 AM ******/
DROP PROCEDURE [dbo].[proc_GetUSDAmountFromCollKRWAmt]
GO
/****** Object: StoredProcedure [dbo].[proc_GetUSDAmountFromCollKRWAmt] Script Date: 7/4/2019 11:35:48 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[proc_GetUSDAmountFromCollKRWAmt]
@flag VARCHAR(30),
@user VARCHAR(150) = NULL,
@pCountryId INT,
@pCurr VARCHAR(5),
@deliveryMethod VARCHAR(20),
@cAmt MONEY,
@pAmt MONEY = NULL,
@calBy CHAR(1),
@pCountry VARCHAR(50)
AS
SET NOCOUNT ON ;
DECLARE @payOutPartner BIGINT
DECLARE @sCountryId INT = 118,@sAgent INT = 2080,@sSuperAgent INT = 1008 ,@sBranch INT ,@collCurr VARCHAR(5) = 'KRW'
DECLARE @scValue MONEY,@exRateOffer MONEY,@scDiscount MONEY ,@AmountLimitPerTran MONEY,@AmountLimitPerDay MONEY
DECLARE @place INT,@currDecimal INT,@exRate FLOAT,@serviceCharge MONEY,@tAmt MONEY
DECLARE @pSuperAgent INT,@pSuperAgentName VARCHAR(200),@pAgent BIGINT,@pAgentName VARCHAR(200),@pBranch INT,@pBranchName VARCHAR(200)
DECLARE @errorCode INT,@msg VARCHAR(MAX)
SELECT @pCountryId = countryId FROM countryMaster(NOLOCK) WHERE countryName = @pCountry
SELECT @payOutPartner = AgentId FROM TblPartnerwiseCountry (NOLOCK)
WHERE COUNTRYID = @pCountryId
AND ISNULL(PaymentMethod, @deliveryMethod) = @deliveryMethod
AND IsActive = 1
SELECT TOP 1 @pAgent = AM.agentId
FROM agentMaster AM(NOLOCK)
WHERE AM.parentId = @payOutPartner AND agentType=2903 AND AM.isSettlingAgent = 'Y' AND AM.isApiPartner = 1
SELECT @pSuperAgent = sSuperAgent,@pSuperAgentName = sSuperAgentName,
@pAgent = sAgent,@pAgentName = sAgentName ,@pBranch = sBranch,@pBranchName = sBranchName
FROM dbo.FNAGetBranchFullDetails(@pAgent)
IF @flag = 'getUSDAmountFromCAmt'
BEGIN
IF @pCurr IS NULL
BEGIN
SELECT '1' ErrorCode ,
'Currency not been defined yet for receiving country' Msg ,
amountLimitPerDay = @AmountLimitPerDay ,
customerTotalSentAmt = 0 ,
maxAmountLimitPerTran = @AmountLimitPerTran ,
PerTxnMinimumAmt = @AmountLimitPerDay;
RETURN;
END;
SELECT @exRate =
dbo.FNAGetCustomerRate(@sCountryId,@sAgent,@sBranch,@collCurr,@pCountryId,@pAgent, @pCurr,@deliveryMethod);
IF @exRate IS NULL
BEGIN
SELECT '1' ErrorCode ,
'Exchange rate not defined yet for receiving currency ('+ @pCurr + ')' Msg ,
amountLimitPerDay = @AmountLimitPerDay ,
customerTotalSentAmt = 0 ,
maxAmountLimitPerTran = @AmountLimitPerTran ,
PerTxnMinimumAmt = @AmountLimitPerDay;
RETURN;
END;
IF @calBy = 'C'
BEGIN
IF @pCountryId = 36
BEGIN
SET @pAmt = @cAmt * @exRate
SELECT @serviceCharge = amount
FROM [dbo].FNAGetServiceCharge(@sCountryId,@sSuperAgent,@sAgent,@sBranch,
@pCountryId,@pSuperAgent,@pAgent,NULL,@deliveryMethod,@pAmt,@collCurr);
END
ELSE IF @pCountryId = 42 AND @pCurr = 'USD' and @deliveryMethod = 2
BEGIN
SELECT @serviceCharge = amount
FROM [dbo].FNAGetServiceCharge(@sCountryId,@sSuperAgent,@sAgent,@sBranch,
@pCountryId,@pSuperAgent,@pAgent,NULL,@deliveryMethod,@pAmt,'USD');
END
ELSE
BEGIN
SELECT @serviceCharge = amount
FROM [dbo].FNAGetServiceCharge(@sCountryId,@sSuperAgent,@sAgent,@sBranch,
@pCountryId,@pSuperAgent,@pAgent,@pBranch,@deliveryMethod,@cAmt,@collCurr);
END
IF @serviceCharge IS NULL
BEGIN
SELECT '1' ErrorCode ,
'Service charge not defined yet for receiving country' Msg ,
amountLimitPerDay = @AmountLimitPerDay ,
customerTotalSentAmt = 0 ,
maxAmountLimitPerTran = @AmountLimitPerTran ,
PerTxnMinimumAmt = @AmountLimitPerDay;
RETURN;
END;
SET @tAmt = @cAmt - @serviceCharge;
END;
DECLARE @complianceRuleId INT, @cAmtUSD MONEY,@sCurrCostRate MONEY,@sCurrHoMargin MONEY,@tAmtUSD MONEY
SELECT
@sCurrCostRate = sCurrCostRate
,@sCurrHoMargin = sCurrHoMargin
FROM dbo.FNAGetExRate(@sCountryId, @sAgent, @sBranch, @collCurr, @pCountryId, @pAgent, @pCurr, @deliveryMethod)
IF @sCurrCostRate IS NULL
BEGIN
SELECT @errorCode = '1', @msg = 'Transaction cannot be proceed. Exchange Rate not defined!'
RETURN
END
SET @tAmtUSD = @tAmt / (@sCurrCostRate + ISNULL(@sCurrHoMargin, 0))
SET @tAmtUSD = ROUND(@tAmtUSD,2)
SELECT 0 ErrorCode, Msg = @msg,Id = @tAmtUSD
END
GO