ALTER PROCEDURE [dbo].[sp_cyvCentralizacion]
(@fecini         DATE, 
 @fecfin         DATE, 
 @correlativoini BIGINT, 
 @correlativofin BIGINT, 
 @cov            CHAR(1), 
 @iva            CHAR(1), 
 @periodo        INT     = 0, 
 @mes            INT     = 0, 
 @unidadnegocio int = -1,
 @completa       INT     = 1 
)
AS
     SELECT @completa = completa
     FROM CONPARAMETROS;
     IF @cov = 'V'
         BEGIN
             IF @iva = 'S'
                 BEGIN
                     SELECT cyvEncabezado.tipo_ingreso, 
                            cyvEncabezado.mes, 
                            cyvEncabezado.periodo, 
                            cyvEncabezado.correlativo, 
                            cyvDetalle.linea, 
                            cyvDetalle.concepto, 
                            cyvEncabezado.tipo_documento, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion,
                            CASE
                                WHEN cyvdetalle.concepto IN(6, 8)
                                THEN monto
                                ELSE 0
                            END AS debe,
                            CASE
                                WHEN cyvdetalle.concepto IN(1, 2, 4, 5, 7)
                                THEN monto
                                ELSE 0
                            END AS haber, 
                            0 AS numlin, 
                            cyvDetalle.ctacte, 
                            cyvDetalle.item, 
                            cyvDetalle.tipo_docto, 
                            cyvDetalle.num_docto, 
                            cyvDetalle.vencimiento, 
                            cyvDetalle.analisis, 
                            cyvDetalle.uni_negocio, 
                            cyvDetalle.moneda, 
                            CASE cyvDetalle.tasa_cambio
							WHEN 0 THEN 1 
							END AS tasa_cambio, 
                            cyvDetalle.glosa_linea,
							cyvDetalle.codigo_impuesto
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 2)
                          AND cyvdetalle.concepto <> 3
						  AND cyvdetalle.codigo_impuesto NOT IN( 126)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento NOT IN(60, 61, 112))
                          AND (CONVERT(DATE, cyvEncabezado.fecha_ing) BETWEEN @fecini AND @fecfin)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
						  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
                     UNION ALL
                     SELECT cyvEncabezado.tipo_ingreso, 
                            cyvEncabezado.mes, 
                            cyvEncabezado.periodo, 
                            cyvEncabezado.correlativo, 
                            cyvDetalle.linea, 
                            cyvDetalle.concepto, 
                            cyvEncabezado.tipo_documento, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion,
                            CASE
                                WHEN cyvdetalle.concepto IN(1, 2)
                                THEN monto
                                ELSE 0
                            END AS debe,
                            CASE
                                WHEN cyvdetalle.concepto IN(8)
                                THEN monto
                                ELSE 0
                            END AS haber, 
                            0 AS numlin, 
                            cyvDetalle.ctacte, 
                            cyvDetalle.item, 
                            cyvDetalle.tipo_docto, 
                            cyvDetalle.num_docto, 
                            cyvDetalle.vencimiento, 
                            cyvDetalle.analisis, 
                            cyvDetalle.uni_negocio, 
                            cyvDetalle.moneda, 
                            CASE cyvDetalle.tasa_cambio
							WHEN 0 THEN 1 
							END AS tasa_cambio, 
                            cyvDetalle.glosa_linea,
							cyvDetalle.codigo_impuesto
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 2)
                          AND (cyvdetalle.concepto <> 3)
			              AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento IN(60, 61, 112))
                          AND (CONVERT(DATE, cyvEncabezado.fecha_ing) BETWEEN @fecini AND @fecfin)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
						  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)

					UNION ALL


						  --NUEVO
					SELECT cyvEncabezado.tipo_ingreso, 
                            cyvEncabezado.mes, 
                            cyvEncabezado.periodo, 
                            cyvEncabezado.correlativo, 
                            cyvDetalle.linea, 
                            cyvDetalle.concepto, 
                            cyvEncabezado.tipo_documento, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion,
                            CASE 
                                WHEN cyvdetalle.concepto IN( 4)
                                THEN monto
                                ELSE 0
                            END AS debe,
                            0 AS haber, 
                            0 AS numlin, 
                            cyvDetalle.ctacte, 
                            cyvDetalle.item, 
                            cyvDetalle.tipo_docto, 
                            cyvDetalle.num_docto, 
                            cyvDetalle.vencimiento, 
                            cyvDetalle.analisis, 
                            cyvDetalle.uni_negocio, 
                            cyvDetalle.moneda, 
                            CASE cyvDetalle.tasa_cambio 
							WHEN 0 THEN 1 
							END AS tasa_cambio,
                            cyvDetalle.glosa_linea,
							cyvDetalle.codigo_impuesto

                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 2)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento NOT IN(60, 61, 112))
                          AND (CONVERT(DATE, cyvEncabezado.fecha_ing) BETWEEN @fecini AND @fecfin)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
						  AND cyvDetalle.codigo_impuesto  IN (126)
						  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)

                     UNION ALL

                     SELECT 0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            3, 
                            0, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion, 
                            SUM(monto) AS debe, 
                            0 AS haber, 
                            0 AS numlin, 
                            0, 
                            0, 
                            0, 
                            0, 
                            GETDATE(), 
                            0, 
                            0, 
                            0, 
                            0, 
                            ('IVA VENTAS ' + CONVERT(NVARCHAR, MONTH(@fecini)) + '/' + CONVERT(NVARCHAR, YEAR(@fecini))),
							0
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 2)
                          AND (cyvdetalle.concepto = 3)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento IN(60, 61, 112))
                          AND (CONVERT(DATE, cyvEncabezado.fecha_ing) BETWEEN @fecini AND @fecfin)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
						  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
                     GROUP BY conPlanCuentas.cuenta, 
                              conPlanCuentas.descripcion
                     UNION ALL
                     SELECT 0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            3, 
                            0, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion, 
                            0 AS debe, 
                            SUM(monto) AS haber, 
                            0 AS numlin, 
                            0, 
                            0, 
                            0, 
                            0, 
                            GETDATE(), 
                            0, 
                            0, 
                            0, 
                            0, 
                            ('IVA VENTAS ' + CONVERT(NVARCHAR, MONTH(@fecini)) + '/' + CONVERT(NVARCHAR, YEAR(@fecini))),
							0
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 2)
                          AND (cyvdetalle.concepto = 3)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento NOT IN(60, 61, 112))
                          AND (CONVERT(DATE, cyvEncabezado.fecha_ing) BETWEEN @fecini AND @fecfin)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
						  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
                     GROUP BY conPlanCuentas.cuenta, 
                              conPlanCuentas.descripcion
					 UNION ALL
                     SELECT cyvEncabezado.tipo_ingreso, 
                            cyvEncabezado.mes, 
                            cyvEncabezado.periodo, 
                            cyvEncabezado.correlativo, 
                            cyvDetalle.linea, 
                            cyvDetalle.concepto, 
                            cyvEncabezado.tipo_documento, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion,
                            CASE
                                WHEN cyvdetalle.concepto IN(6, 8)
                                THEN monto
                                ELSE 0
                            END AS debe,
                            CASE
                                WHEN cyvdetalle.concepto IN(1, 2, 3, 4, 5, 7)
                                THEN monto
                                ELSE 0
                            END AS haber, 
                            0 AS numlin, 
                            cyvDetalle.ctacte, 
                            cyvDetalle.item, 
                            cyvDetalle.tipo_docto, 
                            cyvDetalle.num_docto, 
                            cyvDetalle.vencimiento, 
                            cyvDetalle.analisis, 
                            cyvDetalle.uni_negocio, 
                            cyvDetalle.moneda, 
                            CASE cyvDetalle.tasa_cambio 
							WHEN 0 THEN 1 
							END AS tasa_cambio,
                            cyvDetalle.glosa_linea,
							cyvDetalle.codigo_impuesto
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 2)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento IN(60, 61, 112))
                          AND (CONVERT(DATE, cyvEncabezado.fecha_ing) BETWEEN @fecini AND @fecfin)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
                          AND (cyvdetalle.concepto = 8)
						  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
                     UNION ALL
                     SELECT cyvEncabezado.tipo_ingreso, 
                            cyvEncabezado.mes, 
                            cyvEncabezado.periodo, 
                            cyvEncabezado.correlativo, 
                            cyvDetalle.linea, 
                            cyvDetalle.concepto, 
                            cyvEncabezado.tipo_documento, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion,
                            CASE
                                WHEN cyvdetalle.concepto IN(1, 2, 3, 4, 5, 7)
                                THEN monto
                                ELSE 0
                            END AS debe,
                            CASE
                                WHEN cyvdetalle.concepto IN(6, 8)
                                THEN monto
                                ELSE 0
                            END AS haber, 
                            0 AS numlin, 
                            cyvDetalle.ctacte, 
                            cyvDetalle.item, 
                            cyvEncabezado.doc_ref AS tipo_docto, 
                            cyvEncabezado.num_doc_ref AS num_docto, 
                            cyvDetalle.vencimiento, 
                            cyvDetalle.analisis, 
                            cyvDetalle.uni_negocio, 
                            cyvDetalle.moneda, 
                            CASE cyvDetalle.tasa_cambio 
							WHEN 0 THEN 1
							END AS tasa_cambio,
                            cyvDetalle.glosa_linea,
							cyvDetalle.codigo_impuesto
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 2)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento IN(60, 61, 112))
                          AND (CONVERT(DATE, cyvEncabezado.fecha_ing) BETWEEN @fecini AND @fecfin)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
						  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
                          AND (cyvdetalle.concepto = 8);

             END;
                 ELSE
                 BEGIN
                     SELECT cyvEncabezado.tipo_ingreso, 
                            cyvEncabezado.mes, 
                            cyvEncabezado.periodo, 
                            cyvEncabezado.correlativo, 
                            cyvDetalle.linea, 
                            cyvDetalle.concepto, 
                            cyvEncabezado.tipo_documento, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion,
                            CASE
                                WHEN cyvdetalle.concepto IN(6, 8)
                                THEN monto
                                ELSE 0
                            END AS debe,
                            CASE
                                WHEN cyvdetalle.concepto IN(1, 2, 3, 4, 5, 7)
                                THEN monto
                                ELSE 0
                            END AS haber, 
                            0 AS numlin, 
                            cyvDetalle.ctacte, 
                            cyvDetalle.item, 
                            cyvDetalle.tipo_docto, 
                            cyvDetalle.num_docto, 
                            cyvDetalle.vencimiento, 
                            cyvDetalle.analisis, 
                            cyvDetalle.uni_negocio, 
                            cyvDetalle.moneda, 
                            CASE cyvDetalle.tasa_cambio 
							WHEN 0 THEN 1 
							END AS tasa_cambio,
                            cyvDetalle.glosa_linea,
							cyvDetalle.codigo_impuesto

                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 2)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento NOT IN(60, 61, 112))
                          AND (CONVERT(DATE, cyvEncabezado.fecha_ing) BETWEEN @fecini AND @fecfin)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
						  AND cyvDetalle.codigo_impuesto NOT IN (126)
                     UNION ALL
                     SELECT cyvEncabezado.tipo_ingreso, 
                            cyvEncabezado.mes, 
                            cyvEncabezado.periodo, 
                            cyvEncabezado.correlativo, 
                            cyvDetalle.linea, 
                            cyvDetalle.concepto, 
                            cyvEncabezado.tipo_documento, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion,
                            CASE
                                WHEN cyvdetalle.concepto IN(1, 2, 3, 4, 5, 7)
                                THEN monto
                                ELSE 0
                            END AS debe,
                            CASE
                                WHEN cyvdetalle.concepto IN(6, 8)
                                THEN monto
                                ELSE 0
                            END AS haber, 
                            0 AS numlin, 
                            cyvDetalle.ctacte, 
                            cyvDetalle.item, 
                            cyvDetalle.tipo_docto, 
                            cyvDetalle.num_docto, 
                            cyvDetalle.vencimiento, 
                            cyvDetalle.analisis, 
                            cyvDetalle.uni_negocio, 
                            cyvDetalle.moneda, 
                            CASE cyvDetalle.tasa_cambio 
							WHEN 0 THEN 1 
							END AS tasa_cambio,
                            cyvDetalle.glosa_linea,
							cyvDetalle.codigo_impuesto
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 2)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento IN(60, 61, 112))
                          AND (CONVERT(DATE, cyvEncabezado.fecha_ing) BETWEEN @fecini AND @fecfin)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
						  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
					UNION ALL

					--NUEVO
					SELECT cyvEncabezado.tipo_ingreso, 
                            cyvEncabezado.mes, 
                            cyvEncabezado.periodo, 
                            cyvEncabezado.correlativo, 
                            cyvDetalle.linea, 
                            cyvDetalle.concepto, 
                            cyvEncabezado.tipo_documento, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion,
                            CASE 
                                WHEN cyvdetalle.concepto IN( 4)
                                THEN monto
                                ELSE 0
                            END AS debe,
                            0 AS haber, 
                            0 AS numlin, 
                            cyvDetalle.ctacte, 
                            cyvDetalle.item, 
                            cyvDetalle.tipo_docto, 
                            cyvDetalle.num_docto, 
                            cyvDetalle.vencimiento, 
                            cyvDetalle.analisis, 
                            cyvDetalle.uni_negocio, 
                            cyvDetalle.moneda, 
                            CASE cyvDetalle.tasa_cambio 
							WHEN 0 THEN 1 
							END AS tasa_cambio, 
                            cyvDetalle.glosa_linea,
							cyvDetalle.codigo_impuesto

                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 2)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento NOT IN(60, 61, 112))
                          AND (CONVERT(DATE, cyvEncabezado.fecha_ing) BETWEEN @fecini AND @fecfin)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
						  AND cyvDetalle.codigo_impuesto  IN (126)

					 UNION ALL
                     SELECT cyvEncabezado.tipo_ingreso, 
                            cyvEncabezado.mes, 
                            cyvEncabezado.periodo, 
                            cyvEncabezado.correlativo, 
                            cyvDetalle.linea, 
                            cyvDetalle.concepto, 
                            cyvEncabezado.tipo_documento, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion,
                            CASE
                                WHEN cyvdetalle.concepto IN(6, 8)
                                THEN monto
                                ELSE 0
                            END AS debe,
                            CASE
                                WHEN cyvdetalle.concepto IN(1, 2, 3, 4, 5, 7)
                                THEN monto
                                ELSE 0
                            END AS haber, 
                            0 AS numlin, 
                            cyvDetalle.ctacte, 
                            cyvDetalle.item, 
                            cyvDetalle.tipo_docto, 
                            cyvDetalle.num_docto, 
                            cyvDetalle.vencimiento, 
                            cyvDetalle.analisis, 
                            cyvDetalle.uni_negocio, 
                            cyvDetalle.moneda, 
                            CASE cyvDetalle.tasa_cambio 
							WHEN 0 THEN 1 
							END AS tasa_cambio,
                            cyvDetalle.glosa_linea,
							cyvDetalle.codigo_impuesto
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 2)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento IN(60, 61, 112))
                          AND (CONVERT(DATE, cyvEncabezado.fecha_ing) BETWEEN @fecini AND @fecfin)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
                          AND (cyvdetalle.concepto = 8)
						  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
                     UNION ALL
                     SELECT cyvEncabezado.tipo_ingreso, 
                            cyvEncabezado.mes, 
                            cyvEncabezado.periodo, 
                            cyvEncabezado.correlativo, 
                            cyvDetalle.linea, 
                            cyvDetalle.concepto, 
                            cyvEncabezado.tipo_documento, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion,
                            CASE
                                WHEN cyvdetalle.concepto IN(1, 2, 3, 4, 5, 7)
                                THEN monto
                                ELSE 0
                            END AS debe,
                            CASE
                                WHEN cyvdetalle.concepto IN(6, 8)
                                THEN monto
                                ELSE 0
                            END AS haber, 
                            0 AS numlin, 
                            cyvDetalle.ctacte, 
                            cyvDetalle.item, 
                            cyvEncabezado.doc_ref AS tipo_docto, 
                            cyvEncabezado.num_doc_ref AS num_docto, 
                            cyvDetalle.vencimiento, 
                            cyvDetalle.analisis, 
                            cyvDetalle.uni_negocio, 
                            cyvDetalle.moneda, 
                            CASE cyvDetalle.tasa_cambio 
							WHEN 0 THEN 1 
							END AS tasa_cambio,
                            cyvDetalle.glosa_linea,
							cyvDetalle.codigo_impuesto
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 2)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento IN(60, 61, 112))
                          AND (CONVERT(DATE, cyvEncabezado.fecha_ing) BETWEEN @fecini AND @fecfin)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
						  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
                          AND (cyvdetalle.concepto = 8);				
             END;
     END;
         ELSE
         BEGIN

             --	COMPRAS
             IF @iva = 'S'
                 BEGIN		-- IVA DETALLADO
                     --	DOCUMENTOS DE COMPRA EXCEPTO NOTAS DE CREDITO - IVA DETALLADO
                     SELECT 
						tipo_ingreso,
						mes,
						periodo,
						correlativo,
						MIN(linea) AS linea,              -- o MAX(linea)
						MIN(concepto) AS concepto,        -- o MAX(concepto)
						tipo_documento,
						cuenta,
						descripcion,
						SUM(debe) AS debe,
						SUM(haber) AS haber,
						MIN(numlin) AS numlin,
						ctacte,
						MIN(item) AS item,
						MIN(tipo_docto) AS tipo_docto,
						MIN(num_docto) AS num_docto,
						MIN(vencimiento) AS vencimiento,
						MIN(analisis) AS analisis,
						uni_negocio,
						moneda,
						MIN(tasa_cambio) AS tasa_cambio,
						MIN(glosa_linea) AS glosa_linea,
						MIN(orden) AS orden,
						MIN(aprobacion) AS aprobacion
					FROM (
						SELECT cyvEncabezado.tipo_ingreso, 
                            cyvEncabezado.mes, 
                            cyvEncabezado.periodo, 
                            cyvEncabezado.correlativo, 
                            cyvDetalle.linea, 
                            cyvDetalle.concepto, 
                            cyvEncabezado.tipo_documento, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion, 
                            0 AS debe, 
                            monto * -1 AS haber, 
                            0 AS numlin, 
                            cyvDetalle.ctacte, 
                            cyvDetalle.item, 
                            cyvDetalle.tipo_docto, 
                            cyvDetalle.num_docto, 
                            cyvDetalle.vencimiento, 
                            cyvDetalle.analisis, 
                            cyvDetalle.uni_negocio, 
                            cyvDetalle.moneda, 
                            CASE cyvDetalle.tasa_cambio 
							WHEN 0 THEN 1 
							END AS tasa_cambio,
                            cyvDetalle.glosa_linea, 
                            0 AS orden,
							cyvEncabezado.aprobacion
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 1)
                          AND (cyvdetalle.monto < 0)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento NOT IN(60, 61, 112))
                          AND (cyvEncabezado.periodo = @periodo)
                          AND (cyvEncabezado.mes = @mes)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
						  AND (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
                     UNION ALL

                     --	COMPRAS - IVA DETALLADO
                     SELECT cyvEncabezado.tipo_ingreso, 
                            cyvEncabezado.mes, 
                            cyvEncabezado.periodo, 
                            cyvEncabezado.correlativo, 
                            cyvDetalle.linea, 
                            cyvDetalle.concepto, 
                            cyvEncabezado.tipo_documento, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion,
                            CASE
                                WHEN cyvdetalle.concepto IN(1, 2, 4, 5, 7)
                                THEN monto
                                ELSE 0
                            END AS debe,
                            CASE
                                WHEN cyvdetalle.concepto IN(6, 8)
                                THEN monto
                                ELSE 0
                            END AS haber, 
                            0 AS numlin, 
                            cyvDetalle.ctacte, 
                            cyvDetalle.item, 
                            cyvDetalle.tipo_docto, 
                            cyvDetalle.num_docto, 
                            cyvDetalle.vencimiento, 
                            cyvDetalle.analisis, 
                            cyvDetalle.uni_negocio, 
                            cyvDetalle.moneda, 
                            CASE cyvDetalle.tasa_cambio 
							WHEN 0 THEN 1 
							END AS tasa_cambio, 
                            cyvDetalle.glosa_linea, 
                            1 AS orden,
							cyvEncabezado.aprobacion
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 1)
                          AND (cyvdetalle.concepto <> 3)
                          AND (cyvdetalle.monto > 0)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento NOT IN(60, 61, 112))
                          AND (cyvEncabezado.periodo = @periodo)
                          AND (cyvEncabezado.mes = @mes)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
						  AND (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
                     UNION ALL
                     SELECT cyvEncabezado.tipo_ingreso, 
                            cyvEncabezado.mes, 
                            cyvEncabezado.periodo, 
                            cyvEncabezado.correlativo, 
                            cyvDetalle.linea, 
                            cyvDetalle.concepto, 
                            cyvEncabezado.tipo_documento, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion,
                            CASE
                                WHEN cyvdetalle.concepto IN(6, 8)
                                THEN monto
                                ELSE 0
                            END AS debe,
                            CASE
                                WHEN cyvdetalle.concepto IN(1, 2, 4, 5, 7)
                                THEN monto
                                ELSE 0
                            END AS haber, 
                            0 AS numlin, 
                            cyvDetalle.ctacte, 
                            cyvDetalle.item, 
                            cyvDetalle.tipo_docto, 
                            cyvDetalle.num_docto, 
                            cyvDetalle.vencimiento, 
                            cyvDetalle.analisis, 
                            cyvDetalle.uni_negocio, 
                            cyvDetalle.moneda, 
                            CASE cyvDetalle.tasa_cambio 
							WHEN 0 THEN 1 
							END AS tasa_cambio,
                            cyvDetalle.glosa_linea, 
                            2 AS orden,
							cyvEncabezado.aprobacion
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 1)
                          AND (cyvdetalle.concepto <> 3)
                          AND (cyvdetalle.monto > 0)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento IN(60, 61, 112))
                          AND cyvEncabezado.periodo = @periodo
                          AND cyvEncabezado.mes = @mes
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
						  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
                     UNION ALL
                     SELECT 0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            3, 
                            0, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion, 
                            0 AS debe, 
                            SUM(monto) AS haber, 
                            0 AS numlin, 
                            0, 
                            0, 
                            0, 
                            0, 
                            GETDATE(), 
                            0, 
                            0, 
                            0, 
                            0, 
                            ('IVA COMPRAS ' + CONVERT(NVARCHAR, MONTH(@fecini)) + '/' + CONVERT(NVARCHAR, YEAR(@fecini))), 
                            3 AS orden,
							cyvEncabezado.aprobacion
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 1)
                          AND (cyvdetalle.concepto = 3)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento IN(60, 61))
                          AND cyvEncabezado.periodo = @periodo
                          AND cyvEncabezado.mes = @mes
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
						  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
                     GROUP BY conPlanCuentas.cuenta, 
                              conPlanCuentas.descripcion,
							  cyvEncabezado.aprobacion
                     UNION ALL
                     SELECT 0, 
                            0, 
                            0, 
                            0, 
                            0, 
                            3, 
                            0, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion, 
                            SUM(monto) AS debe, 
                            0 AS haber, 
                            0 AS numlin, 
                            0, 
                            0, 
                            0, 
                            0, 
                            GETDATE(), 
                            0, 
                            0, 
                            0, 
                            0, 
                            ('IVA COMPRAS ' + CONVERT(NVARCHAR, MONTH(@fecini)) + '/' + CONVERT(NVARCHAR, YEAR(@fecini))), 
                            4 AS orden,
							cyvEncabezado.aprobacion
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                     WHERE(cyvDetalle.tipo_ingreso = 1)
                          AND (cyvdetalle.concepto = 3)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento NOT IN(60, 61, 112))
                          AND cyvEncabezado.periodo = @periodo
                          AND cyvEncabezado.mes = @mes
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
						  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
                     GROUP BY conPlanCuentas.cuenta, 
                              conPlanCuentas.descripcion,
							  cyvEncabezado.aprobacion
                     UNION ALL

                     --	AL DEBE EL TOTAL
                     --	AL HABER TODO EXCEPTO EL TOTAL
                     --	DOCUMENTOS DE COMPRA NOTAS DE CREDITO - IVA RESUMIDO
                     -- ADICIONALES
                     SELECT cyvEncabezado.tipo_ingreso, 
                            cyvEncabezado.mes, 
                            cyvEncabezado.periodo, 
                            cyvEncabezado.correlativo, 
                            cyvDetalle.linea, 
                            cyvDetalle.concepto, 
                            cyvEncabezado.tipo_documento, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion, 
                            0 AS debe, 
                            cyvDetalle.monto AS haber, 
                            0 AS numlin, 
                            cyvDetalle.ctacte, 
                            cyvDetalle.item, 
                            cyvDetalle.tipo_documento, 
                            cyvEncabezado.num_documento, 
                            cyvDetalle.vencimiento, 
                            cyvDetalle.analisis, 
                            cyvDetalle.uni_negocio, 
                            cyvDetalle.moneda, 
                            CASE cyvDetalle.tasa_cambio 
							WHEN 0 THEN 1 
							END AS tasa_cambio,
							cyvDetalle.glosa_linea,
                            --CAST(venDocumentos.alias_doc AS VARCHAR) + ' N°' + CAST(cyvEncabezado.num_doc_ref AS VARCHAR) + '  ' + CAST(cyvEncabezado.correlativo AS VARCHAR) + '-' + UPPER(DATENAME(MONTH, DATEADD(month, cyvEncabezado.mes, -1))) AS glosa_linea, 
                            5 AS orden,
							cyvEncabezado.aprobacion
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                          INNER JOIN venDocumentosSii ON cyvEncabezado.doc_ref = venDocumentosSii.codsii
                          INNER JOIN venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii
                     WHERE(cyvDetalle.tipo_ingreso = 1)
                          AND (cyvdetalle.concepto = 8)
                          AND (cyvdetalle.monto > 0)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento IN(60, 61, 112))
                          AND (cyvEncabezado.periodo = @periodo)
                          AND (cyvEncabezado.mes = @mes)
                          AND (cyvEncabezado.num_doc_ref > 0)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
                          AND (@completa = 1)
						  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
                     UNION ALL

                     --	AL DEBE EL TOTAL
                     --	AL HABER TODO EXCEPTO EL TOTAL
                     --	DOCUMENTOS DE COMPRA NOTAS DE CREDITO - IVA RESUMIDO
                     SELECT cyvEncabezado.tipo_ingreso, 
                            cyvEncabezado.mes, 
                            cyvEncabezado.periodo, 
                            cyvEncabezado.correlativo, 
                            cyvDetalle.linea, 
                            cyvDetalle.concepto, 
                            cyvEncabezado.tipo_documento, 
                            conPlanCuentas.cuenta, 
                            conPlanCuentas.descripcion, 
                            cyvDetalle.monto AS debe, 
                            0 AS haber, 
                            0 AS numlin, 
                            cyvDetalle.ctacte, 
                            cyvDetalle.item, 
                            cyvEncabezado.doc_ref, 
                            cyvEncabezado.num_doc_ref, 
                            cyvDetalle.vencimiento, 
                            cyvDetalle.analisis, 
                            cyvDetalle.uni_negocio, 
                            cyvDetalle.moneda, 
                            CASE cyvDetalle.tasa_cambio 
							WHEN 0 THEN 1 
							END AS tasa_cambio, 
                            cyvDetalle.glosa_linea,
                            --CAST(venDocumentos.alias_doc AS VARCHAR) + ' N°' + CAST(cyvEncabezado.num_doc_ref AS VARCHAR) + '  ' + CAST(cyvEncabezado.correlativo AS VARCHAR) + '-' + UPPER(DATENAME(MONTH, DATEADD(month, cyvEncabezado.mes, -1))) AS glosa_linea, 
                            4 AS orden,
							cyvEncabezado.aprobacion
                     FROM cyvDetalle
                          INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
                                                      AND cyvDetalle.mes = cyvEncabezado.mes
                                                      AND cyvDetalle.periodo = cyvEncabezado.periodo
                                                      AND cyvDetalle.correlativo = cyvEncabezado.correlativo
                                                      AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
                          INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
                                                       AND cyvDetalle.cuenta = conPlanCuentas.cuenta
                          INNER JOIN venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii
                          INNER JOIN venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii
                     WHERE(cyvDetalle.tipo_ingreso = 1)
                          AND (cyvdetalle.concepto = 8)
                          AND (cyvdetalle.monto > 0)
                          AND (cyvEncabezado.num_compro = 0)
                          AND (cyvEncabezado.tipo_documento IN(60, 61, 112))
                          AND (cyvEncabezado.periodo = @periodo)
                          AND (cyvEncabezado.mes = @mes)
                          AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
                          AND (cyvEncabezado.num_doc_ref > 0)
                          AND (@completa = 1)
						  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
					) AS t
					GROUP BY 
						tipo_ingreso,
						mes,
						periodo,
						correlativo,
						tipo_documento,
						cuenta,
						descripcion,
						ctacte,
						uni_negocio,
						moneda						
                     ORDER BY correlativo, 
                              orden, 
                              haber
             END;
                 ELSE
                 BEGIN		 -- IVA RESUMIDO
                     --	0 AL DEBE
                     --  MONTO POR MENOS 1 AL HABER
                     --	DOCUMENTOS DE COMPRA CON MONTOS NEGATIVOS EXCEPTO NOTAS DE CREDITO - IVA RESUMIDO
                     SELECT 
						tipo_ingreso,
						mes,
						periodo,
						correlativo,
						MIN(linea) AS linea,              -- o MAX(linea)
						MIN(concepto) AS concepto,        -- o MAX(concepto)
						tipo_documento,
						cuenta,
						descripcion,
						SUM(debe) AS debe,
						SUM(haber) AS haber,
						MIN(numlin) AS numlin,
						ctacte,
						MIN(item) AS item,
						MIN(tipo_docto) AS tipo_docto,
						MIN(num_docto) AS num_docto,
						MIN(vencimiento) AS vencimiento,
						MIN(analisis) AS analisis,
						uni_negocio,
						moneda,
						MIN(tasa_cambio) AS tasa_cambio,
						MIN(glosa_linea) AS glosa_linea,
						MIN(orden) AS orden,
						MIN(aprobacion) AS aprobacion
					FROM (
						SELECT cyvEncabezado.tipo_ingreso, 
												cyvEncabezado.mes, 
												cyvEncabezado.periodo, 
												cyvEncabezado.correlativo, 
												cyvDetalle.linea, 
												cyvDetalle.concepto, 
												cyvEncabezado.tipo_documento, 
												conPlanCuentas.cuenta, 
												conPlanCuentas.descripcion, 
												0 AS debe, 
												cyvDetalle.monto * -1 AS haber, 
												0 AS numlin, 
												cyvDetalle.ctacte, 
												cyvDetalle.item, 
												cyvDetalle.tipo_docto, 
												cyvDetalle.num_docto, 
												cyvDetalle.vencimiento, 
												cyvDetalle.analisis, 
												cyvDetalle.uni_negocio, 
												cyvDetalle.moneda, 
												CASE cyvDetalle.tasa_cambio 
												WHEN 0 THEN 1 
												END AS tasa_cambio,
												cyvDetalle.glosa_linea, 
												1 AS orden,
												cyvEncabezado.aprobacion

										 FROM cyvDetalle
											  INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
																		  AND cyvDetalle.mes = cyvEncabezado.mes
																		  AND cyvDetalle.periodo = cyvEncabezado.periodo
																		  AND cyvDetalle.correlativo = cyvEncabezado.correlativo
																		  AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
											  INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
																		   AND cyvDetalle.cuenta = conPlanCuentas.cuenta
										 WHERE(cyvDetalle.tipo_ingreso = 1)
											  AND (cyvEncabezado.num_compro = 0)
											  AND (cyvdetalle.monto < 0)
											  AND (cyvEncabezado.tipo_documento NOT IN(60, 61, 112))
											  AND (cyvEncabezado.periodo = @periodo)
											  AND (cyvEncabezado.mes = @mes)
											  AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
											  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
										 UNION ALL

										 --	AL DEBE TODO EXCEPTO EL TOTAL
										 --	AL HABER EL TOTAL
										 --	DOCUMENTOS DE COMPRA EXCEPTO NOTAS DE CREDITO - IVA RESUMIDO
										 SELECT cyvEncabezado.tipo_ingreso, 
												cyvEncabezado.mes, 
												cyvEncabezado.periodo, 
												cyvEncabezado.correlativo, 
												cyvDetalle.linea, 
												cyvDetalle.concepto, 
												cyvEncabezado.tipo_documento, 
												conPlanCuentas.cuenta, 
												conPlanCuentas.descripcion,
												CASE
													WHEN cyvdetalle.concepto IN(1, 2, 3, 4, 5, 7)
													THEN monto
													ELSE 0
												END AS debe,
												CASE
													WHEN cyvdetalle.concepto IN(6, 8)
													THEN monto
													ELSE 0
												END AS haber, 
												0 AS numlin, 
												cyvDetalle.ctacte, 
												cyvDetalle.item, 
												cyvDetalle.tipo_docto, 
												cyvDetalle.num_docto, 
												cyvDetalle.vencimiento, 
												cyvDetalle.analisis, 
												cyvDetalle.uni_negocio, 
												cyvDetalle.moneda, 
												CASE cyvDetalle.tasa_cambio 
												WHEN 0 THEN 1 
												END AS tasa_cambio,
												cyvDetalle.glosa_linea, 
												2 AS orden,
												cyvEncabezado.aprobacion


										 FROM cyvDetalle
											  INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
																		  AND cyvDetalle.mes = cyvEncabezado.mes
																		  AND cyvDetalle.periodo = cyvEncabezado.periodo
																		  AND cyvDetalle.correlativo = cyvEncabezado.correlativo
																		  AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
											  INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
																		   AND cyvDetalle.cuenta = conPlanCuentas.cuenta
										 WHERE(cyvDetalle.tipo_ingreso = 1)
											  AND (cyvEncabezado.num_compro = 0)
											  AND (cyvdetalle.monto > 0)
											  AND (cyvEncabezado.tipo_documento NOT IN(60, 61, 112))
											  AND (cyvEncabezado.periodo = @periodo)
											  AND (cyvEncabezado.mes = @mes)
											  AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
											  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
										 UNION ALL

										 --	AL DEBE EL TOTAL
										 --	AL HABER TODO EXCEPTO EL TOTAL
										 --	DOCUMENTOS DE COMPRA NOTAS DE CREDITO - IVA RESUMIDO
										 SELECT cyvEncabezado.tipo_ingreso, 
												cyvEncabezado.mes, 
												cyvEncabezado.periodo, 
												cyvEncabezado.correlativo, 
												cyvDetalle.linea, 
												cyvDetalle.concepto, 
												cyvEncabezado.tipo_documento, 
												conPlanCuentas.cuenta, 
												conPlanCuentas.descripcion,
												CASE
													WHEN cyvdetalle.concepto IN(6, 8)
													THEN monto
													ELSE 0
												END AS debe,
												CASE
													WHEN cyvdetalle.concepto IN(1, 2, 3, 4, 5, 7)
													THEN monto
													ELSE 0
												END AS haber, 
												0 AS numlin, 
												cyvDetalle.ctacte, 
												cyvDetalle.item, 
												cyvDetalle.tipo_documento, 
												cyvEncabezado.num_documento, 
												cyvDetalle.vencimiento, 
												cyvDetalle.analisis, 
												cyvDetalle.uni_negocio, 
												cyvDetalle.moneda, 
												CASE cyvDetalle.tasa_cambio 
												WHEN 0 THEN 1 
												END AS tasa_cambio,
												cyvDetalle.glosa_linea, 
												3 AS orden,
												cyvEncabezado.aprobacion
										 FROM cyvDetalle
											  INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
																		  AND cyvDetalle.mes = cyvEncabezado.mes
																		  AND cyvDetalle.periodo = cyvEncabezado.periodo
																		  AND cyvDetalle.correlativo = cyvEncabezado.correlativo
																		  AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
											  INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
																		   AND cyvDetalle.cuenta = conPlanCuentas.cuenta
										 WHERE(cyvDetalle.tipo_ingreso = 1)
											  AND (cyvdetalle.monto > 0)
											  AND (cyvEncabezado.num_compro = 0)
											  AND (cyvEncabezado.tipo_documento IN(60, 61, 112))
											  AND (cyvEncabezado.periodo = @periodo)
											  AND (cyvEncabezado.mes = @mes)
											  AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
											  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
										 UNION ALL

										 --	AL DEBE EL TOTAL
										 --	AL HABER TODO EXCEPTO EL TOTAL
										 --	DOCUMENTOS DE COMPRA NOTAS DE CREDITO - IVA RESUMIDO
										 -- ADICIONALES
										 SELECT cyvEncabezado.tipo_ingreso, 
												cyvEncabezado.mes, 
												cyvEncabezado.periodo, 
												cyvEncabezado.correlativo, 
												cyvDetalle.linea, 
												cyvDetalle.concepto, 
												cyvEncabezado.tipo_documento, 
												conPlanCuentas.cuenta, 
												conPlanCuentas.descripcion, 
												0 AS debe, 
												cyvDetalle.monto AS haber, 
												0 AS numlin, 
												cyvDetalle.ctacte, 
												cyvDetalle.item, 
												cyvDetalle.tipo_documento, 
												cyvEncabezado.num_documento, 
												cyvDetalle.vencimiento, 
												cyvDetalle.analisis, 
												cyvDetalle.uni_negocio, 
												cyvDetalle.moneda, 
												CASE cyvDetalle.tasa_cambio 
												WHEN 0 THEN 1 
												END AS tasa_cambio,
												cyvDetalle.glosa_linea,
												--CAST(venDocumentos.alias_doc AS VARCHAR) + ' N°' + CAST(cyvEncabezado.num_doc_ref AS VARCHAR) + '  ' + CAST(cyvEncabezado.correlativo AS VARCHAR) + '-' + UPPER(DATENAME(MONTH, DATEADD(month, cyvEncabezado.mes, -1))) AS glosa_linea, 
												5 AS orden,
												cyvEncabezado.aprobacion
										 FROM cyvDetalle
											  INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
																		  AND cyvDetalle.mes = cyvEncabezado.mes
																		  AND cyvDetalle.periodo = cyvEncabezado.periodo
																		  AND cyvDetalle.correlativo = cyvEncabezado.correlativo
																		  AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
											  INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
																		   AND cyvDetalle.cuenta = conPlanCuentas.cuenta
											  INNER JOIN venDocumentosSii ON cyvEncabezado.doc_ref = venDocumentosSii.codsii
											  INNER JOIN venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii
										 WHERE(cyvDetalle.tipo_ingreso = 1)
											  AND (cyvdetalle.concepto = 8)
											  AND (cyvdetalle.monto > 0)
											  AND (cyvEncabezado.num_compro = 0)
											  AND (cyvEncabezado.tipo_documento IN(60, 61, 112))
											  AND (cyvEncabezado.periodo = @periodo)
											  AND (cyvEncabezado.mes = @mes)
											  AND (cyvEncabezado.num_doc_ref > 0)
											  AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
											  AND (@completa = 1)
											  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
										 UNION ALL

										 --	AL DEBE EL TOTAL
										 --	AL HABER TODO EXCEPTO EL TOTAL
										 --	DOCUMENTOS DE COMPRA NOTAS DE CREDITO - IVA RESUMIDO
										 SELECT cyvEncabezado.tipo_ingreso, 
												cyvEncabezado.mes, 
												cyvEncabezado.periodo, 
												cyvEncabezado.correlativo, 
												cyvDetalle.linea, 
												cyvDetalle.concepto, 
												cyvEncabezado.tipo_documento, 
												conPlanCuentas.cuenta, 
												conPlanCuentas.descripcion, 
												cyvDetalle.monto AS debe, 
												0 AS haber, 
												0 AS numlin, 
												cyvDetalle.ctacte, 
												cyvDetalle.item, 
												cyvEncabezado.doc_ref, 
												cyvEncabezado.num_doc_ref, 
												cyvDetalle.vencimiento, 
												cyvDetalle.analisis, 
												cyvDetalle.uni_negocio, 
												cyvDetalle.moneda, 
												CASE cyvDetalle.tasa_cambio 
												WHEN 0 THEN 1 
												END AS tasa_cambio,
												cyvDetalle.glosa_linea,
												--CAST(venDocumentos.alias_doc AS VARCHAR) + ' N°' + CAST(cyvEncabezado.num_doc_ref AS VARCHAR) + '  ' + CAST(cyvEncabezado.correlativo AS VARCHAR) + '-' + UPPER(DATENAME(MONTH, DATEADD(month, cyvEncabezado.mes, -1))) AS glosa_linea, 
												4 AS orden,
												cyvEncabezado.aprobacion
							
										 FROM cyvDetalle
											  INNER JOIN cyvEncabezado ON cyvDetalle.tipo_ingreso = cyvEncabezado.tipo_ingreso
																		  AND cyvDetalle.mes = cyvEncabezado.mes
																		  AND cyvDetalle.periodo = cyvEncabezado.periodo
																		  AND cyvDetalle.correlativo = cyvEncabezado.correlativo
																		  AND cyvDetalle.tipo_documento = cyvEncabezado.tipo_documento
											  INNER JOIN conPlanCuentas ON cyvDetalle.periodo = conPlanCuentas.periodo
																		   AND cyvDetalle.cuenta = conPlanCuentas.cuenta
											  INNER JOIN venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii
											  INNER JOIN venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii
										 WHERE(cyvDetalle.tipo_ingreso = 1)
											  AND (cyvdetalle.concepto = 8)
											  AND (cyvdetalle.monto > 0)
											  AND (cyvEncabezado.num_compro = 0)
											  AND (cyvEncabezado.tipo_documento IN(60, 61, 112))
											  AND (cyvEncabezado.periodo = @periodo)
											  AND (cyvEncabezado.mes = @mes)
											  AND (cyvEncabezado.correlativo BETWEEN @correlativoini AND @correlativofin)
											  AND (cyvEncabezado.num_doc_ref > 0)
											  AND (@completa = 1)
											  and (cyvEncabezado.unidad_negocio = @unidadnegocio or @unidadnegocio = -1)
					) AS t
					GROUP BY 
						tipo_ingreso,
						mes,
						periodo,
						correlativo,
						tipo_documento,
						cuenta,
						descripcion,
						ctacte,
						uni_negocio,
						moneda
	
					ORDER BY correlativo, 
							orden, 
							haber;

             END;
     END;