mirror of
				https://github.com/grocy/grocy.git
				synced 2025-10-31 10:46:36 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			SQL
		
	
	
	
	
	
| CREATE TRIGGER enforce_min_stock_amount_for_cumulated_childs_INS AFTER INSERT ON products
 | |
| BEGIN
 | |
| 	/*
 | |
| 		When a parent product has cumulate_min_stock_amount_of_sub_products enabled,
 | |
| 		the child should not have any min_stock_amount
 | |
| 	*/
 | |
| 
 | |
| 	UPDATE products
 | |
| 	SET min_stock_amount = 0
 | |
| 	WHERE id IN (
 | |
| 			SELECT
 | |
| 				p_child.id
 | |
| 			FROM products p_parent
 | |
| 			JOIN products p_child
 | |
| 				ON p_child.parent_product_id = p_parent.id
 | |
| 			WHERE p_parent.id = NEW.id
 | |
| 				AND IFNULL(p_parent.cumulate_min_stock_amount_of_sub_products, 0) = 1
 | |
| 			)
 | |
| 		AND min_stock_amount > 0;
 | |
| END;
 | |
| 
 | |
| CREATE TRIGGER enforce_min_stock_amount_for_cumulated_childs_UPD AFTER UPDATE ON products
 | |
| BEGIN
 | |
| 	/*
 | |
| 		When a parent product has cumulate_min_stock_amount_of_sub_products enabled,
 | |
| 		the child should not have any min_stock_amount
 | |
| 	*/
 | |
| 
 | |
| 	UPDATE products
 | |
| 	SET min_stock_amount = 0
 | |
| 	WHERE id IN (
 | |
| 			SELECT
 | |
| 				p_child.id
 | |
| 			FROM products p_parent
 | |
| 			JOIN products p_child
 | |
| 				ON p_child.parent_product_id = p_parent.id
 | |
| 			WHERE p_parent.id = NEW.id
 | |
| 				AND IFNULL(p_parent.cumulate_min_stock_amount_of_sub_products, 0) = 1
 | |
| 			)
 | |
| 		AND min_stock_amount > 0;
 | |
| END;
 | |
| 
 | |
| UPDATE products
 | |
| SET min_stock_amount = 0
 | |
| WHERE id IN (
 | |
| 	SELECT
 | |
| 		p_child.id
 | |
| 	FROM products p_parent
 | |
| 	JOIN products p_child
 | |
| 		ON p_child.parent_product_id = p_parent.id
 | |
| 	WHERE IFNULL(p_parent.cumulate_min_stock_amount_of_sub_products, 0) = 1
 | |
| 	)
 | |
| 	AND min_stock_amount > 0;
 |