Hola amigos,me preguntaba comos se podría hacer esto:
Teniendo las tablas productos,almacenes e inventario, en un DataGridView muestre el producto, almacén, las existencia iniciales,las entradas, las salidas y las existencias finales por día.
la tabla quedaría así:
PRODUCTO|ALMACEN|STOCK INICIAL|ENTRADAS|SALIDAS|STOCK FINAL|FECHA|
lo que necesito es que el STOCK INICIAL me lo guarde una sola vez y el los demás valores cambien dependiendo de cuanto entre y salga para que me de un valor final por día
por ejemplo al inicio del día hay 100 unidades, entran 20 mas, salen 80, y el finaliza con 40 unidades.
Código vb:
Ver original'Verificamos si exite un registro en movimientos
CADb = "SELECT id_almacen,id_producto,fecha FROM movimientos WHERE id_almacen='" & Convert.ToString(row.Cells("IDAlmacen").Value) & "' AND id_producto = '" & Convert.ToString(row.Cells("IDProducto").Value) & "' AND fecha='" & Convert.ToString(row.Cells("Fecha").Value) & "'"
da = New MySqlDataAdapter(CADb, Conexion)
dt = New DataTable
Try
da.Fill(dt)
Catch ex As Exception
MsgBox("Error :", ex.Message)
End Try
'Si existe recupéramos el stock inicial y realizamos las operaciones necesarias, si no el stock inicial queda como 0 ya que el producto es nuevo, por lo tanto no hay existencias
If dt.Rows.Count = 1 Then
Try
dt = New DataTable
CADa = "SELECT actual_bt,actual_kg FROM movimientos WHERE id_producto = ?id AND id_almacen= ?ida"
cmd = New MySqlCommand(CADa, Conexion)
cmd.Parameters.AddWithValue("?id", Convert.ToString(row.Cells("IDProducto").Value))
cmd.Parameters.AddWithValue("?id", Convert.ToString(row.Cells("IDAlmacen").Value))
da = New MySqlDataAdapter(cmd)
da.Fill(dt)
'Asignamos a Variable Eq el valor de equivalente
If dt.Rows.Count > 0 Then
x = dt.Rows(0).Item("actual_bt").ToString()
y = dt.Rows(0).Item("actual_kg").ToString()
End If
Catch ex As Exception
MsgBox("Error :", ex.Message)
End Try
ini =?
inik =?
en = b
enk = k
sal = 0
salk = 0
fin = ini + b
fink = inik + k
'Recuperamos el valor inicial de la BD, para poder realizar nuetras operacionde de conversión
CADc = "UPDATE movimientos SET inicial_bt=" & ini & "',inicial_kg=" & inik & "',entrada_bt='" & en & "',entrada_bt='" & enk & "',actual='" & fin & "',actual='" & fink & "' WHERE id_producto = '" & Convert.ToString(row.Cells("IDProducto").Value) & "' AND id_almacen='" & Convert.ToString(row.Cells("IDAlmacen").Value) & "'"
Try
'Abrimos la conexion
Conexion.Open()
'Asignamos el valor de la query a la variable cmd
cmd = New MySqlCommand(CADc, Conexion)
'Ejecutamos la query
cmd.ExecuteNonQuery()
'Cerramos conexion
Conexion.Close()
Catch ex As Exception
MsgBox("Error :", ex.Message)
Conexion.Close()
End Try
Else
ini = 0
inik = 0
en = b
enk = k
fin = b
fink = k
CADc = "INSERT INTO movimientos (id_producto,id_almacen,inicial_bt,inicial_kg,entrada_bt,entrada_kg,salida_bt,salida_kg,actual_bt,actual_kg,fecha) values ('" & Convert.ToString(row.Cells("IDProducto").Value) & "','" & Convert.ToString(row.Cells("IDAlmacen").Value) & "','" & ini & "','" & inik & "','" & en & "','" & enk & "','" & sal & "','" & salk & "','" & fin & "','" & fink & "','" & Convert.ToString(row.Cells("Fecha").Value) & "')"
Try
'Abrimos la conexion
Conexion.Open()
'Asignamos el valor de la query a la variable cmd
cmd = New MySqlCommand(CADc, Conexion)
'Ejecutamos la query
cmd.ExecuteNonQuery()
'Cerramos conexion
Conexion.Close()
Catch ex As Exception
MsgBox("Error :", ex.Message)
Conexion.Close()
End Try
End If
lo que necesito es que le valor inicial no cambie, si no hasta el siguiente día