mirror of
https://github.com/KeymonSoft/Intmex_Reparto_2026.git
synced 2026-04-17 12:56:12 +00:00
VERSION 5.10.14
- Se agrego que mande la bandera de "reprogramado" - Se agrego que mande al tmp_drop fin dia, carga y envio.
This commit is contained in:
1173
B4A/B4XMainPage.bas
1173
B4A/B4XMainPage.bas
File diff suppressed because it is too large
Load Diff
@@ -1938,7 +1938,6 @@ Sub B_PASO2_Click
|
||||
' End If
|
||||
End Sub
|
||||
|
||||
|
||||
Sub mandaPendientesreparto
|
||||
' c=Starter.skmt.ExecQuery("SELECT CLIENTE, USUARIO, FECHA_PUNTEO, LATITUD, LONGITUD, ALMACEN, RUTA_REPARTO, RUTA_PREV, FECHA_PREVENTA, MOTIVO, COMENTARIO,TIPO FROM REPARTO_GEO where ENVIO <> 1")
|
||||
' Log($"REPARTO_Cliente PENDIENTE: ${c.RowCount}"$)
|
||||
|
||||
@@ -48,6 +48,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
||||
'load the layout to Root
|
||||
Root.LoadLayout("no_venta")
|
||||
reqManager.Initialize(Me, B4XPages.MainPage.SERVER)
|
||||
p_camara.Left = 0 : p_camara.Top = 0
|
||||
End Sub
|
||||
|
||||
'You can see the list of page related events in the B4XPagesManager object. The event name is B4XPage.
|
||||
|
||||
@@ -111,7 +111,6 @@ Sub Class_Globals
|
||||
Private multiAlmacen As Boolean = False
|
||||
Private idAlmacenExtra As String = ""
|
||||
|
||||
|
||||
Dim btAdmin As BluetoothAdmin
|
||||
Dim cmp20 As Serial
|
||||
' Dim printer As TextWriter
|
||||
@@ -142,6 +141,7 @@ Sub Class_Globals
|
||||
Private b_regresa_inv As Button
|
||||
Private l_pzas As Label
|
||||
Private Label17 As Label
|
||||
Private l_version As Label
|
||||
End Sub
|
||||
|
||||
'You can add more parameters here.
|
||||
@@ -198,6 +198,7 @@ Private Sub B4XPage_Created (Root1 As B4XView)
|
||||
' b.Close
|
||||
' c.Close
|
||||
End If
|
||||
l_version.Text = Application.VersionName
|
||||
b=Starter.skmt.ExecQuery("select id_almacen from CAT_ALMACEN")
|
||||
If b.RowCount > 0 Then
|
||||
' Log("Traemos almacen ..." & B4XPages.MainPage.server)
|
||||
@@ -863,6 +864,7 @@ Sub envia_reparto
|
||||
End Sub
|
||||
|
||||
Sub envioinfo
|
||||
Subs.mandaDrop("ENVIO", e_ruta.text)
|
||||
' NOVENTA
|
||||
c = Starter.skmt.ExecQuery("SELECT NV_CLIENTE,NV_FECHA,NV_USER,NV_MOTIVO,NV_COMM,NV_LAT,NV_LON, NV_FOTO, NV_REPROGRAMAR FROM NOVENTA")
|
||||
D=Starter.skmt.ExecQuery("SELECT COUNT(*) AS CUANTOS_NOVENTA FROM NOVENTA")
|
||||
@@ -954,8 +956,7 @@ Sub envioinfo
|
||||
Next
|
||||
End If
|
||||
ab.Close
|
||||
|
||||
|
||||
|
||||
c=Starter.skmt.ExecQuery("SELECT * FROM hist_ventas WHERE HVD_RECHAZO = 1 ")
|
||||
If c.RowCount>0 Then
|
||||
For i=0 To c.RowCount -1
|
||||
@@ -975,7 +976,7 @@ Sub envioinfo
|
||||
Next
|
||||
c.Close
|
||||
End If
|
||||
|
||||
|
||||
' pedido
|
||||
c=Starter.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
|
||||
@@ -989,8 +990,7 @@ Sub envioinfo
|
||||
Next
|
||||
c.Close
|
||||
End If
|
||||
|
||||
|
||||
|
||||
'' reqManager.Initialize(Me, "http://187.189.244.154:1787") 'Para el servidor de pruebas.
|
||||
' c = Starter.skmt.ExecQuery("SELECT * from reparto")
|
||||
' If c.RowCount > 0 Then
|
||||
@@ -1032,24 +1032,21 @@ Sub envioinfo
|
||||
' Next
|
||||
' c.Close
|
||||
' End If
|
||||
|
||||
|
||||
|
||||
c=Starter.skmt.ExecQuery("SELECT CLIENTE, USUARIO, FECHA_PUNTEO, LATITUD, LONGITUD, ALMACEN, RUTA_REPARTO, RUTA_PREV, FECHA_PREVENTA, MOTIVO, COMENTARIO,TIPO FROM REPARTO_GEO")
|
||||
Log($"REPARTO_Cliente PENDIENTE: ${c.RowCount}"$)
|
||||
If c.RowCount>0 Then
|
||||
For i=0 To c.RowCount -1
|
||||
c.Position=i
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "insert_REPARTO_INTMEX"
|
||||
cmd.Parameters = Array As Object(c.GetString("CLIENTE"), c.GetString("USUARIO"), c.GetString("FECHA_PUNTEO"), c.GetString("LATITUD"), c.GetString("LONGITUD"), c.GetString("ALMACEN"), c.GetString("RUTA_REPARTO"), c.GetString("RUTA_PREV"), c.GetString("FECHA_PREVENTA"), c.GetString("MOTIVO"), c.GetString("COMENTARIO"),c.GetString("TIPO"))
|
||||
reqManager.ExecuteCommand(cmd , $"ins_REPARTOPendientes_head_${c.GetString("CLIENTE")}"$)
|
||||
|
||||
Next
|
||||
End If
|
||||
c.Close
|
||||
|
||||
|
||||
'TABULADOR
|
||||
c = Starter.skmt.ExecQuery("SELECT VEINTE, DIEZ, CINCO, DOS, PESO, CENTAVO, TOTAL FROM TABULADOR_MONEDAS")
|
||||
d = Starter.skmt.ExecQuery("SELECT RUTAA FROM RUTAA")
|
||||
@@ -1075,7 +1072,7 @@ Sub envioinfo
|
||||
b.Close
|
||||
f.Close
|
||||
End If
|
||||
|
||||
|
||||
' c = Starter.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")
|
||||
' If c.RowCount > 0 Then
|
||||
' For i=0 To c.RowCount -1
|
||||
@@ -1119,7 +1116,6 @@ Sub envioinfo
|
||||
' End If
|
||||
' c.Close
|
||||
|
||||
|
||||
c = Starter.skmt.ExecQuery("SELECT MIL, QUINIENTOS, DOCIENTOS, CIEN, CINCUENTA, VEINTE FROM TABULADOR_BILLETES")
|
||||
d = Starter.skmt.ExecQuery("SELECT RUTAA FROM RUTAA")
|
||||
b = Starter.skmt.ExecQuery("SELECT ID_ALMACEN FROM CAT_ALMACEN")
|
||||
@@ -1132,7 +1128,6 @@ Sub envioinfo
|
||||
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_INTMEX"
|
||||
@@ -1144,13 +1139,13 @@ Sub envioinfo
|
||||
b.Close
|
||||
f.Close
|
||||
End If
|
||||
|
||||
'FIN TABULADOR
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "insert_drop_rep_INTMEX2"
|
||||
cmd.Parameters = Array As Object(Subs.dameUsuarioDeDB, l_ruta.Text, ALMACEN, l_ctast.text, Subs.traeEntregados, Subs.traeRechazados, "ENVIO",Application.VersionName)
|
||||
reqManager.ExecuteCommand(cmd , "inst_drop")
|
||||
' Dim cmd As DBCommand
|
||||
' cmd.Initialize
|
||||
' cmd.Name = "insert_drop_rep_INTMEX2"
|
||||
' cmd.Parameters = Array As Object(Subs.dameUsuarioDeDB, l_ruta.Text, ALMACEN, l_ctast.text, Subs.traeEntregados, Subs.traeRechazados, "ENVIO",Application.VersionName)
|
||||
' reqManager.ExecuteCommand(cmd , "inst_drop")
|
||||
ToastMessageShow("Se Actualizaran los datos, Este proceso podria tardar hasta un minuto, gracias "& l_ruta.text , True)
|
||||
End Sub
|
||||
|
||||
@@ -1182,11 +1177,11 @@ Sub cargar_Click
|
||||
LogColor($"ReqServer = ${B4XPages.MainPage.server}"$, Colors.red)
|
||||
reqManager.Initialize(Me, B4XPages.MainPage.server)
|
||||
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "insert_drop_rep_INTMEX2"
|
||||
cmd.Parameters = Array As Object(Subs.dameUsuarioDeDB, l_ruta.Text, ALMACEN, l_ctast.text, Subs.traeEntregados, Subs.traeRechazados, "CARGA",Application.VersionName)
|
||||
reqManager.ExecuteCommand(cmd , "inst_drop")
|
||||
' Dim cmd As DBCommand
|
||||
' cmd.Initialize
|
||||
' cmd.Name = "insert_drop_rep_INTMEX2"
|
||||
' cmd.Parameters = Array As Object(Subs.dameUsuarioDeDB, l_ruta.Text, ALMACEN, l_ctast.text, Subs.traeEntregados, Subs.traeRechazados, "CARGA",Application.VersionName)
|
||||
' reqManager.ExecuteCommand(cmd , "inst_drop")
|
||||
' reqs.Add("inst_noventa")
|
||||
|
||||
Starter.skmt.ExecNonQuery("delete from kmt_info")
|
||||
@@ -1309,6 +1304,8 @@ Sub cargar_Click
|
||||
Log("XXXX")
|
||||
MsgboxAsync("Para poder cargar día no puedes tener venta del día anterior. Por favor haz FIN DIA e intenta nuevamente.","Atención")
|
||||
End If
|
||||
Sleep(1000)
|
||||
Subs.mandaDrop("CARGA", e_ruta.Text)
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -2039,11 +2036,12 @@ Sub e_ruta_EnterPressed
|
||||
If e_ruta.Text = "FIN DIA" Then
|
||||
RES = Msgbox2("Seguro que desea hacer el cierre todos los datos se borraran?","Cierre", "Si", "", "No",LoadBitmap(File.DirAssets,"alert2.png")) 'ignore
|
||||
If RES = DialogResponse.POSITIVE Then
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "insert_drop_rep_INTMEX2"
|
||||
cmd.Parameters = Array As Object(Subs.dameUsuarioDeDB, l_ruta.Text, ALMACEN, l_ctast.text, Subs.traeEntregados, Subs.traeRechazados, "FIN DIA",Application.VersionName)
|
||||
reqManager.ExecuteCommand(cmd , "inst_drop")
|
||||
' Dim cmd As DBCommand
|
||||
' cmd.Initialize
|
||||
' cmd.Name = "insert_drop_rep_INTMEX2"
|
||||
' cmd.Parameters = Array As Object(Subs.dameUsuarioDeDB, l_ruta.Text, ALMACEN, l_ctast.text, Subs.traeEntregados, Subs.traeRechazados, "FIN DIA",Application.VersionName)
|
||||
' reqManager.ExecuteCommand(cmd , "inst_drop")
|
||||
Subs.mandaDrop("FIN DIA", l_ruta.Text)
|
||||
|
||||
e_ruta.Text = ""
|
||||
Starter.skmt.ExecNonQuery("delete from PICK_CIEGO")
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -138,11 +138,6 @@ Sub ENVIA_ULTIMA_GPS
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Sub IsConnectedToInternet As Boolean 'ignore
|
||||
Dim r As Reflector
|
||||
r.Target = r.GetContext
|
||||
@@ -155,7 +150,7 @@ Sub IsConnectedToInternet As Boolean 'ignore
|
||||
End Sub
|
||||
|
||||
Sub JobDone(Job As HttpJob)
|
||||
' LogColor("starter jobdone", Colors.Red)
|
||||
LogColor("starter jobdone", Colors.Red)
|
||||
' Log(Job.ErrorMessage)
|
||||
' Private r As DBResult = reqManager.HandleJob(Job)
|
||||
If Job.Success = False Then
|
||||
@@ -165,6 +160,6 @@ Sub JobDone(Job As HttpJob)
|
||||
End If
|
||||
'ToastMessageShow("Error: " & Job.ErrorMessage, True)
|
||||
Else
|
||||
' LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211023
|
||||
LogColor("JobDone: '" & reqManager.HandleJob(Job).tag & "' - Registros: " & reqManager.HandleJob(Job).Rows.Size, Colors.Green) 'Mod por CHV - 211023
|
||||
End If
|
||||
End Sub
|
||||
10
B4A/Subs.bas
10
B4A/Subs.bas
@@ -1170,3 +1170,13 @@ Sub guardaAppInfo 'ignore
|
||||
Starter.skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('APP_NAME', '${Application.LabelName}')"$)
|
||||
Starter.skmt.ExecNonQuery($"insert into CAT_VARIABLES (CAT_VA_DESCRIPCION, CAT_VA_VALOR) values ('APP_VERSION', '${Application.VersionName}')"$)
|
||||
End Sub
|
||||
|
||||
'Manda a tmp_drop
|
||||
Sub mandadrop(evento As String, ruta As String)
|
||||
LogColor($"===> Mandamos a TMP_DROP - ${evento}"$, Colors.red)
|
||||
Dim cmd As DBCommand
|
||||
cmd.Initialize
|
||||
cmd.Name = "insert_drop_rep_INTMEX2"
|
||||
cmd.Parameters = Array As Object(dameUsuarioDeDB, ruta, traeAlmacen, B4XPages.MainPage.principal.l_ctast.text, traeEntregados, traeRechazados, evento, Application.VersionName)
|
||||
Starter.reqManager.ExecuteCommand(cmd , "inst_drop")
|
||||
End Sub
|
||||
127
B4A/_git_tag.ps1
Normal file
127
B4A/_git_tag.ps1
Normal 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 "========================================"
|
||||
127
B4A/_juntaBas.ps1
Normal file
127
B4A/_juntaBas.ps1
Normal file
@@ -0,0 +1,127 @@
|
||||
# SCRIPT: _juntaBas_Master_FinalIA.ps1
|
||||
# FIX: Corregida sintaxis de comillas y concatenación de tags XML.
|
||||
# OBJETIVO: Fuente de verdad para IA con navegación ultra estructurada.
|
||||
|
||||
$ErrorActionPreference = 'SilentlyContinue'
|
||||
$Dir = Get-Location
|
||||
$LT = [char]60; $GT = [char]62; $SL = [char]47
|
||||
$NL = [Environment]::NewLine
|
||||
|
||||
Write-Output '--- GENERANDO MASTER IA DEFINITIVO (FIX ESTRUCTURAL) ---'
|
||||
|
||||
# 1. PARSEO DEL PROYECTO .B4A
|
||||
$b4a = Get-ChildItem -Path ".\*" -Include "*.b4a" -Recurse | Select-Object -First 1
|
||||
$Name = 'App'; $Ver = '0.0'; $ModulosValidos = @(); $Librerias = @()
|
||||
|
||||
if ($b4a) {
|
||||
$lines = [System.IO.File]::ReadAllLines($b4a.FullName)
|
||||
foreach ($L in $lines) {
|
||||
if ($L -match '#ApplicationLabel:\s*(.*)') { $Name = $Matches[1].Trim() }
|
||||
if ($L -match '#VersionName:\s*(.*)') { $Ver = $Matches[1].Trim() }
|
||||
if ($L -match '^Module\d+=(.*)') {
|
||||
$m = [System.IO.Path]::GetFileName($Matches[1].Trim())
|
||||
if (-not $m.EndsWith(".bas") -and $m -ne "Main") { $m += ".bas" }
|
||||
$ModulosValidos += $m
|
||||
}
|
||||
if ($L -match '^Library\d+=(.*)') { $Librerias += $Matches[1].Trim() }
|
||||
}
|
||||
}
|
||||
|
||||
$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 + " ---")
|
||||
@@ -1,6 +1,12 @@
|
||||
Build1=Default,reparto_INTMEX2.keymon.lat,HU2_PUBLIC
|
||||
File1=2023.png
|
||||
File10=cliente.bal
|
||||
File100=UBICARCLIENTE.png
|
||||
File101=usuario.png
|
||||
File102=vecteezy_abstract-color-polygon-background-design-abstract-geometric_22231666.jpg
|
||||
File103=visitaazul.png
|
||||
File104=visitaazul1.png
|
||||
File105=visitadosblanco.png
|
||||
File11=clienteblanco.png
|
||||
File12=clientes.bal
|
||||
File13=Clientes_visitados.jpg
|
||||
@@ -61,42 +67,51 @@ File62=mapa_rutas.bal
|
||||
File63=mariana.jpg
|
||||
File64=mariana_logo_192x192.jpg
|
||||
File65=marker-amarillo.png
|
||||
File66=MARQUEZ_logo_192x192.jpg
|
||||
File67=no_venta.bal
|
||||
File68=nuevocliente.bal
|
||||
File69=panel_pick_ciego.bal
|
||||
File66=marker-azul.png
|
||||
File67=marker-azul1.png
|
||||
File68=marker-azul2.png
|
||||
File69=marker-azul3.png
|
||||
File7=CALIFICARCLIENTE.png
|
||||
File70=pedido.bal
|
||||
File71=planfia_logo.png
|
||||
File72=planfia_logo_old.png
|
||||
File73=planfia_logo_old2.png
|
||||
File74=principal.bal
|
||||
File75=proditem.bal
|
||||
File76=proditem2.bal
|
||||
File77=productos.bal
|
||||
File78=profina.jpg
|
||||
File79=PROFINA.png
|
||||
File70=marker-azul4.png
|
||||
File71=marker-azul5.png
|
||||
File72=marker-rojo.png
|
||||
File73=marker-rojo1.png
|
||||
File74=marker-rojo2.png
|
||||
File75=marker-verde.png
|
||||
File76=no_venta.bal
|
||||
File77=nuevocliente.bal
|
||||
File78=panel_pick_ciego.bal
|
||||
File79=pedido.bal
|
||||
File8=check.bal
|
||||
File80=rechazos.jpg
|
||||
File81=RECHAZOS.png
|
||||
File82=rechazosblanco.png
|
||||
File83=sync.png
|
||||
File84=tabulador.bal
|
||||
File85=Tabulador.jpg
|
||||
File86=TABULADOR.png
|
||||
File87=tabuladorblanco.png
|
||||
File88=telefonos.bal
|
||||
File89=ubicacionblanco.png
|
||||
File80=planfia_logo.png
|
||||
File81=planfia_logo_old.png
|
||||
File82=planfia_logo_old2.png
|
||||
File83=principal.bal
|
||||
File84=proditem.bal
|
||||
File85=proditem2.bal
|
||||
File86=productos.bal
|
||||
File87=profina.jpg
|
||||
File88=PROFINA.png
|
||||
File89=rechazos.jpg
|
||||
File9=checklist.bal
|
||||
File90=Ubicar_clientes.jpg
|
||||
File91=UBICARCLIENTE.png
|
||||
File92=usuario.png
|
||||
File93=vecteezy_abstract-color-polygon-background-design-abstract-geometric_22231666.jpg
|
||||
File94=visitaazul.png
|
||||
File95=visitaazul1.png
|
||||
File96=visitadosblanco.png
|
||||
File90=RECHAZOS.png
|
||||
File91=rechazosblanco.png
|
||||
File92=sync.png
|
||||
File93=tabulador.bal
|
||||
File94=Tabulador.jpg
|
||||
File95=TABULADOR.png
|
||||
File96=tabuladorblanco.png
|
||||
File97=telefonos.bal
|
||||
File98=ubicacionblanco.png
|
||||
File99=Ubicar_clientes.jpg
|
||||
FileGroup1=Default Group
|
||||
FileGroup10=Default Group
|
||||
FileGroup100=Default Group
|
||||
FileGroup101=Default Group
|
||||
FileGroup102=Default Group
|
||||
FileGroup103=Default Group
|
||||
FileGroup104=Default Group
|
||||
FileGroup105=Default Group
|
||||
FileGroup11=Default Group
|
||||
FileGroup12=Default Group
|
||||
FileGroup13=Default Group
|
||||
@@ -191,6 +206,9 @@ FileGroup93=Default Group
|
||||
FileGroup94=Default Group
|
||||
FileGroup95=Default Group
|
||||
FileGroup96=Default Group
|
||||
FileGroup97=Default Group
|
||||
FileGroup98=Default Group
|
||||
FileGroup99=Default Group
|
||||
Group=Default Group
|
||||
Library1=appupdating
|
||||
Library10=googlemaps
|
||||
@@ -252,7 +270,7 @@ Module6=C_Cheklist
|
||||
Module7=C_Cliente
|
||||
Module8=C_Clientes
|
||||
Module9=C_Detalle_Promo
|
||||
NumberOfFiles=96
|
||||
NumberOfFiles=105
|
||||
NumberOfLibraries=27
|
||||
NumberOfModules=32
|
||||
Version=12.8
|
||||
|
||||
@@ -88,7 +88,7 @@ ModuleClosedNodes27=
|
||||
ModuleClosedNodes28=
|
||||
ModuleClosedNodes29=
|
||||
ModuleClosedNodes3=
|
||||
ModuleClosedNodes30=
|
||||
ModuleClosedNodes30=2
|
||||
ModuleClosedNodes31=
|
||||
ModuleClosedNodes32=
|
||||
ModuleClosedNodes4=
|
||||
@@ -97,6 +97,6 @@ ModuleClosedNodes6=
|
||||
ModuleClosedNodes7=
|
||||
ModuleClosedNodes8=
|
||||
ModuleClosedNodes9=
|
||||
NavigationStack=C_Principal,Class_Globals,138,0,Diseñador Visual,login.bal,-100,1,Diseñador Visual,detalleVenta.bal,-100,2,C_Cliente,gest_Click,692,6,C_Principal,imp_LIQUIDACION,3194,0,C_Principal,p_inventario_Click,3211,0,C_Principal,b_regresa_inv_Click,3207,0,C_Principal,B4XPage_CloseRequest,1979,3,Diseñador Visual,principal.bal,-100,6,C_Principal,inventario_Click,2795,6
|
||||
NavigationStack=Starter,JobDone,156,0,Starter,IsConnectedToInternet,144,0,C_Principal,envia_reparto,855,0,C_Principal,envioinfo,860,6,C_Principal,cargar_Click,1305,3,C_Principal,e_ruta_EnterPressed,2036,5,C_Principal,B4XPage_Created,194,4,Diseñador Visual,principal.bal,-100,6,C_Principal,Class_Globals,139,0,C_Principal,Initialize,144,0
|
||||
SelectedBuild=0
|
||||
VisibleModules=1,2,3,4,5,6,7,8,9,10,17
|
||||
VisibleModules=30,2,17,7,8,14,31,23
|
||||
|
||||
Reference in New Issue
Block a user