diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..1a9cc72 --- /dev/null +++ b/.env.example @@ -0,0 +1,35 @@ +# Copiar este archivo como ".env" (en la misma carpeta que main.py) y completar +# con los valores reales. ".env" nunca debe subirse a git (ya está en .gitignore). + +# --- Correo / carpetas del pipeline --- +EMAIL = correo@dominio.com +DOWNLOAD_FOLDER = adjuntos +OUTPUT_FOLDER = resultado + +# --- Ruta de red de Facturación Electrónica (ver pipeline._copiar_a_red) --- +RUTA_RED_FACTURACION = \\servidor\ruta\a\Facturacion Electronica\PRODUCCION +RUC_EMPRESA = 00000000000 + +# --- SAP Business One Service Layer --- +SAP_B1_URL = https://servidor:50000/b1s/v1 +SAP_B1_COMPANY = +SAP_B1_USER = +SAP_B1_PASSWORD = +SAP_B1_VERIFY_SSL = false +SAP_B1_TIMEOUT = 15 + +# --- SAP HANA (fallback de consultas, ver hana_manager.py) --- +HANA_SERVER = +HANA_PORT = 30015 +HANA_USER = +HANA_PASSWORD = +HANA_SCHEMA = + +# --- Microsoft Graph / Outlook (MSAL, app registration en Azure AD) --- +CLIENT_ID = +CLIENT_SECRET = +TENANT_ID = +VERIFY_SSL = false + +# --- Logging (ver logger_manager.py). Opcional, por defecto INFO --- +LOG_LEVEL = INFO diff --git a/consulta_rapida.py b/consulta_rapida.py old mode 100755 new mode 100644 index 4f20915..2da58b4 --- a/consulta_rapida.py +++ b/consulta_rapida.py @@ -11,7 +11,7 @@ from datetime import datetime, timedelta from dotenv import load_dotenv import database_utilities -import logger_utilities +import logger_manager from pipeline import _procesar_un_correo, step_authenticate @@ -45,13 +45,14 @@ def get_email_by_id(user_email: str, token: str, message_id: str) -> dict | None # PIPELINE PARA IDS # ============================================================================ def run_pipeline_for_ids(ids: list[str]) -> None: - load_dotenv(dotenv_path=".env.dev") + # Ruta absoluta: no depende del directorio de trabajo desde el que se lance el proceso + load_dotenv(dotenv_path=os.path.join(os.path.dirname(__file__), ".env")) email_addr = os.getenv("EMAIL", "") download_folder = os.getenv("DOWNLOAD_FOLDER", "adjuntos") output_folder = os.getenv("OUTPUT_FOLDER", "resultado") if not email_addr: - print("❌ EMAIL no configurado en .env.dev") + print("❌ EMAIL no configurado en .env") return database_utilities.init_db() @@ -96,13 +97,12 @@ if __name__ == "__main__": print(f"\n📋 Set: {args.set} — {descripcion}") print(f" IDs a procesar: {len(ids)}") - log_path = logger_utilities.setup_logger() - logger_utilities.limpiar_logs_antiguos(dias=30) + logger_manager.setup_logging() inicio = datetime.now() print("\n" + "=" * 60) print(f"🚀 INICIO DE EJECUCIÓN: {inicio.strftime('%Y-%m-%d %H:%M:%S')}") - print(f"📄 Log guardado en: {log_path}") + print(f"📄 Log guardado en: {logger_manager.LOG_FILE}") print("=" * 60) run_pipeline_for_ids(ids) diff --git a/database_utilities.py b/database_utilities.py index 180a507..2418488 100644 --- a/database_utilities.py +++ b/database_utilities.py @@ -12,22 +12,24 @@ def init_db() -> None: Inicializa la base de datos SQLite y crea la tabla de correos si no existe. """ conn = sqlite3.connect(DB_NAME) - cursor = conn.cursor() - - # Crear tabla con id como llave primaria para evitar duplicados - cursor.execute(''' - CREATE TABLE IF NOT EXISTS emails ( - id TEXT PRIMARY KEY, - fecha TEXT, - sender TEXT, - subject TEXT, - has_attach INTEGER, - fecha_descarga TEXT - ) - ''') - - conn.commit() - conn.close() + try: + cursor = conn.cursor() + + # Crear tabla con id como llave primaria para evitar duplicados + cursor.execute(''' + CREATE TABLE IF NOT EXISTS emails ( + id TEXT PRIMARY KEY, + fecha TEXT, + sender TEXT, + subject TEXT, + has_attach INTEGER, + fecha_descarga TEXT + ) + ''') + + conn.commit() + finally: + conn.close() # ============================================================================ def save_emails(emails_list: list[dict]) -> int: @@ -39,35 +41,36 @@ def save_emails(emails_list: list[dict]) -> int: return 0 conn = sqlite3.connect(DB_NAME) - cursor = conn.cursor() - - from datetime import datetime - fecha_ahora = datetime.now().strftime("%Y-%m-%d %H:%M:%S") - - # Mapear lista de diccionarios a tuplas para executemany - # has_attach se guarda como 1 (True) o 0 (False) - data = [ - ( - e['id'], - e['fecha'], - e['sender'], - e['subject'], - 1 if e['has_attach'] else 0, - fecha_ahora - ) - for e in emails_list - ] - - # INSERT OR IGNORE evita errores si el ID ya existe - cursor.executemany(''' - INSERT OR IGNORE INTO emails (id, fecha, sender, subject, has_attach, fecha_descarga) - VALUES (?, ?, ?, ?, ?, ?) - ''', data) - - conn.commit() - rows_affected = cursor.rowcount - conn.close() - return rows_affected + try: + cursor = conn.cursor() + + from datetime import datetime + fecha_ahora = datetime.now().strftime("%Y-%m-%d %H:%M:%S") + + # Mapear lista de diccionarios a tuplas para executemany + # has_attach se guarda como 1 (True) o 0 (False) + data = [ + ( + e['id'], + e['fecha'], + e['sender'], + e['subject'], + 1 if e['has_attach'] else 0, + fecha_ahora + ) + for e in emails_list + ] + + # INSERT OR IGNORE evita errores si el ID ya existe + cursor.executemany(''' + INSERT OR IGNORE INTO emails (id, fecha, sender, subject, has_attach, fecha_descarga) + VALUES (?, ?, ?, ?, ?, ?) + ''', data) + + conn.commit() + return cursor.rowcount + finally: + conn.close() # ============================================================================ def get_existing_ids(ids_list: list[str]) -> list[str]: @@ -78,19 +81,21 @@ def get_existing_ids(ids_list: list[str]) -> list[str]: return [] conn = sqlite3.connect(DB_NAME) - cursor = conn.cursor() - - existing_ids = [] - # Procesar por lotes para evitar límites de parámetros en SQLite - for i in range(0, len(ids_list), 900): - chunk = ids_list[i:i + 900] - placeholders = ','.join(['?'] * len(chunk)) - query = f"SELECT id FROM emails WHERE id IN ({placeholders})" - cursor.execute(query, chunk) - existing_ids.extend([row[0] for row in cursor.fetchall()]) - - conn.close() - return existing_ids + try: + cursor = conn.cursor() + + existing_ids = [] + # Procesar por lotes para evitar límites de parámetros en SQLite + for i in range(0, len(ids_list), 900): + chunk = ids_list[i:i + 900] + placeholders = ','.join(['?'] * len(chunk)) + query = f"SELECT id FROM emails WHERE id IN ({placeholders})" + cursor.execute(query, chunk) + existing_ids.extend([row[0] for row in cursor.fetchall()]) + + return existing_ids + finally: + conn.close() # ============================================================================ def delete_email_by_id(email_id: str) -> bool: @@ -102,15 +107,11 @@ def delete_email_by_id(email_id: str) -> bool: return False conn = sqlite3.connect(DB_NAME) - cursor = conn.cursor() - - cursor.execute("DELETE FROM emails WHERE id = ?", (email_id,)) - - conn.commit() - rows_affected = cursor.rowcount - conn.close() - - return rows_affected > 0 -# ============================================================================ -if __name__ == "__main__": - delete_email_by_id("AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAtOXesAAA=") \ No newline at end of file + try: + cursor = conn.cursor() + cursor.execute("DELETE FROM emails WHERE id = ?", (email_id,)) + conn.commit() + return cursor.rowcount > 0 + finally: + conn.close() +# ============================================================================ \ No newline at end of file diff --git a/docs/construir_draft.mkd b/docs/construir_draft.mkd index 1f5e261..527b8b2 100644 --- a/docs/construir_draft.mkd +++ b/docs/construir_draft.mkd @@ -3,7 +3,9 @@ ```mermaid flowchart TD A["factura + resultados_val"] --> B["Determinar ItemCode
C103002-A (mes anterior)
C103002 (mes actual)"] - B --> C["Calcular cuotas
DocumentInstallments"] + B --> B2["CardCode = PL + ruc_emisor
sapb1_manager.obtener_condicion_pago(CardCode)
(BusinessPartners.PayTermsGrpCode → PaymentTermsTypes)"] + B2 --> B3["fecha_vencimiento = fecha_contabilizacion +
NumberOfAdditionalDays
(si es 0, usar NumberOfAdditionalMonths * 30)"] + B3 --> C["Calcular cuotas
DocumentInstallments"] C --> D{"¿Tiene detracción?"} D -->|Sí| E["Cuota 1: monto detracción
U_VS_TIPOCUOTA = D"] @@ -27,7 +29,7 @@ flowchart TD K --> P["U_IDC_VALREF =
round((total_weight / 1000) *
CUADRO_VALOR_REFERENCIAL[zona], 2)"] P --> Q["Armar payload completo"] - Q --> R["Cabecera:
DocType, CardCode, NumAtCard,
DocDate, DocDueDate,
U_IDC_NUMGR, Comments"] + Q --> R["Cabecera:
DocType, CardCode, NumAtCard,
DocDate = fecha_contabilizacion,
DocDueDate = fecha_vencimiento,
U_IDC_NUMGR, Comments"] R --> S["DocumentLines[] +
DocumentInstallments[]"] S --> T["← Retornar dict para
POST /Drafts"] ``` diff --git a/docs/inventario.md b/docs/inventario.md index 8cc9e07..7e1b325 100644 --- a/docs/inventario.md +++ b/docs/inventario.md @@ -5,16 +5,16 @@ | Archivo | Líneas | Rol | |---------|--------|-----| | `main.py` | 134 | Demonio orquestador (loop de horarios) | -| `pipeline.py` | 957 | Pipeline core (procesar un correo completo) | -| `sunat_schema.py` | 521 | Parseo de XML SUNAT (Invoice, DespatchAdvice) | -| `pdf_utilities.py` | 450 | Parseo de PDFs (factura, guías) | -| `sapb1_manager.py` | 322 | Comunicación con SAP B1 Service Layer | -| `outlook_utilities.py` | 228 | Comunicación con Microsoft Graph | -| `hana_manager.py` | 126 | Comunicación con SAP HANA directa | -| `database_utilities.py` | 114 | SQLite local (cache de correos) | -| `consulta_rapida.py` | 115 | Script auxiliar para reprocesar correos por ID | -| `email_utilities.py` | 93 | Utilitarios de adjuntos (ZIP, filtrado) | -| `logger_utilities.py` | 72 | Logging a archivo + consola | +| `pipeline.py` | 1284 | Pipeline core (procesar un correo completo) | +| `sunat_schema.py` | 720 | Parseo de XML SUNAT (Invoice, DespatchAdvice) | +| `pdf_utilities.py` | 464 | Parseo de PDFs (factura, guías) | +| `sapb1_manager.py` | 321 | Comunicación con SAP B1 Service Layer | +| `outlook_utilities.py` | 234 | Comunicación con Microsoft Graph | +| `hana_manager.py` | 123 | Comunicación con SAP HANA directa (fallback de `sapb1_manager` y valor referencial) | +| `database_utilities.py` | 116 | SQLite local (cache de correos) | +| `consulta_rapida.py` | 113 | Script auxiliar para reprocesar correos por ID | +| `email_utilities.py` | 52 | Utilitarios de adjuntos (ZIP, filtrado) | +| `logger_manager.py` | 149 | Logging a archivo rotado (30 días) + consola + captura de `print()` | --- @@ -22,15 +22,21 @@ ``` main.py + ├── logger_manager.py └── pipeline.py ├── sunat_schema.py ├── pdf_utilities.py ├── sapb1_manager.py │ └── hana_manager.py + ├── hana_manager.py (valor referencial, Sp_ObtenerValorReferencial) ├── outlook_utilities.py ├── email_utilities.py - │ └── database_utilities.py └── database_utilities.py + +consulta_rapida.py + ├── logger_manager.py + ├── database_utilities.py + └── pipeline.py (_procesar_un_correo, step_authenticate) ``` --- @@ -50,13 +56,21 @@ main() ├── _procesar_pdfs() → pdf_cache │ └── pdf_utilities.extraer_datos_pdf() ├── _procesar_xmls(pdf_cache) → documentos[] - │ └── sunat_schema.extraer_datos_xml() + │ ├── sunat_schema.extraer_datos_xml() + │ └── _copiar_a_red() → copia PDF/XML a ruta de red (RUTA_RED_FACTURACION) + ├── _completar_guias(documentos, pdf_cache) → completa guías faltantes desde PDF + ├── _validar_guias(documentos) → advierte guías con datos incompletos ├── _guardar_resultado(documentos) ├── _validate_prices(factura) → (ok, resultados) │ └── sapb1_manager.get_delivery_notes() │ ├── SL (Service Layer) GET /DeliveryNotes - │ └── HANA fallback (get_delivery) - ├── _build_sap_draft(factura, resultados) → draft + │ ├── HANA fallback (get_delivery: ODLN, luego OWTR) + │ └── si vino de OWTR: GET StockTransfers(DocEntry) + │ → U_IDC_NUMOV → GET Orders(U_IDC_NUMOV) + ├── _obtener_valor_referencial_sap(factura) → guias_valor_ref + │ └── hana_manager.obtener_valor_referencial() (Sp_ObtenerValorReferencial) + ├── _build_sap_draft(factura, resultados) → draft (incluye U_VS_ANEXO_PDF/XML) + │ └── sapb1_manager.obtener_condicion_pago(CardCode) → DocDueDate ├── _guardar_draft_json(draft) ├── sapb1_manager.create_draft(draft) └── outlook_utilities.send_email(notificación) @@ -75,21 +89,47 @@ main() | 5 | `.env.dev` vs `.env` inconsistente | `sapb1_manager.py` | ✅ Corregido | | 6 | `HANA_HOST` vs `HANA_SERVER` en `.env` | `hana_manager.py` | ✅ Corregido | | 7 | Columna `Cancelled` vs `CANCELED` en HANA | `hana_manager.py` | ✅ Corregido | +| 8 | Bloque `if __name__ == "__main__"` borraba un correo real de la BD al ejecutar el módulo directo | `database_utilities.py` | ✅ Corregido | +| 9 | `extraer_datos_xml` solo procesaba guías tipo `31`; tipo `09` (remitente) se descartaba pese a estar documentado | `sunat_schema.py` | ✅ Corregido | +| 10 | `DatosComprobante.__str__` usaba `ref.id` (campo que ya no existe en `DocumentoReferencia`) | `sunat_schema.py` | ✅ Corregido | +| 11 | Log de error HTTP con `print("%s", ...)` no interpolaba el mensaje | `sapb1_manager.py` | ✅ Corregido | +| 12 | Fuga de conexión HANA si `cursor()` fallaba (quedaba fuera del `try`) | `hana_manager.py` | ✅ Corregido | +| 13 | `razon_social_emisor` se llenaba con el nombre del receptor en el JSON de depuración del PDF | `pipeline.py` | ✅ Corregido | +| 14 | Typo `VERIFI_SSL` en vez de `VERIFY_SSL` | `outlook_utilities.py` / `.env` | ✅ Corregido | +| 15 | Conexiones SQLite sin `try/finally` (fuga si fallaba una consulta a mitad de camino) | `database_utilities.py` | ✅ Corregido | +| 16 | Código muerto sin llamadores (`quitar_correos_ya_registrados_en_base_de_datos`, `procesar_adjuntos_email`) | `email_utilities.py` | ✅ Corregido (eliminado) | +| 17 | `logger_utilities.py` (redirección global de stdout, sin niveles ni rotación real) reemplazado por `logger_manager.py` (logging estándar, rotación diaria 30 días, captura de `print()`) | `logger_manager.py` | ✅ Corregido | +| 18 | `task()`/`last_task()` de `logger_manager.py` no devolvían el sub-logger (`with ... as sub` daba siempre `None`) | `logger_manager.py` | ✅ Corregido | +| 19 | `DOWNLOAD_FOLDER` duplicado en `.env` | `.env` | ✅ Corregido | +| 20 | Guías tipo `09` no se encontraban si el documento estaba en `OWTR` (Traslado de Inventario) en vez de `ODLN` | `hana_manager.py` | ✅ Corregido (fallback ODLN → OWTR) | +| 21 | Parámetros `tipo`/`serie` cruzados al llamar `get_delivery`/`get_delivery_notes` (mapeaban al revés a `U_BPP_MDSD`/`U_BPP_MDTD`) | `hana_manager.py`, `sapb1_manager.py`, `pipeline.py` | ✅ Corregido (orden natural `tipo, serie, numero`) | +| 22 | `StockTransfers` (OWTR) no tiene líneas `FL*`, por lo que la validación de precios fallaba siempre para esas guías | `sapb1_manager.py` | ✅ Corregido (resuelve la Orden de Venta vía `U_IDC_NUMOV` y valida contra `Orders(DocEntry)`) | +| 23 | `DocDueDate` del draft usaba `fecha_emision` del XML, sin considerar la condición de pago del proveedor | `pipeline.py`, `sapb1_manager.py` | ✅ Corregido (`DocDueDate` = fecha de contabilización + días de `PaymentTermsTypes`) | +| 24 | Patrón regex de valor referencial no reconocía la variante truncada "VALOR REFER" (ej. "VALOR REFER:S/ 1431.16") | `sunat_schema.py` | ✅ Corregido | --- ## Funciones internas en `_procesar_un_correo` (pipeline.py) +> Nota: `_ruta_carpeta` y `_copiar_a_red` son helpers a nivel de módulo (no anidados en `_procesar_un_correo`); el resto son funciones anidadas dentro de `_procesar_un_correo` (líneas 142-1304). + | Función | Líneas | Propósito | |---------|--------|-----------| -| `_descargar_adjuntos` | 107-134 | Descarga adjuntos vía Graph API | -| `_descomprimir` | 136-149 | Descomprime ZIPs | -| `_filtrar_y_limpiar` | 151-191 | Filtra PDF/XML, elimina el resto | -| `_procesar_pdfs` | 193-246 | Extrae datos de PDFs, renombra, genera cache | -| `_procesar_xmls` | 248-377 | Procesa XMLs, cruza con PDF, asigna guías | -| `_guardar_resultado` | 379-408 | Guarda JSON con datos extraídos | -| `_build_sap_draft` | 410-569 | Construye payload del draft SAP B1 | -| `_validate_prices` | 571-745 | Valida precios contra DeliveryNotes SAP | -| `_build_validation_html` | 747-775 | Genera tabla HTML para notificación | -| `_build_notification_body` | 777-814 | Arma cuerpo del email de notificación | -| `_guardar_draft_json` | 816-842 | Guarda draft JSON para depuración | +| `_ruta_carpeta` (módulo) | 33-34 | Resuelve una ruta relativa al directorio del script | +| `_copiar_a_red` (módulo) | 37-94 | Copia PDF/XML a la ruta de red de Facturación Electrónica (`RUTA_RED_FACTURACION`) | +| `_descargar_adjuntos` | 169-196 | Descarga adjuntos vía Graph API | +| `_descomprimir` | 198-211 | Descomprime ZIPs | +| `_filtrar_y_limpiar` | 213-253 | Filtra PDF/XML, elimina el resto | +| `_procesar_pdfs` | 255-308 | Extrae datos de PDFs, renombra, genera cache | +| `_procesar_xmls` | 310-463 | Procesa XMLs, cruza con PDF, asigna guías, copia a red | +| `_completar_guias` | 465-522 | Completa guías faltantes en líneas XML desde el PDF cache | +| `_validar_guias` | 524-532 | Advierte (log) guías con datos incompletos | +| `_guardar_resultado` | 534-653 | Guarda JSON con datos extraídos (XML y PDF) | +| `_calcular_fecha_vencimiento` | 665-692 | Calcula `DocDueDate` = fecha de contabilización + días de la condición de pago (`PaymentTermsTypes`) | +| `_build_sap_draft` | 694-855 | Construye payload del draft SAP B1 | +| `_validate_prices` | 856-1030 | Valida precios contra DeliveryNotes / Orders (SAP) | +| `_build_validation_html` | 1032-1061 | Genera tabla HTML de validación de precios | +| `_obtener_valor_referencial_sap` | 1062-1090 | Consulta `Sp_ObtenerValorReferencial` en HANA por guía | +| `_build_valor_referencial_html` | 1091-1126 | Genera tabla HTML comparando valor referencial XML vs SAP | +| `_build_notification_body` | 1127-1168 | Arma cuerpo del email de notificación | +| `_guardar_draft_json` | 1169-1195 | Guarda draft JSON para depuración | diff --git a/docs/main.md b/docs/main.md index 0dec9b5..5ea6b3f 100644 --- a/docs/main.md +++ b/docs/main.md @@ -4,11 +4,11 @@ ``` main.py -├── Constantes: HORARIOS (4 bloques horarios) +├── Constantes: HORARIOS (5 bloques horarios) ├── obtener_intervalo(dt) → (intervalo, modo) | None ├── segundos_hasta_proximo_inicio(dt) → int ├── non_negative_int(value) → int (validador argparse) -└── main() → None +└── main() → None (bucle infinito envuelto en try/except KeyboardInterrupt) ``` ## Proceso de `main()` @@ -17,7 +17,8 @@ main.py flowchart TD A[Inicio main] --> B[Parsear args --dias] B --> C[Cargar .env → EMAIL, DOWNLOAD_FOLDER, OUTPUT_FOLDER] - C --> D{Bucle infinito} + C --> Z[try:] + Z --> D{Bucle infinito} D --> E[inicio_ciclo = datetime.now] E --> F[obtener_intervalo inicio_ciclo] @@ -37,6 +38,8 @@ flowchart TD O --> P[Log próxima ejecución] P --> N + D -. KeyboardInterrupt .-> Q[🛑 Demonio detenido por el usuario] + classDef highlight fill:#fff3e0,stroke:#e65100,stroke-width:3px; ``` @@ -49,26 +52,29 @@ main() │ ├── 2. Cargar .env → EMAIL, DOWNLOAD_FOLDER, OUTPUT_FOLDER │ -├── 3. LOOP INFINITO (while True): -│ │ -│ ├── 3.1. inicio_ciclo = datetime.now() -│ │ -│ ├── 3.2. resultado = obtener_intervalo(inicio_ciclo) -│ │ │ -│ ├── ¿Sí está en horario? -│ │ │ -│ │ ├── Extraer (intervalo, modo) -│ │ ├── run_pipeline(dias, EMAIL, DOWNLOAD_FOLDER, OUTPUT_FOLDER) -│ │ ├── Calcular duración real del ciclo -│ │ ├── ⚠️ Si duración > intervalo → warning -│ │ └── dormir = max(0, intervalo - duración) -│ │ -│ └── ¿No está en horario? +├── 3. try: +│ └── LOOP INFINITO (while True): │ │ -│ ├── dormir = segundos_hasta_proximo_inicio() (06:30 del día siguiente) -│ └── Log "Fuera del horario, próxima ejecución en..." +│ ├── 3.1. inicio_ciclo = datetime.now() +│ │ +│ ├── 3.2. resultado = obtener_intervalo(inicio_ciclo) +│ │ │ +│ ├── ¿Sí está en horario? +│ │ │ +│ │ ├── Extraer (intervalo, modo) +│ │ ├── run_pipeline(dias, EMAIL, DOWNLOAD_FOLDER, OUTPUT_FOLDER) +│ │ ├── Calcular duración real del ciclo +│ │ ├── ⚠️ Si duración > intervalo → warning +│ │ └── dormir = max(0, intervalo - duración) +│ │ +│ └── ¿No está en horario? +│ │ +│ ├── dormir = segundos_hasta_proximo_inicio() (06:30 del día siguiente) +│ └── Log "Fuera del horario, próxima ejecución en..." +│ │ +│ └── 3.3. time.sleep(dormir) → vuelve a 3.1 │ -└── 4. time.sleep(dormir) → vuelve a 3.1 +└── except KeyboardInterrupt: 🛑 "Demonio detenido por el usuario" (sin traceback) ``` ## Bloques horarios definidos @@ -79,14 +85,18 @@ main() | 13:15 | 14:00 | 1800s | full | | 14:00 | 18:30 | 300s | rápido | | 18:30 | 21:30 | 3600s | full | +| 00:00 | 05:00 | 60s | rápido | -Fuera de ese rango → duerme hasta las 06:30 del día siguiente. +Nota: entre las 21:30 y las 00:00, y entre las 05:00 y las 06:30, ningún bloque cubre esos minutos. En esos huecos `obtener_intervalo()` devuelve `None` y `segundos_hasta_proximo_inicio()` calcula el tiempo de espera hasta las 06:30 del día siguiente (no hasta el bloque de las 00:00), por lo que el demonio se queda dormido hasta las 06:30 aunque exista un bloque configurado a las 00:00. -## Entry point (línea 121-130) +## Entry point (línea 126-134) ``` if __name__ == "__main__": - 1. logger_utilities.setup_logger() - 2. logger_utilities.limpiar_logs_antiguos(dias=30) + 1. logger_manager.setup_logging() + └── Configura logging a archivo rotado (logs/descarga_factura_transporte.log, + rotación diaria, 30 días de historial) + consola, y redirige print()/stderr + al mismo log (no hace falta migrar cada print a logger.info). + 2. print(...) banner de inicio, incluyendo logger_manager.LOG_FILE 3. main() ``` diff --git a/docs/pipeline.md b/docs/pipeline.md index dffe07d..4425490 100644 --- a/docs/pipeline.md +++ b/docs/pipeline.md @@ -4,11 +4,11 @@ ``` pipeline.py -├── CONSTANTES: CUADRO_VALOR_REFERENCIAL -├── HELPERS: _ruta_carpeta() +├── CONFIG: RUTA_RED_FACTURACION, RUC_EMPRESA (desde .env) +├── HELPERS: _ruta_carpeta(), _copiar_a_red(data, _log) ├── PASO 1: step_authenticate() → token | None ├── PASO 2: step_fetch_emails() → list[dict] -├── _procesar_un_correo() → None (core) +├── _procesar_un_correo() → None (core, funciones anidadas) └── run_pipeline() → None ``` @@ -51,44 +51,75 @@ flowchart TD I -- No --> C I -- Sí --> J[6. _procesar_pdfs]:::highlight J --> K[7. _procesar_xmls]:::highlight - K --> L{Hay documentos?} + K --> K2[8. _completar_guias] + K2 --> K3[9. _validar_guias] + K3 --> L{Hay documentos?} L -- No --> C - L -- Sí --> M[8. _guardar_resultado] - M --> N[9. Filtrar facturas tipo 01] + L -- Sí --> M[10. _guardar_resultado] + M --> N[11. Filtrar facturas tipo 01] N --> O{Hay facturas?} O -- No --> C O -- Sí --> P[Bucle: por cada factura] - P --> Q[10. _validate_prices]:::highlight - Q --> R[11. _build_sap_draft]:::highlight - R --> S[12. _guardar_draft_json] + P --> Q[12. _validate_prices]:::highlight + Q --> Q2[12.5 _obtener_valor_referencial_sap] + Q2 --> R[13. _build_sap_draft]:::highlight + R --> S[14. _guardar_draft_json] S --> T{Todas coinciden?} - T -- Sí --> U[13. sapb1_manager.create_draft] + T -- Sí --> U[15. sapb1_manager.create_draft] T -- No --> V[⏭️ Draft NO creado] - U --> W[14. outlook_utilities.send_email] + U --> W[16. outlook_utilities.send_email] V --> W W --> P classDef highlight fill:#fff3e0,stroke:#e65100,stroke-width:3px; ``` +`_procesar_xmls` (paso 7) incluye internamente la copia de PDF/XML a la ruta de red (`_copiar_a_red`, ver más abajo) por cada comprobante procesado. + --- ## Funciones internas de `_procesar_un_correo` +> `_ruta_carpeta` y `_copiar_a_red` están definidas a nivel de módulo (no anidadas); el resto son funciones anidadas dentro de `_procesar_un_correo`. + | Función | Línea | Propósito | |---------|-------|-----------| -| `_descargar_adjuntos()` | 107 | Descarga adjuntos vía Microsoft Graph | -| `_descomprimir()` | 136 | Descomprime archivos ZIP | -| `_filtrar_y_limpiar()` | 151 | Filtra solo PDF/XML, elimina el resto | -| **`_procesar_pdfs()`** | **193** | **Extrae datos de PDFs, renombra, genera cache** | -| **`_procesar_xmls(pdf_cache)`** | **248** | **Procesa XMLs, cruza con PDF, asigna guías** | -| `_guardar_resultado(documentos)` | 372 | Guarda JSON con datos extraídos | -| **`_build_sap_draft(factura, resultados_val)`** | **403** | **Construye payload del draft SAP B1** | -| **`_validate_prices(factura)`** | **564** | **Valida precios contra DeliveryNotes SAP** | -| `_build_validation_html(resultados)` | 741 | Genera tabla HTML para notificación | -| `_build_notification_body(status, factura, validation_table)` | 771 | Arma cuerpo del email de notificación | -| `_guardar_draft_json(draft, serie, numero)` | 810 | Guarda draft JSON para depuración | +| `_ruta_carpeta()` (módulo) | 33 | Resuelve una ruta relativa al directorio del script | +| `_copiar_a_red(data, _log)` (módulo) | 37 | Copia PDF/XML de un comprobante a la ruta de red configurable | +| `_descargar_adjuntos()` | 169 | Descarga adjuntos vía Microsoft Graph | +| `_descomprimir()` | 198 | Descomprime archivos ZIP | +| `_filtrar_y_limpiar()` | 213 | Filtra solo PDF/XML, elimina el resto | +| **`_procesar_pdfs()`** | **255** | **Extrae datos de PDFs, renombra, genera cache** | +| **`_procesar_xmls(pdf_cache)`** | **310** | **Procesa XMLs, cruza con PDF, asigna guías, copia a red** | +| `_completar_guias(documentos, pdf_cache)` | 465 | Completa guías faltantes en líneas XML desde el PDF cache | +| `_validar_guias(documentos)` | 524 | Advierte (log) guías con datos incompletos (falta tipo/serie/numero) | +| `_guardar_resultado(documentos, datos_pdf)` | 534 | Guarda JSON con datos extraídos (XML y PDF) | +| `_calcular_fecha_vencimiento(fecha_base, condicion_pago)` | 665 | Calcula `DocDueDate` = fecha de contabilización + días de `PaymentTermsTypes` | +| **`_build_sap_draft(factura, resultados_val)`** | **694** | **Construye payload del draft SAP B1 (incluye `U_VS_ANEXO_PDF`/`U_VS_ANEXO_XML`, `DocDueDate` por condición de pago)** | +| **`_validate_prices(factura)`** | **856** | **Valida precios contra DeliveryNotes/Orders SAP** | +| `_build_validation_html(resultados)` | 1032 | Genera tabla HTML de validación de precios | +| `_obtener_valor_referencial_sap(factura)` | 1062 | Consulta `Sp_ObtenerValorReferencial` en HANA por cada guía única | +| `_build_valor_referencial_html(factura, guias_valor_ref)` | 1091 | Genera tabla HTML comparando valor referencial XML vs SAP | +| `_build_notification_body(status, factura, validation_table, valor_referencial_table, **kwargs)` | 1127 | Arma cuerpo del email de notificación | +| `_guardar_draft_json(draft, serie, numero)` | 1169 | Guarda draft JSON para depuración | + +--- + +## `_copiar_a_red(data, _log)` — Copia a ruta de red + +Copia el PDF y el XML de cada comprobante procesado a una ruta de red UNC configurable, en paralelo al guardado local existente (no lo reemplaza). No falla el pipeline si la ruta no está configurada o no está disponible: solo registra una advertencia. + +- **Configuración** (`.env`): `RUTA_RED_FACTURACION` (ruta base UNC) y `RUC_EMPRESA` (RUC fijo de Aberio). +- **Estructura de destino**: + ``` + {RUTA_RED_FACTURACION}\{año}\{mes}\{día}\{tipo}\{RUC_EMPRESA}\{ruc_emisor}\ + {RUC_EMPRESA}-{tipo}-{serie}-{numero}_FormatoImpreso.pdf + {RUC_EMPRESA}-{tipo}-{serie}-{numero}.xml + ``` + `RUC_EMPRESA` es el RUC de Aberio (fijo); `ruc_emisor` es el RUC del proveedor que emitió la factura (varía por comprobante). Año/mes/día salen de `fecha_emision`, sin ceros a la izquierda en mes/día. +- Guarda las rutas resultantes en `data["ruta_red_pdf"]` / `data["ruta_red_xml"]`, que luego usa `_build_sap_draft` para llenar `U_VS_ANEXO_PDF` / `U_VS_ANEXO_XML` en el draft SAP B1. +- Se invoca desde `_procesar_xmls`, justo después de resolver `data["ruta_pdf"]`. --- @@ -96,19 +127,46 @@ flowchart TD ``` run_pipeline + ├── database_utilities.init_db ├── step_authenticate + │ └── outlook_utilities.get_access_token ├── step_fetch_emails + │ └── outlook_utilities.get_emails └── _procesar_un_correo (por cada email) + ├── database_utilities.get_existing_ids / save_emails ├── _descargar_adjuntos + │ └── outlook_utilities.download_attachments ├── _descomprimir + │ └── email_utilities.descomprimir_adjuntos ├── _filtrar_y_limpiar ├── _procesar_pdfs + │ └── pdf_utilities.extraer_datos_pdf / renombrar_pdf ├── _procesar_xmls + │ ├── sunat_schema.extraer_datos_xml + │ ├── pdf_utilities.extraer_referencias + │ └── _copiar_a_red + ├── _completar_guias + ├── _validar_guias ├── _guardar_resultado - ├── _validate_prices (por factura) - │ └── sapb1_manager.get_delivery_notes - ├── _build_sap_draft - ├── _guardar_draft_json - ├── sapb1_manager.create_draft - └── outlook_utilities.send_email + │ └── sunat_schema.split_serie_numero, pdf_utilities.TIPO_MAP + ├── (por cada factura tipo 01) + │ ├── _validate_prices + │ │ ├── sapb1_manager.get_zonas + │ │ └── sapb1_manager.get_delivery_notes + │ │ ├── hana_manager.get_delivery (fallback si SL no responde; + │ │ │ busca en ODLN y, si no hay, en OWTR) + │ │ └── si el DocEntry vino de OWTR (StockTransfers), resuelve + │ │ además la Orden de Venta asociada (Orders vía + │ │ U_IDC_NUMOV) para poder validar las líneas FL* + │ ├── _build_validation_html + │ ├── _obtener_valor_referencial_sap + │ │ └── hana_manager.obtener_valor_referencial + │ ├── _build_valor_referencial_html + │ ├── _build_sap_draft + │ │ └── sapb1_manager.obtener_condicion_pago (BusinessPartners + + │ │ PaymentTermsTypes, para calcular DocDueDate) + │ ├── _guardar_draft_json + │ ├── sapb1_manager.create_draft (si todas las líneas coinciden) + │ ├── _build_notification_body + │ └── outlook_utilities.send_email ``` diff --git a/docs/procesar_pdfs.md b/docs/procesar_pdfs.md index ea6363c..76f1122 100644 --- a/docs/procesar_pdfs.md +++ b/docs/procesar_pdfs.md @@ -2,8 +2,8 @@ ## Ubicación -- **Archivo:** `pipeline.py` (línea 193-246) -- **Librería:** `pdf_utilities.py` (línea 1-450) +- **Archivo:** `pipeline.py` (línea 255-308, función anidada en `_procesar_un_correo`) +- **Librería:** `pdf_utilities.py` (línea 1-464) --- diff --git a/docs/procesar_xmls.md b/docs/procesar_xmls.md index 8fa04e1..843a9bc 100644 --- a/docs/procesar_xmls.md +++ b/docs/procesar_xmls.md @@ -2,8 +2,8 @@ ## Ubicación -- **Archivo:** `pipeline.py` (línea 248-370) -- **Librería:** `sunat_schema.py` (línea 1-520) +- **Archivo:** `pipeline.py` (línea 310-463, función anidada en `_procesar_un_correo`) +- **Librería:** `sunat_schema.py` (línea 1-720) --- @@ -18,14 +18,19 @@ flowchart TD D --> E{Hay datos?} E -- No --> F[ℹ️ XML sin datos] F --> B - E -- Sí --> G[Construir nombre PDF canónico] - G --> H[Buscar PDF en cache o fallback] - H --> I[Cruzar documentos_referencia desde PDF]:::highlight - I --> J[Cruzar guías de remisión por línea]:::highlight + E -- Sí --> CDR{Es CDR?} + CDR -- Sí --> CDR2[Solo renombrar, continue] + CDR2 --> B + CDR -- No --> G[Renombrar XML a nombre canónico] + G --> H[Construir nombre PDF canónico y buscarlo] + H --> RED[_copiar_a_red]:::highlight + RED --> I[Cruzar documentos_referencia desde PDF si faltan]:::highlight + I --> J[Asignar guías de remisión por línea]:::highlight J --> K[Agregar a lista de documentos] K --> B - B -- Fin --> L[return documentos] + B -- Fin --> L[Post-proceso: resolver GRE desde guía transportista referenciada]:::highlight + L --> M[return documentos] classDef highlight fill:#fff3e0,stroke:#e65100,stroke-width:3px; ``` @@ -46,45 +51,43 @@ _procesar_xmls(pdf_cache) → list[dict] │ ├── xml_path = carpeta + adjunto │ │ │ ├── sunat_schema.extraer_datos_xml(xml_path) → data | None -│ │ └── Solo procesa Invoice tipo 01 y DespatchAdvice tipo 31 +│ │ └── Procesa Invoice tipo 01, DespatchAdvice tipo 09 y 31, y CDR (ApplicationResponse) │ │ │ ├── ¿data es None? → ℹ️ XML sin datos, continue │ │ +│ ├── ¿data["es_cdr"]? → solo renombrar a "CDR-{ruc}-{tipo}-{serie}-{numero}.xml", continue +│ │ │ ├── data["ruta_xml"] = xml_path │ │ -│ ├── Construir nombre PDF canónico: -│ │ └── "{ruc_emisor}-{tipo}-{serie}-{numero}.pdf" +│ ├── Renombrar XML a nombre canónico: +│ │ └── "{ruc_emisor}-{tipo}-{serie}-{numero}.xml" │ │ -│ ├── Buscar PDF asociado: -│ │ ├── 1. pdf_cache por nombre canónico -│ │ └── 2. Fallback: mismo nombre con extensión .pdf +│ ├── Construir nombre PDF canónico y buscar el PDF asociado: +│ │ ├── 1. Mismo nombre canónico con extensión .pdf +│ │ └── 2. Fallback: mismo nombre que el XML renombrado, con extensión .pdf │ │ └── data["ruta_pdf"] = ruta encontrada o None │ │ +│ ├── _copiar_a_red(data, _log) +│ │ └── Copia PDF/XML a la ruta de red (RUTA_RED_FACTURACION), si está configurada. +│ │ Guarda data["ruta_red_pdf"] / data["ruta_red_xml"] (ver docs/pipeline.md). +│ │ │ ├── ¿data sin documentos_referencia? │ │ ├── Buscar en pdf_cache por nombre canónico │ │ │ └── pdf_utilities.extraer_referencias(items) → refs │ │ ├── Si no → fallback: buscar en email["datos_pdf"] │ │ └── Si encuentra → data["documentos_referencia"] = refs │ │ -│ ├── Asignar guías de remisión por línea: -│ │ ├── refs_09 = [tipo 09] desde documentos_referencia -│ │ ├── refs_31 = [tipo 31] desde documentos_referencia -│ │ ├── pdf_items = pdf_cache[canonical].items[] (si existe) -│ │ │ -│ │ └── Por cada línea en data["lineas"]: -│ │ │ -│ │ ├── ¿Hay PDF items para esta línea? -│ │ │ ├── Parsear guias_remision[] desde descripción PDF -│ │ │ │ └── Regex: "{serie}-{numero}" con prefijo T/V/E -│ │ │ └── Parsear guia_transportista desde descripción PDF -│ │ │ -│ │ ├── ¿Hay refs_09 para esta línea? -│ │ │ └── Asignar desde documentos_referencia ordenados -│ │ │ -│ │ └── No → guias_remision = [], guia_transportista = None +│ ├── Asignar guías de remisión y transportista por línea (ver prioridad abajo) │ │ │ └── ✅ Agregar data a documentos[] │ +├── Post-procesamiento — resolver GRE desde guía de transporte referenciada: +│ ├── guia_lookup = {(tipo, serie, numero): doc} para cada documento tipo 09/31 del correo +│ └── Por cada factura (tipo 01), por cada documento_referencia tipo 31: +│ ├── Buscar la guía transportista en guia_lookup +│ ├── Tomar sus documentos_referencia tipo 09 (GRE) propios +│ └── Asignarlos a las líneas de la factura que aún no tengan guias_remision +│ └── return documentos ``` @@ -99,11 +102,14 @@ flowchart TD A[extraer_datos_xml] --> B[ET.parse xml] B --> C{Tag raíz?} + C -- ApplicationResponse --> CDR[_parse_application_response]:::highlight + CDR --> I2[return dict con es_cdr=True] + C -- Invoice --> D{tipo == 01?} D -- Sí --> E[_parse_invoice]:::highlight D -- No --> F[return None] - C -- DespatchAdvice --> G{tipo == 31?} + C -- DespatchAdvice --> G{tipo en 09, 31?} G -- Sí --> H[_parse_despatch_advice]:::highlight G -- No --> F @@ -115,7 +121,7 @@ flowchart TD classDef highlight fill:#fff3e0,stroke:#e65100,stroke-width:3px; ``` -Solo procesa **Facturas tipo 01** y **Guías de Remisión Transportista tipo 31**. +Procesa **Facturas tipo 01**, **Guías de Remisión Remitente tipo 09**, **Guías de Remisión Transportista tipo 31**, y **CDR** (`ApplicationResponse`, solo para renombrar el archivo, no se agrega a `documentos[]`). --- @@ -164,10 +170,14 @@ flowchart TD | `cantidad` | `cbc:InvoicedQuantity` | | `precio_unitario` | `cac:PricingReference/cac:AlternativeConditionPrice/cbc:PriceAmount` o `cac:Price/cbc:PriceAmount` | | `total_linea` | `cbc:LineExtensionAmount` | +| `guias_remision[]` / `guia_transportista` | Parseadas desde `cbc:Note` de la línea (`extraer_guias_desde_notes`) — ver prioridad de asignación más abajo | +| `valor_referencial` | Extraído de la descripción del ítem, del `Note` de la línea, o de los `Note` a nivel de documento (`extraer_valor_referencial`) | --- -### `_parse_despatch_advice(root)` — Guía tipo 31 +### `_parse_despatch_advice(root)` — Guías tipo 09 y 31 + +La misma función procesa tanto la Guía de Remisión Remitente (09) como la Guía de Remisión Transportista (31); el `tipo` viene de `DespatchAdviceTypeCode`. | Campo | Tag | |-------|-----| @@ -188,7 +198,7 @@ flowchart TD | `ubigeo_partida` | `Delivery/Despatch/DespatchAddress/ID` | | `lineas[]` | `DespatchLine` con `DeliveredQuantity` y `Item/Description` | -Documentos de referencia desde `AdditionalDocumentReference`. +Documentos de referencia desde `AdditionalDocumentReference` (para la guía transportista, típicamente referencian la GRE — guía remitente — asociada). --- @@ -205,15 +215,22 @@ pdf_cache[nombre_canonico].items[] → extraer_referencias() └── guia_transportista → ref tipo 31 ``` -### 2. Asignar guías por línea +### 2. Asignar guías por línea (dentro de `_procesar_xmls`) -Prioridad para asignar `guias_remision` y `guia_transportista` a cada línea: +Prioridad para asignar `guias_remision` y `guia_transportista` a cada línea de la factura, en el orden en que realmente se aplican en el código: | Prioridad | Origen | Descripción | |-----------|--------|-------------| -| 1ª | PDF items | Parse desde `items[i].guias_remision[]` y `items[i].guia_transportista` con regex `{T/V/E}{serie}-{numero}` | -| 2ª | `documentos_referencia` | Asignación ordinal: `refs_09[i]`, `refs_31[i]` | -| 3ª | Default | `[]` y `None` | +| 1ª | `notes_text` (ya resuelto en `sunat_schema._parse_invoice`) | Si la línea ya trae `guias_remision`/`guia_transportista` extraídos del `cbc:Note` del XML (vía `extraer_guias_desde_notes`), se conservan tal cual. | +| 2ª | `documentos_referencia` (`refs_09`/`refs_31`) | Si la línea no trajo guías desde `notes_text`, se asigna posicionalmente desde `documentos_referencia` (`refs_09[i]`, `refs_31[i]`; la última línea recibe todas las refs restantes). | + +### 3. Post-procesamiento — resolver GRE desde guía de transporte referenciada + +Después de procesar todos los XML del correo, si una factura referencia una **guía transportista (31)** y esa guía (presente como documento independiente en el mismo correo) referencia a su vez una o más **GRE (09)**, esas GRE se propagan a las líneas de la factura que aún no tengan `guias_remision` asignadas. + +### 4. `_completar_guias` (paso posterior, fuera de `_procesar_xmls`) + +Si tras los pasos anteriores alguna línea sigue sin `guias_remision`, `_completar_guias` (ver `docs/pipeline.md`) las copia desde los `items[]` del PDF cache, parseando el texto con regex (`{T/V/E}{serie}-{numero}`). --- @@ -246,12 +263,17 @@ Prioridad para asignar `guias_remision` y `guia_transportista` a cada línea: "precio_unitario": 1.3396, "total_linea": 468.86, "guias_remision": [{"tipo": "09", "serie": "T001", "numero": "127773"}], - "guia_transportista": None + "guia_transportista": None, + "valor_referencial": 468.86 } ], "ruta_xml": "/path/to/20537929520-01-F002-486.xml", "ruta_pdf": "/path/to/20537929520-01-F002-486.pdf", + "ruta_red_pdf": "\\\\192.168.9.66\\b1_shf\\Facturacion Electronica\\PRODUCCION\\2026\\7\\8\\01\\20100029741\\20537929520\\20100029741-01-F002-486_FormatoImpreso.pdf", + "ruta_red_xml": "\\\\192.168.9.66\\b1_shf\\Facturacion Electronica\\PRODUCCION\\2026\\7\\8\\01\\20100029741\\20537929520\\20100029741-01-F002-486.xml", "tipo_descripcion": "Factura" } ] ``` + +`ruta_red_pdf`/`ruta_red_xml` solo aparecen si `RUTA_RED_FACTURACION` está configurada en `.env` y la copia fue exitosa; se usan luego en `_build_sap_draft` para llenar `U_VS_ANEXO_PDF`/`U_VS_ANEXO_XML` (ver `docs/pipeline.md`). diff --git a/docs/validar_precios.mkd b/docs/validar_precios.mkd index cbb6158..66f889f 100644 --- a/docs/validar_precios.mkd +++ b/docs/validar_precios.mkd @@ -12,7 +12,11 @@ flowchart TD F -->|Sí| H["Por cada guía en guias[]"] H --> I["Consultar SAP B1
get_delivery_notes()"] - I --> J["Por cada DeliveryNote"] + I --> I2{"¿Guía encontrada en
ODLN o en OWTR?"} + I2 -->|ODLN| I3["Documento = DeliveryNotes(DocEntry)"] + I2 -->|OWTR| I4["Documento = StockTransfers(DocEntry)
→ leer U_IDC_NUMOV
→ Documento = Orders(U_IDC_NUMOV)"] + I3 --> J["Por cada documento
(DeliveryNote u Orden de Venta)"] + I4 --> J J --> K["Obtener zona desde
U_IDC_DESTINO"] K --> L["Extraer WarehouseCode
de DocumentLines[0]"] diff --git a/email_utilities.py b/email_utilities.py index 603d04c..b35ef2d 100644 --- a/email_utilities.py +++ b/email_utilities.py @@ -1,29 +1,5 @@ import os import zipfile -import database_utilities - -# ============================================================================ -def quitar_correos_ya_registrados_en_base_de_datos(emails: list[dict]) -> list[dict]: - """ - Verifica cuáles correos son nuevos (no están en la BD), los guarda - y retorna la lista filtrada de los que tienen adjuntos. - """ - if not emails: - return [] - - # 1. Verificar cuáles ya existen en la BD - ids = [e['id'] for e in emails] - existentes = database_utilities.get_existing_ids(ids) - - # Solo nos quedamos con los que NO están en la BD - correos_no_registrados = [e for e in emails if e['id'] not in existentes] - print(f"Correos nuevos detectados: {len(correos_no_registrados)}") - - if correos_no_registrados: - print("Guardando nuevos correos en la base de datos...") - database_utilities.save_emails(correos_no_registrados) - - return correos_no_registrados # ============================================================================ def descomprimir_adjuntos(emails: list[dict], ruta: str) -> list[dict]: @@ -73,21 +49,4 @@ def filtrar_archivos_validos(archivos: list[str]) -> list[str]: return [a for a in archivos if a.lower().endswith(extensiones_validas)] # ============================================================================ -def procesar_adjuntos_email(e: dict, archivos: list[str], ruta_descarga: str) -> list[str]: - """ - Descomprime y filtra los archivos de un correo. - Retorna la lista de archivos válidos si existen, de lo contrario lista vacía. - """ - # 1. Descomprimir archivos ZIP si existen - archivos_procesados = descomprimir_adjuntos(archivos, ruta_descarga) - - # 2. Filtrar solo PDF y XML - archivos_validos = filtrar_archivos_validos(archivos_procesados) - - if archivos_validos: - e['archivos'] = archivos_validos - return archivos_validos - return [] - -# ============================================================================ diff --git a/hana_manager.py b/hana_manager.py index a855630..df65275 100644 --- a/hana_manager.py +++ b/hana_manager.py @@ -10,8 +10,9 @@ from dotenv import load_dotenv # CONFIGURACIÓN # ============================================================================ -# Cargar variables de entorno desde .env -load_dotenv(dotenv_path=".env") +# Cargar variables de entorno desde .env (ruta absoluta: no depende del +# directorio de trabajo desde el que se lance el proceso) +load_dotenv(dotenv_path=os.path.join(os.path.dirname(__file__), ".env")) # Configuración de la API HANA_HOST = os.getenv("HANA_SERVER", "") @@ -39,45 +40,62 @@ def get_connection(): def get_delivery(tipo: str, serie: str, numero: str) -> list: """ Consulta la tabla ODLN en SAP HANA para obtener DeliveryNotes. + Si no encuentra el tipo, serie y número en ODLN, busca en OWTR + (Traslados de Inventario) como fallback. Args: - tipo: Código de serie/documento (U_BPP_MDSD). - serie: Serie del documento (U_BPP_MDTD). + tipo: Código de tipo de documento SUNAT, ej. "09"/"31" (U_BPP_MDTD). + serie: Serie del documento, ej. "T001" (U_BPP_MDSD). numero: Número del documento (se busca con LIKE). Returns: - list[dict] — Lista con DocEntry, DocNum, CardCode, CardName. + list[dict] — Lista con DocEntry, DocNum, CardCode, CardName, Tabla. + "Tabla" indica en qué tabla se encontró el registro ("ODLN" u + "OWTR"), para que el llamador sepa qué endpoint de Service Layer + usar (DeliveryNotes o StockTransfers). """ - schema = HANA_SCHEMA - query = f'''SELECT "DocEntry", "DocNum", "CardCode", "CardName" - FROM "{schema}"."ODLN" - WHERE "CANCELED" = 'N' - AND "U_BPP_MDSD" = ? - AND "U_BPP_MDTD" = ? - AND "U_BPP_MDCD" LIKE ?''' - - pattern = f"%{numero}%" - connection = get_connection() if not connection: return [] - cursor = connection.cursor() try: + results = _query_delivery_table(connection, "ODLN", tipo, serie, numero) + if results: + return results + return _query_delivery_table(connection, "OWTR", tipo, serie, numero) + finally: + connection.close() + +# ============================================================================ +def _query_delivery_table(connection, tabla: str, tipo: str, serie: str, numero: str) -> list: + """Ejecuta la consulta de tipo/serie/número contra la tabla indicada (ODLN u OWTR).""" + schema = HANA_SCHEMA + query = f'''SELECT "DocEntry", "DocNum", "CardCode", "CardName" + FROM "{schema}"."{tabla}" + WHERE "CANCELED" = 'N' + AND "U_BPP_MDTD" = ? + AND "U_BPP_MDSD" = ? + AND "U_BPP_MDCD" LIKE ?''' + + pattern = f"%{numero}%" + + cursor = None + try: + cursor = connection.cursor() cursor.execute(query, (tipo, serie, pattern)) columns = [column[0] for column in cursor.description] results = [] for row in cursor.fetchall(): - results.append(dict(zip(columns, row))) + registro = dict(zip(columns, row)) + registro["Tabla"] = tabla + results.append(registro) return results except Exception as e: - print(f" ❌ Error en consulta HANA get_delivery: {e}") + print(f" ❌ Error en consulta HANA get_delivery ({tabla}): {e}") return [] finally: if cursor: cursor.close() - if connection: - connection.close() # ============================================================================ def obtener_valor_referencial(serie: str, numero: str) -> float: @@ -100,8 +118,9 @@ def obtener_valor_referencial(serie: str, numero: str) -> float: if not connection: return 0.0 - cursor = connection.cursor() + cursor = None try: + cursor = connection.cursor() cursor.execute(query, (serie, numero)) columns = [column[0] for column in cursor.description] row = cursor.fetchone() diff --git a/logger_manager.py b/logger_manager.py new file mode 100644 index 0000000..4d91b7a --- /dev/null +++ b/logger_manager.py @@ -0,0 +1,150 @@ +import logging +import contextvars +import os +import sys +from contextlib import contextmanager +from logging.handlers import TimedRotatingFileHandler +from pathlib import Path + +LOG_DIR = Path(__file__).parent / "logs" +LOG_FILE = LOG_DIR / "descarga_factura_transporte.log" +_LOG_CONFIGURED = False + +_stack: contextvars.ContextVar[list] = contextvars.ContextVar("log_stack", default=[]) +# ============================================================================ + +class TreeFormatter(logging.Formatter): + def format(self, record): + return f"{self.formatTime(record)} ─── {record.getMessage()}" + + def formatTime(self, record, datefmt=None): + import datetime + return datetime.datetime.fromtimestamp(record.created).strftime("%Y-%m-%d %H:%M:%S") + +# ============================================================================ +def _build_prefix(stack, is_last): + if not stack: + return "" + parts = [] + for sib_is_last in stack[:-1]: + parts.append(" " if sib_is_last else "│ ") + parts.append("└── " if is_last else "├── ") + return "".join(parts) + +# ============================================================================ +class _TaskContext: + def __init__(self, logger, msg, emoji, is_last): + self._logger = logger + self._msg = msg + self._emoji = emoji + self._is_last = is_last + + def __enter__(self): + stack = _stack.get() + prefix = _build_prefix(stack, self._is_last) + emoji_str = f"{self._emoji} " if self._emoji else "" + self._logger._logger.info(f"{prefix}{emoji_str}{self._msg}") + _stack.set(stack + [self._is_last]) + return TaskLogger(self._logger._logger) + + def __exit__(self, exc_type, exc_val, exc_tb): + _stack.set(_stack.get()[:-1]) + +# ============================================================================ +class TaskLogger: + def __init__(self, logger): + self._logger = logger + + @contextmanager + def task(self, msg, emoji=""): + with _TaskContext(self, msg, emoji, is_last=False) as sub: + yield sub + + @contextmanager + def last_task(self, msg, emoji=""): + with _TaskContext(self, msg, emoji, is_last=True) as sub: + yield sub + + def info(self, msg, *args, _last=False, **kwargs): + self._log(logging.INFO, msg, args, kwargs, _last) + + def warning(self, msg, *args, _last=False, **kwargs): + self._log(logging.WARNING, msg, args, kwargs, _last) + + def error(self, msg, *args, _last=False, **kwargs): + self._log(logging.ERROR, msg, args, kwargs, _last) + + def _log(self, level, msg, args, kwargs, is_last): + stack = _stack.get() + prefix = _build_prefix(stack, is_last) + self._logger.log(level, f"{prefix}{msg}", *args, **kwargs) + +class _StreamToLogger: + """Redirige escrituras de un stream (stdout/stderr) al logger, línea por línea.""" + + def __init__(self, logger: logging.Logger, level: int) -> None: + self._logger = logger + self._level = level + self._buffer = "" + + def write(self, message: str) -> None: + self._buffer += message + while "\n" in self._buffer: + line, self._buffer = self._buffer.split("\n", 1) + if line: + self._logger.log(self._level, line) + + def flush(self) -> None: + pass + + +# ============================================================================ +def setup_logging(level=None, console=True, capture_print=True): + """ + Configura el logging del proceso: archivo rotado a medianoche (30 días + de historial) y, opcionalmente, consola. Si ``capture_print`` es True + (por defecto), también redirige ``print()`` (stdout/stderr) al log, de + forma que cualquier salida existente en el proyecto quede registrada + en archivo sin tener que migrar cada ``print`` a ``logger.info``. + """ + global _LOG_CONFIGURED + if _LOG_CONFIGURED: + return + + if level is None: + level_name = os.getenv("LOG_LEVEL", "INFO").upper() + level = getattr(logging, level_name, logging.INFO) + + LOG_DIR.mkdir(exist_ok=True) + + formatter = TreeFormatter() + + file_handler = TimedRotatingFileHandler( + LOG_FILE, + when="midnight", + interval=1, + backupCount=30, + encoding="utf-8", + ) + file_handler.setFormatter(formatter) + + handlers: list[logging.Handler] = [file_handler] + if console: + console_handler = logging.StreamHandler(sys.stdout) + console_handler.setFormatter(formatter) + handlers.append(console_handler) + + logging.basicConfig(level=level, handlers=handlers, force=True) + + if capture_print: + stdout_logger = logging.getLogger("stdout") + stderr_logger = logging.getLogger("stderr") + sys.stdout = _StreamToLogger(stdout_logger, logging.INFO) + sys.stderr = _StreamToLogger(stderr_logger, logging.ERROR) + + _LOG_CONFIGURED = True + +# ============================================================================ +def get_logger(name="descarga_factura_transporte"): + setup_logging() + return TaskLogger(logging.getLogger(name)) \ No newline at end of file diff --git a/logger_utilities.py b/logger_utilities.py deleted file mode 100644 index b7cf4b3..0000000 --- a/logger_utilities.py +++ /dev/null @@ -1,72 +0,0 @@ -import sys -import os -from datetime import datetime, timedelta -from typing import TextIO - -# ============================================================================ -class MultiStream: - """ - Clase para redirigir la salida a múltiples flujos (consola y archivo). - """ - def __init__(self, *streams: TextIO) -> None: - self.streams: tuple[TextIO, ...] = streams - - def write(self, data: str) -> None: - for stream in self.streams: - stream.write(data) - stream.flush() - - def flush(self) -> None: - for stream in self.streams: - stream.flush() - -# ============================================================================ -def setup_logger() -> str: - """ - Configura la redirección de stdout y stderr a un archivo de log y a la consola. - Retorna la ruta del archivo de log creado. - """ - log_dir = "logs" - if not os.path.exists(log_dir): - os.makedirs(log_dir) - - # Nombre del archivo: YYYY-MM-DD_HH-MM-SS.log - timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S") - log_filename = f"{timestamp}.log" - log_path = os.path.join(log_dir, log_filename) - - # Abrir archivo en modo append con encoding utf-8 para soportar iconos - log_file = open(log_path, "a", encoding="utf-8") - - # Redirigir stdout y stderr - sys.stdout = MultiStream(sys.stdout, log_file) - sys.stderr = MultiStream(sys.stderr, log_file) - - return log_path - -# ============================================================================ -def limpiar_logs_antiguos(dias: int = 7) -> None: - """ - Elimina archivos de log con más de 'n' días de antigüedad. - """ - log_dir = "logs" - if not os.path.exists(log_dir): - return - - limite = datetime.now() - timedelta(days=dias) - count = 0 - - for archivo in os.listdir(log_dir): - ruta_archivo = os.path.join(log_dir, archivo) - if os.path.isfile(ruta_archivo) and archivo.endswith(".log"): - fecha_archivo = datetime.fromtimestamp(os.path.getmtime(ruta_archivo)) - if fecha_archivo < limite: - try: - os.remove(ruta_archivo) - count += 1 - except Exception as e: - print(f"⚠️ Error al eliminar log {archivo}: {e}") - - if count > 0: - print(f"🧹 Se eliminaron {count} archivos de log antiguos (más de {dias} días).") -# ============================================================================ \ No newline at end of file diff --git a/main.py b/main.py index e80eced..7a30fb2 100644 --- a/main.py +++ b/main.py @@ -4,7 +4,7 @@ import argparse from datetime import datetime, timedelta from dotenv import load_dotenv -import logger_utilities +import logger_manager from pipeline import run_pipeline # ============================================================================ @@ -65,7 +65,8 @@ def main() -> None: dias = args.dias - load_dotenv(dotenv_path=".env") + # Ruta absoluta: no depende del directorio de trabajo desde el que se lance el proceso + load_dotenv(dotenv_path=os.path.join(os.path.dirname(__file__), ".env")) EMAIL = os.getenv("EMAIL", "") DOWNLOAD_FOLDER = os.getenv("DOWNLOAD_FOLDER", "") @@ -124,12 +125,11 @@ def main() -> None: # ============================================================================ if __name__ == "__main__": - log_path = logger_utilities.setup_logger() - logger_utilities.limpiar_logs_antiguos(dias=30) + logger_manager.setup_logging() print("=" * 60) print(f"🚀 Demonio iniciado: {datetime.now():%Y-%m-%d %H:%M:%S}") - print(f"📄 Log guardado en: {log_path}") + print(f"📄 Log guardado en: {logger_manager.LOG_FILE}") print("=" * 60) main() diff --git a/outlook_utilities.py b/outlook_utilities.py index 32e7104..a00977f 100644 --- a/outlook_utilities.py +++ b/outlook_utilities.py @@ -11,15 +11,16 @@ warnings.filterwarnings("ignore") # CONFIGURACIÓN # ============================================================================ -# Cargar variables de entorno desde .env -load_dotenv(dotenv_path=".env") +# Cargar variables de entorno desde .env (ruta absoluta: no depende del +# directorio de trabajo desde el que se lance el proceso) +load_dotenv(dotenv_path=os.path.join(os.path.dirname(__file__), ".env")) # Configuración de la API CLIENT_ID = os.getenv("CLIENT_ID", "") CLIENT_SECRET = os.getenv("CLIENT_SECRET", "") TENANT_ID = os.getenv("TENANT_ID", "") DOWNLOAD_FOLDER = os.getenv("DOWNLOAD_FOLDER","") -VERIFY_SSL = os.getenv("VERIFI_SSL", "False").lower() == "true" +VERIFY_SSL = os.getenv("VERIFY_SSL", "False").lower() == "true" # ============================================================================ def get_access_token() -> str: @@ -149,16 +150,17 @@ def download_attachments(user_email: str, message_id: str, token: str, download_ return downloaded_files # ============================================================================ -def send_email(access_token: str, from_email: str, to_recipients: list[str], subject: str, html_body: str, attachment_paths: list[str] | None = None) -> bool: +def send_email(access_token: str, from_email: str, to_recipients: list[str], subject: str, html_body: str, attachment_paths: list[str] | None = None, cc_recipients: list[str] | None = None) -> bool: """ Envía un correo electrónico con cuerpo HTML y múltiples adjuntos PDF. - + :param access_token: Token de acceso de Microsoft Graph API. :param from_email: Correo electrónico del remitente (cuenta de Office 365). :param to_recipients: Lista de correos electrónicos de los destinatarios. :param subject: Asunto del correo. :param html_body: Contenido del correo en formato HTML. :param attachment_paths: Lista de rutas a los archivos PDF que se adjuntarán. + :param cc_recipients: Lista de correos electrónicos en copia (CC). :return: True si se envió correctamente, False en caso contrario. """ url = f"https://graph.microsoft.com/v1.0/users/{from_email}/sendMail" @@ -178,6 +180,15 @@ def send_email(access_token: str, from_email: str, to_recipients: list[str], sub } }) + # Construir lista de destinatarios en copia (CC) para Graph API + cc_payload = [] + for email in (cc_recipients or []): + cc_payload.append({ + "emailAddress": { + "address": email + } + }) + # Construir lista de adjuntos attachments_payload = [] if attachment_paths: @@ -214,6 +225,7 @@ def send_email(access_token: str, from_email: str, to_recipients: list[str], sub "content": html_body }, "toRecipients": recipients_payload, + "ccRecipients": cc_payload, "attachments": attachments_payload }, "saveToSentItems": "true" diff --git a/pdf_utilities.py b/pdf_utilities.py index 3b78357..974d382 100644 --- a/pdf_utilities.py +++ b/pdf_utilities.py @@ -1,6 +1,12 @@ import pdfplumber import os import re +import unicodedata + + +def _sin_tildes(texto: str) -> str: + """Quita tildes/diacríticos para comparaciones tolerantes a variaciones de formato.""" + return "".join(c for c in unicodedata.normalize("NFKD", texto) if not unicodedata.combining(c)) TIPO_MAP = { @@ -53,13 +59,14 @@ def _extract_base_data(text: str, pdf_path: str) -> dict: if standalone_ruc: data["ruc_emisor"] = standalone_ruc.group(1) - if "FACTURA ELECTRÓNICA" in text.upper(): + text_norm = _sin_tildes(text.upper()) + if "FACTURA ELECTRONICA" in text_norm: data["tipo_documento"] = "FACTURA" - elif "BOLETA DE VENTA" in text.upper(): + elif "BOLETA DE VENTA" in text_norm: data["tipo_documento"] = "BOLETA" - elif "TRANSPORTISTA" in text.upper() and "GUÍA DE REMISIÓN" in text.upper(): + elif "TRANSPORTISTA" in text_norm and "GUIA DE REMISION" in text_norm: data["tipo_documento"] = "GUIA DE REMISION TRANSPORTISTA" - elif "GUÍA DE REMISIÓN" in text.upper() or "GRRE:" in text.upper(): + elif "GUIA DE REMISION" in text_norm or "GRRE:" in text_norm: data["tipo_documento"] = "GUIA DE REMISION" serie_numero_match = re.search(r"(?:N°\s*)?([A-Z0-9]{4})\s*-\s*(\d+)", text) diff --git a/pipeline.py b/pipeline.py index da81797..09aed22 100644 --- a/pipeline.py +++ b/pipeline.py @@ -12,6 +12,8 @@ import os import re import json import math +import shutil +import ntpath from datetime import datetime, timedelta import email_utilities @@ -22,6 +24,9 @@ import sapb1_manager import pdf_utilities import hana_manager +RUTA_RED_FACTURACION = os.getenv("RUTA_RED_FACTURACION", "") +RUC_EMPRESA = os.getenv("RUC_EMPRESA", "") + # ============================================================================ # HELPERS @@ -30,6 +35,75 @@ def _ruta_carpeta(subcarpeta: str) -> str: return os.path.join(os.path.dirname(__file__), subcarpeta) +def _copiar_a_red(data: dict, _log) -> None: + """ + Copia el PDF y el XML de un comprobante ya procesado a la ruta de red + de Facturación Electrónica, organizada como:: + + {RUTA_RED_FACTURACION}\\{año}\\{mes}\\{día}\\{tipo}\\{RUC_EMPRESA}\\{ruc_emisor}\\ + {RUC_EMPRESA}-{tipo}-{serie}-{numero}_FormatoImpreso.pdf + {RUC_EMPRESA}-{tipo}-{serie}-{numero}.xml + + ``RUC_EMPRESA`` es el RUC de Aberio (fijo, por ahora); ``ruc_emisor`` + es el RUC del proveedor que emitió la factura (varía por comprobante). + Año/mes/día se toman de ``fecha_emision`` (mes y día sin ceros a la + izquierda). No falla el pipeline si la ruta de red no está configurada + o no está disponible: solo registra una advertencia. + + Guarda las rutas resultantes en ``data["ruta_red_pdf"]`` y + ``data["ruta_red_xml"]`` para que ``_build_sap_draft`` las incluya en + el draft (``U_VS_ANEXO_PDF`` / ``U_VS_ANEXO_XML``). + """ + if not RUTA_RED_FACTURACION: + return + + ruc_emisor = data.get("ruc_emisor", "") + tipo = data.get("tipo", "") + serie = data.get("serie", "") + numero = data.get("numero", "") + xml_path = data.get("ruta_xml") + pdf_path = data.get("ruta_pdf") + + try: + fecha = datetime.strptime(data.get("fecha_emision", ""), "%Y-%m-%d") + except (ValueError, TypeError): + _log(f"⚠️ No se pudo copiar a red: fecha_emision inválida ({data.get('fecha_emision')})", 3) + return + + carpeta_destino = os.path.join( + RUTA_RED_FACTURACION, + str(fecha.year), str(fecha.month), str(fecha.day), + tipo, RUC_EMPRESA, ruc_emisor, + ) + # Ruta guardada en el draft SAP (U_VS_ANEXO_PDF/XML): siempre estilo + # Windows/UNC con backslash, sin importar el separador del SO donde + # corre el script (evita mezclar "\\" y "/" al usar os.path.join en + # un host no-Windows). + carpeta_destino_unc = ntpath.join( + RUTA_RED_FACTURACION, + str(fecha.year), str(fecha.month), str(fecha.day), + tipo, RUC_EMPRESA, ruc_emisor, + ) + nombre_base = f"{RUC_EMPRESA}-{tipo}-{serie}-{numero}" + + try: + os.makedirs(carpeta_destino, exist_ok=True) + + if pdf_path and os.path.exists(pdf_path): + ruta_red_pdf = os.path.join(carpeta_destino, f"{nombre_base}_FormatoImpreso.pdf") + shutil.copy2(pdf_path, ruta_red_pdf) + data["ruta_red_pdf"] = ntpath.join(carpeta_destino_unc, f"{nombre_base}_FormatoImpreso.pdf") + + if xml_path and os.path.exists(xml_path): + ruta_red_xml = os.path.join(carpeta_destino, f"{nombre_base}.xml") + shutil.copy2(xml_path, ruta_red_xml) + data["ruta_red_xml"] = ntpath.join(carpeta_destino_unc, f"{nombre_base}.xml") + + _log(f"📁 Copiado a red: {carpeta_destino}", 3) + except OSError as e: + _log(f"⚠️ Error copiando a ruta de red: {e}", 3) + + # ============================================================================ # PASO 1: Autenticación Microsoft Graph # ============================================================================ @@ -327,6 +401,8 @@ def _procesar_un_correo(email: dict, token: str, email_addr: str, download_folde pdf_path = pdf_path if os.path.exists(pdf_path) else None data["ruta_pdf"] = pdf_path + _copiar_a_red(data, _log) + # Cruzar documentos_referencia desde el PDF renombrado (pdf_cache por nombre canónico) if not data.get("documentos_referencia"): pdf_data = pdf_cache.get(pdf_canonical) @@ -520,7 +596,7 @@ def _procesar_un_correo(email: dict, token: str, email_addr: str, download_folde continue doc = { "ruc_emisor": raw.get("ruc_emisor"), - "razon_social_emisor": raw.get("nombre_receptor"), + "razon_social_emisor": None, # el PDF no extrae la razón social del emisor "fecha_emision": raw.get("fecha_emision"), "tipo": tipo, "serie": serie_p, @@ -586,6 +662,35 @@ def _procesar_un_correo(email: dict, token: str, email_addr: str, download_folde return saved + def _calcular_fecha_vencimiento(fecha_base: str, condicion_pago: dict | None) -> str: + """ + Calcula la fecha de vencimiento sumando a ``fecha_base`` los días de + la condición de pago (PaymentTermsTypes) del proveedor. + + Usa ``NumberOfAdditionalDays`` como días a sumar; si ese valor es 0, + usa ``NumberOfAdditionalMonths * 30`` en su lugar. + + Args: + fecha_base: Fecha de contabilización, formato "YYYY-MM-DD". + condicion_pago: Resultado de ``sapb1_manager.obtener_condicion_pago`` + (campos ``NumberOfAdditionalDays``, ``NumberOfAdditionalMonths``), + o None si el proveedor no tiene condición de pago configurada. + + Returns: + str — Fecha de vencimiento, formato "YYYY-MM-DD". Si + ``condicion_pago`` es None, retorna ``fecha_base`` sin cambios. + """ + fecha = datetime.strptime(fecha_base, "%Y-%m-%d") + if not condicion_pago: + return fecha.strftime("%Y-%m-%d") + + dias = int(condicion_pago.get("NumberOfAdditionalDays") or 0) + if dias == 0: + dias = int(condicion_pago.get("NumberOfAdditionalMonths") or 0) * 30 + fecha += timedelta(days=dias) + + return fecha.strftime("%Y-%m-%d") + def _build_sap_draft(factura: dict, resultados_val: list[dict]) -> dict: """ Construye el payload JSON para crear un Draft en SAP B1 Service Layer @@ -654,10 +759,15 @@ def _procesar_un_correo(email: dict, token: str, email_addr: str, download_folde ruc_emisor = factura.get("ruc_emisor", "") razon_social_emisor = factura.get("razon_social_emisor", "") + card_code = f"PL{ruc_emisor}" + fecha_contabilizacion = datetime.now().strftime("%Y-%m-%d") emision = datetime.strptime(fecha_emision, "%Y-%m-%d") item_code = "C103002-A" if (emision.year, emision.month) < (datetime.now().year, datetime.now().month) else "C103002" + condicion_pago = sapb1_manager.obtener_condicion_pago(card_code) + fecha_vencimiento = _calcular_fecha_vencimiento(fecha_contabilizacion, condicion_pago) + if tiene_detraccion: # neto = round(total - monto_detraccion, 2) @@ -713,9 +823,9 @@ def _procesar_un_correo(email: dict, token: str, email_addr: str, download_folde return { "DocType": "dDocument_Items", "DocDate": fecha_contabilizacion, - "DocDueDate": fecha_emision, + "DocDueDate": fecha_vencimiento, "TaxDate": fecha_emision, - "CardCode": f"PL{ruc_emisor}", + "CardCode": card_code, "NumAtCard": f"{tipo}{serie}-{numero}", "U_IDC_NUMGR": "" if not guia_referencia else guia_referencia, "DocCurrency": "SOL", @@ -737,6 +847,8 @@ def _procesar_un_correo(email: dict, token: str, email_addr: str, download_folde "U_IDC_FLETE": "02", "U_IDC_LINEANE": "01", "U_IDC_VALREF": valor_referencial, + "U_VS_ANEXO_PDF": factura.get("ruta_red_pdf", ""), + "U_VS_ANEXO_XML": factura.get("ruta_red_xml", ""), "DocumentLines": doc_lines, "DocumentInstallments": installments, } @@ -830,7 +942,7 @@ def _procesar_un_correo(email: dict, token: str, email_addr: str, download_folde codigo_guia = f"{guia['tipo']}{guia['serie']}-{guia['numero']}" try: delivery_notes = sapb1_manager.get_delivery_notes( - tipo=guia["serie"], serie=guia["tipo"], numero=guia["numero"] + tipo=guia["tipo"], serie=guia["serie"], numero=guia["numero"] ) wh_set = set() @@ -1175,14 +1287,19 @@ def _procesar_un_correo(email: dict, token: str, email_addr: str, download_folde _log(f"⏭️ Draft NO creado: {serie}-{numero} — validación falló") html_body = _build_notification_body("skipped", factura, validation_table, valor_referencial_table) - # 16. Enviar notificación + # 16. Enviar notificación al remitente original, con copia al equipo if token: - outlook_utilities.send_email( - token, email_addr, - ["jlopez@aberio.com.pe", "gcalle@pucp.pe"], - f"Draft SAP B1 - {serie}-{numero}", - html_body, adjuntos_email, - ) + destinatario = email.get("sender") + if destinatario and destinatario != "Desconocido": + outlook_utilities.send_email( + token, email_addr, + [destinatario], + f"Draft SAP B1 - {serie}-{numero}", + html_body, adjuntos_email, + cc_recipients=["jlopez@aberio.com.pe", "gcalle@pucp.pe"], + ) + else: + _log("⚠️ No se pudo determinar el remitente, notificación no enviada") # ============================================================================ diff --git a/requirements.txt b/requirements.txt index bea4fa8..bba6614 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,16 +1,6 @@ -certifi==2026.6.17 -cffi==2.1.0 -charset-normalizer==3.4.9 -cryptography==49.0.0 -dotenv==0.9.9 -idna==3.18 -msal==1.37.0 -pdfminer.six==20260107 -pdfplumber==0.11.10 -pillow==12.3.0 -pycparser==3.0 -PyJWT==2.13.0 -pypdfium2==5.11.0 -python-dotenv==1.2.2 -requests==2.34.2 -urllib3==2.7.0 +hdbcli +msal +pdfplumber +python-dotenv +requests +urllib3 diff --git a/sapb1_manager.py b/sapb1_manager.py index b732160..10a4a83 100644 --- a/sapb1_manager.py +++ b/sapb1_manager.py @@ -14,7 +14,8 @@ import hana_manager urllib3.disable_warnings() -load_dotenv(dotenv_path=".env") +# Ruta absoluta: no depende del directorio de trabajo desde el que se lance el proceso +load_dotenv(dotenv_path=os.path.join(os.path.dirname(__file__), ".env")) SAPB1_URL = os.getenv("SAP_B1_URL", "") SAPB1_USER = os.getenv("SAP_B1_USER", "") @@ -101,7 +102,7 @@ def _log_response(method: str, endpoint: str, response: requests.Response, paylo f" ({len(response.content)} bytes)" ) if response.status_code >= 400: - print("⚠️ %s - %s", log_line, response.text[:300]) + print(f"⚠️ {log_line} - {response.text[:300]}") else: print(log_line) @@ -204,24 +205,45 @@ def get_purchase_invoice(doc_entry: int) -> dict: return result # ============================================================================ -# OBTENER GUIA (GET /DeliveryNotes) +# Tabla HANA de origen → entidad de Service Layer que hay que consultar. +# ODLN (Entregas) se expone en SL como DeliveryNotes; OWTR (Traslados de +# Inventario) se expone como StockTransfers. +# ============================================================================ +_TABLA_A_ENTIDAD_SL = { + "ODLN": "DeliveryNotes", + "OWTR": "StockTransfers", +} + + +# ============================================================================ +# OBTENER GUIA (GET /DeliveryNotes o /StockTransfers) # ============================================================================ def get_delivery_notes(tipo: str, serie: str, numero: str) -> list: """ - Obtiene DeliveryNotes de SAP B1. + Obtiene el documento completo de SAP B1 a partir del cual se validan los + precios de flete (líneas ``FL*`` en ``DocumentLines``). - Fase 1 — Busca DocEntry/DocNum/CardCode/CardName: - - Primero intenta Service Layer con $select. - - Si no hay resultados, fallback a HANA (consulta ODLN con LIKE). + Fase 1 — Busca DocEntry/DocNum/CardCode/CardName/Entidad: + - Primero intenta Service Layer con $select (entidad DeliveryNotes). + - Si no hay resultados, fallback a HANA (consulta ODLN y, si no + encuentra nada, OWTR). - Fase 2 — Por cada DocEntry obtenido, hace GET /DeliveryNotes({DocEntry}) - para recuperar el documento completo. + Fase 2 — Por cada DocEntry obtenido, hace GET a la entidad indicada en + "Entidad" (DeliveryNotes o StockTransfers). + - Si es DeliveryNotes, ese documento ya trae ``DocumentLines`` con + las líneas FL* y se retorna tal cual. + - Si es StockTransfers, ese documento es un traslado de inventario + y NO tiene líneas FL* ni precios. En ese caso se lee el campo + ``U_IDC_NUMOV`` (DocEntry de la Orden de Venta asociada) y se + hace GET a ``Orders(U_IDC_NUMOV)``, devolviendo ese documento en + su lugar para que la validación de precios funcione igual que + con DeliveryNotes. Returns: - list[dict] — Documentos completos de DeliveryNotes, o [] si no se - encontró nada en ninguna fuente. + list[dict] — Documentos completos, o [] si no se encontró nada en + ninguna fuente. """ - codigo = f"{serie}{tipo}-{numero}" + codigo = f"{tipo}{serie}-{numero}" # ── Fase 1: Obtener DocEntries ────────────────────────────────────── entries = _get_delivery_entries(tipo, serie, numero) @@ -234,27 +256,38 @@ def get_delivery_notes(tipo: str, serie: str, numero: str) -> list: docs = [] for entry in entries: doc_entry = entry["DocEntry"] + entidad = entry["Entidad"] try: - resp = forward_to_sapb1("GET", f"DeliveryNotes({doc_entry})") + resp = forward_to_sapb1("GET", f"{entidad}({doc_entry})") doc = resp.json() + print(f" │ └─ {entidad}({doc_entry}) obtenido") + + if entidad == "StockTransfers": + num_ov = doc.get("U_IDC_NUMOV") + if not num_ov: + print(f" │ ⚠️ StockTransfers({doc_entry}) sin U_IDC_NUMOV: no se puede validar precios") + continue + resp_ov = forward_to_sapb1("GET", f"Orders({num_ov})") + doc = resp_ov.json() + print(f" │ └─ Orders({num_ov}) obtenido (Orden de Venta de StockTransfers({doc_entry}))") + docs.append(doc) - print(f" │ └─ DeliveryNote({doc_entry}) obtenido") except Exception as e: - print(f" │ ⚠️ Error obteniendo DeliveryNote({doc_entry}): {e}") + print(f" │ ⚠️ Error obteniendo {entidad}({doc_entry}): {e}") return docs def _get_delivery_entries(tipo: str, serie: str, numero: str) -> list: - """Fase 1: intenta SL, fallback a HANA. Retorna [{DocEntry, DocNum, CardCode, CardName}, ...].""" - codigo = f"{serie}{tipo}-{numero}" + """Fase 1: intenta SL, fallback a HANA. Retorna [{DocEntry, DocNum, CardCode, CardName, Entidad}, ...].""" + codigo = f"{tipo}{serie}-{numero}" # ── Intentar Service Layer ─────────────────────────────────────────── try: filter_str = ( f"Cancelled eq 'tNO'" - f" and U_BPP_MDSD eq '{tipo}'" - f" and U_BPP_MDTD eq '{serie}'" + f" and U_BPP_MDTD eq '{tipo}'" + f" and U_BPP_MDSD eq '{serie}'" f" and contains(U_BPP_MDCD,'{numero}')" ) resp = forward_to_sapb1( @@ -267,6 +300,8 @@ def _get_delivery_entries(tipo: str, serie: str, numero: str) -> list: ) sl_entries = resp.json().get("value", []) if sl_entries: + for sl_entry in sl_entries: + sl_entry["Entidad"] = "DeliveryNotes" print(f" │ 🔍 Guía {codigo}: SL → {len(sl_entries)} DocEntry encontrados") return sl_entries @@ -279,6 +314,10 @@ def _get_delivery_entries(tipo: str, serie: str, numero: str) -> list: try: hana_entries = hana_manager.get_delivery(tipo, serie, numero) if hana_entries: + for hana_entry in hana_entries: + hana_entry["Entidad"] = _TABLA_A_ENTIDAD_SL.get( + hana_entry.get("Tabla"), "DeliveryNotes" + ) print(f" │ 🔍 Guía {codigo}: HANA → {len(hana_entries)} DocEntry encontrados") return hana_entries print(f" │ 🔍 Guía {codigo}: HANA → 0 registros") @@ -287,6 +326,44 @@ def _get_delivery_entries(tipo: str, serie: str, numero: str) -> list: return [] +# ============================================================================ +# OBTENER CONDICIÓN DE PAGO (GET /BusinessPartners + /PaymentTermsTypes) +# ============================================================================ +def obtener_condicion_pago(card_code: str) -> dict | None: + """ + Obtiene la condición de pago (PaymentTermsTypes) de un Business Partner, + para calcular la fecha de vencimiento de un documento. + + Args: + card_code: Código del Business Partner (ej. "PL20555929006"). + + Returns: + dict | None — {"GroupNumber", "PaymentTermsGroupName", + "NumberOfAdditionalMonths", "NumberOfAdditionalDays"}, o None si el + CardCode no existe, no tiene condición de pago asociada, o falló la + consulta a Service Layer. + """ + try: + resp_bp = forward_to_sapb1( + "GET", f"BusinessPartners('{card_code}')", + params={"$select": "CardCode,PayTermsGrpCode"}, + ) + group_num = resp_bp.json().get("PayTermsGrpCode") + if group_num is None: + return None + + resp_terms = forward_to_sapb1("GET", f"PaymentTermsTypes({group_num})") + terms = resp_terms.json() + return { + "GroupNumber": terms.get("GroupNumber"), + "PaymentTermsGroupName": terms.get("PaymentTermsGroupName"), + "NumberOfAdditionalMonths": terms.get("NumberOfAdditionalMonths") or 0, + "NumberOfAdditionalDays": terms.get("NumberOfAdditionalDays") or 0, + } + except Exception as e: + print(f" │ ⚠️ Error obteniendo condición de pago de {card_code}: {e}") + return None + # ============================================================================ # OBTENER ZONAS (GET /U_IDC_ZONAS) # ============================================================================ diff --git a/sunat_schema.py b/sunat_schema.py index 2ec5b96..2342237 100644 --- a/sunat_schema.py +++ b/sunat_schema.py @@ -32,6 +32,7 @@ GUIAS_NOTES_PATTERNS = [ # Agregar aquí nuevas variantes a medida que aparezcan en facturas de otros clientes. VALOR_REFERENCIAL_PATTERNS = [ r"VALOR\s+REFERENCIAL\.?\s*:?\s*(?:S/\.?\s*)?([\d,]+\.\d+)", # "VALOR REFERENCIAL: S/ 2,345.00" / "VALOR REFERENCIAL: 468.86" + r"VALOR\s+REFER\.?\s*:?\s*(?:S/\.?\s*)?([\d,]+\.\d+)", # "VALOR REFER\t:S/ 1431.16" r"VALOR\s+REF\.?\s*:?\s*(?:S/\.?\s*)?([\d,]+\.\d+)", # "VALOR REF:S/ 1,139.75" r"VAL\.?\s*REF\.?\s*:?\s*(?:S/\.?\s*)?([\d,]+\.\d+)", # "VAL.REF.:S/700.25" r"V\.?\s*REF\.?\s*:?\s*(?:S/\.?\s*)?([\d,]+\.\d+)", # "V.REF: S/ 2940.80 TN: 36.85" @@ -128,7 +129,7 @@ class DatosComprobante: refs_str = "" if self.documentos_referencia: refs_str = "\n Documentos Ref: " + ", ".join( - f"{ref.id} (Tipo {ref.tipo})" for ref in self.documentos_referencia + f"{ref.serie}-{ref.numero} (Tipo {ref.tipo})" for ref in self.documentos_referencia ) detraccion_str = "" if self.tiene_detraccion: @@ -686,7 +687,7 @@ def extraer_datos_xml(ruta_xml: str) -> Optional[dict]: return datos.to_dict() if "DespatchAdvice" in tag: tipo = _find_text(root, "desp:DespatchAdviceTypeCode", NAMESPACES) or _find_text(root, "cbc:DespatchAdviceTypeCode", NAMESPACES) or "" - if tipo in ["31"]: + if tipo in ("09", "31"): datos = _parse_despatch_advice(root) return datos.to_dict() return None diff --git a/tests/completar_guias_pipeline.py b/tests/completar_guias_pipeline.py new file mode 100644 index 0000000..e1cfcba --- /dev/null +++ b/tests/completar_guias_pipeline.py @@ -0,0 +1,76 @@ +import json +import os +from glob import glob + +CARPETA_BASE = os.path.join(os.path.dirname(__file__), "correos_prueba") + + +def _doc_key(d): + return (d.get("tipo"), d.get("serie"), d.get("numero")) + + +def completar_guias_desde_pdf(xml_path: str, pdf_path: str) -> int: + with open(xml_path, encoding="utf-8") as f: + xml_data = json.load(f) + try: + with open(pdf_path, encoding="utf-8") as f: + pdf_data = json.load(f) + except FileNotFoundError: + return 0 + + pdf_by_key = {_doc_key(d): d for d in pdf_data} + total_copiadas = 0 + + for xd in xml_data: + k = _doc_key(xd) + + has_all_guias = all( + len(linea.get("guias_remision") or []) > 0 + for linea in xd.get("lineas", []) + ) + if has_all_guias: + continue + + pd = pdf_by_key.get(k) + if not pd: + continue + + for li, xl in enumerate(xd.get("lineas", [])): + if len(xl.get("guias_remision") or []) > 0: + continue + pl = pd["lineas"][li] if li < len(pd.get("lineas", [])) else {} + p_gr = pl.get("guias_remision") or [] + if p_gr: + xl["guias_remision"] = list(p_gr) + total_copiadas += len(p_gr) + # También copiar guia_transportista si XML no tiene + if not xl.get("guia_transportista") and pl.get("guia_transportista"): + xl["guia_transportista"] = dict(pl["guia_transportista"]) + + if total_copiadas > 0: + with open(xml_path, "w", encoding="utf-8") as f: + json.dump(xml_data, f, ensure_ascii=False, indent=2) + + return total_copiadas + + +def main(): + carpetas = sorted(glob(os.path.join(CARPETA_BASE, "[0-9][0-9][0-9]_correo"))) + total_global = 0 + for fp in carpetas: + folder = os.path.basename(fp) + idx = folder[:3] + xml_path = os.path.join(fp, f"xml_resultado_{idx}.json") + pdf_path = os.path.join(fp, f"pdf_resultado_{idx}.json") + if not os.path.exists(xml_path): + continue + n = completar_guias_desde_pdf(xml_path, pdf_path) + if n > 0: + print(f" {folder}: {n} guías copiadas") + total_global += n + + print(f"\nTotal guías copiadas: {total_global}") + + +if __name__ == "__main__": + main() diff --git a/tests/correos_prueba/001_correo/10060028686-01-F002-2450.xml b/tests/correos_prueba/001_correo/10060028686-01-F002-2450.xml new file mode 100644 index 0000000..bb4d898 --- /dev/null +++ b/tests/correos_prueba/001_correo/10060028686-01-F002-2450.xml @@ -0,0 +1 @@ +EBIZ802580248023967096738185904390499218913090999925bCmAYPIFk/DmyDKNUBWpbxlZbWw=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AQAB2.12.0F002-000024502026-05-2608:51:4101SETECIENTOS TREINTA Y SEIS Y 78/100 SOLESOperación sujeta a detracciónPEN---IDSignKG10060028686#signatureKG100600286861501150000PE20100029741150143PEDetraccion00100-099-000791Detraccion0274.0029.47FormaPagoCredito707.31FormaPagoCuota001707.312026-06-15112.39624.39112.391000VAT624.39736.78736.781DE VEHICULO DE PLACA D8U934/D1L982P.PARTIDA:AV. ATOCONGO 1860-VMTP.LLEGADA:MZ.P.LT 20 URB.NUEVO LURIN LT 21GRE REMITENTE: T001-00128912GRT:V001-00000194CONF.VEH T3S3 CARGA 23,375TNVALOR REFERENCIAL S/736.78UND-1.0000624.38736.7801112.39624.38112.3918.00101000VAT000000624.38 \ No newline at end of file diff --git a/tests/correos_prueba/001_correo/20506689326-31-V002-11.xml b/tests/correos_prueba/001_correo/20506689326-31-V002-11.xml new file mode 100644 index 0000000..a5ab1d8 --- /dev/null +++ b/tests/correos_prueba/001_correo/20506689326-31-V002-11.xml @@ -0,0 +1,183 @@ + + + + + + + + jh2FnXCc6mcZFOLNh4yidKCBNOE=QkBKgCtC1pMy8xW4kF227KpiRiTSqwS9rmx4Ja1NHcnyh+2CYOLoeWRX1CsfGZe2Twayxe79XojFYvFiDsl7uM6PUySq7BB1OdBj6ZAR4TJYLUQXuBBXRFL2DI4j6Btuu/q8AIPHmrJepk/2tWJqb/oiBo2FhoGdEXCmkyZgHNAIIiRYQD7l00GhDVolirDrkii6zo/grWNFUGZC95SRFxgeQF23gED2PwakIzzMOqQrb/7IWh0er+ZF+Vk8QB8Y1CGHtRVytKMX+sT4K+G4O/tTT5GCQizs9HZjN5kxB1VMtM4GlUy4dpWuVblZKLREpZ9RFP2glThrohebgTGq1g== +MIIFbDCCBFSgAwIBAgIIFUldkkH9yjEwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjYwMjAyMTM1OTU0WhcNMjcwMjAyMTM1OTAwWjCCARMxMTAvBgNVBAkMKExULiAyMCBNWi4gQiBVUkIuIFJFU0lELiBIT05PUiBZIExFQUxUQUQxITAfBgkqhkiG9w0BCQEWEm1hbGlhZ2FAbWlnYWZpLmNvbTEsMCoGA1UEAwwjU09GVFdBUkUgREUgRkFDVFVSQUNJT04gRUxFQ1RST05JQ0ExLDAqBgNVBAsMI0ZBQ1RVUkEgRUxFQ1RST05JQ0EgUlVDIDIwNTA2Njg5MzI2MSEwHwYDVQQLDBhWYWxpZGFkbyBwb3IgTGxhbWEucGUgRVIxIDAeBgNVBAoMF01BVEVSSUFMRVMgRC9DQVNBIFMuQS5DMQ0wCwYDVQQHDARMSU1BMQswCQYDVQQGEwJQRTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOej26BfjO7htv3e1lPaj6I4rzJanTTGMUkD2fkEt4PLMnb7AWrht9cDj0SvqofT8w56jrlqLjV2GpsVgxMTUe+c5Eir2IO+IL8pQva1TFRwpzWCseyb5by1igpCdNKTeJH34DkoRLogc4c2pqIKtWYsPX3QsjEy0rjW6+7sX/JNAQcgrzgJWw4WZwIIjK3PkF7s1O0VqLjTaZhHhbP9bPkMO8u+0RogjKZvBGfKY6ftEMjaPqTtB6k6zbZx7pPk+bRNMjSOncIFBehbaHYt63CeDlJHDNf5u+4jSWgp5I4nxHggfMYmeHOZGiOGYh6hClITOq+/Mg67g5FUl9416/UCAwEAAaOCAY0wggGJMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUXYhbretl+/5oouTZbz1XcqLvK5kwZwYIKwYBBQUHAQEEWzBZMDUGCCsGAQUFBzAChilodHRwOi8vY3J0LmxsYW1hLnBlL2xsYW1hcGVzdGFuZGFyZGNhLmNlcjAgBggrBgEFBQcwAYYUaHR0cDovL29jc3AubGxhbWEucGUwHQYDVR0RBBYwFIESbWFsaWFnYUBtaWdhZmkuY29tMEYGA1UdIAQ/MD0wOwYNKwYBBAGDl3cAAQADATAqMCgGCCsGAQUFBwIBFhxodHRwczovL2xsYW1hLnBlL3JlcG9zaXRvcnkvMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDA6BgNVHR8EMzAxMC+gLaArhilodHRwOi8vY3JsLmxsYW1hLnBlL2xsYW1hcGVzdGFuZGFyZGNhLmNybDAdBgNVHQ4EFgQUTtWOjRJrY+hai0Np8dEDrqh3tIcwDgYDVR0PAQH/BAQDAgbAMA0GCSqGSIb3DQEBCwUAA4IBAQCIe0oUU2YJTZY0jULGUgE09eyyE+qh+V6MZLGPyeieuM+sS7U2uqoctQLS2VVIbx+pPoJ/ubmDS4zxMgxejcyJwiW0u9cn1bUS7XxQ4W5lSdRY5vi1MOTB2PXE3h1ESB6T6EJcY4P+azSNXgxOtnUzeXRxGSOR2RcoSiBocfJWKWjcOrVyJ4hksLKhjjm7hwi4zWD4chiJfaaHx2an9vpx8/gZKy4zz4+q1kDSoXL4FqY7DWGtyxWJVW/J2nbTj8PdV6YDwkboLPPwFhDtN0OE7VBqpXIItxqXLGPWupL7PSnhYDAB1uDxWbfkBx7WtIpKMxT7zvmwzaTTlvEOgqnH + + + 2.1 + 2.0 + V002-11 + 2026-05-11 + 13:05:50 + 31 + + + T001-128662 + 09 + Guía de remisión remitente + + + 20100029741 + + + + + T001-128661 + 09 + Guía de remisión remitente + + + 20100029741 + + + + + signatureFACTURALOPERU + FACTURALO + + + 20506689326 + + + + + + + + #signatureFACTURALOPERU + + + + + + + + 20506689326 + + + + + + + + + + + 20506689326 + + + + + + + + + + + SUNAT_Envio + + 31875.00 + + + + + 2026-05-11 + + + + + 09715404 + + HUAMAN ÑAHUE, JUAN + + DE DIOS + + Principal + + + Q09715404 + + + + + + + + + 150502 + + + + + + + + + 150143 + + + + + + + + + 20100029741 + + + + + + + + + + - + + + + F6P722 + + 15M24026972E + + + + + + + + + 1 + + 550.0000 + + 1 + + + + + + + + + + + 2 + + 200.0000 + + 2 + + + + + + + + + diff --git a/tests/correos_prueba/001_correo/xml_resultado_001.json b/tests/correos_prueba/001_correo/xml_resultado_001.json new file mode 100644 index 0000000..90b9ce4 --- /dev/null +++ b/tests/correos_prueba/001_correo/xml_resultado_001.json @@ -0,0 +1,114 @@ +[ + { + "ruc_emisor": "10060028686", + "razon_social_emisor": "DANSA", + "fecha_emision": "2026-05-26", + "tipo": "01", + "serie": "F002", + "numero": "2450", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 736.78, + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 29.47, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERV.TRANS.550 BLS ULTRA HSX1.3396", + "cantidad": 1.0, + "precio_unitario": 736.78, + "total_linea": 624.38, + "notes_text": "DE VEHICULO DE PLACA D8U934/D1L982 | P.PARTIDA:AV. ATOCONGO 1860-VMT | P.LLEGADA:MZ.P.LT 20 URB.NUEVO LURIN LT 21 | GRE REMITENTE: T001-00128912 | GRT:V001-00000194 | CONF.VEH T3S3 CARGA 23,375TN | VALOR REFERENCIAL S/736.78 | UND | -", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128912" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "V001", + "numero": "194" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/001_correo/10060028686-01-F002-2450.xml", + "ruta_pdf": null + }, + { + "ruc_emisor": "20506689326", + "razon_social_emisor": "MATERIALES D`CASA S.A.C", + "fecha_emision": "2026-05-11", + "tipo": "31", + "serie": "V002", + "numero": "11", + "ruc_receptor": "20506689326", + "razon_social_receptor": "MATERIALES D`CASA S.A.C", + "total_factura": null, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128662" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128661" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": "AV. ATOCONGO 1860", + "punto_llegada": "CA. PANAMERICANA SUR KM 98 SANTA CRUZ", + "peso_bruto": "31875.00", + "unidad_peso_bruto": "KGM", + "fecha_traslado": "2026-05-11", + "vehiculo_principal": "F6P722", + "vehiculo_secundario": null, + "licencia_conductor": "Q09715404", + "nombre_conductor": "HUAMAN ÑAHUE, JUAN", + "documento_conductor": "09715404", + "ubigeo_partida": "150143", + "lineas": [ + { + "descripcion": "BOLSA CEMENTO APU", + "cantidad": 550.0, + "precio_unitario": 0.0, + "total_linea": 0.0, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "BOLSA CEMENTO ANDINO ULTRA HS", + "cantidad": 200.0, + "precio_unitario": 0.0, + "total_linea": 0.0, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + } + ], + "tipo_descripcion": "Guía de Remisión Transportista", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/001_correo/20506689326-31-V002-11.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/002_correo/20340843607-01-F002-2188.pdf b/tests/correos_prueba/002_correo/20340843607-01-F002-2188.pdf new file mode 100644 index 0000000..ac6ac95 Binary files /dev/null and b/tests/correos_prueba/002_correo/20340843607-01-F002-2188.pdf differ diff --git a/tests/correos_prueba/002_correo/20340843607-01-F002-2188.xml b/tests/correos_prueba/002_correo/20340843607-01-F002-2188.xml new file mode 100644 index 0000000..5cb6b60 --- /dev/null +++ b/tests/correos_prueba/002_correo/20340843607-01-F002-2188.xml @@ -0,0 +1 @@ +EBIZ8025802480239670967396118185904390499218913090999925Jwf047g91naqJakpWbK9LIu1bvo=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AQAB2.12.0F002-000021882026-05-2817:21:2501NOVECIENTOS SETENTA Y SIETE Y 91/100 SOLESOperación sujeta a detracciónPEN---IDSignKG20340843607#signatureKG203408436071501400000PE20100029741150143PEDetraccion00100-099-006366Detraccion0274.0039.12FormaPagoCredito938.79FormaPagoCuota001938.792026-06-05149.17828.74149.171000VAT828.74977.91977.911P.PARTI.AV. ATOCONGO 1860 VILLA MARIA DEL TRIUNFOP.LLEGADA. AV SANTIAGO DE SURCO 4869 SURCO LIMAGRR.T001-00129352 GRT.V001-227 CONF. VEH.T3S3CARGA 31.025 TN VAL. REF S/977.91 MTC 151307699PLACA :D7Y800-D1K975UND-1.0000828.73977.9101149.17828.73149.1718.00101000VAT000000828.73 \ No newline at end of file diff --git a/tests/correos_prueba/002_correo/20340843607-31-V001-227.pdf b/tests/correos_prueba/002_correo/20340843607-31-V001-227.pdf new file mode 100644 index 0000000..33beec8 Binary files /dev/null and b/tests/correos_prueba/002_correo/20340843607-31-V001-227.pdf differ diff --git a/tests/correos_prueba/002_correo/20340843607-31-V001-227.xml b/tests/correos_prueba/002_correo/20340843607-31-V001-227.xml new file mode 100644 index 0000000..d427d93 --- /dev/null +++ b/tests/correos_prueba/002_correo/20340843607-31-V001-227.xml @@ -0,0 +1 @@ +LJbqWnNTP13375hfdWAHuk/S37w=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AQAB2.12.0V001-000002272026-05-2211:54:5731ORR0023116 Placa Secundaria:D1K975T001-01293520920100029741IDSignKG20340843607#signatureKG2034084360720340843607SUNAT_Envio31025.0002026-05-2215130769942857370YOMAR ERIKSONLANASCA VILLEGASPrincipalD4285737015014015014320100029741D7Y800D1K9751730.001CEMENTO SOL TIPO I - SOL006000 \ No newline at end of file diff --git a/tests/correos_prueba/002_correo/pdf_resultado_002.json b/tests/correos_prueba/002_correo/pdf_resultado_002.json new file mode 100644 index 0000000..e9402f8 --- /dev/null +++ b/tests/correos_prueba/002_correo/pdf_resultado_002.json @@ -0,0 +1,57 @@ +[ + { + "ruc_emisor": "20340843607", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. RUC: 20100029741", + "fecha_emision": "28/05/2026", + "tipo": "01", + "serie": "F002", + "numero": "2188", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. RUC: 20100029741", + "total_factura": "977.91", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "39.12", + "lineas": [ + { + "descripcion": "(afecto al IGV) SERVI. DE TRANSP. 730 BLS. X 1.3396 Marca: - Párametro Legado: CARGA 31.025 TN VAL. REF S/977.91 MTC 151307699 Párametro Legado: GRR.T001-00129352 GRT. V001-227 CONF. VEH.T3S3 000000 ZZ 828.73 Párametro Legado: P.LLEGADA. AV SANTIAGO DE SURCO 4869 SURCO LIMA Párametro Legado: P.PARTI.AV. ATOCONGO 1860 VILLA MARIA DEL TRIUNFO Párametro Legado: PLACA :D7Y800-D1K975 Unidad de Medida: UND NOVECIENTOS SETENTA Y SIETE Y 91/100 SOLES Op. Gravada S/ 828.74 I.G.V S/ 149.17", + "cantidad": "1.00", + "precio_unitario": "0.00", + "total_linea": "828.73", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129352" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "V001", + "numero": "227" + } + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/002_correo/20340843607-01-F002-2188.pdf" + }, + { + "ruc_emisor": "20340843607", + "razon_social_emisor": "CEMFISUR EIRL RUC: 20340843607", + "fecha_emision": "22/05/2026", + "tipo": "31", + "serie": "V001", + "numero": "227", + "ruc_receptor": "20100029741", + "razon_social_receptor": "CEMFISUR EIRL RUC: 20340843607", + "total_factura": null, + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/002_correo/20340843607-31-V001-227.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/002_correo/xml_resultado_002.json b/tests/correos_prueba/002_correo/xml_resultado_002.json new file mode 100644 index 0000000..269bdc4 --- /dev/null +++ b/tests/correos_prueba/002_correo/xml_resultado_002.json @@ -0,0 +1,100 @@ +[ + { + "ruc_emisor": "20340843607", + "razon_social_emisor": "CEMFISUR", + "fecha_emision": "2026-05-28", + "tipo": "01", + "serie": "F002", + "numero": "2188", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 977.91, + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 39.12, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVI. DE TRANSP. 730 BLS. X 1.3396", + "cantidad": 1.0, + "precio_unitario": 977.91, + "total_linea": 828.73, + "notes_text": "P.PARTI.AV. ATOCONGO 1860 VILLA MARIA DEL TRIUNFO | P.LLEGADA. AV SANTIAGO DE SURCO 4869 SURCO LIMA | GRR.T001-00129352 GRT.V001-227 CONF. VEH.T3S3 | CARGA 31.025 TN VAL. REF S/977.91 MTC 151307699 | PLACA :D7Y800-D1K975 | UND | -", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129352" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "V001", + "numero": "227" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/002_correo/20340843607-01-F002-2188.xml", + "ruta_pdf": null + }, + { + "ruc_emisor": "20340843607", + "razon_social_emisor": "CEMFISUR E.I.R.L.", + "fecha_emision": "2026-05-22", + "tipo": "31", + "serie": "V001", + "numero": "227", + "ruc_receptor": "20340843607", + "razon_social_receptor": "CEMFISUR EIRL", + "total_factura": null, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129352" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": "AV. ATOCONGO 1860", + "punto_llegada": "AV.SANTIAGO DE SURCO 4869 (EX-T.MARSANO) - SANTIAGO DE SURCO", + "peso_bruto": "31025.000", + "unidad_peso_bruto": "KGM", + "fecha_traslado": "2026-05-22", + "vehiculo_principal": "D7Y800", + "vehiculo_secundario": "D1K975", + "licencia_conductor": "D42857370", + "nombre_conductor": "YOMAR ERIKSON", + "documento_conductor": "42857370", + "ubigeo_partida": "150143", + "lineas": [ + { + "descripcion": "CEMENTO SOL TIPO I - SOL", + "cantidad": 730.0, + "precio_unitario": 0.0, + "total_linea": 0.0, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + } + ], + "tipo_descripcion": "Guía de Remisión Transportista", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/002_correo/20340843607-31-V001-227.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/003_correo/20506689326-01-FE07-1559.pdf b/tests/correos_prueba/003_correo/20506689326-01-FE07-1559.pdf new file mode 100644 index 0000000..1e4640d Binary files /dev/null and b/tests/correos_prueba/003_correo/20506689326-01-FE07-1559.pdf differ diff --git a/tests/correos_prueba/003_correo/20506689326-01-FE07-1559.xml b/tests/correos_prueba/003_correo/20506689326-01-FE07-1559.xml new file mode 100644 index 0000000..58672aa --- /dev/null +++ b/tests/correos_prueba/003_correo/20506689326-01-FE07-1559.xml @@ -0,0 +1,208 @@ + + + + + + + + Dkql0/yqrvnT3UZtGx52HnfykMY=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 + + + 2.1 + 2.0 + FE07-1559 + 2026-05-13 + 17:20:00 + 2026-05-27 + 01 + + PEN + + V002-11 + 31 + + + signatureFACTURALOPERU + FACTURALO + + + 20506689326 + + + + + + + + #signatureFACTURALOPERU + + + + + + + 20506689326 + + + + + + + + 150115 + 0000 + LIMA + LIMA + LA VICTORIA + + + + + PE + + + + + 994 295 061 + materialesdcasa@gmail.com + + + + + + + 20100029741 + + + + + 150143 + + + + + PE + + + + + recepcion@aberio.com.pe + + + + + FormaPago + Credito + 1420.65 + + + FormaPago + Cuota001 + 56.83 + 2026-05-27 + + + FormaPago + Cuota002 + 1363.82 + 2026-05-27 + + + 216.71 + + 1203.94 + 216.71 + + + 1000 + IGV + VAT + + + + + + 1203.94 + 1420.65 + 1420.65 + + + 1 + 550 + 882.89 + + + 1.894200 + 01 + + + + 158.92 + + 882.89 + 158.92 + + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + + + 10000541 + + + 51122201 + + + + 1.605254 + + + + 2 + 200 + 321.05 + + + 1.894200 + 01 + + + + 57.79 + + 321.05 + 57.79 + + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + + + 10000539 + + + 51122199 + + + + 1.605254 + + + diff --git a/tests/correos_prueba/003_correo/20506689326-31-V002-11.pdf b/tests/correos_prueba/003_correo/20506689326-31-V002-11.pdf new file mode 100644 index 0000000..05b5e55 Binary files /dev/null and b/tests/correos_prueba/003_correo/20506689326-31-V002-11.pdf differ diff --git a/tests/correos_prueba/003_correo/20506689326-31-V002-11.xml b/tests/correos_prueba/003_correo/20506689326-31-V002-11.xml new file mode 100644 index 0000000..a5ab1d8 --- /dev/null +++ b/tests/correos_prueba/003_correo/20506689326-31-V002-11.xml @@ -0,0 +1,183 @@ + + + + + + + + jh2FnXCc6mcZFOLNh4yidKCBNOE=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 + + + 2.1 + 2.0 + V002-11 + 2026-05-11 + 13:05:50 + 31 + + + T001-128662 + 09 + Guía de remisión remitente + + + 20100029741 + + + + + T001-128661 + 09 + Guía de remisión remitente + + + 20100029741 + + + + + signatureFACTURALOPERU + FACTURALO + + + 20506689326 + + + + + + + + #signatureFACTURALOPERU + + + + + + + + 20506689326 + + + + + + + + + + + 20506689326 + + + + + + + + + + + SUNAT_Envio + + 31875.00 + + + + + 2026-05-11 + + + + + 09715404 + + HUAMAN ÑAHUE, JUAN + + DE DIOS + + Principal + + + Q09715404 + + + + + + + + + 150502 + + + + + + + + + 150143 + + + + + + + + + 20100029741 + + + + + + + + + + - + + + + F6P722 + + 15M24026972E + + + + + + + + + 1 + + 550.0000 + + 1 + + + + + + + + + + + 2 + + 200.0000 + + 2 + + + + + + + + + diff --git a/tests/correos_prueba/003_correo/pdf_resultado_003.json b/tests/correos_prueba/003_correo/pdf_resultado_003.json new file mode 100644 index 0000000..5c88d52 --- /dev/null +++ b/tests/correos_prueba/003_correo/pdf_resultado_003.json @@ -0,0 +1,55 @@ +[ + { + "ruc_emisor": "20506689326", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "27/05/2026", + "tipo": "01", + "serie": "FE07", + "numero": "1559", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": "1363.82", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": "4", + "monto_detraccion": "56.83", + "lineas": [ + { + "descripcion": "550 ZZ SERVICIO TRANSPORTE CEMENTO APU 027 SUNAT 0", + "cantidad": "1.89", + "precio_unitario": "1.89", + "total_linea": "1041.81", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "200 ZZ SERVICIO TRANSPORTE CEMTO ANDINO/ULTRA 027 SUNAT 0", + "cantidad": "1.89", + "precio_unitario": "1.89", + "total_linea": "378.84", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/003_correo/20506689326-01-FE07-1559.pdf" + }, + { + "ruc_emisor": "20506689326", + "razon_social_emisor": "MATERIALES D`CASA S.A.C", + "fecha_emision": null, + "tipo": "31", + "serie": "V002", + "numero": "11", + "ruc_receptor": "20100029741", + "razon_social_receptor": "MATERIALES D`CASA S.A.C", + "total_factura": null, + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/003_correo/20506689326-31-V002-11.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/003_correo/xml_resultado_003.json b/tests/correos_prueba/003_correo/xml_resultado_003.json new file mode 100644 index 0000000..3c5c3bf --- /dev/null +++ b/tests/correos_prueba/003_correo/xml_resultado_003.json @@ -0,0 +1,139 @@ +[ + { + "ruc_emisor": "20506689326", + "razon_social_emisor": "MATERIALES D`CASA S.A.C", + "fecha_emision": "2026-05-13", + "tipo": "01", + "serie": "FE07", + "numero": "1559", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1420.65, + "documentos_referencia": [ + { + "tipo": "31", + "serie": "V002", + "numero": "11" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO TRANSPORTE CEMENTO APU 027 SUNAT", + "cantidad": 550.0, + "precio_unitario": 1.8942, + "total_linea": 882.89, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128662" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "V002", + "numero": "11" + } + }, + { + "descripcion": "SERVICIO TRANSPORTE CEMTO ANDINO/ULTRA 027 SUNAT", + "cantidad": 200.0, + "precio_unitario": 1.8942, + "total_linea": 321.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128661" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "V002", + "numero": "11" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/003_correo/20506689326-01-FE07-1559.xml", + "ruta_pdf": null + }, + { + "ruc_emisor": "20506689326", + "razon_social_emisor": "MATERIALES D`CASA S.A.C", + "fecha_emision": "2026-05-11", + "tipo": "31", + "serie": "V002", + "numero": "11", + "ruc_receptor": "20506689326", + "razon_social_receptor": "MATERIALES D`CASA S.A.C", + "total_factura": null, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128662" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128661" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": "AV. ATOCONGO 1860", + "punto_llegada": "CA. PANAMERICANA SUR KM 98 SANTA CRUZ", + "peso_bruto": "31875.00", + "unidad_peso_bruto": "KGM", + "fecha_traslado": "2026-05-11", + "vehiculo_principal": "F6P722", + "vehiculo_secundario": null, + "licencia_conductor": "Q09715404", + "nombre_conductor": "HUAMAN ÑAHUE, JUAN", + "documento_conductor": "09715404", + "ubigeo_partida": "150143", + "lineas": [ + { + "descripcion": "BOLSA CEMENTO APU", + "cantidad": 550.0, + "precio_unitario": 0.0, + "total_linea": 0.0, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "BOLSA CEMENTO ANDINO ULTRA HS", + "cantidad": 200.0, + "precio_unitario": 0.0, + "total_linea": 0.0, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + } + ], + "tipo_descripcion": "Guía de Remisión Transportista", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/003_correo/20506689326-31-V002-11.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/004_correo/20551006914-01-F004-5989.xml b/tests/correos_prueba/004_correo/20551006914-01-F004-5989.xml new file mode 100644 index 0000000..88fdee8 --- /dev/null +++ b/tests/correos_prueba/004_correo/20551006914-01-F004-5989.xml @@ -0,0 +1,7 @@ +8LhsuraTHRFahN/X2RKshF/bPLM=LVrsrAh9EwLNKiczJjoHiLSjH9JVa47YaKsflcQOlaxmGtmV3jMBVS4IKUVAurgypeSIOdHFQRhPA2FzT0nAB0ROUhqnrAlRKX0nY5/lFb0WZOjSe7IKbV8bDwYhjdYC/oo03/3sgNudJUYW6zErMyooyY0UX4GV4dZfqNxEqdeQvZiz+2QdLGPWUb+Ibq/fGHseignAE8O2cEHmDDvqk6ABGtEkPc9JPpYep14KEzws9LeheVaOAzPsk/Oe4tDM+XmYMk+jE1riHlTDZDPEVUr1Liw5uU1kVdkij3L9+fdmkP5BwbkHgEJFljvRepuI8N66b8xKwqFmyYlBqHdehA==C=PE, L=LIMA, O=R P TRANSFER S.A.C., OU=Validado por Llama.pe ER, OU=FACTURA ELECTRONICA RUC 20551006914, CN=SOFTWARE DE FACTURACION ELECTRONICA, E=contabilidad@difenas.com.pe, STREET=AV. LIMA NRO. 2210 P.J. JOSE GALVEZMIIFdjCCBF6gAwIBAgIISJfl+vjrcZUwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQxMDI0MTY1NTM2WhcNMjYxMDI0MTY1NTAwWjCCARQxLDAqBgNVBAkMI0FWLiBMSU1BIE5STy4gMjIxMCBQLkouIEpPU0UgR0FMVkVaMSowKAYJKoZIhvcNAQkBFhtjb250YWJpbGlkYWRAZGlmZW5hcy5jb20ucGUxLDAqBgNVBAMMI1NPRlRXQVJFIERFIEZBQ1RVUkFDSU9OIEVMRUNUUk9OSUNBMSwwKgYDVQQLDCNGQUNUVVJBIEVMRUNUUk9OSUNBIFJVQyAyMDU1MTAwNjkxNDEhMB8GA1UECwwYVmFsaWRhZG8gcG9yIExsYW1hLnBlIEVSMR0wGwYDVQQKDBRSICBQIFRSQU5TRkVSIFMuQS5DLjENMAsGA1UEBwwETElNQTELMAkGA1UEBhMCUEUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC67JWukAAwxXhKV/LTmrjHALY44d1pU9Y3JJE6TSDgjtimIs1h7eZot/OC9d+OGUhy383TMSxqdIM4W77PMDRH5Iefh6H5EKaPI2YsCIc3lT3N15JdK+EQNyPeAh/mC4OWrGuVXDgU3MPD7EbtgjvYG8wLEJUIJBxw9bil4SiTLHPiKpRWySrtWPZeBTYfGdR/7xoRxSRSCOwgi04lp8lEv8Wwfyb2rsrltRrx44RGZFLy0GRjLw0ktzx2OL3VYGK51x0YD91wIKiFUN3co3vgLwyiuLiEr09QXpFm9zUjupxT9V3RtmyWOv2x6cFAWswLGYNVl7JnspVGae8GV23nAgMBAAGjggGWMIIBkjAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFF2IW63rZfv+aKLk2W89V3Ki7yuZMGcGCCsGAQUFBwEBBFswWTA1BggrBgEFBQcwAoYpaHR0cDovL2NydC5sbGFtYS5wZS9sbGFtYXBlc3RhbmRhcmRjYS5jZXIwIAYIKwYBBQUHMAGGFGh0dHA6Ly9vY3NwLmxsYW1hLnBlMCYGA1UdEQQfMB2BG2NvbnRhYmlsaWRhZEBkaWZlbmFzLmNvbS5wZTBGBgNVHSAEPzA9MDsGDSsGAQQBg5d3AAEAAwEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9sbGFtYS5wZS9yZXBvc2l0b3J5LzAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5sbGFtYS5wZS9sbGFtYXBlc3RhbmRhcmRjYS5jcmwwHQYDVR0OBBYEFAWB+XQmngVqzCM13NVubfDKC12wMA4GA1UdDwEB/wQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAQEAu4Ajzm//yKf4bONcHdDISUaC3P8rh5CW0NSkVS/MsrXBGB3SCJXk2LR7wLVrUco3/DP3wMkel4XVDL6ftTfim+XmLXeAnuoFYTBGVJtuZMvuZAsncGIu3iFOE1K1v8yhzUykh+L7gLgPz60o8zHOXN48G3mHeNtaz3gSPGFSy0q6abiSN1n1A0VH8jj0PNf5Q0kjwdwfv0IhUAImgvLcPYeWXPobN2Ad4EqTkgvwOlLg1J7Tv6GJybjGKFSAHWi1Bbu+hegTS8SgGPDmXTsTe0ZPZZ+YzvupS/zzDEYkC1OV7b/56t4sFn5KVrvpZqsoisqCzMV4NOc0XgbTsMVoJg==2.12.0F004-00059892026-05-2901DOSCIENTOS VEINTISEIS CON 45/100 SOLESPEN1signatureCF20551006914signatureCF205510069141501430000-LIMALIMAVILLA MARIA DEL TRIUNFOAV. LIMA NRO. 2210 P.J. JOSE GALVEZPE20100029741AV. 26 DE NOVIEMBRE NRO. 2473 A.H. VIRGEN DE LOURDES VMT LIMA - LIMAFormaPagoCredito226.45FormaPagoCuota001226.452026-06-1334.54191.9134.54S1000IGVVAT191.91226.45226.451125191.911.81160000000134.54191.9134.5418.0101000IGVVAT1.5352540000 \ No newline at end of file diff --git a/tests/correos_prueba/004_correo/20551006914-09-F004-5989.pdf b/tests/correos_prueba/004_correo/20551006914-09-F004-5989.pdf new file mode 100644 index 0000000..55cc964 Binary files /dev/null and b/tests/correos_prueba/004_correo/20551006914-09-F004-5989.pdf differ diff --git a/tests/correos_prueba/004_correo/20551006914-31-V002-1427.pdf b/tests/correos_prueba/004_correo/20551006914-31-V002-1427.pdf new file mode 100644 index 0000000..99d06b2 Binary files /dev/null and b/tests/correos_prueba/004_correo/20551006914-31-V002-1427.pdf differ diff --git a/tests/correos_prueba/004_correo/20551006914-31-V002-1427.xml b/tests/correos_prueba/004_correo/20551006914-31-V002-1427.xml new file mode 100644 index 0000000..e38c9a1 --- /dev/null +++ b/tests/correos_prueba/004_correo/20551006914-31-V002-1427.xml @@ -0,0 +1 @@ +NZR3F6AHQuWc6dokcbp/vG99cYQ=hkguA93vzLnZCwlhqrSmtqFvMrQlTH17PyOixuXvJFFszq5/90MLblUlBVOOQQJj1MJNdGifBpKB/GJzLFPk5SIY7jYlkmIAuusrcvu2RbKllcCmBENxdXD/rNQ4Zl5N1pPi/Ob8jLDANLNz573c+HZnLP5O0LUq/kbcbAEe59FJjOG36+iPwPu/hDloKlLC+B++HxTWGd8yXlbUeaEV5lLe8Cd4gzmisyUd/HTlgKMf7/rUmL0es8kbSLOm8o2hX2DRwcuern7I44T47eq1TPKh8ePrNMCfKdFZrMEF3fbdwwZBM45MUq8+E11g//rIzjNsnUEd5mSQSKcD59StQA==C=PE, L=LIMA, O=R P TRANSFER S.A.C., OU=Validado por Llama.pe ER, OU=FACTURA ELECTRONICA RUC 20551006914, CN=SOFTWARE DE FACTURACION ELECTRONICA, E=contabilidad@difenas.com.pe, STREET=AV. LIMA NRO. 2210 P.J. JOSE GALVEZMIIFdjCCBF6gAwIBAgIISJfl+vjrcZUwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQxMDI0MTY1NTM2WhcNMjYxMDI0MTY1NTAwWjCCARQxLDAqBgNVBAkMI0FWLiBMSU1BIE5STy4gMjIxMCBQLkouIEpPU0UgR0FMVkVaMSowKAYJKoZIhvcNAQkBFhtjb250YWJpbGlkYWRAZGlmZW5hcy5jb20ucGUxLDAqBgNVBAMMI1NPRlRXQVJFIERFIEZBQ1RVUkFDSU9OIEVMRUNUUk9OSUNBMSwwKgYDVQQLDCNGQUNUVVJBIEVMRUNUUk9OSUNBIFJVQyAyMDU1MTAwNjkxNDEhMB8GA1UECwwYVmFsaWRhZG8gcG9yIExsYW1hLnBlIEVSMR0wGwYDVQQKDBRSICBQIFRSQU5TRkVSIFMuQS5DLjENMAsGA1UEBwwETElNQTELMAkGA1UEBhMCUEUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC67JWukAAwxXhKV/LTmrjHALY44d1pU9Y3JJE6TSDgjtimIs1h7eZot/OC9d+OGUhy383TMSxqdIM4W77PMDRH5Iefh6H5EKaPI2YsCIc3lT3N15JdK+EQNyPeAh/mC4OWrGuVXDgU3MPD7EbtgjvYG8wLEJUIJBxw9bil4SiTLHPiKpRWySrtWPZeBTYfGdR/7xoRxSRSCOwgi04lp8lEv8Wwfyb2rsrltRrx44RGZFLy0GRjLw0ktzx2OL3VYGK51x0YD91wIKiFUN3co3vgLwyiuLiEr09QXpFm9zUjupxT9V3RtmyWOv2x6cFAWswLGYNVl7JnspVGae8GV23nAgMBAAGjggGWMIIBkjAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFF2IW63rZfv+aKLk2W89V3Ki7yuZMGcGCCsGAQUFBwEBBFswWTA1BggrBgEFBQcwAoYpaHR0cDovL2NydC5sbGFtYS5wZS9sbGFtYXBlc3RhbmRhcmRjYS5jZXIwIAYIKwYBBQUHMAGGFGh0dHA6Ly9vY3NwLmxsYW1hLnBlMCYGA1UdEQQfMB2BG2NvbnRhYmlsaWRhZEBkaWZlbmFzLmNvbS5wZTBGBgNVHSAEPzA9MDsGDSsGAQQBg5d3AAEAAwEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9sbGFtYS5wZS9yZXBvc2l0b3J5LzAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5sbGFtYS5wZS9sbGFtYXBlc3RhbmRhcmRjYS5jcmwwHQYDVR0OBBYEFAWB+XQmngVqzCM13NVubfDKC12wMA4GA1UdDwEB/wQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAQEAu4Ajzm//yKf4bONcHdDISUaC3P8rh5CW0NSkVS/MsrXBGB3SCJXk2LR7wLVrUco3/DP3wMkel4XVDL6ftTfim+XmLXeAnuoFYTBGVJtuZMvuZAsncGIu3iFOE1K1v8yhzUykh+L7gLgPz60o8zHOXN48G3mHeNtaz3gSPGFSy0q6abiSN1n1A0VH8jj0PNf5Q0kjwdwfv0IhUAImgvLcPYeWXPobN2Ad4EqTkgvwOlLg1J7Tv6GJybjGKFSAHWi1Bbu+hegTS8SgGPDmXTsTe0ZPZZ+YzvupS/zzDEYkC1OV7b/56t4sFn5KVrvpZqsoisqCzMV4NOc0XgbTsMVoJg==2.12.0V002-00014272026-05-2917:25:1931V002-000142720551006914#SignatureSP2055100691420550744024SUNAT_Envio13Otros -5.3131012026-05-29205510069141544564CNG45322098LUIS MIGUELMALLMA BERROCALPrincipalQ45322098150124150143AV ATOCONGO 1860 LIMA LIMA VMT20100029741A. BERIO Y CIA S.A.C.C6Y85715M2301395ED2P996112510101011 \ No newline at end of file diff --git a/tests/correos_prueba/004_correo/pdf_resultado_004.json b/tests/correos_prueba/004_correo/pdf_resultado_004.json new file mode 100644 index 0000000..19ee0dc --- /dev/null +++ b/tests/correos_prueba/004_correo/pdf_resultado_004.json @@ -0,0 +1,38 @@ +[ + { + "ruc_emisor": "20551006914", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "29/05/2026", + "tipo": "09", + "serie": "F004", + "numero": "5989", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": null, + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/004_correo/20551006914-09-F004-5989.pdf" + }, + { + "ruc_emisor": "20551006914", + "razon_social_emisor": null, + "fecha_emision": null, + "tipo": "31", + "serie": "V002", + "numero": "1427", + "ruc_receptor": "20100029741", + "razon_social_receptor": null, + "total_factura": null, + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/004_correo/20551006914-31-V002-1427.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/004_correo/xml_resultado_004.json b/tests/correos_prueba/004_correo/xml_resultado_004.json new file mode 100644 index 0000000..b5a4b90 --- /dev/null +++ b/tests/correos_prueba/004_correo/xml_resultado_004.json @@ -0,0 +1,105 @@ +[ + { + "ruc_emisor": "20551006914", + "razon_social_emisor": "R & P TRANSFER S.A.C.", + "fecha_emision": "2026-05-29", + "tipo": "01", + "serie": "F004", + "numero": "5989", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 226.45, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129723" + }, + { + "tipo": "31", + "serie": "V002", + "numero": "1427" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "POR EL SERVICIO DE TRANSPORTE DE 125 BOLSAS DE CEMENTO SOL G.R.R.\t\t: T001-00129723\nG.R.T.\t\t: V002-0001427\nP. PARTIDA \t: AV. ATOCONGO 1860 VMT LIMA LIMA\nP. LLEGADA \t: CAR. PANAMERICANA SUR KM 59 MZA. A LOTE. 1 A.V LA PONDEROSA- LIMA- LIMA -PUCUSANA\nCONF. VEHIC\t: T3S3\nVALOR REFER\t:S/ 226.45\nT.N.\t\t: 5.312", + "cantidad": 125.0, + "precio_unitario": 1.8116, + "total_linea": 191.91, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129723" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "V002", + "numero": "1427" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/004_correo/20551006914-01-F004-5989.xml", + "ruta_pdf": null + }, + { + "ruc_emisor": "20551006914", + "razon_social_emisor": "R & P TRANSFER S.A.C.", + "fecha_emision": "2026-05-29", + "tipo": "31", + "serie": "V002", + "numero": "1427", + "ruc_receptor": "20550744024", + "razon_social_receptor": "CONSORCIO UNION FERRETERA S.A.C. - CONSUFER S.A.C.", + "total_factura": null, + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": "AV ATOCONGO 1860 LIMA LIMA VMT", + "punto_llegada": "CAR.PANAMERICANA SUR KM 59 MZA. A LOTE. 1 A.V. LA PONDEROSA (PUENTE PU", + "peso_bruto": "5.313", + "unidad_peso_bruto": "KGM", + "fecha_traslado": "2026-05-29", + "vehiculo_principal": "C6Y857", + "vehiculo_secundario": "D2P996", + "licencia_conductor": "Q45322098", + "nombre_conductor": "LUIS MIGUEL", + "documento_conductor": "45322098", + "ubigeo_partida": "150143", + "lineas": [ + { + "descripcion": "CEMENTO SOL T1", + "cantidad": 125.0, + "precio_unitario": 0.0, + "total_linea": 0.0, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + } + ], + "tipo_descripcion": "Guía de Remisión Transportista", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/004_correo/20551006914-31-V002-1427.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/005_correo/20555929006-01-F004-3544.xml b/tests/correos_prueba/005_correo/20555929006-01-F004-3544.xml new file mode 100644 index 0000000..97ca248 --- /dev/null +++ b/tests/correos_prueba/005_correo/20555929006-01-F004-3544.xml @@ -0,0 +1,7 @@ +oydc1/p9NAh68kMvAOT9oAUeGCU=zzCw8dLaTJ/r0BiNVSupKYiIujELgg8U2TWXw9mB52BDlKynFAGRalVcHccMit9teSKQMGYKdiLgzVaqhIWwQAxDIwUaaoudE2hSG2eHQdwCKqP0z76CjDiTZEgHj30agvxUjZxXeQbczvc5vKopUaRdLwDLEjFZyr0TftGQBujxuaAzQhU+X5D6yNdhxOXA0GPu00g92EfapGmbh5Wt1kUUFhrI1om+hOkbhXZATCHfQJ7eB5U0cEbfZyLqZw9Zvq6rnq5opWi35SUe3tkZjlN6oE4XvGjuXksD4c9plp/bQvGhZQlxg1D8UHnRerffLdZv7B3ZA1NtruNYJ6kvZw==C=PE, L=LIMA, O=DISTRIBUIDORA FERRETERA NASCA S.A.C. - DIFENAS S.A.C., OU=Validado por Llama.pe ER, OU=FACTURA ELECTRONICA RUC 20555929006, CN=SOFTWARE DE FACTURACION ELECTRONICA, E=contabilidad@difenas.com.pe, STREET=AV. LIMA NRO. 2236 P.J. JOSE GALVEZMIIFlzCCBH+gAwIBAgIIMW4CA4T7sdQwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQxMDE0MTkxNDEwWhcNMjYxMDE0MTkxNDAwWjCCATUxLDAqBgNVBAkMI0FWLiBMSU1BIE5STy4gMjIzNiBQLkouIEpPU0UgR0FMVkVaMSowKAYJKoZIhvcNAQkBFhtjb250YWJpbGlkYWRAZGlmZW5hcy5jb20ucGUxLDAqBgNVBAMMI1NPRlRXQVJFIERFIEZBQ1RVUkFDSU9OIEVMRUNUUk9OSUNBMSwwKgYDVQQLDCNGQUNUVVJBIEVMRUNUUk9OSUNBIFJVQyAyMDU1NTkyOTAwNjEhMB8GA1UECwwYVmFsaWRhZG8gcG9yIExsYW1hLnBlIEVSMT4wPAYDVQQKDDVESVNUUklCVUlET1JBIEZFUlJFVEVSQSBOQVNDQSBTLkEuQy4gLSBESUZFTkFTIFMuQS5DLjENMAsGA1UEBwwETElNQTELMAkGA1UEBhMCUEUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrXOQp5XJfVSlT7G/xjPQp25/XlHcTMqzFneRLQB7RBMEoVZMGS08TJOwb7A08F80MemcdHINfKu32W0vH+IkXftM80JzMMwcooM0HPx42rYm0kmYovhOdoDDOGXWEbBInQ7aTIQkW4/UkytdIVP3uk5sRoPVollMeu1FnvBBe0xU2xMCSTpd4gOQXGHittmYhgK2YCNdrKBRn/k/wULS9RsejCPV4FkUAeiZK2JSFphR4YZPddo3XLb/mUXwgoikAovQ4RyN2QqW+PRXI7GEuY9UN/DuEaDsdBNyKEddeYJnMRepZmDQEQr5RMbn4B5ObFaODKmkMe4lg/GE9sb11AgMBAAGjggGWMIIBkjAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFF2IW63rZfv+aKLk2W89V3Ki7yuZMGcGCCsGAQUFBwEBBFswWTA1BggrBgEFBQcwAoYpaHR0cDovL2NydC5sbGFtYS5wZS9sbGFtYXBlc3RhbmRhcmRjYS5jZXIwIAYIKwYBBQUHMAGGFGh0dHA6Ly9vY3NwLmxsYW1hLnBlMCYGA1UdEQQfMB2BG2NvbnRhYmlsaWRhZEBkaWZlbmFzLmNvbS5wZTBGBgNVHSAEPzA9MDsGDSsGAQQBg5d3AAEAAwEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9sbGFtYS5wZS9yZXBvc2l0b3J5LzAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5sbGFtYS5wZS9sbGFtYXBlc3RhbmRhcmRjYS5jcmwwHQYDVR0OBBYEFOekfrMbj8D7XHBMrINSvd5DMeY9MA4GA1UdDwEB/wQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAQEAfeOGCQjp79Wh+8REraPlhIb7EOjJsbVR7W9eYNnIo2jDZMpBY8yxrQtcukGBjABn63L+N335eviU1hX6saLTXwcCrNrsYNYt4hQ7FQWaHsSp9AckMdRCxDvhIpQVheVKLLT/aSOV1loEa6J8A25wk5n+oS1nEex6x+7k210FcLOREyVbPxqrlCJPX8SCVcJOl84KOHlbrGmPDp2r30IycyM3mx7cJfIwNCbcNOXi46QqI6QINhooysZy4lSj7LqIDItzG3YaXlnauWSGPEsl8ggqcCOp5QdXSAeov+0tkTD9/83OA6/5Qv5dvp0x3Qq5JY4H/QBrh16SHQcHqxIMPw==2.12.0F004-00035442026-05-2901SEISCIENTOS CUARENTA Y CUATRO CON 35/100 SOLESOperación sujeta a detracciónPEN1signatureCF20555929006signatureCF205559290061501430000-LIMALIMAVILLA MARIA DEL TRIUNFOAV. LIMA NRO. 2236 P.J. JOSE GALVEZPE20100029741AV. 26 DE NOVIEMBRE NRO. 2473 A.H. VIRGEN DE LOURDESDetraccion00100061066799Detraccion0274.0026FormaPagoCredito618.35FormaPagoCuota001618.352026-06-1398.29546.0698.29S1000IGVVAT546.06644.35644.351481546.061.33960000000198.29546.0698.2918.0101000IGVVAT1.1352540000 \ No newline at end of file diff --git a/tests/correos_prueba/005_correo/20555929006-09-F004-3544.pdf b/tests/correos_prueba/005_correo/20555929006-09-F004-3544.pdf new file mode 100644 index 0000000..707f394 Binary files /dev/null and b/tests/correos_prueba/005_correo/20555929006-09-F004-3544.pdf differ diff --git a/tests/correos_prueba/005_correo/20555929006-31-V002-1358.pdf b/tests/correos_prueba/005_correo/20555929006-31-V002-1358.pdf new file mode 100644 index 0000000..f3c4cfd Binary files /dev/null and b/tests/correos_prueba/005_correo/20555929006-31-V002-1358.pdf differ diff --git a/tests/correos_prueba/005_correo/20555929006-31-V002-1358.xml b/tests/correos_prueba/005_correo/20555929006-31-V002-1358.xml new file mode 100644 index 0000000..3a92c9d --- /dev/null +++ b/tests/correos_prueba/005_correo/20555929006-31-V002-1358.xml @@ -0,0 +1 @@ +60qTHSXvO/FXkSbic7xmmBjlokk=sxQSd3SmESNNOy9vPdeOmSjpgV/EVhLJ/+opTLhshivwvIbU/XRaJ/GSxWB+yFTUu2tFzOJ+bQLxqmOMXl/R6xllxFshQ4tNh1Q73sCt0N1f9WE2LBm+g5Fk/v5sHtJIlJgcnpQiu8EYS0bCtyC2oiaNsLsY22jJvaSB/lISthRji7WAgWPbytQUtTYxZMYwLleh80RvZy05xmDrdjajiDMmSIBQeT89b3gYGv3VdaNNRERc+Yw/t7NxBcsGUfeO73VJo/C6UzDQNyiy9N3gwmjAYs1j2Mn41cEVlGQWPo9+FGewIpKkRdliNWeLXbAyrArV/y1Sy6kMECal1V5mHA==C=PE, L=LIMA, O=DISTRIBUIDORA FERRETERA NASCA S.A.C. - DIFENAS S.A.C., OU=Validado por Llama.pe ER, OU=FACTURA ELECTRONICA RUC 20555929006, CN=SOFTWARE DE FACTURACION ELECTRONICA, E=contabilidad@difenas.com.pe, STREET=AV. LIMA NRO. 2236 P.J. JOSE GALVEZMIIFlzCCBH+gAwIBAgIIMW4CA4T7sdQwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQxMDE0MTkxNDEwWhcNMjYxMDE0MTkxNDAwWjCCATUxLDAqBgNVBAkMI0FWLiBMSU1BIE5STy4gMjIzNiBQLkouIEpPU0UgR0FMVkVaMSowKAYJKoZIhvcNAQkBFhtjb250YWJpbGlkYWRAZGlmZW5hcy5jb20ucGUxLDAqBgNVBAMMI1NPRlRXQVJFIERFIEZBQ1RVUkFDSU9OIEVMRUNUUk9OSUNBMSwwKgYDVQQLDCNGQUNUVVJBIEVMRUNUUk9OSUNBIFJVQyAyMDU1NTkyOTAwNjEhMB8GA1UECwwYVmFsaWRhZG8gcG9yIExsYW1hLnBlIEVSMT4wPAYDVQQKDDVESVNUUklCVUlET1JBIEZFUlJFVEVSQSBOQVNDQSBTLkEuQy4gLSBESUZFTkFTIFMuQS5DLjENMAsGA1UEBwwETElNQTELMAkGA1UEBhMCUEUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDrXOQp5XJfVSlT7G/xjPQp25/XlHcTMqzFneRLQB7RBMEoVZMGS08TJOwb7A08F80MemcdHINfKu32W0vH+IkXftM80JzMMwcooM0HPx42rYm0kmYovhOdoDDOGXWEbBInQ7aTIQkW4/UkytdIVP3uk5sRoPVollMeu1FnvBBe0xU2xMCSTpd4gOQXGHittmYhgK2YCNdrKBRn/k/wULS9RsejCPV4FkUAeiZK2JSFphR4YZPddo3XLb/mUXwgoikAovQ4RyN2QqW+PRXI7GEuY9UN/DuEaDsdBNyKEddeYJnMRepZmDQEQr5RMbn4B5ObFaODKmkMe4lg/GE9sb11AgMBAAGjggGWMIIBkjAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFF2IW63rZfv+aKLk2W89V3Ki7yuZMGcGCCsGAQUFBwEBBFswWTA1BggrBgEFBQcwAoYpaHR0cDovL2NydC5sbGFtYS5wZS9sbGFtYXBlc3RhbmRhcmRjYS5jZXIwIAYIKwYBBQUHMAGGFGh0dHA6Ly9vY3NwLmxsYW1hLnBlMCYGA1UdEQQfMB2BG2NvbnRhYmlsaWRhZEBkaWZlbmFzLmNvbS5wZTBGBgNVHSAEPzA9MDsGDSsGAQQBg5d3AAEAAwEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9sbGFtYS5wZS9yZXBvc2l0b3J5LzAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5sbGFtYS5wZS9sbGFtYXBlc3RhbmRhcmRjYS5jcmwwHQYDVR0OBBYEFOekfrMbj8D7XHBMrINSvd5DMeY9MA4GA1UdDwEB/wQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAQEAfeOGCQjp79Wh+8REraPlhIb7EOjJsbVR7W9eYNnIo2jDZMpBY8yxrQtcukGBjABn63L+N335eviU1hX6saLTXwcCrNrsYNYt4hQ7FQWaHsSp9AckMdRCxDvhIpQVheVKLLT/aSOV1loEa6J8A25wk5n+oS1nEex6x+7k210FcLOREyVbPxqrlCJPX8SCVcJOl84KOHlbrGmPDp2r30IycyM3mx7cJfIwNCbcNOXi46QqI6QINhooysZy4lSj7LqIDItzG3YaXlnauWSGPEsl8ggqcCOp5QdXSAeov+0tkTD9/83OA6/5Qv5dvp0x3Qq5JY4H/QBrh16SHQcHqxIMPw==2.12.0V002-00013582026-05-2913:11:1531V002-000135820555929006#SignatureSP2055592900620550744024SUNAT_Envio13Otros -20.4431012026-05-29205559290061567858CNG09251892CARLOSRIVAS MOLLEDAPrincipalQ09251892150123150143AV ATOCONGO 1860 VMT LIMA LIMA20100029741A. BERIO Y CIA S.A.C.AYI79200151840244D8L996148110101011 \ No newline at end of file diff --git a/tests/correos_prueba/005_correo/pdf_resultado_005.json b/tests/correos_prueba/005_correo/pdf_resultado_005.json new file mode 100644 index 0000000..10d0f57 --- /dev/null +++ b/tests/correos_prueba/005_correo/pdf_resultado_005.json @@ -0,0 +1,38 @@ +[ + { + "ruc_emisor": "20555929006", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "29/05/2026", + "tipo": "09", + "serie": "F004", + "numero": "3544", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": null, + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/005_correo/20555929006-09-F004-3544.pdf" + }, + { + "ruc_emisor": "20555929006", + "razon_social_emisor": null, + "fecha_emision": null, + "tipo": "31", + "serie": "V002", + "numero": "1358", + "ruc_receptor": "20100029741", + "razon_social_receptor": null, + "total_factura": null, + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/005_correo/20555929006-31-V002-1358.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/005_correo/xml_resultado_005.json b/tests/correos_prueba/005_correo/xml_resultado_005.json new file mode 100644 index 0000000..dd9d07a --- /dev/null +++ b/tests/correos_prueba/005_correo/xml_resultado_005.json @@ -0,0 +1,105 @@ +[ + { + "ruc_emisor": "20555929006", + "razon_social_emisor": "DIFENAS S.A.C.", + "fecha_emision": "2026-05-29", + "tipo": "01", + "serie": "F004", + "numero": "3544", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 644.35, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129721" + }, + { + "tipo": "31", + "serie": "V002", + "numero": "1358" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 26.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "POR EL SERVICIO DE TRANSPORTE DE 481 BOLSAS DE CEMENTO SOL G.R.R.\t\t: T001-00129721\nG.R.T.\t\t: V002-0001358\nP. PARTIDA \t: AV. ATOCONGO 1860 VMT LIMA LIMA\nP. LLEGADA \t: AV. PROLONGACION SAENZ PEÑA-LAS PALMAS MZ H LT.7 OTR.UCV 12203 SUBL B SECTOR CODIGO CATASTRAL\nCONF. VEHIC\t: T3S3\nVALOR REFER\t:S/ 644.35\nT", + "cantidad": 481.0, + "precio_unitario": 1.3396, + "total_linea": 546.06, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129721" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "V002", + "numero": "1358" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/005_correo/20555929006-01-F004-3544.xml", + "ruta_pdf": null + }, + { + "ruc_emisor": "20555929006", + "razon_social_emisor": "DISTRIBUIDORA FERRETERA NASCA S.A.C", + "fecha_emision": "2026-05-29", + "tipo": "31", + "serie": "V002", + "numero": "1358", + "ruc_receptor": "20550744024", + "razon_social_receptor": "CONSORCIO UNION FERRETERA S.A.C. - CONSUFER", + "total_factura": null, + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": "AV ATOCONGO 1860 VMT LIMA LIMA", + "punto_llegada": "AV. PROLONGACION SAENZ PENA - LAS PALMAS MZA. H LOTE. 7 OTR. UCV 12203 SUBL B SECTOR CODIGO CATAST", + "peso_bruto": "20.443", + "unidad_peso_bruto": "KGM", + "fecha_traslado": "2026-05-29", + "vehiculo_principal": "AYI792", + "vehiculo_secundario": "D8L996", + "licencia_conductor": "Q09251892", + "nombre_conductor": "CARLOS", + "documento_conductor": "09251892", + "ubigeo_partida": "150143", + "lineas": [ + { + "descripcion": "CEMENTO SOL T1", + "cantidad": 481.0, + "precio_unitario": 0.0, + "total_linea": 0.0, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + } + ], + "tipo_descripcion": "Guía de Remisión Transportista", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/005_correo/20555929006-31-V002-1358.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/006_correo/20100811571-01-F011-2786-V002-4575.pdf b/tests/correos_prueba/006_correo/20100811571-01-F011-2786-V002-4575.pdf new file mode 100644 index 0000000..5aad65e Binary files /dev/null and b/tests/correos_prueba/006_correo/20100811571-01-F011-2786-V002-4575.pdf differ diff --git a/tests/correos_prueba/006_correo/20100811571-01-F011-2786.xml b/tests/correos_prueba/006_correo/20100811571-01-F011-2786.xml new file mode 100644 index 0000000..b21af7f --- /dev/null +++ b/tests/correos_prueba/006_correo/20100811571-01-F011-2786.xml @@ -0,0 +1,267 @@ + + + + +0bVP8AHmCYXyChygo3XQvXBECu0=GF4e84jreud/2MfjRC07GPolo3Stke3dGsFachUWZMmdK3DVwD5eYPYaJ58uKPJCzgTn91ZiNPuz +WMCrsW5hllzjD9VXaZVbna34EgzfdsbZml08nKXY2gi0n6cHo7WVfbDSCzx3fkuPfJc2iKnXmh9y +owPQG0kFcCnsIVYNaudMNvSrtDptHIcLpEcCCpEL2+cED4RW8goDByzVVEyYMaTbDQ67fvtq9EcM +4jqf877A7i4oYqKKJ1dyGG7VYIzTft8XGtV2uJjcjd3HQSvyqzSuGVkKIvbcp2q5/gxw5TvuyH6C +tNk3cFIYN7l7gSzUzkbJiw58+Kms8L4neWuaGg==C=PE,L=LIMA,O=TREFILADOS EL SALVADOR S R L,OU=Validado por Llama.pe ER,OU=FACTURA ELECTRONICA RUC 20100811571,CN=SOFTWARE DE FACTURACION ELECTRONICA,1.2.840.113549.1.9.1=#161b636f6e746162696c6964616440747265666973612e636f6d2e7065,STREET=AV. PABLO PATRON NRO. 211 URB. SAN PABLOMIIFgzCCBGugAwIBAgIIWD+k8QQbj9IwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEu +cGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcN +MjUxMTE5MTk1NTI2WhcNMjcxMTE5MTk1NTAwWjCCASExMTAvBgNVBAkMKEFWLiBQQUJMTyBQQVRS +T04gTlJPLiAyMTEgVVJCLiBTQU4gUEFCTE8xKjAoBgkqhkiG9w0BCQEWG2NvbnRhYmlsaWRhZEB0 +cmVmaXNhLmNvbS5wZTEsMCoGA1UEAwwjU09GVFdBUkUgREUgRkFDVFVSQUNJT04gRUxFQ1RST05J +Q0ExLDAqBgNVBAsMI0ZBQ1RVUkEgRUxFQ1RST05JQ0EgUlVDIDIwMTAwODExNTcxMSEwHwYDVQQL +DBhWYWxpZGFkbyBwb3IgTGxhbWEucGUgRVIxJTAjBgNVBAoMHFRSRUZJTEFET1MgRUwgU0FMVkFE +T1IgUyBSIEwxDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAyYlT09RvuC+D9hLK0LGN9iOOC72e3Q5UqAPUQDCB+X58MOjuaHsTGyOZ1s9h +1jp9Wi2oigztr6YgChuWE7aVyHeMre2uI5t2rug2kuCwAnYQOrFtMZXkWZm1FOvL55mMGdMzryx2 +E7/NDE1AvIfybsfx1JqH0HwnbHdb3usP67mhElFzgBwljwpfO9y3TmkrID5/o/DRXxlyLm2Up5AL +9cTdzDRngGV3eqeDFmrsLz1Ii2TBfDKJSpLKbMAZ0QE3mkfFolAaq/7s0+lLA1jvdw+be+3MF9sr +WQexVMlWZ0GUdduJk0+b8/ye85JEjQz/aVn+vQzx7MHXqPlCELDUCQIDAQABo4IBljCCAZIwDAYD +VR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRb +MFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2Vy +MCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAmBgNVHREEHzAdgRtjb250YWJpbGlk +YWRAdHJlZmlzYS5jb20ucGUwRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUH +AgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5k +YXJkY2EuY3JsMB0GA1UdDgQWBBSJOvNq/vY9qi0s/jya/Pg3HEoWQDAOBgNVHQ8BAf8EBAMCBsAw +DQYJKoZIhvcNAQELBQADggEBAFv2Zeg2ylvyA7dO4hPIJ3e/WSQyqmf1BQUC2YOq4bwIF7z4qU4y +qlecjLsRI5NpDAdZHp6YNLRMOr6FxocKqm665RKjk7XTEY9DDW2sWdOhybreY+ikm6/LH3O3whMI +uONPgQQmHKUaEZ85oWKlPBCjjDSLwGxb5hyHYfgAh2whOFMBprc0y53DkkYMd7N6FFs+Zgirq91I +WxoW1vOkFTqc4RyFQ/KBJqwjsRYZ39g2LFJO4MByYWzjZn3TcJOj8BQAYrC2UzHKSl1BZuDW7r4i ++6r92zt5UrhxRE45isPgZuDkryZtRshSE5+i1KoK76IRg9LiCxh7xme7vfwjqdM= + + + + + +1000 + + + +2006 + + + + + + +2.1 +2.0 +F011-00002786 +2026-05-30 +01 + + +PEN + +-00000000 +09 + + +SF011-00002786 + + +20100811571 + + + + + + + +SF011-00002786 + + + + + + +20100811571 + + + + + + + +150115 +0000 + +LIMA +LIMA +LA VICTORIA + + + + +PE + + + + + + + + +20100029741 + + + + +LIMA +LIMA +VILLA MARIA DEL TRIUNFO + + + + +PE + + + + + + +Detraccion +001 + +00063008982 + + + +Detraccion +027 +4.0 +34.83 + + +FormaPago +Credito +870.74 + + +FormaPago +Cuota001 +870.74 +2026-06-14 + + +132.82 + +737.92 +132.82 + + +1000 +IGV +VAT + + + + + +737.92 +737.92 +870.74 +870.74 + + +1 +1 +737.92 + + +870.7400000000 +01 + + + + + +150142 + + + + + + + + +150143 + + + + + + +01 +870.74 + + +02 +870.74 + + +03 +870.74 + + +01 + + + + +01 +870.74 + + + + + +false + + +102.27 + + + + +02 +27.63 + + + + + +132.82 + +737.92 +132.82 + +18.00000 +10 + +1000 +IGV +VAT + + + + + + + +SER02 + + +CodigoUnidad +UNIDAD + + + +737.9152540000 + + + \ No newline at end of file diff --git a/tests/correos_prueba/006_correo/20100811571-01-T001-129813.pdf b/tests/correos_prueba/006_correo/20100811571-01-T001-129813.pdf new file mode 100644 index 0000000..4a325e6 Binary files /dev/null and b/tests/correos_prueba/006_correo/20100811571-01-T001-129813.pdf differ diff --git a/tests/correos_prueba/006_correo/20100811571-31-V002-4575.xml b/tests/correos_prueba/006_correo/20100811571-31-V002-4575.xml new file mode 100644 index 0000000..e21f44b --- /dev/null +++ b/tests/correos_prueba/006_correo/20100811571-31-V002-4575.xml @@ -0,0 +1,176 @@ + + + + +J3fFwys+URZdbF0QevDNGBPJe5E=jaTUTseluikf9R3QQRSjdKYvNMa67tuh+heIBuozY2mQicAIhbFEnST+EG9CpsqzGuW3vy58JGaO +/MDvBTnF6wBJLftnGRUdC1YL/XVEx2XU5Z6V0xpG78E2fqwR7Wn89/8Nizoiyd4DiFlhPMTXoTBd +VXV9tIxl58CMS0QnzNOP+bHB6dvLhAxhWUYx6iknqWTxrudp1QiVv+npUdxIIRxH8+nSEfXsnJvJ +908fQ9Wuub0hBX/3Bh6S5LIBuZd4Ty1bsSvihR3MJrR+sVC03t2X3zhBmEPXGc1NpeAQkKhwe9/+ +o9vvRFUHQiMlFGbA+TrIAxWRCz1ebhSl+P0GaA==C=PE,L=LIMA,O=TREFILADOS EL SALVADOR S R L,OU=Validado por Llama.pe ER,OU=FACTURA ELECTRONICA RUC 20100811571,CN=SOFTWARE DE FACTURACION ELECTRONICA,1.2.840.113549.1.9.1=#161b636f6e746162696c6964616440747265666973612e636f6d2e7065,STREET=AV. PABLO PATRON NRO. 211 URB. SAN PABLOMIIFgzCCBGugAwIBAgIIWD+k8QQbj9IwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEu +cGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcN +MjUxMTE5MTk1NTI2WhcNMjcxMTE5MTk1NTAwWjCCASExMTAvBgNVBAkMKEFWLiBQQUJMTyBQQVRS +T04gTlJPLiAyMTEgVVJCLiBTQU4gUEFCTE8xKjAoBgkqhkiG9w0BCQEWG2NvbnRhYmlsaWRhZEB0 +cmVmaXNhLmNvbS5wZTEsMCoGA1UEAwwjU09GVFdBUkUgREUgRkFDVFVSQUNJT04gRUxFQ1RST05J +Q0ExLDAqBgNVBAsMI0ZBQ1RVUkEgRUxFQ1RST05JQ0EgUlVDIDIwMTAwODExNTcxMSEwHwYDVQQL +DBhWYWxpZGFkbyBwb3IgTGxhbWEucGUgRVIxJTAjBgNVBAoMHFRSRUZJTEFET1MgRUwgU0FMVkFE +T1IgUyBSIEwxDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEAyYlT09RvuC+D9hLK0LGN9iOOC72e3Q5UqAPUQDCB+X58MOjuaHsTGyOZ1s9h +1jp9Wi2oigztr6YgChuWE7aVyHeMre2uI5t2rug2kuCwAnYQOrFtMZXkWZm1FOvL55mMGdMzryx2 +E7/NDE1AvIfybsfx1JqH0HwnbHdb3usP67mhElFzgBwljwpfO9y3TmkrID5/o/DRXxlyLm2Up5AL +9cTdzDRngGV3eqeDFmrsLz1Ii2TBfDKJSpLKbMAZ0QE3mkfFolAaq/7s0+lLA1jvdw+be+3MF9sr +WQexVMlWZ0GUdduJk0+b8/ye85JEjQz/aVn+vQzx7MHXqPlCELDUCQIDAQABo4IBljCCAZIwDAYD +VR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRb +MFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2Vy +MCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAmBgNVHREEHzAdgRtjb250YWJpbGlk +YWRAdHJlZmlzYS5jb20ucGUwRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUH +AgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG +AQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5k +YXJkY2EuY3JsMB0GA1UdDgQWBBSJOvNq/vY9qi0s/jya/Pg3HEoWQDAOBgNVHQ8BAf8EBAMCBsAw +DQYJKoZIhvcNAQELBQADggEBAFv2Zeg2ylvyA7dO4hPIJ3e/WSQyqmf1BQUC2YOq4bwIF7z4qU4y +qlecjLsRI5NpDAdZHp6YNLRMOr6FxocKqm665RKjk7XTEY9DDW2sWdOhybreY+ikm6/LH3O3whMI +uONPgQQmHKUaEZ85oWKlPBCjjDSLwGxb5hyHYfgAh2whOFMBprc0y53DkkYMd7N6FFs+Zgirq91I +WxoW1vOkFTqc4RyFQ/KBJqwjsRYZ39g2LFJO4MByYWzjZn3TcJOj8BQAYrC2UzHKSl1BZuDW7r4i ++6r92zt5UrhxRE45isPgZuDkryZtRshSE5+i1KoK76IRg9LiCxh7xme7vfwjqdM= + + +2.1 +2.0 +V002-00004575 +2026-05-30 +16:21:18 +31 +CONFIGURACION VEHICULAR T3 S3 + +T001-00129813 +09 +Guia de Remision Remitente + + +20100029741 + + + + +SV002-00004575 + + +20100811571 + + + + + + + +SignSUNAT + + + + + + +20100811571 + + + + + + + + + +20100811571 + + + + + + + + + +20100029741 + + + + + + + +SUNAT_Envio +27625.00 +SUNAT_Envio_IndicadorPagadorFlete_Remitente + + +2026-05-30 + + + +151263CNG + + + +09722754 +EMILIANO +CERVANTES TINOCO +Principal + +Q09722754 + + + + + +150142 + + + + + + +150143 + + + + + + +20100029741 + + + + + + + + + +B7C885 + +15M22019210E + + +151263CNG + + + + + +1 +650 + +1 + + + + +CEM01 + + +Indicador de bien normalizado +7022 +0 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/006_correo/pdf_resultado_006.json b/tests/correos_prueba/006_correo/pdf_resultado_006.json new file mode 100644 index 0000000..b43d4c3 --- /dev/null +++ b/tests/correos_prueba/006_correo/pdf_resultado_006.json @@ -0,0 +1,29 @@ +[ + { + "ruc_emisor": "20100811571", + "razon_social_emisor": null, + "fecha_emision": "30/05/2026", + "tipo": "01", + "serie": "T001", + "numero": "129813", + "ruc_receptor": "20100029741", + "razon_social_receptor": null, + "total_factura": "870.74", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": "4.0", + "monto_detraccion": "34.83", + "lineas": [ + { + "descripcion": "Medida SERVICIO DE TRANSPORTE NIU S/", + "cantidad": "870.74", + "precio_unitario": "870.74", + "total_linea": "737.92", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/006_correo/20100811571-01-T001-129813.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/006_correo/xml_resultado_006.json b/tests/correos_prueba/006_correo/xml_resultado_006.json new file mode 100644 index 0000000..ba9f499 --- /dev/null +++ b/tests/correos_prueba/006_correo/xml_resultado_006.json @@ -0,0 +1,90 @@ +[ + { + "ruc_emisor": "20100811571", + "razon_social_emisor": "TREFILADOS EL SALVADOR SRL", + "fecha_emision": "2026-05-30", + "tipo": "01", + "serie": "F011", + "numero": "2786", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 870.74, + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 34.83, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 870.74, + "total_linea": 737.92, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/006_correo/20100811571-01-F011-2786.xml", + "ruta_pdf": null + }, + { + "ruc_emisor": "20100811571", + "razon_social_emisor": "TREFILADOS EL SALVADOR SRL", + "fecha_emision": "2026-05-30", + "tipo": "31", + "serie": "V002", + "numero": "4575", + "ruc_receptor": "20100811571", + "razon_social_receptor": "TREFILADOS EL SALVADOR SRL", + "total_factura": null, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129813" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": "AV. ATOCONGO N° 1860 (LIMA-LIMA-VILLA MARIA DEL TRIUNFO)", + "punto_llegada": "PQ. IND. MZ. G LTE 8,9 (LIMA-LIMA-VILLA EL SALVADOR)", + "peso_bruto": "27625.00", + "unidad_peso_bruto": "KGM", + "fecha_traslado": "2026-05-30", + "vehiculo_principal": "B7C885", + "vehiculo_secundario": null, + "licencia_conductor": "Q09722754", + "nombre_conductor": "EMILIANO", + "documento_conductor": "09722754", + "ubigeo_partida": "150143", + "lineas": [ + { + "descripcion": "$it.Descripcion", + "cantidad": 650.0, + "precio_unitario": 0.0, + "total_linea": 0.0, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + } + ], + "tipo_descripcion": "Guía de Remisión Transportista", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/006_correo/20100811571-31-V002-4575.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/007_correo/10091153136-31-VPP1-516.xml b/tests/correos_prueba/007_correo/10091153136-31-VPP1-516.xml new file mode 100644 index 0000000..d50fa28 --- /dev/null +++ b/tests/correos_prueba/007_correo/10091153136-31-VPP1-516.xml @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + pGFus9mok5BsHOvwP9jXVzznwtgwSX8F9LIyJYnikxk= + + + jJovOUNvc7dTBurWODbsH4GaeGH3N7bFZkPjfHCS3BSNiQH4YR6ykNGLAzZY8M2SgP+y/RNHrUI3ZMfo+WQ6dXjXJYiC95lnYY3zf+KKT9XI/nsPztOUCtm8yyCO5W2zuZQkh9WQRJCg0G8TKwd7mf/gZ5xWurVWSzlMo9tyz+gRIyFsnt+nvSJ0Lx8d0VduUrNVsUBG31ruSdAavU0Dm5r86njdnlPLVnXVy42FMjlCAmgNEedtkFBQ0+ipCfTuCis8gUv5XI6GPBrCuwR3c1nO9Bmh+zVuijc4J1R6jLuPvRT96iMykyB1UXatK0isFcHG209moHUlpfn+C0OEoQ== + + + street=CAL. LIBERTAD NRO. 176 INT. 211,emailAddress=sistemas@nubefact.com,CN=NUBEFACT WEB,OU=20600695771,OU=Validado por Llama.pe ER,O=NUBEFACT S.A.,L=LIMA,C=PE + MIIFLzCCBBegAwIBAgIIeqYdzau699YwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjYwMzA1MTgzODI1WhcNMjkwMzA0MTgzODAwWjCB1DEoMCYGA1UECQwfQ0FMLiBMSUJFUlRBRCBOUk8uIDE3NiBJTlQuIDIxMTEkMCIGCSqGSIb3DQEJARYVc2lzdGVtYXNAbnViZWZhY3QuY29tMRUwEwYDVQQDDAxOVUJFRkFDVCBXRUIxFDASBgNVBAsMCzIwNjAwNjk1NzcxMSEwHwYDVQQLDBhWYWxpZGFkbyBwb3IgTGxhbWEucGUgRVIxFjAUBgNVBAoMDU5VQkVGQUNUIFMuQS4xDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3PnivJidKntheakfk5pA2SOXyG66a1FQtSW1BtXMpN2C953XT9iJLbR9kD/2hUsTs08drxdkSeKJwyMvUL41VpGX54PkSBXg1nqwbNN9dwj+zSd1PsFcmLtpEizyU4r6B8PSo07cdAzisAhnt3F1X/LcpcuJcUT3x88RJt18vSbh903Ihvp6BV7BCkJk/MJSRKeJnVMYJPtrgLvTxH03DUs6mIozR673WmYZAdzXPo1Kv0JpfrP/XTcaZECe2VQ+l7OEQS/s2bSjL7K8VgvTW+PtkCGZu9q6UUYsr3F1UL7TVad9zEFgL7rMQvELT7r+YWCP4AwVfTrXvqAoMednKQIDAQABo4IBkDCCAYwwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRbMFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAgBgNVHREEGTAXgRVzaXN0ZW1hc0BudWJlZmFjdC5jb20wRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY3JsMB0GA1UdDgQWBBSZK2idJe/W7w+eTwXNhJ/o8XK6pjAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAIEF6UtQGQ+yLKVVRCdiogInGUGv7IECqg9gMQNZBZ2ZP9SgQOOTFIsDI0psbS3D6u/wJ2vgf78a287ysqJUcGqhW1+plQh4toN3v8bCqwXACTIYW6bUU5bOab0QY//xrLkNZ8Iwa/M/LZstU3dgZjIwXtcMD+ANAIynN4rcNNgeVja8lnbYU3WQ1u9UIjMxtSp1rLf4mwTGSeLI1uuAWgWczkMaFjMF1RJhX9VlKX8qDC+pr/jiu8LTHt8VDeVvDwpZ4qVbI/8qq+VUyXjBffcDdeY5qb75nnlhEMHLey3t/GcEo80nmtjTKmBdroVkooIat7PcSvfQQ+kzrSnV2as= + + + + + + + + 2.1 + 2.0 + VPP1-516 + 2026-05-29 + 16:28:14 + 31 + Obs: MARCA VEHICULO: VOLVO N CONF.VEHICULAR: T2 S2 + + T001-129749 + 09 + Guía de Remisión Remitente + + + 20100029741 + + + + + 10091153136 + WWW.NUBEFACT.COM + + + 10091153136 + + + ZAPATA ARAPA EUSEBIO + + + + + 10091153136 + + + + + 10091153136 + + + 10091153136 + + + ZAPATA ARAPA EUSEBIO + + + + + + + 10091153136 + + + ZAPATA ARAPA EUSEBIO + + + + + SUNAT_Envio + 22.1 + + + 2026-05-29 + + + + 1516491CNG + + + + + ABB758 + + + + 42327525 + LUIS AUGUSTO + YARANGA MARTINEZ + Principal + + Q42327525 + + + + + + 150142 + + PQ. INDUSTRIAL-AV. 1 DE MAYO MZ. C LT. 17- ADEICOSUR- PARC. 1 -VILLA EL SALVADOR - LIMA - LIMA + + + + + 150143 + + AV. ATOCONGO 1860 VILLA MARIA DE L TRIUNFO + + + + + 20100029741 + + + A. BERIO Y CIA S.A.C. + + + + + + + ABB758 + + 0151601857 + + + A6T980 + + 0151834688 + + + + + + + + 1 + 520.0 + + 2 + + + CEMENTO SOL 42.50KG + + CEM01 + + + + + diff --git a/tests/correos_prueba/007_correo/xml_resultado_007.json b/tests/correos_prueba/007_correo/xml_resultado_007.json new file mode 100644 index 0000000..7e2adec --- /dev/null +++ b/tests/correos_prueba/007_correo/xml_resultado_007.json @@ -0,0 +1,49 @@ +[ + { + "ruc_emisor": "10091153136", + "razon_social_emisor": "ZAPATA ARAPA EUSEBIO", + "fecha_emision": "2026-05-29", + "tipo": "31", + "serie": "VPP1", + "numero": "516", + "ruc_receptor": "10091153136", + "razon_social_receptor": "ZAPATA ARAPA EUSEBIO", + "total_factura": null, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129749" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": "AV. ATOCONGO 1860 VILLA MARIA DE L TRIUNFO", + "punto_llegada": "PQ. INDUSTRIAL-AV. 1 DE MAYO MZ. C LT. 17- ADEICOSUR- PARC. 1 -VILLA EL SALVADOR - LIMA - LIMA", + "peso_bruto": "22.1", + "unidad_peso_bruto": "TNE", + "fecha_traslado": "2026-05-29", + "vehiculo_principal": "ABB758", + "vehiculo_secundario": "A6T980", + "licencia_conductor": "Q42327525", + "nombre_conductor": "LUIS AUGUSTO", + "documento_conductor": "42327525", + "ubigeo_partida": "150143", + "lineas": [ + { + "descripcion": "CEMENTO SOL 42.50KG", + "cantidad": 520.0, + "precio_unitario": 0.0, + "total_linea": 0.0, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + } + ], + "tipo_descripcion": "Guía de Remisión Transportista", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/007_correo/10091153136-31-VPP1-516.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/008_correo/20154645005-01-F002-52385.pdf b/tests/correos_prueba/008_correo/20154645005-01-F002-52385.pdf new file mode 100644 index 0000000..7796a4c Binary files /dev/null and b/tests/correos_prueba/008_correo/20154645005-01-F002-52385.pdf differ diff --git a/tests/correos_prueba/008_correo/20154645005-01-F002-52385.xml b/tests/correos_prueba/008_correo/20154645005-01-F002-52385.xml new file mode 100644 index 0000000..6a0340f --- /dev/null +++ b/tests/correos_prueba/008_correo/20154645005-01-F002-52385.xml @@ -0,0 +1,148 @@ + + + + + 6NbSu0QEYb5HGQuf2o/fytmMu+4=TtpCyWi8axTzZ1OX/x50gQmukTLf9RHEbkAD2f/RoraA4QzJU/LzVHt14Ld1wJaSRpPPrniWaIqz6NOn0PvBWDwJtpNSV01DiO1n9GiJa55jKlZG4DijFie+gbQcrkVepFcbGEb+sC1dqm+Z6Ag7bdXrt0V1PbQ8OTmghh0bKvi3g5rK6Zs+chENStqEzKLJ9lynMpLrFFBEl/2wH4pBCd2cxwphViBH7Vqq6on5k6HvQ0FzqhTjnXKVkdNTfjh3p6hZp4PDuaOmxNYJYtb18cyoWJlJJIboB22ur4ImZ65SLP4iIBdHmTru8HoI3Z0H9Huxel/veW2rnb2OepLywQ==C=PE, L=LIMA, O=DISTRIBUIDORA SANTA PATRICIA S R L, OU=Validado por Llama.pe ER, OU=FACTURA ELECTRONICA RUC 20154645005, CN=SOFTWARE DE FACTURACION ELECTRONICA, E=dis_patricia@yahoo.com, STREET=AV. TOMAS MARSANO NRO. 4330 URB. LA VIRREYNAMIIFgzCCBGugAwIBAgIIGTcLfd6CAQswDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQxMDE0MTgzNDIxWhcNMjYxMDE0MTgzNDAwWjCCASYxNTAzBgNVBAkMLEFWLiBUT01BUyBNQVJTQU5PIE5STy4gNDMzMCBVUkIuIExBIFZJUlJFWU5BMSUwIwYJKoZIhvcNAQkBFhZkaXNfcGF0cmljaWFAeWFob28uY29tMSwwKgYDVQQDDCNTT0ZUV0FSRSBERSBGQUNUVVJBQ0lPTiBFTEVDVFJPTklDQTEsMCoGA1UECwwjRkFDVFVSQSBFTEVDVFJPTklDQSBSVUMgMjAxNTQ2NDUwMDUxITAfBgNVBAsMGFZhbGlkYWRvIHBvciBMbGFtYS5wZSBFUjErMCkGA1UECgwiRElTVFJJQlVJRE9SQSBTQU5UQSBQQVRSSUNJQSBTIFIgTDENMAsGA1UEBwwETElNQTELMAkGA1UEBhMCUEUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCmsa8aNxkqzWWk19zfoD/cIhArrgjNFx0TeKtdN+/m+6y8ucQDeqbjtnTHEcLjyeGiWNzowP+VLI9EJFOhsQBHjDMUxF33BYdRQw4Ii5u72voovryE8EAIsuHUkrGwnI4q+ZYq3s/MF/dDNr1Fq5gQYcWju0Qcw5uR18+LDZPxc7IDwWEA9UY0Qe4G49GJWLIcoOEf2wpzQ1+YolBS8PNny9H4a9LjG3+XkCdkVL676PjEykMF/aMEQkSNPkkjiHzl+ftiQXuzAMT/1IxvCwfjwzXHqmHM91jeLk5POw0PkqxfFAvYIBzodXMNygBihmkpAeuXgBpH4qo1unqfdETDAgMBAAGjggGRMIIBjTAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFF2IW63rZfv+aKLk2W89V3Ki7yuZMGcGCCsGAQUFBwEBBFswWTA1BggrBgEFBQcwAoYpaHR0cDovL2NydC5sbGFtYS5wZS9sbGFtYXBlc3RhbmRhcmRjYS5jZXIwIAYIKwYBBQUHMAGGFGh0dHA6Ly9vY3NwLmxsYW1hLnBlMCEGA1UdEQQaMBiBFmRpc19wYXRyaWNpYUB5YWhvby5jb20wRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY3JsMB0GA1UdDgQWBBS5UPPPJNJvf5jr4HwdRfcu37ZOWTAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAGXcN3ocVIpJ/GKOQwlnK3vF49BDGRbXmhrB8wg/VekOUQI6Z4AUMlAcLzi+K2rKJLwbf0bw0psOdLT6Gu2X1DP4bxPaVAqePxjY0t4H2QBmm5MZ8jxJIFgYzf53Bhgu7slJk2bRPsGt8ujAX4EjqyjfhVOnzzLk2QOH/beZK+GsaXduRxvnfBDbknYysdFTDq8J1Hn0lWHjYFhb76doEputR9KYkrTHmqFFyeOyJF2+waJkfDPuVVjWTmYlLLZCzKFKxrjWF/paNE2cJm28QcoVUxBi8o4lq9BHhkBnO54tLZRtnptbMnUkAsmXZg8SmoPpaWzAkCISrGAoTIAXm2M= + + + 2.1 + 2.0 + F002-00052385 + 2026-05-27 + 13:47:01 + 01 + QUINIENTOS NUEVE Y 05/100 + OPERACION SUJETA A DETRACCION + PEN + + 20154645005 + + + 20154645005 + + + DISTRIBUIDORA SANTA PATRICIA S R L + + + + + #SignatureKG + + + + + + + 20154645005 + + + DISTRIBUIDORA SANTA PATRICIA S R L + + + DISTRIBUIDORA SANTA PATRICIA S R L + + 0000 + LIMA + LIMA + SANTIAGO DE SURCO + + PE + + + + + + + + + 20100029741 + + + A. BERIO Y CIA S.A.C. + + + + + 001 + + 00000-451754 + + + + 027 + 4 + 20 + + + FormaPago + Credito + 489.05 + + + FormaPago + Cuota001 + 489.05 + 2026-06-06 + + + 77.65 + + 431.40 + 77.65 + + S + + 1000 + IGV + VAT + + + + + + 431.4 + 509.05 + 0 + 509.05 + + + 1 + 1 + 431.40 + + + 509.050000 + 01 + + + + 77.65 + + 431.40 + 77.65 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + SE000001 + + + 80141623 + + + + 431.398305 + + + \ No newline at end of file diff --git a/tests/correos_prueba/008_correo/20154645005-31-2605-33.pdf b/tests/correos_prueba/008_correo/20154645005-31-2605-33.pdf new file mode 100644 index 0000000..cd96884 Binary files /dev/null and b/tests/correos_prueba/008_correo/20154645005-31-2605-33.pdf differ diff --git a/tests/correos_prueba/008_correo/20154645005-31-V001-4156.xml b/tests/correos_prueba/008_correo/20154645005-31-V001-4156.xml new file mode 100644 index 0000000..74d0a9c --- /dev/null +++ b/tests/correos_prueba/008_correo/20154645005-31-V001-4156.xml @@ -0,0 +1,130 @@ + + + + + J59YkgHRtOUOgTDb+AsI0L9wUwo=E9cCCqtUJWIhTHxgOmfjBVVrTj0vvKDOzSnYz+RQPgbQokF95kUVYv/I10d0y5MsgFQy+ivoNd4ULp5B0kI1CsEXRFlxb5ZPhur2LXpbnMzynmccOfmIbpp7ke5OE+5DNeeC/B6fCpoPp3sjBsD9WYDY2JktLcrIpXiRNeQycH3SIkOxsMSnQCfmqH7pn30kqO8nlJEcb0r0bCu8c/AvexYXW0iEWeKPgpkPyVlHjHGE01hVBhGy09oFspYepeu7T2rQEfGXsyYfJxNHzjdUvLmZJBkV5GZcMfAJ4DCXv1jazNydCDQbH4UnnAmQN3mgz0rO3HJDasKD5OQayPZ4cw==C=PE, L=LIMA, O=DISTRIBUIDORA SANTA PATRICIA S R L, OU=Validado por Llama.pe ER, OU=FACTURA ELECTRONICA RUC 20154645005, CN=SOFTWARE DE FACTURACION ELECTRONICA, E=dis_patricia@yahoo.com, STREET=AV. TOMAS MARSANO NRO. 4330 URB. LA VIRREYNAMIIFgzCCBGugAwIBAgIIGTcLfd6CAQswDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQxMDE0MTgzNDIxWhcNMjYxMDE0MTgzNDAwWjCCASYxNTAzBgNVBAkMLEFWLiBUT01BUyBNQVJTQU5PIE5STy4gNDMzMCBVUkIuIExBIFZJUlJFWU5BMSUwIwYJKoZIhvcNAQkBFhZkaXNfcGF0cmljaWFAeWFob28uY29tMSwwKgYDVQQDDCNTT0ZUV0FSRSBERSBGQUNUVVJBQ0lPTiBFTEVDVFJPTklDQTEsMCoGA1UECwwjRkFDVFVSQSBFTEVDVFJPTklDQSBSVUMgMjAxNTQ2NDUwMDUxITAfBgNVBAsMGFZhbGlkYWRvIHBvciBMbGFtYS5wZSBFUjErMCkGA1UECgwiRElTVFJJQlVJRE9SQSBTQU5UQSBQQVRSSUNJQSBTIFIgTDENMAsGA1UEBwwETElNQTELMAkGA1UEBhMCUEUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCmsa8aNxkqzWWk19zfoD/cIhArrgjNFx0TeKtdN+/m+6y8ucQDeqbjtnTHEcLjyeGiWNzowP+VLI9EJFOhsQBHjDMUxF33BYdRQw4Ii5u72voovryE8EAIsuHUkrGwnI4q+ZYq3s/MF/dDNr1Fq5gQYcWju0Qcw5uR18+LDZPxc7IDwWEA9UY0Qe4G49GJWLIcoOEf2wpzQ1+YolBS8PNny9H4a9LjG3+XkCdkVL676PjEykMF/aMEQkSNPkkjiHzl+ftiQXuzAMT/1IxvCwfjwzXHqmHM91jeLk5POw0PkqxfFAvYIBzodXMNygBihmkpAeuXgBpH4qo1unqfdETDAgMBAAGjggGRMIIBjTAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFF2IW63rZfv+aKLk2W89V3Ki7yuZMGcGCCsGAQUFBwEBBFswWTA1BggrBgEFBQcwAoYpaHR0cDovL2NydC5sbGFtYS5wZS9sbGFtYXBlc3RhbmRhcmRjYS5jZXIwIAYIKwYBBQUHMAGGFGh0dHA6Ly9vY3NwLmxsYW1hLnBlMCEGA1UdEQQaMBiBFmRpc19wYXRyaWNpYUB5YWhvby5jb20wRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY3JsMB0GA1UdDgQWBBS5UPPPJNJvf5jr4HwdRfcu37ZOWTAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAGXcN3ocVIpJ/GKOQwlnK3vF49BDGRbXmhrB8wg/VekOUQI6Z4AUMlAcLzi+K2rKJLwbf0bw0psOdLT6Gu2X1DP4bxPaVAqePxjY0t4H2QBmm5MZ8jxJIFgYzf53Bhgu7slJk2bRPsGt8ujAX4EjqyjfhVOnzzLk2QOH/beZK+GsaXduRxvnfBDbknYysdFTDq8J1Hn0lWHjYFhb76doEputR9KYkrTHmqFFyeOyJF2+waJkfDPuVVjWTmYlLLZCzKFKxrjWF/paNE2cJm28QcoVUxBi8o4lq9BHhkBnO54tLZRtnptbMnUkAsmXZg8SmoPpaWzAkCISrGAoTIAXm2M= + + + 2.1 + 2.0 + V001-00004156 + 2026-05-25 + 00:00:00 + 31 + SEGÚN: GR T001-0129437, CODIGO DE INSCRIPCION : 151903049 + + 20154645005 + + + 20154645005 + + + DISTRIBUIDORA SANTA PATRICIA S R L + + + + + #SignatureKG + + + + + 20154645005 + + + 20154645005 + + + DISTRIBUIDORA SANTA PATRICIA SRL + 1525019CNG + + + + + 20154645005 + + + 20154645005 + + + DISTRIBUIDORA SANTA PATRICIA S R L + + + + + SUNAT_Envio + 16150 + SUNAT_Envio_IndicadorPagadorFlete_Remitente + + + + 1525019CNG + + + + + + 42833005 + RUBEN + PEREZ HUACHO + Principal + + Q42833005 + + + + + + 2026-05-25 + + + + + 150140 + JR. LOMA DE LOS PENSAMIENTOS MZ. W4 LT. 7 URB. PROL. BENAVIDES + + JR. LOMA DE LOS PENSAMIENTOS MZ. W4 LT. 7 URB. PROL. BENAVIDES + + + + + 150143 + AV. ATOCONGO 1860 + + AV. ATOCONGO 1860 + + + + + 20100029741 + + + A. BERIO Y CIA S.A.C. + + + + + + + A1Y872 + + + + + 1 + 380 + + 1 + + + CEMENTO APU + CEMENTO APU + + CE000002 + + + 30111601 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/008_correo/pdf_resultado_008.json b/tests/correos_prueba/008_correo/pdf_resultado_008.json new file mode 100644 index 0000000..2997b37 --- /dev/null +++ b/tests/correos_prueba/008_correo/pdf_resultado_008.json @@ -0,0 +1,57 @@ +[ + { + "ruc_emisor": "20154645005", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. MONEDA: SOLES", + "fecha_emision": "27/05/2026", + "tipo": "01", + "serie": "F002", + "numero": "52385", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. MONEDA: SOLES", + "total_factura": "20.00", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "27.00", + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE UND SERVICIO DE TRANSPORTE 380 BL CEMENTO S/ 1.3396 P. PARTIDA : AV. ATOCONGO 1860 LIMA-LIMA-VILLA MARIA DEL TRIUNFO P. LLEGADA : JR.LOMA DE LOS PENSAMIENTOS MZ.W4 LT.7 URB. PROLONG. BENAVIDES -LIMA-LIMA SEGÚN GRR : T001-0129437 SEGÚN GRT : V001-00004156 VALOR REFERENCIAL : S/ 509.05 CONFIG. VEHICULAR : C3 CARGA TM. : 16.150 NO REGISTRO M.T.C. : 1525019 CNG NRO. DE PLACA : A1Y-872", + "cantidad": "1.0000", + "precio_unitario": "0.00", + "total_linea": "509.05", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129437" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "V001", + "numero": "4156" + } + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/008_correo/20154645005-01-F002-52385.pdf" + }, + { + "ruc_emisor": "20154645005", + "razon_social_emisor": null, + "fecha_emision": "05/33/2026", + "tipo": "31", + "serie": "2605", + "numero": "33", + "ruc_receptor": "20100029741", + "razon_social_receptor": null, + "total_factura": null, + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/008_correo/20154645005-31-2605-33.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/008_correo/xml_resultado_008.json b/tests/correos_prueba/008_correo/xml_resultado_008.json new file mode 100644 index 0000000..e2dd1cf --- /dev/null +++ b/tests/correos_prueba/008_correo/xml_resultado_008.json @@ -0,0 +1,94 @@ +[ + { + "ruc_emisor": "20154645005", + "razon_social_emisor": "DISTRIBUIDORA SANTA PATRICIA S R L", + "fecha_emision": "2026-05-27", + "tipo": "01", + "serie": "F002", + "numero": "52385", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 509.05, + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 509.05, + "total_linea": 431.4, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129437" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "V001", + "numero": "4156" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/008_correo/20154645005-01-F002-52385.xml", + "ruta_pdf": null + }, + { + "ruc_emisor": "20154645005", + "razon_social_emisor": "DISTRIBUIDORA SANTA PATRICIA SRL", + "fecha_emision": "2026-05-25", + "tipo": "31", + "serie": "V001", + "numero": "4156", + "ruc_receptor": "20154645005", + "razon_social_receptor": "DISTRIBUIDORA SANTA PATRICIA S R L", + "total_factura": null, + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": "AV. ATOCONGO 1860", + "punto_llegada": "JR. LOMA DE LOS PENSAMIENTOS MZ. W4 LT. 7 URB. PROL. BENAVIDES", + "peso_bruto": "16150", + "unidad_peso_bruto": "KGM", + "fecha_traslado": "2026-05-25", + "vehiculo_principal": "A1Y872", + "vehiculo_secundario": null, + "licencia_conductor": "Q42833005", + "nombre_conductor": "RUBEN", + "documento_conductor": "42833005", + "ubigeo_partida": "150143", + "lineas": [ + { + "descripcion": "CEMENTO APU", + "cantidad": 380.0, + "precio_unitario": 0.0, + "total_linea": 0.0, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + } + ], + "tipo_descripcion": "Guía de Remisión Transportista", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/008_correo/20154645005-31-V001-4156.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/009_correo/10091153136-01-FPP1-15407-VPP1-516.pdf b/tests/correos_prueba/009_correo/10091153136-01-FPP1-15407-VPP1-516.pdf new file mode 100644 index 0000000..9801f98 Binary files /dev/null and b/tests/correos_prueba/009_correo/10091153136-01-FPP1-15407-VPP1-516.pdf differ diff --git a/tests/correos_prueba/009_correo/10091153136-01-FPP1-15407.pdf b/tests/correos_prueba/009_correo/10091153136-01-FPP1-15407.pdf new file mode 100644 index 0000000..ab4a7ad Binary files /dev/null and b/tests/correos_prueba/009_correo/10091153136-01-FPP1-15407.pdf differ diff --git a/tests/correos_prueba/009_correo/10091153136-01-FPP1-15407.xml b/tests/correos_prueba/009_correo/10091153136-01-FPP1-15407.xml new file mode 100644 index 0000000..0c77919 --- /dev/null +++ b/tests/correos_prueba/009_correo/10091153136-01-FPP1-15407.xml @@ -0,0 +1,182 @@ + + + + + + + + + + + + + + + + G7SzTRDnTkSZdOyu+9zgFKHwWnx55GfjPVWrIV1uLx4= + + + AjOMqnf60Ht+zfmOSy8RcWl2nzXAFSwAiLXKQ6UwumxeXiIuD0oBhRNTPv5AGXHUELJsFAozlPNQOm/NNMvALdTa0JG3OCJuhCD8Bj4CanCfgF4ucl5QbwjZaZDSqeKCseE9iHcOdi/oOSdeI2r6d3OaO1wu4tRNM+DeagQep3RscEHNsLIY5TtXcfHXYXTDmEYywfR6sBWlHGLc+OnzbCrgB3/oa6ZbWUmdMDaRcfa82efT1GFpRJ+x6naq/7WxfheGnyLx/jv1NUx5gleaBKboT2eFTb/bsedGWFhnRFO0IySk0VbsdZlSB0BkCbuADDA7gJ7KpRSSxOk/36YSnA== + + + street=CAL. LIBERTAD NRO. 176 INT. 211,emailAddress=sistemas@nubefact.com,CN=NUBEFACT WEB,OU=20600695771,OU=Validado por Llama.pe ER,O=NUBEFACT S.A.,L=LIMA,C=PE + MIIFLzCCBBegAwIBAgIIeqYdzau699YwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjYwMzA1MTgzODI1WhcNMjkwMzA0MTgzODAwWjCB1DEoMCYGA1UECQwfQ0FMLiBMSUJFUlRBRCBOUk8uIDE3NiBJTlQuIDIxMTEkMCIGCSqGSIb3DQEJARYVc2lzdGVtYXNAbnViZWZhY3QuY29tMRUwEwYDVQQDDAxOVUJFRkFDVCBXRUIxFDASBgNVBAsMCzIwNjAwNjk1NzcxMSEwHwYDVQQLDBhWYWxpZGFkbyBwb3IgTGxhbWEucGUgRVIxFjAUBgNVBAoMDU5VQkVGQUNUIFMuQS4xDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3PnivJidKntheakfk5pA2SOXyG66a1FQtSW1BtXMpN2C953XT9iJLbR9kD/2hUsTs08drxdkSeKJwyMvUL41VpGX54PkSBXg1nqwbNN9dwj+zSd1PsFcmLtpEizyU4r6B8PSo07cdAzisAhnt3F1X/LcpcuJcUT3x88RJt18vSbh903Ihvp6BV7BCkJk/MJSRKeJnVMYJPtrgLvTxH03DUs6mIozR673WmYZAdzXPo1Kv0JpfrP/XTcaZECe2VQ+l7OEQS/s2bSjL7K8VgvTW+PtkCGZu9q6UUYsr3F1UL7TVad9zEFgL7rMQvELT7r+YWCP4AwVfTrXvqAoMednKQIDAQABo4IBkDCCAYwwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRbMFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAgBgNVHREEGTAXgRVzaXN0ZW1hc0BudWJlZmFjdC5jb20wRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY3JsMB0GA1UdDgQWBBSZK2idJe/W7w+eTwXNhJ/o8XK6pjAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAIEF6UtQGQ+yLKVVRCdiogInGUGv7IECqg9gMQNZBZ2ZP9SgQOOTFIsDI0psbS3D6u/wJ2vgf78a287ysqJUcGqhW1+plQh4toN3v8bCqwXACTIYW6bUU5bOab0QY//xrLkNZ8Iwa/M/LZstU3dgZjIwXtcMD+ANAIynN4rcNNgeVja8lnbYU3WQ1u9UIjMxtSp1rLf4mwTGSeLI1uuAWgWczkMaFjMF1RJhX9VlKX8qDC+pr/jiu8LTHt8VDeVvDwpZ4qVbI/8qq+VUyXjBffcDdeY5qb75nnlhEMHLey3t/GcEo80nmtjTKmBdroVkooIat7PcSvfQQ+kzrSnV2as= + + + + + + + + 2.1 + 2.0 + FPP1-15407 + 2026-05-29 + 16:32:15 + 01 + SEISCIENTOS NOVENTA Y SEIS CON 59/100 SOLES + Operacion sujeta a detraccion + PEN + + 10091153136 + WWW.NUBEFACT.COM + + + 10091153136 + + + ZAPATA ARAPA EUSEBIO + + + + + 10091153136 + + + + + + + 10091153136 + + + FERRETERÍA DEPOSITO 1° DE MAYO + + + ZAPATA ARAPA EUSEBIO + + 150142 + 0000 + LIMA + LIMA + VILLA SALVADOR + + Av. 1 DE MAYO MZ C LT 17 ADEICOSUR, PARQUE INDUSTRIAL + + + PE + + + + + + + + + 20100029741 + + + A. BERIO Y CIA S.A.C. + + + AV. 26 DE NOVIEMBRE NRO. 2473 A.H. VIRGEN DE LOURDES - LIMA LIMA VILLA MARIA DEL TRIUNFO + + + + + + + Detraccion + 001 + + 0000000000 + + + + Detraccion + 027 + 4.00 + 28.00 + + + FormaPago + Credito + 668.59 + + + FormaPago + Cuota001 + 668.59 + 2026-06-29 + + + 106.26 + + 590.33 + 106.26 + + + 1000 + IGV + VAT + + + + + + 590.33 + 696.59 + 0.00 + 0.00 + 0.00 + 696.59 + + + + 1 + 520.0 + 590.33 + + + 1.3396 + 01 + + + + 106.26 + + 590.33 + 106.26 + + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE 520 CEMENTO PTO DE PDA. AV. ATOCONGO 1860 VMT- LIMA PRO DE LLDA. AV. PRIMERO DE MAYO MZA. C LT17 OTRO. PARCELA 1 – ADEICOSUR- VILLA EL SALVADOR – LIMA – LIMA. ADEICOSUR - VES SEGÚN GRR. T001- 129749 SEGÚN GRT. VPP1 – 516 R.E.G.M.T.C. Nº 1516491 C.N.G. C.V. T2S2 CARGA. 22.10 V.R. 696.592 CONCEPTO: 027 – TRANSPORTE DE BIENES PORCENTAJE: 4% MONTO DETRACC.: S/ 28.00 NETO A COBRAR: S/ 668.592 OPERACIÓN SUJETA AL SPOT CON EL GOBIERNO CENTRAL CTA BCO NACIÓN 00-063-049697 + + 001 + + + + 1.1352542373 + + + + diff --git a/tests/correos_prueba/009_correo/10091153136-31-VPP1-516.xml b/tests/correos_prueba/009_correo/10091153136-31-VPP1-516.xml new file mode 100644 index 0000000..d50fa28 --- /dev/null +++ b/tests/correos_prueba/009_correo/10091153136-31-VPP1-516.xml @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + pGFus9mok5BsHOvwP9jXVzznwtgwSX8F9LIyJYnikxk= + + + jJovOUNvc7dTBurWODbsH4GaeGH3N7bFZkPjfHCS3BSNiQH4YR6ykNGLAzZY8M2SgP+y/RNHrUI3ZMfo+WQ6dXjXJYiC95lnYY3zf+KKT9XI/nsPztOUCtm8yyCO5W2zuZQkh9WQRJCg0G8TKwd7mf/gZ5xWurVWSzlMo9tyz+gRIyFsnt+nvSJ0Lx8d0VduUrNVsUBG31ruSdAavU0Dm5r86njdnlPLVnXVy42FMjlCAmgNEedtkFBQ0+ipCfTuCis8gUv5XI6GPBrCuwR3c1nO9Bmh+zVuijc4J1R6jLuPvRT96iMykyB1UXatK0isFcHG209moHUlpfn+C0OEoQ== + + + street=CAL. LIBERTAD NRO. 176 INT. 211,emailAddress=sistemas@nubefact.com,CN=NUBEFACT WEB,OU=20600695771,OU=Validado por Llama.pe ER,O=NUBEFACT S.A.,L=LIMA,C=PE + MIIFLzCCBBegAwIBAgIIeqYdzau699YwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjYwMzA1MTgzODI1WhcNMjkwMzA0MTgzODAwWjCB1DEoMCYGA1UECQwfQ0FMLiBMSUJFUlRBRCBOUk8uIDE3NiBJTlQuIDIxMTEkMCIGCSqGSIb3DQEJARYVc2lzdGVtYXNAbnViZWZhY3QuY29tMRUwEwYDVQQDDAxOVUJFRkFDVCBXRUIxFDASBgNVBAsMCzIwNjAwNjk1NzcxMSEwHwYDVQQLDBhWYWxpZGFkbyBwb3IgTGxhbWEucGUgRVIxFjAUBgNVBAoMDU5VQkVGQUNUIFMuQS4xDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3PnivJidKntheakfk5pA2SOXyG66a1FQtSW1BtXMpN2C953XT9iJLbR9kD/2hUsTs08drxdkSeKJwyMvUL41VpGX54PkSBXg1nqwbNN9dwj+zSd1PsFcmLtpEizyU4r6B8PSo07cdAzisAhnt3F1X/LcpcuJcUT3x88RJt18vSbh903Ihvp6BV7BCkJk/MJSRKeJnVMYJPtrgLvTxH03DUs6mIozR673WmYZAdzXPo1Kv0JpfrP/XTcaZECe2VQ+l7OEQS/s2bSjL7K8VgvTW+PtkCGZu9q6UUYsr3F1UL7TVad9zEFgL7rMQvELT7r+YWCP4AwVfTrXvqAoMednKQIDAQABo4IBkDCCAYwwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRbMFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAgBgNVHREEGTAXgRVzaXN0ZW1hc0BudWJlZmFjdC5jb20wRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY3JsMB0GA1UdDgQWBBSZK2idJe/W7w+eTwXNhJ/o8XK6pjAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAIEF6UtQGQ+yLKVVRCdiogInGUGv7IECqg9gMQNZBZ2ZP9SgQOOTFIsDI0psbS3D6u/wJ2vgf78a287ysqJUcGqhW1+plQh4toN3v8bCqwXACTIYW6bUU5bOab0QY//xrLkNZ8Iwa/M/LZstU3dgZjIwXtcMD+ANAIynN4rcNNgeVja8lnbYU3WQ1u9UIjMxtSp1rLf4mwTGSeLI1uuAWgWczkMaFjMF1RJhX9VlKX8qDC+pr/jiu8LTHt8VDeVvDwpZ4qVbI/8qq+VUyXjBffcDdeY5qb75nnlhEMHLey3t/GcEo80nmtjTKmBdroVkooIat7PcSvfQQ+kzrSnV2as= + + + + + + + + 2.1 + 2.0 + VPP1-516 + 2026-05-29 + 16:28:14 + 31 + Obs: MARCA VEHICULO: VOLVO N CONF.VEHICULAR: T2 S2 + + T001-129749 + 09 + Guía de Remisión Remitente + + + 20100029741 + + + + + 10091153136 + WWW.NUBEFACT.COM + + + 10091153136 + + + ZAPATA ARAPA EUSEBIO + + + + + 10091153136 + + + + + 10091153136 + + + 10091153136 + + + ZAPATA ARAPA EUSEBIO + + + + + + + 10091153136 + + + ZAPATA ARAPA EUSEBIO + + + + + SUNAT_Envio + 22.1 + + + 2026-05-29 + + + + 1516491CNG + + + + + ABB758 + + + + 42327525 + LUIS AUGUSTO + YARANGA MARTINEZ + Principal + + Q42327525 + + + + + + 150142 + + PQ. INDUSTRIAL-AV. 1 DE MAYO MZ. C LT. 17- ADEICOSUR- PARC. 1 -VILLA EL SALVADOR - LIMA - LIMA + + + + + 150143 + + AV. ATOCONGO 1860 VILLA MARIA DE L TRIUNFO + + + + + 20100029741 + + + A. BERIO Y CIA S.A.C. + + + + + + + ABB758 + + 0151601857 + + + A6T980 + + 0151834688 + + + + + + + + 1 + 520.0 + + 2 + + + CEMENTO SOL 42.50KG + + CEM01 + + + + + diff --git a/tests/correos_prueba/009_correo/pdf_resultado_009.json b/tests/correos_prueba/009_correo/pdf_resultado_009.json new file mode 100644 index 0000000..91c7f1c --- /dev/null +++ b/tests/correos_prueba/009_correo/pdf_resultado_009.json @@ -0,0 +1,20 @@ +[ + { + "ruc_emisor": "10091153136", + "razon_social_emisor": null, + "fecha_emision": "29/05/2026", + "tipo": "01", + "serie": "FPP1", + "numero": "15407", + "ruc_receptor": "20100029741", + "razon_social_receptor": null, + "total_factura": "696.59", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": "4", + "monto_detraccion": "28.00", + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/009_correo/10091153136-01-FPP1-15407.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/009_correo/xml_resultado_009.json b/tests/correos_prueba/009_correo/xml_resultado_009.json new file mode 100644 index 0000000..dc710ff --- /dev/null +++ b/tests/correos_prueba/009_correo/xml_resultado_009.json @@ -0,0 +1,111 @@ +[ + { + "ruc_emisor": "10091153136", + "razon_social_emisor": "FERRETERÍA DEPOSITO 1° DE MAYO", + "fecha_emision": "2026-05-29", + "tipo": "01", + "serie": "FPP1", + "numero": "15407", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 696.59, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129749" + }, + { + "tipo": "31", + "serie": "VPP1", + "numero": "516" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 28.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE 520 CEMENTO PTO DE PDA. AV. ATOCONGO 1860 VMT- LIMA PRO DE LLDA. AV. PRIMERO DE MAYO MZA. C LT17 OTRO. PARCELA 1 – ADEICOSUR- VILLA EL SALVADOR – LIMA – LIMA. ADEICOSUR - VES SEGÚN GRR. T001- 129749 SEGÚN GRT. VPP1 – 516 R.E.G.M.T.C. Nº 1516491 C.N.G. C.V. T2S2 CARGA. 22.10 V.R. 696.592 CONCEPTO: 027 – TRANSPORTE DE BIENES PORCENTAJE: 4% MONTO DETRACC.: S/ 28.00 NETO A COBRAR: S/ 668.592 OPERACIÓN SUJETA AL SPOT CON EL GOBIERNO CENTRAL CTA BCO NACIÓN 00-063-049697", + "cantidad": 520.0, + "precio_unitario": 1.3396, + "total_linea": 590.33, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129749" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "VPP1", + "numero": "516" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/009_correo/10091153136-01-FPP1-15407.xml", + "ruta_pdf": null + }, + { + "ruc_emisor": "10091153136", + "razon_social_emisor": "ZAPATA ARAPA EUSEBIO", + "fecha_emision": "2026-05-29", + "tipo": "31", + "serie": "VPP1", + "numero": "516", + "ruc_receptor": "10091153136", + "razon_social_receptor": "ZAPATA ARAPA EUSEBIO", + "total_factura": null, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129749" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": "AV. ATOCONGO 1860 VILLA MARIA DE L TRIUNFO", + "punto_llegada": "PQ. INDUSTRIAL-AV. 1 DE MAYO MZ. C LT. 17- ADEICOSUR- PARC. 1 -VILLA EL SALVADOR - LIMA - LIMA", + "peso_bruto": "22.1", + "unidad_peso_bruto": "TNE", + "fecha_traslado": "2026-05-29", + "vehiculo_principal": "ABB758", + "vehiculo_secundario": "A6T980", + "licencia_conductor": "Q42327525", + "nombre_conductor": "LUIS AUGUSTO", + "documento_conductor": "42327525", + "ubigeo_partida": "150143", + "lineas": [ + { + "descripcion": "CEMENTO SOL 42.50KG", + "cantidad": 520.0, + "precio_unitario": 0.0, + "total_linea": 0.0, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + } + ], + "tipo_descripcion": "Guía de Remisión Transportista", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/009_correo/10091153136-31-VPP1-516.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/010_correo/10154500010-01-FF01-3308.pdf b/tests/correos_prueba/010_correo/10154500010-01-FF01-3308.pdf new file mode 100644 index 0000000..9aafb33 Binary files /dev/null and b/tests/correos_prueba/010_correo/10154500010-01-FF01-3308.pdf differ diff --git a/tests/correos_prueba/010_correo/10154500010-31-2605-33.pdf b/tests/correos_prueba/010_correo/10154500010-31-2605-33.pdf new file mode 100644 index 0000000..859b38c Binary files /dev/null and b/tests/correos_prueba/010_correo/10154500010-31-2605-33.pdf differ diff --git a/tests/correos_prueba/010_correo/10154500010-31-EG03-216.xml b/tests/correos_prueba/010_correo/10154500010-31-EG03-216.xml new file mode 100644 index 0000000..3998919 --- /dev/null +++ b/tests/correos_prueba/010_correo/10154500010-31-EG03-216.xml @@ -0,0 +1,240 @@ + + + + + + + + + + + + LRNvMuKGRIobuArlf74KDR/Lcpg= + + + eIySJdU3J3ZZxhOLcqLx9BqFBYodYvOTo5bZnLr5Mnh9n9xWPCaax24IWjVVcxCXXyXOe1m/8QJ4Zg9V8YvCnNYLFw1NcDOueLijfa3JxTZ0bU91pziPRcM81l3AK1/fy0A96W5FswvwDOtmJ8FZb3ezEIM9UuYnlh7UkwcfmjEqINE28zQZqWALzRljpCkGDeYPNXU2Z89xdwRqVUyA0bbMB0HvtNYDqRjcOLpp4vv3lyAhcnE5LQQ5au/7Wm6JXPiMgwROumE9RhMpD1OcKr3sRm0ZYn7OQRIHIqHtES0g6E2cxrPIJ71bSW4eCa8s16HjmvIxzILJYHxWmSqw2Q==MIIFrjCCBJagAwIBAgIIf9Td7Evg0UswDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQwODA5MTYxNTM5WhcNMjcwODA5MTYxNTAwWjCCAVQxKzApBgNVBAkMIkFWLiBHQVJDSUxBU08gREUgTEEgVkVHQSBOUk8uIDE0NzIxIjAgBgkqhkiG9w0BCQEWE3JtZXphZ0BzdW5hdC5nb2IucGUxQTA/BgNVBAMMOFNVUEVSSU5ULiBOQUMuIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBMRwwGgYDVQQLDBNBR0VOVEUgQVVUT01BVElaQURPMS4wLAYDVQQLDCVWYWxpZGFkbyBwb3IgQUJDIElERU5USURBRCBESUdJVEFMIEVSMVQwUgYDVQQKDEtTVVBFUklOVEVOREVOQ0lBIE5BQ0lPTkFMIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBIC0gU1VOQVQxDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1apapJOwMj9tBpgKAgjRwIloUk+xwvQZxc0s/4yl4mDSrc/F/PKZ3QBmKb43fFwivqPUvsr68fQTfyLKM14B+xXwlbQ/yh3+87sMyulLhOPmtSOU0PE8Rw0PsmGVxf1L0HPAPc3Gvuhq4Z9Dx5ByED6s+VppDmncvctlJ/NrzYZCk9H91OinTTPVZrDtbmqnOYra8PaTRoCI9Fmndeo9Oo7esM7KVX9f53NEd/mNQqzAOrgSXthFuBZN7zOsGxJ4ZGrVzHSlCH/jFLgObEizHrqisgL1cxKj8QvbGLUjNtUuTvR5IY6hwRLCxbliTa84BN10E0jC7hhAnnuEIAFJiwIDAQABo4IBjjCCAYowDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRbMFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAeBgNVHREEFzAVgRNybWV6YWdAc3VuYXQuZ29iLnBlMEYGA1UdIAQ/MD0wOwYNKwYBBAGDl3cAAQADATAqMCgGCCsGAQUFBwIBFhxodHRwczovL2xsYW1hLnBlL3JlcG9zaXRvcnkvMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDA6BgNVHR8EMzAxMC+gLaArhilodHRwOi8vY3JsLmxsYW1hLnBlL2xsYW1hcGVzdGFuZGFyZGNhLmNybDAdBgNVHQ4EFgQUuRkPCyM25gAu5se9GraC/UO07X8wDgYDVR0PAQH/BAQDAgbAMA0GCSqGSIb3DQEBCwUAA4IBAQBC8+YM7moZ7bKYCS+VzJ8wzydSboWeNuAs2CfkhI8hRMQr1r5WZg8pDlroCslF/r6SjbkrjuDHcGKJTM2riGEjlOD4CLU9VjOP7Td6CIZyJRLaz63pZYOwE0H0weG/PvYpopDZzJ6AXYzZxwYkJ03/x/vwaCss9ZvmsEn2E1xtGbnMe9MEsg8oF0ul3uRn8Qy5gF37fM7YKuF/r4iBS5uSvBcA5J2FbI/PQls7OgICDyb3W16GeluaT9krY5wQxilJSpGVU++nv5NzmRHkquH3ic2It/KP6MZ9X2tfg6FhpF6JaUz7MSY+J0KnDDcfJlhxgnkgoT5tV3Sr6z5PpQH6C=PE, O=LLAMA.PE, CN=Llama.pe SHA256 Standard CA9211231144834552139Cumple propositoCumple revocacionCumple tslNo ha expirado + + 2.1 + 2.0 + + + + 2026-05-29 + 01:31:47 + 31 + + + + + 09 + + + + + + + + + + + + + + + + + + + + + #SUNAT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 31.45 + + + + + + + + + SUNAT_Envio_IndicadorPagadorFlete_Remitente + + + + + + + + + + + + 2026-05-29 + + + + + + + + + + + + + + + + + + + QUINTANA QUISPE GERARDO + + + QUINTANA QUISPE GERARDO + + + Principal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 15M25060472E + + + + + + + + + + + + + + + + + 15M25060473E + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/correos_prueba/010_correo/CDR-10154500010-01-FF01-3308.xml b/tests/correos_prueba/010_correo/CDR-10154500010-01-FF01-3308.xml new file mode 100644 index 0000000..fa6f4a5 --- /dev/null +++ b/tests/correos_prueba/010_correo/CDR-10154500010-01-FF01-3308.xml @@ -0,0 +1,54 @@ + + + + ++vnz3BA+AEgNvaNnn09EAeVPnx8MvxiZFfdr66SKzM=XshakaqeaE2tLh9WLCy3Yh/hFbp22djvtmq3AxjRL4zIA0VJzL/dePHQopZ89Gd2uRpMfRI33m9zZkNTbyRPvz3JorVZspo7lpKUxqolX5o+EeB4N5XI/5Et5kq/m2ptEpyZvtdB4EwU4AswzYdUAaAEuh9PzDtkRUM8YnzWG4L0CzlGEGwtl6hsSB9WWOWoOAMQ3IMdlyAB1lGmieUmTiDSjhQraGRI2kkQHfDzi2zqX3TglWAoz7avrUlrifOfb3PORh4wmae6HE5ecpG31eFBHazEQOGJaokfrj33E1TQvIG8qAs/qy1g4cnih+IlJjhBcPsmCr4h3Jocr6Wx6Q==C=PE, O=LLAMA.PE, CN=Llama.pe SHA256 Standard CAMIIFrjCCBJagAwIBAgIIc2eNOs0y3WswDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQwMTI1MTkyMzQxWhcNMjYwMTI0MTkyMzAwWjCCAVQxKzApBgNVBAkMIkFWLiBHQVJDSUxBU08gREUgTEEgVkVHQSBOUk8uIDE0NzIxIjAgBgkqhkiG9w0BCQEWE3JtZXphZ0BzdW5hdC5nb2IucGUxQTA/BgNVBAMMOFNVUEVSSU5ULiBOQUMuIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBMRwwGgYDVQQLDBNBR0VOVEUgQVVUT01BVElaQURPMS4wLAYDVQQLDCVWYWxpZGFkbyBwb3IgQUJDIElERU5USURBRCBESUdJVEFMIEVSMVQwUgYDVQQKDEtTVVBFUklOVEVOREVOQ0lBIE5BQ0lPTkFMIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBIC0gU1VOQVQxDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxiw3ab0PlTQpV4Xw5sFK/+m8y5ZEFqOWDW/Jo2kEd11ICZTomYgo3VCT86RPw0OSRoNwHx6fzRnw9ea/jOCCdNyr0W/aRYGuU0t21QKK+w3hzuV2GBCYIJ3WVSByVxwgMe0oQr8wNnZg7FD25W/3HveIQOIJDGPH6a3gQ7E9uMu26zp3uvG3+sI3uTi+4rYNi618Wrg1YbtqfhprsC/32FXlWsJoB4YX4ei9izJrKpso4fsgsl4q7jcDbE1mmssEYImhZIc523b8BpgSkrHYOfADREXKBpH3imZKLmADzbnY6F2evUIjZrE4YVNO1MSklxCtzcsy91cwcZAaK/UPDQIDAQABo4IBjjCCAYowDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRbMFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAeBgNVHREEFzAVgRNybWV6YWdAc3VuYXQuZ29iLnBlMEYGA1UdIAQ/MD0wOwYNKwYBBAGDl3cAAQADATAqMCgGCCsGAQUFBwIBFhxodHRwczovL2xsYW1hLnBlL3JlcG9zaXRvcnkvMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDA6BgNVHR8EMzAxMC+gLaArhilodHRwOi8vY3JsLmxsYW1hLnBlL2xsYW1hcGVzdGFuZGFyZGNhLmNybDAdBgNVHQ4EFgQUyqaBmn52E+bZ5nB5i34oE0fcqG4wDgYDVR0PAQH/BAQDAgbAMA0GCSqGSIb3DQEBCwUAA4IBAQCwmv7rS+NNsb7O1VmIcKt7ZThv713+NQlt3hS/6cSHkvfXWpFu/qLHCm0S2GTwOBYjHSSNmoGXKKmXBehWcLn2Zx7eE4Te0naghaZ10VkCd4FN/A4yZji3QIJj0s7xMzgrHnGBOXJmWvC9RSEpvvqR6vdgSJBI8+R/Qt/j1KR4gA/bSiIqdSKp4sHmloVUBMOlpgM8kzm74VmcxV9MT2hsv+JwnWXx2OnLetjjZfXnXBC7UJu35EsLSgETF9wEht7fWTAtl/rEEatQt1A1BdvaiBVsIyKl8qakxT6eIMLgwHYfuZYfgpHys3Gy96pspM3aCjHKO2b/ZntyT4V813zj + + 2.1 + 1.0 + 427906d5-dcc7-4922-bf74-32f599a3e547 + 2026-05-29 + 08:25:10.93801 + 2026-05-29 + 08:25:10.97135 + + SignSUNAT + + + 20131312955 + + + SUNAT + + + + + #SignSUNAT + + + + + + 20131312955 + + + + + 10154500010 + + + + + FF01-3308 + 0 + La Factura numero FF01-3308, ha sido aceptado + + + FF01-3308 + + + + 6-20100029741 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/010_correo/pdf_resultado_010.json b/tests/correos_prueba/010_correo/pdf_resultado_010.json new file mode 100644 index 0000000..ca32fff --- /dev/null +++ b/tests/correos_prueba/010_correo/pdf_resultado_010.json @@ -0,0 +1,63 @@ +[ + { + "ruc_emisor": "10154500010", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "29/05/2026", + "tipo": "01", + "serie": "FF01", + "numero": "3308", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": "1585.08", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": "4.00", + "monto_detraccion": "27.00", + "lineas": [ + { + "descripcion": "UNIDADES 20251025120428 SERVICIO DE TRANSPORTE SERVICIO DE TRANSPORTE 740 BL CEMENTO P. PARTIDA: AV. ATOCONGO 1860 VILLA MARIA DEL TRIUNFO - LIMA - LIMA P. LLEGADA: CA. PANAMERICANA SUR MZ. A6 LT. 4 AS. EL TREBOL - SAN VICENTE DE CAÑETE - CAÑETE - LIMA SEGUN GRR: T001-0129711 SEGUN GRT: EG03-00000216 VALOR REFERENCIAL: 2,510.02 CONFIG. VEHICULAR: T3S3 CARGA TM.: 31.45 N° REGISTRO M.T.C: 1562011CNG PLACA VEHICULO: CFW-860/BUI-979 SON MIL QUINIENTOS OCHENTA Y CINCO Y 08/100 SOLES", + "cantidad": "740.00", + "precio_unitario": "2.14", + "total_linea": "1585.08", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129711" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "216" + } + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/010_correo/10154500010-01-FF01-3308.pdf" + }, + { + "ruc_emisor": "10154500010", + "razon_social_emisor": "REMUZGO PISCONTI LIZ GIANNINA", + "fecha_emision": "05/33/2026", + "tipo": "31", + "serie": "2605", + "numero": "33", + "ruc_receptor": "20100029741", + "razon_social_receptor": "REMUZGO PISCONTI LIZ GIANNINA", + "total_factura": null, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129711" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/010_correo/10154500010-31-2605-33.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/010_correo/xml_resultado_010.json b/tests/correos_prueba/010_correo/xml_resultado_010.json new file mode 100644 index 0000000..be6eba1 --- /dev/null +++ b/tests/correos_prueba/010_correo/xml_resultado_010.json @@ -0,0 +1,39 @@ +[ + { + "ruc_emisor": "10154500010", + "razon_social_emisor": "REMUZGO PISCONTI LIZ GIANNINA", + "fecha_emision": "2026-05-29", + "tipo": "31", + "serie": "EG03", + "numero": "216", + "ruc_receptor": "10154500010", + "razon_social_receptor": "REMUZGO PISCONTI LIZ GIANNINA", + "total_factura": null, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129711" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": "AV. ATOCONGO 1860 - LIMA - LIMA - VILLA MARIA DEL TRIUNFO", + "punto_llegada": "CA. PANAMERICANA SUR MZ. A6 LT. 4 AS. EL TREBOL", + "peso_bruto": "31.45", + "unidad_peso_bruto": "TNE", + "fecha_traslado": "2026-05-29", + "vehiculo_principal": "CFW860", + "vehiculo_secundario": "BUI979", + "licencia_conductor": "Q40190692", + "nombre_conductor": "QUINTANA QUISPE GERARDO", + "documento_conductor": "40190692", + "ubigeo_partida": "150143", + "lineas": [], + "tipo_descripcion": "Guía de Remisión Transportista", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/010_correo/10154500010-31-EG03-216.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/011_correo/20516287641-01-FF03-1100.pdf b/tests/correos_prueba/011_correo/20516287641-01-FF03-1100.pdf new file mode 100644 index 0000000..2c45bee Binary files /dev/null and b/tests/correos_prueba/011_correo/20516287641-01-FF03-1100.pdf differ diff --git a/tests/correos_prueba/011_correo/20516287641-01-FF03-1100.xml b/tests/correos_prueba/011_correo/20516287641-01-FF03-1100.xml new file mode 100644 index 0000000..2104991 --- /dev/null +++ b/tests/correos_prueba/011_correo/20516287641-01-FF03-1100.xml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + iqqbui/4mECjZwCUF7Pzs/N3icjZktM24HG7wEB4PM4= + + + W8oT+dnoylFsSrUUc8Wn0o1ly02bKaD95gC3IRnhe/TmtbezqYzPPgpB4/QpgcAUO0o62OH7N7F7n0YY0qBIjBrTQ8dZrUe5MC8EeulFYRRfZg+tWVQC0+xpxUuAmNWio8qakT/dXC1pK/mjFJU3y3v4OoU4u02uCRinNt27NB/TYlOC0pyF5/bM0W3EuQ/p8wDEyelevBnU/rbJkXXaEpMR+OhV+3SPoS5jFED/RW0V1MqWhKZxjU2nv2Vl72T9i9lSY8Sf+bTIpqxRCbEQsrZ0f2k19FiDAkyPxAJOy9+TQjhQgg4cuNVp5Oi8BuMI9hp6Bhkq6T+9DD3IA0sOYQ== + + + street=CAL. LIBERTAD NRO. 176 INT. 211,emailAddress=sistemas@nubefact.com,CN=NUBEFACT WEB,OU=20600695771,OU=Validado por Llama.pe ER,O=NUBEFACT S.A.,L=LIMA,C=PE + MIIFLzCCBBegAwIBAgIIeqYdzau699YwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjYwMzA1MTgzODI1WhcNMjkwMzA0MTgzODAwWjCB1DEoMCYGA1UECQwfQ0FMLiBMSUJFUlRBRCBOUk8uIDE3NiBJTlQuIDIxMTEkMCIGCSqGSIb3DQEJARYVc2lzdGVtYXNAbnViZWZhY3QuY29tMRUwEwYDVQQDDAxOVUJFRkFDVCBXRUIxFDASBgNVBAsMCzIwNjAwNjk1NzcxMSEwHwYDVQQLDBhWYWxpZGFkbyBwb3IgTGxhbWEucGUgRVIxFjAUBgNVBAoMDU5VQkVGQUNUIFMuQS4xDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3PnivJidKntheakfk5pA2SOXyG66a1FQtSW1BtXMpN2C953XT9iJLbR9kD/2hUsTs08drxdkSeKJwyMvUL41VpGX54PkSBXg1nqwbNN9dwj+zSd1PsFcmLtpEizyU4r6B8PSo07cdAzisAhnt3F1X/LcpcuJcUT3x88RJt18vSbh903Ihvp6BV7BCkJk/MJSRKeJnVMYJPtrgLvTxH03DUs6mIozR673WmYZAdzXPo1Kv0JpfrP/XTcaZECe2VQ+l7OEQS/s2bSjL7K8VgvTW+PtkCGZu9q6UUYsr3F1UL7TVad9zEFgL7rMQvELT7r+YWCP4AwVfTrXvqAoMednKQIDAQABo4IBkDCCAYwwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRbMFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAgBgNVHREEGTAXgRVzaXN0ZW1hc0BudWJlZmFjdC5jb20wRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY3JsMB0GA1UdDgQWBBSZK2idJe/W7w+eTwXNhJ/o8XK6pjAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAIEF6UtQGQ+yLKVVRCdiogInGUGv7IECqg9gMQNZBZ2ZP9SgQOOTFIsDI0psbS3D6u/wJ2vgf78a287ysqJUcGqhW1+plQh4toN3v8bCqwXACTIYW6bUU5bOab0QY//xrLkNZ8Iwa/M/LZstU3dgZjIwXtcMD+ANAIynN4rcNNgeVja8lnbYU3WQ1u9UIjMxtSp1rLf4mwTGSeLI1uuAWgWczkMaFjMF1RJhX9VlKX8qDC+pr/jiu8LTHt8VDeVvDwpZ4qVbI/8qq+VUyXjBffcDdeY5qb75nnlhEMHLey3t/GcEo80nmtjTKmBdroVkooIat7PcSvfQQ+kzrSnV2as= + + + + + + + + 2.1 + 2.0 + FF03-1100 + 2026-05-28 + 21:01:03 + 01 + TRESCIENTOS SESENTA Y UNO CON 69/100 SOLES + Obs: OPERACION SUJETA AL SPOT CON EL GOBIERNO CENTRAL CTA CTE 00-058-189227-BANCO DE LA NACION N REG MTC 1548287 CNG + PEN + + 20516287641 + WWW.NUBEFACT.COM + + + 20516287641 + + + FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA - FERREMAURO Y HNOS SRL + + + + + 20516287641 + + + + + + + 20516287641 + + + FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA - FERREMAURO Y HNOS SRL + + + FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA - FERREMAURO Y HNOS SRL + + 150133 + 0000 + LIMA + LIMA + SAN JUAN DE MIRAFLORES + + MZA. H2 LOTE. 31 P.J. PAMPLONA ALTA-SEC M. GRAU (AV SOLIDARIDAD CON SALVADOR ALLENDE) LIMA - LIMA - SAN JUAN DE MIRAFLORES + + + PE + + + + + + + + + 20100029741 + + + A. BERIO Y CIA S.A.C. + + + AV. 26 DE NOVIEMBRE NRO. 2473 A.H. VIRGEN DE LOURDES (PARADERO 14 NUEVA ESPERANZA - PISO 2) LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + + + FormaPago + Credito + 361.69 + + + FormaPago + Cuota001 + 361.69 + 2026-06-28 + + + 55.17 + + 306.52 + 55.17 + + + 1000 + IGV + VAT + + + + + + 306.52 + 361.69 + 0.00 + 0.00 + 0.00 + 361.69 + + + + 1 + 1.0 + 306.52 + + + 361.6936 + 01 + + + + 55.17 + + 306.52 + 55.17 + + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + Servicio de Transporte ,270 bls de Cemento x s/1.3396, Punto de Partida: Av. Atocongo 1860 – Villa María del Triunfo, Punto de Llegada: Mz H2 Lt 31 Sector Miguel Grau – P. Alta – SJM, Valor referencial s/361.69, GRET: EG03-00000253 y según GRE: T001-0129356 Configuración Vehicular C2// Peso Aprox. 11.475 Tn. + + 01 + + + + 306.52 + + + + diff --git a/tests/correos_prueba/011_correo/20516287641-31-EG03-253.pdf b/tests/correos_prueba/011_correo/20516287641-31-EG03-253.pdf new file mode 100644 index 0000000..7a2cbed Binary files /dev/null and b/tests/correos_prueba/011_correo/20516287641-31-EG03-253.pdf differ diff --git a/tests/correos_prueba/011_correo/20516287641-31-EG03-253.xml b/tests/correos_prueba/011_correo/20516287641-31-EG03-253.xml new file mode 100644 index 0000000..67a1373 --- /dev/null +++ b/tests/correos_prueba/011_correo/20516287641-31-EG03-253.xml @@ -0,0 +1,250 @@ + + + + + + + + + + + + sWk7w54B3qSkE66OsIliqVPlC98= + + + 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PE, O=LLAMA.PE, CN=Llama.pe SHA256 Standard CA9211231144834552139Cumple propositoCumple revocacionCumple tslNo ha expirado + + 2.1 + 2.0 + + + + 2026-05-22 + 16:26:26 + 31 + + + + + + 01 + + + + + + + + + + + + + + + + + + + + + #SUNAT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 11.475 + + + + + + + + + SUNAT_Envio_IndicadorPagadorFlete_Remitente + + + + + + + + + + + + 2026-05-22 + + + + + + + + + + + + + + + + + + + CUELLAR ALMERCO EDWIN GUIDO + + + CUELLAR ALMERCO EDWIN GUIDO + + + Principal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0151319401 + + + + + + + + + + + + + + + + + + + + + 270 + + + 1 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/correos_prueba/011_correo/pdf_resultado_011.json b/tests/correos_prueba/011_correo/pdf_resultado_011.json new file mode 100644 index 0000000..7392532 --- /dev/null +++ b/tests/correos_prueba/011_correo/pdf_resultado_011.json @@ -0,0 +1,44 @@ +[ + { + "ruc_emisor": "20516287641", + "razon_social_emisor": null, + "fecha_emision": "28/05/2026", + "tipo": "01", + "serie": "FF03", + "numero": "1100", + "ruc_receptor": "20100029741", + "razon_social_receptor": null, + "total_factura": "361.69", + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/011_correo/20516287641-01-FF03-1100.pdf" + }, + { + "ruc_emisor": "20516287641", + "razon_social_emisor": "FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA", + "fecha_emision": "22/05/2026", + "tipo": "31", + "serie": "EG03", + "numero": "253", + "ruc_receptor": "20100029741", + "razon_social_receptor": "FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA", + "total_factura": null, + "documentos_referencia": [ + { + "tipo": "31", + "serie": "F001", + "numero": "222569" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/011_correo/20516287641-31-EG03-253.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/011_correo/xml_resultado_011.json b/tests/correos_prueba/011_correo/xml_resultado_011.json new file mode 100644 index 0000000..51a0b3f --- /dev/null +++ b/tests/correos_prueba/011_correo/xml_resultado_011.json @@ -0,0 +1,111 @@ +[ + { + "ruc_emisor": "20516287641", + "razon_social_emisor": "FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA - FERREMAURO Y HNOS SRL", + "fecha_emision": "2026-05-28", + "tipo": "01", + "serie": "FF03", + "numero": "1100", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 361.69, + "documentos_referencia": [ + { + "tipo": "31", + "serie": "EG03", + "numero": "253" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "129356" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "Servicio de Transporte ,270 bls de Cemento x s/1.3396, Punto de Partida: Av. Atocongo 1860 – Villa María del Triunfo, Punto de Llegada: Mz H2 Lt 31 Sector Miguel Grau – P. Alta – SJM, Valor referencial s/361.69, GRET: EG03-00000253 y según GRE: T001-0129356 Configuración Vehicular C2// Peso Aprox. 11.475 Tn.", + "cantidad": 1.0, + "precio_unitario": 361.6936, + "total_linea": 306.52, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129356" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "253" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/011_correo/20516287641-01-FF03-1100.xml", + "ruta_pdf": null + }, + { + "ruc_emisor": "20516287641", + "razon_social_emisor": "FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA - FERREMAURO Y HNOS SRL", + "fecha_emision": "2026-05-22", + "tipo": "31", + "serie": "EG03", + "numero": "253", + "ruc_receptor": "20516287641", + "razon_social_receptor": "FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA - FERREMAURO Y HNOS SRL", + "total_factura": null, + "documentos_referencia": [ + { + "tipo": "01", + "serie": "F001", + "numero": "222569" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": "AV ATOCONGO 1860", + "punto_llegada": "MZ H2 LT31 SECTOR MIGUEL GRAU PAMPLONA ALTA", + "peso_bruto": "11.475", + "unidad_peso_bruto": "TNE", + "fecha_traslado": "2026-05-22", + "vehiculo_principal": "D0P728", + "vehiculo_secundario": null, + "licencia_conductor": "Q10011751", + "nombre_conductor": "CUELLAR ALMERCO EDWIN GUIDO", + "documento_conductor": "10011751", + "ubigeo_partida": "150143", + "lineas": [ + { + "descripcion": "CEMENTO TIPO I (SOL)", + "cantidad": 270.0, + "precio_unitario": 0.0, + "total_linea": 0.0, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + } + ], + "tipo_descripcion": "Guía de Remisión Transportista", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/011_correo/20516287641-31-EG03-253.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/012_correo/20220631541-01-E001-6942.pdf b/tests/correos_prueba/012_correo/20220631541-01-E001-6942.pdf new file mode 100644 index 0000000..ab29efc Binary files /dev/null and b/tests/correos_prueba/012_correo/20220631541-01-E001-6942.pdf differ diff --git a/tests/correos_prueba/012_correo/20220631541-01-E001-6942.xml b/tests/correos_prueba/012_correo/20220631541-01-E001-6942.xml new file mode 100644 index 0000000..50476aa --- /dev/null +++ b/tests/correos_prueba/012_correo/20220631541-01-E001-6942.xml @@ -0,0 +1,292 @@ + + + + + + + + + + + + jp+43Xx8RPmSvDKRvsjnomUPipo=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 + + + + 2.1 + 2.0 + + E001-6942 + 2026-05-30 + 10:54:25.0Z + + 01 + + + + PEN + + + E001-6942 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20220631541 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + - + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00571016788 + + + + Detraccion + 027 + 4.00 + 57.00 + + + + + + FormaPago + Credito + 1363.65 + + + + FormaPago + Cuota001 + 1363.65 + 2026-06-12 + + + + + + + 216.71 + + + + + 1203.94 + 216.71 + + S + + 1000 + IGV + VAT + + + + + + 1203.94 + 0.00 + 0.00 + 0.00 + + 1420.65 + + + + 1 + 1.00 + 1203.941 + + false + + + + 1420.65038 + 01 + + + + + + + 150509 + + AV. PANAMERICANA NRO 602 - LIMA - CAÑETE - MALA + + + + + + 150143 + + AV ATOCONGO 1860 - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 0.00 + + + 02 + 0.00 + + + 03 + 0.00 + + + 01 + + + 0 + + + - + false + + + 01 + 0.00 + + + + + + + + + true + 0.00 + + + + + 216.70938 + + + + + + 1203.941 + 216.70938 + + S + 18.00 + + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 1203.941 + + + + diff --git a/tests/correos_prueba/012_correo/20220631541-31-EG03-2502.pdf b/tests/correos_prueba/012_correo/20220631541-31-EG03-2502.pdf new file mode 100644 index 0000000..9dbd648 Binary files /dev/null and b/tests/correos_prueba/012_correo/20220631541-31-EG03-2502.pdf differ diff --git a/tests/correos_prueba/012_correo/pdf_resultado_012.json b/tests/correos_prueba/012_correo/pdf_resultado_012.json new file mode 100644 index 0000000..74bc4c4 --- /dev/null +++ b/tests/correos_prueba/012_correo/pdf_resultado_012.json @@ -0,0 +1,63 @@ +[ + { + "ruc_emisor": "20220631541", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "30/05/2026", + "tipo": "01", + "serie": "E001", + "numero": "6942", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": "1363.65", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "57.00", + "lineas": [ + { + "descripcion": "UNIDAD SERVICIO DE TRANSPORTE DE CARGA DE MERCANCIAS CERTIFICADO DE INSCRIPCION:157935- CNG 750 BLS RUTA: LIMA-(LIMA)- MALA (CAÑETE) S/GRT:EG03-2502 Y G.R.R: T001-129610 DEL 27.05.26 F9V-838/C4E-990 CATEGORIA: T3S3", + "cantidad": "1.00", + "precio_unitario": "1203.941", + "total_linea": "0.00", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129610" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "2502" + } + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/012_correo/20220631541-01-E001-6942.pdf" + }, + { + "ruc_emisor": "20220631541", + "razon_social_emisor": "DEPOSITO DE MATERIALES DE CONSTRUCCION JUAN PABLO II S.A.C.", + "fecha_emision": "27/05/2026", + "tipo": "31", + "serie": "EG03", + "numero": "2502", + "ruc_receptor": "20100029741", + "razon_social_receptor": "DEPOSITO DE MATERIALES DE CONSTRUCCION JUAN PABLO II S.A.C.", + "total_factura": null, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129610" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/012_correo/20220631541-31-EG03-2502.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/012_correo/xml_resultado_012.json b/tests/correos_prueba/012_correo/xml_resultado_012.json new file mode 100644 index 0000000..f300d57 --- /dev/null +++ b/tests/correos_prueba/012_correo/xml_resultado_012.json @@ -0,0 +1,64 @@ +[ + { + "ruc_emisor": "20220631541", + "razon_social_emisor": "EMPRESA DE TRANSPORTE DE CARGA JUAN PABLO II SAC", + "fecha_emision": "2026-05-30", + "tipo": "01", + "serie": "E001", + "numero": "6942", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1420.65, + "documentos_referencia": [ + { + "tipo": "31", + "serie": "EG03", + "numero": "2502" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "129610" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 57.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE DE CARGA DE MERCANCIAS CERTIFICADO DE INSCRIPCION:157935-CNG 750 BLS RUTA: LIMA-(LIMA)- MALA (CAÑETE) S/GRT:EG03-2502 Y G.R.R: T001-129610 DEL 27.05.26 F9V-838/C4E-990 CATEGORIA: T3S3", + "cantidad": 1.0, + "precio_unitario": 1420.65038, + "total_linea": 1203.941, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129610" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "2502" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/012_correo/20220631541-01-E001-6942.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/013_correo/20516287641-01-FF03-1100.pdf b/tests/correos_prueba/013_correo/20516287641-01-FF03-1100.pdf new file mode 100644 index 0000000..2c45bee Binary files /dev/null and b/tests/correos_prueba/013_correo/20516287641-01-FF03-1100.pdf differ diff --git a/tests/correos_prueba/013_correo/20516287641-01-FF03-1100.xml b/tests/correos_prueba/013_correo/20516287641-01-FF03-1100.xml new file mode 100644 index 0000000..2104991 --- /dev/null +++ b/tests/correos_prueba/013_correo/20516287641-01-FF03-1100.xml @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + iqqbui/4mECjZwCUF7Pzs/N3icjZktM24HG7wEB4PM4= + + + W8oT+dnoylFsSrUUc8Wn0o1ly02bKaD95gC3IRnhe/TmtbezqYzPPgpB4/QpgcAUO0o62OH7N7F7n0YY0qBIjBrTQ8dZrUe5MC8EeulFYRRfZg+tWVQC0+xpxUuAmNWio8qakT/dXC1pK/mjFJU3y3v4OoU4u02uCRinNt27NB/TYlOC0pyF5/bM0W3EuQ/p8wDEyelevBnU/rbJkXXaEpMR+OhV+3SPoS5jFED/RW0V1MqWhKZxjU2nv2Vl72T9i9lSY8Sf+bTIpqxRCbEQsrZ0f2k19FiDAkyPxAJOy9+TQjhQgg4cuNVp5Oi8BuMI9hp6Bhkq6T+9DD3IA0sOYQ== + + + street=CAL. LIBERTAD NRO. 176 INT. 211,emailAddress=sistemas@nubefact.com,CN=NUBEFACT WEB,OU=20600695771,OU=Validado por Llama.pe ER,O=NUBEFACT S.A.,L=LIMA,C=PE + MIIFLzCCBBegAwIBAgIIeqYdzau699YwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjYwMzA1MTgzODI1WhcNMjkwMzA0MTgzODAwWjCB1DEoMCYGA1UECQwfQ0FMLiBMSUJFUlRBRCBOUk8uIDE3NiBJTlQuIDIxMTEkMCIGCSqGSIb3DQEJARYVc2lzdGVtYXNAbnViZWZhY3QuY29tMRUwEwYDVQQDDAxOVUJFRkFDVCBXRUIxFDASBgNVBAsMCzIwNjAwNjk1NzcxMSEwHwYDVQQLDBhWYWxpZGFkbyBwb3IgTGxhbWEucGUgRVIxFjAUBgNVBAoMDU5VQkVGQUNUIFMuQS4xDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3PnivJidKntheakfk5pA2SOXyG66a1FQtSW1BtXMpN2C953XT9iJLbR9kD/2hUsTs08drxdkSeKJwyMvUL41VpGX54PkSBXg1nqwbNN9dwj+zSd1PsFcmLtpEizyU4r6B8PSo07cdAzisAhnt3F1X/LcpcuJcUT3x88RJt18vSbh903Ihvp6BV7BCkJk/MJSRKeJnVMYJPtrgLvTxH03DUs6mIozR673WmYZAdzXPo1Kv0JpfrP/XTcaZECe2VQ+l7OEQS/s2bSjL7K8VgvTW+PtkCGZu9q6UUYsr3F1UL7TVad9zEFgL7rMQvELT7r+YWCP4AwVfTrXvqAoMednKQIDAQABo4IBkDCCAYwwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRbMFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAgBgNVHREEGTAXgRVzaXN0ZW1hc0BudWJlZmFjdC5jb20wRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY3JsMB0GA1UdDgQWBBSZK2idJe/W7w+eTwXNhJ/o8XK6pjAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAIEF6UtQGQ+yLKVVRCdiogInGUGv7IECqg9gMQNZBZ2ZP9SgQOOTFIsDI0psbS3D6u/wJ2vgf78a287ysqJUcGqhW1+plQh4toN3v8bCqwXACTIYW6bUU5bOab0QY//xrLkNZ8Iwa/M/LZstU3dgZjIwXtcMD+ANAIynN4rcNNgeVja8lnbYU3WQ1u9UIjMxtSp1rLf4mwTGSeLI1uuAWgWczkMaFjMF1RJhX9VlKX8qDC+pr/jiu8LTHt8VDeVvDwpZ4qVbI/8qq+VUyXjBffcDdeY5qb75nnlhEMHLey3t/GcEo80nmtjTKmBdroVkooIat7PcSvfQQ+kzrSnV2as= + + + + + + + + 2.1 + 2.0 + FF03-1100 + 2026-05-28 + 21:01:03 + 01 + TRESCIENTOS SESENTA Y UNO CON 69/100 SOLES + Obs: OPERACION SUJETA AL SPOT CON EL GOBIERNO CENTRAL CTA CTE 00-058-189227-BANCO DE LA NACION N REG MTC 1548287 CNG + PEN + + 20516287641 + WWW.NUBEFACT.COM + + + 20516287641 + + + FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA - FERREMAURO Y HNOS SRL + + + + + 20516287641 + + + + + + + 20516287641 + + + FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA - FERREMAURO Y HNOS SRL + + + FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA - FERREMAURO Y HNOS SRL + + 150133 + 0000 + LIMA + LIMA + SAN JUAN DE MIRAFLORES + + MZA. H2 LOTE. 31 P.J. PAMPLONA ALTA-SEC M. GRAU (AV SOLIDARIDAD CON SALVADOR ALLENDE) LIMA - LIMA - SAN JUAN DE MIRAFLORES + + + PE + + + + + + + + + 20100029741 + + + A. BERIO Y CIA S.A.C. + + + AV. 26 DE NOVIEMBRE NRO. 2473 A.H. VIRGEN DE LOURDES (PARADERO 14 NUEVA ESPERANZA - PISO 2) LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + + + FormaPago + Credito + 361.69 + + + FormaPago + Cuota001 + 361.69 + 2026-06-28 + + + 55.17 + + 306.52 + 55.17 + + + 1000 + IGV + VAT + + + + + + 306.52 + 361.69 + 0.00 + 0.00 + 0.00 + 361.69 + + + + 1 + 1.0 + 306.52 + + + 361.6936 + 01 + + + + 55.17 + + 306.52 + 55.17 + + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + Servicio de Transporte ,270 bls de Cemento x s/1.3396, Punto de Partida: Av. Atocongo 1860 – Villa María del Triunfo, Punto de Llegada: Mz H2 Lt 31 Sector Miguel Grau – P. Alta – SJM, Valor referencial s/361.69, GRET: EG03-00000253 y según GRE: T001-0129356 Configuración Vehicular C2// Peso Aprox. 11.475 Tn. + + 01 + + + + 306.52 + + + + diff --git a/tests/correos_prueba/013_correo/20516287641-31-EG03-253.pdf b/tests/correos_prueba/013_correo/20516287641-31-EG03-253.pdf new file mode 100644 index 0000000..7a2cbed Binary files /dev/null and b/tests/correos_prueba/013_correo/20516287641-31-EG03-253.pdf differ diff --git a/tests/correos_prueba/013_correo/20516287641-31-EG03-253.xml b/tests/correos_prueba/013_correo/20516287641-31-EG03-253.xml new file mode 100644 index 0000000..67a1373 --- /dev/null +++ b/tests/correos_prueba/013_correo/20516287641-31-EG03-253.xml @@ -0,0 +1,250 @@ + + + + + + + + + + + + sWk7w54B3qSkE66OsIliqVPlC98= + + + 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PE, O=LLAMA.PE, CN=Llama.pe SHA256 Standard CA9211231144834552139Cumple propositoCumple revocacionCumple tslNo ha expirado + + 2.1 + 2.0 + + + + 2026-05-22 + 16:26:26 + 31 + + + + + + 01 + + + + + + + + + + + + + + + + + + + + + #SUNAT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 11.475 + + + + + + + + + SUNAT_Envio_IndicadorPagadorFlete_Remitente + + + + + + + + + + + + 2026-05-22 + + + + + + + + + + + + + + + + + + + CUELLAR ALMERCO EDWIN GUIDO + + + CUELLAR ALMERCO EDWIN GUIDO + + + Principal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0151319401 + + + + + + + + + + + + + + + + + + + + + 270 + + + 1 + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/correos_prueba/013_correo/pdf_resultado_013.json b/tests/correos_prueba/013_correo/pdf_resultado_013.json new file mode 100644 index 0000000..4df6268 --- /dev/null +++ b/tests/correos_prueba/013_correo/pdf_resultado_013.json @@ -0,0 +1,44 @@ +[ + { + "ruc_emisor": "20516287641", + "razon_social_emisor": null, + "fecha_emision": "28/05/2026", + "tipo": "01", + "serie": "FF03", + "numero": "1100", + "ruc_receptor": "20100029741", + "razon_social_receptor": null, + "total_factura": "361.69", + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/013_correo/20516287641-01-FF03-1100.pdf" + }, + { + "ruc_emisor": "20516287641", + "razon_social_emisor": "FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA", + "fecha_emision": "22/05/2026", + "tipo": "31", + "serie": "EG03", + "numero": "253", + "ruc_receptor": "20100029741", + "razon_social_receptor": "FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA", + "total_factura": null, + "documentos_referencia": [ + { + "tipo": "31", + "serie": "F001", + "numero": "222569" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/013_correo/20516287641-31-EG03-253.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/013_correo/xml_resultado_013.json b/tests/correos_prueba/013_correo/xml_resultado_013.json new file mode 100644 index 0000000..bb1dcea --- /dev/null +++ b/tests/correos_prueba/013_correo/xml_resultado_013.json @@ -0,0 +1,111 @@ +[ + { + "ruc_emisor": "20516287641", + "razon_social_emisor": "FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA - FERREMAURO Y HNOS SRL", + "fecha_emision": "2026-05-28", + "tipo": "01", + "serie": "FF03", + "numero": "1100", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 361.69, + "documentos_referencia": [ + { + "tipo": "31", + "serie": "EG03", + "numero": "253" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "129356" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "Servicio de Transporte ,270 bls de Cemento x s/1.3396, Punto de Partida: Av. Atocongo 1860 – Villa María del Triunfo, Punto de Llegada: Mz H2 Lt 31 Sector Miguel Grau – P. Alta – SJM, Valor referencial s/361.69, GRET: EG03-00000253 y según GRE: T001-0129356 Configuración Vehicular C2// Peso Aprox. 11.475 Tn.", + "cantidad": 1.0, + "precio_unitario": 361.6936, + "total_linea": 306.52, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129356" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "253" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/013_correo/20516287641-01-FF03-1100.xml", + "ruta_pdf": null + }, + { + "ruc_emisor": "20516287641", + "razon_social_emisor": "FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA - FERREMAURO Y HNOS SRL", + "fecha_emision": "2026-05-22", + "tipo": "31", + "serie": "EG03", + "numero": "253", + "ruc_receptor": "20516287641", + "razon_social_receptor": "FERREMAURO Y HNOS SOCIEDAD COMERCIAL DE RESPONSABILIDAD LIMITADA - FERREMAURO Y HNOS SRL", + "total_factura": null, + "documentos_referencia": [ + { + "tipo": "01", + "serie": "F001", + "numero": "222569" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": "AV ATOCONGO 1860", + "punto_llegada": "MZ H2 LT31 SECTOR MIGUEL GRAU PAMPLONA ALTA", + "peso_bruto": "11.475", + "unidad_peso_bruto": "TNE", + "fecha_traslado": "2026-05-22", + "vehiculo_principal": "D0P728", + "vehiculo_secundario": null, + "licencia_conductor": "Q10011751", + "nombre_conductor": "CUELLAR ALMERCO EDWIN GUIDO", + "documento_conductor": "10011751", + "ubigeo_partida": "150143", + "lineas": [ + { + "descripcion": "CEMENTO TIPO I (SOL)", + "cantidad": 270.0, + "precio_unitario": 0.0, + "total_linea": 0.0, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + } + ], + "tipo_descripcion": "Guía de Remisión Transportista", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/013_correo/20516287641-31-EG03-253.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/014_correo/10154500010-01-FF01-3308.pdf b/tests/correos_prueba/014_correo/10154500010-01-FF01-3308.pdf new file mode 100644 index 0000000..9aafb33 Binary files /dev/null and b/tests/correos_prueba/014_correo/10154500010-01-FF01-3308.pdf differ diff --git a/tests/correos_prueba/014_correo/10154500010-31-2605-33.pdf b/tests/correos_prueba/014_correo/10154500010-31-2605-33.pdf new file mode 100644 index 0000000..859b38c Binary files /dev/null and b/tests/correos_prueba/014_correo/10154500010-31-2605-33.pdf differ diff --git a/tests/correos_prueba/014_correo/10154500010-31-EG03-216.xml b/tests/correos_prueba/014_correo/10154500010-31-EG03-216.xml new file mode 100644 index 0000000..3998919 --- /dev/null +++ b/tests/correos_prueba/014_correo/10154500010-31-EG03-216.xml @@ -0,0 +1,240 @@ + + + + + + + + + + + + LRNvMuKGRIobuArlf74KDR/Lcpg= + + + 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PE, O=LLAMA.PE, CN=Llama.pe SHA256 Standard CA9211231144834552139Cumple propositoCumple revocacionCumple tslNo ha expirado + + 2.1 + 2.0 + + + + 2026-05-29 + 01:31:47 + 31 + + + + + 09 + + + + + + + + + + + + + + + + + + + + + #SUNAT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 31.45 + + + + + + + + + SUNAT_Envio_IndicadorPagadorFlete_Remitente + + + + + + + + + + + + 2026-05-29 + + + + + + + + + + + + + + + + + + + QUINTANA QUISPE GERARDO + + + QUINTANA QUISPE GERARDO + + + Principal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 15M25060472E + + + + + + + + + + + + + + + + + 15M25060473E + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/correos_prueba/014_correo/CDR-10154500010-01-FF01-3308.xml b/tests/correos_prueba/014_correo/CDR-10154500010-01-FF01-3308.xml new file mode 100644 index 0000000..fa6f4a5 --- /dev/null +++ b/tests/correos_prueba/014_correo/CDR-10154500010-01-FF01-3308.xml @@ -0,0 +1,54 @@ + + + + ++vnz3BA+AEgNvaNnn09EAeVPnx8MvxiZFfdr66SKzM=XshakaqeaE2tLh9WLCy3Yh/hFbp22djvtmq3AxjRL4zIA0VJzL/dePHQopZ89Gd2uRpMfRI33m9zZkNTbyRPvz3JorVZspo7lpKUxqolX5o+EeB4N5XI/5Et5kq/m2ptEpyZvtdB4EwU4AswzYdUAaAEuh9PzDtkRUM8YnzWG4L0CzlGEGwtl6hsSB9WWOWoOAMQ3IMdlyAB1lGmieUmTiDSjhQraGRI2kkQHfDzi2zqX3TglWAoz7avrUlrifOfb3PORh4wmae6HE5ecpG31eFBHazEQOGJaokfrj33E1TQvIG8qAs/qy1g4cnih+IlJjhBcPsmCr4h3Jocr6Wx6Q==C=PE, O=LLAMA.PE, CN=Llama.pe SHA256 Standard CAMIIFrjCCBJagAwIBAgIIc2eNOs0y3WswDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQwMTI1MTkyMzQxWhcNMjYwMTI0MTkyMzAwWjCCAVQxKzApBgNVBAkMIkFWLiBHQVJDSUxBU08gREUgTEEgVkVHQSBOUk8uIDE0NzIxIjAgBgkqhkiG9w0BCQEWE3JtZXphZ0BzdW5hdC5nb2IucGUxQTA/BgNVBAMMOFNVUEVSSU5ULiBOQUMuIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBMRwwGgYDVQQLDBNBR0VOVEUgQVVUT01BVElaQURPMS4wLAYDVQQLDCVWYWxpZGFkbyBwb3IgQUJDIElERU5USURBRCBESUdJVEFMIEVSMVQwUgYDVQQKDEtTVVBFUklOVEVOREVOQ0lBIE5BQ0lPTkFMIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBIC0gU1VOQVQxDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxiw3ab0PlTQpV4Xw5sFK/+m8y5ZEFqOWDW/Jo2kEd11ICZTomYgo3VCT86RPw0OSRoNwHx6fzRnw9ea/jOCCdNyr0W/aRYGuU0t21QKK+w3hzuV2GBCYIJ3WVSByVxwgMe0oQr8wNnZg7FD25W/3HveIQOIJDGPH6a3gQ7E9uMu26zp3uvG3+sI3uTi+4rYNi618Wrg1YbtqfhprsC/32FXlWsJoB4YX4ei9izJrKpso4fsgsl4q7jcDbE1mmssEYImhZIc523b8BpgSkrHYOfADREXKBpH3imZKLmADzbnY6F2evUIjZrE4YVNO1MSklxCtzcsy91cwcZAaK/UPDQIDAQABo4IBjjCCAYowDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRbMFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAeBgNVHREEFzAVgRNybWV6YWdAc3VuYXQuZ29iLnBlMEYGA1UdIAQ/MD0wOwYNKwYBBAGDl3cAAQADATAqMCgGCCsGAQUFBwIBFhxodHRwczovL2xsYW1hLnBlL3JlcG9zaXRvcnkvMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDA6BgNVHR8EMzAxMC+gLaArhilodHRwOi8vY3JsLmxsYW1hLnBlL2xsYW1hcGVzdGFuZGFyZGNhLmNybDAdBgNVHQ4EFgQUyqaBmn52E+bZ5nB5i34oE0fcqG4wDgYDVR0PAQH/BAQDAgbAMA0GCSqGSIb3DQEBCwUAA4IBAQCwmv7rS+NNsb7O1VmIcKt7ZThv713+NQlt3hS/6cSHkvfXWpFu/qLHCm0S2GTwOBYjHSSNmoGXKKmXBehWcLn2Zx7eE4Te0naghaZ10VkCd4FN/A4yZji3QIJj0s7xMzgrHnGBOXJmWvC9RSEpvvqR6vdgSJBI8+R/Qt/j1KR4gA/bSiIqdSKp4sHmloVUBMOlpgM8kzm74VmcxV9MT2hsv+JwnWXx2OnLetjjZfXnXBC7UJu35EsLSgETF9wEht7fWTAtl/rEEatQt1A1BdvaiBVsIyKl8qakxT6eIMLgwHYfuZYfgpHys3Gy96pspM3aCjHKO2b/ZntyT4V813zj + + 2.1 + 1.0 + 427906d5-dcc7-4922-bf74-32f599a3e547 + 2026-05-29 + 08:25:10.93801 + 2026-05-29 + 08:25:10.97135 + + SignSUNAT + + + 20131312955 + + + SUNAT + + + + + #SignSUNAT + + + + + + 20131312955 + + + + + 10154500010 + + + + + FF01-3308 + 0 + La Factura numero FF01-3308, ha sido aceptado + + + FF01-3308 + + + + 6-20100029741 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/014_correo/pdf_resultado_014.json b/tests/correos_prueba/014_correo/pdf_resultado_014.json new file mode 100644 index 0000000..98d3059 --- /dev/null +++ b/tests/correos_prueba/014_correo/pdf_resultado_014.json @@ -0,0 +1,63 @@ +[ + { + "ruc_emisor": "10154500010", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "29/05/2026", + "tipo": "01", + "serie": "FF01", + "numero": "3308", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": "1585.08", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": "4.00", + "monto_detraccion": "27.00", + "lineas": [ + { + "descripcion": "UNIDADES 20251025120428 SERVICIO DE TRANSPORTE SERVICIO DE TRANSPORTE 740 BL CEMENTO P. PARTIDA: AV. ATOCONGO 1860 VILLA MARIA DEL TRIUNFO - LIMA - LIMA P. LLEGADA: CA. PANAMERICANA SUR MZ. A6 LT. 4 AS. EL TREBOL - SAN VICENTE DE CAÑETE - CAÑETE - LIMA SEGUN GRR: T001-0129711 SEGUN GRT: EG03-00000216 VALOR REFERENCIAL: 2,510.02 CONFIG. VEHICULAR: T3S3 CARGA TM.: 31.45 N° REGISTRO M.T.C: 1562011CNG PLACA VEHICULO: CFW-860/BUI-979 SON MIL QUINIENTOS OCHENTA Y CINCO Y 08/100 SOLES", + "cantidad": "740.00", + "precio_unitario": "2.14", + "total_linea": "1585.08", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129711" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "216" + } + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/014_correo/10154500010-01-FF01-3308.pdf" + }, + { + "ruc_emisor": "10154500010", + "razon_social_emisor": "REMUZGO PISCONTI LIZ GIANNINA", + "fecha_emision": "05/33/2026", + "tipo": "31", + "serie": "2605", + "numero": "33", + "ruc_receptor": "20100029741", + "razon_social_receptor": "REMUZGO PISCONTI LIZ GIANNINA", + "total_factura": null, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129711" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/014_correo/10154500010-31-2605-33.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/014_correo/xml_resultado_014.json b/tests/correos_prueba/014_correo/xml_resultado_014.json new file mode 100644 index 0000000..0889ada --- /dev/null +++ b/tests/correos_prueba/014_correo/xml_resultado_014.json @@ -0,0 +1,39 @@ +[ + { + "ruc_emisor": "10154500010", + "razon_social_emisor": "REMUZGO PISCONTI LIZ GIANNINA", + "fecha_emision": "2026-05-29", + "tipo": "31", + "serie": "EG03", + "numero": "216", + "ruc_receptor": "10154500010", + "razon_social_receptor": "REMUZGO PISCONTI LIZ GIANNINA", + "total_factura": null, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129711" + } + ], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": "AV. ATOCONGO 1860 - LIMA - LIMA - VILLA MARIA DEL TRIUNFO", + "punto_llegada": "CA. PANAMERICANA SUR MZ. A6 LT. 4 AS. EL TREBOL", + "peso_bruto": "31.45", + "unidad_peso_bruto": "TNE", + "fecha_traslado": "2026-05-29", + "vehiculo_principal": "CFW860", + "vehiculo_secundario": "BUI979", + "licencia_conductor": "Q40190692", + "nombre_conductor": "QUINTANA QUISPE GERARDO", + "documento_conductor": "40190692", + "ubigeo_partida": "150143", + "lineas": [], + "tipo_descripcion": "Guía de Remisión Transportista", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/014_correo/10154500010-31-EG03-216.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/015_correo/20552807970-01-E001-2403.pdf b/tests/correos_prueba/015_correo/20552807970-01-E001-2403.pdf new file mode 100644 index 0000000..e902596 Binary files /dev/null and b/tests/correos_prueba/015_correo/20552807970-01-E001-2403.pdf differ diff --git a/tests/correos_prueba/015_correo/20552807970-01-E001-2403.xml b/tests/correos_prueba/015_correo/20552807970-01-E001-2403.xml new file mode 100644 index 0000000..51b0527 --- /dev/null +++ b/tests/correos_prueba/015_correo/20552807970-01-E001-2403.xml @@ -0,0 +1,300 @@ + + + + + + + + + + + + fHXaBZDbcyFKAwxERtUkQx3t8KU=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 + + + + 2.1 + 2.0 + + E001-2403 + 2026-06-13 + 11:51:27.0Z + + 01 + + + PEN + + T001 - 00130229 + 09 + + + + 0002 - 000608 + 31 + + + + + E001-2403 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20552807970 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + - + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00061035508 + + + + Detraccion + 027 + 4.00 + 41.81 + + + + + + FormaPago + Credito + 1003.39 + + + + FormaPago + Cuota001 + 1003.39 + 2026-07-03 + + + + + + + 159.44 + + + + + 885.76 + 159.44 + + S + + 1000 + IGV + VAT + + + + + + 885.76 + 0.00 + 0.00 + 0.00 + + 1045.20 + + + + 1 + 780.00 + 885.76254 + + false + + + + 1.33999974 + 01 + + + + + + + 150142 + + AV GUARDIA REPUBLICANA MZ N LOTE 20 - LIMA - LIMA - VILLA EL SALVADOR + + + + + + 150143 + + AV ATOCONGO 1860 - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 0.00 + + + 02 + 0.00 + + + 03 + 0.00 + + + 01 + + + 0 + + + - + false + + + 01 + 0.00 + + + + + + + + + true + 0.00 + + + + + 159.4372572 + + + + + + 885.76254 + 159.4372572 + + S + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + + + + 001 + + + + + + + 1.135593 + + + + diff --git a/tests/correos_prueba/015_correo/pdf_resultado_015.json b/tests/correos_prueba/015_correo/pdf_resultado_015.json new file mode 100644 index 0000000..51aa75e --- /dev/null +++ b/tests/correos_prueba/015_correo/pdf_resultado_015.json @@ -0,0 +1,37 @@ +[ + { + "ruc_emisor": "20552807970", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. GUIA DE REMISION REMITENTE : T001", + "fecha_emision": "13/06/2026", + "tipo": "01", + "serie": "E001", + "numero": "2403", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. GUIA DE REMISION REMITENTE : T001", + "total_factura": "1003.39", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "41.81", + "lineas": [ + { + "descripcion": "BOLSA 001 SERVICIO DE TRANSPORTE BLS X S/ / CONF.VEH:C3S3/ CARGTN: 33.150 /PARTIDA:AV. ATOCONGO 1860 LIMA-LIMA-V.M.T./ LLEGADA: AV GUARDIA REPUBLICANA MZ N LOTE 20 SEC 4 ETAP 2 - VES / N REG MTC. 1551832 CNG/ V.R.: 1045.20/ PLACA VEH : D8X-933 / BWD979", + "cantidad": "780.00", + "precio_unitario": "1.34", + "total_linea": "1.135593", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 885.76", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "885.76", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/015_correo/20552807970-01-E001-2403.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/015_correo/xml_resultado_015.json b/tests/correos_prueba/015_correo/xml_resultado_015.json new file mode 100644 index 0000000..59c890f --- /dev/null +++ b/tests/correos_prueba/015_correo/xml_resultado_015.json @@ -0,0 +1,64 @@ +[ + { + "ruc_emisor": "20552807970", + "razon_social_emisor": "MATERIALES DE CONSTRUCCION LOS PORTALES S.A.C.", + "fecha_emision": "2026-06-13", + "tipo": "01", + "serie": "E001", + "numero": "2403", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1045.2, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "130229" + }, + { + "tipo": "31", + "serie": "0002", + "numero": "608" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 41.81, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE BLS X S/ 1.34 / CONF.VEH:C3S3/ CARGTN: 33.150 /PARTIDA:AV. ATOCONGO 1860 LIMA-LIMA-V.M.T./ LLEGADA: AV GUARDIA REPUBLICANA MZ N LOTE 20 SEC 4 ETAP 2 -VES / N REG MTC. 1551832 CNG/ V.R.: 1045.20/ PLACA VEH : D8X-933 / BWD979", + "cantidad": 780.0, + "precio_unitario": 1.33999974, + "total_linea": 885.76254, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "130229" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "0002", + "numero": "608" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/015_correo/20552807970-01-E001-2403.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/017_correo/20261374898-01-FF05-100429.pdf b/tests/correos_prueba/017_correo/20261374898-01-FF05-100429.pdf new file mode 100644 index 0000000..69a4bed Binary files /dev/null and b/tests/correos_prueba/017_correo/20261374898-01-FF05-100429.pdf differ diff --git a/tests/correos_prueba/017_correo/20261374898-01-FF05-100429.xml b/tests/correos_prueba/017_correo/20261374898-01-FF05-100429.xml new file mode 100644 index 0000000..f67c6a8 --- /dev/null +++ b/tests/correos_prueba/017_correo/20261374898-01-FF05-100429.xml @@ -0,0 +1,994 @@ + + + + yBOPvv4YrCRCxMEYgfHDH5gBbos=OpnDLyZ/WQMdCb+C6EzyxmP3Bh4JnrwLeeBwVYgOsffj7nhgX5NxUwsfx6PJI+piEp09oGosneFn +lMol4QwqjudVwkWzIJfWgyq1GxaDplIbY7RzXPXgzDVU0jfjiB/RN5UlHKkaMo0hZTW+oYRFCozO +oNM5vZ2GaUlrnCBPyUX020LGdXFNntS6szMdpaDu5jnC3EzLy/M9fWVu/BRYzykBqjvKrc4KlpvE +b3PqSH9PdxGa0x51MkmV6rRyOvnnBWIx/7eZDMNKB531T/PkiXK1eE1YckR6sgICmnAE6EyMRV6J +0OeBvOffAx5qWFZmrdPq10Y7sDuscPWQH0zDIg==2.5.4.13=#0c2a436572746966696361646f207061726120466163747572616369c3b36e20456c65637472c3b36e696361,1.3.6.1.4.1.47286.30.2=#0c03525543,1.3.6.1.4.1.47286.30.3=#0c0b3230323631333734383938,1.3.6.1.4.1.47286.30.4=#0c03444e49,1.2.840.113549.1.9.1=#16156c6f7370696e6f7340696e647573666572722e7065,CN=WALTER EDUARDO ALMANZA VARGAS,2.5.4.5=#13083036313936323939,2.5.4.42=#0c0e57414c544552204544554152444f,2.5.4.4=#0c0e414c4d414e5a4120564152474153,2.5.4.12=#0c11544954554c4152202d20474552454e5445,OU=ADMINISTRACION,OU=20261374898,O=INDUSFERR EMPRESA INDIVIDUAL DE RESPONSABILIDAD LIMITADA,L=LIMA,C=PEMIIImTCCBoGgAwIBAgIIPxZafdPW2HswDQYJKoZIhvcNAQELBQAwgbgxCzAJBgNVBAYTAkVTMUQw +QgYDVQQHDDtCYXJjZWxvbmEgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LnVhbmF0YWNhLmNv +bS9hZGRyZXNzKTEWMBQGA1UECgwNVUFOQVRBQ0EgUy5BLjEVMBMGA1UECwwMVFNQLVVBTkFUQUNB +MRowGAYDVQQDDBFVQU5BVEFDQSBDQTEgMjAxNjEYMBYGA1UEYQwPVkFURVMtQTY2NzIxNDk5MB4X +DTI1MTEyMDE0NDkwMFoXDTI4MTExOTE0NDkwMFowggG5MQswCQYDVQQGEwJQRTENMAsGA1UEBwwE +TElNQTFBMD8GA1UECgw4SU5EVVNGRVJSIEVNUFJFU0EgSU5ESVZJRFVBTCBERSBSRVNQT05TQUJJ +TElEQUQgTElNSVRBREExFDASBgNVBAsMCzIwMjYxMzc0ODk4MRcwFQYDVQQLDA5BRE1JTklTVFJB +Q0lPTjEaMBgGA1UEDAwRVElUVUxBUiAtIEdFUkVOVEUxFzAVBgNVBAQMDkFMTUFOWkEgVkFSR0FT +MRcwFQYDVQQqDA5XQUxURVIgRURVQVJETzERMA8GA1UEBRMIMDYxOTYyOTkxJjAkBgNVBAMMHVdB +TFRFUiBFRFVBUkRPIEFMTUFOWkEgVkFSR0FTMSQwIgYJKoZIhvcNAQkBFhVsb3NwaW5vc0BpbmR1 +c2ZlcnIucGUxEzARBgorBgEEAYLxNh4EDANETkkxGzAZBgorBgEEAYLxNh4DDAsyMDI2MTM3NDg5 +ODETMBEGCisGAQQBgvE2HgIMA1JVQzEzMDEGA1UEDQwqQ2VydGlmaWNhZG8gcGFyYSBGYWN0dXJh +Y2nDs24gRWxlY3Ryw7NuaWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqve/s0UH +eg3o8PIcVzStx7Q/4o7o8LNUutQ0lQC78g3sJ5whnCg0JzSihlEl/b4FjwL+HP0ReIdyJS3AfkvV +9FfUSKf16iNe2cTI7YEm5E7nkiIfm4RNfcH/cfEQzCedmbuGxLl7FDryDMYcKr02UlbhEjthmkcV +FBoyhd5EarKhoevd8Wg6XdUBFOpkI5l6/3cJ6nhgcpnag2jHvGrsWauGBB+GPNXcC97x28iRTFgv +Hmeb4NbYF37b/eET1dzgt5lK15A+zFmpF1qyLVeNb8uaWBhMkYcGghy9oBv3Gk47TF5haTy3TaJF +93vLfhLhwaeb/HXvLIbKiX4XTUtB8wIDAQABo4ICoTCCAp0wgdYGCCsGAQUFBwEBBIHJMIHGMFQG +CCsGAQUFBzAChkhodHRwOi8vd3d3LnVhbmF0YWNhLmNvbS9wdWJsaWMvZG93bmxvYWQvdHNwX2Nl +cnRpZmljYXRlcy90cnVzdGVkUm9vdC5wN2MwNgYIKwYBBQUHMAGGKmh0dHA6Ly9vY3NwMS51YW5h +dGFjYS5jb20vcHVibGljL3BraS9vY3NwLzA2BggrBgEFBQcwAYYqaHR0cDovL29jc3AyLnVhbmF0 +YWNhLmNvbS9wdWJsaWMvcGtpL29jc3AvMB0GA1UdDgQWBBTeZx85VGHOnjXWGr7f+TyGNhMYzjAM +BgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFC1x77Bjf/X94IMiRH9EEDCBT03lMIGQBgNVHSAEgYgw +gYUwgYIGDCsGAQQBgvE2AgICAjByMDYGCCsGAQUFBwIBFipodHRwOi8vd3d3LnVhbmF0YWNhLmNv +bS9wdWJsaWMvcGtpL2RwYy1wZS8wOAYIKwYBBQUHAgIwLAwqQ2VydGlmaWNhZG8gcGFyYSBGYWN0 +dXJhY2nDs24gRWxlY3Ryw7NuaWNhMIGPBgNVHR8EgYcwgYQwQKA+oDyGOmh0dHA6Ly9jcmwxLnVh +bmF0YWNhLmNvbS9wdWJsaWMvcGtpL2NybC9DQTFzdWJvcmRpbmFkYS5jcmwwQKA+oDyGOmh0dHA6 +Ly9jcmwyLnVhbmF0YWNhLmNvbS9wdWJsaWMvcGtpL2NybC9DQTFzdWJvcmRpbmFkYS5jcmwwDgYD +VR0PAQH/BAQDAgbAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAgBgNVHREEGTAXgRVs +b3NwaW5vc0BpbmR1c2ZlcnIucGUwDQYJKoZIhvcNAQELBQADggIBAGsG27BxbnS5p5xLs4t/pfrc +8RCWhIpTLAymTnRLrrkbshAx36bchd0vUctaum6UiD3RqWI/kPERdmvFkUZBoDN/2cnQTXWaabE7 +QuhHjsznTLlwsRK92QcvmxbusOAph7n9Sm6o7R72MRatOZeRGBEeS/LUutKMTUU6/R+vn/oa7pss +wrJeTv2abLyAvHQuqnOCN7BKD93t+iPY63EHEa7ijbalRna2qHLvxSl/PGAvXsHhlY/mZvccojSo +9jwmmZhpaB859uCOp8Mv9pua4KJlpWfkCqw9pUlldLBQgkkNxzBKsaF8AXAgnTZnaXmJ+Hd/k2ck +gIa6vmesyF7lpg0saij7fIudvILOjzDUlvI/gaTE6ZJLkYdbsrNBEXHDV/p7+53/KGzZmSrAgSZb +ly0U4RiA/QZ0BM1ghqzwal2FweB/6uet50e4EIqNuo3k+XmPFPzOvaQmaDPYJNsdFWFoKnt49OFE +hM2RHLOWZhWTQg8/yN7LRtI1uFPu4OpyxCMnYhi+uyJyaqR26FgvcYn4cWi4G0SW1ouqOYVza8hK +KICC6N/uOlS/YEZOpoA4UmYAiL67NgYjYju08HG6t3qRJDvO3ysUIA/8dr17ijYF6jfpCoLbDjUt +05UMg7SMvJhYmy+CBYxecyoeJHvQ0prxtqbA4QF2q9pEEcDhfeEI + + + 2.1 + 2.0 + FF05-0100429 + 2026-06-03 + 14:39:15 + 01 + DIECISEIS MIL NOVECIENTOS OCHENTA Y SEIS Y 06/100 SOLES + OPERACION SUJETA A DETRACCION + PEN + 10 + + 20261374898 + + + 20261374898 + + + INDUSFERR EIRL + + + + + 20261374898 + + + + + 20261374898 + 6 + + + 20261374898 + + + INDUSFERR EIRL + + + INDUSFERR EIRL + + 0000 + + + + + 1515956CNG + + + + + + 20100029741 + 6 + + + 20100029741 + + + A. BERIO Y CIA S.A.C + + + + + Detraccion + 001 + + 00000855529 + + + + Detraccion + 027 + 4.00 + 1076.00 + + + FormaPago + Credito + 15910.06 + + + FormaPago + Cuota001 + 15910.06 + 2026-06-18 + + + 2591.11 + + 14394.95 + 2591.11 + + S + + 1000 + IGV + VAT + + + + + + 14394.95 + 16986.06 + 16986.06 + + + 1 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 2 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 3 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 4 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 5 + 1.0000000000 + 1452.20 + + + 1713.6000000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 261.40 + + 1452.20 + 261.40 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1452.2033898305 + + + + 6 + 1.0000000000 + 1452.20 + + + 1713.6000000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 261.40 + + 1452.20 + 261.40 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1452.2033898305 + + + + 7 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 8 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 9 + 1.0000000000 + 1452.20 + + + 1713.6000000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 261.40 + + 1452.20 + 261.40 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1452.2033898305 + + + + 10 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + \ No newline at end of file diff --git a/tests/correos_prueba/017_correo/pdf_resultado_017.json b/tests/correos_prueba/017_correo/pdf_resultado_017.json new file mode 100644 index 0000000..c7524aa --- /dev/null +++ b/tests/correos_prueba/017_correo/pdf_resultado_017.json @@ -0,0 +1,197 @@ +[ + { + "ruc_emisor": "20261374898", + "razon_social_emisor": "A. BERIO Y CIA S.A.C Ruc: 20100029741", + "fecha_emision": "03/06/2026", + "tipo": "01", + "serie": "FF05", + "numero": "100429", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C Ruc: 20100029741", + "total_factura": "1.00", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "1076.00", + "lineas": [ + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 SOL GRR T001-128374 GRT 1692.18 EG03-1967]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128374" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [290 SOL GRR T001-128454 GRT 1692.18 EG03-1969 / 500 APU GRR T001-128453 GRT EG03-1969]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128454" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128453" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1969" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 ULTRA GRR T001-128512 GRT 1692.18 EG03-1971]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128512" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 APU GRR T001-128540 GRT 1692.18 EG03-1972]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128540" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [800 SOL GRR T001-128650 GRT 1713.60 EG03-1975]", + "cantidad": "1.00", + "precio_unitario": "1713.60", + "total_linea": "1713.60", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128650" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [200 ULTRA GRR T001-128725 GRT 1713.60 EG03-1978 / 600 SOL GRR T001-128724 GRT EG03-1978]", + "cantidad": "1.00", + "precio_unitario": "1713.60", + "total_linea": "1713.60", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128725" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128724" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1978" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 SOL GRR T001-128681 GRT 1692.18 EG03-1976]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128681" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [246 ULTRA GRR T001-128727 GRT 1692.18 EG03-1977 / 544 SOL GRR T001-128726 GRT EG03-1977]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128727" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128726" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1977" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [400 SOL GRR T001-128807 GRT 1713.60 EG03-1979 / 400 APU GRR T001-128808 GRT EG03-1979]", + "cantidad": "1.00", + "precio_unitario": "1713.60", + "total_linea": "1713.60", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128807" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128808" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1979" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 SOL GRR T001-128910 GRT 1692.18 EG03-1981] P.P: AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO P.L: MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CAÑETE V.R: S/. 26897.97 CARGA TM: 337.03 MTC: 1515956CNG CONF: T3S3", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128910" + } + ], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/017_correo/20261374898-01-FF05-100429.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/017_correo/xml_resultado_017.json b/tests/correos_prueba/017_correo/xml_resultado_017.json new file mode 100644 index 0000000..6deaede --- /dev/null +++ b/tests/correos_prueba/017_correo/xml_resultado_017.json @@ -0,0 +1,220 @@ +[ + { + "ruc_emisor": "20261374898", + "razon_social_emisor": "INDUSFERR EIRL", + "fecha_emision": "2026-06-03", + "tipo": "01", + "serie": "FF05", + "numero": "100429", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C", + "total_factura": 16986.06, + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 1076.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128374" + } + ], + "guia_transportista": null + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128454" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128453" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1969" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128512" + } + ], + "guia_transportista": null + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128540" + } + ], + "guia_transportista": null + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1713.6, + "total_linea": 1452.2, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128650" + } + ], + "guia_transportista": null + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1713.6, + "total_linea": 1452.2, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128725" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128724" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1978" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128681" + } + ], + "guia_transportista": null + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128727" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128726" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1977" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1713.6, + "total_linea": 1452.2, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128807" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128808" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1979" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128910" + } + ], + "guia_transportista": null + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/017_correo/20261374898-01-FF05-100429.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/018_correo/20500864703-01-F002-20851.pdf b/tests/correos_prueba/018_correo/20500864703-01-F002-20851.pdf new file mode 100644 index 0000000..eefbc6b Binary files /dev/null and b/tests/correos_prueba/018_correo/20500864703-01-F002-20851.pdf differ diff --git a/tests/correos_prueba/018_correo/20500864703-01-F002-20851.xml b/tests/correos_prueba/018_correo/20500864703-01-F002-20851.xml new file mode 100644 index 0000000..4d16330 --- /dev/null +++ b/tests/correos_prueba/018_correo/20500864703-01-F002-20851.xml @@ -0,0 +1,307 @@ + + + + clkzOA2Kk+jMX1AdkpHZmFO5wEo=LVE3AxERHI5z7ToPy/WFT0tNGfy3MegTTJS0cF6TbcUfqgxug5I+80LyanqK5VxSY4qeANn94maMqpmPGYKqAxjlSk2XwmsSHRsRpZE5Kb0SJJJ/+/2P507Ud3vcNeAz3sHW6EPH4GpsK58DZ3lYfbSSgtdDnAy1JV82PwUDdPs7zd9+JNxxfsdVK15WqdLRBfZfuxgpkrbaALqAHJt+O4daCQL8QLFYkvpnQgMlSnf2wwnsxf4gQUwxwBTPhJD/qj6JdohxA6peifCKxRUK8ubIWnlah0Uz1oVpp7Jq16xJIc3n9fjVsVIgCcNDbA1S8QZbrq/6qVM8K1fFjaOLTw==C=PE, L=LIMA, O=THE FACTORY HKA PERU SOCIEDAD ANONIMA CERRADA, OU=Validado por Llama.pe ER, OU=FACTURA ELECTRONICA RUC 20550728762, CN=SOFTWARE DE FACTURACION ELECTRONICA, E=rhuamani@thefactoryhka.com, STREET=JR. TOBAGO NRO. 257 URB. CEDROS DE VILLAMIIFkjCCBHqgAwIBAgIINtWoLsl5h6YwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQwNTA5MjEwMTE2WhcNMjcwNTA5MjEwMTAwWjCCATExMTAvBgNVBAkMKEpSLiBUT0JBR08gTlJPLiAyNTcgVVJCLiBDRURST1MgREUgVklMTEExKTAnBgkqhkiG9w0BCQEWGnJodWFtYW5pQHRoZWZhY3Rvcnloa2EuY29tMSwwKgYDVQQDDCNTT0ZUV0FSRSBERSBGQUNUVVJBQ0lPTiBFTEVDVFJPTklDQTEsMCoGA1UECwwjRkFDVFVSQSBFTEVDVFJPTklDQSBSVUMgMjA1NTA3Mjg3NjIxITAfBgNVBAsMGFZhbGlkYWRvIHBvciBMbGFtYS5wZSBFUjE2MDQGA1UECgwtVEhFIEZBQ1RPUlkgSEtBIFBFUlUgU09DSUVEQUQgQU5PTklNQSBDRVJSQURBMQ0wCwYDVQQHDARMSU1BMQswCQYDVQQGEwJQRTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMJd2vPsbwJyY9Bwk/mrCsU/QUHOb7Jqj2mTsGnP5qkbdUObmK3hTrXzRS6NwUe1nT6VsN/efBOlE1DaBYdwIttOu1jYB/ES1TsPhkykz7AIbZ/sQvYaerJUqi+Y0Xga5W7H+oH0SCWajVcHe0JzP1sRxJQZQzKaj6cenPchxV1mIU7JCpNsbstlc2IWB1ipiZ8SOMXV0tG9LPyjXStOP+hJVEARyXyIqiFfCK8lTobVvHxFbwsEnfM7PzcmyzJrjLHXbVR6139srkzj65QQKYkpw/iC3EhqjUjBi9F+7rcRcpU/T1kUM+Sr5oi5qNAufP0HKKWPJUVTwrwQv0e1YoUCAwEAAaOCAZUwggGRMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUXYhbretl+/5oouTZbz1XcqLvK5kwZwYIKwYBBQUHAQEEWzBZMDUGCCsGAQUFBzAChilodHRwOi8vY3J0LmxsYW1hLnBlL2xsYW1hcGVzdGFuZGFyZGNhLmNlcjAgBggrBgEFBQcwAYYUaHR0cDovL29jc3AubGxhbWEucGUwJQYDVR0RBB4wHIEacmh1YW1hbmlAdGhlZmFjdG9yeWhrYS5jb20wRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY3JsMB0GA1UdDgQWBBRukXU3fFIvxqBWWVLHgv7lUdqKHzAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAHHPp45FldlKcmdYPcMcw8duVbkp7YD85TGHZFGd4Y0miTrZHGC5KNRfqg2IZeMnx0w9/dBmOOd0BYoyBmi8KBNW3rEu6n6wBbj9m6rRmG2oGwJcmmoMzuTmv/pXY0fCuoyzRAZoc7v4Ogj7Csoj5ruPyAcait5o9dgwZUAnLUAB1sgUIUKnqK/9N/yWVLleeX+rH+MBUuephWNnsTVFfHhGhalZdtGFSROjSUjlakvuPdyMaO4VaS1C2YvdYsvXBe3qHuj/uNTG9kV9oPLCYxsL3+apxDi8b89IPUgXW99b9hfwxeUWRK6qpmHgsWUIQ1Aa0RNFMxA41VvpTpv15u8= + + + 2.1 + 2.0 + F002-20851 + 2026-06-01 + 11:03:30 + 01 + PEN + + LlamaSign + + + 20500864703 + + + + + + + + #LlamaSign + + + + + IDSignSP + + + 20500864703 + + + DEPOSITOS Y FERRETERIA NICHAR S.A.C. + + + + + #SignatureSP + + + + + + + 20500864703 + + + + + + + + 0000 + + + + + + + + + + + 20100029741 + + + + + 150143 + LIMA + DEPARTAMENTO LIMA + VILLA MARIA DEL TRIUNFO + + AV. 26 DE NOVIEMBRE 2473 + + + PE + + + + + + + Detraccion + 001 + + 00063009024 + + + + Detraccion + 027 + 4.00000 + 40.00 + + + FormaPago + Credito + 964.70 + + + FormaPago + Cuota001 + 964.70 + 2026-06-16 + + + 153.26 + + 851.44 + 153.26 + + + 1000 + IGV + VAT + + + + + 0.00 + 0.00 + + + 2000 + ISC + EXC + + + + + 0 + 0 + + + 9995 + EXP + FRE + + + + + 0 + 0.00 + + + 9996 + GRA + FRE + + + + + 0 + 0 + + + 9997 + EXO + VAT + + + + + 0 + 0 + + + 9998 + INA + FRE + + + + + 0.00 + 0.00 + + + 9999 + OTROS + OTH + + + + + + 851.44 + 1004.70 + 0.00 + 0.00 + 1004.70 + + + 1 + 750 + 851.44 + + + 1.3396 + 01 + + + + + + 150143 + + + + + + + 1 + + 150143 + + + + + + + 01 + 1 + + + 02 + 1 + + + 03 + 1 + + + 01 + + 1 + 1 + + + 150143 + + + + + 150143 + + + + 1.00 + + + + C2 + false + + + 1.00 + + + + + 01 + 1.00 + + + 02 + 1.00 + + + + + + + 153.26 + + 851.44 + 153.26 + + 18 + 10 + + 1000 + IGV + VAT + + + + + + + + SER01 + + + 78101802 + + + + 1.1352540000 + + + \ No newline at end of file diff --git a/tests/correos_prueba/018_correo/CDR-20500864703-01-F002-20851.xml b/tests/correos_prueba/018_correo/CDR-20500864703-01-F002-20851.xml new file mode 100644 index 0000000..b884f38 --- /dev/null +++ b/tests/correos_prueba/018_correo/CDR-20500864703-01-F002-20851.xml @@ -0,0 +1,63 @@ + + + + ipQcxoFR04Oh5BT5LUJRnbOAJhM=TtMIzyLgjcoo++sJPr9KEs5q3fCoSLwBtmkvmbD1yeqjdBoCCpYn0P3kgWZQ2Wu7iPUhxrf/1NaTE0Gf1zot2wGC/klxnLFBLftA+KVSFRLS0O3zg8Rg1wqQG5rLT7Ch4q2InGwXUQ3eK9BC77r+Er6aVpmX5p4QSpP2Zl2PSEwfiOpNNwPepZfJvpofWwjtu/y9fy2IATH7wAIOgSdYrnC176Kj0ktz8UuQzWMDlIT0QTN1JQulf/Qmtn8omz5szDbc5vA3d6t0yO6b3JRCqmfwsXvxB8l/NPn+MATedNHbOKXXrZArAzNq4KdDkBweSar/DmfTzan6l3q0626fvw==System.Security.Cryptography.X509Certificates.X500DistinguishedName5740275299046747460C=PE, L=LIMA, O=THE FACTORY HKA PERU SOCIEDAD ANONIMA CERRADA, OU=Validado por Llama.pe ER, OU=20550728762, CN=20550728762, E=rhuamani@thefactoryhka.com, STREET=JR. TOBAGO NRO. 257 URB. CEDROS DE VILLAMIIFYjCCBEqgAwIBAgIIT6mN+KChbUQwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQwNjEzMjAzMDQ5WhcNMjcwNjEzMjAzMDAwWjCCAQExMTAvBgNVBAkMKEpSLiBUT0JBR08gTlJPLiAyNTcgVVJCLiBDRURST1MgREUgVklMTEExKTAnBgkqhkiG9w0BCQEWGnJodWFtYW5pQHRoZWZhY3Rvcnloa2EuY29tMRQwEgYDVQQDDAsyMDU1MDcyODc2MjEUMBIGA1UECwwLMjA1NTA3Mjg3NjIxITAfBgNVBAsMGFZhbGlkYWRvIHBvciBMbGFtYS5wZSBFUjE2MDQGA1UECgwtVEhFIEZBQ1RPUlkgSEtBIFBFUlUgU09DSUVEQUQgQU5PTklNQSBDRVJSQURBMQ0wCwYDVQQHDARMSU1BMQswCQYDVQQGEwJQRTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALarDRoOpB5SXk1XAOSsS2HHLmw5sXEQYbaRVKyWInMSW4aczw7LSnRV+jF6iSd8HvMdQj/BvEQdwo0EmAs32kuNkFWbYUYRUvPr2JbR202AP1kpmo/XpeeHCyVUPfUgdFLKnvSa5kCEYCpipNNi4Mye3ryzxgi7E6jMTqvYjv7SyRZCLSz3dU8Hxh7bqTa6frsUoaMpB0EqCVCVGGjVRnNzhhWu7pLThZuOWLHPYLWAxyCyn06Q4JJ6zIuBc5jteBwHZ6G1r8Y6QJN+jBbCakY+3d0g8BMb+yeMmdse6Aqa9CF4UYuUC3IeaooPCEl+SSWehNuPmVDkG8M81DL3dl8CAwEAAaOCAZUwggGRMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUXYhbretl+/5oouTZbz1XcqLvK5kwZwYIKwYBBQUHAQEEWzBZMDUGCCsGAQUFBzAChilodHRwOi8vY3J0LmxsYW1hLnBlL2xsYW1hcGVzdGFuZGFyZGNhLmNlcjAgBggrBgEFBQcwAYYUaHR0cDovL29jc3AubGxhbWEucGUwJQYDVR0RBB4wHIEacmh1YW1hbmlAdGhlZmFjdG9yeWhrYS5jb20wRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY3JsMB0GA1UdDgQWBBQzzDwWX2tL1xLpcXxX55XsvZcQ+DAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAChoGdk54ss+32TapubQN4Il1tSBAI6NLeWHOz2ahBf0TgfQEGA64zs2iYYYu8DTxYoa/ycVCqN8WIOENbuEUcWaor9M/R9Ja/34mwERSrhG+up+Lxc8QrwUCDfac/nbfAOZI0fQmxrMxcRxy2dnY1ZtSnDeXR1OiJCiJln9+9bVnzZerB5oeOu6EgmHgREHdGlloFk+VzgGQP4dww3zOLDISSUQ11QhmYowuuTtA4OcsjDmc93TVGWbErQTklXpbQKgN+xwwJEz2HZhH1dF5QHvCIcuHEspSyqa5+eVqfzs+5CFOH/NFF5tpzGVnh0qynacCQPcnjRwHFRWMGuNQzk= + + + 2.1 + 1.0 + 456f07b7-ff9f-4219-b72d-e412dbb1c458 + 2026-06-01 + 11:07:01 + 2026-06-01 + 11:07:03 + + + 20550728762 + + + + + 20550728762 + + + + + 0 + La FACTURA numero 20500864703-01-F002-20851, ha sido aceptada + + 4265 + El XML no contiene el codigo de leyenda 2006 para tipo de operación de detracciones + + + 4270 + El dato ingresado como detalle del viaje no cumple con el formato establecido. + + + 4271 + El dato ingresado como descripcion del tramo no cumple con el formato establecido. + + + + F002-20851 + 2026-06-01 + 11:03:30 + 01 + + + clkzOA2Kk+jMX1AdkpHZmFO5wEo= + + + + + + 20500864703 + + + + + 20100029741 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/018_correo/pdf_resultado_018.json b/tests/correos_prueba/018_correo/pdf_resultado_018.json new file mode 100644 index 0000000..b9a26a5 --- /dev/null +++ b/tests/correos_prueba/018_correo/pdf_resultado_018.json @@ -0,0 +1,39 @@ +[ + { + "ruc_emisor": "20500864703", + "razon_social_emisor": "/ Usuario", + "fecha_emision": null, + "tipo": "01", + "serie": "F002", + "numero": "20851", + "ruc_receptor": "20100029741", + "razon_social_receptor": "/ Usuario", + "total_factura": "1004.70", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [ + { + "descripcion": "NIU 78101802 SERVICIO DE TRANSPORTE S/ S/ Información adicional DETRACCIONES Código del Bien Sujeto a Detracción: 027 SERVICIO DE TRANSPORTE 750 BLS CEMENTO, Número de Cuenta Banco de la Nación: 00063009024 S/G.R.R: T001-129717 Monto de la Detracción: 40.00 S/G.R.T: EG04-4549, PTO. Porcentaje Detracción: 4.00 PARTIDA: AV ATOCONGO 1860- V.M.T, Servicio de transporte de Carga PTO.LLEGADA: AV 27 DE DICIEMBRE 652-V.M.T, CONFIGURACION.C3S2, Ubigeo Origen: 150143 PESO TN : 31.880, Dirección Origen: av atocongo 1860 MTC: 1510426CNG, Ubigeo Destino: 150143 VALOR REFERENCIA: 1,00470 Dirección Destino: av 27 de diciembre", + "cantidad": "750.000", + "precio_unitario": "1.135254", + "total_linea": "851.44", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129717" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG04", + "numero": "4549" + } + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/018_correo/20500864703-01-F002-20851.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/018_correo/xml_resultado_018.json b/tests/correos_prueba/018_correo/xml_resultado_018.json new file mode 100644 index 0000000..17f1165 --- /dev/null +++ b/tests/correos_prueba/018_correo/xml_resultado_018.json @@ -0,0 +1,53 @@ +[ + { + "ruc_emisor": "20500864703", + "razon_social_emisor": "DEPOSITOS Y FERRETERIA NICHAR S.A.C.", + "fecha_emision": "2026-06-01", + "tipo": "01", + "serie": "F002", + "numero": "20851", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA. S.A.C", + "total_factura": 1004.7, + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 40.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 750.0, + "precio_unitario": 1.3396, + "total_linea": 851.44, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "129717" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG04", + "numero": "4549" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/018_correo/20500864703-01-F002-20851.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/019_correo/20552793499-01-E001-5506.pdf b/tests/correos_prueba/019_correo/20552793499-01-E001-5506.pdf new file mode 100644 index 0000000..d06cb89 Binary files /dev/null and b/tests/correos_prueba/019_correo/20552793499-01-E001-5506.pdf differ diff --git a/tests/correos_prueba/019_correo/20552793499-01-E001-5506.xml b/tests/correos_prueba/019_correo/20552793499-01-E001-5506.xml new file mode 100644 index 0000000..21c3564 --- /dev/null +++ b/tests/correos_prueba/019_correo/20552793499-01-E001-5506.xml @@ -0,0 +1,300 @@ + + + + + + + + + + + + THtiV7Hv4bPGRqk8UNLfMAyiYUM=oghqgte5/w28hqUHWpKWG/LDVVAF42Gph3UTF7zCg+quKGXh7LLSeejuSpHq8J+HgLDTx02hBLd2mp6avaILDaz4pzmSLkhW/WdxSKQghc5MbZndgHIie7ht0DTP/1ZfsCgr2u/bDRlDtAafK17R6OEo0MP7JN6R6cC7BJ5VqTe85Sk2dPIuinReVzFZksNzeejK/g/kmno9DtQPfaoySdK41DdY6NFSKEyM55ZDTcIOkQ/3ySmhhafJc6mo/n0VnEvpO4BiDHxYHCQLSx7PQacP0wC7vx/CmhqUzor7tk81d8DeOCfcvgk9fD/poT9DBkIYURr05XxjjU88S5srjw==MIIFrjCCBJagAwIBAgIIf9Td7Evg0UswDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQwODA5MTYxNTM5WhcNMjcwODA5MTYxNTAwWjCCAVQxKzApBgNVBAkMIkFWLiBHQVJDSUxBU08gREUgTEEgVkVHQSBOUk8uIDE0NzIxIjAgBgkqhkiG9w0BCQEWE3JtZXphZ0BzdW5hdC5nb2IucGUxQTA/BgNVBAMMOFNVUEVSSU5ULiBOQUMuIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBMRwwGgYDVQQLDBNBR0VOVEUgQVVUT01BVElaQURPMS4wLAYDVQQLDCVWYWxpZGFkbyBwb3IgQUJDIElERU5USURBRCBESUdJVEFMIEVSMVQwUgYDVQQKDEtTVVBFUklOVEVOREVOQ0lBIE5BQ0lPTkFMIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBIC0gU1VOQVQxDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1apapJOwMj9tBpgKAgjRwIloUk+xwvQZxc0s/4yl4mDSrc/F/PKZ3QBmKb43fFwivqPUvsr68fQTfyLKM14B+xXwlbQ/yh3+87sMyulLhOPmtSOU0PE8Rw0PsmGVxf1L0HPAPc3Gvuhq4Z9Dx5ByED6s+VppDmncvctlJ/NrzYZCk9H91OinTTPVZrDtbmqnOYra8PaTRoCI9Fmndeo9Oo7esM7KVX9f53NEd/mNQqzAOrgSXthFuBZN7zOsGxJ4ZGrVzHSlCH/jFLgObEizHrqisgL1cxKj8QvbGLUjNtUuTvR5IY6hwRLCxbliTa84BN10E0jC7hhAnnuEIAFJiwIDAQABo4IBjjCCAYowDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRbMFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAeBgNVHREEFzAVgRNybWV6YWdAc3VuYXQuZ29iLnBlMEYGA1UdIAQ/MD0wOwYNKwYBBAGDl3cAAQADATAqMCgGCCsGAQUFBwIBFhxodHRwczovL2xsYW1hLnBlL3JlcG9zaXRvcnkvMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDA6BgNVHR8EMzAxMC+gLaArhilodHRwOi8vY3JsLmxsYW1hLnBlL2xsYW1hcGVzdGFuZGFyZGNhLmNybDAdBgNVHQ4EFgQUuRkPCyM25gAu5se9GraC/UO07X8wDgYDVR0PAQH/BAQDAgbAMA0GCSqGSIb3DQEBCwUAA4IBAQBC8+YM7moZ7bKYCS+VzJ8wzydSboWeNuAs2CfkhI8hRMQr1r5WZg8pDlroCslF/r6SjbkrjuDHcGKJTM2riGEjlOD4CLU9VjOP7Td6CIZyJRLaz63pZYOwE0H0weG/PvYpopDZzJ6AXYzZxwYkJ03/x/vwaCss9ZvmsEn2E1xtGbnMe9MEsg8oF0ul3uRn8Qy5gF37fM7YKuF/r4iBS5uSvBcA5J2FbI/PQls7OgICDyb3W16GeluaT9krY5wQxilJSpGVU++nv5NzmRHkquH3ic2It/KP6MZ9X2tfg6FhpF6JaUz7MSY+J0KnDDcfJlhxgnkgoT5tV3Sr6z5PpQH6 + + + + 2.1 + 2.0 + + E001-5506 + 2026-06-10 + 16:09:24.0Z + + 01 + + + PEN + + T001 - 130266 + 09 + + + + EG03 - 1941 + 31 + + + + + E001-5506 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20552793499 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + - + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00074064787 + + + + Detraccion + 027 + 4.00 + 135.00 + + + + + + FormaPago + Credito + 1784.27 + + + + FormaPago + Cuota001 + 1784.27 + 2026-06-12 + + + + + + + 292.77 + + + + + 1626.50 + 292.77 + + S + + 1000 + IGV + VAT + + + + + + 1626.50 + 0.00 + 0.00 + 0.00 + + 1919.27 + + + + 1 + 780.00 + 1626.49812 + + false + + + + 2.46059972 + 01 + + + + + + + 110501 + + AV FERMIN TANGUISMZ A LT 3-B URB JUAN JOSE - ICA - PISCO - ICA - PISCO - PISCO + + + + + + 150143 + + AV.ATOCONGO 1860-LIMA-LIMA-V.M.T - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 0.00 + + + 02 + 0.00 + + + 03 + 0.00 + + + 01 + + + 0 + + + - + false + + + 01 + 0.00 + + + + + + + + + true + 0.00 + + + + + 292.7696616 + + + + + + 1626.49812 + 292.7696616 + + S + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 2.085254 + + + + diff --git a/tests/correos_prueba/019_correo/pdf_resultado_019.json b/tests/correos_prueba/019_correo/pdf_resultado_019.json new file mode 100644 index 0000000..d4d8140 --- /dev/null +++ b/tests/correos_prueba/019_correo/pdf_resultado_019.json @@ -0,0 +1,37 @@ +[ + { + "ruc_emisor": "20552793499", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. GUIA DE REMISION REMITENTE : T001", + "fecha_emision": "10/06/2026", + "tipo": "01", + "serie": "E001", + "numero": "5506", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. GUIA DE REMISION REMITENTE : T001", + "total_factura": "1784.27", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "135.00", + "lineas": [ + { + "descripcion": "BOLSA SERVICIO DE TRANSPORTE 750 BLS DE CEMENTO P.P.AV.ATOCONGO 1860-LIMA-LIMA-V.M.T P.LL.AV FERMIN TANGUISMZ A LT 3-B URB JUAN JOSE-ICA-PISCOMTC 1550071CNGTN:33.15 V.R S.3371.355PLACA:F8A923 C.VEHICULAR:T3S3", + "cantidad": "780.00", + "precio_unitario": "780.00", + "total_linea": "2.085254", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 1,626.50", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "1626.50", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/019_correo/20552793499-01-E001-5506.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/019_correo/xml_resultado_019.json b/tests/correos_prueba/019_correo/xml_resultado_019.json new file mode 100644 index 0000000..1d7b246 --- /dev/null +++ b/tests/correos_prueba/019_correo/xml_resultado_019.json @@ -0,0 +1,64 @@ +[ + { + "ruc_emisor": "20552793499", + "razon_social_emisor": "CORPORACION AQUILES S.A.C.", + "fecha_emision": "2026-06-10", + "tipo": "01", + "serie": "E001", + "numero": "5506", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1919.27, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "130266" + }, + { + "tipo": "31", + "serie": "EG03", + "numero": "1941" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 135.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE 750 BLS DE CEMENTO P.P.AV.ATOCONGO 1860-LIMA-LIMA-V.M.T P.LL.AV FERMIN TANGUISMZ A LT 3-B URB JUAN JOSE-ICA-PISCOMTC 1550071CNGTN:33.15 V.R S.3371.355PLACA:F8A923 C.VEHICULAR:T3S3", + "cantidad": 780.0, + "precio_unitario": 2.46059972, + "total_linea": 1626.49812, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "130266" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1941" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/019_correo/20552793499-01-E001-5506.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/020_correo/20261374898-01-FF05-100595.pdf b/tests/correos_prueba/020_correo/20261374898-01-FF05-100595.pdf new file mode 100644 index 0000000..0e28a20 Binary files /dev/null and b/tests/correos_prueba/020_correo/20261374898-01-FF05-100595.pdf differ diff --git a/tests/correos_prueba/020_correo/20261374898-01-FF05-100595.xml b/tests/correos_prueba/020_correo/20261374898-01-FF05-100595.xml new file mode 100644 index 0000000..40bfa53 --- /dev/null +++ b/tests/correos_prueba/020_correo/20261374898-01-FF05-100595.xml @@ -0,0 +1,994 @@ + + + + zGkSPWeCj785eE+jxHzlbHtcZk8=DQPM2A+CrvHzAday6h3G8smr2vSJBal4FtaYmR7heQJXuEtaUcu6s8RGTjO3CGE8kVqLQAdPdS4J +FxZ3n/x3dYJFW8epiJWByHxWxQp/MQn6RGbYOzQLC3TnaZV5GRgNkksGwKAUkuHrMhxs1/iSigNS +FxXfgCl4JlqNcN2QM6cI0lB2HCQ426xdDpRiFneeWi2cJpXUynmwGF5MVO9fk/0LTPu4CDFeWFaC +Ar9kQx7xpnDWSd4l1oYu/H0h1WbdxdThwxJZwixV/GV34hajhQhiMoK1lLyk9ZqfHe44TZPnJilL +Kep8PDZ81SzIvB/i9f2VK9qUK49n1HesgB9BbQ==2.5.4.13=#0c2a436572746966696361646f207061726120466163747572616369c3b36e20456c65637472c3b36e696361,1.3.6.1.4.1.47286.30.2=#0c03525543,1.3.6.1.4.1.47286.30.3=#0c0b3230323631333734383938,1.3.6.1.4.1.47286.30.4=#0c03444e49,1.2.840.113549.1.9.1=#16156c6f7370696e6f7340696e647573666572722e7065,CN=WALTER EDUARDO ALMANZA VARGAS,2.5.4.5=#13083036313936323939,2.5.4.42=#0c0e57414c544552204544554152444f,2.5.4.4=#0c0e414c4d414e5a4120564152474153,2.5.4.12=#0c11544954554c4152202d20474552454e5445,OU=ADMINISTRACION,OU=20261374898,O=INDUSFERR EMPRESA INDIVIDUAL DE RESPONSABILIDAD LIMITADA,L=LIMA,C=PEMIIImTCCBoGgAwIBAgIIPxZafdPW2HswDQYJKoZIhvcNAQELBQAwgbgxCzAJBgNVBAYTAkVTMUQw +QgYDVQQHDDtCYXJjZWxvbmEgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LnVhbmF0YWNhLmNv +bS9hZGRyZXNzKTEWMBQGA1UECgwNVUFOQVRBQ0EgUy5BLjEVMBMGA1UECwwMVFNQLVVBTkFUQUNB +MRowGAYDVQQDDBFVQU5BVEFDQSBDQTEgMjAxNjEYMBYGA1UEYQwPVkFURVMtQTY2NzIxNDk5MB4X +DTI1MTEyMDE0NDkwMFoXDTI4MTExOTE0NDkwMFowggG5MQswCQYDVQQGEwJQRTENMAsGA1UEBwwE +TElNQTFBMD8GA1UECgw4SU5EVVNGRVJSIEVNUFJFU0EgSU5ESVZJRFVBTCBERSBSRVNQT05TQUJJ +TElEQUQgTElNSVRBREExFDASBgNVBAsMCzIwMjYxMzc0ODk4MRcwFQYDVQQLDA5BRE1JTklTVFJB +Q0lPTjEaMBgGA1UEDAwRVElUVUxBUiAtIEdFUkVOVEUxFzAVBgNVBAQMDkFMTUFOWkEgVkFSR0FT +MRcwFQYDVQQqDA5XQUxURVIgRURVQVJETzERMA8GA1UEBRMIMDYxOTYyOTkxJjAkBgNVBAMMHVdB +TFRFUiBFRFVBUkRPIEFMTUFOWkEgVkFSR0FTMSQwIgYJKoZIhvcNAQkBFhVsb3NwaW5vc0BpbmR1 +c2ZlcnIucGUxEzARBgorBgEEAYLxNh4EDANETkkxGzAZBgorBgEEAYLxNh4DDAsyMDI2MTM3NDg5 +ODETMBEGCisGAQQBgvE2HgIMA1JVQzEzMDEGA1UEDQwqQ2VydGlmaWNhZG8gcGFyYSBGYWN0dXJh +Y2nDs24gRWxlY3Ryw7NuaWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqve/s0UH +eg3o8PIcVzStx7Q/4o7o8LNUutQ0lQC78g3sJ5whnCg0JzSihlEl/b4FjwL+HP0ReIdyJS3AfkvV +9FfUSKf16iNe2cTI7YEm5E7nkiIfm4RNfcH/cfEQzCedmbuGxLl7FDryDMYcKr02UlbhEjthmkcV +FBoyhd5EarKhoevd8Wg6XdUBFOpkI5l6/3cJ6nhgcpnag2jHvGrsWauGBB+GPNXcC97x28iRTFgv +Hmeb4NbYF37b/eET1dzgt5lK15A+zFmpF1qyLVeNb8uaWBhMkYcGghy9oBv3Gk47TF5haTy3TaJF +93vLfhLhwaeb/HXvLIbKiX4XTUtB8wIDAQABo4ICoTCCAp0wgdYGCCsGAQUFBwEBBIHJMIHGMFQG +CCsGAQUFBzAChkhodHRwOi8vd3d3LnVhbmF0YWNhLmNvbS9wdWJsaWMvZG93bmxvYWQvdHNwX2Nl +cnRpZmljYXRlcy90cnVzdGVkUm9vdC5wN2MwNgYIKwYBBQUHMAGGKmh0dHA6Ly9vY3NwMS51YW5h +dGFjYS5jb20vcHVibGljL3BraS9vY3NwLzA2BggrBgEFBQcwAYYqaHR0cDovL29jc3AyLnVhbmF0 +YWNhLmNvbS9wdWJsaWMvcGtpL29jc3AvMB0GA1UdDgQWBBTeZx85VGHOnjXWGr7f+TyGNhMYzjAM +BgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFC1x77Bjf/X94IMiRH9EEDCBT03lMIGQBgNVHSAEgYgw +gYUwgYIGDCsGAQQBgvE2AgICAjByMDYGCCsGAQUFBwIBFipodHRwOi8vd3d3LnVhbmF0YWNhLmNv +bS9wdWJsaWMvcGtpL2RwYy1wZS8wOAYIKwYBBQUHAgIwLAwqQ2VydGlmaWNhZG8gcGFyYSBGYWN0 +dXJhY2nDs24gRWxlY3Ryw7NuaWNhMIGPBgNVHR8EgYcwgYQwQKA+oDyGOmh0dHA6Ly9jcmwxLnVh +bmF0YWNhLmNvbS9wdWJsaWMvcGtpL2NybC9DQTFzdWJvcmRpbmFkYS5jcmwwQKA+oDyGOmh0dHA6 +Ly9jcmwyLnVhbmF0YWNhLmNvbS9wdWJsaWMvcGtpL2NybC9DQTFzdWJvcmRpbmFkYS5jcmwwDgYD +VR0PAQH/BAQDAgbAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAgBgNVHREEGTAXgRVs +b3NwaW5vc0BpbmR1c2ZlcnIucGUwDQYJKoZIhvcNAQELBQADggIBAGsG27BxbnS5p5xLs4t/pfrc +8RCWhIpTLAymTnRLrrkbshAx36bchd0vUctaum6UiD3RqWI/kPERdmvFkUZBoDN/2cnQTXWaabE7 +QuhHjsznTLlwsRK92QcvmxbusOAph7n9Sm6o7R72MRatOZeRGBEeS/LUutKMTUU6/R+vn/oa7pss +wrJeTv2abLyAvHQuqnOCN7BKD93t+iPY63EHEa7ijbalRna2qHLvxSl/PGAvXsHhlY/mZvccojSo +9jwmmZhpaB859uCOp8Mv9pua4KJlpWfkCqw9pUlldLBQgkkNxzBKsaF8AXAgnTZnaXmJ+Hd/k2ck +gIa6vmesyF7lpg0saij7fIudvILOjzDUlvI/gaTE6ZJLkYdbsrNBEXHDV/p7+53/KGzZmSrAgSZb +ly0U4RiA/QZ0BM1ghqzwal2FweB/6uet50e4EIqNuo3k+XmPFPzOvaQmaDPYJNsdFWFoKnt49OFE +hM2RHLOWZhWTQg8/yN7LRtI1uFPu4OpyxCMnYhi+uyJyaqR26FgvcYn4cWi4G0SW1ouqOYVza8hK +KICC6N/uOlS/YEZOpoA4UmYAiL67NgYjYju08HG6t3qRJDvO3ysUIA/8dr17ijYF6jfpCoLbDjUt +05UMg7SMvJhYmy+CBYxecyoeJHvQ0prxtqbA4QF2q9pEEcDhfeEI + + + 2.1 + 2.0 + FF05-0100595 + 2026-06-09 + 08:56:59 + 01 + DIECISEIS MIL NOVECIENTOS OCHENTA Y SEIS Y 06/100 SOLES + OPERACION SUJETA A DETRACCION + PEN + 10 + + 20261374898 + + + 20261374898 + + + INDUSFERR EIRL + + + + + 20261374898 + + + + + 20261374898 + 6 + + + 20261374898 + + + INDUSFERR EIRL + + + INDUSFERR EIRL + + 0000 + + + + + 1515956CNG + + + + + + 20100029741 + 6 + + + 20100029741 + + + A. BERIO Y CIA S.A.C + + + + + Detraccion + 001 + + 00000855529 + + + + Detraccion + 027 + 4.00 + 1076.00 + + + FormaPago + Credito + 15910.06 + + + FormaPago + Cuota001 + 15910.06 + 2026-06-24 + + + 2591.11 + + 14394.95 + 2591.11 + + S + + 1000 + IGV + VAT + + + + + + 14394.95 + 16986.06 + 16986.06 + + + 1 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 2 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 3 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 4 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 5 + 1.0000000000 + 1452.20 + + + 1713.6000000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 261.40 + + 1452.20 + 261.40 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1452.2033898305 + + + + 6 + 1.0000000000 + 1452.20 + + + 1713.6000000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 261.40 + + 1452.20 + 261.40 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1452.2033898305 + + + + 7 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 8 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 9 + 1.0000000000 + 1452.20 + + + 1713.6000000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 261.40 + + 1452.20 + 261.40 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1452.2033898305 + + + + 10 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + \ No newline at end of file diff --git a/tests/correos_prueba/020_correo/pdf_resultado_020.json b/tests/correos_prueba/020_correo/pdf_resultado_020.json new file mode 100644 index 0000000..32383f5 --- /dev/null +++ b/tests/correos_prueba/020_correo/pdf_resultado_020.json @@ -0,0 +1,221 @@ +[ + { + "ruc_emisor": "20261374898", + "razon_social_emisor": "A. BERIO Y CIA S.A.C Ruc: 20100029741", + "fecha_emision": "09/06/2026", + "tipo": "01", + "serie": "FF05", + "numero": "100595", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C Ruc: 20100029741", + "total_factura": "1.00", + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [ + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 SOL GRR T001-128374 GRT EG03-1967] 1692.18", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128374" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1967" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [290 SOL GRR T001-128452 GRT EG03-1969 / 1692.18 500 APU GRR T001-128453 GRT EG03-1969]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128452" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128453" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1969" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 ULTRA GRR T001-128512 GRT EG03-1971] 1692.18", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128512" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1971" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 APU GRR T001-128540 GRT EG03-1972] 1692.18", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128540" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1972" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [800 SOL GRR T001-128650 GRT EG03-1975] 1713.60", + "cantidad": "1.00", + "precio_unitario": "1713.60", + "total_linea": "1713.60", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128650" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1975" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [200 ULTRA GRR T001-128725 GRT EG03-1978 / 1713.60 600 SOL GRR T001-128724 GRT EG03-1978]", + "cantidad": "1.00", + "precio_unitario": "1713.60", + "total_linea": "1713.60", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128725" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128724" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1978" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 SOL GRR T001-128681 GRT EG03-1976] 1692.18", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128681" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1976" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [246 ULTRA GRR T001-128727 GRT EG03-1977 / 1692.18 544 SOL GRR T001-128726 GRT EG03-1977]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128727" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128726" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1977" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [400 SOL GRR T001-128807 GRT EG03-1979 / 1713.60 400 APU GRR T001-128808 GRT EG03-1979]", + "cantidad": "1.00", + "precio_unitario": "1713.60", + "total_linea": "1713.60", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128807" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128808" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1979" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 SOL GRR T001-128910 GRT EG03-1981] 1692.18", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128910" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1981" + } + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/020_correo/20261374898-01-FF05-100595.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/020_correo/xml_resultado_020.json b/tests/correos_prueba/020_correo/xml_resultado_020.json new file mode 100644 index 0000000..2636f27 --- /dev/null +++ b/tests/correos_prueba/020_correo/xml_resultado_020.json @@ -0,0 +1,244 @@ +[ + { + "ruc_emisor": "20261374898", + "razon_social_emisor": "INDUSFERR EIRL", + "fecha_emision": "2026-06-09", + "tipo": "01", + "serie": "FF05", + "numero": "100595", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C", + "total_factura": 16986.06, + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 1076.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128374" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1967" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128452" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128453" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1969" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128512" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1971" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128540" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1972" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1713.6, + "total_linea": 1452.2, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128650" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1975" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1713.6, + "total_linea": 1452.2, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128725" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128724" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1978" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128681" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1976" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128727" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128726" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1977" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1713.6, + "total_linea": 1452.2, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128807" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128808" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1979" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128910" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1981" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/020_correo/20261374898-01-FF05-100595.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/021_correo/20261374898-01-FF05-100595.pdf b/tests/correos_prueba/021_correo/20261374898-01-FF05-100595.pdf new file mode 100644 index 0000000..b7e2a9b Binary files /dev/null and b/tests/correos_prueba/021_correo/20261374898-01-FF05-100595.pdf differ diff --git a/tests/correos_prueba/021_correo/20261374898-01-FF05-100595.xml b/tests/correos_prueba/021_correo/20261374898-01-FF05-100595.xml new file mode 100644 index 0000000..40bfa53 --- /dev/null +++ b/tests/correos_prueba/021_correo/20261374898-01-FF05-100595.xml @@ -0,0 +1,994 @@ + + + + zGkSPWeCj785eE+jxHzlbHtcZk8=DQPM2A+CrvHzAday6h3G8smr2vSJBal4FtaYmR7heQJXuEtaUcu6s8RGTjO3CGE8kVqLQAdPdS4J +FxZ3n/x3dYJFW8epiJWByHxWxQp/MQn6RGbYOzQLC3TnaZV5GRgNkksGwKAUkuHrMhxs1/iSigNS +FxXfgCl4JlqNcN2QM6cI0lB2HCQ426xdDpRiFneeWi2cJpXUynmwGF5MVO9fk/0LTPu4CDFeWFaC +Ar9kQx7xpnDWSd4l1oYu/H0h1WbdxdThwxJZwixV/GV34hajhQhiMoK1lLyk9ZqfHe44TZPnJilL +Kep8PDZ81SzIvB/i9f2VK9qUK49n1HesgB9BbQ==2.5.4.13=#0c2a436572746966696361646f207061726120466163747572616369c3b36e20456c65637472c3b36e696361,1.3.6.1.4.1.47286.30.2=#0c03525543,1.3.6.1.4.1.47286.30.3=#0c0b3230323631333734383938,1.3.6.1.4.1.47286.30.4=#0c03444e49,1.2.840.113549.1.9.1=#16156c6f7370696e6f7340696e647573666572722e7065,CN=WALTER EDUARDO ALMANZA VARGAS,2.5.4.5=#13083036313936323939,2.5.4.42=#0c0e57414c544552204544554152444f,2.5.4.4=#0c0e414c4d414e5a4120564152474153,2.5.4.12=#0c11544954554c4152202d20474552454e5445,OU=ADMINISTRACION,OU=20261374898,O=INDUSFERR EMPRESA INDIVIDUAL DE RESPONSABILIDAD LIMITADA,L=LIMA,C=PEMIIImTCCBoGgAwIBAgIIPxZafdPW2HswDQYJKoZIhvcNAQELBQAwgbgxCzAJBgNVBAYTAkVTMUQw +QgYDVQQHDDtCYXJjZWxvbmEgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LnVhbmF0YWNhLmNv +bS9hZGRyZXNzKTEWMBQGA1UECgwNVUFOQVRBQ0EgUy5BLjEVMBMGA1UECwwMVFNQLVVBTkFUQUNB +MRowGAYDVQQDDBFVQU5BVEFDQSBDQTEgMjAxNjEYMBYGA1UEYQwPVkFURVMtQTY2NzIxNDk5MB4X +DTI1MTEyMDE0NDkwMFoXDTI4MTExOTE0NDkwMFowggG5MQswCQYDVQQGEwJQRTENMAsGA1UEBwwE +TElNQTFBMD8GA1UECgw4SU5EVVNGRVJSIEVNUFJFU0EgSU5ESVZJRFVBTCBERSBSRVNQT05TQUJJ +TElEQUQgTElNSVRBREExFDASBgNVBAsMCzIwMjYxMzc0ODk4MRcwFQYDVQQLDA5BRE1JTklTVFJB +Q0lPTjEaMBgGA1UEDAwRVElUVUxBUiAtIEdFUkVOVEUxFzAVBgNVBAQMDkFMTUFOWkEgVkFSR0FT +MRcwFQYDVQQqDA5XQUxURVIgRURVQVJETzERMA8GA1UEBRMIMDYxOTYyOTkxJjAkBgNVBAMMHVdB +TFRFUiBFRFVBUkRPIEFMTUFOWkEgVkFSR0FTMSQwIgYJKoZIhvcNAQkBFhVsb3NwaW5vc0BpbmR1 +c2ZlcnIucGUxEzARBgorBgEEAYLxNh4EDANETkkxGzAZBgorBgEEAYLxNh4DDAsyMDI2MTM3NDg5 +ODETMBEGCisGAQQBgvE2HgIMA1JVQzEzMDEGA1UEDQwqQ2VydGlmaWNhZG8gcGFyYSBGYWN0dXJh +Y2nDs24gRWxlY3Ryw7NuaWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqve/s0UH +eg3o8PIcVzStx7Q/4o7o8LNUutQ0lQC78g3sJ5whnCg0JzSihlEl/b4FjwL+HP0ReIdyJS3AfkvV +9FfUSKf16iNe2cTI7YEm5E7nkiIfm4RNfcH/cfEQzCedmbuGxLl7FDryDMYcKr02UlbhEjthmkcV +FBoyhd5EarKhoevd8Wg6XdUBFOpkI5l6/3cJ6nhgcpnag2jHvGrsWauGBB+GPNXcC97x28iRTFgv +Hmeb4NbYF37b/eET1dzgt5lK15A+zFmpF1qyLVeNb8uaWBhMkYcGghy9oBv3Gk47TF5haTy3TaJF +93vLfhLhwaeb/HXvLIbKiX4XTUtB8wIDAQABo4ICoTCCAp0wgdYGCCsGAQUFBwEBBIHJMIHGMFQG +CCsGAQUFBzAChkhodHRwOi8vd3d3LnVhbmF0YWNhLmNvbS9wdWJsaWMvZG93bmxvYWQvdHNwX2Nl +cnRpZmljYXRlcy90cnVzdGVkUm9vdC5wN2MwNgYIKwYBBQUHMAGGKmh0dHA6Ly9vY3NwMS51YW5h +dGFjYS5jb20vcHVibGljL3BraS9vY3NwLzA2BggrBgEFBQcwAYYqaHR0cDovL29jc3AyLnVhbmF0 +YWNhLmNvbS9wdWJsaWMvcGtpL29jc3AvMB0GA1UdDgQWBBTeZx85VGHOnjXWGr7f+TyGNhMYzjAM +BgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFC1x77Bjf/X94IMiRH9EEDCBT03lMIGQBgNVHSAEgYgw +gYUwgYIGDCsGAQQBgvE2AgICAjByMDYGCCsGAQUFBwIBFipodHRwOi8vd3d3LnVhbmF0YWNhLmNv +bS9wdWJsaWMvcGtpL2RwYy1wZS8wOAYIKwYBBQUHAgIwLAwqQ2VydGlmaWNhZG8gcGFyYSBGYWN0 +dXJhY2nDs24gRWxlY3Ryw7NuaWNhMIGPBgNVHR8EgYcwgYQwQKA+oDyGOmh0dHA6Ly9jcmwxLnVh +bmF0YWNhLmNvbS9wdWJsaWMvcGtpL2NybC9DQTFzdWJvcmRpbmFkYS5jcmwwQKA+oDyGOmh0dHA6 +Ly9jcmwyLnVhbmF0YWNhLmNvbS9wdWJsaWMvcGtpL2NybC9DQTFzdWJvcmRpbmFkYS5jcmwwDgYD +VR0PAQH/BAQDAgbAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAgBgNVHREEGTAXgRVs +b3NwaW5vc0BpbmR1c2ZlcnIucGUwDQYJKoZIhvcNAQELBQADggIBAGsG27BxbnS5p5xLs4t/pfrc +8RCWhIpTLAymTnRLrrkbshAx36bchd0vUctaum6UiD3RqWI/kPERdmvFkUZBoDN/2cnQTXWaabE7 +QuhHjsznTLlwsRK92QcvmxbusOAph7n9Sm6o7R72MRatOZeRGBEeS/LUutKMTUU6/R+vn/oa7pss +wrJeTv2abLyAvHQuqnOCN7BKD93t+iPY63EHEa7ijbalRna2qHLvxSl/PGAvXsHhlY/mZvccojSo +9jwmmZhpaB859uCOp8Mv9pua4KJlpWfkCqw9pUlldLBQgkkNxzBKsaF8AXAgnTZnaXmJ+Hd/k2ck +gIa6vmesyF7lpg0saij7fIudvILOjzDUlvI/gaTE6ZJLkYdbsrNBEXHDV/p7+53/KGzZmSrAgSZb +ly0U4RiA/QZ0BM1ghqzwal2FweB/6uet50e4EIqNuo3k+XmPFPzOvaQmaDPYJNsdFWFoKnt49OFE +hM2RHLOWZhWTQg8/yN7LRtI1uFPu4OpyxCMnYhi+uyJyaqR26FgvcYn4cWi4G0SW1ouqOYVza8hK +KICC6N/uOlS/YEZOpoA4UmYAiL67NgYjYju08HG6t3qRJDvO3ysUIA/8dr17ijYF6jfpCoLbDjUt +05UMg7SMvJhYmy+CBYxecyoeJHvQ0prxtqbA4QF2q9pEEcDhfeEI + + + 2.1 + 2.0 + FF05-0100595 + 2026-06-09 + 08:56:59 + 01 + DIECISEIS MIL NOVECIENTOS OCHENTA Y SEIS Y 06/100 SOLES + OPERACION SUJETA A DETRACCION + PEN + 10 + + 20261374898 + + + 20261374898 + + + INDUSFERR EIRL + + + + + 20261374898 + + + + + 20261374898 + 6 + + + 20261374898 + + + INDUSFERR EIRL + + + INDUSFERR EIRL + + 0000 + + + + + 1515956CNG + + + + + + 20100029741 + 6 + + + 20100029741 + + + A. BERIO Y CIA S.A.C + + + + + Detraccion + 001 + + 00000855529 + + + + Detraccion + 027 + 4.00 + 1076.00 + + + FormaPago + Credito + 15910.06 + + + FormaPago + Cuota001 + 15910.06 + 2026-06-24 + + + 2591.11 + + 14394.95 + 2591.11 + + S + + 1000 + IGV + VAT + + + + + + 14394.95 + 16986.06 + 16986.06 + + + 1 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 2 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 3 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 4 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 5 + 1.0000000000 + 1452.20 + + + 1713.6000000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 261.40 + + 1452.20 + 261.40 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1452.2033898305 + + + + 6 + 1.0000000000 + 1452.20 + + + 1713.6000000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 261.40 + + 1452.20 + 261.40 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1452.2033898305 + + + + 7 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 8 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 9 + 1.0000000000 + 1452.20 + + + 1713.6000000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 261.40 + + 1452.20 + 261.40 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1452.2033898305 + + + + 10 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + \ No newline at end of file diff --git a/tests/correos_prueba/021_correo/pdf_resultado_021.json b/tests/correos_prueba/021_correo/pdf_resultado_021.json new file mode 100644 index 0000000..4510d0a --- /dev/null +++ b/tests/correos_prueba/021_correo/pdf_resultado_021.json @@ -0,0 +1,197 @@ +[ + { + "ruc_emisor": "20261374898", + "razon_social_emisor": "A. BERIO Y CIA S.A.C Ruc: 20100029741", + "fecha_emision": "09/06/2026", + "tipo": "01", + "serie": "FF05", + "numero": "100595", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C Ruc: 20100029741", + "total_factura": "1.00", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "1076.00", + "lineas": [ + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 SOL GRR T001-128374 GRT 1692.18 EG03-1967]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128374" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [290 SOL GRR T001-128452 GRT 1692.18 EG03-1969 / 500 APU GRR T001-128453 GRT EG03-1969]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128452" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128453" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1969" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 ULTRA GRR T001-128512 GRT 1692.18 EG03-1971]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128512" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 APU GRR T001-128540 GRT 1692.18 EG03-1972]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128540" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [800 SOL GRR T001-128650 GRT 1713.60 EG03-1975]", + "cantidad": "1.00", + "precio_unitario": "1713.60", + "total_linea": "1713.60", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128650" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [200 ULTRA GRR T001-128725 GRT 1713.60 EG03-1978 / 600 SOL GRR T001-128724 GRT EG03-1978]", + "cantidad": "1.00", + "precio_unitario": "1713.60", + "total_linea": "1713.60", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128725" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128724" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1978" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 SOL GRR T001-128681 GRT 1692.18 EG03-1976]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128681" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [246 ULTRA GRR T001-128727 GRT 1692.18 EG03-1977 / 544 SOL GRR T001-128726 GRT EG03-1977]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128727" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128726" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1977" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [400 SOL GRR T001-128807 GRT 1713.60 EG03-1979 / 400 APU GRR T001-128808 GRT EG03-1979]", + "cantidad": "1.00", + "precio_unitario": "1713.60", + "total_linea": "1713.60", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128807" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128808" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1979" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 SOL GRR T001-128910 GRT 1692.18 EG03-1981] P.P: AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO P.L: MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CAÑETE V.R: S/. 26897.97 CARGA TM: 337.03 MTC: 1515956CNG CONF: T3S3", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128910" + } + ], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/021_correo/20261374898-01-FF05-100595.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/021_correo/xml_resultado_021.json b/tests/correos_prueba/021_correo/xml_resultado_021.json new file mode 100644 index 0000000..633e025 --- /dev/null +++ b/tests/correos_prueba/021_correo/xml_resultado_021.json @@ -0,0 +1,220 @@ +[ + { + "ruc_emisor": "20261374898", + "razon_social_emisor": "INDUSFERR EIRL", + "fecha_emision": "2026-06-09", + "tipo": "01", + "serie": "FF05", + "numero": "100595", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C", + "total_factura": 16986.06, + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 1076.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128374" + } + ], + "guia_transportista": null + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128452" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128453" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1969" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128512" + } + ], + "guia_transportista": null + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128540" + } + ], + "guia_transportista": null + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1713.6, + "total_linea": 1452.2, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128650" + } + ], + "guia_transportista": null + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1713.6, + "total_linea": 1452.2, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128725" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128724" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1978" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128681" + } + ], + "guia_transportista": null + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128727" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128726" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1977" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1713.6, + "total_linea": 1452.2, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128807" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128808" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1979" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128910" + } + ], + "guia_transportista": null + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/021_correo/20261374898-01-FF05-100595.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/022_correo/20154645005-01-F002-53135.pdf b/tests/correos_prueba/022_correo/20154645005-01-F002-53135.pdf new file mode 100644 index 0000000..031b2b2 Binary files /dev/null and b/tests/correos_prueba/022_correo/20154645005-01-F002-53135.pdf differ diff --git a/tests/correos_prueba/022_correo/20154645005-01-F002-53135.xml b/tests/correos_prueba/022_correo/20154645005-01-F002-53135.xml new file mode 100644 index 0000000..c1367b6 --- /dev/null +++ b/tests/correos_prueba/022_correo/20154645005-01-F002-53135.xml @@ -0,0 +1,148 @@ + + + + + pQuy2Uh71k71DsWF5rc3k/D/ssA=dFozU6I2BEMW3zHy3v/MAvwBZ7xE829JneuEz2CpqguR94XFN/08cSxCf59ZINXnj2jNeSWcgJThDV4mXRYVAO+6LqrylEqAJGw3bM4hGJqwPaxu2sTp3Hb6S97ZvL8PimWd5CMN93xAXXeg7zTkgbOymdR2LuvP90Yktn569qIDLU2WBnM/339ludkaSOv8hWI5VJPmKtP2dCftM0kBgBGOQR6eXerIV3LKy2IvWrqN/cxRTh3YTvd+VCiWptbGCNaXhiIqNYsEcqw1AHeGtn2hVRTP0ci8V91J7PvmL8averjtUvury+Lml80M/EXXne70cJaq6MiCsux+SHOinw==C=PE, L=LIMA, O=DISTRIBUIDORA SANTA PATRICIA S R L, OU=Validado por Llama.pe ER, OU=FACTURA ELECTRONICA RUC 20154645005, CN=SOFTWARE DE FACTURACION ELECTRONICA, E=dis_patricia@yahoo.com, STREET=AV. TOMAS MARSANO NRO. 4330 URB. LA VIRREYNAMIIFgzCCBGugAwIBAgIIGTcLfd6CAQswDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQxMDE0MTgzNDIxWhcNMjYxMDE0MTgzNDAwWjCCASYxNTAzBgNVBAkMLEFWLiBUT01BUyBNQVJTQU5PIE5STy4gNDMzMCBVUkIuIExBIFZJUlJFWU5BMSUwIwYJKoZIhvcNAQkBFhZkaXNfcGF0cmljaWFAeWFob28uY29tMSwwKgYDVQQDDCNTT0ZUV0FSRSBERSBGQUNUVVJBQ0lPTiBFTEVDVFJPTklDQTEsMCoGA1UECwwjRkFDVFVSQSBFTEVDVFJPTklDQSBSVUMgMjAxNTQ2NDUwMDUxITAfBgNVBAsMGFZhbGlkYWRvIHBvciBMbGFtYS5wZSBFUjErMCkGA1UECgwiRElTVFJJQlVJRE9SQSBTQU5UQSBQQVRSSUNJQSBTIFIgTDENMAsGA1UEBwwETElNQTELMAkGA1UEBhMCUEUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCmsa8aNxkqzWWk19zfoD/cIhArrgjNFx0TeKtdN+/m+6y8ucQDeqbjtnTHEcLjyeGiWNzowP+VLI9EJFOhsQBHjDMUxF33BYdRQw4Ii5u72voovryE8EAIsuHUkrGwnI4q+ZYq3s/MF/dDNr1Fq5gQYcWju0Qcw5uR18+LDZPxc7IDwWEA9UY0Qe4G49GJWLIcoOEf2wpzQ1+YolBS8PNny9H4a9LjG3+XkCdkVL676PjEykMF/aMEQkSNPkkjiHzl+ftiQXuzAMT/1IxvCwfjwzXHqmHM91jeLk5POw0PkqxfFAvYIBzodXMNygBihmkpAeuXgBpH4qo1unqfdETDAgMBAAGjggGRMIIBjTAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFF2IW63rZfv+aKLk2W89V3Ki7yuZMGcGCCsGAQUFBwEBBFswWTA1BggrBgEFBQcwAoYpaHR0cDovL2NydC5sbGFtYS5wZS9sbGFtYXBlc3RhbmRhcmRjYS5jZXIwIAYIKwYBBQUHMAGGFGh0dHA6Ly9vY3NwLmxsYW1hLnBlMCEGA1UdEQQaMBiBFmRpc19wYXRyaWNpYUB5YWhvby5jb20wRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY3JsMB0GA1UdDgQWBBS5UPPPJNJvf5jr4HwdRfcu37ZOWTAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAGXcN3ocVIpJ/GKOQwlnK3vF49BDGRbXmhrB8wg/VekOUQI6Z4AUMlAcLzi+K2rKJLwbf0bw0psOdLT6Gu2X1DP4bxPaVAqePxjY0t4H2QBmm5MZ8jxJIFgYzf53Bhgu7slJk2bRPsGt8ujAX4EjqyjfhVOnzzLk2QOH/beZK+GsaXduRxvnfBDbknYysdFTDq8J1Hn0lWHjYFhb76doEputR9KYkrTHmqFFyeOyJF2+waJkfDPuVVjWTmYlLLZCzKFKxrjWF/paNE2cJm28QcoVUxBi8o4lq9BHhkBnO54tLZRtnptbMnUkAsmXZg8SmoPpaWzAkCISrGAoTIAXm2M= + + + 2.1 + 2.0 + F002-00053135 + 2026-06-25 + 15:16:51 + 01 + QUINIENTOS NUEVE Y 05/100 + OPERACION SUJETA A DETRACCION + PEN + + 20154645005 + + + 20154645005 + + + DISTRIBUIDORA SANTA PATRICIA S R L + + + + + #SignatureKG + + + + + + + 20154645005 + + + DISTRIBUIDORA SANTA PATRICIA S R L + + + DISTRIBUIDORA SANTA PATRICIA S R L + + 0000 + LIMA + LIMA + SANTIAGO DE SURCO + + PE + + + + + + + + + 20100029741 + + + A. BERIO Y CIA S.A.C. + + + + + 001 + + 00000-451754 + + + + 027 + 4 + 20 + + + FormaPago + Credito + 489.05 + + + FormaPago + Cuota001 + 489.05 + 2026-07-05 + + + 77.65 + + 431.4 + 77.65 + + S + + 1000 + IGV + VAT + + + + + + 431.4 + 509.05 + 0 + 509.05 + + + 1 + 1 + 431.40 + + + 509.050000 + 01 + + + + 77.65 + + 431.40 + 77.65 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + SE000001 + + + 80141623 + + + + 431.400000 + + + \ No newline at end of file diff --git a/tests/correos_prueba/022_correo/pdf_resultado_022.json b/tests/correos_prueba/022_correo/pdf_resultado_022.json new file mode 100644 index 0000000..78f0acb --- /dev/null +++ b/tests/correos_prueba/022_correo/pdf_resultado_022.json @@ -0,0 +1,39 @@ +[ + { + "ruc_emisor": "20154645005", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. MONEDA: SOLES", + "fecha_emision": "25/06/2026", + "tipo": "01", + "serie": "F002", + "numero": "53135", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. MONEDA: SOLES", + "total_factura": "20.00", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "27.00", + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE UND SERVICIO DE TRANSPORTE 380 BL CEMENTO S/ 1.3396 P. PARTIDA : AV. ATOCONGO 1860 LIMA-LIMA-VILLA MARIA DEL TRIUNFO P. LLEGADA : JR.LOMA DE LOS PENSAMIENTOS MZ.W4 LT.7 URB. PROLONG. BENAVIDES -LIMA-LIMA SEGÚN GRR : T001-0130881 SEGÚN GRT : V001-00004245 VALOR REFERENCIAL : S/ 509.05 CONFIG. VEHICULAR : C3 CARGA TM. : 16.150 NO REGISTRO M.T.C. : 1525019 CNG NRO. DE PLACA : B7Y-942", + "cantidad": "1.0000", + "precio_unitario": "0.00", + "total_linea": "509.05", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "130881" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "V001", + "numero": "4245" + } + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/022_correo/20154645005-01-F002-53135.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/022_correo/xml_resultado_022.json b/tests/correos_prueba/022_correo/xml_resultado_022.json new file mode 100644 index 0000000..e1c316d --- /dev/null +++ b/tests/correos_prueba/022_correo/xml_resultado_022.json @@ -0,0 +1,53 @@ +[ + { + "ruc_emisor": "20154645005", + "razon_social_emisor": "DISTRIBUIDORA SANTA PATRICIA S R L", + "fecha_emision": "2026-06-25", + "tipo": "01", + "serie": "F002", + "numero": "53135", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 509.05, + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 509.05, + "total_linea": 431.4, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "130881" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "V001", + "numero": "4245" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/022_correo/20154645005-01-F002-53135.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/023_correo/20538637280-01-F001-70705.pdf b/tests/correos_prueba/023_correo/20538637280-01-F001-70705.pdf new file mode 100644 index 0000000..b9be1ba Binary files /dev/null and b/tests/correos_prueba/023_correo/20538637280-01-F001-70705.pdf differ diff --git a/tests/correos_prueba/023_correo/20538637280-01-F001-70705.xml b/tests/correos_prueba/023_correo/20538637280-01-F001-70705.xml new file mode 100644 index 0000000..e26a10a --- /dev/null +++ b/tests/correos_prueba/023_correo/20538637280-01-F001-70705.xml @@ -0,0 +1,146 @@ + + + + + + VQmXtlxldBVKnwt2PWB/agdswus=Rjg6V7mjekP8GjLrw2KVsm+d+ze83Bv++YjkVbmxkjp12jj7AZGYt025/V452/8faK75PKhrlfjl2aHmDnaHaSZo62/eCyM0Vyy+Hxi79tzmJM3kHAbOQ+3Jcx5ih+6xCJb2ISOdQskVtvR06uXjNP1kiF1zo3W6PZHeyyk+JX+8AymgFhYesBDDHInZ0ddMhCE00FTI6pFbDgBdDj+x9xb7u1w1RWzpL81/d9Lf5o/Kx+BXL/8x6LOAYJtJmqtcRIQleCZvLX9Antpo051Xd8bMoVw6q+DL5NvI4IhRbft/u0K2SqWm+cZxMo4KKrGnTs4WstbGUHwYzgCFVg4FLg==C=PE, L=LIMA, O=INVERSIONES LA ECONOMICA A E SOCIEDAD ANONIMA CERRADA - INVERSIONES LA ECONOMICA A E S.A.C., OU=Validado por Llama.pe ER, OU=FACTURA ELECTRONICA RUC 20538637280, CN=SOFTWARE DE FACTURACION ELECTRONICA, E=bobregon@laeconomica.pe, STREET=CAL. B LT. 15 MZ. B A.H. BENJAMIN DOIG LOSSIOMIIFwTCCBKmgAwIBAgIIb9ZMwtWbe4cwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjMwOTE1MDE0MDIyWhcNMjQwOTE0MDE0MDAwWjCCAWMxNjA0BgNVBAkMLUNBTC4gQiBMVC4gMTUgTVouIEIgQS5ILiBCRU5KQU1JTiBET0lHIExPU1NJTzEmMCQGCSqGSIb3DQEJARYXYm9icmVnb25AbGFlY29ub21pY2EucGUxLDAqBgNVBAMMI1NPRlRXQVJFIERFIEZBQ1RVUkFDSU9OIEVMRUNUUk9OSUNBMSwwKgYDVQQLDCNGQUNUVVJBIEVMRUNUUk9OSUNBIFJVQyAyMDUzODYzNzI4MDEhMB8GA1UECwwYVmFsaWRhZG8gcG9yIExsYW1hLnBlIEVSMWYwZAYDVQQKDF1JTlZFUlNJT05FUyBMQSBFQ09OT01JQ0EgQSAgRSBTT0NJRURBRCBBTk9OSU1BIENFUlJBREEgLSBJTlZFUlNJT05FUyBMQSBFQ09OT01JQ0EgQSAgRSBTLkEuQy4xDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA7ASYW55h7pD3kN/fuesq5aUQdKqXTGljpKDq1rHpqQ5nihlRZJh15uF9oUZC6c7zRme3G3FJyChCQzDXfS5hx6Fh8ON7Xbx8sOGksUhg1WGakwRTvOiOoAx+ije+j71bI6aK81MBwBj4vJosutTIEknBjdU0zUXQZyoON85nxyzwtBlh6WohR9x7V4kbUXBOMHNMxXIuPlZ5zXsSEWmAJjHJD+nQRwH3eosajkjo8CZYMgl1QwU3YT8wQrJR0RGTz1gaOuJYCgoGXH1R3iAxP8EvVfzuxRotWVpUgPvKFsIQmrtV11wT9ryhMW15LpF9TBZBtxhtrTsQiwXUu0lQSQIDAQABo4IBkjCCAY4wDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRbMFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAiBgNVHREEGzAZgRdib2JyZWdvbkBsYWVjb25vbWljYS5wZTBGBgNVHSAEPzA9MDsGDSsGAQQBg5d3AAEAAwEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9sbGFtYS5wZS9yZXBvc2l0b3J5LzAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5sbGFtYS5wZS9sbGFtYXBlc3RhbmRhcmRjYS5jcmwwHQYDVR0OBBYEFI0cG7UR9INUgYNt2G87lPqh4J4KMA4GA1UdDwEB/wQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAQEAOItF7Gigk30YbNUfQ1Y11Zgdj/JZoFY5VENZ2kXezfyFvYP2A4OrpclKpn3/Hak030aNWttpM0EDy8g1xzML0TUDONWh4OjZVo2nwNlIV0VucZx8h47Ws+/w3QWdY96sE5nogQkqYEdcy0elfV40x2kv5zwKgAu/PqpZFUlyNj2qJD6EXuqLK4ydsu+62BzfN1CPC8VUIXF/QmffdeN8ejsE0YakO5sHsA00B4MFGNEPZBijq28P/Wu1xmcsOP8PbMrfuQT0jxX2gHhCLf6iGaXw1VDvHCMyA4CtZQY7lPEZY87XRf+pwbuaEj3rc9Wi7x/kTeHZwXU1V43yzhnAxg== + + +2.1 +2.0 +F001-0070705 +2026-06-30 +09:26:01 +01 +MIL TRESCIENTOS CUARENTA Y OCHO CON 50/100 SOLESOperación sujeta a detracciónPEN +1 + IDSignCF + + + 20538637280 + + + + + + + + #SignatureSP + + + + + + + 20538637280 + + + + + + + + 150124 + 0000 + - + + + + + + + + + PE + + + + + + + + 20100029741 + + + + + + + Detraccion + 001 + + 00-052-005434 + + + Detraccion + 027 + 4.00 + 54.00 + +FormaPago +Credito +1294.50 + +FormaPago +Cuota001 +1294.50 +2026-07-10 + + 205.70 + + 1142.80 + 205.70 + + S + + 1000 + IGV + VAT + + + + + 1142.80 + 1348.50 + 1348.50 + +1 +1.000 +1142.80 + + + 1348.50000 + 01 + + + +205.70 + + 1142.80 + 205.70 + + S + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + + + 0902-010001 + + + 44103000 + + + + 1142.7966000 + + + \ No newline at end of file diff --git a/tests/correos_prueba/023_correo/pdf_resultado_023.json b/tests/correos_prueba/023_correo/pdf_resultado_023.json new file mode 100644 index 0000000..607edc0 --- /dev/null +++ b/tests/correos_prueba/023_correo/pdf_resultado_023.json @@ -0,0 +1,39 @@ +[ + { + "ruc_emisor": "20538637280", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "30/06/2026", + "tipo": "01", + "serie": "F001", + "numero": "70705", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": "1348.50", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": "4.00", + "monto_detraccion": "54.00", + "lineas": [ + { + "descripcion": "0902-010001 UNDSERVICIO DE TRANSPORTE ND 1,142.79 870 BLS DE CEMENTO X 1.8116 P. PARTIDA AV ATOCONGO 1860 VMT P. LLEGADA MZ CH1 LOTE 04 A.H. OLOF PALME CHILCA-CAÑETE-LIMA SEGUN GRT EG03-1477 GRR T001-131386 PLACA BJY- 903/ AXJ-987 VALOR REFERENCIAL S/1576.09 CONFIGURACION VEHICULAR T 3S3 CARGA TN 36.98 REGISTRO MTC 1533890 CNG SON :MIL TRESCIENTOS CUARENTA Y OCHO CON 50/100 SOLES Total Gravado S/: 1,142.80", + "cantidad": "1.00", + "precio_unitario": "0.00", + "total_linea": "1142.79", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131386" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1477" + } + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/023_correo/20538637280-01-F001-70705.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/023_correo/xml_resultado_023.json b/tests/correos_prueba/023_correo/xml_resultado_023.json new file mode 100644 index 0000000..8e78d4a --- /dev/null +++ b/tests/correos_prueba/023_correo/xml_resultado_023.json @@ -0,0 +1,64 @@ +[ + { + "ruc_emisor": "20538637280", + "razon_social_emisor": "INVERSIONES LA ECONOMICA A & E S.A.C.", + "fecha_emision": "2026-06-30", + "tipo": "01", + "serie": "F001", + "numero": "70705", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1348.5, + "documentos_referencia": [ + { + "tipo": "31", + "serie": "EG03", + "numero": "1477" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "131386" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 54.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE 870 BLS DE CEMENTO X 1.8116 /P. PARTIDA AV ATOCONGO 1860 VMT /P. LLEGADA MZ CH1 LOTE 04 A.H. OLOF PALME /CHILCA-CAÑETE-LIMA /SEGUN GRT EG03-1477 GRR T001-131386 /PLACA BJY- 903/ AXJ-987 /VALOR REFERENCIAL S/1576.09 /CONFIGURACION VEHICULAR T 3S3 CARGA TN 36.98 /REGISTRO MTC 1533890 CNG /", + "cantidad": 1.0, + "precio_unitario": 1348.5, + "total_linea": 1142.8, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131386" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1477" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/023_correo/20538637280-01-F001-70705.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/024_correo/20537929520-01-F002-486.pdf b/tests/correos_prueba/024_correo/20537929520-01-F002-486.pdf new file mode 100644 index 0000000..a94a0f5 Binary files /dev/null and b/tests/correos_prueba/024_correo/20537929520-01-F002-486.pdf differ diff --git a/tests/correos_prueba/024_correo/pdf_resultado_024.json b/tests/correos_prueba/024_correo/pdf_resultado_024.json new file mode 100644 index 0000000..5f8b5db --- /dev/null +++ b/tests/correos_prueba/024_correo/pdf_resultado_024.json @@ -0,0 +1,20 @@ +[ + { + "ruc_emisor": "20537929520", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. Número: F002", + "fecha_emision": "12/06/2026", + "tipo": "01", + "serie": "F002", + "numero": "486", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. Número: F002", + "total_factura": "747.50", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/024_correo/20537929520-01-F002-486.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/025_correo/20537929520-01-F002-488.pdf b/tests/correos_prueba/025_correo/20537929520-01-F002-488.pdf new file mode 100644 index 0000000..28f1644 Binary files /dev/null and b/tests/correos_prueba/025_correo/20537929520-01-F002-488.pdf differ diff --git a/tests/correos_prueba/025_correo/pdf_resultado_025.json b/tests/correos_prueba/025_correo/pdf_resultado_025.json new file mode 100644 index 0000000..8aa6996 --- /dev/null +++ b/tests/correos_prueba/025_correo/pdf_resultado_025.json @@ -0,0 +1,20 @@ +[ + { + "ruc_emisor": "20537929520", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. Número: F002", + "fecha_emision": "12/06/2026", + "tipo": "01", + "serie": "F002", + "numero": "488", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. Número: F002", + "total_factura": "747.50", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/025_correo/20537929520-01-F002-488.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/026_correo/20537929520-01-F002-486.pdf b/tests/correos_prueba/026_correo/20537929520-01-F002-486.pdf new file mode 100644 index 0000000..a94a0f5 Binary files /dev/null and b/tests/correos_prueba/026_correo/20537929520-01-F002-486.pdf differ diff --git a/tests/correos_prueba/026_correo/pdf_resultado_026.json b/tests/correos_prueba/026_correo/pdf_resultado_026.json new file mode 100644 index 0000000..858e3e7 --- /dev/null +++ b/tests/correos_prueba/026_correo/pdf_resultado_026.json @@ -0,0 +1,20 @@ +[ + { + "ruc_emisor": "20537929520", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. Número: F002", + "fecha_emision": "12/06/2026", + "tipo": "01", + "serie": "F002", + "numero": "486", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. Número: F002", + "total_factura": "747.50", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/026_correo/20537929520-01-F002-486.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/027_correo/20537929520-01-F002-486.pdf b/tests/correos_prueba/027_correo/20537929520-01-F002-486.pdf new file mode 100644 index 0000000..a94a0f5 Binary files /dev/null and b/tests/correos_prueba/027_correo/20537929520-01-F002-486.pdf differ diff --git a/tests/correos_prueba/027_correo/pdf_resultado_027.json b/tests/correos_prueba/027_correo/pdf_resultado_027.json new file mode 100644 index 0000000..146fce9 --- /dev/null +++ b/tests/correos_prueba/027_correo/pdf_resultado_027.json @@ -0,0 +1,20 @@ +[ + { + "ruc_emisor": "20537929520", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. Número: F002", + "fecha_emision": "12/06/2026", + "tipo": "01", + "serie": "F002", + "numero": "486", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. Número: F002", + "total_factura": "747.50", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/027_correo/20537929520-01-F002-486.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/028_correo/20537929520-01-F002-486.pdf b/tests/correos_prueba/028_correo/20537929520-01-F002-486.pdf new file mode 100644 index 0000000..a94a0f5 Binary files /dev/null and b/tests/correos_prueba/028_correo/20537929520-01-F002-486.pdf differ diff --git a/tests/correos_prueba/028_correo/20537929520-01-F002-486.xml b/tests/correos_prueba/028_correo/20537929520-01-F002-486.xml new file mode 100644 index 0000000..b781261 --- /dev/null +++ b/tests/correos_prueba/028_correo/20537929520-01-F002-486.xml @@ -0,0 +1,144 @@ + + + + + + + dIuY02p/WSSKIQCYoHEfw9pHruA=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 + + + 2.1 + 2.0 + F002-486 + 2026-06-12 + 19:47:3801Operación sujeta a detracciónPEN + GRRE: T001-127773 / GRET :EG03-11 + 09 + + 20537929520 + + + 20537929520 + + + + + + + + 20537929520 + + + + + + + 20537929520 + + + + + + + + 150140 + 0000 + Lima + Lima + Santiago de Surco + + MZA. E LOTE. 9 COO. LA ESPERANZA (MONTERRICO-ALT CDRA 3 PISTA NUEVA) LIMA - LIMA - SANTIAGO DE SURCO + + + PE + + + + + + + + + 20100029741 + + + + + + + Detraccion + 001 + + 00-093-006097 + + + FormaPago + Credito + 717.50 + + FormaPago + Cuota001 + 717.50 + 2026-06-26 + + Detraccion + 027 + 4 + 30 + + 114.03 + 633.47 + 114.03 + + + 1000 + IGV + VAT + + + + 633.47 + 747.50 + 0.00 + 0.00 + 0.00 + 747.50 + + 1 + 1.00 + 633.47 + + + 747.5 + 01 + + + 114.03 + + 633.47 + 114.03 + + 18 + 10 + + 1000 + IGV + VAT + + + + + + + C00-159 + + + - + + + + 633.474576 + + + diff --git a/tests/correos_prueba/028_correo/pdf_resultado_028.json b/tests/correos_prueba/028_correo/pdf_resultado_028.json new file mode 100644 index 0000000..bf2a321 --- /dev/null +++ b/tests/correos_prueba/028_correo/pdf_resultado_028.json @@ -0,0 +1,20 @@ +[ + { + "ruc_emisor": "20537929520", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. Número: F002", + "fecha_emision": "12/06/2026", + "tipo": "01", + "serie": "F002", + "numero": "486", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. Número: F002", + "total_factura": "747.50", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/028_correo/20537929520-01-F002-486.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/028_correo/xml_resultado_028.json b/tests/correos_prueba/028_correo/xml_resultado_028.json new file mode 100644 index 0000000..af13ed5 --- /dev/null +++ b/tests/correos_prueba/028_correo/xml_resultado_028.json @@ -0,0 +1,55 @@ +[ + { + "ruc_emisor": "20537929520", + "razon_social_emisor": "FERRETERIA Y MATERIALES", + "fecha_emision": "2026-06-12", + "tipo": "01", + "serie": "F002", + "numero": "486", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 747.5, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "127773" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 30.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO TRANSPORTE : 650 BOLSAS DE CEMENTO/CARGA:27.625Tn/ Operación sujeta a spot código: 027 - 4% - S/.30 / Valor referencial 747.50/ C. VEHC:T2S3 /C.INSC: 150312420 /MTC 1546095 CNG/ PLACAS:B1L-940/A5I-978", + "cantidad": 1.0, + "precio_unitario": 747.5, + "total_linea": 633.47, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "127773" + } + ], + "guia_transportista": null + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/028_correo/20537929520-01-F002-486.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/029_correo/20261374898-01-FF05-100595.pdf b/tests/correos_prueba/029_correo/20261374898-01-FF05-100595.pdf new file mode 100644 index 0000000..b7e2a9b Binary files /dev/null and b/tests/correos_prueba/029_correo/20261374898-01-FF05-100595.pdf differ diff --git a/tests/correos_prueba/029_correo/20261374898-01-FF05-100595.xml b/tests/correos_prueba/029_correo/20261374898-01-FF05-100595.xml new file mode 100644 index 0000000..40bfa53 --- /dev/null +++ b/tests/correos_prueba/029_correo/20261374898-01-FF05-100595.xml @@ -0,0 +1,994 @@ + + + + zGkSPWeCj785eE+jxHzlbHtcZk8=DQPM2A+CrvHzAday6h3G8smr2vSJBal4FtaYmR7heQJXuEtaUcu6s8RGTjO3CGE8kVqLQAdPdS4J +FxZ3n/x3dYJFW8epiJWByHxWxQp/MQn6RGbYOzQLC3TnaZV5GRgNkksGwKAUkuHrMhxs1/iSigNS +FxXfgCl4JlqNcN2QM6cI0lB2HCQ426xdDpRiFneeWi2cJpXUynmwGF5MVO9fk/0LTPu4CDFeWFaC +Ar9kQx7xpnDWSd4l1oYu/H0h1WbdxdThwxJZwixV/GV34hajhQhiMoK1lLyk9ZqfHe44TZPnJilL +Kep8PDZ81SzIvB/i9f2VK9qUK49n1HesgB9BbQ==2.5.4.13=#0c2a436572746966696361646f207061726120466163747572616369c3b36e20456c65637472c3b36e696361,1.3.6.1.4.1.47286.30.2=#0c03525543,1.3.6.1.4.1.47286.30.3=#0c0b3230323631333734383938,1.3.6.1.4.1.47286.30.4=#0c03444e49,1.2.840.113549.1.9.1=#16156c6f7370696e6f7340696e647573666572722e7065,CN=WALTER EDUARDO ALMANZA VARGAS,2.5.4.5=#13083036313936323939,2.5.4.42=#0c0e57414c544552204544554152444f,2.5.4.4=#0c0e414c4d414e5a4120564152474153,2.5.4.12=#0c11544954554c4152202d20474552454e5445,OU=ADMINISTRACION,OU=20261374898,O=INDUSFERR EMPRESA INDIVIDUAL DE RESPONSABILIDAD LIMITADA,L=LIMA,C=PEMIIImTCCBoGgAwIBAgIIPxZafdPW2HswDQYJKoZIhvcNAQELBQAwgbgxCzAJBgNVBAYTAkVTMUQw +QgYDVQQHDDtCYXJjZWxvbmEgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LnVhbmF0YWNhLmNv +bS9hZGRyZXNzKTEWMBQGA1UECgwNVUFOQVRBQ0EgUy5BLjEVMBMGA1UECwwMVFNQLVVBTkFUQUNB +MRowGAYDVQQDDBFVQU5BVEFDQSBDQTEgMjAxNjEYMBYGA1UEYQwPVkFURVMtQTY2NzIxNDk5MB4X +DTI1MTEyMDE0NDkwMFoXDTI4MTExOTE0NDkwMFowggG5MQswCQYDVQQGEwJQRTENMAsGA1UEBwwE +TElNQTFBMD8GA1UECgw4SU5EVVNGRVJSIEVNUFJFU0EgSU5ESVZJRFVBTCBERSBSRVNQT05TQUJJ +TElEQUQgTElNSVRBREExFDASBgNVBAsMCzIwMjYxMzc0ODk4MRcwFQYDVQQLDA5BRE1JTklTVFJB +Q0lPTjEaMBgGA1UEDAwRVElUVUxBUiAtIEdFUkVOVEUxFzAVBgNVBAQMDkFMTUFOWkEgVkFSR0FT +MRcwFQYDVQQqDA5XQUxURVIgRURVQVJETzERMA8GA1UEBRMIMDYxOTYyOTkxJjAkBgNVBAMMHVdB +TFRFUiBFRFVBUkRPIEFMTUFOWkEgVkFSR0FTMSQwIgYJKoZIhvcNAQkBFhVsb3NwaW5vc0BpbmR1 +c2ZlcnIucGUxEzARBgorBgEEAYLxNh4EDANETkkxGzAZBgorBgEEAYLxNh4DDAsyMDI2MTM3NDg5 +ODETMBEGCisGAQQBgvE2HgIMA1JVQzEzMDEGA1UEDQwqQ2VydGlmaWNhZG8gcGFyYSBGYWN0dXJh +Y2nDs24gRWxlY3Ryw7NuaWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqve/s0UH +eg3o8PIcVzStx7Q/4o7o8LNUutQ0lQC78g3sJ5whnCg0JzSihlEl/b4FjwL+HP0ReIdyJS3AfkvV +9FfUSKf16iNe2cTI7YEm5E7nkiIfm4RNfcH/cfEQzCedmbuGxLl7FDryDMYcKr02UlbhEjthmkcV +FBoyhd5EarKhoevd8Wg6XdUBFOpkI5l6/3cJ6nhgcpnag2jHvGrsWauGBB+GPNXcC97x28iRTFgv +Hmeb4NbYF37b/eET1dzgt5lK15A+zFmpF1qyLVeNb8uaWBhMkYcGghy9oBv3Gk47TF5haTy3TaJF +93vLfhLhwaeb/HXvLIbKiX4XTUtB8wIDAQABo4ICoTCCAp0wgdYGCCsGAQUFBwEBBIHJMIHGMFQG +CCsGAQUFBzAChkhodHRwOi8vd3d3LnVhbmF0YWNhLmNvbS9wdWJsaWMvZG93bmxvYWQvdHNwX2Nl +cnRpZmljYXRlcy90cnVzdGVkUm9vdC5wN2MwNgYIKwYBBQUHMAGGKmh0dHA6Ly9vY3NwMS51YW5h +dGFjYS5jb20vcHVibGljL3BraS9vY3NwLzA2BggrBgEFBQcwAYYqaHR0cDovL29jc3AyLnVhbmF0 +YWNhLmNvbS9wdWJsaWMvcGtpL29jc3AvMB0GA1UdDgQWBBTeZx85VGHOnjXWGr7f+TyGNhMYzjAM +BgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFC1x77Bjf/X94IMiRH9EEDCBT03lMIGQBgNVHSAEgYgw +gYUwgYIGDCsGAQQBgvE2AgICAjByMDYGCCsGAQUFBwIBFipodHRwOi8vd3d3LnVhbmF0YWNhLmNv +bS9wdWJsaWMvcGtpL2RwYy1wZS8wOAYIKwYBBQUHAgIwLAwqQ2VydGlmaWNhZG8gcGFyYSBGYWN0 +dXJhY2nDs24gRWxlY3Ryw7NuaWNhMIGPBgNVHR8EgYcwgYQwQKA+oDyGOmh0dHA6Ly9jcmwxLnVh +bmF0YWNhLmNvbS9wdWJsaWMvcGtpL2NybC9DQTFzdWJvcmRpbmFkYS5jcmwwQKA+oDyGOmh0dHA6 +Ly9jcmwyLnVhbmF0YWNhLmNvbS9wdWJsaWMvcGtpL2NybC9DQTFzdWJvcmRpbmFkYS5jcmwwDgYD +VR0PAQH/BAQDAgbAMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDAgBgNVHREEGTAXgRVs +b3NwaW5vc0BpbmR1c2ZlcnIucGUwDQYJKoZIhvcNAQELBQADggIBAGsG27BxbnS5p5xLs4t/pfrc +8RCWhIpTLAymTnRLrrkbshAx36bchd0vUctaum6UiD3RqWI/kPERdmvFkUZBoDN/2cnQTXWaabE7 +QuhHjsznTLlwsRK92QcvmxbusOAph7n9Sm6o7R72MRatOZeRGBEeS/LUutKMTUU6/R+vn/oa7pss +wrJeTv2abLyAvHQuqnOCN7BKD93t+iPY63EHEa7ijbalRna2qHLvxSl/PGAvXsHhlY/mZvccojSo +9jwmmZhpaB859uCOp8Mv9pua4KJlpWfkCqw9pUlldLBQgkkNxzBKsaF8AXAgnTZnaXmJ+Hd/k2ck +gIa6vmesyF7lpg0saij7fIudvILOjzDUlvI/gaTE6ZJLkYdbsrNBEXHDV/p7+53/KGzZmSrAgSZb +ly0U4RiA/QZ0BM1ghqzwal2FweB/6uet50e4EIqNuo3k+XmPFPzOvaQmaDPYJNsdFWFoKnt49OFE +hM2RHLOWZhWTQg8/yN7LRtI1uFPu4OpyxCMnYhi+uyJyaqR26FgvcYn4cWi4G0SW1ouqOYVza8hK +KICC6N/uOlS/YEZOpoA4UmYAiL67NgYjYju08HG6t3qRJDvO3ysUIA/8dr17ijYF6jfpCoLbDjUt +05UMg7SMvJhYmy+CBYxecyoeJHvQ0prxtqbA4QF2q9pEEcDhfeEI + + + 2.1 + 2.0 + FF05-0100595 + 2026-06-09 + 08:56:59 + 01 + DIECISEIS MIL NOVECIENTOS OCHENTA Y SEIS Y 06/100 SOLES + OPERACION SUJETA A DETRACCION + PEN + 10 + + 20261374898 + + + 20261374898 + + + INDUSFERR EIRL + + + + + 20261374898 + + + + + 20261374898 + 6 + + + 20261374898 + + + INDUSFERR EIRL + + + INDUSFERR EIRL + + 0000 + + + + + 1515956CNG + + + + + + 20100029741 + 6 + + + 20100029741 + + + A. BERIO Y CIA S.A.C + + + + + Detraccion + 001 + + 00000855529 + + + + Detraccion + 027 + 4.00 + 1076.00 + + + FormaPago + Credito + 15910.06 + + + FormaPago + Cuota001 + 15910.06 + 2026-06-24 + + + 2591.11 + + 14394.95 + 2591.11 + + S + + 1000 + IGV + VAT + + + + + + 14394.95 + 16986.06 + 16986.06 + + + 1 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 2 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 3 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 4 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 5 + 1.0000000000 + 1452.20 + + + 1713.6000000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 261.40 + + 1452.20 + 261.40 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1452.2033898305 + + + + 6 + 1.0000000000 + 1452.20 + + + 1713.6000000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 261.40 + + 1452.20 + 261.40 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1452.2033898305 + + + + 7 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 8 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + + 9 + 1.0000000000 + 1452.20 + + + 1713.6000000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 261.40 + + 1452.20 + 261.40 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1452.2033898305 + + + + 10 + 1.0000000000 + 1434.05 + + + 1692.1800000000 + 01 + + + + + + 150143 + + AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO + + + + + TRANSPORTE DE BOLSAS DE CEMENTO + + 150501 + + MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CANETE + + + + + 01 + 26897.97 + + + 02 + 26897.97 + + + 03 + 18604.45 + + + 01 + + 0 + + + T3S3 + true + + + 01 + 337.03 + + + + + + + 258.13 + + 1434.05 + 258.13 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + 1595 + + + + 1434.0508474576 + + + \ No newline at end of file diff --git a/tests/correos_prueba/029_correo/pdf_resultado_029.json b/tests/correos_prueba/029_correo/pdf_resultado_029.json new file mode 100644 index 0000000..d3e265a --- /dev/null +++ b/tests/correos_prueba/029_correo/pdf_resultado_029.json @@ -0,0 +1,197 @@ +[ + { + "ruc_emisor": "20261374898", + "razon_social_emisor": "A. BERIO Y CIA S.A.C Ruc: 20100029741", + "fecha_emision": "09/06/2026", + "tipo": "01", + "serie": "FF05", + "numero": "100595", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C Ruc: 20100029741", + "total_factura": "1.00", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "1076.00", + "lineas": [ + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 SOL GRR T001-128374 GRT 1692.18 EG03-1967]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128374" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [290 SOL GRR T001-128452 GRT 1692.18 EG03-1969 / 500 APU GRR T001-128453 GRT EG03-1969]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128452" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128453" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1969" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 ULTRA GRR T001-128512 GRT 1692.18 EG03-1971]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128512" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 APU GRR T001-128540 GRT 1692.18 EG03-1972]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128540" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [800 SOL GRR T001-128650 GRT 1713.60 EG03-1975]", + "cantidad": "1.00", + "precio_unitario": "1713.60", + "total_linea": "1713.60", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128650" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [200 ULTRA GRR T001-128725 GRT 1713.60 EG03-1978 / 600 SOL GRR T001-128724 GRT EG03-1978]", + "cantidad": "1.00", + "precio_unitario": "1713.60", + "total_linea": "1713.60", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128725" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128724" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1978" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 SOL GRR T001-128681 GRT 1692.18 EG03-1976]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128681" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [246 ULTRA GRR T001-128727 GRT 1692.18 EG03-1977 / 544 SOL GRR T001-128726 GRT EG03-1977]", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128727" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128726" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1977" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [400 SOL GRR T001-128807 GRT 1713.60 EG03-1979 / 400 APU GRR T001-128808 GRT EG03-1979]", + "cantidad": "1.00", + "precio_unitario": "1713.60", + "total_linea": "1713.60", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128807" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128808" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1979" + } + }, + { + "descripcion": "Und. SERVICIO DE TRANSPORTE [790 SOL GRR T001-128910 GRT 1692.18 EG03-1981] P.P: AV ATOCONGO 1860 - VILLA MARIA DEL TRIUNFO P.L: MZ B10 LT 30 URB TERCER MUNDO - SAN VICENTE DE CAÑETE V.R: S/. 26897.97 CARGA TM: 337.03 MTC: 1515956CNG CONF: T3S3", + "cantidad": "1.00", + "precio_unitario": "1692.18", + "total_linea": "1692.18", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128910" + } + ], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/029_correo/20261374898-01-FF05-100595.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/029_correo/xml_resultado_029.json b/tests/correos_prueba/029_correo/xml_resultado_029.json new file mode 100644 index 0000000..e2c01b7 --- /dev/null +++ b/tests/correos_prueba/029_correo/xml_resultado_029.json @@ -0,0 +1,220 @@ +[ + { + "ruc_emisor": "20261374898", + "razon_social_emisor": "INDUSFERR EIRL", + "fecha_emision": "2026-06-09", + "tipo": "01", + "serie": "FF05", + "numero": "100595", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C", + "total_factura": 16986.06, + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 1076.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128374" + } + ], + "guia_transportista": null + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128452" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128453" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1969" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128512" + } + ], + "guia_transportista": null + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128540" + } + ], + "guia_transportista": null + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1713.6, + "total_linea": 1452.2, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128650" + } + ], + "guia_transportista": null + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1713.6, + "total_linea": 1452.2, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128725" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128724" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1978" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128681" + } + ], + "guia_transportista": null + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128727" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128726" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1977" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1713.6, + "total_linea": 1452.2, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128807" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "128808" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1979" + } + }, + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 1692.18, + "total_linea": 1434.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "128910" + } + ], + "guia_transportista": null + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/029_correo/20261374898-01-FF05-100595.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/030_correo/20154645005-01-F002-53359.pdf b/tests/correos_prueba/030_correo/20154645005-01-F002-53359.pdf new file mode 100644 index 0000000..af1cda4 Binary files /dev/null and b/tests/correos_prueba/030_correo/20154645005-01-F002-53359.pdf differ diff --git a/tests/correos_prueba/030_correo/20154645005-01-F002-53359.xml b/tests/correos_prueba/030_correo/20154645005-01-F002-53359.xml new file mode 100644 index 0000000..f57fe94 --- /dev/null +++ b/tests/correos_prueba/030_correo/20154645005-01-F002-53359.xml @@ -0,0 +1,136 @@ + + + + + l2hjhjENbSBH6D7CwHauK1EE6Mk=WxM2Inil9+HSmH23TedTfaYYA1rkPtfpEZWzK2XUahwh0upC8dJ7Lza9E61VeM0YVKNiEDkCDSRc/+Ynz8AxYwm63kCYCrTlx5Ceq9B9LfcUkOFShoCIKuwH3OnH9Ptk3PCwvVN+p+kGh1XG0jo5eF23IjBzlBpxvfprgclGZKIvfvqJhJLJ4M9R/+leQTMgiF/u9x5tK5Vgu44OZWZ6k/9ZPrwjO2mDLPQbwdeqZsHOjkkJe+RDboYW+LLtx/4yDbnGK5YlJIo2qo65xfRpvt7+mZath6tfJgoH4SGetgZV1A+wCgp/8RKC+JKGXV32f2zq5Y0qi4jy04wd4OaJyQ==C=PE, L=LIMA, O=DISTRIBUIDORA SANTA PATRICIA S R L, OU=Validado por Llama.pe ER, OU=FACTURA ELECTRONICA RUC 20154645005, CN=SOFTWARE DE FACTURACION ELECTRONICA, E=dis_patricia@yahoo.com, STREET=AV. TOMAS MARSANO NRO. 4330 URB. LA VIRREYNAMIIFgzCCBGugAwIBAgIIGTcLfd6CAQswDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQxMDE0MTgzNDIxWhcNMjYxMDE0MTgzNDAwWjCCASYxNTAzBgNVBAkMLEFWLiBUT01BUyBNQVJTQU5PIE5STy4gNDMzMCBVUkIuIExBIFZJUlJFWU5BMSUwIwYJKoZIhvcNAQkBFhZkaXNfcGF0cmljaWFAeWFob28uY29tMSwwKgYDVQQDDCNTT0ZUV0FSRSBERSBGQUNUVVJBQ0lPTiBFTEVDVFJPTklDQTEsMCoGA1UECwwjRkFDVFVSQSBFTEVDVFJPTklDQSBSVUMgMjAxNTQ2NDUwMDUxITAfBgNVBAsMGFZhbGlkYWRvIHBvciBMbGFtYS5wZSBFUjErMCkGA1UECgwiRElTVFJJQlVJRE9SQSBTQU5UQSBQQVRSSUNJQSBTIFIgTDENMAsGA1UEBwwETElNQTELMAkGA1UEBhMCUEUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCmsa8aNxkqzWWk19zfoD/cIhArrgjNFx0TeKtdN+/m+6y8ucQDeqbjtnTHEcLjyeGiWNzowP+VLI9EJFOhsQBHjDMUxF33BYdRQw4Ii5u72voovryE8EAIsuHUkrGwnI4q+ZYq3s/MF/dDNr1Fq5gQYcWju0Qcw5uR18+LDZPxc7IDwWEA9UY0Qe4G49GJWLIcoOEf2wpzQ1+YolBS8PNny9H4a9LjG3+XkCdkVL676PjEykMF/aMEQkSNPkkjiHzl+ftiQXuzAMT/1IxvCwfjwzXHqmHM91jeLk5POw0PkqxfFAvYIBzodXMNygBihmkpAeuXgBpH4qo1unqfdETDAgMBAAGjggGRMIIBjTAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFF2IW63rZfv+aKLk2W89V3Ki7yuZMGcGCCsGAQUFBwEBBFswWTA1BggrBgEFBQcwAoYpaHR0cDovL2NydC5sbGFtYS5wZS9sbGFtYXBlc3RhbmRhcmRjYS5jZXIwIAYIKwYBBQUHMAGGFGh0dHA6Ly9vY3NwLmxsYW1hLnBlMCEGA1UdEQQaMBiBFmRpc19wYXRyaWNpYUB5YWhvby5jb20wRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY3JsMB0GA1UdDgQWBBS5UPPPJNJvf5jr4HwdRfcu37ZOWTAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAGXcN3ocVIpJ/GKOQwlnK3vF49BDGRbXmhrB8wg/VekOUQI6Z4AUMlAcLzi+K2rKJLwbf0bw0psOdLT6Gu2X1DP4bxPaVAqePxjY0t4H2QBmm5MZ8jxJIFgYzf53Bhgu7slJk2bRPsGt8ujAX4EjqyjfhVOnzzLk2QOH/beZK+GsaXduRxvnfBDbknYysdFTDq8J1Hn0lWHjYFhb76doEputR9KYkrTHmqFFyeOyJF2+waJkfDPuVVjWTmYlLLZCzKFKxrjWF/paNE2cJm28QcoVUxBi8o4lq9BHhkBnO54tLZRtnptbMnUkAsmXZg8SmoPpaWzAkCISrGAoTIAXm2M= + + + 2.1 + 2.0 + F002-00053359 + 2026-07-03 + 09:13:12 + 01 + DOSCIENTOS Y 94/100 + PEN + + 20154645005 + + + 20154645005 + + + DISTRIBUIDORA SANTA PATRICIA S R L + + + + + #SignatureKG + + + + + + + 20154645005 + + + DISTRIBUIDORA SANTA PATRICIA S R L + + + DISTRIBUIDORA SANTA PATRICIA S R L + + 0000 + LIMA + LIMA + SANTIAGO DE SURCO + + PE + + + + + + + + + 20100029741 + + + A. BERIO Y CIA S.A.C. + + + + + FormaPago + Credito + 200.94 + + + FormaPago + Cuota001 + 200.94 + 2026-07-13 + + + 30.65 + + 170.29 + 30.65 + + S + + 1000 + IGV + VAT + + + + + + 170.29 + 200.94 + 0 + 200.94 + + + 1 + 1 + 170.29 + + + 200.940000 + 01 + + + + 30.65 + + 170.29 + 30.65 + + S + 18 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE + + SE000001 + + + 80141623 + + + + 170.290000 + + + \ No newline at end of file diff --git a/tests/correos_prueba/030_correo/pdf_resultado_030.json b/tests/correos_prueba/030_correo/pdf_resultado_030.json new file mode 100644 index 0000000..facd136 --- /dev/null +++ b/tests/correos_prueba/030_correo/pdf_resultado_030.json @@ -0,0 +1,39 @@ +[ + { + "ruc_emisor": "20154645005", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. MONEDA: SOLES", + "fecha_emision": "03/07/2026", + "tipo": "01", + "serie": "F002", + "numero": "53359", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. MONEDA: SOLES", + "total_factura": "200.94", + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE UND SERVICIO DE TRANSPORTE 150 BL CEMENTO S/ 1.3396 P. PARTIDA : AV. ATOCONGO 1860 LIMA-LIMA-VILLA MARIA DEL TRIUNFO P. LLEGADA : JR.LOMA DE LOS PENSAMIENTOS MZ.W4 LT.7 URB. PROLONG. BENAVIDES -LIMA-LIMA SEGÚN GRR : T001-0131496 SEGÚN GRT : V001-00004308 VALOR REFERENCIAL : S/ 200.94 CONFIG. VEHICULAR : C3 CARGA TM. : 6.375 NO REGISTRO M.T.C. : 1525019 CNG NRO. DE PLACA : A1Y-872", + "cantidad": "1.0000", + "precio_unitario": "0.00", + "total_linea": "200.94", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131496" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "V001", + "numero": "4308" + } + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/030_correo/20154645005-01-F002-53359.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/030_correo/xml_resultado_030.json b/tests/correos_prueba/030_correo/xml_resultado_030.json new file mode 100644 index 0000000..7a13fa3 --- /dev/null +++ b/tests/correos_prueba/030_correo/xml_resultado_030.json @@ -0,0 +1,53 @@ +[ + { + "ruc_emisor": "20154645005", + "razon_social_emisor": "DISTRIBUIDORA SANTA PATRICIA S R L", + "fecha_emision": "2026-07-03", + "tipo": "01", + "serie": "F002", + "numero": "53359", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 200.94, + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 1.0, + "precio_unitario": 200.94, + "total_linea": 170.29, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131496" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "V001", + "numero": "4308" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/030_correo/20154645005-01-F002-53359.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/031_correo/20500864703-01-F002-21184.pdf b/tests/correos_prueba/031_correo/20500864703-01-F002-21184.pdf new file mode 100644 index 0000000..9f78c64 Binary files /dev/null and b/tests/correos_prueba/031_correo/20500864703-01-F002-21184.pdf differ diff --git a/tests/correos_prueba/031_correo/20500864703-01-F002-21184.xml b/tests/correos_prueba/031_correo/20500864703-01-F002-21184.xml new file mode 100644 index 0000000..8bfb896 --- /dev/null +++ b/tests/correos_prueba/031_correo/20500864703-01-F002-21184.xml @@ -0,0 +1,224 @@ + + + + Z6gdRCeS0KZtFV+bNR3gOnhAgrw=KAc/XRVZi869iNSsJUat941GN3JIc5lB64mPtmZJvGmHegjlX6pbPywf78sZRAl09NtlgfIxBXnXy6GBD1gbhvbNpth1VVotee+YU/J6Bldapnh1PvI0dkbhv7tHkiO5R3z7l02ik5sHc/E+ZrTlmJaUrNjCQdBi+QIcfzYCFsoVox6Qzw91yG5/9/3cusJ1UVFMYrcMboOfc8YWmpFJ1I2TriBuEoYW4k1d+IhDrpBL5PSvwEKEeXkUr/0kdZY8wMvlvFGBKb7TD3D44TRkLzB+g2f0C94NGVZc4aHvzKyMSjymSyowMN36N1CZ2QK1tqPQSG3VKRHfxCuLroc+JA==C=PE, L=LIMA, O=THE FACTORY HKA PERU SOCIEDAD ANONIMA CERRADA, OU=Validado por Llama.pe ER, OU=FACTURA ELECTRONICA RUC 20550728762, CN=SOFTWARE DE FACTURACION ELECTRONICA, E=rhuamani@thefactoryhka.com, STREET=JR. TOBAGO NRO. 257 URB. CEDROS DE VILLAMIIFkjCCBHqgAwIBAgIINtWoLsl5h6YwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQwNTA5MjEwMTE2WhcNMjcwNTA5MjEwMTAwWjCCATExMTAvBgNVBAkMKEpSLiBUT0JBR08gTlJPLiAyNTcgVVJCLiBDRURST1MgREUgVklMTEExKTAnBgkqhkiG9w0BCQEWGnJodWFtYW5pQHRoZWZhY3Rvcnloa2EuY29tMSwwKgYDVQQDDCNTT0ZUV0FSRSBERSBGQUNUVVJBQ0lPTiBFTEVDVFJPTklDQTEsMCoGA1UECwwjRkFDVFVSQSBFTEVDVFJPTklDQSBSVUMgMjA1NTA3Mjg3NjIxITAfBgNVBAsMGFZhbGlkYWRvIHBvciBMbGFtYS5wZSBFUjE2MDQGA1UECgwtVEhFIEZBQ1RPUlkgSEtBIFBFUlUgU09DSUVEQUQgQU5PTklNQSBDRVJSQURBMQ0wCwYDVQQHDARMSU1BMQswCQYDVQQGEwJQRTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMJd2vPsbwJyY9Bwk/mrCsU/QUHOb7Jqj2mTsGnP5qkbdUObmK3hTrXzRS6NwUe1nT6VsN/efBOlE1DaBYdwIttOu1jYB/ES1TsPhkykz7AIbZ/sQvYaerJUqi+Y0Xga5W7H+oH0SCWajVcHe0JzP1sRxJQZQzKaj6cenPchxV1mIU7JCpNsbstlc2IWB1ipiZ8SOMXV0tG9LPyjXStOP+hJVEARyXyIqiFfCK8lTobVvHxFbwsEnfM7PzcmyzJrjLHXbVR6139srkzj65QQKYkpw/iC3EhqjUjBi9F+7rcRcpU/T1kUM+Sr5oi5qNAufP0HKKWPJUVTwrwQv0e1YoUCAwEAAaOCAZUwggGRMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUXYhbretl+/5oouTZbz1XcqLvK5kwZwYIKwYBBQUHAQEEWzBZMDUGCCsGAQUFBzAChilodHRwOi8vY3J0LmxsYW1hLnBlL2xsYW1hcGVzdGFuZGFyZGNhLmNlcjAgBggrBgEFBQcwAYYUaHR0cDovL29jc3AubGxhbWEucGUwJQYDVR0RBB4wHIEacmh1YW1hbmlAdGhlZmFjdG9yeWhrYS5jb20wRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY3JsMB0GA1UdDgQWBBRukXU3fFIvxqBWWVLHgv7lUdqKHzAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAHHPp45FldlKcmdYPcMcw8duVbkp7YD85TGHZFGd4Y0miTrZHGC5KNRfqg2IZeMnx0w9/dBmOOd0BYoyBmi8KBNW3rEu6n6wBbj9m6rRmG2oGwJcmmoMzuTmv/pXY0fCuoyzRAZoc7v4Ogj7Csoj5ruPyAcait5o9dgwZUAnLUAB1sgUIUKnqK/9N/yWVLleeX+rH+MBUuephWNnsTVFfHhGhalZdtGFSROjSUjlakvuPdyMaO4VaS1C2YvdYsvXBe3qHuj/uNTG9kV9oPLCYxsL3+apxDi8b89IPUgXW99b9hfwxeUWRK6qpmHgsWUIQ1Aa0RNFMxA41VvpTpv15u8= + + + 2.1 + 2.0 + F002-21184 + 2026-07-06 + 12:38:13 + 01 + PEN + + LlamaSign + + + 20500864703 + + + + + + + + #LlamaSign + + + + + IDSignSP + + + 20500864703 + + + DEPOSITOS Y FERRETERIA NICHAR S.A.C. + + + + + #SignatureSP + + + + + + + 20500864703 + + + + + + + + 0000 + + + + + + + + + + + 20100029741 + + + + + 150143 + LIMA + DEPARTAMENTO LIMA + VILLA MARIA DEL TRIUNFO + + AV. 26 DE NOVIEMBRE 2473 + + + PE + + + + + + + FormaPago + Credito + 267.92 + + + FormaPago + Cuota001 + 267.92 + 2026-07-21 + + + 40.87 + + 227.05 + 40.87 + + + 1000 + IGV + VAT + + + + + 0.00 + 0.00 + + + 2000 + ISC + EXC + + + + + 0 + 0 + + + 9995 + EXP + FRE + + + + + 0 + 0.00 + + + 9996 + GRA + FRE + + + + + 0 + 0 + + + 9997 + EXO + VAT + + + + + 0 + 0 + + + 9998 + INA + FRE + + + + + 0.00 + 0.00 + + + 9999 + OTROS + OTH + + + + + + 227.05 + 267.92 + 0.00 + 0.00 + 267.92 + + + 1 + 200 + 227.05 + + + 1.3396 + 01 + + + + 40.87 + + 227.05 + 40.87 + + 18 + 10 + + 1000 + IGV + VAT + + + + + + + + SER01 + + + 78101802 + + + + 1.1352540000 + + + \ No newline at end of file diff --git a/tests/correos_prueba/031_correo/CDR-20500864703-01-F002-21184.xml b/tests/correos_prueba/031_correo/CDR-20500864703-01-F002-21184.xml new file mode 100644 index 0000000..b0a9715 --- /dev/null +++ b/tests/correos_prueba/031_correo/CDR-20500864703-01-F002-21184.xml @@ -0,0 +1,51 @@ + + + + I+w1dW2M8rn+Qs/+Hi9FOU81KqU=qE6jUjlxxkDk+soWwwLLtgCoVbxiAT4eMV4PMos0lVWNRD1HHAyyTR8xBL9nFzWb2UpCLBk7Vmu/IM/XlFaf7zCUWssGBS+aqn1qzwblfGQHqSY6cN/JQLw/OJ8sKqiL/4DHqSOZHQpw8+0ch461cQhmXGYlEHtBmtf+Ja7LTacd70MvlmPQNClU6GsZqQSiRb0n2b6T2fooxKJWiIRUkRg0EihIfOHgiMf5p+Al1FIW/O4FlUVimNjmGU8YfibEVM0slvDjAyh7Mq21nN6T8OK5Sy2DPknB20kG0dQz0+/a4+tuPCOoDJeW97Ngtr6Orq3E+mEloMauCi0NDTf1fw==System.Security.Cryptography.X509Certificates.X500DistinguishedName5740275299046747460C=PE, L=LIMA, O=THE FACTORY HKA PERU SOCIEDAD ANONIMA CERRADA, OU=Validado por Llama.pe ER, OU=20550728762, CN=20550728762, E=rhuamani@thefactoryhka.com, STREET=JR. TOBAGO NRO. 257 URB. CEDROS DE VILLAMIIFYjCCBEqgAwIBAgIIT6mN+KChbUQwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQwNjEzMjAzMDQ5WhcNMjcwNjEzMjAzMDAwWjCCAQExMTAvBgNVBAkMKEpSLiBUT0JBR08gTlJPLiAyNTcgVVJCLiBDRURST1MgREUgVklMTEExKTAnBgkqhkiG9w0BCQEWGnJodWFtYW5pQHRoZWZhY3Rvcnloa2EuY29tMRQwEgYDVQQDDAsyMDU1MDcyODc2MjEUMBIGA1UECwwLMjA1NTA3Mjg3NjIxITAfBgNVBAsMGFZhbGlkYWRvIHBvciBMbGFtYS5wZSBFUjE2MDQGA1UECgwtVEhFIEZBQ1RPUlkgSEtBIFBFUlUgU09DSUVEQUQgQU5PTklNQSBDRVJSQURBMQ0wCwYDVQQHDARMSU1BMQswCQYDVQQGEwJQRTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALarDRoOpB5SXk1XAOSsS2HHLmw5sXEQYbaRVKyWInMSW4aczw7LSnRV+jF6iSd8HvMdQj/BvEQdwo0EmAs32kuNkFWbYUYRUvPr2JbR202AP1kpmo/XpeeHCyVUPfUgdFLKnvSa5kCEYCpipNNi4Mye3ryzxgi7E6jMTqvYjv7SyRZCLSz3dU8Hxh7bqTa6frsUoaMpB0EqCVCVGGjVRnNzhhWu7pLThZuOWLHPYLWAxyCyn06Q4JJ6zIuBc5jteBwHZ6G1r8Y6QJN+jBbCakY+3d0g8BMb+yeMmdse6Aqa9CF4UYuUC3IeaooPCEl+SSWehNuPmVDkG8M81DL3dl8CAwEAAaOCAZUwggGRMAwGA1UdEwEB/wQCMAAwHwYDVR0jBBgwFoAUXYhbretl+/5oouTZbz1XcqLvK5kwZwYIKwYBBQUHAQEEWzBZMDUGCCsGAQUFBzAChilodHRwOi8vY3J0LmxsYW1hLnBlL2xsYW1hcGVzdGFuZGFyZGNhLmNlcjAgBggrBgEFBQcwAYYUaHR0cDovL29jc3AubGxhbWEucGUwJQYDVR0RBB4wHIEacmh1YW1hbmlAdGhlZmFjdG9yeWhrYS5jb20wRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY3JsMB0GA1UdDgQWBBQzzDwWX2tL1xLpcXxX55XsvZcQ+DAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAChoGdk54ss+32TapubQN4Il1tSBAI6NLeWHOz2ahBf0TgfQEGA64zs2iYYYu8DTxYoa/ycVCqN8WIOENbuEUcWaor9M/R9Ja/34mwERSrhG+up+Lxc8QrwUCDfac/nbfAOZI0fQmxrMxcRxy2dnY1ZtSnDeXR1OiJCiJln9+9bVnzZerB5oeOu6EgmHgREHdGlloFk+VzgGQP4dww3zOLDISSUQ11QhmYowuuTtA4OcsjDmc93TVGWbErQTklXpbQKgN+xwwJEz2HZhH1dF5QHvCIcuHEspSyqa5+eVqfzs+5CFOH/NFF5tpzGVnh0qynacCQPcnjRwHFRWMGuNQzk= + + + 2.1 + 1.0 + 43d77f4a-d277-4fb4-aca9-d0fd9272adf0 + 2026-07-06 + 12:42:28 + 2026-07-06 + 12:42:30 + + + 20550728762 + + + + + 20550728762 + + + + + 0 + La FACTURA numero 20500864703-01-F002-21184, ha sido aceptada + + + F002-21184 + 2026-07-06 + 12:38:13 + 01 + + + Z6gdRCeS0KZtFV+bNR3gOnhAgrw= + + + + + + 20500864703 + + + + + 20100029741 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/031_correo/pdf_resultado_031.json b/tests/correos_prueba/031_correo/pdf_resultado_031.json new file mode 100644 index 0000000..af1b958 --- /dev/null +++ b/tests/correos_prueba/031_correo/pdf_resultado_031.json @@ -0,0 +1,39 @@ +[ + { + "ruc_emisor": "20500864703", + "razon_social_emisor": "/ Usuario", + "fecha_emision": null, + "tipo": "01", + "serie": "F002", + "numero": "21184", + "ruc_receptor": "20100029741", + "razon_social_receptor": "/ Usuario", + "total_factura": "267.92", + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "lineas": [ + { + "descripcion": "NIU 78101802 SERVICIO DE TRANSPORTE S/ S/ Información adicional Total impuestos SERVICIO DE TRANSPORTE 200 BLS CEMENTO, Total IGV 18%: S/ 40.87 S/G.R.R: T001-131440 S/G.R.T: EG04-4640, PTO. Totales del documento PARTIDA: AV ATOCONGO 1860- V.M.T,", + "cantidad": "200.000", + "precio_unitario": "1.135254", + "total_linea": "227.05", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131440" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG04", + "numero": "4640" + } + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/031_correo/20500864703-01-F002-21184.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/031_correo/xml_resultado_031.json b/tests/correos_prueba/031_correo/xml_resultado_031.json new file mode 100644 index 0000000..673f709 --- /dev/null +++ b/tests/correos_prueba/031_correo/xml_resultado_031.json @@ -0,0 +1,53 @@ +[ + { + "ruc_emisor": "20500864703", + "razon_social_emisor": "DEPOSITOS Y FERRETERIA NICHAR S.A.C.", + "fecha_emision": "2026-07-06", + "tipo": "01", + "serie": "F002", + "numero": "21184", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA. S.A.C", + "total_factura": 267.92, + "documentos_referencia": [], + "tiene_detraccion": false, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": null, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE", + "cantidad": 200.0, + "precio_unitario": 1.3396, + "total_linea": 227.05, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131440" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG04", + "numero": "4640" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/031_correo/20500864703-01-F002-21184.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/032_correo/20604034303-01-F002-3210.pdf b/tests/correos_prueba/032_correo/20604034303-01-F002-3210.pdf new file mode 100644 index 0000000..6fe0334 Binary files /dev/null and b/tests/correos_prueba/032_correo/20604034303-01-F002-3210.pdf differ diff --git a/tests/correos_prueba/032_correo/20604034303-01-F002-3210.xml b/tests/correos_prueba/032_correo/20604034303-01-F002-3210.xml new file mode 100644 index 0000000..69c13af --- /dev/null +++ b/tests/correos_prueba/032_correo/20604034303-01-F002-3210.xml @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + SUHexIBupAw0fD3KcfJ3k6GAHF4pw5OSyqX2h2Xetcs= + + + ONcDG5jwmFvZTSaojkiXz7NyfQRce++Nzp7MofsdcjHacPyl7t8BDaPL/VApia3yXj0b1QlUIRXANtXs6qXSzLbTFDVeR6vYb3gb8zNRxitoQdRkJNrfiitTydWCR02AYFOm5OB25wyoelSEFFNBrn/PZau+GNa3XdlLadZS/lrbDbXpm/wXa7LRgfRVXOtXtcHzY+9abFixF6tQyK+TM/+cJZUu7KaLToSozPleRSbjlbPMWGctcord9pPV7wpMs7C2fVDgL9yh9Y/0tYa6lHmBKC3zwxeVGyaSNCEn67e5g3Jb0uRaASl78UR+mxzIQSrOcrHWCvtyfuAY8RkeEg== + + + street=CAL. LIBERTAD NRO. 176 INT. 211,emailAddress=sistemas@nubefact.com,CN=NUBEFACT WEB,OU=20600695771,OU=Validado por Llama.pe ER,O=NUBEFACT S.A.,L=LIMA,C=PE + MIIFLzCCBBegAwIBAgIIeqYdzau699YwDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjYwMzA1MTgzODI1WhcNMjkwMzA0MTgzODAwWjCB1DEoMCYGA1UECQwfQ0FMLiBMSUJFUlRBRCBOUk8uIDE3NiBJTlQuIDIxMTEkMCIGCSqGSIb3DQEJARYVc2lzdGVtYXNAbnViZWZhY3QuY29tMRUwEwYDVQQDDAxOVUJFRkFDVCBXRUIxFDASBgNVBAsMCzIwNjAwNjk1NzcxMSEwHwYDVQQLDBhWYWxpZGFkbyBwb3IgTGxhbWEucGUgRVIxFjAUBgNVBAoMDU5VQkVGQUNUIFMuQS4xDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA3PnivJidKntheakfk5pA2SOXyG66a1FQtSW1BtXMpN2C953XT9iJLbR9kD/2hUsTs08drxdkSeKJwyMvUL41VpGX54PkSBXg1nqwbNN9dwj+zSd1PsFcmLtpEizyU4r6B8PSo07cdAzisAhnt3F1X/LcpcuJcUT3x88RJt18vSbh903Ihvp6BV7BCkJk/MJSRKeJnVMYJPtrgLvTxH03DUs6mIozR673WmYZAdzXPo1Kv0JpfrP/XTcaZECe2VQ+l7OEQS/s2bSjL7K8VgvTW+PtkCGZu9q6UUYsr3F1UL7TVad9zEFgL7rMQvELT7r+YWCP4AwVfTrXvqAoMednKQIDAQABo4IBkDCCAYwwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRbMFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAgBgNVHREEGTAXgRVzaXN0ZW1hc0BudWJlZmFjdC5jb20wRgYDVR0gBD8wPTA7Bg0rBgEEAYOXdwABAAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vbGxhbWEucGUvcmVwb3NpdG9yeS8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDoGA1UdHwQzMDEwL6AtoCuGKWh0dHA6Ly9jcmwubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY3JsMB0GA1UdDgQWBBSZK2idJe/W7w+eTwXNhJ/o8XK6pjAOBgNVHQ8BAf8EBAMCBsAwDQYJKoZIhvcNAQELBQADggEBAIEF6UtQGQ+yLKVVRCdiogInGUGv7IECqg9gMQNZBZ2ZP9SgQOOTFIsDI0psbS3D6u/wJ2vgf78a287ysqJUcGqhW1+plQh4toN3v8bCqwXACTIYW6bUU5bOab0QY//xrLkNZ8Iwa/M/LZstU3dgZjIwXtcMD+ANAIynN4rcNNgeVja8lnbYU3WQ1u9UIjMxtSp1rLf4mwTGSeLI1uuAWgWczkMaFjMF1RJhX9VlKX8qDC+pr/jiu8LTHt8VDeVvDwpZ4qVbI/8qq+VUyXjBffcDdeY5qb75nnlhEMHLey3t/GcEo80nmtjTKmBdroVkooIat7PcSvfQQ+kzrSnV2as= + + + + + + + + 2.1 + 2.0 + F002-3210 + 2026-07-02 + 14:59:06 + 2026-07-08 + 01 + MIL SETECIENTOS SESENTA Y CINCO CON 80/100 SOLES + Operacion sujeta a detraccion + PEN + + T001-0131541 + 09 + + + EG03-1859 + 31 + + + 20604034303 + WWW.NUBEFACT.COM + + + 20604034303 + + + AQUIFAST LOGISTIC S.A.C. + + + + + 20604034303 + + + + + + + 20604034303 + + + AQUIFAST LOGISTIC S.A.C. + + + AQUIFAST LOGISTIC S.A.C. + + 150135 + 0000 + LIMA + LIMA + SAN MARTIN DE PORRES + + AV. SAN FRANCISCO DE CAYRAN MZA. H1 LOTE. 13 ASC. SAN FRANCISCO DE CAYRAN + + + PE + + + + + + + + + 20100029741 + + + A. BERIO Y CIA S.A.C. + + + AV. 26 DE NOVIEMBRE NRO. 2473 A.H. VIRGEN DE LOURDES (PARADERO 14 NUEVA ESPERANZA - PISO 2) + + + + + + + Detraccion + 001 + + 000-63129380 + + + + Detraccion + 027 + 4.00 + 114.00 + + + FormaPago + Credito + 1651.80 + + + FormaPago + Cuota001 + 1651.80 + 2026-07-08 + + + 269.36 + + 1496.44 + 269.36 + + + 1000 + IGV + VAT + + + + + + 1496.44 + 1765.80 + 0.00 + 0.00 + 0.00 + 1765.80 + + + + 1 + 750.0 + 1496.44 + + + 2.3544 + 01 + + + + 269.36 + + 1496.44 + 269.36 + + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + SERVICIO DE TRANSPORTE DE CEMENTO P.P AV.ATOCONGO 1860-V.M.T - LIMA - LIMA P.LL. OTR. PAGO DE ÑOCO BAJO 997A SEC. EL CARRIZO BRAZO TASAYCO UC 00997-A - ICA- CHINCHA- SUNAMPE- SUNAMPE- CHINCHA- ICA MTC 15109718 CNG TN 31.875 PLACA: D4H908 C.VEHC: T3S3 -V.R.S/ 2,839.74 + + VESE-CEMENTO + + + + 1.995254 + + + + diff --git a/tests/correos_prueba/032_correo/pdf_resultado_032.json b/tests/correos_prueba/032_correo/pdf_resultado_032.json new file mode 100644 index 0000000..b56924a --- /dev/null +++ b/tests/correos_prueba/032_correo/pdf_resultado_032.json @@ -0,0 +1,20 @@ +[ + { + "ruc_emisor": "20604034303", + "razon_social_emisor": null, + "fecha_emision": "02/07/2026", + "tipo": "01", + "serie": "F002", + "numero": "3210", + "ruc_receptor": "20100029741", + "razon_social_receptor": null, + "total_factura": "1765.80", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": "4.00", + "monto_detraccion": null, + "lineas": [], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/032_correo/20604034303-01-F002-3210.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/032_correo/xml_resultado_032.json b/tests/correos_prueba/032_correo/xml_resultado_032.json new file mode 100644 index 0000000..980de03 --- /dev/null +++ b/tests/correos_prueba/032_correo/xml_resultado_032.json @@ -0,0 +1,64 @@ +[ + { + "ruc_emisor": "20604034303", + "razon_social_emisor": "AQUIFAST LOGISTIC S.A.C.", + "fecha_emision": "2026-07-02", + "tipo": "01", + "serie": "F002", + "numero": "3210", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1765.8, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131541" + }, + { + "tipo": "31", + "serie": "EG03", + "numero": "1859" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 114.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE DE CEMENTO P.P AV.ATOCONGO 1860-V.M.T - LIMA - LIMA P.LL. OTR. PAGO DE ÑOCO BAJO 997A SEC. EL CARRIZO BRAZO TASAYCO UC 00997-A - ICA- CHINCHA- SUNAMPE- SUNAMPE- CHINCHA- ICA MTC 15109718 CNG TN 31.875 PLACA: D4H908 C.VEHC: T3S3 -V.R.S/ 2,839.74", + "cantidad": 750.0, + "precio_unitario": 2.3544, + "total_linea": 1496.44, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131541" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1859" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/032_correo/20604034303-01-F002-3210.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/033_correo/20552793499-01-E001-5554.pdf b/tests/correos_prueba/033_correo/20552793499-01-E001-5554.pdf new file mode 100644 index 0000000..4a0b885 Binary files /dev/null and b/tests/correos_prueba/033_correo/20552793499-01-E001-5554.pdf differ diff --git a/tests/correos_prueba/033_correo/20552793499-01-E001-5554.xml b/tests/correos_prueba/033_correo/20552793499-01-E001-5554.xml new file mode 100644 index 0000000..ec479fd --- /dev/null +++ b/tests/correos_prueba/033_correo/20552793499-01-E001-5554.xml @@ -0,0 +1,300 @@ + + + + + + + + + + + + CTSZ5fq3cpchxYoU2/kNfbdRmS8=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 + + + + 2.1 + 2.0 + + E001-5554 + 2026-07-03 + 15:37:31.0Z + + 01 + + + PEN + + T001 - 131601 + 09 + + + + EG03 - 1984 + 31 + + + + + E001-5554 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20552793499 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + - + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00074064787 + + + + Detraccion + 027 + 4.00 + 138.00 + + + + + + FormaPago + Credito + 1830.48 + + + + FormaPago + Cuota001 + 1830.48 + 2026-07-10 + + + + + + + 300.28 + + + + + 1668.20 + 300.28 + + S + + 1000 + IGV + VAT + + + + + + 1668.20 + 0.00 + 0.00 + 0.00 + + 1968.48 + + + + 1 + 800.00 + 1668.2032 + + false + + + + 2.46059972 + 01 + + + + + + + 110501 + + AV FERMIN TANGUISMZ A LT 3-B URB JUAN JOSE - ICA - PISCO - ICA - PISCO - PISCO + + + + + + 150143 + + AV.ATOCONGO 1860-LIMA-LIMA-V.M.T - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 0.00 + + + 02 + 0.00 + + + 03 + 0.00 + + + 01 + + + 0 + + + - + false + + + 01 + 0.00 + + + + + + + + + true + 0.00 + + + + + 300.276576 + + + + + + 1668.2032 + 300.276576 + + S + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 2.085254 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/033_correo/pdf_resultado_033.json b/tests/correos_prueba/033_correo/pdf_resultado_033.json new file mode 100644 index 0000000..d9401d6 --- /dev/null +++ b/tests/correos_prueba/033_correo/pdf_resultado_033.json @@ -0,0 +1,45 @@ +[ + { + "ruc_emisor": "20552793499", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. GUIA DE REMISION REMITENTE : T001", + "fecha_emision": "03/07/2026", + "tipo": "01", + "serie": "E001", + "numero": "5554", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. GUIA DE REMISION REMITENTE : T001", + "total_factura": "1830.48", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "138.00", + "lineas": [ + { + "descripcion": "BOLSA SERVICIO DE TRANSPORTE 800 BLS DE CEMENTO P.P. AV.ATOCONGO 1860-LIMA-LIMA-V.M.T P.LL. AV FERMIN TANGUISMZ A LT 3-B URB JUAN JOSE - ICA - PISCOMTC", + "cantidad": "800.00", + "precio_unitario": "800.00", + "total_linea": "2.085254", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "V.R S/ PLACA:CFU878 C.VEHICULAR:T3S3", + "cantidad": "34.00", + "precio_unitario": "34.00", + "total_linea": "3457.80", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 1,668.20", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "1668.20", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/033_correo/20552793499-01-E001-5554.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/033_correo/xml_resultado_033.json b/tests/correos_prueba/033_correo/xml_resultado_033.json new file mode 100644 index 0000000..96496fc --- /dev/null +++ b/tests/correos_prueba/033_correo/xml_resultado_033.json @@ -0,0 +1,64 @@ +[ + { + "ruc_emisor": "20552793499", + "razon_social_emisor": "CORPORACION AQUILES S.A.C.", + "fecha_emision": "2026-07-03", + "tipo": "01", + "serie": "E001", + "numero": "5554", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1968.48, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131601" + }, + { + "tipo": "31", + "serie": "EG03", + "numero": "1984" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 138.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE 800 BLS DE CEMENTO P.P. AV.ATOCONGO 1860-LIMA-LIMA-V.M.T P.LL. AV FERMIN TANGUISMZ A LT 3-B URB JUAN JOSE - ICA - PISCOMTC 1550071CNGTN:34.00 V.R S/3457.80 PLACA:CFU878 C.VEHICULAR:T3S3", + "cantidad": 800.0, + "precio_unitario": 2.46059972, + "total_linea": 1668.2032, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131601" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1984" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/033_correo/20552793499-01-E001-5554.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/035_correo/20614715252-01-E001-737.pdf b/tests/correos_prueba/035_correo/20614715252-01-E001-737.pdf new file mode 100644 index 0000000..3f947c2 Binary files /dev/null and b/tests/correos_prueba/035_correo/20614715252-01-E001-737.pdf differ diff --git a/tests/correos_prueba/035_correo/20614715252-01-E001-737.xml b/tests/correos_prueba/035_correo/20614715252-01-E001-737.xml new file mode 100644 index 0000000..a7dacf9 --- /dev/null +++ b/tests/correos_prueba/035_correo/20614715252-01-E001-737.xml @@ -0,0 +1,208 @@ + + + + + + + + + + + + AUBZpMZ5F/0bAomkHzrBTDuwbDI=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 + + + + 2.1 + 2.0 + + E001-737 + 2026-06-30 + 10:50:39.0Z + + 01 + + + + PEN + + + E001-737 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20614715252 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + Detraccion + 001 + + 00019161498 + + + + Detraccion + 020 + 12.00 + 193.00 + + + + + + FormaPago + Contado + + + + + + + 245.59 + + + + + 1364.41 + 245.59 + + S + + 1000 + IGV + VAT + + + + + + 1364.41 + 0.00 + 0.00 + 0.00 + + 1610.00 + + + + 1 + 1.00 + 1364.4067 + + false + + + + 1609.999906 + 01 + + + + + true + 0.00 + + + + + 245.593206 + + + + + + 1364.4067 + 245.593206 + + S + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 1364.4067 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/035_correo/pdf_resultado_035.json b/tests/correos_prueba/035_correo/pdf_resultado_035.json new file mode 100644 index 0000000..3728c64 --- /dev/null +++ b/tests/correos_prueba/035_correo/pdf_resultado_035.json @@ -0,0 +1,37 @@ +[ + { + "ruc_emisor": "20614715252", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "30/06/2026", + "tipo": "01", + "serie": "E001", + "numero": "737", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": "193.00", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "193.00", + "lineas": [ + { + "descripcion": "UNIDAD ACCESORIOS DE SISTEMA DE EMBRAGUE SPICER 380X10X2 RODAJE DE VOLANTE, JUEGO DE PASTILLAS, COLLARIN, JUEGO DE RESORTE, FRENO DE MONTSAJE, CUBO DE EMBRAGUE", + "cantidad": "1.00", + "precio_unitario": "1.00", + "total_linea": "1364.4067", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 1,364.41", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "1364.41", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/035_correo/20614715252-01-E001-737.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/035_correo/xml_resultado_035.json b/tests/correos_prueba/035_correo/xml_resultado_035.json new file mode 100644 index 0000000..b3566c8 --- /dev/null +++ b/tests/correos_prueba/035_correo/xml_resultado_035.json @@ -0,0 +1,43 @@ +[ + { + "ruc_emisor": "20614715252", + "razon_social_emisor": "LENINQ EMBRAGUES S.A.C.", + "fecha_emision": "2026-06-30", + "tipo": "01", + "serie": "E001", + "numero": "737", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1610.0, + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": "020", + "porcentaje_detraccion": 12.0, + "monto_detraccion": 193.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "ACCESORIOS DE SISTEMA DE EMBRAGUE SPICER 380X10X2 RODAJE DE VOLANTE, JUEGO DE PASTILLAS, COLLARIN, JUEGO DE RESORTE, FRENO DE MONTSAJE, CUBO DE EMBRAGUE", + "cantidad": 1.0, + "precio_unitario": 1609.999906, + "total_linea": 1364.4067, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/035_correo/20614715252-01-E001-737.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/036_correo/20520758829-01-E001-1214.pdf b/tests/correos_prueba/036_correo/20520758829-01-E001-1214.pdf new file mode 100644 index 0000000..0f56207 Binary files /dev/null and b/tests/correos_prueba/036_correo/20520758829-01-E001-1214.pdf differ diff --git a/tests/correos_prueba/036_correo/20520758829-01-E001-1214.xml b/tests/correos_prueba/036_correo/20520758829-01-E001-1214.xml new file mode 100644 index 0000000..1e4bc4f --- /dev/null +++ b/tests/correos_prueba/036_correo/20520758829-01-E001-1214.xml @@ -0,0 +1,292 @@ + + + + + + + + + + + + Be7X+x85wgLk6A0/Bn/JXZVnZYc=ObQJGpERbwLR4YfHvJxFYtfUFxaF0zbpDOsjfPmHopUXMZ1WbdlGLY3a7KXrvkxfJXMDYxWWqzffiL2cQFyfqTkU1D9c/1BGE08RKDDGxYORYYXwMZWwnjKS8DViGdZMDQP+fBOXCfSpkKynB1o7jZCFPxKld9pnS6cFaEHse5vfeyFq8qPH75VaQw1PtuQoyYroDOuqHw0U0400ymijIzp2mL3/qvsr+z6XtAFjUzvWv1LiZpRrDgysSDMZuoDEDqsH4Sa8ZFUsgyJfLv7yk5xZwtbPdhZawQ8WEue1AOlIsp3EPbUEe/APkbVdthk55HjyKE9bmhEIhWHDI+7Mcg==MIIFrjCCBJagAwIBAgIIf9Td7Evg0UswDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQwODA5MTYxNTM5WhcNMjcwODA5MTYxNTAwWjCCAVQxKzApBgNVBAkMIkFWLiBHQVJDSUxBU08gREUgTEEgVkVHQSBOUk8uIDE0NzIxIjAgBgkqhkiG9w0BCQEWE3JtZXphZ0BzdW5hdC5nb2IucGUxQTA/BgNVBAMMOFNVUEVSSU5ULiBOQUMuIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBMRwwGgYDVQQLDBNBR0VOVEUgQVVUT01BVElaQURPMS4wLAYDVQQLDCVWYWxpZGFkbyBwb3IgQUJDIElERU5USURBRCBESUdJVEFMIEVSMVQwUgYDVQQKDEtTVVBFUklOVEVOREVOQ0lBIE5BQ0lPTkFMIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBIC0gU1VOQVQxDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1apapJOwMj9tBpgKAgjRwIloUk+xwvQZxc0s/4yl4mDSrc/F/PKZ3QBmKb43fFwivqPUvsr68fQTfyLKM14B+xXwlbQ/yh3+87sMyulLhOPmtSOU0PE8Rw0PsmGVxf1L0HPAPc3Gvuhq4Z9Dx5ByED6s+VppDmncvctlJ/NrzYZCk9H91OinTTPVZrDtbmqnOYra8PaTRoCI9Fmndeo9Oo7esM7KVX9f53NEd/mNQqzAOrgSXthFuBZN7zOsGxJ4ZGrVzHSlCH/jFLgObEizHrqisgL1cxKj8QvbGLUjNtUuTvR5IY6hwRLCxbliTa84BN10E0jC7hhAnnuEIAFJiwIDAQABo4IBjjCCAYowDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRbMFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAeBgNVHREEFzAVgRNybWV6YWdAc3VuYXQuZ29iLnBlMEYGA1UdIAQ/MD0wOwYNKwYBBAGDl3cAAQADATAqMCgGCCsGAQUFBwIBFhxodHRwczovL2xsYW1hLnBlL3JlcG9zaXRvcnkvMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDA6BgNVHR8EMzAxMC+gLaArhilodHRwOi8vY3JsLmxsYW1hLnBlL2xsYW1hcGVzdGFuZGFyZGNhLmNybDAdBgNVHQ4EFgQUuRkPCyM25gAu5se9GraC/UO07X8wDgYDVR0PAQH/BAQDAgbAMA0GCSqGSIb3DQEBCwUAA4IBAQBC8+YM7moZ7bKYCS+VzJ8wzydSboWeNuAs2CfkhI8hRMQr1r5WZg8pDlroCslF/r6SjbkrjuDHcGKJTM2riGEjlOD4CLU9VjOP7Td6CIZyJRLaz63pZYOwE0H0weG/PvYpopDZzJ6AXYzZxwYkJ03/x/vwaCss9ZvmsEn2E1xtGbnMe9MEsg8oF0ul3uRn8Qy5gF37fM7YKuF/r4iBS5uSvBcA5J2FbI/PQls7OgICDyb3W16GeluaT9krY5wQxilJSpGVU++nv5NzmRHkquH3ic2It/KP6MZ9X2tfg6FhpF6JaUz7MSY+J0KnDDcfJlhxgnkgoT5tV3Sr6z5PpQH6 + + + + 2.1 + 2.0 + + E001-1214 + 2026-06-30 + 16:22:33.0Z + + 01 + + + + PEN + + + E001-1214 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20520758829 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + 15102518CNG + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00013005672 + + + + Detraccion + 027 + 4.00 + 41.00 + + + + + + FormaPago + Credito + 977.10 + + + + FormaPago + Cuota001 + 977.10 + 2026-07-16 + + + + + + + 155.30 + + + + + 862.79 + 155.30 + + S + + 1000 + IGV + VAT + + + + + + 862.79 + 0.00 + 0.00 + 0.00 + + 1018.10 + + + + 1 + 760.00 + 862.793192 + + false + + + + 1.339599956 + 01 + + + + + + + 150133 + + MZA.C LT.12 COO.DE VIVIENDA URANMARCA LIMA-SJM - LIMA - LIMA - SAN JUAN DE MIRAFLORES + + + + + + 150143 + + AV.ATOCONGO 1860 LIMA-VMT - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 1018.10 + + + 02 + 0.00 + + + 03 + 0.00 + + + 01 + + + 0 + + + T3S3 + false + + + 01 + 32.30 + + + + + + + + + true + 0.00 + + + + + 155.30277456 + + + + + + 862.793192 + 155.30277456 + + S + 18.00 + + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 1.1352542 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/036_correo/pdf_resultado_036.json b/tests/correos_prueba/036_correo/pdf_resultado_036.json new file mode 100644 index 0000000..8efff19 --- /dev/null +++ b/tests/correos_prueba/036_correo/pdf_resultado_036.json @@ -0,0 +1,55 @@ +[ + { + "ruc_emisor": "20520758829", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "30/06/2026", + "tipo": "01", + "serie": "E001", + "numero": "1214", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": "977.10", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "41.00", + "lineas": [ + { + "descripcion": "BOLSA SERVICIO DE TRANSPORTE 760 BOLSAS DE CEMENTO POR 1.339600 G.R.R: T001-00131243 G.R.T: EG03-01022 C. VEHC:", + "cantidad": "760.00", + "precio_unitario": "760.00", + "total_linea": "1.1352542", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131243" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1022" + } + }, + { + "descripcion": "VALOR REFERENCIAL: CARGA: TN PLACA: BSS804/TLS972", + "cantidad": "1018.10", + "precio_unitario": "1018.10", + "total_linea": "32.300", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 862.79", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "862.79", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/036_correo/20520758829-01-E001-1214.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/036_correo/xml_resultado_036.json b/tests/correos_prueba/036_correo/xml_resultado_036.json new file mode 100644 index 0000000..a72f1f4 --- /dev/null +++ b/tests/correos_prueba/036_correo/xml_resultado_036.json @@ -0,0 +1,64 @@ +[ + { + "ruc_emisor": "20520758829", + "razon_social_emisor": "INVERSIONES PRADA SAC", + "fecha_emision": "2026-06-30", + "tipo": "01", + "serie": "E001", + "numero": "1214", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1018.1, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131243" + }, + { + "tipo": "31", + "serie": "EG03", + "numero": "1022" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 41.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE 760 BOLSAS DE CEMENTO POR 1.339600 G.R.R: T001-00131243 G.R.T: EG03-01022 C. VEHC: T3S3 VALOR REFERENCIAL: 1018.10 CARGA: 32.300 TN PLACA: BSS804/TLS972", + "cantidad": 760.0, + "precio_unitario": 1.339599956, + "total_linea": 862.793192, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131243" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1022" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/036_correo/20520758829-01-E001-1214.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/037_correo/20524528992-01-E001-861.pdf b/tests/correos_prueba/037_correo/20524528992-01-E001-861.pdf new file mode 100644 index 0000000..3298614 Binary files /dev/null and b/tests/correos_prueba/037_correo/20524528992-01-E001-861.pdf differ diff --git a/tests/correos_prueba/037_correo/20524528992-01-E001-861.xml b/tests/correos_prueba/037_correo/20524528992-01-E001-861.xml new file mode 100644 index 0000000..aee16d3 --- /dev/null +++ b/tests/correos_prueba/037_correo/20524528992-01-E001-861.xml @@ -0,0 +1,306 @@ + + + + + + + + + + + + 8AgYf7AwPJvEEOtEKblhhz7O6C4=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 + + + + 2.1 + 2.0 + + E001-861 + 2026-06-30 + 11:21:30.0Z + + 01 + + + + PEN + + EG03 - 204 + 31 + + + + T001 - 131180 + 09 + + + + T001 - 131181 + 09 + + + + + E001-861 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20524528992 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + 1530145 CNG + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00052003296 + + + + Detraccion + 027 + 4.00 + 40.00 + + + + + + FormaPago + Credito + 964.70 + + + + FormaPago + Cuota001 + 964.70 + 2026-07-17 + + + + + + + 153.26 + + + + + 851.44 + 153.26 + + S + + 1000 + IGV + VAT + + + + + + 851.44 + 0.00 + 0.00 + 0.00 + + 1004.70 + + + + 1 + 750.00 + 851.4375 + + false + + + + 1.339595 + 01 + + + + + + + 150119 + + CARR. ANT. PAN. SUR KM. 39.5 FND SANTA GENOVEVA LURIN-LIMA-LIMA - LIMA - LIMA - LURIN + + + + + + 150143 + + AV ATONCONGO 1860 - V.M.T. LIMA - LIMA. - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 1004.70 + + + 02 + 0.00 + + + 03 + 0.00 + + + 01 + + + 0 + + + T3S3 + false + + + 01 + 31.88 + + + + + + + + + true + 0.00 + + + + + 153.25875 + + + + + + 851.4375 + 153.25875 + + S + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 1.13525 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/037_correo/pdf_resultado_037.json b/tests/correos_prueba/037_correo/pdf_resultado_037.json new file mode 100644 index 0000000..adf4634 --- /dev/null +++ b/tests/correos_prueba/037_correo/pdf_resultado_037.json @@ -0,0 +1,37 @@ +[ + { + "ruc_emisor": "20524528992", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. GUIA DE REMISION TRANSPORTISTA : EG03", + "fecha_emision": "30/06/2026", + "tipo": "01", + "serie": "E001", + "numero": "861", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. GUIA DE REMISION TRANSPORTISTA : EG03", + "total_factura": "964.70", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "40.00", + "lineas": [ + { + "descripcion": "BOLSA SERVICIO DE TRANSPORTE DE BLS X S/ / CONF.VEH: T3S3/ CARGA: 31.875 TN/ PARTIDA: AV ATONCONGO 1860 - V.M.T. LIMA - LIMA. / LLEGADA: CARR. ANT. PAN. SUR KM. 39.5 FND SANTA GENOVEVA LURIN-LIMA-LIMA /MTC: 1530145 CNG /VALOR REFERENCIAL S/ 1004.7", + "cantidad": "750.00", + "precio_unitario": "1.3396", + "total_linea": "1.13525", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 851.44", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "851.44", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/037_correo/20524528992-01-E001-861.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/037_correo/xml_resultado_037.json b/tests/correos_prueba/037_correo/xml_resultado_037.json new file mode 100644 index 0000000..5257ce1 --- /dev/null +++ b/tests/correos_prueba/037_correo/xml_resultado_037.json @@ -0,0 +1,74 @@ +[ + { + "ruc_emisor": "20524528992", + "razon_social_emisor": "TRANSPORTE A & M SEÑOR DE LUREN S.A.C.", + "fecha_emision": "2026-06-30", + "tipo": "01", + "serie": "E001", + "numero": "861", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1004.7, + "documentos_referencia": [ + { + "tipo": "31", + "serie": "EG03", + "numero": "204" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "131180" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "131181" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 40.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE DE BLS X S/ 1.3396 / CONF.VEH: T3S3/ CARGA: 31.875 TN/ PARTIDA: AV ATONCONGO 1860 - V.M.T. LIMA - LIMA. / LLEGADA: CARR. ANT. PAN. SUR KM. 39.5 FND SANTA GENOVEVA LURIN-LIMA-LIMA /MTC: 1530145 CNG /VALOR REFERENCIAL S/ 1004.7", + "cantidad": 750.0, + "precio_unitario": 1.339595, + "total_linea": 851.4375, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131180" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "131181" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "204" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/037_correo/20524528992-01-E001-861.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/038_correo/20612674133-01-E001-2.pdf b/tests/correos_prueba/038_correo/20612674133-01-E001-2.pdf new file mode 100644 index 0000000..59c3755 Binary files /dev/null and b/tests/correos_prueba/038_correo/20612674133-01-E001-2.pdf differ diff --git a/tests/correos_prueba/038_correo/20612674133-01-E001-2.xml b/tests/correos_prueba/038_correo/20612674133-01-E001-2.xml new file mode 100644 index 0000000..4106b4f --- /dev/null +++ b/tests/correos_prueba/038_correo/20612674133-01-E001-2.xml @@ -0,0 +1,208 @@ + + + + + + + + + + + + AJI02v+sk6B7rFY5RE75yxmYlLE=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 + + + + 2.1 + 2.0 + + E001-2 + 2026-06-30 + 13:15:06.0Z + + 01 + + + PEN + + + E001-2 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20612674133 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + Detraccion + 003 + + 00020071079 + + + + Detraccion + 022 + 12.00 + 566.00 + + + + + + FormaPago + Contado + + + + + + + 720.00 + + + + + 4000.00 + 720.00 + + S + + 1000 + IGV + VAT + + + + + + 4000.00 + 0.00 + 0.00 + 0.00 + + 4720.00 + + + + 1 + 1.00 + 4000.00 + + false + + + + 4720.00 + 01 + + + + + true + 0.00 + + + + + 720.00 + + + + + + 4000.00 + 720.00 + + S + 18.00 + + 10 + + 1000 + IGV + VAT + + + + + + + + + 001SERCONT + + + + + + + 4000.00 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/038_correo/pdf_resultado_038.json b/tests/correos_prueba/038_correo/pdf_resultado_038.json new file mode 100644 index 0000000..5079003 --- /dev/null +++ b/tests/correos_prueba/038_correo/pdf_resultado_038.json @@ -0,0 +1,37 @@ +[ + { + "ruc_emisor": "20612674133", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "30/06/2026", + "tipo": "01", + "serie": "E001", + "numero": "2", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": "566.00", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "566.00", + "lineas": [ + { + "descripcion": "UNIDAD ASESORIA CONTABLE CORRESPONDIENTE AL PERIODO T 062026,REVISION DE REGISTROS CONTABLES, REPORTES FINANCIEROS Y ORIENTACION TRIBUTARIA.", + "cantidad": "1.00", + "precio_unitario": "1.00", + "total_linea": "4000.00", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 4,000.00", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "4000.00", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/038_correo/20612674133-01-E001-2.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/038_correo/xml_resultado_038.json b/tests/correos_prueba/038_correo/xml_resultado_038.json new file mode 100644 index 0000000..925c8cb --- /dev/null +++ b/tests/correos_prueba/038_correo/xml_resultado_038.json @@ -0,0 +1,43 @@ +[ + { + "ruc_emisor": "20612674133", + "razon_social_emisor": "HA & ASOCIADOS SAC", + "fecha_emision": "2026-06-30", + "tipo": "01", + "serie": "E001", + "numero": "2", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 4720.0, + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": "022", + "porcentaje_detraccion": 12.0, + "monto_detraccion": 566.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "ASESORIA CONTABLE CORRESPONDIENTE AL PERIODO 062026,REVISION DE REGISTROS CONTABLES, REPORTES FINANCIEROS Y ORIENTACION TRIBUTARIA.", + "cantidad": 1.0, + "precio_unitario": 4720.0, + "total_linea": 4000.0, + "notes_text": "", + "guias_remision": [], + "guia_transportista": null + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/038_correo/20612674133-01-E001-2.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/039_correo/10154250161-01-E001-858.pdf b/tests/correos_prueba/039_correo/10154250161-01-E001-858.pdf new file mode 100644 index 0000000..4867b63 Binary files /dev/null and b/tests/correos_prueba/039_correo/10154250161-01-E001-858.pdf differ diff --git a/tests/correos_prueba/039_correo/10154250161-01-E001-858.xml b/tests/correos_prueba/039_correo/10154250161-01-E001-858.xml new file mode 100644 index 0000000..3c80c63 --- /dev/null +++ b/tests/correos_prueba/039_correo/10154250161-01-E001-858.xml @@ -0,0 +1,300 @@ + + + + + + + + + + + + C2fbddQQNVg6YfCURIzAMMIBjoE=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 + + + + 2.1 + 2.0 + + E001-858 + 2026-06-30 + 15:49:15.0Z + + 01 + + + PEN + + EG03 - 00000687 + 31 + + + + T001 - 0131460 + 09 + + + + + E001-858 + + + SUNAT + + + + + SignSUNAT + + + + + + + 10154250161 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + 152411 + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00575006221 + + + + Detraccion + 027 + 4.00 + 23.91 + + + + + + FormaPago + Credito + 573.92 + + + + FormaPago + Cuota001 + 573.92 + 2026-07-15 + + + + + + + 91.19 + + + + + 506.64 + 91.19 + + S + + 1000 + IGV + VAT + + + + + + 506.64 + 0.00 + 0.00 + 0.00 + + 597.83 + + + + 1 + 1.00 + 506.63559322 + + false + + + + 597.8299999996 + 01 + + + + + + + 150124 + + MZ J LT. 26 PJ BENJAMIN DOIG LOSSIO PUCUSANA LIMA - LIMA - LIMA - PUCUSANA + + + + + + 150143 + + AV. ATOCONGO 1860 VILLA MARIA DEL TRIUNFO LIMA - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 573.92 + + + 02 + 0.00 + + + 03 + 0.00 + + + 01 + + + 0 + + + T2S3 + false + + + 01 + 14.03 + + + + + + + + + true + 0.00 + + + + + 91.1944067796 + + + + + + 506.63559322 + 91.1944067796 + + S + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 506.63559322 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/039_correo/pdf_resultado_039.json b/tests/correos_prueba/039_correo/pdf_resultado_039.json new file mode 100644 index 0000000..178f3d3 --- /dev/null +++ b/tests/correos_prueba/039_correo/pdf_resultado_039.json @@ -0,0 +1,45 @@ +[ + { + "ruc_emisor": "10154250161", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. EG03", + "fecha_emision": "30/06/2026", + "tipo": "01", + "serie": "E001", + "numero": "858", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. EG03", + "total_factura": "573.92", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "23.91", + "lineas": [ + { + "descripcion": "UNIDAD SERVICIO DE TRANSPORTE 330 BLS DE CEMENTO SOL X 1.8116 P.PARTIDA:AV. ATOCONGO 1860 V.M.T. P.LLEGADA:MZJ LT.26 PJBENJAMIN DOIG LOSSIO P. VALOR REFERENCIAL:", + "cantidad": "1.00", + "precio_unitario": "1.00", + "total_linea": "506.63559322", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "CONFIGURACION VEHICULAR: TN. N.REG. MTC: 152411 CNG. PLACA :D0A848/W2M972", + "cantidad": "597.83", + "precio_unitario": "597.83", + "total_linea": "14.03", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 506.64", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "506.64", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/039_correo/10154250161-01-E001-858.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/039_correo/xml_resultado_039.json b/tests/correos_prueba/039_correo/xml_resultado_039.json new file mode 100644 index 0000000..0e613de --- /dev/null +++ b/tests/correos_prueba/039_correo/xml_resultado_039.json @@ -0,0 +1,64 @@ +[ + { + "ruc_emisor": "10154250161", + "razon_social_emisor": "PAZ URBINA MAXIMO MARCOS", + "fecha_emision": "2026-06-30", + "tipo": "01", + "serie": "E001", + "numero": "858", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 597.83, + "documentos_referencia": [ + { + "tipo": "31", + "serie": "EG03", + "numero": "687" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "131460" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 23.91, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE 330 BLS DE CEMENTO SOL X 1.8116 P.PARTIDA:AV. ATOCONGO 1860 V.M.T. P.LLEGADA:MZJ LT.26 PJBENJAMIN DOIG LOSSIO P. VALOR REFERENCIAL: 597.83 CONFIGURACION VEHICULAR: T2S3/CTN 14.03 TN. N.REG. MTC: 152411 CNG. PLACA :D0A848/W2M972", + "cantidad": 1.0, + "precio_unitario": 597.8299999996, + "total_linea": 506.63559322, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131460" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "687" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/039_correo/10154250161-01-E001-858.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/040_correo/20520758829-01-E001-1214.pdf b/tests/correos_prueba/040_correo/20520758829-01-E001-1214.pdf new file mode 100644 index 0000000..0f56207 Binary files /dev/null and b/tests/correos_prueba/040_correo/20520758829-01-E001-1214.pdf differ diff --git a/tests/correos_prueba/040_correo/20520758829-01-E001-1214.xml b/tests/correos_prueba/040_correo/20520758829-01-E001-1214.xml new file mode 100644 index 0000000..1e4bc4f --- /dev/null +++ b/tests/correos_prueba/040_correo/20520758829-01-E001-1214.xml @@ -0,0 +1,292 @@ + + + + + + + + + + + + Be7X+x85wgLk6A0/Bn/JXZVnZYc=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 + + + + 2.1 + 2.0 + + E001-1214 + 2026-06-30 + 16:22:33.0Z + + 01 + + + + PEN + + + E001-1214 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20520758829 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + 15102518CNG + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00013005672 + + + + Detraccion + 027 + 4.00 + 41.00 + + + + + + FormaPago + Credito + 977.10 + + + + FormaPago + Cuota001 + 977.10 + 2026-07-16 + + + + + + + 155.30 + + + + + 862.79 + 155.30 + + S + + 1000 + IGV + VAT + + + + + + 862.79 + 0.00 + 0.00 + 0.00 + + 1018.10 + + + + 1 + 760.00 + 862.793192 + + false + + + + 1.339599956 + 01 + + + + + + + 150133 + + MZA.C LT.12 COO.DE VIVIENDA URANMARCA LIMA-SJM - LIMA - LIMA - SAN JUAN DE MIRAFLORES + + + + + + 150143 + + AV.ATOCONGO 1860 LIMA-VMT - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 1018.10 + + + 02 + 0.00 + + + 03 + 0.00 + + + 01 + + + 0 + + + T3S3 + false + + + 01 + 32.30 + + + + + + + + + true + 0.00 + + + + + 155.30277456 + + + + + + 862.793192 + 155.30277456 + + S + 18.00 + + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 1.1352542 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/040_correo/pdf_resultado_040.json b/tests/correos_prueba/040_correo/pdf_resultado_040.json new file mode 100644 index 0000000..8961146 --- /dev/null +++ b/tests/correos_prueba/040_correo/pdf_resultado_040.json @@ -0,0 +1,55 @@ +[ + { + "ruc_emisor": "20520758829", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "30/06/2026", + "tipo": "01", + "serie": "E001", + "numero": "1214", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": "977.10", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "41.00", + "lineas": [ + { + "descripcion": "BOLSA SERVICIO DE TRANSPORTE 760 BOLSAS DE CEMENTO POR 1.339600 G.R.R: T001-00131243 G.R.T: EG03-01022 C. VEHC:", + "cantidad": "760.00", + "precio_unitario": "760.00", + "total_linea": "1.1352542", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131243" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1022" + } + }, + { + "descripcion": "VALOR REFERENCIAL: CARGA: TN PLACA: BSS804/TLS972", + "cantidad": "1018.10", + "precio_unitario": "1018.10", + "total_linea": "32.300", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 862.79", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "862.79", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/040_correo/20520758829-01-E001-1214.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/040_correo/xml_resultado_040.json b/tests/correos_prueba/040_correo/xml_resultado_040.json new file mode 100644 index 0000000..cae9300 --- /dev/null +++ b/tests/correos_prueba/040_correo/xml_resultado_040.json @@ -0,0 +1,64 @@ +[ + { + "ruc_emisor": "20520758829", + "razon_social_emisor": "INVERSIONES PRADA SAC", + "fecha_emision": "2026-06-30", + "tipo": "01", + "serie": "E001", + "numero": "1214", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1018.1, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131243" + }, + { + "tipo": "31", + "serie": "EG03", + "numero": "1022" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 41.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE 760 BOLSAS DE CEMENTO POR 1.339600 G.R.R: T001-00131243 G.R.T: EG03-01022 C. VEHC: T3S3 VALOR REFERENCIAL: 1018.10 CARGA: 32.300 TN PLACA: BSS804/TLS972", + "cantidad": 760.0, + "precio_unitario": 1.339599956, + "total_linea": 862.793192, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131243" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "1022" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/040_correo/20520758829-01-E001-1214.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/041_correo/20524528992-01-E001-861.pdf b/tests/correos_prueba/041_correo/20524528992-01-E001-861.pdf new file mode 100644 index 0000000..3298614 Binary files /dev/null and b/tests/correos_prueba/041_correo/20524528992-01-E001-861.pdf differ diff --git a/tests/correos_prueba/041_correo/20524528992-01-E001-861.xml b/tests/correos_prueba/041_correo/20524528992-01-E001-861.xml new file mode 100644 index 0000000..aee16d3 --- /dev/null +++ b/tests/correos_prueba/041_correo/20524528992-01-E001-861.xml @@ -0,0 +1,306 @@ + + + + + + + + + + + + 8AgYf7AwPJvEEOtEKblhhz7O6C4=FdcZP14hMf18iTYKn+Nz5VZbp1Nj12uXR2Hy8jxxN0Pgq4UJGgwaKZysvrKTseRTMPg4QY2Rf/9X8E/E8pWnDiuQ774vyk4AcV8A1wua7FsX4CaUtIElloT9/mlOBB/o12gzu2pUHb0P69IJixBeAOFR8nLS6d0q419rIoQhGp7L20JOqPhjUIKpqnkA3PKlPJ6Vgl/ZhwXMHPbh76TwHaaE8hE3XNmDFqbLTHS+Rz33wj/XFHdx9SINwcoY2CfIN3wEJBsaBK7jFxOdnwVeNYFHj37lIs/Qdt9+epmJT4i5ExokefKQg0al20oa//OXXWyxvPyt1/nEaXslMxS+nw==MIIFrjCCBJagAwIBAgIIf9Td7Evg0UswDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQwODA5MTYxNTM5WhcNMjcwODA5MTYxNTAwWjCCAVQxKzApBgNVBAkMIkFWLiBHQVJDSUxBU08gREUgTEEgVkVHQSBOUk8uIDE0NzIxIjAgBgkqhkiG9w0BCQEWE3JtZXphZ0BzdW5hdC5nb2IucGUxQTA/BgNVBAMMOFNVUEVSSU5ULiBOQUMuIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBMRwwGgYDVQQLDBNBR0VOVEUgQVVUT01BVElaQURPMS4wLAYDVQQLDCVWYWxpZGFkbyBwb3IgQUJDIElERU5USURBRCBESUdJVEFMIEVSMVQwUgYDVQQKDEtTVVBFUklOVEVOREVOQ0lBIE5BQ0lPTkFMIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBIC0gU1VOQVQxDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1apapJOwMj9tBpgKAgjRwIloUk+xwvQZxc0s/4yl4mDSrc/F/PKZ3QBmKb43fFwivqPUvsr68fQTfyLKM14B+xXwlbQ/yh3+87sMyulLhOPmtSOU0PE8Rw0PsmGVxf1L0HPAPc3Gvuhq4Z9Dx5ByED6s+VppDmncvctlJ/NrzYZCk9H91OinTTPVZrDtbmqnOYra8PaTRoCI9Fmndeo9Oo7esM7KVX9f53NEd/mNQqzAOrgSXthFuBZN7zOsGxJ4ZGrVzHSlCH/jFLgObEizHrqisgL1cxKj8QvbGLUjNtUuTvR5IY6hwRLCxbliTa84BN10E0jC7hhAnnuEIAFJiwIDAQABo4IBjjCCAYowDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRbMFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAeBgNVHREEFzAVgRNybWV6YWdAc3VuYXQuZ29iLnBlMEYGA1UdIAQ/MD0wOwYNKwYBBAGDl3cAAQADATAqMCgGCCsGAQUFBwIBFhxodHRwczovL2xsYW1hLnBlL3JlcG9zaXRvcnkvMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDA6BgNVHR8EMzAxMC+gLaArhilodHRwOi8vY3JsLmxsYW1hLnBlL2xsYW1hcGVzdGFuZGFyZGNhLmNybDAdBgNVHQ4EFgQUuRkPCyM25gAu5se9GraC/UO07X8wDgYDVR0PAQH/BAQDAgbAMA0GCSqGSIb3DQEBCwUAA4IBAQBC8+YM7moZ7bKYCS+VzJ8wzydSboWeNuAs2CfkhI8hRMQr1r5WZg8pDlroCslF/r6SjbkrjuDHcGKJTM2riGEjlOD4CLU9VjOP7Td6CIZyJRLaz63pZYOwE0H0weG/PvYpopDZzJ6AXYzZxwYkJ03/x/vwaCss9ZvmsEn2E1xtGbnMe9MEsg8oF0ul3uRn8Qy5gF37fM7YKuF/r4iBS5uSvBcA5J2FbI/PQls7OgICDyb3W16GeluaT9krY5wQxilJSpGVU++nv5NzmRHkquH3ic2It/KP6MZ9X2tfg6FhpF6JaUz7MSY+J0KnDDcfJlhxgnkgoT5tV3Sr6z5PpQH6 + + + + 2.1 + 2.0 + + E001-861 + 2026-06-30 + 11:21:30.0Z + + 01 + + + + PEN + + EG03 - 204 + 31 + + + + T001 - 131180 + 09 + + + + T001 - 131181 + 09 + + + + + E001-861 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20524528992 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + 1530145 CNG + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00052003296 + + + + Detraccion + 027 + 4.00 + 40.00 + + + + + + FormaPago + Credito + 964.70 + + + + FormaPago + Cuota001 + 964.70 + 2026-07-17 + + + + + + + 153.26 + + + + + 851.44 + 153.26 + + S + + 1000 + IGV + VAT + + + + + + 851.44 + 0.00 + 0.00 + 0.00 + + 1004.70 + + + + 1 + 750.00 + 851.4375 + + false + + + + 1.339595 + 01 + + + + + + + 150119 + + CARR. ANT. PAN. SUR KM. 39.5 FND SANTA GENOVEVA LURIN-LIMA-LIMA - LIMA - LIMA - LURIN + + + + + + 150143 + + AV ATONCONGO 1860 - V.M.T. LIMA - LIMA. - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 1004.70 + + + 02 + 0.00 + + + 03 + 0.00 + + + 01 + + + 0 + + + T3S3 + false + + + 01 + 31.88 + + + + + + + + + true + 0.00 + + + + + 153.25875 + + + + + + 851.4375 + 153.25875 + + S + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 1.13525 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/041_correo/pdf_resultado_041.json b/tests/correos_prueba/041_correo/pdf_resultado_041.json new file mode 100644 index 0000000..8004028 --- /dev/null +++ b/tests/correos_prueba/041_correo/pdf_resultado_041.json @@ -0,0 +1,37 @@ +[ + { + "ruc_emisor": "20524528992", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. GUIA DE REMISION TRANSPORTISTA : EG03", + "fecha_emision": "30/06/2026", + "tipo": "01", + "serie": "E001", + "numero": "861", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. GUIA DE REMISION TRANSPORTISTA : EG03", + "total_factura": "964.70", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "40.00", + "lineas": [ + { + "descripcion": "BOLSA SERVICIO DE TRANSPORTE DE BLS X S/ / CONF.VEH: T3S3/ CARGA: 31.875 TN/ PARTIDA: AV ATONCONGO 1860 - V.M.T. LIMA - LIMA. / LLEGADA: CARR. ANT. PAN. SUR KM. 39.5 FND SANTA GENOVEVA LURIN-LIMA-LIMA /MTC: 1530145 CNG /VALOR REFERENCIAL S/ 1004.7", + "cantidad": "750.00", + "precio_unitario": "1.3396", + "total_linea": "1.13525", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 851.44", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "851.44", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/041_correo/20524528992-01-E001-861.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/041_correo/xml_resultado_041.json b/tests/correos_prueba/041_correo/xml_resultado_041.json new file mode 100644 index 0000000..554c26d --- /dev/null +++ b/tests/correos_prueba/041_correo/xml_resultado_041.json @@ -0,0 +1,74 @@ +[ + { + "ruc_emisor": "20524528992", + "razon_social_emisor": "TRANSPORTE A & M SEÑOR DE LUREN S.A.C.", + "fecha_emision": "2026-06-30", + "tipo": "01", + "serie": "E001", + "numero": "861", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1004.7, + "documentos_referencia": [ + { + "tipo": "31", + "serie": "EG03", + "numero": "204" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "131180" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "131181" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 40.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE DE BLS X S/ 1.3396 / CONF.VEH: T3S3/ CARGA: 31.875 TN/ PARTIDA: AV ATONCONGO 1860 - V.M.T. LIMA - LIMA. / LLEGADA: CARR. ANT. PAN. SUR KM. 39.5 FND SANTA GENOVEVA LURIN-LIMA-LIMA /MTC: 1530145 CNG /VALOR REFERENCIAL S/ 1004.7", + "cantidad": 750.0, + "precio_unitario": 1.339595, + "total_linea": 851.4375, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "131180" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "131181" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "204" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/041_correo/20524528992-01-E001-861.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/042_correo/20220631541-01-E001-6994.pdf b/tests/correos_prueba/042_correo/20220631541-01-E001-6994.pdf new file mode 100644 index 0000000..c1d10bc Binary files /dev/null and b/tests/correos_prueba/042_correo/20220631541-01-E001-6994.pdf differ diff --git a/tests/correos_prueba/042_correo/20220631541-01-E001-6994.xml b/tests/correos_prueba/042_correo/20220631541-01-E001-6994.xml new file mode 100644 index 0000000..a075680 --- /dev/null +++ b/tests/correos_prueba/042_correo/20220631541-01-E001-6994.xml @@ -0,0 +1,292 @@ + + + + + + + + + + + + ZBmXKuRV/6QvqeFLDjFrkbb+CjI=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 + + + + 2.1 + 2.0 + + E001-6994 + 2026-06-13 + 16:42:40.0Z + + 01 + + + + PEN + + + E001-6994 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20220631541 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + - + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00571016788 + + + + Detraccion + 027 + 4.00 + 57.00 + + + + + + FormaPago + Credito + 1363.65 + + + + FormaPago + Cuota001 + 1363.65 + 2026-06-26 + + + + + + + 216.71 + + + + + 1203.94 + 216.71 + + S + + 1000 + IGV + VAT + + + + + + 1203.94 + 0.00 + 0.00 + 0.00 + + 1420.65 + + + + 1 + 1.00 + 1203.941 + + false + + + + 1420.65038 + 01 + + + + + + + 150509 + + AV. PANAMERICANA NRO 602 - LIMA - CAÑETE - MALA + + + + + + 150143 + + AV. ATOCONGO 1860 - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 0.00 + + + 02 + 0.00 + + + 03 + 0.00 + + + 01 + + + 0 + + + - + false + + + 01 + 0.00 + + + + + + + + + true + 0.00 + + + + + 216.70938 + + + + + + 1203.941 + 216.70938 + + S + 18.00 + + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 1203.941 + + + + diff --git a/tests/correos_prueba/042_correo/pdf_resultado_042.json b/tests/correos_prueba/042_correo/pdf_resultado_042.json new file mode 100644 index 0000000..e5ed079 --- /dev/null +++ b/tests/correos_prueba/042_correo/pdf_resultado_042.json @@ -0,0 +1,43 @@ +[ + { + "ruc_emisor": "20220631541", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "13/06/2026", + "tipo": "01", + "serie": "E001", + "numero": "6994", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": "1363.65", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "57.00", + "lineas": [ + { + "descripcion": "UNIDAD SERVICIO DE TRANSPORTE DE CARGA DE MERCANCIAS CERTIFICADO DE INSCRIPCION:157935-CNG 750 BLS RUTA: LIMA-(LIMA)- MALA (CAÑETE) S/GRT:0001-28559 Y G.R.R: T001- 130612 DEL 12.06.26 F9V-838/C4E-990 CATEGORIA:T3S3", + "cantidad": "1.00", + "precio_unitario": "1.00", + "total_linea": "1203.941", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "130612" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 1,203.94", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "1203.94", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/042_correo/20220631541-01-E001-6994.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/042_correo/xml_resultado_042.json b/tests/correos_prueba/042_correo/xml_resultado_042.json new file mode 100644 index 0000000..fdc1db1 --- /dev/null +++ b/tests/correos_prueba/042_correo/xml_resultado_042.json @@ -0,0 +1,55 @@ +[ + { + "ruc_emisor": "20220631541", + "razon_social_emisor": "EMPRESA DE TRANSPORTE DE CARGA JUAN PABLO II SAC", + "fecha_emision": "2026-06-13", + "tipo": "01", + "serie": "E001", + "numero": "6994", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1420.65, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "130612" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 57.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE DE CARGA DE MERCANCIAS CERTIFICADO DE INSCRIPCION:157935-CNG 750 BLS RUTA: LIMA-(LIMA)- MALA (CAÑETE) S/GRT:0001-28559 Y G.R.R: T001-130612 DEL 12.06.26 F9V-838/C4E-990 CATEGORIA:T3S3", + "cantidad": 1.0, + "precio_unitario": 1420.65038, + "total_linea": 1203.941, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "130612" + } + ], + "guia_transportista": null + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/042_correo/20220631541-01-E001-6994.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/043_correo/20525144951-01-E001-15679.pdf b/tests/correos_prueba/043_correo/20525144951-01-E001-15679.pdf new file mode 100644 index 0000000..4affdfb Binary files /dev/null and b/tests/correos_prueba/043_correo/20525144951-01-E001-15679.pdf differ diff --git a/tests/correos_prueba/043_correo/20525144951-01-E001-15679.xml b/tests/correos_prueba/043_correo/20525144951-01-E001-15679.xml new file mode 100644 index 0000000..ce0d99c --- /dev/null +++ b/tests/correos_prueba/043_correo/20525144951-01-E001-15679.xml @@ -0,0 +1,292 @@ + + + + + + + + + + + + f0NNF5KJReTauXiS5O/+uTVeW58=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 + + + + 2.1 + 2.0 + + E001-15679 + 2026-06-13 + 08:49:20.0Z + + 01 + + + + PEN + + + E001-15679 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20525144951 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + - + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00013018421 + + + + Detraccion + 027 + 4.00 + 19.00 + + + + + + FormaPago + Credito + 449.86 + + + + FormaPago + Cuota001 + 449.86 + 2026-06-30 + + + + + + + 71.52 + + + + + 397.34 + 71.52 + + S + + 1000 + IGV + VAT + + + + + + 397.34 + 0.00 + 0.00 + 0.00 + + 468.86 + + + + 1 + 350.00 + 397.33897 + + false + + + + 1.339599956 + 01 + + + + + + + 150140 + + AV. SANTIAGO DE SURCO NRO.4869 - LIMA - LIMA - SANTIAGO DE SURCO + + + + + + 150143 + + AV. ATOCONGO 1860 - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 0.00 + + + 02 + 0.00 + + + 03 + 0.00 + + + 01 + + + 0 + + + - + false + + + 01 + 0.00 + + + + + + + + + true + 0.00 + + + + + 71.5210146 + + + + + + 397.33897 + 71.5210146 + + S + 18.00 + + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 1.1352542 + + + + diff --git a/tests/correos_prueba/043_correo/pdf_resultado_043.json b/tests/correos_prueba/043_correo/pdf_resultado_043.json new file mode 100644 index 0000000..447c10f --- /dev/null +++ b/tests/correos_prueba/043_correo/pdf_resultado_043.json @@ -0,0 +1,55 @@ +[ + { + "ruc_emisor": "20525144951", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "13/06/2026", + "tipo": "01", + "serie": "E001", + "numero": "15679", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": "449.86", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "19.00", + "lineas": [ + { + "descripcion": "BOLSA SERVICIO DE TRANSPORTE 350 BOLSAS DE CEMENTO X 1.339600 G.R.R:T001-130329 G.R.T: EG03-004473 C.VEHC: C3", + "cantidad": "350.00", + "precio_unitario": "350.00", + "total_linea": "1.1352542", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "130329" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "4473" + } + }, + { + "descripcion": "VALOR REFERENCIAL: CARGA: TN PLACA: ACE891", + "cantidad": "468.86", + "precio_unitario": "468.86", + "total_linea": "14.875", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 397.34", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "397.34", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/043_correo/20525144951-01-E001-15679.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/043_correo/xml_resultado_043.json b/tests/correos_prueba/043_correo/xml_resultado_043.json new file mode 100644 index 0000000..7703bd2 --- /dev/null +++ b/tests/correos_prueba/043_correo/xml_resultado_043.json @@ -0,0 +1,64 @@ +[ + { + "ruc_emisor": "20525144951", + "razon_social_emisor": "TRANSPORTES Y NEGOCIACIONES PRADA S.A.C.", + "fecha_emision": "2026-06-13", + "tipo": "01", + "serie": "E001", + "numero": "15679", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 468.86, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "130329" + }, + { + "tipo": "31", + "serie": "EG03", + "numero": "4473" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 19.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE 350 BOLSAS DE CEMENTO X 1.339600 G.R.R:T001-130329 G.R.T: EG03-004473 C.VEHC: C3 VALOR REFERENCIAL: 468.86 CARGA: 14.875 TN PLACA: ACE891", + "cantidad": 350.0, + "precio_unitario": 1.339599956, + "total_linea": 397.33897, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "130329" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "4473" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/043_correo/20525144951-01-E001-15679.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/044_correo/20220631541-01-E001-6994.pdf b/tests/correos_prueba/044_correo/20220631541-01-E001-6994.pdf new file mode 100644 index 0000000..c1d10bc Binary files /dev/null and b/tests/correos_prueba/044_correo/20220631541-01-E001-6994.pdf differ diff --git a/tests/correos_prueba/044_correo/20220631541-01-E001-6994.xml b/tests/correos_prueba/044_correo/20220631541-01-E001-6994.xml new file mode 100644 index 0000000..a075680 --- /dev/null +++ b/tests/correos_prueba/044_correo/20220631541-01-E001-6994.xml @@ -0,0 +1,292 @@ + + + + + + + + + + + + ZBmXKuRV/6QvqeFLDjFrkbb+CjI=r9EC76hFI3clkk7DvMxWp0b+i7fi8bH+/6BqgO9QU3gxP1rNAz1YfV5GK1j10YD9rlbvUj1gP/BZbHfo841o+5N+NBQE4YbgAkDysMpvszV7pc1t0eskZYp690AWxCLaRuRRvJtM5JrzDqt+GZ7JhsxYfM7k+UfNjh4SJDZZbBcthc+frHCP57iZcTX37QS+2L4aFUWVtX7hCotDr0vzB811WFupLB5SLncEKwkZ1c1qJxaiiNK6yf+6oMx4amllz4Mtv45t37EGT2kFy25c3mKaEf0XlxwrDGEvthVhtFpnGueMdyjKeB4Dra6Sb5UOhxP9/aaf18+Sq68tNMEWGw==MIIFrjCCBJagAwIBAgIIf9Td7Evg0UswDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQwODA5MTYxNTM5WhcNMjcwODA5MTYxNTAwWjCCAVQxKzApBgNVBAkMIkFWLiBHQVJDSUxBU08gREUgTEEgVkVHQSBOUk8uIDE0NzIxIjAgBgkqhkiG9w0BCQEWE3JtZXphZ0BzdW5hdC5nb2IucGUxQTA/BgNVBAMMOFNVUEVSSU5ULiBOQUMuIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBMRwwGgYDVQQLDBNBR0VOVEUgQVVUT01BVElaQURPMS4wLAYDVQQLDCVWYWxpZGFkbyBwb3IgQUJDIElERU5USURBRCBESUdJVEFMIEVSMVQwUgYDVQQKDEtTVVBFUklOVEVOREVOQ0lBIE5BQ0lPTkFMIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBIC0gU1VOQVQxDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1apapJOwMj9tBpgKAgjRwIloUk+xwvQZxc0s/4yl4mDSrc/F/PKZ3QBmKb43fFwivqPUvsr68fQTfyLKM14B+xXwlbQ/yh3+87sMyulLhOPmtSOU0PE8Rw0PsmGVxf1L0HPAPc3Gvuhq4Z9Dx5ByED6s+VppDmncvctlJ/NrzYZCk9H91OinTTPVZrDtbmqnOYra8PaTRoCI9Fmndeo9Oo7esM7KVX9f53NEd/mNQqzAOrgSXthFuBZN7zOsGxJ4ZGrVzHSlCH/jFLgObEizHrqisgL1cxKj8QvbGLUjNtUuTvR5IY6hwRLCxbliTa84BN10E0jC7hhAnnuEIAFJiwIDAQABo4IBjjCCAYowDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRbMFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAeBgNVHREEFzAVgRNybWV6YWdAc3VuYXQuZ29iLnBlMEYGA1UdIAQ/MD0wOwYNKwYBBAGDl3cAAQADATAqMCgGCCsGAQUFBwIBFhxodHRwczovL2xsYW1hLnBlL3JlcG9zaXRvcnkvMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDA6BgNVHR8EMzAxMC+gLaArhilodHRwOi8vY3JsLmxsYW1hLnBlL2xsYW1hcGVzdGFuZGFyZGNhLmNybDAdBgNVHQ4EFgQUuRkPCyM25gAu5se9GraC/UO07X8wDgYDVR0PAQH/BAQDAgbAMA0GCSqGSIb3DQEBCwUAA4IBAQBC8+YM7moZ7bKYCS+VzJ8wzydSboWeNuAs2CfkhI8hRMQr1r5WZg8pDlroCslF/r6SjbkrjuDHcGKJTM2riGEjlOD4CLU9VjOP7Td6CIZyJRLaz63pZYOwE0H0weG/PvYpopDZzJ6AXYzZxwYkJ03/x/vwaCss9ZvmsEn2E1xtGbnMe9MEsg8oF0ul3uRn8Qy5gF37fM7YKuF/r4iBS5uSvBcA5J2FbI/PQls7OgICDyb3W16GeluaT9krY5wQxilJSpGVU++nv5NzmRHkquH3ic2It/KP6MZ9X2tfg6FhpF6JaUz7MSY+J0KnDDcfJlhxgnkgoT5tV3Sr6z5PpQH6 + + + + 2.1 + 2.0 + + E001-6994 + 2026-06-13 + 16:42:40.0Z + + 01 + + + + PEN + + + E001-6994 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20220631541 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + - + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00571016788 + + + + Detraccion + 027 + 4.00 + 57.00 + + + + + + FormaPago + Credito + 1363.65 + + + + FormaPago + Cuota001 + 1363.65 + 2026-06-26 + + + + + + + 216.71 + + + + + 1203.94 + 216.71 + + S + + 1000 + IGV + VAT + + + + + + 1203.94 + 0.00 + 0.00 + 0.00 + + 1420.65 + + + + 1 + 1.00 + 1203.941 + + false + + + + 1420.65038 + 01 + + + + + + + 150509 + + AV. PANAMERICANA NRO 602 - LIMA - CAÑETE - MALA + + + + + + 150143 + + AV. ATOCONGO 1860 - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 0.00 + + + 02 + 0.00 + + + 03 + 0.00 + + + 01 + + + 0 + + + - + false + + + 01 + 0.00 + + + + + + + + + true + 0.00 + + + + + 216.70938 + + + + + + 1203.941 + 216.70938 + + S + 18.00 + + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 1203.941 + + + + diff --git a/tests/correos_prueba/044_correo/pdf_resultado_044.json b/tests/correos_prueba/044_correo/pdf_resultado_044.json new file mode 100644 index 0000000..5d3a1df --- /dev/null +++ b/tests/correos_prueba/044_correo/pdf_resultado_044.json @@ -0,0 +1,43 @@ +[ + { + "ruc_emisor": "20220631541", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "13/06/2026", + "tipo": "01", + "serie": "E001", + "numero": "6994", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": "1363.65", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "57.00", + "lineas": [ + { + "descripcion": "UNIDAD SERVICIO DE TRANSPORTE DE CARGA DE MERCANCIAS CERTIFICADO DE INSCRIPCION:157935-CNG 750 BLS RUTA: LIMA-(LIMA)- MALA (CAÑETE) S/GRT:0001-28559 Y G.R.R: T001- 130612 DEL 12.06.26 F9V-838/C4E-990 CATEGORIA:T3S3", + "cantidad": "1.00", + "precio_unitario": "1.00", + "total_linea": "1203.941", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "130612" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 1,203.94", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "1203.94", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/044_correo/20220631541-01-E001-6994.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/044_correo/xml_resultado_044.json b/tests/correos_prueba/044_correo/xml_resultado_044.json new file mode 100644 index 0000000..0551870 --- /dev/null +++ b/tests/correos_prueba/044_correo/xml_resultado_044.json @@ -0,0 +1,55 @@ +[ + { + "ruc_emisor": "20220631541", + "razon_social_emisor": "EMPRESA DE TRANSPORTE DE CARGA JUAN PABLO II SAC", + "fecha_emision": "2026-06-13", + "tipo": "01", + "serie": "E001", + "numero": "6994", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1420.65, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "130612" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 57.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE DE CARGA DE MERCANCIAS CERTIFICADO DE INSCRIPCION:157935-CNG 750 BLS RUTA: LIMA-(LIMA)- MALA (CAÑETE) S/GRT:0001-28559 Y G.R.R: T001-130612 DEL 12.06.26 F9V-838/C4E-990 CATEGORIA:T3S3", + "cantidad": 1.0, + "precio_unitario": 1420.65038, + "total_linea": 1203.941, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "130612" + } + ], + "guia_transportista": null + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/044_correo/20220631541-01-E001-6994.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/045_correo/10075211215-01-E001-7266.pdf b/tests/correos_prueba/045_correo/10075211215-01-E001-7266.pdf new file mode 100644 index 0000000..5e4c199 Binary files /dev/null and b/tests/correos_prueba/045_correo/10075211215-01-E001-7266.pdf differ diff --git a/tests/correos_prueba/045_correo/10075211215-01-E001-7266.xml b/tests/correos_prueba/045_correo/10075211215-01-E001-7266.xml new file mode 100644 index 0000000..5eb527f --- /dev/null +++ b/tests/correos_prueba/045_correo/10075211215-01-E001-7266.xml @@ -0,0 +1,302 @@ + + + + + + + + + + + + yYfVrNUpeapxNDwHUU8gsV1bwiM=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 + + + + 2.1 + 2.0 + + E001-7266 + 2026-07-11 + 12:40:25.0Z + + 01 + + + + PEN + + T001 - 0132215 + 09 + + + + EG03 - 0003144 + 31 + + + + + E001-7266 + + + SUNAT + + + + + SignSUNAT + + + + + + + 10075211215 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + 1536131CNG + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00063055972 + + + + Detraccion + 027 + 4.00 + 38.58 + + + + + + FormaPago + Credito + 925.93 + + + + FormaPago + Cuota001 + 925.93 + 2026-08-29 + + + + + + + 147.13 + + + + + 817.38 + 147.13 + + S + + 1000 + IGV + VAT + + + + + + 817.38 + 0.00 + 0.00 + 0.00 + + 964.51 + + + + 1 + 720.00 + 817.38288 + + false + + + + 1.33959972 + 01 + + + + + + + 150133 + + AV DEFENSORES DE LIMA MZA LT5 PJ ALF UGARTE - LIMA - LIMA - SAN JUAN DE MIRAFLORES + + + + + CEMENTO EMBOLSADO 42.5KG + + 150143 + + AV 26 DE NOVIEMBRE 2473 AH VIRGEN DE LOURDES PARADERO 14 NVA ESPERANZA - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 964.51 + + + 02 + 925.93 + + + 03 + 964.51 + + + 01 + + + 0 + + + T3 S3 + false + + + 01 + 30600.00 + + + + + + + + + true + 0.00 + + + + + 147.1289184 + + + + + + 817.38288 + 147.1289184 + + S + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 1.135254 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/045_correo/pdf_resultado_045.json b/tests/correos_prueba/045_correo/pdf_resultado_045.json new file mode 100644 index 0000000..1b5e8aa --- /dev/null +++ b/tests/correos_prueba/045_correo/pdf_resultado_045.json @@ -0,0 +1,37 @@ +[ + { + "ruc_emisor": "10075211215", + "razon_social_emisor": "A. BERIO Y CIA S.A.C. GUIA DE REMISION REMITENTE : T001", + "fecha_emision": "11/07/2026", + "tipo": "01", + "serie": "E001", + "numero": "7266", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C. GUIA DE REMISION REMITENTE : T001", + "total_factura": "925.93", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "38.58", + "lineas": [ + { + "descripcion": "BOLSA SERV DE TRANSP: 720 BOL CEMENTO PTO DE PDA: AV ATOCONGO 1860 VMT PTO DE LLEGADA AV DEFENSORES DE LIMA MZA A LTE 5 SJM CONF VEHICULAR: T3 S3. PLACAS :B3E887 / F4S714 NRO DE REGISTRO 1536131CNG CARGA TN 30.600. V.R. S/964.51 CTA BN: 00-063-055972 COD:", + "cantidad": "720.00", + "precio_unitario": "720.00", + "total_linea": "1.135254", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 817.38", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "817.38", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/045_correo/10075211215-01-E001-7266.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/045_correo/xml_resultado_045.json b/tests/correos_prueba/045_correo/xml_resultado_045.json new file mode 100644 index 0000000..22a4feb --- /dev/null +++ b/tests/correos_prueba/045_correo/xml_resultado_045.json @@ -0,0 +1,64 @@ +[ + { + "ruc_emisor": "10075211215", + "razon_social_emisor": "FERRETERIA DEPOSITO FABIAN", + "fecha_emision": "2026-07-11", + "tipo": "01", + "serie": "E001", + "numero": "7266", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 964.51, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "132215" + }, + { + "tipo": "31", + "serie": "EG03", + "numero": "3144" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 38.58, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERV DE TRANSP: 720 BOL CEMENTO PTO DE PDA: AV ATOCONGO 1860 VMT PTO DE LLEGADA AV DEFENSORES DE LIMA MZA A LTE 5 SJM CONF VEHICULAR: T3 S3. PLACAS :B3E887 / F4S714 NRO DE REGISTRO 1536131CNG CARGA TN 30.600. V.R. S/964.51 CTA BN: 00-063-055972 COD:", + "cantidad": 720.0, + "precio_unitario": 1.33959972, + "total_linea": 817.38288, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "132215" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "3144" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/045_correo/10075211215-01-E001-7266.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/046_correo/20525144951-01-E001-15864.pdf b/tests/correos_prueba/046_correo/20525144951-01-E001-15864.pdf new file mode 100644 index 0000000..d263f95 Binary files /dev/null and b/tests/correos_prueba/046_correo/20525144951-01-E001-15864.pdf differ diff --git a/tests/correos_prueba/046_correo/20525144951-01-E001-15864.xml b/tests/correos_prueba/046_correo/20525144951-01-E001-15864.xml new file mode 100644 index 0000000..770296c --- /dev/null +++ b/tests/correos_prueba/046_correo/20525144951-01-E001-15864.xml @@ -0,0 +1,291 @@ + + + + + + + + + + + + JuetyvwmdgqQGTk2t2mVn8xIWHk=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 + + + + 2.1 + 2.0 + + E001-15864 + 2026-07-11 + 11:22:32.0Z + + 01 + + + + PEN + + + E001-15864 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20525144951 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + - + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00013018421 + + + + Detraccion + 027 + 4.00 + 19.00 + + + + + + FormaPago + Credito + 449.86 + + + + FormaPago + Cuota001 + 449.86 + 2026-07-31 + + + + + + + 71.52 + + + + + 397.34 + 71.52 + + S + + 1000 + IGV + VAT + + + + + + 397.34 + 0.00 + 0.00 + 0.00 + + 468.86 + + + + 1 + 350.00 + 397.33897 + + false + + + + 1.339599956 + 01 + + + + + + + 150133 + + MZA.C LT.12 COO.DE VIVIENDA URANMARCA - LA LIBERTAD - LIMA - SAN JUAN DE MIRAFLORES + + + + + + 150143 + + AV. ATOCONGO 1860 - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 0.00 + + + 02 + 0.00 + + + 03 + 0.00 + + + 01 + + + 0 + + + - + false + + + 01 + 0.00 + + + + + + + + + true + 0.00 + + + + + 71.5210146 + + + + + + 397.33897 + 71.5210146 + + S + 18.00 + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 1.1352542 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/046_correo/pdf_resultado_046.json b/tests/correos_prueba/046_correo/pdf_resultado_046.json new file mode 100644 index 0000000..6df2902 --- /dev/null +++ b/tests/correos_prueba/046_correo/pdf_resultado_046.json @@ -0,0 +1,55 @@ +[ + { + "ruc_emisor": "20525144951", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "11/07/2026", + "tipo": "01", + "serie": "E001", + "numero": "15864", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": "449.86", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "19.00", + "lineas": [ + { + "descripcion": "UNIDAD SERVICIO DE TRANSPORTE 350 BOLSAS DE CEMENTO X 1.339600 G.R.R:T001-132131 G.R.T: EG03-004643 C.VEHC: C3", + "cantidad": "350.00", + "precio_unitario": "350.00", + "total_linea": "1.1352542", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "132131" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "4643" + } + }, + { + "descripcion": "VALOR REFERENCIAL: CARGA: TN PLACA: A1Z889", + "cantidad": "468.86", + "precio_unitario": "468.86", + "total_linea": "14.875", + "guias_remision": [], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 397.34", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "397.34", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/046_correo/20525144951-01-E001-15864.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/046_correo/xml_resultado_046.json b/tests/correos_prueba/046_correo/xml_resultado_046.json new file mode 100644 index 0000000..799c1c6 --- /dev/null +++ b/tests/correos_prueba/046_correo/xml_resultado_046.json @@ -0,0 +1,64 @@ +[ + { + "ruc_emisor": "20525144951", + "razon_social_emisor": "TRANSPORTES Y NEGOCIACIONES PRADA S.A.C.", + "fecha_emision": "2026-07-11", + "tipo": "01", + "serie": "E001", + "numero": "15864", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 468.86, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "132131" + }, + { + "tipo": "31", + "serie": "EG03", + "numero": "4643" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 19.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE 350 BOLSAS DE CEMENTO X 1.339600 G.R.R:T001-132131 G.R.T: EG03-004643 C.VEHC: C3 VALOR REFERENCIAL: 468.86 CARGA: 14.875 TN PLACA: A1Z889", + "cantidad": 350.0, + "precio_unitario": 1.339599956, + "total_linea": 397.33897, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "132131" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "4643" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/046_correo/20525144951-01-E001-15864.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/047_correo/20603551151-01-E001-3915.pdf b/tests/correos_prueba/047_correo/20603551151-01-E001-3915.pdf new file mode 100644 index 0000000..0d56592 Binary files /dev/null and b/tests/correos_prueba/047_correo/20603551151-01-E001-3915.pdf differ diff --git a/tests/correos_prueba/047_correo/20603551151-01-E001-3915.xml b/tests/correos_prueba/047_correo/20603551151-01-E001-3915.xml new file mode 100644 index 0000000..7e9691b --- /dev/null +++ b/tests/correos_prueba/047_correo/20603551151-01-E001-3915.xml @@ -0,0 +1,292 @@ + + + + + + + + + + + + vmt4f6LQVavNKCTELhq7BqB9mAE=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 + + + + 2.1 + 2.0 + + E001-3915 + 2026-07-11 + 16:17:56.0Z + + 01 + + + + PEN + + + E001-3915 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20603551151 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + - + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00058345407 + + + + Detraccion + 027 + 4.00 + 64.00 + + + + + + FormaPago + Credito + 1546.07 + + + + FormaPago + Cuota001 + 1546.07 + 2026-07-24 + + + + + + + 245.60 + + + + + 1364.47 + 245.60 + + S + + 1000 + IGV + VAT + + + + + + 1364.47 + 0.00 + 0.00 + 0.00 + + 1610.07 + + + + 1 + 1.00 + 1364.466 + + false + + + + 1610.06988 + 01 + + + + + + + 150509 + + AV. PANAMERICANA NRO 602 - LIMA - CAÑETE - MALA + + + + + + 150143 + + AV. ATOCONGO 1860 - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 0.00 + + + 02 + 0.00 + + + 03 + 0.00 + + + 01 + + + 0 + + + - + false + + + 01 + 0.00 + + + + + + + + + true + 0.00 + + + + + 245.60388 + + + + + + 1364.466 + 245.60388 + + S + 18.00 + + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 1364.466 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/047_correo/pdf_resultado_047.json b/tests/correos_prueba/047_correo/pdf_resultado_047.json new file mode 100644 index 0000000..c3abc10 --- /dev/null +++ b/tests/correos_prueba/047_correo/pdf_resultado_047.json @@ -0,0 +1,47 @@ +[ + { + "ruc_emisor": "20603551151", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "11/07/2026", + "tipo": "01", + "serie": "E001", + "numero": "3915", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": "1546.07", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "64.00", + "lineas": [ + { + "descripcion": "UNIDAD SERVICIO DE TRANSPORTE DE CARGA DE MERCANCIAS CERTIFICADO DE INSCRIPCION:15157277-CNG 850 BLS RUTA: LIMA-(LIMA)- MALA (CAÑETE) S/GRT: EG03-130 Y G.R.R: T001- 132078 DEL 09.07.26 F0I-756/BUT-978 CATEGORIA: T3S3", + "cantidad": "1.00", + "precio_unitario": "1.00", + "total_linea": "1364.466", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "132078" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "130" + } + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 1,364.47", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "1364.47", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/047_correo/20603551151-01-E001-3915.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/047_correo/xml_resultado_047.json b/tests/correos_prueba/047_correo/xml_resultado_047.json new file mode 100644 index 0000000..6f6add6 --- /dev/null +++ b/tests/correos_prueba/047_correo/xml_resultado_047.json @@ -0,0 +1,64 @@ +[ + { + "ruc_emisor": "20603551151", + "razon_social_emisor": "TRANSPORTE Y LOGISTICA JUAN PABLO II S.A.C.", + "fecha_emision": "2026-07-11", + "tipo": "01", + "serie": "E001", + "numero": "3915", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1610.07, + "documentos_referencia": [ + { + "tipo": "31", + "serie": "EG03", + "numero": "130" + }, + { + "tipo": "09", + "serie": "T001", + "numero": "132078" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 64.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE DE CARGA DE MERCANCIAS CERTIFICADO DE INSCRIPCION:15157277-CNG 850 BLS RUTA: LIMA-(LIMA)- MALA (CAÑETE) S/GRT: EG03-130 Y G.R.R: T001-132078 DEL 09.07.26 F0I-756/BUT-978 CATEGORIA: T3S3", + "cantidad": 1.0, + "precio_unitario": 1610.06988, + "total_linea": 1364.466, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "132078" + } + ], + "guia_transportista": { + "tipo": "31", + "serie": "EG03", + "numero": "130" + } + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/047_correo/20603551151-01-E001-3915.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/048_correo/20220631541-01-E001-7055.pdf b/tests/correos_prueba/048_correo/20220631541-01-E001-7055.pdf new file mode 100644 index 0000000..6e1c63d Binary files /dev/null and b/tests/correos_prueba/048_correo/20220631541-01-E001-7055.pdf differ diff --git a/tests/correos_prueba/048_correo/20220631541-01-E001-7055.xml b/tests/correos_prueba/048_correo/20220631541-01-E001-7055.xml new file mode 100644 index 0000000..65abd95 --- /dev/null +++ b/tests/correos_prueba/048_correo/20220631541-01-E001-7055.xml @@ -0,0 +1,292 @@ + + + + + + + + + + + + eN3XECBba/wsMG+cLp8BbvnA32Q=Edyi0rUdcicQQ9IxHPoq9rUr+oZs/38SIMfk3OIPcQo6qQ1MtyRSXtVuZWgf6esvHEOlLx9JZGnyvjei2S5nXFkoExgNfxA3Y3xcy2abTl/wnUQrF5u0eJ7e56tjICdbmahrRNdAoG4SVzGFQTk1nHvJOCcoPbZCi50lmMYv1IspD13Tq4bero1hMXaHhjkYwNxmTTuhZ9jES5WmGAizO2DH3zTJasshs1M7nxo7gmob/EGoFPrCGkeP09DT6FKyMcEaWffNs+98MqRZmk0r4OQcm1BlBXxTNyM+Hjx/eAePtvRLk9+2zhtTVrfY6/p+fX8DhVXqmL4s0JAAQXsDlQ==MIIFrjCCBJagAwIBAgIIf9Td7Evg0UswDQYJKoZIhvcNAQELBQAwRjEkMCIGA1UEAwwbTGxhbWEucGUgU0hBMjU2IFN0YW5kYXJkIENBMREwDwYDVQQKDAhMTEFNQS5QRTELMAkGA1UEBhMCUEUwHhcNMjQwODA5MTYxNTM5WhcNMjcwODA5MTYxNTAwWjCCAVQxKzApBgNVBAkMIkFWLiBHQVJDSUxBU08gREUgTEEgVkVHQSBOUk8uIDE0NzIxIjAgBgkqhkiG9w0BCQEWE3JtZXphZ0BzdW5hdC5nb2IucGUxQTA/BgNVBAMMOFNVUEVSSU5ULiBOQUMuIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBMRwwGgYDVQQLDBNBR0VOVEUgQVVUT01BVElaQURPMS4wLAYDVQQLDCVWYWxpZGFkbyBwb3IgQUJDIElERU5USURBRCBESUdJVEFMIEVSMVQwUgYDVQQKDEtTVVBFUklOVEVOREVOQ0lBIE5BQ0lPTkFMIERFIEFEVUFOQVMgWSBERSBBRE1JTklTVFJBQ0lPTiBUUklCVVRBUklBIC0gU1VOQVQxDTALBgNVBAcMBExJTUExCzAJBgNVBAYTAlBFMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1apapJOwMj9tBpgKAgjRwIloUk+xwvQZxc0s/4yl4mDSrc/F/PKZ3QBmKb43fFwivqPUvsr68fQTfyLKM14B+xXwlbQ/yh3+87sMyulLhOPmtSOU0PE8Rw0PsmGVxf1L0HPAPc3Gvuhq4Z9Dx5ByED6s+VppDmncvctlJ/NrzYZCk9H91OinTTPVZrDtbmqnOYra8PaTRoCI9Fmndeo9Oo7esM7KVX9f53NEd/mNQqzAOrgSXthFuBZN7zOsGxJ4ZGrVzHSlCH/jFLgObEizHrqisgL1cxKj8QvbGLUjNtUuTvR5IY6hwRLCxbliTa84BN10E0jC7hhAnnuEIAFJiwIDAQABo4IBjjCCAYowDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBRdiFut62X7/mii5NlvPVdyou8rmTBnBggrBgEFBQcBAQRbMFkwNQYIKwYBBQUHMAKGKWh0dHA6Ly9jcnQubGxhbWEucGUvbGxhbWFwZXN0YW5kYXJkY2EuY2VyMCAGCCsGAQUFBzABhhRodHRwOi8vb2NzcC5sbGFtYS5wZTAeBgNVHREEFzAVgRNybWV6YWdAc3VuYXQuZ29iLnBlMEYGA1UdIAQ/MD0wOwYNKwYBBAGDl3cAAQADATAqMCgGCCsGAQUFBwIBFhxodHRwczovL2xsYW1hLnBlL3JlcG9zaXRvcnkvMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDA6BgNVHR8EMzAxMC+gLaArhilodHRwOi8vY3JsLmxsYW1hLnBlL2xsYW1hcGVzdGFuZGFyZGNhLmNybDAdBgNVHQ4EFgQUuRkPCyM25gAu5se9GraC/UO07X8wDgYDVR0PAQH/BAQDAgbAMA0GCSqGSIb3DQEBCwUAA4IBAQBC8+YM7moZ7bKYCS+VzJ8wzydSboWeNuAs2CfkhI8hRMQr1r5WZg8pDlroCslF/r6SjbkrjuDHcGKJTM2riGEjlOD4CLU9VjOP7Td6CIZyJRLaz63pZYOwE0H0weG/PvYpopDZzJ6AXYzZxwYkJ03/x/vwaCss9ZvmsEn2E1xtGbnMe9MEsg8oF0ul3uRn8Qy5gF37fM7YKuF/r4iBS5uSvBcA5J2FbI/PQls7OgICDyb3W16GeluaT9krY5wQxilJSpGVU++nv5NzmRHkquH3ic2It/KP6MZ9X2tfg6FhpF6JaUz7MSY+J0KnDDcfJlhxgnkgoT5tV3Sr6z5PpQH6 + + + + 2.1 + 2.0 + + E001-7055 + 2026-07-11 + 16:14:59.0Z + + 01 + + + + PEN + + + E001-7055 + + + SUNAT + + + + + SignSUNAT + + + + + + + 20220631541 + + + + + + + + 0 + + - + + + + + + + + + PE + + + + + + + - + + + + + + + + + + 20100029741 + + + + + 0 + + + LIMA + LIMA + + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + + LIMA + LIMA + 150143 + VILLA MARIA DEL TRIUNFO + + + + + PE + + + + + + + + + + + Detraccion + 001 + + 00571016788 + + + + Detraccion + 027 + 4.00 + 118.00 + + + + + + FormaPago + Credito + 1739.11 + + + + FormaPago + Cuota001 + 1739.11 + 2026-07-24 + + + + + + + 283.29 + + + + + 1573.83 + 283.29 + + S + + 1000 + IGV + VAT + + + + + + 1573.83 + 0.00 + 0.00 + 0.00 + + 1857.11 + + + + 1 + 1.00 + 1573.825 + + false + + + + 1857.1135 + 01 + + + + + + + 150501 + + AV.M. BENAVIDES MZ. P LT.28 SIND.CHOFERES - LIMA - CAÑETE - SAN VICENTE DE CAÑETE + + + + + + 150143 + + AV ATOCONGO 1860 - LIMA - LIMA - VILLA MARIA DEL TRIUNFO + + + + + 01 + 0.00 + + + 02 + 0.00 + + + 03 + 0.00 + + + 01 + + + 0 + + + - + false + + + 01 + 0.00 + + + + + + + + + true + 0.00 + + + + + 283.2885 + + + + + + 1573.825 + 283.2885 + + S + 18.00 + + 10 + + 1000 + IGV + VAT + + + + + + + + + + + + + + + + 1573.825 + + + + \ No newline at end of file diff --git a/tests/correos_prueba/048_correo/pdf_resultado_048.json b/tests/correos_prueba/048_correo/pdf_resultado_048.json new file mode 100644 index 0000000..e4cf249 --- /dev/null +++ b/tests/correos_prueba/048_correo/pdf_resultado_048.json @@ -0,0 +1,43 @@ +[ + { + "ruc_emisor": "20220631541", + "razon_social_emisor": "A. BERIO Y CIA S.A.C.", + "fecha_emision": "11/07/2026", + "tipo": "01", + "serie": "E001", + "numero": "7055", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": "1739.11", + "documentos_referencia": [], + "tiene_detraccion": true, + "codigo_detraccion": null, + "porcentaje_detraccion": null, + "monto_detraccion": "118.00", + "lineas": [ + { + "descripcion": "UNIDAD SERVICIO DE TRANSPORTE DE CARGA DE MERCANCIAS CERTIFICADO DE INSCRIPCION:157935-CNG 867 BLS RUTA: LIMA-(LIMA)- SAN VICENTE DE CAÑETE (CAÑETE) S/GRT:0001- 28642 Y G.R.R: T001-132098,132099 DEL 09.07.26 F6G-856/ASU- 978 CATEGORIA: T3S3", + "cantidad": "1.00", + "precio_unitario": "1.00", + "total_linea": "1573.825", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "132098" + } + ], + "guia_transportista": null + }, + { + "descripcion": "Valor de Venta de Operaciones Gratuitas : S/ Sub Total Ventas : S/ Anticipos : S/ 0.00 Descuentos : S/ 0.00 Valor Venta : S/ 1,573.83", + "cantidad": "0.00", + "precio_unitario": "0.00", + "total_linea": "1573.83", + "guias_remision": [], + "guia_transportista": null + } + ], + "ruta_pdf": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/048_correo/20220631541-01-E001-7055.pdf" + } +] \ No newline at end of file diff --git a/tests/correos_prueba/048_correo/xml_resultado_048.json b/tests/correos_prueba/048_correo/xml_resultado_048.json new file mode 100644 index 0000000..1cf535c --- /dev/null +++ b/tests/correos_prueba/048_correo/xml_resultado_048.json @@ -0,0 +1,55 @@ +[ + { + "ruc_emisor": "20220631541", + "razon_social_emisor": "EMPRESA DE TRANSPORTE DE CARGA JUAN PABLO II SAC", + "fecha_emision": "2026-07-11", + "tipo": "01", + "serie": "E001", + "numero": "7055", + "ruc_receptor": "20100029741", + "razon_social_receptor": "A. BERIO Y CIA S.A.C.", + "total_factura": 1857.11, + "documentos_referencia": [ + { + "tipo": "09", + "serie": "T001", + "numero": "132098" + } + ], + "tiene_detraccion": true, + "codigo_detraccion": "027", + "porcentaje_detraccion": 4.0, + "monto_detraccion": 118.0, + "punto_partida": null, + "punto_llegada": null, + "peso_bruto": null, + "unidad_peso_bruto": null, + "fecha_traslado": null, + "vehiculo_principal": null, + "vehiculo_secundario": null, + "licencia_conductor": null, + "nombre_conductor": null, + "documento_conductor": null, + "ubigeo_partida": null, + "lineas": [ + { + "descripcion": "SERVICIO DE TRANSPORTE DE CARGA DE MERCANCIAS CERTIFICADO DE INSCRIPCION:157935-CNG 867 BLS RUTA: LIMA-(LIMA)- SAN VICENTE DE CAÑETE (CAÑETE) S/GRT:0001-28642 Y G.R.R: T001-132098,132099 DEL 09.07.26 F6G-856/ASU-978 CATEGORIA: T3S3", + "cantidad": 1.0, + "precio_unitario": 1857.1135, + "total_linea": 1573.825, + "notes_text": "", + "guias_remision": [ + { + "tipo": "09", + "serie": "T001", + "numero": "132098" + } + ], + "guia_transportista": null + } + ], + "tipo_descripcion": "Factura", + "ruta_xml": "/Users/george/Documents/Desarrollo/Python/aberio/descarga_factura_transporte/tests/correos_prueba/048_correo/20220631541-01-E001-7055.xml", + "ruta_pdf": null + } +] \ No newline at end of file diff --git a/tests/correos_prueba/indice_correos.json b/tests/correos_prueba/indice_correos.json new file mode 100644 index 0000000..f6a5af7 --- /dev/null +++ b/tests/correos_prueba/indice_correos.json @@ -0,0 +1,232 @@ +{ + "001": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAB4w1WAAA=", + "fecha": "2026-06-06 12:01:15", + "subject": "RE: FACTURAS, XML" + }, + "002": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAEqQitAAA=", + "fecha": "2026-06-10 17:15:07", + "subject": "CEMFISUR FACTURA F002-2188" + }, + "003": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAEqQiuAAA=", + "fecha": "2026-06-10 17:20:22", + "subject": "MATERIALES D'CASA FACTURA FE07-1559" + }, + "004": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAEqQivAAA=", + "fecha": "2026-06-10 17:26:57", + "subject": "R & P TRANSFER SAC FACTURA F004-5989" + }, + "005": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAEsIB2AAA=", + "fecha": "2026-06-10 17:29:30", + "subject": "DISTRIBUIDORA FERRETERA NASCA SAC F004-3544" + }, + "006": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAEsIB3AAA=", + "fecha": "2026-06-11 10:23:07", + "subject": "TREFILADOS EL SALVADOR SRL - FACTURA F011-2786" + }, + "007": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAEsIB4AAA=", + "fecha": "2026-06-11 10:38:25", + "subject": "RV: GUIA VPP1-516" + }, + "008": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAEsIB5AAA=", + "fecha": "2026-06-11 11:06:50", + "subject": "DISTRIBUIDORA SANTA PATRICIA SRL - FACTURA F002-52385" + }, + "009": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAEsIB6AAA=", + "fecha": "2026-06-11 11:17:33", + "subject": "ZAPATA ARAPA EUSEBIO - FACTURA FPP1-15407" + }, + "010": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAEsIB7AAA=", + "fecha": "2026-06-11 16:51:45", + "subject": "REMUZGO PISCONTI LIZ GIANNINA - FACTURA FF01-3308" + }, + "011": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAEsIB8AAA=", + "fecha": "2026-06-11 18:45:03", + "subject": "FERREMAURO Y HNOS SRL - FACTURA FF03-1100" + }, + "012": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAGcVUJAAA=", + "fecha": "2026-06-13 12:55:25", + "subject": "EMPRESA DE TRANSPORTE DE CARGA JUAN PABLO II SAC - FACTURA E001-6942" + }, + "013": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAANdfjoAAA=", + "fecha": "2026-06-24 15:11:01", + "subject": "RV: FERREMAURO Y HNOS SRL - FACTURA FF03-1100" + }, + "014": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAANdfjpAAA=", + "fecha": "2026-06-24 15:11:20", + "subject": "RV: REMUZGO PISCONTI LIZ GIANNINA - FACTURA FF01-3308" + }, + "015": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAO902nAAA=", + "fecha": "2026-06-26 09:35:32", + "subject": "factura transporte" + }, + "017": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAQQ0MNAAA=", + "fecha": "2026-06-30 14:54:34", + "subject": "envio facturas" + }, + "018": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAQQ0MOAAA=", + "fecha": "2026-06-30 15:07:09", + "subject": "F002-20851" + }, + "019": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAQQ0MPAAA=", + "fecha": "2026-06-30 15:11:58", + "subject": "E001-5506" + }, + "020": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAASMGzoAAA=", + "fecha": "2026-07-01 13:09:37", + "subject": "20261374898-01-FF05-0100595 (1)" + }, + "021": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAASMGzpAAA=", + "fecha": "2026-07-01 13:22:48", + "subject": "FF05-100959" + }, + "022": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAASMGzqAAA=", + "fecha": "2026-07-02 12:16:41", + "subject": "f002-00053135" + }, + "023": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAASMGzrAAA=", + "fecha": "2026-07-07 10:02:01", + "subject": "F001-70705" + }, + "024": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAASMGzsAAA=", + "fecha": "2026-07-07 10:55:34", + "subject": "F002-486" + }, + "025": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAASMGztAAA=", + "fecha": "2026-07-07 10:56:25", + "subject": "F002-488" + }, + "026": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAASMGzuAAA=", + "fecha": "2026-07-07 13:16:29", + "subject": "RV: F002-486" + }, + "027": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAASMGzvAAA=", + "fecha": "2026-07-07 13:19:51", + "subject": "f002-486" + }, + "028": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAASMGzwAAA=", + "fecha": "2026-07-07 13:21:05", + "subject": "f002-486" + }, + "029": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAASMGzxAAA=", + "fecha": "2026-07-07 15:09:32", + "subject": "FF05-100595" + }, + "030": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAASMGzyAAA=", + "fecha": "2026-07-08 16:07:08", + "subject": "f002-00053359" + }, + "031": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAASMGzzAAA=", + "fecha": "2026-07-08 16:18:53", + "subject": "F002-21184" + }, + "032": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAASMGz0AAA=", + "fecha": "2026-07-08 16:48:04", + "subject": "F002-003210" + }, + "033": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAASMGz1AAA=", + "fecha": "2026-07-08 16:52:54", + "subject": "E001-5554" + }, + "035": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAaIwvBAAA=", + "fecha": "2026-07-13 16:17:40", + "subject": "E001-5252" + }, + "036": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAaIwvCAAA=", + "fecha": "2026-07-13 16:18:24", + "subject": "e001-121420" + }, + "037": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAaIwvDAAA=", + "fecha": "2026-07-13 16:19:43", + "subject": "flete" + }, + "038": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAaIwvEAAA=", + "fecha": "2026-07-13 16:20:12", + "subject": "facturas de flete cliente" + }, + "039": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAaIwvFAAA=", + "fecha": "2026-07-13 16:20:46", + "subject": "flete 8581" + }, + "040": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAaIwvGAAA=", + "fecha": "2026-07-13 16:45:28", + "subject": "e00" + }, + "041": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAaIwvHAAA=", + "fecha": "2026-07-13 16:57:44", + "subject": "861" + }, + "042": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAa3YW6AAA=", + "fecha": "2026-07-14 08:57:31", + "subject": "factura" + }, + "043": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAa3YW7AAA=", + "fecha": "2026-07-14 09:19:21", + "subject": "E001-15679" + }, + "044": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAa3YW8AAA=", + "fecha": "2026-07-14 09:26:29", + "subject": "factura E001 6994" + }, + "045": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAgylkOAAA=", + "fecha": "2026-07-24 12:50:05", + "subject": "factura E001" + }, + "046": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAgylkPAAA=", + "fecha": "2026-07-24 12:50:24", + "subject": "envio factura" + }, + "047": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAgylkQAAA=", + "fecha": "2026-07-24 12:50:45", + "subject": "Factura enviada" + }, + "048": { + "id": "AAMkADljMzNhYmQwLTQyMjgtNDY2My05ZDUwLWEzNTBiNDZhZjFlMwBGAAAAAAB386nfKhkcTbYV6pPUJ245BwBdNWALkxgeSJ3BdBRukthBAAAAAAEMAABdNWALkxgeSJ3BdBRukthBAAAgylkRAAA=", + "fecha": "2026-07-24 12:51:06", + "subject": "envio" + } +} \ No newline at end of file diff --git a/tests/descargar_correos_prueba.py b/tests/descargar_correos_prueba.py new file mode 100644 index 0000000..5ad9990 --- /dev/null +++ b/tests/descargar_correos_prueba.py @@ -0,0 +1,99 @@ +import os +import sys +import json +import shutil +from datetime import datetime + +sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..")) + +from dotenv import load_dotenv +import outlook_utilities +import email_utilities + + +CARPETA_BASE = os.path.join(os.path.dirname(__file__), "correos_prueba") + + +def limpiar_carpetas(): + if os.path.exists(CARPETA_BASE): + shutil.rmtree(CARPETA_BASE) + print(f"🗑️ Carpeta {CARPETA_BASE} eliminada") + os.makedirs(CARPETA_BASE, exist_ok=True) + print(f"📁 Carpeta {CARPETA_BASE} creada") + + +def descargar_correos(): + load_dotenv(dotenv_path=os.path.join(os.path.dirname(__file__), "..", ".env")) + + EMAIL = os.getenv("EMAIL", "") + if not EMAIL: + print("❌ Variable EMAIL no encontrada en .env") + return + + print("🔑 Autenticando en Microsoft Graph...") + token = outlook_utilities.get_access_token() + if not token: + print("❌ No se pudo obtener token") + return + + fecha_inicio = "2026-06-01" + fecha_fin = "2026-07-31" + print(f"📬 Descargando correos de {fecha_inicio} a {fecha_fin}...") + + emails = outlook_utilities.get_emails(EMAIL, token, fecha_inicio, fecha_fin) + if not emails: + print("❌ No se encontraron correos") + return + + print(f"📨 Total correos encontrados: {len(emails)}") + + indice = {} + + for idx, email in enumerate(emails, start=1): + correlativo = f"{idx:03d}" + carpeta_correo = os.path.join(CARPETA_BASE, f"{correlativo}_correo") + os.makedirs(carpeta_correo, exist_ok=True) + + print(f"\n[{correlativo}] 📬 {email.get('fecha','')} - {email.get('subject','')[:60]}...") + + adjuntos = outlook_utilities.download_attachments( + EMAIL, email["id"], token, carpeta_correo + ) + + if not adjuntos: + print(f" ├── ⏭️ Sin adjuntos") + os.rmdir(carpeta_correo) + continue + + email["adjuntos"] = adjuntos + email_utilities.descomprimir_adjuntos([email], carpeta_correo) + + archivos_validos = email_utilities.filtrar_archivos_validos(email.get("adjuntos", [])) + carpeta_abs = os.path.abspath(carpeta_correo) + for archivo in email.get("adjuntos", []): + ruta = os.path.join(carpeta_abs, archivo) + if archivo not in archivos_validos and os.path.exists(ruta): + os.remove(ruta) + + if archivos_validos: + email["adjuntos"] = archivos_validos + + indice[correlativo] = { + "id": email["id"], + "fecha": email.get("fecha", ""), + "subject": email.get("subject", ""), + } + print(f" └── ✅ {len(archivos_validos)} archivo(s) válido(s)") + + ruta_indice = os.path.join(CARPETA_BASE, "indice_correos.json") + with open(ruta_indice, "w", encoding="utf-8") as f: + json.dump(indice, f, ensure_ascii=False, indent=2) + + print(f"\n{'='*60}") + print(f"📊 Total correos descargados: {len(indice)}") + print(f"📄 Índice guardado en: {ruta_indice}") + + +if __name__ == "__main__": + limpiar_carpetas() + descargar_correos() diff --git a/tests/explorar_notes_xml.py b/tests/explorar_notes_xml.py new file mode 100644 index 0000000..27ccfb5 --- /dev/null +++ b/tests/explorar_notes_xml.py @@ -0,0 +1,49 @@ +import os +import sys +import json +import xml.etree.ElementTree as ET + +sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..")) + +from sunat_schema import NAMESPACES, _find_text + +ns = NAMESPACES +ns["cbc"] = "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" + +CARPETA_BASE = os.path.join(os.path.dirname(__file__), "correos_prueba") + + +def explorar_notes(ruta_carpeta): + archivos = sorted( + os.path.join(ruta_carpeta, f) for f in os.listdir(ruta_carpeta) + if f.lower().endswith(".xml") and os.path.isfile(os.path.join(ruta_carpeta, f)) + ) + + for xml_path in archivos: + tree = ET.parse(xml_path) + root = tree.getroot() + + if "Invoice" not in root.tag: + continue + + tipo = _find_text(root, "inv:InvoiceTypeCode", ns) or _find_text(root, "cbc:InvoiceTypeCode", ns) or "" + if tipo != "01": + continue + + print(f"\n=== {os.path.basename(xml_path)} ===") + lineas = root.findall(".//cac:InvoiceLine", ns) + for i, linea in enumerate(lineas): + notes = linea.findall("cbc:Note", ns) + desc = _find_text(linea, "cac:Item/cbc:Description", ns) or "" + print(f" Línea {i}: Description={desc[:80]}...") + for note in notes: + print(f" Note[{note.attrib.get('languageLocaleID', '?')}]: {note.text}") + + +if __name__ == "__main__": + carpeta = sys.argv[1] if len(sys.argv) > 1 else "001_correo" + ruta = os.path.join(CARPETA_BASE, carpeta) + if os.path.isdir(ruta): + explorar_notes(ruta) + else: + print(f"❌ Carpeta no encontrada: {ruta}") diff --git a/tests/procesar_pdfs_prueba.py b/tests/procesar_pdfs_prueba.py new file mode 100644 index 0000000..e6f8856 --- /dev/null +++ b/tests/procesar_pdfs_prueba.py @@ -0,0 +1,146 @@ +import os +import sys +import json +from typing import Optional + +sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..")) + +from pdf_utilities import extraer_datos_pdf, TIPO_MAP, renombrar_pdf +from sunat_schema import split_serie_numero + + +CARPETA_BASE = os.path.join(os.path.dirname(__file__), "correos_prueba") + + +def normalizar_datos_pdf(data: dict) -> Optional[dict]: + if not data or data.get("error"): + return None + + tipo = TIPO_MAP.get((data.get("tipo_documento") or "").upper()) + if not tipo: + return None + + serie_numero = data.get("serie_numero") or "" + serie, numero = split_serie_numero(serie_numero) + + doc = { + "ruc_emisor": data.get("ruc_emisor"), + "razon_social_emisor": data.get("nombre_receptor"), + "fecha_emision": data.get("fecha_emision"), + "tipo": tipo, + "serie": serie, + "numero": numero, + "ruc_receptor": data.get("ruc_receptor"), + "razon_social_receptor": data.get("nombre_receptor"), + "total_factura": data.get("monto_total"), + "documentos_referencia": [], + "tiene_detraccion": False, + "codigo_detraccion": None, + "porcentaje_detraccion": None, + "monto_detraccion": None, + "lineas": [], + } + + # Detracción + det = data.get("detraccion") + if det and det.get("tiene"): + doc["tiene_detraccion"] = True + doc["porcentaje_detraccion"] = det.get("porcentaje") + doc["monto_detraccion"] = det.get("monto") + + # Documentos relacionados (para guía transportista) + for rel in data.get("documentos_relacionados") or []: + if isinstance(rel, dict): + doc_ref = rel.get("documento", "") + else: + doc_ref = str(rel) + r_serie, r_numero = split_serie_numero(doc_ref) + if r_serie: + doc["documentos_referencia"].append({ + "tipo": "09" if r_serie[:1] == "T" else "31", + "serie": r_serie, + "numero": r_numero, + }) + + # Líneas de detalle + for item in data.get("items") or []: + linea = { + "descripcion": item.get("descripcion", ""), + "cantidad": item.get("cantidad"), + "precio_unitario": item.get("precio_unitario"), + "total_linea": item.get("total"), + "guias_remision": [], + "guia_transportista": None, + } + # Guías de remisión desde el PDF + for g in item.get("guias_remision") or []: + m = __import__("re").search(r"\b([TVE][A-Z0-9]{3,4})\s*-?\s*(\d+)", g) + if m: + linea["guias_remision"].append({ + "tipo": "09", + "serie": m.group(1).upper(), + "numero": m.group(2).lstrip("0") or "0", + }) + # Guía transportista desde el PDF + gt = item.get("guia_transportista") + if gt: + m = __import__("re").search(r"\b([TVE][A-Z0-9]{3,4})\s*-?\s*(\d+)", gt) + if m: + linea["guia_transportista"] = { + "tipo": "31", + "serie": m.group(1).upper(), + "numero": m.group(2).lstrip("0") or "0", + } + doc["lineas"].append(linea) + + return doc + + +def procesar_carpetas(): + carpetas = sorted( + [d for d in os.listdir(CARPETA_BASE) if os.path.isdir(os.path.join(CARPETA_BASE, d))] + ) + + total = 0 + for carpeta in carpetas: + ruta_carpeta = os.path.join(CARPETA_BASE, carpeta) + archivos_pdf = sorted( + os.path.join(ruta_carpeta, f) for f in os.listdir(ruta_carpeta) + if f.lower().endswith(".pdf") and os.path.isfile(os.path.join(ruta_carpeta, f)) + ) + + if not archivos_pdf: + continue + + correlativo = carpeta.split("_")[0] + + documentos = [] + for pdf_path in archivos_pdf: + print(f"📄 {carpeta}/{os.path.basename(pdf_path)}") + data = extraer_datos_pdf(pdf_path) + if data and not data.get("error"): + nuevo_path = renombrar_pdf(pdf_path, data) + if nuevo_path != pdf_path: + data["archivo"] = os.path.basename(nuevo_path) + doc = normalizar_datos_pdf(data) + if doc: + doc["ruta_pdf"] = nuevo_path + documentos.append(doc) + desc = f"{doc.get('tipo','?')} {doc.get('serie','?')}-{doc.get('numero','?')}" + print(f" ├── ✅ {desc}") + else: + print(f" ├── ⚠️ Error: {data.get('error', 'desconocido')}") + + if documentos: + ruta_json = os.path.join(ruta_carpeta, f"pdf_resultado_{correlativo}.json") + with open(ruta_json, "w", encoding="utf-8") as f: + json.dump(documentos, f, ensure_ascii=False, indent=2) + print(f" └── 💾 Guardado: pdf_resultado_{correlativo}.json ({len(documentos)} doc(s))") + total += len(documentos) + + print(f"\n{'='*60}") + print(f"📊 Total documentos PDF procesados: {total}") + + +if __name__ == "__main__": + procesar_carpetas() diff --git a/tests/procesar_xmls_prueba.py b/tests/procesar_xmls_prueba.py new file mode 100644 index 0000000..9897a0d --- /dev/null +++ b/tests/procesar_xmls_prueba.py @@ -0,0 +1,118 @@ +import os +import sys +import json +import glob + +sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..")) + +from sunat_schema import extraer_datos_xml + + +def renombrar_xml(ruta_actual: str, data: dict, carpeta: str) -> str | None: + """Renombra el XML a {prefijo}{ruc}-{tipo}-{serie}-{numero}.xml y retorna la nueva ruta. + Si es un CDR (ApplicationResponse), el prefijo es 'CDR-'.""" + if not data: + return None + prefijo = "CDR-" if data.get("es_cdr") else "" + nombre = f"{prefijo}{data.get('ruc_emisor', '')}-{data.get('tipo', '')}-{data.get('serie', '')}-{data.get('numero', '')}.xml" + destino = os.path.join(carpeta, nombre) + if destino != ruta_actual: + if os.path.exists(destino): + os.remove(destino) + os.rename(ruta_actual, destino) + return destino + + +CARPETA_BASE = os.path.join(os.path.dirname(__file__), "correos_prueba") + + +def procesar_carpetas(): + carpetas = sorted( + [d for d in os.listdir(CARPETA_BASE) if os.path.isdir(os.path.join(CARPETA_BASE, d))] + ) + + total = 0 + for carpeta in carpetas: + ruta_carpeta = os.path.join(CARPETA_BASE, carpeta) + archivos_xml = sorted( + os.path.join(ruta_carpeta, f) for f in os.listdir(ruta_carpeta) + if f.lower().endswith(".xml") and os.path.isfile(os.path.join(ruta_carpeta, f)) + ) + + if not archivos_xml: + continue + + correlativo = carpeta.split("_")[0] + + documentos = [] + for xml_path in archivos_xml: + print(f"📄 {carpeta}/{os.path.basename(xml_path)}") + data = extraer_datos_xml(xml_path) + if data: + ruta_xml = renombrar_xml(xml_path, data, ruta_carpeta) + data["ruta_xml"] = ruta_xml or xml_path + data["ruta_pdf"] = None + if data.get("es_cdr"): + print(f" ├── ℹ️ {data.get('serie','?')}-{data.get('numero','?')} (CDR) — omitido del resultado") + continue + documentos.append(data) + print(f" ├── ✅ {data.get('serie','?')}-{data.get('numero','?')} ({data.get('tipo_descripcion','?')})") + else: + print(f" ├── ℹ️ No es factura 01 ni guía 31") + + if documentos: + # Post-procesamiento + # 1. Distribuir documentos_referencia (tipo 09 y 31) a cada línea + for doc in documentos: + if doc.get("tipo") != "01": + continue + refs_09 = [r for r in doc.get("documentos_referencia", []) if r.get("tipo") == "09"] + refs_31 = [r for r in doc.get("documentos_referencia", []) if r.get("tipo") == "31"] + for i, linea in enumerate(doc.get("lineas", [])): + if linea.get("guias_remision"): + continue + if i < len(refs_09): + es_ultima = i == len(doc["lineas"]) - 1 + if es_ultima: + linea["guias_remision"] = [dict(r) for r in refs_09[i:]] + else: + linea["guias_remision"] = [dict(refs_09[i])] + if not linea.get("guia_transportista") and i < len(refs_31): + linea["guia_transportista"] = dict(refs_31[i]) + + # 2. Resolver GREs desde guías de transporte (tipo 31 → tipo 09) + guia_lookup = {} + for doc in documentos: + if doc.get("tipo") in ("31", "09"): + guia_lookup[(doc["tipo"], doc["serie"], doc["numero"])] = doc + for doc in documentos: + if doc.get("tipo") != "01": + continue + for ref in doc.get("documentos_referencia", []): + if ref["tipo"] == "31": + guia_doc = guia_lookup.get(("31", ref["serie"], ref["numero"])) + if guia_doc: + gre_list = [g for g in guia_doc.get("documentos_referencia", []) if g.get("tipo") == "09"] + if gre_list: + for i, linea in enumerate(doc.get("lineas", [])): + if not linea.get("guias_remision"): + es_ultima = i == len(doc["lineas"]) - 1 + if es_ultima: + linea["guias_remision"] = gre_list[i:] + elif i < len(gre_list): + linea["guias_remision"] = [gre_list[i]] + if not linea.get("guia_transportista"): + linea["guia_transportista"] = dict(ref) + + ruta_json = os.path.join(ruta_carpeta, f"xml_resultado_{correlativo}.json") + with open(ruta_json, "w", encoding="utf-8") as f: + json.dump(documentos, f, ensure_ascii=False, indent=2) + print(f" └── 💾 Guardado: xml_resultado_{correlativo}.json ({len(documentos)} doc(s))") + total += len(documentos) + + print(f"\n{'='*60}") + print(f"📊 Total documentos XML procesados: {total}") + + +if __name__ == "__main__": + procesar_carpetas() diff --git a/tools/aberio.http b/tools/aberio.http new file mode 100644 index 0000000..0f0d98b --- /dev/null +++ b/tools/aberio.http @@ -0,0 +1,24 @@ +@url= https://192.168.9.3:50000/b1s/v1 + + +### +# @noRejectUnauthorized + +POST {{url}}/Login +Content-Type: application/json + +{ + "UserName": "manager", + "Password": "s1st3m4s", + "CompanyDB": "SBO_ABERIO_PRODUCCION" +} + +### +# @noRejectUnauthorized +GET {{url}}/BusinessPartners('PL20555929006') + + + +### +# @noRejectUnauthorized +GET {{url}}/PaymentTermsTypes \ No newline at end of file diff --git a/tools/aberio/BusinessPartners.yml b/tools/aberio/BusinessPartners.yml deleted file mode 100644 index dfa66d5..0000000 --- a/tools/aberio/BusinessPartners.yml +++ /dev/null @@ -1,15 +0,0 @@ -info: - name: BusinessPartners - type: http - seq: 1 - -http: - method: GET - url: https://192.168.9.3:50000/b1s/v1/BusinessPartners('PL10040532043') - auth: inherit - -settings: - encodeUrl: true - timeout: 0 - followRedirects: true - maxRedirects: 5 diff --git a/tools/aberio/EmployeesInfo.yml b/tools/aberio/EmployeesInfo.yml deleted file mode 100644 index 47b8216..0000000 --- a/tools/aberio/EmployeesInfo.yml +++ /dev/null @@ -1,14 +0,0 @@ -info: - name: EmployeesInfo - type: http - -http: - method: GET - url: https://192.168.9.3:50000/b1s/v1/EmployeesInfo - auth: inherit - -settings: - encodeUrl: true - timeout: 0 - followRedirects: true - maxRedirects: 5 diff --git a/tools/aberio/Login.yml b/tools/aberio/Login.yml deleted file mode 100644 index e128208..0000000 --- a/tools/aberio/Login.yml +++ /dev/null @@ -1,23 +0,0 @@ -info: - name: Login - type: http - seq: 1 - -http: - method: POST - url: https://192.168.9.3:50000/b1s/v1/Login - body: - type: json - data: |- - { - "CompanyDB" :"PRUEBA_20260609", - "UserName": "manager", - "Password":"s1st3m4s" - } - auth: inherit - -settings: - encodeUrl: true - timeout: 0 - followRedirects: true - maxRedirects: 5 diff --git a/tools/aberio/PurchaseInvoices.yml b/tools/aberio/PurchaseInvoices.yml deleted file mode 100644 index dcc838e..0000000 --- a/tools/aberio/PurchaseInvoices.yml +++ /dev/null @@ -1,19 +0,0 @@ -info: - name: PurchaseInvoices - type: http - seq: 1 - -http: - method: GET - url: https://192.168.9.3:50000/b1s/v1/PurchaseInvoices?$filter=DocDate eq '2026-06-10' - params: - - name: $filter - value: DocDate eq '2026-06-10' - type: query - auth: inherit - -settings: - encodeUrl: true - timeout: 0 - followRedirects: true - maxRedirects: 5 diff --git a/tools/aberio/opencollection.yml b/tools/aberio/opencollection.yml deleted file mode 100644 index c9e815d..0000000 --- a/tools/aberio/opencollection.yml +++ /dev/null @@ -1,10 +0,0 @@ -opencollection: 1.0.0 - -info: - name: aberio -bundled: false -extensions: - bruno: - ignore: - - node_modules - - .git