fix: teamer dashboard crashing on isContractDue() without deadline
This commit is contained in:
1 parent
849da8d471
commit
57781ba347
2 files changed
+36
-28
No files matched your search
@@ -78,19 +78,28 @@ class IndexController extends AbstractController
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return list<array{disposition: Disposition, reason: 'contract_due'|'contract_rejected'|'invoice_due'}>
|
||||
*/
|
||||
private function processDocuments(array $upcomingDispositions): array
|
||||
{
|
||||
$contractUploadDeadlineDays = (int) $this->getParameter('contract_upload_deadline_days');
|
||||
$invoiceUploadDeadlineDays = (int) $this->getParameter('invoice_upload_deadline_days');
|
||||
$dispositions = [];
|
||||
|
||||
// The due checks need the configured deadlines, which the template cannot pass, so the
|
||||
// reason is resolved here. Order matters: the first matching reason is the one shown.
|
||||
foreach ($upcomingDispositions as $disposition) {
|
||||
/** @var Disposition $disposition */
|
||||
if ($disposition->isContractDue($contractUploadDeadlineDays)
|
||||
|| $disposition->isContractRejected()
|
||||
|| $disposition->isInvoiceDue($invoiceUploadDeadlineDays)
|
||||
) {
|
||||
$dispositions[] = $disposition;
|
||||
$reason = match (true) {
|
||||
$disposition->isContractDue($contractUploadDeadlineDays) => 'contract_due',
|
||||
$disposition->isContractRejected() => 'contract_rejected',
|
||||
$disposition->isInvoiceDue($invoiceUploadDeadlineDays) => 'invoice_due',
|
||||
default => null,
|
||||
};
|
||||
|
||||
if (null !== $reason) {
|
||||
$dispositions[] = ['disposition' => $disposition, 'reason' => $reason];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user