feat: paso 4 ventas en automation + fixes varios

- Automation: agrega Paso 4 (Ventas/Crear) con fetch _SQL_VENTAS,
  filtro por excluded_ventas_set, loop de envío y log de actividad
- Automation: _guardar_envio ahora almacena idrecepcion y contrato
  para que /ventas reconozca registros enviados por automation
- Contratos: corrige NameError en toggle_excluir (faltaba request: Request)
- Ventas: agrega check if not q en send_one y send para evitar TypeError
- Ventas HTML: agrega columna Contrato en la tabla de facturas
- json_generator: normaliza etnia >2 chars a '99' (ej: 999 → 99)
- json_generator: agrega campo ciudadExp usando el mismo cod_ciudad

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Lizandro Guarnizo
2026-07-11 14:29:39 -05:00
co-authored by Claude Sonnet 4.6
parent 21eb99d18d
commit 73062af8bc
7 changed files with 249 additions and 68 deletions
+46 -45
View File
@@ -7,52 +7,53 @@ from app.utils.activity import log_activity, get_ip
router = APIRouter(prefix="/contratos", tags=["contratos"])
# (numero_contrato, nit_empresa, tipo_usuario, descripcion, excluir_rda, sin_contrato, excluir_ventas)
# excluir_ventas=0 → activo para Ventas/Crear | excluir_ventas=1 → bloqueado para ventas
_SEED = [
("001", "860078828", "11", "EPS SANITAS", 0, 0, 0),
("002", "830054904", "11", "EPS COMPENSAR", 0, 0, 0),
("003", "900278729", "12", "PARTICULAR", 0, 0, 0),
("004", "800106339", "11", "EPS NUEVA EPS", 0, 0, 0),
("005", "800153424", "11", "EPS SURA", 0, 0, 0),
("006", "805009741", "11", "EPS COOMEVA", 0, 0, 0),
("007", "860002183", "11", "EPS FAMISANAR", 0, 0, 0),
("008", "860002503", "11", "EPS CRUZ BLANCA", 0, 0, 0),
("009", "860027404", "11", "EPS COLSANITAS", 0, 0, 0),
("010", "860039988", "11", "EPS SALUD TOTAL", 0, 0, 0),
("011", "890903790", "11", "EPS SAVIA SALUD", 0, 0, 0),
("012", "900178724", "11", "EPS MUTUAL SER", 0, 0, 0),
("034", "860078828", "11", "EPS SANITAS (alt)", 0, 0, 0),
("035", "860078828", "11", "EPS SANITAS (alt)", 0, 0, 0),
("036", "860078828", "11", "EPS SANITAS (alt)", 0, 0, 0),
("20062026", "800182856", "01", "SUBSIDIADO", 0, 0, 0),
("CW225489", "899999068", "07", "POLIZA / SEGURO", 0, 0, 0),
# Contratos excluidos del envío TNS
("013", "", "11", "MEDILAVORO S.A.S", 0, 0, 0),
("014", "", "11", "LABORATORIO UROCLINICO",0, 0, 0),
("015", "", "11", "ANDRES AFANADOR VILLAMIZAR", 1, 0, 0),
("016", "", "11", "OMAR FERNANDO RIBERO GOMEZ", 1, 0, 0),
("017", "", "11", "CLAUDIA BELEN JULIO SEPULVEDA", 1, 0, 0),
("018", "", "11", "LABORATORIO MICROBIOLOGICO - MARGIE OJEDA", 1, 0, 0),
("019", "", "11", "LABORATORIO TOXICOLOGICO - MARTHA MORALES", 1, 0, 0),
("020", "", "11", "MARTHA LUCIA GALLARDO", 1, 0, 0),
("021", "", "11", "LABORATORIO VILMA OROZCO AYALA", 1, 0, 0),
("022", "", "11", "CLINICA SAN JOSE DE CUCUTA", 1, 0, 0),
("023", "", "11", "URONORTE S.A", 1, 0, 0),
("024", "", "11", "LABORATORIO CLINICO BIOLAB S.A.S", 1, 0, 0),
("025", "", "11", "JOEL LEONARDO CARRILLO CORREDOR", 1, 0, 0),
("026", "", "11", "ROLANDO IVAN PENARANDA DEVIA", 1, 0, 0),
("027", "", "11", "JOSE WILMER GARCIA CALDERON", 1, 0, 0),
("028", "", "11", "ONCOMEDICAL IPS S.A.S", 1, 0, 0),
("029", "", "11", "GENETIX S.A.S", 1, 0, 0),
("030", "", "11", "NORFETUS S.A.S", 1, 0, 0),
("031", "", "11", "TBTB GLOBAL LAB S.A.S", 1, 0, 0),
("032", "", "11", "COLGENES S.A.S", 1, 0, 0),
("033", "", "11", "IPS FIGURAS SPA CUCUTA S.A.S", 1, 0, 0),
("037", "", "11", "CLINICA URGENCIAS LA MERCED", 1, 0, 0),
("038", "", "11", "CLINICA COLSANITAS S.A.", 1, 0, 0),
("039", "", "11", "GOMEZ GIL JOSE JESUS", 1, 0, 0),
("001", "860078828", "11", "EPS SANITAS", 0, 0, 1),
("002", "830054904", "11", "EPS COMPENSAR", 0, 0, 1),
("003", "900278729", "12", "PARTICULAR", 0, 0, 1),
("004", "800106339", "11", "EPS NUEVA EPS", 0, 0, 1),
("005", "800153424", "11", "EPS SURA", 0, 0, 1),
("006", "805009741", "11", "EPS COOMEVA", 0, 0, 1),
("007", "860002183", "11", "EPS FAMISANAR", 0, 0, 1),
("008", "860002503", "11", "EPS CRUZ BLANCA", 0, 0, 1),
("009", "860027404", "11", "EPS COLSANITAS", 0, 0, 1),
("010", "860039988", "11", "EPS SALUD TOTAL", 0, 0, 1),
("011", "890903790", "11", "EPS SAVIA SALUD", 0, 0, 1),
("012", "900178724", "11", "EPS MUTUAL SER", 0, 0, 1),
("034", "860078828", "11", "EPS SANITAS (alt)", 0, 0, 1),
("035", "860078828", "11", "EPS SANITAS (alt)", 0, 0, 1),
("036", "860078828", "11", "EPS SANITAS (alt)", 0, 0, 1),
("20062026", "800182856", "01", "SUBSIDIADO", 0, 0, 1),
("CW225489", "899999068", "07", "POLIZA / SEGURO", 0, 0, 1),
# Contratos excluidos del envío RDA
("013", "", "11", "MEDILAVORO S.A.S", 0, 0, 1),
("014", "", "11", "LABORATORIO UROCLINICO",0, 0, 1),
("015", "", "11", "ANDRES AFANADOR VILLAMIZAR", 1, 0, 1),
("016", "", "11", "OMAR FERNANDO RIBERO GOMEZ", 1, 0, 1),
("017", "", "11", "CLAUDIA BELEN JULIO SEPULVEDA", 1, 0, 1),
("018", "", "11", "LABORATORIO MICROBIOLOGICO - MARGIE OJEDA", 1, 0, 1),
("019", "", "11", "LABORATORIO TOXICOLOGICO - MARTHA MORALES", 1, 0, 1),
("020", "", "11", "MARTHA LUCIA GALLARDO", 1, 0, 1),
("021", "", "11", "LABORATORIO VILMA OROZCO AYALA", 1, 0, 1),
("022", "", "11", "CLINICA SAN JOSE DE CUCUTA", 1, 0, 1),
("023", "", "11", "URONORTE S.A", 1, 0, 1),
("024", "", "11", "LABORATORIO CLINICO BIOLAB S.A.S", 1, 0, 1),
("025", "", "11", "JOEL LEONARDO CARRILLO CORREDOR", 1, 0, 1),
("026", "", "11", "ROLANDO IVAN PENARANDA DEVIA", 1, 0, 1),
("027", "", "11", "JOSE WILMER GARCIA CALDERON", 1, 0, 1),
("028", "", "11", "ONCOMEDICAL IPS S.A.S", 1, 0, 1),
("029", "", "11", "GENETIX S.A.S", 1, 0, 1),
("030", "", "11", "NORFETUS S.A.S", 1, 0, 1),
("031", "", "11", "TBTB GLOBAL LAB S.A.S", 1, 0, 1),
("032", "", "11", "COLGENES S.A.S", 1, 0, 1),
("033", "", "11", "IPS FIGURAS SPA CUCUTA S.A.S", 1, 0, 1),
("037", "", "11", "CLINICA URGENCIAS LA MERCED", 1, 0, 1),
("038", "", "11", "CLINICA COLSANITAS S.A.", 1, 0, 1),
("039", "", "11", "GOMEZ GIL JOSE JESUS", 1, 0, 1),
("040", "", "11", "MARTHA LILIANA SALGAR GALLEGO", 1, 1, 0),
("041", "", "11", "GENCELL PHARMA S.A.S", 1, 0, 0),
("042", "", "07", "AXA COLPATRIA HYC", 1, 0, 0),
("041", "", "11", "GENCELL PHARMA S.A.S", 1, 0, 1),
("042", "", "07", "AXA COLPATRIA HYC", 1, 0, 1),
]
@@ -200,7 +201,7 @@ async def contrato_update(
@router.post("/toggle-excluir/{contrato_id}")
async def toggle_excluir(contrato_id: int, user: dict = Depends(get_current_user)):
async def toggle_excluir(contrato_id: int, request: Request, user: dict = Depends(get_current_user)):
conn = get_connection()
conn.execute(
"UPDATE contratos SET excluir = CASE WHEN excluir=1 THEN 0 ELSE 1 END WHERE id=?",