CREATE OR ALTER trigger ttbnfs_b2i_01 for tbnfs
active before insert position 2
AS
DECLARE VARIABLE CODIGO INTEGER;
DECLARE VARIABLE ESPECIE INTEGER;
Begin

  if (New.Situacao < 3) then --Sit.3 = Cancelada/Inutilizada
      Begin
        
        For
        Select
        Coalesce((
        Select First 1 IIF(NEW.EMPRESA_UF='EX',PAIS_CODIGO,CODIGOIBGE)
          From TbCidade
         Where UF = NEW.EMPRESA_UF
           and REPLACE(FN_REMOVE_ACENTOS(DESCRICAO), '''', '') = REPLACE(FN_REMOVE_ACENTOS(NEW.EMPRESA_CIDADE), '''', '')
        ),0),
        Coalesce((
        Select COUNT(*)
          From TbFISCAL_ESPECIE
         Where Codigo_Sped = NEW.ESPECIE
           and Codigo_Dief = NEW.MODELO
        ),0)
        from RDB$DATABASE
        Into :CODIGO, :ESPECIE
        Do
        begin
        
         if (:CODIGO = 0) Then
             Begin
             Exception "..." 'ATENÇÃO, CÓDIGO IBGE/PAÍS DA CIDADE/UF DO DESTINATÁRIO INVÁLIDA, OPERAÇÃO CANCELADA!  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
             end
        
         if (:ESPECIE = 0) Then
             Begin
             Exception "..." 'ATENÇÃO, ESPÉCIE DO DOCUMENTO INVÁLIDO OU NÃO CADASTRADO, OPERAÇÃO CANCELADA!  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ';
             end
        
        End

      End

End