All pastes #935745 Raw Edit

Mine

public text v1 · immutable
·published 2008-03-09 21:47 UTC
rendered paste body
create or replace trigger actualizar_venta
  after insert or update or delete on ventas   
  for each row
declare
  -- local variables here
  v_cantstock number(4);

  v_umbral number(4);
  v_provee varchar2(5);
  v_cant_actualizar number(4);
begin
   --inicializamos varibles
   select stock,umbral,cod_proveedor into v_cantstock,v_umbral,v_provee
   from productos
   where cod_producto = :new.cod_producto;
   
   --almacena la cantidad restante entre las unidades vendias y el stock
   v_cant_actualizar:= v_cantstock - :new.uni_vendidas;

   
   if inserting or updating then
      
      case
          when v_cant_actualizar < 0  then          
               raise_application_error (-20001,'Lo siento, pero no puedes vender tanto');
               
          when v_cantstock < v_umbral then 
               dbms_output.put_line('Se realizara un pedido, ya que las existencias estan por debajo del umbral');
               realizar_pedido(:new.cod_producto,((v_umbral*3)-v_cantstock),v_provee);
          else
               update productos
               set stock=v_cant_actualizar
               where cod_producto= :new.cod_producto;
       end case;   
                
   end if;
      
  
end actualizar_venta;