"""Resolução de departamento por gerente — substitui o antigo módulo `setores.py` (coluna bruta "departamento" da planilha Tareffa + fusão automática Contabilidade/Fiscal→Fisco-Contábil + `IndicadorSetorApelido`). O departamento de um colaborador agora vem de `IndicadorDepartamentoGerente` (nome do gerente → `IndicadorDepartamento`), um cadastro mantido pela própria aplicação (Configurações → Departamentos) — decisão explícita do usuário, que achou mais simples e robusto relacionar gerência↔departamento manualmente do que continuar inferindo de um texto livre vindo da planilha. Isso também resolve de graça o caso que o antigo `IndicadorSetorApelido` cobria (os 4 líderes de Fisco/Contábil, cujo próprio setor bruto na planilha não batia com o departamento que deveriam mostrar): basta mapear a gerente deles, "Elizangela de Paula Kuhn", pro departamento "Gerentes" — todo colaborador com esse `gerente` cai lá automaticamente, sem apelido por pessoa.""" from __future__ import annotations from portal_api.models import IndicadorDepartamentoGerente def carrega_mapa_gerentes() -> dict[str, int]: """{nome_gerente: departamento_id} — uma consulta só, reaproveitada pra resolver o departamento de todos os colaboradores de uma apuração de uma vez (ver `IndicadorApuracaoViewSet.create`).""" return dict(IndicadorDepartamentoGerente.objects.values_list("nome_gerente", "departamento_id")) def departamento_id_do_gerente(nome_gerente: str, mapa: dict[str, int] | None = None) -> int | None: if mapa is None: mapa = carrega_mapa_gerentes() return mapa.get(nome_gerente)