ALTER PROCEDURE [dbo].[sp_conListadoCompraVentas]
(
     @tipo int = 0,
     @periodo int = 0,
     @mes int = 0,
     @fecini        date,
     @fecfin        date,
     @estado int = 0,
     @contabilizado int =0,
     @porfecdoc int =0,
     @unineg int=0,
     @usuario varchar(20) ='0'
     ,@rut int=0,
      @documento INT=0
     ,@pendientes int=0
     ,@aprobacion int = 0
     ,@estadoAprobacion int = 0
     ,@diferencia INT = 0
)
AS
BEGIN
IF @aprobacion = 0
BEGIN

--TODOS

    IF @pendientes =1
        BEGIN
            IF @diferencia = 1
                BEGIN
                    SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum,mes,
                            CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                            WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                            END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                            CASE
                            WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                            WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                            END As numero,
                            cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                            cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                            cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                            cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                            cyvEncabezado.tc,
                            CASE
                                WHEN cyvEncabezado.tc = 1 THEN 'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                WHEN cyvEncabezado.tc = 2 THEN 'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                WHEN cyvEncabezado.tc = 3 THEN 'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                            END as num_compro,
                            conTipoComprobante.descripcion AS comprobante,
                            venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                            ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,1 as pendiente,importsii,CASE WHEN importsii=1 THEN 'SII' WHEN importsii =2 THEN 'PRIXUS DTE' WHEN importacion=1 THEN 'ACEPTA'  ELSE '' END as origen
                            ,cyvEncabezado.fecing, cyvEncabezado.url,
                            (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) as diferencia
                            ,CASE WHEN @tipo = 1 THEN
                                CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                             ELSE NULL END AS estadoPago
                    FROM       cyvEncabezadotemp as  cyvEncabezado INNER JOIN
                                          conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                          venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                          venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                          conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
                    WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
                    (cyvEncabezado.rut=@rut or @rut=0) AND
                    (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
                    ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
                    AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
                    AND (cyvEncabezado.loging=@usuario OR @usuario='0')
                    AND (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) <> 0
                    ORDER BY periodo, cyvEncabezado.mes, correlativo,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) DESC
                    return
                END
            ELSE
                BEGIN
                    SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum,mes,
                            CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                            WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                            END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                            CASE
                            WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                            WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                            END As numero,
                            cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                            cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                            cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                            cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                            cyvEncabezado.tc,
                            CASE
                                WHEN cyvEncabezado.tc = 1 THEN 'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                WHEN cyvEncabezado.tc = 2 THEN 'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                WHEN cyvEncabezado.tc = 3 THEN 'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                            END as num_compro,
                            conTipoComprobante.descripcion AS comprobante,
                            venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                            ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,1 as pendiente,importsii,CASE WHEN importsii=1 THEN 'SII' WHEN importsii =2 THEN 'PRIXUS DTE' WHEN importacion=1 THEN 'ACEPTA'  ELSE '' END as origen
                            ,cyvEncabezado.fecing, cyvEncabezado.url, 0 as diferencia
                            ,CASE WHEN @tipo = 1 THEN
                                CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                             ELSE NULL END AS estadoPago
                    FROM       cyvEncabezadotemp as  cyvEncabezado INNER JOIN
                                          conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                          venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                          venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                          conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
                    WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
                    (cyvEncabezado.rut=@rut or @rut=0) AND
                    (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
                    ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
                    AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
                    AND (cyvEncabezado.loging=@usuario OR @usuario='0')
                    ORDER BY periodo, cyvEncabezado.mes, correlativo,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) DESC
                    return
                END
        END


    IF @contabilizado =0
        BEGIN
            IF @diferencia = 1
                BEGIN
                    SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum,mes,
                                  CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                                   WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                                   END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                            CASE
                            WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                            WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                            END As numero,
                                  cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                                  cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                                  cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                                    cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                                   cyvEncabezado.tc,
                                   CASE
                                       WHEN cyvEncabezado.tc = 1 THEN 'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                       WHEN cyvEncabezado.tc = 2 THEN 'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                       WHEN cyvEncabezado.tc = 3 THEN 'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                   END as num_compro,
                                   conTipoComprobante.descripcion AS comprobante,
                                   venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                                ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,0 as pendiente
                                ,cyvEncabezado.fecing, cyvEncabezado.url,
                                (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) as diferencia
                                ,CASE WHEN @tipo = 1 THEN
                                    CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                                 ELSE NULL END AS estadoPago
                    FROM         cyvEncabezado INNER JOIN
                                          conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                          venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                          venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                          conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
                    WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
                    (cyvEncabezado.rut=@rut or @rut=0) AND
                    (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
                    ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
                    AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
                    AND (cyvEncabezado.loging=@usuario OR @usuario='0')
                    AND (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) <> 0
                END
            ELSE
                BEGIN
                    SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum,mes,
                                  CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                                   WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                                   END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                            CASE
                            WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                            WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                            END As numero,
                                  cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                                  cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                                  cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                                    cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                                   cyvEncabezado.tc,
                                   CASE
                                       WHEN cyvEncabezado.tc = 1 THEN 'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                       WHEN cyvEncabezado.tc = 2 THEN 'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                       WHEN cyvEncabezado.tc = 3 THEN 'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                   END as num_compro,
                                   conTipoComprobante.descripcion AS comprobante,
                                   venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                                ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,0 as pendiente
                                ,cyvEncabezado.fecing, cyvEncabezado.url,0 as diferencia
                                ,CASE WHEN @tipo = 1 THEN
                                    CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                                 ELSE NULL END AS estadoPago
                    FROM         cyvEncabezado INNER JOIN
                                            conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                            venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                            venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                            conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
                    WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
                    (cyvEncabezado.rut=@rut or @rut=0) AND
                    (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
                    ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
                    AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
                    AND (cyvEncabezado.loging=@usuario OR @usuario='0')
                END
        END


    IF @contabilizado =1
        BEGIN
            IF @diferencia = 1
                BEGIN
                    SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum, mes,
                                  CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                                   WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                                   END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                            CASE
                            WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                            WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                            END As numero,
                                  cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                                  cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                                  cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                                    cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                                   cyvEncabezado.tc,
                                   CASE
                                       WHEN cyvEncabezado.tc = 1 THEN 'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                       WHEN cyvEncabezado.tc = 2 THEN 'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                       WHEN cyvEncabezado.tc = 3 THEN 'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                   END as num_compro,
                                   conTipoComprobante.descripcion AS comprobante,
                                   venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                                ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,0 as pendiente
                                ,cyvEncabezado.fecing, cyvEncabezado.url,
                                (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) as diferencia
                                ,CASE WHEN @tipo = 1 THEN
                                    CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                                 ELSE NULL END AS estadoPago
                    FROM         cyvEncabezado INNER JOIN
                                          conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                          venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                          venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                          conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
                    WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
                    (cyvEncabezado.rut=@rut or @rut=0) AND
                    (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
                    ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
                    AND cyvEncabezado.tc > 0
                    AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
                    AND (cyvEncabezado.loging=@usuario OR @usuario='0')
                    AND (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) <> 0
                    ORDER BY periodo, cyvEncabezado.mes, correlativo,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) DESC
                    RETURN 1
                END
            ELSE
                BEGIN
                    SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum, mes,
                                  CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                                   WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                                   END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                            CASE
                            WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                            WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                            END As numero,
                                  cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                                  cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                                  cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                                    cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                                   cyvEncabezado.tc,
                                   CASE
                                       WHEN cyvEncabezado.tc = 1 THEN 'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                       WHEN cyvEncabezado.tc = 2 THEN 'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                       WHEN cyvEncabezado.tc = 3 THEN 'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                   END as num_compro,
                                   conTipoComprobante.descripcion AS comprobante,
                                   venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                                ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,0 as pendiente
                                ,cyvEncabezado.fecing, cyvEncabezado.url,0 as diferencia
                                ,CASE WHEN @tipo = 1 THEN
                                    CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                                 ELSE NULL END AS estadoPago
                    FROM         cyvEncabezado INNER JOIN
                                          conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                          venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                          venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                          conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
                    WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
                    (cyvEncabezado.rut=@rut or @rut=0) AND
                    (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
                    ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
                    AND cyvEncabezado.tc > 0
                    AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
                    AND (cyvEncabezado.loging=@usuario OR @usuario='0')
                    ORDER BY periodo, cyvEncabezado.mes, correlativo,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) DESC
                    RETURN 1
                END
    END


    IF @contabilizado =2
        BEGIN
            IF @diferencia = 1
                BEGIN
                    SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum, mes,
                                  CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                                   WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                                   END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                            CASE
                            WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                            WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                            END As numero,
                                  cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                                  cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                                  cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                                    cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                                   cyvEncabezado.tc,
                                   CASE
                                       WHEN cyvEncabezado.tc = 1 THEN 'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                       WHEN cyvEncabezado.tc = 2 THEN 'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                       WHEN cyvEncabezado.tc = 3 THEN 'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                   END as num_compro,
                                   conTipoComprobante.descripcion AS comprobante,
                                   venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                                ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,0 as pendiente
                                ,cyvEncabezado.fecing, cyvEncabezado.url,
                                (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) as diferencia
                                ,CASE WHEN @tipo = 1 THEN
                                    CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                                 ELSE NULL END AS estadoPago
                    FROM         cyvEncabezado INNER JOIN
                                          conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                          venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                          venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                          conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
                    WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
                    (cyvEncabezado.rut=@rut or @rut=0) AND
                    (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
                    ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
                    AND cyvEncabezado.tc =0
                    AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
                    AND (cyvEncabezado.loging=@usuario OR @usuario='0')
                    AND (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) <> 0
                    ORDER BY periodo, cyvEncabezado.mes, correlativo,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) DESC
                    RETURN 1
                END
            ELSE
                BEGIN
                    SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum, mes,
                                  CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                                   WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                                   END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                            CASE
                            WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                            WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                            END As numero,
                                  cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                                  cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                                  cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                                    cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                                   cyvEncabezado.tc,
                                   CASE
                                       WHEN cyvEncabezado.tc = 1 THEN 'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                       WHEN cyvEncabezado.tc = 2 THEN 'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                       WHEN cyvEncabezado.tc = 3 THEN 'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                   END as num_compro,
                                   conTipoComprobante.descripcion AS comprobante,
                                   venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                                ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,0 as pendiente
                                ,cyvEncabezado.fecing, cyvEncabezado.url,0 as diferencia
                                ,CASE WHEN @tipo = 1 THEN
                                    CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                                 ELSE NULL END AS estadoPago
                    FROM         cyvEncabezado INNER JOIN
                                          conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                          venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                          venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                          conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
                    WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
                    (cyvEncabezado.rut=@rut or @rut=0) AND
                    (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
                    ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
                    AND cyvEncabezado.tc =0
                    AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
                    AND (cyvEncabezado.loging=@usuario OR @usuario='0')
                    ORDER BY periodo, cyvEncabezado.mes, correlativo,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) DESC
                    RETURN 1
                END
    END

END

----############ CASO APROBACION ###########

IF @aprobacion = 1
BEGIN

--TODOS

    IF @pendientes =1
        BEGIN
            IF @diferencia = 1
                BEGIN
                    SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum,mes,
                               CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                               WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                               END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                            CASE
                            WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                            WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                            END As numero,
                                  cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                                  cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                                  cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                                    cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                                   cyvEncabezado.tc,
                                   CASE
                                        WHEN  cyvEncabezado.tc = 1 THEN  'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                        WHEN  cyvEncabezado.tc = 2 THEN  'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                        WHEN  cyvEncabezado.tc = 3 THEN  'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                   END as num_compro,
                                   conTipoComprobante.descripcion AS comprobante,
                                   venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                                ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,1 as pendiente,importsii,CASE WHEN importsii=1 THEN 'SII' WHEN importsii =2 THEN 'PRIXUS DTE' WHEN importacion=1 THEN 'ACEPTA'  ELSE '' END as origen
                                ,cyvEncabezado.fecing, cyvEncabezado.url,
                                (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) as diferencia
                                ,CASE WHEN @tipo = 1 THEN
                                    CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                                 ELSE NULL END AS estadoPago
                    FROM       cyvEncabezadotemp as  cyvEncabezado INNER JOIN
                                          conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                          venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                          venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                          conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
                    WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
                    (cyvEncabezado.rut=@rut or @rut=0) AND
                    (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
                    ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
                    AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
                    AND (cyvEncabezado.loging=@usuario OR @usuario='0')
                    AND (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) <> 0
                    ORDER BY periodo, cyvEncabezado.mes, correlativo,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) DESC
                    return
                END
            ELSE
                BEGIN
                    SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum,mes,
                               CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                               WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                               END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                            CASE
                            WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                            WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                            END As numero,
                                  cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                                  cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                                  cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                                    cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                                   cyvEncabezado.tc,
                                   CASE
                                        WHEN  cyvEncabezado.tc = 1 THEN  'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                        WHEN  cyvEncabezado.tc = 2 THEN  'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                        WHEN  cyvEncabezado.tc = 3 THEN  'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                   END as num_compro,
                                   conTipoComprobante.descripcion AS comprobante,
                                   venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                                ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,1 as pendiente,importsii,CASE WHEN importsii=1 THEN 'SII' WHEN importsii =2 THEN 'PRIXUS DTE' WHEN importacion=1 THEN 'ACEPTA'  ELSE '' END as origen
                                ,cyvEncabezado.fecing, cyvEncabezado.url,0 as diferencia
                                ,CASE WHEN @tipo = 1 THEN
                                    CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                                 ELSE NULL END AS estadoPago
                    FROM       cyvEncabezadotemp as  cyvEncabezado INNER JOIN
                                          conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                          venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                          venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                          conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
                    WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
                    (cyvEncabezado.rut=@rut or @rut=0) AND
                    (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
                    ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
                    AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
                    AND (cyvEncabezado.loging=@usuario OR @usuario='0')
                    ORDER BY periodo, cyvEncabezado.mes, correlativo,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) DESC
                    return
                END
    END


    IF @contabilizado =0
        BEGIN
            IF @diferencia = 1
                SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum,mes,
                                      CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                                       WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                                       END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                                CASE
                                WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                                WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                                END As numero,
                                      cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                                      cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                                      cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                                        cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                                       cyvEncabezado.tc,
                                       CASE
                                           WHEN cyvEncabezado.tc = 1 THEN 'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                           WHEN cyvEncabezado.tc = 2 THEN 'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                           WHEN cyvEncabezado.tc = 3 THEN 'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                       END as num_compro,
                                       conTipoComprobante.descripcion AS comprobante,
                                       venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                                    ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,0 as pendiente
                                    ,cyvEncabezado.fecing, cyvEncabezado.url,
                                    (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) as diferencia
                                    ,CASE cyvEncabezado.aprobacion WHEN 1 THEN 'APROBADO' WHEN 0 THEN 'NO APROBADO' END AS estadoapro
                                    ,CASE WHEN @tipo = 1 THEN
                                        CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                                     ELSE NULL END AS estadoPago
                FROM         cyvEncabezado INNER JOIN
                                        conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                        venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                        venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                        conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
                WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
                (cyvEncabezado.rut=@rut or @rut=0) AND
                (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
                ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
                AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
                AND (cyvEncabezado.loging=@usuario OR @usuario='0')
                AND ( cyvEncabezado.aprobacion = @estadoAprobacion or @estadoAprobacion = -1 )
                AND (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) <> 0
        END
    ELSE
        BEGIN
            SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum,mes,
                                  CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                                   WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                                   END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                            CASE
                            WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                            WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                            END As numero,
                                  cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                                  cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                                  cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                                    cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                                   cyvEncabezado.tc,
                                   CASE
                                       WHEN cyvEncabezado.tc = 1 THEN 'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                       WHEN cyvEncabezado.tc = 2 THEN 'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                       WHEN cyvEncabezado.tc = 3 THEN 'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                   END as num_compro,
                                   conTipoComprobante.descripcion AS comprobante,
                                   venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                                ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,0 as pendiente
                                ,cyvEncabezado.fecing, cyvEncabezado.url,0 as diferencia
                                ,CASE cyvEncabezado.aprobacion WHEN 1 THEN 'APROBADO' WHEN 0 THEN 'NO APROBADO' END AS estadoapro
                                ,CASE WHEN @tipo = 1 THEN
                                    CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                                 ELSE NULL END AS estadoPago
            FROM         cyvEncabezado INNER JOIN
                                    conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                    venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                    venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                    conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
            WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
            (cyvEncabezado.rut=@rut or @rut=0) AND
            (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
            ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
            AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
            AND (cyvEncabezado.loging=@usuario OR @usuario='0')
            AND ( cyvEncabezado.aprobacion = @estadoAprobacion or @estadoAprobacion = -1 )
        END
    END


    IF @contabilizado =1
        BEGIN
            IF @diferencia = 1
                BEGIN
                    SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum, mes,
                                          CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                                           WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                                           END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                                    CASE
                                    WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                                    WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                                    END As numero,
                                          cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                                          cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                                          cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                                            cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                                           cyvEncabezado.tc,
                                           CASE
                                               WHEN cyvEncabezado.tc = 1 THEN 'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                               WHEN cyvEncabezado.tc = 2 THEN 'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                               WHEN cyvEncabezado.tc = 3 THEN 'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                           END as num_compro,
                                           conTipoComprobante.descripcion AS comprobante,
                                           venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                                        ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,0 as pendiente
                                        ,cyvEncabezado.fecing
                                         ,CASE cyvEncabezado.aprobacion WHEN 1 THEN 'APROBADO' WHEN 0 THEN 'NO APROBADO' END AS estadoapro, cyvEncabezado.url,
                                         (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) as diferencia
                                        ,CASE WHEN @tipo = 1 THEN
                                            CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                                         ELSE NULL END AS estadoPago
                    FROM         cyvEncabezado INNER JOIN
                                          conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                          venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                          venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                          conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
                    WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
                    (cyvEncabezado.rut=@rut or @rut=0) AND
                    (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
                    ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
                    AND cyvEncabezado.tc > 0
                    AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
                    AND (cyvEncabezado.loging=@usuario OR @usuario='0')
                    AND (@estadoAprobacion = -1 or cyvEncabezado.aprobacion = @estadoAprobacion)
                    AND (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) <> 0
                    ORDER BY periodo, cyvEncabezado.mes, correlativo,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) DESC
                    RETURN 1
                END
            ELSE
                BEGIN
                    SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum, mes,
                                          CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                                           WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                                           END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                                    CASE
                                    WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                                    WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                                    END As numero,
                                          cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                                          cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                                          cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                                            cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                                           cyvEncabezado.tc,
                                           CASE
                                               WHEN cyvEncabezado.tc = 1 THEN 'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                               WHEN cyvEncabezado.tc = 2 THEN 'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                               WHEN cyvEncabezado.tc = 3 THEN 'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                           END as num_compro,
                                           conTipoComprobante.descripcion AS comprobante,
                                           venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                                        ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,0 as pendiente
                                        ,cyvEncabezado.fecing
                                         ,CASE cyvEncabezado.aprobacion WHEN 1 THEN 'APROBADO' WHEN 0 THEN 'NO APROBADO' END AS estadoapro, cyvEncabezado.url,0 as diferencia
                                        ,CASE WHEN @tipo = 1 THEN
                                            CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                                         ELSE NULL END AS estadoPago
                    FROM         cyvEncabezado INNER JOIN
                                          conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                          venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                          venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                          conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
                    WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
                    (cyvEncabezado.rut=@rut or @rut=0) AND
                    (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
                    ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
                    AND cyvEncabezado.tc > 0
                    AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
                    AND (cyvEncabezado.loging=@usuario OR @usuario='0')
                    AND (@estadoAprobacion = -1 or cyvEncabezado.aprobacion = @estadoAprobacion)
                    ORDER BY periodo, cyvEncabezado.mes, correlativo,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) DESC
                    RETURN 1
                END
    END


    IF @contabilizado =2
        BEGIN
            IF @diferencia = 1
                BEGIN
                    SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum,mes,
                                          CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                                           WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                                           END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                                    CASE
                                    WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                                    WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                                    END As numero,
                                          cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                                          cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                                          cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                                            cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                                           cyvEncabezado.tc,
                                           CASE
                                               WHEN cyvEncabezado.tc = 1 THEN 'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                               WHEN cyvEncabezado.tc = 2 THEN 'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                               WHEN cyvEncabezado.tc = 3 THEN 'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                           END as num_compro,
                                           conTipoComprobante.descripcion AS comprobante,
                                           venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                                        ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,0 as pendiente
                                        ,cyvEncabezado.fecing
                                         ,CASE cyvEncabezado.aprobacion WHEN 1 THEN 'APROBADO' WHEN 0 THEN 'NO APROBADO' END AS estadoapro, cyvEncabezado.url,
                                         (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) as diferencia
                                        ,CASE WHEN @tipo = 1 THEN
                                            CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                                         ELSE NULL END AS estadoPago
                    FROM         cyvEncabezado INNER JOIN
                                          conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                          venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                          venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                          conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
                    WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
                    (cyvEncabezado.rut=@rut or @rut=0) AND
                    (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
                    ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
                    AND cyvEncabezado.tc =0
                    AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
                    AND (cyvEncabezado.loging=@usuario OR @usuario='0')
                    AND (@estadoAprobacion = -1 or cyvEncabezado.aprobacion = @estadoAprobacion)
                    AND (((cyvEncabezado.monto_afecto + cyvEncabezado.monto_exento + cyvEncabezado.monto_iva + cyvEncabezado.monto_adicional + cyvEncabezado.imp_especifico + cyvEncabezado.iva_ret + cyvEncabezado.iva_rec) - cyvEncabezado.monto_total) * -1) <> 0
                    ORDER BY periodo, cyvEncabezado.mes, correlativo,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) DESC
                    RETURN 1
                END
            ELSE
                BEGIN
                    SELECT     cyvEncabezado.tipo_ingreso, cyvEncabezado.mes AS mesnum,mes,
                                          CASE cyvEncabezado.mes WHEN 1 THEN 'ENERO' WHEN 2 THEN 'FEBRERO' WHEN 3 THEN 'MARZO' WHEN 4 THEN 'ABRIL' WHEN 5 THEN 'MAYO' WHEN 6 THEN 'JUNIO'
                                           WHEN 7 THEN 'JULIO' WHEN 8 THEN 'AGOSTO' WHEN 9 THEN 'SEPTIEMBRE' WHEN 10 THEN 'OCTUBRE' WHEN 11 THEN 'NOVIEMBRE' WHEN 12 THEN 'DICIEMBRE'
                                           END AS mesdesc, cyvEncabezado.periodo,cyvEncabezado.num_documento,cyvEncabezado.num_documento_fin,
                                    CASE
                                    WHEN  cyvEncabezado.num_documento_fin = 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento)
                                    WHEN  cyvEncabezado.num_documento_fin > 0  THEN CONVERT(VARCHAR,cyvEncabezado.num_documento) + '-' + CONVERT(VARCHAR,cyvEncabezado.num_documento_FIN)
                                    END As numero,
                                          cyvEncabezado.correlativo, cyvEncabezado.tipo_documento, UPPER(venDocumentosSii.Desdocsii) AS Desdocsii,
                                          cyvEncabezado.num_documento, cyvEncabezado.rut, conCtacte.nomcte, cyvEncabezado.fecha_ing, cyvEncabezado.fecha_rec, cyvEncabezado.fecha_vto,
                                          cyvEncabezado.glosa, cyvEncabezado.monto_afecto, cyvEncabezado.monto_exento, cyvEncabezado.monto_iva, cyvEncabezado.monto_total,
                                            cyvEncabezado.imp_especifico, cyvEncabezado.iva_ret, cyvEncabezado.iva_rec, cyvEncabezado.monto_adicional,
                                           cyvEncabezado.tc,
                                           CASE
                                               WHEN cyvEncabezado.tc = 1 THEN 'I/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                               WHEN cyvEncabezado.tc = 2 THEN 'E/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                               WHEN cyvEncabezado.tc = 3 THEN 'T/' + CONVERT(VARCHAR, cyvEncabezado.num_compro)
                                           END as num_compro,
                                           conTipoComprobante.descripcion AS comprobante,
                                           venDocumentos.codsii,COALESCE(venDocumentos.alias_doc,'NO DEFINIDO') as alias_doc, venDocumentos.libro
                                        ,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) as ORDENNUM,0 as pendiente
                                        ,cyvEncabezado.fecing
                                         ,CASE cyvEncabezado.aprobacion WHEN 1 THEN 'APROBADO' WHEN 0 THEN 'NO APROBADO' END AS estadoapro, cyvEncabezado.url,0 as diferencia
                                        ,CASE WHEN @tipo = 1 THEN
                                            CASE WHEN COALESCE((SELECT TOP 1 saldo FROM conSaldoDocumento WHERE rut = cyvEncabezado.rut AND tipodocto = cyvEncabezado.tipo_documento AND numdocto = cyvEncabezado.num_documento), 1) <= 0 THEN 'PAGADO' ELSE 'NO PAGADO' END
                                         ELSE NULL END AS estadoPago
                    FROM         cyvEncabezado INNER JOIN
                                          conCtacte ON cyvEncabezado.rut = conCtacte.rutcte INNER JOIN
                                          venDocumentosSii ON cyvEncabezado.tipo_documento = venDocumentosSii.codsii LEFT OUTER JOIN
                                          venDocumentos ON venDocumentosSii.codsii = venDocumentos.codsii LEFT OUTER JOIN
                                          conTipoComprobante ON cyvEncabezado.tc = conTipoComprobante.codigo
                    WHERE     (cyvEncabezado.tipo_ingreso = @tipo) AND
                    (cyvEncabezado.rut=@rut or @rut=0) AND
                    (cyvEncabezado.tipo_documento=@documento or @documento=0) AND
                    ((@porfecdoc=0 AND periodo=@periodo AND mes = @mes) OR (@porfecdoc=1 AND CONVERT(DATE,fecha_ing) BETWEEN @fecini AND @fecfin))
                    AND cyvEncabezado.tc =0
                    AND     (COALESCE(cyvEncabezado.unidad_negocio,0) = @unineg OR @unineg=-1)
                    AND (cyvEncabezado.loging=@usuario OR @usuario='0')
                    AND (@estadoAprobacion = -1 or cyvEncabezado.aprobacion = @estadoAprobacion)
                    ORDER BY periodo, cyvEncabezado.mes, correlativo,(cyvEncabezado.num_documento +cyvEncabezado.num_documento_fin) DESC
                    RETURN 1
                END
    END

END
