Saltar a contenido

Reorganización Física de Comandos por Directorio

📋 Resumen de la Reorganización

Fecha: 31 de agosto de 2025
Total de comandos organizados: 92 comandos
Estructura anterior: Todos en app/Console/Commands/ (directorio plano)
Estructura nueva: Organizados en 7 directorios por tipo de operación


🗂️ Nueva Estructura de Directorios

📊 Distribución por Directorio

Directorio Comandos Porcentaje Propósito
Testing 41 45% Comandos de testing, debug y diagnóstico
POS 23 25% Sincronización de sistemas POS e inventario
Integrations 8 9% Integraciones con sistemas empresariales
Core 8 9% Comandos fundamentales del sistema
Maintenance 5 5% Mantenimiento y limpieza del sistema
Configuration 5 5% Configuración de base de datos
Analysis 2 2% Análisis y reportes específicos

🧪 Testing (41 comandos)

Ubicación: app/Console/Commands/Testing/

Comandos Movidos al Directorio Testing:

  • TestKartRealDataCommand.php
  • DebugCreateFastJobVuelto.php
  • DebugTheFactoryHKARequest.php
  • TestKartRealApiCommand.php
  • DebugInvoiceNumberMapping.php
  • TestKartToZoho.php
  • DiagnoseKartInvoiceCommand.php
  • TestZohoConnection.php
  • TestTheFactoryHKAPayload.php

Comandos Ya Existentes:

  • Todos los comandos de testing específicos (Meypar, ACICloud, Alanube, etc.)
  • Comandos de wrapper y debugging
  • Comandos de testing de emisión y APIs

🏢 Integrations (8 comandos)

Ubicación: app/Console/Commands/Integrations/

Intuit/QuickBooks:

  • UploadSalesIntuitCommand.php
  • IntuitSyncStatusCommand.php
  • UploadSalesGeneralDiaryIntuitCommand.php
  • UpdateIntuitOrders.php

Kart:

  • EmitKartOrderCommand.php
  • ForceKartInvoiceEmissionCommand.php
  • EmitKartWithCashPayment.php
  • EmitKartWithCreateFastJobCommand.php

🛒 POS (23 comandos)

Ubicación: app/Console/Commands/POS/

Invupos (7 comandos):

  • CustomerInvuposCommand.php
  • CategoryInvuposCommand.php
  • SubCategoryInvuposCommand.php
  • TypePaymentInvuposCommand.php
  • ProductInvuposCommand.php
  • PurchaseCategoryInvupos.php
  • ProviderInvuposCommand.php

Lightspeed (4 comandos):

  • UpdateLightspeedModule.php
  • ValidateLightspeedCreditNoteFix.php
  • UpdateLightspeedSerierModule.php
  • AnalyzeLightspeedCreditNoteCommand.php
  • TypepaymentlightspeedCommand.php

Booqable (1 comando):

  • UpdateBooqableModule.php

Módulos POS (2 comandos):

  • UpdateInvuPosModule.php
  • UpdateSQLServerModule.php

Órdenes y Ventas (5 comandos):

  • CreateCreditNotesSummaryCommand.php
  • CreateSalesOrderSummary.php
  • CreditNotesCommand.php
  • PurchaseOrdersCommand.php
  • SalesOrdersCommand.php

Datos e Inventario (4 comandos):

  • ExportData.php
  • ImportData.php
  • ItemMenuCommand.php

⚙️ Core (8 comandos)

Ubicación: app/Console/Commands/Core/

Tokens y Autenticación (4 comandos):

  • CreateAccessTokenCommand.php
  • CreateAccessTokenPacCommand.php
  • CreateAccessTokenSerieRCommand.php

Configuración de Organizaciones (2 comandos):

  • ExtractOrganizationConfigurationEmailsCommand.php
  • ExtractOrganizationConfigurationPacCommand.php

Facturación Electrónica (2 comandos):

  • CorrectElectronicInvoicesWithErrors.php
  • VerifyOrIssueFaithFromIssuanceCommand.php

