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: -- Create date: <2018-10-23> -- Description: -- ============================================= -- 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;