public function getVirtualInterval(\Club\BookingBundle\Entity\Interval $interval, $date)
 {
     $start = new \DateTime($date->format('Y-m-d') . ' ' . $interval->getStartTime()->format('H:i:s'));
     $end = new \DateTime($date->format('Y-m-d') . ' ' . $interval->getStopTime()->format('H:i:s'));
     $i = new \DateInterval('PT1S');
     $start->add($i);
     $bookings = $this->em->getRepository('ClubBookingBundle:Booking')->getAllBetween($start, $end, $interval->getField());
     if ($bookings) {
         $interval->setBooking($bookings[0]);
     }
     $schedules = $this->em->getRepository('ClubTeamBundle:Schedule')->getAllBetween($start, $end, null, $interval->getField()->getLocation(), $interval->getField());
     if ($schedules) {
         $interval->setSchedule($schedules[0]);
     }
     $plans = $this->em->getRepository('ClubBookingBundle:Plan')->getBetweenByField($interval->getField(), $start, $end);
     if ($plans) {
         $interval->setPlan($plans[0]);
     }
     return $interval;
 }
Exemple #2
0
 protected function validateSubscriptionTime(\Club\UserBundle\Entity\User $user, \Club\BookingBundle\Entity\Interval $interval)
 {
     $subs = $this->em->getRepository('ClubShopBundle:Subscription')->getActiveSubscriptions($user, null, 'booking', null, $interval->getField()->getLocation());
     if (!$subs) {
         return false;
     }
     foreach ($subs as $sub) {
         foreach ($sub->getSubscriptionAttributes() as $attr) {
             switch ($attr->getAttributeName()) {
                 case 'start_time':
                     $start = clone $interval->getStartTime();
                     $start->setDate(date('Y'), date('m'), date('d'));
                     $t = new \DateTime(date('Y-m-d ') . $attr->getValue());
                     if ($start < $t) {
                         return false;
                     }
                     break;
                 case 'stop_time':
                     $end = clone $interval->getStopTime();
                     $end->setDate(date('Y'), date('m'), date('d'));
                     $t = new \DateTime(date('Y-m-d ') . $attr->getValue());
                     if ($end > $t) {
                         return false;
                     }
                     break;
             }
         }
     }
     return true;
 }