VERSION 5.12.11

- Se agrego coddigo para habilitar la geocerca, se descarga la bandera desde cat_rutas y se guarda en cat_variables (GEOCERCA)
This commit is contained in:
2025-12-30 13:50:30 -06:00
parent be8647261e
commit 5f23ece03f
10 changed files with 291 additions and 441 deletions

View File

@@ -15,7 +15,6 @@ Sub Class_Globals
Dim reqManager As DBRequestManager
Dim cmd As DBCommand
Dim ime As IME
Dim g As GPS
Dim ruta As String
Dim skmt As SQL
@@ -34,8 +33,6 @@ Sub Class_Globals
Dim BLANCO As String
Dim cuenta As String
Dim tipo_venta As String = "PREVENTA"
Dim c As Cursor
Dim s As Cursor
Dim DD As Cursor
@@ -54,13 +51,10 @@ Sub Class_Globals
Dim gest As Button
Dim la_saldotot As Label
Dim la_saldooper As Label
Dim Tels As Button
Dim Label10 As Label
Dim Label11 As Label
Dim Tar As Button
Dim la_comm As Label
Dim la_actdte As Label
Dim la_usuario As Label
@@ -72,8 +66,7 @@ Sub Class_Globals
Dim DATOS As Button
Dim Guardar As Button
Dim NUEVO As Button
' Dim lat_gps, lon_gps As String
' Dim lat_gps, lon_gps As String
Dim l_total As Label
Dim c2 As Cursor
Dim S2 As Cursor
@@ -88,7 +81,6 @@ Sub Class_Globals
Private BT_QR As Button
'Private qr As QRCode
Dim CODIGO As String
Private b_mapa As Button
Dim CUANTOS As String
Private B_IMP As Button
@@ -110,22 +102,18 @@ Sub Class_Globals
Private HR_RES3 As String
Private EXISTE As String
Private TELEFONO As String
Private RB1 As RadioButton
Private RB2 As RadioButton
Private RB3 As RadioButton
Private RB4 As RadioButton
Private RB5 As RadioButton
Private stay_hh As String
Private stay_mi As String
Private stay_ss As String
Private LA_GEO As Label
Dim result As Int
Private cercavalor As String
Private LA_RUTA As String
Private b_like As Button
Private B_GPS As Button
' Dim sc As JhsIceZxing1
@@ -152,7 +140,6 @@ Sub Class_Globals
Dim cuest As C_Cuestionario
Private b_ventaabordo As Button
Private l_factura As Label
Dim Printer1 As EscPosPrinter
Dim impresoraConectada As Boolean = False
Dim MAC_IMPRESORA As String
@@ -197,7 +184,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Else
b_cxc.Visible = True
End If
p_telefono.Top = 0 : p_telefono.Left = 0
s.Position=0
If c.RowCount>0 Then
c.Position=0
@@ -252,6 +239,7 @@ End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
CallSubDelayed(Tracker, "StartFLPSmall")
p_pedidoExistente.Visible = False
reqManager.Initialize(Me, Starter.DBReqServer)
b_pedidoExistente.Visible = False
@@ -267,7 +255,7 @@ Sub B4XPage_Appear
p_abono.Visible = False
Subs.centraPanel(p_abono, Root.Width)
skmt.Initialize(ruta,"kmt.db", True)
c=B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa) UNION ALL select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info2 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
c=B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa) UNION ALL select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info2 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
s=B4XPages.MainPage.skmt.ExecQuery("Select ifnull(SUM(PE_COSTO_TOT), 0) As TOTAL_CLIE, SUM(PE_CANT) As CANT_CLIE, PC_FACTURA FROM PEDIDO_CLIENTE INNER JOIN PEDIDO ON PEDIDO_CLIENTE.PC_CLIENTE = PEDIDO.PE_CLIENTE WHERE (PE_CLIENTE IN (Select cuenta from cuentaa))")
b = B4XPages.MainPage.skmt.ExecQuery("select COUNT(*) AS CLIENTE FROM ABONOSP WHERE CLIENTE IN (Select CUENTA from cuentaa)")
b.Position = 0
@@ -304,16 +292,16 @@ Sub B4XPage_Appear
If m_lon.Length < 5 Then m_lon = "0"
LA_RUTA = c.GetString("CAT_CL_RUTA")
' ESTO ES PARA FORZAR A PEDIR LA FOTO Y EL GPS
If c.GetString("CAT_CL_NUM_SERIEFISICO") = "0" Then
L_QR.TEXT = "SIN CODIGO"
L_QR.TextColor = Colors.Red
gest.VISIBLE = False
BT_QR.Visible = True
Else
L_QR.TEXT = c.GetString("CAT_CL_NUM_SERIEFISICO")
L_QR.TextColor = Colors.Blue
BT_QR.Visible = False
End If
' If c.GetString("CAT_CL_NUM_SERIEFISICO") = "0" Then
' L_QR.TEXT = "SIN CODIGO"
' L_QR.TextColor = Colors.Red
' gest.VISIBLE = False
' BT_QR.Visible = True
' Else
' L_QR.TEXT = c.GetString("CAT_CL_NUM_SERIEFISICO")
' L_QR.TextColor = Colors.Blue
' BT_QR.Visible = False
' End If
End If
c.Close
s.Close
@@ -374,17 +362,9 @@ Sub B4XPage_Appear
Tels.Visible = True
gest.Visible = True
End If
CallSubDelayed(Tracker, "Track")
CallSubDelayed(Tracker, "StartFLPSmall")
If Tracker.FLP.IsInitialized And Tracker.FLP.GetLastKnownLocation.IsInitialized Then 'Si tenemos "UltimaUbicaccionConocida" la usamos.
B4XPages.MainPage.lat_gps = Tracker.FLP.GetLastKnownLocation.Latitude
B4XPages.MainPage.lon_gps = Tracker.FLP.GetLastKnownLocation.Longitude
' Log($"Tenemos UUC: ${Tracker.FLP.GetLastKnownLocation.Latitude},${Tracker.FLP.GetLastKnownLocation.Longitude}"$)
GPS_LocationChanged(Tracker.FLP.GetLastKnownLocation)
End If
Tels.Visible = True
gest.Visible = True
' h = B4XPages.MainPage.skmt.ExecQuery("SELECT CUENTA from CUENTAA")
' h.Position = 0
' Log(h.GetString("CUENTA"))
@@ -399,33 +379,20 @@ Sub B4XPage_Appear
' h.Close
' j.Close
If la_cuenta.Text = "0" Then
p_cbFactura.Visible = False
l_factura.Visible = False
b_ventaabordo.Visible = False
Else
p_cbFactura.Visible = True
l_factura.Visible = True
b_ventaabordo.Visible = True
End If
c = skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("MACIMP"))
If c.RowCount > 0 Then
c.Position = 0
Starter.MAC_IMPRESORA = c.GetString("CAT_VA_VALOR")
End If
If Starter.MAC_IMPRESORA = "" Then Starter.MAC_IMPRESORA = "0"
' Log("|" & Starter.MAC_IMPRESORA & "|")
Printer1.Initialize(Me, "Printer1")
If Printer1.IsConnected = False Then
' Printer1.Connect
' Log("1")
Else
Printer1.DisConnect
Printer1.Connect
Log("2")
End If
If Subs.hayPedido And Starter.utimaPagina <> "Productos" And Starter.utimaPagina <> "Cliente" Then
' Log()
Private p As ResultSet = Starter.skmt.ExecQuery($"select * from pedido where pe_cliente = '${Subs.traeCliente}'"$)
lv_pedidoExistente.Clear
Private label1 As Label = lv_pedidoExistente.TwoLinesLayout.Label
@@ -433,7 +400,7 @@ Sub B4XPage_Appear
label1.TextSize = 13
Private label2 As Label = lv_pedidoExistente.TwoLinesLayout.SecondLabel
label2.TextSize = 13
Private cs As CSBuilder
Do While p.NextRow
cs.Initialize
@@ -443,11 +410,31 @@ Sub B4XPage_Appear
End If
lv_pedidoExistente.AddTwoLines(cs.Color(textColor).append(p.GetString("PE_PRONOMBRE")).pop, $"Cant: ${p.GetString("PE_CANT")} - $${NumberFormat2(p.GetString("PE_COSTO_TOT"),1,2,2,True)}, ${p.GetString("PE_FOLIO")}"$)
Loop
p_pedidoExistente.Visible = True
p_pedidoExistente.BringToFront
b_pedidoExistente.Visible = True
End If
If la_cuenta.Text = "0" Then
p_cbFactura.Visible = False
l_factura.Visible = False
b_ventaabordo.Visible = False
Else
p_cbFactura.Visible = True
l_factura.Visible = True
b_ventaabordo.Visible = True
End If
'Revisamos si la geocerca debe de activarse y de ser necesario, ocultamos los botones de venta y no venta.
If Subs.traeGeocerca Then ocultamosBotonesPorGeocerca
If Tracker.FLP.IsInitialized And Tracker.FLP.GetLastKnownLocation.IsInitialized Then 'Si tenemos "UltimaUbicaccionConocida" la usamos.
Log($"Tenemos UUC: ${Tracker.FLP.GetLastKnownLocation.Latitude},${Tracker.FLP.GetLastKnownLocation.Longitude}"$)
B4XPages.MainPage.lat_gps = Tracker.FLP.GetLastKnownLocation.Latitude
B4XPages.MainPage.lon_gps = Tracker.FLP.GetLastKnownLocation.Longitude
GPS_LocationChanged(Tracker.FLP.GetLastKnownLocation)
End If
End Sub
Sub B4XPage_disappear
@@ -457,35 +444,41 @@ End Sub
Sub GPS_LocationChanged (Location1 As Location)
' LogColor($"Entrando a Cliente.GPS_LocationChanged"$, Colors.red)
If Tracker.FLP.GetLastKnownLocation.IsInitialized And Tracker.FLP.GetLastKnownLocation.Latitude <> 0 Then
B4XPages.MainPage.lat_gps = Tracker.FLP.GetLastKnownLocation.Latitude
B4XPages.MainPage.lon_gps = Tracker.FLP.GetLastKnownLocation.Longitude
' Log("Coords set to: " & B4XPages.MainPage.lat_gps & " and " & B4XPages.MainPage.lon_gps)
End If
Dim l1, l2 As Location
l1.Initialize2(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)
' If Tracker.FLP.GetLastKnownLocation.IsInitialized And Tracker.FLP.GetLastKnownLocation.Latitude <> 0 Then
' B4XPages.MainPage.lat_gps = Tracker.FLP.GetLastKnownLocation.Latitude
' B4XPages.MainPage.lon_gps = Tracker.FLP.GetLastKnownLocation.Longitude
'' Log("Coords set to: " & B4XPages.MainPage.lat_gps & " and " & B4XPages.MainPage.lon_gps)
' End If
B4XPages.MainPage.lat_gps = Location1.Latitude
B4XPages.MainPage.lon_gps = Location1.Longitude
Dim locTienda As Location
locTienda.Initialize2(m_lat, m_lon)
' Log($"Coordenadas de la tienda - lat:${m_lat}, lon:${m_lon}"$)
l2.Initialize2(m_lat, m_lon)
BT_QR.Enabled = True
LA_GPS.TextColor = Colors.Blue
LA_GPS.Text = "CON UBICACION GPS"
' B_GPS.Enabled = True
'now we need the distance between our location and the target location
distance = l1.DistanceTo(l2) 'the result is in meter
gest.Visible = True
' If distance < 100 Then
LA_GEO.TextColor = Colors.Blue
Tels.Visible = True
distance = Location1.DistanceTo(locTienda) 'Distancia de la ubicacion actual a coords de la tienda.
Log("Distancia a tienda: " & distance)
If distance < 50 Then
gest.Visible = True
' Else
' LA_GEO.TextColor = Colors.Red
' End If
Tels.Visible = True
If la_cuenta.Text = "0" Then
b_ventaabordo.Visible = False
Else
b_ventaabordo.Visible = True
End If
Else
LA_GEO.TextColor = Colors.Red
If Subs.traeGeocerca Then
ocultamosBotonesPorGeocerca
End If
End If
LA_GEO.Text= $"$1.2{distance/1000} kms"$
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_GPS")
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_GPS (HGDATE, HGLAT, HGLON) VALUES(?,?,?) ", Array As Object (sDate & sTime, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps))
CallSubDelayed(Tracker, "CreateLocationRequest")
' CallSubDelayed(Tracker, "CreateLocationRequest")
End Sub
Sub ListView1_ItemLongClick (Position As Int, Value As Object)
@@ -510,7 +503,6 @@ Sub gest_Click
' Return False
' End If
Private x As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select tienda_id from COORDENADAS_GPS where tienda_id = '${la_cuenta.text}'"$)
' Log("+++++++++++++ " & x.RowCount)
If la_cuenta.Text<> "0" And distance > 50 And x.RowCount = 0 Then
Private res As String = Msgbox2("¿Estas en la tienda, para guardar la nueva ubicación?", "AVISO", "Si","" ,"No", Null) 'ignore
If res = DialogResponse.POSITIVE Then
@@ -527,8 +519,6 @@ Sub gest_Click
reqManager.ExecuteCommand(cmd , "ins_coords_nuevas")
End If
End If
'Si hay mapa de productos es que hay venta en proceso, entonces borramos la actual para meter la nueva.
' If B4XPages.MainPage.productos.prodsMap.IsInitialized And B4XPages.MainPage.productos.prodsMap.Size > 0 Then Subs.borraPedidoClienteActual
B4XPages.ShowPage("productos")
End Sub
@@ -539,7 +529,6 @@ End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
' BACK key pressed
' Return True To close, False To cancel
' Log($"venimosDeTicketsDia=${venimosDeTicketsDia}"$)
If la_cuenta.Text <> "0" Then
cuest.encuestaIniciada = False
cuest.ocultPanelPregunta
@@ -570,10 +559,6 @@ Sub Tar_Click
B4XPages.ShowPage("Nota")
End Sub
'Sub Tar_LongClick
' p_abono.Visible = True
'End Sub
Sub DATOS_Click
B4XPages.ShowPage("telefonos")
End Sub
@@ -592,7 +577,6 @@ Sub Guardar_Click
c.Close
c=B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, COUNT(*) AS CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position=0
' Log("xxxxxxxxxxxxxxx " & c.GetString("CUANTOS"))
If c.GetString("CUANTOS") > 0 Then ' Si hay pedido, entonces ...
Log("HAY PEDIDO")
Private cbFactura As Int = 0
@@ -632,7 +616,7 @@ Sub Guardar_Click
' LogColor($"actualizamos "${la_cuenta.text}, hora_final=${DateTime.now}"$,Colors.Red)
Subs.actualizaTET(la_cuenta.text)
DateTime.TimeFormat = "HH:mm:ss"
mandaPendientes 'LO COMENTAMOS PARA PRUEBAS, ACTIVAR AL FINAL!!! solo envia clientes nuenos, no comentar lo que yo descomente --- javier (por que Guerra lo comento)
mandaPendientes 'LO COMENTAMOS PARA PRUEBAS, ACTIVAR AL FINAL!!! - Solo envia clientes nuevos, no comentar lo que yo descomente --- javier (por que Guerra lo comento) ... ¿Que descomentaste?? --- Guerra
mandapiezas
B4XPages.MainPage.productos.reiniciarlistaProds = True
B4XPages.MainPage.productos.prodsMap.Initialize
@@ -1743,4 +1727,11 @@ Private Sub Label16_LongClick
p_telefono.Height = Root.Height
p_telefono.Width = Root.Width
p_telefono.Visible = True
End Sub
' Ocultamos por geocerca (Venta, Preventa y No venta)
Sub ocultamosBotonesPorGeocerca
gest.Visible = False
b_ventaabordo.Visible = False
Tels.Visible = False
End Sub