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

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