v4.01.09ENC

This commit is contained in:
cvaldes1201
2024-01-09 16:56:59 -06:00
parent d334471e9a
commit 01194a1488
20 changed files with 1532 additions and 1614 deletions

View File

@@ -5,7 +5,7 @@ Type=Class
Version=9.85
@EndOfDesignText@
#Region Shared Files
'#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\Files"
'#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\Files"
'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True
'###########################################################################################################
'###################### PULL #############################################################
@@ -94,8 +94,6 @@ Sub Class_Globals
Private b_envioBD As Button
Public Provider As FileProvider
Public rutaBDBackup = ""
Private b_importarBD As Button
Private p_botones As Panel
End Sub
Public Sub Initialize
@@ -143,8 +141,8 @@ Private Sub B4XPage_Created (Root1 As B4XView)
ruta = Starter.ruta
Provider.Initialize
' Subs.borraArribaDe100Errores ' Para Websockets
' Subs.borraArribaDe600RenglonesBitacora ' Para Websockets
Subs.borraArribaDe100Errores ' Para Websockets
Subs.borraArribaDe600RenglonesBitacora ' Para Websockets
If File.Exists(ruta, "kmt.db") = False Then
File.Copy(File.DirAssets, "kmt.db", ruta, "kmt.db")
End If
@@ -165,14 +163,45 @@ Private Sub B4XPage_Created (Root1 As B4XView)
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_CODIGO_BARRAS(CODIGOKMTS TEXT, CODIGOB TEXT, LAT TEXT, LON TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS ENCUESTA_MODULO1(CLIENTE TEXT,ALMACEN TEXT, P1 TEXT, P2 TEXT, P3 TEXT, P4 TEXT, P5 TEXT, P6 TEXT, P7 TEXT, P8 TEXT, P9 TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS ENCUESTA_MODULO2 (CLIENTE TEXT, ALMACEN TEXT,P1 TEXT, P2 TEXT, P3 TEXT , P4 TEXT, P5 TEXT, P6 TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS ENCUESTA_MODULO3(CLIENTE TEXT,ALMACEN TEXT, P1 TEXT, P2 TEXT, P3 TEXT, P4 TEXT, P5 TEXT, P6 TEXT, P7 TEXT, P8 TEXT, P9 TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS ENCUESTA_MODULO3(CLIENTE TEXT,ALMACEN TEXT, P1 TEXT, P2 TEXT, P3 TEXT, P4 TEXT, P5 TEXT, P6 TEXT, P7 TEXT, P8 TEXT, P9 TEXT, P10 TEXT, P11 TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS ENCUESTA_MODULO4 (CLIENTE TEXT, ALMACEN TEXT,P1 TEXT, P2 TEXT, P3 TEXT , P4 TEXT, P5 TEXT, P6 TEXT, P7 TEXT, P8 TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS ENCUESTA_MODULO5 (CLIENTE TEXT, ALMACEN TEXT,P1 TEXT, P2 TEXT, P3 TEXT , P4 TEXT, P5 TEXT, P6 TEXT, P7 TEXT, P8 TEXT, P9 TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA_CLIENTE (HEC_CLIENTE TEXT, HEC_MODULO TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS PROMOXRUTA (PR_PROMOID TEXT, PR_CANT TEXT)")
skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_ENCUESTA_AVISO_GIRO (HEAV_CLIENTE TEXT, HEAV_MODULO TEXT, HEAV_AVISO TEXT, HEAV_GIRO TEXT)")
c = skmt.ExecQuery("select COUNT(*) AS CUANTOS from HIST_STAY_OUT ")
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna "P10" en la tabla
c=skmt.ExecQuery("SELECT COUNT(*) AS fCol FROM pragma_table_info('ENCUESTA_MODULO3') WHERE name='P10'")
c.Position = 0
If c.GetString("fCol") = 0 Then 'Si no esta la columna FECHA la agregamos
skmt.ExecNonQuery("ALTER TABLE ENCUESTA_MODULO3 ADD COLUMN P10 TEXT")
End If
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
Try
skmt.ExecNonQuery("ALTER TABLE ENCUESTA_MODULO3 ADD COLUMN P10 TEXT")
Catch
Log(LastException)
End Try
End Try
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna "P11" en la tabla
c=skmt.ExecQuery("SELECT COUNT(*) AS fCol FROM pragma_table_info('ENCUESTA_MODULO3') WHERE name='P11'")
c.Position = 0
If c.GetString("fCol") = 0 Then 'Si no esta la columna FECHA la agregamos
skmt.ExecNonQuery("ALTER TABLE ENCUESTA_MODULO3 ADD COLUMN P11 TEXT")
End If
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
Try
skmt.ExecNonQuery("ALTER TABLE ENCUESTA_MODULO3 ADD COLUMN P11 TEXT")
Catch
Log(LastException)
End Try
End Try
c=skmt.ExecQuery("select COUNT(*) AS CUANTOS from HIST_STAY_OUT ")
C.Position = 0
If c.GetString("CUANTOS") = 0 Then
skmt.ExecNonQuery("INSERT INTO HIST_STAY_OUT(HSO_INI, HSO_FIN) VALUES (0,0)")
@@ -196,8 +225,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
almacen = 0
rutaPreventa = 0
p_appUpdate.Visible = False
Subs.centraPanel(p_botones, Root.Width)
Subs.guardaAppInfo(skmt)
End Sub
Sub B4XPage_Appear
@@ -607,12 +635,7 @@ Sub i_engrane_Click
p_appUpdate.Left = (Root.Width/2) - (p_appUpdate.Width/2)
lv_server.Clear
lv_server.AddSingleLine("http://keymon.lat:1782")
If user.Text = "KMTS1" Then
lv_server.AddSingleLine("http://10.0.0.205:1782")
b_importarBD.Visible = True
Else
b_importarBD.Visible = False
End If
If user.Text = "KMTS1" Then lv_server.AddSingleLine("http://10.0.0.205:1782")
l_server.Text = Starter.server
Subs.panelVisible(p_appUpdate,0,0)
p_appUpdate.Height = Root.Height
@@ -655,18 +678,3 @@ Private Sub b_envioBD_Click
in.Flags = 1 'FLAG_GRANT_READ_URI_PERMISSION
StartActivity(in)
End Sub
Private Sub b_importarBD_Click
Private FH As FileHandler
FH.Initialize
Wait For (FH.Load) Complete (Result As LoadResult) 'Abre un fileManager para seleccionar la base de datos a importar.
File.Copy(Result.Dir, Result.FileName, File.DirInternal, "kmt.db") 'Copia la base de datos seleccionada al directorio interno.
skmt.Initialize(Starter.ruta,"kmt.db", True) 'Reiniciliza la base de datos con la recien importada.
Private c As Cursor = skmt.ExecQuery("select CAT_VA_VALOR from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'APP_NAME'")
If c.RowCount > 1 Then
c.Position = 0
ToastMessageShow($"BD de ${c.GetString("APP_NAME")} importada!"$, True)
Else
ToastMessageShow($"¡BD importada!"$, True)
End If
End Sub

File diff suppressed because it is too large Load Diff

View File

@@ -132,19 +132,14 @@ Sub borra_Click
If folio <> "" Then
result = Msgbox2("Seguro que desa borrar el pedido?","Cancelar pedido", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then
c=B4XPages.MainPage.skmt.ExecQuery("select PE_PROID, PE_CANT, PE_CEDIS FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) ")
If c.RowCount > 0 Then
For i = 0 To c.RowCount -1
c=B4XPages.MainPage.skmt.ExecQuery("select PE_PROID,PE_CANT FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) ")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
B4XPages.MainPage.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO INVENT_X_ENVIAR (ALMACEN , PROID , CANTIDAD ) VALUES(?,?,?) ", Array As Object (almacen,c.GetString("PE_PROID"),c.GetString("PE_CANT")* -1))
'Si es promo, actualizamos la cantidad en PROMOXRUTA.
If c.GetString("PE_CEDIS") = c.GetString("PE_PROID") Then B4XPages.MainPage.skmt.ExecNonQuery($"update PROMOXRUTA set PR_CANT = PR_CANT + ${c.GetString("PE_CANT")} where PR_PROMOID = '${c.GetString("PE_PROID")}'"$)
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO INVENT_X_ENVIAR (ALMACEN , PROID , CANTIDAD ) VALUES(?,?,?) ", Array As Object (almacen,c.GetString("PE_PROID"),c.GetString("PE_CANT")* -1))
Next
End If
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido where pe_cliente in (Select CUENTA from cuentaa)")
B4XPages.MainPage.skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
@@ -158,45 +153,28 @@ End Sub
Sub ListView1_ItemLongClick (Position As Int, Value As Object)
result = Msgbox2("Seguro que desea borrar este articulo?","Borrar Articulo", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
If result = DialogResponse.POSITIVE Then
c = B4XPages.MainPage.skmt.ExecQuery2("select PE_PROID,PE_CANT FROM PEDIDO where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa) ", Array As String(Value))
c.Position = 0
c=B4XPages.MainPage.skmt.ExecQuery2("select PE_PROID,PE_CANT FROM PEDIDO where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa) ", Array As String(Value))
c.Position=0
B4XPages.MainPage.skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(c.GetString("PE_CANT"),c.GetString("PE_PROID")))
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO INVENT_X_ENVIAR (ALMACEN, PROID, CANTIDAD ) VALUES(?,?,?) ", Array As Object (almacen,c.GetString("PE_PROID"),c.GetString("PE_CANT")* -1))
' c.Close
Private cx As Cursor = B4XPages.MainPage.skmt.ExecQuery2("select count(*) AS CUANTOS from cat_gunaprod where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'", Array As String(Value))
cx.Position = 0
If cx.GetString("CUANTOS") > 0 Then
Private cy As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT PE_CLIENTE, PE_CEDIS, PE_CANT from PEDIDO where pe_proid in (Select pe_cedis from pedido where pe_proid = '${c.GetString("PE_PROID")}') and pe_cliente in (Select cuenta from cuentaa)"$)
Log("------------ PROMOS EN PEDIDO:" & cy.RowCount & " - " & c.GetString("PE_PROID") & " - Value= " & Value)
If cy.RowCount > 0 Then
cy.Position = 0
Subs.guardaPromoXruta(cy.GetString("PE_CEDIS"), (cy.GetString("PE_CANT") * -1))
End If
' Private pc As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select PE_CANT from PEDIDO where PE_CEDIS = '${c.GetString("PE_PROID")}' and PE_PROID = '${c.GetString("PE_PROID")}' and pe_cliente in (Select CUENTA from cuentaa)"$)
' Log("------------ PROMOS EN PEDIDO:" & pc.RowCount & " - " & c.GetString("PE_PROID") & " - Value= " & Value)
' If pc.RowCount > 0 Then 'Si hay promoXruta, actualizamos la cantidad en PROMOXRUTA.
' pc.Position = 0
' B4XPages.MainPage.skmt.ExecNonQuery($"update PROMOXRUTA set PR_CANT = PR_CANT + ${pc.GetString("PE_CANT")} where PR_PROMOID = '${c.GetString("PROID")}'"$)
' End If
B4XPages.MainPage.skmt.ExecNonQuery2("delete from pedido where pe_cedis in (select pe_cedis from pedido where pe_pronombre = ?) and pe_cliente in (Select CUENTA from cuentaa)", Array As Object(Value))
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO INVENT_X_ENVIAR (ALMACEN , PROID , CANTIDAD ) VALUES(?,?,?) ", Array As Object (almacen,c.GetString("PE_PROID"),c.GetString("PE_CANT")* -1))
c.Close
c=B4XPages.MainPage.skmt.ExecQuery2("select count(*) AS CUANTOS from cat_gunaprod where CAT_GP_ID in (select pe_cedis from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)) and CAT_GP_CLASIF = 'PROMOS' AND CAT_GP_TIPO = 'PROMOS' AND CAT_GP_SUBTIPO = 'PROMOS'", Array As String(Value))
c.Position=0
If c.GetString("CUANTOS") > 0 Then
B4XPages.MainPage.skmt.ExecNonQuery2("delete from pedido where pe_cedis in (select pe_cedis from pedido where pe_pronombre = ?) and pe_cliente in (Select CUENTA from cuentaa)", Array As Object(Value))
Else
B4XPages.MainPage.skmt.ExecNonQuery2("delete from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)", Array As Object(Value))
B4XPages.MainPage.skmt.ExecNonQuery2("delete from pedido where pe_pronombre = ? and pe_cliente in (Select CUENTA from cuentaa)", Array As Object(Value))
End If
DateTime.DateFormat = "MM/dd/yyyy"
sDate = DateTime.Date(DateTime.Now)
sTime = DateTime.Time(DateTime.Now)
c = B4XPages.MainPage.skmt.ExecQuery("Select CUENTA from cuentaa")
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
c=B4XPages.MainPage.skmt.ExecQuery("Select CUENTA from cuentaa")
c.Position=0
clie_id = c.GetString("CUENTA")
c = B4XPages.MainPage.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position = 0
c=B4XPages.MainPage.skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
usuario = c.GetString("USUARIO")
c = B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c=B4XPages.MainPage.skmt.ExecQuery("select sum(pe_costo_tot) as TOTAL_CLIE, SUM(PE_CANT) AS CANT_CLIE, count(*) as CUANTOS FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa)")
c.Position=0
If c.GetString("CUANTOS") > 0 Then
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE In (select cuenta from cuentaa)")
@@ -260,4 +238,4 @@ End Sub
Private Sub p_nota_Click
End Sub
End Sub

View File

@@ -7,9 +7,7 @@ Version=11.5
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Dim kh As kms_helperSubs
Dim conectado As String
Dim reqManager As DBRequestManager
Dim t1 As Timer
Dim sb As StringBuilder
Dim PHONE As Phone
@@ -225,7 +223,6 @@ Sub Class_Globals
Private panel_5 As Panel
Private p_marcasRes As Panel
Private p_sombra As Panel
Private l_version As Label
End Sub
'You can add more parameters here.
@@ -238,9 +235,6 @@ Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
'load the layout to Root
Root.LoadLayout("principal")
kh.Initialize(Me, "kh")
kh.RD_Init
l_version.Text = Application.VersionName
SCROLL_RESDIA.Width = Root.Width
SCROLL_RESDIA.Height = Root.Height
B_OK_RES.color = Colors.Red
@@ -309,16 +303,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
End Sub
Sub B4XPage_Appear
If kh.RD_Init_IsInitialized Then
kh.RD_respalda_cat_detalle_paq
kh.RD_respalda_cat_gunaprod
kh.RD_respalda_kmt_info
kh.RD_respalda_pedido
Else
Log("****** RD NO INICIALIZADO ********")
End If
p_principal.Visible = True
reqManager.Initialize(Me, Starter.server)
HORAINGRESO ="000000"
Btn_Ubicar.Left = (Root.Width/2) - (Btn_Ubicar.Width/2)
' B4XPages.MainPage.reqManager.Initialize(Me, B4XPages.MainPage.SERVER)
@@ -401,7 +386,7 @@ Sub B4XPage_Appear
l_cuantosn.Text = b.GetString("CUANTOS")
b.close
Else
c=B4XPages.MainPage.skmt.ExecQuery("select ifnull(SUM(PE_COSTO_TOT), 0) as MONTO_DIA, COUNT(DISTINCT(PE_CLIENTE)) AS CLIENTES_DIA from PEDIDO ")
c=B4XPages.MainPage.skmt.ExecQuery("select SUM(PE_COSTO_TOT) as MONTO_DIA, COUNT(DISTINCT(PE_CLIENTE)) AS CLIENTES_DIA from PEDIDO ")
b=B4XPages.MainPage.skmt.ExecQuery("select count(*) as CUANTOS from noventa")
c.Position=0
b.Position=0
@@ -429,7 +414,7 @@ Sub B4XPage_Appear
Else
ImageView3.Bitmap = LoadBitmap(File.DirAssets, "palomita_verde.png")
End If
L_TICKPROM.Text = Round2((c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA")),2)
L_TICKPROM.Text = Round2((c.GetString("MONTO_DIA") / c.GetString("CLIENTES_DIA")),2)
If c.GetString("MONTO_DIA") < 4000 Then
ImageView5.Bitmap = LoadBitmap(File.DirAssets, "tache_rojo.png")
Else if c.GetString("MONTO_DIA") > = 4000 And c.GetString("MONTO_DIA") < 6250 Then
@@ -698,30 +683,31 @@ Sub Subir_Click
Next
End If
x.Close
Private x As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select CLIENTE, ALMACEN, P1, P2, P3, P4, P5, P6 from ENCUESTA_MODULO2")
If x.RowCount>0 Then
For i=0 To x.RowCount -1
x.Position=i
Private x1 As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select CLIENTE, ALMACEN, P1, P2, P3, P4, P5, P6 from ENCUESTA_MODULO2")
If x1.RowCount>0 Then
For i=0 To x1.RowCount -1
x1.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_ENCUESTA_MODULO2"
cmd.Parameters = Array As Object(x.GetString("CLIENTE"), x.GetString("ALMACEN"),x.GetString("P1"), x.GetString("P2"), x.GetString("P3"), x.GetString("P4"), x.GetString("P5"), x.GetString("P6"))
cmd.Parameters = Array As Object(x1.GetString("CLIENTE"), x1.GetString("ALMACEN"),x1.GetString("P1"), x1.GetString("P2"), x1.GetString("P3"), x1.GetString("P4"), x1.GetString("P5"), x1.GetString("P6"))
B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "insert_ENCUESTA_MODULO2")
Next
End If
x.Close
Private x As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select CLIENTE, ALMACEN, P1, P2, P3, P4, P5, P6, P7, P8, P9 from ENCUESTA_MODULO3")
If x.RowCount>0 Then
For i=0 To x.RowCount -1
x.Position=i
x1.Close
Private x2 As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select CLIENTE, ALMACEN, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11 from ENCUESTA_MODULO3")
If x2.RowCount>0 Then
For i=0 To x2.RowCount -1
x2.Position=i
LogColor(x2.GetString("CLIENTE"),Colors.Red)
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_ENCUESTA_MODULO3"
cmd.Parameters = Array As Object(x.GetString("CLIENTE"), x.GetString("ALMACEN"),x.GetString("P1"), x.GetString("P2"), x.GetString("P3"), x.GetString("P4"), x.GetString("P5"), x.GetString("P6"), x.GetString("P7"), x.GetString("P8"), x.GetString("P9"))
cmd.Parameters = Array As Object(x2.GetString("CLIENTE"), x2.GetString("ALMACEN"),x2.GetString("P1"), x2.GetString("P2"), x2.GetString("P3"), x2.GetString("P4"), x2.GetString("P5"), x2.GetString("P6"), x2.GetString("P7"), x2.GetString("P8"), x2.GetString("P9"), x2.GetString("P10"), x2.GetString("P11"))
B4XPages.MainPage.reqManager.ExecuteCommand(cmd , "insert_ENCUESTA_MODULO3")
Next
End If
x.Close
x2.Close
Private x As Cursor = B4XPages.MainPage.skmt.ExecQuery("Select CLIENTE, ALMACEN, P1, P2, P3, P4, P5, P6, P7, P8 from ENCUESTA_MODULO4")
If x.RowCount>0 Then
For i=0 To x.RowCount -1
@@ -798,7 +784,6 @@ Sub cargar_Click
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_GEOCERCA")
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_MARCAS_CUOTAS")
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM HIST_ENCUESTA_CLIENTE")
B4XPages.MainPage.skmt.ExecNonQuery("DELETE FROM PROMOXRUTA")
c = B4XPages.MainPage.skmt.ExecQuery2("select count(CAT_VA_DESCRIPCION) as HoraIngreso from cat_variables where CAT_VA_DESCRIPCION = ? ", Array As String("HoraIngreso"))
c.Position = 0
@@ -823,9 +808,6 @@ Sub cargar_Click
Dim P As PhoneId
imei = P.GetDeviceId
B4XPages.MainPage.reqManager.reqsList.Initialize 'inicializamos lista de requests.
cmd.Initialize
cmd.Name ="insert_drop_GV2_2"
cmd.Parameters = Array As Object(usuario,e_ruta.text,sDate,imei,sTime,"","","","","CARGA",ALMACEN)
@@ -836,10 +818,10 @@ Sub cargar_Click
cmd.Parameters = Array As Object(ALMACEN)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "gunaprod")
' cmd.Initialize
' cmd.Name = "select_resum_apk_guna" ''' va el nombre de archivo de config
' cmd.Parameters = Array As Object(ALMACEN)
' B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "resum_apk") ''' donde regresa la info ver job_done
cmd.Initialize
cmd.Name = "select_resum_apk_guna" ''' va el nombre de archivo de config
cmd.Parameters = Array As Object(ALMACEN)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "resum_apk") ''' donde regresa la info ver job_done
cmd.Initialize
cmd.Name = "select_cat_paquetes_GV3"
@@ -908,20 +890,20 @@ Sub cargar_Click
cmd.Parameters = Array As Object(ALMACEN)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "hist_comp_promos")
' cmd.Initialize
' cmd.Name = "select_verificacion_GV2"
' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
' B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "cat_verificacion")
cmd.Initialize
cmd.Name = "select_verificacion_GV2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "cat_verificacion")
cmd.Initialize
cmd.Name = "select_fecha"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "fecha")
' cmd.Initialize
' cmd.Name = "select_folio_GV2"
' cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
' B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "folio")
cmd.Initialize
cmd.Name = "select_folio_GV2"
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "folio")
cmd.Initialize
cmd.Name = "select_marcas_rutas"
@@ -938,6 +920,7 @@ Sub cargar_Click
cmd.Parameters = Array As Object(e_ruta.text, ALMACEN)
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "ENCUESTA_CLIENTE")
cmd.Initialize
cmd.Name = "select_HIST_CUOTAS"
cmd.Parameters = Array As Object( ALMACEN,e_ruta.text )
@@ -948,11 +931,6 @@ Sub cargar_Click
cmd.Parameters = Array As Object( ALMACEN,e_ruta.text )
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "COMISIONES")
cmd.Initialize
cmd.Name = "select_promos_ruta_GV2"
cmd.Parameters = Array As Object(ALMACEN, e_ruta.text )
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "promosXruta")
cargar.Visible = False
Subir.Visible = False
inv.Visible = False
@@ -960,7 +938,11 @@ Sub cargar_Click
End Sub
Sub JobDone(Job As HttpJob)
Log("JOBDONE PRINCIPAL")
' If Job.JobName = "DBRequest" Then
' Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
' Log($"Tag: ${RESULT.tag}, success=${Job.Success}"$)
' End If
If Job.Success = False Then
'ToastMessageShow("Error: " & Job.ErrorMessage, True)
If Job.ErrorMessage = "STREAM" Then
@@ -974,14 +956,9 @@ Sub JobDone(Job As HttpJob)
End If
Else 'If Job Success then ...
LogColor("JobDone: '" & B4XPages.MainPage.reqManager.HandleJob(Job).tag & "' - Registros: " & B4XPages.MainPage.reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211027
'Verificamos que el usuario guardado en BD sea VALIDO.
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If B4XPages.MainPage.reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
If B4XPages.MainPage.reqManager.reqsList.IndexOf(RESULT.tag) <> -1 Then
B4XPages.MainPage.reqManager.reqsList.RemoveAt(B4XPages.MainPage.reqManager.reqsList.IndexOf(RESULT.tag))
End If
LogColor(">>>>>> " & B4XPages.MainPage.reqManager.reqsList.Size & " - " & B4XPages.MainPage.reqManager.reqsList, Colors.red)
End If
If RESULT.Tag = "usuarioA" Then 'query tag
Private n As String = "Sin Usuario"
For Each records() As Object In RESULT.Rows
@@ -1002,7 +979,10 @@ Sub JobDone(Job As HttpJob)
End If
Log("***************** "&n)
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "kmt_datos" Then 'query tag
S_CC.TEXT = "CARGANDO"
For Each records() As Object In RESULT.Rows
@@ -1038,7 +1018,10 @@ Sub JobDone(Job As HttpJob)
EJECUTANDO=0
End If
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "resum_apk" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim HIST_RA_OBJMES As String = records(RESULT.Columns.Get("HIST_RA_OBJMES"))
@@ -1095,7 +1078,10 @@ Sub JobDone(Job As HttpJob)
S_CC.Text = "LISTO"
If Starter.marcaCel <> "Sony" Then ToastMessageShow("Catalogo Resumen Actualizado." , True)
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "hist_promos" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim HP_CLIENTE As String = records(RESULT.Columns.Get("HP_CLIENTE"))
@@ -1113,7 +1099,10 @@ Sub JobDone(Job As HttpJob)
S_CH.Text = "LISTO"
End If
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "hist_cliente_promos" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim HCCP_CLIENTE As String = records(RESULT.Columns.Get("HCCP_CLIENTE"))
@@ -1123,7 +1112,10 @@ Sub JobDone(Job As HttpJob)
Next
If Starter.marcaCel <> "Sony" Then ToastMessageShow(" Historico Clientes Promociones Actualizado." , True)
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "HIST_MARCAS_CUOTAS" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim HMC_MARCA As String = records(RESULT.Columns.Get("HMC_MARCA"))
@@ -1132,7 +1124,10 @@ Sub JobDone(Job As HttpJob)
Next
If Starter.marcaCel <> "Sony" Then ToastMessageShow(" Historico Marcas" , True)
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "hist_comp_promos" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CAT_PA_ID As String = records(RESULT.Columns.Get("CAT_PA_ID"))
@@ -1151,7 +1146,10 @@ Sub JobDone(Job As HttpJob)
S_CH.Text = "LISTO"
End If
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "cat_verificacion" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CAT_VE_IDPROD As String = records(RESULT.Columns.Get("CAT_VE_IDPROD"))
@@ -1160,7 +1158,10 @@ Sub JobDone(Job As HttpJob)
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VERIFICACION(CAT_VE_IDPROD, CAT_VE_NOMBRE,CAT_VE_ORDEN) VALUES (?,?,?)", Array As Object (CAT_VE_IDPROD, CAT_VE_NOMBRE,CAT_VE_ORDEN))
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "marcas_rutas" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim HVD_MARCA As String = records(RESULT.Columns.Get("HVD_MARCA"))
@@ -1168,8 +1169,11 @@ Sub JobDone(Job As HttpJob)
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO MARCAS_RUTAS(HVD_MARCA, CLIENTES) VALUES (?,?)", Array As Object (HVD_MARCA, CLIENTES))
Next
End If
End If
'CUOTAS
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "CUOTAS" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim HC_RUTA As String = records(RESULT.Columns.Get("HC_RUTA"))
@@ -1189,8 +1193,11 @@ Sub JobDone(Job As HttpJob)
Next
End If
End If
'COMISIONES
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "COMISIONES" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim HCM_TOTAL_V As String = records(RESULT.Columns.Get("HCM_TOTAL_V"))
@@ -1200,7 +1207,11 @@ Sub JobDone(Job As HttpJob)
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_COMISIONES_MOVIL (HCM_TOTAL_V , HCM_TOTAL_VIVE , HCM_TOTAL_GUNA , HCM_TOTAL_BEB) VALUES (?,?,?,?)", Array As Object (HCM_TOTAL_V , HCM_TOTAL_VIVE , HCM_TOTAL_GUNA , HCM_TOTAL_BEB))
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "ENCUESTA_CLIENTE" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim HEC_CLIENTE As String = records(RESULT.Columns.Get("HEC_CLIENTE"))
@@ -1208,7 +1219,11 @@ Sub JobDone(Job As HttpJob)
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO HIST_ENCUESTA_CLIENTE (HEC_CLIENTE , HEC_MODULO) VALUES (?,?)", Array As Object (HEC_CLIENTE , HEC_MODULO ))
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "gunaprod" Then 'query tag
If PB2.Progress < 30 Then S_CP.Text = "CARGANDO" 'Mod por CHV - 20211028 Agregue el "If PB2.Progress < 30 then"
For Each records() As Object In RESULT.Rows
@@ -1247,7 +1262,10 @@ Sub JobDone(Job As HttpJob)
EJECUTANDO=0
End If
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "gunaprodp" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CAT_GP_ID As String = records(RESULT.Columns.Get("CAT_GP_ID"))
@@ -1289,9 +1307,13 @@ Sub JobDone(Job As HttpJob)
EJECUTANDO=0
End If
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "gunaprodps" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CAT_GP_ID As String = records(RESULT.Columns.Get("CAT_GP_ID"))
Dim CAT_GP_NOMBRE As String = records(RESULT.Columns.Get("CAT_GP_NOMBRE"))
Dim CAT_GP_IMP1 As String = records(RESULT.Columns.Get("CAT_GP_IMP1"))
@@ -1319,6 +1341,7 @@ Sub JobDone(Job As HttpJob)
Log("3")
End If
If Starter.marcaCel <> "Sony" Then ToastMessageShow("Promociones especiales Actualizados." , True)
Listo4=1
If Listo1 =1 And Listo2 =1 And Listo3 = 1 And Listo4 = 1 Then
B4XPage_Appear
@@ -1330,7 +1353,10 @@ Sub JobDone(Job As HttpJob)
EJECUTANDO=0
End If
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "detallepaq" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CAT_DP_ALMACEN As String = records(RESULT.Columns.Get("CAT_DP_ALMACEN"))
@@ -1367,7 +1393,10 @@ Sub JobDone(Job As HttpJob)
End If
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "hist_datos" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim HVD_CLIENTE As String = records(RESULT.Columns.Get("HVD_CLIENTE"))
@@ -1393,7 +1422,10 @@ Sub JobDone(Job As HttpJob)
EJECUTANDO=0
End If
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "variables" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim Cat_Va_Descripcion As String = records(RESULT.Columns.Get("CAT_VA_DESCRIPCION"))
@@ -1401,7 +1433,10 @@ Sub JobDone(Job As HttpJob)
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object (Cat_Va_Descripcion, Cat_Va_Valor))
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "CUESTIONARIO" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim Cat_Va_Valor As String = records(RESULT.Columns.Get("CAT_VALOR"))
@@ -1409,10 +1444,15 @@ Sub JobDone(Job As HttpJob)
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("CUESTIONARIO", Cat_Va_Valor))
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "valida_pedido" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
If cuantos_pedido < = CUANTOSP Then
' ToastMessageShow("rojo val ok 1 cuantosp." , True)
datos_iguales = "ok"
@@ -1421,12 +1461,19 @@ Sub JobDone(Job As HttpJob)
If Starter.marcaCel <> "Sony" Then ToastMessageShow("No se cargo bien la info P. Sync Nuevamente" & CUANTOSP & " " & cuantos_pedido, True)
S_CP.Text = "ENVIAR DATOS (K-2)"
End If
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "valida_pedidoc" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
If cuantos_pedidosc = CUANTOSC Then
' ToastMessageShow("rojo val ok 1 cuantosp." , True)
datos_iguales = "ok"
@@ -1435,7 +1482,10 @@ Sub JobDone(Job As HttpJob)
End If
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "valida_noventa" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
@@ -1447,7 +1497,10 @@ Sub JobDone(Job As HttpJob)
End If
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "ins_pedido" Then 'query tag
For Each records() As Object In RESULT.Rows
PB2.Progress = PB2.Progress + 5
@@ -1457,7 +1510,10 @@ Sub JobDone(Job As HttpJob)
S_CP.Text = "LISTO"
Log("5")
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "version" Then 'query tag
For Each records() As Object In RESULT.Rows
B4XPages.MainPage.skmt.ExecNonQuery("delete from VERSION")
@@ -1465,13 +1521,19 @@ Sub JobDone(Job As HttpJob)
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object (CAT_VE_VERSION))
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "count_cli" Then 'query tag
For Each records() As Object In RESULT.Rows
COUNT_CLIE = records(RESULT.Columns.Get("COUNT_CLIE"))
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "ruta" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim VALIDO As String = records(RESULT.Columns.Get("VALIDO"))
@@ -1492,7 +1554,10 @@ Sub JobDone(Job As HttpJob)
End If
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "usuario" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim name2 As String = records(RESULT.Columns.Get("VALIDO"))
@@ -1502,7 +1567,10 @@ Sub JobDone(Job As HttpJob)
End If
P1.Visible = False
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = B4XPages.MainPage.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"))
@@ -1510,7 +1578,10 @@ Sub JobDone(Job As HttpJob)
B4XPages.MainPage.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 = B4XPages.MainPage.reqManager.HandleJob(Job)
If RESULT.Tag = "folio" Then 'query tag
For Each records() As Object In RESULT.Rows
Dim FOLIO As String = records(RESULT.Columns.Get("FOLIO"))
@@ -1518,13 +1589,6 @@ Sub JobDone(Job As HttpJob)
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("FOLIO",FOLIO))
Next
End If
If RESULT.Tag = "promosXruta" Then
' Subs.logJobDoneResultados(RESULT)
For Each records() As Object In RESULT.Rows
B4XPages.MainPage.skmt.ExecNonQuery2("INSERT INTO PROMOXRUTA(PR_PROMOID, PR_CANT) VALUES (?,?)", Array As Object (records(RESULT.Columns.Get("CAT_RP_IDPROMO")), records(RESULT.Columns.Get("CAT_RP_CANTIDAD"))))
Next
End If
End If
End If
Job.Release
@@ -1543,6 +1607,7 @@ Private Sub B4XPage_CloseRequest As ResumableSub
End Sub
Sub connecta_Click
B4XPages.MainPage.reqManager.Initialize(Me, Starter.server)
teclado.HideKeyboard
connecta1 = connecta1 + 1
'imei = p.GetDeviceId
@@ -1550,7 +1615,7 @@ Sub connecta_Click
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_version_GV2"
reqManager.ExecuteQuery(cmd , 0, "version")
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "version")
' Cuando nos conectamos verificamos que el usuario guardado en BD sea VALIDO.
c=B4XPages.MainPage.skmt.ExecQuery("select USUARIO, PASS from usuarioa")
c.Position=0
@@ -1558,9 +1623,9 @@ Sub connecta_Click
Private usrT As String = c.GetString("USUARIO")
Private passT As String = c.GetString("PASS")
cmd.Initialize
cmd.Name = "select_usuario_guna_GV2_10"
cmd.Name = "select_usuario_guna_GV2_1"
cmd.Parameters = Array As Object(usrT, passT)
reqManager.ExecuteQuery(cmd , 0, "usuarioA")
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "usuarioA")
End If
c.Close
@@ -1568,13 +1633,13 @@ Sub connecta_Click
cmd.Initialize
cmd.Name = "select_ruta_GV2_70"
cmd.Parameters = Array As Object(ALMACEN,e_ruta.text,imei)
reqManager.ExecuteQuery(cmd , 0, "ruta")
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "ruta")
Else
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_ruta_GV2_70"
cmd.Parameters = Array As Object(ALMACEN,e_ruta.text,imei)
reqManager.ExecuteQuery(cmd , 0, "ruta")
B4XPages.MainPage.reqManager.ExecuteQuery(cmd , 0, "ruta")
End If
If e_ruta.Text = "KMTS1" Then

