Fix: Error "datosFacturaExportacion es requerido"
Problema Identificado
El PAC Alanube estaba devolviendo el error:
El campo datosFacturaExportacion es requerido
Causa Raíz
El PAC Alanube esperaba el campo datosFacturaExportacion al nivel raíz del JSON, pero DocuCenter estaba enviando el campo como exportation.
Análisis Técnico
-
Código Original:
php $dGen['exportation'] = $exportationData; -
Campo Esperado por PAC:
php $dGen['datosFacturaExportacion'] = $exportationData;
Solución Implementada
Archivos Modificados
app/Helpers/AlanubeFormatterHelper.php
Cambios Realizados
- Función formatForPanama() (línea ~268): ```php // ANTES $dGen['exportation'] = $exportationData;
// DESPUÉS $dGen['datosFacturaExportacion'] = $exportationData; ```
- Función formatForDominicana() (línea ~728): ```php // ANTES $dGen['exportation'] = $exportationData;
// DESPUÉS $dGen['datosFacturaExportacion'] = $exportationData; ```
Logging Mejorado
Se agregó logging detallado para tracking:
\Illuminate\Support\Facades\Log::info('[AlanubeFormatterHelper] Moved exportation to root level as datosFacturaExportacion', [
'exportation_moved' => 'YES',
'field_name' => 'datosFacturaExportacion',
'exportation_data' => $exportationData
]);
Impacto
✅ Resuelto
- Error "El campo datosFacturaExportacion es requerido" en facturas de exportación
- Compatibilidad con PAC Alanube para Panamá y República Dominicana
- Facturas de exportación (tipo 03) ahora se procesan correctamente
🔍 Estructura JSON Resultado
Antes del fix:
{
"information": {...},
"receiver": {...},
"exportation": {
"incoterm": "FOB",
"currency": "USD",
"exchangeRate": 1.0,
"amount": 1000.50,
"port": "Puerto de Balboa"
}
}
Después del fix:
{
"information": {...},
"receiver": {...},
"datosFacturaExportacion": {
"incoterm": "FOB",
"currency": "USD",
"exchangeRate": 1.0,
"amount": 1000.50,
"port": "Puerto de Balboa"
}
}
Testing
Scripts de Verificación
- docs/testing/test-datos-factura-exportacion-fix.php
- Test completo con datos de prueba
-
Verifica estructura JSON generada
-
docs/testing/verify-datos-factura-exportacion-fix.php
- Verificación rápida en código fuente
- Confirma que no hay código legacy
Ejecución de Tests
# Verificación del código fuente
php docs/testing/verify-datos-factura-exportacion-fix.php
# Test completo (requiere ambiente Laravel)
php docs/testing/test-datos-factura-exportacion-fix.php
Contexto de Desarrollo
Issues Relacionados
- Fix previo de preservación de datos de customer ✅
- Validación de moneda USD/PAB para Panamá ✅
- Error "datosFacturaExportacion es requerido" ✅
Proceso de Debug
- Búsqueda del campo en código fuente → No encontrado
- Análisis de logs PAC → Campo específico requerido
- Identificación en AlanubeFormatterHelper → Nombre incorrecto
- Fix aplicado en ambas funciones (Panamá y Dominicana)
- Testing y verificación → Confirmado
Mantenimiento
Puntos de Atención
- El PAC Alanube es sensible al nombre exacto de campos
- Mantener consistencia entre Panamá y República Dominicana
- Monitorear logs para validar funcionamiento
Futuras Mejoras
- Considerar configuración dinámica de nombres de campos por PAC
- Documentar especificaciones exactas de cada proveedor PAC
- Agregar validación previa al envío
Commits
fix: corregir nombre de campo datosFacturaExportacion para PAC Alanubefix: corregir campo datosFacturaExportacion para República Dominicana y agregar tests
Estado: ✅ RESUELTO
Fecha: 2025-01-27
Responsable: DocuCenter AI Assistant