This commit is contained in:
Lizandro Guarnizo
2026-04-16 21:24:01 -05:00
parent c8bef9d9c4
commit 50b7f7f8ca
2 changed files with 35 additions and 14 deletions
+16 -10
View File
@@ -77,6 +77,7 @@ $filas = $db->fetchAll(
COALESCE(d.seguro_nombre,'') AS seguro_nombre,
d.estado AS dom_estado,
COALESCE(d.valor_domicilio, 0) AS valor_domicilio,
COALESCE(d.valor_copago, 0) AS valor_copago,
d.pago_estado,
COALESCE(d.pago_modo,'') AS pago_modo,
COALESCE(d.pago_monto, 0) AS pago_monto,
@@ -109,16 +110,21 @@ unset($f);
// Resumen financiero — sumar desde parcialidades cuando existen
$resumen = [
'total' => count($filas),
'pagados' => 0,
'pendientes' => 0,
'exentos' => 0,
'monto_total' => 0.0,
'por_modo' => [],
'total' => count($filas),
'pagados' => 0,
'pendientes' => 0,
'exentos' => 0,
'monto_total' => 0.0,
'total_valor_dom' => 0.0, // suma valor_domicilio esperado
'total_valor_copago' => 0.0, // suma valor_copago esperado
'por_modo' => [],
];
foreach ($filas as $f) {
$est = $f['pago_estado'] ?? 'pendiente';
// Acumular valores esperados (siempre, no solo pagados)
$resumen['total_valor_dom'] += (float)($f['valor_domicilio'] ?? 0);
$resumen['total_valor_copago'] += (float)($f['valor_copago'] ?? 0);
if ($est === 'pagado') {
$resumen['pagados']++;
if (!empty($f['pagos_detalle'])) {
@@ -126,15 +132,15 @@ foreach ($filas as $f) {
foreach ($f['pagos_detalle'] as $p) {
$monto = (float)$p['monto'];
$key = $p['modo'] ?: 'sin_registrar';
$resumen['monto_total'] += $monto;
$resumen['por_modo'][$key] = ($resumen['por_modo'][$key] ?? 0.0) + $monto;
$resumen['monto_total'] += $monto;
$resumen['por_modo'][$key] = ($resumen['por_modo'][$key] ?? 0.0) + $monto;
}
} else {
// Fallback registro legacy
$monto = (float)$f['pago_monto'];
$key = $f['pago_modo'] ?: 'sin_registrar';
$resumen['monto_total'] += $monto;
$resumen['por_modo'][$key] = ($resumen['por_modo'][$key] ?? 0.0) + $monto;
$resumen['monto_total'] += $monto;
$resumen['por_modo'][$key] = ($resumen['por_modo'][$key] ?? 0.0) + $monto;
}
} elseif ($est === 'exento') {
$resumen['exentos']++;