diff --git a/src/layout/melissa/MelissaEventoPanel.vue b/src/layout/melissa/MelissaEventoPanel.vue index 4fa00c8..258aa21 100644 --- a/src/layout/melissa/MelissaEventoPanel.vue +++ b/src/layout/melissa/MelissaEventoPanel.vue @@ -25,6 +25,7 @@ const props = defineProps({ const emit = defineEmits([ 'close', + 'agendar', 'concluir', 'faltou', 'cancelar', @@ -159,11 +160,12 @@ const paymentIcon = computed(() => { }); const paymentLabel = computed(() => { const state = ev.value.paymentState; - // Pra estado 'paid', usar o VALOR REAL pago (paymentAmount, vem do - // financial_record). Em pacote upfront, é o package_price total — - // o evento.price pode ter sido editado depois e divergir. Em outros - // estados, fallback pro price/insurance_value do evento. - const valor = state === 'paid' && ev.value.paymentAmount != null + // Pra estados 'paid' e 'pending' usar o VALOR REAL do record (paymentAmount). + // Necessário pra cobrir caso de multa: original cancelled R$ 200 + multa + // pending R$ 30 → state='pending' mas paymentAmount=30 (não R$ 200 do ev.price). + // Em pacote upfront paid, é o package_price total. Só cai no fallback de + // ev.price/insurance_value quando state='none' (sem record ativo). + const valor = (state === 'paid' || state === 'pending') && ev.value.paymentAmount != null ? ev.value.paymentAmount : (ev.value.price ?? ev.value.insurance_value); const valorFmt = (valor != null && !Number.isNaN(Number(valor))) @@ -358,6 +360,15 @@ function modalidadeIcon(mod) {
Marcar sessão como:
+