VERSION 6.03.18

- Actualizacion de version
- Re-acomodo de archivos
This commit is contained in:
2026-03-20 21:18:47 -06:00
parent bee96565e2
commit dbf0c58c0b
6 changed files with 66 additions and 1205 deletions

View File

@@ -25,7 +25,7 @@ Library8=randomaccessfile
Library9=sql Library9=sql
ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="31"/>~\n~<supports-screens android:largeScreens="true" ~\n~ android:normalScreens="true" ~\n~ android:smallScreens="true" ~\n~ android:anyDensity="true"/>)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~AddPermission(android.permission.INTERNET)~\n~AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~~\n~'AddActivityText(main,~\n~'<intent-filter>~\n~'<action android:name="android.intent.action.VIEW" />~\n~'<category android:name="android.intent.category.DEFAULT" />~\n~'<data android:mimeType="application/octet-stream" />~\n~'</intent-filter>)~\n~~\n~AddActivityText(main,~\n~<intent-filter>~\n~<action android:name="android.intent.action.VIEW" />~\n~<category android:name="android.intent.category.DEFAULT" />~\n~ <data android:mimeType="application/x-sqlite3" /> <!-- Para bases de datos -->~\n~ <data android:mimeType="application/octet-stream" /> <!-- Para otros archivos binarios -->~\n~ <data android:scheme="content" /> <!-- Filtra URIs tipo content:// -->~\n~</intent-filter>) ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="31"/>~\n~<supports-screens android:largeScreens="true" ~\n~ android:normalScreens="true" ~\n~ android:smallScreens="true" ~\n~ android:anyDensity="true"/>)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.LightTheme)~\n~'End of default text.~\n~~\n~SetApplicationAttribute(android:usesCleartextTraffic, "true")~\n~AddPermission(android.permission.INTERNET)~\n~AddPermission(android.permission.READ_EXTERNAL_STORAGE)~\n~AddPermission(android.permission.WRITE_EXTERNAL_STORAGE)~\n~SetApplicationAttribute(android:allowBackup, "false")~\n~~\n~'AddActivityText(main,~\n~'<intent-filter>~\n~'<action android:name="android.intent.action.VIEW" />~\n~'<category android:name="android.intent.category.DEFAULT" />~\n~'<data android:mimeType="application/octet-stream" />~\n~'</intent-filter>)~\n~~\n~AddActivityText(main,~\n~<intent-filter>~\n~<action android:name="android.intent.action.VIEW" />~\n~<category android:name="android.intent.category.DEFAULT" />~\n~ <data android:mimeType="application/x-sqlite3" /> <!-- Para bases de datos -->~\n~ <data android:mimeType="application/octet-stream" /> <!-- Para otros archivos binarios -->~\n~ <data android:scheme="content" /> <!-- Filtra URIs tipo content:// -->~\n~</intent-filter>)
Module1=B4XMainPage Module1=B4XMainPage
Module10=|relative|..\C_Marquez Module10=C_Marquez
Module11=C_Marquez_Reparto Module11=C_Marquez_Reparto
Module12=C_Mazapa Module12=C_Mazapa
Module13=C_Mazapa_Reparto Module13=C_Mazapa_Reparto
@@ -38,7 +38,7 @@ Module19=Subs
Module2=C_Durakelo Module2=C_Durakelo
Module3=C_Durakelo_Reparto Module3=C_Durakelo_Reparto
Module4=C_Envios Module4=C_Envios
Module5=|relative|..\C_Guna_Reparto Module5=C_Guna_Reparto
Module6=C_Intmex Module6=C_Intmex
Module7=C_Intmex_Reparto Module7=C_Intmex_Reparto
Module8=C_Izca Module8=C_Izca
@@ -51,7 +51,7 @@ Version=12.8
#Region Project Attributes #Region Project Attributes
#ApplicationLabel: DBCheck #ApplicationLabel: DBCheck
#VersionCode: 1 #VersionCode: 1
#VersionName: 5.11.25 #VersionName: 6.03.18
'SupportedOrientations possible values: unspecified, landscape or portrait. 'SupportedOrientations possible values: unspecified, landscape or portrait.
#SupportedOrientations: portrait #SupportedOrientations: portrait
#CanInstallToExternalStorage: False #CanInstallToExternalStorage: False

View File

@@ -58,6 +58,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7= ModuleClosedNodes7=
ModuleClosedNodes8=3,4 ModuleClosedNodes8=3,4
ModuleClosedNodes9=5,6,7,8 ModuleClosedNodes9=5,6,7,8
NavigationStack=Diseñador Visual,MainPage.bal,-100,3,C_Intmex_Reparto,JobDone,228,1,C_Intmex_Reparto,envia,211,0,B4XMainPage,B4XPage_Created,141,0,Main,Globals,21,0,C_Intmex_Reparto,Class_Globals,0,0,C_Intmex,Initialize,20,0,C_Intmex,envia,30,0,B4XMainPage,B4XPage_Appear,292,6,B4XMainPage,ActualizarEtiquetasReparto,581,6 NavigationStack=B4XMainPage,B4XPage_Created,141,0,Main,Globals,21,0,C_Intmex_Reparto,Class_Globals,0,0,C_Intmex,Initialize,20,0,C_Intmex,envia,30,0,B4XMainPage,B4XPage_Appear,292,6,B4XMainPage,ActualizarEtiquetasReparto,581,6,C_Guna_Reparto,Class_Globals,9,0,C_Marquez,Initialize,17,0,C_Marquez,Class_Globals,10,0,Main,Process_Globals,19,0
SelectedBuild=0 SelectedBuild=0
VisibleModules=1,18,6,19,7,3,15,11,13,2 VisibleModules=1,18,6,19,7,10,5

View File

@@ -1,408 +0,0 @@
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
#End Region
'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip
Sub Class_Globals
Private Root As B4XView
Private xui As XUI
' Private b_cargar As Button
Private b_enviar As Button
Dim skmt As SQL
Dim reqManager As DBRequestManager
Private l_pedidos2 As Label
Private l_diasVenta As Label
Private l_totalVenta As Label
Private l_cantsEnCero As Label
Private l_clienteNoNumerico As Label
Dim cuantos_pedido As String
' Dim datos_iguales As String
Dim cuantos_pedidosc As String
Dim cuantos_noventa As String
Dim reqsPendientes As List
Private l_ruta2 As Label
Dim ruta As String = ""
Private l_usuario2 As Label
Dim usuario As String = ""
Private l_almacen2 As Label
Dim almacen As String = ""
Private p_progressDialog As Panel
Private l_progressDialog As Label
Private p_editaRuta As Panel
Private p_editaAlmacen As Panel
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
Root.LoadLayout("MainPage")
reqManager.Initialize(Me, "http://187.189.244.154:1782")
B4XPages.SetTitle(Me, "Mariana revisión de BD")
Subs.centraPanel(p_progressDialog, Root.Width)
Subs.centraPanel(p_editaRuta, Root.Width)
Subs.centraPanel(p_editaAlmacen, Root.Width)
' Subs.centraPanel(p_progressDialog, Root.Width)
End Sub
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub B4XPage_Appear
Log("INICIO")
' Dim usuario As String = c.GetString("USUARIO")
Dim in As Intent = B4XPages.GetNativeParent(Me).GetStartingIntent
If in <> Null Then
Log(in.GetData)
If in.GetData <> Null Then
Dim XmlData As String
XmlData = in.GetData
ToastMessageShow(XmlData, False)
' Send_Make_somthing(in)
' Activity.Finish
Try
Dim OutStr As OutputStream = File.OpenOutput(File.DirInternal,"kmt.db",False)
Dim InStr As InputStream = File.OpenInput("ContentDir",XmlData)
File.Copy2(InStr,OutStr)
Log("BD copiada a interna.")
OutStr.Close
Catch
Log(LastException)
End Try
' ExitApplication
End If
End If
Log($"Existe BD: ${File.Exists(File.DirInternal, "kmt.db") }"$)
If File.Exists(File.DirInternal, "kmt.db") Then
If Not(skmt.IsInitialized) Then skmt.Initialize(File.DirInternal,"kmt.db", True)
Dim c As Cursor = skmt.ExecQuery($"select count(distinct pe_cliente) as pedidos, group_concat(distinct substr(pe_fecha, 4,2)) as diasVenta, sum(pe_costo_tot) as total, (select PE_CANT from pedido where PE_CANT = 0) as cantsEnCero, (select count(PE_CLIENTE) from pedido where printf("%d", PE_CLIENTE) <> PE_CLIENTE ) as clienteNoNumerico from pedido"$)
Log(c.RowCount)
If c.RowCount > 0 Then
c.Position = 0
l_pedidos2.Text = c.GetString("pedidos")
l_diasVenta.Text = c.GetString("diasVenta")
l_totalVenta.Text = "$" & NumberFormat2(c.GetString("total"), 1, 2, 2, True)
l_cantsEnCero.Text = c.GetString("cantsEnCero")
l_clienteNoNumerico.Text = c.GetString("clienteNoNumerico")
End If
Dim c As Cursor = skmt.ExecQuery("select pe_ruta from pedido")
If c.RowCount > 0 Then
c.Position = 0
ruta = c.GetString("PE_RUTA")
l_ruta2.Text = ruta
End If
Dim c As Cursor = skmt.ExecQuery("select USUARIO from usuarioa")
If c.RowCount > 0 Then
c.Position = 0
usuario = c.GetString("USUARIO")
l_usuario2.Text = usuario
End If
Dim c As Cursor = skmt.ExecQuery("select ID_ALMACEN from cat_almacen")
If c.RowCount > 0 Then
c.Position = 0
almacen = c.GetString("ID_ALMACEN")
l_almacen2.Text = almacen
End If
c.Close
End If
End Sub
Private Sub b_enviar_Click
Dim resultado = Msgbox2("Se va a enviar la venta de la BD", "AVISO", "Continuar", "Cancelar", "", Null) 'ignore
If resultado = DialogResponse.POSITIVE Then
reqsPendientes.Initialize
l_progressDialog.Text = " Enviando información ..."
p_progressDialog.Visible = True
p_progressDialog.BringToFront
skmt.ExecNonQuery2("delete from PEDIDO WHERE PE_PRONOMBRE = ? ", Array As Object("N/A") )
skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE not In (select PE_CLIENTE from pedido)")
' PEDIO_CLIENTE
Dim c As Cursor = skmt.ExecQuery("SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_FACTURA FROM PEDIDO_CLIENTE ")
Dim d As Cursor = skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE ")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_pedidos_MARDS"
cmd.Parameters = Array As Object(c.GetString("PC_CLIENTE"), c.GetString("PC_FECHA"), c.GetString("PC_USER"), c.GetString("PC_NOART"), c.GetString("PC_MONTO"), c.GetString("PC_LON"), c.GetString("PC_LAT"), almacen, ruta, c.GetString("PC_COSTO_SIN"), c.GetString("PC_FACTURA"))
reqManager.ExecuteCommand(cmd , "ins_pedidos_1")
reqsPendientes.Add("ins_pedidos_1")
Next
End If
c.Close
d.Position=0
' Dim cuantos_pedidosc As String = D.GetString("CUANTOS_PEDIDOSC")
d.Close
' ENVIO DE LOS CODIGOS QR
c = skmt.ExecQuery("SELECT CODIGOKMTS, CODIGOB, LAT, LON FROM HIST_CODIGO_BARRAS" )
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_QR_2_MARDS"
cmd.Parameters = Array As Object(C.GetString("CODIGOKMTS"),C.GetString("CODIGOB"),C.GetString("LON"),C.GetString("LAT"),almacen, ruta)
reqManager.ExecuteCommand(cmd , "ins_QR")
reqsPendientes.Add("ins_QR")
Next
End If
c.Close
c = skmt.ExecQuery("SELECT HE_CLIE, HE_RES, HE_FECHA, HE_TIPO FROM HIST_ENCUESTA")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_encuesta_MARDS"
cmd.Parameters = Array As Object(C.GetString("HE_CLIE"),C.GetString("HE_RES"),C.GetString("HE_FECHA"), c.GetString("HE_TIPO"))
reqManager.ExecuteCommand(cmd , "hist_encuesta")
reqsPendientes.Add("hist_encuesta")
Next
End If
c.Close
c = skmt.ExecQuery("SELECT PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO FROM PEDIDO")
d = skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_pedido_MARDS"
cmd.Parameters = Array As Object(C.GetString("PE_CEDIS"),almacen,C.GetString("PE_COSTO_TOT"),C.GetString("PE_COSTOU"),C.GetString("PE_CANT"),C.GetString("PE_PRONOMBRE"),C.GetString("PE_PROID"),C.GetString("PE_CLIENTE"),C.GetString("PE_FECHA"),C.GetString("PE_USUARIO"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"))
reqManager.ExecuteCommand(cmd , "ins_pedido_1")
reqsPendientes.Add("ins_pedido_1")
Next
End If
c.Close
d.Position=0
cuantos_pedido = D.GetString("CUANTOS_PEDIDO")
d.Close
' NOVENTA
c = skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_NOMBRE, NV_DIRECCION FROM NOVENTA")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_noventa_MARDS"
cmd.Parameters = Array As Object(C.GetString("NV_CLIENTE"),C.GetString("NV_FECHA"),C.GetString("NV_USER"),C.GetString("NV_MOTIVO"),C.GetString("NV_COMM"),C.GetString("NV_LAT"),C.GetString("NV_LON"), almacen, ruta,C.GetString("NV_NOMBRE"),C.GetString("NV_DIRECCION"))
reqManager.ExecuteCommand(cmd , "inst_noventa")
reqsPendientes.Add("inst_noventa")
Next
End If
c.Close
' D = skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
' d.Position=0
' Dim cuantos_noventa As String = D.GetString("CUANTOS_NOVENTA")
' d.Close
' GEO CERCA
c=skmt.ExecQuery("Select HGCLIENTE, HGDATE, HGLAT, HGLON from HIST_GEOCERCA")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_geocerca_MARDS"
cmd.Parameters = Array As Object(C.GetString("HGCLIENTE"),C.GetString("HGDATE"),C.GetString("HGLAT"),C.GetString("HGLON"))
reqManager.ExecuteCommand(cmd , "inst_noventa")
Next
End If
c.Close
' LO DEL LIKE
c=skmt.ExecQuery("Select HFCLIENTE, HFALIAS,HFRUTA,HFALMACEN from HIST_FACE")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_face_like_MARDS"
cmd.Parameters = Array As Object(C.GetString("HFCLIENTE"),C.GetString("HFALIAS"),C.GetString("HFRUTA"),C.GetString("HFALMACEN"))
reqManager.ExecuteCommand(cmd , "inst_noventa")
Next
End If
c.Close
' DROP
' Dim sDate,sTime As String
' DateTime.DateFormat = "MM/dd/yyyy"
' sDate=DateTime.Date(DateTime.Now)
' sTime=DateTime.Time(DateTime.Now)
' Dim cmd As DBCommand
' cmd.Initialize
' cmd.Name ="insert_drop_MARDS_2"
' cmd.Parameters = Array As Object(usuario,ruta,sDate & sTime, l_porvisitar.Text,l_drop.Text,l_efectiva.Text,l_cuantosc.Text,l_cuantosn.Text, L_MONTOD.Text,"ENVIO",almacen)
' reqManager.ExecuteCommand(cmd , "inst_noventa")
ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias "& ruta , True)
End If
End Sub
Sub JobDone(Job As HttpJob)
If Job.Success = False Then
'ToastMessageShow("Error: " & Job.ErrorMessage, True)
Else 'If Job Success then ...
LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green)
If Job.JobName = "DBRequest" Then
Dim resultado As DBResult = reqManager.HandleJob(Job)
reqsPendientes.RemoveAt(reqsPendientes.IndexOf(resultado.Tag))
End If
If Job.JobName = "DBRequest" Then
Dim resultado As DBResult = reqManager.HandleJob(Job)
If resultado.Tag.As(String).IndexOf("ins_pedido_") > -1 Then
Private cliente As String= resultado.Tag
Log($"Cliente1:${cliente}"$)
For Each records() As Object In resultado.Rows
For Each k As String In resultado.Columns.Keys
Log(resultado.Tag & ": " & k & ": " & records(resultado.Columns.Get(k)))
Next
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim resultado As DBResult = reqManager.HandleJob(Job)
If resultado.Tag.As(String).IndexOf("hist_encuesta") > -1 Then
Private cliente As String= resultado.Tag
reqsPendientes.RemoveAt(reqsPendientes.IndexOf(resultado.Tag))
Log($"Cliente1:${cliente}"$)
For Each records() As Object In resultado.Rows
For Each k As String In resultado.Columns.Keys
Log(resultado.Tag & ": " & k & ": " & records(resultado.Columns.Get(k)))
Next
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = 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"
' S_CP.Text = "INFO OK"
ToastMessageShow("INFO OK", True)
Else
ToastMessageShow("No se cargo bien la info P. Sync Nuevamente" & CUANTOSP & " " & cuantos_pedido, True)
' S_CP.Text = "ENVIAR DATOS (K-2)"
ToastMessageShow("ENVIAR DATOS (K-2)", True)
Log("No se cargo bien la info P. Sync Nuevamente" & CUANTOSP & " " & cuantos_pedido)
End If
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = 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"
Else
ToastMessageShow("No se cargo bien la info C. Sync Nuevamente" & CUANTOSC & " " & cuantos_pedidosc, True)
Log("No se cargo bien la info C. Sync Nuevamente " & CUANTOSC & " " & cuantos_pedidosc)
End If
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = 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"))
If cuantos_noventa = CUANTOSN Then
' ToastMessageShow("rojo val ok 1 cuantosp." , True)
' datos_iguales = "ok"
Else
ToastMessageShow("No se cargo bien la info N. Sync Nuevamente" & CUANTOSN & " " & cuantos_noventa, True)
Log("No se cargo bien la info N. Sync Nuevamente " & CUANTOSN & " " & cuantos_noventa)
End If
Next
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "ins_pedido" Then 'query tag
For Each records() As Object In RESULT.Rows
' PB2.Progress = PB2.Progress + 5
' S_CP.Text = "SUBIENDO"
Next
' PB2.Progress = 100
' 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 = "ins_pedido" Then 'query tag
For Each records() As Object In RESULT.Rows
' PB2.Progress = PB2.Progress + 5
' S_CP.Text = "SUBIENDO"
Next
' PB2.Progress = 100
' S_CP.Text = "LISTO"
' ToastMessageShow("Listo", False)
Log("5")
End If
End If
End If
If reqsPendientes.Size = 0 Then p_progressDialog.Visible = False
Job.Release
End Sub
Private Sub B4XPage_CloseRequest As ResumableSub
ExitApplication
Return False
End Sub
Private Sub l_ruta2_LongClick
p_editaRuta.Top = l_ruta2.top
p_editaRuta.Visible = True
End Sub
Private Sub l_almacen2_LongClick
p_editaAlmacen.Top = l_almacen2.top
p_editaAlmacen.Visible = True
End Sub
Private Sub l_usuario2_LongClick
End Sub
Private Sub b_guardaRuta_Click
p_editaRuta.Visible = False
End Sub
Private Sub b_guardaAlmacen_Click
p_editaAlmacen.Visible = False
End Sub
Private Sub p_principal_Click
p_editaAlmacen.Visible = False
p_editaRuta.Visible = False
End Sub

View File

@@ -1,240 +0,0 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=12.8
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Dim reqManager As DBRequestManager
Dim b, c, d, e, f As Cursor
Dim usuario, almacen As String
Dim datos_iguales, almacen, carga, paso, conteo, porcentaje, perfil, cuantos, NUMERO_PEDIDO, usuario, cuantos_exib, cuantos_pedidosc, cuantos_noventa, cuantos_ped, cuantos_pedido As String
Dim l_ruta As Label
End Sub
'Initializes the object. You can add parameters to this method if needed.
Public Sub Initialize
reqManager.Initialize(Me, "http://keymon.net:1782")
l_ruta.Initialize("l")
Return Me
End Sub
Sub envia
' NOVENTA
l_ruta.text = Subs.traeRuta
c = B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_FOTO,NV_FOTO2, NV_REPROGRAMAR FROM NOVENTA")
D=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim fotoenvio() As Byte = C.GetBlob("NV_FOTO2")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_reparto_REPG_GUNA_VN2"
cmd.Parameters = Array As Object(C.GetString("NV_CLIENTE"),C.GetString("NV_FECHA"),C.GetString("NV_USER"),C.GetString("NV_MOTIVO"),C.GetString("NV_COMM"),C.GetString("NV_LAT"),C.GetString("NV_LON"), almacen, l_ruta.Text, C.GetString("NV_REPROGRAMAR"),fotoenvio)
reqManager.ExecuteCommand(cmd , "inst_noventa_")
Next
c.Close
End If
d.Position=0
cuantos_noventa = D.GetString("CUANTOS_NOVENTA")
d.Close
'PAGARES.
Dim pa As Cursor=B4XPages.MainPage.skmt.ExecQuery("select PA_ALMACEN,PA_RUTA_REP,PA_RUTAPREV,PA_FECHA_PREV,PA_CAPTURA,PA_MONTO,PA_USUARIO,PA_CLIENTE,IFNULL(PA_CANCELADO,0) AS PA_CANCELADO from PAGARES")
If pa.RowCount > 0 Then
For pag = 0 To pa.RowCount - 1
pa.Position = pag
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_reparto_PAGARES_GUNA_VN"
Dim fechaenvio() As String
fechaenvio = Regex.Split(" ",pa.GetString("PA_FECHA_PREV"))
' Log(fechaenvio(0))
Dim fechaenvio1() As String
fechaenvio1 = Regex.Split("/",fechaenvio(0))
Dim fechaano As String = fechaenvio1(2).SubString(2)
Dim fechareal As String = fechaenvio1(0)&"/"&fechaenvio1(1)&"/"&fechaano
' Log(fechareal)
Dim fechacap() As String
fechacap = Regex.Split("/",pa.GetString("PA_CAPTURA"))
Dim fechacapano As String = fechacap(2).SubString(2)
Dim fechacapreal As String = fechacap(0)&"/"&fechacap(1)&"/"&fechacapano
If pa.GetString("PA_CANCELADO") = "2" Then
cmd.Parameters = Array As Object(pa.GetString("PA_CLIENTE"),pa.GetString("PA_MONTO"),fechacapreal,pa.GetString("PA_ALMACEN"),pa.GetString("PA_RUTAPREV"),pa.GetString("PA_RUTA_REP"),fechareal,pa.GetString("PA_USUARIO"),2)
Else
cmd.Parameters = Array As Object(pa.GetString("PA_CLIENTE"),pa.GetString("PA_MONTO"),fechacapreal,pa.GetString("PA_ALMACEN"),pa.GetString("PA_RUTAPREV"),pa.GetString("PA_RUTA_REP"),fechareal,pa.GetString("PA_USUARIO"),"")
End If
reqManager.ExecuteCommand(cmd , "ins_pagares")
Next
End If
pa.Close
'ABONOS
d = B4XPages.MainPage.skmt.ExecQuery("SELECT RUTAA FROM RUTAA")
d.Position = 0
Dim ab As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT * from ABONOS where a_enviado is null and a_tipoabono IS NULL"$)
Log(ab.RowCount)
If ab.RowCount > 0 Then
For i=0 To ab.RowCount -1
ab.Position = i
' Dim ab1 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT SUM(a_abono) AS a_abono from ABONOS where a_cliente = '${ab.GetString("a_cliente")}' and a_tipoabono IS NULL"$)
Dim ab1 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT a_abono from ABONOS where a_cliente = '${ab.GetString("a_cliente")}' and a_tipoabono IS NULL"$)
ab1.Position = 0
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_abono_REP_GUNA_VN2"
cmd.Parameters = Array As Object( ab.GetString("a_usuario"), ab.GetString("a_ruta"), ab.GetString("a_cliente"), ab.GetString("a_abono"), ab.GetString("a_fecha"),almacen,"REPARTO",d.GetString("RUTAA"), "", ab.GetString("TIPO_PAGO"),ab.GetString("a_ticket"),ab.GetString("a_numpago"))
reqManager.ExecuteCommand(cmd , $"ins_abonosPendientes_${ab.GetString("a_cliente")}"$)
ab1.Close
Log($"ins_abonosPendientes_${ab.GetString("a_cliente")}"$)
Next
End If
ab.Close
d.Close
'ABONOS NUEVOS
d = B4XPages.MainPage.skmt.ExecQuery("SELECT RUTAA FROM RUTAA")
d.Position = 0
Dim ab As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT * from ABONOS where a_enviado is null and a_tipoabono IS NOT NULL"$)
Log(ab.RowCount)
If ab.RowCount > 0 Then
For i=0 To ab.RowCount -1
ab.Position = i
' Dim ab1 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT SUM(a_abono) AS a_abono from ABONOS where a_cliente = '${ab.GetString("a_cliente")}' and a_tipoabono IS NOT NULL"$)
Dim ab1 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT a_abono from ABONOS where a_cliente = '${ab.GetString("a_cliente")}' and a_tipoabono IS NOT NULL"$)
ab1.Position = 0
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_abono_REP_GUNA_VN2"
cmd.Parameters = Array As Object( ab.GetString("a_usuario"), ab.GetString("a_ruta"), ab.GetString("a_cliente"), ab.GetString("a_abono"), ab.GetString("a_fecha"),almacen,"REPARTO",d.GetString("RUTAA"), "1", ab.GetString("TIPO_PAGO"),ab.GetString("a_ticket"),ab.GetString("a_numpago") )
reqManager.ExecuteCommand(cmd , $"ins_abonosPendientes_${ab.GetString("a_cliente")}"$)
ab1.Close
Log($"ins_abonosPendientes_${ab.GetString("a_cliente")}"$)
Next
End If
ab.Close
d.Close
' pedido
c=B4XPages.MainPage.skmt.ExecQuery("SELECT PE_TIPO, PE_RUTA, PE_CEDIS, PE_COSTO_TOT, PE_COSTOU, PE_CANT, PE_PRONOMBRE, PE_PROID, PE_CLIENTE, PE_FECHA, PE_USUARIO, PE_CLIENTEOR, PE_CAJAS, PE_BCAJAS, CONSECUTIVO, FECHA_PREV, RUTA_REP, PE_REGALO FROM PEDIDO")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_pedido_REP_GUNA_VN"
cmd.Parameters = Array As Object(c.GetString("PE_TIPO"), c.GetString("PE_RUTA"), c.GetString("PE_CEDIS"), c.GetString("PE_COSTO_TOT"), c.GetString("PE_COSTOU"), c.GetString("PE_CANT"), c.GetString("PE_PRONOMBRE"), c.GetString("PE_PROID"), c.GetString("PE_CLIENTE"), c.GetString("PE_FECHA"), c.GetString("PE_USUARIO"), c.GetString("PE_CLIENTEOR"), c.GetString("PE_CAJAS"), c.GetString("PE_BCAJAS"), c.GetString("CONSECUTIVO"), c.GetString("FECHA_PREV"), c.GetString("RUTA_REP"), c.GetString("PE_REGALO"))
reqManager.ExecuteCommand(cmd , "ins_pedido_Inmtex")
Next
c.Close
End If
'TABULADOR
c = B4XPages.MainPage.skmt.ExecQuery("SELECT VEINTE, DIEZ, CINCO, DOS, PESO, CENTAVO, TOTAL FROM TABULADOR_MONEDAS")
d = B4XPages.MainPage.skmt.ExecQuery("SELECT RUTAA FROM RUTAA")
b = B4XPages.MainPage.skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN")
f = B4XPages.MainPage.skmt.ExecQuery("SELECT HVD_FECHA FROM HIST_VENTAS")
d.Position = 0
b.Position = 0
f.Position = 0
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position=i
Dim cmd As DBCommand
Dim fechatabulador() As String = Regex.Split(" ", f.GetString("HVD_FECHA"))
Dim fechatabulador3 As String = fechatabulador(0)
cmd.Initialize
cmd.Name = "insert_tabulador_monedas_GUNA_VN"
cmd.Parameters = Array As Object(d.GetString("RUTAA"), b.GetString("ID_ALMACEN"),c.GetString("VEINTE"),c.GetString("DIEZ"),c.GetString("CINCO"),c.GetString("DOS"),c.GetString("PESO"),c.GetString("CENTAVO"),fechatabulador3)
reqManager.ExecuteCommand(cmd , "ins_tabulador_mon")
Next
c.Close
d.Close
b.Close
f.Close
End If
c = B4XPages.MainPage.skmt.ExecQuery("SELECT MIL, QUINIENTOS, DOCIENTOS, CIEN, CINCUENTA, VEINTE FROM TABULADOR_BILLETES")
d = B4XPages.MainPage.skmt.ExecQuery("SELECT RUTAA FROM RUTAA")
b = B4XPages.MainPage.skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN")
f = B4XPages.MainPage.skmt.ExecQuery("SELECT HVD_FECHA FROM HIST_VENTAS")
d.Position = 0
b.Position = 0
f.Position = 0
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position=i
Dim cmd As DBCommand
Dim fechatabulador() As String = Regex.Split(" ", f.GetString("HVD_FECHA"))
Dim fechatabulador3 As String = fechatabulador(0)
cmd.Initialize
cmd.Name = "insert_tabulador_billetes_GUNA_VN"
cmd.Parameters = Array As Object(b.GetString("ID_ALMACEN"), d.GetString("RUTAA"),c.GetString("MIL"),c.GetString("QUINIENTOS"),c.GetString("DOCIENTOS"),c.GetString("CIEN"),c.GetString("CINCUENTA"),c.GetString("VEINTE"),fechatabulador3)
reqManager.ExecuteCommand(cmd , "ins_tabulador_bill")
Next
c.Close
d.Close
b.Close
f.Close
End If
'FIN TABULADOR
c = B4XPages.MainPage.skmt.ExecQuery("SELECT IFNULL(HVD_RECHAZOCANT,0) AS HVD_RECHAZOCANT, HVD_CLIENTE, HVD_PROID, HVD_FECHA, HVD_CODPROMO, HVD_NUM_TICKET, HVD_CANT, CONSECUTIVO, BCAJAS, CANTC FROM HIST_VENTAS where HVD_PRONOMBRE <> 'Cobranza Pendiente'")
If c.RowCount > 0 Then
For i=0 To c.RowCount -1
c.Position = i
Log(c.GetString("HVD_CLIENTE"))
Private d4 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT CAT_CL_RUTA FROM kmt_info WHERE CAT_CL_CODIGO = '${c.GetString("HVD_CLIENTE")}'"$)
d4.Position = 0
Log(d4.GetString("CAT_CL_RUTA"))
Private d5 As Cursor = B4XPages.MainPage.skmt.ExecQuery($"SELECT IFNULL(Sum(PE_CANT),0) AS PE_CANT FROM PEDIDO WHERE PE_CLIENTEOR = '${c.GetString("HVD_CLIENTE")}' AND PE_PROID = '${c.GetString("HVD_PROID")}' AND CONSECUTIVO = '${c.GetString("CONSECUTIVO")}'"$)
d5.Position = 0
Private restacant As String = d5.GetString("PE_CANT")
d5.Close
Dim fecha1() As String = Regex.Split(" ", c.GetString("HVD_FECHA"))
Dim fecha3 As String = fecha1(0)
Log(fecha3)
Dim hora() As String = Regex.Split("\.", fecha1(1))
Log(hora(0))
Dim sDate, sTime As String
DateTime.DateFormat = "dd/MM/yyyy"
DateTime.TimeFormat = "HH:mm:ss"
sDate = DateTime.Date(DateTime.Now)
sTime = DateTime.Time(DateTime.Now)
If c.GetString("HVD_RECHAZOCANT") <> "0" Then
Log((c.GetString("HVD_RECHAZOCANT")-restacant))
cmd.Initialize
cmd.Name = "update_HVD_GUNA_VN2"
cmd.Parameters = Array As String(c.GetString("HVD_RECHAZOCANT"),sDate& " "& sTime,1,Subs.traeUsuario, c.GetString("HVD_CLIENTE"), c.GetString("HVD_PROID"),fecha3&" "&hora(0), d4.GetString("CAT_CL_RUTA"),almacen,l_ruta.Text,c.GetString("HVD_CODPROMO"),c.GetString("HVD_NUM_TICKET"), c.GetString("HVD_CANT"))
reqManager.ExecuteCommand(cmd, "update_hvd")
Log("ENVIE RECHAZO")
Else
cmd.Initialize
cmd.Name = "update_HVD_GUNA_VN2"
Log( c.GetString("CANTC")& c.GetString("HVD_CLIENTE")& c.GetString("HVD_PROID")&fecha3&" "&hora(0)& d4.GetString("CAT_CL_RUTA")&almacen&l_ruta.Text&c.GetString("HVD_CODPROMO")&c.GetString("HVD_NUM_TICKET")& c.GetString("HVD_CANT"))
cmd.Parameters = Array As String("","","",Subs.traeUsuario, c.GetString("HVD_CLIENTE"), c.GetString("HVD_PROID"),fecha3&" "&hora(0), d4.GetString("CAT_CL_RUTA"),almacen,l_ruta.Text,c.GetString("HVD_CODPROMO"),c.GetString("HVD_NUM_TICKET"), c.GetString("HVD_CANT"))
reqManager.ExecuteCommand(cmd, "update_hvd")
End If
d4.Close
Next
End If
c.Close
' Dim cmd As DBCommand
' cmd.Initialize
' cmd.Name = "insert_drop_rep_GUNA_VN"
' cmd.Parameters = Array As Object(Subs.dameUsuarioDeDB, l_ruta.Text, almacen, l_ctast.text, Subs.traeEntregados, Subs.traeRechazados, "ENVIO")
' reqManager.ExecuteCommand(cmd , "inst_drop")
' ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True)
End Sub
' Nuevo método para inicializar el manager con el Target correcto
Public Sub ConfigurarYEnviar(ServidorURL As String)
' 'Me' aquí es C_Intmex, asegurando que C_Intmex.JobDone sea llamado.
reqManager.Initialize(Me, ServidorURL)
envia ' Llama a la función de envío original de C_Intmex
End Sub

View File

@@ -1,552 +0,0 @@
B4A=true
Group=Default Group
ModulesStructureVersion=1
Type=Class
Version=12.8
@EndOfDesignText@
Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI 'ignore
Dim reqManager As DBRequestManager
Dim cmd As DBCommand
Dim datos_iguales, almacen, carga, paso, conteo, porcentaje, perfil, cuantos, NUMERO_PEDIDO, usuario, cuantos_exib, cuantos_pedidosc, cuantos_noventa, cuantos_ped, cuantos_pedido As String
Dim e1, c, d, d3, d9 As Cursor
Dim l_ruta, L_ABORDO, l_porvisitar As Label
Dim sDate,sTime As String
Dim userpiezas As String
Dim T3, T4 As Timer
Dim enviando As Boolean = False
Dim validando As Boolean = False
End Sub
'You can add more parameters here.
Public Sub Initialize As Object
' reqManager.Initialize(Me, "http://keymon.lat:1781")
reqManager.Initialize(Me, "http://keymon.net:1781")
l_ruta.Initialize("")
L_ABORDO.Initialize("")
l_porvisitar.Initialize("")
T4.Initialize("T4", 3000)
T4.Enabled = False
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
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
Sub envia
carga = "SUBIR"
almacen = Subs.traeAlmacen
l_ruta.TEXT = Subs.traeRuta
' p_mandaInfo.Width = Root.Width
' p_mandaInfo.Height = Root.Height
' P1.Visible = True
' P1.Left = (p_mandaInfo.Width/2) - (P1.Width/2)
' P1.top = (p_mandaInfo.Height/2) - (P1.Height/2)
' p_mandaInfo.Visible = True
' P1.BringToFront
' p_mandaInfo.BringToFront
'trabajar.Visible = False
' NUEVO.Visible =False
' BUSCA.Visible=False
' connecta.Visible=False
' Subir.Visible=False
' cargar.Visible=False
' L_P_1.Visible = False
' S_CC.Visible = False
' L_P_3.Visible = False
' S_CH.Visible = False
' PB1.Visible = False
' Resumen.Visible= False
' L_P_2.Text = "Envio de Pedidos"
' L_P_3.Text = "Envio de Pedidos"
' S_CH.Text = "EN PROCESO"
' S_CP.Text = "EN PROCESO"
' PB1.Progress = 0
' PB2.Progress = 0
'c=skmt.ExecQuery("SELECT sum(IFNULL(PE_DESC,0)) as DESCUENTO FROM PEDIDO")
'c.Position =0
'If c.GetString("DESCUENTO") > 0 And PASO = 0 Then
'P1.Visible = True
'ELSE IF c.GetString("DESCUENTO") = 0 Then
paso = 1
'End If
If paso = 1 Then
B4XPages.MainPage.skmt.ExecNonQuery2("delete from PEDIDO WHERE PE_PRONOMBRE = ? ", Array As Object("N/A") )
B4XPages.MainPage.skmt.ExecNonQuery("delete from pedido_cliente where PC_CLIENTE not In (select PE_CLIENTE from pedido)")
c=B4XPages.MainPage.skmt.ExecQuery("select usuario from usuarioa")
c.Position = 0
usuario = c.GetString("USUARIO")
c.Close
' c=B4XPages.MainPage.skmt.ExecQuery("select HGDATE, HGLAT, HGLON from HIST_GPS")
' If c.RowCount>0 Then
' For i=0 To c.RowCount -1
' c.Position=i
' Dim cmd As DBCommand
' cmd.Initialize
' cmd.Name = "UPDATE_MARQUEZ_ACTUAL2_GPS"
' cmd.Parameters = Array As Object(L_MONTOD.Text, L_CUANTOST.Text, l_cuantosc.Text,l_porvisitar.TEXT,c.GetString("hglat"),c.GetString("hglon"),batterystatus(0),LPT, STEYIN, STEYOUT,almacen,l_ruta.Text )
' reqManager.ExecuteCommand(cmd , "update_gps")
' Next
' End If
' c.Close
' ENVIO DE LOS CODIGOS QR
'c=skmt.ExecQuery2("SELECT CAT_CL_NUM_SERIEFISICO,CAT_CL_CODIGO ,CAT_CL_LONG,CAT_CL_LAT, CAT_CL_FOTO FROM kmt_info where CAT_CL_NUM_SERIEFISICO = ?", Array As String("OK"))
c=B4XPages.MainPage.skmt.ExecQuery("SELECT CODIGOKMTS, CODIGOB, LAT, LON FROM HIST_CODIGO_BARRAS" )
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_QR_2_MARQUEZ"
cmd.Parameters = Array As Object(C.GetString("CODIGOKMTS"),C.GetString("CODIGOB"),C.GetString("LON"),C.GetString("LAT"),almacen,l_ruta.text )
reqManager.ExecuteCommand(cmd , "ins_QR")
Next
End If
c.Close
c=B4XPages.MainPage.skmt.ExecQuery("SELECT CAT_CL_NUM_SERIEFISICO, CAT_CL_CODIGO, CAT_CL_LONG, CAT_CL_LAT, CAT_CL_FOTO FROM kmt_info where CAT_CL_NUM_SERIEFISICO IS NOT NULL")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
's=skmt.ExecQuery2("SELECT HIST_VI_IMAGEN FROM HIST_VISITAS WHERE HIST_VI_CREDITO =?", Array As String (c.GetString("HIST_VI_CREDITO")))
's.Position =0
' foto1 = c.GetBlob("CAT_CL_FOTO")
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_QR_MARQUEZ"
cmd.Parameters = Array As Object(C.GetString("CAT_CL_NUM_SERIEFISICO"),C.GetString("CAT_CL_CODIGO"),C.GetString("CAT_CL_LONG"),C.GetString("CAT_CL_LAT"),almacen,l_ruta.text )
reqManager.ExecuteCommand(cmd , "ins_QR")
Next
End If
c.Close
'Envio de Pagares
c=B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM PAGARES")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_pagares_MARQUEZ"
cmd.Parameters = Array As Object(C.GetString("PA_ALMACEN"),Subs.traeRuta2(c.GetString("PA_CLIENTE")),C.GetString("PA_FECHA"),C.GetString("PA_CAPTURA"),C.GetString("PA_MONTO"),C.GetString("PA_USUARIO"),C.GetString("PA_CLIENTE") )
reqManager.ExecuteCommand(cmd , "ins_pagares")
Next
End If
c.Close
' CLIENTES NUEVOS
' Dim fotocn() As Byte
' Dim Dirp As String = File.DirInternal
' Dim Dir As String
' Dim Dir2 As String
' Dir = "/promotoriakmts"
c=B4XPages.MainPage.skmt.ExecQuery("SELECT CN_ID, CN_FECHA , CN_USER, CN_LAT, CN_LON, CN_NOMBRE, CN_DIRECCION, CN_FOTO, CN_ALMACEN, CN_RUTA, CN_GIRO, CN_SOLICITA, CN_COLONIA, CN_TELEFONO FROM CLIENTES_NUEVOS")
If c.RowCount>0 Then
For i = 0 To c.RowCount - 1
c.Position = i
Dim dia As Int = DateTime.GetDayOfWeek(DateTime.Now)
If dia = 2 Then
Dim dialetra As String = "LUNES"
Else If dia = 3 Then
Dim dialetra As String = "MARTES"
Else If dia = 4 Then
Dim dialetra As String = "MIERCOLES"
Else If dia = 5 Then
Dim dialetra As String = "JUEVES"
Else If dia = 6 Then
Dim dialetra As String = "VIERNES"
Else If dia = 7 Then
Dim dialetra As String = "SABADO"
End If
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_clientesnuevos_MARQUEZ3"
cmd.Parameters = Array As Object(c.GetString("CN_ID"), c.GetString("CN_FECHA"), c.GetString("CN_USER"), c.GetString("CN_LAT"), c.GetString("CN_LON"), c.GetString("CN_NOMBRE"), c.GetString("CN_DIRECCION"),almacen, c.GetString("CN_RUTA"), "En espera",c.GetString("CN_GIRO"),dialetra, c.GetString("CN_SOLICITA"), c.GetString("CN_COLONIA"), c.GetString("CN_TELEFONO"))
reqManager.ExecuteCommand(cmd , "inst_clientesn")
Next
End If
c.Close
' c=B4XPages.MainPage.skmt.ExecQuery("SELECT HE_CLIE, HE_RES, HE_FECHA, HE_TIPO FROM HIST_ENCUESTA")
' If c.RowCount>0 Then
' For i=0 To c.RowCount -1
' c.Position=i
' Dim cmd As DBCommand
' cmd.Initialize
' cmd.Name = "insert_encuesta_INTMEX"
' cmd.Parameters = Array As Object(C.GetString("HE_CLIE"),C.GetString("HE_RES"),C.GetString("HE_FECHA"), c.GetString("HE_TIPO"))
' reqManager.ExecuteCommand(cmd , "inst_noventa")
' Next
' End If
' c.Close
' PEDIDO_CLIENTE
Dim PCNoArts As String
Dim PCMonto As String
c = B4XPages.MainPage.skmt.ExecQuery("SELECT PC_CLIENTE, PC_FECHA, PC_USER, PC_NOART, PC_MONTO,PC_LON, PC_LAT, PC_COSTO_SIN, PC_RUTA, PC_ALMACEN, PC_FACTURA FROM PEDIDO_CLIENTE WHERE PC_CLIENTE <> '1' ")
d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE WHERE PC_CLIENTE <> 1 ")
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_pedidos_MARQUEZ"
PCNoArts = c.GetString("PC_NOART")
PCMonto = c.GetString("PC_MONTO")
cmd.Parameters = Array As Object(c.GetString("PC_CLIENTE"), c.GetString("PC_FECHA"), c.GetString("PC_USER"), c.GetString("PC_NOART"), c.GetString("PC_MONTO"), c.GetString("PC_LON"), c.GetString("PC_LAT"), almacen, Subs.traeRuta2(c.GetString("PC_CLIENTE")), c.GetString("PC_COSTO_SIN"), c.GetString("PC_FACTURA"))
reqManager.ExecuteCommand(cmd , "ins_pedidos")
Log(">>>>>> INSERT PEDIDO_CLIENTE")
Next
End If
c.Close
d.Position = 0
cuantos_pedidosc = d.GetString("CUANTOS_PEDIDOSC")
d.Close
' PEDIDO
c = B4XPages.MainPage.skmt.ExecQuery("SELECT PE_CEDIS,PE_COSTO_TOT,PE_COSTOU,PE_CANT,PE_PRONOMBRE,PE_PROID,PE_CLIENTE,PE_FECHA,PE_USUARIO, PE_COSTO_SIN, PE_RUTA, PE_DESC, PE_FOLIO, PE_CANTC, PE_BCAJAS FROM PEDIDO WHERE PE_FOLIO <> 'RECARGA'")
d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_pedido2_MARQUEZ" 'CON TOTALES INCLUIDOS
Log(c.GetString("PE_CEDIS")&", "&almacen&", "&c.GetString("PE_COSTO_TOT")&", "&c.GetString("PE_COSTOU")&", "&c.GetString("PE_CANT")&", "&c.GetString("PE_PRONOMBRE")&", "&c.GetString("PE_PROID")&", "&c.GetString("PE_CLIENTE")&", "&c.GetString("PE_FECHA")&", "&c.GetString("PE_USUARIO")&", "&Subs.traeRuta2(c.GetString("PE_CLIENTE"))&", "& c.GetString("PE_COSTO_SIN")&", "&c.GetString("PE_DESC")&", "&c.GetString("PE_FOLIO")&", "& almacen)
cmd.Parameters = Array As Object(c.GetString("PE_CEDIS"),almacen,c.GetString("PE_COSTO_TOT"),c.GetString("PE_COSTOU"),c.GetString("PE_CANT"),c.GetString("PE_PRONOMBRE"),c.GetString("PE_PROID"),c.GetString("PE_CLIENTE"),c.GetString("PE_FECHA"),c.GetString("PE_USUARIO"),Subs.traeRuta2(c.GetString("PE_CLIENTE")), c.GetString("PE_COSTO_SIN"),c.GetString("PE_DESC"),c.GetString("PE_FOLIO"),c.GetString("PE_CANTC"),c.GetString("PE_BCAJAS"))
reqManager.ExecuteCommand(cmd , $"ins_pedidosPendientes_prods_${c.GetString("PE_CLIENTE")}_${c.GetString("PE_PROID")}"$)
' Log($">>>> INS_PEDIDO= ${C.GetString("PE_CEDIS")},${ALMACEN},${C.GetString("PE_COSTO_TOT")},${C.GetString("PE_COSTOU")},${C.GetString("PE_CANT")}, ${C.GetString("PE_PRONOMBRE")}, ${C.GetString("PE_PROID")}, ${C.GetString("PE_CLIENTE")}, ${C.GetString("PE_FECHA")}, ${C.GetString("PE_USUARIO")}, ${C.GetString("PE_RUTA")}, ${C.GetString("PE_COSTO_SIN")}, ${C.GetString("PE_DESC")}, ${c.GetString("PE_FOLIO")}, ${PCNoArts}, ${PCMonto}"$)
' cmd.Name = "insert_pedido_INTMEX" ' SIN TOTALES INCLUIDOS
' cmd.Parameters = Array As Object(C.GetString("PE_CEDIS"),ALMACEN,C.GetString("PE_COSTO_TOT"),C.GetString("PE_COSTOU"),C.GetString("PE_CANT"),C.GetString("PE_PRONOMBRE"),C.GetString("PE_PROID"),C.GetString("PE_CLIENTE"),C.GetString("PE_FECHA"),C.GetString("PE_USUARIO"),C.GetString("PE_RUTA"), C.GetString("PE_COSTO_SIN"),C.GetString("PE_DESC"),c.GetString("PE_FOLIO"))
' reqManager.ExecuteCommand(cmd , "ins_pedido")
Next
End If
c.Close
d.Position=0
cuantos_pedido = D.GetString("CUANTOS_PEDIDO")
d.Close
' NOVENTA
c=B4XPages.MainPage.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON FROM NOVENTA")
D=B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_noventa_MARQUEZ"
cmd.Parameters = Array As Object(C.GetString("NV_CLIENTE"),C.GetString("NV_FECHA"),C.GetString("NV_USER"),C.GetString("NV_MOTIVO"),C.GetString("NV_COMM"),C.GetString("NV_LAT"),C.GetString("NV_LON"), almacen, Subs.traeRuta2(c.GetString("NV_CLIENTE")))
reqManager.ExecuteCommand(cmd , "inst_noventa")
Next
End If
c.Close
d.Position=0
cuantos_noventa = D.GetString("CUANTOS_NOVENTA")
d.Close
' GEO CERCA
c=B4XPages.MainPage.skmt.ExecQuery("Select HGCLIENTE, HGDATE, HGLAT, HGLON from HIST_GEOCERCA")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_geocerca_MARQUEZ"
cmd.Parameters = Array As Object(C.GetString("HGCLIENTE"),C.GetString("HGDATE"),C.GetString("HGLAT"),C.GetString("HGLON"))
reqManager.ExecuteCommand(cmd , "inst_noventa")
Next
End If
c.Close
' LO DEL LIKE
c=B4XPages.MainPage.skmt.ExecQuery("Select HFCLIENTE, HFALIAS,HFRUTA,HFALMACEN from HIST_FACE")
If c.RowCount>0 Then
For i=0 To c.RowCount -1
c.Position=i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_face_like_MARQUEZ"
cmd.Parameters = Array As Object(C.GetString("HFCLIENTE"),C.GetString("HFALIAS"),C.GetString("HFRUTA"),C.GetString("HFALMACEN"))
reqManager.ExecuteCommand(cmd , "inst_noventa")
Next
End If
c.Close
' DROP
' t1.Initialize("T1", 30000) ' 1000 = 1 second
' t1.Enabled = True
' Dim sDate,sTime As String
' DateTime.DateFormat = "MM/dd/yyyy"
' sDate=DateTime.Date(DateTime.Now)
' sTime=DateTime.Time(DateTime.Now)
' Dim cmd As DBCommand
' cmd.Initialize
' cmd.Name ="insert_drop_MARQUEZ"
' cmd.Parameters = Array As Object(usuario,l_ruta.Text,sDate & sTime, l_porvisitar.Text,l_drop.Text,l_efectiva.Text,l_cuantosc.Text,l_cuantosn.Text, L_MONTOD.Text,"ENVIO",almacen,Application.VersionName)
' reqManager.ExecuteCommand(cmd , "inst_noventa")
'' img2.Visible =True
' porcentaje = Round(100/ (cuantos_noventa + cuantos_pedido + cuantos_pedidosc + 1))
' If Starter.marcaCel <> "Sony" Then ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True)
' 'CUESTIONARIOS
' c = B4XPages.MainPage.skmt.ExecQuery($"select * from cuestionario"$)
' Private rutaActual As String = Subs.traeRuta
' If c.RowCount > 0 Then
' For x = 0 To c.RowCount - 1
' c.Position = x
' Dim cmd As DBCommand
' cmd.Initialize
' cmd.Name = "insert_CUESTIONARIO_INTMEX"
' cmd.Parameters = Array As Object(c.GetString("Q_IDCLIENTE"), rutaActual, ALMACEN, c.GetString("Q_FECHA"), c.GetString("Q_IDPREGUNTA"), c.GetString("Q_PREGUNTA"), c.GetString("Q_IDRESPUESTA"), C.GetString("Q_RESPUESTA"))
' reqManager.ExecuteCommand(cmd , "ins_cuestionario")
' Next
' End If
' c.Close
c = B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM PEDIDO_CLIENTE WHERE PC_CLIENTE <> 01")
If c.RowCount > 0 Then
For i = 0 To c.RowCount - 1
c.Position = i
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "select_piezas_MARQUEZ"
cmd.Parameters = Array As Object(c.GetString("PC_CLIENTE"), almacen,l_ruta.Text)
userpiezas = c.GetString("PC_CLIENTE")
reqManager.ExecuteQuery(cmd , 0, "piezas")
Next
End If
End If
T4.Initialize("T4", 3000)
T4.Enabled = True
End Sub
Sub JobDone(Job As HttpJob)
Log("JOBDONE MARQUEZ")
If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
LogColor($">>>>>>>>>> Llega ${Job.tag} <<<<<<<<<<"$, Colors.Blue)
If reqManager.reqsList.IndexOf(Job.tag) <> -1 Then
reqManager.reqsList.RemoveAt(reqManager.reqsList.IndexOf(Job.tag))
' LogColor($">>>>>> Quitamos ${Job.tag}"$, Colors.Blue)
End If
LogColor(">>>>>> " & reqManager.reqsList.Size & " - " & reqManager.reqsList, Colors.Blue)
End If
If Job.Success = False Then
LogColor("############################################", Colors.red)
LogColor("#### Error: " & Job.tag & " : " & Job.ErrorMessage, Colors.red)
LogColor("############################################", Colors.red)
Else
' Log(3)
LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.RGB(0,160,0)) 'Mod por CHV - 211027
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = reqManager.HandleJob(Job)
If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
If reqManager.reqsList.IndexOf(RESULT.tag) <> -1 Then
reqManager.reqsList.RemoveAt(reqManager.reqsList.IndexOf(RESULT.tag))
LogColor($"*** Quitamos ${RESULT.tag}"$, Colors.Magenta)
T4.Initialize("T4", 2000)
End If
LogColor(">>>>>> " & reqManager.reqsList.Size & " - " & reqManager.reqsList, Colors.red)
End If
End If
If Job.JobName = "DBRequest" Then
Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "ins_pedidos" Then
For Each records() As Object In RESULT.Rows
' Log("==========================REGISTROS="&RESULT.Rows)
For Each k As String In RESULT.Columns.Keys
Log(RESULT.Tag & ": " & k & ": " & records(RESULT.Columns.Get(k)))
Next
Next
End If
Dim resultado As DBResult = reqManager.HandleJob(Job)
If resultado.Tag = "piezas" Then 'query tag
' B4XPages.MainPage.picking.cl_picking.Clear
Dim piezasexiste As Int
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
For Each records() As Object In resultado.Rows
piezasexiste = records(resultado.Columns.Get("COUNT(*)"))
Log(piezasexiste)
DateTime.DateFormat = "MM/dd/yyyy"
DateTime.TimeFormat = "HH:mm:ss"
sDate=DateTime.Date(DateTime.Now)
sTime=DateTime.Time(DateTime.Now)
If piezasexiste = 0 Then
Dim PCNoArts As String
Dim PCMonto As String
c = B4XPages.MainPage.skmt.ExecQuery2("SELECT * FROM PEDIDO_CLIENTE WHERE PC_CLIENTE = ? AND PC_CLIENTE <> 1", Array As String(userpiezas))
If c.RowCount > 0 Then
c.Position = 0
PCNoArts = c.GetString("PC_NOART")
PCMonto = c.GetString("PC_MONTO")
End If
Dim cmd As DBCommand
cmd.Initialize
cmd.Name = "insert_HVC_MARQUEZ"
cmd.Parameters = Array As Object((sDate & " " & sTime), userpiezas, PCNoArts, PCMonto, almacen, l_ruta.Text)
reqManager.ExecuteCommand(cmd , "insert_hvc")
' reqManager.ExecuteCommand(cmd , $"ins_abonosPendientes_${ab.GetString("a_cliente")}"$)
End If
Next
End If
Dim RESULT As DBResult = 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"
' ToastMessageShow("INFO OK", False)
' Else
'' If Starter.marcaCel <> "Sony" Then ToastMessageShow("No se cargo bien la info P. Sync Nuevamente" & CUANTOSP & " " & cuantos_pedido, True)
' ToastMessageShow("ENVIAR DATOS (K-2)", False)
' End If
' Next
' End If
If RESULT.Tag = "valida_pedido" Then 'query tag
Subs.logJobDoneResultados(RESULT)
For Each records() As Object In RESULT.Rows
Dim CUANTOSP As Int = records(RESULT.Columns.Get("CUANTOSP"))
Log(CUANTOSP)
B4XPages.MainPage.l_vProds2.Text = $"${CUANTOSP}/${cuantos_pedido}"$
If cuantos_pedido <= CUANTOSP Then
' ToastMessageShow("rojo val ok 1 cuantosp." , True)
datos_iguales = "ok"
' S_CP.Text = "INFO OK"
ToastMessageShow("INFO OK", False)
Else
' S_CP.Text = "ENVIAR DATOS (K-2)"
ToastMessageShow($"No se cargo bien la info de pedido.${CRLF}Envíe nuevamente: "$ & CUANTOSP & "/" & cuantos_pedido, True)
ToastMessageShow("ENVIAR DATOS (K-2)", True)
Log("No se cargo bien la info de pedido. Envíe nuevamente: " & CUANTOSP & "/" & cuantos_pedido)
End If
Next
End If
If RESULT.Tag = "valida_pedidoc" Then 'query tag
Subs.logJobDoneResultados(RESULT)
For Each records() As Object In RESULT.Rows
Dim CUANTOSC As Int = records(RESULT.Columns.Get("CUANTOSC"))
B4XPages.MainPage.l_vPedidos2.Text = $"${CUANTOSC}/${cuantos_pedidosc}"$
If cuantos_pedidosc = CUANTOSC Then
' ToastMessageShow("rojo val ok 1 cuantosp." , True)
datos_iguales = "ok"
Else
ToastMessageShow($"No se cargo bien la info de pedido_cliente.${CRLF}Envíe nuevamente: "$ & CUANTOSC & "/" & cuantos_pedidosc, True)
Log("No se cargo bien la info de pedido_cliente. Envíe nuevamente: " & CUANTOSC & "/" & cuantos_pedidosc)
End If
Next
End If
If RESULT.Tag = "valida_noventa" Then 'query tag
Subs.logJobDoneResultados(RESULT)
For Each records() As Object In RESULT.Rows
Dim CUANTOSN As Int = records(RESULT.Columns.Get("CUANTOSN"))
B4XPages.MainPage.l_vNoVenta2.Text = $"${CUANTOSN}/${cuantos_noventa}"$
If cuantos_noventa = CUANTOSN Then
' ToastMessageShow("rojo val ok 1 cuantosp." , True)
datos_iguales = "ok"
Else
ToastMessageShow($"No se cargo bien la info de NoVenta.${CRLF}Envíe nuevamente: "$ & CUANTOSN & "/" & cuantos_noventa, True)
Log("No se cargo bien la info de NoVenta. Envíe nuevamente:" & CUANTOSN & "/" & cuantos_noventa)
End If
Next
End If
Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "ins_pedido" Then 'query tag
For Each records() As Object In RESULT.Rows
' PB2.Progress = PB2.Progress + 5
' S_CP.Text = "SUBIENDO"
Next
' PB2.Progress = 100
' S_CP.Text = "REVISANDO ..."
' Log("5")
End If
Dim RESULT As DBResult = reqManager.HandleJob(Job)
If RESULT.Tag = "ins_cuestionario" Then 'query tag
Subs.logJobDoneResultados(RESULT)
End If
End If
End If
' Log(reqManager.reqsList.size)
If reqManager.reqsList.size = 0 Then
T4.Enabled = True
Else
T4.Enabled = False
End If
Job.Release
End Sub
Sub valida
validando = True
almacen = Subs.traeAlmacen
d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDO FROM PEDIDO")
d.Position = 0
cuantos_pedido = d.GetString("CUANTOS_PEDIDO")
d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) as CUANTOS_PEDIDOSC FROM PEDIDO_CLIENTE")
d.Position = 0
cuantos_pedidosc = d.GetString("CUANTOS_PEDIDOSC")
d = B4XPages.MainPage.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
d.Position = 0
cuantos_noventa = d.GetString("CUANTOS_NOVENTA")
d.Close
cmd.Initialize
cmd.Name = "select_cuantos_pedido_MARQUEZ"
cmd.Parameters = Array As Object(almacen,l_ruta.text)
reqManager.ExecuteQuery(cmd , 0, "valida_pedido")
cmd.Initialize
cmd.Name = "select_cuantos_noventa_MARQUEZ"
cmd.Parameters = Array As Object(almacen,l_ruta.text)
reqManager.ExecuteQuery(cmd , 0, "valida_noventa")
cmd.Initialize
cmd.Name = "select_cuantos_pedidoc_MARQUEZ"
cmd.Parameters = Array As Object(almacen,l_ruta.text)
reqManager.ExecuteQuery(cmd , 0, "valida_pedidoc")
Log("http://keymon.net:1781")
B4XPages.MainPage.l_vPedidos2.Text = ""
B4XPages.MainPage.l_vProds2.Text = ""
B4XPages.MainPage.l_vNoVenta2.Text = ""
End Sub
Sub T4_Tick
If reqManager.reqsList.size = 0 Then ' Si ya no hay consultas pendientes ...
B4XPages.MainPage.p_progressDialog.Visible = False
If enviando Then ' Si terminamos de enviar pedido ...
Sleep(200)
B4XPages.MainPage.l_progressDialog.Text = "Validando " ' Mostramos el panel de progreso.
B4XPages.MainPage.p_progressDialog.Visible = False
valida ' Iniciamos la validación
enviando = False
End If
If validando Then
validando = False
Sleep(300)
'Mostramos el panel de Validación.
B4XPages.MainPage.p_validacion.Visible = True
End If
End If
End Sub
' Nuevo método para inicializar el manager con el Target correcto
Public Sub ConfigurarYEnviar(ServidorURL As String)
' 'Me' aquí es C_Intmex, asegurando que C_Intmex.JobDone sea llamado.
reqManager.Initialize(Me, ServidorURL)
envia ' Llama a la función de envío original de C_Intmex
End Sub

