VERSION 5.11.25

- Se corrigio el envio de bases de datos de reparto
This commit is contained in:
2026-03-20 21:09:02 -06:00
parent 831bec62fc
commit bee96565e2
8 changed files with 1074 additions and 61 deletions

View File

@@ -5,19 +5,25 @@ Type=Class
Version=9.85 Version=9.85
@EndOfDesignText@ @EndOfDesignText@
#Region Shared Files #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 'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True
'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip 'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=Project.zip
'########################################################################################################### '###########################################################################################################
'###################### PULL ############################################################# '###################### PULL #############################################################
'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=git&Args=pull 'Ctrl + click ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=git&Args=pull
'########################################################################################################### '###########################################################################################################
'###################### PULL FORZADO #############################################################
'Ctrl + click Respaldar y Pull: ide://run?file=%WINDIR%\System32\cmd.exe&Args=/c&Args=start&Args=powershell.exe&Args=-ExecutionPolicy&Args=Bypass&Args=-File&Args=..\..\_sync_project.ps1
'###########################################################################################################
'###################### PUSH ############################################################# '###################### PUSH #############################################################
'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=github&Args=..\..\ 'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=github&Args=..\..\
'########################################################################################################### '###########################################################################################################
'###################### PUSH TORTOISE GIT ######################################################### '###################### PUSH TORTOISE GIT #########################################################
'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=TortoiseGitProc&Args=/command:commit&Args=/path:"./../../"&Args=/closeonend:2 'Ctrl + click ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=TortoiseGitProc&Args=/command:commit&Args=/path:"./../../"&Args=/closeonend:2
'########################################################################################################### '###########################################################################################################
'###################### PUSH TORTOISE GIT CON TAG ##################################################
'Ctrl + clic para Git: ide://run?file=%WINDIR%\System32\WindowsPowerShell\v1.0\powershell.exe&Args=-ExecutionPolicy&Args=Bypass&Args=-File&Args=..\_git_tag.ps1&Args=%22%PROJECT%%22&Args=%22%PROJECT_NAME%%22
'###########################################################################################################
#End Region #End Region
'Faltan: 'Faltan:
@@ -261,6 +267,7 @@ Sub B4XPage_Appear
Log(LastException) Log(LastException)
LogColor("Error en CAT_VARIABLES", Colors.red) LogColor("Error en CAT_VARIABLES", Colors.red)
End Try End Try
If empresa.ToUpperCase.Contains("REPARTO") Then If empresa.ToUpperCase.Contains("REPARTO") Then
p_datos_reparto.Top = p_datos.Top p_datos_reparto.Top = p_datos.Top
p_datos_reparto.Left = p_datos.Left p_datos_reparto.Left = p_datos.Left
@@ -291,7 +298,11 @@ Sub B4XPage_Appear
End Try End Try
' b_enviar.Enabled = False ' b_enviar.Enabled = False
Log(empresa) LogColor("#####################################################", Colors.red)
LogColor($"########## ${empresa} ###############"$, Colors.red)
LogColor("#####################################################", Colors.red)
empresa = empresa.Replace(" ", "_")
p_empresa.Visible = False p_empresa.Visible = False
If empresa.ToUpperCase.Contains("MARIANA") Then If empresa.ToUpperCase.Contains("MARIANA") Then
@@ -305,33 +316,33 @@ Sub B4XPage_Appear
b_enviar.Enabled = True b_enviar.Enabled = True
Log("Cargamos GUNA") Log("Cargamos GUNA")
else if empresa.ToUpperCase.Contains("GUNA_REPARTO") Then else if empresa.ToUpperCase.Contains("GUNA_REPARTO") Then
b_enviar.Text = "Enviar Guna_Reparto" b_enviar.Text = "Enviar Guna Reparto"
b_valida.Text = "Validar Guna_Reparto" b_valida.Text = "Validar Guna Reparto"
b_enviar.Enabled = True b_enviar.Enabled = True
Log("Cargamos Guna_Reparto") Log("Cargamos Guna_Reparto")
else if empresa.ToUpperCase.Contains("INTMEX_REPARTO") Then else if empresa.ToUpperCase.Contains("INTMEX_REPARTO") Then
b_enviar.Text = "Enviar Intmex_Reparto" b_enviar.Text = "Enviar Intmex Reparto"
b_valida.Text = "Validar Intmex_Reparto" b_valida.Text = "Validar Intmex Reparto"
b_enviar.Enabled = True b_enviar.Enabled = True
Log("Cargamos Intmex_Reparto") Log("Cargamos Intmex_Reparto")
else if empresa.ToUpperCase.Contains("MARQUEZ_REPARTO") Then else if empresa.ToUpperCase.Contains("MARQUEZ_REPARTO") Then
b_enviar.Text = "Enviar Marquez_Reparto" b_enviar.Text = "Enviar Marquez Reparto"
b_valida.Text = "Validar Marquez_Reparto" b_valida.Text = "Validar Marquez Reparto"
b_enviar.Enabled = True b_enviar.Enabled = True
Log("Cargamos Marquez_Reparto") Log("Cargamos Marquez_Reparto")
else if empresa.ToUpperCase.Contains("MAZAPA_REPARTO") Then else if empresa.ToUpperCase.Contains("MAZAPA_REPARTO") Then
b_enviar.Text = "Enviar Mazapa_Reparto" b_enviar.Text = "Enviar Mazapa Reparto"
b_valida.Text = "Validar Mazapa_Reparto" b_valida.Text = "Validar Mazapa Reparto"
b_enviar.Enabled = True b_enviar.Enabled = True
Log("Cargamos Mazapa_Reparto") Log("Cargamos Mazapa_Reparto")
else if empresa.ToUpperCase.Contains("DURAKELO_REPARTO") Then else if empresa.ToUpperCase.Contains("DURAKELO_REPARTO") Then
b_enviar.Text = "Enviar Durakelo_Reparto" b_enviar.Text = "Enviar Durakelo Reparto"
b_valida.Text = "Validar Durakelo_Reparto" b_valida.Text = "Validar Durakelo Reparto"
b_enviar.Enabled = True b_enviar.Enabled = True
Log("Cargamos Durakelo_Reparto") Log("Cargamos Durakelo_Reparto")
else if empresa.ToUpperCase.Contains("PROFINA_REPARTO") Then else if empresa.ToUpperCase.Contains("PROFINA_REPARTO") Then
b_enviar.Text = "Enviar Profina_Reparto" b_enviar.Text = "Enviar Profina Reparto"
b_valida.Text = "Validar Profina_Reparto" b_valida.Text = "Validar Profina Reparto"
b_enviar.Enabled = True b_enviar.Enabled = True
Log("Cargamos Profina_Reparto") Log("Cargamos Profina_Reparto")
else if empresa.ToUpperCase.Contains("INTMEX") Then else if empresa.ToUpperCase.Contains("INTMEX") Then
@@ -517,7 +528,7 @@ Sub ActualizarEtiquetasReparto
Else Else
totalcantped = 0 totalcantped = 0
End If End If
Log(r5.GetString("HVD_RECHAZOCANT") &" - "& totalcantped) ' Log(r5.GetString("HVD_RECHAZOCANT") &" - "& totalcantped)
rescant = rescant + ((r5.GetString("HVD_COSTO_TOT")/(r5.GetString("HVD_CANT")))*((r5.GetString("HVD_RECHAZOCANT") - totalcantped))) rescant = rescant + ((r5.GetString("HVD_COSTO_TOT")/(r5.GetString("HVD_CANT")))*((r5.GetString("HVD_RECHAZOCANT") - totalcantped)))
r6.Close r6.Close
Next Next
@@ -580,7 +591,7 @@ Sub ActualizarEtiquetasReparto
r5.Position = 0 r5.Position = 0
rescant4 = r5.GetString("HVD_COSTO_TOT") rescant4 = r5.GetString("HVD_COSTO_TOT")
End If End If
Log(rescant4) ' Log(rescant4)
r5.Close r5.Close
Catch Catch
Log(LastException) Log(LastException)

