Fixed initial product QU conversion handling (fixes #2312)

This commit is contained in:
Bernd Bestel 2023-08-16 17:05:18 +02:00
parent a965d01fb9
commit 03f9ba45ea
No known key found for this signature in database
GPG Key ID: 71BD34C0D4891300

33
migrations/0231.sql Normal file
View File

@ -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;