61
_sync_project.ps1 Normal file
View File

@@ -0,0 +1,61 @@
# 1. Mensaje inicial y pausa
Clear-Host
Write-Host "Se va a hacer un respaldo del codigo actual en el directorio ""AutoBackups""" -ForegroundColor Yellow
Write-Host "y al terminar, traemos desde GitHub la ultima version del codigo." -ForegroundColor Yellow
Write-Host ""
Write-Host "Presione cualquier tecla para continuar..." -ForegroundColor Yellow
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
# 2. Asegurar ubicación en la raíz
Set-Location $PSScriptRoot
Write-Host "`nScript ejecutado desde: $PWD" -ForegroundColor DarkGray
# 3. Buscar el proyecto
$B4AFile = Get-ChildItem -Path ".\B4A\*.b4a" | Select-Object -First 1
if (!$B4AFile) {
Write-Host "ERROR: No encontre el archivo .b4a" -ForegroundColor Red
Start-Sleep -Seconds 3
exit
}
$ProjectName = $B4AFile.BaseName
$BackupDir = ".\B4A\AutoBackups"
if (!(Test-Path $BackupDir)) { New-Item -ItemType Directory -Path $BackupDir }
Write-Host "Respaldando $ProjectName..." -ForegroundColor Cyan
# 4. Preparar archivos limpios (Método Copiar y Podar)
$tempFolder = Join-Path $env:TEMP "B4A_Stage_$ProjectName"
if (Test-Path $tempFolder) { Remove-Item $tempFolder -Recurse -Force -ErrorAction SilentlyContinue }
New-Item -ItemType Directory -Path $tempFolder | Out-Null
Write-Host "Extrayendo archivos de codigo..." -ForegroundColor Gray
foreach ($f in @("B4A", "Files")) {
if (Test-Path $f) {
$target = Join-Path $tempFolder $f
Copy-Item -Path $f -Destination $target -Recurse -Force -ErrorAction SilentlyContinue
}
}
Write-Host "Podando carpetas Objects y AutoBackups..." -ForegroundColor Gray
Remove-Item -Path "$tempFolder\B4A\Objects" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$tempFolder\B4A\AutoBackups" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "$tempFolder\B4A\*.zip" -Force -ErrorAction SilentlyContinue
# 5. Zipear
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
Write-Host "Comprimiendo..." -ForegroundColor Gray
Compress-Archive -Path "$tempFolder\*" -DestinationPath "$BackupDir\$ProjectName`_$Timestamp.zip" -Force
Remove-Item $tempFolder -Recurse -Force -ErrorAction SilentlyContinue
Write-Host "¡Respaldo limpio creado con exito en AutoBackups!`n" -ForegroundColor Green
# 6. Sincronizar con GitHub (Pull forzado)
Write-Host "--- Sincronizando con GitHub (Borrando cambios locales) ---" -ForegroundColor Cyan
git fetch --all
git reset --hard origin/main
git pull
Write-Host "`n¡PROCESO COMPLETADO!" -ForegroundColor Green
# Pausa de 3 segundos para que veas el resultado antes de que se cierre sola
Start-Sleep -Seconds 3