v1.43.21 - FIX CRÍTICO: Instâncias de recorrências vencidas na projeção
This commit is contained in:
parent
580d318e85
commit
e1a01cab91
10
CHANGELOG.md
10
CHANGELOG.md
@ -5,6 +5,16 @@ O formato segue [Keep a Changelog](https://keepachangelog.com/pt-BR/).
|
||||
Este projeto adota [Versionamento Semântico](https://semver.org/pt-BR/).
|
||||
|
||||
|
||||
## [1.43.21] - 2025-12-16
|
||||
|
||||
### Fixed
|
||||
- **Projeção de Saldo - Instâncias de Recorrências Vencidas**
|
||||
- FIX CRÍTICO: Projeção agora inclui instâncias de recorrências pendentes vencidas
|
||||
- Exemplo: "Aluguel" (1003,59€, vencida há 15 dias) e "Compra Bizum Asenergy" (94,22€, vencida há 29 dias)
|
||||
- Query adicional para `recurring_instances` com `status='pending'` e `due_date < hoje`
|
||||
- Separa receitas e despesas vencidas corretamente
|
||||
- Valores agora aparecem em `overdue.income` e `overdue.expense`
|
||||
|
||||
## [1.43.20] - 2025-12-16
|
||||
|
||||
### Fixed
|
||||
|
||||
@ -966,6 +966,32 @@ public function projection(Request $request)
|
||||
$overdueExpense += $this->convertToPrimaryCurrency($rec['amount'], $rec['currency']);
|
||||
}
|
||||
|
||||
// Instâncias de recorrências pendentes vencidas
|
||||
$overdueRecurringInstances = DB::select("
|
||||
SELECT
|
||||
ri.planned_amount as amount,
|
||||
rt.type,
|
||||
COALESCE(a.currency, 'EUR') as currency
|
||||
FROM recurring_instances ri
|
||||
JOIN recurring_templates rt ON ri.recurring_template_id = rt.id
|
||||
LEFT JOIN accounts a ON rt.account_id = a.id
|
||||
WHERE ri.user_id = ?
|
||||
AND ri.status = 'pending'
|
||||
AND ri.due_date < ?
|
||||
AND ri.deleted_at IS NULL
|
||||
", [$this->userId, $today]);
|
||||
|
||||
foreach ($overdueRecurringInstances as $row) {
|
||||
$amount = abs($row->amount);
|
||||
$converted = $this->convertToPrimaryCurrency($amount, $row->currency);
|
||||
|
||||
if ($row->type === 'credit') {
|
||||
$overdueIncome += $converted;
|
||||
} else {
|
||||
$overdueExpense += $converted;
|
||||
}
|
||||
}
|
||||
|
||||
// =========================================================================
|
||||
// 6. TRANSAÇÕES PENDENTES ATÉ O FIM DO MÊS (planned_date entre hoje e fim do mês)
|
||||
// =========================================================================
|
||||
|
||||
Loading…
Reference in New Issue
Block a user