32 lines
1.6 KiB
Python
32 lines
1.6 KiB
Python
"""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)
|