aonestar
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
sp_tr_bind_registration_signature
Parameters
Name
Type
Mode
Definition
DECLARE v_register_id int; v_guest_id int; v_booking_id int; BEGIN IF TG_TABLE_NAME = 'registration' THEN v_register_id := NEW.id; v_guest_id := NEW.guest_id; v_booking_id := NEW.booking_id; ELSE -- register_guests v_register_id := NEW.register_id; v_guest_id := NEW.guest_id; SELECT booking_id INTO v_booking_id FROM public.registration WHERE id = NEW.register_id; END IF; IF v_booking_id IS NOT NULL AND v_guest_id IS NOT NULL THEN INSERT INTO public.guest_signature (register_id, guest_id, signature_url, signature_path, signed_time, signed_user) SELECT v_register_id, gs.guest_id, gs.signature_url, gs.signature_path, gs.signed_time, gs.signed_user FROM public.guest_signature gs WHERE gs.booking_id = v_booking_id AND gs.guest_id = v_guest_id ON CONFLICT (register_id, guest_id) WHERE register_id IS NOT NULL DO UPDATE SET signature_url = EXCLUDED.signature_url, signature_path = EXCLUDED.signature_path, signed_time = EXCLUDED.signed_time, signed_user = EXCLUDED.signed_user; END IF; RETURN NEW; END