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.
170 lines
14 KiB
170 lines
14 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[EXCHANGE_PROC_UPDATE_BASERATE] Script Date: 9/27/2019 1:30:13 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
CREATE PROCEDURE [dbo].[EXCHANGE_PROC_UPDATE_BASERATE](
|
|
@LiveRate FLOAT = NULL
|
|
,@requestXml VARCHAR(MAX) = NULL
|
|
,@responseXml VARCHAR(MAX) = NULL
|
|
,@FromCurr VARCHAR(3) = NULL
|
|
,@ToCurr VARCHAR(3) = NULL
|
|
,@user VARCHAR(30) = NULL
|
|
)
|
|
AS
|
|
SET NOCOUNT ON;
|
|
BEGIN TRY
|
|
|
|
DECLARE @MSG VARCHAR(MAX)= '' , @Rate DECIMAL(16,4) = NULL
|
|
|
|
SET @Rate = CONVERT(DECIMAL(16,4),@LiveRate)
|
|
|
|
INSERT INTO tlbExrateApilogs(requestXml,responseXml,createdBy)
|
|
SELECT @requestXml,@responseXml,@user
|
|
|
|
IF @FromCurr = 'error'
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,@responseXml, NULL
|
|
----## SEND SMS THROUGH KT NETWORK
|
|
INSERT INTO KT_SMS.dbo.SDK_SMS_SEND ( [USER_ID], SCHEDULE_TYPE, [SUBJECT], SMS_MSG, NOW_DATE, SEND_DATE, CALLBACK, DEST_INFO)
|
|
SELECT 'globalmoney',0,'MEXXE',left(@responseXml,90),FORMAT(GETDATE(),'yyyyMMddHHmmss'),FORMAT(GETDATE(),'yyyyMMddHHmmss'),'1588-6864','gme^01074518940'
|
|
UNION All
|
|
SELECT 'globalmoney',0,'MEXXE',left(@responseXml,90),FORMAT(GETDATE(),'yyyyMMddHHmmss'),FORMAT(GETDATE(),'yyyyMMddHHmmss'),'1588-6864','gme^01030436864'
|
|
UNION All
|
|
SELECT 'globalmoney',0,'MEXXE',left(@responseXml,90),FORMAT(GETDATE(),'yyyyMMddHHmmss'),FORMAT(GETDATE(),'yyyyMMddHHmmss'),'1588-6864','gme^01021958106'
|
|
|
|
RETURN
|
|
END
|
|
|
|
IF ISNULL(@LiveRate, 0) = 0
|
|
BEGIN
|
|
|
|
SET @MSG = 'Sorry 0 ex rate for base currency ' + @FromCurr + 'and Quote Currency ' + @ToCurr + ' can not be updated';
|
|
|
|
----## SEND SMS THROUGH KT NETWORK
|
|
INSERT INTO KT_SMS.dbo.SDK_SMS_SEND ( [USER_ID], SCHEDULE_TYPE, [SUBJECT], SMS_MSG, NOW_DATE, SEND_DATE, CALLBACK, DEST_INFO)
|
|
SELECT 'globalmoney',0,'MEXXE',@MSG,FORMAT(GETDATE(),'yyyyMMddHHmmss'),FORMAT(GETDATE(),'yyyyMMddHHmmss'),'1588-6864','1^01074518940'
|
|
UNION All
|
|
SELECT 'globalmoney',0,'MEXXE',@MSG,FORMAT(GETDATE(),'yyyyMMddHHmmss'),FORMAT(GETDATE(),'yyyyMMddHHmmss'),'1588-6864','1^01030436864'
|
|
UNION All
|
|
SELECT 'globalmoney',0,'MEXXE',@MSG,FORMAT(GETDATE(),'yyyyMMddHHmmss'),FORMAT(GETDATE(),'yyyyMMddHHmmss'),'1588-6864','gme^01021958106'
|
|
|
|
EXEC proc_errorHandler 1, @MSG, NULL
|
|
RETURN
|
|
END
|
|
|
|
IF OBJECT_ID('tempdb..#Temp') IS NOT NULL
|
|
DROP TABLE #Temp
|
|
|
|
IF OBJECT_ID('tempdb..#tempChange') IS NOT NULL
|
|
DROP TABLE #tempChange
|
|
|
|
|
|
SELECT * INTO #tempChange FROM (
|
|
SELECT buyChange = -19 ,sellChange = 19 ,FromCurr = 'USD' , ToCurr = 'KRW' UNION ALL
|
|
SELECT buyChange = -0.18 ,sellChange = 0.18 ,FromCurr = 'JPY' , ToCurr = 'KRW' UNION ALL
|
|
SELECT buyChange = -25 ,sellChange = 25 ,FromCurr = 'EUR' , ToCurr = 'KRW' UNION ALL
|
|
SELECT buyChange = -8.5 ,sellChange = 8.5 ,FromCurr = 'CNY' , ToCurr = 'KRW' UNION ALL
|
|
SELECT buyChange = -5 ,sellChange = 5 ,FromCurr = 'HKD' , ToCurr = 'KRW' UNION ALL
|
|
SELECT buyChange = -16 ,sellChange = 16 ,FromCurr = 'AUD' , ToCurr = 'KRW' UNION ALL
|
|
SELECT buyChange = -28 ,sellChange = 28 ,FromCurr = 'GBP' , ToCurr = 'KRW' UNION ALL
|
|
SELECT buyChange = -17 ,sellChange = 17 ,FromCurr = 'CAD' , ToCurr = 'KRW'
|
|
)x
|
|
|
|
|
|
DECLARE @buyChange MONEY, @sellChange MONEY, @minRate MONEY, @maxRate MONEY
|
|
|
|
|
|
SELECT @minRate = rateMin,@maxRate = rateMax
|
|
FROM dbo.currencyMaster(NOLOCK)
|
|
WHERE currencyCode = @FromCurr
|
|
|
|
SELECT * INTO #Temp
|
|
FROM EXCHANGE_CURRENCYRATE_SETUP(NOLOCK)
|
|
WHERE baseCurrency = @FromCurr AND QuoteCurrency=@ToCurr
|
|
|
|
SELECT @buyChange = buyChange,@sellChange = sellChange
|
|
FROM #tempChange
|
|
WHERE FromCurr = @FromCurr AND ToCurr = @ToCurr
|
|
|
|
UPDATE #Temp SET
|
|
revRate = @Rate
|
|
,buyRate = @Rate + @buyChange
|
|
,saleRate = @Rate + @sellChange
|
|
WHERE baseCurrency = @FromCurr AND QuoteCurrency = @ToCurr
|
|
|
|
DECLARE @outOfTolerated BIGINT = 0
|
|
SELECT @outOfTolerated = COUNT('x') FROM #Temp
|
|
WHERE
|
|
revRate < @minRate OR revRate > @maxRate OR
|
|
buyRate < @minRate OR buyRate > @maxRate OR
|
|
saleRate <@minRate OR saleRate > @maxRate
|
|
AND baseCurrency = @FromCurr AND QuoteCurrency = @ToCurr
|
|
|
|
IF @outOfTolerated > 0
|
|
BEGIN
|
|
----## SEND SMS THROUGH KT NETWORK
|
|
INSERT INTO KT_SMS.dbo.SDK_SMS_SEND ( [USER_ID], SCHEDULE_TYPE, [SUBJECT], SMS_MSG, NOW_DATE, SEND_DATE, CALLBACK, DEST_INFO)
|
|
SELECT 'globalmoney',0,'MEXXE',@FromCurr +'currency out of tolerance.',FORMAT(GETDATE(),'yyyyMMddHHmmss'),FORMAT(GETDATE(),'yyyyMMddHHmmss'),'1588-6864','gme^01074518940'
|
|
UNION All
|
|
SELECT 'globalmoney',0,'MEXXE',@FromCurr +'currency out of tolerance.',FORMAT(GETDATE(),'yyyyMMddHHmmss'),FORMAT(GETDATE(),'yyyyMMddHHmmss'),'1588-6864','gme^01030436864'
|
|
UNION All
|
|
SELECT 'globalmoney',0,'MEXXE',@FromCurr +'currency out of tolerance.',FORMAT(GETDATE(),'yyyyMMddHHmmss'),FORMAT(GETDATE(),'yyyyMMddHHmmss'),'1588-6864','gme^01021958106'
|
|
|
|
--No do update from temp Table to main
|
|
|
|
--PRINT @FromCurr +'-'+ @ToCurr +'beyond min rate and max rate'
|
|
SELECT '1' ErrorCode, @FromCurr +'-'+ @ToCurr +'beyond min rate and max rate' Msg, NULL Id
|
|
RETURN
|
|
END
|
|
|
|
BEGIN TRAN
|
|
|
|
INSERT INTO dbo.EXCHANGE_CURRENCYRATE_SETUP_HISTORY(
|
|
currencyRateId,baseCurrency,quoteCurrency,fixedCurUnit,revRate,buyRate,buyTolerancePlus,buyToleranceMinus,saleRate,saleTolerancePlus,saleToleranceMinus,active,createdBy,createdDate,modifiedBy,modifiedDate,buyLimit,sellLimit
|
|
)SELECT
|
|
currencyRateId,baseCurrency,quoteCurrency,fixedCurUnit,revRate,buyRate,buyTolerancePlus,buyToleranceMinus,saleRate,saleTolerancePlus,saleToleranceMinus,active,createdBy,createdDate,modifiedBy,modifiedDate,buyLimit,sellLimit
|
|
FROM EXCHANGE_CURRENCYRATE_SETUP(NOLOCK)
|
|
WHERE baseCurrency = @FromCurr AND QuoteCurrency = @ToCurr
|
|
|
|
INSERT INTO EXCHANGE_COSTRATE_SETUP_HISTORY(
|
|
exCostRateId,baseCurrency,quoteCurrency,buyRate,buyTolerancePlus,buyToleranceMinus,saleRate,saleTolerancePlus,saleToleranceMinus,agentId,createdBy,createdDate,modifiedBy,modifiedDate
|
|
)SELECT
|
|
rowId,baseCurrency,quoteCurrency,buyRate,buyTolerancePlus,buyToleranceMinus,saleRate,saleTolerancePlus,saleToleranceMinus,agentId,createdBy,createdDate,modifiedBy,modifiedDate
|
|
FROM EXCHANGE_COSTRATE_SETUP(NOLOCK)
|
|
WHERE baseCurrency = @FromCurr AND QuoteCurrency = @ToCurr
|
|
|
|
UPDATE EXCHANGE_CURRENCYRATE_SETUP SET
|
|
revRate = ROUND(@Rate,2)
|
|
,buyRate = ROUND(@Rate + @buyChange,2)
|
|
,saleRate = ROUND(@Rate + @sellChange,2)
|
|
,modifiedBy = 'system'
|
|
,modifiedDate = GETDATE()
|
|
WHERE baseCurrency = @FromCurr AND QuoteCurrency = @ToCurr
|
|
|
|
UPDATE EXCHANGE_COSTRATE_SETUP SET
|
|
buyRate = ROUND(@Rate + @buyChange,2)
|
|
,saleRate = ROUND(@Rate + @sellChange,2)
|
|
,modifiedBy = 'system'
|
|
,modifiedDate = GETDATE()
|
|
WHERE baseCurrency = @FromCurr AND QuoteCurrency = @ToCurr
|
|
COMMIT TRAN
|
|
|
|
|
|
SELECT '0' ErrorCode, 'Successfully rate updated' Msg, NULL Id
|
|
RETURN
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF @@TRANCOUNT>0
|
|
ROLLBACK TRAN
|
|
|
|
SELECT '1' ErrorCode, 'Exception occured.' Msg, NULL Id
|
|
RETURN
|
|
END CATCH
|
|
|
|
|
|
|
|
GO
|