aonestar
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
sp_tr_booking_items_save_log
Parameters
Name
Type
Mode
Definition
DECLARE old_text text; new_text text; roomtype TEXT; bedtype TEXT; rate TEXT; BEGIN IF NOT is_log_started() THEN RETURN NULL; END IF; CASE TG_OP WHEN 'INSERT' THEN rate := (SELECT name FROM rate_plan WHERE id = NEW.rateplan_id); roomtype := (SELECT code FROM room_type WHERE id = NEW.roomtype_id); bedtype := CASE WHEN NEW.bedtype_id IS NULL THEN NULL ELSE (SELECT code FROM bed_type WHERE id = NEW.bedtype_id) END; new_text := fn_accommodation(roomtype, bedtype, NEW.qty, rate, NEW.arrival, NEW.departure); PERFORM sp_append_log('* Add '||new_text); WHEN 'UPDATE' THEN IF (OLD.roomtype_id IS DISTINCT FROM NEW.roomtype_id) OR (OLD.bedtype_id IS DISTINCT FROM NEW.bedtype_id) OR (OLD.rateplan_id IS DISTINCT FROM NEW.rateplan_id) OR (OLD.qty IS DISTINCT FROM NEW.qty) OR (OLD.arrival IS DISTINCT FROM NEW.arrival) OR (OLD.departure IS DISTINCT FROM NEW.departure) THEN rate := (SELECT name FROM rate_plan WHERE id = NEW.rateplan_id); roomtype := (SELECT code FROM room_type WHERE id = NEW.roomtype_id); bedtype := CASE WHEN NEW.bedtype_id IS NULL THEN NULL ELSE (SELECT code FROM bed_type WHERE id = NEW.bedtype_id) END; new_text := fn_accommodation(roomtype, bedtype, NEW.qty, rate, NEW.arrival, NEW.departure); IF (OLD.rateplan_id <> NEW.rateplan_id) THEN rate := (SELECT name FROM rate_plan WHERE id = OLD.rateplan_id); END IF; IF (OLD.roomtype_id <> NEW.roomtype_id) THEN roomtype := (SELECT code FROM room_type WHERE id = OLD.roomtype_id); END IF; bedtype := CASE WHEN OLD.bedtype_id IS NULL THEN NULL WHEN OLD.bedtype_id IS NOT DISTINCT FROM NEW.bedtype_id THEN bedtype ELSE (SELECT code FROM bed_type WHERE id = OLD.bedtype_id) END; old_text := fn_accommodation(roomtype, bedtype, OLD.qty, rate, OLD.arrival, OLD.departure); PERFORM sp_append_log(E'* Change Details\n From: '||old_text||E'\n To : '||new_text); END IF; WHEN 'DELETE' THEN rate := (SELECT name FROM rate_plan WHERE id = OLD.rateplan_id); roomtype := (SELECT code FROM room_type WHERE id = OLD.roomtype_id); bedtype := CASE WHEN OLD.bedtype_id IS NULL THEN NULL ELSE (SELECT code FROM bed_type WHERE id = OLD.bedtype_id) END; old_text := fn_accommodation(roomtype, bedtype, OLD.qty, rate, OLD.arrival, OLD.departure); PERFORM sp_append_log('* Delete '||old_text); ELSE END CASE; RETURN NULL; END