none
actualizar un inventario RRS feed

  • Pregunta

  • buenas soy nuevo aqui. tengo unas cuantas consultas. estoy haciendo un almacen de productos de compra y venta. lo siguiente es nose como seria una venta en trigger. mis tablas son

    PRODUCTOS

    id_productos

    codigo_barra

    productos

    descripcion

    ubicacion

    PROVEEDOR

    id_proveedor

    proveedor

    telefono

    direccion

    PRODUCTO_PROVEEDOR

    id_productos

    id_proveedor

    cantidad

    precio_compra

    precio_venta

    STOCK_PRODUCTOS

    id_stock

    cantidad_total

    precio_total_compra

    precio_total_venta

    id_productos

    INSERTAR PRODUCTO TRIGGER INSERT PRODUCTO_PROVEEDOR

    begin
    declare resultado bigint;
    declare resultado1 bigINT;
       if EXISTS(select * from stock_productos WHERE id_productos = new.id_productos)then
        UPDATE stock_productos
        set cantidad_total = cantidad_total + new.cantidad, precio_total_compra = precio_total_compra + (new.cantidad * new.precio_compra), precio_total_venta = precio_total_venta + (new.cantidad * new.precio_venta)
        WHERE id_productos = new.id_productos;
    ELSE
     set resultado = (new.cantidad * new.precio_compra);
     set resultado1 = (new.cantidad * new.precio_venta);
     INSERT into stock_productos(id_productos, cantidad_total, precio_total_compra, precio_total_venta)
     VALUES (new.id_productos, new.cantidad, resultado, resultado1);
     end IF;
     end

    MODIFICAR TRIGGER UPDATE PRODUCTO_PROVEEDOR

    begin
    declare resultado bigint;
    declare resultado1 bigINT;

    if EXISTS(select * from stock_productos WHERE id_productos = new.id_productos)then
        UPDATE stock_productos
        set cantidad_total = cantidad_total - old.cantidad, precio_total_compra = precio_total_compra - (old.cantidad * old.precio_compra), precio_total_venta = precio_total_venta - (old.cantidad * old.precio_venta)
        WHERE id_productos = old.id_productos;
    ELSE
     set resultado = (new.cantidad * new.precio_compra);
     set resultado1 = (new.cantidad * new.precio_venta);
     INSERT into stock_productos(id_productos, cantidad_total, precio_total_compra, precio_total_venta)
     VALUES (old.id_productos, old.cantidad, resultado, resultado1);
     end IF;

       if EXISTS(select * from stock_productos WHERE id_productos = new.id_productos)then
        UPDATE stock_productos
        set cantidad_total = cantidad_total + new.cantidad, precio_total_compra = precio_total_compra + (new.cantidad * new.precio_compra), precio_total_venta = precio_total_venta + (new.cantidad * new.precio_venta)
        WHERE id_productos = new.id_productos;
    ELSE
     set resultado = (new.cantidad * new.precio_compra);
     set resultado1 = (new.cantidad * new.precio_venta);
     INSERT into stock_productos(id_productos, cantidad_total, precio_total_compra, precio_total_venta)
     VALUES (new.id_productos, new.cantidad, resultado, resultado1);
     end IF;
     end

    mi consulta es la siguiente como puedo hacer un trigger de venta.. por favor si alguien me ayudaaaaa!!!!!

    martes, 29 de noviembre de 2016 0:40

Todas las respuestas

  • jorgito240690,

    No deberías escribir un trigger para aumentar/disminuir el stock, es parte del proceso de una compra o una venta: insertas una venta y disminuyes el stock, insertas una compra e incrementas el stock, ambas operaciones enmarcadas como una unidad transaccional.


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    martes, 29 de noviembre de 2016 4:47