aonestar
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
sp_tr_sales_target_validate_segment
Parameters
Name
Type
Mode
Definition
DECLARE v_table text; v_enabled boolean; BEGIN IF NEW.segment_type = 'overall' THEN RETURN NEW; END IF; IF TG_OP = 'UPDATE' AND OLD.segment_type = NEW.segment_type AND OLD.segment_id = NEW.segment_id THEN RETURN NEW; END IF; v_table := CASE NEW.segment_type WHEN 'sales_staff' THEN 'sales_staff' WHEN 'room_type' THEN 'room_type' WHEN 'rate_plan' THEN 'rate_plan' ELSE NEW.segment_type END; EXECUTE format('SELECT enabled FROM public.%I WHERE id = $1 FOR KEY SHARE', v_table) INTO v_enabled USING NEW.segment_id; IF v_enabled IS DISTINCT FROM true THEN RAISE EXCEPTION 'Segment %/% does not exist or is disabled', NEW.segment_type, NEW.segment_id USING ERRCODE = '23503'; END IF; RETURN NEW; END