|
|
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
|