Files
Guna_Preventa/B4A/C_historicobatyodos.bas
cvaldes1201 0f6bf7f62a 6.02.16
se agregan las encuestas de bat
2026-04-13 11:27:26 -06:00

169 lines
5.2 KiB
QBasic

B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=12.8
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Dim g As GPS
Dim clie_id As String
Dim sDate,sTime As String
Dim usuario As String
Dim c As Cursor
Dim ruta As String
Dim Regresar As Button
Dim ListView1 As ListView
Dim L_CANT As Label
Dim L_TOTAL As Label
Dim borra As Button
Dim Existe As String
Dim result As String
' Dim lat_gps, lon_gps As String
Private Titulo As Label
Private b_desc As Button
Private ListView2 As ListView
Dim tgl As Toggle
Private p_nota As Panel
Private Panel1 As Panel
Private l_productohist As Label
Private l_s1 As Label
Private l_s2 As Label
Private l_s3 As Label
Private l_s4 As Label
Private CustomListView1 As CustomListView
Private L_PROMEDIOHIST As Label
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
Return Me
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
Root.LoadLayout("nota3")
borra.Visible = False
Titulo.Text = "Acumulado"
b_desc.Visible = False
End Sub
Sub B4XPage_Appear
Panel1.Visible = False
If Not(Starter.gps.GPSEnabled) Then
ToastMessageShow("Es necesario tener el GPS encendido", True)
StartActivity(Starter.gps.LocationSettingsIntent)
End If
L_CANT.Text = ""
L_TOTAL.Text = ""
c = B4XPages.MainPage.skmt.ExecQuery("select count(*) as EXISTE from hist_ventastodos WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa) ORDER BY HVD_CODPROMO, HVD_COSTO_TOT ASC")
c.Position = 0
Existe = c.GetString("EXISTE")
c.Close
' =====================================================================
' NUEVA LÓGICA DE LISTVIEW1: DISEÑO "TICKET MODERNO"
' =====================================================================
ListView1.Clear
ListView1.Visible = True
' 1. Fondo de la lista: Un gris muy claro/hueso para simular el papel
ListView1.Color = xui.Color_RGB(245, 245, 245)
' 2. Diseño del Encabezado (El Ticket y la Fecha)
ListView1.SingleLineLayout.Label.TextSize = 16
' Azul oscuro elegante para separar visualmente los tickets
ListView1.SingleLineLayout.Label.TextColor = xui.Color_RGB(25, 118, 210)
ListView1.SingleLineLayout.Label.Typeface = Typeface.DEFAULT_BOLD
' Centrado en ambas direcciones para que parezca un divisor
ListView1.SingleLineLayout.Label.Gravity = Bit.Or(Gravity.CENTER_VERTICAL, Gravity.CENTER_HORIZONTAL)
ListView1.SingleLineLayout.ItemHeight = 50dip
' 3. Diseño del Detalle (Los Productos)
ListView1.TwoLinesLayout.Label.TextSize = 16
ListView1.TwoLinesLayout.Label.TextColor = xui.Color_RGB(33, 33, 33) ' Gris casi negro (mejor lectura)
ListView1.TwoLinesLayout.Label.Typeface = Typeface.DEFAULT_BOLD
ListView1.TwoLinesLayout.Label.Gravity = Gravity.CENTER_VERTICAL
ListView1.TwoLinesLayout.SecondLabel.TextSize = 15
' Verde oscuro para destacar el dinero y la cantidad
ListView1.TwoLinesLayout.SecondLabel.TextColor = xui.Color_RGB(56, 142, 60)
ListView1.TwoLinesLayout.SecondLabel.Typeface = Typeface.DEFAULT_BOLD
ListView1.TwoLinesLayout.ItemHeight = 70dip ' Espacio cómodo para que respire el texto
' Query: Ordena de más antiguo a más reciente
Dim queryVentas As String = $"
SELECT HVD_NUM_TICKET, HVD_PRONOMBRE, HVD_CANT, HVD_COSTO_TOT, HVD_FECHA
FROM hist_ventastodos
WHERE HVD_CLIENTE IN (Select CUENTA from cuentaa)
ORDER BY
SUBSTR(HVD_FECHA, 7, 4) ASC,
SUBSTR(HVD_FECHA, 4, 2) ASC,
SUBSTR(HVD_FECHA, 1, 2) ASC,
HVD_NUM_TICKET ASC,
HVD_CODPROMO,
HVD_COSTO_TOT ASC
"$
c = B4XPages.MainPage.skmt.ExecQuery(queryVentas)
If c.RowCount > 0 Then
Dim currentTicket As String = ""
For i = 0 To c.RowCount - 1
c.Position = i
Dim ticket As String = c.GetString("HVD_NUM_TICKET")
Dim fecha As String = c.GetString("HVD_FECHA")
Dim producto As String = c.GetString("HVD_PRONOMBRE")
Dim cant As String = c.GetString("HVD_CANT")
Dim costo As String = c.GetString("HVD_COSTO_TOT")
' Dim Costotodo As Double = 0
' Agregamos el separador de Ticket
If ticket <> currentTicket Then
' Costotodo = Costotodo + costo
' ListView1.AddSingleLine($"🎫 TICKET: ${ticket} | 📅 ${fecha} ${CRLF} 💵 Total: $${NumberFormat2(Costotodo,0,2,2,False)}"$)
ListView1.AddSingleLine($"🎫 TICKET: ${ticket} | 📅 ${fecha}"$)
currentTicket = ticket
End If
' Formateamos el texto del detalle usando Smart String Literal para que se vea más profesional
Dim detalle As String = $"📦 Cantidad: ${cant} | 💵 Total: $${costo}"$
ListView1.AddTwoLines(producto, detalle)
Next
End If
c.Close
' =====================================================================
' Lógica para totales
If Existe <> "0" Then
c = B4XPages.MainPage.skmt.ExecQuery("select SUM(HVD_CANT) AS PC_NOART, SUM(HVD_COSTO_TOT) AS PC_MONTO from hist_ventastodos where HVD_CLIENTE in (Select CUENTA from cuentaa)")
c.Position = 0
L_CANT.Text = c.GetString("PC_NOART")
L_TOTAL.Text = c.GetString("PC_MONTO")
c.Close
End If
' ...
' (AQUÍ SIGUE TU CÓDIGO DEL CustomListView1 PARA EL PROMEDIO DE 4 SEMANAS)
' CustomListView1.AsView.Height = Root.Height * 0.45
' ...
End Sub