grocy/migrations/0231.sql

34 lines
1.4 KiB
SQL

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;