agenda: C9 OK + rowGroup por paciente em /financeiro + bubble cobranca-atualizada
Cenário 9 (Per-session — Michael Balint 12 × R$ 150)
- Testado e passou. 1 rule + 12 agenda_eventos materializadas + 12
financial_records pending. Sem billing_contract. Badge $ em todas as
12 sessões. Conforme esperado.
/melissa/financeiro-lancamentos: agrupado por paciente
- DataTable com rowGroupMode='subheader' + groupRowsBy='patient_id'
- Header de grupo com avatar + nome + badge "N lançamento(s)"
- expandableRowGroups + v-model:expandedRowGroups; watcher popula
todos os grupos da página atual como expandidos (sempre que
recordsGrouped muda — refletindo paginação/filtros)
- Sort outer por nome do paciente, preserva inner order
(pai → filhos de multas/taxas via mesmo agenda_evento_id)
Bubble-up @cobranca-atualizada → M.refetch
- Antes: ao marcar como pago no dialog, o card no FC ficava stale
até trocar de view. AgendaEventoFinanceiroPanel emitia
cobranca-atualizada mas só o loadOccFinancialRecord do dialog
escutava; o _paymentStateMap da agenda nao re-rodava.
- Fix: AgendaEventDialog ganhou _onCobrancaAtualizada que dispara
loadOccFinancialRecord() E emit('cobranca-atualizada') pra cima.
MelissaLayout escuta nos 2 dialogs e chama M.refetch() +
refetchEventosHoje(). Card passa pra borda verde na hora.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1485,6 +1485,15 @@ async function onRevogarSessao(payload = null) {
|
||||
}
|
||||
}
|
||||
|
||||
// Bubble up do AgendaEventoFinanceiroPanel via AgendaEventDialog.
|
||||
// Disparado quando cobrança é gerada / paga / cancelada dentro do
|
||||
// dialog. Re-roda o bulk-load do useMelissaAgenda pra que o FC
|
||||
// atualize badge $ / borda verde sem precisar trocar de view.
|
||||
function onCobrancaAtualizada() {
|
||||
M.refetch();
|
||||
refetchEventosHoje();
|
||||
}
|
||||
|
||||
async function onWhatsapp() {
|
||||
const ev = eventoSelecionado.value;
|
||||
if (!ev?.patient_id) {
|
||||
@@ -2932,6 +2941,7 @@ function onKeydown(e) {
|
||||
@editSeriesOccurrence="M.onEditSeriesOccurrence"
|
||||
@usar-sessao="onUsarSessao"
|
||||
@revogar-sessao="onRevogarSessao"
|
||||
@cobranca-atualizada="onCobrancaAtualizada"
|
||||
/>
|
||||
|
||||
<!-- 2º AgendaEventDialog — empilhado por cima do principal pra editar
|
||||
@@ -2962,6 +2972,7 @@ function onKeydown(e) {
|
||||
@updateSeriesEvent="M.onUpdateSeriesEvent"
|
||||
@usar-sessao="onUsarSessao"
|
||||
@revogar-sessao="onRevogarSessao"
|
||||
@cobranca-atualizada="onCobrancaAtualizada"
|
||||
/>
|
||||
|
||||
<!-- BloqueioDialog — bloqueio de horário/período/dia/feriados.
|
||||
|
||||
Reference in New Issue
Block a user