Merge pull request #762 from o-psi/Invoice-items-order

Sort invoice items
This commit is contained in:
Johnny
2023-10-14 13:54:01 -04:00
committed by GitHub
5 changed files with 102 additions and 6 deletions

View File

@@ -396,6 +396,7 @@ if (isset($_POST['add_invoice_item'])) {
$qty = floatval($_POST['qty']);
$price = floatval($_POST['price']);
$tax_id = intval($_POST['tax_id']);
$item_order = intval($_POST['item_order']);
$subtotal = $price * $qty;
@@ -410,7 +411,7 @@ if (isset($_POST['add_invoice_item'])) {
$total = $subtotal + $tax_amount;
mysqli_query($mysqli,"INSERT INTO invoice_items SET item_name = '$name', item_description = '$description', item_quantity = $qty, item_price = $price, item_subtotal = $subtotal, item_tax = $tax_amount, item_total = $total, item_tax_id = $tax_id, item_invoice_id = $invoice_id");
mysqli_query($mysqli,"INSERT INTO invoice_items SET item_name = '$name', item_description = '$description', item_quantity = $qty, item_price = $price, item_subtotal = $subtotal, item_tax = $tax_amount, item_total = $total, item_order = $item_order, item_tax_id = $tax_id, item_invoice_id = $invoice_id");
//Update Invoice Balances
@@ -1082,3 +1083,61 @@ if (isset($_POST['export_client_payments_csv'])) {
exit;
}
if (isset($_POST['update_invoice_item_order'])) {
if ($_POST['update_invoice_item_order'] == 'up') {
$item_id = intval($_POST['item_id']);
$item_invoice_id = intval($_POST['item_invoice_id']);
$sql = mysqli_query($mysqli,"SELECT * FROM invoice_items WHERE item_id = $item_id");
$row = mysqli_fetch_array($sql);
$item_order = intval($row['item_order']);
$new_item_order = $item_order - 1;
//Check if new item order is used
$sql = mysqli_query($mysqli,"SELECT * FROM invoice_items WHERE item_invoice_id = $item_invoice_id AND item_order = $new_item_order");
//Redo the entire order of list
while ($row = mysqli_fetch_array($sql)) {
$item_id = intval($row['item_id']);
$item_order = intval($row['item_order']);
$new_item_order = $item_order + 1;
mysqli_query($mysqli,"UPDATE invoice_items SET item_order = $new_item_order WHERE item_id = $item_id");
}
mysqli_query($mysqli,"UPDATE invoice_items SET item_order = $item_order WHERE item_invoice_id = $item_invoice_id AND item_order = $new_item_order");
mysqli_query($mysqli,"UPDATE invoice_items SET item_order = $new_item_order WHERE item_id = $item_id");
$_SESSION['alert_message'] = "Item moved up";
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
if ($_POST['update_invoice_item_order'] == 'down') {
$item_id = intval($_POST['item_id']);
$item_invoice_id = intval($_POST['item_invoice_id']);
$sql = mysqli_query($mysqli,"SELECT * FROM invoice_items WHERE item_id = $item_id");
$row = mysqli_fetch_array($sql);
$item_order = intval($row['item_order']);
$new_item_order = $item_order + 1;
mysqli_query($mysqli,"UPDATE invoice_items SET item_order = $item_order WHERE item_invoice_id = $item_invoice_id AND item_order = $new_item_order");
mysqli_query($mysqli,"UPDATE invoice_items SET item_order = $new_item_order WHERE item_id = $item_id");
$_SESSION['alert_message'] = "Item moved down";
header("Location: " . $_SERVER["HTTP_REFERER"]);
}
}