Version: 5.06.01

Se le agrego el boton de cobranza, la cual verifica del CAT_GUNAPROD2 si hay cuentas por cobrar, si encuentra, las muestra y si ya tienen abonos los indica y los suma.
This commit is contained in:
IsR0d
2025-06-03 14:25:31 -06:00
parent ef88430088
commit a77706a0ae
9 changed files with 229 additions and 69 deletions

View File

@@ -224,6 +224,25 @@ Sub Class_Globals
Private et_buspc As EditText
Private b_tabulador As Button
Private p_b_tabulador As Panel
Private pnlCobranza As Panel
Private clvCobranza As CustomListView
Private pnlBtnCobranza As Panel
Private btnCobranza As Button
Private pnlBtnRegresar As Panel
Private btnRegresar As Button
Private l_Secuencia As Label
Dim pnlContenedorCobranza As Panel
Private l_Nombre As Label
Private l_CuentaXCobrar As Label
Private l_Abono As Label
Private pnlCabecero As Panel
Private lblAbono As Label
Private lblSaldo As Label
Private lblCliente As Label
Private lblSec As Label
Private pnlTotal As Panel
Private lblTotal As Label
Private lblVersion As Label
End Sub
'You can add more parameters here.
@@ -429,8 +448,10 @@ Sub B4XPage_Appear
If l_ruta.Text = 0 Then
l_ruta.Text =0
p_b_tabulador.Visible = False
pnlBtnCobranza.Visible = False
Else
p_b_tabulador.Visible = True
pnlBtnCobranza.Visible = True
f=B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_RUTA from kmt_info")
f.Position=0
l_ruta.Text = f.GetString("CAT_CL_RUTA")
@@ -2202,8 +2223,6 @@ End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
'Return True to close, False to cancel
If SCROLL_RESDIA.Visible Then
SCROLL_RESDIA.Visible = False
B_OK_RES_Click
@@ -2211,6 +2230,9 @@ Private Sub B4XPage_CloseRequest As ResumableSub
Else if Panel5.Visible Then
B_OK_PANEL5_Click
Return False
Else If pnlCobranza.Visible Then
pnlCobranza.Visible = False
Return False
Else
B4XPages.ShowPage("login")
End If
@@ -2958,4 +2980,94 @@ End Sub
Private Sub b_tabulador_Click
B4XPages.ShowPage("tabulador")
End Sub
End Sub
Private Sub btnCobranza_Click
Log("Entrando al Panel de Cobranza")
pnlCobranza.Width = Root.Width
pnlCobranza.Height = Root.Height
pnlCobranza.Left = 0
pnlCobranza.Top = 0
pnlCobranza.BringToFront
pnlCobranza.Visible = True
pnlTotal.Visible = True
Dim ct As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT IFNULL(sum(IFNULL(a.a_abono,0)),0) as suma_abono FROM kmt_info2 ki LEFT JOIN ABONOSP ap ON ki.CAT_CL_CODIGO = ap.CLIENTE LEFT JOIN ABONOS a ON ki.CAT_CL_CODIGO = a.a_cliente WHERE CAST(ap.SALDO_PENDIENTE AS REAL) > 0"$)
ct.Position = 0
If ct.RowCount > 0 Then
lblTotal.Text = "El total abonado es: $" & ct.getString("suma_abono")
End If
lblVersion.Text = Application.VersionName
ct.Close
CargarDatosCobranza
End Sub
Private Sub CargarDatosCobranza
For i = pnlCobranza.NumberOfViews - 1 To 0 Step -1
Dim v As View = pnlCobranza.GetView(i)
If v Is Label Then
Dim lbl As Label = v
If lbl.Text = "No hay cuentas por cobrar" Then
pnlCobranza.RemoveViewAt(i)
End If
End If
Next
c = B4XPages.MainPage.skmt.ExecQuery($"SELECT ROW_NUMBER() OVER (ORDER BY ki.CAT_CL_NOMBRE) AS Secuencia, ki.CAT_CL_CODIGO, ki.CAT_CL_NOMBRE, ap.SALDO_PENDIENTE, IFNULL(a.a_abono,0) as a_abono FROM kmt_info2 ki LEFT JOIN ABONOSP ap ON ki.CAT_CL_CODIGO = ap.CLIENTE LEFT JOIN ABONOS a ON ki.CAT_CL_CODIGO = a.a_cliente WHERE CAST(ap.SALDO_PENDIENTE AS REAL) > 0"$)
Log("Número de registros: " & c.RowCount)
clvCobranza.Clear
For i = 0 To c.RowCount - 1
c.Position = i
Dim pItem As B4XView = xui.CreatePanel("")
pItem.LoadLayout("C_CuentasXCobrar")
pItem.SetLayoutAnimated(0, 0, 0, Root.Width, 100dip)
pItem.Color = Colors.White
pnlContenedorCobranza.SetLayoutAnimated(0, 0, 0, pItem.Width, pItem.Height)
pnlContenedorCobranza.Color = xui.Color_Transparent
l_Secuencia.Text = c.GetString("Secuencia")
' Manejo seguro del nombre
Dim codigo As String = c.GetString("CAT_CL_CODIGO")
Dim nombre As String = c.GetString("CAT_CL_NOMBRE")
If codigo = Null Then codigo = ""
If nombre = Null Then nombre = ""
l_Nombre.SingleLine = False
l_Nombre.Text = codigo & " " & nombre
l_CuentaXCobrar.Text = "$" & NumberFormat(c.GetDouble("SALDO_PENDIENTE"), 1, 2)
l_Abono.Text = "$" & NumberFormat(c.GetDouble("a_abono"), 1, 2)
clvCobranza.Add(pItem, "Item-" & i)
Next
c.Close
pnlCobranza.Invalidate
If c.RowCount = 0 Then
Dim lblEmpty As Label
lblEmpty.Initialize("")
lblEmpty.Text = "No hay cuentas por cobrar"
lblEmpty.TextSize = 16
lblEmpty.TextColor = Colors.Gray
lblEmpty.Gravity = Gravity.CENTER
pnlCobranza.AddView(lblEmpty, 0, 100dip, Root.Width, 50dip)
End If
End Sub
Private Sub btnRegresar_Click
pnlCobranza.Visible = False
End Sub
Private Sub pnlCobranza_Click
End Sub
'Private Sub clvCobranza_ItemClick (Index As Int, Value As Object)
' Dim CodigoCliente As Cursor = Value
' CodigoCliente = B4XPages.MainPage.skmt.ExecQuery($"SELECT ROW_NUMBER() OVER (ORDER BY ki.CAT_CL_NOMBRE) AS Secuencia, ki.CAT_CL_NOMBRE, ap.SALDO_PENDIENTE, IFNULL(a.a_abono,0) as a_abono FROM kmt_info2 ki LEFT JOIN ABONOSP ap ON ki.CAT_CL_CODIGO = ap.CLIENTE LEFT JOIN ABONOS a ON ki.CAT_CL_CODIGO = a.a_cliente WHERE CAST(ap.SALDO_PENDIENTE AS REAL) > 0"$)
' B4XPages.ShowPage("cliente")
'End Sub