5 Commits

Author SHA1 Message Date
a7c890a612 - VERSION 5.10.03
- Se cambio com ose enviaban las imagenes, antes blob, ahora solo nombre.
- Se agregaron 2 columnas a FOTOINICIAL para poner el nombre de las fotos.
2025-10-09 17:22:41 -06:00
b4010f2d7b - VERSION 5.10.02
- Se agregó el dia 2 para la frecuencia, si un hoy es p. ej. viernes, y un cliente tiene dia de visita 1 lunes y dia de visita 2 viernes, tambien va a aparecer en los clientes.
2025-10-03 19:19:38 -06:00
2c252b2373 - VERSION 5.09.04
- Se agregaron varios motivos de NoVenta.
2025-09-17 21:35:51 -06:00
003e50a6b1 - VERSION 5.09.03
- Se corrigieron textos.
- Se corrigio que a veces mandaba coordenadas en blanco a la bitacora, ahora nos aseguramos de siempre tener las coordenadas disponibles
2025-09-17 13:11:23 -06:00
a73c9d4290 - VERSION 5.09.02
- Se cambio que cuando a una No Venta se le hace venta, en PESOS se sobreescriba y viceversa.
2025-09-11 18:45:04 -06:00
16 changed files with 248 additions and 83 deletions

View File

@@ -1121,7 +1121,7 @@ Version=12.8
#Region Project Attributes
#ApplicationLabel: ADM
#VersionCode: 1
#VersionName: 5.09.01
#VersionName: 5.10.03
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False

View File

@@ -76,7 +76,7 @@ ModuleClosedNodes16=
ModuleClosedNodes17=
ModuleClosedNodes18=
ModuleClosedNodes19=
ModuleClosedNodes2=
ModuleClosedNodes2=33
ModuleClosedNodes20=
ModuleClosedNodes21=
ModuleClosedNodes22=
@@ -92,11 +92,11 @@ ModuleClosedNodes30=2,4,5,6,7,8
ModuleClosedNodes31=
ModuleClosedNodes32=15,16,17,18,19
ModuleClosedNodes4=
ModuleClosedNodes5=
ModuleClosedNodes6=
ModuleClosedNodes5=1,3
ModuleClosedNodes6=3,29,30
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=B4XMainPage,Class_Globals,116,0,MAPA_RUTAS,p_guardarPeso_Click,527,0,MAPA_RUTAS,b_guardarPeso_Click,525,0,MAPA_RUTAS,Activity_KeyPress,505,0,C_Cliente,Class_Globals,0,0,C_Cliente,JobDone,2336,0,C_Clientes,JobDone,947,0,Starter,JobDone,210,2,Tracker,guardaYEnviaUbicacion,309,6,C_Principal,JobDone,2069,0
NavigationStack=MAPA_RUTAS,OnInfoWindowClickListener1_click,367,0,MAPA_RUTAS,Camera1_PictureTaken,723,0,Subs,dameUsuarioDeDB,657,0,Subs,traeAlmacen,668,5,C_Clientes,b_inicioVenta_Click,614,0,Subs,bitacora,1631,0,C_Cliente,Camera1_PictureTaken,2855,0,C_Principal,b_subir_Click,832,6,Starter,mandaForma,249,0,B4XMainPage,B4XPage_Created,179,3
SelectedBuild=0
VisibleModules=30,2,14,5,6,19,31,27,18,11,32
VisibleModules=30,2,14,5,6,19,31,27,32,21

View File

@@ -22,16 +22,11 @@ Version=9.85
'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=github&Args=..\..\
' ###################################################################
' ################## Pendientes ##################
' ###################################################################
'
' Bitacora de ubicacioes (como FLP2)
' MotivoNoVisita (como kelloggs cuando tienen un accidente y ya no van a terimnar la ruta)
' validar que no se meta el peso en blanco (truena la aplicacion)
' si se queda la venta iniciada y se sale de la app, que al iniciar se vaya DIRECTAMENTE A CLIENTE con la venta ya iniciada.
' Cuando guarden el peso, que se vaya directamente a mostrar el boton de terminar venta.
Sub Class_Globals
Dim c2 As Cursor
@@ -195,7 +190,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Starter.skmt.ExecNonQuery("DROP TABLE IF EXISTS HIST_SUPERVISOR")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CLIENTES_NUEVOS(CN_ID TEXT, CN_FECHA TEXT, CN_USER TEXT, CN_LAT TEXT, CN_LON TEXT, CN_NOMBRE TEXT, CN_DIRECCION TEXT, CN_FOTO TEXT, CN_ALMACEN TEXT, CN_RUTA TEXT,CN_GIRO TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTAA (RUTAA TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS FOTOINICIAL (RUTAA TEXT, ALMACEN TEXT, LATITUD TEXT, LONGITUD TEXT, FECHAHORA TEXT, FOTO BLOB, FOTO2 BLOB, USUARIO TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS FOTOINICIAL (RUTAA TEXT, ALMACEN TEXT, LATITUD TEXT, LONGITUD TEXT, FECHAHORA TEXT, FOTO BLOB, FOTO2 BLOB, FOTO_NOM TEXT, FOTO_NOM2 TEXT, USUARIO TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_CUOTAS (HC_META6 TEXT, HC_META5 TEXT, HC_META4 TEXT, HC_META3 TEXT, HC_META2 TEXT, HC_META1 TEXT, HC_RUTA TEXT, HC_CUOTA1 TEXT, HC_CUOTA2 TEXT, HC_CUOTA3 TEXT, HC_CUOTA4 TEXT, HC_CUOTA5 TEXT, HC_CUOTA6 TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_GPS (HGDATE TEXT, HGLAT TEXT, HGLON TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS CAT_GIRO(GIRO TEXT)")
@@ -716,7 +711,7 @@ Sub JobDone(Job As HttpJob)
p_validacion.Visible = False
et_codigo.Text = ""
If recarga = "0" Then
Subs.panelVisible(P_CIEGO,0,0)
Subs.panelVisible(p_ciego,0,0)
Else If recarga = "1" Then
Starter.skmt.ExecNonQuery("delete from CUENTAA")
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object("1"))
@@ -1332,3 +1327,7 @@ End Sub
Private Sub p_add_monto_Click
End Sub
Private Sub ImageView1_LongClick
Starter.mandaForma(1,1,123, "1759862644988_10_cerrado.jpg")
End Sub

View File

@@ -314,7 +314,7 @@ Sub B4XPage_Appear
Subs.centraPanel(p_abono, Root.Width)
Subs.centraPanel(p_credito, Root.Width)
skmt.Initialize(ruta,"kmt.db", True)
c=B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa) UNION ALL select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info2 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
c=B4XPages.MainPage.skmt.ExecQuery("select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa) UNION ALL select CAT_CL_CODIGO,CAT_CL_RUTA,CAT_CL_NOMBRE,CAT_CL_ATIENDE1,CAT_CL_ATIENTE2,CAT_CL_TELEFONO,CAT_CL_EMAIL,CAT_CL_CALLE,CAT_CL_NOEXT,CAT_CL_NOINT,CAT_CL_CALLE1,CAT_CL_CALLE2,CAT_CL_COLONIA,CAT_CL_MUNI,CAT_CL_EDO,CAT_CL_CP,CAT_CL_LONG,CAT_CL_LAT,CAT_CL_MTOCOMPRA,CAT_CL_NUM_SERIEFISICO from kmt_info2 where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
s=B4XPages.MainPage.skmt.ExecQuery("Select ifnull(SUM(PE_COSTO_TOT),0) As TOTAL_CLIE, SUM(PE_CANT) As CANT_CLIE, PC_FACTURA FROM PEDIDO_CLIENTE INNER JOIN PEDIDO ON PEDIDO_CLIENTE.PC_CLIENTE = PEDIDO.PE_CLIENTE WHERE (PE_CLIENTE IN (Select cuenta from cuentaa))")
b = B4XPages.MainPage.skmt.ExecQuery("select COUNT(*) AS CLIENTE FROM ABONOSP WHERE CLIENTE IN (Select CUENTA from cuentaa)")
b.Position = 0
@@ -2819,7 +2819,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
img.WriteToStream(out, 100, "PNG")
out.Close
Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(LA_RUTA, ALMACEN, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & sTime, File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD))
Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO_NOM, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(LA_RUTA, ALMACEN, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & sTime, fototomada, Subs.traeUsuarioDeBD))
b_foto_inci.Text = "Foto usuario"
ChangeCamera_Click
Else If b_foto_inci.Text = "Foto usuario" Then
@@ -2861,7 +2861,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & dir & Dir2, filename, False)
img.WriteToStream(out, 100, "PNG")
out.Close
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD,LA_RUTA, ALMACEN ))
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO_NOM2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (fototomada, Subs.traeUsuarioDeBD,LA_RUTA, ALMACEN ))
b_foto_inci.Text = "Foto tienda"
ChangeCamera_Click
p_camara.Visible = False