240
B4A/C_Guna_Reparto.bas Normal file
View File

@@ -0,0 +1,240 @@
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

@@ -39,7 +39,7 @@ Sub envia
d.Position=0 d.Position=0
cuantos_noventa = D.GetString("CUANTOS_NOVENTA") cuantos_noventa = D.GetString("CUANTOS_NOVENTA")
d.Close d.Close
'Buscamos ordenes a reprogramar. 'Buscamos ordenes a reprogramar.
Dim r As Cursor =B4XPages.MainPage.skmt.ExecQuery("select * from noventa where nv_reprogramar = 1") Dim r As Cursor =B4XPages.MainPage.skmt.ExecQuery("select * from noventa where nv_reprogramar = 1")
If r.RowCount > 0 Then If r.RowCount > 0 Then
@@ -81,7 +81,7 @@ Sub envia
fechacap = Regex.Split("/",pa.GetString("PA_CAPTURA")) fechacap = Regex.Split("/",pa.GetString("PA_CAPTURA"))
Dim fechacapano As String = fechacap(2).SubString(2) Dim fechacapano As String = fechacap(2).SubString(2)
Dim fechacapreal As String = fechacap(0)&"/"&fechacap(1)&"/"&fechacapano Dim fechacapreal As String = fechacap(0)&"/"&fechacap(1)&"/"&fechacapano
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")) 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"))
reqManager.ExecuteCommand(cmd , "ins_pagares") reqManager.ExecuteCommand(cmd , "ins_pagares")
Next Next
@@ -112,8 +112,7 @@ Sub envia
Next Next
End If End If
ab.Close ab.Close
c=B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM hist_ventas WHERE HVD_RECHAZO = 1 ") c=B4XPages.MainPage.skmt.ExecQuery("SELECT * FROM hist_ventas WHERE HVD_RECHAZO = 1 ")
If c.RowCount>0 Then If c.RowCount>0 Then
For i=0 To c.RowCount -1 For i=0 To c.RowCount -1
@@ -233,7 +232,7 @@ Public Sub ConfigurarYEnviar(ServidorURL As String)
End Sub End Sub
Sub JobDone(Job As HttpJob) Sub JobDone(Job As HttpJob)
Log("JOBDONE INTMEX") Log("JOBDONE INTMEX REPARTO")
Log(reqManager.link) Log(reqManager.link)
If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos. If reqManager.reqsList.IsInitialized Then 'Si tenemos lista de requests, la procesamos.
If reqManager.reqsList.IndexOf(Job.tag) <> -1 Then If reqManager.reqsList.IndexOf(Job.tag) <> -1 Then

