Bases de Datos > SQL Server
Actualizar inventario al eliminar factura
(1/1)
blusky:
Hola a todos!!!
Tengo un form donde elimino la factura y su detalle, pero lo que quiero hacer es que despues
de eliminar la factura y detalle que se actualicen mis existencias ya que esa factura no me servira para efectos de reporte de ventas y por eso necesito que mis existencias se actualicen(la factura que se elimine,agregar la existencia que esta en detalle de factura).
El problema radica en como hacer para tomar los valores del detalle para que se vuelvan a agregar a mi inventario??
:think:
Gracias,
Espero me puedan ayudar
gabio2:
Mi estimado Blusky dejame decirte que eso tiene que ver con tú análisis de BD, en algún momento debiste haber guardado el "id" de tú inventario al cual pertenece tú producto, así como también debiste guardar en algún lado el número de productos que vendiste.. entonces lo único que requieres hacer.. es consultar ese id de tú inventario y el número de productos a "actualizar" para el folio de esa venta cancelada.. y así ya tienes los datos suficiente para "actualizar" tú inventario.. es todo.. no sé si me di a entender.. en caso que no .. puedes seguir preguntando.. saludos. :)
blusky:
Hola gabio2, gracias por tomarte el tiempo y responder mi pregunta.
Fijate que no tengo problemas cuando realizo una venta, el inventario dsiminuye, no se porque cuando quiero eliminar la factura no se me actualiza el inventario.
Te muestro el codigo para que veas como lo hice, algo parecido hice con la venta, lo unico que cambie en la consulta fue el signo.
Public Sub eliminarDetalle()
Try
For i As Integer = 0 To Me.DataGridView2.Rows.Count - 1
Try
Dim com As SqlClient.SqlCommand = New SqlClient.SqlCommand("Update Producto set Cantidad_Llena = Cantidad_Llena + " & Me.DataGridView2.Item(1, i).Value & " WHERE Id_Producto=" & Me.DataGridView2.Item(2, i).Value, abrirConexion)
Dim com2 As SqlClient.SqlCommand = New SqlClient.SqlCommand("Update Producto set Cantidad_Vacia = Cantidad_Vacia - " & Me.DataGridView2.Item(1, i).Value & " WHERE Id_Producto=" & Me.DataGridView2.Item(2, i).Value, abrirConexion)
com.ExecuteNonQuery()
com2.ExecuteNonQuery()
Catch ex As Exception
ex.Message.ToString()
End Try
Next i
Catch ex As Exception
ex.Message.ToString()
End Try
End Sub
Espero tu opinion!! Para poder detectar que esta pasando que no logro hacer esto.
:suerte:
Gracias!!
softevolutions:
Lo tienes MUUUUUUUUUUCHO mas facil.
Yo trabajo todo en base de datos mediante instrucciones SQL, no hago lo mismo que has hecho tu, linea a linea de detalle, lo trabajo en bloque.
Te pongo un ejemplo.
Si tu tabla de detalle se llama "detalle" y entre otros campos tienes el id_articulo y la cantidad, puedes hacer esto:
update inventario set existencias = existencias + detalle.cantidad from detalle where detalle.id_articulo = inventario.id_articulo and detalle.factura = XXXX
esto vincula ambas tablas, detalle e inventario mediante el id_articulo.
Espero te sirva de orientacion.
Navegación
Ir a la versión completa