Códigos Visual Basic 6

Curso de Software de Ventas Pt 48 Ventas Editar Producto, Facturas Temporales 2

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.

Impuesto en Ventas

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
Total Page Visits: 2408 - Today Page Visits: 1
Luis F. Martinez

Deja un comentario
Compartir
Publicado por
Luis F. Martinez

Publicaciones Recientes

Calculadora Básica en Visual Basic 6, Aprende a usar variables

En este proyecto, vamos a desarrollar una calculadora sencilla usando Visual Basic 6, que permite…

1 mes hace

Lenguajes de Programación Más Demandados en 2024

6 de septiembre de 2024 - La demanda de desarrolladores de software sigue en aumento,…

1 mes hace

La Unión Europea Aprueba la Primera Ley de Inteligencia Artificial del Mundo

En un movimiento histórico, la Unión Europea ha aprobado la primera ley de inteligencia artificial…

1 mes hace

Sincronización de Datos en Línea VB6: Lleva tu Proyecto al Siguiente Nivel

¿Sigues trabajando con Visual Basic 6 y necesitas una forma eficiente de acceder a tus…

2 meses hace

OpenAI revoluciona la interacción con IA: ChatGPT ahora interpreta imágenes

OpenAI revoluciona la interacción con IA: ChatGPT ahora interpreta imágenes En un avance significativo para la…

5 meses hace

Curso de Programación Básica en Visual Basic 6.0

Bienvenido al Curso Básico de Visual Basic 6! Este curso está diseñado para llevarte a…

11 meses hace

Este sitio utiliza cookies desea activarlas