amp-web-push-widget button.amp-subscribe { display: inline-flex; align-items: center; border-radius: 5px; border: 0; box-sizing: border-box; margin: 0; padding: 10px 15px; cursor: pointer; outline: none; font-size: 15px; font-weight: 500; background: #4A90E2; margin-top: 7px; color: white; box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.5); -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } .amp-logo amp-img{width:190px} .amp-menu input{display:none;}.amp-menu li.menu-item-has-children ul{display:none;}.amp-menu li{position:relative;display:block;}.amp-menu > li a{display:block;} /* Inline styles */ div.acss138d7{clear:both;}div.acssf5b84{--relposth-columns:3;--relposth-columns_m:2;--relposth-columns_t:2;}div.acssa8a3d{aspect-ratio:1/1;background:transparent no-repeat scroll 0% 0%;height:300px;max-width:300px;}div.acss13836{color:#333333;font-family:Arial;font-size:14px;height:75px;}span.acss47fcd{background:#FFFFFF;color:#000000;}div.acss0f1bf{display:none;}a.acssf23c5{font-size:8pt;}a.acss24ea4{font-size:16.4pt;}a.acss066f0{font-size:22pt;} .ampforwp_wc_shortcode{margin-top: 0;padding:0;display:inline-block;width: 100%;} .ampforwp_wc_shortcode li{position: relative;width:29%; font-size:12px; line-height: 1; float: left;list-style-type: none;margin:2%;} .ampforwp_wc_shortcode .onsale{position: absolute;top: 0;right: 0;background: #ddd;padding: 7px;font-size: 12px;} .single-post .ampforwp_wc_shortcode li amp-img{margin:0} .ampforwp-wc-title{margin: 8px 0px 10px 0px;font-size: 13px;} .ampforwp-wc-price{color:#444} .wc_widgettitle{text-align:center;margin-bottom: 0px;} .ampforwp-wc-price, .ampforwp_wc_star_rating{float:left;margin-right: 10px;} .icon-widgets:before {content: "\e1bd";}.icon-search:before {content: "\e8b6";}.icon-shopping-cart:after {content: "\e8cc";} /******* Paste your Custom CSS in this Editor *******/
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: 2847 - Today Page Visits: 3
Luis F. Martinez

Leave a Comment
Compartir
Publicado por
Luis F. Martinez

Publicaciones Recientes

CRUD Enviar y Recibir datos de Visual Basic 6 a PHP

Saludos, en este tutorial aprenderás a integrar tu aplicación de Visual Basic 6 con un…

4 meses hace

Problemas para acceder a Hotmail o Live.com desde el navegador web

Recientemente, muchos usuarios de Hotmail (ahora Outlook.com) han reportado un error al intentar iniciar sesión…

6 meses hace

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 año 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 año 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 año 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…

1 año hace

Este sitio utiliza cookies desea activarlas