/**
  * @param \DateTime $dayFrom
  * @param \DateTime $dayTo
  * @param Office    $office
  *
  * @return array
  */
 public function findByRange(\DateTime $dayFrom, \DateTime $dayTo, Office $office)
 {
     $builder = $this->getEntityManager()->createQueryBuilder();
     $params = ['dayFrom' => $dayFrom, 'dayTo' => $dayTo, 'office' => $office];
     $qb = $builder->select('a')->from(Appointment::clazz(), 'a')->where('a.dateTime > :dayFrom AND a.dateTime < :dayTo')->andWhere('a.office = :office')->setParameters($params);
     return $qb->getQuery()->getResult();
 }
 /**
  * @param InputInterface  $input
  * @param OutputInterface $output
  *
  * @see Console\Command\Command
  * @return int|null|void
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $manager = $this->getManager();
     $operator = new Group('Operator', ['ROLE_USER']);
     $doctor = new Group('Doctor', ['ROLE_USER']);
     $admin = new Group('Admin', ['ROLE_USER', 'ROLE_ADMIN']);
     $manager->persist($operator);
     $manager->persist($doctor);
     $manager->persist($admin);
     foreach ($this->doctorNames as $key => $name) {
         $dctr = new User();
         $dctr->setName($name);
         $dctr->setUsername($key);
         $dctr->setUsernameCanonical($key);
         $dctr->setEmail($key . '@ortofit.com.ua');
         $dctr->setUsernameCanonical($key . '@ortofit.com.ua');
         $dctr->setEnabled(true);
         $dctr->setSalt('skur7u3vt3400swsowowk88w80888k0');
         $dctr->setPassword('$2y$13$skur7u3vt3400swsowowkuFuZFwo2Igjz5jKzE8b0jPDu/NjeJi4O');
         $dctr->addGroup($doctor);
         $manager->persist($dctr);
     }
     $opr = new User();
     $opr->setUsername('operator');
     $opr->setName('operator');
     $opr->setUsernameCanonical('operator');
     $opr->setEmail('*****@*****.**');
     $opr->setUsernameCanonical('*****@*****.**');
     $opr->setEnabled(true);
     $opr->setSalt('skur7u3vt3400swsowowk88w80888k0');
     $opr->setPassword('$2y$13$skur7u3vt3400swsowowkuFuZFwo2Igjz5jKzE8b0jPDu/NjeJi4O');
     $opr->addGroup($operator);
     $manager->persist($opr);
     /** @var Appointment[] $apps */
     $apps = $manager->getRepository(Appointment::clazz())->findAll();
     foreach ($apps as $app) {
         $app->setUser($dctr);
         $manager->merge($app);
     }
     /** @var Service $services */
     $services = $manager->getRepository(Service::clazz())->find(1);
     $services->setName('Консультации');
     $services->setColor('#cdaa40');
     $services->setShort('(Конс.)');
     $manager->merge($services);
     $services = $manager->getRepository(Service::clazz())->find(2);
     $services->setName("Коррекция стелек");
     $services->setColor('#2e8b57');
     $services->setShort('(КС)');
     $manager->merge($services);
     $services = $manager->getRepository(Service::clazz())->find(3);
     $services->setName("Изготовление стелек ");
     $services->setColor('#818100');
     $services->setShort('(ИОС)');
     $manager->merge($services);
     //Массаж
     $services = $manager->getRepository(Service::clazz())->find(4);
     $services->setColor('#ff69b4');
     $services->setShort('(М)');
     $manager->merge($services);
     $services = new Service();
     $services->setName('Компьютерная диагностика');
     $services->setColor('#ffa500');
     $services->setShort('(КД)');
     $manager->persist($services);
     $services = new Service();
     $services->setName('Бесплатная консультация');
     $services->setColor('#4876ff');
     $services->setShort('(б/п конс)');
     $manager->persist($services);
     $manager->flush();
 }
 /**
  * @return string
  */
 protected function getEntityClassName()
 {
     return Appointment::clazz();
 }