fix(boletos): diferencia pagamentos e recebimentos

This commit is contained in:
Felipe Coutinho
2026-05-31 15:18:55 -03:00
parent 35abe1b0bf
commit 99bc049cf4
10 changed files with 130 additions and 58 deletions

View File

@@ -608,7 +608,12 @@ export async function toggleTransactionSettlementAction(
const data = toggleSettlementSchema.parse(input);
const existing = await db.query.transactions.findFirst({
columns: { id: true, paymentMethod: true, accountId: true },
columns: {
id: true,
paymentMethod: true,
accountId: true,
transactionType: true,
},
where: and(
eq(transactions.id, data.id),
eq(transactions.userId, user.id),
@@ -627,6 +632,7 @@ export async function toggleTransactionSettlementAction(
}
const isBoleto = existing.paymentMethod === "Boleto";
const isIncomeBill = isBoleto && existing.transactionType === "Receita";
const customPaymentDate =
isBoleto && data.value && data.paymentDate
? parseLocalDateString(data.paymentDate)
@@ -652,7 +658,7 @@ export async function toggleTransactionSettlementAction(
if (!paymentAccount) {
return {
success: false,
error: "Conta de pagamento não encontrada.",
error: `Conta de ${isIncomeBill ? "recebimento" : "pagamento"} não encontrada.`,
};
}
}
@@ -682,8 +688,8 @@ export async function toggleTransactionSettlementAction(
return {
success: true,
message: data.value
? "Lançamento marcado como pago."
: "Pagamento desfeito com sucesso.",
? `Lançamento marcado como ${isIncomeBill ? "recebido" : "pago"}.`
: `${isIncomeBill ? "Recebimento" : "Pagamento"} desfeito com sucesso.`,
};
} catch (error) {
return handleActionError(error);