Visual Basic - ayuda con codigo venta facturacion en vb 6.0

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 22
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

ayuda con codigo venta facturacion en vb 6.0

Publicado por luchomansito (19 intervenciones) el 17/04/2012 01:24:24
Amigos necesito colaboracion con un detalle que encontre en el proceso de facturacion que realize gracias a un videotutorial por internet , todo funciona bien excepto un problemita y es que cuando realizo una venta y quiero realizar otra venta nueva sin salir del programa , me genera un error y es que en el subtotal me adiciona el valor de la venta anterior, les agradesco su colaboracion , le agrege un descuento en el programa.


primero se adiciona los productos y se calculan los totales con este codigo:

Private Sub agregarproducto_Click()
''Agregar productos
If Val(cantidadproducto.Text) = 0 Then MsgBox "ingrese cantidad del producto", vbInformation, "Aviso": cantidadproducto.SetFocus: Exit Sub
'validar eleccion de productos de la lista
If labelcodigoproducto.Caption = "" Then MsgBox "debe elegir producto", vbInformation, "Aviso": Exit Sub
' validar que la cantidad a vender sea menor que la cantidad de stock o existencias del producto
If Val(cantidadproducto.Text) > Val(cantidad.Text) Then MsgBox "no existen esa cantidad de productos", vbInformation, "Aviso": cantidadproducto.SetFocus: Exit Sub
'' validar que el producto exista en las existencias o al detalle
With Rstemporalfactura
.Requery
.Find "codigoproducto='" & Val(labelcodigoproducto.Caption) & "'"
If .EOF Then Else MsgBox "este producto ya ha sido agregado a la compra", vbInformation, "Aviso": Exit Sub
End With
formatogrillatemporalfactura
''''' GRABAR EN TABLA TEMPORAL
With Rstemporalfactura
.Requery
.AddNew
!codventafactura = lblnumerofactura.Caption
!codigoproducto = (labelcodigoproducto.Caption)
!producto = producto.Text
!cantidad = Val(cantidadproducto.Text)
!precio = CDbl(precio.Text)
!importe = Val(cantidadproducto.Text) * CDbl(precio.Text)
.Update
End With
formatogrillatemporalfactura
''' CALCULAR TOTALES---------------------
xsubtotal = xsubtotal + (Val(cantidadproducto.Text) * CDbl(precio.Text))
subtotal.Text = xsubtotal
igv.Text = xsubtotal * 0
'totalvender.Text = xsubtotal + (xsubtotal * 0)
End Sub
aqui el codigo.

se factura y realiza la venta con este codigo.

Private Sub vender_Click()
With Rsconfigurarfactura
.Requery
.MoveFirst
!numerofacturas = Val(lblnumerofactura) + 1
.UpdateBatch

End With
'' validar que se eligio un cliente
If lblcodigocliente.Caption = "" Then MsgBox "Debe elegir un cliente de la lista", vbInformation, "Aviso": Exit Sub
''validar que por lo menos se halla elegido un producto en detalle temporal
With Rstemporalfactura
.Requery
If .BOF Or .EOF Then MsgBox "no se ha ingresado ningun producto a detalle", vbInformation, "aviso": formatogrillatemporalfactura: Exit Sub Else formatogrillatemporalfactura
End With
If descuento.Text = "" Then MsgBox "agregue un valor al descuento", vbInformation, "Aviso": Exit Sub
'agregar a la venta y facturar
With Rsventafactura
.Requery
.AddNew
!codigofactura = lblnumerofactura
!fechaventa = Date
!codigocliente = Val(lblcodigocliente.Caption)
!subtotal = xsubtotal
!IVA = xsubtotal * 0
!descuento = descuento.Text
!total = xsubtotal + ((xsubtotal * 0) - Val(descuento.Text))
.Update
totalvender.Text = xsubtotal + ((xsubtotal * 0) - Val(descuento.Text))
End With
'' agregar detalles de venta
Dim registros As Integer
registros = Rstemporalfactura.RecordCount
Rstemporalfactura.Requery
Rstemporalfactura.MoveFirst
For X = 1 To registros
With Rsdetallefactura
.Requery
.AddNew
!codventafactura = grillaventa.Columns(1).Text
!codigoproducto = grillaventa.Columns(2).Text
!cantidad = grillaventa.Columns(4).Text
!precio = grillaventa.Columns(5).Text
!importe = grillaventa.Columns(6).Text
.Update
End With
If X = registros Then Else Rstemporalfactura.MoveNext
Next
'' enviar mensaje de confirmacion la venta se ha generado correctamente
MsgBox " la venta se ha generado y facturado correctamente", vbInformation, "Aviso"

