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.
 
 
 

154 lines
6.0 KiB

USE [FastMoneyPro_Remit]
GO
/****** Object: StoredProcedure [dbo].[PROC_CHECK_KFTC_LIMIT] Script Date: 7/4/2019 11:35:48 AM ******/
--DROP PROCEDURE [dbo].[PROC_CHECK_KFTC_LIMIT]
GO
/****** Object: StoredProcedure [dbo].[PROC_CHECK_KFTC_LIMIT] Script Date: 7/4/2019 11:35:48 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-----------------------------------------------------------------------------------
-- PROCEDURE ID : PROC_CHECK_KFTC_LIMIT
-- PROCEDURE NAME : KFTC 이용기관 출금이체 한도 초과 체크
-- DEV DATE : 2019.04.18
-- DEVELOPER : 김한성
-- DESC :
-- TEXT DESC : 돋움체, 9PT, TAB=8
-- RETURN VALUE :
-- SAMPLE :
-----------------------------------------------------------------------------------
CREATE OR ALTER PROCEDURE [dbo].[PROC_CHECK_KFTC_LIMIT]
(
@flag VARCHAR(50) = NULL
)
AS
SET NOCOUNT ON
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
----------------------------------------------------------------------------------
-- Procedure Start
----------------------------------------------------------------------------------
DECLARE @V_DTS_TODAY VARCHAR(8)
DECLARE @V_WITHDRAWAL MONEY
DECLARE @V_PHONE_NUMBER VARCHAR(500)
SET @V_PHONE_NUMBER = 'John^01041637562|Subash^01030436864|Eric^01085567562|Choi^01053554993|Pagna^01059580644|Max^01092161470|Pralhad^01074518940'
--SET @V_PHONE_NUMBER = 'Max^01092161470'
DECLARE @V_TEMP MONEY
SET @V_WITHDRAWAL = 0
SET @V_TEMP = 0
DECLARE @V_TODAY VARCHAR(20)
DECLARE @V_TOMORROW VARCHAR(20)
DECLARE @V_ROWID BIGINT
--DECLARE @P_DTS_INSERT NVARCHAR(14)
--SET @P_DTS_INSERT = REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(20), GETDATE(), 120), '-',''), ' ', ''),':','')
BEGIN
IF (@flag = 'WITHDRAW')
BEGIN
SELECT @V_TODAY = CONVERT(date, GETDATE())
SELECT @V_TOMORROW = CONVERT(date, DATEADD(DAY, 1, @V_TODAY))
SELECT @V_DTS_TODAY = CONVERT(VARCHAR(8), GETDATE(), 112) --AS [YYYYMMDD]
--PRINT @V_DTS_TODAY
--------------------------------------------------------------------
-- KFTC 출금이체 API를 통한 고객의 출금이체 총금액을 구하는 로직
--------------------------------------------------------------------
-- select sum(CAST(tranAmt as MONEY)) from KFTC_CUSTOMER_TRANSFER(nolock) where apiTranDtm > '20190417'
--------------------------------------------------------------------
-- 해외송금에서 출금이체 API를 이용한 금액
--------------------------------------------------------------------
SELECT @V_TEMP = SUM(CAST(tranAmt AS MONEY))
FROM KFTC_CUSTOMER_TRANSFER(NOLOCK)
WHERE apiTranDtm > @V_DTS_TODAY
SET @V_WITHDRAWAL = @V_WITHDRAWAL + @V_TEMP
--------------------------------------------------------------------
-- 국내송금에서 출금이체 API를 이용한 금액
--------------------------------------------------------------------
SELECT @V_TEMP = SUM(CAST(reqTranAmt AS MONEY))
FROM KFTC_DOMESTIC_HISTORY(NOLOCK)
WHERE accountType = 'autodebit'
AND transferType= 'withdraw'
AND resRspCode = 'A0000'
AND reqTransferDtime > @V_TODAY
SET @V_WITHDRAWAL = @V_WITHDRAWAL + @V_TEMP
--------------------------------------------------------------------
-- TOPUP에서 출금이체 API를 이용한 금액
--------------------------------------------------------------------
SELECT @V_TEMP = SUM(CAST(reqTranAmt AS MONEY))
FROM KFTC_DOMESTIC_HISTORY(NOLOCK)
WHERE accountType = 'KFTC-TOPUP'
AND transferType= 'withdraw'
AND resRspCode = 'A0000'
AND reqTransferDtime > @V_TODAY
SET @V_WITHDRAWAL = @V_WITHDRAWAL + @V_TEMP
-------------------------------------------------------------------
-- KFTC 출금이체가 하루동안 40억의 70%(28억)를 초과하면 문자메시지를 전송
--------------------------------------------------------------------
IF @V_WITHDRAWAL > CONVERT(MONEY, '2800000000')
BEGIN
IF NOT EXISTS (
SELECT 1
FROM TBL_KFTC_LIMIT(NOLOCK)
WHERE CHECK_TYPE = 'WITHDRAW'
AND LIMIT_CHECK_1 BETWEEN @V_TODAY AND @V_TOMORROW
)
BEGIN
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,'Notice','[GME Notice] KFTC withdrawal limit exceeded 70%',FORMAT(GETDATE(),'yyyyMMddHHmmss'),FORMAT(GETDATE(),'yyyyMMddHHmmss'),'1588-6864',@V_PHONE_NUMBER
INSERT INTO TBL_KFTC_LIMIT ( CHECK_TYPE, LIMIT_CHECK_1 )
SELECT 'WITHDRAW', GETDATE()
END
END
--------------------------------------------------------------------
-- KFTC 출금이체가 하루동안 40억의 90%(36억)를 초과하면 문자메시지를 전송
--------------------------------------------------------------------
IF @V_WITHDRAWAL > CONVERT(MONEY, '3600000000')
BEGIN
IF NOT EXISTS (
SELECT 1
FROM TBL_KFTC_LIMIT(NOLOCK)
WHERE CHECK_TYPE = 'WITHDRAW'
AND LIMIT_CHECK_2 BETWEEN @V_TODAY AND @V_TOMORROW
)
BEGIN
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,'Notice','[GME Notice] KFTC withdrawal limit exceeded 90%',FORMAT(GETDATE(),'yyyyMMddHHmmss'),FORMAT(GETDATE(),'yyyyMMddHHmmss'),'1588-6864',@V_PHONE_NUMBER
SELECT @V_ROWID = [rowId]
FROM TBL_KFTC_LIMIT(NOLOCK)
WHERE CHECK_TYPE = 'WITHDRAW'
AND LIMIT_CHECK_1 BETWEEN @V_TODAY AND @V_TOMORROW
IF @V_ROWID IS NULL
BEGIN
INSERT INTO TBL_KFTC_LIMIT ( CHECK_TYPE, LIMIT_CHECK_2 )
SELECT 'WITHDRAW', GETDATE()
END
ELSE
BEGIN
UPDATE TBL_KFTC_LIMIT
SET LIMIT_CHECK_2 = GETDATE()
WHERE [rowId] = @V_ROWID
END
END
END
END
END
----------------------------------------------------------------------------------
-- Procedure End
----------------------------------------------------------------------------------
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
SET NOCOUNT OFF
GO