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.

213 lines
12 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[proc_sendEODRemit] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. -- exec proc_sendEODRemit @user='admin',@tranId='2'
  9. -- SEND TRANSACTION EOD process
  10. CREATE PROC [dbo].[proc_sendEODRemit]
  11. @USER VARCHAR(200) ,
  12. --@DATE VARCHAR(20)
  13. @tranId VARCHAR(50)
  14. AS
  15. --DECLARE @USER VARCHAR(100),@DATE VARCHAR(20)
  16. --SET @USER='SYSTEM'
  17. --SET @DATE = '2012-03-14'
  18. BEGIN
  19. SET NOCOUNT ON;
  20. SET XACT_ABORT ON;
  21. DECLARE
  22. @ref_num INT
  23. ,@intPartId INT
  24. ,@intTotalRows INT
  25. ,@strAccountNum VARCHAR(20)
  26. ,@strTranType VARCHAR(20)
  27. ,@TRN_AMT MONEY
  28. ,@IMEHO_PRINCIPAL VARCHAR(30)
  29. ,@IMEHO_REC VARCHAR(30)
  30. ,@COMMISSION_INCOME VARCHAR(30)
  31. SET @IMEHO_PRINCIPAL = '301000251'
  32. SET @IMEHO_REC = '501000455'
  33. SET @COMMISSION_INCOME = '801000511'
  34. IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[#TEMPEODTABLE]') AND type in (N'U'))
  35. DROP TABLE [dbo].[#TEMPEODTABLE]
  36. SELECT sHub,sSuperAgent,sAgent,SUM(ISNULL(tAmt,0)) [tAmt],SUM(ISNULL(sSuperAgentComm,0)) [sSuperAgentComm]
  37. ,SUM(isnull(sHubComm,0)) [sHubComm],SUM(isnull(sAgentComm,0)) [sAgentComm]
  38. INTO #TEMPEODTABLE
  39. FROM remitTran WITH (NOLOCK)
  40. WHERE sendEOD IS NULL AND tAmt IS NOT NULL
  41. AND id = @tranId AND approvedDate IS NOT NULL
  42. --AND approvedDate BETWEEN @DATE AND @DATE + ' 23:59:59'
  43. GROUP BY sHub,sSuperAgent,sAgent
  44. IF NOT EXISTS(SELECT TOP 1 * FROM #TEMPEODTABLE)
  45. BEGIN
  46. EXEC proc_errorHandler 1, '<FONT COLOR="RED">NO TRN FOUND</FONT>',NULL
  47. RETURN;
  48. END
  49. IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[#tempTRNEOD]') AND type in (N'U'))
  50. DROP TABLE [dbo].[#tempTRNEOD]
  51. SELECT
  52. IDENTITY(INT,1,1) AS SN,*
  53. INTO #tempTRNEOD
  54. FROM (
  55. --- SENDING AGENT PRINCIPAL AC
  56. SELECT a.acct_num AS ACCT_NUM,'DR' AS TRN_TYPE
  57. ,SUM(ISNULL(TAmt,0))AS amt,a.acct_rpt_code
  58. FROM #TEMPEODTABLE p JOIN ac_master a ON a.agent_id=p.sAgent
  59. WHERE a.acct_rpt_code=22
  60. GROUP BY acct_num,a.acct_rpt_code
  61. UNION ALL
  62. --- IME HO PRINCIPAL AC
  63. SELECT @IMEHO_PRINCIPAL AS ACCT_NUM,'CR' AS TRN_TYPE
  64. ,SUM(ISNULL(TAmt,0))AS amt,null
  65. FROM #TEMPEODTABLE
  66. UNION ALL
  67. -- IME HO COMMISSION AC
  68. SELECT @IMEHO_REC AS ACCT_NUM,'DR' AS TRN_TYPE
  69. ,SUM(ISNULL(SHubComm,0))AS amt,NULL
  70. FROM #TEMPEODTABLE
  71. UNION ALL
  72. --- SENDING AGENT COMMISSION AC
  73. SELECT a.acct_num AS ACCT_NUM,'CR' AS TRN_TYPE
  74. ,SUM(ISNULL(sAgentComm,0))AS amt,a.acct_rpt_code
  75. FROM #TEMPEODTABLE p JOIN ac_master a ON a.agent_id=p.sAgent
  76. WHERE a.acct_rpt_code=2
  77. GROUP BY acct_num,a.acct_rpt_code
  78. UNION ALL
  79. --- SUPER AGENT COMMISSION AC
  80. SELECT a.acct_num AS ACCT_NUM,'CR' AS TRN_TYPE
  81. , SUM(ISNULL(P.sSuperAgentComm,0))AS amt,a.acct_rpt_code
  82. FROM #TEMPEODTABLE p JOIN ac_master a ON a.agent_id=p.sSuperAgent
  83. GROUP BY acct_num,a.acct_rpt_code
  84. UNION ALL
  85. --- COMMISSION INCOME COMMISSION AC
  86. SELECT @COMMISSION_INCOME AS ACCT_NUM,'CR' AS TRN_TYPE
  87. ,SUM(ISNULL(SHubComm,0)-(ISNULL(sAgentComm,0)+ISNULL(sSuperAgentComm,0)))AS amt,NULL
  88. FROM #TEMPEODTABLE
  89. )a
  90. WHERE amt<>0
  91. ----select * from #tempTRNEOD
  92. ----select * from #TempEODTable
  93. ----RETURN
  94. DECLARE @totalDR MONEY,@totalCR MONEY
  95. SELECT @totalDR=isnull(sum(amt),0) from #tempTRNEOD WITH (NOLOCK)
  96. WHERE TRN_TYPE='dr' GROUP BY TRN_TYPE
  97. SELECT @totalCR=isnull(sum(amt),0) from #tempTRNEOD WITH (NOLOCK)
  98. WHERE TRN_TYPE='cr' group by TRN_TYPE
  99. -- conditions 1 for Total DR CR equal
  100. IF ISNULL(@totalDR,0)<>ISNULL(@totalCR,0)
  101. BEGIN
  102. EXEC proc_errorHandler 1,'<FONT COLOR="RED">DR and CR amount not Equal</font>' ,NULL
  103. RETURN
  104. END
  105. SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
  106. BEGIN TRANSACTION
  107. SELECT @ref_num=ISNULL(TRAN_VOUCHER,1) FROM billSetting
  108. UPDATE billSetting SET TRAN_VOUCHER = ISNULL(TRAN_VOUCHER,1)+1
  109. -------##################### UPPDATE REMITTRAN TABLE SENDEOD FLAG
  110. UPDATE remitTran SET sendEOD='Y'
  111. FROM remitTran WITH (NOLOCK)
  112. WHERE sendEOD IS NULL
  113. AND id = @tranId AND approvedDate IS NOT NULL
  114. --AND approvedDate BETWEEN @DATE AND @DATE + ' 23:59:59'
  115. UPDATE ac_master SET SYSTEM_RESERVED_AMT=0
  116. FROM ac_master AS a
  117. INNER JOIN #tempTRNEOD AS t ON a.acct_num = t.acct_num
  118. --### UPDATE CLR BAL AMT
  119. UPDATE ac_master SET
  120. CLR_BAL_AMT=CASE
  121. WHEN t.TRN_TYPE='DR' THEN ISNULL(CLR_BAL_AMT,0) - ISNULL(t.amt,0)
  122. ELSE ISNULL(CLR_BAL_AMT,0) - ISNULL(-t.amt,0)
  123. END
  124. FROM ac_master AS a
  125. INNER JOIN #tempTRNEOD AS t ON a.acct_num = t.acct_num
  126. UPDATE ac_master SET SYSTEM_RESERVED_AMT=X.tamt
  127. FROM ac_master AS a
  128. INNER JOIN
  129. (SELECT sAgent,SUM(ISNULL(tAmt,0)) tamt FROM remitTran
  130. WHERE approvedDate IS NULL AND tAmt IS NOT NULL
  131. GROUP BY sAgent
  132. )X ON X.sAgent=a.agent_id
  133. ----------------------------------------------
  134. SELECT @intPartId=max(SN) FROM #tempTRNEOD
  135. SET @intTotalRows=1
  136. WHILE @intPartId >= @intTotalRows
  137. BEGIN
  138. SELECT @strAccountNum=ACCT_NUM,@strTranType=TRN_TYPE ,@TRN_AMT = amt
  139. FROM #tempTRNEOD WHERE SN=@intTotalRows
  140. Exec ProcDrCrUpdateFinal @strTranType,@strAccountNum,@TRN_AMT
  141. SET @intTotalRows=@intTotalRows+1
  142. END
  143. ---------------------------------------------
  144. INSERT INTO tran_master (entry_user_id,acc_num,gl_sub_head_code,rpt_code,part_tran_type
  145. ,ref_num,tran_amt,tran_date,tran_type,company_id,part_tran_srl_num,created_date,acct_type_code)
  146. SELECT @USER,c.acct_num,dbo.FNAGetGLCode(c.acct_num),'SEND' ,TRN_TYPE
  147. ,@ref_num,amt,GETDATE(),'t','1',ROW_NUMBER() OVER(ORDER BY TRN_TYPE desc) AS SrNo,GETDATE(),acct_rpt_code
  148. from #tempTRNEOD c
  149. INSERT INTO [tran_masterDetail]([ref_num] ,[tran_particular],company_id,tranDate,tran_type)
  150. SELECT TOP 1 @ref_num,'EOD of send transaction: '+ CONVERT(VARCHAR(20), GETDATE(),102) ,'1',GETDATE(),'t'
  151. --SELECT * FROM tran_master WHERE rpt_code='SEND'
  152. --SELECT * FROM tran_masterDetail
  153. COMMIT TRANSACTION
  154. --ROLLBACK TRANSACTION
  155. --EXEC proc_errorHandler 0, '<font color="green">EOD Update successsfully for send please check daily reports</font>',NULL
  156. END
  157. GO