From 8f2f04951f97c30109ac56ab19969680ca42909b Mon Sep 17 00:00:00 2001 From: nickpons666 Date: Fri, 16 Jan 2026 17:18:18 -0600 Subject: [PATCH] =?UTF-8?q?fix:=20Corregir=20c=C3=A1lculo=20de=20excedente?= =?UTF-8?q?=20para=20casas=20con=20consumo=5Fonly?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Agregar método getExpectedAmountWithDiscount() que retorna el monto sin descuento de 00 - El excedente ahora se calcula contra el monto original configurado, no contra el monto con descuento - Casas que pagan exactamente el monto por casa aparecen al corriente (/bin/bash.00) - Casas que pagan más del monto por casa muestran excedente --- models/Payment.php | 17 +++++++++++++++++ views/payments/index.php | 10 ++++++++-- views/payments/pdf_template.php | 5 ++++- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/models/Payment.php b/models/Payment.php index df39e9b..62d79ff 100755 --- a/models/Payment.php +++ b/models/Payment.php @@ -51,6 +51,23 @@ class Payment { return round($monto_base, 2); } + public static function getExpectedAmountWithDiscount($house, $year, $month) { + $db = Database::getInstance(); + + $bill = $db->fetchOne( + "SELECT * FROM monthly_bills WHERE year = ? AND month = ?", + [$year, $month] + ); + + if (!$bill) { + return 0; + } + + $monto_base = $bill['amount_per_house']; + + return round($monto_base, 2); + } + public static function update($houseId, $year, $month, $amount, $userId, $notes = null, $paymentMethod = null) { $db = Database::getInstance(); diff --git a/views/payments/index.php b/views/payments/index.php index 9f9113a..ac8629c 100755 --- a/views/payments/index.php +++ b/views/payments/index.php @@ -68,6 +68,7 @@ foreach ($houses as $house): $total = 0; $totalExpected = 0; + $totalExpectedOriginal = 0; ?> @@ -85,8 +86,10 @@ $monthTotals[$month] += $amount; // Accumulate monthly total $expected = Payment::getExpectedAmount($house, $year, $month); + $expectedOriginal = Payment::getExpectedAmountWithDiscount($house, $year, $month); $total += $amount; $totalExpected += $expected; + $totalExpectedOriginal += $expectedOriginal; $cellClass = 'pending'; $cellText = '-'; @@ -124,7 +127,7 @@ @@ -208,8 +212,10 @@ $payment = $payments[$month][$house['id']] ?? null; $amount = $payment['amount'] ?? 0; $expected = Payment::getExpectedAmount($house, $year, $month); + $expectedOriginal = Payment::getExpectedAmountWithDiscount($house, $year, $month); $total += $amount; $totalExpected += $expected; + $totalExpectedOriginal += $expectedOriginal; $bg = '#f8d7da'; if ($amount > 0) { @@ -223,7 +229,7 @@ diff --git a/views/payments/pdf_template.php b/views/payments/pdf_template.php index 5a1a6e3..c547ca2 100755 --- a/views/payments/pdf_template.php +++ b/views/payments/pdf_template.php @@ -58,6 +58,7 @@ foreach ($houses as $house): $total = 0; $totalExpected = 0; + $totalExpectedOriginal = 0; ?> @@ -68,8 +69,10 @@ $monthTotals[$month] += $amount; $expected = Payment::getExpectedAmount($house, $year, $month); + $expectedOriginal = Payment::getExpectedAmountWithDiscount($house, $year, $month); $total += $amount; $totalExpected += $expected; + $totalExpectedOriginal += $expectedOriginal; $bg_color = '#FFFFFF'; // Default white if ($house['status'] == 'deshabitada') { @@ -89,7 +92,7 @@