$id, 'invoice_number' => $num, 'status' => $status, 'balance' => $balance, 'issue_date' => $issue, 'text' => $num . ($status ? ' — ' . ucfirst($status) : '') . ' (Bal: $' . number_format($balance, 2) . ')', ]; }, $rows); } public function applyToInvoice(int $invoiceId, string $chargeType, float $amountAbs): void { if ($invoiceId <= 0 || $amountAbs <= 0) { return; } if ($chargeType === 'add') { Invoice::applyAdditionalCharge($invoiceId, $amountAbs); } else { Invoice::deductAdditionalCharge($invoiceId, $amountAbs); } } public function reverseOnInvoice(int $invoiceId, string $chargeType, float $amountAbs): void { if ($invoiceId <= 0 || $amountAbs <= 0) { return; } if ($chargeType === 'add') { Invoice::reverseAdditionalCharge($invoiceId, $amountAbs); } else { Invoice::applyAdditionalCharge($invoiceId, $amountAbs); } } public function adjustDelta(int $invoiceId, float $delta): void { if ($invoiceId <= 0 || abs($delta) <= 0.00001) { return; } if ($delta > 0) { Invoice::applyAdditionalCharge($invoiceId, $delta); } else { Invoice::reverseAdditionalCharge($invoiceId, abs($delta)); } } }