SET TERM ^ ;

CREATE OR ALTER trigger tbdefeito_transacao_item_bi099 for tbdefeito_transacao_item
active after insert position 0
as
declare variable remessa integer;
declare variable origem varchar(10);
declare variable quantidade_defeito_talao integer;
begin
    
   :remessa = (select first 1 p.remessa from tbpedido_item_processado p where p.controle = new.talao_detalhe_id);


  :origem = (select first 1 r.origem from tbremessa r where r.numero = :remessa);
                               
--   exception "..." :origem;

  if(:origem = '22595') then
  begin
    
    :quantidade_defeito_talao = cast((select sum(d.quantidade) from tbdefeito_transacao_item d where d.talao_detalhe_id = new.talao_detalhe_id and d.classificacao > 2) as integer);

    if(:quantidade_defeito_talao > 0)then
    begin

        update tbpedido_item_processado p
            set p.quantidade_defeito = :quantidade_defeito_talao
        where p.controle = new.talao_detalhe_id ;

    end

  end

end
^

SET TERM ; ^

