Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/12/2009, 14:10
zxs23
 
Fecha de Ingreso: mayo-2009
Mensajes: 238
Antigüedad: 15 años
Puntos: 7
Como actualizar stock al realizar una venta?

Utilizo estas consultas para grabar una venta y actualizar el stock de la tabla producto.
El rsTemp solo acepta productos con Stock>0 y/o cuando la cantidad solicitada este disponible.

Mi pregunta es que como hago si segundos antes otro usuario ya vendio todos los productos del codprod=152 por ejemplo y dejo el stock en zero, acaso debo hacer otra conprobacion antes de actualizar el stock del bucle o debo actualzar el stock antes de realizar la venta y si se cancela volver a agregarle dicha cantidades?

Código:
cnx.BeginTrans

'GRABAR ENCABEZADO 
cnx.Execute "INSERT INTO Factura VALUES('" & txtFactura.Text & "','" & txtFecha & "','" & Trim(txtCliente) & "','" & Trim(txtEmpleado) & "','" & Val(txtTotal) & "',NULL)"

'GRABAR DETALLE o LINEAS DE LA VENTA
rsTemp.MoveFirst
Do While Not rsTemp.EOF
   cnx.Execute "INSERT INTO DetFactura VALUES('" & txtFactura & "','" & rsTemp.Fields("CodProd") & "','" & rsTemp.Fields("PrecioVenta") & "','" & rsTemp.Fields("Cantidad") & "','" & rsTemp.Fields("subtotal") & "')"
   
   'Aqui restamos el stock
   cnx.Execute "UPDATE producto SET stockActual=stockActual-'" & rsTemp.Fields("Cantidad") & "' WHERE codprod='" & rsTemp.Fields("CodProd") & "'"
 
   rsTemp.MoveNext
Loop

cnx.CommitTrans