View File

@@ -455,7 +455,7 @@ Sub b_prodMenos_Click
Dim laCant As B4XView = pnl.GetView(2).GetView(3)
' Log($"precio|stock:${laCant.tag}"$)
If laCant.Text = "" Then laCant.Text = 0
laCant.Text = NumberFormat2(laCant.Text - 1, 1, 0, 0, False)
laCant.Text = $"$1.0{laCant.Text-1}"$
If laCant.Text < 0 Then laCant.Text = 0
' Dim chk As B4XView = pnl.GetView(2)
cuentaProds
@@ -474,7 +474,7 @@ Sub b_prodMas_Click
' Log(laCant.Tag&"|"&esteTag)
If laCant.Text = "" Then laCant.Text = 0
If laCant.Text + 1 <= esteTag.get(1) Then
laCant.Text = NumberFormat2(laCant.Text + 1, 1, 0, 0, False)
laCant.Text = $"$1.0{laCant.Text+1}"$
cuentaProds
End If
' Log($"Total Prods: ${totalProds}, Total Compra: $$1.2{totalCompra}"$)
@@ -496,7 +496,7 @@ Sub cuentaProds
If cant1.Text = "" Then cant1.Text = 0
' Private cant2 As Int = 0
' If cant1.Text <> "" Then cant2 = cant1.Text
totalProds = totalProds + NumberFormat2(cant1.Text, 1, 0, 0, False)
totalProds = totalProds + cant1.Text
Private esteTag As List = Regex.Split("\|", cant1.Tag)
If cant1.Text > esteTag.Get(1) Then cant1.Text = esteTag.Get(1)
If cant1.Text > 0 Then

