From 51eb22a1c651ffabd10d772b7e06ec05c46c5b86 Mon Sep 17 00:00:00 2001 From: msquare Date: Thu, 29 Dec 2016 15:24:57 +0100 Subject: fix shift signup state calculation --- includes/model/ShiftSignupState.php | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'includes/model/ShiftSignupState.php') 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; } } -- cgit v1.2.3-54-g00ecf