552
B4A/C_Marquez.bas Normal file
View File

@@ -0,0 +1,552 @@
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

View File

@@ -38,8 +38,8 @@ ModuleBreakpoints6=
ModuleBreakpoints7= ModuleBreakpoints7=
ModuleBreakpoints8= ModuleBreakpoints8=
ModuleBreakpoints9= ModuleBreakpoints9=
ModuleClosedNodes0=2,6 ModuleClosedNodes0=
ModuleClosedNodes1=6,7,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27 ModuleClosedNodes1=2,6,7,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27
ModuleClosedNodes10=3,6 ModuleClosedNodes10=3,6
ModuleClosedNodes11=3 ModuleClosedNodes11=3
ModuleClosedNodes12=4 ModuleClosedNodes12=4
@@ -58,6 +58,6 @@ ModuleClosedNodes6=
ModuleClosedNodes7= ModuleClosedNodes7=
ModuleClosedNodes8=3,4 ModuleClosedNodes8=3,4
ModuleClosedNodes9=5,6,7,8 ModuleClosedNodes9=5,6,7,8
NavigationStack=C_Mazapa_Reparto,envia,297,0,C_Mazapa_Reparto,ConfigurarYEnviar,303,0,C_Mazapa_Reparto,JobDone,322,0,B4XMainPage,b_enviar_Click,629,0,B4XMainPage,B4XPage_Appear,262,0,Diseñador Visual,MainPage.bal,-100,1,B4XMainPage,ActualizarEtiquetasReparto,659,6,Main,Activity_Create,30,0,Main,Process_Globals,16,0,Main,Globals,20,0 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
SelectedBuild=0 SelectedBuild=0
VisibleModules=1,18,6,19,7,3,15,11,13,2 VisibleModules=1,18,6,19,7,3,15,11,13,2

Binary file not shown.

127
B4A/_git_tag.ps1 Normal file
View File

