aonestar
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
sp_tr_folio_init
Parameters
Name
Type
Mode
Definition
DECLARE title_name text; BEGIN NEW.folio_pattern_id := coalesce(NEW.folio_pattern_id, fn_default('FOLIO_PATTERN')::int); NEW.split_room_charge := coalesce(NEW.split_room_charge, (SELECT split_room_charge FROM folio_pattern fp WHERE id = NEW.folio_pattern_id)); -- Copy items from folio pattern INSERT INTO folio_items(folio_id, folio_seq, folio_name) SELECT NEW.id, f.folio_seq, f."name" FROM folio_pattern_seq f WHERE f.pattern_id = NEW.folio_pattern_id; -- Copy item's details from folio pattern INSERT INTO folio_details(folio_id, folio_seq, dept_id) SELECT NEW.id, d.folio_seq, d.dept_id FROM folio_pattern_details d WHERE d.pattern_id = NEW.folio_pattern_id; -- Generate default folio items (Master and Extra) if no item exists in folio pattern IF NOT EXISTS(SELECT * FROM folio_items WHERE folio_id = NEW.id) THEN INSERT INTO folio_items(folio_id, folio_seq, folio_name) VALUES (NEW.id, 1, 'Master'); INSERT INTO folio_items(folio_id, folio_seq, folio_name) VALUES (NEW.id, 2, 'Extra'); END IF; -- Add all departments to folio sequence 1, if no department assigned to folio pattern IF NOT EXISTS(SELECT * FROM folio_details WHERE folio_id = NEW.id) THEN INSERT INTO folio_details(folio_id, folio_seq, dept_id) SELECT NEW.id, 1, d.id FROM department d WHERE post_type = 'P'; END IF; RETURN NEW; END