aonestar
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
sp_assign_guest_document
Parameters
Name
Type
Mode
doc_id
integer
IN
register_id
integer
IN
create_new_guest
boolean
IN (DEFAULT true)
Definition
declare v_result json; v_msg_text text; v_sqlstate text; v_detail text; v_hint text; v_context text; v_doc_data jsonb; v_new_guest_id int; target_guest_id int = null; begin /* Assign document from specified doc_id to guest in-house record using specified register_id Create new guest profile if specified target_guest_id is null */ select doc_data from guest_document d where d.id = $1 order by id desc limit 1 into v_doc_data; if not create_new_guest then target_guest_id := (select r.guest_id from registration r where r.id = $2); end if; v_new_guest_id := sp_save_guest_document(v_doc_data, null, target_guest_id); update registration set guest_id = v_new_guest_id where id = $2; update guest_document set guest_id = v_new_guest_id --, tag = null where id = doc_id; update guest g set doc_id = $1 where g.id = v_new_guest_id; return fn_result_success(json_build_object('guest_id', v_new_guest_id)); exception when others then get stacked diagnostics v_msg_text = message_text, v_sqlstate = returned_sqlstate, v_detail = pg_exception_detail, v_hint = pg_exception_hint, v_context = pg_exception_context; return fn_handle_error( v_sqlstate, v_msg_text, v_detail, v_hint, v_context, 'sp_assign_guest_document', jsonb_build_object('doc_id', doc_id, 'register_id', register_id, 'create_new_guest', create_new_guest) ); end