View File

@@ -340,14 +340,10 @@ End Sub
Private Sub b_terminar1_Click
cuentaProds
Log("====================================================================")
Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
Log(laPromo)
' Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
For t = 0 To prodsIds.Size - 1 'Guardamos los productos fijos de la promocion en pedido.
Private pn As String = Subs.traeProdNombre(prodsIds.Get(t))
If prodsCants.Get(t) > 0 Then Subs.guardaProducto(estaPromo, prodsPrecios.Get(t), prodsCants.Get(t), pn, prodsIds.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
If laPromo = prodsIds.Get(t) Then Subs.guardaPromoXruta(laPromo, prodsCants.Get(t))
Next
For t = 0 To prodsIds2.Size - 1 'Guardamos los productos variables de la promocion en pedido.
Private pn As String = Subs.traeProdNombre(prodsIds2.Get(t))
@@ -361,13 +357,10 @@ End Sub
Private Sub b_continuar_Click
cuentaProds
Log("====================================================================")
Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
' Log($"${prodsIds}${CRLF}${prodsCants}${CRLF}${prodsPrecios}"$)
For t = 0 To prodsIds.Size - 1 'Guardamos los productos fijos de la promocion en pedido.
Private pn As String = Subs.traeProdNombre(prodsIds.Get(t))
Subs.guardaProducto(estaPromo, prodsPrecios.Get(t), prodsCants.Get(t), pn, prodsIds.Get(t), Subs.traeCliente, Subs.traeFecha, Subs.traeUsuarioDeBD, Subs.traeRuta, 0, B4XPages.MainPage.tipo_venta)
If laPromo = prodsIds.Get(t) Then Subs.guardaPromoXruta(laPromo, prodsCants.Get(t))
Next
For t = 0 To prodsIds2.Size - 1 'Guardamos los productos variables de la promocion en pedido.
Private pn As String = Subs.traeProdNombre(prodsIds2.Get(t))

View File

@@ -18,7 +18,6 @@ Sub Class_Globals
Private VERSION As Float = 0.9
Private tempArray(1) As Object
Dim jobTagAnterior As String = "" 'Mod por CHV - 211027
Dim reqsList As List
End Sub
'Target - The module that handles JobDone (usually Me).
@@ -36,7 +35,6 @@ 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)
WriteObject(Command.Name, out2)
WriteInt(Limit, out2)
@@ -63,7 +61,6 @@ 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)
ExecuteBatch(Array As DBCommand(Command), Tag)
End Sub

