Untitled

 avatar
unknown
sql
5 months ago
1.6 kB
3
Indexable
CREATE OR REPLACE TRIGGER "TRG_LOGOFERTAS"

  BEFORE UPDATE OF PRECOREVISTA, PVENDA1 ON PCTABPR
  REFERENCING OLD AS OLD NEW AS NEW
  FOR EACH ROW
declare
  vsmaquina  varchar2(80);
  vsusuario  varchar2(80);
  vsprograma varchar2(80);
begin

  vsmaquina  := SYS_CONTEXT('USERENV', 'TERMINAL');
  vsusuario  := SYS_CONTEXT('USERENV', 'OS_USER');
  vsprograma := SYS_CONTEXT('USERENV', 'MODULE');

  IF ((nvl(:OLD.PRECOREVISTA, 0) = 0) AND (:NEW.PRECOREVISTA > 0) AND
     (:NEW.PVENDA1 <> :OLD.PVENDA1)) THEN
    INSERT INTO LOGOFERTAS
    VALUES
      (SYSDATE,
       :NEW.NUMREGIAO,
       :NEW.CODPROD,
       :OLD.PRECOREVISTA,
       :NEW.PRECOREVISTA,
       :OLD.PVENDA1,
       :NEW.PVENDA1,
       'ENTROU',
       VSMAQUINA,
       VSUSUARIO,
       VSPROGRAMA);
  END IF;

  IF ((nvl(:NEW.PRECOREVISTA, 0) = 0) AND (:OLD.PRECOREVISTA > 0)) THEN
    INSERT INTO LOGOFERTAS
    VALUES
      (SYSDATE,
       :NEW.NUMREGIAO,
       :NEW.CODPROD,
       :OLD.PRECOREVISTA,
       :NEW.PRECOREVISTA,
       :OLD.PVENDA1,
       :NEW.PVENDA1,
       'SAIU',
       VSMAQUINA,
       VSUSUARIO,
       VSPROGRAMA);
  END IF;

  IF ((:OLD.PVENDA1 <> :NEW.PVENDA1) AND (:NEW.PRECOREVISTA > 0) AND
     (:NEW.PVENDA1 <> :OLD.PVENDA1)) THEN
    INSERT INTO LOGOFERTAS
    VALUES
      (SYSDATE,
       :NEW.NUMREGIAO,
       :NEW.CODPROD,
       :OLD.PRECOREVISTA,
       :NEW.PRECOREVISTA,
       :OLD.PVENDA1,
       :NEW.PVENDA1,
       'ALTEROU',
       VSMAQUINA,
       VSUSUARIO,
       VSPROGRAMA);
  
  END IF;

END;
  ---feito por Guilherm Eloi dia 09/08/2024
Editor is loading...
Leave a Comment