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

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. ALTER PROC PROC_PPARTNER_BASE_COSTRATE(
  4. @flag VARCHAR(30)
  5. ,@partner BIGINT
  6. ,@providers VARCHAR(100) = NULL
  7. ,@rates XML = NULL
  8. ,@user VARCHAR(100)
  9. ,@pCountryid INT = NULL
  10. ,@paymentId INT = NULL
  11. ,@forexSessionId VARCHAR(40) = NULL
  12. )
  13. AS
  14. SET NOCOUNT ON;
  15. BEGIN
  16. DECLARE @ROWID BIGINT
  17. IF @flag='UpdateBaseRate'
  18. BEGIN
  19. DECLARE @CURR VARCHAR(3)
  20. SELECT TOP 1 @CURR = r.value('@CurrencyTo', 'VARCHAR(5)') FROM @rates.nodes('/root/row') as t(r)
  21. 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)
  22. BEGIN
  23. SELECT '1' ErrorCode,'Todays Rate already applied.' Msg, NULL
  24. RETURN
  25. END
  26. BEGIN TRAN
  27. INSERT INTO TBL_PARTNER_COST_RATE(ProviderName,CurrCostRate,FromCurr,ToCurr,EffectiveFrom,EffectiveTo,Createdby,CreatedDate,ProviderId)
  28. SELECT
  29. @providers
  30. ,r.value('@Rate', 'VARCHAR(max)')
  31. ,r.value('@CurrencyFrom', 'VARCHAR(5)')
  32. ,r.value('@CurrencyTo', 'VARCHAR(5)')
  33. ,r.value('@BeginDateTime', 'VARCHAR(max)')
  34. ,r.value('@EndDateTime', 'VARCHAR(max)')
  35. ,ISNULL(@user,'default')
  36. ,GETDATE()
  37. ,CAST(@partner AS BIGINT)
  38. FROM @rates.nodes('/root/row') as t(r)
  39. SET @ROWID = @@IDENTITY
  40. UPDATE TBL_PARTNER_COST_RATE SET EffectiveTo = DATEADD(HOUR,1,EffectiveTo) WHERE Id = @ROWID AND CreatedDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE()
  41. COMMIT TRAN
  42. IF @@TRANCOUNT = 0
  43. BEGIN
  44. SELECT '0' ErrorCode,'New Rate Updated Successfully.' Msg, NULL
  45. RETURN
  46. END
  47. ELSE
  48. BEGIN
  49. SELECT '1' ErrorCode,'Error updating the rate.' Msg, NULL
  50. RETURN
  51. END
  52. END
  53. IF @flag='riaServiceCharge'
  54. BEGIN
  55. DECLARE @cAmt MONEY, @pAmt MONEY, @serviceCharge MONEY
  56. SELECT @cAmt = tAmt+serviceCharge,@pAmt = pAmt,@serviceCharge = serviceCharge FROM dbo.exRateCalcHistory(NOLOCK) WHERE FOREX_SESSION_ID = @forexSessionId
  57. IF ISNULL(@cAmt,0) = 0 OR ISNULL(@pAmt,0) = 0
  58. BEGIN
  59. SELECT '1' ErrorCode,'Error calculating service charge.' Msg, @forexSessionId Id,NULL Extra, NULL Extra2
  60. RETURN
  61. END
  62. DECLARE @usdServiceCharge MONEY
  63. DECLARE @RIAFEE TABLE(countryId INT,fee MONEY)
  64. INSERT INTO @RIAFEE
  65. SELECT 33,7 -- MYANMAR
  66. UNION ALL
  67. SELECT 36,4.25 -- CAMBODIA
  68. UNION ALL
  69. SELECT 174,4.21 -- Philippines
  70. UNION ALL
  71. SELECT 218,4.21 -- Thailand
  72. UNION ALL
  73. SELECT 214,CASE WHEN @pAmt <=3000 THEN 5 ELSE 6 END -- sweden
  74. UNION ALL
  75. SELECT countryId,8 FROM countryMaster(NOLOCK)
  76. WHERE isOperativeCountry='Y' AND countryName IN ('Cameroon','Democratic Republic of the Congo','Ghana','Kenya','Morocco','Uganda','Guinea','Egypt')
  77. UNION ALL
  78. SELECT 160,5 -- Nigeria
  79. SELECT @usdServiceCharge = fee FROM @RIAFEE WHERE countryId = @pCountryid
  80. -- SELECT @usdServiceCharge = (SELECT amount FROM dbo.[FNAGetPayComm](2080, 118, NULL, NULL, @pCountryId, NULL, 393866, 'USD'
  81. -- , @paymentId, @cAmt, @pAmt, @serviceCharge, NULL, NULL))
  82. --SELECT @usdServiceCharge = ROUND(serviceCharge/(sCurrCostRate+sCurrHoMargin),2)
  83. --FROM dbo.exRateCalcHistory(NOLOCK) WHERE FOREX_SESSION_ID=@forexSessionId
  84. SELECT '0' ErrorCode,'Calculate service charge success' Msg, @forexSessionId Id,@usdServiceCharge Extra,'USD' AS Extra2
  85. RETURN
  86. END
  87. END
  88. GO