B4A=true Group=Default Group ModulesStructureVersion=1 Type=Class Version=9.85 @EndOfDesignText@ #Region Shared 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 ############################################################# 'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=..\..\gitpull.bat '########################################################################################################### '###################### PUSH ############################################################# 'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=github&Args=..\..\ '########################################################################################################### #End Region 'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip Sub Class_Globals Dim rp As RuntimePermissions Private Root As B4XView Private xui As XUI Private Root As B4XView Public rp As RuntimePermissions Public login As B4XMainPage Public principal As C_Principal Public clientes As C_Clientes Public cliente As C_Cliente ' Public foto As C_Foto Public productos As C_Productos Public updateAvailable As C_UpdateAvailable Public mapas As C_Mapas Public nuevoCliente As C_NuevoCliente Public ticketsDia As C_TicketsDia Public noVenta As C_NoVenta Public pedidos As C_Pedidos Public buscar As C_Buscar ' Public historico As C_Historico Public detalleVenta As C_DetalleVenta Public detalle_promo As C_Detalle_Promo Dim reqManager As DBRequestManager ' Dim ruta As String Dim usuario As String Dim logger As Boolean = True Dim lat_gps, lon_gps As String ' Dim skmt As SQL Dim usuario As String Dim server As String Dim montoActual, clientesTotal, clientesVenta, clientesRechazo, clientesVisitados, almacen, rutaPreventa, CANTIDADPROD As String Dim ultimaActualizacionGPS As String = 235959 Dim fechaRuta As String ' Public wsServerLink As String = "ws://187.189.244.154:51042/push/b4a_ws2" ' Public wsServerLink As String = "ws://10.0.0.214:51042/push/b4a_ws2" Dim srvIp As String Dim phn As Phone Dim user As EditText Dim pass As EditText Dim c As Cursor Dim existe As String Dim paso1 As String Private IMEN As Label Dim IMEI As String Private Label1 As Label Dim server As String Private p_principal As Panel Private Entrar As Button Public tabulador As C_tabulador Dim batt As Int Dim porVisitar, entregas, rechazos, montoEntregado, montoRechazado As String Private p_appUpdate As Panel Private i_engrane As ImageView Private b_server As Button Private b_apk As Button Private b_envioBD As Button Private b_regesar As Button Private et_server As EditText Private p_serverList As Panel Private lv_server As ListView Public Provider As FileProvider Public rutaBDBackup As String = "" End Sub Public Sub Initialize ' B4XPages.GetManager.LogEvents = True End Sub 'This event will be called once, before the page becomes visible. Private Sub B4XPage_Created (Root1 As B4XView) Root = Root1 B4XPages.GetManager.LogEvents = True Root.LoadLayout("login") B4XPages.SetTitle(Me, "Mariana Reparto") login.Initialize B4XPages.AddPage("Login", login) principal.Initialize B4XPages.AddPage("Principal", principal) clientes.Initialize B4XPages.AddPage("Clientes", clientes) cliente.Initialize B4XPages.AddPage("Cliente", cliente) ' foto.Initialize ' B4XPages.AddPage("Foto", foto) productos.Initialize B4XPages.AddPage("Productos", productos) updateAvailable.Initialize B4XPages.AddPage("updateAvailable", updateAvailable) mapas.Initialize B4XPages.AddPage("Mapas", mapas) nuevoCliente.Initialize B4XPages.AddPage("NuevoCliente", nuevoCliente) ticketsDia.Initialize B4XPages.AddPage("TicketsDia", ticketsDia) noVenta.Initialize B4XPages.AddPage("NoVenta", noVenta) pedidos.Initialize B4XPages.AddPage("Pedidos", pedidos) buscar.Initialize B4XPages.AddPage("Buscar", buscar) ' historico.Initialize ' B4XPages.AddPage("Historico", historico) detalleVenta.Initialize B4XPages.AddPage("DetalleVenta", detalleVenta) detalle_promo.Initialize B4XPages.AddPage("Detalle_Promo", detalle_promo) tabulador.Initialize B4XPages.AddPage("tabulador", tabulador) Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS TABULADOR_MONEDAS(VEINTE TEXT, DIEZ TEXT, CINCO TEXT, DOS TEXT, PESO TEXT, CENTAVO TEXT, TOTAL TEXT)") Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS TABULADOR_BILLETES(MIL TEXT, QUINIENTOS TEXT, DOCIENTOS TEXT, CIEN TEXT, CINCUENTA TEXT, VEINTE TEXT)") Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS HIST_VENTAS2 (HVD_PARCIAL TEXT, HVD_RECHAZO TEXT, HVD_NUM_REGISTRO TEXT, HVD_NUM_TICKET TEXT, HVD_PROID TEXT, HVD_CODPROMO TEXT, HVD_FECHA TEXT, HVD_ESTATUS TEXT, HVD_CLIENTE TEXT, HVD_PRONOMBRE TEXT, HVD_CANT TEXT, HVD_COSTO_TOT TEXT)") ' Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS VENTAS (V_FECHA TEXT, V_CLIENTE TEXT, V_CLIENTE_ORIG TEXT, V_PRODNOMBRE TEXT, V_PRODID TEXT, V_CANTIDAD TEXT, V_PRECIO TEXT, V_TOTAL TEXT, V_PRODREGISTRO TEXT)") Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RECHAZOS (R_FECHA TEXT, R_CLIENTE TEXT, R_CLI_ORIG TEXT, R_PRODID TEXT, R_CANT TEXT, R_RECHAZO INT)") Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS VENTAS (V_FECHA TEXT, V_CLIENTE TEXT, V_CLI_ORIG TEXT, V_PRODID TEXT, V_CANT TEXT, V_RECHAZO INT)") Subs.agregaColumna("REPARTO", "REP_PRODREGISTRO", "TEXT") Subs.agregaColumna("kmt_info", "SECUENCIA", "INT") Subs.agregaColumna("REPARTO", "REP_PRODID", "TEXT") Subs.agregaColumna("REPARTO", "REP_CLI_ORIG", "TEXT") Subs.agregaColumna("REPARTO", "REP_PRECIO", "TEXT") Subs.agregaColumna("REPARTO", "REP_RECHAZO", "INTEGER") Subs.agregaColumna("RECHAZOS", "R_PRECIO", "TEXT") Subs.agregaColumna("VENTAS", "V_PRECIO", "TEXT") Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS RUTAA (RUTAA TEXT)") Starter.skmt.ExecNonQuery("CREATE TABLE IF NOT EXISTS wayPoints (codigo TEXT, indice INT)") Dim server As String = "http://187.189.244.154:1782" ' Dim server As String = "http://11.0.0.253:1782" ' server = "http://10.0.0.205:1782" ' server = "http://11.0.0.44:1782" reqManager.Initialize(Me, B4XPages.MainPage.server) LogColor($"ReqServer = ${B4XPages.MainPage.server}"$, Colors.red) Label1.Text = Application.VersionName ' Dim P As PhoneId Log("provider") Provider.Initialize ' Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_READ_PHONE_STATE) ' Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) ' If Result Then ' IMEN.Text = "" 'P.GetDeviceId ' IMEI = "" 'P.GetDeviceId ' End If End Sub Sub B4XPage_Appear If Starter.muestraProgreso = 1 Then muestraProgreso("Descargando actualización") Starter.muestraProgreso = 0 End If Subs.centraPanel(p_principal, Root.Width) Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_ACCESS_FINE_LOCATION) ' LogColor("Start Tracker1", Colors.red) Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) If Result Then StartService(Tracker) ' LogColor("Start Tracker", Colors.red) Else ToastMessageShow("No permission", True) Log("Sin permisos") End If ' LogColor("Start Tracker3", Colors.red) c=Starter.skmt.ExecQuery("select USUARIO from usuarioa") If c.RowCount > 0 Then ' c.Position=0 ' c=skmt.ExecQuery("select USUARIO from usuarioa") c.Position=0 usuario = c.GetString("USUARIO") End If c.Close Starter.rp.CheckAndRequest(Starter.rp.PERMISSION_WRITE_EXTERNAL_STORAGE) Wait For B4XPage_PermissionResult (Permission As String, Result As Boolean) If Result Then Log("Con permisos de escritura externa") End If End Sub 'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage. Sub Entrar_Click If pass.Text = "YA" Then Starter.skmt.ExecNonQuery("delete from usuarioa") Starter.skmt.ExecNonQuery("delete from VERSION") Starter.skmt.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?)", Array As Object("ROOT", "ROOT")) Starter.skmt.ExecNonQuery("delete from cat_almacen") Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (user.Text)) Starter.skmt.ExecNonQuery2("INSERT INTO VERSION(NOVERSION) VALUES (?)", Array As Object ("2.1")) ' principal.B_REGRESA_Click ' B4XPages.MainPage.principal.Subir.Visible = True B4XPages.ShowPage("Principal") Else c=Starter.skmt.ExecQuery2("select count(*) as EXISTE1 from usuarioa where usuario = ?", Array As String(user.Text)) c.Position=0 existe = c.GetString("EXISTE1") c.Close 'existe = 1 If existe = 0 Then 'skmt.ExecNonQuery("delete from usuarioa") Dim cmd As DBCommand cmd.Initialize cmd.Name = "select_usuario_mards_REPG" cmd.Parameters = Array As Object(user.Text, pass.Text) reqManager.ExecuteQuery(cmd , 0, "usuario") Dim cmd As DBCommand cmd.Initialize cmd.Name = "select_version_MARDS" reqManager.ExecuteQuery(cmd , 0, "version") Else ' principal.B_REGRESA_Click B4XPages.ShowPage("Principal") End If End If End Sub Sub JobDone(Job As HttpJob) If Job.Success = False Then ToastMessageShow("Error: " & Job.ErrorMessage, True) Else If Job.JobName = "DBRequest" Then Dim result As DBResult = reqManager.HandleJob(Job) If result.Tag = "version" Then 'query tag For Each records() As Object In result.Rows Starter.skmt.ExecNonQuery("delete from VERSION") Dim CAT_VE_VERSION As String = records(result.Columns.Get("CAT_VE_VERSION")) Starter.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 = reqManager.HandleJob(Job) If result.Tag = "agencia" Then 'query tag For Each records() As Object In result.Rows Dim ID_ALMACEN As String = records(result.Columns.Get("ID_ALMACEN")) Next End If End If If Job.JobName = "DBRequest" Then Dim result As DBResult = reqManager.HandleJob(Job) If result.Tag = "usuario" Then 'query tag For Each records() As Object In result.Rows Dim name As String = records(result.Columns.Get("USUARIO")) Dim ID_ALMACEN As String = records(result.Columns.Get("CAT_LO_AGENCIA")) Dim IMEI_BASE As String = records(result.Columns.Get("CAT_LO_IDTELEFONO")) Next paso1 = 1 End If End If Job.Release End If If paso1 = 1 Then If name = "OKActivo" Then Starter.skmt.ExecNonQuery("delete from usuarioa") Starter.skmt.ExecNonQuery2("INSERT INTO USUARIOA VALUES (?,?)", Array As Object(user.Text, pass.Text)) Starter.skmt.ExecNonQuery("delete from cat_almacen") Starter.skmt.ExecNonQuery2("INSERT INTO CAT_ALMACEN(ID_ALMACEN) VALUES (?)", Array As Object (ID_ALMACEN)) B4XPages.ShowPage("Principal") Else If name = "OKExpirado"& IMEI Then Msgbox("Usuario Expirado llamar al administrador","") 'ignore Else If name = "OKCancelado"& IMEI Then Msgbox("Usuario Cancelado llamar al administrador","") 'ignore Else Msgbox("Usuario o password No validos","") 'ignore End If paso1 = 0 End If End Sub Private Sub i_engrane_Click p_appUpdate.Width = Root.Width p_appUpdate.Height = Root.Height Subs.centraPanel(p_serverList, Root.Width) Subs.centraBoton(b_server, Root.Width) Subs.centraBoton(b_apk, Root.Width) Subs.centraBoton(b_envioBD, Root.Width) Subs.centraBoton(b_regesar, Root.Width) Subs.centraBoton(b_server, p_serverList.Width) lv_server.Clear lv_server.AddSingleLine("http://keymon.lat:1782") If user.Text = "KMTS1" Then lv_server.AddSingleLine("http://10.0.0.205:1782") ' l_server.Text = Starter.server et_server.Text = server Subs.panelVisible(p_appUpdate, 0, 0) End Sub Private Sub B4XPage_CloseRequest As ResumableSub ' Log("closreq") If p_appUpdate.Visible Then p_appUpdate.Visible = False Else Sleep(0) ExitApplication End If Return False End Sub Private Sub b_regesar_Click p_principal.Visible = True p_appUpdate.Visible = False End Sub 'Enviamos la base de datos por correo o Whatsapp Private Sub b_envioBD_Click ' copiaDB ' Sleep(1000) Dim FileName As String = "kmt.db" 'copy the shared file to the shared folder Log("xxxxxx:"&Provider.SharedFolder) Sleep(1000) File.Copy(File.DirInternal, FileName, Provider.SharedFolder, FileName) Dim email As Email email.To.Add("soporte@keymonsoft.com") email.Subject = "Base de datos para revisión" email.Attachments.Add(Provider.GetFileUri(FileName)) ' email.Attachments.Add(Provider.GetFileUri(FileName)) 'second attachment Dim in As Intent = email.GetIntent in.Flags = 1 'FLAG_GRANT_READ_URI_PERMISSION StartActivity(in) End Sub Private Sub b_apk_Click StartService(appUpdater) End Sub Private Sub b_server_Click Log("Guardar servidor") Starter.skmt.ExecNonQuery2("delete from CAT_VARIABLES where CAT_VA_DESCRIPCION = ?", Array As Object ("SERVER")) Starter.skmt.ExecNonQuery2("INSERT INTO CAT_VARIABLES(CAT_VA_DESCRIPCION, CAT_VA_VALOR) VALUES (?,?)", Array As Object ("SERVER",et_server.text)) B4XPages.MainPage.server = et_server.text Starter.server = B4XPages.MainPage.server If logger Then Log("Inicializamos reqManager con " & B4XPages.MainPage.server) reqManager.Initialize(Me, B4XPages.MainPage.server) LogColor($"ReqServer = ${B4XPages.MainPage.server}"$, Colors.red) reinicializaReqManager p_appUpdate.Visible = False ' Entrar.Visible = True End Sub Private Sub lv_server_ItemClick (Position As Int, Value As Object) server = Value ' l_server.Text = Value et_server.Text = Value reqManager.Initialize(Me, Value) LogColor($"ReqServer = ${Value}"$, Colors.red) ToastMessageShow("Servidor modificado", False) End Sub Sub reinicializaReqManager reqManager.Initialize(Me, B4XPages.MainPage.server) If logger Then Log(B4XPages.MainPage.server) LogColor($"ReqServer = ${B4XPages.MainPage.server}"$, Colors.red) End Sub 'appUpdater - Mostramos el anuncio de que se esta descargando el nuevo apk Sub muestraProgreso(mensaje As String) ProgressDialogShow(mensaje) End Sub 'appUpdater - Ocultamos el anuncio de que se esta descargando el nuevo apk Sub ocultaProgreso ProgressDialogHide End Sub