From 1fe649ac86c1963db41a7841ca0a10d66ab71ce0 Mon Sep 17 00:00:00 2001 From: Gabriel Date: Fri, 21 Aug 2026 18:03:15 -0300 Subject: [PATCH] =?UTF-8?q?Inclus=C3=A3o=20da=20busca=20autom=C3=A1tica=20?= =?UTF-8?q?no=20Questor=20e=20reestrutura=C3=A7=C3=A3o=20visual=20-=20Plan?= =?UTF-8?q?o=20de=20Sa=C3=BAde?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/settings.json | 6 +- CLAUDE.md | 34 +- ...221_-_RELATÓRIO_ITAMED_082026_S4KHFAY.pdf | Bin 0 -> 124142 bytes ...221_-_RELATÓRIO_UNIMED_082026_MgsNBZR.csv | 66 +++ .../planilha_padrao/questor_221_2026-08.csv | 23 + .../questor_221_2026-08_fDbSEFb.csv | 24 ++ plano.md | 24 ++ ...portacaoplanosaude_competencia_and_more.py | 24 ++ portal_api/models.py | 18 +- portal_api/planos_saude/pipeline.py | 43 +- portal_api/planos_saude/questor_planilha.py | 77 ++++ portal_api/serializers.py | 46 +- portal_api/views.py | 101 ++++- sqls/questor.py | 110 +++++ static/css/importacao-plano-saude.css | 104 +++++ static/js/importacao-plano-saude.js | 402 ++++++++++++++++-- templates/importacao-plano-saude.html | 23 +- 17 files changed, 1052 insertions(+), 73 deletions(-) create mode 100644 media/planos_saude/operadora/221_-_RELATÓRIO_ITAMED_082026_S4KHFAY.pdf create mode 100644 media/planos_saude/operadora/221_-_RELATÓRIO_UNIMED_082026_MgsNBZR.csv create mode 100644 media/planos_saude/planilha_padrao/questor_221_2026-08.csv create mode 100644 media/planos_saude/planilha_padrao/questor_221_2026-08_fDbSEFb.csv create mode 100644 portal_api/migrations/0045_importacaoplanosaude_competencia_and_more.py create mode 100644 portal_api/planos_saude/questor_planilha.py diff --git a/.claude/settings.json b/.claude/settings.json index 96eee43..e691b33 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -2,7 +2,11 @@ "permissions": { "allow": [ "Bash(python -c ' *)", - "Bash(.venv/Scripts/python.exe manage.py shell -c ' *)" + "Bash(.venv/Scripts/python.exe manage.py shell -c ' *)", + "Bash(.venv/Scripts/python.exe manage.py makemigrations portal_api --dry-run --verbosity 2)", + "Bash(.venv/Scripts/python.exe manage.py makemigrations portal_api)", + "Bash(node --check static/js/importacao-plano-saude.js)", + "Bash(grep -n \"Histórico \\(\\\\`#ips-list-table\\\\`\\)\" CLAUDE.md)" ] } } diff --git a/CLAUDE.md b/CLAUDE.md index 0e407f6..4df4a4b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -549,8 +549,8 @@ Pra adicionar uma operadora nova: criar `operadoras//.py` impleme ### Modelos (`portal_api/models.py`) -- `ImportacaoPlanoSaude`: uma execução da ferramenta — `operadora`/`nome_operadora`, `tipos_lancamento` (JSONField, lista), `custeio_por_tipo` (JSONField, `{"mensalidade": {"titular": {"modo": "empresa"|"empregado"|"especifica", "limite_valor": float|None, "percentual": float|None}, "dependente": {...}}, "coparticipacao": {...}}` — ver regra de custeio acima), `regra_empresa` (CharField, blank — chave de `planos_saude.regras_empresa.REGRAS_EMPRESA` quando "mensalidade" foi custeada por uma regra especial em vez do `custeio_por_tipo["mensalidade"]` normal, ver "Regra empresa" abaixo), os dois arquivos anexados (`planilha_padrao`/`arquivo_operadora`, `FileField` com o mesmo padrão de validator de tamanho de `LinkFerramenta.icone`, só que 15MB em vez de 2MB — são documentos reais, não ícones), `status` (`revisao`/`concluida`), `criado_por`, `criado_em`/`concluida_em`. **Com histórico**: decisão explícita do usuário — cada importação fica salva (quem fez, quando, arquivos), não é um fluxo descartável. -- `ImportacaoPlanoSaudeLinha`: uma linha da planilha padrão já casada com o valor do mês (espelha `LinhaSistema` campo a campo) — **todos os campos são editáveis** na tela de revisão antes de gerar o CSV (decisão explícita do usuário, não só os valores). `valor`/`valor_empresa` ficam como `CharField` no mesmo formato string do pipeline (`"51,69"`/`"0"`), não `DecimalField`, pra manter fidelidade 1:1 com o CSV final sem risco de arredondamento. +- `ImportacaoPlanoSaude`: uma execução da ferramenta — `operadora`/`nome_operadora`, `tipos_lancamento` (JSONField, lista), `custeio_por_tipo` (JSONField, `{"mensalidade": {"titular": {"modo": "empresa"|"empregado"|"especifica", "limite_valor": float|None, "percentual": float|None}, "dependente": {...}}, "coparticipacao": {...}}` — ver regra de custeio acima), `regra_empresa` (CharField, blank — chave de `planos_saude.regras_empresa.REGRAS_EMPRESA` quando "mensalidade" foi custeada por uma regra especial em vez do `custeio_por_tipo["mensalidade"]` normal, ver "Regra empresa" abaixo), os dois arquivos anexados (`planilha_padrao`/`arquivo_operadora`, `FileField` com o mesmo padrão de validator de tamanho de `LinkFerramenta.icone`, só que 15MB em vez de 2MB — são documentos reais, não ícones; `planilha_padrao` é `blank=True` desde que passou a poder vir de uma busca no Questor em vez de upload, ver "Planilha padrão via Questor (SQL)" abaixo), `competencia` (DateField, null — só preenchida quando a origem da planilha padrão foi essa busca no Questor), `status` (`revisao`/`concluida`), `criado_por`, `criado_em`/`concluida_em`. **Com histórico**: decisão explícita do usuário — cada importação fica salva (quem fez, quando, arquivos), não é um fluxo descartável. +- `ImportacaoPlanoSaudeLinha`: uma linha da planilha padrão já casada com o valor do mês (espelha `LinhaSistema` campo a campo) — na tela de revisão, uma linha que já veio do processamento (upload ou Questor) só edita **Valor Empresa/Valor**; os demais campos (cadastro da pessoa) só ficam editáveis numa linha incluída manualmente via "Adicionar linha" (regra revista — nasceu como "todos os campos editáveis em qualquer linha", decisão do usuário depois de ver dados reais na tela: só uma linha nova precisa editar o cadastro, uma linha já casada não devia arriscar um cadastro certo sendo alterado por engano). Essa restrição é só de UI (`importacao-plano-saude.js`, `linhasIncluidasManualmente()` — deriva de `ImportacaoPlanoSaudeAlteracao` já carregada, sem campo novo), o backend continua aceitando PATCH em qualquer campo. `valor`/`valor_empresa` ficam como `CharField` no mesmo formato string do pipeline (`"51,69"`/`"0"`), não `DecimalField`, pra manter fidelidade 1:1 com o CSV final sem risco de arredondamento. - `ImportacaoPlanoSaudeAuditoria`: espelha `ItemAuditoria` — os campos extraídos do arquivo da operadora (`motivo`/`nome`/`valor`/`detalhe`...) são read-only na tela; `resolvida`/`linha_vinculada` são a exceção, graváveis via a resolução manual (ver "Resolução manual de auditoria por nome" abaixo). `MOTIVOS_RESOLVIVEIS = ("NOME_DIVERGENTE", "NAO_CADASTRADO")` (atributo de classe) é a lista dos dois motivos "de leitura/grafia de nome" que aceitam esse fluxo — `VALOR_NEGATIVO`/`TIPO_INVALIDO` são outra categoria de problema (valor real negativo, tipo de despesa não mapeado) e não têm solução por "essa é a mesma pessoa". - `ImportacaoPlanoSaudeAlteracao`: log de cada edição de campo/inclusão/exclusão de linha feita manualmente na revisão — ver seção "Alterações" abaixo. - `RegraCusteioPlanoSaude`: regra de custeio salva pra reaplicar em importações futuras (ex.: "092 - Unimed") — ver "Regras de custeio salvas" abaixo. Lista compartilhada, mesmo espírito de `LinkFerramenta`/`AcessoGeral` — o próprio model não tem FK pra nada; é `ImportacaoPlanoSaude.regra_custeio_salva` que aponta pra cá (opcional, `SET_NULL`), só como registro de qual regra (se alguma) foi aplicada pra preencher aquele formulário. @@ -558,13 +558,35 @@ Pra adicionar uma operadora nova: criar `operadoras//.py` impleme ### Fluxo e endpoints `ImportacaoPlanoSaudeViewSet` (`/api/importacoes-plano-saude/`, `PermissaoApp("utilitarios", "importacao-plano-saude")` pra todos os métodos): -- `create()` (multipart, `ImportacaoPlanoSaudeCreateSerializer` valida a entrada) salva o model (isso já grava os 2 arquivos em `MEDIA_ROOT`) e roda `pipeline.processa_importacao()` **de forma síncrona** usando `instance.arquivo_operadora.path`/`instance.planilha_padrao.path` — sem fila/Celery, o arquivo típico processa em menos de um request. Se o processamento falhar (PDF num layout desconhecido etc.), apaga os arquivos recém-salvos + o registro órfão e devolve 400. +- `create()` (multipart, `ImportacaoPlanoSaudeCreateSerializer` valida a entrada) resolve a planilha padrão (upload **ou** busca no Questor — ver "Planilha padrão via Questor (SQL)" abaixo), salva o model (isso já grava os 2 arquivos em `MEDIA_ROOT`) e roda `pipeline.processa_importacao()` **de forma síncrona** usando `instance.arquivo_operadora.path` + a lista de `LinhaSistema` já resolvida — sem fila/Celery, o arquivo típico processa em menos de um request. Se o processamento falhar (PDF num layout desconhecido etc.), apaga os arquivos recém-salvos + o registro órfão e devolve 400. - `GET /operadoras/` (`@action` sem detail) devolve `pipeline.lista_operadoras()` — fonte única pro combobox pesquisável "Operadora" do formulário (`#ips-operadora-combo`, mesmo padrão de "Regra de custeio salva" — ver "Regras de custeio salvas" abaixo), sem duplicar a lista em JS. `label` já vem no formato `" - "` (ex.: `"3755 - Itamed Saúde"`) — o código é o de cadastro da operadora no Questor, pedido explícito do usuário pra identificar a operadora sem ambiguidade (útil quando duas operadoras têm nome parecido); editar em `pipeline.OPERADORAS`, não formatar o código separadamente no frontend. -- `POST /{id}/gerar/` monta o(s) CSV(s) a partir das **linhas já salvas** (isto é, já com qualquer edição feita na revisão — não reprocessa os arquivos originais) usando `leiaute_sistema.CABECALHO`; 1 tipo de lançamento vira um `.csv` direto, 2 tipos (mensalidade + coparticipação) viram um `.zip` com um `.csv` por tipo (`zipfile` em memória). Pode ser chamada de novo pra regerar depois de mais edições — não bloqueia edição subsequente. +- `POST /{id}/gerar/` monta o(s) CSV(s) a partir das **linhas já salvas** (isto é, já com qualquer edição feita na revisão — não reprocessa os arquivos originais) usando `leiaute_sistema.CABECALHO`; 1 tipo de lançamento vira um `.csv` direto, 2 tipos (mensalidade + coparticipação) viram um `.zip` com um `.csv` por tipo (`zipfile` em memória). Sempre marca `status="concluida"` (+ `concluida_em`) — pode ser chamada de novo enquanto `concluida` (regera o mesmo arquivo a partir do que já está salvo), mas a partir daí toda edição de linha/auditoria/alteração fica bloqueada até reabrir (ver `reabrir()` abaixo e "Trava de edição pós-conclusão"). +- `POST /{id}/reabrir/` volta `status="revisao"` (zera `concluida_em`) — contrapartida de `gerar()`, é o único jeito de voltar a editar uma importação concluída. Botão "Editar" na tela de Revisão, visível só quando `status === "concluida"`. -`ImportacaoPlanoSaudeLinhaViewSet` (`/api/importacoes-plano-saude-linhas/{id}/`, só GET/PATCH): edição de uma linha por vez, disparada por `blur`/`change` de cada `` na tela de revisão — mesma permissão de toggle único, sem checagem de "dono". +`ImportacaoPlanoSaudeLinhaViewSet` (`/api/importacoes-plano-saude-linhas/{id}/`, só GET/PATCH): edição de uma linha por vez, disparada por `blur`/`change` de cada `` na tela de revisão — mesma permissão de toggle único, sem checagem de "dono". `create()`/`partial_update()`/`destroy()` recusam (400) se a importação já estiver `concluida` — ver "Trava de edição pós-conclusão" abaixo. -`ImportacaoPlanoSaudeAuditoriaViewSet` (`/api/importacoes-plano-saude-auditoria/{id}/resolver/`, só `POST`) — ver seção própria abaixo. +`ImportacaoPlanoSaudeAuditoriaViewSet` (`/api/importacoes-plano-saude-auditoria/{id}/resolver/`, só `POST`) — ver seção própria abaixo; também recusa se a importação estiver `concluida`. + +**Histórico (`#ips-list-table`): ordenação por coluna + filtro "estilo Excel" por coluna, os dois client-side** sobre o array já carregado (`GET /api/importacoes-plano-saude/`, sem paginação/filtro no servidor) — mesmo padrão de ordenação já usado em `#ua-table`/Ramais (`th[data-sort]`, ícone `↕`). O filtro (`criarFiltroColuna()`, `importacao-plano-saude.js`) nasceu como um segundo campo de texto por coluna, mas foi revisto a pedido do usuário pra imitar o filtro de planilha (Excel/Sheets): um botão de funil dentro do próprio `` de cada coluna filtrável (Cód. Empresa/Operadora/Status/Criado por) abre um popup com busca + checklist dos **valores distintos daquela coluna** (reaproveita `.checklist-box`/`.checklist-search`/`.checklist-select-all`/`.modal-checkbox` de `components.css` — mesmo componente já usado nos checklists de Perfis de Acesso), tudo desmarcável/marcável, com "Aplicar"/"Limpar" no rodapé (só aplica no clique, não a cada checkbox — evita re-renderizar a lista principal a cada toque). Os filtros das 4 colunas combinam entre si (AND). `listFiltros[campo]` vale `null` (sem filtro) ou um `Set` dos valores brutos marcados; marcar **todos** os valores existentes equivale a `null` (sem filtro), pra um valor novo que apareça depois (operadora nova, por exemplo) não nascer excluído até o usuário marcá-lo manualmente. O botão de funil ganha `.is-active` (cor de destaque) enquanto a coluna tiver um filtro aplicado — mesmo sinal visual do funil "azul" do Excel. `.pa-table-wrap` normalmente usa `overflow:hidden` pra arredondar os cantos da tabela; só a tabela do histórico (`.ips-list-table-wrap`) sobrescreve pra `visible`, senão o popup (que precisa aparecer por cima das linhas, não só dentro do cabeçalho) seria cortado ali. Qualquer mudança de filtro (ou de ordenação) volta pra página 1. `listEmpty` mostra uma mensagem diferente conforme o caso: "Nenhuma importação realizada ainda." quando o histórico está mesmo vazio, "Nenhuma importação encontrada com esse filtro." quando o vazio é só resultado do filtro aplicado. + +### Trava de edição pós-conclusão + +Depois que `POST /{id}/gerar/` marca uma importação como `concluida`, editar/incluir/excluir uma linha (`ImportacaoPlanoSaudeLinhaViewSet`), resolver um item de auditoria (`ImportacaoPlanoSaudeAuditoriaViewSet.resolver`) ou reverter uma alteração (`ImportacaoPlanoSaudeAlteracaoViewSet.reverter`) passam a ser recusados (400) — decisão explícita do usuário, depois de ver que a tabela de revisão continuava 100% editável mesmo depois do arquivo já ter sido gerado e entregue. `_garante_importacao_em_revisao(importacao)` (função módulo-level em `views.py`, chamada no início de cada um desses pontos de escrita) é o único lugar que checa isso — levanta `ValidationError` com uma mensagem pedindo pra usar o botão "Editar" (`POST /{id}/reabrir/`) primeiro. `gerar()` em si nunca é bloqueado (pode ser chamado de novo com a importação já `concluida`, só regera o mesmo arquivo a partir do que está salvo). + +No frontend (`importacao-plano-saude.js`), a tela de Revisão espelha essa trava puramente pra UX (a validação real é sempre a do backend acima): com `importacaoAtual.status === "concluida"`, toda célula da tabela de Mensalidade/Coparticipação vira texto (não ``, nem Valor Empresa/Valor — a regra de "só Valor Empresa/Valor editáveis" descrita no bullet de `ImportacaoPlanoSaudeLinha` acima só se aplica quando a importação ainda está em revisão), o "×" de remover linha e o botão "Adicionar linha" somem, "Vincular pessoa" (Auditoria) e "Reverter" (Alterações) também somem. O botão "Editar" (`#ips-review-editar-btn`, ao lado de "Gerar Arquivo") aparece só nesse estado e chama `POST /{id}/reabrir/`, atualizando `importacaoAtual` e re-renderizando as abas. + +Clicar em "Gerar Arquivo" (`gerarBtn`) sempre volta pro histórico (`showView("list")` + `refreshList()`) depois do download disparar — decisão explícita do usuário, já que a partir daí a importação está `concluida` e travada (ver acima), não há mais nada pra revisar de imediato na própria tela. + +### Planilha padrão via Questor (SQL) + +Até uma rodada anterior, a "planilha padrão" (cadastro dos beneficiários, sem valores — o mesmo que `le_planilha_padrao` lê de um CSV) só chegava por upload manual, exportado à mão do Questor. O usuário forneceu e validou uma consulta SQL equivalente contra o próprio banco do Questor, então "Nova Importação" ganhou um segundo caminho: buscar essa planilha automaticamente a partir de empresa (já resolvida pela `RegraCusteioPlanoSaude` escolhida) + operadora + competência (mês/ano digitado na tela) — **sem precisar mais exportar/anexar nada** nesse caso. O upload manual continua existindo como alternativa (Questor fora do ar, ou empresa ainda não migrada) — decisão explícita do usuário, não uma substituição total. + +- **Toggle na tela** (`importacao-plano-saude.js`/`.html`, dentro do bloco "1. Planilha padrão"): dois radios, "Buscar automaticamente do Questor" (padrão) / "Anexar manualmente" — o primeiro revela um campo "Competência" **texto livre com máscara MM/AAAA** (`` + `mascaraCompetencia()`/`competenciaParaIso()` em JS — deliberadamente **não** um ``: o seletor nativo do browser foi rejeitado pelo usuário como UX ruim; mesmo padrão de digitação livre já usado em `indicador-desempenho.js`/`pidIndMascaraCompetencia`, copiado aqui em vez de compartilhado, como as demais funções pequenas duplicadas entre telas), o segundo revela o `` de sempre. Trocar de modo limpa o outro campo, pra nunca mandar os dois juntos (o backend também recusa isso). +- **Backend**: `ImportacaoPlanoSaudeCreateSerializer.competencia` é um `serializers.DateField()` normal (mesmo padrão de `IndicadorApuracaoCreateSerializer.competencia`) — o frontend já manda o ISO `"AAAA-MM-01"` convertido a partir da máscara, nunca a string mascarada crua. `validate()` exige exatamente uma das duas origens (nunca as duas, nunca nenhuma). +- `ImportacaoPlanoSaudeViewSet.create()` (views.py): quando não veio arquivo, resolve a planilha **antes** de criar o registro — `portal_api.planos_saude.questor_planilha.busca_linhas_questor(codigo_empresa, codigo_operadora, competencia)` consulta `sqls.questor.QuestorSQL.consulta_planilha_plano_saude` (só leitura — `select_mappings_query`, nunca `execute`/`execute_returning`, ver [[feedback_bancos_externos_somente_leitura]]) via `DatabaseConnection("questor")`. Uma falha de conexão/consulta aqui devolve 400 direto, sem nada persistido ainda (diferente do caminho de upload, que só sabe se o arquivo é válido depois de já ter salvo o registro — por isso, nesse, o cleanup de arquivo/registro órfão continua sendo necessário). Zero linhas retornadas (empresa sem plano ativo na competência) também é 400. O resultado é serializado de volta pra CSV (`questor_planilha.linhas_para_csv_bytes`, mesmo formato de `leiaute_sistema.CABECALHO`) e salvo como `ContentFile` no próprio campo `planilha_padrao` — preserva o histórico completo mesmo pra importações que nunca tiveram upload. A "trava de conferência do código de empresa" (que confere que a planilha anexada tem alguma linha da empresa da regra) é pulada nesse caminho, redundante já que a consulta já filtrou por esse `codigo_empresa`. +- **`pipeline.processa_importacao`** deixou de ler o arquivo sozinho (não recebe mais `caminho_planilha_padrao: str`) — recebe `linhas_sistema_template: List[LinhaSistema]` já pronta, de qualquer uma das duas origens (`le_planilha_padrao(caminho)` pro upload, `busca_linhas_questor(...)` pro Questor) — a decisão de qual usar ficou inteiramente em `views.py create()`. +- **Código da operadora**: até então só existia embutido no `label` de `pipeline.OPERADORAS` (ex. `"5060 - Unimed Saúde"`, extraído por *string split* onde só o nome era preciso). Passou a existir como campo próprio (`OPERADORAS[chave]["codigo_operadora"]`, junto de `"nome"`) — é o valor usado pra filtrar a consulta por operadora (`codigooutemp` no Questor, código da OPERADORA, não confundir com `codigo_empresa` do cliente); `pipeline.label_operadora(chave)` calcula o `" - "` de exibição a partir desses dois campos onde ainda é preciso (`lista_operadoras()`, mensagens de erro, `nome_operadora` da importação). +- `ImportacaoPlanoSaude.competencia` (`DateField`, null) registra a competência usada — só preenchida quando a origem foi o Questor; exibida na tela de Revisão ao lado do nome da operadora. ### Resolução manual de auditoria por nome diff --git a/media/planos_saude/operadora/221_-_RELATÓRIO_ITAMED_082026_S4KHFAY.pdf b/media/planos_saude/operadora/221_-_RELATÓRIO_ITAMED_082026_S4KHFAY.pdf new file mode 100644 index 0000000000000000000000000000000000000000..30633d86954ac4e66218b23064bed8bfb5b06a1e GIT binary patch literal 124142 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 literal 0 HcmV?d00001 diff --git a/media/planos_saude/operadora/221_-_RELATÓRIO_UNIMED_082026_MgsNBZR.csv b/media/planos_saude/operadora/221_-_RELATÓRIO_UNIMED_082026_MgsNBZR.csv new file mode 100644 index 0000000..46bf847 --- /dev/null +++ b/media/planos_saude/operadora/221_-_RELATÓRIO_UNIMED_082026_MgsNBZR.csv @@ -0,0 +1,66 @@ +Cód. Contr/Contrat. Pagador;Id. Título;Número Título;Valor Bruto;Valor Líquido;Situação Título;Contratante;Id. Titular;Família;Id. Benef.;Cód.Beneficiário;Nome Beneficiário;Tipo Benef.;Grau Depend.;Código Combinação;Reservado;Valor;Competência;Tipo;Tipo Ato Médico;Cód. Serviço;Descrição Serviço; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;756165;TABATA CAROLINE GOES DA SILVA - 835199;756165;'9750167003613895;TABATA CAROLINE GOES DA SILVA;1;0 - TITULAR;10215;;272,77;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;756165;TABATA CAROLINE GOES DA SILVA - 835199;754971;'9750167003821633;WENDY MANOEL MIGUEL MELO DA SILVA;2;1 - CONJUGE;10008;;231,78;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;756165;TABATA CAROLINE GOES DA SILVA - 835199;756166;'9750167003613909;LUISA VALENTINA GOES DE MELO;2;10 - FILHO(A);10008;;130,13;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;762483;ADRIANA JARDIM DE CARVALHO - 835478;762483;'9750167003631320;ADRIANA JARDIM DE CARVALHO;1;0 - TITULAR;10008;;706,01;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;761760;TAWANY THYESKA DE PIERRI MARQUES - 835910;761760;'9750167003658732;TAWANY THYESKA DE PIERRI MARQUES;1;0 - TITULAR;10215;;238,92;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;761760;TAWANY THYESKA DE PIERRI MARQUES - 835910;761761;'9750167003658740;THAEMY LOHAYNE DE PIERRE BORGES;2;10 - FILHO(A);10008;;130,13;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;766974;EDSON AUGUSTO DOS SANTOS - 838034;766974;'9750167003785599;EDSON AUGUSTO DOS SANTOS;1;0 - TITULAR;10008;;351,21;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;766974;EDSON AUGUSTO DOS SANTOS - 838034;766974;'9750167003785599;EDSON AUGUSTO DOS SANTOS;1;0 - TITULAR;10008;;110;08/2026;Serviços ;Consulta;10101012;Consulta em consultorio no horario normal ou preestabelecido; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;766974;EDSON AUGUSTO DOS SANTOS - 838034;766974;'9750167003785599;EDSON AUGUSTO DOS SANTOS;1;0 - TITULAR;10008;;45,65;08/2026;Serviços ;Exame;41301080;Ceratoscopia computadorizada - monocular; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;766974;EDSON AUGUSTO DOS SANTOS - 838034;766974;'9750167003785599;EDSON AUGUSTO DOS SANTOS;1;0 - TITULAR;10008;;4,26;08/2026;Serviços ;Exame;41301323;Tonometria - binocular; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;766974;EDSON AUGUSTO DOS SANTOS - 838034;766974;'9750167003785599;EDSON AUGUSTO DOS SANTOS;1;0 - TITULAR;10008;;51,08;08/2026;Serviços ;Exame;41501128;Paquimetria ultrassonica - monocular; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;766974;EDSON AUGUSTO DOS SANTOS - 838034;766974;'9750167003785599;EDSON AUGUSTO DOS SANTOS;1;0 - TITULAR;10008;;28,98;08/2026;Serviços ;Outros;50000560;Consulta ambulatorial por nutricionista com diretriz definida pela ANS - n 103; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;757635;JOICE GABRIELLY CONRADO - 840123;757635;'9750167003885879;JOICE GABRIELLY CONRADO;1;0 - TITULAR;10215;;199,65;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;272,8;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;74,25;08/2026;Serviços ;Consulta;10101039;Consulta em pronto socorro; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;3,72;08/2026;Serviços ;Exame;40301583;Colesterol HDL - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;4,96;08/2026;Serviços ;Exame;40301591;Colesterol LDL - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;1,74;08/2026;Serviços ;Exame;40301605;Colesterol total - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;1,74;08/2026;Serviços ;Exame;40301630;Creatinina - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;1,74;08/2026;Serviços ;Exame;40302040;Glicose - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;1,74;08/2026;Serviços ;Exame;40302504;Transaminase oxalacetica amino transferase aspartato - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;1,74;08/2026;Serviços ;Exame;40302512;Transaminase piruvica amino transferase de alanina - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;2,48;08/2026;Serviços ;Exame;40302547;Triglicerideos - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;1,74;08/2026;Serviços ;Exame;40302580;Ureia - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;5,58;08/2026;Serviços ;Exame;40302733;Hemoglobina glicada Fracao A1c - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;8,28;08/2026;Serviços ;Exame;40302830;Vitamina D 25 HIDROXI, pesquisa e/ou dosagem Vitamina D3; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;3,72;08/2026;Serviços ;Exame;40304361;Hemograma com contagem de plaquetas ou fracoes eritrograma, leucograma, plaquet; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;1,86;08/2026;Serviços ;Exame;40310060;Bacterioscopia Gram, Ziehl, Albert etc, por lamina; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;6,19;08/2026;Serviços ;Exame;40310213;Cultura, urina com contagem de colonias; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;11,15;08/2026;Serviços ;Exame;40310426;Antibiograma automatizado; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;2,48;08/2026;Serviços ;Exame;40311210;Rotina de urina caracteres fisicos, elementos anormais e sedimentoscopia; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;9,29;08/2026;Serviços ;Exame;40316190;Cortisol - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;12,39;08/2026;Serviços ;Exame;40316246;Estradiol - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;15,48;08/2026;Serviços ;Exame;40316270;Ferritina - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;8,05;08/2026;Serviços ;Exame;40316289;Foliculo estimulante, hormonio FSH - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;7,8;08/2026;Serviços ;Exame;40316335;Hormonio luteinizante LH - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;13,01;08/2026;Serviços ;Exame;40316408;Progesterona - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;10,53;08/2026;Serviços ;Exame;40316416;Prolactina - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;10,53;08/2026;Serviços ;Exame;40316491;T4 livre - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;10,53;08/2026;Serviços ;Exame;40316521;Tireoestimulante, hormonio TSH - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;10,53;08/2026;Serviços ;Exame;40316572;Vitamina B12 - pesquisa e/ou dosagem; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;143,99;08/2026;Serviços ;Exame;40601200;Procedimento diagnostico em peca anatomica ou cirurgica simples; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;74,25;08/2026;Serviços ;Exame;40808041;Mamografia digital bilateral com diretriz definida pela ANS - n 52; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;59,76;08/2026;Serviços ;Exame;40808130;Densitometria ossea - rotina: coluna e femur ou dois segmentos; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;38,52;08/2026;Serviços ;Exame;40901114;US - Mamas; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;755807;'9750167003885950;LUCIANA CARDOSO FERNANDES;1;0 - TITULAR;10008;;44,36;08/2026;Serviços ;Exame;40901300;US - Transvaginal utero, ovario, anexos e vagina; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;755807;LUCIANA CARDOSO FERNANDES - 840127;857049;'9750167018903290;JOEL MARCONCINI;2;1 - CONJUGE;10008;;490,29;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;780352;EVELYN CHRISTINE CURCINO - 847272;780352;'9750167013066030;EVELYN CHRISTINE CURCINO;1;0 - TITULAR;10215;;210,38;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;781791;TAILLANY TAMYRISS DE PIERRI MARQUES - 848274;781791;'9750167013085115;TAILLANY TAMYRISS DE PIERRI MARQUES;1;0 - TITULAR;10215;;199,65;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;781791;TAILLANY TAMYRISS DE PIERRI MARQUES - 848274;781791;'9750167013085115;TAILLANY TAMYRISS DE PIERRI MARQUES;1;0 - TITULAR;10215;;74,25;08/2026;Serviços ;Exame;40901122;US - Abdome total abdome superior, rins, bexiga, aorta, veia cava inferior e ad; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;781791;TAILLANY TAMYRISS DE PIERRI MARQUES - 848274;781791;'9750167013085115;TAILLANY TAMYRISS DE PIERRI MARQUES;1;0 - TITULAR;10215;;39,43;08/2026;Serviços ;Exame;40901211;US - Estruturas superficiais cervical ou axila ou musculo ou tendao; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;781791;TAILLANY TAMYRISS DE PIERRI MARQUES - 848274;781791;'9750167013085115;TAILLANY TAMYRISS DE PIERRI MARQUES;1;0 - TITULAR;10215;;44,36;08/2026;Serviços ;Exame;40901300;US - Transvaginal utero, ovario, anexos e vagina; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;795128;KETLIN RAYANI SILVA DE OLIVEIRA MERTIG - 858372;795128;'9750167013261614;KETLIN RAYANI SILVA DE OLIVEIRA MERTIG;1;0 - TITULAR;10215;;210,38;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;795128;KETLIN RAYANI SILVA DE OLIVEIRA MERTIG - 858372;795128;'9750167013261614;KETLIN RAYANI SILVA DE OLIVEIRA MERTIG;1;0 - TITULAR;10215;;74,25;08/2026;Serviços ;Consulta;10101039;Consulta em pronto socorro; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;795128;KETLIN RAYANI SILVA DE OLIVEIRA MERTIG - 858372;798055;'9750167014716674;MARIA JULIA MERTIG FAGUNDES;2;10 - FILHO(A);10215;;151,51;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;795128;KETLIN RAYANI SILVA DE OLIVEIRA MERTIG - 858372;798339;'9750167015073823;ROBERTO CARLOS CHINAIDER FAGUNDES;2;1 - CONJUGE;10215;;238,92;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;819205;FRANCISCO AQUINO CHAPARRO - 874116;819205;'9750167018482406;FRANCISCO AQUINO CHAPARRO;1;0 - TITULAR;10008;;272,8;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;819205;FRANCISCO AQUINO CHAPARRO - 874116;822752;'9750167018523960;CAMILA CASSIA MORAES COSTA;2;1 - CONJUGE;10008;;272,8;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;844618;FRANCIELLI SOUZA DE JESUS - 886633;844618;'9750167018752799;FRANCIELLI SOUZA DE JESUS;1;0 - TITULAR;10215;;290,61;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;844618;FRANCIELLI SOUZA DE JESUS - 886633;849666;'9750167018811701;ELOIZA DE SOUZA;2;10 - FILHO(A);10008;;130,13;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;844618;FRANCIELLI SOUZA DE JESUS - 886633;849667;'9750167018811710;ELENA DE SOUZA;2;10 - FILHO(A);10008;;130,13;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;853105;KESSY KOHNLEIN - 892339;853105;'9750167018854672;KESSY KOHNLEIN;1;0 - TITULAR;10220;;137,23;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;854462;DAIANE DA LUZ GUEIROS DA SILVA - 893274;854462;'9750167018871135;DAIANE DA LUZ GUEIROS DA SILVA;1;0 - TITULAR;10008;;213,95;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;854462;DAIANE DA LUZ GUEIROS DA SILVA - 893274;856557;'9750167018897436;RENAN GABRIEL DA LUZ DOMINGOS;2;10 - FILHO(A);10008;;130,13;08/2026;Mensalidade;;;; +5884128-0;3187862;201960424;6818,83;6818,83;Aberto;ROSSONI PIOTTO CIA LTDA - 00384013000454;854462;DAIANE DA LUZ GUEIROS DA SILVA - 893274;869895;'9750167019048971;LUCCA GABRIEL DA LUZ DE JESUS;2;10 - FILHO(A);10008;;130,13;08/2026;Mensalidade;;;; diff --git a/media/planos_saude/planilha_padrao/questor_221_2026-08.csv b/media/planos_saude/planilha_padrao/questor_221_2026-08.csv new file mode 100644 index 0000000..6359c19 --- /dev/null +++ b/media/planos_saude/planilha_padrao/questor_221_2026-08.csv @@ -0,0 +1,23 @@ +CODIGOEMPRESA;NOMEFUNC;CPFFUNC;CODIGOOUTEMP;DATAINICIAL;NOMEDEPENDENTE;CPFDEPENDENTE;VALOREMPRESA;VALOR;DESCRICAO +221;ADRIANA JARDIM DE CARVALHO;569.433.180-04;5060;01/02/2025;;;0;0; +221;DAIANE DA LUZ GUEIROS DA SILVA;080.947.869-22;5060;01/07/2026;RENAN GABRIEL DA LUZ DOMINGOS;800.859.409-84;0;0; +221;DAIANE DA LUZ GUEIROS DA SILVA;080.947.869-22;5060;01/07/2026;;;0;0; +221;DAIANE DA LUZ GUEIROS DA SILVA;080.947.869-22;5060;01/07/2026;LUCCA GABRIEL DA LUZ DE JESUS;002.261.929-11;0;0; +221;EDSON AUGUSTO DOS SANTOS;033.535.459-99;5060;01/06/2025;;;0;0; +221;EVELYN CHRISTINE CURCINO;102.022.109-79;5060;01/06/2025;;;0;0; +221;FRANCIELLI SOUZA DE JESUS;056.918.579-32;5060;01/02/2026;ELENA DE SOUZA;158.076.209-33;0;0; +221;FRANCIELLI SOUZA DE JESUS;056.918.579-32;5060;01/02/2026;;;0;0; +221;FRANCIELLI SOUZA DE JESUS;056.918.579-32;5060;01/02/2026;ELOIZA DE SOUZA;142.759.789-86;0;0; +221;FRANCISCO AQUINO CHAPARRO;043.273.629-80;5060;01/11/2025;CAMILA CASSIA MORAES COSTA;042.355.369-07;0;0; +221;FRANCISCO AQUINO CHAPARRO;043.273.629-80;5060;01/11/2025;;;0;0; +221;JOICE GABRIELLY CONRADO;013.817.749-03;5060;01/06/2025;;;0;0; +221;KESSY KOHNLEIN;107.820.969-30;5060;01/03/2026;;;0;0; +221;KETLIN RAYANI SILVA DE OLIVEIRA MERTIG;121.074.169-58;5060;01/06/2025;;;0;0; +221;KETLIN RAYANI SILVA DE OLIVEIRA MERTIG;121.074.169-58;5060;01/06/2025;ROBERTO CARLOS CHINAIDER FAGUNDES;078.468.529-06;0;0; +221;KETLIN RAYANI SILVA DE OLIVEIRA MERTIG;121.074.169-58;5060;01/06/2025;MARIA JULIA MERTIG FAGUNDES;156.306.539-89;0;0; +221;LUCIANA CARDOSO FERNANDES;044.214.069-02;5060;01/04/2026;JOEL MARCONCINI;969.398.939-20;0;0; +221;LUCIANA CARDOSO FERNANDES;044.214.069-02;5060;01/04/2026;;;0;0; +221;TABATA CAROLINE GOES DA SILVA;072.082.879-10;5060;01/06/2025;LUISA VALENTINA GOES MELO;107.096.349-60;0;0; +221;TABATA CAROLINE GOES DA SILVA;072.082.879-10;5060;01/06/2025;WENDY MANOEL MIGUEL MELO DA SILVA;080.701.949-60;0;0; +221;TABATA CAROLINE GOES DA SILVA;072.082.879-10;5060;01/06/2025;;;0;0; +221;TAILLANY TAMYRISS DE PIERRI MARQUES;120.239.569-43;5060;01/06/2025;;;0;0; diff --git a/media/planos_saude/planilha_padrao/questor_221_2026-08_fDbSEFb.csv b/media/planos_saude/planilha_padrao/questor_221_2026-08_fDbSEFb.csv new file mode 100644 index 0000000..1ce1ed5 --- /dev/null +++ b/media/planos_saude/planilha_padrao/questor_221_2026-08_fDbSEFb.csv @@ -0,0 +1,24 @@ +CODIGOEMPRESA;NOMEFUNC;CPFFUNC;CODIGOOUTEMP;DATAINICIAL;NOMEDEPENDENTE;CPFDEPENDENTE;VALOREMPRESA;VALOR;DESCRICAO +221;ADRIANA OLIVEIRA DOS SANTOS CODO;022.366.869-94;3755;01/12/2023;;;0;0; +221;ADRIANA OLIVEIRA DOS SANTOS CODO;022.366.869-94;3755;01/12/2023;RAFHAEL HENRIQUE CODO;133.710.699-23;0;0; +221;ANELISA CLAUDIA TOLEDO;028.627.449-30;3755;01/12/2023;MURILO AUGUSTO TOLEDO SILVA;140.796.419-40;0;0; +221;ANELISA CLAUDIA TOLEDO;028.627.449-30;3755;01/12/2023;;;0;0; +221;APARECIDA DOBNER;389.259.312-49;3755;01/12/2023;ANNA CAROLINA DOBNER WILLMBRINK;097.280.639-38;0;0; +221;APARECIDA DOBNER;389.259.312-49;3755;01/12/2023;;;0;0; +221;DIEGO RODRIGO DA FONSECA;007.377.729-30;3755;01/12/2023;;;0;0; +221;ELIANA KARPSAK LOPES;064.896.469-86;3755;01/12/2023;;;0;0; +221;ELIANA KARPSAK LOPES;064.896.469-86;3755;01/12/2023;LUCAS ANTONIO DE OLIVEIRA;066.200.469-83;0;0; +221;FERNANDO BERLATTO;040.875.749-38;3755;01/12/2023;;;0;0; +221;JANE MARILIA BEKER;025.273.319-39;3755;01/12/2023;;;0;0; +221;JESSICA DE FATIMA CATTANI DE PAULA;092.879.749-00;3755;01/12/2023;;;0;0; +221;JOAO VICTOR DE OLIVEIRA EGIDIO;051.271.009-08;3755;01/12/2023;;;0;0; +221;LEANDRA SPEROTTO;022.795.359-20;3755;01/12/2023;;;0;0; +221;LEANDRA SPEROTTO;022.795.359-20;3755;01/12/2023;LUCAS SPEROTTO SCHIRMANN;125.709.619-22;0;0; +221;LUCAS DE SOUZA;093.861.469-08;3755;01/12/2023;;;0;0; +221;MARCOS PAULO GOBBO;057.539.659-89;3755;01/12/2023;;;0;0; +221;MARIZA KARPSAK LOPES;726.088.899-72;3755;01/12/2023;EDUARDO KARPSAK LOPES;096.771.579-22;0;0; +221;MARIZA KARPSAK LOPES;726.088.899-72;3755;01/12/2023;;;0;0; +221;PAULA MICHELLI DA SILVA;073.516.259-05;3755;01/12/2023;;;0;0; +221;PAULA MICHELLI DA SILVA;073.516.259-05;3755;01/12/2023;EMANUELLY FERREIRA DA SILVA;152.794.939-70;0;0; +221;VANESSA JUIF TRINDADE;032.476.309-37;3755;01/12/2023;;;0;0; +221;ZAIRA DAVID BARBOSA;007.396.889-79;3755;01/12/2023;;;0;0; diff --git a/plano.md b/plano.md index 34d447a..90228f7 100644 --- a/plano.md +++ b/plano.md @@ -1043,6 +1043,30 @@ Sequência natural da rodada 77 (fundo de `.login-page`): o usuário pediu o mes Depois de ver o fundo liso (`var(--bg-canvas)`, rodada 77), usuário pediu um refinamento: "um tom de roxo um pouco mais claro e o fundo branco levemente escurecido", só no tema claro. Trocado por `radial-gradient(circle at 20% 20%, rgba(var(--accent-rgb), 0.12), transparent 45%)` sobre `#ece7f2` (levemente mais escuro que o `--bg-canvas` puro, `#f3f1f7`) — o brilho radial já existia no tema escuro com opacidade `0.25`, aqui ficou bem mais sutil (`0.12`) pra não ficar turvo sobre um fundo claro. A cor exata é fixa só nesta regra (não altera o token `--bg-canvas`), então o resto do Portal no tema claro continua com o tom original. +### 80. Buscar a planilha padrão do Questor via SQL (Importação de Plano de Saúde) + +Até aqui, "Nova Importação" exigia exportar manualmente do Questor a "planilha padrão" (CSV) e anexá-la, além do relatório da operadora. Usuário validou uma consulta SQL contra o Questor (mesmo pacote `database/` só-leitura já usado em `empresas_questor.py`) que devolve exatamente essa informação a partir de `codigo_empresa` (já cadastrado em `RegraCusteioPlanoSaude`) + operadora + competência (mês/ano) — eliminando o passo manual na maioria dos casos. + +- **Upload manual continua existindo**, como alternativa (Questor fora do ar, ou empresa ainda não migrada) — decisão explícita do usuário. "Nova Importação" ganhou um toggle "Buscar automaticamente do Questor" (padrão) / "Anexar manualmente", com um campo "Competência" (``) só no primeiro modo. +- **Código da operadora**: até então só existia embutido no `label` de `pipeline.OPERADORAS` (ex. "5060 - Unimed Saúde"), extraído por *string split* onde precisava só do nome. Separado em campos próprios (`codigo_operadora`/`nome`), com `label_operadora()` calculando o label onde ainda é exibido — elimina o split e dá um valor confiável pra filtrar a consulta por operadora. +- **Nova consulta** (`sqls.questor.QuestorSQL.consulta_planilha_plano_saude`) e novo módulo `portal_api/planos_saude/questor_planilha.py` (`busca_linhas_questor`/`linhas_para_csv_bytes`) — a busca é resolvida **antes** de criar o registro `ImportacaoPlanoSaude` (uma falha de conexão nunca deixa nada órfão pra limpar, diferente do caminho de upload). `pipeline.processa_importacao` deixou de ler o arquivo sozinho (`caminho_planilha_padrao: str`) e passou a receber a lista de `LinhaSistema` já resolvida (`linhas_sistema_template`), de qualquer uma das duas origens — decisão de qual usar ficou em `views.py`. +- Mesmo vindo do Questor, um CSV é gerado (mesmo formato do upload) e salvo no campo `planilha_padrao` — preserva o histórico completo já documentado pra toda importação. Novo campo `ImportacaoPlanoSaude.competencia` (`DateField`, null) registra a competência usada, só quando a origem foi o Questor (migração `0045`). +- A "trava de conferência do código de empresa" (existente desde a rodada do Cadastro de Regras) é pulada quando a origem é Questor — redundante, já que a própria consulta já filtrou por aquele `codigo_empresa`. + +**Ajuste no mesmo dia, depois do primeiro teste real**: o campo "Competência" nasceu como `` — usuário rejeitou o seletor nativo do browser como "horrível" e pediu o mesmo padrão já usado no Indicador de Desempenho: texto livre com máscara MM/AAAA (`mascaraCompetencia()`/`competenciaParaIso()`, cópia local das mesmas funções de `indicador-desempenho.js`), o usuário digita "082026" e o campo forma "08/2026" sozinho. Backend acompanhou: `competencia` no serializer é um `DateField` normal (mesmo padrão de `IndicadorApuracaoCreateSerializer`), recebendo o ISO `"AAAA-MM-01"` já convertido pelo JS, nunca a string mascarada crua. + +**Segundo ajuste, mesmo teste real**: a coluna `DATAINICIAL` do CSV gerado via Questor saía no formato ISO (`2023-12-01`, `linha["datainicial"].isoformat()` — a renderização padrão do Postgres pra uma coluna `date`), mas o leiaute real de importação do sistema espera `DD/MM/AAAA` (`01/12/2023`) nessa coluna — mesmo formato que uma planilha padrão exportada manualmente do Questor já usa. Corrigido em `questor_planilha.busca_linhas_questor()` pra `linha["datainicial"].strftime("%d/%m/%Y")`. `data_inicial` é sempre um passthrough string em todo o pipeline (nenhum outro ponto faz parsing de data nele, só grava/lê a string), então a mudança não exigiu tocar em mais nenhum arquivo. Nenhum registro histórico ficou com o formato errado — a única importação de teste que chegou a usar a busca via Questor (antes deste ajuste) já tinha sido excluída pelo próprio usuário. + +**Terceiro ajuste, mesmo dia — regra de edição da tabela de revisão revista**: até aqui, todo campo de `ImportacaoPlanoSaudeLinha` era editável em qualquer linha na tela de Revisão (decisão de uma rodada anterior). Vendo dados reais de uma importação via Questor (22 linhas, várias famílias), o usuário pediu pra restringir: só `Valor Empresa`/`Valor` editáveis numa linha que já veio do processamento (upload ou Questor) — os demais campos (cadastro da pessoa: nome, CPF, código, data...) só ficam editáveis numa linha incluída manualmente via "Adicionar linha", e só nela. Implementado 100% no frontend (`importacao-plano-saude.js`, `linhasIncluidasManualmente()`), sem campo novo: reaproveita o sinal que já existia em `ImportacaoPlanoSaudeAlteracao` (toda linha criada via "Adicionar linha" já gerava um registro `tipo="inclusao"` ali, só pra alimentar a aba "Alterações" — agora também decide, no cliente, quais linhas ganham os campos extras liberados). O backend continua aceitando PATCH em qualquer campo (nenhuma trava nova no serializer/model) — é uma restrição de UI, não de permissão. + +**Quarto ajuste, mesmo dia — trava de edição depois de "Gerar Arquivo"**: o ajuste anterior já restringia *quais campos*, mas o usuário notou que uma importação já `concluida` (arquivo já gerado/entregue) continuava 100% editável — pediu pra travar de vez, com um botão "Editar" explícito pra reabrir quando for realmente necessário corrigir algo depois da conclusão. Diferente do ajuste anterior, este saiu **também no backend**: `_garante_importacao_em_revisao(importacao)` (nova função em `views.py`) é chamada em todo ponto que escreve dentro de uma importação já criada — `ImportacaoPlanoSaudeLinhaViewSet.perform_create/update/destroy`, `ImportacaoPlanoSaudeAuditoriaViewSet.resolver`, `ImportacaoPlanoSaudeAlteracaoViewSet.reverter` — e recusa (400) se `status == "concluida"`. Novo endpoint `POST /api/importacoes-plano-saude/{id}/reabrir/` (`ImportacaoPlanoSaudeViewSet.reabrir`) volta `status="revisao"` e zera `concluida_em` — único jeito de destravar. `gerar()` em si nunca é bloqueado (sempre pode regerar/rebaixar o arquivo já concluído). No frontend, a tela de Revisão some com todo controle de edição (inputs viram texto, "×"/"Adicionar linha"/"Vincular pessoa"/"Reverter" somem) quando `status === "concluida"`, e mostra um botão "Editar" (ao lado de "Gerar Arquivo") que chama o `reabrir()` e volta tudo ao normal. Testado ponta a ponta via `APIRequestFactory`/`force_authenticate` (sem afetar dados reais, dentro de uma transação revertida): reabrir muda o status, edita normalmente em revisão, e volta a bloquear ao marcar concluída de novo. + +**Quinto ajuste, mesmo dia**: "Gerar Arquivo" passou a voltar direto pro histórico depois do download disparar (`showView("list")` + `refreshList()`) — como a importação já fica `concluida`/travada nesse momento (ajuste anterior), não fazia sentido continuar na tela de Revisão sem nada pra fazer ali. + +**Sexto ajuste, mesmo dia — filtro no histórico**: com o histórico crescendo (23 importações já), o usuário pediu pra filtrar a lista, não só ordenar — ex.: ver todas as execuções da empresa 221, ou combinar empresa 221 + operadora 3755. Primeira versão foi um campo de texto por coluna (Cód. Empresa/Operadora/Criado por) + um `` aqui — o + // seletor nativo do browser foi considerado horrível pelo usuário. + function mascaraCompetencia(valor) { + const digitos = (valor || "").replace(/\D/g, "").slice(0, 6); + if (digitos.length <= 2) return digitos; + return `${digitos.slice(0, 2)}/${digitos.slice(2)}`; + } + + function competenciaParaIso(valor) { + const match = /^(\d{2})\/(\d{4})$/.exec(valor || ""); + if (!match) return null; + const mes = Number(match[1]); + if (mes < 1 || mes > 12) return null; + return `${match[2]}-${match[1]}-01`; + } + + if (formCompetencia) { + formCompetencia.addEventListener("input", (event) => { + event.target.value = mascaraCompetencia(event.target.value); + }); + } + function showView(view) { listView.hidden = view !== "list"; formView.hidden = view !== "form"; @@ -483,6 +555,18 @@ document.addEventListener("DOMContentLoaded", async () => { criado_em: (imp) => imp.criado_em || "", }; + // Colunas com filtro "estilo Excel" no cabeçalho do histórico — mesma + // chave de PID_IPS_LISTA_SORT_VALOR, reaproveitado como extrator do valor + // bruto de cada linha pro popup também (ver criarFiltroColuna). "status" + // ganha um rótulo amigável no popup (a lista mostra "Em revisão", não + // "revisao"), as outras exibem o próprio valor. + const PID_IPS_STATUS_LABELS = { revisao: "Em revisão", concluida: "Concluída" }; + + function labelValorFiltroLista(campo, valor) { + if (campo === "status") return PID_IPS_STATUS_LABELS[valor] || valor; + return valor || "(Vazio)"; + } + function renderListPagination(totalPaginas) { if (totalPaginas <= 1) { listPagination.innerHTML = ""; @@ -515,11 +599,23 @@ document.addEventListener("DOMContentLoaded", async () => { if (listBulkCount) listBulkCount.textContent = `${count} selecionada${count === 1 ? "" : "s"}`; } + function importacaoPassaNosFiltros(imp) { + return Object.entries(listFiltros).every(([campo, valoresPermitidos]) => { + if (!valoresPermitidos) return true; // null = sem filtro nessa coluna + return valoresPermitidos.has(PID_IPS_LISTA_SORT_VALOR[campo](imp)); + }); + } + function renderList() { - listEmpty.hidden = importacoes.length !== 0; + const filtradas = importacoes.filter(importacaoPassaNosFiltros); + listEmpty.hidden = filtradas.length !== 0; + listEmpty.textContent = + importacoes.length === 0 + ? "Nenhuma importação realizada ainda." + : "Nenhuma importação encontrada com esse filtro."; const extrator = PID_IPS_LISTA_SORT_VALOR[listSortKey]; - const ordenadas = [...importacoes].sort((a, b) => comparaValoresLista(extrator(a), extrator(b)) * listSortDir); + const ordenadas = [...filtradas].sort((a, b) => comparaValoresLista(extrator(a), extrator(b)) * listSortDir); const totalPaginas = Math.max(1, Math.ceil(ordenadas.length / IPS_LIST_PAGE_SIZE)); listPage = Math.min(listPage, totalPaginas); @@ -1200,7 +1296,7 @@ document.addEventListener("DOMContentLoaded", async () => { regracadNovoEmpresaNome.textContent = resultado.nome_empresa; } else { regracadNovoEmpresaNome.className = "ips-regracad-novo__empresa-nome ips-regracad-novo__empresa-nome--nao-encontrada"; - regracadNovoEmpresaNome.textContent = "Empresa não encontrada no Questor."; + regracadNovoEmpresaNome.textContent = "Empresa não encontrada."; } // O backend só busca/salva o código normalizado (sem zero à esquerda, // ex. "092" -> "92") — reflete isso no campo assim que a resposta @@ -1317,6 +1413,10 @@ document.addEventListener("DOMContentLoaded", async () => { validadorPlanilha.limpar(); validadorArquivo.limpar(); formError.textContent = ""; + formCompetencia.value = ""; + const radioQuestor = planilhaOrigemRadios.find((r) => r.value === "questor"); + if (radioQuestor) radioQuestor.checked = true; + atualizarPlanilhaOrigemView(); regraResolvidaAtual = null; renderResumoRegra(null); impEmpresaOps.limpar(); @@ -1354,8 +1454,13 @@ document.addEventListener("DOMContentLoaded", async () => { } } const regraEmpresaSufixo = importacao.regra_empresa_label ? ` — Regra empresa: ${importacao.regra_empresa_label}` : ""; + // "competencia" só vem preenchida quando a planilha padrão foi buscada + // do Questor (não upload manual) — ver ImportacaoPlanoSaude.competencia. + const competenciaSufixo = importacao.competencia + ? ` — Competência: ${importacao.competencia.slice(5, 7)}/${importacao.competencia.slice(0, 4)}` + : ""; reviewSubtitle.textContent = - `${importacao.nome_operadora} — criada em ${new Date(importacao.criado_em).toLocaleString("pt-BR")}${regraEmpresaSufixo}`; + `${importacao.nome_operadora} — criada em ${new Date(importacao.criado_em).toLocaleString("pt-BR")}${regraEmpresaSufixo}${competenciaSufixo}`; if (reviewRegraEmpresaObs) { // As duas regras (empresa e de custeio salva) são mutuamente exclusivas // na criação — nunca as duas preenchidas ao mesmo tempo — mas o bloco é @@ -1380,6 +1485,9 @@ document.addEventListener("DOMContentLoaded", async () => { } function renderTabs() { + if (reviewEditarBtn) { + reviewEditarBtn.hidden = importacaoAtual.status !== "concluida"; + } const tipos = importacaoAtual.tipos_lancamento || []; const tabKeys = [...tipos, "auditoria", "alteracoes"]; if (!activeTab || !tabKeys.includes(activeTab)) activeTab = tabKeys[0]; @@ -1459,8 +1567,33 @@ document.addEventListener("DOMContentLoaded", async () => { }); } + // Colunas sempre editáveis, em qualquer linha — o resto do cadastro + // (nome, CPF, código, data...) já vem certo do casamento automático (ou + // da busca no Questor) e só devia ser tocado numa linha incluída à mão + // (ver linhasIncluidasManualmente() abaixo), nunca numa linha existente + // por engano. + const PID_IPS_CAMPOS_SEMPRE_EDITAVEIS = ["valor_empresa", "valor"]; + + // Uma linha é "incluída manualmente" se tiver um ImportacaoPlanoSaudeAlteracao + // tipo="inclusao" ainda não revertido apontando pra ela — mesmo sinal que já + // existia pra alimentar a aba "Alterações", não precisou de nenhum campo + // novo no backend. Só essas linhas ganham os demais campos editáveis; + // qualquer linha que já veio do processamento (upload ou Questor) só edita + // Valor Empresa/Valor. + function linhasIncluidasManualmente() { + const ids = new Set(); + (importacaoAtual.alteracoes || []).forEach((alt) => { + if (alt.tipo === "inclusao" && !alt.revertida && alt.linha) ids.add(alt.linha); + }); + return ids; + } + function panelHtmlParaTipo(tipo) { const campos = PID_IPS_CAMPOS_LINHA; + // Importação concluída: nada é editável até reabrir (botão "Editar" no + // cabeçalho da Revisão) — nem os valores, nem adicionar/remover linha. + const concluida = importacaoAtual.status === "concluida"; + const incluidasManualmente = linhasIncluidasManualmente(); let linhas = (importacaoAtual.linhas || []).filter((l) => l.tipo_lancamento === tipo); if (linhaSortKey) { linhas = [...linhas].sort((a, b) => comparaValorRevisao(a[linhaSortKey], b[linhaSortKey]) * linhaSortDir); @@ -1475,22 +1608,27 @@ document.addEventListener("DOMContentLoaded", async () => { : ""; const linhasHtml = linhas - .map( - (linha) => ` - - - - - ${campos - .map( - ([campo]) => - `` - ) - .join("")} - ` - ) + `; + return ` + + ${removerHtml} + ${celulasHtml} + `; + }) .join(""); return ` @@ -1506,12 +1644,22 @@ document.addEventListener("DOMContentLoaded", async () => { ${linhasHtml || `Nenhuma linha.`} + ${concluida ? "" : `
-
`; + `}`; + } + + // Valor sintético (não vem da API) só pra ordenar a coluna "Ação" — + // prefixo numérico garante o agrupamento (pendente/resolvido/sem ação) + // independente da ordenação alfabética do texto exibido em cada estado. + function auditoriaAcaoOrdem(item) { + if (item.resolvida) return "1-resolvido"; + if (PID_IPS_MOTIVOS_RESOLVIVEIS.includes(item.motivo)) return "0-pendente"; + return "2-sem-acao"; } function panelHtmlAuditoria() { @@ -1521,7 +1669,11 @@ document.addEventListener("DOMContentLoaded", async () => { return `

