SET TERM ^ ; CREATE OR ALTER procedure SPU_REPLICAR_TEMPO_MODELO_PECA ( MODELO_ORIGEM integer, PECA_ORIGEM integer, MODELO_DESTINO integer, PECA_DESTINO integer) as declare variable FLUXO_ID integer; declare variable TAMANHO integer; declare variable ORDEM integer; declare variable TEMPO numeric(15,4); declare variable TM numeric(15,4); declare variable OLD_FLUXO integer; declare variable GRUPO_ID integer; declare variable NEW_GRUPO_ID integer; declare variable COR_ID integer; BEGIN IF (EXISTS( SELECT FIRST 1 T.PECA FROM TBMODELO_FLUXO_PRODUCAO T WHERE T.MODELO_ID = :MODELO_ORIGEM AND T.PECA = :PECA_ORIGEM )) THEN BEGIN DELETE FROM TBMODELO_FLUXO_PRODUCAO T WHERE T.MODELO_ID = :MODELO_DESTINO AND T.PECA = :PECA_DESTINO; END ELSE BEGIN EXCEPTION "..." 'ID de Peça de Origem: '|| :PECA_ORIGEM ||' inválido para cópia.'; END OLD_FLUXO = 0; NEW_GRUPO_ID = 0; FOR SELECT T.FLUXO_ID, T.TAMANHO, T.ORDEM, T.TEMPO, T.TM, T.GRUPO_FLUXO_ID, T.COR_ID FROM TBMODELO_FLUXO_PRODUCAO T WHERE T.MODELO_ID = :MODELO_ORIGEM AND T.PECA = :PECA_ORIGEM ORDER BY T.GRUPO_FLUXO_ID INTO :FLUXO_ID, :TAMANHO, :ORDEM, :TEMPO, :TM, :GRUPO_ID, :COR_ID DO BEGIN IF (OLD_FLUXO <> GRUPO_ID) THEN NEW_GRUPO_ID = GEN_ID(GTBMODELO_FLUXO_PRODUCAO_GRUPO, 1); INSERT INTO TBMODELO_FLUXO_PRODUCAO (GRUPO_FLUXO_ID, MODELO_ID, FLUXO_ID, COR_ID, TAMANHO, ORDEM, TEMPO, TM, PECA) VALUES (:NEW_GRUPO_ID, :MODELO_DESTINO, :FLUXO_ID, :COR_ID, :TAMANHO, :ORDEM, :TEMPO, :TM, :PECA_DESTINO); OLD_FLUXO = GRUPO_ID; END END ^ SET TERM ; ^