Scripts de Testing para QuickBooks Integration
Scripts de prueba completos para validar la integración con QuickBooks Online, específicamente el sistema de cálculo de impuestos ITBMS.
📋 Scripts Disponibles
1. test-qb-tax-validation.php
Propósito: Validación simplificada de cálculos de impuestos
Uso: php docs/testing/test-qb-tax-validation.php
Descripción: Valida diferentes escenarios de impuestos (7%, 10%, 0%) y analiza objetos QB reales.
2. test-qb-tax-real-data.php
Propósito: Prueba con datos reales de QuickBooks
Uso: php docs/testing/test-qb-tax-real-data.php
Descripción: Procesa datos QB reales usando QuickBooksOnlineService y valida cálculos precisos.
3. test-qb-online-service.php
Propósito: Prueba específica del QuickBooksOnlineService
Uso: php docs/testing/test-qb-online-service.php
Descripción: Valida el almacenamiento correcto usando el mismo patrón que SendSaleToQuickBooksJob.
4. test-qb-request-processing.php
Propósito: Validación del CreateSaleQuickBooksRequest
Uso: php docs/testing/test-qb-request-processing.php
Descripción: Verifica que no se pierdan datos durante el procesamiento del form request.
5. test-qb-invoice-creation-flow.php
Propósito: Flujo completo de creación de facturas
Uso: php docs/testing/test-qb-invoice-creation-flow.php
Descripción: Prueba end-to-end que crea facturas en DocuCenter y las envía a QuickBooks.
6. test-qb-direct-api.php
Propósito: Prueba directa de API QuickBooks
Uso: php docs/testing/test-qb-direct-api.php
Descripción: Bypasea el CUFE requirement para testing directo de la API.
7. test-qb-flow.sh
Propósito: Script bash para testing rápido
Uso: ./docs/testing/test-qb-flow.sh [organization_id]
Descripción: Ejecuta múltiples validaciones QB con un solo comando.
8. test-intuit-tax-codes.php 🆕
Propósito: Testing de códigos de impuesto en UpdateIntuitOrdersJob
Uso: docker exec -it docucenter_laravel.test php docs/testing/test-intuit-tax-codes.php
Descripción: Valida la función determineTaxCode con múltiples escenarios de tasas ITBMS.
🎯 Casos de Uso
Testing Básico de Impuestos
# Validación rápida de cálculos
php docs/testing/test-qb-tax-validation.php
Testing con Datos Reales
# Procesar datos QB reales
php docs/testing/test-qb-tax-real-data.php
Testing Completo del Flujo
# Flujo completo interactivo
php docs/testing/test-qb-invoice-creation-flow.php
# O usando el script bash
./docs/testing/test-qb-flow.sh 2
Debugging de Form Request
# Verificar preservación de datos
php docs/testing/test-qb-request-processing.php
🔧 Configuración Requerida
Variables de Entorno
# Opcional: Para pruebas reales de API
ACI_EMAIL=tu_email@ejemplo.com
ACI_PASSWORD=tu_password
# Requeridas: Configuración de BD
DB_DATABASE=nombre_bd_principal
Datos de Prueba
- Organization ID: Por defecto usa
2, cambiar según necesidad - Conexión QB: Debe existir conexión
acicloudpara la organización - Items QB: Scripts usan item ID
48(PUBLICIDAD EN PANTALLAS) - Cliente QB: Scripts usan cliente ID
1440(ANUAR MATA)
📊 Resultados Esperados
Cálculos de Impuestos Correctos
- Subtotal: $100.00
- Impuesto 7% ITBMS: $7.00
- Total: $107.00
Estados de Validación
- ✅ CORRECTO: Cálculos coinciden con valores esperados
- ❌ INCORRECTO: Discrepancias en cálculos (problema identificado)
🚀 Resolución de Problemas
Problema Original
Síntoma: Impuestos se almacenaban como $0.00 en lugar de $7.00
Causa: Campos planos QB (TaxAmount: 0) sobrescribían valores anidados correctos
Solución: Enhanced CreateSaleQuickBooksRequest y QuickBooksOnlineService
Scripts de Diagnóstico
- test-qb-request-processing.php - Verificar pérdida de datos
- test-qb-tax-real-data.php - Validar cálculos con datos reales
- test-qb-online-service.php - Confirmar almacenamiento correcto
📝 Notas de Implementación
Datos QB Multi-Fuente
Los scripts validan múltiples fuentes de datos fiscales:
- TaxCode.rateValue (prioridad alta)
- TaxAmount (si > 0)
- TaxLineDetail.TaxPercent
- Campos planos (fallback)
Preservación de Campos
Lista de campos QB protegidos en validación:
- Invoice level: Id, DocNumber, TotalAmt, Balance
- Line items: Amount, DetailType, SalesItemLineDetail
- Tax fields: TotalTax, TaxLine, TaxCode, rateValue
🔄 Flujo de Testing Recomendado
- Validación Básica:
test-qb-tax-validation.php - Datos Reales:
test-qb-tax-real-data.php - Flujo Completo:
test-qb-invoice-creation-flow.php - Diagnóstico:
test-qb-request-processing.php(si hay problemas)
🎉 Estado Actual
✅ RESUELTO: Los impuestos ITBMS se calculan y almacenan correctamente
✅ VALIDADO: Scripts confirman funcionalidad end-to-end
✅ DOCUMENTADO: Casos de uso y procedimientos completos
Todos los scripts están listos para uso en testing y debugging de la integración QuickBooks.