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