diff --git a/changelog/70_UNRELEASED_xxxx.xx.xx.md b/changelog/70_UNRELEASED_xxxx.xx.xx.md index bb4cc6c1..2d10a348 100644 --- a/changelog/70_UNRELEASED_xxxx.xx.xx.md +++ b/changelog/70_UNRELEASED_xxxx.xx.xx.md @@ -44,7 +44,7 @@ ### Userfields -- xxx +- Product group Userfields are now also rendered on the shopping list ### General diff --git a/controllers/StockController.php b/controllers/StockController.php index dcbcb635..560ac2bd 100644 --- a/controllers/StockController.php +++ b/controllers/StockController.php @@ -352,7 +352,6 @@ class StockController extends BaseController public function ShoppingList(\Psr\Http\Message\ServerRequestInterface $request, \Psr\Http\Message\ResponseInterface $response, array $args) { $listId = 1; - if (isset($request->getQueryParams()['list'])) { $listId = $request->getQueryParams()['list']; @@ -368,6 +367,8 @@ class StockController extends BaseController 'quantityUnitConversionsResolved' => $this->getDatabase()->quantity_unit_conversions_resolved(), 'productUserfields' => $this->getUserfieldsService()->GetFields('products'), 'productUserfieldValues' => $this->getUserfieldsService()->GetAllValues('products'), + 'productGroupUserfields' => $this->getUserfieldsService()->GetFields('product_groups'), + 'productGroupUserfieldValues' => $this->getUserfieldsService()->GetAllValues('product_groups'), 'userfields' => $this->getUserfieldsService()->GetFields('shopping_list'), 'userfieldValues' => $this->getUserfieldsService()->GetAllValues('shopping_list') ]); diff --git a/migrations/0205.sql b/migrations/0205.sql new file mode 100644 index 00000000..85cd476d --- /dev/null +++ b/migrations/0205.sql @@ -0,0 +1,27 @@ +DROP VIEW uihelper_shopping_list; +CREATE VIEW uihelper_shopping_list +AS +SELECT + sl.*, + p.name AS product_name, + plp.price AS last_price_unit, + plp.price * sl.amount AS last_price_total, + st.name AS default_shopping_location_name, + qu.name AS qu_name, + qu.name_plural AS qu_name_plural, + pg.id AS product_group_id, + pg.name AS product_group_name, + pbcs.barcodes AS product_barcodes +FROM shopping_list sl +LEFT JOIN products p + ON sl.product_id = p.id +LEFT JOIN products_last_purchased plp + ON sl.product_id = plp.product_id +LEFT JOIN shopping_locations st + ON p.shopping_location_id = st.id +LEFT JOIN quantity_units qu + ON sl.qu_id = qu.id +LEFT JOIN product_groups pg + ON p.product_group_id = pg.id +LEFT JOIN product_barcodes_comma_separated pbcs + ON sl.product_id = pbcs.product_id; diff --git a/views/shoppinglist.blade.php b/views/shoppinglist.blade.php index 5c5345d9..e0dd0628 100644 --- a/views/shoppinglist.blade.php +++ b/views/shoppinglist.blade.php @@ -376,7 +376,9 @@ @include('components.userfields_thead', array( 'userfields' => $productUserfields )) - + @include('components.userfields_thead', array( + 'userfields' => $productGroupUserfields + )) @@ -400,6 +402,10 @@ 'userfields' => $productUserfields, 'userfieldValues' => FindAllObjectsInArrayByPropertyValue($productUserfieldValues, 'object_id', $listItem->product_id) )) + @include('components.userfields_tbody', array( + 'userfields' => $productGroupUserfields, + 'userfieldValues' => FindAllObjectsInArrayByPropertyValue($productGroupUserfieldValues, 'object_id', $listItem->product_group_id) + )) @endforeach