Ejemplo n.º 1
0
 public function isQScheduleAvailable(QMatchPlan $match, DateTime $slotschedule, Timeslot $timeslot)
 {
     // Group dependency must be respected when deciding match schedule
     // No schedule is expected for relations to preliminary groups
     if ($match->getRelA()->getClassification() > Group::$PRE) {
         $scheduleA = $this->getQSchedule($match->getRelA());
         if (!$scheduleA || !$this->testQSchedule($match, $scheduleA, $slotschedule, $timeslot)) {
             return false;
         }
     } else {
         $scheduleA = $this->getQSchedule($match->getRelA());
         if ($scheduleA) {
             /* @var $diff DateInterval */
             $diff = $slotschedule->diff($scheduleA);
             if ($diff->d * 24 * 60 + $diff->h * 60 + $diff->i < $match->getCategory()->getMatchtime() + $timeslot->getRestperiod()) {
                 return false;
             }
         }
     }
     if ($match->getRelB()->getClassification() > Group::$PRE) {
         $scheduleB = $this->getQSchedule($match->getRelB());
         if (!$scheduleB || !$this->testQSchedule($match, $scheduleB, $slotschedule, $timeslot)) {
             return false;
         }
     } else {
         $scheduleB = $this->getQSchedule($match->getRelB());
         if ($scheduleB) {
             /* @var $diff DateInterval */
             $diff = $slotschedule->diff($scheduleB);
             if ($diff->d * 24 * 60 + $diff->h * 60 + $diff->i < $match->getCategory()->getMatchtime() + $timeslot->getRestperiod()) {
                 return false;
             }
         }
     }
     return true;
 }