Vai al contenuto

# F_GET_COSTO_ARTICOLO

## Codice Sorgente

    function f_get_costo_articolo(p_cod_articolo varchar2, p_date date)
    return number
    as
        v_costo number := null;
    begin

        -- Cerco il costo alla data
        begin
            SELECT a.costo_uni
            into v_costo
            FROM COSTI_ARTICOLI a
            where a.data_costo = p_date
            and a.cod_articolo = p_cod_articolo;
        exception when no_data_found then
            v_costo := null;
        end;

        -- Se non lo trovo prendo l'ultimo costo
        begin
            SELECT a.costo_uni
            into v_costo
            FROM COSTI_ARTICOLI a
            WHERE a.DATA_COSTO = (SELECT max(b.DATA_COSTO) FROM COSTI_ARTICOLI b where b.cod_articolo = a.cod_articolo)
            and a.cod_articolo = p_cod_articolo;
        exception when no_data_found then
            v_costo := null;
        end;

        -- se non trovo niente torno 0
        return nvl(v_costo, 0);
    end;