<?php
require_once "../config/Conexion.php";

class OdontCobranzas
{
    //Implementamos nuestro constructor
    public function __construct()
    {
    }

    // Total de deuda vencida (Cuotas vencidas)
    public function totalVencido()
    {
        $sql = "SELECT SUM(monto - monto_pagado) as total_vencido 
                FROM odont_cuota 
                WHERE estado = 'Vencida'";
        return ejecutarConsultaSimpleFila($sql);
    }

    // Total por cobrar este mes (Cuotas pendientes que vencen este mes)
    public function totalPorCobrarMes()
    {
        $mes_actual = date('m');
        $anio_actual = date('Y');
        $sql = "SELECT SUM(monto - monto_pagado) as total_por_cobrar 
                FROM odont_cuota 
                WHERE (estado = 'Pendiente' OR estado = 'Parcial') 
                AND MONTH(fecha_vencimiento) = '$mes_actual' 
                AND YEAR(fecha_vencimiento) = '$anio_actual'";
        return ejecutarConsultaSimpleFila($sql);
    }

    // Total de ingresos este mes (Pagos realizados)
    public function ingresosMes()
    {
        $mes_actual = date('m');
        $anio_actual = date('Y');
        $sql = "SELECT SUM(monto) as total_ingresos 
                FROM odont_pago 
                WHERE MONTH(fecha_pago) = '$mes_actual' 
                AND YEAR(fecha_pago) = '$anio_actual'";
        return ejecutarConsultaSimpleFila($sql);
    }

    // Listar deudores (Pacientes con cuotas vencidas o pendientes)
    // Se ordena primero por los que tienen más deuda vencida
    public function listarDeudores($estado = '')
    {
        $sql = "SELECT 
                    c.idcuota,
                    c.numero_cuota,
                    c.fecha_vencimiento,
                    c.monto,
                    c.monto_pagado,
                    (c.monto - c.monto_pagado) as saldo_cuota,
                    c.estado,
                    p.idpresupuesto,
                    CONCAT(per.apaterno, ' ', per.amaterno, ' ', per.nombre) as paciente,
                    per.telefono,
                    per.email,
                    DATEDIFF(CURDATE(), c.fecha_vencimiento) as dias_retraso
                FROM odont_cuota c
                INNER JOIN odont_plan_cuotas plan ON c.idplan_cuotas = plan.idplan_cuotas
                INNER JOIN odont_presupuesto p ON plan.idpresupuesto = p.idpresupuesto
                INNER JOIN persona per ON p.idpersona = per.idpersona
                WHERE c.estado IN ('Vencida', 'Pendiente', 'Parcial')";

        if ($estado != '') {
            $sql .= " AND c.estado = '$estado'";
        }

        $sql .= " ORDER BY 
                    CASE WHEN c.estado = 'Vencida' THEN 1 ELSE 2 END,
                    c.fecha_vencimiento ASC";
        return ejecutarConsulta($sql);
    }
}
?>