Creacion de una funcion que permitira buscar e ingresar un tipo de rotatividad, en el caso de que no existiera.
--creacion de una funcion para ingresar la rotatividad
create or replace function f_ingreso_rotatividad (tipo in varchar2)
return NUMBER as
err_num NUMBER;
err_msg VARCHAR2(255);
valor number;--contendra el valor id
begin
--se busca posible coincidencia
valor:=0;
select count(*) into valor from rotatividad
where rot_tipo_str = tipo;
if (valor=0) then
--se cuenta los item para sacar el id
tipo:=upper(tipo);
tipo:=trim(tipo);
select count(*) into valor from rotatividad;
insert into rotatividad values (valor, tipo);
valor:=1; --transaccion realizada enviara un uno
else
valor:=0; --transaccion con ERROR enviara un cero
end if;
return valor;
exception
--si ocurre algun error emviara cero
when OTHERS then
err_num := SQLCODE;
err_msg := SQLERRM;
DBMS_OUTPUT.put_line('Error:'||TO_CHAR(err_num));
DBMS_OUTPUT.put_line(err_msg);
return 0;
end f_ingreso_rotatividad;
creacion de una funcion para el ingreso de producto
create or replace function f_ingreso_producto
(codigo in number, descripcion in varchar2, marca in varchar2,
ultimo_stock in number, precio_publico in number, rotacion in number,
ubicacion in varchar2, stock in number, categoria in number,
tipo in number)
return number as
err_num number;
err_msg VARCHAR2(255);
begin
codigo :=upper(codigo);
insert into producto values (codigo, descripcion, marca,
ultimo_stock, precio_publico, rotacion,
ubicacion, stock, categoria,
tipo, 'V');
return 1;
exception
--si ocurre algun error emviara cero
when OTHERS then
err_num := SQLCODE;
err_msg := SQLERRM;
DBMS_OUTPUT.put_line('Error:'||TO_CHAR(err_num));
DBMS_OUTPUT.put_line(err_msg);
return 0;
end f_ingreso_producto;