Procesos Específicos (1 comando):

  • EzeeteCommand.php

🔧 Maintenance (5 comandos)

Ubicación: app/Console/Commands/Maintenance/

Limpieza del Sistema:

  • ClearLogFile.php
  • CleanOldTransactionsCommand.php
  • CleanOldArchivesCommand.php

Correcciones:

  • FixACIcloudReceptorIssues.php

Actualizaciones:

  • UpdateAppointmentStatus.php

🗄️ Configuration (5 comandos)

Ubicación: app/Console/Commands/Configuration/

Gestión de Esquemas de BD:

  • AlterColumnIncrementCommand.php
  • AddColumnToOrganizationsTableCommand.php
  • CreateTableFromStubCommand.php
  • RemoveColumnsGjeHeaderImp.php
  • RemoveColumnToOrganizationsTableCommand.php

📊 Analysis (2 comandos)

Ubicación: app/Console/Commands/Analysis/

Análisis Específicos:

  • PanamaDailyEntryCommand.php
  • TraceInvoiceNumberFlow.php

🔄 Impacto en el Código

Laravel Auto-Discovery

Laravel automáticamente carga todos los comandos en subdirectorios de Commands/, por lo que NO se requieren cambios adicionales en: - app/Console/Kernel.php - routes/console.php - Configuración de servicios

Comandos Afectados en el Kernel

Los siguientes comandos que están en el Kernel scheduler no requieren cambios ya que Laravel usa las signatures de los comandos, no las rutas de archivos:

// Estos comandos siguen funcionando automáticamente
$schedule->command('word:correct-electronic-invoices-with-errors')->everyThirtyMinutes();
$schedule->command('word:update-invu-pos-module')->everyThirtyMinutes();
$schedule->command('word:update-lightspeed-module')->hourly();
// ... etc

✅ Beneficios de la Reorganización

1. Organización Lógica

  • Comandos agrupados por funcionalidad
  • Fácil navegación y mantenimiento
  • Estructura más escalable

2. Separación de Responsabilidades

  • Testing aislado en su propio directorio
  • Integraciones claramente separadas
  • Core del sistema identificable

3. Mejor Gestión de Desarrollo

  • Testing centralizado facilita QA
  • Integraciones agrupadas para mantenimiento
  • Configuración de BD separada para mayor cuidado

4. Escalabilidad

  • Fácil agregar nuevos comandos a la categoría correcta
  • Estructura preparada para crecimiento del sistema
  • Separación clara de concerns

🎯 Convenciones Establecidas

Nombres de Directorios:

  • Testing: Todo lo relacionado con pruebas y debug
  • Integrations: Conexiones con sistemas externos
  • POS: Sistemas de punto de venta e inventario
  • Core: Funcionalidades fundamentales del sistema
  • Maintenance: Limpieza y mantenimiento
  • Configuration: Cambios de estructura de BD
  • Analysis: Reportes y análisis específicos

Criterios de Clasificación:

  1. Propósito principal del comando
  2. Sistema externo si aplica (Zoho, Intuit, Lightspeed, etc.)
  3. Nivel de criticidad (Core vs utilidades)
  4. Frecuencia de uso (Testing vs Production)

📋 Lista de Verificación Post-Reorganización

  • Todos los comandos movidos a directorios apropiados
  • Auto-discovery funcional (Laravel carga automáticamente)
  • Kernel scheduler intacto (comandos por signature, no por path)
  • Estructura escalable preparada para nuevos comandos
  • Documentación actualizada con nueva estructura

🚀 Próximos Pasos Recomendados

  1. Actualizar documentación de desarrollo con nuevas convenciones
  2. Crear templates para cada tipo de comando en su directorio
  3. Establecer guías para determinar dónde colocar nuevos comandos
  4. Considerar subdirectorios en Testing si crece mucho (por sistema)

Reorganización completada: 31 de agosto de 2025
Total de comandos organizados: 92
Estructura: 7 directorios por tipo de operación
Estado: ✅ Funcional y escalable