summaryrefslogtreecommitdiff
path: root/includes/model/ShiftSignupState.php
diff options
context:
space:
mode:
authormsquare <msquare@notrademark.de>2016-12-29 15:24:57 +0100
committermsquare <msquare@notrademark.de>2016-12-29 15:24:57 +0100
commit51eb22a1c651ffabd10d772b7e06ec05c46c5b86 (patch)
tree804f4e8dd91da9d22b70741be249d725f4191c62 /includes/model/ShiftSignupState.php
parent3fbd62ab7de38dc66e9694c89e8242c4e9249003 (diff)
fix shift signup state calculation
Diffstat (limited to 'includes/model/ShiftSignupState.php')
-rw-r--r--includes/model/ShiftSignupState.php23
1 files changed, 21 insertions, 2 deletions
diff --git a/includes/model/ShiftSignupState.php b/includes/model/ShiftSignupState.php
index f9226375..393023ee 100644
--- a/includes/model/ShiftSignupState.php
+++ b/includes/model/ShiftSignupState.php
@@ -61,10 +61,29 @@ class ShiftSignupState {
public function combineWith(ShiftSignupState $shiftSignupState) {
$this->freeEntries += $shiftSignupState->getFreeEntries();
- switch ($this->state) {
+ if ($this->valueForState($shiftSignupState->state) > $this->valueForState($this->state)) {
+ $this->state = $shiftSignupState->state;
+ }
+ }
+
+ private function valueForState($state) {
+ switch ($state) {
+ case ShiftSignupState::SHIFT_ENDED:
+ return 100;
+
+ case ShiftSignupState::SIGNED_UP:
+ return 90;
+
+ case ShiftSignupState::FREE:
+ return 80;
+
case ShiftSignupState::ANGELTYPE:
+ case ShiftSignupState::COLLIDES:
+ return 70;
+
case ShiftSignupState::OCCUPIED:
- $this->state = $shiftSignupState->getState();
+ case ShiftSignupState::ADMIN:
+ return 60;
}
}