| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431 |
- USE [SAP_INVERLEC_ES]
- GO
- /****** Object: StoredProcedure [dbo].[SBO_Balance_Comprobacion_Todas] Script Date: 04/17/2018 14:29:46 ******/
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- -- =============================================
- -- Author: Amarelis Ortiz Cañas
- -- Create date: 22/02/2018
- ---modificado: 26/02/2018
- -- Description: Balance de Comprobacion LEGAL NUEVO
- /*
- Con parametros de entrada Fecha Inicial y Final,
- sin bucles anidados para Guatemala
- */
- --============================================================
- ALTER PROCEDURE [dbo].[SBO_Balance_Comprobacion_Todas]
- -- Add the parameters for the stored procedure here
- @FechaI DateTime
- ,@FechaF DateTime
- ,@TIPO_REPORTE INT
- --0: REPORTE NORMAL (TODAS LAS CUENTAS), 1: REPORTE CON SALDOS A LA FECHA, 2: REPORTE LEGAL
- --, @Nivel int --(nada hace solo referencia)
- ,@IncPrelim nvarchar(1)='N' ----S incluye preliminares, N no incluye preliminares, P solo preliminares
- AS
- BEGIN
- Declare
- @CuentaINI nvarchar(100)
- ,@CuentaFIN nvarchar(100)
- -- SET NOCOUNT ON added to prevent extra result sets from
- -- interfering with SELECT statements.
- SET NOCOUNT ON;
-
- set @CuentaINI = (select top 1 AcctName from OACT order by AcctCode ASC)
- set @CuentaFIN = (select top 1 AcctName from OACT order by AcctCode DESC)
- -----------------------------------------------------------------------------------
- -- Insert statements for procedure here
- DECLARE @Balance_Comprobacion
- TABLE(Codigo varchar(25)--, Nombre_Cuenta varchar(100)
- , Saldo_IniL numeric(20,2), DebitosL numeric(20,2)
- , CreditosL numeric(20,2), Saldo_FinL numeric(20,2)
- , Saldo_IniS numeric(20,2), DebitosS numeric(20,2)
- , CreditosS numeric(20,2), Saldo_FinS numeric(20,2), Mascara int)
- -----------------------------------------------------------------------------
- DECLARE @Balance_Tipo
- TABLE(Codigo varchar(25), Cuenta varchar(25),Nombre_Cuenta varchar(100)
- , Saldo_IniL numeric(20,2), DebitosL numeric(20,2)
- , CreditosL numeric(20,2), Saldo_FinL numeric(20,2)
- , Saldo_IniS numeric(20,2), DebitosS numeric(20,2)
- , CreditosS numeric(20,2), Saldo_FinS numeric(20,2))
- ------------------------------------------------------------------------------
- declare @Registros int
- Declare @FechaIni date, @FechaFin date
- SET @FechaIni = convert(date, convert(varchar, YEAR(@FechaI))+'-01-01')
- set @FechaFin = convert(date, convert(varchar, YEAR(@FechaI))+'-01-31')
- -------------------PARA SABER SI INICIA OPERACIONES UNA EMPRESA--------------
- set @Registros = (select COUNT('A')
- FROM [JDT1] T0
- INNER JOIN [dbo].[OJDT] T1 ON T1.[TransId] = T0.[TransId]
- INNER JOIN [dbo].[OACT] T2 ON T0.Account = T2.AcctCode
- WHERE
- T0.[RefDate] < @FechaI
- AND T0.[TransType] <> ('-3')
- AND (T0.[SourceLine] <> (-8) OR T0.[SourceLine] IS NULL ) )
- -----------SALDOS INICIALES----------------------------------------------------
- IF Upper(@IncPrelim)<>'P'
- BEGIN
- -------------------PARA EMPRESAS QUE NO HAN INICIADO OPERACIONES--------------
- if @Registros = 0
- BEGIN
- INSERT @Balance_Comprobacion
- SELECT
- T0.[Account]
- ,CASE
- WHEN T2.GroupMask IN (1) THEN SUM(T0.[Debit]-T0.[Credit])
- WHEN T2.GroupMask IN (2,3) THEN SUM(T0.[Credit]-T0.[Debit])
- else 0.00
- END 'SaldoIniL'
- , 0.00 AS DebitosL
- , 0.00 AS CreditosL
- , 0.00 AS Saldos_FinL
- ,CASE
- WHEN T2.GroupMask IN (1) THEN SUM(T0.[SYSDeb]-T0.[SYSCred])
- WHEN T2.GroupMask IN (2,3) THEN SUM(T0.[SYSCred]-T0.[SYSDeb])
- else 0.00
- END 'SaldoIniS'
- ,0.00 AS DebitosS
- , 0.00 AS CreditosS
- , 0.00 AS Saldos_FinS
- , T2.GroupMask
- FROM [dbo].[JDT1] T0
- INNER JOIN [dbo].[OJDT] T1 ON T1.[TransId] = T0.[TransId]
- INNER JOIN [dbo].[OACT] T2 ON T0.Account = T2.AcctCode
- WHERE
- T0.[RefDate] >= @FechaIni AND T0.[RefDate] <= @FechaFin
- AND T0.[TransType] <> (-3) AND (T0.[SourceLine] <> (-8)
- OR T0.[SourceLine] IS NULL ) AND T0.[TransType] = (-2)
- AND T2.GroupMask IN (1,2,3)
- GROUP BY T0.[Account], T2.GroupMask
- END
- ELSE
- BEGIN
- INSERT @Balance_Comprobacion
- SELECT
- T0.[Account]
- ,CASE
- WHEN T2.GroupMask IN (1) THEN SUM(T0.[Debit]-T0.[Credit])
- WHEN T2.GroupMask IN (2,3) THEN SUM(T0.[Credit]-T0.[Debit])
- else 0.00
- END 'SaldoIniL'
- , 0.00 AS DebitosL
- , 0.00 AS CreditosL
- , 0.00 AS Saldos_FinL
- ,CASE
- WHEN T2.GroupMask IN (1) THEN SUM(T0.[SYSDeb]-T0.[SYSCred])
- WHEN T2.GroupMask IN (2,3) THEN SUM(T0.[SYSCred]-T0.[SYSDeb])
- else 0.00
- END 'SaldoIniS'
- ,0.00 AS DebitosS
- , 0.00 AS CreditosS
- , 0.00 AS Saldos_FinS
- , T2.GroupMask
- FROM [dbo].[JDT1] T0
- INNER JOIN [dbo].[OJDT] T1 ON T1.[TransId] = T0.[TransId]
- INNER JOIN [dbo].[OACT] T2 ON T0.Account = T2.AcctCode
- WHERE
- T0.[RefDate] < @FechaI
- AND T0.[TransType] <> (N'-3')
- AND (T0.[SourceLine] <> (-8) OR T0.[SourceLine] IS NULL )
- AND T2.GroupMask IN (1,2,3)
- GROUP BY T0.[Account], T2.GroupMask
- END
-
- ----------------PARA INVERLEC 07/03/2018---------------------------------------------
- declare @Empresa varchar(50)
- set @Empresa = (select CompnyName from OADM)
- if @Empresa = 'INVERLEC'
- UPDATE @Balance_Comprobacion set Saldo_IniL = Saldo_IniL -125.41
- ,Saldo_IniS = Saldo_IniS -125.41
- from @Balance_Comprobacion
- where Codigo = '_SYS00000001683' and year(@FechaI) > 2014
- -------------------ESTADO DE RESULTADOS--------------------------------
- INSERT @Balance_Comprobacion
- SELECT
- T0.[Account]
- ,CASE
- WHEN T2.GroupMask IN (5,6,8) THEN SUM(T0.[Debit]-T0.[Credit])
- WHEN T2.GroupMask IN (4,7) THEN SUM(T0.[Credit]-T0.[Debit])
- else 0.00
- END 'SaldoIniL'
- , 0.00 AS DebitosL
- , 0.00 AS CreditosL
- , 0.00 AS Saldos_FinL
- ,CASE
- WHEN T2.GroupMask IN (5,6,8) THEN SUM(T0.[SYSDeb]-T0.[SYSCred])
- WHEN T2.GroupMask IN (4,7) THEN SUM(T0.[SYSCred]-T0.[SYSDeb])
- else 0.00
- END 'SaldoIniS'
- ,0.00 AS DebitosS
- , 0.00 AS CreditosS
- , 0.00 AS Saldos_FinS
- , T2.GroupMask
- FROM [dbo].[JDT1] T0
- INNER JOIN [dbo].[OJDT] T1 ON T1.[TransId] = T0.[TransId]
- INNER JOIN [dbo].[OACT] T2 ON T0.Account = T2.AcctCode
- WHERE
- T0.[RefDate] >= @FechaIni AND T0.[RefDate] <= @FechaI
- AND T0.[TransType] <> (N'-3')
- AND (T0.[SourceLine] <> (-8) OR T0.[SourceLine] IS NULL )
- AND T2.GroupMask IN (4,5,6,7,8)
- GROUP BY T0.[Account], T2.GroupMask
- -------------------------------------------------------
- INSERT @Balance_Comprobacion
- ------------------------CREDITOS Y DEBITOS-----------------------
- SELECT
- T0.[Account]
- , 0.00 'SaldoIniL'
- , SUM(T0.[Debit])
- , SUM(T0.[Credit])
- , 0.00 AS Saldos_FinL
- , 0.00 'SaldoIniS'
- , SUM(T0.[SYSDeb])
- , SUM(T0.[SYSCred])
- , 0.00 AS Saldos_FinS
- ,t2.GroupMask
- FROM [dbo].[JDT1] T0
- INNER JOIN [dbo].[OJDT] T1 ON T1.[TransId] = T0.[TransId]
- INNER JOIN [dbo].[OACT] T2 ON T0.Account = T2.AcctCode
- WHERE
- T0.[RefDate] >= @FechaI AND T0.[RefDate] <= @FechaF
- AND T0.[TransType] <> (-3) AND (T0.[SourceLine] <> (-8)
- OR T0.[SourceLine] IS NULL ) AND T0.[TransType] <> (-2)
- GROUP BY
- T0.[Account]
- ,t2.GroupMask
- END
- ---------------------------------------------------------------------------------
- ---------------------PRELIMINARES-------------------------------------------------
- IF Upper(@IncPrelim)<>'N'
- BEGIN
- if @Registros = 0
- BEGIN
- INSERT @Balance_Comprobacion
- SELECT
- T0.[Account]
- ,CASE
- WHEN T2.GroupMask IN (1) THEN SUM(T0.[Debit]-T0.[Credit])
- WHEN T2.GroupMask IN (2,3) THEN SUM(T0.[Credit]-T0.[Debit])
- else 0.00
- END 'SaldoIniL'
- , 0.00 AS DebitosL
- , 0.00 AS CreditosL
- , 0.00 AS Saldos_FinL
- ,CASE
- WHEN T2.GroupMask IN (1) THEN SUM(T0.[SYSDeb]-T0.[SYSCred])
- WHEN T2.GroupMask IN (2,3) THEN SUM(T0.[SYSCred]-T0.[SYSDeb])
- else 0.00
- END 'SaldoIniS'
- ,0.00 AS DebitosS
- , 0.00 AS CreditosS
- , 0.00 AS Saldos_FinS
- ,t2.GroupMask
- FROM [BTF1] T0
- INNER JOIN [OBTF] T1 ON T0.[BatchNum] = T1.[BatchNum]
- JOIN [OACT] T2 ON T0.Account = T2.AcctCode
- WHERE
- T0.[RefDate] >= @FechaI AND T0.[RefDate] <= @FechaF AND
- T0.[TransType] <> (-3) AND (T0.[SourceLine] <> (-8)
- OR T0.[SourceLine] IS NULL ) AND T0.[TransType] = (-2)
- AND T0.[TransId] = T1.[TransId]
- AND T1.[BtfStatus] <> ('C')
- AND T2.GroupMask IN (1,2,3)
- GROUP BY
- T0.[Account],
- T2.GroupMask
- END
- ELSE
- BEGIN
- INSERT @Balance_Comprobacion
- SELECT
- T0.[Account]
- ,CASE
- WHEN T2.GroupMask IN (1) THEN SUM(T0.[Debit]-T0.[Credit])
- WHEN T2.GroupMask IN (2,3) THEN SUM(T0.[Credit]-T0.[Debit])
- else 0.00
- END 'SaldoIniL'
- , 0.00 AS DebitosL
- , 0.00 AS CreditosL
- , 0.00 AS Saldos_FinL
- ,CASE
- WHEN T2.GroupMask IN (1) THEN SUM(T0.[SYSDeb]-T0.[SYSCred])
- WHEN T2.GroupMask IN (2,3) THEN SUM(T0.[SYSCred]-T0.[SYSDeb])
- else 0.00
- END 'SaldoIniS'
- ,0.00 AS DebitosS
- , 0.00 AS CreditosS
- , 0.00 AS Saldos_FinS
- ,t2.GroupMask
- FROM
- [BTF1] T0
- INNER JOIN [OBTF] T1 ON T0.[BatchNum] = T1.[BatchNum]
- JOIN [OACT] T2 ON T0.Account = T2.AcctCode
- WHERE
- T0.[RefDate] < @FechaI
- AND T0.[TransType] <> (N'-3')
- AND (T0.[SourceLine] <> (-8) OR T0.[SourceLine] IS NULL )
- AND T0.[TransId] = T1.[TransId]
- AND T1.[BtfStatus] <> ('C')
- AND T2.GroupMask IN (1,2,3)
- GROUP BY
- T0.[Account],
- T2.GroupMask
- END
- -------------------ESTADO DE RESULTADOS--------------------------------
- INSERT @Balance_Comprobacion
- SELECT
- T0.[Account]
- ,CASE
- WHEN T2.GroupMask IN (5,6,8) THEN SUM(T0.[Debit]-T0.[Credit])
- WHEN T2.GroupMask IN (4,7) THEN SUM(T0.[Credit]-T0.[Debit])
- else 0.00
- END 'SaldoIniL'
- , 0.00 AS DebitosL
- , 0.00 AS CreditosL
- , 0.00 AS Saldos_FinL
- ,CASE
- WHEN T2.GroupMask IN (5,6,8) THEN SUM(T0.[SYSDeb]-T0.[SYSCred])
- WHEN T2.GroupMask IN (4,7) THEN SUM(T0.[SYSCred]-T0.[SYSDeb])
- else 0.00
- END 'SaldoIniS'
- ,0.00 AS DebitosS
- , 0.00 AS CreditosS
- , 0.00 AS Saldos_FinS
- , T2.GroupMask
- FROM
- [BTF1] T0
- INNER JOIN [OBTF] T1 ON T0.[BatchNum] = T1.[BatchNum]
- JOIN [OACT] T2 ON T0.Account = T2.AcctCode
- WHERE
- T0.[RefDate] >= @FechaIni AND T0.[RefDate] <= @FechaI
- AND T0.[TransType] <> (N'-3')
- AND (T0.[SourceLine] <> (-8) OR T0.[SourceLine] IS NULL )
- AND T0.[TransId] = T1.[TransId]
- AND T1.[BtfStatus] <> ('C')
- AND T2.GroupMask IN (4,5,6,7,8)
- GROUP BY T0.[Account], T2.GroupMask
- ------------------------CREDITOS Y DEBITOS-----------------------
- INSERT @Balance_Comprobacion
- SELECT
- T0.[Account]
- , 0.00 'SaldoIniL'
- , SUM(T0.[Debit])
- , SUM(T0.[Credit])
- , 0.00 AS Saldos_FinL
- , 0.00 'SaldoIniS'
- , SUM(T0.[SYSDeb])
- , SUM(T0.[SYSCred])
- , 0.00 AS Saldos_FinS
- ,t2.GroupMask
- FROM
- [BTF1] T0
- INNER JOIN [OBTF] T1 ON T0.[BatchNum] = T1.[BatchNum]
- JOIN [OACT] T2 ON T0.Account = T2.AcctCode
- WHERE
- T0.[RefDate] >= @FechaI AND T0.[RefDate] <= @FechaF
- AND T0.[TransType] <> (-3) AND (T0.[SourceLine] <> (-8)
- OR T0.[SourceLine] IS NULL ) AND T0.[TransType] <> (-2)
- AND T0.[TransId] = T1.[TransId]
- AND T1.[BtfStatus] <> ('C')
- --AND T2.GroupMask IN (1,2,3)
- GROUP BY
- T0.[Account]
- ,t2.GroupMask
- END
- ------------------------------------------------------------------------------------------------
- select
- Codigo
- ,(select Segment_0 from OACT where AcctCode = Codigo) 'Cuenta'
- ,(select AcctName from OACT where AcctCode = Codigo) 'NombredeCuenta'
- , sum(Saldo_IniL)'Saldo_IniL'
- , sum(DebitosL) 'DebitosL'
- , sum(CreditosL) 'CreditosL'
- ,CASE
- WHEN Mascara IN (1,5,6,8) THEN (sum(Saldo_IniL)+sum(DebitosL)-sum(CreditosL))
- WHEN Mascara IN (2,3,4,7) THEN (sum(Saldo_IniL)+sum(CreditosL)-sum(DebitosL))*-1
- END 'Saldo_FinL'
- , sum(Saldo_IniS)'Saldo_IniS'
- , sum(DebitosS) 'DebitosS'
- , sum(CreditosS) 'CreditosS'
- ,CASE
- WHEN Mascara IN (1,5,6,8) THEN (sum(Saldo_IniS)+sum(DebitosS)-sum(CreditosS))
- WHEN Mascara IN (2,3,4,7) THEN (sum(Saldo_IniS)+sum(CreditosS)-sum(DebitosS))*-1
- END 'Saldo_FinS'
- into #TEMP1
- from @Balance_Comprobacion
- --where Mascara = @Nivel
- Group by
- Codigo
- , Mascara
- order by Cuenta
- --------------------------------------------------------------------------------------------
- ---------CUENTAS FALTANTES------------------------------------------------------------------
- INSERT INTO #TEMP1
- select B.AcctCode,B.Segment_0,B.AcctName
- ,0.00
- ,0.00
- ,0.00
- ,0.00
- ,0.00
- ,0.00
- ,0.00
- ,0.00
- from OACT B
- WHERE
- B.FormatCode IS NOT NULL
- AND B.AcctCode NOT IN(SELECT Codigo FROM @Balance_Comprobacion)
-
- --SELECT * FROM #TEMP1
- --------------------------------------------------------------------------------------
- IF @TIPO_REPORTE =0
- INSERT INTO @Balance_Tipo
- select *
- from #TEMP1
- else
- INSERT INTO @Balance_Tipo
- select *
- from #TEMP1
- WHERE
- abs(Saldo_IniL)+ abs(DebitosL)+abs(CreditosL)+ abs(Saldo_FinL) <>0
- or abs(Saldo_IniS)+ abs(DebitosS)+abs(CreditosS)+ abs(Saldo_FinS) <>0
- ------------------------------------------------------------------------------------------
- ------------------------------------------------------------------------------------------
- SELECT
- LEFT(N1.AcctCode,1) 'AcctCodeN1'
- ,T0.Codigo
- ,N1.AcctName 'AcctNameN1'
- ,N2.AcctCode 'AcctCodeN2'
- ,N2.AcctName 'AcctNameN2'
- ,N3.AcctCode 'AcctCodeN3'
- ,N3.AcctName 'AcctNameN3'
- ,N4.AcctCode 'AcctCodeN4'
- ,N4.AcctName 'AcctNameN4'
- ,N5.FormatCode
- ,T0.Cuenta
- ,T0.Nombre_Cuenta
- ,T0.Saldo_IniL
- ,T0.DebitosL
- ,T0.CreditosL
- , T0.Saldo_FinL
- ,T0.Saldo_IniS
- ,T0.DebitosS
- ,T0.CreditosS
- , T0.Saldo_FinS
- FROM @Balance_Tipo T0
- INNER JOIN OACT N5 ON T0.Codigo=N5.AcctCode
- INNER JOIN OACT N4 ON N4.AcctCode=N5.FatherNum
- INNER JOIN OACT N3 ON N3.AcctCode=N4.FatherNum
- INNER JOIN OACT N2 ON N2.AcctCode=N3.FatherNum
- INNER JOIN OACT N1 ON N1.AcctCode=N2.FatherNum
- -------------------------------------------------------
- DROP TABLE #Temp1
- end
|