Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE OR REPLACE TRIGGER trg_update_stok
- AFTER INSERT OR DELETE OR UPDATE ON pesanan
- FOR EACH ROW
- DECLARE
- tmp_stok NUMERIC;
- BEGIN
- IF INSERTING THEN
- SELECT stok INTO tmp_stok FROM produk WHERE id_produk = :new.id_produk;
- IF (:new.jumlah <= tmp_stok) THEN
- UPDATE produk SET stok = (tmp_stok - :new.jumlah) WHERE id_produk = :new.id_produk;
- ELSE
- RAISE_APPLICATION_ERROR(-20000, 'Stok tidak mencukupi');
- END IF;
- ELSIF UPDATING THEN
- SELECT stok INTO tmp_stok FROM produk WHERE id_produk = :new.id_produk;
- IF (:new.jumlah <= tmp_stok + :old.jumlah) THEN
- UPDATE produk SET stok = ((tmp_stok + :old.jumlah) - :new.jumlah) WHERE id_produk = :old.id_produk;
- ELSE
- RAISE_APPLICATION_ERROR(-20000, 'Stok tidak mencukupi');
- END IF;
- ELSIF DELETING THEN
- UPDATE produk SET stok = (stok + :old.jumlah) WHERE id_produk = :old.id_produk;
- END IF;
- END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement