Curso de Software de Ventas Pt 45 Modulo Cartera de Clientes 3

Continuando con la parte del Formulario de Cartera de Clientes que nos muestra las facturas en mora del cliente seleccionado, vamos a seguir los siguientes puntos:

Colabora y Suscribete a mi canal de   

 

  • Cargar los datos del cliente
  • Listas las facturas con saldo
  • Filtro de Facturas / Mes Año —

Siguiente los puntos anterior primero obtenemos los datos del cliente y lo tomamos del formulario de búsqueda que es desde el cual abrimos el formulario de Facturas.

Este código va en el formulario frmFacturasCliente

Sub DatosCliente()
    Fila = frmBuscarCliente.msGrid.Row
    txtCodigoCli.Text = frmBuscarCliente.msGrid.TextMatrix(Fila, 1)
    txtNombre_Cli.Text = frmBuscarCliente.msGrid.TextMatrix(Fila, 2)
End Sub

Luego lo llamaos desde el evento load y en esta misma parte llenamos el campo de Fecha de la siguiente manera:

Private Sub Form_Load()
    txtFecha.Text = Format(Date, "dd/mm/yyyy")
    cmbTipo.ListIndex = 0
    Call DatosCliente
End Sub

Listado de Facturas

En esta parte vamos a listar las facturas (Sin Pagar, Pagas y Vencidas) el código seria el siguiente:

Sub Listado_Facturas()
    Dim Sql As String
    Dim Filtro As String
    Dim Columnas As Integer
    
    Tipo = cmbTipo.ListIndex
    Filtro = ""
    Select Case Tipo
           Case 0:   'sin pagar
                Filtro = " and SaldoFactura > 0 "
           Case 1:  'facturas pagas
                Filtro = " and SaldoFactura = 0 "
           Case 2:  'vencidas
                Filtro = " and now > DateAdd('d',Dias,FechaHora) and SaldoFactura > 0 "
    End Select
    
    Sql = "Select Num_Factura, FechaHora, Dias, DateAdd('d', Dias, FechaHora) AS Fechav, TotalFactura, SaldoFactura, '' as abono From tblVentas Where EstadoFact = 1 and IdCliente = " & txtCodigoCli & Filtro
    
    Columnas = 7
    Call LlenarGrid(msGrid, Sql, Columnas)
    
    
    msGrid.ColWidth(0) = 0
    msGrid.ColWidth(1) = 1300
    msGrid.ColWidth(2) = 1600
    msGrid.ColWidth(3) = 1100
    msGrid.ColWidth(4) = 1400
    msGrid.ColWidth(5) = 1800
    msGrid.ColWidth(6) = 1800
    msGrid.ColWidth(7) = 1800

    msGrid.TextMatrix(0, 1) = "No. Factura"
    msGrid.TextMatrix(0, 2) = "Fecha"
    msGrid.TextMatrix(0, 3) = "Dias"
    msGrid.TextMatrix(0, 4) = "Fecha V."
    msGrid.TextMatrix(0, 5) = "Valor Factura"
    msGrid.TextMatrix(0, 6) = "Saldo"
    msGrid.TextMatrix(0, 7) = "Abono"
    
    For I = 1 To msGrid.Rows - 1
        msGrid.Col = 1
        msGrid.CellAlignment = flexAlignCenterCenter
        msGrid.Col = 3
        msGrid.CellAlignment = flexAlignCenterCenter
        
        msGrid.TextMatrix(I, 5) = Format(msGrid.TextMatrix(I, 5), "currency")
        msGrid.TextMatrix(I, 6) = Format(msGrid.TextMatrix(I, 6), "currency")
        msGrid.TextMatrix(I, 2) = Format(msGrid.TextMatrix(I, 2), "dd/mm/yyyy")
        msGrid.TextMatrix(I, 4) = Format(msGrid.TextMatrix(I, 4), "dd/mm/yyyy")
    Next I
End Sub

Explicación:

Explicare las parte que considero no están claras lo demás ya lo he explicado en lecciones anteriores.

Los filtros:

 Tipo = cmbTipo.ListIndex
    Filtro = ""
    Select Case Tipo
           Case 0:   'sin pagar
                Filtro = " and SaldoFactura > 0 "
           Case 1:  'facturas pagas
                Filtro = " and SaldoFactura = 0 "
           Case 2:  'vencidas
                Filtro = " and now > DateAdd('d',Dias,FechaHora) and SaldoFactura > 0 "
    End Select

Para saber las facturas que estan sin pagar simplemente valido que el campo SaldoFactura sea mayo a cero.

Para saber las facturas pagas simplemente valido que el campo SaldoFactura sea igual a cero.

Para saber las facturas vencidas ya esto si es un poquito mas trabajado usamos una función de sql llamada DateAdd para sumar días a la fecha de la facturas, entonces.

DateAdd(‘d’,Dias, FechaHora).

la ‘d’ le indico que voy a sumar días, el siguiente dato es los días a incrementas le pasamos el campo Dias, por ultimo a que campo se le va a sumar los días en este caso seria  FechaHora.

La función Now es para traer la fecha actual. entonces valida que la fecha actual sea mayor a la fecha de la factura mas los días, así se obtienen la facturas vencidas.

En la consulta sql:

Sql = "Select Num_Factura, FechaHora, Dias, DateAdd('d', Dias, FechaHora) AS Fechav, TotalFactura, SaldoFactura, '' as abono From tblVentas Where EstadoFact = 1 and IdCliente = " & txtCodigoCli &

lo unico raro es calcular la fecha de vencimiento que lo hago de las siguiente manera DateAdd(‘d’, Dias, FechaHora) que ya explique arriba se le suman los días a la fecha de la factura.

Evento Clic del boton Buscar Factura:

Private Sub cmdBuscarFacturas_Click()
    Call Listado_Facturas
End Sub

Se llama al procedimiento que lista las facturas.

 

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