Ayuda con sistema de facturación

¿Hola cómo estas? Soy novato en vb y seguí los video tutoriales de kalizron para hacer un sistema de facturación.
Todo funciona bien salvo una cosa ( que quise incorporar yo, no está en los video tutoriales)
El problema es este:
La facturación se realiza cargando los productos a a vender en una grid que se guarda en una tabla temporal, y al confirmar la factura, se borran de la tabla temporal y los datos van a una tabla "factura" y el detalle de lo vendido a una tabla "detallefactura" hasta ahí funciona perfecto.
Lo que quise incorporar es que al confirmar la factura me reste las cantidades facturadas de la tabla de productos (osea inventarios)
Lo que sucede es que si facturo un solo producto funciona bien, pero cuando facturo 3 por ejemplo
el primer producto se descuenta bien, el segundo descuenta la cantidad del primero más la del segundo, y el tercero descuenta las tres suima de las tres cantidades.
El código que uso para ello es:
Dim registros1 As Integer
registros1 = RsTemporalfactura.RecordCount
RsTemporalfactura.Requery
RsTemporalfactura.MoveFirst
For x = 1 To registros1
    With RsProductos
    Dim stock As Double
        stock = !stock
        .Requery
        .Find "codigo='" & Trim(detallefacturagrid.Columns(2).Text) & "'"
        !stock = stock - Val(detallefacturagrid.Columns(4).Text)
        .Update
    End With
    If x = registros1 Then Else RsTemporalfactura.MoveNext
Next
me puedes decir como seria la manera correcta para que en la tabla de productos me descuente en cada registro lo que facturé del mismo?
Muchas gracias

1 respuesta

Respuesta
1
Después que hagas el Update, debes colocar en cero el stock para cuando se llene con el siguiente producto.
¿Gracias por la respuesta pero me puedes aclarar como colocar en 0 el stock para cuando se llene con el próximo producto? Soy bastante novato en esto. Gracias desde ya
¿Podría mandarte el programa para que lo veas? Así seré más explicito en mi duda
!stock = stock - Val(detallefacturagrid.Columns(4).Text)
        .Update
    End With
despues de .Update
stock=0
Muchas gracias por la respuesta pero no consigo hacerlo funcionar como debiera, con stock=0 resta solo del ultimo producto agregado y no el valor que debiera.
http://www.megaupload.com/?d=I1LYUCQF
Ahí esta mi proyecto, si tienes tiempo estaré muy agradecido por tu ayuda.
¿qué hace la sentencia .requery?
Esa porción del código debajo del comentario 'restar inventario la hice yo seguro está mal pero la sentencia .requery tengo entendido que actualiza la tabla.
Lo que veo es que siempre te refieres a la misma fila y de la grilla, el for solo recorre los registros obtenidos de la consulta a la base de datos. Debes cambiar la fila de la grilla para que tome el siguiente producto, ya que siempre le estas descontando la cantidad de la fila 1 de la grilla a todos los productos.
Me podrías decir como tengo que hacer eso, soy principiante en vb y no se que es lo que tengo que escribir para lograr que el programa haga lo que quiero
Ahora probé con este código
With RsProductos
        Dim stock As Integer
        stock = !stock
        !stock = stock - Val(detallefacturagrid.Columns(4).Text)
End With
y consigo restar correctamente de la tabla "productos" pero solo el ultimo producto que agrego en la grid. Que debo escribir para que recorra toda la grid desde el principio??
!stock = stock - Val(detallefacturagrid.Rows(x).Columns(4).Text)
Donde POR es el indice de la fila de la grilla que estas verificando
Hola de nuevo y disculpa tantas preguntas y mi ignorancia
ahora intento con esto:
With RsProductos
        Dim stock As Integer
        stock = !stock
        !stock = stock - Val(detallefacturagrid.Row(1).Columns(4).Text)
    End With
pero al poner
!stock = stock - Val(detallefacturagrid.Row(1).Columns(4).Text)
Me arca eso y un error dice:
"Error de compilación:
Número de argumentos erróneos o asignación de propiedad no válida"
y si escribo esa linea así:
!stock = stock - Val(detallefacturagrid.Rows(1).Columns(4).Text)
"error de compilacipon
No se encontró el método o miembros de datos"
Gracias por tu ayuda.
Busca en la ayuda, el tipo de control que tu llamas detallefacturagrid y verificas como puedes saber cual es la fila en la cula estas posicionado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas