Curso de Software de Ventas Pt 44 Modulo Cartera de Clientes 2

Siguiente con el Modulo Cartera de Clientes en esta parte vamos a ir organizando la venta para que reciba el saldo.

Colabora y Suscribete a mi canal de   

 

Lo primero que debemos hacer es modificar la ventana de Ventas y lo primero es que vamos a colocar cero en el cuadro de Abono txtAbonoFact.Text = 0.

Agregamos eso al procedimiento Inicial de la ventana de Ventas quedando de la siguiente manera.

Sub Inicial()
    txtFechaApro.Text = Format(Date, "dd/mm/yyyy")
    cmdTipoFact.ListIndex = 0
    txtDias.Text = 0
    txtDesuentoVPro.Text = 0
    txtPorcDescuentoPro = 0
    txtAbonoFact.Text = 0
End Sub

Ahora hay que agregar el campo nuevo que creamos en la tabla tblVentas el proceso es el siguiente para agregar el saldo.

  • Primero si la venta es crédito y el Abono es mayor a cero entonces hay que restar eso del total de la factura
  • Segundo Si la venta es Crédito y el abono es igual a cero el saldo seria el total de la factura

Modificamos el Procedimiento Finalizar_Guardado_Factura de la ventana de Ventas.

Agregamos el siguiente código que calcula el Saldo de la factura, este código va antes del la consulta Insert.

'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

Luego agreamos el campo SaldoFactura al Insert :

Sql = "Insert Into tblVentas (Num_Factura, FechaHora, TipoFact, Dias, TotalFactura, EstadoFact, Comentario, Efectivo, Cambio, IdCliente, IdUsuario, SaldoFactura) " _
       & " VALUES (" & Num_Factura & ",'" & FechaHora & "'," & Me.cmdTipoFact.ListIndex & "," & txtDias.Text & ",'" & CCur(txtTotalFactura) & "',1,'" & Comentario & "','" & CCur(txtVECambio.Text) & "','" & CCur(txtCambio.Text) & "'," & CodigoCliente & "," & Glo_IdUsuario & ", " & SaldoFactura & ")"
   
   ConexionADO.Execute Sql

Todo queda de la siguiente manera:

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, TotalFactura, EstadoFact, Comentario, Efectivo, Cambio, IdCliente, IdUsuario, SaldoFactura) " _
        & " VALUES (" & Num_Factura & ",'" & FechaHora & "'," & Me.cmdTipoFact.ListIndex & "," & txtDias.Text & ",'" & 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

Debes construir el formulario donde se mostraran las facturas a crédito del cliente:

Nombres de los Controles:

Formulario: frmFacturasCliente
txtCodigoCli, txtNombre_Cli, txtFecha
cmbTipo en su propiedad list lleva lo siguiente:

  • Sin Pagar
  • Facturas Pagas
  • Facturas Vencidas

cmbMeses en su propiedad list lleva:

  • Todos
  • Enero
  • Febrero
  • Marzo
  • Abril
  • Mayo
  • Junio
  • Julio
  • Agosto
  • Septiembre
  • Octubre
  • Noviembre
  • Diciembre

cmdTipoPago en su propiedad list lleva:

  • Efectivo
  • Tarjeta

msGrid, txtCodigoRecibo, cmdGuardar, cmdVerPagos, cmdImprimir, cmdSalir

Ahora vamos al formulario  frmBuscarClientes y debemos agregar un boton en la parte inferior que se llame Facturas con nombre: cmdFacturas, el cual va abrir la ventana que acabamos de crear:

Luego agregamos el código para que abra la ventana al dar clic en el botón facturas

Private Sub cmdFacturas_Click()
  
  IdCliente = msGrid.TextMatrix(msGrid.Row, 1)
  If IdCliente <> "" Then
     frmFacturasCliente.Show
  End If
  
    
End Sub

Por ahora ya tenemos la estructura que necesitamos para comenzar a crear el código para la consulta de saldos de Clientes.

Puedes el listado de las lecciones del curso en Curso de Creación de Software de Ventas en Visual Basic 6

No te olvides de Compartir 

Comentarios de Facebook

Deja un comentario