Changes between Version 6 and Version 7 of WikiStart/DB


Ignore:
Timestamp:
03/22/25 21:37:43 (2 months ago)
Author:
203206
Comment:

db4

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart/DB

    v6 v7  
    108108
    109109
     110{{{
     111CREATE OR REPLACE FUNCTION after_transaction_trigger2()
     112RETURNS TRIGGER AS $$
     113BEGIN
     114    IF NEW.type = 'Deposit' THEN
     115        -- Log deposit as a self-transfer
     116        INSERT INTO transfer(s_id, r_id)
     117        VALUES (NEW.account_id, NEW.account_id);
     118
     119    ELSIF NEW.type = 'Withdrawal' THEN
     120        -- Log withdrawal as a self-transfer
     121        INSERT INTO transfer(s_id, r_id)
     122        VALUES (NEW.account_id, NEW.account_id);
     123
     124    ELSIF NEW.type LIKE '(MKD) Transfer Out to%' OR
     125          NEW.type LIKE '(USD) Transfer Out to%' OR
     126          NEW.type LIKE '(EUR) Transfer Out to%' OR
     127          NEW.type LIKE '(GBP) Transfer Out to%' THEN
     128         
     129        -- Extract recipient username and insert into transfer table
     130        INSERT INTO transfer(s_id, r_id)
     131        SELECT NEW.account_id,
     132               (SELECT id FROM account
     133                WHERE username = TRIM(SUBSTRING(NEW.type FROM POSITION('Transfer Out to ' IN NEW.type) + 15))
     134                LIMIT 1);
     135
     136    END IF;
     137   
     138    RETURN NEW;
     139END;
     140$$ LANGUAGE plpgsql;
     141
     142CREATE TRIGGER after_transaction2
     143AFTER INSERT ON transaction
     144FOR EACH ROW
     145EXECUTE FUNCTION after_transaction_trigger2();
     146
     147
     148}}}
     149