aonestar
.public
Tables
(current)
Columns
Constraints
Relationships
Orphan Tables
Anomalies
Routines
sp_tr_deposit_save_log
Parameters
Name
Type
Mode
Definition
DECLARE old_text text; new_text text; payment TEXT; BEGIN IF NOT is_log_started() THEN RETURN NULL; END IF; CASE TG_OP WHEN 'INSERT' THEN payment := (SELECT name FROM department WHERE id = NEW.payment_id); new_text := payment|| ' @ '||NEW.amount; PERFORM sp_append_log('* Add deposit: '||new_text); WHEN 'UPDATE' THEN payment := (SELECT name FROM department WHERE id = OLD.payment_id); old_text := payment|| ' @ '||OLD.amount; IF (OLD.status <> NEW.status) AND (NEW.status = 'X') THEN PERFORM sp_append_log(E'* Cancel deposit: '||old_text); ELSIF (OLD.payment_id IS DISTINCT FROM NEW.payment_id) OR (OLD.amount IS DISTINCT FROM NEW.amount) THEN IF (OLD.payment_id <> NEW.payment_id) THEN payment := (SELECT name FROM department WHERE id = NEW.payment_id); END IF; new_text := payment|| ' @ '||NEW.amount; PERFORM sp_append_log(E'* Change deposit\n From: '||old_text||E'\n To : '||new_text); END IF; -- WHEN 'DELETE' THEN -- payment := (SELECT name FROM department WHERE id = OLD.payment_id); -- new_text := payment|| ' @ '||OLD.amount; -- PERFORM sp_append_log('* Delete deposit: '||old_text); -- ELSE END CASE; RETURN NULL; END