Actualizar backend/core/data_manager.py
This commit is contained in:
@@ -468,9 +468,12 @@ class DataManager:
|
||||
conn = self.get_connection()
|
||||
cursor = conn.cursor()
|
||||
|
||||
# Clasificadores para filtros (mismos que Cobranza/Ocupabilidad)
|
||||
_sede_sel = str(sede or "TODOS").upper()
|
||||
_prog_sel = str(programa or "TODOS").upper()
|
||||
# Clasificadores para filtros (mismos que Cobranza/Ocupabilidad).
|
||||
# Acepta varios valores separados por coma (multi-selección). Vacío/TODOS = todo.
|
||||
_sede_set = {s.strip().upper() for s in str(sede or "TODOS").split(",") if s.strip()}
|
||||
_prog_set = {p.strip().upper() for p in str(programa or "TODOS").split(",") if p.strip()}
|
||||
_sede_all = (not _sede_set) or ("TODOS" in _sede_set)
|
||||
_prog_all = (not _prog_set) or ("TODOS" in _prog_set)
|
||||
def _clasif_sede(dscp):
|
||||
if not dscp: return "LIMA"
|
||||
up = str(dscp).upper()
|
||||
@@ -513,11 +516,12 @@ class DataManager:
|
||||
vendedor = row[0] if row[0] else "SIN VENDEDOR"
|
||||
if vendedor in vendedores_excluidos: continue
|
||||
|
||||
# Filtro SEDE/PROGRAMA (mismas reglas que Ocupabilidad/Cobranza)
|
||||
# Filtro SEDE/PROGRAMA (mismas reglas que Ocupabilidad/Cobranza).
|
||||
# Multi-selección: pasa si su sede/programa está en el set marcado.
|
||||
_dscp = row[10] if (len(row) > 10 and row[10]) else (row[12] if len(row) > 12 else "")
|
||||
if _sede_sel != "TODOS" and _clasif_sede(_dscp) != _sede_sel:
|
||||
if not _sede_all and _clasif_sede(_dscp) not in _sede_set:
|
||||
continue
|
||||
if _prog_sel != "TODOS" and _clasif_prog(_dscp) != _prog_sel:
|
||||
if not _prog_all and _clasif_prog(_dscp) not in _prog_set:
|
||||
continue
|
||||
|
||||
inv_neta_raw = float(row[1]) if row[1] else 0.0
|
||||
|
||||
Reference in New Issue
Block a user