Prevent non-number amounts for shopping list items on database level (closes #2657)

This commit is contained in:
Bernd Bestel
2025-01-30 19:42:56 +01:00
parent a177e2a185
commit c8ac094bf4
3 changed files with 36 additions and 4 deletions

35
migrations/0250.sql Normal file
View File

@@ -0,0 +1,35 @@
DROP TRIGGER shopping_list_qu_id_default;
CREATE TRIGGER shopping_list_defaults_INS AFTER INSERT ON shopping_list
BEGIN
UPDATE shopping_list
SET qu_id = (SELECT qu_id_purchase FROM products WHERE id = product_id)
WHERE IFNULL(qu_id, '') = ''
AND id = NEW.id;
UPDATE shopping_list
SET amount = 1
WHERE TYPEOF(amount) NOT IN ('integer', 'real')
AND id = NEW.id;
END;
CREATE TRIGGER shopping_list_defaults_UPD AFTER UPDATE ON shopping_list
BEGIN
UPDATE shopping_list
SET qu_id = (SELECT qu_id_purchase FROM products WHERE id = product_id)
WHERE IFNULL(qu_id, '') = ''
AND id = NEW.id;
UPDATE shopping_list
SET amount = 1
WHERE TYPEOF(amount) NOT IN ('integer', 'real')
AND id = NEW.id;
END;
UPDATE shopping_list
SET qu_id = (SELECT qu_id_purchase FROM products WHERE id = product_id)
WHERE IFNULL(qu_id, '') = '';
UPDATE shopping_list
SET amount = 1
WHERE TYPEOF(amount) NOT IN ('integer', 'real');