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 Double Dim LongitudRU As Double 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 Private p_transparenciaIniciaInicioFinVenta As Panel Private b_inicioVenta As Button Private b_finVenta As Button Private p_inicioFinVenta As Panel Private p_guardarPeso As Panel Private et_guardarPeso As EditText Private b_guardarPeso As Button Private p_botonesGuardarPeso As Panel Private b_noVenta As Button Private p_noVenta As Panel Private b_cancelaNoVenta As Button Private b_guardaNoVenta As Button Private p_botonesNoVenta As Panel Private Panel5 As Panel Private et_comentarioNoVenta As EditText Private r_opcion4 As RadioButton Private r_opcion3 As RadioButton Private r_opcion2 As RadioButton Private r_opcion1 As RadioButton Private l_NoVenta As Label Dim motivo As String Private l_venta As Label End Sub Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("MAPA_RUTAS") ' If File.ExternalWritable Then ' ruta = File.DirDefaultExternal ' Else p_transparenciaIniciaInicioFinVenta.top = 0 : p_transparenciaIniciaInicioFinVenta.Left = 0 p_transparenciaIniciaInicioFinVenta.Height = Activity.Height : p_transparenciaIniciaInicioFinVenta.Width = Activity.Width Subs.centraPanel(p_inicioFinVenta, Activity.Width) p_guardarPeso.Top = p_inicioFinVenta.top : p_guardarPeso.left = p_inicioFinVenta.left Subs.centraPanel(p_noVenta, Activity.Width) ruta = File.DirInternal ' End If 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 Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) Wait For Activity_PermissionResult (Permission As String, Result As Boolean) If Result Then StartService(Tracker) Log("Start Tracker") If MapFragment1.IsGooglePlayServicesAvailable = False Then ToastMessageShow("Please install Google Play Services.", True) End If Else ToastMessageShow("No permission", True) B4XPages.ShowPage("Principal") End If ' If(FirstTime) Then ' Starter.GPS.Initialize("GPS") ' 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=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=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 Log("MAPA_RUTAS RESUME") Starter.rp.Check(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) Wait For Activity_PermissionResult (Permission As String, Result As Boolean) If Result Then If Starter.GPS.GPSEnabled = False Then ToastMessageShow("Debe Activar el GPS del Equipo.", True) StartActivity(Starter.GPS.LocationSettingsIntent) Else Starter.GPS.Start(0, 0) End If End If LIST_AZUL.Initialize LIST_ROJO.Initialize LIST_VERDE.Initialize verde = 0 azul = 1 rojo = 0 todos = 0 If Subs.nosQuedamosEnVenta Then Dim enVentaUsuario As String = "" Dim enVentaPagina As String = "" Private ev As Cursor = Starter.skmt.ExecQuery("select * from cat_variables where cat_va_descripcion = 'EN_VENTA_USUARIO' or cat_va_descripcion = 'EN_VENTA_PAGINA'") If ev.RowCount > 0 Then For i = 0 To ev.RowCount - 1 ev.Position = i If ev.GetString("CAT_VA_DESCRIPCION") = "EN_VENTA_USUARIO" Then enVentaUsuario = ev.GetString("CAT_VA_VALOR") Else If ev.GetString("CAT_VA_DESCRIPCION") = "EN_VENTA_PAGINA" Then enVentaPagina = ev.GetString("CAT_VA_VALOR") End If Next ventaIniciada End If End If End Sub Sub MapFragment1_Ready ' Log("ENTRANDO MapFragment1_Ready") gmap = MapFragment1.GetMap gmap.IsInitialized ' 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=skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_NOMBRE,CAT_CL_LAT,CAT_CL_LONG from kmt_info where gestion = 0 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 and CAT_CL_LAT <> ' ' and CAT_CL_LONG <> ' ' and CAT_CL_CODIGO <> 0 and CAT_CL_CODIGO <> 1") ' skmt.Initialize(ruta,"kmt.db", True) Log($"============== Resultados = ${c.RowCount}"$) If c.RowCount > 0 Then For i = 0 To c.RowCount - 1 c.Position = i ' Log($"|${c.GetString("CAT_CL_LONG")}|${c.GetString("CAT_CL_LAT")}|"$) ' Log(i&"|"&c.GetString("CAT_CL_LAT")&"|") LatitudRu = 0 Log(c.GetString("CAT_CL_CODIGO")&" "& c.GetString("CAT_CL_LAT")) If c.GetString("CAT_CL_LAT") <> "" Then LatitudRu = c.GetString("CAT_CL_LAT") LongitudRU = 0 If c.GetString("CAT_CL_LONG") <> "" Then LongitudRU = c.GetString("CAT_CL_LONG") CODIGO=c.GetString("CAT_CL_CODIGO") Tienda= c.GetString("CAT_CL_NOMBRE") MARK_AZUL = gmap.AddMarker2(LatitudRu, LongitudRU, CODIGO, gmap.HUE_BLUE) MARK_AZUL.Snippet = Tienda Next End If c .Close ' Log("4") If MARK_AZUL.IsInitialized Then LIST_AZUL.Add(MARK_AZUL) End If '''''''----------------------------MARKER VERDE - VENTA If verde = 1 Or todos = 1 Then c2.IsInitialized c2=skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT from kmt_info where gestion = 2 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 and CAT_CL_CODIGO <> 0 and CAT_CL_CODIGO <> 1 UNION select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT from kmt_info2 where gestion = 2 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 and CAT_CL_CODIGO <> 0 and CAT_CL_CODIGO <> 1") Log($"============== Resultados = ${c2.RowCount}"$) For i = 0 To c2.RowCount -1 c2.Position = i ' Log($"|${c2.GetString("CAT_CL_LONG")}|${c2.GetString("CAT_CL_LAT")}|"$) If IsNumber(c2.GetString("CAT_CL_LONG")) Then LongitudRU = c2.GetString("CAT_CL_LONG") LatitudRu = c2.GetString("CAT_CL_LAT") CODIGO=c2.GetString("CAT_CL_CODIGO") Tienda= c2.GetString("CAT_CL_NOMBRE") MARK_VERDE = gmap.AddMarker2(LatitudRu, LongitudRU, CODIGO,gmap.HUE_GREEN) MARK_VERDE.Snippet = Tienda End If Next Else If verde = 1 Or todos = 1 Then c2.IsInitialized c2=skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT from kmt_info where gestion = 2 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 and CAT_CL_CODIGO <> 0 and CAT_CL_CODIGO <> 1") Log($"============== Resultados = ${c2.RowCount}"$) For i = 0 To c2.RowCount -1 c2.Position = i ' Log($"|${c2.GetString("CAT_CL_LONG")}|${c2.GetString("CAT_CL_LAT")}|"$) LongitudRU = c2.GetString("CAT_CL_LONG") LatitudRu = c2.GetString("CAT_CL_LAT") CODIGO=c2.GetString("CAT_CL_CODIGO") Tienda= c2.GetString("CAT_CL_NOMBRE") MARK_VERDE = gmap.AddMarker2(LatitudRu, LongitudRU, CODIGO,gmap.HUE_GREEN) MARK_VERDE.Snippet = Tienda Next c2 .Close If MARK_VERDE.IsInitialized Then LIST_VERDE.Add(MARK_VERDE) End If End If ' '''''''----------------------------MARKER ROJO - NO VENTA If rojo = 1 Or todos = 1 Then c3.IsInitialized c3=skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT from kmt_info where gestion = 3 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 and CAT_CL_CODIGO <> 0 and CAT_CL_CODIGO <> 1") Log($"============== Resultados = ${c3.RowCount}"$) For i = 0 To c3.RowCount -1 c3.Position = i ' Log($"|${c3.GetString("CAT_CL_LONG")}|${c3.GetString("CAT_CL_LAT")}|"$) LongitudRU = c3.GetDouble("CAT_CL_LONG") LatitudRu = c3.GetDouble("CAT_CL_LAT") CODIGO = c3.GetString("CAT_CL_CODIGO") Tienda= c3.GetString("CAT_CL_NOMBRE") MARK_ROJO = gmap.AddMarker2(LatitudRu, LongitudRU, CODIGO, gmap.HUE_RED) MARK_ROJO.Snippet = Tienda Next Else If rojo = 1 Or todos = 1 Then c3.IsInitialized c3=skmt.ExecQuery("select CAT_CL_CODIGO, CAT_CL_NOMBRE,CAT_CL_LONG,CAT_CL_LAT from kmt_info where gestion = 3 and CAT_CL_LAT is not null and CAT_CL_LONG is not null and CAT_CL_LAT <> 0 and CAT_CL_LONG <> 0 and CAT_CL_CODIGO <> 0 and CAT_CL_CODIGO <> 1") Log($"============== Resultados = ${c3.RowCount}"$) For i = 0 To c3.RowCount -1 c3.Position = i ' Log($"|${c3.GetString("CAT_CL_LONG")}|${c3.GetString("CAT_CL_LAT")}|"$) LongitudRU = c3.GetDouble("CAT_CL_LONG") LatitudRu = c3.GetDouble("CAT_CL_LAT") CODIGO = c3.GetString("CAT_CL_CODIGO") Tienda= c3.GetString("CAT_CL_NOMBRE") MARK_ROJO = gmap.AddMarker2(LatitudRu, LongitudRU, CODIGO, gmap.HUE_RED) MARK_ROJO.Snippet = Tienda Next If MARK_ROJO.IsInitialized Then LIST_ROJO.Add(MARK_ROJO) c3.Close End If 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 ' Log("Centramos camara " & LatitudRu & ", " & LongitudRU) Dim aa As CameraPosition aa.Initialize(LatitudRu, LongitudRU, 15) ''' RECOMENDABLE CAMBIAR A 10 PARA QUE SE VEAN MAS MARCADORES gmap.AnimateCamera(aa) '''''---------------------- ESTO ES PARA LOS CLICK EN LAS VENTANAS D INFORMACION----------- Dim OnInfoWindowClickListener1 As OnInfoWindowClickListener OnInfoWindowClickListener1.Initialize("OnInfoWindowClickListener1") GoogleMapEXTRA.SetOnInfoWindowClickListener(gmap, OnInfoWindowClickListener1) End Sub ''''-------------------------- PRUEBA CON MARKER _CLICK Sub OnInfoWindowClickListener1_click(Marker1 As Marker) Log("Tooltip clicked") skmt.ExecNonQuery("delete from CUENTAA") skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?) ", Array As Object(Marker1.Title)) ' Activity.Finish Starter.pre_viejo = Subs.traeTotalClientepreventaparacredito l_venta.Text = "Presiona el boton de ""Iniciar"" para inicar la venta" b_inicioVenta.Enabled = True b_finVenta.Enabled = False p_transparenciaIniciaInicioFinVenta.Visible = True ' B4XPages.ShowPage("Cliente") End Sub Sub ventaIniciada Log("Tooltip clicked") ' skmt.ExecNonQuery("delete from CUENTAA") ' skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?) ", Array As Object(Marker1.Title)) ' Activity.Finish Starter.pre_viejo = Subs.traeTotalClientepreventaparacredito b_inicioVenta.Enabled = False b_finVenta.Enabled = True p_transparenciaIniciaInicioFinVenta.Visible = True End Sub Sub GPS_LocationChanged (Parametro As Location) 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 gmap.Clear MapFragment1_Ready End Sub Sub B_VERDE_Click verde = 1 azul = 0 rojo = 0 todos = 0 gmap.Clear MapFragment1_Ready End Sub Sub B_ROJO_Click rojo = 1 verde = 0 azul = 0 todos = 0 gmap.Clear MapFragment1_Ready End Sub Sub B_AZUL_Click azul = 1 verde = 0 rojo = 0 todos = 0 gmap.Clear MapFragment1_Ready End Sub Private Sub b_inicioVenta_Click b_inicioVenta.Enabled = False et_guardarPeso.Text = "" r_opcion1.Checked = True r_opcion2.Checked = False r_opcion3.Checked = False r_opcion4.Checked = False b_finVenta.Enabled = True Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", Starter.lat_gps, Starter.lon_gps, "2", "", "", "") Starter.enVenta = True Subs.enVenta(1, "MAPA") l_venta.Text = "Ve a tu app de venta y cuando termines regresa aqui y presiona el botón para ingresar ""Peso"" o ""No Venta""" LogColor($">>>>>> INICIA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red) End Sub Private Sub b_finVenta_Click p_guardarPeso.Visible = True ' b_inicioVenta.Enabled = True ' b_finVenta.Enabled = False End Sub Private Sub p_transparenciaIniciaInicioFinVenta_Click Log("Fondo clicked") If b_finVenta.Enabled = False Then p_transparenciaIniciaInicioFinVenta.Visible = False Else ToastMessageShow($"Es necesario presionar "Terminar" para poder continuar"$, True) End If End Sub Sub Activity_KeyPress (key As Int) As Boolean ' BACK key pressed If key=KeyCodes.KEYCODE_BACK Then ' I want to capture the key here so I return True 'StartActivity(Main) If p_transparenciaIniciaInicioFinVenta.Visible = True Then If b_finVenta.Enabled = False Then p_transparenciaIniciaInicioFinVenta.Visible = False Else ToastMessageShow($"Es necesario presionar "Terminar" para poder continuar"$, True) End If Return True ' Ya no hace nada aparte de ocultar el panel. End If Else Return False End If ' Returning False signals the system to handle the key ' Return True End Sub Private Sub b_guardarPeso_Click If et_guardarPeso.Text <> "" And et_guardarPeso.Text <> "0" And IsNumber(et_guardarPeso.Text) Then Private peso As Double = et_guardarPeso.Text et_guardarPeso.Text = peso Subs.guardaPeso("VENTA", Subs.traeAlmacen, Subs.traeRuta2(Subs.traeCliente), Subs.traeUsuarioDeBD, Subs.traeCliente, peso, "", "") Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "Termina Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, 2, "", "", $"Venta:${et_guardarPeso.text}"$) Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)") Starter.enVenta = False Subs.enVenta(0, "") p_guardarPeso.Visible = False p_transparenciaIniciaInicioFinVenta.Visible = False b_inicioVenta.Enabled = True b_finVenta.Enabled = False End If gmap.Clear todos = 1 MapFragment1_Ready End Sub Private Sub p_guardarPeso_Click End Sub Private Sub et_guardarPeso_TextChanged (Old As String, New As String) If Old <> New And IsNumber(New.trim) And New.trim <> "0" Then b_guardarPeso.Enabled = True Else b_guardarPeso.Enabled = False End If End Sub Private Sub b_noVenta_Click p_noVenta.Visible = True End Sub Private Sub b_guardaNoVenta_Click If r_opcion1.Checked Then motivo = "CERRADO" Else If r_opcion2.Checked Then motivo = "NO COMPRA" Else If r_opcion3.Checked Then motivo = "CON PRODUCTO" Else motivo = "NO ESTA EL ENCARGADO" End If DateTime.DateFormat="yy-MM-dd HH:mm:ss" Dim fecha As String=DateTime.Date(DateTime.Now) Subs.guardaPeso("NO VENTA", Subs.traeAlmacen, Subs.traeRuta2(Subs.traeCliente), Subs.traeUsuarioDeBD, Subs.traeCliente, "0", motivo, et_comentarioNoVenta.text) Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "No Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, 2, motivo, et_comentarioNoVenta.text, $"Venta:${et_guardarPeso.text}"$) Starter.enVenta = False Subs.enVenta(0, "") Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 3 where CAT_CL_CODIGO In (select cuenta from cuentaa)") p_noVenta.Visible = False p_guardarPeso.Visible = False p_transparenciaIniciaInicioFinVenta.Visible = False gmap.Clear todos = 1 MapFragment1_Ready End Sub Private Sub b_cancelaNoVenta_Click p_noVenta.Visible = False End Sub Private Sub p_inicioFinVenta_Click End Sub