Files
Kelloggs_v4/B4A/MAPA_RUTAS.bas
2023-10-09 10:29:53 -06:00

291 lines
9.0 KiB
QBasic

B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Activity
Version=9.3
@EndOfDesignText@
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: False
#End Region
'Activity module
Sub Process_Globals
Dim GPS As GPS
Dim rp As RuntimePermissions
Dim ruta As String
' Dim skmt As SQL
Dim c As Cursor
Dim c2 As Cursor
Dim c22 As Cursor
Dim c3 As Cursor
End Sub
Sub Globals
Private gmap As GoogleMap
Private MapFragment1 As MapFragment
Dim Latitud As Double = 0
Dim Longitud As Double = 0
Dim Lat2 As Double = 0
Dim Lon2 As Double = 0
Dim p1, p2 As Location
Dim Distance As Float
Dim boton1 As Button
Dim HUE_BLUE As Float
Dim HUE_RED As Float
Dim HUE_GREEN As Float
Private B_AZUL As Button
Private B_ROJO As Button
Private B_VERDE As Button
Private B_TODOS As Button
Dim Tienda As String
Dim LatitudRU As String
Dim LongitudRU As String
Dim LIST_AZUL As List
Dim LIST_ROJO As List
Dim LIST_VERDE As List
Dim MARK_AZUL As Marker
Dim MARK_ROJO As Marker
Dim MARK_VERDE As Marker
Dim MARK_CEDIS As Marker
Dim rojo As String
Dim azul As String
Dim verde As String
Dim todos As String
Dim NumSerie As Int
Dim OnInfoWindowClickListener1 As OnInfoWindowClickListener
Dim GoogleMapEXTRA As GoogleMapsExtras
Dim CODIGO As String
Private SEMANA As String
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("MAPA_RUTAS")
ruta = File.DirInternal
' If File.Exists(ruta, "kmt.db") = False Then
' File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db")
' End If
' skmt.Initialize(ruta,"kmt.db", True)
'GPS
If(FirstTime) Then
GPS.Initialize("GPS")
End If
If MapFragment1.IsGooglePlayServicesAvailable = False Then
ToastMessageShow("Please install Google Play Services.", True)
End If
'Boton velocidad'
boton1.Initialize(0)
boton1.Text = 0 &" "&"km/h"
boton1.TextColor = Colors.Red
boton1.TextSize = 15
Activity.AddView(boton1, 40%x, 5dip, 25%x, 40dip)
'Fin Boton velocidad'
'MARK_CEDIS.IsInitialized
MARK_AZUL.IsInitialized
MARK_ROJO.IsInitialized
MARK_VERDE.IsInitialized
LIST_AZUL.Initialize
LIST_ROJO.Initialize
LIST_VERDE.Initialize
verde = 0
azul = 0
rojo = 0
todos = 1
c=Starter.skmt.ExecQuery2("select count(*) AS CUANTOS from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SEMANA"))
c.Position =0
SEMANA = c.GetString("CUANTOS")
c.Close
If SEMANA > 0 Then
c=Starter.skmt.ExecQuery2("select CAT_VA_VALOR from CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?", Array As String ("SEMANA"))
c.Position =0
SEMANA = c.GetString("CAT_VA_VALOR")
c.Close
End If
End Sub
Sub Activity_Resume
If GPS.GPSEnabled = False Then
ToastMessageShow("Debe Activar el GPS del Equipo.", True)
StartActivity(GPS.LocationSettingsIntent)
Else
GPS.Start(19.4316281, -99.1333579)
End If
' Subs.ultimaActividad(Me)
End Sub
Sub MapFragment1_Ready
gmap = MapFragment1.GetMap
LongitudRU = 19.4316281
LatitudRU = -99.1333579
' todos= 1
'permisos
rp.CheckAndRequest(rp.PERMISSION_ACCESS_FINE_LOCATION)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
gmap.MyLocationEnabled = Result
Dim JavaMapsObject As JavaObject
JavaMapsObject = gmap.GetUiSettings
JavaMapsObject.RunMethod("setMapToolbarEnabled", Array As Object(True))
'''''''---------------------------- MARKER AZUL - POR VISITAR
If azul = 1 Or todos = 1 Then
c.IsInitialized
c=Starter.skmt.ExecQuery2("select CAT_CL_CODIGO,CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_NUM_SERIEFISICO from kmt_info where CAT_CL_NOMBRE <>'VENTA ABORDO' AND CAT_CL_CODIGO NOT IN (Select PE_CLIENTE from PEDIDO) AND CAT_CL_CODIGO NOT In (Select NV_CLIENTE from NOVENTA) AND CAT_CL_CODIGO NOT LIKE 'N%' and CAT_CL_DIAS_VISITA = (SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'DIA_VISITA') and cat_cl_codigo <> 0 AND CAT_CL_TIPO_RUTA IN (?,?) ORDER BY CAT_CL_NUM_SERIEFISICO", Array As String(SEMANA, "SEMANAL"))
' skmt.Initialize(ruta,"kmt.db", True)
Log($"Por visitar = ${c.RowCount}"$)
If c.RowCount > 0 Then
For i = 0 To c.RowCount -1
c.Position = i
LongitudRU = c.GetDouble("CAT_CL_LONG")
LatitudRU = c.GetDouble("CAT_CL_LAT")
CODIGO=c.GetString("CAT_CL_CODIGO")
Tienda= c.GetString("CAT_CL_NOMBRE")
NumSerie=c.GetInt("CAT_CL_NUM_SERIEFISICO")
'MARK_AZUL = gmap.AddMarker2(LongitudRU,LatitudRu,Tienda, gmap.HUE_BLUE)
MARK_AZUL = gmap.AddMarker3(LatitudRU, LongitudRU, CODIGO, LoadBitmap(File.DirAssets, "marker-azul-" & NumSerie &".png"))
MARK_AZUL.Snippet = Tienda
Next
c .Close
If MARK_AZUL.IsInitialized Then LIST_AZUL.Add(MARK_AZUL)
End If
End If
'''''''---------------------------- MARKER VERDE - VENTA
If verde = 1 Or todos = 1 Then
c2.IsInitialized
c2=Starter.skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_NUM_SERIEFISICO from kmt_info WHERE CAT_CL_NOMBRE <>'VENTA ABORDO' AND CAT_CL_CODIGO IN (Select PE_CLIENTE from PEDIDO) AND CAT_CL_CODIGO NOT In (Select NV_CLIENTE from NOVENTA) and CAT_CL_DIAS_VISITA = (SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'DIA_VISITA')")
Log($"Con ventar = ${c2.RowCount}"$)
For i = 0 To c2.RowCount -1
c2.Position = i
LongitudRU = c2.GetDouble("CAT_CL_LONG")
LatitudRU = c2.GetDouble("CAT_CL_LAT")
CODIGO=c2.GetString("CAT_CL_CODIGO")
Tienda= c2.GetString("CAT_CL_NOMBRE")
NumSerie=c2.GetInt("CAT_CL_NUM_SERIEFISICO")
MARK_VERDE = gmap.AddMarker3(LatitudRU,LongitudRU,CODIGO, LoadBitmap(File.DirAssets, "marker-verde-"&NumSerie&".png"))
MARK_VERDE.Snippet = Tienda
Next
c2 .Close
End If
'''''''---------------------------- MARKER ROJO - NO VENTA
If rojo =1 Or todos = 1 Then
c3.IsInitialized
c3=Starter.skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT ,CAT_CL_NUM_SERIEFISICO from kmt_info where CAT_CL_NOMBRE <>'VENTA ABORDO' AND CAT_CL_CODIGO In (Select NV_CLIENTE from NOVENTA ) AND CAT_CL_CODIGO NOT IN (Select PE_CLIENTE from PEDIDO) and CAT_CL_DIAS_VISITA = (SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = 'DIA_VISITA')order by CAT_CL_NUM_SERIEFISICO")
Log($"Sin venta = ${c3.RowCount}"$)
For i = 0 To c3.RowCount -1
c3.Position = i
LongitudRU = c3.GetDouble("CAT_CL_LONG")
LatitudRU = c3.GetDouble("CAT_CL_LAT")
CODIGO=c3.GetString("CAT_CL_CODIGO")
Tienda= c3.GetString("CAT_CL_NOMBRE")
NumSerie=c3.GetInt("CAT_CL_NUM_SERIEFISICO")
MARK_ROJO = gmap.AddMarker3(LatitudRU,LongitudRU,CODIGO, LoadBitmap(File.DirAssets, "marker-rojo-" & NumSerie &".png"))
MARK_ROJO.Snippet = Tienda
Next
c3.Close
End If
'''------------------------------
' MARK_CEDIS = gmap.AddMarker3("19.3961802","-99.0784293","CEDIS", LoadBitmap(File.DirAssets, "marker-azul-0.png"))
' If MARK_VERDE.Visible Or MARK_ROJO.Visible Then
' MARK_CEDIS.Remove
' End If
If LatitudRU > -1 Then
LongitudRU = 19.4316281
LatitudRU = -99.1333579
End If
Dim aa As CameraPosition
aa.Initialize(LongitudRU,LatitudRU,10)''' RECOMENDABLE CAMBIAR A 10 PARA QUE SE VEAN MAS MARCADORES
gmap.AnimateCamera(aa)
'''''---------------------- ESTO ES PARA LOS CLICK EN LAS VENTANAS DE INFORMACION-----------
Dim OnInfoWindowClickListener1 As OnInfoWindowClickListener
OnInfoWindowClickListener1.Initialize("OnInfoWindowClickListener1")
GoogleMapEXTRA.SetOnInfoWindowClickListener(gmap, OnInfoWindowClickListener1)
End Sub
'
''''-------------------------- PRUEBA CON MARKER _CLICK
Sub OnInfoWindowClickListener1_click(Marker1 As Marker)
Starter.skmt.ExecNonQuery("delete from CUENTAA")
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?) ", Array As Object(Marker1.Title))
Activity.Finish
Subs.iniciaActividad("Cliente")
End Sub
Sub GPS_LocationChanged (Parametro As Location)
gmap = MapFragment1.GetMap
MARK_CEDIS.IsInitialized
Dim sp As Int
sp = Ceil(Parametro.Speed * 3.6)
boton1.Text = sp &" "&"km/h"
Latitud = Parametro.Latitude
Longitud = Parametro.Longitude
p2.Initialize2(Latitud,Longitud)
p1.Initialize2(Lat2, Lon2)
Distance = p1.DistanceTo(p2)
' If Latitud <> 0 And Longitud <> 0 Then
' If Distance > 10 Then
' Lat2 = Latitud
' Lon2 = Longitud
' Dim cp As CameraPosition
' cp.Initialize2(Parametro.Latitude, Parametro.Longitude, gmap.CameraPosition.Zoom, Parametro.Bearing, 0)
' gmap.AnimateCamera(cp)
' End If
' End If
End Sub
Sub Activity_Pause (UserClosed As Boolean)
GPS.Stop
End Sub
Sub B_TODOS_Click
todos = 1
verde = 0
azul = 0
rojo = 0
If gmap.IsInitialized Then gmap.Clear
MapFragment1_Ready
End Sub
Sub B_VERDE_Click
verde = 1
azul = 0
rojo = 0
todos = 0
If gmap.IsInitialized Then gmap.Clear
MapFragment1_Ready
End Sub
Sub B_ROJO_Click
rojo = 1
verde = 0
azul = 0
todos = 0
If gmap.IsInitialized Then gmap.Clear
MapFragment1_Ready
End Sub
Sub B_AZUL_Click
azul = 1
verde = 0
rojo = 0
todos = 0
If gmap.IsInitialized Then gmap.Clear
MapFragment1_Ready
End Sub
Sub Activity_KeyPress (key As Int) As Boolean 'ignore
' BACK key pressed
If key=KeyCodes.KEYCODE_BACK Then
Subs.iniciaActividad("Principal")
Return False
'End If
End If
' Returning False signals the system to handle the key
End Sub