SET TERM ^ ;

CREATE OR ALTER TRIGGER VEICULOS_DISPOSITIVOS_AI_PERIOD FOR VEICULOS_DISPOSITIVOS
ACTIVE AFTER INSERT POSITION 0
AS
DECLARE VARIABLE CODIGO INTEGER;
BEGIN
  IF ((NEW.CODIGOAVLS = 0)
      AND (NEW.REMOVIDO = 'F')) THEN
  BEGIN
    FOR
      SELECT VDP.CODIGO
        FROM VEICULOSDISPOSITIVOS_PERIODICO VDP
        INNER JOIN VEICULOS_DISPOSITIVOS VD ON VDP.CODIGOVEICULODISPOSITIVO = VD.CODIGO AND VD.REMOVIDO = 'T'
        WHERE VD.CODIGOVEICULO = NEW.CODIGOVEICULO
          AND VD.CODIGOAVLS = 0
          AND VD.CODIGO <> NEW.CODIGO
        INTO :CODIGO
    DO
    BEGIN
      DELETE FROM VEICULOSDISPOSITIVOS_PERIODICO
        WHERE CODIGO = :CODIGO;
    END
  END
END^

SET TERM ; ^

COMMENT ON TRIGGER VEICULOS_DISPOSITIVOS_AI_PERIOD IS '13.01.21 - Vitorino: Se for reassociação de veículo <troca de dispositivo> a referencia ao periódico anterior é apagado';

