USE [FastMoneyPro_Remit] GO /****** Object: StoredProcedure [dbo].[proc_online_customerWallet] Script Date: 7/4/2019 11:35:48 AM ******/ DROP PROCEDURE [dbo].[proc_online_customerWallet] GO /****** Object: StoredProcedure [dbo].[proc_online_customerWallet] Script Date: 7/4/2019 11:35:48 AM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROC [dbo].[proc_online_customerWallet] @flag VARCHAR(50) = NULL ,@customerId VARCHAR(30) = NULL ,@amount VARCHAR(15) = NULL ,@remarks VARCHAR(150) = NULL ,@fromDate VARCHAR(20) = NULL ,@toDate VARCHAR(20) = NULL AS SET NOCOUNT ON; SET XACT_ABORT ON; BEGIN TRY IF @flag = 'i' BEGIN DECLARE @walletTxnId BIGINT ,@bankId INT ,@remBalance VARCHAR(20) ,@withDrawalCharge VARCHAR(20) ,@availableBal VARCHAR(20) SELECT @withDrawalCharge = 1000 SELECT @bankId = bankName, @availableBal = availableBalance FROM customerMaster(NOLOCK) WHERE customerId = @customerId SELECT '1' ErrorCode, 'Sorry, you can not perform withfrawal. Please contact GME HO for any assistance' Msg, '' Id RETURN IF ISNULL(@amount,0) <=0 BEGIN SELECT '1' ErrorCode, 'Invalid Operation withdraw amount not sufficient.' Msg, '' Id RETURN END IF CAST(@availableBal AS MONEY) <= 0 BEGIN SELECT '1' ErrorCode,'Invalid Operation available balance not sufficient.' Msg, '' Id RETURN END IF CAST(@availableBal AS MONEY) < @amount BEGIN SELECT '1' ErrorCode,'Invalid Operation available balance not sufficient.' Msg, '' Id RETURN END INSERT INTO WalletTransactions( createdDate ,customerId ,bankId ,controlNo ,tranId ,remarks ,amount ,approvedDate ,approvedBy ,status ) SELECT GETDATE(), @customerId, @bankId, NULL, NULL, 'Customer Withdrawal', @amount, NULL, NULL, 1 SELECT @walletTxnId = SCOPE_IDENTITY() INSERT INTO WithdrawalLogs( WalletTransactionId ,createdDate ,customerId ,bankId ,remarks ,amount ,approvedDate ,approvedBy ,status ) SELECT @walletTxnId, GETDATE(), @customerId, @bankId, @remarks, @amount, NULL, NULL, 1 SELECT @remBalance = ISNULL(CAST(@availableBal AS MONEY), 0.00) - CAST(@withDrawalCharge AS MONEY) - CAST(@amount AS MONEY) UPDATE customerMaster SET availableBalance = @remBalance WHERE customerId = @customerId SELECT '0' ErrorCode, 'Your request for withdrawal of amount ' + @amount + ' has been successful.' Msg, '' Id, @remBalance Extra END IF @flag = 's' BEGIN --SELECT Debit = '' , Credit = '', [Date] = '', Particular = 'Opening Balance', Balance = ISNULL(SUM(amount),'0.00') --FROM WalletTransactions(NOLOCK) --WHERE customerId = @customerId AND createdDate < @fromDate --UNION ALL --SELECT Debit = CASE WHEN amount > 0 THEN amount ELSE '0.00' END, -- Credit = CASE WHEN amount < 0 THEN amount ELSE '0.00' END, -- [Date] = CONVERT(VARCHAR(10), wt.createdDate, 103), -- Particular = remarks, -- Balance = '' --FROM WalletTransactions(NOLOCK) wt INNER JOIN customerMaster cm ON wt.customerId = cm.customerId --WHERE wt.customerId = @customerId AND wt.createdDate BETWEEN CAST(@fromDate AS DATETIME) AND CAST(@toDate AS DATETIME) + '23:59:59' DECLARE @SQL VARCHAR(MAX),@email VARCHAR(500), @requestFrom varchar(20) SELECT @email=email FROM customerMaster(NOLOCK) WHERE customerId = @customerId EXEC mobile_proc_WalletStatement @UserID = @email,@startDate = @fromDate ,@endDate = @toDate --DECLARE @RESULT TABLE(ID INT IDENTITY(1,1),TRNDate VARCHAR(10),tran_rmks VARCHAR(MAX),DRTotal DECIMAL(18,2),cRTotal DECIMAL(18,2),end_clr_balance DECIMAL(18,2),ref_num VARCHAR(20)) --SET @SQL = 'mobile_proc_WalletStatement @UserID = ''' + @email +''',@startDate = ''' + @fromDate + ''',@endDate = ''' + @toDate + '''' --INSERT INTO @RESULT --EXEC(@SQL) --SELECT --Debit= DRTotal, --Credit= cRTotal, --[Date] = TrnDate, --Particular= tran_Rmks, --Balance = ISNULL(end_Clr_Balance,'0.00') --FROM @RESULT END END TRY BEGIN CATCH IF @@TRANCOUNT > 0 ROLLBACK TRANSACTION DECLARE @errorMessage VARCHAR(MAX) SET @errorMessage = ERROR_MESSAGE() EXEC proc_errorHandler 1, @errorMessage, @customerId END CATCH GO