Files
Verificacion_EFOS_Backend/README.md
2026-04-09 14:03:06 -07:00

15 KiB

version 1 de Verfifca efos backend

SERVICIOS INTERNOS =================================

  • GENERACION DE CRUDS APARTIR DE TEMPLATES

Entrando desde la consola a /verfica_Efos_back y ejecutando python generator.py, generas un archivo "nombre_router.py" y "nombre_service.py" que gracias al codigo de generator.py, lee el model importado en la parte de 'get_all_models()'.

una vez importado el model, lo lee, lo pasa por la logica en la que se descratan posibles erores y segenera en la ruta output\generated\routers y output\generated\services los templates pre armados de los cruds listos para copiar y pegar segun sea el caso. A fecha del 06/04/26- la primera version parece funconar correctamente y solo cuesta ajustar los cruds a necesidad.

  • arquitectura extrana*

el primer caso de uso de una arquitectura de modulos extendidos que engloban por cada una de las entidades. (se entiende por entidades, cada uno de las partes que funcionanar en la logica de las bases de datos: por ejemplo Clientes-Clients, usuarios-users)

tiene de manera interna cada uno de los procesos necesarios, para la facilidad de mantenimiento. En cada uno de los modulos

Junta el 31 de marzo 2026

  • puntos no claros de uso Diot
  • se pidio que no se agregara multiempresas o multitenant, aunque hay la posibilida de hacerlo, asi como el que se pudiera facilitar la actualizacion de las listas de efos, edos.

notas de Gerardo se quedaron implementadas los servicios crud de las funciones que seran publicos, ajustados a el tipo de usuario ('Root', 'Admin') lo mas dificil de implementar para el back va a ser, implementar las funciones de ajuste "automatico" de cargado de file con un url, desde las listas del sat y las publicaciones del diario.

si el tiempo nos cae encima (que es lo mas seguro, voy a concentrarme en trabajar en las listas de el sat(edos, efos y creditos), para tratar de dejar enpoints funcionales).

Flujo del tomado automatico de las listas del sat

┌─────────────────────────────────────────────────────────────────────────────────────┐ │ PIPELINE DE TRANSFORMACIÓN │ │ (CSV → JSONB → Base de Datos) │ └─────────────────────────────────────────────────────────────────────────────────────┘

                                  ┌─────────────────┐
                                  │   SAT ORIGEN    │
                                  │   archivo.csv   │
                                  └────────┬────────┘
                                           │
                                           ▼

┌─────────────────────────────────────────────────────────────────────────────────────┐ │ LECTOR POR LOTES (chunks) │ │ ┌──────────────────────┐ │ │ │ Bloque 1: filas 1-100│ │ │ │ Bloque 2: filas 101-200│ │ │ │ ... │ │ │ │ Bloque N: últimas │ │ │ └──────────────────────┘ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ TRANSFORMADOR POR BLOQUE │ ├─────────────────────────────────────────────────────────────────────────────────────┤ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ 1. Agrupar │───▶│ 2. Limpiar │───▶│ 3. Armar │───▶│ 4. Validar │ │ │ │ por RFC │ │ fechas │ │ JSONB │ │ esquema │ │ │ └─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘ │ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────┐ │ │ │ FUNCIONES REUTILIZABLES │ │ │ │ • normalize_date() → convierte números Excel y strings a ISO │ │ │ │ • get_latest_status() → identifica el estatus más reciente │ │ │ │ • build_jsonb() → construye la estructura final │ │ │ └─────────────────────────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ OUTPUT: JSONB POR RFC │ ├─────────────────────────────────────────────────────────────────────────────────────┤ │ { │ │ "rfc": "ASA110718HJ5", │ │ "nombre": "ASESORÍA Y SERVICIOS ACANTO, S.A. DE C.V.", │ │ "ultimo_estatus": { │ │ "situacion": "definitivo", │ │ "fecha": "2020-06-24", │ │ "oficio": "500-05-2020-13598" │ │ }, │ │ "historial": [...], │ │ "raw_metadata": {...} │ │ } │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ REPOSITORIO / SERVICE LAYER │ ├─────────────────────────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────────────────────────────────────────────────────────────────────┐ │ │ │ interface EfosRepository │ │ │ │ ┌─────────────────────┐ ┌─────────────────────┐ │ │ │ │ │ save_batch() │ │ find_by_rfc() │ │ │ │ │ │ update_status() │ │ search_by_name() │ │ │ │ │ │ get_statistics() │ │ count_by_status() │ │ │ │ │ └─────────────────────┘ └─────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────────────────┘ │ │ │ │ │ ┌─────────────────┼─────────────────┐ │ │ ▼ ▼ ▼ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ PostgreSQL │ │ SQLite │ │ MongoDB │ │ │ │ (producción) │ │ (dev/local) │ │ (alternativa│ │ │ └─────────────┘ └─────────────┘ │ JSON nativo)│ │ │ └─────────────┘ │ └─────────────────────────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────────────────────────┐ │ FRONT-END API (FastAPI) │ ├─────────────────────────────────────────────────────────────────────────────────────┤ │ │ │ GET /contribuyentes/{rfc} → consulta por RFC │ │ GET /contribuyentes?q={nombre} → búsqueda por nombre │ │ GET /contribuyentes?status={x} → filtrar por situación │ │ GET /stats → contar por status (rojo/amarillo/verde) │ │ │ └─────────────────────────────────────────────────────────────────────────────────────┘

09/04/2026 - queda pendiente;

  • revisar, verificar y tabajar todos los cruds.
  • los que trabajan completamente bien, son los de usuarios y los de clients.
  • la bd, funciona correctamente y las migraciones estan en su top.
  • en este punto el endpoint de tomado automatico de las listas del sat, ya funcionan con el url del CSV. falta ajustar que detecte en que bd escriba, por el momento solo funciona con EDOS. @ @
  • Nota importante *
  • !para hacer chunks del cargado de la lista de Efos(articulo69-b) usar una libreria y no hacerle caso al ENFERMO DE HUGO, para hacerlo a mano!

urls importantes: https://wu1agsprosta001.blob.core.windows.net/agsc-publicaciones/Datos_abiertos/Documents_AGAFF/Listado_completo_69-B.csv