Revision f1faf9a9
Von Bernd Bleßmann vor fast 11 Jahren hinzugefügt
sql/Pg-upgrade2/check_bin_belongs_to_wh_trigger.sql | ||
---|---|---|
-- @tag: check_bin_belongs_to_wh_trigger
|
||
-- @description: Trigger, um sicher zu stellen, dass ein angegebener Lagerplatz auch zum Lager gehört.
|
||
-- @depends: delivery_orders warehouse
|
||
-- @encoding: utf-8
|
||
|
||
CREATE FUNCTION check_bin_belongs_to_wh() RETURNS "trigger"
|
||
AS 'BEGIN
|
||
IF NEW.bin_id IS NULL AND NEW.warehouse_id IS NULL THEN
|
||
RETURN NEW;
|
||
END IF;
|
||
IF NEW.bin_id IN (SELECT id FROM bin WHERE warehouse_id = NEW.warehouse_id) THEN
|
||
RETURN NEW;
|
||
ELSE
|
||
RAISE EXCEPTION ''bin (id=%) does not belong to warehouse (id=%).'', NEW.bin_id, NEW.warehouse_id;
|
||
RETURN NULL;
|
||
END IF;
|
||
END;'
|
||
LANGUAGE plpgsql;
|
||
|
||
|
||
CREATE TRIGGER check_bin_wh_delivery_order_items_stock BEFORE INSERT OR UPDATE ON delivery_order_items_stock
|
||
FOR EACH ROW EXECUTE PROCEDURE check_bin_belongs_to_wh();
|
||
|
||
CREATE TRIGGER check_bin_wh_inventory BEFORE INSERT OR UPDATE ON inventory
|
||
FOR EACH ROW EXECUTE PROCEDURE check_bin_belongs_to_wh();
|
||
|
||
CREATE TRIGGER check_bin_wh_parts BEFORE INSERT OR UPDATE ON parts
|
||
FOR EACH ROW EXECUTE PROCEDURE check_bin_belongs_to_wh();
|
Auch abrufbar als: Unified diff
DB-Trigger, um sicher zu stellen, dass ein Lagerplatz auch zum Lager gehört.
Betrifft #2485.