none
Codigo para restar del stock y avisar si esta bajo algún producto RRS feed

  • Pregunta

  • Buenas noches, estoy haciendo un programa que guarda formulas y ademas genera ordenes de producción, al momento de generar la orden de producción necesito restar de mi inventario todos las materias primas (Kilos) que componen la formula, estas están en un datagridview ya tengo el código que me guarda la orden pero no me resta del inventario, ademas necesito que me avise si esta el stock por debajo del mínimo y si la cantidad necesaria no esta en el inventario no me deje procesar la orden, en resumen:

    1) Restar del inventario materias primas (Kilos) presentes en datagridview al generar la orden

    2)Avisar comparando con la existencia y el mínimo en un campo si esta por debajo

    3)Y si lo que tengo en mi stock no es suficiente no procesar la orden

    Encontré este código pero esta en Sql y no se como usarlo en Access 2010 BD que estoy usando, ademas nose si esta bien:

     Try
                conexion.Open()
                Dim restar As String = "update producto set stock = stock - @cantidad where IdCodigo= @Codigo"
                Dim cmd As New SqlCommand(restar, conexion)
    
                For Each row As DataGridViewRow In dgvFactura.Rows
                    Dim Codigo As String = CStr((row.Cells("IdCodigo").Value))
                    Dim Cantidad As Integer = CInt(row.Cells("Cantidad").Value)
    
                    cmd.Parameters.Clear()
    
                    cmd.Parameters.AddWithValue("@Codigo", Codigo)
                    cmd.Parameters.AddWithValue("@cantidad", Cantidad)
    
                    cmd.ExecuteNonQuery()
    
                Next
    
                conexion.Close()
    
            Catch ex As Exception
                MsgBox(ex.Message.ToString)
            End Try

    • Cambiado Enrique M. Montejo sábado, 9 de enero de 2016 9:38 Pregunta relacionada con el acceso a datos con Access.
    miércoles, 6 de enero de 2016 3:22

Todas las respuestas

  • Estimado jesus g b m la parte de código que estas usando osea actualizar el stock de un producto es correcto (Solo deberías de adaptarlo a Access, en este caso la sentencia update no varia), para poder advertir al usuario de que esta quedando poca cantidad de producto, eso lo defines tu por que digamos que yo puedo considerar que un producto esta sin mucho stock cuando solo encuentro 10 productos por ejemplo, pero en tu caso puede que el limite para poder informar el auge de stock puede ser de 3, 4, 5, 6, etc.

    Un consejo o sugerencia seria que la fila del producto que tiene poco stock se pinte de color rojo o un color que tu califiques que signifique que esta quedándose sin stock.

    Para cambiar el color de la fila deberías de leer el siguiente articulo:

    How to change row color in datagridview?

    Update database access , c#

    Espero haberte ayudado. Saludos.

    • Editado Aldair Cosetito miércoles, 6 de enero de 2016 6:38
    • Propuesto como respuesta Mareli Hdz miércoles, 7 de agosto de 2019 19:52
    miércoles, 6 de enero de 2016 6:32
  • Gracias por responder, aunque no se muestra en el datagridview tengo un campo en la tabla de inventario que me define la cantidad mínima para el stock pero no se como hacer la consulta y comparar el campo que define el mínimo con los kilos del datagridview
    miércoles, 6 de enero de 2016 23:24
  • jesus g b m deberías de realizar es en un select realizar la comparación de la cantidad en stock que tiene una materia prima con tu stock mínimo, si el stock de la materia prima es menor que la cantidad de stock mínimo, entonces debería de mostrarte una advertencia.

    Toma de ejemplo el siguiente query:

    - Estoy tomando al valor 3 como el stock mínimo para todos los productos, en tu caso deberás de reemplazar el valor 3 por tu campo que contiene el valor del stock mínimo de la materia prima definida.

    select 
    IdProducto, NombreProducto, UnidadesEnExistencia,
    case when 3 > UnidadesEnExistencia
    then
    'Quedando sin stock'
    else
    'Stock suficiente'
    end
    as [Mensaje Advertencia]
    from Productos
    

    Listarías con todo y ese campo nuevo en el control Datagridview, otra manera de poder realizar lo que estas necesitando es que cuando se realice un proceso de registro que compare si la cantidad del stock es menor a la cantidad de stock mínimo de la materia prima, si llegase a ser menor que a través de una ventana de mensajes te muestre "El producto XYZ, se esta quedando sin stock para las ventas".

    Espero haberte ayudado. Saludos.


    miércoles, 6 de enero de 2016 23:52