diff --git a/src/Entity/Assignment.php b/src/Entity/Assignment.php index b855432..a132f81 100644 --- a/src/Entity/Assignment.php +++ b/src/Entity/Assignment.php @@ -421,6 +421,13 @@ class Assignment implements BlameableEntityInterface, TimestampableEntityInterfa return $this; } + public function getConfirmedDispositions(): Collection + { + return $this->dispositions->filter(function (Disposition $disposition) { + return Disposition::STATUS_CONFIRMED === $disposition->getStatus(); + }); + } + public function getContact(): ?User { return $this->contact; @@ -483,7 +490,9 @@ class Assignment implements BlameableEntityInterface, TimestampableEntityInterfa public function isStaffed(): bool { - return $this->availableDispositions === $this->dispositions->count(); + $confirmedDispositions = $this->getConfirmedDispositions(); + + return $this->availableDispositions === $confirmedDispositions->count(); } public function isUnstaffed(): bool @@ -493,8 +502,10 @@ class Assignment implements BlameableEntityInterface, TimestampableEntityInterfa public function isPartlyStaffed(): bool { - return $this->availableDispositions > $this->dispositions->count() - && 0 < $this->dispositions->count(); + $confirmedDispositions = $this->getConfirmedDispositions(); + + return $this->availableDispositions > $confirmedDispositions->count() + && 0 < $confirmedDispositions->count(); } public function isStaffing(): bool