View File

@@ -1,162 +0,0 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=11
@EndOfDesignText@
'Requiere la librería "ContentResolver" y "FileProvider" o "AppUpdating"
'
'Copiar este codigo al boton_Click que se quiere que importe la base de datos.
'
' Private Sub b_importarBD_Click
' Private FH As FileHandler
' FH.Initialize
' Wait For (FH.Load) Complete (Result As LoadResult) 'Abre un fileManager para seleccionar la base de datos a importar.
' File.Copy(Result.Dir, Result.FileName, File.DirInternal, "kmt.db") 'Copia la base de datos seleccionada al directorio interno.
' Starter.skmt.Initialize(Starter.ruta,"kmt.db", True) 'Reiniciliza la base de datos con la recien importada.
' ToastMessageShow("¡BD importada!", False)
' End Sub
Sub Class_Globals
#if B4A
Private ion As Object
Private OldIntent As Intent
#end if
Type LoadResult (Success As Boolean, Dir As String, FileName As String, RealName As String, Size As Long, Modified As Long, MimeType As String)
End Sub
Public Sub Initialize
End Sub
#if B4A
Public Sub SaveAs (Source As InputStream, MimeType As String, Title As String) As ResumableSub
Dim intent As Intent
intent.Initialize("android.intent.action.CREATE_DOCUMENT", "")
intent.AddCategory("android.intent.category.OPENABLE")
intent.PutExtra("android.intent.extra.TITLE", Title)
intent.SetType(MimeType)
StartActivityForResult(intent)
Wait For ion_Event (MethodName As String, Args() As Object)
If -1 = Args(0) Then 'resultCode = RESULT_OK
Dim result As Intent = Args(1)
Dim jo As JavaObject = result
Dim ctxt As JavaObject
Dim out As OutputStream = ctxt.InitializeContext.RunMethodJO("getContentResolver", Null).RunMethod("openOutputStream", Array(jo.RunMethod("getData", Null)))
File.Copy2(Source, out)
out.Close
Return True
End If
Return False
End Sub
Public Sub Load As ResumableSub
Dim cc As ContentChooser
cc.Initialize("cc")
cc.Show("application/octet-stream", "Choose text file")
Wait For CC_Result (Success As Boolean, Dir As String, FileName As String)
Log($"***************************${CRLF}${Dir}${CRLF} ${FileName}"$)
Dim res As LoadResult = CreateLoadResult(Success, Dir, FileName)
Log($"***************************${CRLF}${res.FileName}${CRLF} ${res}"$)
If res.Success Then ExtractInformationFromURI(res.FileName, res)
Return res
End Sub
Private Sub StartActivityForResult(i As Intent)
Dim jo As JavaObject = GetBA
ion = jo.CreateEvent("anywheresoftware.b4a.IOnActivityResult", "ion", Null)
jo.RunMethod("startActivityForResult", Array(ion, i))
End Sub
Private Sub GetBA As Object
Return Me.As(JavaObject).RunMethod("getBA", Null)
End Sub
Private Sub ExtractInformationFromURI (Uri As String, res As LoadResult)
Try
Dim resolver As ContentResolver
resolver.Initialize("")
Dim u As Uri
u.Parse(Uri)
Dim rs As ResultSet = resolver.Query(u, Null, "", Null, "")
If rs.NextRow Then
Dim columns As B4XSet = B4XCollections.CreateSet
For i = 0 To rs.ColumnCount - 1
columns.Add(rs.GetColumnName(i))
Next
If columns.Contains("_display_name") Then res.RealName = rs.GetString("_display_name")
If columns.Contains("_size") Then res.Size = rs.GetLong("_size")
If columns.Contains("last_modified") Then res.Modified = rs.GetLong("last_modified")
If columns.Contains("mime_type") Then res.MimeType = rs.GetString("mime_type")
End If
rs.Close
Catch
Log("error extracting information from file provider")
Log(LastException)
End Try
End Sub
Public Sub CheckForReceivedFiles As LoadResult
Dim Activity As Activity = B4XPages.GetNativeParent(B4XPages.MainPage)
If IsRelevantIntent(Activity.GetStartingIntent) Then
Dim in As Intent = Activity.GetStartingIntent
Dim uri As String
If in.HasExtra("android.intent.extra.STREAM") Then
uri = in.As(JavaObject).RunMethod("getParcelableExtra", Array("android.intent.extra.STREAM"))
Else
uri = in.GetData
End If
Dim res As LoadResult = CreateLoadResult(True, "ContentDir", uri)
ExtractInformationFromURI(res.FileName, res)
Return res
End If
Return CreateLoadResult(False, "", "")
End Sub
Private Sub IsRelevantIntent(in As Intent) As Boolean
If in.IsInitialized And in <> OldIntent And in.Action = in.ACTION_VIEW Then
OldIntent = in
Return True
End If
Return False
End Sub
#else if B4i
Public Sub SaveAs(ParentPage As Object, AnchorView As Object, Text As String) As ResumableSub
Dim avc As ActivityViewController
avc.Initialize("avc", Array(Text))
avc.Show(B4XPages.GetNativeParent(ParentPage), AnchorView)
Wait For avc_Complete (Success As Boolean, ActivityType As String)
Return Success
End Sub
Public Sub Load (ParentPage As Object, AnchorView As Object) As ResumableSub
Dim DocumentPicker As DocumentPickerViewController
DocumentPicker.InitializeImport("picker", Array("public.text"))
DocumentPicker.Show(B4XPages.GetNativeParent(ParentPage), AnchorView)
Wait For Picker_Complete (Success As Boolean, URLs As List)
If Success And URLs.Size > 0 Then
Return UrlToLoadResult(URLs.Get(0))
End If
Return CreateLoadResult(False, "", "")
End Sub
Public Sub UrlToLoadResult(url As String) As LoadResult
Dim res As LoadResult = CreateLoadResult(IIf(File.Exists(url, ""), True, False), url, "")
res.RealName = res.Dir.SubString(res.Dir.LastIndexOf("/") + 1)
res.Size = File.Size(res.Dir, "")
Return res
End Sub
#end if
Private Sub CreateLoadResult (Success As Boolean, Dir As String, FileName As String) As LoadResult
Dim t1 As LoadResult
t1.Initialize
t1.Success = Success
t1.Dir = Dir
t1.FileName = FileName
Return t1
End Sub

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -134,12 +134,14 @@ Library22=okhttputils2
Library23=phone
Library24=randomaccessfile
Library25=rspopupmenu
Library26=serial
Library27=sql
Library28=togglelibrary
Library29=xui views
Library26=runtimepermissions
Library27=serial
Library28=sql
Library29=togglelibrary
Library3=baqrcode
Library30=contentresolver
Library30=xcustomlistview
Library31=xui
Library32=xui views
Library4=batteryprogressview
Library5=bitmapcreator
Library6=byteconverter
@@ -156,14 +158,12 @@ Module14=C_Promos
Module15=C_TicketsDia
Module16=C_UpdateAvailable
Module17=DBRequestManager
Module18=FileHandler
Module19=FirebaseMessaging
Module18=FirebaseMessaging
Module19=MAPA_RUTAS
Module2=B4XMainPage
Module20=kms_helperSubs
Module21=MAPA_RUTAS
Module22=Starter
Module23=Subs
Module24=Tracker
Module20=Starter
Module21=Subs
Module22=Tracker
Module3=BatteryUtilities
Module4=C_Cliente
Module5=C_Clientes
@@ -172,14 +172,14 @@ Module7=C_Mapas
Module8=C_Nota
Module9=C_NoVenta
NumberOfFiles=58
NumberOfLibraries=30
NumberOfModules=24
NumberOfLibraries=32
NumberOfModules=22
Version=11.5
@EndOfDesignText@
#Region Project Attributes
#ApplicationLabel: Guna V3.1
#VersionCode: 1
#VersionName: 2.10.27ENC
#VersionName: 4.01.09ENC
'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False

