merchant

Merchant backend to process payments, run by merchants
Log | Files | Refs | Submodules | README | LICENSE

commit f92a67b1f2a9109b30ae26169496c8a99ef3be8e
parent b476f8aef4b07f25b362a24d1419398feff30a3f
Author: Christian Grothoff <christian@grothoff.org>
Date:   Mon,  5 Jan 2026 12:20:13 +0100

fix statistics trigger

Diffstat:
Msrc/backenddb/merchant-0028.sql | 54+++++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 43 insertions(+), 11 deletions(-)

diff --git a/src/backenddb/merchant-0028.sql b/src/backenddb/merchant-0028.sql @@ -171,17 +171,45 @@ AS $$ DECLARE my_instance INT8; BEGIN - SELECT mct.merchant_serial - INTO my_instance - FROM merchant_expected_transfers met - JOIN merchant_accounts ma - USING (account_serial) - WHERE met.expected_credit_serial = NEW.expected_credit_serial; - CALL merchant_do_bump_amount_stat - ('wire-fees-paid' - ,my_instance - ,CURRENT_TIMESTAMP(0)::TIMESTAMP - ,NEW.wire_fee); + IF NEW.wire_fee IS NOT NULL + THEN + SELECT ma.merchant_serial + INTO my_instance + FROM merchant_expected_transfers met + JOIN merchant_accounts ma + USING (account_serial) + WHERE met.expected_credit_serial = NEW.expected_credit_serial; + CALL merchant_do_bump_amount_stat + ('wire-fees-paid' + ,my_instance + ,CURRENT_TIMESTAMP(0)::TIMESTAMP + ,NEW.wire_fee); + END IF; + RETURN NEW; +END $$; + + +CREATE FUNCTION merchant_expected_transfers_update_statistics_trigger() +RETURNS trigger +LANGUAGE plpgsql +AS $$ +DECLARE + my_instance INT8; +BEGIN + IF NEW.wire_fee IS NOT NULL AND OLD.wire_fee IS NULL + THEN + SELECT ma.merchant_serial + INTO my_instance + FROM merchant_expected_transfers met + JOIN merchant_accounts ma + USING (account_serial) + WHERE met.expected_credit_serial = NEW.expected_credit_serial; + CALL merchant_do_bump_amount_stat + ('wire-fees-paid' + ,my_instance + ,CURRENT_TIMESTAMP(0)::TIMESTAMP + ,NEW.wire_fee); + END IF; RETURN NEW; END $$; @@ -191,6 +219,10 @@ CREATE TRIGGER merchant_expected_transfers_on_insert_statistic AFTER INSERT ON merchant_expected_transfers FOR EACH ROW EXECUTE FUNCTION merchant_expected_transfers_insert_statistics_trigger(); +CREATE TRIGGER merchant_expected_transfers_on_update_statistic + AFTER INSERT + ON merchant_expected_transfers + FOR EACH ROW EXECUTE FUNCTION merchant_expected_transfers_update_statistics_trigger();