aonestar
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
sp_verify_folio
Parameters
Name
Type
Mode
item_id
integer
IN
folio_id
integer
IN (DEFAULT NULL)
Definition
DECLARE _register_status char(1); _folio_status char(1); _folio_locked bool; _folio_closed bool; _folio_seq int; messages jsonb = $${ "30103" : "Guest account checked out", "30112" : "Folio closed", "30107" : "Folio locked", "30105" : "Folio %s does not exist", "30106" : "Folio %s is already closed", "90001" : "End-day process in progress" }$$; BEGIN -- if (fn_check_endday_processing() = false) THEN -- RETURN fn_result_error('90001', messages->>'90001'); -- END IF; IF item_id IS NOT NULL THEN SELECT COALESCE($2, fi.folio_id), folio_seq, fi.closed FROM folio_items fi WHERE fi.item_id = $1 INTO folio_id, _folio_seq, _folio_closed; CASE WHEN _folio_seq IS NULL THEN RETURN fn_result_error('30105', messages->>'30105', $1::text); -- Folio item does not exist WHEN _folio_closed THEN RETURN fn_result_error('30106', messages->>'30106', folio_id::text||'/'||_folio_seq::text); -- Folio item already closed ELSE END CASE; END IF; SELECT rg.status, f.status, f.folio_locked FROM folio f LEFT JOIN registration rg ON rg.id = f.register_id WHERE f.id = $2 INTO _register_status, _folio_status, _folio_locked; CASE WHEN (_register_status is null or _register_status <> 'I') then RETURN fn_result_error('30103', messages->>'30103'); -- guest already checked out WHEN (_folio_status = 'C') THEN RETURN fn_result_error('30112', messages->>'30112'); -- Folio already closed WHEN (_folio_locked) THEN RETURN fn_result_error('30107', messages->>'30107'); -- Folio is locked ELSE END CASE; RETURN NULL; END