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.
348 lines
12 KiB
348 lines
12 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[PROC_POWERCALL_NEW] Script Date: 2019-12-18 오전 10:32:29 ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
-- =============================================
|
|
-- Author: <chris>
|
|
-- Create date: <2018-10-23>
|
|
-- Description: <Proc PowerCall>
|
|
-- =============================================
|
|
-- EXEC [dbo].[procedure_test] @CUSTOMERID = '40154', @useWalletMoney = 5000
|
|
|
|
|
|
ALTER PROCEDURE [dbo].[PROC_POWERCALL_NEW]
|
|
@rowId BIGINT = 0,
|
|
@FLAG VARCHAR(50) = NULL,
|
|
@customerId BIGINT,
|
|
@useWalletMoney MONEY = NULL,
|
|
@restoreMoney MONEY = NULL,
|
|
@balance MONEY = NULL,
|
|
@customerSummary VARCHAR(20) = NULL,
|
|
@bankCode VARCHAR(50) = NULL,
|
|
@bankAccount VARCHAR(20) = NULL,
|
|
@action VARCHAR(10) = NULL,
|
|
@actionBy VARCHAR(50) = NULL,
|
|
@source CHAR(1) = NULL,
|
|
@passWord VARCHAR(50) = NULL,
|
|
@customerPassWord VARCHAR (50) = NULL,
|
|
@stateMessage VARCHAR(10) = NULL,
|
|
@top BIGINT = NULL,
|
|
@fromDate DATETIME = NULL,
|
|
@toDate DATETIME = NULL,
|
|
@commision MONEY = NULL,
|
|
@phoneNo VARCHAR(11) = NULL,
|
|
@isNomal VARCHAR(1) = NULL
|
|
AS
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
BEGIN TRY
|
|
DECLARE @vWalletAccountNo VARCHAR(100)
|
|
DECLARE @vSessionId VARCHAR(40)
|
|
DECLARE @voucherDate VARCHAR(10)
|
|
DECLARE @vComment VARCHAR(500)
|
|
DECLARE @bonusPoint MONEY
|
|
DECLARE @email VARCHAR(100)
|
|
DECLARE @availablePoint MONEY
|
|
SET @vSessionId = NEWID()
|
|
DECLARE @vAccountType VARCHAR(20)
|
|
,@reqTranAmt MONEY
|
|
,@partialRefundMoney MONEY
|
|
|
|
DECLARE @vFullName VARCHAR(100)
|
|
|
|
SELECT @vAccountType=accountType,
|
|
@reqTranAmt=ISNULL(reqTranAmt,0)
|
|
from KFTC_DOMESTIC_HISTORY(nolock)
|
|
where accountType='KFTC-TOPUP'
|
|
and transferType='withdraw' and processId=@customerSummary
|
|
|
|
IF @FLAG = 'checkCharge'
|
|
BEGIN
|
|
SELECT TOP 1 *
|
|
FROM powerCallHistory(nolock)
|
|
WHERE customerId=@customerId
|
|
ORDER BY rowId desc
|
|
|
|
RETURN
|
|
END
|
|
ELSE IF @FLAG = 'checkWallet'
|
|
BEGIN
|
|
SELECT @balance = dbo.FNAGetCustomerACBal(cm.email)
|
|
,@customerPassWord = cm.customerPassword
|
|
,@actionBy = cm.email
|
|
FROM customerMaster cm WITH (NOLOCK)
|
|
WHERE customerId=@customerId
|
|
AND ISNULL(onlineUser,'N')='Y'
|
|
AND ISNULL(islocked,'N')='N'
|
|
|
|
IF(SELECT dbo.CheckCustomerPerDayAmt(@customerId,@useWalletMoney))=1
|
|
BEGIN
|
|
EXEC proc_errorHandler 1,'Easy remit Per day limit exceeded.!' ,null
|
|
RETURN
|
|
END
|
|
|
|
IF(@customerPassWord = dbo.FNAEncryptString(@passWord))
|
|
BEGIN
|
|
UPDATE customerMaster
|
|
SET invalidAttemptCount = 0
|
|
WHERE customerId = @customerId
|
|
AND ISNULL(onlineUser, 'N')='Y'
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT '1' AS ErrorCode, 'Invaild PassWord' AS Msg, @customerId AS Id
|
|
RETURN
|
|
END
|
|
|
|
IF (ISNULL(@useWalletMoney,0) > @balance)
|
|
BEGIN
|
|
SELECT '1' AS ErrorCode, 'Request balance is insufficient!' AS Msg, @customerId AS Id
|
|
RETURN
|
|
END
|
|
|
|
SET @balance = @balance - @useWalletMoney
|
|
|
|
UPDATE customerMaster
|
|
SET availableBalance = @balance
|
|
WHERE customerId = @customerId
|
|
|
|
INSERT INTO KJ_AUTO_REFUND
|
|
( customerId, bankCode, bankAccountNo, customerSummary, requestAmount,
|
|
refundAmount, action, actionDate, actionBy, Balance,
|
|
refundType, reqSource)
|
|
SELECT @customerId, @bankCode, @bankAccount, @customerSummary, @useWalletMoney,
|
|
@useWalletMoney, @action, GETDATE(), @actionBy, @balance,
|
|
'PowerCall', ISNULL(@source,'M')
|
|
|
|
SET @rowId = @@IDENTITY
|
|
SELECT '0' AS ErrorCode, 'checkWallet Success' AS Msg, @rowId AS Id
|
|
RETURN
|
|
END
|
|
/* 국내선불폰 충전 완전성공 */
|
|
ELSE IF @FLAG = 'resultWalletMoney'
|
|
BEGIN
|
|
UPDATE KJ_AUTO_REFUND
|
|
SET action = 'SUCCESS'
|
|
WHERE customerSummary = @customerSummary
|
|
AND customerId = @customerId
|
|
AND action = @action
|
|
|
|
SELECT @vWalletAccountNo = walletAccountNo
|
|
,@bonusPoint = bonusPoint
|
|
,@email = email
|
|
,@vFullName = LEFT(fullName, 10)
|
|
FROM customerMaster(nolock)
|
|
WHERE customerId = @customerId
|
|
|
|
/* 10 포인트 적립 로직 */
|
|
SET @availablePoint = ISNULL(@bonusPoint,0) + 10
|
|
INSERT INTO PointHistory
|
|
(
|
|
customerId , availablePoint , tranId ,pointType, point ,createdBy ,createdDate
|
|
)
|
|
SELECT @customerId, @availablePoint , @customerSummary , '3', 10, @email, GETDATE()
|
|
|
|
IF @vAccountType='KFTC-TOPUP'
|
|
BEGIN
|
|
UPDATE customerMaster
|
|
SET availableBalance = availableBalance- @useWalletMoney
|
|
,bonusPoint = @availablePoint
|
|
WHERE customerId = @customerId
|
|
END
|
|
ELSE --only wallet
|
|
BEGIN
|
|
UPDATE customerMaster
|
|
SET bonusPoint = @availablePoint
|
|
WHERE customerId = @customerId
|
|
END
|
|
|
|
-----------------------------------------------------
|
|
-- Voucher Data
|
|
-----------------------------------------------------
|
|
DELETE FROM fastmoneypro_account.dbo.temp_tran
|
|
WHERE refrence = @customerSummary
|
|
AND field2 = 'Topup'
|
|
|
|
INSERT INTO fastmoneypro_account.dbo.temp_tran
|
|
( entry_user_id, acct_num, part_tran_type, tran_amt, field1,
|
|
field2, sessionid, refrence)
|
|
SELECT 'system', @vWalletAccountNo, 'DR', @useWalletMoney, @vWalletAccountNo,
|
|
'Topup', @vSessionId, @customerSummary
|
|
UNION ALL
|
|
SELECT 'system', '161874309', 'CR', @useWalletMoney-@commision, @vWalletAccountNo,
|
|
'Topup', @vSessionId, @customerSummary
|
|
UNION ALL
|
|
SELECT 'system', '161874314', 'CR', @commision, @vWalletAccountNo,
|
|
'Topup', @vSessionId, @customerSummary
|
|
|
|
IF @vAccountType = 'KFTC-TOPUP'
|
|
BEGIN
|
|
--100241027580 cms account 100241011536 -- kj wallet -- GME auto debit acc no (Payment Gateway CMS AUTODEBIT)
|
|
INSERT INTO fastmoneypro_account.dbo.temp_tran
|
|
( entry_user_id, acct_num, part_tran_type, tran_amt, field1,
|
|
field2, sessionid, refrence)
|
|
SELECT 'system','100241027580', 'DR' , @useWalletMoney, @vWalletAccountNo,
|
|
'TopUp', @vSessionId , @customerSummary
|
|
UNION ALL
|
|
SELECT 'system','100241011536', 'CR' , @useWalletMoney, @vWalletAccountNo,
|
|
'TopUp', @vSessionId , @customerSummary
|
|
|
|
SET @vComment = 'Local Auto debit Mobile top-up done to : ' + @phoneNo + '/ ' + @vFullName
|
|
END
|
|
ELSE SET @vComment = 'Local Wallet Mobile top-up done to : ' + @phoneNo + '/ ' + @vFullName
|
|
|
|
EXEC proc_errorHandler 0, 'Data Saved Successfully!', @customerId
|
|
|
|
SELECT @voucherDate = CONVERT(VARCHAR, Getdate(), 101)
|
|
--@vComment = 'Local Mobile top-up done to : ' + @phoneNo + '/ ' + @vFullName
|
|
|
|
EXEC fastmoneypro_account.dbo.[Spa_savetemptrn] @flag='i',
|
|
@sessionID= @vSessionId,
|
|
@date=@voucherDate,
|
|
@narration=@vComment,
|
|
@company_id=1,
|
|
@v_type='J',
|
|
@user='SYSTEM'
|
|
|
|
|
|
END
|
|
/* 국내선불폰 충전 부분 성공 */
|
|
ELSE IF @FLAG = 'restoreWalletMoney'
|
|
BEGIN
|
|
UPDATE KJ_AUTO_REFUND
|
|
SET action = @action, refundAmount = @useWalletMoney
|
|
WHERE customerSummary = @customerSummary
|
|
AND customerId = @customerId
|
|
AND action = 'REQ'
|
|
|
|
SELECT @vWalletAccountNo = walletAccountNo
|
|
,@bonusPoint = bonusPoint
|
|
,@email = email
|
|
,@vFullName = LEFT(fullName, 10)
|
|
FROM customerMaster(nolock)
|
|
WHERE customerId = @customerId
|
|
|
|
SET @availablePoint = ISNULL(@bonusPoint,0) + 10
|
|
INSERT INTO PointHistory
|
|
(
|
|
customerId , availablePoint , tranId , pointType, point , createdBy , createdDate
|
|
)
|
|
SELECT @customerId, @availablePoint , @customerSummary , '3', 10, @email, GETDATE()
|
|
--PRINT(@restoreMoney)
|
|
|
|
IF @vAccountType='KFTC-TOPUP'
|
|
BEGIN
|
|
SET @partialRefundMoney=@reqTranAmt- @restoreMoney
|
|
UPDATE customerMaster
|
|
SET availableBalance =availableBalance -@partialRefundMoney
|
|
,bonusPoint = @availablePoint
|
|
WHERE customerId = @customerId
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE customerMaster
|
|
SET availableBalance = availableBalance + @restoreMoney
|
|
, bonusPoint = @availablePoint
|
|
WHERE customerId = @customerId
|
|
END
|
|
|
|
-----------------------------------------------------
|
|
-- Voucher Data
|
|
-----------------------------------------------------
|
|
DELETE FROM fastmoneypro_account.dbo.temp_tran
|
|
WHERE refrence = @customerSummary
|
|
AND field2 = 'Topup'
|
|
|
|
INSERT INTO fastmoneypro_account.dbo.temp_tran
|
|
( entry_user_id, acct_num, part_tran_type, tran_amt, field1,
|
|
field2, sessionid, refrence)
|
|
SELECT 'system', @vWalletAccountNo, 'DR', @useWalletMoney, @vWalletAccountNo,
|
|
'Topup', @vSessionId, @customerSummary
|
|
UNION ALL
|
|
SELECT 'system', '161874309', 'CR', @useWalletMoney-@commision, @vWalletAccountNo,
|
|
'Topup', @vSessionId, @customerSummary
|
|
UNION ALL
|
|
SELECT 'system', '161874314', 'CR', @commision, @vWalletAccountNo,
|
|
'Topup', @vSessionId, @customerSummary
|
|
|
|
|
|
IF @vAccountType='KFTC-TOPUP'
|
|
BEGIN
|
|
--100241027580 cms account 100241011536 -- kj wallet -- GME auto debit acc no (Payment Gateway CMS AUTODEBIT)
|
|
INSERT INTO fastmoneypro_account.dbo.temp_tran
|
|
( entry_user_id, acct_num, part_tran_type, tran_amt, field1,
|
|
field2, sessionid, refrence)
|
|
SELECT 'system','100241027580', 'DR' , @useWalletMoney, @vWalletAccountNo,
|
|
'TopUp', @vSessionId , @customerSummary
|
|
UNION ALL
|
|
SELECT 'system','100241011536', 'CR' , @useWalletMoney, @vWalletAccountNo,
|
|
'TopUp', @vSessionId , @customerSummary
|
|
|
|
SET @vComment = 'Local Auto debit Mobile top-up done to : ' + @phoneNo + '/ ' + @vFullName
|
|
END
|
|
ELSE SET @vComment = 'Local Wallet Mobile top-up done to : ' + @phoneNo + '/ ' + @vFullName
|
|
|
|
|
|
EXEC proc_errorHandler 0, 'Data Saved Successfully!', @customerId
|
|
|
|
SELECT @voucherDate = CONVERT(VARCHAR, Getdate(), 101)
|
|
--@vComment = 'Local Mobile top-up done to : ' + @phoneNo + '/ ' + @vFullName
|
|
|
|
EXEC fastmoneypro_account.dbo.[Spa_savetemptrn] @flag='i',
|
|
@sessionID= @vSessionId,
|
|
@date=@voucherDate,
|
|
@narration=@vComment,
|
|
@company_id=1,
|
|
@v_type='J',
|
|
@user='SYSTEM'
|
|
|
|
END
|
|
/* 국내선불폰 충전 완전 실패 */
|
|
ELSE IF @FLAG = 'TOPUP_FAIL'
|
|
BEGIN
|
|
UPDATE KJ_AUTO_REFUND
|
|
SET action = @action
|
|
WHERE customerSummary = @customerSummary
|
|
AND customerId = @customerId
|
|
AND action = 'REQ'
|
|
|
|
/* 금융결제원 출금이체는 이미 가상계좌에 반영되었으므로, 환불 필요없음*/
|
|
IF @vAccountType IS NULL
|
|
BEGIN
|
|
UPDATE customerMaster
|
|
SET availableBalance = availableBalance + @restoreMoney
|
|
WHERE customerId = @customerId
|
|
END
|
|
|
|
EXEC proc_errorHandler 0, 'Data Saved Successfully!', @customerId
|
|
END
|
|
ELSE IF @FLAG = 'UserChargeInfo'
|
|
BEGIN
|
|
IF ISNULL(@fromDate,'') = '' AND ISNULL(@toDate,'') = ''
|
|
BEGIN
|
|
SELECT TOP 7 * FROM powercallHistory(NOLOCK)
|
|
WHERE customerId = @customerId order by rowId desc
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT TOP 7 * FROM powercallHistory(NOLOCK)
|
|
WHERE customerId = @customerId
|
|
AND Convert(varchar(10),requestTime,121) BETWEEN @fromDate AND @toDate
|
|
order by rowId desc
|
|
END
|
|
END
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF @@TRANCOUNT <> 0
|
|
ROLLBACK TRANSACTION;
|
|
|
|
DECLARE @errorMessage VARCHAR(MAX);
|
|
--SET @errorMessage = ERROR_MESSAGE();
|
|
SET @errorMessage = 'Error Occur while requesting.'
|
|
|
|
EXEC proc_errorHandler 1, @errorMessage, @customerId;
|
|
|
|
END CATCH;
|