up
This commit is contained in:
@@ -90,7 +90,24 @@ $filas = $db->fetchAll(
|
||||
$params
|
||||
);
|
||||
|
||||
// Resumen financiero
|
||||
// Enriquecer con parcialidades de pago
|
||||
$domIds = array_column($filas, 'id');
|
||||
$parciales = [];
|
||||
if ($domIds) {
|
||||
$in = implode(',', array_map('intval', $domIds));
|
||||
$rows = $db->fetchAll(
|
||||
"SELECT domicilio_id, modo, monto, notas FROM lab_domicilio_pagos WHERE domicilio_id IN ($in) ORDER BY id ASC"
|
||||
);
|
||||
foreach ($rows as $row) {
|
||||
$parciales[(int)$row['domicilio_id']][] = $row;
|
||||
}
|
||||
}
|
||||
foreach ($filas as &$f) {
|
||||
$f['pagos_detalle'] = $parciales[(int)$f['id']] ?? [];
|
||||
}
|
||||
unset($f);
|
||||
|
||||
// Resumen financiero — sumar desde parcialidades cuando existen
|
||||
$resumen = [
|
||||
'total' => count($filas),
|
||||
'pagados' => 0,
|
||||
@@ -104,9 +121,21 @@ foreach ($filas as $f) {
|
||||
$est = $f['pago_estado'] ?? 'pendiente';
|
||||
if ($est === 'pagado') {
|
||||
$resumen['pagados']++;
|
||||
$resumen['monto_total'] += (float)$f['pago_monto'];
|
||||
$key = $f['pago_modo'] ?: 'sin_registrar';
|
||||
$resumen['por_modo'][$key] = ($resumen['por_modo'][$key] ?? 0.0) + (float)$f['pago_monto'];
|
||||
if (!empty($f['pagos_detalle'])) {
|
||||
// Sumar desde parcialidades
|
||||
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;
|
||||
}
|
||||
} 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;
|
||||
}
|
||||
} elseif ($est === 'exento') {
|
||||
$resumen['exentos']++;
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user