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.
108 lines
3.2 KiB
108 lines
3.2 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
|
|
ALTER PROC PROC_PPARTNER_BASE_COSTRATE(
|
|
@flag VARCHAR(30)
|
|
,@partner BIGINT
|
|
,@providers VARCHAR(100) = NULL
|
|
,@rates XML = NULL
|
|
,@user VARCHAR(100)
|
|
,@pCountryid INT = NULL
|
|
,@paymentId INT = NULL
|
|
,@forexSessionId VARCHAR(40) = NULL
|
|
)
|
|
AS
|
|
SET NOCOUNT ON;
|
|
BEGIN
|
|
|
|
DECLARE @ROWID BIGINT
|
|
|
|
IF @flag='UpdateBaseRate'
|
|
BEGIN
|
|
DECLARE @CURR VARCHAR(3)
|
|
SELECT TOP 1 @CURR = r.value('@CurrencyTo', 'VARCHAR(5)') FROM @rates.nodes('/root/row') as t(r)
|
|
|
|
IF EXISTS(SELECT 'A' FROM TBL_PARTNER_COST_RATE(NOLOCK) WHERE CreatedDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE() AND ToCurr = @CURR AND ProviderId = @partner)
|
|
BEGIN
|
|
SELECT '1' ErrorCode,'Todays Rate already applied.' Msg, NULL
|
|
RETURN
|
|
END
|
|
BEGIN TRAN
|
|
INSERT INTO TBL_PARTNER_COST_RATE(ProviderName,CurrCostRate,FromCurr,ToCurr,EffectiveFrom,EffectiveTo,Createdby,CreatedDate,ProviderId)
|
|
SELECT
|
|
@providers
|
|
,r.value('@Rate', 'VARCHAR(max)')
|
|
,r.value('@CurrencyFrom', 'VARCHAR(5)')
|
|
,r.value('@CurrencyTo', 'VARCHAR(5)')
|
|
,r.value('@BeginDateTime', 'VARCHAR(max)')
|
|
,r.value('@EndDateTime', 'VARCHAR(max)')
|
|
,ISNULL(@user,'default')
|
|
,GETDATE()
|
|
,CAST(@partner AS BIGINT)
|
|
FROM @rates.nodes('/root/row') as t(r)
|
|
|
|
SET @ROWID = @@IDENTITY
|
|
|
|
UPDATE TBL_PARTNER_COST_RATE SET EffectiveTo = DATEADD(HOUR,1,EffectiveTo) WHERE Id = @ROWID AND CreatedDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE()
|
|
|
|
COMMIT TRAN
|
|
|
|
IF @@TRANCOUNT = 0
|
|
BEGIN
|
|
SELECT '0' ErrorCode,'New Rate Updated Successfully.' Msg, NULL
|
|
RETURN
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT '1' ErrorCode,'Error updating the rate.' Msg, NULL
|
|
RETURN
|
|
END
|
|
END
|
|
IF @flag='riaServiceCharge'
|
|
BEGIN
|
|
DECLARE @cAmt MONEY, @pAmt MONEY, @serviceCharge MONEY
|
|
|
|
SELECT @cAmt = tAmt+serviceCharge,@pAmt = pAmt,@serviceCharge = serviceCharge FROM dbo.exRateCalcHistory(NOLOCK) WHERE FOREX_SESSION_ID = @forexSessionId
|
|
|
|
IF ISNULL(@cAmt,0) = 0 OR ISNULL(@pAmt,0) = 0
|
|
BEGIN
|
|
SELECT '1' ErrorCode,'Error calculating service charge.' Msg, @forexSessionId Id,NULL Extra, NULL Extra2
|
|
RETURN
|
|
END
|
|
|
|
DECLARE @usdServiceCharge MONEY
|
|
|
|
DECLARE @RIAFEE TABLE(countryId INT,fee MONEY)
|
|
|
|
INSERT INTO @RIAFEE
|
|
SELECT 33,7 -- MYANMAR
|
|
UNION ALL
|
|
SELECT 36,4.25 -- CAMBODIA
|
|
UNION ALL
|
|
SELECT 174,4.21 -- Philippines
|
|
UNION ALL
|
|
SELECT 218,4.21 -- Thailand
|
|
UNION ALL
|
|
SELECT 214,CASE WHEN @pAmt <=3000 THEN 5 ELSE 6 END -- sweden
|
|
UNION ALL
|
|
SELECT countryId,8 FROM countryMaster(NOLOCK)
|
|
WHERE isOperativeCountry='Y' AND countryName IN ('Cameroon','Democratic Republic of the Congo','Ghana','Kenya','Morocco','Uganda','Guinea','Egypt')
|
|
UNION ALL
|
|
SELECT 160,5 -- Nigeria
|
|
|
|
SELECT @usdServiceCharge = fee FROM @RIAFEE WHERE countryId = @pCountryid
|
|
|
|
-- SELECT @usdServiceCharge = (SELECT amount FROM dbo.[FNAGetPayComm](2080, 118, NULL, NULL, @pCountryId, NULL, 393866, 'USD'
|
|
-- , @paymentId, @cAmt, @pAmt, @serviceCharge, NULL, NULL))
|
|
|
|
--SELECT @usdServiceCharge = ROUND(serviceCharge/(sCurrCostRate+sCurrHoMargin),2)
|
|
--FROM dbo.exRateCalcHistory(NOLOCK) WHERE FOREX_SESSION_ID=@forexSessionId
|
|
|
|
SELECT '0' ErrorCode,'Calculate service charge success' Msg, @forexSessionId Id,@usdServiceCharge Extra,'USD' AS Extra2
|
|
RETURN
|
|
END
|
|
END
|
|
|
|
|
|
|
|
GO
|