View File

@@ -53,6 +53,8 @@ Sub Class_Globals
Private b_guardaNoVenta As Button
Private p_botonesNoVenta As Panel
Private et_comentarioNoVenta As EditText
Private r_opcion7 As RadioButton
Private r_opcion6 As RadioButton
Private r_opcion5 As RadioButton
Private r_opcion4 As RadioButton
Private r_opcion3 As RadioButton
@@ -74,6 +76,8 @@ Sub Class_Globals
Private p_botonesCam As Panel
Dim reqManager As DBRequestManager
Private p_clientesLista As Panel
Private p_transparenciaEsperaGPS As Panel
Private p_esperaGPS As Panel
End Sub
'You can add more parameters here.
@@ -100,7 +104,9 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Subs.centraPanel(p_inicioFinVenta, Root.Width)
p_guardarPeso.Top = p_inicioFinVenta.top : p_guardarPeso.left = p_inicioFinVenta.left
Subs.centraPanel(p_noVenta, Root.Width)
p_transparenciaEsperaGPS.Width = Root.Width : p_transparenciaEsperaGPS.Height = Root.Height
p_transparenciaEsperaGPS.Top = 0 : p_transparenciaEsperaGPS.Left = 0
Subs.centraPanel(p_esperaGPS, p_transparenciaEsperaGPS.Width)
' se crea o no el archivo de la base de ddatos de kmt
'NOTAS SI SE MODIFICA LA ESTRUCTURA SE QUITA EL IF Y SE VA DIRECTO A LA SENTENCIA FILE.COPY PARA QUE
'TOME LA NUEVA ESTRUCTURA ES MUY IMPORTANTE TENER EL IF DE LO CONTRARIO SOLO LO ESCRIBE UNA VEZ Y LO BORRA
@@ -114,6 +120,18 @@ Private Sub B4XPage_Created (Root1 As B4XView)
End Sub
Sub B4XPage_Appear
' p_transparenciaEsperaGPS.Visible = True
Log("################ Iniciando revision de ubicación #############")
Log($"${B4XPages.MainPage.lat_gps},${B4XPages.MainPage.lon_gps}"$)
If B4XPages.MainPage.lat_gps.Length < 4 Or B4XPages.MainPage.lon_gps.Length < 4 Then
ProgressDialogShow2("Buscando ubicación ...", False)
CallSubDelayed(Tracker, "Track")
CallSubDelayed(Tracker, "StartFLPSmall")
wait for GPS_LocationChanged (location1 As Location)
ProgressDialogHide
End If
Log("############### Terminando revision de ubicación #############")
l_baseodia.Text = "Clientes del día de visita"
p_clientes.Width = Root.Width : p_clientes.Height = Root.Height
p_clientes.Top = 0 : p_clientes.Left = 0
@@ -128,7 +146,7 @@ Sub B4XPage_Appear
c = B4XPages.MainPage.skmt.ExecQuery($"select CAT_CL_NOMBRE, CAT_CL_CALLE, CAT_CL_CODIGO from kmt_info where gestion = 0 AND CAT_CL_CODIGO <> ${"0"} AND CAT_CL_CODIGO <> ${"1"} ORDER BY CAST(CAT_CL_NUM_SERIEFISICO AS INTEGER) ASC"$)
ListView1.Clear
lfila.Text = "NOMBRE"
CustomListView1.Clear
For i = 0 To c.RowCount - 1
c.Position = i
@@ -188,12 +206,17 @@ Sub B4XPage_Appear
End If
End Sub
Sub GPS_LocationChanged (Location1 As Location)
' If p_transparenciaEsperaGPS.IsInitialized Then p_transparenciaEsperaGPS.Visible = False
ProgressDialogHide
End Sub
Sub CreateListItem(nombre As String, direccion0 As String, cliente As String) As Panel
Dim p As B4XView = xui.CreatePanel("")
p.SetLayoutAnimated(0, 0, 0, 1, 220)
' p.LoadLayout("datoscliente")
p.LoadLayout("datosclienteBotones")
p.Height = 90dip
p.Height = 95dip
b_inicioVenta.Tag = cliente
' p.Width = clv_orden.GetBase.Width
nombrecliente.Text = nombre
@@ -285,8 +308,7 @@ Sub BUSCA_TextChanged (Old As String, New As String)
Else
cxc.Visible = True
End If
d = B4XPages.MainPage.skmt.ExecQuery($"select IFNULL(CAT_CL_BCREDITO,0) AS CAT_CL_BCREDITO FROM kmt_info WHERE CAT_CL_CODIGO = '${c2.GetString("CAT_CL_CODIGO")}'"$)
' LogColor(d.RowCount,Colors.Blue)
If d.RowCount > 0 Then
@@ -302,8 +324,7 @@ Sub BUSCA_TextChanged (Old As String, New As String)
CREDITO.Visible = False
End If
Next
If c2.RowCount>0 Then
For i=0 To c2.RowCount -1
c2.Position=i
@@ -351,8 +372,7 @@ Sub BUSCA_TextChanged (Old As String, New As String)
CREDITO.Visible = False
End If
Next
If c2.RowCount>0 Then
For i=0 To c2.RowCount -1
c2.Position=i
@@ -495,7 +515,7 @@ Private Sub b_buscar_Click
End If
d = B4XPages.MainPage.skmt.ExecQuery($"select IFNULL(CAT_CL_BCREDITO,0) AS CAT_CL_BCREDITO FROM kmt_info WHERE CAT_CL_CODIGO = '${c.GetString("CAT_CL_CODIGO")}'"$)
' LogColor(d.RowCount,Colors.Blue)
' LogColor(d.RowCount,Colors.Blue)
If d.RowCount > 0 Then
d.Position = 0
LogColor(d.GetString("CAT_CL_BCREDITO"),Colors.Blue)
@@ -598,7 +618,7 @@ Private Sub b_inicioVenta_Click
Else
p_transparenciaIniciaInicioFinVenta.Visible = True
b_finVenta.Enabled = True
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "Inicia Venta", cliente, Subs.fechanormal(DateTime.Now), "", Starter.lat_gps, Starter.lon_gps, "2", "", "", "")
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "Inicia Venta", cliente, Subs.fechanormal(DateTime.Now), "", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, "2", "", "", "")
Starter.enVenta = True
Subs.enVenta(1, "CLIENTES")
LogColor($">>>>>> INICIA VENTA: ${Starter.enVenta} - ${cliente}"$, Colors.red)
@@ -623,7 +643,7 @@ Private Sub ventaIniciada
' Log($"insert into cuentaa (cuenta) values ('${cliente}')"$)
p_transparenciaIniciaInicioFinVenta.Visible = True
b_finVenta.Enabled = True
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", Starter.lat_gps, Starter.lon_gps, "2", "", "", "")
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, "2", "", "", "")
Starter.enVenta = True
Subs.enVenta(1, "CLIENTES")
LogColor($">>>>>> INICIA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red)
@@ -652,7 +672,7 @@ Private Sub b_guardarPeso_Click
et_guardarPeso.Text = peso
Subs.guardaPeso("VENTA", Subs.traeAlmacen, Subs.traeRuta2(Subs.traeCliente), Subs.traeUsuarioDeBD, Subs.traeCliente, peso, "", "", "")
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta2(Subs.traeCliente), "Termina Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, 2, "", "", $"Venta:${et_guardarPeso.text}"$)
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta2(Subs.traeCliente), "Termina Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, 2, "", "", $"Venta:${et_guardarPeso.text}"$)
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
Starter.enVenta = False
Subs.enVenta(0, "")
@@ -662,6 +682,7 @@ Private Sub b_guardarPeso_Click
b_finVenta.Enabled = False
B4XPages.MainPage.clientes.B4XPage_Appear
Subs.mandaPendientes
B4XPage_Appear
End If
End Sub
@@ -691,13 +712,17 @@ Private Sub b_guardaNoVenta_Click
If r_opcion1.Checked Then
motivo = "CERRADO"
Else If r_opcion2.Checked Then
motivo = "NO COMPRA"
motivo = "NO TIENE DINERO"
Else If r_opcion3.Checked Then
motivo = "CON PRODUCTO"
motivo = "NO ABRE MAÑANA"
Else If r_opcion4.Checked Then
motivo = "NO ESTA EL ENCARGADO"
motivo = "FALTA DE PRODUCTO"
Else If r_opcion5.Checked Then
motivo = "PROMOCION CON OTRO DISTRIBUIDOR"
Else If r_opcion6.Checked Then
motivo = "RECIBEN MUCHOS PROVEEDORES"
Else
motivo = "CANCELACION"
motivo = "NO LE QUEDA EL DIA"
End If
Log("FOTOCERRADO: " & fotoCerrado)
@@ -717,7 +742,7 @@ Private Sub b_guardaNoVenta_Click
DateTime.DateFormat="yy-MM-dd HH:mm:ss"
Dim fecha As String=DateTime.Date(DateTime.Now)
Subs.guardaPeso("NO VENTA", Subs.traeAlmacen, Subs.traeRuta2(Subs.traeCliente), Subs.traeUsuarioDeBD, Subs.traeCliente, "0", motivo, et_comentarioNoVenta.text, fotoCerrado)
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "No Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, 2, motivo, et_comentarioNoVenta.text, $"Venta:${et_guardarPeso.text}"$)
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "No Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, 2, motivo, et_comentarioNoVenta.text, $"Venta:${et_guardarPeso.text}"$)
Starter.enVenta = False
Subs.enVenta(0, "")
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 3 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
@@ -726,7 +751,7 @@ Private Sub b_guardaNoVenta_Click
p_transparenciaIniciaInicioFinVenta.Visible = False
End If
Subs.mandaPendientes
B4XPage_Appear
' DateTime.DateFormat="yy-MM-dd HH:mm:ss"
' Dim fecha As String=DateTime.Date(DateTime.Now)
'
@@ -817,7 +842,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
img.WriteToStream(out, 100, "PNG")
out.Close
If nombreFoto = "inicio" Then
Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(Subs.traeRuta, Subs.traeAlmacen, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & sTime, File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD))
Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO_NOM, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(Subs.traeRuta, Subs.traeAlmacen, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & sTime, fototomada, Subs.traeUsuarioDeBD))
b_foto_inci.Text = "Foto usuario"
ChangeCamera_Click
Else
@@ -825,9 +850,14 @@ Sub Camera1_PictureTaken (Data() As Byte)
p_camara.Visible = False
StopCamera
End If
LogColor("Mandamos foto: " & fototomada, Colors.red)
Log($"${Subs.traeAlmacen}, ${Subs.traeRuta}, ${Subs.traeCliente}, ${fototomada}"$)
Starter.mandaForma(Subs.traeAlmacen, Subs.traeRuta, Subs.traeCliente, fototomada)
Else If b_foto_inci.Text = "Foto usuario" Then
DateTime.DateFormat="ddMMyyyyHHmmss"
fototomada = fototomada = DateTime.Now & $"_${nombreFoto}.jpg"$
nombreFoto = "usuario"
fototomada = DateTime.Now & $"_${nombreFoto}.jpg"$
Dim filename As String = fototomada
Dim dir As String = File.DirInternal
camEx.SavePictureToFile(Data, dir, filename)
@@ -864,7 +894,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & dir & Dir2, filename, False)
img.WriteToStream(out, 100, "PNG")
out.Close
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD,Subs.traeRuta, Subs.traeAlmacen ))
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO_NOM2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (fototomada, Subs.traeUsuarioDeBD,Subs.traeRuta, Subs.traeAlmacen ))
b_foto_inci.Text = "Foto tienda"
ChangeCamera_Click
p_camara.Visible = False
@@ -876,6 +906,11 @@ Sub Camera1_PictureTaken (Data() As Byte)
Else
B4XPages.MainPage.tipo_venta = "PREVENTA"
End If
LogColor("Mandamos foto: " & fototomada, Colors.red)
Log($"${Subs.traeAlmacen}, ${Subs.traeRuta}, ${Subs.traeCliente}, ${fototomada}"$)
Starter.mandaForma(Subs.traeAlmacen, Subs.traeRuta, Subs.traeCliente, fototomada)
' B4XPages.ShowPage("productos")
' p_transparentePidePeso.Visible = True
End If
@@ -928,7 +963,6 @@ Sub mandaPendientes
' End If
End Sub
Sub JobDone(Job As HttpJob)
Log("INICA JOBDONE CLIENTES - " & Job.Tag)
If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
@@ -970,4 +1004,8 @@ Sub JobDone(Job As HttpJob)
End If
LogColor(">>>>> Job.Release Clientes - " & Job.Tag, Colors.RGB(179, 146, 0))
Job.Release
End Sub
Private Sub p_transparenciaEsperaGPS_Click
End Sub