View File

@@ -14,8 +14,6 @@ ModuleBookmarks2=
ModuleBookmarks20=
ModuleBookmarks21=
ModuleBookmarks22=
ModuleBookmarks23=
ModuleBookmarks24=
ModuleBookmarks3=
ModuleBookmarks4=
ModuleBookmarks5=
@@ -39,8 +37,6 @@ ModuleBreakpoints2=
ModuleBreakpoints20=
ModuleBreakpoints21=
ModuleBreakpoints22=
ModuleBreakpoints23=
ModuleBreakpoints24=
ModuleBreakpoints3=
ModuleBreakpoints4=
ModuleBreakpoints5=
@@ -52,27 +48,25 @@ ModuleClosedNodes0=
ModuleClosedNodes1=5,7,8,9,10,11,12,13,14
ModuleClosedNodes10=
ModuleClosedNodes11=6
ModuleClosedNodes12=1,3,5,6,7,9,10,11,12,13,14,15,16,17,18,19,20,21,27,28,29,30,31,32
ModuleClosedNodes13=
ModuleClosedNodes12=2,3,6,8,10,11,13,14,15
ModuleClosedNodes13=1
ModuleClosedNodes14=
ModuleClosedNodes15=
ModuleClosedNodes16=
ModuleClosedNodes17=
ModuleClosedNodes18=
ModuleClosedNodes19=
ModuleClosedNodes2=9
ModuleClosedNodes20=
ModuleClosedNodes21=3,4
ModuleClosedNodes22=1
ModuleClosedNodes23=
ModuleClosedNodes24=
ModuleClosedNodes19=3,4
ModuleClosedNodes2=
ModuleClosedNodes20=1
ModuleClosedNodes21=
ModuleClosedNodes22=
ModuleClosedNodes3=
ModuleClosedNodes4=2,6,7,10,11
ModuleClosedNodes4=
ModuleClosedNodes5=7
ModuleClosedNodes6=
ModuleClosedNodes7=
ModuleClosedNodes8=
ModuleClosedNodes9=
NavigationStack=kms_helperSubs,Class_Globals,0,0,B4XMainPage,Entrar_Click,335,0,B4XMainPage,Initialize,96,0,C_Principal,Class_Globals,0,0,C_Principal,Initialize,226,0,C_Principal,B4XPage_Created,230,0,kms_helperSubs,RD_respalda_cat_gunaprod2,165,0,C_Principal,B4XPage_Appear,312,0,Main,Globals,25,0,B4XMainPage,Class_Globals,19,0
NavigationStack=C_Cliente,B_guardaencuesta_Click,1295,0,C_Cliente,B_guardaencuesta_m2_Click,2020,0,Diseñador Visual,ESNCUESTA_M2.bal,-100,5,C_Cliente,B_guardaencuesta_m4_Click,2288,0,C_Cliente,b_preguntag_Click,783,6,C_Cliente,CB1_P3_M3_CheckedChange,2806,0,C_Cliente,CB5_P3_M3_CheckedChange,2853,0,C_Cliente,Class_Globals,354,0,Diseñador Visual,ENCUESSTA_M3.bal,-100,6,C_Cliente,B_guardaencuesta_m3_Click,2196,0,MAPA_RUTAS,MapFragment1_Ready,177,0
SelectedBuild=0
VisibleModules=22,2,23,14,12,13,4,8,17,20
VisibleModules=20,2,21,12,13,4,8,11,5,10,19

View File

@@ -124,7 +124,7 @@ Sub MapFragment1_Ready
rp.CheckAndRequest(rp.PERMISSION_ACCESS_FINE_LOCATION)
Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
gmap.MyLocationEnabled = Result
Dim JavaMapsObject As JavaObject
JavaMapsObject = gmap.GetUiSettings
JavaMapsObject.RunMethod("setMapToolbarEnabled", Array As Object(True))
@@ -143,7 +143,7 @@ Sub MapFragment1_Ready
If c.GetString("CAT_CL_LONG") <> "" Then LongitudRU = c.GetString("CAT_CL_LONG")
CODIGO=c.GetString("CAT_CL_CODIGO")
Tienda= c.GetString("CAT_CL_NOMBRE")
MARK_AZUL = gmap.AddMarker2(LatitudRu,LongitudRU,CODIGO, gmap.HUE_BLUE)
MARK_AZUL = gmap.AddMarker2(LatitudRu, LongitudRU, CODIGO, gmap.HUE_BLUE)
MARK_AZUL.Snippet = Tienda
Next
End If
@@ -162,7 +162,7 @@ Sub MapFragment1_Ready
LatitudRu = c2.GetString("CAT_CL_LAT")
CODIGO=c2.GetString("CAT_CL_CODIGO")
Tienda= c2.GetString("CAT_CL_NOMBRE")
MARK_VERDE = gmap.AddMarker2(LatitudRu,LongitudRU,CODIGO,gmap.HUE_GREEN)
MARK_VERDE = gmap.AddMarker2(LatitudRu, LongitudRU, CODIGO, gmap.HUE_GREEN)
MARK_VERDE.Snippet = Tienda
Next
Else
@@ -263,6 +263,7 @@ Sub GPS_LocationChanged (Parametro As Location)
End Sub
Sub Activity_Resume
If GPS.GPSEnabled = False Then
ToastMessageShow("Debe Activar el GPS del Equipo.", True)
StartActivity(GPS.LocationSettingsIntent)

View File

