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