From 007f6ddca7cf157aa86c3055baba55b51a37d74a Mon Sep 17 00:00:00 2001 From: Jose Alberto Guerra Ugalde Date: Sat, 16 Nov 2024 19:56:47 -0600 Subject: [PATCH] =?UTF-8?q?-=20VERSION=204.11.14=20-=20Se=20puso=20el=20c?= =?UTF-8?q?=C3=B3digo=20de=20la=20bitacora=20en=20un=20clase=20para=20que?= =?UTF-8?q?=20sea=20mas=20f=C3=A1cil=20portarla=20a=20otras=20aplicaciones?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- B4A/B4XMainPage.bas | 2 - B4A/C_Cliente.bas | 196 ++++++++++++++------------- B4A/C_Clientes.bas | 10 +- B4A/C_Cuestionario.bas | 2 +- B4A/C_NoVenta.bas | 7 +- B4A/C_Principal.bas | 117 ++++++++++------- B4A/C_Productos.bas | 2 +- B4A/Files/iniciofinventa.bal | Bin 0 -> 2452 bytes B4A/Files/login.bal | Bin 18811 -> 18811 bytes B4A/Guna Vistas V3.1.b4a | 165 +++++++++++------------ B4A/Guna Vistas V3.1.b4a.meta | 31 +++-- B4A/Subs.bas | 90 +++++++------ B4A/Tracker.bas | 2 +- B4A/appUpdater.bas | 70 +++++----- C_Bitacora.bas | 240 ++++++++++++++++++++++++++++++++++ 15 files changed, 609 insertions(+), 325 deletions(-) create mode 100644 B4A/Files/iniciofinventa.bal create mode 100644 C_Bitacora.bas diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index df076bc..50ad9b4 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -172,7 +172,6 @@ Private Sub B4XPage_Created (Root1 As B4XView) skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA_CLIENTE (HEC_CLIENTE TEXT, HEC_MODULO TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA_AVISO_GIRO (HEAV_CLIENTE TEXT, HEAV_MODULO TEXT, HEAV_AVISO TEXT, HEAV_GIRO TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA (HE_CLIE TEXT, HE_RES TEXT, HE_FECHA TEXT, HE_TIPO TEXT, HE_LAT TEXT, HE_LON TEXT)") - skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS BITACORAGPS(fechab TEXT, usuariob TEXT, almacenb TEXT, rutab TEXT, eventob TEXT, clienteb TEXT, iniciob TEXT, finb TEXT, latitudb TEXT, longitudb TEXT, precision TEXT, motivonoventa TEXT, motivonovisita TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS kmt_info2(CAT_CL_FOTO BLOB, CAT_CL_NUM_SERIEFISICO TEXT, CAT_CL_MTOCOMPRA TEXT, CAT_CL_CEDIS TEXT, CAT_CL_LAT TEXT, CAT_CL_LONG TEXT, CAT_CL_FBAJA TEXT, CAT_CL_FALTA TEXT, CAT_CL_CP TEXT, CAT_CL_EDO TEXT, CAT_CL_MUNI TEXT, CAT_CL_COLONIA TEXT, CAT_CL_CALLE2 TEXT, CAT_CL_CALLE1 TEXT, CAT_CL_NOINT TEXT, CAT_CL_NOEXT TEXT, CAT_CL_CALLE TEXT, CAT_CL_EMAIL TEXT, CAT_CL_TELEFONO TEXT, CAT_CL_ATIENTE2 TEXT, CAT_CL_ATIENDE1 TEXT, CAT_CL_NOMBRE TEXT, CAT_CL_GIRO TEXT, CAT_CL_DIAS_VISITA TEXT, CAT_CL_TIPO_RUTA TEXT, CAT_CL_RUTA TEXT, CAT_CL_CODIGO TEXT, gestion NUMERIC)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_PRO2265(H_IDCLIENTE TEXT)") skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_PRO3054(H_IDCLIENTE TEXT)") @@ -185,7 +184,6 @@ Private Sub B4XPage_Created (Root1 As B4XView) Subs.agregaColumna("PEDIDO", "PE_RECALCULO", "TEXT") Subs.agregaColumna("PEDIDO", "PE_RECALCULOTOT", "TEXT") Subs.agregaColumna("HIST_ENCUESTA", "HE_LON", "TEXT") - Subs.agregaColumna("BITACORAGPS", "BAN_GEOB", "TEXT") Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna "P10" en la tabla c=skmt.ExecQuery("SELECT COUNT(*) AS fCol FROM pragma_table_info('ENCUESTA_MODULO3') WHERE name='P10'") c.Position = 0 diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index e83f777..8fdef6f 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -417,7 +417,7 @@ Sub Class_Globals Dim fototomada As String Private b_foto As Button Dim precision As String - Private b_Inicio_Fin_venta As Button + Dim b_Inicio_Fin_venta As Button Dim dentroDeGeocerca As Boolean = False Dim motivoNoVenta, motivoNoVisita As String @@ -425,10 +425,12 @@ Sub Class_Globals Dim IniVenNO As Boolean = False Private geoCont As Int = 0 Private l_version As Label - Private p_transparenteInicioFin As Panel - Dim b_geo As String +' Dim p_transparenteInicioFin As Panel +' Dim b_geo As String + Private b_preventa As Button + Dim bitacora As C_Bitacora End Sub 'You can add more parameters here. @@ -482,12 +484,15 @@ Private Sub B4XPage_Created (Root1 As B4XView) gest.Visible = False l_version.Left = Root.Width - (l_version.Width + 10) cuest.Initialize(Me, "cuest", Root, B4XPages.MainPage.skmt) + bitacora.Initialize("bitacora", "bitacora", Root, B4XPages.MainPage.skmt, reqManager) +' bitacora.cargamosPanel End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. Sub B4XPage_Appear - iniciofin + bitacora.inicioFin +' iniciofin que_modulo = 1 dentroDeGeocerca = False indicePregunta = 0 @@ -502,12 +507,12 @@ Sub B4XPage_Appear LA_GPS.Text = "SIN UBICACION GPS" cercavalor = 0 l_version.Text = Application.VersionName - p_transparenteInicioFin.Width = Root.Width : p_transparenteInicioFin.Height = Root.Height b_preventa.left = (Root.Width / 2) - (b_preventa.width / 2) - b_Inicio_Fin_venta.Left = 5 - b_Inicio_Fin_venta.Width = Root.Width - 10 - b_Inicio_Fin_venta.Text = "INICIAR VENTA" - b_Inicio_Fin_venta.BringToFront +' p_transparenteInicioFin.Width = Root.Width : p_transparenteInicioFin.Height = Root.Height +' b_Inicio_Fin_venta.Left = 5 +' b_Inicio_Fin_venta.Width = Root.Width - 10 +' b_Inicio_Fin_venta.Text = "INICIAR VENTA" +' b_Inicio_Fin_venta.BringToFront ' LogColor(">>>>>> EN VENTA: " & Starter.enVenta, Colors.red) ' If Not(Starter.enVenta) Then ' b_Inicio_Fin_venta.Visible = True @@ -914,7 +919,7 @@ Sub B4XPage_Appear End If gest.Text = "PreVenta" If Subs.traeTipoVentaDeBD = "VENTA" Then gest.Text = "Venta" - Log($">>>>>>>>>> |${la_cuenta.Text.trim}|"$) +' Log($">>>>>>>>>> |${la_cuenta.Text.trim}|"$) If la_cuenta.Text.trim = "0" Then gest.Text = "Carga Abordo" ' Log($"ALMACEN: ${ALMACEN}${CRLF}RUTA:${LA_RUTA}"$) End Sub @@ -955,11 +960,12 @@ Sub GPS_LocationChanged (Location1 As Location) gest.Visible = True Tels.Visible = True iniciofin - b_geo = "0" +' b_geo = "0" + bitacora.banderaGeoCerca = "0" Else If geo = "1" Then gest.Visible = False Tels.Visible = False - p_transparenteInicioFin.Visible = False +' p_transparenteInicioFin.Visible = False Log(999) ' b_Inicio_Fin_venta.Visible = False End If @@ -969,9 +975,10 @@ Sub GPS_LocationChanged (Location1 As Location) LA_GEO.TextColor = Colors.Blue Tels.Visible = True gest.Visible = True - iniciofin + bitacora.inicioFin precision = "1" - b_geo = "0" +' b_geo = "0" + bitacora.banderaGeoCerca = "0" ToastMessageShow("DENTRO de rango GPS", False) Else If habi = "1" Then c = skmt.ExecQuery2("SELECT CAT_VA_VALOR FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LATITUD")) @@ -996,13 +1003,14 @@ Sub GPS_LocationChanged (Location1 As Location) LA_GEO.TextColor = Colors.Blue Tels.Visible = True gest.Visible = True - b_geo = "1" +' b_geo = "1" + bitacora.banderaGeoCerca = "1" iniciofin ToastMessageShow("DENTRO de rango GPS", False) Else If distancealm > 50 Then Tels.Visible = False gest.Visible = False - p_transparenteInicioFin.Visible = False +' p_transparenteInicioFin.Visible = False Log(998) ' b_Inicio_Fin_venta.Visible = False c = skmt.ExecQuery("SELECT PC_CLIENTE FROM PEDIDO_CLIENTE WHERE PC_CLIENTE IN (Select CUENTA from cuentaa)") @@ -1010,7 +1018,8 @@ Sub GPS_LocationChanged (Location1 As Location) precision = "0" Tels.Visible = True gest.Visible = True - b_geo = "0" +' b_geo = "0" + bitacora.banderaGeoCerca = "0" iniciofin Else If c.RowCount = 0 Then c = skmt.ExecQuery("SELECT NV_CLIENTE FROM NOVENTA CLIENTE WHERE NV_CLIENTE IN (Select CUENTA from cuentaa)") @@ -1018,19 +1027,20 @@ Sub GPS_LocationChanged (Location1 As Location) Tels.Visible = True gest.Visible = True precision = "0" - b_geo = "0" +' b_geo = "0" iniciofin Else If c.RowCount = 0 Then Tels.Visible = False gest.Visible = False - p_transparenteInicioFin.Visible = False +' p_transparenteInicioFin.Visible = False Log(997) ' b_Inicio_Fin_venta.Visible = False LA_GEO.TextColor = Colors.Red If ALMACEN = "1" Then Tels.Visible = False gest.Visible = True - b_geo = "0" +' b_geo = "0" + bitacora.banderaGeoCerca = "0" iniciofin End If End If @@ -1039,7 +1049,8 @@ Sub GPS_LocationChanged (Location1 As Location) If ALMACEN = "1" Then Tels.Visible = False gest.Visible = True - b_geo = "0" +' b_geo = "0" + bitacora.banderaGeoCerca = "0" iniciofin End If End If @@ -1048,31 +1059,34 @@ Sub GPS_LocationChanged (Location1 As Location) If c.RowCount > 0 Then Tels.Visible = True gest.Visible = True - b_geo = "0" +' b_geo = "0" + bitacora.banderaGeoCerca = "0" iniciofin Else If c.RowCount = 0 Then Tels.Visible = False gest.Visible = False - p_transparenteInicioFin.Visible = False +' p_transparenteInicioFin.Visible = False Log(996) ' b_Inicio_Fin_venta.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 - b_geo = "0" +' b_geo = "0" + bitacora.banderaGeoCerca = "0" iniciofin Else If c.RowCount = 0 Then Tels.Visible = False gest.Visible = False - p_transparenteInicioFin.Visible = False +' p_transparenteInicioFin.Visible = False Log(995) ' b_Inicio_Fin_venta.Visible = False LA_GEO.TextColor = Colors.Red If ALMACEN = "1" Then Tels.Visible = False gest.Visible = True - b_geo = "0" +' b_geo = "0" + bitacora.banderaGeoCerca = "0" iniciofin End If End If @@ -1080,21 +1094,23 @@ Sub GPS_LocationChanged (Location1 As Location) If ALMACEN = "1" Then Tels.Visible = False gest.Visible = True - b_geo = "0" +' b_geo = "0" + bitacora.banderaGeoCerca = "0" iniciofin End If End If Else Tels.Visible = False gest.Visible = False - p_transparenteInicioFin.Visible = False +' p_transparenteInicioFin.Visible = False Log(994) ' b_Inicio_Fin_venta.Visible = False LA_GEO.TextColor = Colors.Red If ALMACEN = "1" Then Tels.Visible = False gest.Visible = True - b_geo = "0" +' b_geo = "0" + bitacora.banderaGeoCerca = "0" iniciofin End If End If @@ -1119,17 +1135,17 @@ End Sub 'Muestra u oculta el boton de inicio y fin de venta Private Sub iniciofin - If Starter.enVenta = False Then - p_transparenteInicioFin.BringToFront - p_transparenteInicioFin.Visible = True - b_Inicio_Fin_venta.Visible = True -' Log("Hacemos visible el boton de Inicio Venta") - Else - If b_Inicio_Fin_venta.Text <> "TERMINAR VENTA" Then - p_transparenteInicioFin.Visible = False - b_Inicio_Fin_venta.Visible = False - End If - End If +' If Starter.enVenta = False Then +' p_transparenteInicioFin.BringToFront +' p_transparenteInicioFin.Visible = True +' b_Inicio_Fin_venta.Visible = True +'' Log("Hacemos visible el boton de Inicio Venta") +' Else +' If b_Inicio_Fin_venta.Text <> "TERMINAR VENTA" Then +' p_transparenteInicioFin.Visible = False +' b_Inicio_Fin_venta.Visible = False +' End If +' End If End Sub Private Sub b_geopass_Click @@ -1207,7 +1223,7 @@ Sub JobDone(Job As HttpJob) End Sub Sub ListView1_ItemLongClick (Position As Int, Value As Object) - + End Sub Sub gest_Click @@ -1922,7 +1938,7 @@ Private Sub B4XPage_CloseRequest As ResumableSub ' Return True To close, False To cancel cuest.encuestaIniciada = False cuest.ocultPanelPregunta - If p_transparenteInicioFin.Visible And b_Inicio_Fin_venta.Text = "TERMINAR VENTA" Then + If bitacora.p_transparenteInicioFin2.Visible And bitacora.b_Inicio_Fin_venta2.Text = "TERMINAR VENTA" Then ToastMessageShow("Por favor presione el botón de TERMINAR VENTA", True) Return False Else if Subs.hayPedido Then @@ -1958,14 +1974,9 @@ End Sub Sub Guardar_Click Guardar.SendToBack - p_transparenteInicioFin.Visible = True - b_Inicio_Fin_venta.Visible = True - b_Inicio_Fin_venta.Text = "TERMINAR VENTA" -' Starter.idCliente = "" - Log("Hacemos visible el boton de Terminar Venta") -End Sub - -Sub guardadoventa + bitacora.b_Inicio_Fin_venta2.Text = "TERMINAR VENTA" + bitacora.enVenta = False + bitacora.inicioFin DateTime.DateFormat = "MM/dd/yyyy" sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) @@ -1984,26 +1995,19 @@ Sub guardadoventa Private s3 As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select * FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO <> ? AND PE_RECALCULO <> ? AND PE_RECALCULO <> ?",Array As String("","null",Null)) LogColor(s3.RowCount,Colors.Yellow) If s3.RowCount > 0 Then - Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO = ? AND PE_RECALCULO = ? AND PE_RECALCULO = ?",Array As String("","null",Null)) s.Position = 0 Private s5 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("select iFNULL(sum(PE_RECALCULOTOT),0) as TOTAL_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) and PE_RECALCULO <> ? AND PE_RECALCULO <> ? AND PE_RECALCULO <> ?",Array As String("","null",Null)) s5.Position = 0 - Private suma As Float = s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE") - s.Close - Else If s3.RowCount = 0 Then Private s As Cursor=B4XPages.MainPage.skmt.ExecQuery("select iFNULL(sum(pe_costo_tot),0) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)") s.Position=0 - Private suma As Float = s.GetString("TOTAL_CLIE") - s.Close End If 'AQUI TERMINA - If c.GetString("CUANTOS") > 0 Then B4XPages.MainPage.skmt.ExecNonQuery("delete from NOVENTA where NV_CLIENTE In (select cuenta from cuentaa)") B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)") @@ -2033,7 +2037,16 @@ Sub guardadoventa ToastMessageShow(".",True) End Try DateTime.TimeFormat = "HH:mm:ss" - B4XPages.ShowPage("Principal") +' B4XPages.ShowPage("Principal") +End Sub + +Sub Guardar_LongClick +' bitacora.p_transparenteInicioFin2.Visible = True +' bitacora.b_Inicio_Fin_venta2.text = "TERMINAR VENTA" +End Sub + +Sub guardadoventa + End Sub Sub NUEVO_Click @@ -4733,41 +4746,40 @@ Private Sub StopCamera2 End Sub Private Sub b_Inicio_Fin_venta_Click +'' b_Inicio_Fin_venta.Visible = False +'' Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRuta, "Pre-venta", "0", Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, "", "") +' contadorIniciarVenta = 0 +' IniVenNO = False +' If dentroDeGeocerca Then precision = 1 +'' LogColor("-------> "&contadorIniciarVenta & " <-------", Colors.Red) +' motivoNoVenta = "" +' motivoNoVisita = "" +' p_transparenteInicioFin.Visible = False +' If b_Inicio_Fin_venta.Text = "TERMINAR VENTA" Then +' Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRutaBitacora, "Termina Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, motivoNoVenta, motivoNoVisita,b_geo) +' bitacora.enVenta = False +'' LogColor($">>>>>> TERMINA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red) +' B4XPages.ShowPageAndRemovePreviousPages("Principal") +'' guardadoventa +' Else if b_Inicio_Fin_venta.Text = "INICIAR VENTA" Then +' contadorIniciarVenta = 0 +' IniVenNO = False +' contadorIniciarVenta = contadorIniciarVenta + 1 +' If contadorIniciarVenta = 1 And IniVenNO = False And motivoNoVenta <> "NO VENTA" Then +' IniVenNO = True +' Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRutaBitacora, "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, "", "",b_geo) +' bitacora.enVenta = True +'' LogColor($">>>>>> INICIA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red) +' Else If contadorIniciarVenta = 1 And IniVenNO = False And motivoNoVenta = "NO VENTA" Then +' IniVenNO = True +' Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRutaBitacora, "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, motivoNoVenta, "",b_geo) +' bitacora.enVenta = True +' Else If contadorIniciarVenta > 1 Then +' b_Inicio_Fin_venta.Visible = False +' End If +' End If +' ' b_Inicio_Fin_venta.Visible = False -' Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRuta, "Pre-venta", "0", Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, "", "") - contadorIniciarVenta = 0 - IniVenNO = False - If dentroDeGeocerca Then precision = 1 -' LogColor("-------> "&contadorIniciarVenta & " <-------", Colors.Red) - motivoNoVenta = "" - motivoNoVisita = "" - p_transparenteInicioFin.Visible = False - If b_Inicio_Fin_venta.Text = "TERMINAR VENTA" Then - Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRutaBitacora, "Termina Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, motivoNoVenta, motivoNoVisita,b_geo) - Starter.enVenta = False -' LogColor($">>>>>> TERMINA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red) - B4XPages.ShowPageAndRemovePreviousPages("Principal") - guardadoventa - Else if b_Inicio_Fin_venta.Text = "INICIAR VENTA" Then - contadorIniciarVenta = 0 - IniVenNO = False - contadorIniciarVenta = contadorIniciarVenta + 1 - If contadorIniciarVenta = 1 And IniVenNO = False And motivoNoVenta <> "NO VENTA" Then - IniVenNO = True - Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRutaBitacora, "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, "", "",b_geo) - Starter.enVenta = True -' LogColor($">>>>>> INICIA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red) - Else If contadorIniciarVenta = 1 And IniVenNO = False And motivoNoVenta = "NO VENTA" Then - IniVenNO = True - Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRutaBitacora, "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, motivoNoVenta, "",b_geo) - Starter.enVenta = True - Else If contadorIniciarVenta > 1 Then - b_Inicio_Fin_venta.Visible = False - End If - End If - - b_Inicio_Fin_venta.Visible = False - End Sub Private Sub LA_GEO_Click diff --git a/B4A/C_Clientes.bas b/B4A/C_Clientes.bas index d021d99..b6de754 100644 --- a/B4A/C_Clientes.bas +++ b/B4A/C_Clientes.bas @@ -113,13 +113,12 @@ Sub ListView1_ItemClick (Position As Int, Value As Object) lfila.text = "Nombre" If c2.RowCount>0 Then For i=0 To c2.RowCount -1 - c2.Position=i + c2.Position = i ListView1.AddTwoLines(c2.GetString("CAT_CL_CODIGO"), c2.GetString("CAT_CL_NOMBRE")) Next End If entro = "4" Else If entro = "4" Then - Starter.enVenta = False B4XPages.MainPage.skmt.ExecNonQuery("delete from CUENTAA") B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(Value)) DateTime.TimeFormat = "HHmmss" @@ -135,8 +134,15 @@ Sub ListView1_ItemClick (Position As Int, Value As Object) End If B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_OUT set HSO_INI = ? where HSO_INI = 0 ", Array As Object(STIME)) DateTime.TimeFormat = "HH:mm:ss" +' Log(entro) + If B4XPages.MainPage.cliente.bitacora.IsInitialized Then + Log("VAMOS A CLIENTE CON ENVENTA = FALSO") + B4XPages.MainPage.cliente.bitacora.iniciamosVenta + Log(B4XPages.MainPage.cliente.bitacora.enVenta) + End If B4XPages.ShowPage("Cliente") End If + Log(entro) End Sub Private Sub B4XPage_CloseRequest As ResumableSub diff --git a/B4A/C_Cuestionario.bas b/B4A/C_Cuestionario.bas index d6f91c4..001dac1 100644 --- a/B4A/C_Cuestionario.bas +++ b/B4A/C_Cuestionario.bas @@ -216,7 +216,7 @@ Sub agregaPreguntaAbierta(id As String, pregunta As String, ids As List, respues ' Private labelXHeight As String = Log(labelX(p).Height) sv_cuest.panel.AddView(labelX(p), 0, (70 * p), (panelX.Width * 0.72), 60) 'Agregamos la etiqueta al panel. - sv_cuest.panel.AddView(et(p), (labelX(p).Width + 5), (70 * p), (panelX.Width * 0.2), 85) 'Agregamos el edittext al panel. + sv_cuest.panel.AddView(et(p), (labelX(p).Width + 5), (70 * p), (panelX.Width * 0.2), 115) 'Agregamos el edittext al panel. Private newTop As Int = 0 'lbl.top + lbl.Height + 20 'Si es el primer radio, lo ponemos en top = alto de la "pregunta" + 10. If p <> 0 Then newTop = et(p - 1).Top + et(p - 1).Height + 5 'Calculamos el Top del radio de acuerdo al top y alto del radio anterior. et(p).Top = newTop diff --git a/B4A/C_NoVenta.bas b/B4A/C_NoVenta.bas index 1299195..ea23783 100644 --- a/B4A/C_NoVenta.bas +++ b/B4A/C_NoVenta.bas @@ -31,7 +31,8 @@ Sub Class_Globals Private stay_mi As String Private stay_ss As String Private p_NoVenta As Panel - dim tipo_venta = Subs.traeTipoVentaDeBD + Dim tipo_venta = Subs.traeTipoVentaDeBD + Dim bitacora As C_Bitacora End Sub 'You can add more parameters here. @@ -51,6 +52,7 @@ Private Sub B4XPage_Created (Root1 As B4XView) File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db") End If ' skmt.Initialize(ruta,"kmt.db", True) + bitacora.Initialize("bitacora", "bitacora", Root, B4XPages.MainPage.skmt, Starter.reqManager) End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. @@ -127,10 +129,9 @@ Sub GUARDA_Click stay_hh = c.GetString("HORAS_TOTALES") * 60 * 60 stay_mi = c.GetString("MINUTOS_TOTALES") * 60 stay_ss = c.GetString("SEGUNDOS_TOTALES") - B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_STORE set HSS_TOT = ? where HSS_CODIGO In (select cuenta from cuentaa)", Array As Object(stay_hh + stay_mi + stay_ss)) B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE HIST_STAY_OUT set HSO_FIN = ? ", Array As Object(sTime)) DateTime.TimeFormat = "HH:mm:ss" - Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRutaBitacora, "NO VENTA", Subs.traeCliente,Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, 2, motivo, r_1.Checked, B4XPages.MainPage.cliente.b_geo) + bitacora.mandaBitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRutaBitacora, "NO VENTA", Subs.traeCliente,Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, 2, motivo, r_1.Checked, B4XPages.MainPage.cliente.bitacora.banderaGeoCerca) B4XPages.ShowPage("Principal") End Sub \ No newline at end of file diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index 081dcb5..c97692b 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -238,6 +238,7 @@ Sub Class_Globals Dim l_forzarActualizacion As Label Dim tipo_venta As String = Subs.traeTipoVentaDeBD Private b_abordo As Button + Dim bitacora As C_Bitacora End Sub 'You can add more parameters here. @@ -248,6 +249,7 @@ End Sub 'This event will be called once, before the page becomes visible. Private Sub B4XPage_Created (Root1 As B4XView) Root = Root1 + bitacora.Initialize("bitacora", "bitacora", Root, B4XPages.MainPage.skmt, Starter.reqManager) 'load the layout to Root Root.LoadLayout("principal") SCROLL_RESDIA.Width = Root.Width @@ -285,7 +287,6 @@ Private Sub B4XPage_Created (Root1 As B4XView) ' If l_ru_pri.Text = 0 Then ' l_ru_pri.Text = 0 ' End If - If l_ruta.Text = 0 Then l_ruta.Text = 0 Else If l_ruta.Text > 0 Then @@ -294,6 +295,20 @@ Private Sub B4XPage_Created (Root1 As B4XView) l_ruta.Text = f.GetString("CAT_CL_RUTA") f.Close End If + ' Log($"|${Subs.traeTipoVentaDeBD}|"$) + If Subs.traeTipoVentaDeBD = "VENTA" Or Subs.traeTipoVentaDeBD = "ABORDO" Then + If l_ruta.Text <> "0" Then + Log(999 & "|" & l_ruta.Text & "|") + b_abordo.Visible = True + End If + Else + b_abordo.Visible = False + End If +' If l_ruta.Text <> "0" Then +' b_abordo.Visible = True +' Else +' b_abordo.Visible = False +' End If If Cuantos = 0 Then L_MONTOD.Text =0 l_cuantosc.Text = 0 @@ -346,9 +361,6 @@ End Sub Sub B4XPage_Appear ' LogColor($"########## ${Subs.traeRuta} ##########"$, Colors.red) p_principal.Visible = True -' Log($"|${Subs.traeTipoVentaDeBD}|"$) - - If Subs.traeTipoVentaDeBD = "VENTA" Or Subs.traeTipoVentaDeBD = "ABORDO" Then b_abordo.Visible = True Else b_abordo.Visible = False E_RUTA2.Text = "" p_ruta2.Visible = False Subs.validaPromoProcterPRO3009 @@ -934,7 +946,7 @@ Sub cargar_Click DateTime.DateFormat = "MM/dd/yyyy" sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) - + Dim P As PhoneId imei = "" cmd.Initialize @@ -2151,61 +2163,63 @@ Sub b_mapa_Click End Sub Sub t2_tick - e_ruta.Text = "" - B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente") - B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido") - B4XPages.MainPage.skmt.ExecNonQuery("delete from noventa") - B4XPages.MainPage.skmt.ExecNonQuery("delete from clie_act") - B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info2") - B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod") - B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod2") - B4XPages.MainPage.skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ") - B4XPages.MainPage.skmt.ExecNonQuery("delete from HIST_VENTAS") - B4XPages.MainPage.skmt.ExecNonQuery("delete from HIST_VERIFICACION") - B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_ENCUESTA") - B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_ENCUESTA2") - B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_STAY_OUT") - B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_GPS") - B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_FACE") - B4XPages.MainPage.skmt.ExecNonQuery("INSERT INTO HIST_STAY_OUT(HSO_INI, HSO_FIN) VALUES (0,0)") - B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_CODIGO_BARRAS") - B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM ENCUESTA_MODULO1") - B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM ENCUESTA_MODULO2") - B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM ENCUESTA_MODULO3") - B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM ENCUESTA_MODULO4") - B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM ENCUESTA_MODULO5") - B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM BITACORAGPS") - B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM RUTA_SUPLENCIA") - B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("CARGA_DIA")) - B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("pasword")) - B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LATITUD")) - B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LONGITUD")) + e_ruta.Text = "" + B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente") + B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido") + B4XPages.MainPage.skmt.ExecNonQuery("delete from noventa") + B4XPages.MainPage.skmt.ExecNonQuery("delete from clie_act") + B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info2") + B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod") + B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod2") + B4XPages.MainPage.skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ") + B4XPages.MainPage.skmt.ExecNonQuery("delete from HIST_VENTAS") + B4XPages.MainPage.skmt.ExecNonQuery("delete from HIST_VERIFICACION") + B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_ENCUESTA") + B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_ENCUESTA2") + B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_STAY_OUT") + B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_GPS") + B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_FACE") + B4XPages.MainPage.skmt.ExecNonQuery("INSERT INTO HIST_STAY_OUT(HSO_INI, HSO_FIN) VALUES (0,0)") + B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_CODIGO_BARRAS") + B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM ENCUESTA_MODULO1") + B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM ENCUESTA_MODULO2") + B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM ENCUESTA_MODULO3") + B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM ENCUESTA_MODULO4") + B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM ENCUESTA_MODULO5") + B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM BITACORAGPS") + B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM RUTA_SUPLENCIA") + B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("CARGA_DIA")) + B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("pasword")) + B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LATITUD")) + B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("LONGITUD")) ' B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("FORZAR_ACTUALIZACION")) ' B4XPages.MainPage.skmt.ExecNonQuery2("DELETE FROM CAT_VARIABLES WHERE CAT_VA_DESCRIPCION = ?",Array As String("VERSION_NUEVA")) - B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0)) + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0)) ' B4XPage_Appear - E_RUTA2.Visible = False - E_RUTA2.Text = "" - cargar.Visible = False - Subir.Visible = False - connecta.Visible = True + E_RUTA2.Visible = False + E_RUTA2.Text = "" + b_abordo.Visible = False + cargar.Visible = False + Subir.Visible = False + connecta.Visible = True ' B4XPages.ShowPage("Login") ' If PB2.Progress = 0 Then ' S_CP.Text = "ENVIAR DATOS (K-1)" ' End If ' img2.Visible=False - t2.Enabled = False - B4XPage_Appear + t2.Enabled = False + B4XPage_Appear End Sub Sub e_ruta_EnterPressed If e_ruta.Text = "FIN DIA" Then RES = Msgbox2("Seguro que desea hacer el cierre? Todos los datos se borrarán.", "Cierre", "Si", "", "No", LoadBitmap(File.DirAssets, "alert2.png")) 'ignore If RES = DialogResponse.POSITIVE Then - Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRuta, "Fin Día", "", Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, "2", "", "", "") + bitacora.mandaBitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRuta, "Fin Día", "", Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, "2", "", "", "") Label22.Visible = False l_rutasuplencia.Visible = False - l_rutasuplencia.Text = "" + l_rutasuplencia.Text = "" + b_abordo.Visible = False t2.Initialize("t2", 1000) ' 1000 ms = 1 segundo t2.Enabled = True End If @@ -2335,9 +2349,9 @@ Sub B_OK_PAS_Click B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("CARGA_DIA",1)) If E_RUTA2.Visible = True Then - Subs.bitacora(Subs.fechanormal(DateTime.Now),usuario,Subs.traeAlmacen, Subs.traeRuta,"Carga día suplencia", "",Subs.fechanormal(DateTime.Now),Subs.fechanormal(DateTime.Now),B4XPages.MainPage.lat_gps,B4XPages.MainPage.lon_gps,"2","","", "") + bitacora.mandaBitacora(Subs.fechanormal(DateTime.Now),usuario,Subs.traeAlmacen, Subs.traeRuta,"Carga día suplencia", "",Subs.fechanormal(DateTime.Now),Subs.fechanormal(DateTime.Now),B4XPages.MainPage.lat_gps,B4XPages.MainPage.lon_gps,"2","","", "") Else - Subs.bitacora(Subs.fechanormal(DateTime.Now),usuario,Subs.traeAlmacen, Subs.traeRuta,"Carga día", "",Subs.fechanormal(DateTime.Now),Subs.fechanormal(DateTime.Now),B4XPages.MainPage.lat_gps,B4XPages.MainPage.lon_gps,"2","","", "") + bitacora.mandaBitacora(Subs.fechanormal(DateTime.Now),usuario,Subs.traeAlmacen, Subs.traeRuta,"Carga día", "",Subs.fechanormal(DateTime.Now),Subs.fechanormal(DateTime.Now),B4XPages.MainPage.lat_gps,B4XPages.MainPage.lon_gps,"2","","", "") End If Else if CARGA = "CARGAR" And (S_CP.Text <> "LISTO" Or S_CC.Text <> "LISTO" Or S_CH.Text <> "LISTO") Then @@ -2365,6 +2379,14 @@ Sub B_OK_PAS_Click ExitApplication End If End If + If Subs.traeTipoVentaDeBD = "VENTA" Or Subs.traeTipoVentaDeBD = "ABORDO" Then + If l_ruta.Text <> "0" Then + Log(888 & "|" & l_ruta.Text & "|") + b_abordo.Visible = True + End If + Else + b_abordo.Visible = False + End If End Sub Sub NUEVO_Click @@ -2842,6 +2864,7 @@ Private Sub p_transparenteActualizacion_Click End Sub Private Sub b_abordo_Click - Starter.skmt.ExecNonQuery($"update cuentaa set cuenta = '0'"$) + Starter.skmt.ExecNonQuery($"delete from cuentaa"$) + Starter.skmt.ExecNonQuery($"insert into cuentaa (cuenta) values ('0')"$) B4XPages.ShowPage("Cliente") End Sub \ No newline at end of file diff --git a/B4A/C_Productos.bas b/B4A/C_Productos.bas index 6b787cb..c82f796 100644 --- a/B4A/C_Productos.bas +++ b/B4A/C_Productos.bas @@ -540,7 +540,7 @@ Sub b_prodMas_Click End Sub Private Sub et_pCant_TextChanged (Old As String, New As String) - LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta) +' LogColor($"txt changed: ${Old}|${New}, hasfocus=${etCantHasFocus}"$,Colors.Magenta) ' Try Dim index As Int = clv_productos.GetItemFromView(Sender) Dim pnl0 As B4XView = clv_productos.GetPanel(index) diff --git a/B4A/Files/iniciofinventa.bal b/B4A/Files/iniciofinventa.bal new file mode 100644 index 0000000000000000000000000000000000000000..555eaa2c5c2dd542bf12f4abfea525a9bc6c1253 GIT binary patch literal 2452 zcmbtW&2Jk;6kp@m!B8k4Nkhv=Q)okyrp6d3P(GTilL~{g0oNpgOPK6V?4g@ocX#ZN zN}x)pQYAR_Km~t5iF!jlAPyBLIJ8v`91udB;9`jz2nlgO3h(#UyKbpl31Mm8zIk8s z-tWB`Ib#?`Ib|4k(D(N4GHtEeO0VBT`+U4v3`DajgZoLgyj1p-t^B2<%3EqnPmAK+ zFg?=J+V{GKS&~G82Z(Df=|Fg4Qv_r#BX{yH-UYwcg(uyvTZRO@PZNV5<;K6;h(b0% z3r2`PNDIF+w03`l^r8QwwzhfYjq%r}u2wepPb`dE`KwdozXVeUu57og&2r||;KYgH zZ$BN{*BKt!yW{iDx$`GGa;)CDBs)8QJzd}U#2No_^0QqR77E2v(;t4FKKr|I=F9KD z8Qqv18aY2!-;iUaxv#2)gT)Jli-qqdvTupwmovu2pZ z2$h|mk)f)4GRV(KEn-wrjV8N(P~S^B;i*-jmG8~80{)^%ClG65*_C5`g3oky`I7JY zLA)Cw%Y5v1y$V>`u+0%8(M?ONN*ojCh|ySSx$ZGLkkZ>mJLTDK%aJvuUABBzv<0d~ zH6D4R{;1W&aM!e`;~)(W#AAk2L=W34R8$WRZHqt&PZto%l`9%8*M1YuYs%3Lgl?G0;ex9%!X79;9)-i$+Xp2fWN`63H3}eNezs=`sNkU@53n|q10rH4*Bx4I)RYYN9vUVRs_{pyJ>+KrcRqK|!? zc>b6cTDmIKkWdm2l5uZHSX=38kt0UbQ6Z-r$JkD?ZUxthnt=>M>BOR_Xje5ub&_Yq znzv?e@{j<(72nh5nhgDD4zYzN=B8n~bct4JN^v_%vsP`ky7bC?wfy$HRWmDSDcu)I zGvtywkgrO@d%9EIrP_Mf@tJZvV&aCiVl<#Q-DO=@I*{qH(&KqHBz*=OIL+gMSGxx3#k5wZsiZ6aX6us)!y`D}}7O|nTM!S3I{jFXIknINVI%w#OyPs|jp z2*%M^d<(oV6W8N);J^8Ar49B+;rI>YiTt1QImi=4a|I&TG!0K|5ps;=Q?#h8cg&|D zd4@=WU@~mnPawtp{F|7AForuf76E&WMVp_cl`)=U`aIFxAtFh)Ux4IAA}`U(ZqbkX z{{{8&WvC7lnFeDLN%|PwkmM@#CIbEA06$Ow*5d+m_8*ffsV9j~\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()~\n~~\n~AddManifestText(~\n~ ~\n~ )~\n~ AddPermission(android.permission.MANAGE_EXTERNAL_STORAGE)~\n~ SetApplicationAttribute(android:allowBackup, "false")~\n~ ~\n~ ~\n~ AddManifestText(~\n~ )~\n~ AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~' AddActivityText(main,~\n~'~\n~'~\n~'~\n~'~\n~')~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~ AddActivityText(main,~\n~~\n~~\n~~\n~~\n~~\n~) +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~~\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()~\n~~\n~AddManifestText(~\n~ ~\n~ )~\n~ AddPermission(android.permission.MANAGE_EXTERNAL_STORAGE)~\n~ SetApplicationAttribute(android:allowBackup, "false")~\n~ ~\n~ ~\n~ AddManifestText(~\n~ )~\n~ AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~' AddActivityText(main,~\n~'~\n~'~\n~'~\n~'~\n~')~\n~~\n~ 'Para que se registre para abrir bases de datos~\n~ AddActivityText(main,~\n~~\n~~\n~~\n~~\n~~\n~)~\n~~\n~ Module1=appUpdater -Module10=C_NoVenta -Module11=C_NuevoCliente -Module12=C_Pedidos -Module13=C_Principal -Module14=C_Productos -Module15=C_Promos -Module16=C_TicketsDia -Module17=C_UpdateAvailable -Module18=CameraExClass -Module19=DBRequestManager +Module10=C_Nota +Module11=C_NoVenta +Module12=C_NuevoCliente +Module13=C_Pedidos +Module14=C_Principal +Module15=C_Productos +Module16=C_Promos +Module17=C_TicketsDia +Module18=C_UpdateAvailable +Module19=CameraExClass Module2=B4XMainPage -Module20=EscPosPrinter -Module21=FirebaseMessaging -Module22=MAPA_RUTAS -Module23=Starter -Module24=Subs -Module25=Tracker +Module20=DBRequestManager +Module21=EscPosPrinter +Module22=FirebaseMessaging +Module23=MAPA_RUTAS +Module24=Starter +Module25=Subs +Module26=Tracker Module3=BatteryUtilities -Module4=C_Cliente -Module5=C_Clientes -Module6=C_Cuestionario -Module7=C_Historico -Module8=C_Mapas -Module9=C_Nota -NumberOfFiles=93 +Module4=|relative|..\C_Bitacora +Module5=C_Cliente +Module6=C_Clientes +Module7=C_Cuestionario +Module8=C_Historico +Module9=C_Mapas +NumberOfFiles=94 NumberOfLibraries=33 -NumberOfModules=25 +NumberOfModules=26 Version=12.8 @EndOfDesignText@ #Region Project Attributes #ApplicationLabel: Guna Preventa #VersionCode: 1 - #VersionName: 4.11.02 + #VersionName: 4.11.14 '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 1a6dbc1..947dad0 100644 --- a/B4A/Guna Vistas V3.1.b4a.meta +++ b/B4A/Guna Vistas V3.1.b4a.meta @@ -17,6 +17,7 @@ ModuleBookmarks22= ModuleBookmarks23= ModuleBookmarks24= ModuleBookmarks25= +ModuleBookmarks26= ModuleBookmarks3= ModuleBookmarks4= ModuleBookmarks5= @@ -43,6 +44,7 @@ ModuleBreakpoints22= ModuleBreakpoints23= ModuleBreakpoints24= ModuleBreakpoints25= +ModuleBreakpoints26= ModuleBreakpoints3= ModuleBreakpoints4= ModuleBreakpoints5= @@ -54,28 +56,29 @@ ModuleClosedNodes0= ModuleClosedNodes1=11,13,14 ModuleClosedNodes10= ModuleClosedNodes11= -ModuleClosedNodes12=6 -ModuleClosedNodes13=1,3 -ModuleClosedNodes14=3,17 -ModuleClosedNodes15= +ModuleClosedNodes12= +ModuleClosedNodes13=6 +ModuleClosedNodes14= +ModuleClosedNodes15=3,17 ModuleClosedNodes16= -ModuleClosedNodes17=4 -ModuleClosedNodes18= +ModuleClosedNodes17= +ModuleClosedNodes18=4 ModuleClosedNodes19= ModuleClosedNodes2= ModuleClosedNodes20= ModuleClosedNodes21= -ModuleClosedNodes22=3,4 -ModuleClosedNodes23=3,4,5,6,7,8,9 -ModuleClosedNodes24= +ModuleClosedNodes22= +ModuleClosedNodes23=3,4 +ModuleClosedNodes24=4,6,7,8,9,10 ModuleClosedNodes25= +ModuleClosedNodes26= ModuleClosedNodes3= -ModuleClosedNodes4=3 +ModuleClosedNodes4=4,5,6,7,8,9,10,11,12,13 ModuleClosedNodes5= -ModuleClosedNodes6=8,9,10,11 -ModuleClosedNodes7= +ModuleClosedNodes6= +ModuleClosedNodes7=5,6,8,9,10,11 ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=C_Productos,et_pCant_TextChanged,537,6,Visual Designer,cliente.bal,-100,2,Subs,traeTablaProds,1683,0,Subs,agregaColumna,1182,0,Starter,JobDone,139,0,Starter,Application_Error,135,0,C_Principal,e_ruta_Click,2811,0,C_Principal,B_OK_PANEL5_Click,2804,0,C_Principal,JobDone,1177,0,C_Cliente,gest_Click,1226,6,Main,Globals,23,0 +NavigationStack=C_Bitacora,p_transparenteInicioFin2_click,188,0,C_Bitacora,Class_Globals,7,0,C_Bitacora,Initialize,25,6,C_Bitacora,B4XPage_Created,33,0,C_Cuestionario,Class_Globals,5,0,Visual Designer,inicioFinVenta.bal,-100,1,Visual Designer,proditem.bal,-100,6,Visual Designer,clientes.bal,-100,1,C_Cuestionario,agregaPreguntaAbierta,217,0,B4XMainPage,B4XPage_Created,179,0,Starter,JobDone,137,0 SelectedBuild=0 -VisibleModules=23,2,13,24,4,5,14,9,25 +VisibleModules=24,2,14,25,4,5,7,6,15,11 diff --git a/B4A/Subs.bas b/B4A/Subs.bas index 4f3e306..8e57f83 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -721,8 +721,6 @@ Sub traeRutasSup As String Return rutas End Sub - - Sub traeCliente As String 'ignore Private c As Cursor Private cl As String @@ -1277,46 +1275,46 @@ End Sub 'En geocerca si mete la contraseña poner 0 en precision gps y si esta dentro de los 50 mts poner 1 y 2 para eventos que no lo ocupen 'Mandar fecha de sync(sysdate) Sub bitacora(fechab As String, usuariob As String, almacenb As String, rutab As String, eventob As String, clienteb As String, iniciob As String, finb As String, latitudb As String, longitudb As String, precision As String, motivonoventa As String, motivonovisita As String, BAN_GEOB As String) - Log(motivonovisita) -' Log("bitacora") - Private cmd As DBCommand - cmd.Initialize - cmd.Name = "mandaBitacora3_GUNA" -' Log("BITACORA3") - Private nombreCliente As String = traeNombreCliente(clienteb) - If eventob = "Llega a almacen" Then - nombreCliente = "BOLETA" - clienteb = "" - finb = iniciob - End If - If eventob = "Salida almacen" Then nombreCliente = "CHECKLIST" - If eventob = "Fin Día" Then nombreCliente = "FIN DIA" - If eventob = "Carga día" Then nombreCliente = "CARGA DIA" - If eventob = "Carga día suplencia" Then nombreCliente = traeRutasSup - If eventob <> "Termina Venta" And eventob <> "No Venta" Then - B4XPages.MainPage.skmt.ExecNonQuery($"INSERT INTO BITACORAGPS (fechab, usuariob , almacenb , rutab , eventob , clienteb , iniciob , finb , latitudb, longitudb , precision , motivonoventa , motivonovisita, BAN_GEOB) VALUES ('${fechab}' ,'${usuariob}' , '${almacenb}' , '${rutab}' , '${eventob}' , '${clienteb}' , '${iniciob}' , '${finb}' , '${latitudb}' , '${longitudb}' , '${precision}' , '${motivonoventa}' , '${motivonovisita}', '${BAN_GEOB}')"$) - Else - Private e As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select fechab from BITACORAGPS where usuariob = '${usuariob}' and almacenb = '${almacenb}' and rutab = '${rutab}' and clienteb = '${clienteb}' and eventob = 'Inicia Venta' order by fechab desc"$) - If e.RowCount > 0 Then - e.Position = 0 - Log("ACTUALIZA BITACORA") - If eventob = "Termina Venta" Then - B4XPages.MainPage.skmt.ExecNonQuery($"update BITACORAGPS set finb = '${finb}' where rutab = '${rutab}' and almacenb = '${almacenb}' and usuariob = '${usuariob}' and clienteb = '${clienteb}' and fechab = '${e.GetString("fechab")}' "$) - cmd.Parameters = Array As Object(finb, rutab, almacenb, usuariob, clienteb, "Inicia Venta", e.GetString("fechab")) - else if eventob = "No Venta" Then - B4XPages.MainPage.skmt.ExecNonQuery($"update BITACORAGPS set finb = '${finb}', motivonoventa = '${motivonoventa}', motivonovisita = '${motivonovisita}' where rutab = '${rutab}' and almacenb = '${almacenb}' and usuariob = '${usuariob}' and clienteb = '${clienteb}' and fechab = '${e.GetString("fechab")}' "$) - cmd.Parameters = Array As Object(finb, motivonoventa, motivonovisita, rutab, almacenb, usuariob, clienteb, "Inicia Venta", e.GetString("fechab")) - End If - End If - End If - If eventob <> "Inicia Venta" Then - Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select * from BITACORAGPS where usuariob = '${usuariob}' and almacenb = '${almacenb}' and rutab = '${rutab}' and clienteb = '${clienteb}' order by fechab desc"$) - If c.RowCount > 0 Then - c.Position = 0 - cmd.Parameters = Array As Object(c.GetString("almacenb"), c.GetString("usuariob"), c.GetString("rutab"), c.GetString("eventob"), c.GetString("clienteb"), nombreCliente, c.GetString("iniciob"), c.GetString("finb"), c.GetString("latitudb"), c.GetString("longitudb"), c.GetString("precision"), c.GetString("motivonoventa"), c.GetString("motivonovisita"), c.GetString("fechab"), c.GetString("BAN_GEOB")) - Starter.reqManager.ExecuteCommand(cmd , "mandaBitacora") - End If - End If +' Log(motivonovisita) +'' Log("bitacora") +' Private cmd As DBCommand +' cmd.Initialize +' cmd.Name = "mandaBitacora3_GUNA" +'' Log("BITACORA3") +' Private nombreCliente As String = traeNombreCliente(clienteb) +' If eventob = "Llega a almacen" Then +' nombreCliente = "BOLETA" +' clienteb = "" +' finb = iniciob +' End If +' If eventob = "Salida almacen" Then nombreCliente = "CHECKLIST" +' If eventob = "Fin Día" Then nombreCliente = "FIN DIA" +' If eventob = "Carga día" Then nombreCliente = "CARGA DIA" +' If eventob = "Carga día suplencia" Then nombreCliente = traeRutasSup +' If eventob <> "Termina Venta" And eventob <> "No Venta" Then +' B4XPages.MainPage.skmt.ExecNonQuery($"INSERT INTO BITACORAGPS (fechab, usuariob , almacenb , rutab , eventob , clienteb , iniciob , finb , latitudb, longitudb , precision , motivonoventa , motivonovisita, BAN_GEOB) VALUES ('${fechab}' ,'${usuariob}' , '${almacenb}' , '${rutab}' , '${eventob}' , '${clienteb}' , '${iniciob}' , '${finb}' , '${latitudb}' , '${longitudb}' , '${precision}' , '${motivonoventa}' , '${motivonovisita}', '${BAN_GEOB}')"$) +' Else +' Private e As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select fechab from BITACORAGPS where usuariob = '${usuariob}' and almacenb = '${almacenb}' and rutab = '${rutab}' and clienteb = '${clienteb}' and eventob = 'Inicia Venta' order by fechab desc"$) +' If e.RowCount > 0 Then +' e.Position = 0 +' Log("ACTUALIZA BITACORA") +' If eventob = "Termina Venta" Then +' B4XPages.MainPage.skmt.ExecNonQuery($"update BITACORAGPS set finb = '${finb}' where rutab = '${rutab}' and almacenb = '${almacenb}' and usuariob = '${usuariob}' and clienteb = '${clienteb}' and fechab = '${e.GetString("fechab")}' "$) +' cmd.Parameters = Array As Object(finb, rutab, almacenb, usuariob, clienteb, "Inicia Venta", e.GetString("fechab")) +' else if eventob = "No Venta" Then +' B4XPages.MainPage.skmt.ExecNonQuery($"update BITACORAGPS set finb = '${finb}', motivonoventa = '${motivonoventa}', motivonovisita = '${motivonovisita}' where rutab = '${rutab}' and almacenb = '${almacenb}' and usuariob = '${usuariob}' and clienteb = '${clienteb}' and fechab = '${e.GetString("fechab")}' "$) +' cmd.Parameters = Array As Object(finb, motivonoventa, motivonovisita, rutab, almacenb, usuariob, clienteb, "Inicia Venta", e.GetString("fechab")) +' End If +' End If +' End If +' If eventob <> "Inicia Venta" Then +' Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select * from BITACORAGPS where usuariob = '${usuariob}' and almacenb = '${almacenb}' and rutab = '${rutab}' and clienteb = '${clienteb}' order by fechab desc"$) +' If c.RowCount > 0 Then +' c.Position = 0 +' cmd.Parameters = Array As Object(c.GetString("almacenb"), c.GetString("usuariob"), c.GetString("rutab"), c.GetString("eventob"), c.GetString("clienteb"), nombreCliente, c.GetString("iniciob"), c.GetString("finb"), c.GetString("latitudb"), c.GetString("longitudb"), c.GetString("precision"), c.GetString("motivonoventa"), c.GetString("motivonovisita"), c.GetString("fechab"), c.GetString("BAN_GEOB")) +' Starter.reqManager.ExecuteCommand(cmd , "mandaBitacora") +' End If +' End If ' Log("Mandamos bitacora") End Sub @@ -1620,7 +1618,7 @@ Sub traeUsarIntentBDWA As Boolean 'ignore x.Position = 0 If x.GetString("CAT_VA_VALOR") = "true" Then BDWA = True End If - Log($"cb_importarBDWA = ${BDWA}"$) +' Log($"cb_importarBDWA = ${BDWA}"$) Return BDWA End Sub @@ -1704,17 +1702,17 @@ Sub revisaProdFueraDePromo(prodId As String) As Boolean End If Return fueraDePromo End Sub - + 'Trae el tipo de venta (VENTA o PREVENTA) desde CAT_VARIABLES, o "PREVENTA" por default. Sub traeTipoVentaDeBD As String Private tipoVenta As String = "PREVENTA" Private r As ResultSet = Starter.skmt.ExecQuery("select * from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'TIPO_VENTA' ") Do While r.NextRow - tipoVenta = r.GetString("CAT_VA_VALOR") + tipoVenta = r.GetString("CAT_VA_VALOR").As(String).ToUpperCase Loop If Starter.idCliente = "0" Then tipoVenta = "ABORDO" End If - Log(">>>>>>> " & tipoVenta) +' Log(">>>>>>> " & tipoVenta) Return tipoVenta End Sub \ No newline at end of file diff --git a/B4A/Tracker.bas b/B4A/Tracker.bas index 023ac9f..d84255d 100644 --- a/B4A/Tracker.bas +++ b/B4A/Tracker.bas @@ -96,7 +96,7 @@ Public Sub StartFLP ' If flpStarted = False Then ' Log("RequestLocationUpdates") FLP.RequestLocationUpdates(CreateLocationRequest) 'Buscamos ubicacion - Log("Buscamos ubicacion") +' Log("Buscamos ubicacion") ' Log(actualLR.GetSmallestDisplacement) flpStarted = True ' End If diff --git a/B4A/appUpdater.bas b/B4A/appUpdater.bas index 184ccf1..7c2a0d4 100644 --- a/B4A/appUpdater.bas +++ b/B4A/appUpdater.bas @@ -121,41 +121,41 @@ Sub Service_Start (StartingIntent As Intent) B4XPages.MainPage.muestraProgreso("Buscando actualizaciones, un momento por favor.") Log("Buscando actualización") fileProvider_init -' Wait For (Download(Me, lnk)) JobDone (j As HttpJob) -' If j.Success Then -' Try -' Dim app() As String = Regex.Split(Chr(9),j.GetString) -' ' // Set the data -' newApp.appLink = app(3) 'Liga a nueva app -' newApp.newMsg = app(1) 'Texto de que hay actualizacion -' newApp.okMsg = app(2) 'Texto de app al corriente -' newApp.version = app(0) 'Version actual -' -' Log($"Application.VersionName=${Application.VersionName}, newApp=${newApp}"$) -' -' ' // App version check -' If newApp.version = Application.VersionName Then -' newApp.update = False -' Log("No new app") -' B4XPages.ShowPage("updateAvailable") -' 'Se puede mandar tambien una notificacion avisando que NO hay actualizaciones -'' CreateNotification2("Aplicacion al corriente","No hay actualizaciones disponibles","ic_file_download_white_24dp",Main,True,True,nNewApp,nNewAppnID) -' End If -' If newApp.version <> Application.VersionName Then -' newApp.update = True -' Log("New app true") -' B4XPages.ShowPage("updateAvailable") -' 'Se puede mandar tambien una notificacion avisando que hay actualizacion disponible -'' CreateNotification2("Nueva aplicación disponible","Haga clic para descargar.","ic_file_download_white_24dp",C_UpdateAvailable,True,True,nNewApp,nNewAppnID) -' End If -' Catch -' Log("appUpdater(), Job Failed, error " & LastException.Message) -' End Try -' Else -' Log("appUpdater(), Job Failed " & lnk) -' End If -' j.Release -' StopService(Me) + Wait For (Download(Me, lnk)) JobDone (j As HttpJob) + If j.Success Then + Try + Dim app() As String = Regex.Split(Chr(9),j.GetString) + ' // Set the data + newApp.appLink = app(3) 'Liga a nueva app + newApp.newMsg = app(1) 'Texto de que hay actualizacion + newApp.okMsg = app(2) 'Texto de app al corriente + newApp.version = app(0) 'Version actual + + Log($"Application.VersionName=${Application.VersionName}, newApp=${newApp}"$) + + ' // App version check + If newApp.version = Application.VersionName Then + newApp.update = False + Log("No new app") + B4XPages.ShowPage("updateAvailable") + 'Se puede mandar tambien una notificacion avisando que NO hay actualizaciones +' CreateNotification2("Aplicacion al corriente","No hay actualizaciones disponibles","ic_file_download_white_24dp",Main,True,True,nNewApp,nNewAppnID) + End If + If newApp.version <> Application.VersionName Then + newApp.update = True + Log("New app true") + B4XPages.ShowPage("updateAvailable") + 'Se puede mandar tambien una notificacion avisando que hay actualizacion disponible +' CreateNotification2("Nueva aplicación disponible","Haga clic para descargar.","ic_file_download_white_24dp",C_UpdateAvailable,True,True,nNewApp,nNewAppnID) + End If + Catch + Log("appUpdater(), Job Failed, error " & LastException.Message) + End Try + Else + Log("appUpdater(), Job Failed " & lnk) + End If + j.Release + StopService(Me) End Sub Sub download_Start (StartingIntent As Intent) diff --git a/C_Bitacora.bas b/C_Bitacora.bas new file mode 100644 index 0000000..c67c73f --- /dev/null +++ b/C_Bitacora.bas @@ -0,0 +1,240 @@ +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 db As SQL + Private Root2 As B4XView + Dim p_transparenteInicioFin2 As Panel + Dim b_Inicio_Fin_venta2 As Button + Dim contadorIniciarVenta, precision As Int + Dim IniVenNO, dentroDeGeocerca, enVenta As Boolean + Dim motivoNoVenta, motivoNoVisita As String + Dim banderaGeoCerca As String + Private reqManager As DBRequestManager +End Sub + +'You can add more parameters here. +Public Sub Initialize (vCallback As Object, vEventName As String, vRoot As B4XView, db1 As SQL, DBReq As DBRequestManager) As Object + db = db1 + Root2 = vRoot + reqManager = DBReq + db.ExecNonQuery("CREATE TABLE IF NOT EXISTS BITACORAGPS(fechab TEXT, usuariob TEXT, almacenb TEXT, rutab TEXT, eventob TEXT, clienteb TEXT, iniciob TEXT, finb TEXT, latitudb TEXT, longitudb TEXT, precision TEXT, motivonoventa TEXT, motivonovisita TEXT, BAN_GEOB TEXT)") +' agregaColumna("BITACORAGPS", "BAN_GEOB", "TEXT") + contadorIniciarVenta = 0 + cargamosPanel + 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 +End Sub + +'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. + +'En geocerca si mete la contraseña poner 0 en precision gps y si esta dentro de los 50 mts poner 1 y 2 para eventos que no lo ocupen +'Mandar fecha de sync(sysdate) +Sub mandaBitacora(fechab As String, usuariob As String, almacenb As String, rutab As String, eventob As String, clienteb As String, iniciob As String, finb As String, latitudb As String, longitudb As String, precisionb As String, motivoNoVentab As String, motivoNoVisitab As String, BAN_GEOB As String) + Log(motivoNoVisitab) +' Log("bitacora") + Private cmd As DBCommand + cmd.Initialize + cmd.Name = "mandaBitacora3_GUNA" +' Log("BITACORA3") + Private nombreCliente As String = traeNombreCliente(clienteb) + If eventob = "Llega a almacen" Then + nombreCliente = "BOLETA" + clienteb = "" + finb = iniciob + End If + If eventob = "Salida almacen" Then nombreCliente = "CHECKLIST" + If eventob = "Fin Día" Then nombreCliente = "FIN DIA" + If eventob = "Carga día" Then nombreCliente = "CARGA DIA" + If eventob = "Carga día suplencia" Then nombreCliente = traeRutasSup + If eventob <> "Termina Venta" And eventob <> "No Venta" Then + db.ExecNonQuery($"INSERT INTO BITACORAGPS (fechab, usuariob , almacenb , rutab , eventob , clienteb , iniciob , finb , latitudb, longitudb , precision , motivonoventa , motivonovisita, BAN_GEOB) VALUES ('${fechab}' ,'${usuariob}' , '${almacenb}' , '${rutab}' , '${eventob}' , '${clienteb}' , '${iniciob}' , '${finb}' , '${latitudb}' , '${longitudb}' , '${precisionb}' , '${motivoNoVentab}' , '${motivoNoVisitab}', '${BAN_GEOB}')"$) + Else + Private e As Cursor = db.ExecQuery($"select fechab from BITACORAGPS where usuariob = '${usuariob}' and almacenb = '${almacenb}' and rutab = '${rutab}' and clienteb = '${clienteb}' and eventob = 'Inicia Venta' order by fechab desc"$) + If e.RowCount > 0 Then + e.Position = 0 + Log("ACTUALIZA BITACORA") + If eventob = "Termina Venta" Then + db.ExecNonQuery($"update BITACORAGPS set finb = '${finb}' where rutab = '${rutab}' and almacenb = '${almacenb}' and usuariob = '${usuariob}' and clienteb = '${clienteb}' and fechab = '${e.GetString("fechab")}' "$) + cmd.Parameters = Array As Object(finb, rutab, almacenb, usuariob, clienteb, "Inicia Venta", e.GetString("fechab")) + else if eventob = "No Venta" Then + db.ExecNonQuery($"update BITACORAGPS set finb = '${finb}', motivonoventa = '${motivoNoVentab}', motivonovisita = '${motivoNoVisitab}' where rutab = '${rutab}' and almacenb = '${almacenb}' and usuariob = '${usuariob}' and clienteb = '${clienteb}' and fechab = '${e.GetString("fechab")}' "$) + cmd.Parameters = Array As Object(finb, motivoNoVentab, motivoNoVisitab, rutab, almacenb, usuariob, clienteb, "Inicia Venta", e.GetString("fechab")) + End If + End If + End If + If eventob <> "Inicia Venta" Then + Private c As Cursor = db.ExecQuery($"select * from BITACORAGPS where usuariob = '${usuariob}' and almacenb = '${almacenb}' and rutab = '${rutab}' and clienteb = '${clienteb}' order by fechab desc"$) + If c.RowCount > 0 Then + c.Position = 0 + cmd.Parameters = Array As Object(c.GetString("almacenb"), c.GetString("usuariob"), c.GetString("rutab"), c.GetString("eventob"), c.GetString("clienteb"), nombreCliente, c.GetString("iniciob"), c.GetString("finb"), c.GetString("latitudb"), c.GetString("longitudb"), c.GetString("precision"), c.GetString("motivonoventa"), c.GetString("motivonovisita"), c.GetString("fechab"), c.GetString("BAN_GEOB")) + reqManager.ExecuteCommand(cmd , "mandaBitacora") + End If + End If +' Log("Mandamos bitacora") +End Sub + +'Regresa el nombre del cliente del id dado. +Sub traeNombreCliente(id As String) As String + Private c As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select CAT_CL_NOMBRE from kmt_info2 where CAT_CL_CODIGO = '${id}'"$) + Private n As String = "N/A" + Do While c.NextRow + n = c.GetString("CAT_CL_NOMBRE") + Loop + Return n +End Sub + +'Regresa la ruta actual de la base de datos. +Sub traeRutasSup As String + Dim c As Cursor + Dim rutas As String + rutas = "" + + c = B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_CL_RUTA FROM kmt_info2") + + If c.RowCount > 0 Then + For i = 0 To c.RowCount - 1 + c.Position = i + rutas = rutas & c.GetString("CAT_CL_RUTA") & ", " + Next + If rutas.Length > 0 Then rutas = rutas.SubString2(0, rutas.Length - 2) + End If + + c.Close + Return rutas +End Sub + +'Muestra u oculta el boton de inicio y fin de venta +Sub inicioFin + LogColor($">>>>>>>>>>>> XX EN VENTA : ${enVenta} <<<<<<<<<<<<"$, Colors.Blue) + Log(b_Inicio_Fin_venta2.Text) + If enVenta = False Then + p_transparenteInicioFin2.BringToFront + p_transparenteInicioFin2.Visible = True +' b_Inicio_Fin_venta2.Text = "INICIAR VENTA" +' Log("Hacemos visible el boton de Inicio Venta") + Else + If b_Inicio_Fin_venta2.Text <> "TERMINAR VENTA" Then + p_transparenteInicioFin2.Visible = False +' b_Inicio_Fin_venta2.Visible = False + End If + End If +End Sub + +Private Sub b_Inicio_Fin_venta2_Click +' b_Inicio_Fin_venta.Visible = False +' Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRuta, "Pre-venta", "0", Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, "", "") + contadorIniciarVenta = 0 + IniVenNO = False + If dentroDeGeocerca Then precision = 1 +' LogColor("-------> "&contadorIniciarVenta & " <-------", Colors.Red) + LogColor($">>>>>>>>>>>> EN VENTA : ${enVenta} <<<<<<<<<<<<"$, Colors.Blue) + motivoNoVenta = "" + motivoNoVisita = "" + p_transparenteInicioFin2.Visible = False + If b_Inicio_Fin_venta2.Text = "TERMINAR VENTA" Then + mandaBitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRutaBitacora, "Termina Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, motivoNoVenta, motivoNoVisita, banderaGeoCerca) + enVenta = False + LogColor($">>>>>> EN VENTA: ${enVenta}"$, Colors.red) + iniciamosVenta + B4XPages.ShowPageAndRemovePreviousPages("Principal") +' guardadoventa + Else if b_Inicio_Fin_venta2.Text = "INICIAR VENTA" Then + contadorIniciarVenta = 0 + IniVenNO = False + contadorIniciarVenta = contadorIniciarVenta + 1 + If contadorIniciarVenta = 1 And IniVenNO = False And motivoNoVenta <> "NO VENTA" Then + IniVenNO = True + mandaBitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRutaBitacora, "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, "", "", banderaGeoCerca) + enVenta = True + LogColor($">>>>>> EN VENTA: ${enVenta}"$, Colors.red) +' LogColor($">>>>>> INICIA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red) + Else If contadorIniciarVenta = 1 And IniVenNO = False And motivoNoVenta = "NO VENTA" Then + IniVenNO = True + mandaBitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRutaBitacora, "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, motivoNoVenta, "", banderaGeoCerca) + enVenta = True + LogColor($">>>>>> EN VENTA: ${enVenta}"$, Colors.red) + Else If contadorIniciarVenta > 1 Then + p_transparenteInicioFin2.Visible = False + End If + End If + p_transparenteInicioFin2.Visible = False + LogColor($">>>>>>>>>>>> EN VENTA : ${enVenta} <<<<<<<<<<<<"$, Colors.Blue) +End Sub + +'Cargamos el layout del panel. +private Sub cargamosPanel + Log(p_transparenteInicioFin2.IsInitialized) +' Log(p_transparenteInicioFin2.) + If Not(p_transparenteInicioFin2.IsInitialized) Then + LogColor(">>>>>>> CARGAMOS PANEL BITACORA", Colors.red) + Root2.LoadLayout("inicioFinVenta") + p_transparenteInicioFin2.Width = Root2.Width + p_transparenteInicioFin2.Height = Root2.Height + b_Inicio_Fin_venta2.top = 700 + b_Inicio_Fin_venta2.Left = 5 + b_Inicio_Fin_venta2.Width = Root2.Width - 20 + b_Inicio_Fin_venta2.Text = "INICIAR VENTA" + p_transparenteInicioFin2.BringToFront + End If +End Sub + +Sub p_transparenteInicioFin2_click + +End Sub + +' Ponemos el texto del boton en "INICIAR VENTA" y enVenta en Falso . +Sub iniciamosVenta + enVenta = False + b_Inicio_Fin_venta2.Text = "INICIAR VENTA" +End Sub + +Sub agregaColumna(tabla As String, columna As String, tipo As String) 'ignore + Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna en la tabla + Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('${tabla}') WHERE name='${columna}'"$) + c.Position = 0 + If c.GetString("fCol") = 0 Then 'Si no esta la columna la agregamos + B4XPages.MainPage.skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$) + Log($"Columna "${columna} ${tipo}", agregada a "${tabla}"."$) + End If +' Log(1) + Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch + Try + B4XPages.MainPage.skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$) + Log($"Columna "${columna} ${tipo}", agregada a "${tabla}".."$) + Catch + Log(LastException) + End Try + Log(2) + End Try +End Sub + +'Borra los datos de la tabla BITACORAGPS +Sub borraDatosBitacora + db.ExecNonQuery("DELETE FROM BITACORAGPS") +End Sub + +Sub JobDone(Job As HttpJob) + Log("JOBDONE BITACORA") + If Job.JobName = "DBRequest" Then + Dim RESULT As DBResult = reqManager.HandleJob(Job) + Log($"Tag: ${RESULT.tag}, success=${Job.Success}"$) + End If + 'Log(Job.Tag) + If Job.Success = False Then +' Log("JOBDONE ERROR") + LogColor("Error: " & Job.ErrorMessage, Colors.red) + Else 'If Job Success then ... +' Log("JOBDONE SUCCESS") + End If +End Sub