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.

202 lines
12 KiB

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