38 lines
884 B
Markdown
38 lines
884 B
Markdown
# F_GET_COSTO_ARTICOLO
|
|
|
|
## Codice Sorgente
|
|
|
|
```sql
|
|
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;
|
|
```
|