SET TERM ^ ; CREATE OR ALTER procedure SPC_MAPEIA_DEFEITO_SLS ( IN_TALAO integer, SO_TERCEIRA integer = 0, CONSULTAR_VINCULADOS integer = 0) returns ( OUT_DEFEITO_ITEM integer, OUT_TALAO integer, OUT_DEFEITO_ID integer, OUT_REMESSA integer, OUT_QUANTIDADE integer, OUT_CLASSIFICACAO integer) as declare variable TALAO integer; declare variable REMESSA integer = 0; declare variable ROMANEIO integer = 0; declare variable NEXT_TALAO integer; declare variable R_CAIXA integer; declare variable R_ROMANEIO integer; declare variable R_TINT_ITEM integer; declare variable R_TALAO integer; declare variable R_REMESSA integer; declare variable R_QUANTIDADE integer; begin for select d.id, d.defeito_id, d.talao_detalhe_id, d.remessa, d.classificacao, sum(d.quantidade) over (partition by d.defeito_id) as quantidade from tbdefeito_transacao_item d where d.talao_detalhe_id = :in_talao and iif(:SO_TERCEIRA = 1, d.classificacao > 2 ,true) into :out_defeito_item, :out_defeito_id, :out_talao, :out_remessa, :out_classificacao, :out_quantidade do begin suspend; end if(:consultar_vinculados = 1) then begin for select v.remessa_talao_detalhe_id from tbremessa_consumo_vinculo v, tbremessa_consumo c where c.id = v.consumo_id and c.talao_detalhe_id = :in_talao into :talao do begin if(coalesce(:talao, 0) > 0) then begin for select out_defeito_item, out_defeito_id, out_talao, out_remessa, out_classificacao, out_quantidade from spc_mapeia_DEFEITO_sls(:talao, :so_terceira) into :out_defeito_item, :out_defeito_id, :out_talao, :out_remessa, :out_classificacao, :out_quantidade do begin suspend; end end end end end ^ SET TERM ; ^