diff --git a/changelog/79_UNRELEASED_xx-xx-xxxx.md b/changelog/79_UNRELEASED_xx-xx-xxxx.md index 625c583c..1291b4db 100644 --- a/changelog/79_UNRELEASED_xx-xx-xxxx.md +++ b/changelog/79_UNRELEASED_xx-xx-xxxx.md @@ -14,6 +14,7 @@ ### Shopping list +- When the shopping list setting (top right corner settings menu) "Round up quantity amounts to the nearest whole number" is enabled, the "Last price (Total)" of each shopping list item and the total value of the shopping list are now also scaled up accordingly - The print options (show header, layout type etc.) are now saved (as user settings, so global defaults can also defined in `config.php` as usual) ### Recipes diff --git a/migrations/0251.sql b/migrations/0251.sql new file mode 100644 index 00000000..dde897b7 --- /dev/null +++ b/migrations/0251.sql @@ -0,0 +1,32 @@ +DROP VIEW uihelper_shopping_list; +CREATE VIEW uihelper_shopping_list +AS +SELECT + sl.*, + p.name AS product_name, + plp.price * IFNULL(quc.factor, 1.0) AS last_price_unit, + plp.price * sl.amount AS last_price_total, + plp.price AS price, + 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 cache__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 cache__quantity_unit_conversions_resolved quc + ON p.id = quc.product_id + AND p.qu_id_stock = quc.to_qu_id + AND sl.qu_id = quc.from_qu_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 be378164..9ae03fd4 100644 --- a/views/shoppinglist.blade.php +++ b/views/shoppinglist.blade.php @@ -17,6 +17,17 @@ @endpush +@php +if(boolval($userSettings['shopping_list_round_up'])) +{ +foreach($listItems as $listItem) +{ +$listItem->amount = ceil($listItem->amount); +$listItem->last_price_total = $listItem->price * $listItem->amount; +} +} +@endphp + @section('content')