From 151bd7f02578dfa62f8bf4221e06719c14208d34 Mon Sep 17 00:00:00 2001 From: Torqu3Wr3nch <46223457+Torqu3Wr3nch@users.noreply.github.com> Date: Tue, 9 Jan 2024 12:36:09 -0500 Subject: [PATCH] Fix blank/missing items in spending report (#2432) * Fixes blank/missing items in spending report Use left (outer) join when connecting product to optional product group * Properly display ungrouped items in table and chart --------- Co-authored-by: Bernd Bestel --- controllers/StockReportsController.php | 15 +++++++++++---- public/viewjs/stockreportspendings.js | 2 +- views/stockreportspendings.blade.php | 16 +++++++++++++++- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/controllers/StockReportsController.php b/controllers/StockReportsController.php index a9a694a5..ba0b7aed 100644 --- a/controllers/StockReportsController.php +++ b/controllers/StockReportsController.php @@ -29,9 +29,16 @@ class StockReportsController extends BaseController if ($groupBy == 'product') { - if (isset($request->getQueryParams()['product-group']) and $request->getQueryParams()['product-group'] != 'all') + if (isset($request->getQueryParams()['product-group'])) { - $where .= ' AND pg.id = ' . $request->getQueryParams()['product-group']; + if ($request->getQueryParams()['product-group'] == 'ungrouped') + { + $where .= ' AND pg.id IS NULL'; + } + elseif ($request->getQueryParams()['product-group'] != 'all') + { + $where .= ' AND pg.id = ' . $request->getQueryParams()['product-group']; + } } $sql = " @@ -44,7 +51,7 @@ class StockReportsController extends BaseController FROM products_price_history pph JOIN products p ON pph.product_id = p.id - JOIN product_groups pg + LEFT JOIN product_groups pg ON p.product_group_id = pg.id WHERE $where GROUP BY p.id, p.name, pg.id, pg.name @@ -61,7 +68,7 @@ class StockReportsController extends BaseController FROM products_price_history pph JOIN products p ON pph.product_id = p.id - JOIN product_groups pg + LEFT JOIN product_groups pg ON p.product_group_id = pg.id WHERE $where GROUP BY pg.id, pg.name diff --git a/public/viewjs/stockreportspendings.js b/public/viewjs/stockreportspendings.js index 1231118d..d51d8c22 100644 --- a/public/viewjs/stockreportspendings.js +++ b/public/viewjs/stockreportspendings.js @@ -4,7 +4,7 @@ var totalAmount = 0.0; $("#metrics-table tbody tr").each(function() { var self = $(this); - labels.push(self.find("td:eq(0)").attr("data-chart-label")); + labels.push(self.find("td:eq(0)").text().trim()); var itemTotal = Number.parseFloat(self.find("td:eq(1)").attr("data-chart-value")); data.push(itemTotal); totalAmount += + itemTotal; diff --git a/views/stockreportspendings.blade.php b/views/stockreportspendings.blade.php index ba0fef94..8021288a 100644 --- a/views/stockreportspendings.blade.php +++ b/views/stockreportspendings.blade.php @@ -77,6 +77,8 @@ @endforeach + @@ -112,8 +114,16 @@ @foreach($metrics as $metric) - + + @if($groupBy == 'productgroup') + @if(empty($metric->name)) + {{ $__t('Ungrouped') }} + @else {{ $metric->name }} + @endif + @else + {{ $metric->name }} + @endif @@ -121,7 +131,11 @@ @if($groupBy == 'product') + @if(empty($metric->group_name)) + {{ $__t('Ungrouped') }} + @else {{ $metric->group_name }} + @endif @endif