CREATE OR ALTER trigger ttbdefeito_transacao_item_b2i for tbdefeito_transacao_item
active before insert position 4
AS
declare variable familia_produto varchar(300);
declare variable familia_gp varchar(300);
declare variable desc_produto varchar(300);
declare variable decs_gp varchar(300);
begin
  if(new.produto_id > 0 and new.esteira_id > 0)then
  begin
     desc_produto = coalesce((select first 1 p.familia_codigo||'|'||p.codigo||' - '||p.descricao from tbproduto p where p.codigo = new.produto_id),'');
     decs_gp      = coalesce((select first 1 e.familia_codigo||'|'||e.codigo||' - '||e.descricao from tbesteira e where e.codigo = new.esteira_id),'');

     familia_produto = fn_array(desc_produto,1,'|');
     familia_gp      = fn_array(decs_gp     ,1,'|');

     desc_produto = fn_array(desc_produto,2,'|');
     decs_gp      = fn_array(decs_gp,2,'|');

     if(familia_produto <> familia_gp)then
     begin
        exception "..." 'O GRUPO DE PRODUCAO '||coalesce(decs_gp,'')||' NAO PRODUZ A FAMILIA '||coalesce(familia_produto,'')||' DE PRODUTOS ....................................................................................................';
     end
  end
end;