View File

@@ -131,7 +131,7 @@ Sub GUARDA_Click
B4XPages.MainPage.skmt.ExecNonQuery2("update PEDIDO_INICIO_FINAL set PIF_HORA_FINAL = ? where PIF_CLIENTE = ? and PIF_HORA_FINAL = 0", Array As Object (DateTime.Now, cuenta))
LogColor($"actualizamos "${cuenta}, hora_final=${DateTime.now}"$,Colors.Red)
Subs.bitacora(Subs.fechanormal(DateTime.Now), usuario, Subs.traeAlmacen, Subs.traeRuta, "No Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, B4XPages.MainPage.cliente.precision, motivo, e_comm.text, "")
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, "")
mandaPendientesnoventa
B4XPages.ShowPage("Principal")

View File

@@ -592,7 +592,7 @@ Sub B4XPage_Appear
End Sub
Sub b_subir_Click
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, ALMACEN, l_ruta.Text, "Enviar Dia", "", Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, "2", "", "", "")
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, ALMACEN, l_ruta.Text, "Enviar Dia", "", Subs.fechanormal(DateTime.Now), Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, "2", "", "", "")
CARGA = "SUBIR"
p_mandaInfo.Width = Root.Width
p_mandaInfo.Height = Root.Height
@@ -827,7 +827,7 @@ Sub b_subir_Click
cuantos_noventa = D.GetString("CUANTOS_NOVENTA")
d.Close
' NOVENTA
' FOTOINICIAL
c=B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM FOTOINICIAL")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
@@ -837,7 +837,7 @@ Sub b_subir_Click
foto2 = c.GetBlob("FOTO2")
cmd.Initialize
cmd.Name = "insert_foto_ADM"
cmd.Parameters = Array As Object(C.GetString("RUTAA"),C.GetString("USUARIO"),C.GetString("LONGITUD"),C.GetString("ALMACEN"),C.GetString("FECHAHORA"),C.GetString("LATITUD"),foto1,foto2)
cmd.Parameters = Array As Object(C.GetString("RUTAA"),C.GetString("USUARIO"),C.GetString("LONGITUD"),C.GetString("ALMACEN"),C.GetString("FECHAHORA"),C.GetString("LATITUD"),Subs.traeCliente&"_"&c.GetString("FOTO_NOM"),Subs.traeCliente&"_"&c.GetString("FOTO_NOM2"))
reqManager.ExecuteCommand(cmd , "inst_FOTO")
Next
End If
@@ -1079,7 +1079,7 @@ Sub b_cargar_Click
reqManager.ExecuteQuery(cmd , 0, "detallepaq")
cmd.Initialize
cmd.Name = "select_cat_clientes_ADM"
cmd.Name = "select_cat_clientes2_ADM"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
@@ -1122,7 +1122,7 @@ Sub b_cargar_Click
Panel11.Visible = False
cmd.Initialize
cmd.Name = "select_cat_clientes_ADM"
cmd.Name = "select_cat_clientes2_ADM"
cmd.Parameters = Array As Object(E_RUTA2.text, ALMACEN)
reqManager.ExecuteQuery(cmd , 0, "kmt_datos")
@@ -1301,6 +1301,7 @@ Sub JobDone(Job As HttpJob)
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "kmt_datos" Then 'query tag
Subs.logJobDoneResultados(RESULT)
S_CC.TEXT = "CARGANDO"
For Each records() As Object In RESULT.Rows
Dim CAT_CL_CODIGO As String = records(RESULT.Columns.Get("CAT_CL_CODIGO"))
@@ -2353,7 +2354,6 @@ Sub B_OK_PAS_Click
img2.Visible=False
Subs.panelVisible(p_principal, 0, 0)
If E_RUTA2.Text <> "" Then
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO RUTA_SUPLENCIA(RS_RUTA) VALUES(?)",Array As String(E_RUTA2.Text))
End If
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO RUTAA(RUTAA) VALUES(?)",Array As String(e_ruta.Text))
@@ -2442,7 +2442,7 @@ Sub resdia_Click
Private utr As Cursor = Starter.skmt.ExecQuery($"select ifnull(sum(pe_peso),0) as totalPesoActual,
(select count(pe_cliente) from pesos where pe_tipo = 'VENTA') as conVenta,
(select count(distinct pe_cliente) from pesos) as visitados,
(select count(cat_cl_codigo) from kmt_info) as totalAVisitar
(select count(cat_cl_codigo) from kmt_info where cat_cl_codigo not in ('0', '1')) as totalAVisitar
from pesos"$)
If utr.RowCount > 0 Then
utr.position = 0
@@ -2847,8 +2847,6 @@ Private Sub p_mandaInfo_Click
End Sub
Private Sub iv_abordo_Click
Starter.skmt.ExecNonQuery("delete from CUENTAA")
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object("0"))

