grocy/migrations/0196.sql

22 lines
845 B
SQL

DROP TRIGGER userfield_values_special_handling_INS;
CREATE TRIGGER userfield_values_special_handling_INS AFTER INSERT ON userfield_values
BEGIN
-- Entity stock:
-- object_id is the transaction_id on insert -> replace it by the corresponding stock_id
INSERT OR REPLACE INTO userfield_values
(field_id, object_id, value)
SELECT uv.field_id, sl.stock_id, uv.value
FROM userfield_values uv
JOIN stock_log sl
ON uv.object_id = sl.transaction_id
AND sl.transaction_type IN ('purchase', 'inventory-correction', 'stock-edit-new')
WHERE uv.field_id IN (SELECT id FROM userfields WHERE entity = 'stock')
AND uv.field_id = NEW.field_id
AND uv.object_id = NEW.object_id;
DELETE FROM userfield_values
WHERE field_id IN (SELECT id FROM userfields WHERE entity = 'stock')
AND field_id = NEW.field_id
AND object_id = NEW.object_id;
END;