@@ -0,0 +1,127 @@
# --- SCRIPT DE COMMIT Y TAG (MODO IDE B4A) ---
# 0. CONFIGURACIÓN
$HacerPush = $true # Cambia a $true para que suba los cambios a GitHub
# Cargar librería visual para el MessageBox (por si se necesita en el Push)
Add-Type -AssemblyName System.Windows.Forms
# 1. AUTODESCUBRIMIENTO
$projectPath = $PSScriptRoot
Write-Host "Ruta del proyecto: $projectPath"
$b4aFileItem = Get-ChildItem -Path $projectPath -Filter "*.b4a" | Select-Object -First 1
if (-Not $b4aFileItem) {
Write-Host "ERROR: No hay archivo .b4a en esta carpeta."
return
}
$projectName = $b4aFileItem.BaseName
Write-Host "Proyecto detectado: $projectName"
# 2. LEER VERSIÓN
$versionLine = Get-Content $b4aFileItem.FullName | Select-String "#VersionName:"
if (-Not $versionLine) {
Write-Host "ERROR: Falta #VersionName en el archivo .b4a"
return
}
$version = ($versionLine -split ":")[1].Trim()
# Reemplaza cualquier espacio en blanco por un guion bajo solo para el tag
$tagName = "$version".Replace(" ", "_")
Set-Location $projectPath
# 3. COMMIT CON TORTOISEGIT
$oldCommit = git rev-parse HEAD 2>$null
Write-Host "----------------------------------------"
Write-Host "Version a etiquetar: $version"
Write-Host "Abriendo ventana de TortoiseGit..."
$pathArg = '/path:"{0}"' -f $projectPath
$msgArg = '/logmsg:"VERSION {0}"' -f $version
$cmdArg = "/command:commit"
Start-Process "TortoiseGitProc.exe" -ArgumentList $cmdArg, $pathArg, $msgArg
Write-Host "Esperando a que termines el commit en TortoiseGit..."
# El freno de mano: espera a que cierres la ventana
while (Get-Process "TortoiseGitProc" -ErrorAction SilentlyContinue) {
Start-Sleep -Seconds 1
}
$newCommit = git rev-parse HEAD 2>$null
# 4. VALIDACIÓN
if ($oldCommit -eq $newCommit) {
Write-Host "WARNING: Commit cancelado o sin cambios detectados."
return
}
Write-Host "Commit registrado exitosamente: $newCommit"
# 5. GESTIÓN DE TAGS
$tagGenerado = $false
# Revisamos si el tag ya existe localmente y lo borramos para recrearlo con el nuevo commit
if (git tag -l $tagName) {
git tag -d $tagName 2>$null | Out-Null
}
# Creamos el tag nuevo apuntando al commit que acabamos de hacer
git tag -a $tagName -m "Release version $version"
if ($?) { $tagGenerado = $true }
# 6. LÓGICA DE PUSH
if ($HacerPush) {
Write-Host "Conectando con GitHub..."
$remoteTagInfo = git ls-remote --tags origin $tagName
if ($remoteTagInfo) {
# Conflicto: Ya existe en remoto
$topForm = New-Object System.Windows.Forms.Form
$topForm.TopMost = $true
$topForm.Opacity = 0
$topForm.ShowInTaskbar = $false
$topForm.StartPosition = "CenterScreen"
$topForm.Show()
$topForm.Activate()
[System.Console]::Beep(1000, 200)
$msgBody = "El tag '$tagName' YA EXISTE en GitHub.`n`nDeseas SOBRESCRIBIRLO?`n`nSi = Borrar anterior y actualizar (Force Push).`nNo = Subir solo codigo (mantener tag viejo)."
$msgTitle = "Conflicto de Versiones - $projectName"
$respuesta = [System.Windows.Forms.MessageBox]::Show($topForm, $msgBody, $msgTitle, "YesNo", "Warning")
$topForm.Dispose()
if ($respuesta -eq "Yes") {
Write-Host "Sobrescribiendo tag en GitHub (Force Push)..."
git push origin
git push origin $tagName --force
} else {
Write-Host "Conservando tag anterior en GitHub..."
git push origin
}
} else {
# Tag Nuevo
Write-Host "Subiendo codigo y tag nuevo a GitHub..."
git push origin --follow-tags
}
} else {
Write-Host "Push OMITIDO (Switch de control apagado)."
}
# 7. REPORTE FINAL PARA EL IDE
$EstadoPush = if($HacerPush) { "SI" } else { "NO (Modo de prueba local)" }
$EstadoTag = if($tagGenerado) { "SI ($tagName)" } else { "NO (Error al generar)" }
Write-Host ""
Write-Host "========================================"
Write-Host " REPORTE DE VERSION "
Write-Host "========================================"
Write-Host " PROYECTO : $projectName"
Write-Host " TAG CREADO : $EstadoTag"
Write-Host " PUSH GITHUB: $EstadoPush"
Write-Host "========================================"

