Changes between Version 3 and Version 4 of Triggers


Ignore:
Timestamp:
08/21/25 00:14:41 (18 hours ago)
Author:
221071
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Triggers

    v3 v4  
    2929
    3030}}}
     31== 2. Тригери за суспендирање на рејтингот на станар при повеќекратни задоцнети плаќања
     32* Доколку станар има три или повеќе задоцнети плаќања низ сите негови изнајмувања, неговиот UserD.rating се поставува на 0, а во биографијата се додава напомена дека е суспендиран.
     33{{{
     34CREATE OR REPLACE FUNCTION suspend_rating_on_repeated_delinquency()
     35RETURNS TRIGGER AS $$
     36DECLARE
     37  tenant_rec domify.Lease%ROWTYPE;
     38  late_payments INT;
     39BEGIN
     40  SELECT * INTO tenant_rec FROM domify.Lease WHERE id = NEW.lease_id;
     41  IF FOUND THEN
     42    SELECT COUNT(*) INTO late_payments
     43      FROM domify.Payment p
     44      JOIN domify.Lease l ON p.lease_id = l.id
     45     WHERE l.tenant_id = tenant_rec.tenant_id AND p.status = 'доцнење';
     46
     47    IF late_payments >= 3 THEN
     48      UPDATE domify.UserD
     49         SET rating = 0.00,
     50             bio = 'Суспендиран станар поради повеќе доцнења на плаќање'
     51       WHERE id = (SELECT id FROM domify.UserD WHERE id = tenant_rec.tenant_id);
     52    END IF;
     53  END IF;
     54  RETURN NEW;
     55END;
     56$$ LANGUAGE plpgsql;
     57
     58CREATE TRIGGER trg_suspend_tenant_on_late_payments
     59AFTER INSERT OR UPDATE ON domify.Payment
     60FOR EACH ROW
     61WHEN (NEW.status = 'доцнење')
     62EXECUTE FUNCTION suspend_rating_on_repeated_delinquency();
     63}}}