From d15eabfee4d836209f38671ca66a4bf3bee790bc Mon Sep 17 00:00:00 2001 From: johnnyq Date: Wed, 21 Jun 2023 16:25:43 -0400 Subject: [PATCH] Rewrite Expenses by Vendor Report to combine SQL queries into one and sort highest first and add the all years option --- report_expense_by_vendor.php | 49 ++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/report_expense_by_vendor.php b/report_expense_by_vendor.php index 6a397b27..eb227a7a 100644 --- a/report_expense_by_vendor.php +++ b/report_expense_by_vendor.php @@ -4,7 +4,11 @@ require_once("inc_all_reports.php"); validateAccountantRole(); if (isset($_GET['year'])) { - $year = intval($_GET['year']); + if ($_GET['year'] === 'all') { + $year = 'all'; + } else { + $year = intval($_GET['year']); + } } else { $year = date('Y'); } @@ -14,7 +18,25 @@ $sql_payment_years = mysqli_query($mysqli, "SELECT DISTINCT YEAR(payment_date) A ORDER BY payment_year DESC" ); -$sql_vendors = mysqli_query($mysqli, "SELECT * FROM vendors WHERE vendor_template = 0"); +$year_condition = ($year == 'all') ? "" : "AND YEAR(expense_date) = $year"; + +$sql_vendor_expenses = mysqli_query($mysqli, " + SELECT + vendors.*, + SUM(expenses.expense_amount) AS amount_paid + FROM + vendors + LEFT JOIN + expenses ON vendors.vendor_id = expenses.expense_vendor_id $year_condition + WHERE + vendors.vendor_template = 0 + GROUP BY + vendors.vendor_id + HAVING + amount_paid > 599 + ORDER BY + amount_paid DESC +"); ?> @@ -28,6 +50,7 @@ $sql_vendors = mysqli_query($mysqli, "SELECT * FROM vendors WHERE vendor_templat