Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/04/2012, 13:45
Avatar de UNDR4
UNDR4
 
Fecha de Ingreso: marzo-2012
Ubicación: Death Valley
Mensajes: 46
Antigüedad: 12 años, 8 meses
Puntos: 2
Pregunta [VB.NET-MySQL]Valores por dia

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
  1. 'Verificamos si exite un registro en movimientos
  2.            
  3.             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) & "'"
  4.             da = New MySqlDataAdapter(CADb, Conexion)
  5.             dt = New DataTable
  6.             Try
  7.                 da.Fill(dt)
  8.             Catch ex As Exception
  9.                 MsgBox("Error :", ex.Message)
  10.             End Try
  11.             '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
  12.            If dt.Rows.Count = 1 Then
  13.                 Try
  14.                     dt = New DataTable
  15.                     CADa = "SELECT actual_bt,actual_kg FROM movimientos WHERE id_producto = ?id AND id_almacen= ?ida"
  16.                     cmd = New MySqlCommand(CADa, Conexion)
  17.                     cmd.Parameters.AddWithValue("?id", Convert.ToString(row.Cells("IDProducto").Value))
  18.                     cmd.Parameters.AddWithValue("?id", Convert.ToString(row.Cells("IDAlmacen").Value))
  19.                     da = New MySqlDataAdapter(cmd)
  20.                     da.Fill(dt)
  21.                     'Asignamos a Variable Eq el valor de equivalente
  22.                    If dt.Rows.Count > 0 Then
  23.                         x = dt.Rows(0).Item("actual_bt").ToString()
  24.                         y = dt.Rows(0).Item("actual_kg").ToString()
  25.                     End If
  26.                 Catch ex As Exception
  27.                     MsgBox("Error :", ex.Message)
  28.                 End Try
  29.                 ini =?
  30.                 inik =?
  31.                 en = b
  32.                 enk = k
  33.                 sal = 0
  34.                 salk = 0
  35.                 fin = ini + b
  36.                 fink = inik + k
  37.                 'Recuperamos el valor inicial de la BD, para poder realizar nuetras operacionde de conversión
  38.                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) & "'"
  39.                 Try
  40.                     'Abrimos la conexion
  41.                    Conexion.Open()
  42.                     'Asignamos el valor de la query a la variable cmd
  43.                    cmd = New MySqlCommand(CADc, Conexion)
  44.                     'Ejecutamos la query
  45.                    cmd.ExecuteNonQuery()
  46.                     'Cerramos conexion
  47.                    Conexion.Close()
  48.                 Catch ex As Exception
  49.                     MsgBox("Error :", ex.Message)
  50.                     Conexion.Close()
  51.                 End Try
  52.             Else
  53.                 ini = 0
  54.                 inik = 0
  55.                 en = b
  56.                 enk = k
  57.                 fin = b
  58.                 fink = k
  59.                 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) & "')"
  60.                 Try
  61.                     'Abrimos la conexion
  62.                    Conexion.Open()
  63.                     'Asignamos el valor de la query a la variable cmd
  64.                    cmd = New MySqlCommand(CADc, Conexion)
  65.                     'Ejecutamos la query
  66.                    cmd.ExecuteNonQuery()
  67.                     'Cerramos conexion
  68.                    Conexion.Close()
  69.                 Catch ex As Exception
  70.                     MsgBox("Error :", ex.Message)
  71.                     Conexion.Close()
  72.                 End Try
  73.             End If

lo que necesito es que le valor inicial no cambie, si no hasta el siguiente día
__________________
†UNDR4†
Un programador es un mamífero nocturno de ojos rojos capaz de conversar con objetos inanimados.