From 8db25cc44e70ee3eec4fe41a7c09b5b32db36f4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Fromme?= Date: Fri, 17 Jan 2025 12:36:13 +0100 Subject: [PATCH] fix: correctly update staffing status --- src/Entity/Assignment.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Entity/Assignment.php b/src/Entity/Assignment.php index 17c89eb..398516e 100644 --- a/src/Entity/Assignment.php +++ b/src/Entity/Assignment.php @@ -138,6 +138,7 @@ class Assignment implements BlameableEntityInterface, TimestampableEntityInterfa public function updateStaffingStatus(): void { $confirmedDispositions = $this->getConfirmedDispositions(); + $validDispositions = $this->getValidDispositions(); $validApplications = $this->getValidApplications(); // all available dispositions are taken by confirmed dispositions => staffed @@ -155,15 +156,18 @@ class Assignment implements BlameableEntityInterface, TimestampableEntityInterfa return; } - // all slots are open but there are valid applications => staffing - if (0 === $confirmedDispositions->count() && 0 < $validApplications->count()) { + // all slots are open but there are valid applications and/or pending dispositions => staffing + if ( + 0 === $confirmedDispositions->count() + && (0 < $validApplications->count() || 0 < $validDispositions->count()) + ) { $this->setStaffingStatus(Assignment::STATUS_STAFFING); return; } // all slots are open and there are no valid applications => un-staffed - if (0 === $this->getConfirmedDispositions()->count() && 0 === $this->getValidApplications()->count()) { + if (0 === $confirmedDispositions->count() && 0 === $validApplications->count()) { $this->setStaffingStatus(Assignment::STATUS_UNSTAFFED); } } @@ -466,7 +470,6 @@ class Assignment implements BlameableEntityInterface, TimestampableEntityInterfa return true === in_array($disposition->getStatus(), [ Disposition::STATUS_NEW, Disposition::STATUS_CHECKING_CONTRACT, - Disposition::STATUS_CONFIRMED, ]); }); }