
STOCK AL HACER UNA FACTURA
Publicado por Juan Carlos (2 intervenciones) el 04/11/2012 02:10:42
Como están amigos... de nuevo de regreso con una consulta. La verdad voy avanzado en el sistema de Facturación en base al modelo de Kalizron. ahora ya esta echo el modelo de descarga del STOCK AL HACER UNA FACTURA pero no se que estoy haciendo mal porque solo me descuenta una fila de la grilla de ventas. ejm si vendo 2 sandias y 4 peras solo me vaja del stock las 4 peras. AYUDA quiero aprender con hacer que todos los items se descargen del inventario.
ACA EL CODIGO FUENTE.
Private Sub cmdfacturar_Click()
''validamos que si se eligio un cliente
If LBLCODIGOCLIENTE.Caption = "" Then MsgBox "Debe elegir un cliente de la Lista Clientes", vbInformation, "Aviso": Exit Sub
'''validamos que el detalle tenga por lo menos un producto que vayamos a facturar
With RSTEMPORALFACTURA
.Requery
If .BOF Or .EOF Then
MsgBox "No se ha agregado ningun producto al Detalle de la Nota de Venta", vbInformation, "Aviso"
FORMATOGRILLATEMPORAL
Exit Sub
Else
FORMATOGRILLATEMPORAL
End If
End With
'''' ahora agregamos factura
''parte uno garegamos datos factura
With RSFACTURA
.Requery
.AddNew
!CodigoFactura = TXTFACTURA.Text
!FechaFactura = Date
!codcliente = Val(LBLCODIGOCLIENTE.Caption)
!SubTotalFactura = SUBTOTAL
SUBTOTAL = 0
!IGV = SUBTOTAL * 0.12
!Total = SUBTOTAL + (SUBTOTAL * 0.12)
.Update
End With
''''parte dos guardamos el detalle de la factura... desde detalle temporal
Dim Registros As Integer
Registros = RSTEMPORALFACTURA.RecordCount
RSTEMPORALFACTURA.Requery
RSTEMPORALFACTURA.MoveFirst
'''creamos un bucle
For X = 1 To Registros
With RSDETALLEFACTURA
.Requery
.AddNew
!CodFactura = GRILLADETALLEFACTURA.Columns(1).Text
!codproducto = GRILLADETALLEFACTURA.Columns(2).Text
!cantidad = GRILLADETALLEFACTURA.Columns(4).Text
!precio = GRILLADETALLEFACTURA.Columns(5).Text
!importe = GRILLADETALLEFACTURA.Columns(6).Text
.Update
End With
If X = Registros Then Else RSTEMPORALFACTURA.MoveNext
Next
'restar inventario
RSTEMPORALFACTURA.Requery
RSTEMPORALFACTURA.MoveFirst
For X = 1 To Registros
With RSARTICULOS
.Requery
If .RecordCount > 0 Then
.MoveFirst
.Find "id='" + Trim(RSDETALLEFACTURA!codproducto) + "'"
End If
Dim stock As Integer
stock = !StockActualArticulo
!StockActualArticulo = stock - Val(GRILLADETALLEFACTURA.Columns(4).Text)
.Update
End With
If X = Registros Then Else RSTEMPORALFACTURA.MoveNext
Next
'''mandamos un mensaje indicando que la factura se creo correctamente
MsgBox "La Factura fue creada correctamente", vbInformation, "Aviso"
''''borramos el temporal
''OJOOOOOO''
BORRARTEMPORAL
'''''salir
Unload Me
End Sub
les agradesco de antemano.
ACA EL CODIGO FUENTE.
Private Sub cmdfacturar_Click()
''validamos que si se eligio un cliente
If LBLCODIGOCLIENTE.Caption = "" Then MsgBox "Debe elegir un cliente de la Lista Clientes", vbInformation, "Aviso": Exit Sub
'''validamos que el detalle tenga por lo menos un producto que vayamos a facturar
With RSTEMPORALFACTURA
.Requery
If .BOF Or .EOF Then
MsgBox "No se ha agregado ningun producto al Detalle de la Nota de Venta", vbInformation, "Aviso"
FORMATOGRILLATEMPORAL
Exit Sub
Else
FORMATOGRILLATEMPORAL
End If
End With
'''' ahora agregamos factura
''parte uno garegamos datos factura
With RSFACTURA
.Requery
.AddNew
!CodigoFactura = TXTFACTURA.Text
!FechaFactura = Date
!codcliente = Val(LBLCODIGOCLIENTE.Caption)
!SubTotalFactura = SUBTOTAL
SUBTOTAL = 0
!IGV = SUBTOTAL * 0.12
!Total = SUBTOTAL + (SUBTOTAL * 0.12)
.Update
End With
''''parte dos guardamos el detalle de la factura... desde detalle temporal
Dim Registros As Integer
Registros = RSTEMPORALFACTURA.RecordCount
RSTEMPORALFACTURA.Requery
RSTEMPORALFACTURA.MoveFirst
'''creamos un bucle
For X = 1 To Registros
With RSDETALLEFACTURA
.Requery
.AddNew
!CodFactura = GRILLADETALLEFACTURA.Columns(1).Text
!codproducto = GRILLADETALLEFACTURA.Columns(2).Text
!cantidad = GRILLADETALLEFACTURA.Columns(4).Text
!precio = GRILLADETALLEFACTURA.Columns(5).Text
!importe = GRILLADETALLEFACTURA.Columns(6).Text
.Update
End With
If X = Registros Then Else RSTEMPORALFACTURA.MoveNext
Next
'restar inventario
RSTEMPORALFACTURA.Requery
RSTEMPORALFACTURA.MoveFirst
For X = 1 To Registros
With RSARTICULOS
.Requery
If .RecordCount > 0 Then
.MoveFirst
.Find "id='" + Trim(RSDETALLEFACTURA!codproducto) + "'"
End If
Dim stock As Integer
stock = !StockActualArticulo
!StockActualArticulo = stock - Val(GRILLADETALLEFACTURA.Columns(4).Text)
.Update
End With
If X = Registros Then Else RSTEMPORALFACTURA.MoveNext
Next
'''mandamos un mensaje indicando que la factura se creo correctamente
MsgBox "La Factura fue creada correctamente", vbInformation, "Aviso"
''''borramos el temporal
''OJOOOOOO''
BORRARTEMPORAL
'''''salir
Unload Me
End Sub
les agradesco de antemano.
Valora esta pregunta


0