@@ -20,6 +20,7 @@ Sub Process_Globals
Dim rutaHrsAtras As Int = 48
' Dim rutaInicioHoy As String = ""
Private subsLogs As Boolean = False
Dim skmt As SQL
End Sub
'Pone el valor de phn.Model en la variable global "devModel"
@@ -848,23 +849,13 @@ Sub traeMaxPromos(pm As Map) As Int
Private vendidas As Int = 0
maxPromos.Initialize
' If Starter.promosLog Then Log("==== HISTORICO:"&pm.Get("historico"))
If thisLog Then Log("TRAEMAXPROMOS PM: " & pm)
If pm.Get("historico") = "1" Then maxPromos.Add(pm.Get("maxRecurrente").As(Int)) 'Si hay historico, agregamos maxRecurrente
maxPromos.Add(pm.Get("maxPromos").As(Int)) 'Agregamos maxPromos
maxPromos.Add(pm.Get("maxXcliente").As(Int)) 'Agregamos maxXcliente
Private pr As Cursor = B4XPages.MainPage.skmt.ExecQuery($"select PR_CANT from PROMOXRUTA where PR_PROMOID = '${pm.Get("id")}'"$)
If pr.RowCount > 0 Then
pr.Position = 0
maxPromos.Add(pr.GetString("PR_CANT").As(Int)) 'Agregamos maxXruta
End If
' maxPromos.Add(2)
If thisLog Then Log("maxpromos -> " & maxPromos)
If thisLog Then Log(pm)
If pm.Get("historico") = "1" Then maxPromos.Add(pm.Get("maxRecurrente")) 'Si hay historico, agregamos maxRecurrente
maxPromos.Add(pm.Get("maxPromos")) 'Agregamos maxPromos
maxPromos.Add(pm.Get("maxXcliente")) 'Agregamos maxXcliente
If thisLog Then Log(maxPromos)
maxPromos.Sort(True)
Log("MAXP -> " & maxPromos)
Log("=========== " & maxPromos.Get(0))
' Log($"|${pm.Get("id").As(String).trim}|${traeCliente.Trim}|"$)
Private c As Cursor = B4XPages.MainPage.skmt.ExecQuery2("select sum(PE_CANT) as vendidas from PEDIDO where PE_PROID = ? and PE_CLIENTE = ? ", Array As String(pm.Get("id").As(String).trim, traeCliente.Trim))
If c.RowCount > 0 Then
@@ -872,7 +863,7 @@ Sub traeMaxPromos(pm As Map) As Int
vendidas = c.GetInt("vendidas")
' Log(vendidas)
End If
' If Starter.promosLog Then Log(maxPromos)
' If Starter.promosLog Then Log("Max Promos="&maxPromos.Get(0))
' LogColor($"maxPromos=${maxPromos.Get(0)} - vendidas=${vendidas}"$, Colors.red)
@@ -1107,27 +1098,20 @@ Sub traePromoIdDeBD As Map 'ignore
Return m
End Sub
'Guarda el nombre y version de la app en CAT_VARIABLES.
Sub guardaAppInfo(skmt As SQL) 'ignore
skmt.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'EMPRESA' or CAT_VA_DESCRIPCION = 'APP_NAME' or CAT_VA_DESCRIPCION = 'APP_VERSION'")
skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('APP_NAME', '${Application.LabelName}')"$)
skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('APP_VERSION', '${Application.VersionName}')"$)
End Sub
'Actualiza la tabla PROMOXRUTA con la cantidad especificada.
Sub guardaPromoXruta(laPromo As String, laCant As Int) 'ignore
B4XPages.MainPage.skmt.ExecNonQuery($"update PROMOXRUTA set PR_CANT = PR_CANT - ${laCant} where PR_PROMOID = '${laPromo}'"$)
Log($"${laPromo} - ${laCant}"$)
End Sub
'Muestra en el Log los campos y valores que regresan en el JobDone.
Sub logJobDoneResultados(resultado As DBResult) 'ignore
For Each records() As Object In resultado.Rows
LogColor($"====== ${resultado.Tag} - REGISTROS = ${resultado.Rows.Size}"$, Colors.RGB(215,37,0))
For Each k As String In resultado.Columns.Keys
LogColor(k & " = " & records(resultado.Columns.Get(k)), Colors.RGB(215,37,0))
Next
Next
Sub agregaColumna(tabla As String, columna As String, tipo As String) 'ignore
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna en la tabla
Private c As Cursor = skmt.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('${tabla}') WHERE name='${columna}'"$)
c.Position = 0
If c.GetString("fCol") = 0 Then 'Si no esta la columna la agregamos
skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}"."$)
End If
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
Try
skmt.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}".."$)
Catch
Log(LastException)
End Try
End Try
End Sub

View File

