diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index b891b90..94cc872 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -402,6 +402,12 @@ Sub Class_Globals Private l_titEncuesta As Label Private ImageView11 As ImageView Dim distance As Long + Private p_pideGeoPass As Panel + Private b_geopass As Button + Private et_geopass As EditText + Private l_geopass As Label + Dim reqManager As DBRequestManager + End Sub 'You can add more parameters here. @@ -451,6 +457,8 @@ Private Sub B4XPage_Created (Root1 As B4XView) SV_ENCUESTA.Width = Root.Height p_pregunta1.Height = Root.Height p_pregunta1.Width = Root.Height + Tels.Visible = False + gest.Visible = False End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. @@ -476,7 +484,7 @@ Sub B4XPage_Appear StartActivity(Starter.gps.LocationSettingsIntent) End If skmt.Initialize(ruta,"kmt.db", True) - + reqManager.Initialize(Me, Starter.server) 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)") s=B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") @@ -507,7 +515,7 @@ Sub B4XPage_Appear If c.GetString("CAT_CL_NUM_SERIEFISICO") = "0" Then L_QR.TEXT = "SIN CODIGO" L_QR.TextColor = Colors.Red - If ALMACEN <> "32" And ALMACEN <> "33" Then gest.VISIBLE = True And Tels.Visible = True + If ALMACEN <> "32" And ALMACEN <> "33" And ALMACEN <> 6 Then gest.VISIBLE = True And Tels.Visible = True BT_QR.Visible = True Else L_QR.TEXT = c.GetString("CAT_CL_NUM_SERIEFISICO") @@ -576,6 +584,37 @@ Sub B4XPage_Appear Tels.Visible = True gest.Visible = True End If + + c = skmt.ExecQuery("SELECT PC_CLIENTE FROM PEDIDO_CLIENTE WHERE PC_CLIENTE IN (Select CUENTA from cuentaa)") + If c.RowCount > 0 Then + Tels.Visible = True + gest.Visible = True + + Else If c.RowCount = 0 Then + Tels.Visible = False + gest.Visible = False + c = skmt.ExecQuery("SELECT NV_CLIENTE FROM NOVENTA CLIENTE WHERE NV_CLIENTE IN (Select CUENTA from cuentaa)") + If c.RowCount > 0 Then + Tels.Visible = True + gest.Visible = True + Else If c.RowCount = 0 Then + Tels.Visible = False + gest.Visible = False + LA_GEO.TextColor = Colors.Red + If ALMACEN = "1" Then + Tels.Visible = False + gest.Visible = True + End If + End If + + + LA_GEO.TextColor = Colors.Red + If ALMACEN = "1" Then + Tels.Visible = False + gest.Visible = True + End If + + End If CallSubDelayed(Tracker, "Track") CallSubDelayed(Tracker, "StartFLPSmall") If Tracker.FLP.GetLastKnownLocation.IsInitialized Then 'Si tenemos "UltimaUbicaccionConocida" la usamos. @@ -641,45 +680,18 @@ Sub B4XPage_Appear B_IMP.Visible = False End If ' Log(distance) - If (ALMACEN = "32" Or ALMACEN = "33") And distance > 100 Then + If (ALMACEN = "32" Or ALMACEN = "33" Or ALMACEN = "6") And distance > 100 Then gest.Visible = False + Tels.Visible = False ' ToastMessageShow("aaa", False) End If - c = skmt.ExecQuery("SELECT PC_CLIENTE FROM PEDIDO_CLIENTE WHERE PC_CLIENTE IN (Select CUENTA from cuentaa)") - If c.RowCount > 0 Then - Tels.Visible = True - gest.Visible = True - - Else If c.RowCount = 0 Then - Tels.Visible = False - gest.Visible = False - c = skmt.ExecQuery("SELECT NV_CLIENTE FROM NOVENTA CLIENTE WHERE NV_CLIENTE IN (Select CUENTA from cuentaa)") - If c.RowCount > 0 Then - Tels.Visible = True - gest.Visible = True - Else If c.RowCount = 0 Then - Tels.Visible = False - gest.Visible = False - LA_GEO.TextColor = Colors.Red - If ALMACEN = "1" Then - Tels.Visible = False - gest.Visible = True - End If - End If - - - LA_GEO.TextColor = Colors.Red - If ALMACEN = "1" Then - Tels.Visible = False - gest.Visible = True - End If - - End If + 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 @@ -706,9 +718,18 @@ Sub GPS_LocationChanged (Location1 As Location) Dim habi = c.GetString("HABILITADO") End If c.Close - If ALMACEN <> "32" And ALMACEN <> "33" Then gest.Visible = True - If ALMACEN <> "32" And ALMACEN <> "33" Then Tels.Visible = True - If ALMACEN = "32" Or ALMACEN = "33" Then + If gest.IsInitialized And Tels.IsInitialized Then + + If ALMACEN <> "32" And ALMACEN <> "33" And ALMACEN <> 6 Then + gest.Visible = True + Tels.Visible = True + Else If ALMACEN = "32" And ALMACEN = "33" And ALMACEN = 6 Then + gest.Visible = False + Tels.Visible = False + End If + End If + + If ALMACEN = "32" Or ALMACEN = "33" Or ALMACEN = "6" Then If distance < 100 Then LA_GEO.TextColor = Colors.Blue Tels.Visible = True @@ -721,7 +742,7 @@ Sub GPS_LocationChanged (Location1 As Location) c.Position = 0 Dim al_latitud As String = c.GetString("CAT_VA_VALOR") End If - c.Close + c.Close c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LONGITUD")) If c.RowCount > 0 Then @@ -830,7 +851,76 @@ Sub GPS_LocationChanged (Location1 As Location) 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") - +End Sub + +Private Sub p_pideGeoPass_Click +End Sub + +Private Sub b_geopass_Click + If et_geopass.Text.trim = "KMTS1" Then + m_lat = B4XPages.MainPage.lat_gps + m_lon = B4XPages.MainPage.lon_gps + GPS_LocationChanged(Starter.ubicacionActual) + skmt.ExecNonQuery($"update kmt_info set CAT_CL_LAT = '${B4XPages.MainPage.lat_gps}', CAT_CL_LONG = '${B4XPages.MainPage.lon_gps}' where CAT_CL_CODIGO = '${Subs.traeCliente}'"$) + et_geopass.Text = "" + Else + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "select_geoPass_GUNA" + cmd.Parameters = Array As Object(et_geopass.Text.Trim, Subs.traeAlmacen, Subs.traeRuta) + reqManager.ExecuteQuery(cmd , 0, "traeGeoPass") + Log($"${Starter.server}, ${et_geopass.Text}, ${Subs.traeAlmacen}, ${Subs.traeRuta}"$) + et_geopass.Text = "" + End If + p_pideGeoPass.Visible = False +' ime.HideKeyboard +' Log("Guardamos coords") +' LATITUD = Starter.lat_gps +' LONGITUD = Starter.lon_gps +' GPS_LocationChanged(Starter.ubicacionActual) +' Starter.skmt.ExecNonQuery($b_geopass"update kmt_info set CAT_CL_LAT = '${Starter.lat_gps}', CAT_CL_LONG = '${Starter.lon_gps}' where CAT_CL_CODIGO = '${Subs.traeCliente}'"$) +End Sub + +Private Sub LA_GEO_LongClick + If distance > 99 Then + p_pideGeoPass.BringToFront + p_pideGeoPass.Visible = True + End If +End Sub + +Sub JobDone(Job As HttpJob) + If Job.Success = False Then +' ToastMessageShow("Error: " & Job.ErrorMessage, True) + LogColor("Error: " & Job.tag & " : " & Job.ErrorMessage, Colors.red) +' LogColor("Error: " & Job.ErrorMessage, Colors.red) + Else + LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211110 + If Job.JobName = "DBRequest" Then + Dim result1 As DBResult = reqManager.HandleJob(Job) + If result1.Tag = "traeGeoPass" Then 'query tag + Log("SIN REGISTROS " & result1.Rows.Size) + If result1.Rows.Size = 0 Then MsgboxAsync("Contraseña equivocada, por favor intente de nuevo.", "ATENCION") + For Each records() As Object In result1.Rows +' For Each k As String In result.Columns.Keys +' Log(k & ": " & records(result.Columns.Get(k))) +' Next + Private permiso_geoPass As String = records(result1.Columns.Get("'OK'")) + If permiso_geoPass = "OK" Then + m_lat = B4XPages.MainPage.lat_gps + m_lon = B4XPages.MainPage.lon_gps + GPS_LocationChanged(Starter.ubicacionActual) + skmt.ExecNonQuery($"update kmt_info set CAT_CL_LAT = '${B4XPages.MainPage.lat_gps}', CAT_CL_LONG = '${B4XPages.MainPage.lon_gps}' where CAT_CL_CODIGO = '${Subs.traeCliente}'"$) + Dim cmd As DBCommand + cmd.Initialize + cmd.Name = "delete_geoPass_GUNA" + cmd.Parameters = Array As Object( Subs.traeAlmacen, Subs.traeRuta) + reqManager.ExecuteQuery(cmd , 0, "traeGeoPass") + End If + Next + End If + End If + End If + Job.Release End Sub Sub ListView1_ItemLongClick (Position As Int, Value As Object) @@ -910,7 +1000,7 @@ Sub gest_Click ' Panel5.Width = Root.Width * 0.94 ' SV_ENCUESTA.Panel.Height = Panel5.Height + 60 ' Panel7.Visible = False -' + ' ' ' para la m2 ' p_cliente.Visible = False ' SV_ENCUESTA.Visible = True @@ -955,7 +1045,7 @@ Sub gest_Click ' Loop ' result = Msgbox2("Entiendo, acepto y consciento que GUNA usará mis datos Personales y serán tratados acorde con lo establecido en la Ley Federal de Protección de Datos Personales en Posesión de los Particulares (en lo sucesivo la “Ley”), y su respectivo Reglamento; bajo lo manifestado en el Aviso de Privacidad – Texto Completo – que se encuentra en la página www.guna.com.mx", "AVISO DE PRIVACIDAD","ACEPTO","", "NO ACEPTO",LoadBitmap(File.DirAssets,"alert2.png")) ' If result = DialogResponse.Positive Then -' + ' ' p_pregunta1.Visible = True ' ' Else @@ -3626,18 +3716,16 @@ End Sub 'Esta subrutina muestra las encuestas. Sub Cuestionario Log("Entramos a Cuestionario") + Private logger As Boolean = True b_encuesta_continuar.Visible = False et_encuesta.Visible = False - - - Private logger As Boolean = True DateTime.DateFormat = "MM/dd/yyyy" sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) Private fecha As String = $"${DateTime.Date(DateTime.Now)} ${DateTime.Time(DateTime.Now)}"$ CUANTOS = 0 ' indicePregunta = 0 - Log($"Tomar_Foto = ${TOMAR_FOTO}"$) + If logger Then Log($"Tomar_Foto = ${TOMAR_FOTO}"$) If TOMAR_FOTO = 0 Then s = B4XPages.MainPage.skmt.ExecQuery("select COUNT(*) AS CUANTOS from HIST_ENCUESTA where HE_CLIE In (Select cuenta from cuentaa)") s.Position= 0 @@ -3648,32 +3736,33 @@ Sub Cuestionario CUANTOS2 = s.GetString("CUANTOS2") If logger Then LogColor($"Hist:encuesta=${CUANTOS}, hist_encuesta2 = ${CUANTOS2}"$, Colors.Magenta) End If - Log(CUANTOS & "|" & CUANTOS2) + If logger Then Log(CUANTOS & "|" & CUANTOS2) If CUANTOS = 0 And CUANTOS2 = 0 Then Private enc As Cursor = B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_EP_ID, CAT_EP_IDTIPOPREGUNTA, CAT_CE_DESCRIPCION, CAT_EP_PREGUNTA, CAT_EP_RES1_PRED, CAT_EP_RES2_PRED, CAT_EP_RES3_PRED, CAT_EP_ORDEN_PREGUNTA FROM CAT_ENCUESTA_PREGUNTA ORDER BY CAT_CE_DESCRIPCION, CAST(CAT_EP_ORDEN_PREGUNTA AS DECIMAL)") If enc.RowCount > 0 Then enc.position = 0 - Log($"CAT_EP_ID=${enc.GetString("CAT_EP_ID")}"$) + If logger Then Log($"CAT_EP_ID=${enc.GetString("CAT_EP_ID")}"$) Private listaPreguntas As List listaPreguntas.Initialize For j = 0 To enc.RowCount - 1 'Ponemos en una lista los ID de las preguntas. enc.Position = j listaPreguntas.Add(enc.GetString("CAT_EP_ID")) Next - Log(listaPreguntas) + If logger Then Log(listaPreguntas) enc.position = 0 For i = 0 To enc.RowCount - 1 -' Log($"ROWCOUNT: ${enc.RowCount}"$) -' Log($"tipo: ${enc.GetString("CAT_EP_IDTIPOPREGUNTA")}"$) -' Log($"CAT_EP_ID=${enc.GetString("CAT_EP_ID")}, CAT_EP_PREGUNTA=${enc.GetString("CAT_EP_PREGUNTA")}"$) +' If logger Then Log($"ROWCOUNT: ${enc.RowCount}"$) +' If logger Then Log($"tipo: ${enc.GetString("CAT_EP_IDTIPOPREGUNTA")}"$) + If logger Then Log($"CAT_EP_ID=${enc.GetString("CAT_EP_ID")}, CAT_EP_PREGUNTA=${enc.GetString("CAT_EP_PREGUNTA")}"$) If indicePregunta <> 0 Then + indicePregunta = listaPreguntas.IndexOf(enc.GetString("CAT_EP_ID")) + 1 'Nos movemos a la posicion especificada por la respuesta, en las preguntas de tipo desicion, la respuesta nos indica a que pregunta movernos. i = indicePregunta -' Log($"i = ${i}"$) + Log($"i = ${i}"$) End If -' Log("indicePregunta: " & indicePregunta) + If logger Then Log("indicePregunta: " & indicePregunta & ", TIPO: " & enc.GetString("CAT_EP_IDTIPOPREGUNTA")) ' Log($"Tomar_Foto = ${TOMAR_FOTO}"$) -' Log($"EncuestaRes = ${encuestaRes}"$) - Log(listaPreguntas) + If logger Then Log($"EncuestaRes = ${encuestaRes}"$) + If logger Then Log(listaPreguntas) If TOMAR_FOTO = 1 Then If CURSOR_FOTO + 1 > enc.RowCount -1 Then TOMAR_FOTO = 0 @@ -3681,20 +3770,24 @@ Sub Cuestionario Else i = CURSOR_FOTO + 1 End If -' Log(i) + If logger Then Log($"i = ${i}"$) TOMAR_FOTO = 0 End If If i > (enc.RowCount - 1) Then Exit ' Si se contestó la ultima pregunta, entonces salimos. + +' indicePregunta = listaPreguntas.IndexOf(enc.GetString("CAT_EP_ID")) 'Nos movemos a la posicion especificada por la respuesta, en las preguntas de tipo desicion, la respuesta nos indica a que pregunta movernos. + i = indicePregunta + enc.Position = i ' Log($"POSICION = ${enc.Position}"$) If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 5 Then - Log("Pregunta tipo 5") + If logger Then Log("Pregunta tipo 5") id_encuesta = enc.GetString("CAT_EP_ID") TOMAR_FOTO = 1 CURSOR_FOTO = i Exit ELSE IF enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 3 Then ' Tipo SI/NO - Log("Pregunta tipo 3") + If logger Then Log("Pregunta tipo 3") botonPresionado = 0 ' Bandera para que espere a que se conteste la pregunta l_titEncuesta.Text = enc.GetString("CAT_CE_DESCRIPCION") l_txtEncuesta.Text = enc.GetString("CAT_EP_PREGUNTA") @@ -3706,15 +3799,16 @@ Sub Cuestionario Do Until botonPresionado = 1 'Esperamos que respondan la pregunta Sleep(0) Loop - Log("encuestaRes: " & encuestaRes) + If logger Then Log("encuestaRes: " & encuestaRes) + If logger Then LogColor($"Guardamos tipo 3 : ${encuestaRes}"$, Colors.Green) B4XPages.MainPage.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_LAT, HE_LON) VALUES (?,?,?,?,?,?)", Array As Object(la_cuenta.Text, encuestaRes, fecha, enc.GetString("CAT_EP_ID"), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)) ocultaPanelEncuesta ELSE IF enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 4 Then - Log("Pregunta tipo 4") + If logger Then Log("Pregunta tipo 4") botonPresionado = 0 ' Bandera para que espere a que se conteste la pregunta l_titEncuesta.Text = enc.GetString("CAT_CE_DESCRIPCION") l_txtEncuesta.Text = enc.GetString("CAT_EP_PREGUNTA") - Log(enc.GetString("CAT_EP_PREGUNTA")) + If logger Then Log(enc.GetString("CAT_EP_PREGUNTA")) Subs.centraEtiqueta(l_txtEncuesta, Root.Width) muestraBoton(b_encuesta_1,"SI", enc.GetString("CAT_EP_ID"), centroPantalla-350, 580, 300, 160) muestraBoton(b_encuesta_2, "NO", enc.GetString("CAT_EP_ID"), centroPantalla+50, 580, 300, 160) @@ -3723,7 +3817,8 @@ Sub Cuestionario Do Until botonPresionado = 1 'Esperamos que respondan la pregunta Sleep(0) Loop - Log("encuestaRes: " & encuestaRes) + If logger Then Log("encuestaRes: " & encuestaRes) + If logger Then LogColor($"Guardamos tipo 4 : ${encuestaRes}"$, Colors.Green) If encuestaRes = "SI" Then B4XPages.MainPage.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_LAT, HE_LON) VALUES (?,?,?,?,?,?)", Array As Object(la_cuenta.Text, "SI", fecha, enc.GetString("CAT_EP_ID"), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)) indicePregunta = listaPreguntas.IndexOf(enc.GetString("CAT_EP_RES1_PRED")) 'Nos movemos a la posicion especificada por la respuesta, en las preguntas de tipo desicion, la respuesta nos indica a que pregunta movernos. @@ -3744,7 +3839,7 @@ Sub Cuestionario botonPresionado = 0 ' Bandera para que espere a que se conteste la pregunta. l_titEncuesta.Text = enc.GetString("CAT_CE_DESCRIPCION") l_txtEncuesta.Text = enc.GetString("CAT_EP_PREGUNTA") - Log(enc.GetString("CAT_EP_PREGUNTA")) + If logger Then Log(enc.GetString("CAT_EP_PREGUNTA")) muestraBoton(b_encuesta_1, enc.GetString("CAT_EP_RES1_PRED"), enc.GetString("CAT_EP_ID"), centroPantalla-250, 580, 500, 160) muestraBoton(b_encuesta_2, enc.GetString("CAT_EP_RES2_PRED"), enc.GetString("CAT_EP_ID"), centroPantalla-250, 740, 500, 160) muestraBoton(b_encuesta_3, enc.GetString("CAT_EP_RES3_PRED"), enc.GetString("CAT_EP_ID"), centroPantalla-250, 900, 500, 160) @@ -3754,11 +3849,15 @@ Sub Cuestionario Sleep(0) Loop Log("encuestaRes: " & encuestaRes) - Log($"Guardamos tipo 2 : ${encuestaRes}"$) + If logger Then LogColor($"Guardamos tipo 2 : ${encuestaRes}"$, Colors.Green) B4XPages.MainPage.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_LAT, HE_LON) VALUES (?,?,?,?,?,?)", Array As Object(la_cuenta.Text, encuestaRes, fecha, enc.GetString("CAT_EP_ID"), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)) + + indicePregunta = listaPreguntas.IndexOf(enc.GetString("CAT_EP_ID")) 'Nos movemos a la posicion especificada por la respuesta, en las preguntas de tipo desicion, la respuesta nos indica a que pregunta movernos. + i = indicePregunta + 1 + Log($"i = ${i}"$) ocultaPanelEncuesta ELSE If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 6 Then - Log("Pregunta tipo 6") + If logger Then Log("Pregunta tipo 6") Panel10.Visible = True l_chk_e.Text = enc.GetString("CAT_EP_PREGUNTA") Chk_1.Checked = False @@ -3781,7 +3880,7 @@ Sub Cuestionario botonPresionado = 0 ' Bandera para que espere a que se conteste la pregunta l_titEncuesta.Text = enc.GetString("CAT_CE_DESCRIPCION") l_txtEncuesta.Text = enc.GetString("CAT_EP_PREGUNTA") - Log(enc.GetString("CAT_EP_PREGUNTA") &"|"&enc.GetString("CAT_EP_ORDEN_PREGUNTA")) + If logger Then Log(enc.GetString("CAT_EP_PREGUNTA") &"|"&enc.GetString("CAT_EP_ORDEN_PREGUNTA")) Subs.centraEditText(et_encuesta, Root.Width) et_encuesta.Visible = True b_encuesta_continuar.Enabled = False @@ -3793,6 +3892,7 @@ Sub Cuestionario Sleep(0) Loop Log($"Respuesta: ${encuestaRes}"$) + If logger Then LogColor($"Guardamos tipo 1 : ${encuestaRes}"$, Colors.Green) B4XPages.MainPage.skmt.ExecNonQuery2("insert into HIST_ENCUESTA(HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_LAT, HE_LON) VALUES (?,?,?,?,?,?)", Array As Object(la_cuenta.Text, encuestaRes, fecha, enc.GetString("CAT_EP_ID"), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)) ocultaPanelEncuesta Else diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index e88fe14..ae016da 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -996,7 +996,7 @@ Sub JobDone(Job As HttpJob) If n = "OKActivo" Then Dim cmd As DBCommand cmd.Initialize - cmd.Name = "select_ruta_GV2_70_3" + cmd.Name = "select_ruta_GV2_70_2" cmd.Parameters = Array As Object(ALMACEN,e_ruta.text) B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "ruta") 'Log("Usuario guardado en BD es 'Valido'") diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal index 7f04d73..ba5738e 100644 Binary files a/B4A/Files/cliente.bal and b/B4A/Files/cliente.bal differ diff --git a/B4A/Guna Vistas V3.1.b4a b/B4A/Guna Vistas V3.1.b4a index 31d51cc..b57f839 100644 --- a/B4A/Guna Vistas V3.1.b4a +++ b/B4A/Guna Vistas V3.1.b4a @@ -6,57 +6,58 @@ File12=ENCUESTA_PED.bal File13=engrane.jpg File14=engrane.png File15=engrane18.png -File16=ESNCUESTA_M2.bal -File17=fondo_kmt.jpg -File18=gps20.png -File19=guna.png +File16=engraneactual.png +File17=ESNCUESTA_M2.bal +File18=fondo_kmt.jpg +File19=gps20.png File2=bus-ar.png -File20=guna18.png -File21=guna-fondo.png -File22=Hacer pedido.jpg -File23=hacerpedido30.png -File24=ic_cloud_download_white_24dp.png -File25=itembuttonblue.png -File26=login.bal -File27=Logo Guna_192x192.png -File28=logo-guna-18.png -File29=MainPage.bal +File20=guna.png +File21=guna18.png +File22=guna-fondo.png +File23=Hacer pedido.jpg +File24=hacerpedido30.png +File25=ic_cloud_download_white_24dp.png +File26=itembuttonblue.png +File27=login.bal +File28=Logo Guna_192x192.png +File29=logo-guna-18.png File3=carrito.png -File30=Malo.jpg -File31=mapa_rutas.bal -File32=mas-azul.png -File33=mas-azul-red.png -File34=mas-azul-red1.png -File35=menos.png -File36=menosred.png -File37=menos-red.png -File38=nota.bal -File39=noventa.bal +File30=MainPage.bal +File31=Malo.jpg +File32=mapa_rutas.bal +File33=mas-azul.png +File34=mas-azul-red.png +File35=mas-azul-red1.png +File36=menos.png +File37=menosred.png +File38=menos-red.png +File39=nota.bal File4=celltitle.bal -File40=nuevocliente.bal -File41=nuevo-cliente20.png -File42=Nvo Cliente.jpg -File43=palomita_verde.png -File44=pedido.bal -File45=planfia_logo.png -File46=principal.bal -File47=proditem.bal -File48=productos.bal -File49=promociones.bal +File40=noventa.bal +File41=nuevocliente.bal +File42=nuevo-cliente20.png +File43=Nvo Cliente.jpg +File44=palomita_verde.png +File45=pedido.bal +File46=planfia_logo.png +File47=principal.bal +File48=proditem.bal +File49=productos.bal File5=cliente.bal -File50=qr_gallina.jpg -File51=resdia.bal -File52=ResDia.jpg -File53=resdia20.png -File54=salma.jpg -File55=salma.png -File56=senial.jpg -File57=sync.png -File58=Ticket dia.jpg -File59=ticketdia20.png +File50=promociones.bal +File51=qr_gallina.jpg +File52=resdia.bal +File53=ResDia.jpg +File54=resdia20.png +File55=salma.jpg +File56=salma.png +File57=senial.jpg +File58=sync.png +File59=Ticket dia.jpg File6=clientes.bal -File60=ticketsdia.bal -File61=Tiendita.jpg +File60=ticketdia20.png +File61=ticketsdia.bal +File62=Tiendita.jpg File7=durakelo.png File8=ENCUESSTA_M3.bal File9=ENCUESTA.bal @@ -118,6 +119,7 @@ FileGroup59=Default Group FileGroup6=Default Group FileGroup60=Default Group FileGroup61=Default Group +FileGroup62=Default Group FileGroup7=Default Group FileGroup8=Default Group FileGroup9=Default Group @@ -155,7 +157,7 @@ Library6=byteconverter Library7=camera Library8=compressstrings Library9=core -ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~AddApplicationText(~\n~)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~ ''''' CAMBIA LA CLAVE API~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddApplicationText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~''CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~ AddManifestText(~\n~~\n~)~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~) 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~~\n~'///////////////////////// FLP Y PUSH /////////////~\n~ CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~ CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~ CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~ SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'//////////////////////////////////////////////////////~\n~~\n~'/////////////////////// App Updating ////////////////~\n~ AddManifestText(~\n~ )~\n~ AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~~\n~AddPermission(android.permission.REQUEST_INSTALL_PACKAGES)~\n~AddPermission(android.permission.INTERNET)~\n~AddPermission(android.permission.INSTALL_PACKAGES)~\n~AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.WAKE_LOCK)~\n~CreateResourceFromFile(Macro, JhsIceZxing1.CaturePortrait)~\n~ ~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~AddPermission(android.permission.BLUETOOTH_ADVERTISE)~\n~AddPermission(android.permission.BLUETOOTH_CONNECT)~\n~AddPermission(android.permission.BLUETOOTH_SCAN)~\n~AddManifestText() +ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~~\n~)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~AddApplicationText(~\n~)~\n~CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~ ''''' CAMBIA LA CLAVE API~\n~AddApplicationText(~\n~~\n~ ~\n~)~\n~AddApplicationText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~)~\n~''CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ 'End of default text.~\n~ ~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~ AddManifestText(~\n~~\n~)~\n~AddPermission(android.permission.ACCESS_BACKGROUND_LOCATION)~\n~AddManifestText(~\n~~\n~)~\n~AddManifestText(~\n~~\n~) 'in order to access the device non-resettable identifiers such as IMEI and serial number.~\n~~\n~'///////////////////////// FLP Y PUSH /////////////~\n~ CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)~\n~ CreateResourceFromFile(Macro, FirebaseAnalytics.Firebase)~\n~ CreateResourceFromFile(Macro, FirebaseAnalytics.FirebaseAnalytics)~\n~ CreateResourceFromFile(Macro, FirebaseNotifications.FirebaseNotifications)~\n~ SetServiceAttribute(Tracker, android:foregroundServiceType, "location")~\n~'//////////////////////////////////////////////////////~\n~~\n~'/////////////////////// App Updating ////////////////~\n~ AddManifestText(~\n~ )~\n~ AddApplicationText(~\n~ ~\n~ ~\n~ ~\n~ )~\n~ CreateResource(xml, provider_paths,~\n~ ~\n~ ~\n~ ~\n~ ~\n~ ~\n~ )~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~AddManifestText()~\n~~\n~AddPermission(android.permission.REQUEST_INSTALL_PACKAGES)~\n~AddPermission(android.permission.INTERNET)~\n~AddPermission(android.permission.INSTALL_PACKAGES)~\n~AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.READ_PHONE_STATE)~\n~AddPermission(android.permission.WAKE_LOCK)~\n~CreateResourceFromFile(Macro, JhsIceZxing1.CaturePortrait)~\n~ ~\n~SetApplicationAttribute(android:largeHeap, "true")~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~AddPermission(android.permission.BLUETOOTH_ADVERTISE)~\n~AddPermission(android.permission.BLUETOOTH_CONNECT)~\n~AddPermission(android.permission.BLUETOOTH_SCAN)~\n~AddManifestText(~\n~ ~\n~ )~\n~AddManifestText() Module1=appUpdater Module10=C_NuevoCliente Module11=C_Pedidos @@ -179,15 +181,15 @@ Module6=C_Historico Module7=C_Mapas Module8=C_Nota Module9=C_NoVenta -NumberOfFiles=61 +NumberOfFiles=62 NumberOfLibraries=33 NumberOfModules=23 -Version=12.8 +Version=12.5 @EndOfDesignText@ #Region Project Attributes #ApplicationLabel: Guna V3.1 #VersionCode: 1 - #VersionName: 4.04.24.ENC.Geo + #VersionName: 4.04.22 ENC Geo 'SupportedOrientations possible values: unspecified, landscape or portrait. #SupportedOrientations: portrait #CanInstallToExternalStorage: False diff --git a/B4A/Guna Vistas V3.1.b4a.meta b/B4A/Guna Vistas V3.1.b4a.meta index d9f3d7e..cd091c8 100644 --- a/B4A/Guna Vistas V3.1.b4a.meta +++ b/B4A/Guna Vistas V3.1.b4a.meta @@ -50,7 +50,7 @@ ModuleClosedNodes0= ModuleClosedNodes1=5,7,8,9,10,11,12,13,14 ModuleClosedNodes10= ModuleClosedNodes11=6 -ModuleClosedNodes12= +ModuleClosedNodes12=2,3,8,10,14 ModuleClosedNodes13=6,10,11,13,14,16,17,20,21,22,23 ModuleClosedNodes14= ModuleClosedNodes15= @@ -70,6 +70,6 @@ ModuleClosedNodes6= ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=C_Cliente,CB4_P8_M3_CheckedChange,3805,0,C_Cliente,Cuestionario,3805,6,C_Cliente,centroPantalla,3838,0,C_Cliente,b_encuesta_1_Click,3839,0,C_Cliente,b_encuesta_continuar_Click,3879,0,C_Cliente,B4XPage_Appear,637,0,C_Cliente,GPS_LocationChanged,701,0,Tracker,CreateLocationRequestSmallD,128,0,Tracker,StartFLPSmall,109,0,Tracker,CreateLocationRequest,115,0,Main,Globals,22,0 +NavigationStack=Main,Activity_Pause,51,0,Main,Activity_KeyPress,40,0,C_Cliente,b_encuesta_1_Click,3929,0,C_Cliente,b_encuesta_continuar_Click,3969,0,C_Principal,JobDone,960,0,C_Cliente,Class_Globals,0,0,C_Cliente,CB2_P8_M3_CheckedChange,3681,0,C_Cliente,CB3_P8_M3_CheckedChange,3693,0,C_Cliente,CB4_P8_M3_CheckedChange,3709,0,C_Cliente,Cuestionario,3905,0 SelectedBuild=0 -VisibleModules=21,2,22,12,13,4,8,11,5,10,23 +VisibleModules=21,2,22,12,13,4,8,11,5,10 diff --git a/B4A/Starter.bas b/B4A/Starter.bas index e0ed5f9..0bc2d98 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -32,6 +32,7 @@ Sub Process_Globals Private BTAdmin As BluetoothAdmin Dim MAC_IMPRESORA As String Public BluetoothState As Boolean + Dim ubicacionActual As Location End Sub Sub Service_Create @@ -48,6 +49,7 @@ Sub Service_Create #end if logs.Initialize CallSubDelayed(FirebaseMessaging, "SubscribeToTopics") 'Para Push FirebaseMessaging + ubicacionActual.Initialize End Sub Private Sub BTAdmin_StateChanged (NewState As Int, OldState As Int) diff --git a/B4A/Subs.bas b/B4A/Subs.bas index 74c023a..b1cb94e 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -43,6 +43,8 @@ Sub getPhnId As String 'ignore Return devModel End Sub + + 'Comprime y regresa un texto (str) en base64 Sub compress(str As String) As String 'ignore 'Requiere la libreria "CompressStrings" diff --git a/B4A/Tracker.bas b/B4A/Tracker.bas index 46849a2..51aa993 100644 --- a/B4A/Tracker.bas +++ b/B4A/Tracker.bas @@ -130,10 +130,10 @@ Private Sub CreateLocationRequestSmallD As LocationRequest ' Log("Iniciamos CreateLocationRequestSmallD") Dim lr As LocationRequest lr.Initialize - lr.SetInterval(1000) 'Intervalo deseado para actualizaciones de ubicacion + lr.SetInterval(2000) 'Intervalo deseado para actualizaciones de ubicacion lr.SetFastestInterval(lr.GetInterval / 2) 'Intervalo minimo para actualizaciones de ubicacion - lr.setNumUpdates(3) 'Solicitamos solo 2 actualizaciones con estos parametros - lr.SetSmallestDisplacement(0) 'Solo registra cambio de ubicacion si es mayor a XX mts + lr.setNumUpdates(2) 'Solicitamos solo 2 actualizaciones con estos parametros + lr.SetSmallestDisplacement(1) 'Solo registra cambio de ubicacion si es mayor a XX mts lr.SetPriority(lr.Priority.PRIORITY_HIGH_ACCURACY) actualLR=lr Return lr @@ -163,12 +163,19 @@ Sub flp_LocationChanged (Location1 As Location) B4XPages.MainPage.lat_gps = Location1.Latitude B4XPages.MainPage.lon_gps = Location1.Longitude UUGCoords = Location1 +' Starter.ubicacionActual = Location1 ' Log("SmallestDisplacement="&actualLR.GetSmallestDisplacement) ' If DateTime.Now > LastUpdateTime + 10 * DateTime.TicksPerSecond Then ' Dim n As Notification = CreateNotification($"$2.5{Location1.Latitude} / $2.5{Location1.Longitude}"$) ' n.Notify(nid) ' LastUpdateTime = DateTime.Now ' End If + If B4XPages.MainPage.lat_gps = 0 Or B4XPages.MainPage.lat_gps = Null And FLP.GetLastKnownLocation.IsInitialized Then + B4XPages.MainPage.lat_gps = FLP.GetLastKnownLocation.Latitude + B4XPages.MainPage.lon_gps = FLP.GetLastKnownLocation.Longitude + Starter.ubicacionActual = FLP.GetLastKnownLocation + LogColor("Coords en CERO - Guardamos ultima ubicacion conocida", Colors.red) + End If '/////// para la ultima localización FL Dim sDate,sTime As String DateTime.DateFormat = "MM/dd/yyyy"