diff --git a/src/features/agenda/components/AgendaStatusChangeConfirmDialog.vue b/src/features/agenda/components/AgendaStatusChangeConfirmDialog.vue
index de3d31a..fd273ab 100644
--- a/src/features/agenda/components/AgendaStatusChangeConfirmDialog.vue
+++ b/src/features/agenda/components/AgendaStatusChangeConfirmDialog.vue
@@ -72,8 +72,16 @@ watch(
consumeSaldo.value = !!props.regraExcecao?.default_consume_on_miss;
applyFine.value = _calcInitialFineApply();
fineAmount.value = _calcInitialFineAmount();
- markPaid.value = true;
- paymentMethod.value = 'pix';
+ // Default markPaid:
+ // - Avulsa realizada (showRegistrarPagto): default false (manter pendente)
+ // - Pacote saldo realizada (showCobrancaPacote): default false (gerar pendente)
+ // Em ambos casos o user precisa selecionar ativamente "Sim, já recebi"
+ // pra registrar paid — evita marcar paid sem querer.
+ markPaid.value = false;
+ // paymentMethod default depende do contexto. Inicia 'pending' (que cai
+ // no select de "Como vai cobrar?" quando markPaid=false). Quando user
+ // troca pra "Sim, já recebi", precisa escolher PIX/Dinheiro/etc.
+ paymentMethod.value = 'pending';
generatePackageCharge.value = true;
}
);
@@ -138,12 +146,13 @@ const paymentMethodOptions = [
{ value: 'deposito', label: 'Depósito' },
{ value: 'cartao_maquininha', label: 'Cartão (maquininha)' }
];
-const paymentMethodOptionsCobranca = [
- { value: 'link', label: 'Enviar link de pagamento (Asaas)' },
- { value: 'pix', label: 'Já recebi — PIX' },
- { value: 'dinheiro', label: 'Já recebi — Dinheiro' },
- { value: 'deposito', label: 'Já recebi — Depósito' },
- { value: 'cartao_maquininha', label: 'Já recebi — Cartão (maquininha)' }
+// Opções pra "Como vai cobrar?" quando markPaid=false (sessão pendente
+// no pacote saldo). 'pending' = só registra como pendente, terapeuta
+// cobra depois pelo /financeiro. 'link' = gera link Asaas e marca
+// payment_method='asaas' no record (pós-confirm o handler updata).
+const paymentMethodOptionsPending = [
+ { value: 'pending', label: 'Apenas registrar como pendente' },
+ { value: 'link', label: 'Enviar link de pagamento (Asaas)' }
];
const regraResumo = computed(() => {
@@ -204,11 +213,16 @@ const fineDefaultReason = computed(() => {
// ─── Actions ───────────────────────────────────────────────────────────
function onConfirm() {
+ // markPaid agora é considerado em DOIS contextos:
+ // 1. Avulsa pendente (showRegistrarPagto): paciente já pagou a cobrança?
+ // 2. Pacote saldo realizado (showCobrancaPacote): já recebeu o valor da sessão?
+ // Em ambos casos: markPaid=true → record vira paid; false → fica pending.
+ const considerMarkPaid = showRegistrarPagto.value || (showCobrancaPacote.value && generatePackageCharge.value);
emit('confirm', {
consumeSaldo: showSaldoBlock.value ? consumeSaldo.value : false,
applyFine: showFineBlock.value ? applyFine.value : false,
fineAmount: showFineBlock.value && applyFine.value ? Number(fineAmount.value) || 0 : 0,
- markPaid: showRegistrarPagto.value ? markPaid.value : false,
+ markPaid: considerMarkPaid ? markPaid.value : false,
paymentMethod: paymentMethod.value,
generatePackageCharge: showCobrancaPacote.value ? generatePackageCharge.value : false
});
@@ -338,11 +352,35 @@ function onCancel() {