mirror of
https://github.com/KeymonSoft/Intmex_Multiventa.git
synced 2026-04-17 21:06:08 +00:00
- VERSION 5.05.11
- Se agrego en "Principal" que cuando haya pedidos pendientes, aparezca un mensaje y el estatus del envio de los pedidos. - Se agregó en "Principal" un icono de "conexion" en la esquina superior derecha, que dependiendo de la conexion se pone verde o rojo. - Se agrego la version y el estatus de la conexion a tmp_drop. - Se agrego la version y el estatus de la conexion a la ubicacion em tiempo real (CAT_RUTAS)
This commit is contained in:
@@ -451,10 +451,34 @@ Sub JobDone(Job As HttpJob)
|
||||
End If
|
||||
If Job.Success = False Then
|
||||
LogColor("Error: " & Job.tag & " : " & Job.ErrorMessage, Colors.red)
|
||||
If Job.Tag = "ping" Then 'query tag
|
||||
' Log("ERROR DE PING")
|
||||
' B4XPages.MainPage.principal.p_conexion.Color = Colors.red
|
||||
If B4XPages.MainPage.principal.l_conexion.IsInitialized Then
|
||||
Starter.senial = 0
|
||||
B4XPages.MainPage.principal.l_conexion.TextColor = Colors.red
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211027
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
If result.Tag = "ping" Then 'query tag
|
||||
' Log("PING OK!!")
|
||||
If B4XPages.MainPage.principal.l_conexion.IsInitialized Then
|
||||
Starter.senial = 1
|
||||
B4XPages.MainPage.principal.l_conexion.TextColor = Colors.Green
|
||||
End If
|
||||
End If
|
||||
|
||||
If result.Tag = "fecha" Then 'query tag
|
||||
For Each records() As Object In result.Rows
|
||||
For Each k As String In result.Columns.Keys
|
||||
Log("select_fechat: " & k & ": " & records(result.Columns.Get(k)))
|
||||
Next
|
||||
Next
|
||||
End If
|
||||
|
||||
If result.Tag = "version" Then 'query tag
|
||||
For Each records() As Object In result.Rows
|
||||
skmt.ExecNonQuery("delete from VERSION")
|
||||
@@ -470,19 +494,13 @@ Sub JobDone(Job As HttpJob)
|
||||
Next
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
If result.Tag = "agencia" Then 'query tag
|
||||
For Each records() As Object In result.Rows
|
||||
Dim ID_ALMACEN As String = records(result.Columns.Get("ID_ALMACEN"))
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
If result.Tag = "fecha" Then 'query tag
|
||||
For Each records() As Object In result.Rows
|
||||
Dim FECHA_HOY As String = records(result.Columns.Get("FECHA"))
|
||||
@@ -490,10 +508,7 @@ Sub JobDone(Job As HttpJob)
|
||||
skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FECHA",FECHA_HOY))
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
If result.Tag = "usuario" Then 'query tag
|
||||
For Each records() As Object In result.Rows
|
||||
Dim name As String = records(result.Columns.Get("USUARIO"))
|
||||
@@ -505,10 +520,7 @@ Sub JobDone(Job As HttpJob)
|
||||
ToastMessageShow(name, False)
|
||||
Log("////////////////////////// "&name)
|
||||
End If
|
||||
End If
|
||||
|
||||
If Job.JobName = "DBRequest" Then
|
||||
Dim result As DBResult = reqManager.HandleJob(Job)
|
||||
If result.Tag = "usuario_10" Then 'query tag
|
||||
For Each records() As Object In result.Rows
|
||||
Dim name As String = records(result.Columns.Get("USUARIO"))
|
||||
@@ -520,19 +532,18 @@ Sub JobDone(Job As HttpJob)
|
||||
IMEI_BASE = ""
|
||||
IMEI = ""
|
||||
End If
|
||||
|
||||
If result.Tag = "ruta" Then 'query tag
|
||||
Log("JOBDONE PRINCIPAL MAINPAGE")
|
||||
For Each records() As Object In result.Rows
|
||||
Dim VALIDO As String = records(result.Columns.Get("VALIDO"))
|
||||
If VALIDO = "OK" Then
|
||||
Log(VALIDO)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
|
||||
If result.Tag = "ruta" Then 'query tag
|
||||
Log("JOBDONE PRINCIPAL MAINPAGE")
|
||||
For Each records() As Object In result.Rows
|
||||
Dim VALIDO As String = records(result.Columns.Get("VALIDO"))
|
||||
If VALIDO = "OK" Then
|
||||
Log(VALIDO)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Job.Release
|
||||
End If
|
||||
Log($"Paso1 = ${paso1} - Name: ${name} - IMEI: ${IMEI} - IMEI_BASE: ${IMEI_BASE}"$)
|
||||
|
||||
@@ -214,6 +214,10 @@ Sub Class_Globals
|
||||
Private L_VENTA As Label
|
||||
Private L_PREVENTA As Label
|
||||
Dim validador As C_Validador
|
||||
Dim p_muestraPendientes As Panel
|
||||
Private b_muestraPendientes As Button
|
||||
' Dim p_conexion As Panel
|
||||
Dim l_conexion As Label
|
||||
End Sub
|
||||
|
||||
'You can add more parameters here.
|
||||
@@ -228,7 +232,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
||||
Root.LoadLayout("principal")
|
||||
rd.Initialize
|
||||
rd.vacuum
|
||||
validador.Initialize
|
||||
validador.Initialize(Me, "val")
|
||||
EJECUTANDO=1
|
||||
Dim ruta As String
|
||||
img2.Visible =False
|
||||
@@ -301,6 +305,10 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
||||
l_rutasuplencia.Text = s.GetString("RS_RUTA")
|
||||
End If
|
||||
Starter.Skmt.ExecNonQuery($"create table if not exists kmt_info2 (${getTableColumnList(Starter.skmt, "kmt_info")})"$)
|
||||
p_mandaInfo.Left = 0: p_mandaInfo.top = 0
|
||||
p_muestraPendientes.Left = Root.Width - p_muestraPendientes.Width - 5dip
|
||||
' p_conexion.Top = 1 : p_conexion.left = Root.width - p_conexion.width
|
||||
l_conexion.Top = 0 : l_conexion.left = Root.width - l_conexion.width -2
|
||||
End Sub
|
||||
|
||||
Sub chkIfTableExists(db As SQL, table As String) As Boolean 'ignore
|
||||
@@ -490,8 +498,6 @@ Sub B4XPage_Appear
|
||||
c.Close
|
||||
bu.Initialize
|
||||
batterystatus = bu.BatteryInformation
|
||||
|
||||
|
||||
c=B4XPages.MainPage.skmt.ExecQuery("select usuario from usuarioa")
|
||||
c.Position = 0
|
||||
usuario = c.GetString("USUARIO")
|
||||
@@ -503,38 +509,47 @@ Sub B4XPage_Appear
|
||||
B4XPages.MainPage.clientesvisitados = l_porvisitar.TEXT
|
||||
B4XPages.MainPage.ALMACEN = ALMACEN
|
||||
B4XPages.MainPage.rutapreventa = l_ruta.text
|
||||
|
||||
'////// Para el usuario global - Chv
|
||||
c=B4XPages.MainPage.skmt.ExecQuery("select usuario from usuarioa")
|
||||
c = B4XPages.MainPage.skmt.ExecQuery("select usuario from usuarioa")
|
||||
c.Position = 0
|
||||
usuario = c.GetString("USUARIO")
|
||||
B4XPages.MainPage.usuario = usuario
|
||||
c.Close
|
||||
'///////
|
||||
CallSub(Starter, "ENVIA_ULTIMA_GPS")
|
||||
|
||||
|
||||
s = B4XPages.MainPage.skmt.ExecQuery("select RS_RUTA FROM RUTA_SUPLENCIA")
|
||||
s.Position = 0
|
||||
If s.RowCount = 0 Then
|
||||
|
||||
Label22.Visible = False
|
||||
l_rutasuplencia.Visible = False
|
||||
l_rutasuplencia.Text = ""
|
||||
|
||||
Else If s.RowCount > 0 Then
|
||||
|
||||
Label22.Visible = True
|
||||
l_rutasuplencia.Visible = True
|
||||
l_rutasuplencia.Text = s.GetString("RS_RUTA")
|
||||
|
||||
End If
|
||||
|
||||
' If l_ruta.Text = "0" Then
|
||||
' b_abordo.Visible = False
|
||||
' Else
|
||||
' b_abordo.Visible = True
|
||||
' End If
|
||||
Dim RedDisponible As Phone
|
||||
Log("GetNetworkOperatorName: "&RedDisponible.GetNetworkOperatorName)
|
||||
Log("GetNetworkType: "&RedDisponible.GetNetworkType)
|
||||
Log("GetPhoneType: "&RedDisponible.GetPhoneType)
|
||||
' If RedDisponible.GetNetworkOperatorName <> "" And RedDisponible.GetNetworkType <> "UNKNOWN" Then
|
||||
' Log("Red Disponible")
|
||||
' Else
|
||||
' Log("Red no disponible")
|
||||
' End If
|
||||
Log("GetDataState: " & RedDisponible.GetDataState)
|
||||
Log("IsAirplaneModeOn: " & RedDisponible.IsAirplaneModeOn)
|
||||
Log("|" & validador.buscaSinEnviar & "|")
|
||||
If validador.buscaSinEnviar > 0 Then
|
||||
p_muestraPendientes.Visible = True
|
||||
b_muestraPendientes.Enabled = True
|
||||
b_muestraPendientes.text = "Enviar"
|
||||
Else
|
||||
p_muestraPendientes.Visible = False
|
||||
End If
|
||||
validador.iniciaValidacion
|
||||
End Sub
|
||||
|
||||
@@ -737,8 +752,8 @@ Sub Subir_Click
|
||||
sTime=DateTime.Time(DateTime.Now)
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name ="insert_drop_INTMEX_2"
|
||||
cmd.Parameters = Array As Object(usuario,l_ruta.Text,sDate & sTime, l_porvisitar.Text,l_drop.Text,l_efectiva.Text,l_cuantosc.Text,l_cuantosn.Text, L_MONTOD.Text,"ENVIO",ALMACEN)
|
||||
cmd.Name ="insert_drop_INTMEX_3"
|
||||
cmd.Parameters = Array As Object(usuario,l_ruta.Text,sDate & sTime, l_porvisitar.Text,l_drop.Text,l_efectiva.Text,l_cuantosc.Text,l_cuantosn.Text, L_MONTOD.Text,"ENVIO",ALMACEN, Application.VersionName, Starter.senial)
|
||||
reqManager.ExecuteCommand(cmd , "inst_noventa")
|
||||
img2.Visible =True
|
||||
PORCENTAJE = Round(100/ (cuantos_noventa + cuantos_pedido + cuantos_pedidosc + 1))
|
||||
@@ -876,8 +891,8 @@ Sub cargar_Click
|
||||
' imei = P.GetDeviceId
|
||||
imei = "xxxx"
|
||||
cmd.Initialize
|
||||
cmd.Name ="insert_drop_INTMEX_2"
|
||||
cmd.Parameters = Array As Object(usuario,e_ruta.text,sDate,imei,sTime,"","","","","CARGA",ALMACEN)
|
||||
cmd.Name ="insert_drop_INTMEX_3"
|
||||
cmd.Parameters = Array As Object(usuario,e_ruta.text,sDate,imei,sTime,"","","","","CARGA",ALMACEN, Application.VersionName, Starter.senial)
|
||||
reqManager.ExecuteCommand(cmd , "inst_noventa")
|
||||
|
||||
cmd.Initialize
|
||||
@@ -2665,4 +2680,35 @@ Private Sub b_abordo_Click
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO CUENTAA VALUES (?)", Array As Object("0"))
|
||||
B4XPages.MainPage.tipo_venta = "ABORDO"
|
||||
B4XPages.ShowPage("Productos")
|
||||
End Sub
|
||||
|
||||
Private Sub b_muestraPendientes_Click
|
||||
validador.iniciaValidacion
|
||||
b_muestraPendientes.Enabled = False
|
||||
b_muestraPendientes.TextColor = Colors.white
|
||||
B4XPages.ShowPage("ticketsDia")
|
||||
End Sub
|
||||
|
||||
Sub val_Guardando(msg As String)
|
||||
Log("##################################################" & CRLF & msg)
|
||||
b_muestraPendientes.Enabled = False
|
||||
b_muestraPendientes.TextColor = Colors.white
|
||||
b_muestraPendientes.Text = msg
|
||||
End Sub
|
||||
|
||||
Sub val_Enviando(msg As String)
|
||||
Log("##################################################" & CRLF & msg)
|
||||
b_muestraPendientes.Text = msg
|
||||
End Sub
|
||||
|
||||
Sub val_Validando(msg As String)
|
||||
Log("##################################################" & CRLF & msg)
|
||||
b_muestraPendientes.Text = msg
|
||||
End Sub
|
||||
|
||||
Sub val_Terminado(msg As String)
|
||||
Log("##################################################" & CRLF & msg)
|
||||
b_muestraPendientes.Text = msg
|
||||
Sleep (1000)
|
||||
p_muestraPendientes.Visible = False
|
||||
End Sub
|
||||
@@ -98,7 +98,7 @@ Sub B4XPage_Appear
|
||||
color = Colors.RGB(0,146,1)
|
||||
End If
|
||||
End If
|
||||
Log(estatus)
|
||||
' Log(estatus)
|
||||
Private cs As CSBuilder
|
||||
cs.Initialize
|
||||
ListView1.AddTwoLines(c.GetString("PC_CLIENTE"), _
|
||||
|
||||
@@ -7,16 +7,21 @@ Version=12.8
|
||||
Sub Class_Globals
|
||||
Private Root As B4XView 'ignore
|
||||
Private xui As XUI 'ignore
|
||||
Private EventName As String 'ignore
|
||||
Private CallBack As Object 'ignore
|
||||
Dim reqManager As DBRequestManager
|
||||
Dim timerValidador As Timer
|
||||
Dim intervalo As Int = 300
|
||||
Dim skmt As SQL
|
||||
Dim c As Cursor
|
||||
Dim sDate, sTime As String
|
||||
dim totalAValidar as int = 0
|
||||
End Sub
|
||||
|
||||
'You can add more parameters here.
|
||||
Public Sub Initialize As Object
|
||||
Public Sub Initialize (vCallback As Object, vEventName As String) As Object
|
||||
EventName = vEventName
|
||||
CallBack = vCallback
|
||||
reqManager.Initialize(Me, Starter.DBReqServer)
|
||||
timerValidador.Initialize("timerValidador", intervalo * 1000)
|
||||
timerValidador.Enabled = True
|
||||
@@ -57,6 +62,17 @@ Sub timerValidador_Tick
|
||||
iniciaValidacion
|
||||
End Sub
|
||||
|
||||
' Regresa cuantos pedidos sin gardar o enviar hay.
|
||||
Sub buscaSinEnviar As Int
|
||||
Private x As Int = 0
|
||||
Private f As Cursor = skmt.ExecQuery("SELECT count(*) as cuantos FROM PEDIDO_CLIENTE where PC_ENVIO_OK < 2 and PC_GUARDADO = 1")
|
||||
If f.RowCount > 0 Then
|
||||
f.Position = 0
|
||||
x = f.GetInt("cuantos")
|
||||
End If
|
||||
Return x
|
||||
End Sub
|
||||
|
||||
'Manda a web los pedidos GUARDADOS con ENVIO_OK = 0 y los pone en 1.
|
||||
Sub mandaGuardados
|
||||
Log(">>>>>>> MANDA GUARDADOS")
|
||||
@@ -67,6 +83,7 @@ Sub mandaGuardados
|
||||
c = skmt.ExecQuery("SELECT * FROM PEDIDO_CLIENTE where PC_ENVIO_OK < 2 and PC_GUARDADO = 1")
|
||||
Log($"Pedido_Cliente PENDIENTE: ${c.RowCount}"$)
|
||||
If c.RowCount > 0 Then
|
||||
pedidoGuardando($"Guardando ..."$)
|
||||
For i = 0 To c.RowCount - 1
|
||||
c.Position = i
|
||||
Log($"${c.GetString("PC_CLIENTE")}|${c.GetString("PC_FECHA")}|${c.GetString("PC_ENVIO_OK")}|"$)
|
||||
@@ -100,30 +117,16 @@ End Sub
|
||||
'Revisa que los pedidos con envio_ok < 2 esten completos en web y los pone en 2.
|
||||
Sub revisaGuardados
|
||||
Log(">>>>>>> VALIDA GUARDADOS")
|
||||
'' Dim PCNoArts As String
|
||||
'' Dim PCMonto As String
|
||||
'' Dim PCNoArts As String
|
||||
'' Dim PCMonto As String
|
||||
Private almacen As String = Subs.traeAlmacen
|
||||
Private laRuta As String = Subs.traeRuta
|
||||
c = skmt.ExecQuery("SELECT * FROM PEDIDO_CLIENTE where PC_ENVIO_OK = 1")
|
||||
Log($"Pedido_Cliente VALIDAR: ${c.RowCount}"$)
|
||||
If c.RowCount > 0 Then
|
||||
For i = 0 To c.RowCount - 1
|
||||
c.Position = i
|
||||
Log($"${c.GetString("PC_CLIENTE")}|${c.GetString("PC_FECHA")}|${c.GetString("PC_ENVIO_OK")}|"$)
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "validaPC_Intmex"
|
||||
cmd.Parameters = Array As Object(c.GetString("PC_CLIENTE"), c.GetString("PC_USER"), c.GetString("PC_FECHA"), almacen, laRuta)
|
||||
' PCNoArts = c.GetString("PC_NOART")
|
||||
' PCMonto = c.GetString("PC_MONTO")
|
||||
reqManager.ExecuteCommand(cmd , $"ins_revisaGuardados_head_${c.GetString("PC_CLIENTE")}"$)
|
||||
Next
|
||||
End If
|
||||
|
||||
'PEDIDO (Pendientes)
|
||||
c = skmt.ExecQuery($"SELECT * FROM PEDIDO where PE_ENVIO_OK = 1"$)
|
||||
Log($"Pedido VALIDAR: ${c.RowCount}"$)
|
||||
Log($"Pedidos a VALIDAR: ${c.RowCount}"$)
|
||||
If c.RowCount > 0 Then
|
||||
pedidoEnviando($"Enviando ..."$)
|
||||
For i = 0 To c.RowCount - 1
|
||||
c.Position=i
|
||||
Dim cmd As DBCommand
|
||||
@@ -134,6 +137,40 @@ Sub revisaGuardados
|
||||
' Log($">>>> INS_PEDIDO= ${C.GetString("PE_CEDIS")},${almacen},${C.GetString("PE_COSTO_TOT")},${C.GetString("PE_COSTOU")},${C.GetString("PE_CANT")}, ${C.GetString("PE_PRONOMBRE")}, ${C.GetString("PE_PROID")}, ${C.GetString("PE_CLIENTE")}, ${C.GetString("PE_FECHA")}, ${C.GetString("PE_USUARIO")}, ${C.GetString("PE_RUTA")}, ${C.GetString("PE_COSTO_SIN")}, ${C.GetString("PE_DESC")}, ${c.GetString("PE_FOLIO")}, ${PCNoArts}, ${PCMonto}, ${PCMonto}, ${c.GetString("PE_TICKET")}"$)
|
||||
Next
|
||||
End If
|
||||
|
||||
Sleep(5000)
|
||||
|
||||
' Subir los productos del pedido, y en el jobdone revisar si ya se enviaron todos los de ese pedido (verificar con AffectedRows = 1), si ya se enviaron,
|
||||
' entonces Y SOLO ENTONCES, subir el header del pedido y validarlo con AffectedRows = 1.
|
||||
|
||||
'PEDIDO CLIENTE
|
||||
c = skmt.ExecQuery("SELECT * FROM PEDIDO_CLIENTE where PC_ENVIO_OK = 1")
|
||||
Log($"Pedidos_Cliente a VALIDAR: ${c.RowCount}"$)
|
||||
If c.RowCount > 0 Then
|
||||
pedidoEnviando($"Enviando ..."$)
|
||||
For i = 0 To c.RowCount - 1
|
||||
Private cuantosProdsPedido As Int = 0
|
||||
c.Position = i
|
||||
' Traemos la cantidad de productos "validados" de PEDIDO.
|
||||
Private x As Cursor = Starter.skmt.ExecQuery($"select sum(pe_cant) as cuantos from pedido where pe_cliente = '${c.GetString("PC_CLIENTE")}' and pe_envio_ok = 2"$)
|
||||
If x.RowCount > 0 Then
|
||||
x.Position = 0
|
||||
cuantosProdsPedido = x.GetInt("cuantos")
|
||||
End If
|
||||
Log($"Articulos en cliente ${c.GetString("PC_CLIENTE")}: P:${cuantosProdsPedido}, PC:${c.GetInt("PC_NOART")}"$)
|
||||
' Si los productos validados en PEDIDO coinciden con los productos de PEDIDO_CLIENTE, entonces validamos el header.
|
||||
If cuantosProdsPedido = c.GetInt("PC_NOART") Then
|
||||
Log($"${c.GetString("PC_CLIENTE")}|${c.GetString("PC_FECHA")}|${c.GetString("PC_ENVIO_OK")}|"$)
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "validaPC_Intmex"
|
||||
cmd.Parameters = Array As Object(c.GetString("PC_CLIENTE"), c.GetString("PC_USER"), c.GetString("PC_FECHA"), almacen, laRuta)
|
||||
' PCNoArts = c.GetString("PC_NOART")
|
||||
' PCMonto = c.GetString("PC_MONTO")
|
||||
reqManager.ExecuteCommand(cmd , $"ins_revisaGuardados_head_${c.GetString("PC_CLIENTE")}"$)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
c.Close
|
||||
End Sub
|
||||
|
||||
@@ -145,7 +182,8 @@ Sub revisaCantsYMontosTotales
|
||||
Private laRuta As String = Subs.traeRuta
|
||||
c = skmt.ExecQuery("SELECT * FROM PEDIDO_CLIENTE where PC_ENVIO_OK = 2 or 1") ' El uno del final es para que SIEMPRE revise las cantidades y montos, por si se borra la orden desde web, para que se envíe NUEVAMENTE.
|
||||
Log($"Pedidos a VALIDAR (Cants y Montos): ${c.RowCount}"$)
|
||||
If c.RowCount>0 Then
|
||||
If c.RowCount > 0 Then
|
||||
totalAValidar = c.RowCount
|
||||
For i=0 To c.RowCount -1
|
||||
c.Position=i
|
||||
Dim cmd As DBCommand
|
||||
@@ -172,7 +210,6 @@ Sub JobDone(Job As HttpJob)
|
||||
Log("JOBDONE VALIDADOR RUTA")
|
||||
Subs.logJobDoneResultados(resultado)
|
||||
End If
|
||||
|
||||
' PEDIDOS GUARDADOS HEAD
|
||||
If resultado.Tag.As(String).IndexOf("ins_mandaGuardados_head_") > -1 Then
|
||||
Log("ins_mandaGuardados_head_")
|
||||
@@ -185,6 +222,7 @@ Sub JobDone(Job As HttpJob)
|
||||
skmt.ExecNonQuery($"update PEDIDO_CLIENTE set PC_ENVIO_OK = 1 where PC_CLIENTE = '${pars(3)}'"$)
|
||||
End If
|
||||
Next
|
||||
' pedidoGuardando("Listo")
|
||||
End If
|
||||
' PEDIDOS GUARDADOS PRODS
|
||||
Dim resultado As DBResult = reqManager.HandleJob(Job)
|
||||
@@ -224,7 +262,7 @@ Sub JobDone(Job As HttpJob)
|
||||
' REVISA GUARDADOS HEAD
|
||||
If resultado.Tag.As(String).IndexOf("ins_revisaGuardados_head_") > -1 Then
|
||||
Log("ins_revisaGuardados_head_")
|
||||
Subs.logJobDoneResultados(resultado)
|
||||
Subs.logJobDoneResultados(resultado)
|
||||
Private cliente As String= resultado.Tag
|
||||
cliente = cliente.SubString(cliente.IndexOf("_") + 22)
|
||||
Log(cliente)
|
||||
@@ -238,7 +276,10 @@ Sub JobDone(Job As HttpJob)
|
||||
End If
|
||||
' REVISA CANTIDADES Y MONTOS TOTALES
|
||||
If resultado.Tag.As(String).IndexOf("validaCantsCostosTotales_") > -1 Then
|
||||
pedidoValidando($"Validando ..."$)
|
||||
totalAValidar = totalAValidar - 1
|
||||
Log("validaCantsCostosTotales_")
|
||||
Log("totalAValidar: " & totalAValidar)
|
||||
Subs.logJobDoneResultados(resultado)
|
||||
Private cliente As String= resultado.Tag
|
||||
cliente = cliente.SubString(cliente.IndexOf("_")+1)
|
||||
@@ -270,6 +311,10 @@ Sub JobDone(Job As HttpJob)
|
||||
skmt.ExecNonQuery($"update PEDIDO set PE_ENVIO_OK = 0 where PE_CLIENTE = '${pars(1)}'"$)
|
||||
End If
|
||||
Next
|
||||
If totalAValidar <= 0 Then
|
||||
totalAValidar = 0
|
||||
validacionTerminada("Listo!!")
|
||||
End If
|
||||
End If
|
||||
' VALIDA CANTIDADES Y COSTOS TOTALES
|
||||
If resultado.Tag.As(String).IndexOf("validaCCT2_") > -1 Then
|
||||
@@ -284,4 +329,36 @@ Sub JobDone(Job As HttpJob)
|
||||
End If
|
||||
Job.Release
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub pedidoGuardando(msg As String)
|
||||
Log("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& - Guardando")
|
||||
If SubExists(CallBack, EventName & "_Guardando") Then
|
||||
Log("GGG")
|
||||
CallSub2(CallBack, EventName & "_Guardando", msg)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub pedidoEnviando(msg As String)
|
||||
' Log("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& - Enviando")
|
||||
If SubExists(CallBack, EventName & "_Enviando") Then
|
||||
' Log("EEE")
|
||||
CallSub2(CallBack, EventName & "_Enviando", msg)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub pedidoValidando(msg As String)
|
||||
' Log("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& - Validadndo")
|
||||
If SubExists(CallBack, EventName & "_Validando") Then
|
||||
' Log("VVVV")
|
||||
CallSub2(CallBack, EventName & "_Validando", msg)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Sub validacionTerminada(msg As String)
|
||||
Log("&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& - Terminado")
|
||||
If SubExists(CallBack, EventName & "_Terminado") Then
|
||||
' Log("VVVV")
|
||||
CallSub2(CallBack, EventName & "_Terminado", msg)
|
||||
End If
|
||||
End Sub
|
||||
Binary file not shown.
@@ -164,7 +164,7 @@ Version=12.8
|
||||
#Region Project Attributes
|
||||
#ApplicationLabel: Intmex
|
||||
#VersionCode: 1
|
||||
#VersionName: 5.03.25
|
||||
#VersionName: 5.05.11
|
||||
'SupportedOrientations possible values: unspecified, landscape or portrait.
|
||||
#SupportedOrientations: portrait
|
||||
#CanInstallToExternalStorage: False
|
||||
|
||||
@@ -65,14 +65,14 @@ ModuleClosedNodes1=
|
||||
ModuleClosedNodes10=
|
||||
ModuleClosedNodes11=
|
||||
ModuleClosedNodes12=
|
||||
ModuleClosedNodes13=3
|
||||
ModuleClosedNodes13=4,5,6
|
||||
ModuleClosedNodes14=11
|
||||
ModuleClosedNodes15=
|
||||
ModuleClosedNodes16=
|
||||
ModuleClosedNodes17=
|
||||
ModuleClosedNodes18=
|
||||
ModuleClosedNodes19=
|
||||
ModuleClosedNodes2=
|
||||
ModuleClosedNodes2=6
|
||||
ModuleClosedNodes20=
|
||||
ModuleClosedNodes21=
|
||||
ModuleClosedNodes22=
|
||||
@@ -81,7 +81,7 @@ ModuleClosedNodes24=
|
||||
ModuleClosedNodes25=2
|
||||
ModuleClosedNodes26=
|
||||
ModuleClosedNodes27=1
|
||||
ModuleClosedNodes28=
|
||||
ModuleClosedNodes28=3,7,8,9,11,12
|
||||
ModuleClosedNodes29=
|
||||
ModuleClosedNodes3=
|
||||
ModuleClosedNodes30=
|
||||
@@ -91,6 +91,6 @@ ModuleClosedNodes6=
|
||||
ModuleClosedNodes7=
|
||||
ModuleClosedNodes8=
|
||||
ModuleClosedNodes9=
|
||||
NavigationStack=C_Nota,ListView1_ItemLongClick,165,0,C_Nota,B4XPage_Appear,57,0,C_Nota,borra_Click,154,6,C_RespaldoDiario,Class_Globals,0,0,C_Promos,Class_Globals,18,0,Diseñador Visual,pedido.bal,-100,1,C_Productos,b_terminar1_Click,770,0,Diseñador Visual,productos.bal,-100,3,C_Productos,lv_prodsPedido_ItemLongClick,987,4,C_Validador,Class_Globals,10,0,C_Validador,revisaCantsYMontosTotales,153,0
|
||||
NavigationStack=C_Principal,cargar_Click,886,0,C_Principal,Class_Globals,212,2,C_Principal,B4XPage_Created,303,0,Starter,Service_Start,58,0,Starter,tConexion_Tick,83,0,B4XMainPage,JobDone,441,6,C_Principal,b_muestraPendientes_Click,2681,4,Diseñador Visual,principal.bal,-100,6,C_TicketsDia,B4XPage_Appear,94,0,C_Principal,val_Guardando,2688,0
|
||||
SelectedBuild=0
|
||||
VisibleModules=2,28,14,9,4,20,29,15,16,18
|
||||
VisibleModules=28,2,13,20,14,9,4,29,27,17,18
|
||||
|
||||
135
B4A/Starter.bas
135
B4A/Starter.bas
@@ -24,8 +24,9 @@ Sub Process_Globals
|
||||
' Dim DBReqServer As String = "http://11.0.0.119:1781"
|
||||
' Dim DBReqServer As String = "http://10.0.0.205:1783"
|
||||
' Dim DBReqServer As String = "http://192.168.100.10:1781"
|
||||
Dim Timer1 As Timer
|
||||
Dim Interval As Int = 10
|
||||
Dim Timer1, tConexion As Timer
|
||||
Dim Interval As Int = 300
|
||||
Dim IntervalC As Int = 10
|
||||
Dim ruta As String = File.DirInternal
|
||||
'Para los Logs
|
||||
Private logs As StringBuilder
|
||||
@@ -36,6 +37,7 @@ Sub Process_Globals
|
||||
Dim tabla As String
|
||||
Dim MAC_IMPRESORA As String
|
||||
Dim utimaPagina As String
|
||||
Dim senial As Int = 1
|
||||
End Sub
|
||||
|
||||
Sub Service_Create
|
||||
@@ -45,6 +47,8 @@ Sub Service_Create
|
||||
s.Initialize(Me, "Subs") 'Inicializamos la clase Subs
|
||||
skmt = s.inicializaBD(File.DirInternal, "kmt.db")
|
||||
' CallSubDelayed(FirebaseMessaging, "SubscribeToTopics") 'Para Push FirebaseMessaging
|
||||
tConexion.Initialize("tConexion", IntervalC * 1000)
|
||||
tConexion.Enabled = True
|
||||
Timer1.Initialize("Timer1", Interval * 1000)
|
||||
Timer1.Enabled = True
|
||||
' 'Para los Logs
|
||||
@@ -62,6 +66,13 @@ Sub Service_Start (StartingIntent As Intent)
|
||||
If s.traeDBReqServerDeBD(skmt) <> "N/A" And s.traeDBReqServerDeBD(skmt) <> "" Then DBReqServer = s.traeDBReqServerDeBD(skmt)
|
||||
reqManager.Initialize(Me, DBReqServer)
|
||||
Log($"Starter - |${DBReqServer}|"$)
|
||||
|
||||
' Dim ctxt As JavaObject
|
||||
' ctxt.InitializeContext
|
||||
' Dim TelephonyManager As JavaObject = ctxt.RunMethod("getSystemService", Array("phone"))
|
||||
' Dim listener As JavaObject
|
||||
' listener.InitializeNewInstance(Application.PackageName & ".starter.ResilientPhoneListener", Null)
|
||||
' TelephonyManager.RunMethod("listen", Array(listener, 0x00000100))
|
||||
End Sub
|
||||
|
||||
Private Sub Timer1_Tick
|
||||
@@ -69,6 +80,16 @@ Private Sub Timer1_Tick
|
||||
ENVIA_ULTIMA_GPS
|
||||
End Sub
|
||||
|
||||
Private Sub tConexion_Tick
|
||||
' Log("Next run " & DateTime.Time(DateTime.Now + Interval * 1000))
|
||||
' ENVIA_ULTIMA_GPS
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "select_fecha"
|
||||
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "ping") 'Usamos el "reqManager" de Mainpage para que usar el jobDone de ahi!!
|
||||
' Log("tConexion")
|
||||
End Sub
|
||||
|
||||
Sub GPS_LocationChanged (Location1 As Location)
|
||||
' CallSub2(Main, "GPS_LocationChanged", Location1)
|
||||
End Sub
|
||||
@@ -82,7 +103,7 @@ Sub Service_Destroy
|
||||
End Sub
|
||||
|
||||
Sub ENVIA_ULTIMA_GPS
|
||||
Dim logger As Boolean = False
|
||||
Dim logger As Boolean = True
|
||||
If logger Then LogColor("Iniciamos ENVIA_ULTIMA_GPS", Colors.Magenta)
|
||||
Dim cmd As DBCommand
|
||||
' cmd.Initialize
|
||||
@@ -90,12 +111,13 @@ Sub ENVIA_ULTIMA_GPS
|
||||
' B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "fechat")
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "UPDATE_INTMEX_ACTUAL2_GPS"
|
||||
cmd.Name = "UPDATE_INTMEX_ACTUAL3_GPS"
|
||||
If B4XPages.MainPage.lat_gps.Length < 15 Then B4XPages.MainPage.lat_gps = B4XPages.MainPage.lat_gps&"0"
|
||||
cmd.Parameters = Array As Object(B4XPages.MainPage.montoActual, B4XPages.MainPage.clientestotal, B4XPages.MainPage.clientesventa,B4XPages.MainPage.clientesvisitados,B4XPages.MainPage.lat_gps,B4XPages.MainPage.lon_gps,B4XPages.MainPage.batt,0, 0, 0,B4XPages.MainPage.ALMACEN,B4XPages.MainPage.rutapreventa)
|
||||
If logger Then Log($"montoActual: ${B4XPages.MainPage.montoActual}, cTotal: ${B4XPages.MainPage.clientestotal}, cVenta: ${B4XPages.MainPage.clientesventa}, cVisitados: ${B4XPages.MainPage.clientesvisitados}, ${B4XPages.MainPage.lat_gps}, ${B4XPages.MainPage.lon_gps}, Batt: ${B4XPages.MainPage.batt}, 0, 0, 0, Almacen: ${B4XPages.MainPage.ALMACEN}, Ruta: ${B4XPages.MainPage.rutapreventa}"$)
|
||||
cmd.Parameters = Array As Object(B4XPages.MainPage.montoActual, B4XPages.MainPage.clientestotal, B4XPages.MainPage.clientesventa,B4XPages.MainPage.clientesvisitados,B4XPages.MainPage.lat_gps,B4XPages.MainPage.lon_gps,B4XPages.MainPage.batt,0, 0, 0, Application.VersionName,senial,B4XPages.MainPage.ALMACEN,B4XPages.MainPage.rutapreventa)
|
||||
If logger Then Log($"montoActual: ${B4XPages.MainPage.montoActual}, cTotal: ${B4XPages.MainPage.clientestotal}, cVenta: ${B4XPages.MainPage.clientesventa}, cVisitados: ${B4XPages.MainPage.clientesvisitados}, ${B4XPages.MainPage.lat_gps}, ${B4XPages.MainPage.lon_gps}, Batt: ${B4XPages.MainPage.batt}, 0, 0, 0, ${Application.VersionName},${senial},Almacen: ${B4XPages.MainPage.ALMACEN}, Ruta: ${B4XPages.MainPage.rutapreventa}"$)
|
||||
reqManager.ExecuteCommand(cmd, "inst_visitas")
|
||||
skmt.ExecNonQuery2("Update cat_variables set CAT_VA_VALOR = ? WHERE CAT_VA_DESCRIPCION = ?" , Array As String(DateTime.Time(DateTime.Now),"HoraIngreso"))
|
||||
|
||||
'Reiniciamos el timer para cuando llamamos el Sub desde "seleccion"
|
||||
Timer1.Enabled = False
|
||||
Timer1.Interval = Interval * 1000
|
||||
@@ -129,4 +151,103 @@ Sub reinicializaReqManager(srv As String)
|
||||
DBReqServer = srv
|
||||
reqManager.Initialize(Me, srv)
|
||||
LogColor(srv, Colors.red)
|
||||
End Sub
|
||||
End Sub
|
||||
|
||||
Sub Signal_Changedx (SignalStrengh As Object)
|
||||
Dim s2 As JavaObject = SignalStrengh
|
||||
Private theSignal As String = s2.RunMethod("getGsmSignalStrength", Null)
|
||||
Log(theSignal)
|
||||
ToastMessageShow(theSignal, False)
|
||||
End Sub
|
||||
|
||||
'Sub Signal_Changed (strength As Int)
|
||||
' Log($"Intensidad de señal recibida: ${strength}"$)
|
||||
' ToastMessageShow($"Intensidad de señal recibida: ${strength}"$, False)
|
||||
' ' Procesar el valor según el tipo de red
|
||||
' If strength >= 0 And strength <= 31 Then
|
||||
' ' GSM: convertir a dBm aproximado
|
||||
' Dim dBm As Int = -113 + strength * 2
|
||||
' Log($"Señal GSM: ${strength} (~${dBm} dBm)"$)
|
||||
' ToastMessageShow($"Señal GSM: ${strength} (~${dBm} dBm)"$, False)
|
||||
' Else If strength < 0 Then
|
||||
' ' CDMA/LTE: ya está en dBm
|
||||
' Log($"Señal CDMA/LTE: ${strength} dBm"$)
|
||||
' ToastMessageShow($"Señal GSM: ${strength} (~${dBm} dBm)"$, False)
|
||||
' Else If strength = 99 Then
|
||||
' Log("Señal desconocida o error")
|
||||
' ToastMessageShow("Señal desconicida", False)
|
||||
' End If
|
||||
'End Sub
|
||||
|
||||
|
||||
|
||||
'if Java
|
||||
'
|
||||
'import android.telephony.*;
|
||||
'import android.os.Build;
|
||||
'Public static class MyPhoneStateListener extends PhoneStateListener {
|
||||
'Public MyPhoneStateListener() {
|
||||
'}
|
||||
'Public void onSignalStrengthsChanged(SignalStrength signalStrength) {
|
||||
' anywheresoftware.b4a.BA.Log("onSignalStrengthsChanged");
|
||||
'
|
||||
' int strengthValue;
|
||||
'
|
||||
' Try {
|
||||
' If (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
' strengthValue = signalStrength.getLevel(); // 0-4
|
||||
' } Else {
|
||||
' If (signalStrength.isGsm()) {
|
||||
' strengthValue = signalStrength.getGsmSignalStrength(); // 0-31, 99 es desconocido
|
||||
' } Else {
|
||||
' strengthValue = signalStrength.getCdmaDbm();
|
||||
' }
|
||||
' }
|
||||
'
|
||||
' // Pasar solo el valor entero, no el objeto SignalStrength completo
|
||||
' starter.processBA.raiseEventFromUI(Null, "signal_changed", strengthValue);
|
||||
'
|
||||
' } Catch (Exception e) {
|
||||
' anywheresoftware.b4a.BA.Log("Error: " + e.getMessage());
|
||||
' starter.processBA.raiseEventFromUI(Null, "signal_changed", 99); // Valor por defecto en caso de error
|
||||
' }
|
||||
'}
|
||||
'}
|
||||
'End If
|
||||
|
||||
|
||||
#if Java
|
||||
|
||||
import android.telephony.*;
|
||||
import android.os.Build;
|
||||
public static class ResilientPhoneListener extends PhoneStateListener {
|
||||
private long lastUpdate = 0;
|
||||
|
||||
@Override
|
||||
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
|
||||
lastUpdate = System.currentTimeMillis();
|
||||
anywheresoftware.b4a.BA.Log("onSignalStrengthsChanged");
|
||||
|
||||
int strengthValue;
|
||||
try {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
strengthValue = signalStrength.getLevel();
|
||||
} else {
|
||||
if (signalStrength.isGsm()) {
|
||||
strengthValue = signalStrength.getGsmSignalStrength();
|
||||
} else {
|
||||
strengthValue = signalStrength.getCdmaDbm();
|
||||
}
|
||||
}
|
||||
starter.processBA.raiseEventFromUI(null, "signal_changed", strengthValue);
|
||||
} catch (Exception e) {
|
||||
starter.processBA.raiseEventFromUI(null, "signal_changed", 99);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isAlive() {
|
||||
return (System.currentTimeMillis() - lastUpdate) < 120000;
|
||||
}
|
||||
|
||||
}
|
||||
#End If
|
||||
Reference in New Issue
Block a user