View File

@@ -33,6 +33,9 @@ Sub Class_Globals
Private Panel5 As Panel
Private et_comentarioNoVenta As EditText
Private Label3 As Label
Private r_opcion7 As RadioButton
Private r_opcion6 As RadioButton
Private r_opcion5 As RadioButton
Private r_opcion4 As RadioButton
Private r_opcion3 As RadioButton
Private r_opcion2 As RadioButton
@@ -133,7 +136,7 @@ Sub B4XPage_Appear
label2.TextColor = Colors.Blue
label2.Height = 88dip
label2.Width = ListView1.Width - 10dip
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" SubTotal "& c.GetString("PC_MONTO") & " kgs.")
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Total "& c.GetString("PC_MONTO") & " kgs.")
Next
End If
c.Close
@@ -158,6 +161,16 @@ Sub Activity_KeyPress (key As Int) As Boolean
End Sub
Sub ListView1_ItemLongClick (Position As Int, Value As Object)
Log("################ Iniciando revision de ubicación #############")
Log($"${B4XPages.MainPage.lat_gps},${B4XPages.MainPage.lon_gps}"$)
If B4XPages.MainPage.lat_gps.Length < 4 Or B4XPages.MainPage.lon_gps.Length < 4 Then
ProgressDialogShow2("Buscando ubicación ...", False)
CallSubDelayed(Tracker, "Track")
CallSubDelayed(Tracker, "StartFLPSmall")
wait for GPS_LocationChanged (location1 As Location)
ProgressDialogHide
End If
Log("############### Terminando revision de ubicación #############")
Private cliente As String = Value
Log(Value)
Starter.skmt.ExecNonQuery($"delete from cuentaa"$)
@@ -174,7 +187,7 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
Else
p_transparenciaIniciaInicioFinVenta.Visible = True
b_finVenta.Enabled = True
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "Inicia Venta", cliente, Subs.fechanormal(DateTime.Now), "", Starter.lat_gps, Starter.lon_gps, "2", "", "", "Tickets Día")
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "Inicia Venta", cliente, Subs.fechanormal(DateTime.Now), "", B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, "2", "", "", "Tickets Día")
Starter.enVenta = True
Subs.enVenta(1, "CLIENTES")
LogColor($">>>>>> INICIA VENTA: ${Starter.enVenta} - ${cliente}"$, Colors.red)
@@ -189,8 +202,6 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
c.Close
Log("CLIENTE: " & cliente)
' B4XPages.MainPage.skmt.ExecNonQuery("delete from CUENTAA")
' B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object(Value))
' DateTime.TimeFormat = "HHmmss"
@@ -210,6 +221,11 @@ Sub ListView1_ItemLongClick (Position As Int, Value As Object)
' B4XPages.ShowPage("cliente")
End Sub
Sub GPS_LocationChanged (Location1 As Location)
' If p_transparenciaEsperaGPS.IsInitialized Then p_transparenciaEsperaGPS.Visible = False
ProgressDialogHide
End Sub
Sub b_noventa0_Click
If nombre_boton = "NOVENTA" Then
nombre_boton = "VENTA"
@@ -249,7 +265,7 @@ Sub b_noventa0_Click
label2 = ListView1.TwoLinesLayout.SecondLabel
label2.TextSize = 13
label2.TextColor = Colors.Blue
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" SubTotal "& c.GetString("PC_MONTO") & " kgs.")
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"),c.GetString("NOMBRE") &" Total "& c.GetString("PC_MONTO") & " kgs.")
Next
End If
c.Close
@@ -264,13 +280,17 @@ Private Sub b_guardaNoVenta_Click
If r_opcion1.Checked Then
motivo = "CERRADO"
Else If r_opcion2.Checked Then
motivo = "NO COMPRA"
motivo = "NO TIENE DINERO"
Else If r_opcion3.Checked Then
motivo = "CON PRODUCTO"
motivo = "NO ABRE MAÑANA"
Else If r_opcion4.Checked Then
motivo = "NO ESTA EL ENCARGADO"
motivo = "FALTA DE PRODUCTO"
Else If r_opcion5.Checked Then
motivo = "PROMOCION CON OTRO DISTRIBUIDOR"
Else If r_opcion6.Checked Then
motivo = "RECIBEN MUCHOS PROVEEDORES"
Else
motivo = "CANCELACION"
motivo = "NO LE QUEDA EL DIA"
End If
If motivo = "CERRADO" And fotoCerrado = "" Then
nombreFoto = Subs.traeCliente & "_cerrado"
@@ -284,7 +304,7 @@ Private Sub b_guardaNoVenta_Click
DateTime.DateFormat="yy-MM-dd HH:mm:ss"
Dim fecha As String=DateTime.Date(DateTime.Now)
Subs.guardaPeso("NO VENTA", Subs.traeAlmacen, Subs.traeRuta2(Subs.traeCliente), Subs.traeUsuarioDeBD, Subs.traeCliente, "0", motivo, et_comentarioNoVenta.text, fotoCerrado)
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "No Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, 2, motivo, et_comentarioNoVenta.text, $"Tickets Día Venta:${et_guardarPeso.text}"$)
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "No Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, 2, motivo, et_comentarioNoVenta.text, $"Tickets Día Venta:${et_guardarPeso.text}"$)
Starter.enVenta = False
Subs.enVenta(0, "")
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 3 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
@@ -293,6 +313,7 @@ Private Sub b_guardaNoVenta_Click
p_transparenciaIniciaInicioFinVenta.Visible = False
End If
Subs.mandaPendientes
B4XPage_Appear
End Sub
Private Sub b_cancelaNoVenta_Click
@@ -305,7 +326,7 @@ Private Sub b_guardarPeso_Click
et_guardarPeso.Text = peso
Subs.guardaPeso("VENTA", Subs.traeAlmacen, Subs.traeRuta2(Subs.traeCliente), Subs.traeUsuarioDeBD, Subs.traeCliente, peso, "", "", "")
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta2(Subs.traeCliente), "Termina Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, 2, "", "", $"Tickets Día Venta:${et_guardarPeso.text}"$)
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta2(Subs.traeCliente), "Termina Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, 2, "", "", $"Tickets Día Venta:${et_guardarPeso.text}"$)
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
Starter.enVenta = False
Subs.enVenta(0, "")
@@ -315,6 +336,7 @@ Private Sub b_guardarPeso_Click
b_finVenta.Enabled = False
B4XPages.MainPage.ticketsDia.B4XPage_Appear
Subs.mandaPendientes
B4XPage_Appear
End If
End Sub
@@ -446,7 +468,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
img.WriteToStream(out, 100, "PNG")
out.Close
If nombreFoto = "inicio" Then
Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(Subs.traeRuta, Subs.traeAlmacen, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & STIME, File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD))
Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO_NOM, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(Subs.traeRuta, Subs.traeAlmacen, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & STIME, fototomada, Subs.traeUsuarioDeBD))
b_foto_inci.Text = "Foto usuario"
ChangeCamera_Click
Else
@@ -454,9 +476,13 @@ Sub Camera1_PictureTaken (Data() As Byte)
p_camara.Visible = False
StopCamera
End If
Starter.mandaForma(Subs.traeAlmacen, Subs.traeRuta, Subs.traeCliente, fototomada)
Else If b_foto_inci.Text = "Foto usuario" Then
DateTime.DateFormat="ddMMyyyyHHmmss"
fototomada = fototomada = DateTime.Now & $"_${nombreFoto}.jpg"$
nombreFoto = "usuario"
fototomada = DateTime.Now & $"_${nombreFoto}.jpg"$
Dim filename As String = fototomada
Dim dir As String = File.DirInternal
camEx.SavePictureToFile(Data, dir, filename)
@@ -493,7 +519,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & dir & Dir2, filename, False)
img.WriteToStream(out, 100, "PNG")
out.Close
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD,Subs.traeRuta, Subs.traeAlmacen ))
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO_NOM2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (fototomada, Subs.traeUsuarioDeBD,Subs.traeRuta, Subs.traeAlmacen ))
b_foto_inci.Text = "Foto tienda"
ChangeCamera_Click
p_camara.Visible = False
@@ -505,6 +531,10 @@ Sub Camera1_PictureTaken (Data() As Byte)
Else
B4XPages.MainPage.tipo_venta = "PREVENTA"
End If
LogColor("Mandamos foto: " & fototomada, Colors.red)
Log($"${Subs.traeAlmacen}, ${Subs.traeRuta}, ${Subs.traeCliente}, ${fototomada}"$)
Starter.mandaForma(Subs.traeAlmacen, Subs.traeRuta, Subs.traeCliente, fototomada)
' B4XPages.ShowPage("productos")
' p_transparentePidePeso.Visible = True
End If

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -73,6 +73,8 @@ Sub Globals
Private p_botonesNoVenta As Panel
Private Panel5 As Panel
Private et_comentarioNoVenta As EditText
Private r_opcion7 As RadioButton
Private r_opcion6 As RadioButton
Private r_opcion5 As RadioButton
Private r_opcion4 As RadioButton
Private r_opcion3 As RadioButton
@@ -418,6 +420,7 @@ Sub GPS_LocationChanged (Parametro As Location)
' gmap.AnimateCamera(cp)
' End If
' End If
ProgressDialogHide
End Sub
Sub Activity_Pause (UserClosed As Boolean)
@@ -468,10 +471,10 @@ Private Sub b_inicioVenta_Click
r_opcion3.Checked = False
r_opcion4.Checked = False
b_finVenta.Enabled = True
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "Inicia Venta", Subs.traeCliente, Subs.fechanormal(DateTime.Now), "", Starter.lat_gps, Starter.lon_gps, "2", "", "", "")
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, "2", "", "", "")
Starter.enVenta = True
Subs.enVenta(1, "MAPA")
l_venta.Text = "Ve a tu app de venta y cuando termines regresa aqui y presiona el botón para ingresar ""Peso"" o ""No Venta"""
l_venta.Text = "Ve a tu app de venta y cuando termines regresa aqui y presiona el botón para ingresar ""Kilos"" o ""No Venta"""
LogColor($">>>>>> INICIA VENTA: ${Starter.enVenta} - ${Subs.traeCliente}"$, Colors.red)
End Sub
@@ -516,7 +519,7 @@ Private Sub b_guardarPeso_Click
et_guardarPeso.Text = peso
Subs.guardaPeso("VENTA", Subs.traeAlmacen, Subs.traeRuta2(Subs.traeCliente), Subs.traeUsuarioDeBD, Subs.traeCliente, peso, "", "", "")
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "Termina Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, 2, "", "", $"Venta:${et_guardarPeso.text}"$)
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, 2, "", "", $"Venta:${et_guardarPeso.text}"$)
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 2 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
Starter.enVenta = False
Subs.enVenta(0, "")
@@ -558,13 +561,17 @@ Private Sub b_guardaNoVenta_Click
If r_opcion1.Checked Then
motivo = "CERRADO"
Else If r_opcion2.Checked Then
motivo = "NO COMPRA"
motivo = "NO TIENE DINERO"
Else If r_opcion3.Checked Then
motivo = "CON PRODUCTO"
motivo = "NO ABRE MAÑANA"
Else If r_opcion4.Checked Then
motivo = "NO ESTA EL ENCARGADO"
motivo = "FALTA DE PRODUCTO"
Else If r_opcion5.Checked Then
motivo = "PROMOCION CON OTRO DISTRIBUIDOR"
Else If r_opcion6.Checked Then
motivo = "RECIBEN MUCHOS PROVEEDORES"
Else
motivo = "CANCELACION"
motivo = "NO LE QUEDA EL DIA"
End If
If motivo = "CERRADO" And fotoCerrado = "" Then
nombreFoto = Subs.traeCliente & "_cerrado"
@@ -578,7 +585,7 @@ Private Sub b_guardaNoVenta_Click
DateTime.DateFormat="yy-MM-dd HH:mm:ss"
Dim fecha As String=DateTime.Date(DateTime.Now)
Subs.guardaPeso("NO VENTA", Subs.traeAlmacen, Subs.traeRuta2(Subs.traeCliente), Subs.traeUsuarioDeBD, Subs.traeCliente, "0", motivo, et_comentarioNoVenta.text, fotoCerrado)
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "No Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), Starter.lat_gps, Starter.lon_gps, 2, motivo, et_comentarioNoVenta.text, $"Venta:${et_guardarPeso.text}"$)
Subs.bitacora(Subs.fechanormal(DateTime.Now), Subs.traeUsuarioDeBD, Subs.traeAlmacen, Subs.traeRuta, "No Venta", Subs.traeCliente, "", Subs.fechanormal(DateTime.Now), B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, 2, motivo, et_comentarioNoVenta.text, $"Venta:${et_guardarPeso.text}"$)
Starter.enVenta = False
Subs.enVenta(0, "")
Starter.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 3 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
@@ -669,7 +676,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
img.WriteToStream(out, 100, "PNG")
out.Close
If nombreFoto = "inicio" Then
Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(Subs.traeRuta, Subs.traeAlmacen, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & sTime, File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD))
Starter.skmt.ExecNonQuery2("INSERT INTO FOTOINICIAL (RUTAA, ALMACEN, LATITUD, LONGITUD, FECHAHORA, FOTO_NOM, USUARIO) VALUES (?,?,?,?,?,?,?)",Array As Object(Subs.traeRuta, Subs.traeAlmacen, B4XPages.MainPage.lat_gps, B4XPages.MainPage.lon_gps, sDate & " " & sTime, fototomada, Subs.traeUsuarioDeBD))
b_foto_inci.Text = "Foto usuario"
ChangeCamera_Click
Else
@@ -677,9 +684,13 @@ Sub Camera1_PictureTaken (Data() As Byte)
p_camara.Visible = False
StopCamera
End If
Starter.mandaForma(Subs.traeAlmacen, Subs.traeRuta, Subs.traeCliente, fototomada)
Else If b_foto_inci.Text = "Foto usuario" Then
DateTime.DateFormat="ddMMyyyyHHmmss"
fototomada = fototomada = DateTime.Now & $"_${nombreFoto}.jpg"$
nombreFoto = "usuario"
fototomada = DateTime.Now & $"_${nombreFoto}.jpg"$
Dim filename As String = fototomada
Dim dir As String = File.DirInternal
camEx.SavePictureToFile(Data, dir, filename)
@@ -716,7 +727,7 @@ Sub Camera1_PictureTaken (Data() As Byte)
Dim out As OutputStream = File.OpenOutput(File.DirInternal & dir & Dir2, filename, False)
img.WriteToStream(out, 100, "PNG")
out.Close
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (File.ReadBytes(File.DirInternal & dir & Dir2, fototomada), Subs.traeUsuarioDeBD,Subs.traeRuta, Subs.traeAlmacen ))
B4XPages.MainPage.skmt.ExecNonQuery2("UPDATE FOTOINICIAL set FOTO_NOM2 = ? where USUARIO = ? and RUTAA = ? and ALMACEN = ? ", Array As Object (fototomada, Subs.traeUsuarioDeBD,Subs.traeRuta, Subs.traeAlmacen ))
b_foto_inci.Text = "Foto tienda"
ChangeCamera_Click
p_camara.Visible = False
@@ -728,6 +739,10 @@ Sub Camera1_PictureTaken (Data() As Byte)
Else
B4XPages.MainPage.tipo_venta = "PREVENTA"
End If
LogColor("Mandamos foto: " & fototomada, Colors.red)
Log($"${Subs.traeAlmacen}, ${Subs.traeRuta}, ${Subs.traeCliente}, ${fototomada}"$)
Starter.mandaForma(Subs.traeAlmacen, Subs.traeRuta, Subs.traeCliente, fototomada)
' B4XPages.ShowPage("productos")
' p_transparentePidePeso.Visible = True
End If

