From 03f9ba45eaf284f1ff54763b186825cf5542e0b6 Mon Sep 17 00:00:00 2001 From: Bernd Bestel Date: Wed, 16 Aug 2023 17:05:18 +0200 Subject: [PATCH] Fixed initial product QU conversion handling (fixes #2312) --- migrations/0231.sql | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 migrations/0231.sql diff --git a/migrations/0231.sql b/migrations/0231.sql new file mode 100644 index 00000000..3e7b3045 --- /dev/null +++ b/migrations/0231.sql @@ -0,0 +1,33 @@ +DROP TRIGGER default_qu_conversions; +CREATE TRIGGER products_default_qu_conversions AFTER INSERT ON products +BEGIN + -- Create product specific 1:1 conversions when QU stock != QU purchase/consume/price + -- and when no default QU conversion apply + + -- with qu_id_stock != qu_id_purchase + INSERT INTO quantity_unit_conversions + (from_qu_id, to_qu_id, factor, product_id) + SELECT p.qu_id_purchase, p.qu_id_stock, 1, p.id + FROM products p + WHERE p.id = NEW.id + AND p.qu_id_stock != qu_id_purchase + AND NOT EXISTS(SELECT 1 FROM quantity_unit_conversions_resolved WHERE product_id = p.id AND from_qu_id = p.qu_id_stock AND to_qu_id = p.qu_id_purchase); + + -- with qu_id_stock != qu_id_consume + INSERT INTO quantity_unit_conversions + (from_qu_id, to_qu_id, factor, product_id) + SELECT p.qu_id_consume, p.qu_id_stock, 1, p.id + FROM products p + WHERE p.id = NEW.id + AND p.qu_id_stock != qu_id_consume + AND NOT EXISTS(SELECT 1 FROM quantity_unit_conversions_resolved WHERE product_id = p.id AND from_qu_id = p.qu_id_stock AND to_qu_id = p.qu_id_consume); + + -- with qu_id_stock != qu_id_price + INSERT INTO quantity_unit_conversions + (from_qu_id, to_qu_id, factor, product_id) + SELECT p.qu_id_price, p.qu_id_stock, 1, p.id + FROM products p + WHERE p.id = NEW.id + AND p.qu_id_stock != qu_id_price + AND NOT EXISTS(SELECT 1 FROM quantity_unit_conversions_resolved WHERE product_id = p.id AND from_qu_id = p.qu_id_stock AND to_qu_id = p.qu_id_price); +END;