Sei sulla pagina 1di 9

USE [RebmanFinale_GL] GO /****** Object: StoredProcedure [dbo].

[VxGl] 3 ******/ SET ANSI_NULLS OFF GO SET QUOTED_IDENTIFIER ON GO

Script Date: 04/07/2013 09:26:2

/****** Object: Stored Procedure dbo.VxGl Script Date: 05/02/2005 09:35:50 * *****/ ALTER PROCEDURE [dbo].[VxGl] @ComputerName as Varchar(100)='Suhelsysadmin', @BalanceSheet as Numeric(18,0)=1 AS Print '----------------------------------------------' Print '[VxGl] Procedure Initiated' Declare @SqlString As Varchar(8000) Set @SqlString='' Set @SqlString='' Set @SqlString='Delete From OpenTempVXGL Where [ComputerName]='''+ REPLACE(@Com puterName,'''','''''') +'''' Print @SqlString Execute (@SqlString) if @BalanceSheet=0 Begin Set @SqlString='' Set @SqlString='Insert Into OpenTempVXGL ( [Date],[Year],[Period],[FinacctNo],[FinacctName],[DebitAmt],[Cre ditAmt], [Balance],[Dates],[FinaccountNo],[ComputerName],[CoCode],[Vouche rNo],[Narration], [FinacctNameA],[CoName],[CoNameArabic],[BranchCode],[BranchName] ,[BranchNameA],[InvoiceNo], [ChequeNo],[PaidTo],[JVApproved],[HasChild],[outline],[ParentLev elCode],[PostStatus], [Ln],[GroupTrans] ) Select [Date],[Year],[Period],[FinacctNo],[FinacctName],[DebitAmt],[Cre ditAmt], [Balance],[Dates],[FinaccountNo],[ComputerName],[CoCode],[Vouche rNo],[Narration], [FinacctNameA],[CoName],[CoNameArabic],[BranchCode],[BranchName] ,[BranchNameA],[InvoiceNo], [ChequeNo],[PaidTo],[JVApproved],[HasChild],[outline],[ParentLev elCode],[PostStatus], [Ln],[GroupTrans] From OpenTemp Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''' Print @SqlString Execute (@SqlString) End

Else Begin Print 'Print Balance Sheet On ' Set @SqlString='' Set @SqlString='Insert Into OpenTempVXGL ( [Date],[Year],[Period],[FinacctNo],[FinacctName],[DebitAmt],[Cre ditAmt], [Balance],[Dates],[FinaccountNo],[ComputerName],[CoCode],[Vouche rNo],[Narration], [FinacctNameA],[CoName],[CoNameArabic],[BranchCode],[BranchName] ,[BranchNameA],[InvoiceNo], [ChequeNo],[PaidTo],[JVApproved],[HasChild],[outline],[ParentLev elCode],[PostStatus], [Ln],[GroupTrans] ) Select [Date],[Year],[Period],[FinacctNo],[FinacctName],[DebitAmt],[Cre ditAmt], [Balance],[Dates],[FinaccountNo],[ComputerName],[CoCode],[Vouche rNo],[Narration], [FinacctNameA],[CoName],[CoNameArabic],[BranchCode],[BranchName] ,[BranchNameA],[InvoiceNo], [ChequeNo],[PaidTo],[JVApproved],[HasChild],[outline],[ParentLev elCode],[PostStatus], [Ln],[GroupTrans] From OpenTemp where FinacctNo in (Select LevelCode From MastAccountCode Where AccountType<=2 ) And [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''' Print @SqlString Execute (@SqlString) Print 'Inserting The PL ' Set @SqlString='' Set @SqlString='Insert Into OpenTempVXGL ( [Date],[Year],[Period],[FinacctNo],[FinacctName],[DebitAmt],[Cre ditAmt], [Balance],[Dates],[FinaccountNo],[ComputerName],[CoCode],[Vouche rNo],[Narration], [FinacctNameA],[CoName],[CoNameArabic],[BranchCode],[BranchName] ,[BranchNameA],[InvoiceNo], [ChequeNo],[PaidTo],[JVApproved],[HasChild],[outline],[ParentLev elCode],[PostStatus], [Ln],[GroupTrans] ) Select Null as [Date],Null as [Year],null as [Period],(select top 1 Acc ountCode from SetupAcctPL), '''',Case When (Sum(debitamt)-sum(creditamt))>=0 T hen (Sum(debitamt)-sum(creditamt)) else 0 End ,Case When (Sum(debitamt)-sum(cr editamt))<0 Then abs(Sum(debitamt)-sum(creditamt)) else 0 End, 0 as [Balance],Null as [Dates],(select top 1 AccountCode from S etupAcctPL),[ComputerName],[CoCode],''P/L Entry'' As [VoucherNo],''P/L Entry'' a s [Narration], '''' as FinacctNameA,[CoName],[CoNameArabic],'''' as [BranchCode ],'''' as [BranchName],'''' as [BranchNameA],'''' as [InvoiceNo],

'''' as [ChequeNo],'''' as [PaidTo],0 as [JVApproved],0 as [HasC hild],0 as [outline],'''' as [ParentLevelCode],'''' as [PostStatus], 0 as [Ln],1 as [GroupTrans] From OpenTemp where FinacctNo in (Select LevelCode From MastAccountCode Where AccountType>2 ) And [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +''' Group by [ComputerName],[CoCode],[CoName],[CoNameArabic]' Print @SqlString Execute (@SqlString) End

Set @SqlString='' Set @SqlString=' Update [OpenTempVXGL] Set [ParentLevelCode]= isnull((Select top 1 ParentLevelcode from MastAccountCode where LevelCod e =[OpenTempVXGL].[FinacctNo]),'''') Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''' Print @SqlString Execute (@SqlString) Create Table #TmpOpenTemp ( [BranchCode] [varchar](200) NULL, [ParentLevelCode] [varchar](100) NULL, [FinacctNo] [nvarchar](200) NULL, [DebitAmt] [float] NULL, [CreditAmt] [float] NULL, [ComputerName] Varchar(100) Null ) Set @SqlString='' Set @SqlString='Truncate Table [#TmpOpenTemp]' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString='Insert into [#TmpOpenTemp] ( [BranchCode],[FinacctNo],[DebitAmt],[CreditAmt],[ComputerName] ) Select [BranchCode],[ParentLevelCode],Sum(Isnull([DebitAmt],0)),Sum(Isnull([Cred itAmt],0)),[ComputerName] From [OpenTempVXGL] Where [ComputerName]='''+ REPLACE(@ComputerName,'''',''''' ') +''' Group by [BranchCode],[ParentLevelCode],[ComputerName]' Print @SqlString Execute (@SqlString) Declare @LoopOn As Numeric(18,0) Set @LoopOn=1 Declare @LoopCount As Numeric(18,0) Set @LoopCount=0

While @LoopOn<>0 Begin Set @LoopCount=@LoopCount + 1 Print '@LoopCount [' + Convert(varchar(100),@LoopCount) + ']' Print '---------------------' Set @SqlString='' Set @SqlString=' Update #TmpOpenTemp Set [ParentLevelCode]= isnull((Select top 1 ParentLevelcode from MastAccountCode where LevelCode =#TmpOpenTemp.[FinacctNo]),'''') Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') + '''' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString='Insert into[OpenTempVXGL] ( [BranchCode],[FinacctNo],[DebitAmt],[CreditAmt],[ComputerName],G roupTrans ) Select '''' as [BranchCode],[FinacctNo],Sum(isnull([DebitAmt],0)),Sum(Isnull([C reditAmt],0)),[ComputerName],1 From #TmpOpenTemp Group by [FinacctNo],[ComputerName] ' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString='Delete From #TmpOpenTemp Where ltrim(rtrim(Isnull(Parent LevelCode,'''')))=''''' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString='Update #TmpOpenTemp Set FinacctNo=ParentLevelCode' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString='Update #TmpOpenTemp Set ParentLevelCode=''''' Print @SqlString Execute (@SqlString) Select @LoopOn=Count(*) From #TmpOpenTemp Print 'No Of Rows Left For Summarization [' + Convert(Varchar(100),@Loop On ) + ']' Print '--------' if @LoopOn=0 Begin Set @SqlString=''

Set @SqlString='Insert into [#TmpOpenTemp] ( [BranchCode],[FinacctNo],[DebitAmt],[CreditAmt],[Compute rName] ) Select '''' as [BranchCode],[FinacctNo],Sum(Isnull([DebitAmt],0) ),Sum(Isnull([CreditAmt],0)),[ComputerName] From [OpenTempVXGL] Where [ComputerName]='''+ REPLACE(@Compute rName,'''','''''') +''' And GroupTrans=1 And ltrim(rtrim(isnull(ParentLevelCode,'''')))='''' Group by [FinacctNo],[ComputerName] Having Count(*)>1 ' Print @SqlString Execute (@SqlString) Print '----------------------------------------------------' Set @SqlString='' Set @SqlString=' Delete from [OpenTempVXGL] Where Transid in ( Select a.Transid from [OpenTempVXGL] a,#TmpOpenTemp b where a.ComputerName=b.ComputerName and a.FinacctNo =b.FinacctNo and a.[ComputerName]='''+ REPLACE(@Computer Name,'''','''''') +''' )' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString='Insert into[OpenTempVXGL] ( [BranchCode],[FinacctNo],[DebitAmt],[CreditAmt],[Compute rName],GroupTrans ) Select [BranchCode],[FinacctNo],Sum(isnull([DebitAmt],0)),Sum(I snull([CreditAmt],0)),[ComputerName],1 From #TmpOpenTemp Group by [BranchCode],[FinacctNo],[ComputerName] ' Print @SqlString Execute (@SqlString)

set @LoopOn=0 End End

Set @SqlString='' Set @SqlString=' Update [OpenTempVXGL] Set [ParentLevelCode]= isnull((Select top 1 ParentLevelcode from MastAccountCode where LevelCode =[Open TempVXGL].[FinacctNo]),'''') Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''

And ltrim(rtrim(isnull(ParentLevelCode,'''')))=''''' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString=' Update [OpenTempVXGL] Set [FinacctName]= isnull((Select top 1 LevelName from MastAccountCode where LevelCode =[OpenTempVX GL].[FinacctNo]),'''') Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString=' Update [OpenTempVXGL] Set [outline]= isnull((Select top 1 LevelNo from MastAccountCode where LevelCode =[OpenTempVXGL ].[FinacctNo]),0) Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString=' update [OpenTempVXGL] set haschild=0 Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString=' update [OpenTempVXGL] set haschild=1 from [OpenTempVXGL] Where FinacctNo in (select LevelCode From MastAccountCode Where TransLevel=0) And [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''' Print @SqlString Execute (@SqlString) -------------------------------------------------------------------------------Set @SqlString='' Set @SqlString=' Update [OpenTemp] Set [outline]= isnull((Select top 1 LevelNo from MastAccountCode where LevelCode =[OpenTemp].[F inacctNo]),0) Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString=' update [OpenTemp] set haschild=0 Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''' Print @SqlString Execute (@SqlString)

Set @SqlString='' Set @SqlString=' update [OpenTemp] set haschild=1 from [OpenTemp] Where FinacctNo in (select LevelCode From MastAccountCode Where TransLevel=0) And [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''' Print @SqlString Execute (@SqlString) -------------------------------------------------------------------------------Print 'Inserting The Translevel Totals' Set @SqlString='' Set @SqlString='Insert into[OpenTempVXGL] ( [BranchCode],[FinacctNo],[FinacctName],[DebitAmt],[CreditAmt],[C omputerName],GroupTrans,HasChild,Outline ) Select '''' as [BranchCode],FinacctNo,[FinacctName],Sum(isnull([DebitAmt],0)),S um(Isnull([CreditAmt],0)),[ComputerName],1,1,Outline From OpenTemp Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''' '') +''' And FinacctNo in (select LevelCode from MastAccountCode Where TransLevel=1) And FinacctNo In ( select FinacctNo From OpenTemp Where [ComputerName]='''+ REPLAC E(@ComputerName,'''','''''') +''' Group by FinacctNo Having Count(*)>1 ) Group BY FinacctNo,[FinacctName] ,ComputerName,Outline ' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString=' Update OpenTempVXGL set Outline=Outline +1 Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +''' And FinacctNo in (select LevelCode from MastAccountCode Where TransLevel=1) And isnull(HasChild,0)=0' Print @SqlString Execute (@SqlString) -------------------------------------------------------------------------------Print 'Inserting The GrandTotal' Set @SqlString='' Set @SqlString='Insert into[OpenTempVXGL] ( [BranchCode],[FinacctNo],[FinacctName],[Narration],[DebitAmt],[C reditAmt],[ComputerName],GroupTrans,Outline )

Select '''' as [BranchCode],''TOTAL'',''TOTAL'',''Balance :'' + Convert(Varchar (100), Convert(Money, Round((Sum(isnull([DebitAmt],0))-Sum(Isnull([CreditAmt], 0))),2)),1 ),Sum(isnull([DebitAmt],0)),Sum(Isnull([CreditAmt],0)),[ComputerName] ,1,1 From OpenTemp Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''' '') +''' Group BY ComputerName ' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString='Update [OpenTempVXGL] Set PostStatus='''' Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString='Update [OpenTempVXGL] Set PostStatus=Case When ISNULL(JVApproved,0)=0 Then ''No'' Else ''Yes'' End Where LTrim(RTrim(Isnull(VoucherNo,'''')))<>'''' And upper(LTrim(RTrim(Isnull(VoucherNo,''''))))<>Upper(''opening'') And [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString=' Update [OpenTempVXGL] Set [ParentLevelCode]= isnull((Select top 1 ParentLevelcode from MastAccountCode where LevelCod e =[OpenTempVXGL].[FinacctNo]),'''') Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +''' And ltrim(rtrim(isnull(ParentLevelCode,'''')))=''''' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString=' Update [OpenTempVXGL] Set [Outline]=0 Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString=' Update [OpenTempVXGL] Set [Outline]= isnull((select top 1 AccountLevel from SetupAccountCode where RTotal<= len(OpenTempVXGL.FinacctNo) order by RTotal desc),0) Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''' Print @SqlString Execute (@SqlString) Set @SqlString=''

Set @SqlString=' Update [OpenTempVXGL] Set [Outline]=1 Where [FinacctNo]=''TOTAL'' and [ComputerName]='''+ REPLACE(@ComputerN ame,'''','''''') +'''' Print @SqlString Execute (@SqlString) Set @SqlString='' Set @SqlString=' Update [OpenTempVXGL] Set [FinacctNo]= replicate(''-'' , Len(ParentLevel Code )) + [FinacctNo] Where [ComputerName]='''+ REPLACE(@ComputerName,'''','''''') +'''' Print @SqlString Execute (@SqlString)

Print '[VxGl] Procedure Completed Successfully !' Print '----------------------------------------------'

Potrebbero piacerti anche