ALTER PROCEDURE [dbo].[sp_finCartola]
(
    @id_misbancos INT,
    @agno INT,
    @mes INT,
    @conciliado INT = -1 --TODOS
)
AS
SET NOCOUNT ON;
BEGIN
    -- Validación temprana de parámetros
    IF @id_misbancos IS NULL OR @agno IS NULL OR @mes IS NULL
    BEGIN
        RAISERROR('Los parámetros @id_misbancos, @agno y @mes no pueden ser NULL', 16, 1);
        RETURN;
    END

    SELECT        
        fc.id, 
        fc.fecha, 
        fc.tipoConcepto, 
        fc.concepto, 
        fc.descripcion, 
        fc.numDocumento, 
        fc.rut, 
        fc.monto, 
        fc.tipoCompro, 
        fc.numCompro, 
        fc.fecCompro, 
        fc.contabilizado, 
        fc.id_rendicion, 
        COALESCE(dbo.MontoRendicionCartola(fc.id_rendicion), fc.monto) AS monto_rendicion, 
        COALESCE(cc.nomcte, 'CLIENTE NO EXISTE EN MAESTRO') AS nomcte,
        fc.flujo,
        CASE 
            WHEN fc.conciliado = 1 THEN 'Si'
            ELSE 'No'
        END AS conciliado,
        fc.idAnticipo
    FROM finCartola fc WITH (NOLOCK)
    LEFT JOIN conCtacte cc WITH (NOLOCK) ON fc.rut = cc.rutcte
    WHERE fc.id_MisBancos = @id_misbancos
        AND fc.mes = @mes
        AND fc.agno = @agno
        AND (@conciliado = -1 OR fc.conciliado = @conciliado)
    ORDER BY fc.fecha, fc.id
    OPTION (OPTIMIZE FOR UNKNOWN);
END