1 -- @tag: check_bin_belongs_to_wh_trigger
 
   2 -- @description: Trigger, um sicher zu stellen, dass ein angegebener Lagerplatz auch zum Lager gehört.
 
   3 -- @depends: delivery_orders warehouse
 
   5 CREATE FUNCTION check_bin_belongs_to_wh() RETURNS "trigger"
 
   7         IF NEW.bin_id IS NULL AND NEW.warehouse_id IS NULL THEN
 
  10         IF NEW.bin_id IN (SELECT id FROM bin WHERE warehouse_id = NEW.warehouse_id) THEN
 
  13           RAISE EXCEPTION ''bin (id=%) does not belong to warehouse (id=%).'', NEW.bin_id, NEW.warehouse_id;
 
  20 CREATE TRIGGER check_bin_wh_delivery_order_items_stock BEFORE INSERT OR UPDATE ON delivery_order_items_stock
 
  21   FOR EACH ROW EXECUTE PROCEDURE check_bin_belongs_to_wh();
 
  23 CREATE TRIGGER check_bin_wh_inventory BEFORE INSERT OR UPDATE ON inventory
 
  24   FOR EACH ROW EXECUTE PROCEDURE check_bin_belongs_to_wh();
 
  26 CREATE TRIGGER check_bin_wh_parts BEFORE INSERT OR UPDATE ON parts
 
  27   FOR EACH ROW EXECUTE PROCEDURE check_bin_belongs_to_wh();