Quantcast
Channel: SCN : All Content - All Communities
Viewing all articles
Browse latest Browse all 8914

Reporte de estado por funcion

$
0
0

Buenas tardes a todos.

Espero conseguir ayuda y a la vez quien sabe con esto pueda ayudar a alguien mas.

Tengo en query un reporte de estado por funcion (que antes se llamaba de ganancias y perdidas si no me equivoco), me funciona bastante bien hasta el momento en que quiero seleccionar las Unidades de negocio (profitcode) y sus saldos correspondientes.

Dejo el query espero me puedan apoyar.

 

DECLARE @PERI NVARCHAR(7)

DECLARE @RUC NVARCHAR(32)

DECLARE @RAZONSOCIAL NVARCHAR(100)

declare @UniNeg nvarchar(max)

declare @TotUni int

 

 

DECLARE @YEAR INT

SELECT @PERI = (SELECT TOP 1 T0.Code FROM [dbo].[OFPR] T0  WHERE T0.Code = '2014-01')--'[%0]')

SELECT @RAZONSOCIAL = (select TOP 1 CompnyName from OADM)

SELECT @RUC = (select TOP 1 TaxIdNum from OADM)

SELECT @YEAR = (select DATEPART(YEAR,F_RefDate) from [dbo].[OFPR] Where Code= @PERI)

select @UniNeg = (select TOP 1 T0.ProfitCode from JDT1 T0, OACT T1, [@CLASCTASFIN] T2

  where T1.u_biz_clasctasfin = T2.code group by T0.ProfitCode)

select @TotUni = (select profitcode, Debit, Credit 'Total por Unidad' from JDT1 where RefDate = @YEAR

  and ProfitCode <> ''

  group  by ProfitCode,Debit,Credit)

 

 

DECLARE @TOTAL_INGRESOS_BRUTOS INT

SET @TOTAL_INGRESOS_BRUTOS=

(

   SELECT ISNULL(SUM(T0.Debit-T0.Credit),0) FROM  [dbo].[OJDT] T1

   INNER JOIN [dbo].[JDT1] T0 ON T1.TransId  = T0.TransId

   INNER JOIN [dbo].[OFPR] T2 ON T2.AbsEntry = T1.FinncPriod

   INNER JOIN [dbo].[OACT] T3 ON T3.AcctCode = T0.Account

   INNER JOIN [dbo].[@CLASCTASFIN] T4 ON T3.U_BIZ_CLASCTASFIN = T4.CODE

  WHERE

  1=1

  AND (DATEPART(YEAR,T2.F_RefDate) = '2014')--@YEAR)

  AND T4.U_BIZ_OPER='A'

  AND T4.U_BIZ_CALC='N'

  AND NOT T1.TransType IN (-3,-2)

  --and T0.ProfitCode <> ''

)

 

 

DECLARE @UTILIDAD_BRUTA INT

SET @UTILIDAD_BRUTA=

(

   @TOTAL_INGRESOS_BRUTOS

   +

   (

       SELECT ISNULL(SUM(T0.Debit-T0.Credit),0)  FROM  [dbo].[OJDT] T1

       INNER JOIN [dbo].[JDT1] T0 ON T1.TransId  = T0.TransId

                      INNER JOIN [dbo].[OFPR] T2 ON T2.AbsEntry = T1.FinncPriod

                      INNER JOIN [dbo].[OACT] T3 ON T3.AcctCode = T0.Account

                      INNER JOIN [dbo].[@CLASCTASFIN] T4 ON T3.U_BIZ_CLASCTASFIN=T4.CODE

   WHERE

   1=1

   AND (DATEPART(YEAR,T2.F_RefDate) = '2014')--@YEAR)

   AND T4.U_BIZ_OPER='C'

   AND T4.U_BIZ_CALC='N' 

   AND NOT T1.TransType IN (-3,-2)

   --and T0.ProfitCode <> ''

   )

)

 

 

 

 

DECLARE @UTILIDAD_OPERATIVA INT

SET @UTILIDAD_OPERATIVA=

(

@UTILIDAD_BRUTA

+

(

  SELECT ISNULL(SUM(T0.Debit-T0.Credit),0)  FROM  [dbo].[OJDT] T1

     INNER JOIN [dbo].[JDT1] T0 ON T1.TransId  = T0.TransId

                    INNER JOIN [dbo].[OFPR] T2 ON T2.AbsEntry = T1.FinncPriod

                    INNER JOIN [dbo].[OACT] T3 ON T3.AcctCode = T0.Account

  INNER JOIN [dbo].[@CLASCTASFIN] T4 ON T3.U_BIZ_CLASCTASFIN = T4.CODE

  WHERE

  1=1

  AND (DATEPART(YEAR,T2.F_RefDate) ='2014') --@YEAR)

  AND T4.U_BIZ_OPER='D'

  AND T4.U_BIZ_CALC='N'

  AND NOT T1.TransType IN (-3,-2)

  --and T0.ProfitCode <> ''

)

)

 

 

DECLARE @RESULTADOS_PARTICIPACIONES INT

SET @RESULTADOS_PARTICIPACIONES=

