diff --git a/invoice.php b/invoice.php index 6e752bf0..6e87a880 100644 --- a/invoice.php +++ b/invoice.php @@ -3,9 +3,6 @@ ">Edit Copy Send Email - Add Payment + Add Payment Print Delete @@ -219,8 +219,20 @@ if(isset($_GET['invoice_id'])){ Total - $ + $ + 0){ ?> + + + Paid + $ + + + + Balance + $ + + @@ -278,7 +290,7 @@ if(isset($_GET['invoice_id'])){ INV- - $ + $
diff --git a/post.php b/post.php index 20214b32..87ffab1a 100644 --- a/post.php +++ b/post.php @@ -423,12 +423,9 @@ if(isset($_POST['add_invoice_item'])){ $sql = mysqli_query($mysqli,"SELECT * FROM invoices WHERE invoice_id = $invoice_id"); $row = mysqli_fetch_array($sql); - $invoice_subtotal = $row['invoice_subtotal'] + $subtotal; - $invoice_tax = $row['invoice_tax'] + $tax; - $invoice_total = $row['invoice_total'] + $total; - $invoice_balance = $row['invoice_balance'] + $total; + $new_invoice_amount = $row['invoice_amount'] + $total; - mysqli_query($mysqli,"UPDATE invoices SET invoice_subtotal = '$invoice_subtotal', invoice_tax = '$invoice_tax', invoice_total = '$invoice_total', invoice_balance = '$invoice_balance' WHERE invoice_id = $invoice_id"); + mysqli_query($mysqli,"UPDATE invoices SET invoice_amount = '$new_invoice_amount' WHERE invoice_id = $invoice_id"); $_SESSION['alert_message'] = "Item added"; @@ -448,12 +445,10 @@ if(isset($_GET['delete_invoice_item'])){ $sql = mysqli_query($mysqli,"SELECT * FROM invoices WHERE invoice_id = $invoice_id"); $row = mysqli_fetch_array($sql); - $invoice_balance = $row['invoice_balance'] - $invoice_item_total; - $invoice_subtotal = $row['invoice_subtotal'] - $invoice_item_subtotal; - $invoice_tax = $row['invoice_tax'] - $invoice_item_tax; - $invoice_total = $row['invoice_total'] - $invoice_item_total; + + $new_invoice_amount = $row['invoice_amount'] - $invoice_item_total; - mysqli_query($mysqli,"UPDATE invoices SET invoice_subtotal = '$invoice_subtotal', invoice_tax = '$invoice_tax', invoice_total = '$invoice_total', invoice_balance = '$invoice_balance' WHERE invoice_id = $invoice_id"); + mysqli_query($mysqli,"UPDATE invoices SET invoice_amount = '$new_invoice_amount' WHERE invoice_id = $invoice_id"); mysqli_query($mysqli,"DELETE FROM invoice_items WHERE invoice_item_id = $invoice_item_id"); @@ -471,14 +466,30 @@ if(isset($_POST['add_invoice_payment'])){ $account = intval($_POST['account']); $payment_method = strip_tags(mysqli_real_escape_string($mysqli,$_POST['payment_method'])); + mysqli_query($mysqli,"INSERT INTO invoice_payments SET invoice_payment_date = '$date', invoice_payment_amount = '$amount', account_id = $account, invoice_payment_method = '$payment_method', invoice_id = $invoice_id"); + + //Add up all the payments for the invoice and get the total amount paid to the invoice + $sql_total_payments_amount = mysqli_query($mysqli,"SELECT SUM(invoice_payment_amount) AS total_payments_amount FROM invoice_payments WHERE invoice_id = $invoice_id"); + $row = mysqli_fetch_array($sql_total_payments_amount); + $total_payments_amount = $row['total_payments_amount']; + + //Get the invoice total $sql = mysqli_query($mysqli,"SELECT * FROM invoices WHERE invoice_id = $invoice_id"); $row = mysqli_fetch_array($sql); - $invoice_balance = $row['invoice_balance'] - $amount; - $invoice_paid = $row['invoice_paid'] + $paid; + $invoice_amount = $row['invoice_amount']; - mysqli_query($mysqli,"UPDATE invoices SET invoice_balance = '$invoice_balance', invoice_paid = '$invoice_paid' WHERE invoice_id = $invoice_id"); + //Calculate the Invoice balance + $invoice_balance = $invoice_amount - $total_payments_amount; - mysqli_query($mysqli,"INSERT INTO invoice_payments SET invoice_payment_date = '$date', invoice_payment_amount = '$amount', account_id = $account, invoice_payment_method = '$payment_method', invoice_id = $invoice_id"); + //Determine if invoice has been paid + if($invoice_balance == 0){ + $invoice_status = "Paid"; + }else{ + $invoice_status = "Partial"; + } + + //Update Invoice Status + mysqli_query($mysqli,"UPDATE invoices SET invoice_status = '$invoice_status' WHERE invoice_id = $invoice_id"); $_SESSION['alert_message'] = "Payment added"; @@ -489,14 +500,33 @@ if(isset($_POST['add_invoice_payment'])){ if(isset($_GET['delete_invoice_payment'])){ $invoice_payment_id = intval($_GET['delete_invoice_payment']); - $sql = mysqli_query($mysqli,"SELECT * FROM invoice_payments WHERE invoice_payment_id = $invoice_id"); + $sql = mysqli_query($mysqli,"SELECT * FROM invoice_payments WHERE invoice_payment_id = $invoice_payment_id"); $row = mysqli_fetch_array($sql); $invoice_id = $row['invoice_id']; - $invoice_payment_amount = $row['invoice_payment_amount']; + $deleted_payment_amount = $row['invoice_payment_amount']; - $invoice_balance = $row['invoice_balance'] - $invoice_payment_amount; + //Add up all the payments for the invoice and get the total amount paid to the invoice + $sql_total_payments_amount = mysqli_query($mysqli,"SELECT SUM(invoice_payment_amount) AS total_payments_amount FROM invoice_payments WHERE invoice_id = $invoice_id"); + $row = mysqli_fetch_array($sql_total_payments_amount); + $total_payments_amount = $row['total_payments_amount']; + + //Get the invoice total + $sql = mysqli_query($mysqli,"SELECT * FROM invoices WHERE invoice_id = $invoice_id"); + $row = mysqli_fetch_array($sql); + $invoice_amount = $row['invoice_amount']; - mysqli_query($mysqli,"UPDATE invoices SET invoice_balance = '$invoice_balance' WHERE invoice_id = $invoice_id"); + //Calculate the Invoice balance + $invoice_balance = $invoice_amount - $total_payments_amount + $deleted_payment_amount; + + //Determine if invoice has been paid + if($invoice_balance == 0){ + $invoice_status = "Paid"; + }else{ + $invoice_status = "Partial"; + } + + //Update Invoice Status + mysqli_query($mysqli,"UPDATE invoices SET invoice_status = '$invoice_status' WHERE invoice_id = $invoice_id"); mysqli_query($mysqli,"DELETE FROM invoice_payments WHERE invoice_payment_id = $invoice_payment_id");