Beispiel #1
0
 /**
  * Adds a new workout to the history. Once added every workout receives an auto incremental id
  * and the program number.
  *
  * @param Workout $workout Workout to add
  * @return History
  */
 public function addWorkout(Workout $workout)
 {
     $program = $workout->getProgram();
     $day = $workout->getDay();
     $counter = 1;
     if (isset($this->programCounters[$program])) {
         $counter =& $this->programCounters[$program];
         if (isset($this->workoutMap[$program . $counter . $day])) {
             $counter++;
         }
         $previousId = $program . ($counter - 1) . $day;
         if ($counter > 1 && isset($this->workoutMap[$previousId])) {
             $workout->setPreviousWorkout($this->workouts[$this->workoutMap[$previousId]]);
         }
     }
     $workout->setProgramNr($counter);
     $workout->setId(++$this->workoutAmount);
     $this->addExercises($workout->getExercises());
     $index = array_push($this->workouts, $workout) - 1;
     $this->workoutMap[$program . $counter . $day] = $index;
     return $this;
 }