View File

@@ -170,6 +170,10 @@ Sub reinicializaReqManager(srv As String)
LogColor(srv, Colors.red)
End Sub
public Sub Tracker_UbicacionActualizada (Location1 As Location)
End Sub
Sub JobDone(Job As HttpJob)
Log("JOBDONE STARTER")
Try
@@ -247,4 +251,57 @@ Sub JobDone(Job As HttpJob)
Catch
Log(LastException)
End Try
End Sub
Sub mandaForma(almacen_ As String, ruta_ As String, cliente_ As String, imagen_ As String)
' 1. Inicializa un nuevo HttpJob
Dim job As HttpJob
job.Initialize("", Me)
' 2. Define la URL del servidor
Dim url As String = "https://keymon.net/ADM/POST_IMAGEN.aspx"
' 3. Crea un Map para los campos de texto del formulario
Dim params As Map
params.Initialize
params.Put("Almacen", almacen_)
params.Put("Ruta", ruta_)
params.Put("Cliente", cliente_)
params.Put("btnUpload", "Subir Imagen") ' El botón de submit también envía su valor
' --- CAMPOS OCULTOS DE ASP.NET ---
' Estos valores suelen ser dinámicos. Para este ejemplo, los ponemos fijos.
' Si falla, es posible que primero necesites hacer un GET a la página para obtener los valores actualizados.
' params.Put("__VIEWSTATE", "/wEPDwUKMjA1ODU4NjY1MGRkhSExd19qC1l3GdX6jvTnbM9pxPQR8urGAvs76UsqsDU=")
' params.Put("__VIEWSTATEGENERATOR", "6050E242")
' params.Put("__EVENTVALIDATION", "/wEdAAX5q9hoCUC745WBVO+/1ZWhraEDRZI2xn7OC3a5LAUoRlfyZCZSVcs/gLubOxTf2dCyEN4makXuwRjezU2tU1hn5vhDofrSSRcWtmHPtJVt4HHStaEfV6fkOi3uRRJDHybxwaB9FuVcVFxi7uoxeGMX")
' 4. Crea una lista de archivos a subir
Dim files As List
files.Initialize
' Creamos el objeto MultipartFileData para nuestra imagen
' KeyName: Es el atributo "name" del input en HTML ("Imagen")
' ContentType: El tipo de archivo
Dim mfd As MultipartFileData = Subs.CreateMultipartFileData(File.DirInternal&"/adm", imagen_, "Imagen", "image/jpeg")
files.Add(mfd)
' 5. Realiza la petición POST de tipo multipart
job.PostMultipart(url, params, files)
' 6. Espera a que el trabajo termine
Wait For (job) JobDone(job As HttpJob)
If job.Success Then
' El servidor respondió correctamente (HTTP 200 OK)
Log("Respuesta del servidor: " & job.GetString)
' MsgboxAsync("¡Imagen subida con éxito!", "Completado")
Else
' Hubo un error en la conexión o el servidor respondió con un error
Log("Error al subir la imagen: " & job.ErrorMessage)
' MsgboxAsync("Error: " & job.ErrorMessage, "Fallo")
End If
' Libera los recursos del job
job.Release
End Sub

