- VERSION 5.03.03
- Promos por monto. - Encuestas con modulo de Alan para subir archivo con clientes que SI deben de ver la encuesta. - Correccion de la funcion Subs.revisaHora, que manda "falso" aun cuando las horas estan bien ... solo se puso que mandara siempre "true", hay que arreglarla!!
@@ -753,10 +753,11 @@ Sub cargar_Click
|
||||
|
||||
cmd.Initialize
|
||||
cmd.Name = "SELECT_HIST_ENCUESTA_KELL"
|
||||
cmd.Parameters = Array As Object( e_ruta.text, ALMACEN)
|
||||
cmd.Parameters = Array As Object( e_ruta.text, ALMACEN,e_ruta.text, ALMACEN,e_ruta.text, ALMACEN,e_ruta.text, ALMACEN )
|
||||
reqManager.ExecuteQuery(cmd , 0, "HIST_ENCUESTA2")
|
||||
Log($"${e_ruta.text}, ${ALMACEN},${e_ruta.text}, ${ALMACEN},${e_ruta.text}, ${ALMACEN},${e_ruta.text}, ${ALMACEN}"$)
|
||||
|
||||
|
||||
' ruta , ALMACEN, ruta , ALMACEN, ruta, ALMACEN, ruta, ALMACEN,
|
||||
|
||||
cmd.Initialize
|
||||
cmd.Name = "SELECT_EXHIBIDOR_RUTA_KELL"
|
||||
@@ -1785,7 +1786,7 @@ Sub JobDone(Job As HttpJob)
|
||||
Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("HORA", Starter.HORA))
|
||||
Next
|
||||
If Not(Subs.revisaHora) Then
|
||||
Log("***************** HORA INCORRECTA")
|
||||
LogColor("***************** HORA INCORRECTA",Colors.red)
|
||||
MsgboxAsync("La hora del equipo NO coincide con la hora del servidor, es necesario corregirla", "AVISO IMPORTANTE")
|
||||
End If
|
||||
End If
|
||||
|
||||
360
B4A/DBRequestManager1.bas
Normal file
@@ -0,0 +1,360 @@
|
||||
B4A=true
|
||||
Group=Default Group
|
||||
ModulesStructureVersion=1
|
||||
Type=Class
|
||||
Version=6.8
|
||||
@EndOfDesignText@
|
||||
''Class module
|
||||
Sub Class_Globals
|
||||
Private mTarget As Object
|
||||
Type DBResult (Tag As Object, Columns As Map, Rows As List)
|
||||
Type DBCommand (Name As String, Parameters() As Object)
|
||||
Private link As String
|
||||
Private bc As ByteConverter
|
||||
Private T_NULL = 0, T_STRING = 1, T_SHORT = 2, T_INT = 3, T_LONG = 4, T_FLOAT = 5 _
|
||||
,T_DOUBLE = 6, T_BOOLEAN = 7, T_BLOB = 8 As Byte
|
||||
Private VERSION As Float = 0.9
|
||||
Private tempArray(1) As Object
|
||||
Dim jobTagAnterior As String = "" 'Mod por CHV - 211109
|
||||
Dim reqsList, timesList As List
|
||||
Dim inicioRequest As Long 'ignore
|
||||
Dim inicioJobDone As Long 'ignore
|
||||
Dim inicioRequestMap, inicioJobDoneMap As Map
|
||||
End Sub
|
||||
|
||||
'Target - The module that handles JobDone (usually Me).
|
||||
'ConnectorLink - URL of the Java server.
|
||||
Public Sub Initialize (Target As Object, ConnectorLink As String)
|
||||
mTarget = Target
|
||||
link = ConnectorLink
|
||||
End Sub
|
||||
|
||||
'Sends a query request.
|
||||
'Command - Query name and parameters.
|
||||
'Limit - Maximum rows to return or 0 for no limit.
|
||||
'Tag - An object that will be returned in the result.
|
||||
Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object)
|
||||
Dim j As HttpJob
|
||||
Dim ms As OutputStream
|
||||
Dim out2 As OutputStream = StartJob(j, ms, Tag)
|
||||
' If reqsList.IsInitialized Then reqsList.Add(Tag)
|
||||
' If timesList.IsInitialized Then timesList.Add(DateTime.now)
|
||||
|
||||
WriteObject(Command.Name, out2)
|
||||
WriteInt(Limit, out2)
|
||||
WriteList(Command.Parameters, out2)
|
||||
out2.Close
|
||||
j.PostBytes(link & "?method=query", ms.ToBytesArray)
|
||||
End Sub
|
||||
|
||||
'Sends a query request.
|
||||
'Command - Query name and parameters.
|
||||
'Limit - Maximum rows to return or 0 for no limit.
|
||||
'Tag - An object that will be returned in the result.
|
||||
'Timeout - The http request timeout in ms, or 0 if default (30 secs)
|
||||
Public Sub ExecuteQuery3(Command As DBCommand, Limit As Int, Tag As Object, Timeout As Int) 'Mod por CHV, agregué el parametro Timeout - 211229
|
||||
Dim j As HttpJob
|
||||
Dim ms As OutputStream
|
||||
Dim out2 As OutputStream = StartJob(j,ms, Tag)
|
||||
WriteObject(Command.Name, out2)
|
||||
WriteInt(Limit, out2)
|
||||
WriteList(Command.Parameters, out2)
|
||||
out2.Close
|
||||
j.PostBytes(link & "?method=query", ms.ToBytesArray)
|
||||
If Timeout <> 0 Then j.GetRequest.Timeout = Timeout
|
||||
End Sub
|
||||
|
||||
'Executes a batch of (non-select) commands.
|
||||
'ListOfCommands - List of the commands that will be executes.
|
||||
'Tag - An object that will be returned in the result.
|
||||
Public Sub ExecuteBatch(ListOfCommands As List, Tag As Object)
|
||||
Dim j As HttpJob
|
||||
Dim ms As OutputStream
|
||||
Dim out2 As OutputStream = StartJob(j, ms, Tag)
|
||||
WriteInt(ListOfCommands.Size, out2)
|
||||
For Each Command As DBCommand In ListOfCommands
|
||||
WriteObject(Command.Name, out2)
|
||||
WriteList(Command.Parameters, out2)
|
||||
Next
|
||||
out2.Close
|
||||
j.PostBytes(link & "?method=batch", ms.ToBytesArray)
|
||||
End Sub
|
||||
|
||||
'Similar to ExecuteBatch. Sends a single command.
|
||||
Public Sub ExecuteCommand(Command As DBCommand, Tag As Object)
|
||||
' If reqsList.IsInitialized Then reqsList.Add(Tag)
|
||||
' If timesList.IsInitialized Then timesList.Add(DateTime.now)
|
||||
ExecuteBatch(Array As DBCommand(Command), Tag)
|
||||
End Sub
|
||||
|
||||
Private Sub StartJob(j As HttpJob, MemoryStream As OutputStream, Tag As Object) As OutputStream
|
||||
' inicioRequest = DateTime.now
|
||||
If reqsList.IsInitialized Then reqsList.Add(Tag)
|
||||
If timesList.IsInitialized Then timesList.Add(DateTime.now)
|
||||
j.Initialize("DBRequest", mTarget)
|
||||
j.Tag = Tag
|
||||
MemoryStream.InitializeToBytesArray(0)
|
||||
Dim compress As CompressedStreams
|
||||
Dim out As OutputStream = compress.WrapOutputStream(MemoryStream, "gzip")
|
||||
WriteObject(VERSION, out)
|
||||
Return out
|
||||
End Sub
|
||||
|
||||
Private Sub WriteList(Parameters As List, out As OutputStream)
|
||||
Dim data() As Byte
|
||||
If Parameters = Null Or Parameters.IsInitialized = False Then
|
||||
Dim Parameters As List
|
||||
Parameters.Initialize
|
||||
End If
|
||||
data = bc.IntsToBytes(Array As Int(Parameters.Size))
|
||||
out.WriteBytes(data, 0, data.Length)
|
||||
For Each o As Object In Parameters
|
||||
WriteObject(o, out)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub WriteObject(o As Object, out As OutputStream)
|
||||
Dim data() As Byte
|
||||
tempArray(0) = o
|
||||
If tempArray(0) = Null Then
|
||||
out.WriteBytes(Array As Byte(T_NULL), 0, 1)
|
||||
Else If tempArray(0) Is Short Then
|
||||
out.WriteBytes(Array As Byte(T_SHORT), 0, 1)
|
||||
data = bc.ShortsToBytes(Array As Short(o))
|
||||
Else If tempArray(0) Is Int Then
|
||||
out.WriteBytes(Array As Byte(T_INT), 0, 1)
|
||||
data = bc.IntsToBytes(Array As Int(o))
|
||||
Else If tempArray(0) Is Float Then
|
||||
out.WriteBytes(Array As Byte(T_FLOAT), 0, 1)
|
||||
data = bc.FloatsToBytes(Array As Float(o))
|
||||
Else If tempArray(0) Is Double Then
|
||||
out.WriteBytes(Array As Byte(T_DOUBLE), 0, 1)
|
||||
data = bc.DoublesToBytes(Array As Double(o))
|
||||
Else If tempArray(0) Is Long Then
|
||||
out.WriteBytes(Array As Byte(T_LONG), 0, 1)
|
||||
data = bc.LongsToBytes(Array As Long(o))
|
||||
Else If tempArray(0) Is Boolean Then
|
||||
out.WriteBytes(Array As Byte(T_BOOLEAN), 0, 1)
|
||||
Dim b As Boolean = 0
|
||||
Dim data(1) As Byte
|
||||
If b Then data(0) = 1 Else data(0) = 0
|
||||
Else If GetType(tempArray(0)) = "[B" Then
|
||||
data = o
|
||||
out.WriteBytes(Array As Byte(T_BLOB), 0, 1)
|
||||
WriteInt(data.Length, out)
|
||||
Else 'If o Is String Then (treat all other values as string)
|
||||
out.WriteBytes(Array As Byte(T_STRING), 0, 1)
|
||||
data = bc.StringToBytes(o, "UTF8")
|
||||
WriteInt(data.Length, out)
|
||||
End If
|
||||
If data.Length > 0 Then out.WriteBytes(data, 0, data.Length)
|
||||
End Sub
|
||||
|
||||
Private Sub ReadObject(In As InputStream) As Object
|
||||
Dim data(1) As Byte
|
||||
In.ReadBytes(data, 0, 1)
|
||||
Select data(0)
|
||||
Case T_NULL
|
||||
Return Null
|
||||
Case T_SHORT
|
||||
Dim data(2) As Byte
|
||||
Return bc.ShortsFromBytes(ReadBytesFully(In, data, data.Length))(0)
|
||||
Case T_INT
|
||||
Dim data(4) As Byte
|
||||
Return bc.IntsFromBytes(ReadBytesFully(In, data, data.Length))(0)
|
||||
Case T_LONG
|
||||
Dim data(8) As Byte
|
||||
Return bc.LongsFromBytes(ReadBytesFully(In, data, data.Length))(0)
|
||||
Case T_FLOAT
|
||||
Dim data(4) As Byte
|
||||
Return bc.FloatsFromBytes(ReadBytesFully(In, data, data.Length))(0)
|
||||
Case T_DOUBLE
|
||||
Dim data(8) As Byte
|
||||
Return bc.DoublesFromBytes(ReadBytesFully(In, data, data.Length))(0)
|
||||
Case T_BOOLEAN
|
||||
Dim b As Byte = ReadByte(In)
|
||||
Return b = 1
|
||||
Case T_BLOB
|
||||
Dim len As Int = ReadInt(In)
|
||||
Dim data(len) As Byte
|
||||
Return ReadBytesFully(In, data, data.Length)
|
||||
Case Else
|
||||
Dim len As Int = ReadInt(In)
|
||||
Dim data(len) As Byte
|
||||
ReadBytesFully(In, data, data.Length)
|
||||
Return BytesToString(data, 0, data.Length, "UTF8")
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Private Sub ReadBytesFully(In As InputStream, Data() As Byte, Len As Int) As Byte()
|
||||
Dim count = 0, read As Int
|
||||
Do While count < Len And read > -1
|
||||
read = In.ReadBytes(Data, count, Len - count)
|
||||
count = count + read
|
||||
Loop
|
||||
Return Data
|
||||
End Sub
|
||||
|
||||
Private Sub WriteInt(i As Int, out As OutputStream)
|
||||
Dim data() As Byte
|
||||
data = bc.IntsToBytes(Array As Int(i))
|
||||
out.WriteBytes(data, 0, data.Length)
|
||||
End Sub
|
||||
|
||||
Private Sub ReadInt(In As InputStream) As Int
|
||||
Dim data(4) As Byte
|
||||
Return bc.IntsFromBytes(ReadBytesFully(In, data, data.Length))(0)
|
||||
End Sub
|
||||
|
||||
Private Sub ReadByte(In As InputStream) As Byte
|
||||
Dim data(1) As Byte
|
||||
In.ReadBytes(data, 0, 1)
|
||||
Return data(0)
|
||||
End Sub
|
||||
|
||||
'Handles the Job result and returns a DBResult.
|
||||
Public Sub HandleJob(Job As HttpJob) As DBResult
|
||||
If jobTagAnterior <> Job.Tag Then
|
||||
' inicioJobDone = DateTime.Now 'ignore
|
||||
If inicioJobDoneMap.IsInitialized Then inicioJobDoneMap.Put(Job.Tag, DateTime.Now)
|
||||
' tiempos.Put(Job.taskId, CreateMap("inicioJobDone":inicioJobDone))
|
||||
' Log(tiempos)
|
||||
' Log("############# " & Job.taskId)
|
||||
End If
|
||||
Dim In As InputStream = Job.GetInputStream
|
||||
Dim cs As CompressedStreams
|
||||
In = cs.WrapInputStream(In, "gzip")
|
||||
Dim serverVersion As Float = ReadObject(In) 'ignore
|
||||
Dim method As String = ReadObject(In)
|
||||
Dim table As DBResult
|
||||
table.Initialize
|
||||
table.Columns.Initialize
|
||||
table.rows.Initialize
|
||||
table.Tag = Job.Tag
|
||||
If method = "query" Then
|
||||
Dim numberOfColumns As Int = ReadInt(In)
|
||||
For i = 0 To numberOfColumns - 1
|
||||
table.Columns.Put(ReadObject(In), i)
|
||||
Next
|
||||
Do While ReadByte(In) = 1
|
||||
Dim rowObjects(numberOfColumns) As Object
|
||||
table.rows.Add(rowObjects)
|
||||
For col = 0 To numberOfColumns - 1
|
||||
Dim o As Object = ReadObject(In)
|
||||
rowObjects(col) = o
|
||||
Next
|
||||
Loop
|
||||
Else If method = "batch" Then
|
||||
table.Columns.Put("AffectedRows", 0)
|
||||
Dim rows As Int = ReadInt(In)
|
||||
For i = 0 To rows - 1
|
||||
table.rows.Add(Array As Object(ReadInt(In)))
|
||||
Next
|
||||
End If
|
||||
In.Close
|
||||
' Log("HandleJob: " & (DateTime.Now - start))'Comentado por CHV - 211112
|
||||
If jobTagAnterior <> table.Tag Then
|
||||
LogColor("HandleJob: '"&table.Tag&"'" & " - Registros: " & table.Rows.Size, Colors.RGB(115, 0, 140)) 'Mod por CHV - 211109
|
||||
End If
|
||||
jobTagAnterior = table.Tag 'Mod por CHV - 211109
|
||||
Return table
|
||||
End Sub
|
||||
|
||||
'Reads a file and returns the file as a bytes array.
|
||||
Public Sub FileToBytes(Dir As String, FileName As String) As Byte()
|
||||
Dim out As OutputStream
|
||||
out.InitializeToBytesArray(0)
|
||||
Dim In As InputStream = File.OpenInput(Dir, FileName)
|
||||
File.Copy2(In, out)
|
||||
out.Close
|
||||
Return out.ToBytesArray
|
||||
End Sub
|
||||
|
||||
'Converts an image to a bytes array (for BLOB fields).
|
||||
Public Sub ImageToBytes(Image As Bitmap) As Byte()
|
||||
Dim out As OutputStream
|
||||
out.InitializeToBytesArray(0)
|
||||
Image.WriteToStream(out, 100, "JPEG")
|
||||
out.Close
|
||||
Return out.ToBytesArray
|
||||
End Sub
|
||||
|
||||
'Converts a bytes array to an image (for BLOB fields).
|
||||
Public Sub BytesToImage(bytes() As Byte) As Bitmap
|
||||
Dim In As InputStream
|
||||
In.InitializeFromBytesArray(bytes, 0, bytes.Length)
|
||||
Dim bmp As Bitmap
|
||||
bmp.Initialize2(In)
|
||||
Return bmp
|
||||
End Sub
|
||||
|
||||
'Prints the table to the logs.
|
||||
Public Sub PrintTable(Table As DBResult)
|
||||
Log("Tag: " & Table.Tag & ", Columns: " & Table.Columns.Size & ", Rows: " & Table.Rows.Size)
|
||||
Dim sb As StringBuilder
|
||||
sb.Initialize
|
||||
For Each col In Table.Columns.Keys
|
||||
sb.Append(col).Append(TAB)
|
||||
Next
|
||||
Log(sb.ToString)
|
||||
For Each row() As Object In Table.Rows
|
||||
Dim sb As StringBuilder
|
||||
sb.Initialize
|
||||
For Each record As Object In row
|
||||
sb.Append(record).Append(TAB)
|
||||
Next
|
||||
Log(sb.ToString)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Sub requestTimes(tag As String) As Map 'ignore
|
||||
Private times As Map
|
||||
times.Initialize
|
||||
' Log("###### " & tag)
|
||||
' Log(reqsList.IsInitialized)
|
||||
If reqsList.IsInitialized Then
|
||||
' Log(reqsList)
|
||||
' Private pos As Int = reqsList.IndexOf(tag)
|
||||
If inicioRequestMap.ContainsKey(tag) Then
|
||||
inicioRequest = inicioRequestMap.Get(tag)
|
||||
' Log(">>>>>>> From inicioRequestMap")
|
||||
End If
|
||||
If inicioJobDoneMap.ContainsKey(tag) Then
|
||||
inicioJobDone = inicioJobDoneMap.Get(tag)
|
||||
' Log(">>>>>>> From inicioJobDoneMap")
|
||||
End If
|
||||
End If
|
||||
' Log($"${inicioJobDone} - ${inicioRequest}"$)
|
||||
Private requestTime As String = NumberFormat2(((inicioJobDone - inicioRequest) / 1000),1,5,0,False)
|
||||
Private JobDoneTime As String = NumberFormat2(((DateTime.Now - inicioJobDone) / 1000),1,5,0,False)
|
||||
times.Put("requestTime", requestTime)
|
||||
times.Put("jobDoneTime", JobDoneTime)
|
||||
times.Put("totalTime", NumberFormat2((JobDoneTime + requestTime),1,5,0,False))
|
||||
Return times
|
||||
End Sub
|
||||
|
||||
'Initializes request tracking
|
||||
Sub trackInit 'ignore
|
||||
Log(">>>>>>>>> TRACKINIT ")
|
||||
reqsList.Initialize
|
||||
timesList.Initialize
|
||||
inicioRequestMap.Initialize
|
||||
inicioJobDoneMap.Initialize
|
||||
End Sub
|
||||
|
||||
Sub trackNext(job As HttpJob)
|
||||
If reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
|
||||
Private quitamos As String = ""
|
||||
If reqsList.IndexOf(job.tag) <> -1 Then
|
||||
Private pos As Int = reqsList.IndexOf(job.tag)
|
||||
If pos <> -1 Then
|
||||
inicioRequestMap.Put(job.Tag, timesList.Get(pos))
|
||||
reqsList.RemoveAt(pos)
|
||||
timesList.RemoveAt(pos)
|
||||
End If
|
||||
quitamos = $"Quitamos ${job.tag} - "$
|
||||
End If
|
||||
LogColor(">>>>>> Requests: " & reqsList.Size & " - " & quitamos & reqsList, Colors.Blue)
|
||||
LogColor(">>>>>> inicioRequestMap:" & inicioRequestMap.Size & " - " & inicioRequestMap, Colors.Magenta)
|
||||
End If
|
||||
End Sub
|
||||
201
B4A/DBRequestManager2.bas
Normal file
@@ -0,0 +1,201 @@
|
||||
B4A=true
|
||||
Group=Default Group
|
||||
ModulesStructureVersion=1
|
||||
Type=Class
|
||||
Version=6.8
|
||||
@EndOfDesignText@
|
||||
'Requires support for resumable subs
|
||||
'Class module
|
||||
|
||||
Sub Class_Globals
|
||||
Private mTarget As Object
|
||||
Private link As String
|
||||
Private VERSION As Float = 2
|
||||
Dim reqsList, timesList As List
|
||||
Dim inicioRequest As Long 'ignore
|
||||
Dim inicioJobDone As Long 'ignore
|
||||
Dim inicioRequestMap, inicioJobDoneMap As Map
|
||||
End Sub
|
||||
|
||||
'Target - The module that handles JobDone (usually Me).
|
||||
'ConnectorLink - URL of the Java server.
|
||||
Public Sub Initialize (Target As Object, ConnectorLink As String)
|
||||
mTarget = Target
|
||||
link = ConnectorLink
|
||||
End Sub
|
||||
|
||||
'Sends a query request.
|
||||
'Command - Query name and parameters.
|
||||
'Limit - Maximum rows to return or 0 for no limit.
|
||||
'Tag - An object that will be returned in the result.
|
||||
Public Sub ExecuteQuery(Command As DBCommand, Limit As Int, Tag As Object) As HttpJob
|
||||
Dim ser As B4XSerializator
|
||||
Dim data() As Byte = ser.ConvertObjectToBytes(CreateMap("command": Command, "limit": Limit, "version": VERSION))
|
||||
Return SendJob(CreateJob, data, Tag, "query2")
|
||||
End Sub
|
||||
|
||||
Private Sub SendJob(j As HttpJob, Data() As Byte, Tag As Object, Method As String) As HttpJob
|
||||
j.Tag = Tag
|
||||
j.PostBytes(link & "?method=" & Method , Data)
|
||||
Return j
|
||||
End Sub
|
||||
|
||||
Private Sub CreateJob As HttpJob
|
||||
Dim j As HttpJob
|
||||
j.Initialize("DBRequest", mTarget)
|
||||
Return j
|
||||
End Sub
|
||||
|
||||
'Executes a batch of (non-select) commands.
|
||||
'ListOfCommands - List of the commands that will be executes.
|
||||
'Tag - An object that will be returned in the result.
|
||||
Public Sub ExecuteBatch(ListOfCommands As List, Tag As Object) As HttpJob
|
||||
Dim j As HttpJob = CreateJob
|
||||
ExecuteBatchImpl(j, ListOfCommands, Tag)
|
||||
Return j
|
||||
End Sub
|
||||
|
||||
Private Sub ExecuteBatchImpl(Job As HttpJob, ListOfCommands As List, Tag As Object)
|
||||
Dim ser As B4XSerializator
|
||||
ser.ConvertObjectToBytesAsync(CreateMap("commands": ListOfCommands, "version": VERSION), "ser")
|
||||
Wait For (ser) ser_ObjectToBytes (Success As Boolean, Bytes() As Byte)
|
||||
If Success = False Then
|
||||
Log("Error building command: " & LastException)
|
||||
Return
|
||||
End If
|
||||
Dim ser As B4XSerializator = Sender
|
||||
SendJob(Job, Bytes, Tag, "batch2")
|
||||
End Sub
|
||||
|
||||
|
||||
'Similar to ExecuteBatch. Sends a single command.
|
||||
Public Sub ExecuteCommand(Command As DBCommand, Tag As Object) As HttpJob
|
||||
Return ExecuteBatch(Array As DBCommand(Command), Tag)
|
||||
End Sub
|
||||
|
||||
'Handles the Job result and returns a DBResult.
|
||||
'It is recommended to use HandleJobAsync instead.
|
||||
Public Sub HandleJob(Job As HttpJob) As DBResult
|
||||
Dim ser As B4XSerializator
|
||||
Dim data() As Byte = Bit.InputStreamToBytes(Job.GetInputStream)
|
||||
Dim res As DBResult = ser.ConvertBytesToObject(data)
|
||||
res.Tag = Job.Tag
|
||||
Return res
|
||||
End Sub
|
||||
'Handles the Job result and raises the Result event when the data is ready.
|
||||
|
||||
Public Sub HandleJobAsync(Job As HttpJob, EventName As String)
|
||||
Dim ser As B4XSerializator
|
||||
Dim data() As Byte = Bit.InputStreamToBytes(Job.GetInputStream)
|
||||
ser.ConvertBytesToObjectAsync(data, "ser")
|
||||
Wait For (ser) ser_BytesToObject (Success As Boolean, NewObject As Object)
|
||||
If Success = False Then
|
||||
Log("Error reading response: " & LastException)
|
||||
Return
|
||||
End If
|
||||
Dim res As DBResult = NewObject
|
||||
res.Tag = Job.Tag
|
||||
CallSubDelayed2(mTarget, EventName & "_result", res)
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
'Reads a file and returns the file as a bytes array.
|
||||
Public Sub FileToBytes(Dir As String, FileName As String) As Byte()
|
||||
Dim out As OutputStream
|
||||
out.InitializeToBytesArray(0)
|
||||
Dim In As InputStream = File.OpenInput(Dir, FileName)
|
||||
File.Copy2(In, out)
|
||||
out.Close
|
||||
Return out.ToBytesArray
|
||||
End Sub
|
||||
#if Not(B4J)
|
||||
'Converts an image to a bytes array (for BLOB fields).
|
||||
Public Sub ImageToBytes(Image As Bitmap) As Byte()
|
||||
Dim out As OutputStream
|
||||
out.InitializeToBytesArray(0)
|
||||
Image.WriteToStream(out, 100, "JPEG")
|
||||
out.Close
|
||||
Return out.ToBytesArray
|
||||
End Sub
|
||||
'Converts a bytes array to an image (for BLOB fields).
|
||||
Public Sub BytesToImage(bytes() As Byte) As Bitmap
|
||||
Dim In As InputStream
|
||||
In.InitializeFromBytesArray(bytes, 0, bytes.Length)
|
||||
Dim bmp As Bitmap
|
||||
bmp.Initialize2(In)
|
||||
Return bmp
|
||||
End Sub
|
||||
#End If
|
||||
|
||||
'Prints the table to the logs.
|
||||
Public Sub PrintTable(Table As DBResult)
|
||||
Log("Tag: " & Table.Tag & ", Columns: " & Table.Columns.Size & ", Rows: " & Table.Rows.Size)
|
||||
Dim sb As StringBuilder
|
||||
sb.Initialize
|
||||
For Each col In Table.Columns.Keys
|
||||
sb.Append(col).Append(TAB)
|
||||
Next
|
||||
Log(sb.ToString)
|
||||
For Each row() As Object In Table.Rows
|
||||
Dim sb As StringBuilder
|
||||
sb.Initialize
|
||||
For Each record As Object In row
|
||||
sb.Append(record).Append(TAB)
|
||||
Next
|
||||
Log(sb.ToString)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Sub requestTimes(tag As String) As Map 'ignore
|
||||
Private times As Map
|
||||
times.Initialize
|
||||
' Log("###### " & tag)
|
||||
' Log(reqsList.IsInitialized)
|
||||
If reqsList.IsInitialized Then
|
||||
' Log(reqsList)
|
||||
' Private pos As Int = reqsList.IndexOf(tag)
|
||||
If inicioRequestMap.ContainsKey(tag) Then
|
||||
inicioRequest = inicioRequestMap.Get(tag)
|
||||
' Log(">>>>>>> From inicioRequestMap")
|
||||
End If
|
||||
If inicioJobDoneMap.ContainsKey(tag) Then
|
||||
inicioJobDone = inicioJobDoneMap.Get(tag)
|
||||
' Log(">>>>>>> From inicioJobDoneMap")
|
||||
End If
|
||||
End If
|
||||
' Log($"${inicioJobDone} - ${inicioRequest}"$)
|
||||
Private requestTime As String = NumberFormat2(((inicioJobDone - inicioRequest) / 1000),1,5,0,False)
|
||||
Private JobDoneTime As String = NumberFormat2(((DateTime.Now - inicioJobDone) / 1000),1,5,0,False)
|
||||
times.Put("requestTime", requestTime)
|
||||
times.Put("jobDoneTime", JobDoneTime)
|
||||
times.Put("totalTime", NumberFormat2((JobDoneTime + requestTime),1,5,0,False))
|
||||
Return times
|
||||
End Sub
|
||||
|
||||
'Initializes request tracking
|
||||
Sub trackInit 'ignore
|
||||
Log(">>>>>>>>> TRACKINIT ")
|
||||
reqsList.Initialize
|
||||
timesList.Initialize
|
||||
inicioRequestMap.Initialize
|
||||
inicioJobDoneMap.Initialize
|
||||
End Sub
|
||||
|
||||
Sub trackNext(job As HttpJob)
|
||||
If reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
|
||||
Private quitamos As String = ""
|
||||
If reqsList.IndexOf(job.tag) <> -1 Then
|
||||
Private pos As Int = reqsList.IndexOf(job.tag)
|
||||
If pos <> -1 Then
|
||||
inicioRequestMap.Put(job.Tag, timesList.Get(pos))
|
||||
reqsList.RemoveAt(pos)
|
||||
timesList.RemoveAt(pos)
|
||||
End If
|
||||
quitamos = $"Quitamos ${job.tag} - "$
|
||||
End If
|
||||
LogColor(">>>>>> Requests: " & reqsList.Size & " - " & quitamos & reqsList, Colors.Blue)
|
||||
LogColor(">>>>>> inicioRequestMap:" & inicioRequestMap.Size & " - " & inicioRequestMap, Colors.Magenta)
|
||||
End If
|
||||
End Sub
|
||||
BIN
B4A/Files/marker-azul.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
B4A/Files/marker-azul1.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
B4A/Files/marker-azul2.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
BIN
B4A/Files/marker-azul3.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
B4A/Files/marker-azul4.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
B4A/Files/marker-azul5.png
Normal file
|
After Width: | Height: | Size: 2.6 KiB |
BIN
B4A/Files/marker-rojo.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
B4A/Files/marker-rojo1.png
Normal file
|
After Width: | Height: | Size: 4.3 KiB |
BIN
B4A/Files/marker-rojo2.png
Normal file
|
After Width: | Height: | Size: 3.8 KiB |
BIN
B4A/Files/marker-verde.png
Normal file
|
After Width: | Height: | Size: 4.0 KiB |
@@ -1,352 +1,362 @@
|
||||
Build1=Default,kelloggsV2.keymon.lat,HU2_PUBLIC
|
||||
File1=alcancia.png
|
||||
File10=cacahuates_blanco2.png
|
||||
File100=marker-azul-38.png
|
||||
File101=marker-azul-39.png
|
||||
File102=marker-azul-4.png
|
||||
File103=marker-azul-40.png
|
||||
File104=marker-azul-41.png
|
||||
File105=marker-azul-42.png
|
||||
File106=marker-azul-43.png
|
||||
File107=marker-azul-44.png
|
||||
File108=marker-azul-45.png
|
||||
File109=marker-azul-46.png
|
||||
File100=marker-azul-34.png
|
||||
File101=marker-azul-35.png
|
||||
File102=marker-azul-36.png
|
||||
File103=marker-azul-37.png
|
||||
File104=marker-azul-38.png
|
||||
File105=marker-azul-39.png
|
||||
File106=marker-azul4.png
|
||||
File107=marker-azul-4.png
|
||||
File108=marker-azul-40.png
|
||||
File109=marker-azul-41.png
|
||||
File11=cacahuates_blanco3.png
|
||||
File110=marker-azul-47.png
|
||||
File111=marker-azul-48.png
|
||||
File112=marker-azul-49.png
|
||||
File113=marker-azul-5.png
|
||||
File114=marker-azul-50.png
|
||||
File115=marker-azul-51.png
|
||||
File116=marker-azul-52.png
|
||||
File117=marker-azul-53.png
|
||||
File118=marker-azul-54.png
|
||||
File119=marker-azul-55.png
|
||||
File110=marker-azul-42.png
|
||||
File111=marker-azul-43.png
|
||||
File112=marker-azul-44.png
|
||||
File113=marker-azul-45.png
|
||||
File114=marker-azul-46.png
|
||||
File115=marker-azul-47.png
|
||||
File116=marker-azul-48.png
|
||||
File117=marker-azul-49.png
|
||||
File118=marker-azul5.png
|
||||
File119=marker-azul-5.png
|
||||
File12=cacahuates_chico.png
|
||||
File120=marker-azul-56.png
|
||||
File121=marker-azul-57.png
|
||||
File122=marker-azul-58.png
|
||||
File123=marker-azul-59.png
|
||||
File124=marker-azul-6.png
|
||||
File125=marker-azul-60.png
|
||||
File126=marker-azul-61.png
|
||||
File127=marker-azul-62.png
|
||||
File128=marker-azul-63.png
|
||||
File129=marker-azul-64.png
|
||||
File120=marker-azul-50.png
|
||||
File121=marker-azul-51.png
|
||||
File122=marker-azul-52.png
|
||||
File123=marker-azul-53.png
|
||||
File124=marker-azul-54.png
|
||||
File125=marker-azul-55.png
|
||||
File126=marker-azul-56.png
|
||||
File127=marker-azul-57.png
|
||||
File128=marker-azul-58.png
|
||||
File129=marker-azul-59.png
|
||||
File13=cacahuates_original.jpeg
|
||||
File130=marker-azul-65.png
|
||||
File131=marker-azul-66.png
|
||||
File132=marker-azul-67.png
|
||||
File133=marker-azul-68.png
|
||||
File134=marker-azul-69.png
|
||||
File135=marker-azul-7.png
|
||||
File136=marker-azul-70.png
|
||||
File137=marker-azul-71.png
|
||||
File138=marker-azul-72.png
|
||||
File139=marker-azul-73.png
|
||||
File130=marker-azul-6.png
|
||||
File131=marker-azul-60.png
|
||||
File132=marker-azul-61.png
|
||||
File133=marker-azul-62.png
|
||||
File134=marker-azul-63.png
|
||||
File135=marker-azul-64.png
|
||||
File136=marker-azul-65.png
|
||||
File137=marker-azul-66.png
|
||||
File138=marker-azul-67.png
|
||||
File139=marker-azul-68.png
|
||||
File14=cacahuates_original2.bmp
|
||||
File140=marker-azul-74.png
|
||||
File141=marker-azul-75.png
|
||||
File142=marker-azul-76.png
|
||||
File143=marker-azul-77.png
|
||||
File144=marker-azul-78.png
|
||||
File145=marker-azul-79.png
|
||||
File146=marker-azul-8.png
|
||||
File147=marker-azul-80.png
|
||||
File148=marker-azul-81.png
|
||||
File149=marker-azul-82.png
|
||||
File140=marker-azul-69.png
|
||||
File141=marker-azul-7.png
|
||||
File142=marker-azul-70.png
|
||||
File143=marker-azul-71.png
|
||||
File144=marker-azul-72.png
|
||||
File145=marker-azul-73.png
|
||||
File146=marker-azul-74.png
|
||||
File147=marker-azul-75.png
|
||||
File148=marker-azul-76.png
|
||||
File149=marker-azul-77.png
|
||||
File15=cacahuates_original2.jpg
|
||||
File150=marker-azul-83.png
|
||||
File151=marker-azul-84.png
|
||||
File152=marker-azul-85.png
|
||||
File153=marker-azul-86.png
|
||||
File154=marker-azul-87.png
|
||||
File155=marker-azul-88.png
|
||||
File156=marker-azul-89.png
|
||||
File157=marker-azul-9.png
|
||||
File158=marker-azul-90.png
|
||||
File159=marker-azul-91.png
|
||||
File150=marker-azul-78.png
|
||||
File151=marker-azul-79.png
|
||||
File152=marker-azul-8.png
|
||||
File153=marker-azul-80.png
|
||||
File154=marker-azul-81.png
|
||||
File155=marker-azul-82.png
|
||||
File156=marker-azul-83.png
|
||||
File157=marker-azul-84.png
|
||||
File158=marker-azul-85.png
|
||||
File159=marker-azul-86.png
|
||||
File16=cacahuates_original3.bmp
|
||||
File160=marker-azul-92.png
|
||||
File161=marker-azul-93.png
|
||||
File162=marker-azul-94.png
|
||||
File163=marker-azul-95.png
|
||||
File164=marker-azul-96.png
|
||||
File165=marker-azul-97.png
|
||||
File166=marker-azul-98.png
|
||||
File167=marker-azul-99.png
|
||||
File168=marker-rojo-0.png
|
||||
File169=marker-rojo-1.png
|
||||
File160=marker-azul-87.png
|
||||
File161=marker-azul-88.png
|
||||
File162=marker-azul-89.png
|
||||
File163=marker-azul-9.png
|
||||
File164=marker-azul-90.png
|
||||
File165=marker-azul-91.png
|
||||
File166=marker-azul-92.png
|
||||
File167=marker-azul-93.png
|
||||
File168=marker-azul-94.png
|
||||
File169=marker-azul-95.png
|
||||
File17=carrito.png
|
||||
File170=marker-rojo-10.png
|
||||
File171=marker-rojo-100.png
|
||||
File172=marker-rojo-11.png
|
||||
File173=marker-rojo-12.png
|
||||
File174=marker-rojo-13.png
|
||||
File175=marker-rojo-14.png
|
||||
File176=marker-rojo-15.png
|
||||
File177=marker-rojo-16.png
|
||||
File178=marker-rojo-17.png
|
||||
File179=marker-rojo-18.png
|
||||
File170=marker-azul-96.png
|
||||
File171=marker-azul-97.png
|
||||
File172=marker-azul-98.png
|
||||
File173=marker-azul-99.png
|
||||
File174=marker-rojo.png
|
||||
File175=marker-rojo-0.png
|
||||
File176=marker-rojo1.png
|
||||
File177=marker-rojo-1.png
|
||||
File178=marker-rojo-10.png
|
||||
File179=marker-rojo-100.png
|
||||
File18=checklist.bal
|
||||
File180=marker-rojo-19.png
|
||||
File181=marker-rojo-2.png
|
||||
File182=marker-rojo-20.png
|
||||
File183=marker-rojo-21.png
|
||||
File184=marker-rojo-22.png
|
||||
File185=marker-rojo-23.png
|
||||
File186=marker-rojo-24.png
|
||||
File187=marker-rojo-25.png
|
||||
File188=marker-rojo-26.png
|
||||
File189=marker-rojo-27.png
|
||||
File180=marker-rojo-11.png
|
||||
File181=marker-rojo-12.png
|
||||
File182=marker-rojo-13.png
|
||||
File183=marker-rojo-14.png
|
||||
File184=marker-rojo-15.png
|
||||
File185=marker-rojo-16.png
|
||||
File186=marker-rojo-17.png
|
||||
File187=marker-rojo-18.png
|
||||
File188=marker-rojo-19.png
|
||||
File189=marker-rojo2.png
|
||||
File19=checks.bal
|
||||
File190=marker-rojo-28.png
|
||||
File191=marker-rojo-29.png
|
||||
File192=marker-rojo-3.png
|
||||
File193=marker-rojo-30.png
|
||||
File194=marker-rojo-31.png
|
||||
File195=marker-rojo-32.png
|
||||
File196=marker-rojo-33.png
|
||||
File197=marker-rojo-34.png
|
||||
File198=marker-rojo-35.png
|
||||
File199=marker-rojo-36.png
|
||||
File190=marker-rojo-2.png
|
||||
File191=marker-rojo-20.png
|
||||
File192=marker-rojo-21.png
|
||||
File193=marker-rojo-22.png
|
||||
File194=marker-rojo-23.png
|
||||
File195=marker-rojo-24.png
|
||||
File196=marker-rojo-25.png
|
||||
File197=marker-rojo-26.png
|
||||
File198=marker-rojo-27.png
|
||||
File199=marker-rojo-28.png
|
||||
File2=alert2.png
|
||||
File20=cliente.bal
|
||||
File200=marker-rojo-37.png
|
||||
File201=marker-rojo-38.png
|
||||
File202=marker-rojo-39.png
|
||||
File203=marker-rojo-4.png
|
||||
File204=marker-rojo-40.png
|
||||
File205=marker-rojo-41.png
|
||||
File206=marker-rojo-42.png
|
||||
File207=marker-rojo-43.png
|
||||
File208=marker-rojo-44.png
|
||||
File209=marker-rojo-45.png
|
||||
File200=marker-rojo-29.png
|
||||
File201=marker-rojo-3.png
|
||||
File202=marker-rojo-30.png
|
||||
File203=marker-rojo-31.png
|
||||
File204=marker-rojo-32.png
|
||||
File205=marker-rojo-33.png
|
||||
File206=marker-rojo-34.png
|
||||
File207=marker-rojo-35.png
|
||||
File208=marker-rojo-36.png
|
||||
File209=marker-rojo-37.png
|
||||
File21=cliente.bal.bak
|
||||
File210=marker-rojo-46.png
|
||||
File211=marker-rojo-47.png
|
||||
File212=marker-rojo-48.png
|
||||
File213=marker-rojo-49.png
|
||||
File214=marker-rojo-5.png
|
||||
File215=marker-rojo-50.png
|
||||
File216=marker-rojo-51.png
|
||||
File217=marker-rojo-52.png
|
||||
File218=marker-rojo-53.png
|
||||
File219=marker-rojo-54.png
|
||||
File210=marker-rojo-38.png
|
||||
File211=marker-rojo-39.png
|
||||
File212=marker-rojo-4.png
|
||||
File213=marker-rojo-40.png
|
||||
File214=marker-rojo-41.png
|
||||
File215=marker-rojo-42.png
|
||||
File216=marker-rojo-43.png
|
||||
File217=marker-rojo-44.png
|
||||
File218=marker-rojo-45.png
|
||||
File219=marker-rojo-46.png
|
||||
File22=clientes.bal
|
||||
File220=marker-rojo-55.png
|
||||
File221=marker-rojo-56.png
|
||||
File222=marker-rojo-57.png
|
||||
File223=marker-rojo-58.png
|
||||
File224=marker-rojo-59.png
|
||||
File225=marker-rojo-6.png
|
||||
File226=marker-rojo-60.png
|
||||
File227=marker-rojo-61.png
|
||||
File228=marker-rojo-62.png
|
||||
File229=marker-rojo-63.png
|
||||
File220=marker-rojo-47.png
|
||||
File221=marker-rojo-48.png
|
||||
File222=marker-rojo-49.png
|
||||
File223=marker-rojo-5.png
|
||||
File224=marker-rojo-50.png
|
||||
File225=marker-rojo-51.png
|
||||
File226=marker-rojo-52.png
|
||||
File227=marker-rojo-53.png
|
||||
File228=marker-rojo-54.png
|
||||
File229=marker-rojo-55.png
|
||||
File23=detalle_promo.bal
|
||||
File230=marker-rojo-64.png
|
||||
File231=marker-rojo-65.png
|
||||
File232=marker-rojo-66.png
|
||||
File233=marker-rojo-67.png
|
||||
File234=marker-rojo-68.png
|
||||
File235=marker-rojo-69.png
|
||||
File236=marker-rojo-7.png
|
||||
File237=marker-rojo-70.png
|
||||
File238=marker-rojo-71.png
|
||||
File239=marker-rojo-72.png
|
||||
File230=marker-rojo-56.png
|
||||
File231=marker-rojo-57.png
|
||||
File232=marker-rojo-58.png
|
||||
File233=marker-rojo-59.png
|
||||
File234=marker-rojo-6.png
|
||||
File235=marker-rojo-60.png
|
||||
File236=marker-rojo-61.png
|
||||
File237=marker-rojo-62.png
|
||||
File238=marker-rojo-63.png
|
||||
File239=marker-rojo-64.png
|
||||
File24=durakelo.png
|
||||
File240=marker-rojo-73.png
|
||||
File241=marker-rojo-74.png
|
||||
File242=marker-rojo-75.png
|
||||
File243=marker-rojo-76.png
|
||||
File244=marker-rojo-77.png
|
||||
File245=marker-rojo-78.png
|
||||
File246=marker-rojo-79.png
|
||||
File247=marker-rojo-8.png
|
||||
File248=marker-rojo-80.png
|
||||
File249=marker-rojo-81.png
|
||||
File240=marker-rojo-65.png
|
||||
File241=marker-rojo-66.png
|
||||
File242=marker-rojo-67.png
|
||||
File243=marker-rojo-68.png
|
||||
File244=marker-rojo-69.png
|
||||
File245=marker-rojo-7.png
|
||||
File246=marker-rojo-70.png
|
||||
File247=marker-rojo-71.png
|
||||
File248=marker-rojo-72.png
|
||||
File249=marker-rojo-73.png
|
||||
File25=durakelo1.png
|
||||
File250=marker-rojo-82.png
|
||||
File251=marker-rojo-83.png
|
||||
File252=marker-rojo-84.png
|
||||
File253=marker-rojo-85.png
|
||||
File254=marker-rojo-86.png
|
||||
File255=marker-rojo-87.png
|
||||
File256=marker-rojo-88.png
|
||||
File257=marker-rojo-89.png
|
||||
File258=marker-rojo-9.png
|
||||
File259=marker-rojo-90.png
|
||||
File250=marker-rojo-74.png
|
||||
File251=marker-rojo-75.png
|
||||
File252=marker-rojo-76.png
|
||||
File253=marker-rojo-77.png
|
||||
File254=marker-rojo-78.png
|
||||
File255=marker-rojo-79.png
|
||||
File256=marker-rojo-8.png
|
||||
File257=marker-rojo-80.png
|
||||
File258=marker-rojo-81.png
|
||||
File259=marker-rojo-82.png
|
||||
File26=engrane.jpg
|
||||
File260=marker-rojo-91.png
|
||||
File261=marker-rojo-92.png
|
||||
File262=marker-rojo-93.png
|
||||
File263=marker-rojo-94.png
|
||||
File264=marker-rojo-95.png
|
||||
File265=marker-rojo-96.png
|
||||
File266=marker-rojo-97.png
|
||||
File267=marker-rojo-98.png
|
||||
File268=marker-rojo-99.png
|
||||
File269=marker-verde-0.png
|
||||
File260=marker-rojo-83.png
|
||||
File261=marker-rojo-84.png
|
||||
File262=marker-rojo-85.png
|
||||
File263=marker-rojo-86.png
|
||||
File264=marker-rojo-87.png
|
||||
File265=marker-rojo-88.png
|
||||
File266=marker-rojo-89.png
|
||||
File267=marker-rojo-9.png
|
||||
File268=marker-rojo-90.png
|
||||
File269=marker-rojo-91.png
|
||||
File27=engrane.png
|
||||
File270=marker-verde-1.png
|
||||
File271=marker-verde-10.png
|
||||
File272=marker-verde-100.png
|
||||
File273=marker-verde-11.png
|
||||
File274=marker-verde-12.png
|
||||
File275=marker-verde-13.png
|
||||
File276=marker-verde-14.png
|
||||
File277=marker-verde-15.png
|
||||
File278=marker-verde-16.png
|
||||
File279=marker-verde-17.png
|
||||
File270=marker-rojo-92.png
|
||||
File271=marker-rojo-93.png
|
||||
File272=marker-rojo-94.png
|
||||
File273=marker-rojo-95.png
|
||||
File274=marker-rojo-96.png
|
||||
File275=marker-rojo-97.png
|
||||
File276=marker-rojo-98.png
|
||||
File277=marker-rojo-99.png
|
||||
File278=marker-verde.png
|
||||
File279=marker-verde-0.png
|
||||
File28=engranes.png
|
||||
File280=marker-verde-18.png
|
||||
File281=marker-verde-19.png
|
||||
File282=marker-verde-2.png
|
||||
File283=marker-verde-20.png
|
||||
File284=marker-verde-21.png
|
||||
File285=marker-verde-22.png
|
||||
File286=marker-verde-23.png
|
||||
File287=marker-verde-24.png
|
||||
File288=marker-verde-25.png
|
||||
File289=marker-verde-26.png
|
||||
File280=marker-verde-1.png
|
||||
File281=marker-verde-10.png
|
||||
File282=marker-verde-100.png
|
||||
File283=marker-verde-11.png
|
||||
File284=marker-verde-12.png
|
||||
File285=marker-verde-13.png
|
||||
File286=marker-verde-14.png
|
||||
File287=marker-verde-15.png
|
||||
File288=marker-verde-16.png
|
||||
File289=marker-verde-17.png
|
||||
File29=errormanager.bal
|
||||
File290=marker-verde-27.png
|
||||
File291=marker-verde-28.png
|
||||
File292=marker-verde-29.png
|
||||
File293=marker-verde-3.png
|
||||
File294=marker-verde-30.png
|
||||
File295=marker-verde-31.png
|
||||
File296=marker-verde-32.png
|
||||
File297=marker-verde-33.png
|
||||
File298=marker-verde-34.png
|
||||
File299=marker-verde-35.png
|
||||
File290=marker-verde-18.png
|
||||
File291=marker-verde-19.png
|
||||
File292=marker-verde-2.png
|
||||
File293=marker-verde-20.png
|
||||
File294=marker-verde-21.png
|
||||
File295=marker-verde-22.png
|
||||
File296=marker-verde-23.png
|
||||
File297=marker-verde-24.png
|
||||
File298=marker-verde-25.png
|
||||
File299=marker-verde-26.png
|
||||
File3=alerta.jpg
|
||||
File30=fondo_kmt.jpg
|
||||
File300=marker-verde-36.png
|
||||
File301=marker-verde-37.png
|
||||
File302=marker-verde-38.png
|
||||
File303=marker-verde-39.png
|
||||
File304=marker-verde-4.png
|
||||
File305=marker-verde-40.png
|
||||
File306=marker-verde-41.png
|
||||
File307=marker-verde-42.png
|
||||
File308=marker-verde-43.png
|
||||
File309=marker-verde-44.png
|
||||
File300=marker-verde-27.png
|
||||
File301=marker-verde-28.png
|
||||
File302=marker-verde-29.png
|
||||
File303=marker-verde-3.png
|
||||
File304=marker-verde-30.png
|
||||
File305=marker-verde-31.png
|
||||
File306=marker-verde-32.png
|
||||
File307=marker-verde-33.png
|
||||
File308=marker-verde-34.png
|
||||
File309=marker-verde-35.png
|
||||
File31=foto.bal
|
||||
File310=marker-verde-45.png
|
||||
File311=marker-verde-46.png
|
||||
File312=marker-verde-47.png
|
||||
File313=marker-verde-48.png
|
||||
File314=marker-verde-49.png
|
||||
File315=marker-verde-5.png
|
||||
File316=marker-verde-50.png
|
||||
File317=marker-verde-51.png
|
||||
File318=marker-verde-52.png
|
||||
File319=marker-verde-53.png
|
||||
File310=marker-verde-36.png
|
||||
File311=marker-verde-37.png
|
||||
File312=marker-verde-38.png
|
||||
File313=marker-verde-39.png
|
||||
File314=marker-verde-4.png
|
||||
File315=marker-verde-40.png
|
||||
File316=marker-verde-41.png
|
||||
File317=marker-verde-42.png
|
||||
File318=marker-verde-43.png
|
||||
File319=marker-verde-44.png
|
||||
File32=foto1.jpg
|
||||
File320=marker-verde-54.png
|
||||
File321=marker-verde-55.png
|
||||
File322=marker-verde-56.png
|
||||
File323=marker-verde-57.png
|
||||
File324=marker-verde-58.png
|
||||
File325=marker-verde-59.png
|
||||
File326=marker-verde-6.png
|
||||
File327=marker-verde-60.png
|
||||
File328=marker-verde-61.png
|
||||
File329=marker-verde-62.png
|
||||
File320=marker-verde-45.png
|
||||
File321=marker-verde-46.png
|
||||
File322=marker-verde-47.png
|
||||
File323=marker-verde-48.png
|
||||
File324=marker-verde-49.png
|
||||
File325=marker-verde-5.png
|
||||
File326=marker-verde-50.png
|
||||
File327=marker-verde-51.png
|
||||
File328=marker-verde-52.png
|
||||
File329=marker-verde-53.png
|
||||
File33=foto2.jpg
|
||||
File330=marker-verde-63.png
|
||||
File331=marker-verde-64.png
|
||||
File332=marker-verde-65.png
|
||||
File333=marker-verde-66.png
|
||||
File334=marker-verde-67.png
|
||||
File335=marker-verde-68.png
|
||||
File336=marker-verde-69.png
|
||||
File337=marker-verde-7.png
|
||||
File338=marker-verde-70.png
|
||||
File339=marker-verde-71.png
|
||||
File330=marker-verde-54.png
|
||||
File331=marker-verde-55.png
|
||||
File332=marker-verde-56.png
|
||||
File333=marker-verde-57.png
|
||||
File334=marker-verde-58.png
|
||||
File335=marker-verde-59.png
|
||||
File336=marker-verde-6.png
|
||||
File337=marker-verde-60.png
|
||||
File338=marker-verde-61.png
|
||||
File339=marker-verde-62.png
|
||||
File34=foto3.jpg
|
||||
File340=marker-verde-72.png
|
||||
File341=marker-verde-73.png
|
||||
File342=marker-verde-74.png
|
||||
File343=marker-verde-75.png
|
||||
File344=marker-verde-76.png
|
||||
File345=marker-verde-77.png
|
||||
File346=marker-verde-78.png
|
||||
File347=marker-verde-79.png
|
||||
File348=marker-verde-8.png
|
||||
File349=marker-verde-80.png
|
||||
File340=marker-verde-63.png
|
||||
File341=marker-verde-64.png
|
||||
File342=marker-verde-65.png
|
||||
File343=marker-verde-66.png
|
||||
File344=marker-verde-67.png
|
||||
File345=marker-verde-68.png
|
||||
File346=marker-verde-69.png
|
||||
File347=marker-verde-7.png
|
||||
File348=marker-verde-70.png
|
||||
File349=marker-verde-71.png
|
||||
File35=foto4.jpg
|
||||
File350=marker-verde-81.png
|
||||
File351=marker-verde-82.png
|
||||
File352=marker-verde-83.png
|
||||
File353=marker-verde-84.png
|
||||
File354=marker-verde-85.png
|
||||
File355=marker-verde-86.png
|
||||
File356=marker-verde-87.png
|
||||
File357=marker-verde-88.png
|
||||
File358=marker-verde-89.png
|
||||
File359=marker-verde-9.png
|
||||
File350=marker-verde-72.png
|
||||
File351=marker-verde-73.png
|
||||
File352=marker-verde-74.png
|
||||
File353=marker-verde-75.png
|
||||
File354=marker-verde-76.png
|
||||
File355=marker-verde-77.png
|
||||
File356=marker-verde-78.png
|
||||
File357=marker-verde-79.png
|
||||
File358=marker-verde-8.png
|
||||
File359=marker-verde-80.png
|
||||
File36=guardagestion.bal
|
||||
File360=marker-verde-90.png
|
||||
File361=marker-verde-91.png
|
||||
File362=marker-verde-92.png
|
||||
File363=marker-verde-93.png
|
||||
File364=marker-verde-94.png
|
||||
File365=marker-verde-95.png
|
||||
File366=marker-verde-96.png
|
||||
File367=marker-verde-97.png
|
||||
File368=marker-verde-98.png
|
||||
File369=marker-verde-99.png
|
||||
File360=marker-verde-81.png
|
||||
File361=marker-verde-82.png
|
||||
File362=marker-verde-83.png
|
||||
File363=marker-verde-84.png
|
||||
File364=marker-verde-85.png
|
||||
File365=marker-verde-86.png
|
||||
File366=marker-verde-87.png
|
||||
File367=marker-verde-88.png
|
||||
File368=marker-verde-89.png
|
||||
File369=marker-verde-9.png
|
||||
File37=guna_viejo.png
|
||||
File370=nota.bal
|
||||
File371=noventa.bal
|
||||
File372=nuevocliente.bal
|
||||
File373=palomita_verde.png
|
||||
File374=palomita_verde_original.png
|
||||
File375=pedido.bal
|
||||
File376=pedidoItem.bal
|
||||
File377=planfia_logo.png
|
||||
File378=planfia_logo_old.png
|
||||
File379=planfia_logo_old2.png
|
||||
File370=marker-verde-90.png
|
||||
File371=marker-verde-91.png
|
||||
File372=marker-verde-92.png
|
||||
File373=marker-verde-93.png
|
||||
File374=marker-verde-94.png
|
||||
File375=marker-verde-95.png
|
||||
File376=marker-verde-96.png
|
||||
File377=marker-verde-97.png
|
||||
File378=marker-verde-98.png
|
||||
File379=marker-verde-99.png
|
||||
File38=historico.bal
|
||||
File380=principal.bal
|
||||
File381=proditem.bal
|
||||
File382=productos.bal
|
||||
File383=productos2.bal
|
||||
File384=profina.jpg
|
||||
File385=profina.png
|
||||
File386=promociones.bal
|
||||
File387=qr.bal
|
||||
File388=rechazo.jpg
|
||||
File389=rojo.png
|
||||
File380=nota.bal
|
||||
File381=noventa.bal
|
||||
File382=nuevocliente.bal
|
||||
File383=palomita_verde.png
|
||||
File384=palomita_verde_original.png
|
||||
File385=pedido.bal
|
||||
File386=pedidoItem.bal
|
||||
File387=planfia_logo.png
|
||||
File388=planfia_logo_old.png
|
||||
File389=planfia_logo_old2.png
|
||||
File39=info_gral.resp
|
||||
File390=salma.jpg
|
||||
File391=salma.png
|
||||
File392=senial.jpg
|
||||
File393=sync.png
|
||||
File394=tache_rojo.png
|
||||
File395=tache_rojo_original.png
|
||||
File396=telefonos.bal
|
||||
File397=ticketsDia.bal
|
||||
File398=Tiendita.jpg
|
||||
File399=transporte.png
|
||||
File390=principal.bal
|
||||
File391=proditem.bal
|
||||
File392=productos.bal
|
||||
File393=productos2.bal
|
||||
File394=profina.jpg
|
||||
File395=profina.png
|
||||
File396=promociones.bal
|
||||
File397=qr.bal
|
||||
File398=rechazo.jpg
|
||||
File399=rojo.png
|
||||
File4=alerta_amarilla.png
|
||||
File40=infonavit1.jpg
|
||||
File400=verde.png
|
||||
File401=vista1.png
|
||||
File402=vista2.png
|
||||
File403=vista3.png
|
||||
File404=vista4.png
|
||||
File405=WhatsApp Image 2022-11-17 at 11.50.59 AM.jpeg
|
||||
File406=WhatsApp Image 2022-11-17 at 11.50.59 AM.jpg
|
||||
File407=whatsapp.png
|
||||
File408=whatsapp_original.png
|
||||
File409=WHATSTEL.jpeg
|
||||
File400=salma.jpg
|
||||
File401=salma.png
|
||||
File402=senial.jpg
|
||||
File403=sync.png
|
||||
File404=tache_rojo.png
|
||||
File405=tache_rojo_original.png
|
||||
File406=telefonos.bal
|
||||
File407=ticketsDia.bal
|
||||
File408=Tiendita.jpg
|
||||
File409=transporte.png
|
||||
File41=INVENTARIO (1).jpg
|
||||
File410=WHATSTEL.png
|
||||
File410=verde.png
|
||||
File411=vista1.png
|
||||
File412=vista2.png
|
||||
File413=vista3.png
|
||||
File414=vista4.png
|
||||
File415=WhatsApp Image 2022-11-17 at 11.50.59 AM.jpeg
|
||||
File416=WhatsApp Image 2022-11-17 at 11.50.59 AM.jpg
|
||||
File417=whatsapp.png
|
||||
File418=whatsapp_original.png
|
||||
File419=WHATSTEL.jpeg
|
||||
File42=INVENTARIO.jpg
|
||||
File420=WHATSTEL.png
|
||||
File43=inventario.PNG
|
||||
File44=itembuttonblue.png
|
||||
File45=itembuttonred.png
|
||||
@@ -373,42 +383,42 @@ File63=Malo.jpg
|
||||
File64=mapa.bal
|
||||
File65=mapa_rutas.bal
|
||||
File66=mapas.bal
|
||||
File67=marker-azul-0.png
|
||||
File68=marker-azul-1.png
|
||||
File69=marker-azul-10.png
|
||||
File67=marker-azul.png
|
||||
File68=marker-azul-0.png
|
||||
File69=marker-azul1.png
|
||||
File7=BLACNCO.jpg
|
||||
File70=marker-azul-100.png
|
||||
File71=marker-azul-11.png
|
||||
File72=marker-azul-12.png
|
||||
File73=marker-azul-13.png
|
||||
File74=marker-azul-14.png
|
||||
File75=marker-azul-15.png
|
||||
File76=marker-azul-16.png
|
||||
File77=marker-azul-17.png
|
||||
File78=marker-azul-18.png
|
||||
File79=marker-azul-19.png
|
||||
File70=marker-azul-1.png
|
||||
File71=marker-azul-10.png
|
||||
File72=marker-azul-100.png
|
||||
File73=marker-azul-11.png
|
||||
File74=marker-azul-12.png
|
||||
File75=marker-azul-13.png
|
||||
File76=marker-azul-14.png
|
||||
File77=marker-azul-15.png
|
||||
File78=marker-azul-16.png
|
||||
File79=marker-azul-17.png
|
||||
File8=cacahuates.png
|
||||
File80=marker-azul-2.png
|
||||
File81=marker-azul-20.png
|
||||
File82=marker-azul-21.png
|
||||
File83=marker-azul-22.png
|
||||
File84=marker-azul-23.png
|
||||
File85=marker-azul-24.png
|
||||
File86=marker-azul-25.png
|
||||
File87=marker-azul-26.png
|
||||
File88=marker-azul-27.png
|
||||
File89=marker-azul-28.png
|
||||
File80=marker-azul-18.png
|
||||
File81=marker-azul-19.png
|
||||
File82=marker-azul2.png
|
||||
File83=marker-azul-2.png
|
||||
File84=marker-azul-20.png
|
||||
File85=marker-azul-21.png
|
||||
File86=marker-azul-22.png
|
||||
File87=marker-azul-23.png
|
||||
File88=marker-azul-24.png
|
||||
File89=marker-azul-25.png
|
||||
File9=cacahuates_blanco.png
|
||||
File90=marker-azul-29.png
|
||||
File91=marker-azul-3.png
|
||||
File92=marker-azul-30.png
|
||||
File93=marker-azul-31.png
|
||||
File94=marker-azul-32.png
|
||||
File95=marker-azul-33.png
|
||||
File96=marker-azul-34.png
|
||||
File97=marker-azul-35.png
|
||||
File98=marker-azul-36.png
|
||||
File99=marker-azul-37.png
|
||||
File90=marker-azul-26.png
|
||||
File91=marker-azul-27.png
|
||||
File92=marker-azul-28.png
|
||||
File93=marker-azul-29.png
|
||||
File94=marker-azul3.png
|
||||
File95=marker-azul-3.png
|
||||
File96=marker-azul-30.png
|
||||
File97=marker-azul-31.png
|
||||
File98=marker-azul-32.png
|
||||
File99=marker-azul-33.png
|
||||
FileGroup1=Default Group
|
||||
FileGroup10=Default Group
|
||||
FileGroup100=Default Group
|
||||
@@ -756,7 +766,17 @@ FileGroup408=Default Group
|
||||
FileGroup409=Default Group
|
||||
FileGroup41=Default Group
|
||||
FileGroup410=Default Group
|
||||
FileGroup411=Default Group
|
||||
FileGroup412=Default Group
|
||||
FileGroup413=Default Group
|
||||
FileGroup414=Default Group
|
||||
FileGroup415=Default Group
|
||||
FileGroup416=Default Group
|
||||
FileGroup417=Default Group
|
||||
FileGroup418=Default Group
|
||||
FileGroup419=Default Group
|
||||
FileGroup42=Default Group
|
||||
FileGroup420=Default Group
|
||||
FileGroup43=Default Group
|
||||
FileGroup44=Default Group
|
||||
FileGroup45=Default Group
|
||||
@@ -879,7 +899,7 @@ Module6=C_Mapas
|
||||
Module7=C_Nota
|
||||
Module8=C_NoVenta
|
||||
Module9=C_NuevoCliente
|
||||
NumberOfFiles=410
|
||||
NumberOfFiles=420
|
||||
NumberOfLibraries=28
|
||||
NumberOfModules=30
|
||||
Version=12.8
|
||||
@@ -887,7 +907,7 @@ Version=12.8
|
||||
#Region Project Attributes
|
||||
#ApplicationLabel: Kelloggs Venta
|
||||
#VersionCode: 3000
|
||||
#VersionName: 5.03.02
|
||||
#VersionName: 5.03.03
|
||||
#SupportedOrientations: portrait
|
||||
#CanInstallToExternalStorage: False
|
||||
#BridgeLogger:true
|
||||
|
||||
@@ -76,7 +76,7 @@ ModuleClosedNodes2=
|
||||
ModuleClosedNodes20=
|
||||
ModuleClosedNodes21=
|
||||
ModuleClosedNodes22=
|
||||
ModuleClosedNodes23=1,3,4,5,6,7,8,9,11,12,13,14,15,17,18,21,22,24,25,26,27,28,29,30,31,32,33,35
|
||||
ModuleClosedNodes23=1,3,4,5,6,7,8,9,11,12,14,15,17,18,21,22,24,25,26,27,28,29,30,31,32,33,35
|
||||
ModuleClosedNodes24=
|
||||
ModuleClosedNodes25=4
|
||||
ModuleClosedNodes26=
|
||||
@@ -91,6 +91,6 @@ ModuleClosedNodes6=
|
||||
ModuleClosedNodes7=
|
||||
ModuleClosedNodes8=
|
||||
ModuleClosedNodes9=
|
||||
NavigationStack=C_Principal,cargar_Click,796,0,C_Principal,JobDone,1486,0,MAPA_RUTAS,MapFragment1_Ready,174,6,MAPA_RUTAS,CreateBitmapWithNumber,376,6,MAPA_RUTAS,inicio,361,0,Subs,procesaPromocion,1250,0,C_Principal,Class_Globals,0,0,C_Clientes,Class_Globals,0,0,Subs,revisaPromoPorMonto,1926,0,C_Cliente,B4XPage_Appear,758,6
|
||||
NavigationStack=C_Cliente,B4XPage_Appear,758,6,C_Principal,Class_Globals,1,0,C_Principal,SUBIR_INFO_PEDIDO,3023,0,C_Principal,cargar_Click,748,6,C_Principal,JobDone,1781,1,kms_helperSubs,RD_respalda_cat_detalle_paq,303,1,C_Cliente,Cuestionario,2315,0,MAPA_RUTAS,MapFragment1_Ready,151,1,Subs,CreateBitmapWithNumber,1983,0,Subs,revisaHora,1967,6,Subs,actualizaProducto,970,0
|
||||
SelectedBuild=0
|
||||
VisibleModules=1,28,11,3,29,12,4,13,7,9
|
||||
VisibleModules=1,28,11,3,29,12,4,13,7,9,23,25
|
||||
|
||||
@@ -154,7 +154,8 @@ Sub MapFragment1_Ready
|
||||
Tienda= c.GetString("CAT_CL_NOMBRE")
|
||||
NumSerie=c.GetInt("CAT_CL_NUM_SERIEFISICO")
|
||||
'MARK_AZUL = gmap.AddMarker2(LongitudRU,LatitudRu,Tienda, gmap.HUE_BLUE)
|
||||
MARK_AZUL = gmap.AddMarker3(LatitudRU, LongitudRU, CODIGO, LoadBitmap(File.DirAssets, "marker-azul-" & NumSerie &".png"))
|
||||
' MARK_AZUL = gmap.AddMarker3(LatitudRU, LongitudRU, CODIGO, LoadBitmap(File.DirAssets, "marker-azul-" & NumSerie &".png"))
|
||||
MARK_AZUL = gmap.AddMarker3(LatitudRU,LongitudRU,CODIGO, Subs.CreateBitmapWithNumber(LoadBitmap(File.DirAssets, "marker-azul.png"), NumSerie))
|
||||
MARK_AZUL.Snippet = Tienda
|
||||
Next
|
||||
c .Close
|
||||
|
||||
22
B4A/Subs.bas
@@ -1961,12 +1961,30 @@ Sub revisaHora As Boolean
|
||||
Private h As Cursor = Starter.skmt.ExecQuery("select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'HORA'")
|
||||
If h.RowCount > 0 Then
|
||||
h.Position = 0
|
||||
Log(h.GetInt("CAT_VA_VALOR"))
|
||||
Log(h.GetString("CAT_VA_VALOR"))
|
||||
Private hr As Int = h.GetString("CAT_VA_VALOR")
|
||||
DateTime.DateFormat = "HH"
|
||||
Private ahora As String = DateTime.Date(DateTime.Now)
|
||||
Log($"${h.GetInt("CAT_VA_VALOR")} >= ${(ahora - 2)} and ${h.GetInt("CAT_VA_VALOR")} <= ${(ahora + 2)}"$)
|
||||
Log($"${hr} >= ${(ahora - 2)} and ${hr} <= ${(ahora + 2)}"$)
|
||||
If h.GetInt("CAT_VA_VALOR") >= ahora - 2 And h.GetInt("CAT_VA_VALOR") <= ahora + 2 Then
|
||||
horaCorrecta = True
|
||||
End If
|
||||
End If
|
||||
Return horaCorrecta
|
||||
Return True
|
||||
End Sub
|
||||
|
||||
Sub CreateBitmapWithNumber(OriginalBitmap As Bitmap, Number As Int) As Bitmap 'ignore
|
||||
Dim NewBitmap As Bitmap
|
||||
NewBitmap.InitializeMutable(OriginalBitmap.Width, OriginalBitmap.Height)
|
||||
Dim Canvas As Canvas
|
||||
Canvas.Initialize2(NewBitmap)
|
||||
' Definir el rectángulo donde se dibujará el Bitmap
|
||||
Dim DestRect As Rect
|
||||
DestRect.Initialize(0, 0, OriginalBitmap.Width, OriginalBitmap.Height)
|
||||
' Dibujar la imagen original
|
||||
Canvas.DrawBitmap(OriginalBitmap, Null, DestRect)
|
||||
' Dibujar el número en el centro del Bitmap y configurar el estilo del texto
|
||||
Canvas.DrawText(Number, (OriginalBitmap.Width / 2), (OriginalBitmap.Height / 2.4), Typeface.DEFAULT, 15, Colors.White, "CENTER")
|
||||
Return NewBitmap
|
||||
End Sub
|
||||
@@ -295,15 +295,19 @@ Sub RD_respalda_cat_detalle_paq
|
||||
Private inicio As String = DateTime.Now
|
||||
' Log("Copiando CAT_DETALLES_PAQ ...")
|
||||
Private x As Cursor = skmt.ExecQuery("select * from CAT_DETALLES_PAQ")
|
||||
If x.RowCount > 0 Then
|
||||
Private lasCols As String = getTableColumnListName(skmt, "CAT_DETALLES_PAQ")
|
||||
rkmt.BeginTransaction
|
||||
rkmt.ExecNonQuery($"delete from CAT_DETALLES_PAQ where fecha = '${fechaHoy}'"$)
|
||||
rkmt.ExecNonQuery($"insert into CAT_DETALLES_PAQ (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_DETALLES_PAQ"$)
|
||||
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
|
||||
rkmt.EndTransaction
|
||||
LogColor("DP: " & ((DateTime.Now - inicio)/1000) & " segs", Colors.RGB(166,37,0))
|
||||
End If
|
||||
Try
|
||||
If x.RowCount > 0 Then
|
||||
Private lasCols As String = getTableColumnListName(skmt, "CAT_DETALLES_PAQ")
|
||||
rkmt.BeginTransaction
|
||||
rkmt.ExecNonQuery($"delete from CAT_DETALLES_PAQ where fecha = '${fechaHoy}'"$)
|
||||
rkmt.ExecNonQuery($"insert into CAT_DETALLES_PAQ (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_DETALLES_PAQ"$)
|
||||
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
|
||||
rkmt.EndTransaction
|
||||
LogColor("DP: " & ((DateTime.Now - inicio)/1000) & " segs", Colors.RGB(166,37,0))
|
||||
End If
|
||||
Catch
|
||||
Log(LastException)
|
||||
End Try
|
||||
x.Close
|
||||
End Sub
|
||||
|
||||
|
||||