Fixed products product stock entry price (fixes #1791)

This commit is contained in:
Bernd Bestel 2022-02-19 09:03:42 +01:00
parent 01c7d4e49a
commit e220b3e9f3
No known key found for this signature in database
GPG Key ID: 71BD34C0D4891300
3 changed files with 20 additions and 1 deletions

View File

@ -17,6 +17,7 @@
### Recipes
- Fixed that consuming recipes was possible when not all ingredients were in-stock (and this potentially consumed some of the in-stock ingredients; not matching the message "nothing removed")
- Fixed that the price of the "Produces product"-product, which is added to stock on consuming a recipe, was wrong (was the recipe total costs multiplied by the serving amount instead of only the recipe total costs)
### Meal plan

18
migrations/0168.sql Normal file
View File

@ -0,0 +1,18 @@
DROP VIEW recipes_resolved;
CREATE VIEW recipes_resolved
AS
SELECT
1 AS id, -- Dummy, LessQL needs an id column
r.id AS recipe_id,
IFNULL(MIN(rpr.need_fulfilled), 1) AS need_fulfilled,
IFNULL(MIN(rpr.need_fulfilled_with_shopping_list), 1) AS need_fulfilled_with_shopping_list,
IFNULL(rmpc.missing_products_count, 0) AS missing_products_count,
IFNULL(SUM(rpr.costs), 0) AS costs,
IFNULL(SUM(rpr.costs) / CASE WHEN IFNULL(r.desired_servings, 0) = 0 THEN 1 ELSE r.desired_servings END, 0) AS costs_per_serving,
IFNULL(SUM(rpr.calories), 0) AS calories
FROM recipes r
LEFT JOIN recipes_pos_resolved rpr
ON r.id = rpr.recipe_id
LEFT JOIN recipes_missing_product_counts rmpc
ON r.id = rmpc.recipe_id
GROUP BY r.id;

View File

@ -95,7 +95,7 @@ class RecipesService extends BaseService
if (!empty($recipeRow->product_id))
{
$recipeResolvedRow = $this->getDatabase()->recipes_resolved()->where('recipe_id = :1', $recipeId)->fetch();
$this->getStockService()->AddProduct($recipeRow->product_id, floatval($recipeRow->desired_servings), null, StockService::TRANSACTION_TYPE_SELF_PRODUCTION, date('Y-m-d'), floatval($recipeResolvedRow->costs), null, null, $dummyTransactionId, 0, true);
$this->getStockService()->AddProduct($recipeRow->product_id, floatval($recipeRow->desired_servings), null, StockService::TRANSACTION_TYPE_SELF_PRODUCTION, date('Y-m-d'), floatval($recipeResolvedRow->costs_per_serving), null, null, $dummyTransactionId, 0, true);
}
}