ALTER procedure [dbo].[sp_venListadoFacturasPagadas]
(
    @rut int = 0,
    @tipodoc int = 0,
    @codpag int = 0,
    @fecini varchar(10),
    @fecfin varchar(10),
    @condicion int = 0
)
as

--TODOS LOS DOCUMENTOS (PAGADOS, NO PAGADOS)
IF @condicion = 0
BEGIN
    SELECT E.rutcte,
           CONVERT(VARCHAR, E.rutcte) + '-' + CONVERT(VARCHAR, conCtacte.digcte) AS RutCliente,
           conctacte.nomcte,
           E.coddoc,
           E.codsii,
           venDocumentos.alias_doc,
           E.numinv,
           E.fecdoc,
           E.fecven,
           E.total,
           SUM(ISNULL(P.monto, (E.total - venSaldoDocumentos.saldo))) as montoPagado,
           venSaldoDocumentos.saldo,
           CASE 
                WHEN venSaldoDocumentos.saldo = 0 THEN 'PAGADO'
                WHEN venSaldoDocumentos.saldo < 0 THEN 'PAGADO'
                ELSE 'NO PAGADO'
           END as estado,
           origen,
		   E.codcen,
		   E.grudoc,
		   CONVERT(VARCHAR, conctacte.codcte) + '-' + CONVERT(VARCHAR, conCtacte.digcte) AS RucCliente
    FROM venEncabezado E
        INNER JOIN conctacte ON E.rutcte = conctacte.rutcte
        INNER JOIN VenDocumentos ON E.codsii = venDocumentos.codsii
        INNER JOIN venSaldoDocumentos ON E.numinv = venSaldoDocumentos.numinv
                                      AND E.codsii = venSaldoDocumentos.codsii
        LEFT OUTER JOIN cobpagodocumentos P on E.numinv = P.ndocumento AND E.codsii = P.tipo
        LEFT JOIN VenCondicionPago CP ON P.fpago = CP.codpag
        LEFT JOIN finCartola C ON P.idcartola = C.id
        LEFT OUTER JOIN cobMisBancos B on B.id_MisBancos = C.id_misbancos
    WHERE (@rut = 0 OR E.rutcte = @rut)
        AND (@tipoDoc = 0 OR E.codsii = @tipoDoc)
        AND (@codpag = 0 OR E.codpag = @codpag)
        AND E.fecven BETWEEN @fecini and @fecfin
		AND (E.grudoc <> 50)
		AND (E.codsii NOT IN (56, 61))
    GROUP BY E.rutcte, conCtacte.digcte, conctacte.codcte, conctacte.nomcte, E.coddoc, E.codsii, 
             venDocumentos.alias_doc, E.numinv, E.fecdoc, E.fecven, E.total, 
             venSaldoDocumentos.saldo, origen, E.codcen, E.grudoc
END

--DOCUMENTOS PAGADOS
IF @condicion = 1
BEGIN
    SELECT E.rutcte,
           CONVERT(VARCHAR, E.rutcte) + '-' + CONVERT(VARCHAR, conCtacte.digcte) AS RutCliente,
           conctacte.nomcte,
           E.coddoc,
           E.codsii,
           venDocumentos.alias_doc,
           E.numinv,
           E.fecdoc,
           E.fecven,
           E.total,
           SUM(ISNULL(P.monto, (E.total - venSaldoDocumentos.saldo))) as montoPagado,
           venSaldoDocumentos.saldo,           
           'PAGADO' as estado,          
           origen,
		   E.codcen,
		   E.grudoc,
		   CONVERT(VARCHAR, conctacte.codcte) + '-' + CONVERT(VARCHAR, conCtacte.digcte) AS RucCliente
    FROM venEncabezado E
    INNER JOIN conctacte ON E.rutcte = conctacte.rutcte
    INNER JOIN VenDocumentos ON E.codsii = venDocumentos.codsii
    INNER JOIN venSaldoDocumentos ON E.numinv = venSaldoDocumentos.numinv
                                  AND E.codsii = venSaldoDocumentos.codsii
    LEFT OUTER JOIN cobpagodocumentos P on E.numinv = P.ndocumento AND E.codsii = P.tipo
    LEFT JOIN VenCondicionPago CP ON P.fpago = CP.codpag
    LEFT JOIN finCartola C ON P.idcartola = C.id
    LEFT OUTER JOIN cobMisBancos B on B.id_MisBancos = C.id_misbancos
    WHERE (@rut = 0 OR E.rutcte = @rut)
        AND (@tipoDoc = 0 OR E.codsii = @tipoDoc)
        AND (@codpag = 0 OR E.codpag = @codpag)
        AND E.fecven BETWEEN @fecini and @fecfin
        AND (venSaldoDocumentos.saldo = 0 OR venSaldoDocumentos.saldo < 0)
		AND (E.grudoc <> 50)
		AND (E.codsii NOT IN (56, 61))
    GROUP BY E.rutcte, conCtacte.digcte, conctacte.codcte, conctacte.nomcte, E.coddoc, E.codsii, 
             venDocumentos.alias_doc, E.numinv, E.fecdoc, E.fecven, E.total, 
             venSaldoDocumentos.saldo, origen, E.codcen, E.grudoc
END

--DOCUMENTOS NO PAGADOS
IF @condicion = 2
BEGIN
    SELECT E.rutcte,
           CONVERT(VARCHAR, E.rutcte) + '-' + CONVERT(VARCHAR, conCtacte.digcte) AS RutCliente,
           conctacte.nomcte,
           E.coddoc,
           E.codsii,
           venDocumentos.alias_doc,
           E.numinv,
           E.fecdoc,
           E.fecven,
           E.total,
           SUM(ISNULL(P.monto, (E.total - venSaldoDocumentos.saldo))) as montoPagado,
           venSaldoDocumentos.saldo,           
            'NO PAGADO' as estado,           
           origen,
		   E.codcen,
		   E.grudoc,
		   CONVERT(VARCHAR, conctacte.codcte) + '-' + CONVERT(VARCHAR, conCtacte.digcte) AS RucCliente
    FROM venEncabezado E
    INNER JOIN conctacte ON E.rutcte = conctacte.rutcte
    INNER JOIN VenDocumentos ON E.codsii = venDocumentos.codsii
    INNER JOIN venSaldoDocumentos ON E.numinv = venSaldoDocumentos.numinv
                                  AND E.codsii = venSaldoDocumentos.codsii
    LEFT OUTER JOIN cobpagodocumentos P on E.numinv = P.ndocumento AND E.codsii = P.tipo
    LEFT JOIN VenCondicionPago CP ON P.fpago = CP.codpag
    LEFT JOIN finCartola C ON P.idcartola = C.id
    LEFT OUTER JOIN cobMisBancos B on B.id_MisBancos = C.id_misbancos
    WHERE (@rut = 0 OR E.rutcte = @rut)
        AND (@tipoDoc = 0 OR E.codsii = @tipoDoc)
        AND (@codpag = 0 OR E.codpag = @codpag)
        AND E.fecven BETWEEN @fecini and @fecfin
        AND venSaldoDocumentos.saldo > 0
		AND (E.grudoc <> 50)
		AND (E.codsii NOT IN (56, 61))
    GROUP BY E.rutcte, conCtacte.digcte, conctacte.codcte, conctacte.nomcte, E.coddoc, E.codsii, 
             venDocumentos.alias_doc, E.numinv, E.fecdoc, E.fecven, E.total, 
             venSaldoDocumentos.saldo, origen, E.codcen, E.grudoc
END