Persistencia de ofertas con guardas de base de datos
Carga catálogo y ofertas en una base con restricciones que rechazan inconsistencias antes de que lleguen a la comparación.
Qué incluye
Cargar ofertas de una licitación en hojas sueltas puede llevarte a mezclar partidas del catálogo, aceptar una multiplicación que no cuadra, o perder qué versión de una oferta se subsanó y cuál quedó descartada. Esta skill carga catálogo y ofertas en SQLite con restricciones aritméticas y claves foráneas que rechazan partidas inexistentes, repetidas o con multiplicaciones inconsistentes, registrando el payload y el motivo de cada rechazo. El catálogo se congela antes de cargar ofertas y no cambia bajo un proceso en marcha; una subsanación crea una ronda nueva sobre la vigente sin borrar la anterior, y las consultas de comparación (`v_vigentes`, `v_ranking`) son de solo lectura. Cargar datos no equivale a validarlos técnicamente ni a adjudicar: sigue haciendo falta revisar omisiones, metrados y cumplimiento aparte. Para quien de oficina técnica gestiona la persistencia de una licitación real y necesita que la base rechace inconsistencias en el momento de la carga, no después.
Resultados
- Base SQLite con catálogo y ofertas cargados, con restricciones que rechazan partidas inexistentes, repetidas o con multiplicaciones inconsistentes, y el motivo de cada rechazo registrado.
Requisitos
- Python 3.10 o superior.