From f72b7763c1b5604efbe871560cca26282222c6a9 Mon Sep 17 00:00:00 2001 From: johnnyq Date: Tue, 15 Jul 2025 13:24:28 -0400 Subject: [PATCH] Added Bulk Actions to Invoices Assign Income Category --- invoice.php | 2 + invoices.php | 255 +++++++++++--------- modals/invoice_bulk_edit_category_modal.php | 42 ++++ post/user/invoice.php | 42 ++++ 4 files changed, 228 insertions(+), 113 deletions(-) create mode 100644 modals/invoice_bulk_edit_category_modal.php diff --git a/invoice.php b/invoice.php index 01d0eb37..dfed2611 100644 --- a/invoice.php +++ b/invoice.php @@ -237,6 +237,7 @@ if (isset($_GET['invoice_id'])) {
+ +
diff --git a/invoices.php b/invoices.php index 824b2d79..c7d77c03 100644 --- a/invoices.php +++ b/invoices.php @@ -103,133 +103,153 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); ?> -
- - - - - - - - - +
+ + -
-
-

Invoices

-
-
- - - + + + + + + +
+ +
+
+

Invoices

+
+
+ + +
+
-
-
- - - - -
-
-
- -
- - -
+
+ + + + + +
+
+
+ +
+ +
-
- -
-
- 0) { ?> - +
+
+
+ "> + Archived + + - -
-
-
" id="advancedFilter"> -
-
-
- - -
-
-
-
- - -
-
-
-
- - + + Set Category +
- -
+
+
" id="advancedFilter"> +
+
+
+ + +
+
+
+
+ + +
+
+
+
+ + +
+
+
+
+ +
+
+ - -
+ + +
+
+ + + +
diff --git a/post/user/invoice.php b/post/user/invoice.php index 4cad3f3f..827d346f 100644 --- a/post/user/invoice.php +++ b/post/user/invoice.php @@ -2082,4 +2082,46 @@ if (isset($_GET['export_invoice_pdf'])) { $pdf->Output("$filename.pdf", 'I'); exit; +} + +if (isset($_POST['bulk_edit_invoice_category'])) { + + $category_id = intval($_POST['bulk_category_id']); + + // Get Category name for logging and Notification + $sql = mysqli_query($mysqli,"SELECT category_name FROM categories WHERE category_id = $category_id"); + $row = mysqli_fetch_array($sql); + $category_name = sanitizeInput($row['category_name']); + + // Assign Income category to Selected Invoices + if (isset($_POST['invoice_ids'])) { + + // Get Selected Count + $count = count($_POST['invoice_ids']); + + foreach($_POST['invoice_ids'] as $invoice_id) { + $invoice_id = intval($invoice_id); + + // Get Invoice Details for Logging + $sql = mysqli_query($mysqli,"SELECT * FROM invoices WHERE invoice_id = $invoice_id"); + $row = mysqli_fetch_array($sql); + $invoice_prefix = sanitizeInput($row['invoice_prefix']); + $invoice_number = intval($row['invoice_number']); + $invoice_scope = sanitizeInput($row['invoice_scope']); + $client_id = intval($row['invoice_client_id']); + + mysqli_query($mysqli,"UPDATE invoices SET invoice_category_id = $category_id WHERE invoice_id = $invoice_id"); + + // Logging + logAction("Invoice", "Edit", "$session_name assigned Invoice $invoice_prefix$invoice_number to category $category_name", $client_id, $invoice_id); + + } // End Assign Loop + + // Logging + logAction("Invoice", "Bulk Edit", "$session_name assigned $count invoices to category $category_name"); + + $_SESSION['alert_message'] = "Assigned income category $category_name to $count invoice(s)"; + } + + header("Location: " . $_SERVER["HTTP_REFERER"]); } \ No newline at end of file