ALTER TABLE TBDEFEITO_TRANSACAO_ITEM
ADD IGNORA_DATA_PRODUCAO INTEGER
DEFAULT 0^

CREATE OR ALTER TRIGGER TTBDEFEITO_TRANSACAO_ITEM_B1I FOR TBDEFEITO_TRANSACAO_ITEM
ACTIVE BEFORE INSERT POSITION 1
AS
declare variable vData Date;
Begin

  vData = Coalesce((Select First 1 F.Data_Producao From TbFamilia F, TbProduto P
                          Where P.Codigo = New.Produto_ID
                            and F.Codigo = P.Familia_Codigo),Cast('01.01.1900' as Date));

  if (:vData <> '01.01.1900' AND COALESCE(NEW.IGNORA_DATA_PRODUCAO,0) = 0) then
      Begin
      if (:vData <> New.Data) then
          Exception "..." 'Data de produção para registro de defeito inválida, a data liberada é '||
                          Extract(Day from vData)||'/'||Extract(Month from vData)||'/'||Extract(Year from vData);
      End

  IF(COALESCE(NEW.IGNORA_DATA_PRODUCAO,0) = 1)THEN
  BEGIN
     NEW.IGNORA_DATA_PRODUCAO = 0;
  END

  if ((Trim(NEW.PERFIL) = '') or (NEW.PERFIL IS NULL)) Then
      Begin
      NEW.PERFIL = Coalesce((Select First 1 M.Perfil From TbProduto P, TbModelo_Bloqueio M
                              Where P.Codigo    = New.Produto_ID
                                and M.Modelo_Id = P.Modelo_Codigo
                                and M.Cor_Id    = P.Cor_Codigo
                                and M.Tamanho   = New.Tamanho),'');
      END

End^