Merge pull request #768 from o-psi/invoice-sort-1.b

Invoice Sort Updates
This commit is contained in:
Johnny 2023-10-15 23:39:36 -04:00 committed by GitHub
commit cce1dc86c2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 50 additions and 54 deletions

View File

@ -290,14 +290,32 @@ if (isset($_GET['invoice_id'])) {
<tr> <tr>
<td> <td>
<div class="d-print-none"> <div class="d-print-none row">
<?php if ($invoice_status !== "Paid" && $invoice_status !== "Cancelled") { ?> <?php if ($invoice_status !== "Paid" && $invoice_status !== "Cancelled") { ?>
<form action="post.php" method="post"> <form action="post.php" method="post">
<input type="hidden" name="invoice_id" value="<?php echo $invoice_id; ?>"> <input type="hidden" name="item_invoice_id" value="<?php echo $invoice_id; ?>">
<input type="hidden" name="item_id" value="<?php echo $item_id; ?>"> <input type="hidden" name="item_id" value="<?php echo $item_id; ?>">
<input type="hidden" name="item_order" value="<?php echo $item_order; ?>"> <input type="hidden" name="item_order" value="<?php echo $item_order; ?>">
<button class="btn btn-sm btn-light" type="submit" name="update_invoice_item_order" value="up"><i class="fa fa-fw fa-arrow-up"></i></button> <?php
<button class="btn btn-sm btn-light" type="submit" name="update_invoice_item_order" value="down"><i class="fa fa-fw fa-arrow-down"></i></button> // Logic to check if top or bottom arrow should be hidden
if ($item_order == 1) {
$up_hidden = "hidden";
} else {
$up_hidden = "";
}
if ($item_order == mysqli_num_rows($sql_invoice_items)) {
$down_hidden = "hidden";
} else {
$down_hidden = "";
}
?>
<button class="btn btn-sm btn-light" type="submit" name="update_invoice_item_order" value="up" <?php echo $up_hidden; ?>>
<i class="fas fa-arrow-up"></i>
</button>
<button class="btn btn-sm btn-light" type="submit" name="update_invoice_item_order" value="down" <?php echo $down_hidden; ?>>
<i class="fas fa-arrow-down"></i>
</button>
</form> </form>
<?php } ?> <?php } ?>

View File

@ -1087,57 +1087,35 @@ if (isset($_POST['export_client_payments_csv'])) {
if (isset($_POST['update_invoice_item_order'])) { if (isset($_POST['update_invoice_item_order'])) {
if ($_POST['update_invoice_item_order'] == 'up') { $item_id = intval($_POST['item_id']);
$item_id = intval($_POST['item_id']); $item_invoice_id = intval($_POST['item_invoice_id']);
$item_invoice_id = intval($_POST['item_invoice_id']);
$sql = mysqli_query($mysqli,"SELECT * FROM invoice_items WHERE item_id = $item_id"); $sql = mysqli_query($mysqli,"SELECT * FROM invoice_items WHERE item_id = $item_id");
$row = mysqli_fetch_array($sql); $row = mysqli_fetch_array($sql);
$item_order = intval($row['item_order']); $current_order = intval($row['item_order']);
$update_direction = sanitizeInput($_POST['update_invoice_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"]);
switch ($update_direction)
{
case 'up':
$new_order = $current_order - 1;
break;
case 'down':
$new_order = $current_order + 1;
break;
} }
if ($_POST['update_invoice_item_order'] == 'down') { //Find item_id of current item in $new_order
$item_id = intval($_POST['item_id']); $other_sql = mysqli_query($mysqli,"SELECT * FROM invoice_items WHERE item_invoice_id = $item_invoice_id AND item_order = $new_order");
$item_invoice_id = intval($_POST['item_invoice_id']); $other_row = mysqli_fetch_array($other_sql);
$other_item_id = intval($other_row['item_id']);
$other_row_str = strval($other_row['item_name']);
$sql = mysqli_query($mysqli,"SELECT * FROM invoice_items WHERE item_id = $item_id"); mysqli_query($mysqli,"UPDATE invoice_items SET item_order = $new_order 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 = $current_order WHERE item_id = $other_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"); $_SESSION['alert_message'] = "Invoice Item Order Updated";
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"]);
}
header("Location: " . $_SERVER["HTTP_REFERER"]);
} }