From cebb368a2809393eebd439991618157c0b4578a2 Mon Sep 17 00:00:00 2001 From: Bernd Bestel Date: Mon, 27 Sep 2021 17:39:00 +0200 Subject: [PATCH] Enforce min_stock_amount for child products where the parent has cumulate_min_stock_amount_of_sub_products enabled (fixes #1595) --- migrations/0151.sql | 53 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 migrations/0151.sql diff --git a/migrations/0151.sql b/migrations/0151.sql new file mode 100644 index 00000000..6d231e5a --- /dev/null +++ b/migrations/0151.sql @@ -0,0 +1,53 @@ +CREATE TRIGGER enforce_min_stock_amount_for_cumulated_childs_INS AFTER INSERT ON products +BEGIN + /* + When a parent product has cumulate_min_stock_amount_of_sub_products enabled, + the child should not have any min_stock_amount + */ + + UPDATE products + SET min_stock_amount = 0 + WHERE id IN ( + SELECT + p_child.id + FROM products p_parent + JOIN products p_child + ON p_child.parent_product_id = p_parent.id + WHERE p_parent.id = NEW.id + AND IFNULL(p_parent.cumulate_min_stock_amount_of_sub_products, 0) = 1 + ) + AND min_stock_amount > 0; +END; + +CREATE TRIGGER enforce_min_stock_amount_for_cumulated_childs_UPD AFTER UPDATE ON products +BEGIN + /* + When a parent product has cumulate_min_stock_amount_of_sub_products enabled, + the child should not have any min_stock_amount + */ + + UPDATE products + SET min_stock_amount = 0 + WHERE id IN ( + SELECT + p_child.id + FROM products p_parent + JOIN products p_child + ON p_child.parent_product_id = p_parent.id + WHERE p_parent.id = NEW.id + AND IFNULL(p_parent.cumulate_min_stock_amount_of_sub_products, 0) = 1 + ) + AND min_stock_amount > 0; +END; + +UPDATE products +SET min_stock_amount = 0 +WHERE id IN ( + SELECT + p_child.id + FROM products p_parent + JOIN products p_child + ON p_child.parent_product_id = p_parent.id + WHERE IFNULL(p_parent.cumulate_min_stock_amount_of_sub_products, 0) = 1 + ) + AND min_stock_amount > 0;