SET TERM ^ ;

CREATE OR ALTER procedure SPUI_ITENS_INSUMO_COPY (
    PARAMETROS_INSUMO_ID_CP integer,
    PARAMETROS_INSUMO_ID integer)
as
declare variable PARAM_INSUMO_ITEM_ID_OLD integer;
declare variable PARAM_INSUMO_ITEM_ID_NEW integer;
declare variable DESCRICAO varchar(100);
declare variable TIPO_CAMPO integer;
BEGIN
    
    FOR SELECT
        T.ID,
        T.DESCRICAO,
        T.TIPO_CAMPO
    FROM TBPARAMETROS_INSUMO_ITEM T
    WHERE T.PARAMETROS_INSUMO_ID = :PARAMETROS_INSUMO_ID_CP
    INTO :PARAM_INSUMO_ITEM_ID_OLD, :DESCRICAO, :TIPO_CAMPO
    DO BEGIN

        INSERT INTO TBPARAMETROS_INSUMO_ITEM (PARAMETROS_INSUMO_ID, DESCRICAO, TIPO_CAMPO)
        VALUES (:PARAMETROS_INSUMO_ID, :DESCRICAO, :TIPO_CAMPO)
        RETURNING ID INTO :PARAM_INSUMO_ITEM_ID_NEW;

        
        IF(:TIPO_CAMPO = 5) THEN
        BEGIN

            INSERT INTO TBPARAMETROS_INSUMO_ITEM_LISTA (DESCRICAO, INSUMO_ITEM_ID)
            SELECT T.DESCRICAO, :PARAM_INSUMO_ITEM_ID_NEW
            FROM TBPARAMETROS_INSUMO_ITEM_LISTA T
            WHERE T.INSUMO_ITEM_ID = :PARAM_INSUMO_ITEM_ID_OLD;

        END


    END

END
^

SET TERM ; ^

