-- DERECHOS DE AUTOR ING. MARCO T. GONZALEZ
-- DESARROLLO CREATIVO S.A.
-- LICENCIA DE USO A DENEINSA
-- SECRETO COMERCIAL PROTEGIDO POR ACUERDO DE NO DIVULGACION

CREATE OR REPLACE TRIGGER ACTUALIZA_EVENTO
AFTER INSERT OR DELETE ON VenEventoAlisto
FOR EACH ROW
Declare
   Eventos varchar2(18):=':AI:AT:C :EI:ET:T ';

   Function Pred(eve in varchar2) return varchar2 is
      Vpos number(2);
   begin
      Vpos:=InStr(Eventos, ':'||Eve);
      if Vpos>1 then
         return rtrim(substr(Eventos, Vpos-2, 2));
      else
         return null;
      end if;
   end;

   procedure Actualizar(Pcia in char, Psuc in char, Pdoc in number, Peve in varchar2) is
   Begin
      update venalisto
         Set ultEvento=Peve 
      where cia=Pcia
        and sucursal=Psuc
        and documento=Pdoc;
   End;

BEGIN
   If Inserting Then
      Actualizar(:new.cia, :new.sucursal, :new.documento, :new.tipo);
   elsif Deleting then
      Actualizar(:old.cia, :old.sucursal, :old.documento, Pred(:old.tipo));
   end if;
END;
/