Nenhum item em auditoria — tudo foi lançado automaticamente.

`; } if (auditoriaSortKey) { - itens = [...itens].sort((a, b) => comparaValorRevisao(a[auditoriaSortKey], b[auditoriaSortKey]) * auditoriaSortDir); + const valorOrdenacao = + auditoriaSortKey === "acao" ? auditoriaAcaoOrdem : (item) => item[auditoriaSortKey]; + itens = [...itens].sort( + (a, b) => comparaValorRevisao(valorOrdenacao(a), valorOrdenacao(b)) * auditoriaSortDir + ); } const linhasHtml = itens .map((item) => { @@ -1530,7 +1682,7 @@ document.addEventListener("DOMContentLoaded", async () => { acaoHtml = `Resolvido${ item.linha_vinculada_nome ? ` — ${item.linha_vinculada_nome}` : "" }`; - } else if (PID_IPS_MOTIVOS_RESOLVIVEIS.includes(item.motivo)) { + } else if (importacaoAtual.status !== "concluida" && PID_IPS_MOTIVOS_RESOLVIVEIS.includes(item.motivo)) { acaoHtml = ``; } return ` @@ -1551,7 +1703,9 @@ document.addEventListener("DOMContentLoaded", async () => { ${colGroupHtml(campos, colWidthsAuditoria, PID_IPS_AUDITORIA_ACAO_WIDTH)} - ${campos + ${campos .map(([campo, label]) => colHeaderHtml(campo, label, "auditoria", { key: auditoriaSortKey, dir: auditoriaSortDir })) .join("")} @@ -1584,6 +1738,8 @@ document.addEventListener("DOMContentLoaded", async () => { const acaoHtml = alt.revertida ? `Revertida` + : importacaoAtual.status === "concluida" + ? `—` : ``; return ` @@ -1736,6 +1892,21 @@ document.addEventListener("DOMContentLoaded", async () => { }); } + if (reviewEditarBtn) { + reviewEditarBtn.addEventListener("click", async () => { + reviewEditarBtn.disabled = true; + try { + importacaoAtual = await pidReabrirImportacaoPlanoSaude(importacaoAtual.id); + reviewError.textContent = ""; + renderTabs(); + } catch (e) { + reviewError.textContent = e.message; + } finally { + reviewEditarBtn.disabled = false; + } + }); + } + if (regracadBtn) regracadBtn.addEventListener("click", abrirCadastroRegras); if (regracadFecharBtn) regracadFecharBtn.addEventListener("click", fecharCadastroRegras); if (regracadModal) { @@ -2062,6 +2233,12 @@ document.addEventListener("DOMContentLoaded", async () => { gerarBtn.disabled = true; try { await pidGerarArquivoPlanoSaude(importacaoAtual.id); + // Depois de baixar o arquivo, volta pro histórico — mesmo pedido do + // usuário pro fluxo de "Nova Importação" (abrirRevisao já leva pra + // lá), já que gerar() marca a importação como concluída e não há + // mais nada a revisar imediatamente depois de baixar o arquivo. + showView("list"); + await refreshList(); } catch (e) { reviewError.textContent = e.message; } finally { @@ -2144,7 +2321,12 @@ document.addEventListener("DOMContentLoaded", async () => { } listSortHeaders.forEach((th) => { - th.addEventListener("click", () => { + th.addEventListener("click", (event) => { + // Ignora cliques que vieram de dentro do popup de filtro (ver + // criarFiltroColuna abaixo) — sem isso, abrir o filtro ou marcar um + // checkbox dele também reordenava a coluna, já que o filtro mora + // dentro do mesmo
Ação
Ação ↕
clicável. + if (event.target.closest(".ips-col-filter")) return; const key = th.getAttribute("data-sort"); if (listSortKey === key) { listSortDir *= -1; @@ -2157,6 +2339,148 @@ document.addEventListener("DOMContentLoaded", async () => { }); }); + // Filtro "estilo Excel" por coluna do histórico — botão de funil dentro + // do próprio de ordenação, popup com busca + checklist de valores + // distintos (reaproveita .checklist-* de components.css). `filtrosColuna` + // guarda um `fechar()` por coluna, pra fechar todos ao abrir outro ou ao + // clicar fora de qualquer um deles. + const filtrosColuna = []; + + function fecharTodosOsFiltrosColuna() { + filtrosColuna.forEach((f) => f.fechar()); + } + + function criarFiltroColuna(campo) { + const th = listSortHeaders.find((el) => el.getAttribute("data-sort") === campo); + if (!th) return; + + const wrapper = document.createElement("span"); + wrapper.className = "ips-col-filter"; + wrapper.innerHTML = ` + + `; + th.appendChild(wrapper); + + const btn = wrapper.querySelector(".ips-col-filter__btn"); + const popup = wrapper.querySelector(".ips-col-filter__popup"); + const searchInput = wrapper.querySelector(".checklist-search"); + const selectAllInput = wrapper.querySelector(".checklist-select-all input"); + const box = wrapper.querySelector(".checklist-box"); + const limparBtn = wrapper.querySelector(".ips-col-filter__limpar"); + const aplicarBtn = wrapper.querySelector(".ips-col-filter__aplicar"); + const extrator = PID_IPS_LISTA_SORT_VALOR[campo]; + + let marcados = null; // Set em edição — só existe enquanto o popup está aberto + + function valoresDistintos() { + return Array.from(new Set(importacoes.map(extrator))).sort((a, b) => + labelValorFiltroLista(campo, a).localeCompare(labelValorFiltroLista(campo, b), "pt-BR", { sensitivity: "base" }) + ); + } + + function renderItens() { + const termo = searchInput.value.trim().toLowerCase(); + const visiveis = valoresDistintos().filter((v) => labelValorFiltroLista(campo, v).toLowerCase().includes(termo)); + box.innerHTML = visiveis.length + ? visiveis + .map( + (v) => + `` + ) + .join("") + : `

Nenhum valor encontrado.

`; + selectAllInput.checked = visiveis.length > 0 && visiveis.every((v) => marcados.has(v)); + } + + function abrir() { + // `marcados` sempre recomeça a partir do filtro já aplicado (ou de + // todos os valores existentes, se a coluna ainda não tem filtro) — + // nunca do que ficou de uma edição anterior cancelada sem "Aplicar". + marcados = listFiltros[campo] ? new Set(listFiltros[campo]) : new Set(valoresDistintos()); + searchInput.value = ""; + renderItens(); + popup.hidden = false; + btn.setAttribute("aria-expanded", "true"); + } + + function fechar() { + popup.hidden = true; + marcados = null; + btn.setAttribute("aria-expanded", "false"); + } + + function atualizarBotaoAtivo() { + btn.classList.toggle("is-active", !!listFiltros[campo]); + } + + btn.addEventListener("click", (event) => { + event.stopPropagation(); + const estavaAberto = !popup.hidden; + fecharTodosOsFiltrosColuna(); + if (!estavaAberto) abrir(); + }); + + popup.addEventListener("click", (event) => event.stopPropagation()); + + searchInput.addEventListener("input", renderItens); + + selectAllInput.addEventListener("change", () => { + const termo = searchInput.value.trim().toLowerCase(); + const visiveis = valoresDistintos().filter((v) => labelValorFiltroLista(campo, v).toLowerCase().includes(termo)); + if (selectAllInput.checked) visiveis.forEach((v) => marcados.add(v)); + else visiveis.forEach((v) => marcados.delete(v)); + renderItens(); + }); + + box.addEventListener("change", (event) => { + const input = event.target.closest("[data-valor-filtro]"); + if (!input) return; + const valor = input.getAttribute("data-valor-filtro"); + if (input.checked) marcados.add(valor); + else marcados.delete(valor); + renderItens(); + }); + + limparBtn.addEventListener("click", () => { + listFiltros[campo] = null; + fechar(); + atualizarBotaoAtivo(); + listPage = 1; + renderList(); + }); + + aplicarBtn.addEventListener("click", () => { + const todos = valoresDistintos(); + // Marcar tudo equivale a "sem filtro" — mantém null nesse caso, senão + // um valor novo que apareça depois (operadora nova, por exemplo) + // ficaria de fora até o usuário marcá-lo manualmente de novo. + const marcouTudo = todos.length === marcados.size && todos.every((v) => marcados.has(v)); + listFiltros[campo] = marcouTudo ? null : new Set(marcados); + fechar(); + atualizarBotaoAtivo(); + listPage = 1; + renderList(); + }); + + filtrosColuna.push({ fechar }); + } + + ["codigo_empresa", "nome_operadora", "status", "criado_por"].forEach(criarFiltroColuna); + + document.addEventListener("click", (event) => { + if (!event.target.closest(".ips-col-filter")) fecharTodosOsFiltrosColuna(); + }); + if (listPagination) { listPagination.addEventListener("click", (event) => { if (event.target.closest("#ips-list-prev-btn")) { @@ -2175,22 +2499,40 @@ document.addEventListener("DOMContentLoaded", async () => { formError.textContent = "Selecione a empresa e a operadora."; return; } - if (!formPlanilha.files[0]) { - formError.textContent = "Anexe a planilha padrão do Questor."; - return; + const origemQuestor = planilhaOrigemAtual() === "questor"; + let competenciaIso = null; + if (origemQuestor) { + competenciaIso = competenciaParaIso(formCompetencia.value); + if (!competenciaIso) { + formError.textContent = "Informe a competência no formato MM/AAAA para buscar a planilha no Questor."; + return; + } + } else { + if (!formPlanilha.files[0]) { + formError.textContent = "Anexe a planilha padrão do Questor."; + return; + } + if (validadorPlanilha.ehInvalido()) { + formError.textContent = "Corrija a planilha anexada (veja a mensagem abaixo do campo) antes de processar."; + return; + } } if (!formArquivo.files[0]) { formError.textContent = "Anexe o arquivo da operadora."; return; } - if (validadorPlanilha.ehInvalido() || validadorArquivo.ehInvalido()) { - formError.textContent = "Corrija os arquivos anexados (veja a mensagem abaixo de cada um) antes de processar."; + if (validadorArquivo.ehInvalido()) { + formError.textContent = "Corrija o arquivo da operadora (veja a mensagem abaixo do campo) antes de processar."; return; } formError.textContent = ""; const formData = new FormData(); - formData.append("planilha_padrao", formPlanilha.files[0]); + if (origemQuestor) { + formData.append("competencia", competenciaIso); + } else { + formData.append("planilha_padrao", formPlanilha.files[0]); + } formData.append("arquivo_operadora", formArquivo.files[0]); montarFormDataDeRegra(formData, regraResolvidaAtual); diff --git a/templates/importacao-plano-saude.html b/templates/importacao-plano-saude.html index 019f524..3b918f9 100644 --- a/templates/importacao-plano-saude.html +++ b/templates/importacao-plano-saude.html @@ -318,7 +318,7 @@ -
+
@@ -344,7 +344,7 @@

Nova Importação

-

Anexe a planilha padrão do Questor e o relatório enviado pela operadora.

+

Busque a planilha padrão do Questor por competência (ou anexe manualmente) e informe o relatório enviado pela operadora.

@@ -391,8 +391,22 @@

1. Planilha padrão (Questor)

-

Modelo em branco exportado do Questor, com o cadastro dos beneficiários (sem valores).

-
+

Cadastro dos beneficiários (sem valores) — buscado direto do Questor, ou anexado manualmente como alternativa.

+
+ + +
+ +
+