(

@UTILIDAD_OPERATIVA

+

(

       SELECT ISNULL(SUM(T0.Debit-T0.Credit),0)  FROM  [dbo].[OJDT] T1

       INNER JOIN [dbo].[JDT1] T0 ON T1.TransId  = T0.TransId

                      INNER JOIN [dbo].[OFPR] T2 ON T2.AbsEntry = T1.FinncPriod

                      INNER JOIN [dbo].[OACT] T3 ON T3.AcctCode = T0.Account

                      INNER JOIN [dbo].[@CLASCTASFIN] T4 ON T3.U_BIZ_CLASCTASFIN=T4.CODE

  WHERE

  1=1

  AND (DATEPART(YEAR,T2.F_RefDate) = '2014')--@YEAR)

  AND T4.U_BIZ_OPER='E'

  AND NOT T1.TransType IN (-3,-2)

  AND T4.U_BIZ_CALC='N'

  --and T0.ProfitCode <> ''

)

 

 

)

 

 

DECLARE @RESULTADOS_ANTESPART_EXTRAORDINARIAS INT

SET @RESULTADOS_ANTESPART_EXTRAORDINARIAS=

(

  @RESULTADOS_PARTICIPACIONES

  +

  (

   SELECT ISNULL(SUM(T0.Debit-T0.Credit),0)  FROM  [dbo].[OJDT] T1

   INNER JOIN [dbo].[JDT1] T0 ON T1.TransId  = T0.TransId

   INNER JOIN [dbo].[OFPR] T2 ON T2.AbsEntry = T1.FinncPriod

   INNER JOIN [dbo].[OACT] T3 ON T3.AcctCode = T0.Account

   INNER JOIN [dbo].[@CLASCTASFIN] T4 ON T3.U_BIZ_CLASCTASFIN=T4.CODE

  WHERE

  1=1

  AND (DATEPART(YEAR,T2.F_RefDate) = '2014') --@YEAR)

  AND T4.U_BIZ_OPER='G'

  AND T4.U_BIZ_CALC='N'

  AND NOT T1.TransType IN (-3,-2)

  --and T0.ProfitCode <> ''

  )

)

 

 

Select

[Periodo],

[RUC],

[Razon Social],

[CONSUMO EN LA PRODUCCIÓN],

[Ejercicio o periodo]  as [Ejercicio o periodo],

[Unidad de Negocio]

[Total por Unidad]

FROM

(

SELECT

@PERI  AS 'Periodo'         ,

                @RUC AS 'RUC',

                @RAZONSOCIAL  AS 'Razon Social',

  T10.U_BIZ_NOM AS 'CONSUMO EN LA PRODUCCIÓN',

  @UniNeg AS 'Unidad de Negocio',

  @TotUni AS 'Total por Unidad',

'Ejercicio o periodo' =

CASE

WHEN T10.U_BIZ_CALC='N' THEN

(

       SELECT ISNULL(SUM(T0.Debit-T0.Credit),0)  FROM  [dbo].[OJDT] T1

       INNER JOIN [dbo].[JDT1] T0 ON T1.TransId  = T0.TransId

                      INNER JOIN [dbo].[OFPR] T2 ON T2.AbsEntry = T1.FinncPriod

                      INNER JOIN [dbo].[OACT] T3 ON T3.AcctCode = T0.Account

  WHERE

  (DATEPART(YEAR,T2.F_RefDate) = @YEAR) AND T3.U_BIZ_CLASCTASFIN = T10.CODE

  AND NOT T1.TransType IN (-3,-2)

  --and T0.ProfitCode(SUM(T0.Debit-T0.Credit)) <> ''

)

ELSE

  CASE

  WHEN T10.U_BIZ_OPER='A' THEN ISNULL(@TOTAL_INGRESOS_BRUTOS,0)

  WHEN T10.U_BIZ_OPER='B' THEN ISNULL(@UTILIDAD_BRUTA,0)

  WHEN T10.U_BIZ_OPER='D' THEN ISNULL(@UTILIDAD_OPERATIVA,0)

  WHEN T10.U_BIZ_OPER='E' THEN ISNULL(@RESULTADOS_PARTICIPACIONES,0)

  WHEN T10.U_BIZ_OPER='G' THEN ISNULL(@RESULTADOS_ANTESPART_EXTRAORDINARIAS,0)

  WHEN T10.U_BIZ_OPER='H' THEN

ISNULL

(

@RESULTADOS_ANTESPART_EXTRAORDINARIAS +

(

       SELECT ISNULL(SUM(T0.Debit-T0.Credit),0)  FROM  [dbo].[OJDT] T1

       INNER JOIN [dbo].[JDT1] T0 ON T1.TransId  = T0.TransId

                      INNER JOIN [dbo].[OFPR] T2 ON T2.AbsEntry = T1.FinncPriod

                      INNER JOIN [dbo].[OACT] T3 ON T3.AcctCode = T0.Account

                      INNER JOIN [dbo].[@CLASCTASFIN] T4 ON T3.U_BIZ_CLASCTASFIN=T4.CODE

  WHERE

  1=1

  AND (DATEPART(YEAR,T2.F_RefDate) = @YEAR)

  AND T4.U_BIZ_OPER='H'

  AND T4.U_BIZ_CALC='N'

  AND NOT T1.TransType IN (-3,-2)

  --and T0.ProfitCode<> ''

)

,

0

)

 

 

  ELSE

  NULL

  END

END,

U_BIZ_ORDEN

FROM [dbo].[@CLASCTASFIN] T10 , JDT1 T0

WHERE U_BIZ_OPER<>'1'

group by T10.u_biz_nom,T0.ProfitCode,T10.code, T10.U_biz_calc, T10.U_biz_OPer,T10.U_biz_orden

)

AAA

Order by U_BIZ_ORDEN

 

Gracias

Angel


Viewing all articles
Browse latest Browse all 8914

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>