aonestar
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
sp_more_guest_assign_passport_json
Parameters
Name
Type
Mode
p_data
jsonb
IN
i_photo
bytea
IN (DEFAULT NULL)
Definition
DECLARE v_msg_text text; v_sqlstate text; v_detail text; v_hint text; v_context text; v_register_id integer := (p_data->>'register_id')::integer; v_doc_id integer; v_doc_data jsonb; v_new_guest_id integer; v_new_guests integer[] := '{}'; BEGIN FOR v_doc_id, v_doc_data IN SELECT d.id, d.doc_data FROM jsonb_to_recordset(p_data->'moreguest') AS m(guest_doc_id integer) JOIN guest_document d ON d.id = m.guest_doc_id LOOP v_new_guest_id := sp_save_guest_document(v_doc_data); v_new_guests := v_new_guests || v_new_guest_id; INSERT INTO register_guests(register_id, guest_id) VALUES (v_register_id, v_new_guest_id) ON CONFLICT (register_id, guest_id) DO NOTHING; UPDATE guest_document SET guest_id = v_new_guest_id, pending_assignment = false, assign_time = current_timestamp WHERE id = v_doc_id; UPDATE guest SET doc_id = v_doc_id WHERE id = v_new_guest_id; END LOOP; RETURN fn_result_success(json_build_object('guest_id', v_new_guests)); 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_more_guest_assign_passport_json', p_data); END