View File

@@ -1,43 +1,127 @@
# SCRIPT: _juntaBas.ps1 - Versión con Manifiesto para LLM # SCRIPT: _juntaBas_Master_FinalIA.ps1
$OutputFile="_CODIGO_COMPLETO_PARA_LLM.txt" # FIX: Corregida sintaxis de comillas y concatenación de tags XML.
# OBJETIVO: Fuente de verdad para IA con navegación ultra estructurada.
# Eliminar el archivo anterior si existe $ErrorActionPreference = 'SilentlyContinue'
Remove-Item -Path $OutputFile -ErrorAction SilentlyContinue $Dir = Get-Location
$LT = [char]60; $GT = [char]62; $SL = [char]47
$NL = [Environment]::NewLine
Write-Host "Iniciando fusion para LLM..." Write-Output '--- GENERANDO MASTER IA DEFINITIVO (FIX ESTRUCTURAL) ---'
# 1. Obtener la lista de archivos primero para el Manifiesto # 1. PARSEO DEL PROYECTO .B4A
$files = Get-ChildItem -Path ".\*" -Include @("*.bas", "*.b4a", "*.j") $b4a = Get-ChildItem -Path ".\*" -Include "*.b4a" -Recurse | Select-Object -First 1
$Name = 'App'; $Ver = '0.0'; $ModulosValidos = @(); $Librerias = @()
# --- GENERACIÓN DEL MANIFIESTO (TABLA DE CONTENIDO) --- if ($b4a) {
Add-Content -Path $OutputFile -Value "'======================================================================================" -Encoding UTF8 $lines = [System.IO.File]::ReadAllLines($b4a.FullName)
Add-Content -Path $OutputFile -Value "' MANIFIESTO DEL PROYECTO - Generado el $(Get-Date -Format 'yyyy-MM-dd HH:mm')" -Encoding UTF8 foreach ($L in $lines) {
Add-Content -Path $OutputFile -Value "' Total de archivos: $($files.Count)" -Encoding UTF8 if ($L -match '#ApplicationLabel:\s*(.*)') { $Name = $Matches[1].Trim() }
Add-Content -Path $OutputFile -Value "'======================================================================================" -Encoding UTF8 if ($L -match '#VersionName:\s*(.*)') { $Ver = $Matches[1].Trim() }
if ($L -match '^Module\d+=(.*)') {
foreach ($file in $files) { $m = [System.IO.Path]::GetFileName($Matches[1].Trim())
$lines = (Get-Content $file.FullName).Count if (-not $m.EndsWith(".bas") -and $m -ne "Main") { $m += ".bas" }
Add-Content -Path $OutputFile -Value "' [ ] Archivo: $($file.Name) ($lines líneas)" -Encoding UTF8 $ModulosValidos += $m
} }
Add-Content -Path $OutputFile -Value "'======================================================================================`n" -Encoding UTF8 if ($L -match '^Library\d+=(.*)') { $Librerias += $Matches[1].Trim() }
}
# 2. Itera y vuelca el contenido de los archivos
$files | ForEach-Object {
$currentFile = $_.Name
Write-Host "Procesando: $currentFile"
# Encabezado de sección
Add-Content -Path $OutputFile -Value "'======================================================================================" -Encoding UTF8
Add-Content -Path $OutputFile -Value "// ARCHIVO_INICIO: ${currentFile}" -Encoding UTF8
Add-Content -Path $OutputFile -Value "'======================================================================================`n" -Encoding UTF8
# Contenido con codificación UTF8
Get-Content -Encoding UTF8 -Path $_.FullName -Raw | Add-Content -Path $OutputFile -Encoding UTF8
# Delimitador de fin
Add-Content -Path $OutputFile -Value "`n'======================================================================================" -Encoding UTF8
Add-Content -Path $OutputFile -Value "// ARCHIVO_FIN: ${currentFile}" -Encoding UTF8
Add-Content -Path $OutputFile -Value "'======================================================================================`n" -Encoding UTF8
} }
Write-Host "¡Listo! Archivo $OutputFile generado con éxito." $OutName = "_" + $Name + "_" + $Ver + "_IA.md"
$OutFile = Join-Path $Dir $OutName
# 2. HEADER CON TUS INSTRUCCIONES CRÍTICAS
$CurrentDate = Get-Date -Format 'yyyy-MM-dd HH:mm'
$Header = @"
# PROYECTO: $Name
- Version: $Ver
- Fecha: $CurrentDate
- Librerias Activas: $($Librerias -join ", ")
## INSTRUCCIONES CRITICAS (B4A / BASIC4ANDROID)
0. **Integridad del Contexto:** Antes de procesar peticiones, cuenta si el numero de modulos listados en el indice coincide con los detallados en el cuerpo.
1. **Source of Truth (Codigo):** Este archivo contiene el codigo fuente ACTUAL del proyecto.
2. **Source of Truth (Librerias):** Basa tus sugerencias en la lista de 'Librerias Activas'.
3. **Anti-Alucinacion:** Antes de sugerir, VERIFICA la 'Interfaz Pública' o el código fuente del módulo.
4. **Existencia Estricta:** Si una variable/Sub no está en el texto, NO EXISTE.
5. **Formato:** Usa bloques 'vb'.
6. **Navegacion Estructural:** Usa los tags <module>, <interface> y <method> para localizar codigo.
7. **Inferencia de Datos:** Deduce la BD solo de los strings SQL presentes.
"@
Set-Content -Path $OutFile -Value $Header -Encoding UTF8
# 3. LISTAR ARCHIVOS
$files = Get-ChildItem -Path $Dir -Include *.bas,*.b4a -Recurse | Where-Object {
$_.FullName -notmatch 'Objects' -and ($_.Extension -eq '.b4a' -or $ModulosValidos -contains $_.Name)
}
# 4. INDICE DE MODULOS
Add-Content $OutFile ($NL + "## INDICE DE MODULOS" + $NL) -Encoding UTF8
foreach ($f in $files) {
$Ref = $f.Name.Replace('.', '').Replace(' ', '-').ToLower()
Add-Content $OutFile ("- [" + $f.Name + "](#modulo-" + $Ref + ")") -Encoding UTF8
}
# 5. CODIGO FUENTE ESTRUCTURADO
Add-Content $OutFile ($NL + '## CODIGO FUENTE DETALLADO' + $NL) -Encoding UTF8
foreach ($f in $files) {
Write-Host " -> $($f.Name)... " -NoNewline
$txt = [System.IO.File]::ReadAllLines($f.FullName)
# Pre-escaneo para <interface>
$Methods = @()
foreach ($line in $txt) {
if ($line.Trim() -match '^(?:Public\s+|Private\s+)?Sub\s+([\w\d_]+)') {
$Methods += $Matches[1]
}
}
$Ref = $f.Name.Replace('.', '').Replace(' ', '-').ToLower()
Add-Content $OutFile "$NL<module name='$($f.Name)' id='modulo-$Ref'>" -Encoding UTF8
Add-Content $OutFile " <interface>" -Encoding UTF8
foreach($m in $Methods) {
Add-Content $OutFile " <method_ref name='$m' />" -Encoding UTF8
}
Add-Content $OutFile " </interface>$NL" -Encoding UTF8
Add-Content $OutFile "```vb" -Encoding UTF8
$skip = ($f.Extension -eq '.b4a')
foreach ($l in $txt) {
$trim = $l.Trim()
if ($skip) {
if ($trim.StartsWith("#") -and -not $trim.StartsWith("#Region")) { Add-Content $OutFile $l -Encoding UTF8 }
if ($l.Contains("@EndOfDesignText@")) { $skip = $false }
continue
}
# Inicio de Método
if ($trim -match '^(?:Public\s+|Private\s+)?Sub\s+([\w\d_]+)') {
Add-Content $OutFile "<method name='$($Matches[1])'>" -Encoding UTF8
}
# Limpieza de comentarios y escritura de línea
if ($trim.StartsWith("'")) {
if (-not ($trim.StartsWith("'#") -or ($trim -match 'TODO:') -or ($trim -match 'FIX:'))) { continue }
}
if (-not [string]::IsNullOrWhiteSpace($trim)) {
Add-Content $OutFile $l -Encoding UTF8
}
# Fin de Método
if ($trim -eq "End Sub") {
Add-Content $OutFile "</method>" -Encoding UTF8
}
}
Add-Content $OutFile "```$NL</module>" -Encoding UTF8
Write-Host "OK" -ForegroundColor Green
}
Write-Output ("--- FINALIZADO: " + $OutName + " ---")