From cb2290b72930c8e29735923fb130fa36dd59bbc0 Mon Sep 17 00:00:00 2001 From: IsR0d Date: Tue, 20 Aug 2024 16:21:06 -0600 Subject: [PATCH] Version 4.08.18.EP_d Se agregaron las funciones de Bitacora GPS Se agrego el boton de Inicio / Fin Venta La bitacora GPS guarda La hora de cargar dia, al darle fin dia tambien guarda su venta. --- B4A/B4XMainPage.bas | 3 +- B4A/C_Cliente.bas | 248 ++++++++++++++++++++++++++-------- B4A/C_Clientes.bas | 2 + B4A/C_NoVenta.bas | 7 + B4A/C_Principal.bas | 40 +++++- B4A/Files/cliente.bal | Bin 45729 -> 46331 bytes B4A/Guna Vistas V3.1.b4a | 2 +- B4A/Guna Vistas V3.1.b4a.meta | 2 +- B4A/Starter.bas | 2 + B4A/Subs.bas | 150 +++++++++++++++++++- 10 files changed, 382 insertions(+), 74 deletions(-) diff --git a/B4A/B4XMainPage.bas b/B4A/B4XMainPage.bas index ea27bba..fec5ce5 100644 --- a/B4A/B4XMainPage.bas +++ b/B4A/B4XMainPage.bas @@ -180,7 +180,8 @@ 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 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 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)") Subs.agregaColumna("HIST_ENCUESTA", "HE_LAT", "TEXT") Subs.agregaColumna("HIST_ENCUESTA", "HE_FOTO", "BLOB") Subs.agregaColumna("PEDIDO", "PE_RECALCULO", "TEXT") diff --git a/B4A/C_Cliente.bas b/B4A/C_Cliente.bas index 855b4cb..e20e807 100644 --- a/B4A/C_Cliente.bas +++ b/B4A/C_Cliente.bas @@ -416,7 +416,13 @@ Sub Class_Globals Private teclado As IME Dim fototomada As String Private b_foto As Button + Dim precision As String + Private b_Inicio_Fin_venta As Button + Dim dentroDeGeocerca As Boolean = False + Dim motivoNoVenta, motivoNoVisita As String + Dim contadorIniciarVenta As Int = 0 + Dim IniVenNO As Boolean = False End Sub 'You can add more parameters here. @@ -474,8 +480,11 @@ End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. Sub B4XPage_Appear + que_modulo = 1 - + + dentroDeGeocerca = False + indicePregunta = 0 If TOMAR_FOTO <> 0 Then Cuestionario @@ -654,9 +663,18 @@ Sub B4XPage_Appear End If ' Log(distance) + b_Inicio_Fin_venta.Text = "INICIAR VENTA" + b_Inicio_Fin_venta.BringToFront - -' +' LogColor(">>>>>> EN VENTA: " & Starter.enVenta, Colors.red) + If Not(Starter.enVenta) And la_cuenta.Text <> "0" Then + b_Inicio_Fin_venta.Visible = True + Log("EnVenta Visible") + Else + Log("EnVenta NO Visible") + b_Inicio_Fin_venta.Visible = False + End If +' LogColor(">>>>>> EN VENTA: " & Starter.enVenta, Colors.red) ' Log(Subs.InvSuficientePromoEsp) @@ -719,19 +737,67 @@ Sub B4XPage_Appear Private cantres As Float = des + rec Log( NumberFormat2(cantres,0,2,2,False)) - Private c4 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU >= ?",Array As String(NumberFormat2(cantres,0,2,2,False))) - If c4.RowCount > 0 Then - For i = 0 To c4.RowCount -1 - c4.Position = i - Private recalculo As Float = c4.GetString("PE_COSTOU") - NumberFormat2(cantres,0,2,2,False) - LogColor(recalculo,Colors.Blue) - Private recalculototal As Float = c4.GetString("PE_CANT") * NumberFormat2(recalculo,0,2,2,False) + + Private c5 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT Ifnull(SUM(PE_CANT),0) AS PE_CANT FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU > ? and PE_COSTOU < ?",Array As String(des, cantres)) + If c5.RowCount > 0 Then + c5.Position = 0 + Log(c5.GetString("PE_CANT")) + + If c5.GetString("PE_CANT") = "0" Then + + + Private c4 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU >= ?",Array As String(NumberFormat2(cantres,0,2,2,False))) + If c4.RowCount > 0 Then + For i = 0 To c4.RowCount -1 + c4.Position = i + Private recalculo As Float = c4.GetString("PE_COSTOU") - NumberFormat2(cantres,0,2,2,False) + LogColor(recalculo,Colors.Blue) + Private recalculototal As Float = c4.GetString("PE_CANT") * NumberFormat2(recalculo,0,2,2,False) ' Log(recalculo&"|||||"&recalculototal) - B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ? WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_PROID = ? ",Array As String(NumberFormat2(recalculo,0,2,2,False) ,NumberFormat2(recalculototal,0,2,2,False), c4.GetString("PE_PROID"))) + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ? WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_PROID = ? ",Array As String(NumberFormat2(recalculo,0,2,2,False) ,NumberFormat2(recalculototal,0,2,2,False), c4.GetString("PE_PROID"))) - Next + Next + End If + + c4.Close + Else + + + Private c6 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT SUM(PE_CANT) AS PE_CANT FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU >= ?",Array As String(cantres)) + If c6.RowCount > 0 Then + c6.Position = 0 + Log(c6.GetString("PE_CANT")) + Private rec1 As Float = (cantres * c5.GetString("PE_CANT"))/c6.GetString("PE_CANT") + Log( NumberFormat2(rec1,0,2,2,False)) + Private cantres1 As Float = cantres + rec1 + Log( NumberFormat2(cantres1,0,2,2,False)) + + + Private c4 As Cursor = B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM PEDIDO JOIN CAT_PROMO_ESP ON CAT_PE_ID = PE_PROID WHERE PE_CLIENTE IN (Select CUENTA FROM CUENTAA) AND PE_COSTOU >= ?",Array As String(NumberFormat2(cantres1,0,2,2,False))) + If c4.RowCount > 0 Then + For i = 0 To c4.RowCount -1 + c4.Position = i + Private recalculo As Float = c4.GetString("PE_COSTOU") - NumberFormat2(cantres1,0,2,2,False) + LogColor(recalculo,Colors.Blue) + Private recalculototal As Float = c4.GetString("PE_CANT") * NumberFormat2(recalculo,0,2,2,False) + +' Log(recalculo&"|||||"&recalculototal) + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE PEDIDO set PE_RECALCULO = ?, PE_RECALCULOTOT = ? WHERE PE_CLIENTE IN (SELECT CUENTA FROM CUENTAA) AND PE_PROID = ? ",Array As String(NumberFormat2(recalculo,0,2,2,False) ,NumberFormat2(recalculototal,0,2,2,False), c4.GetString("PE_PROID"))) + + Next + End If + + c4.Close + + End If + + + End If + End If + + End If End If @@ -739,7 +805,7 @@ Sub B4XPage_Appear c.Close c2.Close c3.Close - c4.Close + End If If Not(Subs.traemontoprod) Then @@ -788,7 +854,7 @@ Sub B4XPage_Appear If s.GetString("TOTAL_CLIE") = Null Then l_total.Text = 0 Else - l_total.Text =NumberFormat2((s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE")),0,2,2,False) + l_total.Text =NumberFormat2((s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE")),0,2,2,False) End If total_cliente = s.GetString("TOTAL_CLIE") + s5.GetString("TOTAL_CLIE") m_lat = "0" @@ -834,8 +900,8 @@ Sub B4XPage_Appear Log(s.GetString("TOTAL_CLIE")) If s.GetString("TOTAL_CLIE") = Null Then l_total.Text = 0 - Else - l_total.Text =NumberFormat2(s.GetString("TOTAL_CLIE"),0,2,2,False) + Else + l_total.Text =NumberFormat2(s.GetString("TOTAL_CLIE"),0,2,2,False) End If total_cliente = s.GetString("TOTAL_CLIE") m_lat = "0" @@ -873,10 +939,13 @@ Sub B4XPage_Appear If geo = "0" Then gest.Visible = True Tels.Visible = True - Log("AQUI") +' b_Inicio_Fin_venta.Visible = True + precision = "1" +' Log("Hacemos visible el boton de Inicio Venta") Else If geo = "1" And distance > 100 Then gest.Visible = False Tels.Visible = False + b_Inicio_Fin_venta.Visible = False ' ToastMessageShow("aaa", False) End If @@ -890,13 +959,11 @@ Sub GPS_LocationChanged (Location1 As Location) B4XPages.MainPage.lon_gps = Tracker.FLP.GetLastKnownLocation.Longitude ' Log("Coords set to: " & B4XPages.MainPage.lat_gps & " and " & B4XPages.MainPage.lon_gps) End If - If m_lat.Length > 0 And B4XPages.MainPage.lat_gps <> "0" Then Dim l1, l2 As Location l1.Initialize2(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps) ' Log($"Coordenadas de la tienda - lat:${m_lat}, lon:${m_lon}"$) l2.Initialize2(m_lat, m_lon) - BT_QR.Enabled = True LA_GPS.TextColor = Colors.Blue LA_GPS.Text = "CON UBICACION GPS" @@ -917,124 +984,128 @@ Sub GPS_LocationChanged (Location1 As Location) End If c.Close If gest.IsInitialized And Tels.IsInitialized Then - - If geo = "0" Then - gest.Visible = True - Tels.Visible = True - Else If geo = "1" Then - gest.Visible = False - Tels.Visible = False + If geo = "0" Then + gest.Visible = True + Tels.Visible = True + iniciofin + Else If geo = "1" Then + gest.Visible = False + Tels.Visible = False + b_Inicio_Fin_venta.Visible = False + End If End If - End If - If geo = "1" Then If distance < 100 Then LA_GEO.TextColor = Colors.Blue Tels.Visible = True gest.Visible = True + iniciofin + precision = "1" 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")) If c.RowCount > 0 Then c.Position = 0 Dim al_latitud As String = c.GetString("CAT_VA_VALOR") End If 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 c.Position = 0 Dim al_longitud As String = c.GetString("CAT_VA_VALOR") End If c.Close - Dim ubi1, ubi2 As Location ubi1.Initialize2(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps) ubi2.Initialize2(al_latitud, al_longitud) - Dim distancealm As Long distancealm = ubi1.DistanceTo(ubi2) - If distancealm < 50 Then + precision = "0" LA_GEO.TextColor = Colors.Blue Tels.Visible = True gest.Visible = True + iniciofin ToastMessageShow("DENTRO de rango GPS", False) Else If distancealm > 50 Then Tels.Visible = False gest.Visible = False - - c = skmt.ExecQuery("SELECT PC_CLIENTE FROM PEDIDO_CLIENTE WHERE PC_CLIENTE IN (Select CUENTA from cuentaa)") + b_Inicio_Fin_venta.Visible = False + c = skmt.ExecQuery("SELECT PC_CLIENTE FROM PEDIDO_CLIENTE WHERE PC_CLIENTE IN (Select CUENTA from cuentaa)") If c.RowCount > 0 Then + precision = "0" Tels.Visible = True gest.Visible = True - + iniciofin Else If c.RowCount = 0 Then 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 + precision = "0" + iniciofin Else If c.RowCount = 0 Then Tels.Visible = False gest.Visible = False + b_Inicio_Fin_venta.Visible = False LA_GEO.TextColor = Colors.Red If ALMACEN = "1" Then Tels.Visible = False gest.Visible = True + iniciofin End If End If - - End If - LA_GEO.TextColor = Colors.Red If ALMACEN = "1" Then Tels.Visible = False gest.Visible = True + iniciofin End If End If Else If habi = 0 Then - 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 - + iniciofin Else If c.RowCount = 0 Then Tels.Visible = False gest.Visible = False + 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 + iniciofin Else If c.RowCount = 0 Then Tels.Visible = False gest.Visible = False + b_Inicio_Fin_venta.Visible = False LA_GEO.TextColor = Colors.Red If ALMACEN = "1" Then Tels.Visible = False gest.Visible = True + iniciofin End If End If - - LA_GEO.TextColor = Colors.Red If ALMACEN = "1" Then Tels.Visible = False gest.Visible = True + iniciofin End If - End If Else Tels.Visible = False gest.Visible = False + b_Inicio_Fin_venta.Visible = False LA_GEO.TextColor = Colors.Red If ALMACEN = "1" Then Tels.Visible = False gest.Visible = True + iniciofin End If - End If End If End If @@ -1051,7 +1122,20 @@ Sub GPS_LocationChanged (Location1 As Location) End Sub + + Private Sub p_pideGeoPass_Click + +End Sub + +Private Sub iniciofin + If Starter.VarX = 0 Then + b_Inicio_Fin_venta.Visible = True + Log("Hacemos visible el boton de Inicio Venta2") + Else + + b_Inicio_Fin_venta.Visible = False + End If End Sub Private Sub b_geopass_Click @@ -1877,6 +1961,13 @@ Sub DATOS_Click End Sub Sub Guardar_Click + Guardar.SendToBack + b_Inicio_Fin_venta.Visible = True + b_Inicio_Fin_venta.Text = "TERMINAR VENTA" + Log("Hacemos visible el boton de Terminar Venta3") +End Sub + +Sub guardadoventa DateTime.DateFormat = "MM/dd/yyyy" sDate=DateTime.Date(DateTime.Now) sTime=DateTime.Time(DateTime.Now) @@ -1896,21 +1987,15 @@ Sub Guardar_Click 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 @@ -1951,6 +2036,20 @@ Sub Guardar_Click End Try DateTime.TimeFormat = "HH:mm:ss" B4XPages.ShowPage("Principal") + + + + If la_cuenta.Text <> "0" Then 'Si es ABORDO, no mostramos el boton b_Inicio_Fin_venta y regresamos a Principal. + b_Inicio_Fin_venta.Visible = True + Log("Hacemos visible el boton de Inicio Venta3") + Else + b_Inicio_Fin_venta.Visible = False + Starter.enVenta = False + LogColor(">>>>>> ABORDO: " & Starter.enVenta, Colors.red) + Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRuta, "Venta Abordo", "0", Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, "", "") + Subs.iniciaActividad("principal") + B4XPages.ShowPageAndRemovePreviousPages("Principal") + End If End Sub Sub NUEVO_Click @@ -2071,9 +2170,6 @@ Sub B_IMP_Click Impresion End If - - - End Sub Sub Impresion2 @@ -2151,7 +2247,6 @@ Sub Impresion2 Printer1.WriteString("Entre calle1: " & l_entre1.Text & CRLF) Printer1.WriteString("Entre Calle2: " & l_entre2.Text & CRLF) - Printer1.WriteString("-----------PREVENTA-----------" & CRLF) ' aqui es donde esta el pedo de julieta de los descuentos quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show. s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS <> ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("DUR")) @@ -2354,7 +2449,6 @@ Sub Impresion Printer1.WriteString("Entre calle1: " & l_entre1.Text & CRLF) Printer1.WriteString("Entre Calle2: " & l_entre2.Text & CRLF) - Printer1.WriteString("-----------PREVENTA-----------" & CRLF) ' aqui es donde esta el pedo de julieta de los descuentos quitar el precio2 pero meter un if para saber si es ruta especial o es normal o que show. s=skmt.ExecQuery2("select PE_PRONOMBRE, PE_CANT, length(pe_cant) as L_CANT, PE_COSTOU, length(PE_COSTOU) as L_COSTOU,PE_CANT * PE_COSTOU AS PE_COSTO_TOT, length(PE_CANT * PE_COSTOU) as L_COSTO_TOT,PE_PROID, PE_CEDIS FROM PEDIDO WHERE PE_CEDIS <> ? AND LENGTH(PE_CEDIS) < 4 AND PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PROID", Array As String("DUR")) @@ -2671,7 +2765,7 @@ Sub B_GPS_Click Dim result As Int result = Msgbox2("Esta seguro de cambiar las coordenadas de este cliente", "Aviso GPS", "SI", "", "NO", LoadBitmap(File.DirAssets, "alerta.jpg")) 'Ignore If result = DialogResponse.Positive Then - B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE kmt_info2 SET CAT_CL_LAT = ?, CAT_CL_LONG = ? where CAT_CL_CODIGO In (Select cuenta from cuentaa)", Array As Object(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)) + B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE kmt_info2 SET CAT_CL_LAT = ?, CAT_CL_LONG = ? where CAT_CL_CODIGO In (Select cuenta from cuentaa)", Array As Object(B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps)) B4XPage_Appear End If End Sub @@ -2680,7 +2774,6 @@ Private Sub p_cliente_Click 'Nada aqui, solo esta para que los clics no se pasen hacia atras. End Sub - Private Sub Panel5_Click End Sub @@ -2739,7 +2832,6 @@ Private Sub RadioButton15_CheckedChange(Checked As Boolean) End Sub ' fin p2_1 m1 - 'PREGUNTA 1 MODULO 1 Private Sub RadioButton1_CheckedChange(Checked As Boolean) @@ -4244,7 +4336,7 @@ Sub Cuestionario enc.Position = i Log($"POSICION = ${enc.Position}"$) - If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 5 Then 'esto es para la foto + If enc.GetString("CAT_EP_IDTIPOPREGUNTA") = 5 Then 'esto es para la foto If logger Then Log("Pregunta tipo 5") id_encuesta = enc.GetString("CAT_EP_ID") idencuestaaguardar = enc.GetString("CAT_EP_ID") @@ -4665,3 +4757,39 @@ Private Sub StopCamera2 camEx.Release End If 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 = "" + If b_Inicio_Fin_venta.Text = "TERMINAR VENTA" Then + Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "Termina Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, motivoNoVenta, motivoNoVisita) + Starter.enVenta = False +' LogColor($">>>>>> TERMINA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red) + B4XPages.ShowPageAndRemovePreviousPages("Principal") + Starter.VarX = 0 + guardadoventa + Else if b_Inicio_Fin_venta.Text = "INICIAR VENTA" Then + contadorIniciarVenta = 0 + IniVenNO = False + contadorIniciarVenta = contadorIniciarVenta + 1 + If contadorIniciarVenta = 1 And IniVenNO = False Then + IniVenNO = True + Starter.VarX = 1 + Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, precision, motivoNoVenta, "") + Starter.enVenta = True +' LogColor($">>>>>> INICIA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red) + Else If contadorIniciarVenta > 1 Then + b_Inicio_Fin_venta.Visible = False + End If + End If + + b_Inicio_Fin_venta.Visible = False + +End Sub diff --git a/B4A/C_Clientes.bas b/B4A/C_Clientes.bas index 52d534e..fd4d6b0 100644 --- a/B4A/C_Clientes.bas +++ b/B4A/C_Clientes.bas @@ -88,6 +88,7 @@ Sub B4XPage_Appear End Sub Sub ListView1_ItemClick (Position As Int, Value As Object) + If colonia = 0 Then colonia = Value End If @@ -114,6 +115,7 @@ Sub ListView1_ItemClick (Position As Int, Value As Object) End If entro = "4" Else If entro = "4" Then + Starter.VarX = 0 B4XPages.MainPage.skmt.ExecNonQuery("delete from CUENTAA") B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(Value)) DateTime.TimeFormat = "HHmmss" diff --git a/B4A/C_NoVenta.bas b/B4A/C_NoVenta.bas index 91c3309..2fffbb8 100644 --- a/B4A/C_NoVenta.bas +++ b/B4A/C_NoVenta.bas @@ -71,6 +71,7 @@ End Sub Sub CANCELA_Click B4XPages.ShowPage("Cliente") End Sub + Sub GUARDA_Click If r_1.Checked Then motivo = "CERRADO" @@ -98,6 +99,11 @@ Sub GUARDA_Click Next End If + If B4XPages.MainPage.cliente.IsInitialized Then + B4XPages.MainPage.cliente.motivoNoVenta = motivo + Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRuta, "No Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, B4XPages.MainPage.cliente.precision, motivo, e_comm.text) + Starter.enVenta = False + End If B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)") B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido where pe_cliente in (Select CUENTA from cuentaa)") @@ -123,5 +129,6 @@ Sub GUARDA_Click 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.traeRuta, "MOTIVO NO VENTA ACTIVO", Subs.traeCliente, Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, 2, "", r_1.Checked) B4XPages.ShowPage("Principal") End Sub \ No newline at end of file diff --git a/B4A/C_Principal.bas b/B4A/C_Principal.bas index b423b13..d9ea59b 100644 --- a/B4A/C_Principal.bas +++ b/B4A/C_Principal.bas @@ -559,6 +559,31 @@ Sub Subir_Click End If c.Close + 'BITACORA (PROYECTO GPS) + Private h As ResultSet = B4XPages.MainPage.skmt.ExecQuery($"select * from bitacoraGPS"$) + Do While h.nextrow + cmd.Initialize + Private eventob As String = h.GetString("eventob") + cmd.Name = "mandaBitacora3_GUNA" + Log("BITACORA3") + Private clienteb As String = h.GetString("clienteb") + Private finb As String = h.GetString("finb") + Private nombreCliente As String =Subs. traeNombreCliente(h.GetString("clienteb")) + If eventob = "Llega a almacen" Then + nombreCliente = "BOLETA" + clienteb = "" + finb = h.GetString("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" +' Log($"'${almacenb}', '${usuariob}', '${rutab}', '${eventob}', '${clienteb}', '${nombreCliente}','${ iniciob}', '${finb}','${ latitudb}','${ longitudb}', '${precision}', '${motivonoventa}', '${motivonovisita}', '${fechab}'"$) +' TMP_ALMACEN, TMP_USUARIO, TMP_RUTA, TMP_EVENTO, TMP_ID_CLIENTE, TMP_NOMBRE_CLIENTE, TMP_INICIO, TMP_FINAL, TMP_LATITUD, TMP_LONGITUD, TMP_PRESICION, TMP_MOTIVO_NO_VENTA, TMP_MOTIVO_NO_VISITA, TMP_FECHA_SINC, TMP_FECHA_MOVIL + cmd.Parameters = Array As Object(h.GetString("almacenb"), h.GetString("usuariob"), h.GetString("rutab"), eventob, clienteb, nombreCliente, h.GetString("iniciob"), finb, h.GetString("latitudb"), h.GetString("longitudb"), h.GetString("precision"), h.GetString("motivonoventa"), h.GetString("motivonovisita"), h.GetString("fechab")) + B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "mandaBitacora") + Loop + Log("MANDAMOS BITACORA") + c=B4XPages.MainPage.skmt.ExecQuery("SELECT HE_CLIE, HE_RES, HE_FECHA, HE_TIPO, HE_LAT, HE_LON, HE_FOTO FROM HIST_ENCUESTA") If c.RowCount>0 Then For i=0 To c.RowCount -1 @@ -805,7 +830,6 @@ Sub cargar_Click ' NUEVOS CLIENTE B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info2") - B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info") B4XPages.MainPage.skmt.ExecNonQuery("delete from PROMO_ESP") B4XPages.MainPage.skmt.ExecNonQuery("delete from cod_result") B4XPages.MainPage.skmt.ExecNonQuery("delete from hist_gest") @@ -1061,7 +1085,7 @@ Sub JobDone(Job As HttpJob) If n = "OKActivo" Then Dim cmd As DBCommand cmd.Initialize - cmd.Name = "select_ruta_GV2_70_6" + cmd.Name = "select_ruta_GV2_70_5" cmd.Parameters = Array As Object(ALMACEN,e_ruta.text) B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "ruta") 'Log("Usuario guardado en BD es 'Valido'") @@ -1102,7 +1126,6 @@ Sub JobDone(Job As HttpJob) B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info2(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, gestion) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0)", Array As Object (CAT_CL_CODIGO,e_ruta.Text,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)) B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_STAY_STORE(HSS_CODIGO, HSS_IN , HSS_OUT , HSS_TOT) VALUES (?,0,0,0)", Array As Object (CAT_CL_CODIGO)) Next - B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info") Listo1 = 1 S_CC.Text = "LISTO" ' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Catalogo Clientes Actualizados." , True) @@ -1142,7 +1165,7 @@ Sub JobDone(Job As HttpJob) B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO kmt_info2(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, gestion) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0)", Array As Object (CAT_CL_CODIGO,E_RUTA2.Text,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)) B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_STAY_STORE(HSS_CODIGO, HSS_IN , HSS_OUT , HSS_TOT) VALUES (?,0,0,0)", Array As Object (CAT_CL_CODIGO)) Next - B4XPages.MainPage.skmt.ExecNonQuery("delete from kmt_info") + End If End If @@ -1337,12 +1360,12 @@ Sub JobDone(Job As HttpJob) If Job.JobName = "DBRequest" Then Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job) - If RESULT.Tag = "cat_verificacion" Then 'query tag + If RESULT.Tag = "CAT_VERIFICACION" Then 'query tag For Each records() As Object In RESULT.Rows Dim CAT_VE_IDPROD As String = records(RESULT.Columns.Get("CAT_VE_IDPROD")) Dim CAT_VE_NOMBRE As String = records(RESULT.Columns.Get("CAT_VE_NOMBRE")) Dim CAT_VE_ORDEN As String = records(RESULT.Columns.Get("CAT_VE_ORDEN")) - B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VERIFICACION(CAT_VE_IDPROD, CAT_VE_NOMBRE,CAT_VE_ORDEN) VALUES (?,?,?)", Array As Object (CAT_VE_IDPROD, CAT_VE_NOMBRE,CAT_VE_ORDEN)) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VERIFICACION(CAT_VE_IDPROD, CAT_VE_NOMBRE, CAT_VE_ORDEN) VALUES (?,?,?)", Array As Object (CAT_VE_IDPROD, CAT_VE_NOMBRE, CAT_VE_ORDEN)) Next End If End If @@ -1852,6 +1875,7 @@ Sub connecta_Click ' If imei = "" Then ' cmd.Initialize + ' cmd.Name = "select_ruta_GV2_70_2" ' cmd.Parameters = Array As Object(ALMACEN,e_ruta.text,imei) ' B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "ruta") @@ -1913,7 +1937,6 @@ Sub e_ruta_EnterPressed 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 kmt_info") B4XPages.MainPage.skmt.ExecNonQuery("delete from cat_gunaprod") B4XPages.MainPage.skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ") B4XPages.MainPage.skmt.ExecNonQuery("delete from HIST_VENTAS") @@ -1934,7 +1957,9 @@ Sub e_ruta_EnterPressed 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.ExecNonQuery("DELETE FROM BITACORAGPS") B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE GPS SET HABILITADO = (?)",Array As Object(0)) + 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","","") B4XPage_Appear End If End If @@ -2052,6 +2077,7 @@ Sub B_OK_PAS_Click img2.Visible=False Subs.panelVisible(p_principal, 0, 0) B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("CARGA_DIA",1)) + 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","","") Else if CARGA = "CARGAR" And (S_CP.Text <> "LISTO" Or S_CC.Text <> "LISTO" Or S_CH.Text <> "LISTO") Then RES = Msgbox2("Seguro que desa abortar el proceso","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore If RES = DialogResponse.POSITIVE Then diff --git a/B4A/Files/cliente.bal b/B4A/Files/cliente.bal index 37af2eb6f718c031e872a477ccc100b4dd861992..efc8a215e45cd55fddd44f5a8deee1713279de94 100644 GIT binary patch delta 5007 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 diff --git a/B4A/Guna Vistas V3.1.b4a b/B4A/Guna Vistas V3.1.b4a index ea4241c..b2337fc 100644 --- a/B4A/Guna Vistas V3.1.b4a +++ b/B4A/Guna Vistas V3.1.b4a @@ -191,7 +191,7 @@ Version=12.8 #Region Project Attributes #ApplicationLabel: Guna V3.1 #VersionCode: 1 - #VersionName: 4.07.31.EP_d + #VersionName: 4.08.18.EP_d '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 b460060..b6d5ff3 100644 --- a/B4A/Guna Vistas V3.1.b4a.meta +++ b/B4A/Guna Vistas V3.1.b4a.meta @@ -76,6 +76,6 @@ ModuleClosedNodes6=8,9,10 ModuleClosedNodes7= ModuleClosedNodes8= ModuleClosedNodes9= -NavigationStack=B4XMainPage,Entrar_Click,416,0,C_Cliente,b_geopass_Click,1062,0,C_Cliente,JobDone,1108,0,C_Principal,Subir_Click,752,0,B4XMainPage,JobDone,525,6,B4XMainPage,B4XPage_Created,176,1,C_Principal,cargar_Click,801,1,C_Principal,e_ruta_EnterPressed,1908,1,Diseñador Visual,login.bal,-100,6,C_Principal,JobDone,1057,4 +NavigationStack=C_Principal,cargar_Click,784,0,C_Principal,B4XPage_CloseRequest,1838,0,C_Principal,connecta_Click,1846,0,C_Principal,BUSCA_Click,1914,0,B4XMainPage,b_aceptar_Click,844,0,C_Productos,b_QR_Click,417,0,C_Productos,b_prodMenos_Click,471,0,C_Cliente,B4XPage_Appear,563,0,C_Cliente,b_Inicio_Fin_venta_Click,4755,0,C_Principal,Class_Globals,15,0,C_Productos,lv_catalogos_ItemClick,176,0 SelectedBuild=0 VisibleModules=23,2,24,13,14,4,6,9,12,5 diff --git a/B4A/Starter.bas b/B4A/Starter.bas index 0bc2d98..5baa653 100644 --- a/B4A/Starter.bas +++ b/B4A/Starter.bas @@ -33,6 +33,8 @@ Sub Process_Globals Dim MAC_IMPRESORA As String Public BluetoothState As Boolean Dim ubicacionActual As Location + Dim enVenta As Boolean = False + Dim VarX As Int = 0 End Sub Sub Service_Create diff --git a/B4A/Subs.bas b/B4A/Subs.bas index 26e32cf..438a210 100644 --- a/B4A/Subs.bas +++ b/B4A/Subs.bas @@ -202,6 +202,16 @@ Sub revisaBD 'ignore errorLog.ExecNonQuery("CREATE TABLE IF NOT EXISTS errores(fecha INTEGER, error TEXT)") End Sub +Sub fechanormal(fecha As String) As String 'ignore +' Log(fecha) + Dim OrigFormat As String = DateTime.DateFormat 'save orig date format + DateTime.DateFormat = "YYYY/MM/dd HH:mm:ss" + Dim nuevaFecha As String=DateTime.Date(fecha) + DateTime.DateFormat = OrigFormat 'return to orig date format +' Log(nuevaFecha) + Return nuevaFecha +End Sub + 'Obtiene el ssid al que esta conectado el telefono Sub getSSID 'ignore ' 'Requiere la libreria "MLWifi400" @@ -423,10 +433,16 @@ End Sub 'Borramos renglones extra de la tabla de bitacora Sub borraArribaDe600RenglonesBitacora 'ignore revisaBD - LogColor("Borramos BD de log", Colors.Magenta) - kmt.ExecNonQuery("DELETE FROM bitacora WHERE fecha NOT in (SELECT fecha FROM bitacora ORDER BY fecha desc LIMIT 599 )") - kmt.ExecNonQuery("vacuum;") - Log("Borramos mas de 600 de bitacora") + If Starter.logger Then LogColor("Recortamos la tabla de la Bitacora, limite de 600", Colors.Magenta) + Private c As Cursor + c = B4XPages.MainPage.skmt.ExecQuery("select fecha from bitacora") + c.Position = 0 + If c.RowCount > 650 Then + B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM bitacora WHERE fecha NOT in (SELECT fecha FROM bitacora ORDER BY fecha desc LIMIT 599 )") + B4XPages.MainPage.skmt.ExecNonQuery("vacuum;") +' if starter.logger then Log("Borramos mas de 600 de bitacora") + End If + c.Close End Sub 'Inserta 50 renglones de prueba a la tabla "errores" @@ -1207,3 +1223,129 @@ Sub vendidoPromoEsp As Boolean Log(w) Return w 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 ) + Log(motivonovisita) + Log("bitacora") + Private cmd As DBCommand + cmd.Initialize + cmd.Name = "mandaBitacora3" + 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 <> "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) VALUES ('${fechab}' ,'${usuariob}' , '${almacenb}' , '${rutab}' , '${eventob}' , '${clienteb}' , '${iniciob}' , '${finb}' , '${latitudb}' , '${longitudb}' , '${precision}' , '${motivonoventa}' , '${motivonovisita}')"$) + Log($"'${almacenb}', '${usuariob}', '${rutab}', '${eventob}', '${clienteb}', '${nombreCliente}','${ iniciob}', '${finb}','${ latitudb}','${ longitudb}', '${precision}', '${motivonoventa}', '${motivonovisita}', '${fechab}'"$) +' TMP_ALMACEN, TMP_USUARIO, TMP_RUTA, TMP_EVENTO, TMP_ID_CLIENTE, TMP_NOMBRE_CLIENTE, TMP_INICIO, TMP_FINAL, TMP_LATITUD, TMP_LONGITUD, TMP_PRESICION, TMP_MOTIVO_NO_VENTA, TMP_MOTIVO_NO_VISITA, TMP_FECHA_SINC, TMP_FECHA_MOVIL +' cmd.Parameters = Array As Object(almacenb, usuariob, rutab, eventob, clienteb, nombreCliente, iniciob, finb, latitudb, longitudb, precision, motivonoventa, motivonovisita, fechab) +' Starter.reqManager.ExecuteCommand(cmd , "mandaBitacora") + 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"$) +' TMP_RUTA = (?) And tmp_almacen = (?) And tmp_usuario = (?) And tmp_id_cliente = (?) And tmp_evento = (?) And tmp_fecha_movil = to_date((?),'YYYY/MM/DD HH24:MI:ss') + 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.Name = "actualizaSalidaBitacora" +' TMP_FINAL = to_date((?),'YYYY/MM/DD HH24:MI:ss') where TMP_RUTA = (?) and tmp_almacen = (?) and tmp_usuario = (?) and tmp_id_cliente = (?) and tmp_evento = (?) and tmp_fecha_movil = to_date((?),'YYYY/MM/DD HH24:MI:ss'); + cmd.Parameters = Array As Object(finb, rutab, almacenb, usuariob, clienteb, "Inicia Venta", e.GetString("fechab")) +' Log($"${finb}, ${rutab}, ${almacenb}, ${usuariob}, ${clienteb}, 'Inicia Venta', ${e.GetString("fechab")}, "$) +' Starter.reqManager.ExecuteCommand(cmd , "mandaBitacora") + 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.Name = "actualizaNoVentaBitacora" +' TMP_FINAL = to_date((?),'YYYY/MM/DD HH24:MI:ss'), TMP_MOTIVO_NO_VENTA = (?), TMP_MOTIVO_NO_VISITA = (?) where TMP_RUTA = (?) and tmp_almacen = (?) and tmp_usuario = (?) and tmp_id_cliente = (?) and tmp_evento = (?) and tmp_fecha_movil = to_date((?),'YYYY/MM/DD HH24:MI:ss') + cmd.Parameters = Array As Object(finb, motivonoventa, motivonovisita, rutab, almacenb, usuariob, clienteb, "Inicia Venta", e.GetString("fechab")) +' Log($"${finb}, ${rutab}, ${almacenb}, ${usuariob}, ${clienteb}, 'Inicia Venta', ${e.GetString("fechab")}, "$) +' Starter.reqManager.ExecuteCommand(cmd , "mandaBitacora") + 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")) + Starter.reqManager.ExecuteCommand(cmd , "mandaBitacora") + End If + End If + Log("Mandamos bitacora") +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 bitacoraX(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 ) + Log("bitacora") + B4XPages.MainPage.skmt.ExecNonQuery($"INSERT INTO BITACORAGPS (fechab, usuariob , almacenb , rutab , eventob , clienteb , iniciob , finb , latitudb, longitudb , precision , motivonoventa , motivonovisita) VALUES ('${fechab}' ,'${usuariob}' , '${almacenb}' , '${rutab}' , '${eventob}' , '${clienteb}' , '${iniciob}' , '${finb}' , '${latitudb}' , '${longitudb}' , '${precision}' , '${motivonoventa}' , '${motivonovisita}')"$) + Private cmd As DBCommand + cmd.Initialize + If eventob <> "Termina Venta" And eventob <> "No Venta" Then + cmd.Name = "mandaBitacora3" + 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" + Log($"'${almacenb}', '${usuariob}', '${rutab}', '${eventob}', '${clienteb}', '${nombreCliente}','${ iniciob}', '${finb}','${ latitudb}','${ longitudb}', '${precision}', '${motivonoventa}', '${motivonovisita}', '${fechab}'"$) +' TMP_ALMACEN, TMP_USUARIO, TMP_RUTA, TMP_EVENTO, TMP_ID_CLIENTE, TMP_NOMBRE_CLIENTE, TMP_INICIO, TMP_FINAL, TMP_LATITUD, TMP_LONGITUD, TMP_PRESICION, TMP_MOTIVO_NO_VENTA, TMP_MOTIVO_NO_VISITA, TMP_FECHA_SINC, TMP_FECHA_MOVIL + cmd.Parameters = Array As Object(almacenb, usuariob, rutab, eventob, clienteb, nombreCliente, iniciob, finb, latitudb, longitudb, precision, motivonoventa, motivonovisita, fechab) + Starter.reqManager.ExecuteCommand(cmd , "mandaBitacora") + 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 + cmd.Name = "actualizaSalidaBitacora" +' TMP_FINAL = to_date((?),'YYYY/MM/DD HH24:MI:ss') where TMP_RUTA = (?) and tmp_almacen = (?) and tmp_usuario = (?) and tmp_id_cliente = (?) and tmp_evento = (?) and tmp_fecha_movil = to_date((?),'YYYY/MM/DD HH24:MI:ss'); + cmd.Parameters = Array As Object(finb, rutab, almacenb, usuariob, clienteb, "Inicia Venta", e.GetString("fechab")) + Log($"${finb}, ${rutab}, ${almacenb}, ${usuariob}, ${clienteb}, 'Inicia Venta', ${e.GetString("fechab")}, "$) + Starter.reqManager.ExecuteCommand(cmd , "mandaBitacora") + else if eventob = "No Venta" Then + cmd.Name = "actualizaNoVentaBitacora" +' TMP_FINAL = to_date((?),'YYYY/MM/DD HH24:MI:ss') where TMP_RUTA = (?) and tmp_almacen = (?) and tmp_usuario = (?) and tmp_id_cliente = (?) and tmp_evento = (?) and tmp_fecha_movil = to_date((?),'YYYY/MM/DD HH24:MI:ss'); + cmd.Parameters = Array As Object(finb, motivonoventa, motivonovisita, rutab, almacenb, usuariob, clienteb, "Inicia Venta", e.GetString("fechab")) + Log($"${finb}, ${rutab}, ${almacenb}, ${usuariob}, ${clienteb}, 'Inicia Venta', ${e.GetString("fechab")}, "$) + Starter.reqManager.ExecuteCommand(cmd , "mandaBitacora") + End If + 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 + +'Guarda el nombre de la pagina en base de datos la muestra. +Sub iniciaActividad(ia As String) + If ia <> "" And ia <> Null Then +' If B4XPages.MainPage.logger Then LogColor($"Guardamos en BD '${ia}'"$, Colors.Yellow) + B4XPages.MainPage.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("ULTIMOMODULO")) + B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("ULTIMOMODULO", ia)) + B4XPages.ShowPage(ia) +' If B4XPages.MainPage.logger Then LogColor("Iniciamos --> " & ia, Colors.Blue) + End If +End Sub