aonestar
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
sp_tr_deposit_init
Parameters
Name
Type
Mode
Definition
DECLARE _post_result json; _folio_id int; _folio_seq int; BEGIN IF fn_sys_param('DEPOSIT', 'OPEN_FOLIO', TRUE) THEN NEW.payment_id := COALESCE(NEW.payment_id, fn_sys_param('DEPOSIT', 'DEFAULT_PAYMENT_ID', -99)); IF (NEW.payment_id IS NOT NULL AND NEW.payment_id <> -99) THEN IF (NEW.booking_id IS NOT NULL) THEN _folio_id := (SELECT COALESCE(b.folio_id, sp_create_booking_folio(NEW.booking_id)) FROM booking b WHERE b.id = NEW.booking_id); ELSE _folio_id := (SELECT r.folio_id FROM registration r WHERE r.id = NEW.register_id); END IF; _folio_seq := fn_get_target_folio_seq(_folio_id, NEW.payment_id, TRUE); IF _folio_seq IS NULL THEN PERFORM sp_create_folio_item(_folio_id, 1, 'Deposit'); _folio_seq := 1; END IF; _post_result := sp_make_payment(_folio_id, _folio_seq, NEW.payment_id, NEW.amount, NULL, NULL, NEW.id::TEXT, NEW.remark, post_flag => 'D'); CASE _post_result->>'result_code' WHEN '4' THEN RAISE EXCEPTION SQLSTATE '99999' USING message = E'Post deposit error\n'||(_post_result->>'result_msg'); ELSE NEW.deposit_tran_id := (_post_result->'result_data'->>'id')::int; END CASE; -- PERFORM sp_log_debug('sp_tr_deposit_init', 'post_result = '||jsonb_pretty(_post_result::jsonb)); END IF; END IF; RETURN NEW; END