@@ -1,664 +0,0 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=12.2
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Dim skmt, rkmt As SQL
Private EventName As String 'ignore
Private CallBack As Object 'ignore
Dim rp As RuntimePermissions
Dim safePath As String
Dim fechaHoy As String
Dim fechaAnt As String
Dim skmtAttached As Boolean = False
Dim rkmtAttached As Boolean = False
'####### MES Vars ######
Private ion As Object
' Dim device As Phone
' Private mesCallback As Object
' Private mesEventName As String
Dim RD_Init_IsInitialized As Boolean = False
Dim btAdmin As BluetoothAdmin
End Sub
'Inicializa la clase "kms_helperSubs".
Public Sub Initialize (vCallback As Object, vEventName As String) As Object
EventName = vEventName
CallBack = vCallback
Return Me
End Sub
'This event will be called once, before the page becomes visible.
'Private Sub B4XPage_Created (Root1 As B4XView)
' Root = Root1
' 'load the layout to Root
'End Sub
'RD - Inicializa Respaldo Diario
Sub RD_Init
Dim Dirp As String = File.DirRootExternal
Dim Dir As String
' Dim Dir2 As String
Try
File.MakeDir(Dirp,"/kmts")
Dir = "/kmts"
' Log("creado en kmts " & Dirp & Dir)
Catch
Dir = ""
' Log("creado en raiz")
End Try
safePath = Dirp & Dir
If Starter.Logger Then Log($"Safepath:${safePath}"$)
Private name() As String = Regex.split(" ", Application.LabelName)
rkmt.Initialize(safePath,$"${name(0)}.rkmt.km"$, True)
skmt.Initialize(File.DirInternal,"kmt.db", False)
If chkIfTableExists(skmt, "PEDIDO") Then rkmt.ExecNonQuery($"create table if not exists PEDIDO (${getTableColumnList(skmt, "PEDIDO")}, FECHA TEXT)"$)
If chkIfTableExists(skmt, "CAT_DETALLES_PAQ") Then rkmt.ExecNonQuery($"create table if not exists CAT_DETALLES_PAQ (${getTableColumnList(skmt, "CAT_DETALLES_PAQ")}, FECHA TEXT)"$)
If chkIfTableExists(skmt, "CAT_GUNAPROD") Then rkmt.ExecNonQuery($"create table if not exists CAT_GUNAPROD (${getTableColumnList(skmt, "CAT_GUNAPROD")}, FECHA TEXT)"$)
If chkIfTableExists(skmt, "CAT_GUNAPROD2") Then rkmt.ExecNonQuery($"create table if not exists CAT_GUNAPROD2 (${getTableColumnList(skmt, "CAT_GUNAPROD2")}, FECHA TEXT)"$)
If chkIfTableExists(skmt, "kmt_info") Then rkmt.ExecNonQuery($"create table if not exists kmt_info (${getTableColumnList(skmt, "kmt_info")}, FECHA TEXT)"$)
DateTime.DateFormat = "yyyyMMdd"
fechaHoy = DateTime.Date(DateTime.Now)
If Starter.Logger Then Log("RKMTS: " & rkmt.IsInitialized)
If revisaSkmtAttached And rkmt.IsInitialized Then RD_Init_IsInitialized = True Else RD_Init_IsInitialized = False
' revisaRkmtAttached
End Sub
'RD - Revisa si esta montada "kmt.db" como "skmt1" y si no, la monta
'Para que "rkmt" vea a "skmt", es necesario montarla (attach).
Sub revisaSkmtAttached As Boolean
skmtAttached = False
Dim rs As ResultSet = rkmt.ExecQuery("SELECT * FROM pragma_database_list")
Do While rs.NextRow 'Revisamos si esta montada "kmt.db" como "skmt1" y si no, la montamos.
If rs.GetString("name") = "skmt1" Then skmtAttached = True
Loop
If Not(skmtAttached) Then
rkmt.ExecNonQuery($"attach database '${File.Combine(File.DirInternal, "kmt.db")}' as skmt1;"$)
skmtAttached = True
End If
Return skmtAttached
End Sub
'RD - Revisa si esta montada "kmt.db" como "rkmt1" y si no, la monta
'Para que "skmt" vea a "rkmt", es necesario montarla (attach).
Sub revisaRkmtAttached As Boolean
rkmtAttached = False
Dim rs As ResultSet = skmt.ExecQuery("SELECT * FROM pragma_database_list")
Do While rs.NextRow 'Revisamos si esta montada "kmt.db" como "rkmt1" y si no, la montamos.
If rs.GetString("name") = "rkmt1" Then rkmtAttached = True
Log(rs.GetString("name"))
Loop
If Not(rkmtAttached) Then
Private name() As String = Regex.split(" ", Application.LabelName)
skmt.ExecNonQuery($"attach database '${File.Combine(safePath,$"${name(0)}.rkmt.km"$)}' as rkmt1;"$)
rkmtAttached = True
End If
Return rkmtAttached
End Sub
'Inicializa la BD con "kmt.db" en "File.DirInternal", si el archivo no existe, lo copia desde "File.DirAssets".
'Ej: dim skmt as sql = dbInit
Sub dbInit As SQL 'ignore
Private db As SQL
If File.Exists(File.DirInternal, "kmt.db") = False Then File.Copy(File.DirAssets, "kmt.db", File.DirInternal, "kmt.db")
db.Initialize(File.DirInternal,"kmt.db", True)
' dbOk(True)
' Log(db.IsInitialized)
Return db
End Sub
'RD - Copia la tabla PEDIDO a rkmt.db en la tarjeta del celular.
Sub RD_respalda_pedido
Private inicio As String = DateTime.Now
' Log("Copiando PEDIDO ...")
Private x As Cursor = skmt.ExecQuery("select * from PEDIDO")
If x.RowCount > 0 Then
Private lasCols As String = getTableColumnListName(skmt, "PEDIDO")
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from PEDIDO where FECHA = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into PEDIDO (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.PEDIDO where substr(pe_fecha, 1, 10) = '${fechaHoy}'"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
End If
x.Close
Log("P: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla CAT_GUNAPRODS a rkmt.db en la tarjeta del celular.
Sub RD_respalda_cat_gunaprod
Private inicio As String = DateTime.Now
' Log("Copiando CAT_GUNAPROD ...")
Private x As Cursor = skmt.ExecQuery("select * from CAT_GUNAPROD")
If x.RowCount > 0 Then
Private lasCols As String = getTableColumnListName(skmt, "CAT_GUNAPROD")
lasCols = lasCols.Replace(", CAT_GP_IMG", "") 'Quitamos la imagen del respaldo.
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from CAT_GUNAPROD where FECHA = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into CAT_GUNAPROD (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_GUNAPROD"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
End If
x.Close
Log("GP: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla CAT_GUNAPROD de rkmt.db al celular.
Sub RD_restaura_cat_gunaprod
Private inicio As String = DateTime.Now
' Log("Restaurando CAT_GUNAPROD ...")
Private lasCols As String = getTableColumnListName(rkmt, "CAT_GUNAPROD")
lasCols = lasCols.Replace(", FECHA", "") 'Quitamos la imagen del respaldo.
Private c As Cursor = rkmt.ExecQuery($"select distinct fecha from CAT_GUNAPROD order by fecha desc"$) 'where fecha <> '${fechaHoy}' 'Traemos la ultima fecha antes de hoy.
Log(c.RowCount)
If c.RowCount > 0 Then
c.Position = 0
Log(c.GetString("FECHA"))
skmt.ExecNonQuery("delete from CAT_GUNAPROD")
skmt.ExecNonQuery($"insert into CAT_GUNAPROD (${lasCols}) select ${lasCols} from rkmt1.CAT_GUNAPROD where fecha = '${c.GetString("FECHA")}'"$)
Log($"insert into CAT_GUNAPROD (${lasCols}) select ${lasCols} from rkmt1.CAT_GUNAPROD where fecha = '${c.GetString("FECHA")}'"$)
End If
Log("R-GP: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla CAT_GUNAPROD2 a rkmt.db en la tarjeta del celular.
Sub RD_respalda_cat_gunaprod2
Private inicio As String = DateTime.Now
' Log("Copiando CAT_GUNAPROD2 ...")
Private x As Cursor = skmt.ExecQuery("select * from CAT_GUNAPROD2")
If x.RowCount > 0 Then
Private lasCols As String = getTableColumnListName(skmt, "CAT_GUNAPROD2")
lasCols = lasCols.Replace(", CAT_GP_IMG", "") 'Quitamos la fecha del respaldo.
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from CAT_GUNAPROD2 where FECHA = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into CAT_GUNAPROD2 (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.CAT_GUNAPROD2"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
End If
x.Close
Log("GP2: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla CAT_GUNAPROD2 de rkmt.db al celular.
Sub RD_restaura_cat_gunaprod2
Private inicio As String = DateTime.Now
' Log("Restaurando CAT_GUNAPROD2 ...")
Private lasCols As String = getTableColumnListName(rkmt, "CAT_GUNAPROD2")
lasCols = lasCols.Replace(", FECHA", "") 'Quitamos la fecha del respaldo.
Private c As Cursor = rkmt.ExecQuery($"select distinct fecha from CAT_GUNAPROD2 order by fecha desc"$) 'where fecha <> '${fechaHoy}' 'Traemos la ultima fecha antes de hoy.
' Log(c.RowCount)
If c.RowCount > 0 Then
c.Position = 0
' Log(c.GetString("FECHA"))
skmt.ExecNonQuery("delete from CAT_GUNAPROD2")
skmt.ExecNonQuery($"insert into CAT_GUNAPROD2 (${lasCols}) select ${lasCols} from rkmt1.CAT_GUNAPROD2 where fecha = '${c.GetString("FECHA")}'"$)
Log($"insert into CAT_GUNAPROD2 (${lasCols}) select ${lasCols} from rkmt1.CAT_GUNAPROD2 where fecha = '${c.GetString("FECHA")}'"$)
End If
Log("R-GP2: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla CAT_DETALLE_PAQ a rkmt.db en la tarjeta del celular.
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
Log("DP: " & ((DateTime.Now - inicio)/1000) & " segs")
End If
x.Close
End Sub
'RD - Copia la tabla CAT_DETALLES_PAQ de rkmt.db al celular.
Sub RD_restaura_cat_detalle_paq
Private inicio As String = DateTime.Now
' Log("Restaurando CAT_DETALLES_PAQ ...")
Private lasCols As String = getTableColumnListName(rkmt, "CAT_DETALLES_PAQ")
lasCols = lasCols.Replace(", FECHA", "") 'Quitamos la fecha del respaldo.
Private c As Cursor = rkmt.ExecQuery($"select distinct fecha from CAT_DETALLES_PAQ order by fecha desc"$) 'where fecha <> '${fechaHoy}' 'Traemos la ultima fecha antes de hoy.
' Log(c.RowCount)
If c.RowCount > 0 Then
c.Position = 0
' Log(c.GetString("FECHA"))
skmt.ExecNonQuery("delete from CAT_DETALLES_PAQ")
skmt.ExecNonQuery($"insert into CAT_DETALLES_PAQ (${lasCols}) select ${lasCols} from rkmt1.CAT_DETALLES_PAQ where fecha = '${c.GetString("FECHA")}'"$)
Log($"insert into CAT_DETALLES_PAQ (${lasCols}) select ${lasCols} from rkmt1.CAT_DETALLES_PAQ where fecha = '${c.GetString("FECHA")}'"$)
End If
Log("R-DP: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla kmt_info a rkmt.db en la tarjeta del celular.
Sub RD_respalda_kmt_info
Private inicio As String = DateTime.Now
' Log("Copiando kmt_info ...")
Private x As Cursor = skmt.ExecQuery("select * from kmt_info")
If x.RowCount > 0 Then
Private lasCols As String = getTableColumnListName(skmt, "kmt_info")
rkmt.BeginTransaction
rkmt.ExecNonQuery($"delete from kmt_info where fecha = '${fechaHoy}'"$)
rkmt.ExecNonQuery($"insert into kmt_info (${lasCols}, FECHA) select ${lasCols}, '${fechaHoy}' as FECHA from skmt1.kmt_info"$)
rkmt.TransactionSuccessful 'Si no se pone TransactionSuccessful no se escribe NADA!!
rkmt.EndTransaction
End If
x.Close
Log("KMT: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Copia la tabla kmt_info de rkmt.db al celular.
Sub RD_restaura_kmt_info
Private inicio As String = DateTime.Now
' Log("Restaurando KMT_INFO ...")
Private lasCols As String = getTableColumnListName(rkmt, "kmt_info")
lasCols = lasCols.Replace(", FECHA", "") 'Quitamos la fecha del respaldo.
Private c As Cursor = rkmt.ExecQuery($"select distinct fecha from kmt_info order by fecha desc"$) 'where fecha <> '${fechaHoy}' 'Traemos la ultima fecha antes de hoy.
' Log(c.RowCount)
If c.RowCount > 0 Then
c.Position = 0
' Log(c.GetString("FECHA"))
skmt.ExecNonQuery("delete from kmt_info")
skmt.ExecNonQuery($"insert into kmt_info (${lasCols}) select ${lasCols} from rkmt1.kmt_info where fecha = '${c.GetString("FECHA")}'"$)
Log($"insert into kmt_info (${lasCols}) select ${lasCols} from rkmt1.kmt_info where fecha = '${c.GetString("FECHA")}'"$)
End If
Log("R-KMT: " & ((DateTime.Now - inicio)/1000) & " segs")
End Sub
'RD - Realiza un "vacuum" de la base de datos "rkmt".
Sub RD_vacuum 'ignore
Log("Vacuum")
rkmt.ExecNonQuery("vacuum;")
End Sub
'Agrega una columna a la tabla especificada.
'Hay que indicar el "tipo" de la columna (TEXT, INTEGER, ETC)
'Ej. agregaColumna(DB, "TABLA", "COLUMNA", "TIPO")
Sub agregaColumna(db As SQL, tabla As String, columna As String, tipo As String) 'ignore
Try 'Intentamos usar "pragma_table_info" para revisar si existe la columna en la tabla
Private c As Cursor = db.ExecQuery($"SELECT COUNT(*) AS fCol FROM pragma_table_info('${tabla}') WHERE name='${columna}'"$)
c.Position = 0
If c.GetString("fCol") = 0 Then 'Si no esta la columna la agregamos
db.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}"."$)
End If
Catch 'Si no funciona "pragma_table_info" lo hacemos con try/catch
Try
db.ExecNonQuery($"ALTER TABLE ${tabla} ADD COLUMN ${columna} ${tipo}"$)
Log($"Columna "${columna} ${tipo}", agregada a "${tabla}".."$)
Catch
Log(LastException)
End Try
End Try
End Sub
'Regresa los nombres y tipos de las columnas de una tabla dada.
Sub getTableColumnList(db As SQL, table As String) As String 'ignore
Private l As String = ""
If chkIfTableExists(db, table) Then
Private c As Cursor = skmt.ExecQuery($"pragma table_info(${table})"$)
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
If l.Length = 0 Then
l = $"${c.GetString("name")} ${c.GetString("type")}"$
Else
l = $"${l}, ${c.GetString("name")} ${c.GetString("type")}"$
End If
Next
End If
Else
Return "No existe la tabla."
End If
c.Close
Return l
End Sub
'Regresa solo los nombres de las columnas de una tabla dada.
Sub getTableColumnListName(db As SQL, table As String) As String 'ignore
Private l As String = ""
If chkIfTableExists(db, table) Then
Private c As Cursor = skmt.ExecQuery($"pragma table_info(${table})"$)
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
If l.Length = 0 Then
l = $"${c.GetString("name")}"$
Else
l = $"${l}, ${c.GetString("name")}"$
End If
Next
End If
Else
Return "No existe la tabla."
End If
c.Close
Return l
End Sub
'Revisa si una tabla dada existe en una base de datos dada, regresa true o false.
Sub chkIfTableExists(db As SQL, table As String) As Boolean 'ignore
Private t As Boolean = False 'ignore
If db.IsInitialized Then
Private c As Cursor = skmt.ExecQuery($"SELECT name FROM sqlite_master WHERE type='table' AND name='${table}'"$)
If c.RowCount > 0 Then t = True
c.Close
End If
Return t
End Sub
'Hace visible y trae al frente el panel con los parametros "Top" y "Left" dados
Sub panelVisible(panel As Panel, top As Int, left As Int) 'ignore
panel.BringToFront
panel.Visible = True
panel.Top = top
panel.Left = left
End Sub
'Centra una etiqueta dentro de un elemento superior
Sub centraEtiqueta(elemento As Label, anchoElementoSuperior As Int) 'ignore
elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2)
etiquetaCentrada(True)
End Sub
Sub etiquetaCentrada(Success As Boolean)
If SubExists(CallBack, EventName & "_etiquetaCentrada") Then
CallSub2(CallBack, EventName & "_etiquetaCentrada", Success)
End If
End Sub
'Centra un panel horizontalmente dentro de un elemento superior
Sub centraPanel(elemento As Panel, anchoElementoSuperior As Int) 'ignore
elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2)
End Sub
'Centra un panel verticalmente dentro de un elemento superior
Sub centraPanelV(elemento As Panel, altoElementoSuperior As Int) 'ignore
elemento.Top = Round(altoElementoSuperior/2)-(elemento.Height/2)
End Sub
'Centra una barra de progreso dentro de un elemento superior
Sub centraProgressBar(elemento As ProgressBar, anchoElementoSuperior As Int) 'ignore
elemento.Left = Round(anchoElementoSuperior/2)-(elemento.Width/2)
End Sub
'Regresa el usuario de la tabla USUARIOA, si no lo encuentra regresa "SinUsuario"
Sub traeUsuarioDeDB(db As SQL) As String 'ignore
Private c As Cursor
Private u As String = "SinUsuario"
c = skmt.ExecQuery("select USUARIO from usuarioa")
c.Position=0
If c.RowCount > 0 Then u = c.GetString("USUARIO")
c.Close
Return u
End Sub
'Regresa el almacen actual de la base de datos.
Sub traeAlmacen(db As SQL) As String 'ignore
Private c As Cursor
Private a As String
c = skmt.ExecQuery("select ID_ALMACEN from CAT_ALMACEN")
c.Position = 0
a = c.GetString("ID_ALMACEN")
c.Close
Return a
End Sub
'Regresa el nombre del producto desde CAT_GUNAPROD.
Sub traeProdNombre(db As SQL, id As String) As String 'ignore
Private h As Cursor
Private n As String
h = skmt.ExecQuery2("select CAT_GP_NOMBRE from CAT_GUNAPROD where CAT_GP_ID = ? ", Array As String(id.Trim))
If h.RowCount > 0 Then
h.Position = 0
n = h.GetString("CAT_GP_NOMBRE")
' Log(h.RowCount&"|"&id&"|"&n&"|")
End If
h.Close
If n = Null Or n="" Then n = "N/A"
' Log(h.RowCount&"|"&id&"|"&n&"|")
Return n
End Sub
'Regresa la ruta actual de la base de datos.
Sub traeRuta(db As SQL) As String 'ignore
Private c As Cursor
Private r As String
c = skmt.ExecQuery("select CAT_CL_RUTA from kmt_info where CAT_CL_CODIGO In (Select cuenta from cuentaa)")
r = "0"
If c.RowCount > 0 Then
c.Position=0
r = c.GetString("CAT_CL_RUTA")
End If
c.Close
Return r
End Sub
'Regresa el cliente actual de la base de dtos (CUENTAA).
Sub traeCliente(db As SQL) As String 'ignore
Private c As Cursor
Private cl As String
c = skmt.ExecQuery("Select CUENTA from cuentaa")
c.Position=0
cl = c.GetString("CUENTA")
c.Close
Return cl
End Sub
'Regresa en un mapa el total de productos y monto del pedido del cliente actual
'resultado = {"productos":"antidad_de_productos", "monto":"costo_total"}
Sub traeTotalesClienteActual(db As SQL) As Map 'ignore
Private m As Map
m.Initialize
Private c_prodsX As Cursor = skmt.ExecQuery("select ifnull(sum(PE_CANT), 0) as cantProds, ifnull(sum(PE_COSTO_TOT), 0) as costoTotal FROM PEDIDO WHERE PE_CLIENTE IN (Select CUENTA from cuentaa) order by PE_PRONOMBRE asc")
c_prodsX.Position = 0
' LogColor($"Productos de la orden: ${c_prodsX.GetString("cantProds")}, Total: ${c_prodsX.GetString("costoTotal")}"$, Colors.red)
m = CreateMap("productos": c_prodsX.GetString("cantProds"), "monto" : c_prodsX.GetString("costoTotal"))
Return m
End Sub
'Borra el pedido del cliente actual.
'Borra los registros de la tabla "PEDIDO" y "PEDIDO_CLIENTE"
'Actualiza las tablas "cat_gunaprod" y "kmt_info".
Sub borraPedidoClienteActual(db As SQL) As String 'ignore
Private thisC As Cursor
thisC = skmt.ExecQuery("select PE_PROID,PE_CANT FROM PEDIDO where pe_cliente in (Select CUENTA from cuentaa) ")
If thisC.RowCount>0 Then
For i=0 To thisC.RowCount -1
thisC.Position=i
skmt.ExecNonQuery2("update cat_gunaprod set cat_gp_almacen = cat_gp_almacen + ? where cat_gp_id = ?", Array As Object(thisC.GetString("PE_CANT"),thisC.GetString("PE_PROID")))
skmt.ExecNonQuery2("INSERT INTO INVENT_X_ENVIAR (ALMACEN , PROID , CANTIDAD ) VALUES(?,?,?) ", Array As Object (traeAlmacen(db), thisC.GetString("PE_PROID"),thisC.GetString("PE_CANT")* -1))
Next
End If
skmt.ExecNonQuery("delete from pedido_cliente where pc_cliente in (Select CUENTA from cuentaa)")
skmt.ExecNonQuery("delete from pedido where pe_cliente in (Select CUENTA from cuentaa)")
skmt.ExecNonQuery("UPDATE kmt_info set gestion = 0 where CAT_CL_CODIGO In (select cuenta from cuentaa)")
Return 1
End Sub
'Regresa verdadero si la columna gestion en la tabla "kmt_info" tene valor 2.
'si no, entonces regresa falso.
Sub pedidoGuardado(db As SQL) As Boolean 'ignore
Private guardado As Boolean = False
Private g As Cursor = skmt.ExecQuery("select gestion from kmt_info where CAT_CL_CODIGO in (Select CUENTA from cuentaa)")
If g.RowCount > 0 Then
g.Position=0
If g.GetString("gestion") = "2" Then guardado = True
End If
Log($"Guardado=${guardado}"$)
Return guardado
End Sub
'Regresa verdadero si hay pedido en la tabla "PEDIDO" del cliente actual.
Sub hayPedido(db As SQL) As Boolean 'ignore
Private thisC As Cursor = skmt.ExecQuery($"select count(PE_CLIENTE) as hayPedido from PEDIDO where PE_CLIENTE = '${traeCliente(db)}'"$)
thisC.Position = 0
Private hay As Boolean = False
If thisC.GetInt("hayPedido") > 0 Then hay = True
' Log($"Cliente actual=${traeCliente}, hayPedido=${hay}"$)
Return hay
End Sub
Sub string2date(fecha As String)
Log(fecha)
DateTime.DateFormat = "MM/dd/yyyy"
Dim t As Long = DateTime.DateTimeParse(fecha, "00:00:00")
DateTime.DateFormat = "yy/MM/dd"
Log($"${t} - ${Subs.fechaKMT(t)}"$)
End Sub
'Guarda el nombre y version de la app en CAT_VARIABLES.
Sub guardaAppInfo(db As SQL) 'ignore
db.ExecNonQuery("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = 'EMPRESA' or CAT_VA_DESCRIPCION = 'APP_NAME' or CAT_VA_DESCRIPCION = 'APP_VERSION'")
db.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('APP_NAME', '${Application.LabelName}')"$)
db.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('APP_VERSION', '${Application.VersionName}')"$)
End Sub
'Muestra en el Log los campos y valores que regresan en el JobDone.
Sub logJobDoneResultados(resultado As DBResult) 'ignore
For Each records() As Object In resultado.Rows
LogColor($"====== ${resultado.Tag} - REGISTROS = ${resultado.Rows.Size}"$, Colors.RGB(215,37,0))
For Each k As String In resultado.Columns.Keys
LogColor(k & " = " & records(resultado.Columns.Get(k)), Colors.RGB(215,37,0))
Next
Next
End Sub
'Revisa si la aplicación tiene permiso para acceder a las notificaciones.
Sub CheckNotificationAccess As Boolean
Dim ph As Phone
Dim nstr, pstr As String
Dim r As Reflector
pstr = r.GetStaticField("anywheresoftware.b4a.BA", "packageName")
nstr = ph.GetSettings("enabled_notification_listeners")
Return nstr.Contains(pstr)
End Sub
'################ Manage External Storage (MES) #########################
'
''Inicializa "Manage External Storage" (MES), que nos da acceso a la tarjeta de memoria en Android 11+
'Public Sub MES_Init (mCallBack As Object, mEventName As String)
' mesCallback = mCallBack
' mesEventName = mEventName
'End Sub
'
'Sub MES_checkPermission 'ignore
'' ' get the device SDK version
'' Dim SdkVersion As Int = device.SdkVersion
'' ' Choose which permission to request in order to access external storgage
'' If SdkVersion < 30 Then
''' Log("SDK = " & SdkVersion & " : Requesting WRITE_EXTERNAL_STORAGE permission")
'' Dim rp As RuntimePermissions
'' rp.CheckAndRequestPermission(rp.PERMISSION_WRITE_EXTERNAL_STORAGE) ' Implicit read capability if granted
'' Wait For Activity_PermissionResult (Permission As String, Result As Boolean)
''' Log($"PERMISSION_WRITE_EXTERNAL_STORAGE = ${Result}"$)
'' Else
''' Log("SDK = " & SdkVersion & " : Requesting MANAGE_EXTERNAL_STORAGE permission")
''' Log("On Entry MANAGE_EXTERNAL_STORAGE = " & MES1.HasPermission)
'' If Not(MES_HasPermission) Then
'' MsgboxAsync("This app requires access to all files, please enable the option", "Manage All Files")
'' Wait For Msgbox_Result(Res As Int)
''' Log("Getting permission")
'' MES_GetPermission
'' Wait For MES_StorageAvailable
'' End If
'' End If
'End Sub
'
'' Determine if the app already has MANAGE_EXTERNAL_STORAGE call Environment.isExternalStorageManager()
'' Return True if this app already has MANAGE_EXTERNAL_STORAGE permission
'Public Sub MES_HasPermission As Boolean
' Dim has As Boolean
' Dim jo As JavaObject
' jo.InitializeStatic("android.os.Environment")
' has = jo.RunMethod("isExternalStorageManager", Null)
' Return has
'End Sub
'
'' Check whether this app has MANAGE_EXTERNAL_STORAGE permission
'' If not show the user a dialog to enable MANAGE_EXTERNAL_STORAGE permission for this app
'' Raises the StorageAvailable event in the calling activity when complete
'Public Sub MES_GetPermission
' If MES_HasPermission Then
' RaiseEvent
' Return
' End If
' Dim in As Intent
' ' Be sure to reference your app package name in "pakageg:xxx"
' in.Initialize("android.settings.MANAGE_APP_ALL_FILES_ACCESS_PERMISSION", $"package:${Application.PackageName}"$)
' StartActivityForResult(in)
'End Sub
'
'Private Sub RaiseEvent
' Log("Calling : " & mesEventName & "_StorageAvailable")
' CallSubDelayed(mesCallback, mesEventName & "_StorageAvailable")
'End Sub
'
'Private Sub ion_Event (MethodName As String, Args() As Object) As Object
' RaiseEvent
' Return Null
'End Sub
'
'Private Sub StartActivityForResult(i As Intent)
' Dim jo As JavaObject = MES_GetBA
' ion = jo.CreateEvent("anywheresoftware.b4a.IOnActivityResult", "ion", Null)
' jo.RunMethod("startActivityForResult", Array As Object(ion, i))
'End Sub
'
'Private Sub MES_GetBA As Object
' Dim jo As JavaObject = Me
' Return jo.RunMethod("getBA", Null)
'End Sub
'################ TERMINA Manage External Storage (MES) #########################
'################ INICIA ENABLE BLUETOOTH #########################
Sub StartBluetooth 'ignore
btAdmin.Initialize("btAdmin")
Log("btAdmin: " & btAdmin.IsEnabled)
If btAdmin.IsEnabled = False Then
Wait For (EnableBluetooth) Complete (Success As Boolean)
If Success = False Then
ToastMessageShow("Failed to enable bluetooth", True)
End If
Log(Success)
End If
Log($"BTADMIN: ${btAdmin.IsEnabled}"$)
End Sub
Sub EnableBluetooth As ResumableSub
ToastMessageShow("Enabling Bluetooth adapter...", False)
Private ph As Phone
If ph.SdkVersion >= 31 Then
rp.CheckAndRequest("android.permission.BLUETOOTH_CONNECT")
Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean)
If Result = False Then Return False
Log($"BTCONNECT: ${Result}"$)
If ph.SdkVersion >= 33 Then
Dim in As Intent
in.Initialize("android.bluetooth.adapter.action.REQUEST_ENABLE", "")
StartActivityForResult(in)
Wait For ion_Event (MethodName As String, Args() As Object)
Return btAdmin.IsEnabled
End If
End If
Return btAdmin.Enable
End Sub
Private Sub GetBA As Object
Dim jo As JavaObject = Me
Return jo.RunMethod("getBA", Null)
End Sub
Private Sub StartActivityForResult(i As Intent)
Dim jo As JavaObject = GetBA
ion = jo.CreateEvent("anywheresoftware.b4a.IOnActivityResult", "ion", Null)
jo.RunMethod("startActivityForResult", Array As Object(ion, i))
End Sub
'################ TERMINA ENABLE BLUETOOTH #########################