En esta lección mejorare el guardado de Facturas Temporales agregando los datos del cliente.
Al final encontrara el vídeo explicativo.
Lo primero es crear una tabla nueva llamada tblVentas_Temp que tendría los siguientes campos:
Los números en rojo es el tamaño del campo.
Luego se creas una consulta que se llamara cta_Listado_Fact_Temp la cual relacionamos ambas tablas tblDetalle_Ventas y tblVentas_Temp la consulta queda de la siguiente manera:
Esta es la consulta SQL.
SELECT tblVentas_Temp.IdVentTemp, tblVentas_Temp.nombre_cliente, Sum(((tblDetalle_Venta.Cantidad_dv*tblDetalle_Venta.P_Venta_dv)-tblDetalle_Venta.Descuento_dv)) AS Total, tblVentas_Temp.IdCliente, tblVentas_Temp.identificacion, tblVentas_Temp.telefono FROM tblDetalle_Venta INNER JOIN tblVentas_Temp ON tblDetalle_Venta.Num_VentaTemp = tblVentas_Temp.IdVentTemp GROUP BY tblVentas_Temp.IdVentTemp, tblVentas_Temp.nombre_cliente, tblVentas_Temp.IdCliente, tblVentas_Temp.identificacion, tblVentas_Temp.telefono;
Lo siguiente es modificar CrearFactura_Temp en el formulario de Ventas quedando de la siguiente manera:
Sub CrearFactura_Temp(IdVentTemp) Sql = "Insert into tblVentas_Temp (IdVentTemp, IdCliente, nombre_cliente, telefono, identificacion, total) " _ & "Values (" & IdVentTemp & ", " & CodigoCliente & ", '" & txtNombre_Cli & "', '" & txtTelefono_cli & "', '" & txtIdentificacion_Cli & "', '" & CCur(txtTotalFactura) & "' )" ConexionADO.Execute Sql End Sub
El Siguiente paso es modificar la el formulario de frmFacturasTemp todo el código para que les sea mas fácil queda de la siguiente manera:
Sub ListarTemporales() Dim Sql As String Dim Columnas As Integer Sql = "Select IdVentTemp, nombre_cliente, Total, IdCliente, identificacion, telefono from cta_Listado_Fact_Temp " Columnas = 6 Call LlenarGrid(msGrid, Sql, Columnas) msGrid.ColWidth(0) = 0 msGrid.ColWidth(1) = 1300 msGrid.ColWidth(2) = 2800 msGrid.ColWidth(3) = 1700 msGrid.ColWidth(4) = 0 'idcliente msGrid.ColWidth(5) = 0 'identifi msGrid.ColWidth(6) = 0 'telefono msGrid.TextMatrix(0, 1) = "No. Factura" msGrid.TextMatrix(0, 2) = "Cliente" msGrid.TextMatrix(0, 3) = "Valor Total" With msGrid For I = 1 To .Rows - 1 .TextMatrix(I, 3) = Format(.TextMatrix(I, 3), "currency") Next I End With End Sub Private Sub cmdBorrarPro_Click() If msGrid.Row > 0 Then Num_Factura = msGrid.TextMatrix(msGrid.Row, 1) If Num_Factura <> "" Then Res = MsgBox("¿Esta segúro de borrar la factura temporal No. " & Num_Factura & "? ", vbYesNo, "Borrar Producto") If Res = vbYes Then Sql = "Delete from tblDetalle_Venta Where Num_VentaTemp = " & Num_Factura ConexionADO.Execute Sql Call ListarTemporales End If End If End If End Sub Private Sub cmdCerrar_Click() Unload Me End Sub Private Sub cmdSeleccionar_Click() Num_Temp = msGrid.TextMatrix(msGrid.Row, 1) If Num_Temp <> "" Then nombre_cliente = msGrid.TextMatrix(msGrid.Row, 2) id_cliente = msGrid.TextMatrix(msGrid.Row, 4) idenfi_cliente = msGrid.TextMatrix(msGrid.Row, 5) telef_cliente = msGrid.TextMatrix(msGrid.Row, 6) Call frmVentas.CargarFactTemporal(Num_Temp, id_cliente, nombre_cliente, idenfi_cliente, telef_cliente) Unload Me End If End Sub Private Sub Form_Load() Call ListarTemporales End Sub Private Sub msGrid_DblClick() Call cmdSeleccionar_Click End Sub
Y por ultimo se modifica el procedimiento que carga la factura temporal llamdo CargarFactTemporal en la tabla frmVentas
Sub CargarFactTemporal(Num_Temp, id_cliente, nombre_cliente, idenfi_cliente, telef_cliente) ConsecutivoTemp = Num_Temp CodigoCliente = id_cliente txtIdentificacion_Cli.Text = idenfi_cliente txtNombre_Cli.Text = nombre_cliente txtTelefono_cli = telef_cliente Call LlenarGridProductos End Sub
Con lo anterior cuando se selecciona una factura temporal se carga los productos y la información del cliente.
Las modificaciones para que funcione los impuestos en ventas son las siguientes:
Tabla tblVentas
Para guardar el valor del impuesto en la tabla se modifica la consulta de la siguiente manera:
'Se guarda en la tabla ventas Sql = "Insert Into tblVentas (Num_Factura, FechaHora, TipoFact, Dias, ImpuestoTotal, TotalFactura, EstadoFact, Comentario, Efectivo, Cambio, IdCliente, IdUsuario, SaldoFactura) " _ & " VALUES (" & Num_Factura & ",'" & FechaHora & "'," & Me.cmdTipoFact.ListIndex & "," & txtDias.Text & ",'" & CCur(txtImpuestoFact) & "','" & CCur(txtTotalFactura) & "',1,'" & Comentario & "','" & CCur(txtVECambio.Text) & "','" & CCur(txtCambio.Text) & "'," & CodigoCliente & "," & Glo_IdUsuario & ", '" & SaldoFactura & "')" ConexionADO.Execute Sql
El procedimiento completo queda así:
Sub Finalizar_Guardado_Factura() Num_Factura = Ultima_Factura_Venta() 'Ultima venta FechaHora = txtFechaApro.Text & " " & Time 'fecha y hora Comentario = "-" If txtObervacionesPro.Text <> "" Then 'comentario Comentario = txtObervacionesPro.Text End If 'calcular saldo SaldoFactura = 0 If cmdTipoFact.ListIndex = 1 Then If CCur(txtAbonoFact.Text) > 0 Then SaldoFactura = CCur(txtTotalFactura) - CCur(txtAbonoFact.Text) Else SaldoFactura = CCur(txtTotalFactura) End If End If 'Se guarda en la tabla ventas Sql = "Insert Into tblVentas (Num_Factura, FechaHora, TipoFact, Dias, ImpuestoTotal, TotalFactura, EstadoFact, Comentario, Efectivo, Cambio, IdCliente, IdUsuario, SaldoFactura) " _ & " VALUES (" & Num_Factura & ",'" & FechaHora & "'," & Me.cmdTipoFact.ListIndex & "," & txtDias.Text & ",'" & CCur(txtImpuestoFact) & "','" & CCur(txtTotalFactura) & "',1,'" & Comentario & "','" & CCur(txtVECambio.Text) & "','" & CCur(txtCambio.Text) & "'," & CodigoCliente & "," & Glo_IdUsuario & ", '" & SaldoFactura & "')" ConexionADO.Execute Sql 'A los productos del detalle se les asigna el numero de factura Sql = "Update tblDetalle_Venta set Num_Factura = '" & Num_Factura & "', Num_VentaTemp = '0' where Num_VentaTemp = " & ConsecutivoTemp ConexionADO.Execute Sql '*************** Consulta que resta todos los articulos de inventario Sql = "UPDATE tblProductos as ar INNER JOIN tblDetalle_Venta as d ON ar.IdProducto = d.IdProducto SET ar.ExistPro = (ar.ExistPro - d.Cantidad_dv) where d.Num_Factura = " & Num_Factura ConexionADO.Execute Sql '/*//*********************** crear el historial de cada articulo en el kardex Sql = "INSERT INTO tblKardex (Fecha, IdProducto, Detalle, D_C, Cantidad, Costo,Cant_Saldo) Select '" & FechaHora & "', dt.IdProducto, 'Venta de Mercancia según Fra. N° " & Num_Factura & " '," _ & Num_Factura & ", dt.Cantidad_dv * -1, dt.P_Costo_dv, (Select ExistPro from tblProductos where IdProducto = dt.IdProducto) from tblDetalle_Venta as dt Where dt.Num_Factura = " & Num_Factura ConexionADO.Execute Sql If glob_conf_ImpresoraTikets = 0 Then Call ImprimirFactura_carta(Num_Factura) Else Call ImprimirFactura_Ticket(Num_Factura) End If ConsecutivoTemp = UltimaVentaTemp Call LlenarGridProductos MsgBox "Venta Guardada", vbInformation, "Guardar" Call LimpiarVenta End Sub
En este proyecto, vamos a desarrollar una calculadora sencilla usando Visual Basic 6, que permite…
6 de septiembre de 2024 - La demanda de desarrolladores de software sigue en aumento,…
En un movimiento histórico, la Unión Europea ha aprobado la primera ley de inteligencia artificial…
¿Sigues trabajando con Visual Basic 6 y necesitas una forma eficiente de acceder a tus…
OpenAI revoluciona la interacción con IA: ChatGPT ahora interpreta imágenes En un avance significativo para la…
Bienvenido al Curso Básico de Visual Basic 6! Este curso está diseñado para llevarte a…
Este sitio utiliza cookies desea activarlas
Deja un comentario