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/).
|
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
|
## [1.43.20] - 2025-12-16
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|||||||
@ -966,6 +966,32 @@ public function projection(Request $request)
|
|||||||
$overdueExpense += $this->convertToPrimaryCurrency($rec['amount'], $rec['currency']);
|
$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)
|
// 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