Dim CantidadVendida As Integer, i As Integer

' For i = 0 To grillaventa.ApproxCount - 1
' grillaventa.Row = i
' CantidadVendida = grillaventa.Columns(4)
' bases.Execute "Update productos set cantidad=cantidad - " & CantidadVendida & "WHERE codigoproducto=" & grillaventa.Columns(2)
' Next i


'''' borrar el temporalfactura
borrartemporalfactura
'''''salir
Unload Me
End Sub

parece que el detalle del asunto esta aqui pero no se como resolverlo.

la variable xsubtotal de mi codigo (subtotal en el video tutorial), se sigue ejecutando aun cuando salgo del formulario de ventas al formulario principal,pues cuando ingreso otra vez al formulario de ventas para realizar una nueva venta me sigue acumulando cantidades,la unica forma en que esto no suceda es que salga de la aplicacion y la ejecute nuevamente y eso es incomodo para el que maneja la aplicacion, que solucion me pueden dar a esto para que cuando ejecute una nueva venta sin salir del programa no me acumule cantidades de las ventas pasadas.

la variable esta declarada en un modulo .

gracias y les agradesco cualquier ayuda a esta inquietud.

les agradesco mucho su colaboracion.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

ayuda con codigo venta facturacion en vb 6.0

Publicado por emerson palacios (31 intervenciones) el 17/04/2012 02:25:44
¿Bueno primero para que utilizas la variable global xsubtotal , a parte del calculo del monto de la factura ?
si solo es para ese calculo basta con volverla a cero despues de terminar la venta. por lo visto acumulas las ventas en dicha variable pero en realidad eso como que no tiene mucho sentido por que ese valor no sera muy exacto teniendo en cuenta que cada vez que se cierra la aplicacion esta comenzara con cero a menos que al lanzar la aplicacion actualize ese monto pero si tienes varios pun tos de venta quiza esa variable te muestre un valor erroneo pues no estara correctamente actualizado. de todas maneras si lo utilizas para cualquier otra cosa considera otra variable a nivel de formulario para manejar el subtotal de la factura y volverla cero cada vez que cierras la venta. eso seria todo. comentas como te fue.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 22
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

ayuda con codigo venta facturacion en vb 6.0

Publicado por luchomansito (19 intervenciones) el 17/04/2012 17:03:41
gracias amigo solo basto con hacer esto llevar a cero la variable en el evento load del formulario.

xsubtotal=0

gracias ....

problema resuelto.

caso cerradoooooooo........
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 22
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

ayuda con codigo venta facturacion en vb 6.0

Publicado por luchomansito (19 intervenciones) el 17/04/2012 17:08:33
Amigo nuevamente gracias, lo que si me toca resolver ahora es como descontar del stock de las ventas que realize segun este codigo , si tienes alguna idea te lo agradeceria mucho hermano,

gracias

deseandoles a todos siempre lo mejor

luis
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ayuda con codigo facturacion en vb 6.0

Publicado por jorge (2 intervenciones) el 21/02/2013 00:02:56
necesito ayuda quiero introducir datos de textbox a datagrid haciendo una factura y este debe imprimir la facttura los datos y articulos y clientes son ingresados de forma manual
una vez hecho esto debe permitirme guardar la factura para que este pase datos a GUIA DE REMISION DE FORMA AUTOMATICA ESPERO PUEDAN AYUDARME

ES PARA VB 6.0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar