USE [FastMoneyPro_Remit] GO /****** Object: StoredProcedure [dbo].[proc_AutoManageAgentLimitBalance] Script Date: 9/27/2019 1:30:14 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROC [dbo].[proc_AutoManageAgentLimitBalance] AS SET NOCOUNT ON SET XACT_ABORT ON BEGIN TRY DECLARE @agentTodaysBal table(agentId int, SentAmt money,paidAmt money, cancelAmt money) INSERT INTO @agentTodaysBal SELECT SAGENT,SUM(CAMT) AMT,0,0 FROM REMITTRAN(NOLOCK) WHERE approvedDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE() GROUP BY SAGENT UNION ALL SELECT SBRANCH,SUM(CAMT) AMT,0,0 FROM REMITTRAN(NOLOCK) WHERE approvedDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE() AND SAGENT <> SBRANCH GROUP BY SBRANCH UNION ALL SELECT PAGENT,0,SUM(PAMT) AMT,0 FROM REMITTRAN(NOLOCK) WHERE paidDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE() GROUP BY PAGENT UNION ALL SELECT PBRANCH,SUM(PAMT) AMT,0,0 FROM REMITTRAN(NOLOCK) WHERE paidDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE() AND PAGENT <> PBRANCH GROUP BY PBRANCH UNION ALL SELECT SAGENT,0,0,SUM(CAMT) AMT FROM REMITTRAN(NOLOCK) WHERE cancelApprovedDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE() GROUP BY SAGENT UNION ALL SELECT SBRANCH,SUM(CAMT) AMT,0,0 FROM REMITTRAN(NOLOCK) WHERE cancelApprovedDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE() AND SAGENT <> SBRANCH GROUP BY SBRANCH SELECT AGENTID , SentAmt = SUM(SentAmt) , paidAmt = SUM(paidAmt) , cancelAmt = SUM(cancelAmt) FROM @agentTodaysBal GROUP BY AGENTID return --select acct_num,acct_name,clr_bal_amt,amt --FROM FastMoneyPro_Account.DBO.ac_master A,( --SELECT ACC_NUM, SUM (CASE WHEN PART_TRAN_TYPE='Dr' THEN ISNULL(TRAN_AMT,0)*-1 ELSE ISNULL(TRAN_AMT,0) END) AMT --FROM FastMoneyPro_Account.DBO.TRAN_MASTER WITH (NOLOCK) GROUP BY ACC_NUM) X --WHERE A.acct_num = X.acc_num --AND isnull(A.clr_bal_amt,0)<>isnull(X.AMT,0) --RETURN UPDATE FastMoneyPro_Account.DBO.AC_MASTER SET CLR_BAL_AMT=AMT,available_amt = AMT FROM FastMoneyPro_Account.DBO.ac_master A,( SELECT ACC_NUM, SUM (CASE WHEN PART_TRAN_TYPE='Dr' THEN ISNULL(TRAN_AMT,0)*-1 ELSE ISNULL(TRAN_AMT,0) END) AMT FROM FastMoneyPro_Account.DBO.TRAN_MASTER WITH (NOLOCK) GROUP BY ACC_NUM) X WHERE A.acct_num=X.acc_num AND isnull(A.clr_bal_amt,0) <> isnull(X.AMT,0) UPDATE C SET C.todaysSent = X.SentAmt ,C.todaysPaid = X.paidAmt ,C.todaysCancelled = X.cancelAmt ,topUpTillYesterday = ISNULL(C.topUpTillYesterday,0) ,yesterdaysBalance = ISNULL(C.yesterdaysBalance,0) ,topUpToday = ISNULL(C.topUpToday,0) ,todaysEPI = ISNULL(C.todaysEPI,0) ,todaysPOI = ISNULL(C.todaysPOI,0) FROM creditLimit C INNER JOIN ( SELECT AGENTID , SentAmt = SUM(SentAmt) , paidAmt = SUM(paidAmt) , cancelAmt = SUM(cancelAmt) FROM @agentTodaysBal GROUP BY AGENTID )X ON C.AgentId = x.AgentId PRINT 'Balance updated ...!' END TRY BEGIN CATCH PRINT ERROR_MESSAGE() END CATCH GO