View File

@@ -665,10 +665,12 @@ End Sub
'Regresa el almacen actual de la base de datos.
Sub traeAlmacen As String 'ignore
Private c As Cursor
Private a As String
c=B4XPages.MainPage.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN")
c.Position = 0
a = C.GetString("ID_ALMACEN")
Private a As String = 0
c=B4XPages.MainPage.skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN")
If c.RowCount > 0 Then
c.Position = 0
a = c.GetString("ID_ALMACEN")
End If
c.Close
Return a
End Sub
@@ -808,7 +810,7 @@ Sub guardaPeso(tipo As String, almacen As String, ruta As String, usuario As Str
' CREATE TABLE PESOS(PE_IDALMACEN TEXT, PE_RUTA TEXT, PE_USUARIO TEXT, PE_CLIENTE TEXT, PE_PESO TEXT, PE_FECHA TEXT, PE_FECHA_SINC TEXT)
DateTime.DateFormat="yy-MM-dd HH:mm:ss"
Dim fecha As String=DateTime.Date(DateTime.Now)
B4XPages.MainPage.skmt.ExecNonQuery($"delete from pesos where pe_cliente in (select cuenta from cuentaa) and pe_tipo = '${tipo}'"$)
B4XPages.MainPage.skmt.ExecNonQuery($"delete from pesos where pe_cliente in (select cuenta from cuentaa)"$) ' and pe_tipo = '${tipo}'
B4XPages.MainPage.skmt.ExecNonQuery($"INSERT INTO PESOS (PE_TIPO, PE_IDALMACEN, PE_RUTA, PE_USUARIO, PE_CLIENTE, PE_PESO, PE_FECHA, PE_MOTIVO, PE_COMENTARIO, PE_FOTO_CERRADO) VALUES('${tipo.ToUpperCase}', '${almacen}', '${ruta}', '${usuario}', '${cliente}', '${peso}', '${fecha}', '${motivo}', '${comentario}', '${fotoCerrado}')"$)
' Log($"INSERT INTO PESOS (PE_TIPO, PE_IDALMACEN, PE_RUTA, PE_USUARIO, PE_CLIENTE, PE_PESO, PE_FECHA, PE_MOTIVO, PE_COMENTARIO) VALUES('${tipo.ToUpperCase}', '${almacen}', '${ruta}', '${usuario}', '${cliente}', '${peso}', '${fecha}', '${motivo}', '${comentario}')"$)
End Sub
@@ -1584,6 +1586,18 @@ End Sub
'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, otro As String)
Log($"Bitacora: ${eventob}, mnven: ${motivonoventa}, mnvis: ${motivonovisita}"$)
If latitudb.Length < 4 Then
ProgressDialogShow2("Buscando ubicación ...", False)
CallSubDelayed(Tracker, "Track")
CallSubDelayed(Tracker, "StartFLPSmall")
Log($"Coords actuales: ${B4XPages.MainPage.lat_gps}, ${B4XPages.MainPage.lon_gps}"$)
If B4XPages.MainPage.lat_gps.Length > 3 And B4XPages.MainPage.lon_gps.Length > 3 Then
ProgressDialogHide
End If
End If
If Starter.Logger Then Log("bitacora")
Private cmd As DBCommand
Private id As String
@@ -1623,6 +1637,7 @@ Sub bitacora(fechab As String, usuariob As String, almacenb As String, rutab As
End If
End If
If eventob <> "Inicia Venta" Then
Log("===== MANDAMOS BITACORA ====")
Private c As Cursor = Starter.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
@@ -1684,4 +1699,15 @@ Sub mandaPendientes
End If
c.Close
End If
End Sub
' Función de ayuda para crear el objeto MultipartFileData de forma más limpia
Sub CreateMultipartFileData(Dir As String, FileName As String, KeyName As String, ContentType As String) As MultipartFileData
Dim mfd As MultipartFileData
mfd.Initialize
mfd.Dir = Dir
mfd.FileName = FileName
mfd.KeyName = KeyName
mfd.ContentType = ContentType
Return mfd
End Sub

View File

@@ -158,9 +158,9 @@ Public Sub StopFLP
End If
End Sub
Sub flp_LocationChanged (Location1 As Location)
public Sub flp_LocationChanged (Location1 As Location)
' ToastMessageShow("Loc changed", False)
Log($"Loc changed:${Location1.Longitude},${Location1.Latitude}"$)
LogColor($">>> Loc changed:${Location1.Longitude},${Location1.Latitude}"$, Colors.red)
B4XPages.MainPage.lat_gps = Location1.Latitude
B4XPages.MainPage.lon_gps = Location1.Longitude
Starter.lat_gps = Location1.Latitude
@@ -196,6 +196,8 @@ Sub flp_LocationChanged (Location1 As Location)
End If
CallSub2(Starter, "GPS_LocationChanged", Location1)
CallSub2(B4XPages.MainPage.clientes, "GPS_LocationChanged", Location1)
' CallSub2(B4XPages.MainPage.clientes, "Tracker_UbicacionActualizada", Location1)
' CallSub2(B4XPages.MainPage.cliente, "GPS_LocationChanged", Location1)
' CallSub2(gestion, "GPS_LocationChanged", Location1)
If B4XPages.MainPage.cliente.BT_QR.IsInitialized Then
@@ -306,7 +308,7 @@ End Sub
Sub guardaYEnviaUbicacion(lat As String, lon As String)
LogColor("#######################################", Colors.Magenta)
LogColor("#######################################", Colors.Magenta)
LogColor("#######################################", Colors.Magenta)
' LogColor("#######################################", Colors.Magenta)
DateTime.DateFormat="yy-MM-dd HH:mm:ss"
Private fecha As String = DateTime.Date(DateTime.Now)
DateTime.DateFormat="yyMMddHHmmss"
@@ -318,6 +320,6 @@ Sub guardaYEnviaUbicacion(lat As String, lon As String)
cmd.Name = "guardaHistorialUbicaciones"
If B4XPages.MainPage.lat_gps.Length < 15 Then B4XPages.MainPage.lat_gps = B4XPages.MainPage.lat_gps&"0"
cmd.Parameters = Array As Object(Subs.traeAlmacen, Subs.traeRuta, usuario, lat, lon, fecha)
Log($"${Subs.traeAlmacen}, ${Subs.traeRuta}, ${usuario}, ${lat}, ${lon}, ${fecha}"$)
' Log($"${Subs.traeAlmacen}, ${Subs.traeRuta}, ${usuario}, ${lat}, ${lon}, ${fecha}"$)
Starter.reqManager.ExecuteCommand(cmd, $"guardaHistorialUbicaciones_${id}"$)
End Sub