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.

95 lines
5.8 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_AutoManageAgentLimitBalance] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE PROC [dbo].[proc_AutoManageAgentLimitBalance]
  9. AS
  10. SET NOCOUNT ON
  11. SET XACT_ABORT ON
  12. BEGIN TRY
  13. DECLARE @agentTodaysBal table(agentId int, SentAmt money,paidAmt money, cancelAmt money)
  14. INSERT INTO @agentTodaysBal
  15. SELECT SAGENT,SUM(CAMT) AMT,0,0 FROM REMITTRAN(NOLOCK)
  16. WHERE approvedDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE()
  17. GROUP BY SAGENT
  18. UNION ALL
  19. SELECT SBRANCH,SUM(CAMT) AMT,0,0 FROM REMITTRAN(NOLOCK)
  20. WHERE approvedDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE()
  21. AND SAGENT <> SBRANCH
  22. GROUP BY SBRANCH
  23. UNION ALL
  24. SELECT PAGENT,0,SUM(PAMT) AMT,0 FROM REMITTRAN(NOLOCK)
  25. WHERE paidDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE()
  26. GROUP BY PAGENT
  27. UNION ALL
  28. SELECT PBRANCH,SUM(PAMT) AMT,0,0 FROM REMITTRAN(NOLOCK)
  29. WHERE paidDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE()
  30. AND PAGENT <> PBRANCH
  31. GROUP BY PBRANCH
  32. UNION ALL
  33. SELECT SAGENT,0,0,SUM(CAMT) AMT FROM REMITTRAN(NOLOCK)
  34. WHERE cancelApprovedDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE()
  35. GROUP BY SAGENT
  36. UNION ALL
  37. SELECT SBRANCH,SUM(CAMT) AMT,0,0 FROM REMITTRAN(NOLOCK)
  38. WHERE cancelApprovedDate BETWEEN CAST(GETDATE() AS DATE) AND GETDATE()
  39. AND SAGENT <> SBRANCH
  40. GROUP BY SBRANCH
  41. SELECT AGENTID
  42. , SentAmt = SUM(SentAmt)
  43. , paidAmt = SUM(paidAmt)
  44. , cancelAmt = SUM(cancelAmt)
  45. FROM @agentTodaysBal GROUP BY AGENTID
  46. return
  47. --select acct_num,acct_name,clr_bal_amt,amt
  48. --FROM FastMoneyPro_Account.DBO.ac_master A,(
  49. --SELECT ACC_NUM, SUM (CASE WHEN PART_TRAN_TYPE='Dr' THEN ISNULL(TRAN_AMT,0)*-1 ELSE ISNULL(TRAN_AMT,0) END) AMT
  50. --FROM FastMoneyPro_Account.DBO.TRAN_MASTER WITH (NOLOCK) GROUP BY ACC_NUM) X
  51. --WHERE A.acct_num = X.acc_num
  52. --AND isnull(A.clr_bal_amt,0)<>isnull(X.AMT,0)
  53. --RETURN
  54. UPDATE FastMoneyPro_Account.DBO.AC_MASTER SET CLR_BAL_AMT=AMT,available_amt = AMT
  55. FROM FastMoneyPro_Account.DBO.ac_master A,(
  56. SELECT ACC_NUM, SUM (CASE WHEN PART_TRAN_TYPE='Dr' THEN ISNULL(TRAN_AMT,0)*-1 ELSE ISNULL(TRAN_AMT,0) END) AMT
  57. FROM FastMoneyPro_Account.DBO.TRAN_MASTER WITH (NOLOCK) GROUP BY ACC_NUM) X
  58. WHERE A.acct_num=X.acc_num
  59. AND isnull(A.clr_bal_amt,0) <> isnull(X.AMT,0)
  60. UPDATE C SET C.todaysSent = X.SentAmt
  61. ,C.todaysPaid = X.paidAmt
  62. ,C.todaysCancelled = X.cancelAmt
  63. ,topUpTillYesterday = ISNULL(C.topUpTillYesterday,0)
  64. ,yesterdaysBalance = ISNULL(C.yesterdaysBalance,0)
  65. ,topUpToday = ISNULL(C.topUpToday,0)
  66. ,todaysEPI = ISNULL(C.todaysEPI,0)
  67. ,todaysPOI = ISNULL(C.todaysPOI,0)
  68. FROM creditLimit C
  69. INNER JOIN (
  70. SELECT AGENTID
  71. , SentAmt = SUM(SentAmt)
  72. , paidAmt = SUM(paidAmt)
  73. , cancelAmt = SUM(cancelAmt)
  74. FROM @agentTodaysBal GROUP BY AGENTID
  75. )X ON C.AgentId = x.AgentId
  76. PRINT 'Balance updated ...!'
  77. END TRY
  78. BEGIN CATCH
  79. PRINT ERROR_MESSAGE()
  80. END CATCH
  81. GO