mirror of
https://github.com/itflow-org/itflow
synced 2026-06-25 11:11:06 +00:00
Invoice Late Overdue notices shows correct balance when late fees are attached and if partial invoice was paid
This commit is contained in:
@@ -524,12 +524,23 @@ if ($config_send_invoice_reminders == 1) {
|
|||||||
$contact_name = sanitizeInput($row['contact_name']);
|
$contact_name = sanitizeInput($row['contact_name']);
|
||||||
$contact_email = sanitizeInput($row['contact_email']);
|
$contact_email = sanitizeInput($row['contact_email']);
|
||||||
|
|
||||||
// Late Charges
|
// Sum payments already applied, derive the real balance owed
|
||||||
|
$sql_paid = mysqli_query($mysqli, "SELECT SUM(payment_amount) AS amount_paid FROM payments WHERE payment_invoice_id = $invoice_id");
|
||||||
|
$paid_row = mysqli_fetch_assoc($sql_paid);
|
||||||
|
$amount_paid = floatval($paid_row['amount_paid']);
|
||||||
|
|
||||||
|
$invoice_balance = $invoice_amount - $amount_paid;
|
||||||
|
|
||||||
|
// Nothing actually owed (e.g. paid in full but status lagging) - skip
|
||||||
|
if ($invoice_balance <= 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Late Charges
|
||||||
if ($config_invoice_late_fee_enable == 1 && $day > 1) {
|
if ($config_invoice_late_fee_enable == 1 && $day > 1) {
|
||||||
|
|
||||||
$todays_date = date('Y-m-d');
|
$todays_date = date('Y-m-d');
|
||||||
$late_fee_amount = ($invoice_amount * $config_invoice_late_fee_percent) / 100;
|
$late_fee_amount = ($invoice_balance * $config_invoice_late_fee_percent) / 100;
|
||||||
$new_invoice_amount = $invoice_amount + $late_fee_amount;
|
$new_invoice_amount = $invoice_amount + $late_fee_amount;
|
||||||
|
|
||||||
mysqli_query($mysqli, "UPDATE invoices SET invoice_amount = $new_invoice_amount WHERE invoice_id = $invoice_id");
|
mysqli_query($mysqli, "UPDATE invoices SET invoice_amount = $new_invoice_amount WHERE invoice_id = $invoice_id");
|
||||||
@@ -541,14 +552,22 @@ if ($config_send_invoice_reminders == 1) {
|
|||||||
|
|
||||||
appNotify("Invoice Late Charge", "Invoice $invoice_prefix$invoice_number for $client_name in the amount of $invoice_amount was charged a late fee of $late_fee_amount", "/agent/invoice.php?invoice_id=$invoice_id", $client_id);
|
appNotify("Invoice Late Charge", "Invoice $invoice_prefix$invoice_number for $client_name in the amount of $invoice_amount was charged a late fee of $late_fee_amount", "/agent/invoice.php?invoice_id=$invoice_id", $client_id);
|
||||||
|
|
||||||
|
// Roll the fee into the balance and total we report below
|
||||||
|
$invoice_amount = $new_invoice_amount;
|
||||||
|
$invoice_balance = $invoice_balance + $late_fee_amount;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
appNotify("Invoice Overdue", "Invoice $invoice_prefix$invoice_number for $client_name in the amount of $invoice_amount is overdue by $day days", "/agent/invoice.php?invoice_id=$invoice_id", $client_id);
|
appNotify("Invoice Overdue", "Invoice $invoice_prefix$invoice_number for $client_name with a balance of " . numfmt_format_currency($currency_format, $invoice_balance, $invoice_currency_code) . " is overdue by $day days", "/agent/invoice.php?invoice_id=$invoice_id", $client_id);
|
||||||
|
|
||||||
$subject = "Overdue Invoice $invoice_prefix$invoice_number";
|
$subject = "Overdue Invoice $invoice_prefix$invoice_number";
|
||||||
$body = "Hello $contact_name,<br><br>Our records indicate that we have not yet received payment for the invoice $invoice_prefix$invoice_number. We kindly request that you submit your payment as soon as possible. If you have any questions or concerns, please do not hesitate to contact us at $company_email or $company_phone.
|
|
||||||
|
// Only show the paid line if a payment has actually been applied
|
||||||
|
$paid_line = $amount_paid > 0 ? "Amount Paid: " . numfmt_format_currency($currency_format, $amount_paid, $invoice_currency_code) . "<br>" : "";
|
||||||
|
|
||||||
|
$body = "Hello $contact_name,<br><br>Our records indicate that we have not yet received payment in full for the invoice $invoice_prefix$invoice_number. We kindly request that you submit your payment as soon as possible. If you have any questions or concerns, please do not hesitate to contact us at $company_email or $company_phone.
|
||||||
<br>
|
<br>
|
||||||
Kindly review the invoice details mentioned below.<br><br>Invoice: $invoice_prefix$invoice_number<br>Issue Date: $invoice_date<br>Total: " . numfmt_format_currency($currency_format, $invoice_amount, $invoice_currency_code) . "<br>Due Date: $invoice_due<br>Over Due By: $day Days<br><br><br>To view your invoice, please click <a href=\'https://$config_base_url/guest/guest_view_invoice.php?invoice_id=$invoice_id&url_key=$invoice_url_key\'>here</a>.<br><br><br>--<br>$company_name - Billing<br>$config_invoice_from_email<br>$company_phone";
|
Kindly review the invoice details mentioned below.<br><br>Invoice: $invoice_prefix$invoice_number<br>Issue Date: $invoice_date<br>Invoice Total: " . numfmt_format_currency($currency_format, $invoice_amount, $invoice_currency_code) . "<br>$paid_line" . "Balance Due: " . numfmt_format_currency($currency_format, $invoice_balance, $invoice_currency_code) . "<br>Due Date: $invoice_due<br>Over Due By: $day Days<br><br><br>To view your invoice, please click <a href=\'https://$config_base_url/guest/guest_view_invoice.php?invoice_id=$invoice_id&url_key=$invoice_url_key\'>here</a>.<br><br><br>--<br>$company_name - Billing<br>$config_invoice_from_email<br>$company_phone";
|
||||||
|
|
||||||
$mail = addToMailQueue([
|
$mail = addToMailQueue([
|
||||||
[
|
[
|
||||||
|
|||||||
Reference in New Issue
Block a user