public function reverseTransform($value)
 {
     $decodedValue = \json_decode(\stripslashes($value), true);
     if ($decodedValue) {
         $obj = new BusinessHour();
         $obj->setWeekdayBitValue($decodedValue['weekdayBitValue']);
         $obj->setOpening(new \DateTime($decodedValue['opening']));
         $obj->setClosing(new \DateTime($decodedValue['closing']));
         $obj->setNotes($decodedValue['notes']);
         return $obj;
     }
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $em = $this->getContainer()->get('doctrine')->getEntityManager();
     $qb = $em->createQueryBuilder();
     $result = $qb->select('a')->from('InstitutionBundle:InstitutionMedicalCenter', 'a')->where('a.oldBusinessHours IS NOT NULL')->getQuery()->getResult();
     $defaultTimeFrom = new \DateTime(date('Y-m-d') . ' 08:00:00 AM');
     $defaultTimeTo = new \DateTime(date('Y-m-d') . ' 08:00:00 PM');
     foreach ($result as $i => $each) {
         $persistData = false;
         $oldBusinessHours = json_decode($each->getOldBusinessHours(), true);
         if (is_array($oldBusinessHours)) {
             $output->writeln("clinicId: " . $each->getId());
             foreach ($oldBusinessHours as $day => $time) {
                 $businessHour = new BusinessHour();
                 $weekdayBitValue = $this->_getBusinessHoursWeekdayBitValue($day);
                 $output->write("{$day}: ");
                 if (isset($time['from']) && isset($time['to']) && $time['from'] && $time['to']) {
                     $businessHour->setOpening(new \DateTime(date('Y-m-d') . ' ' . $time['from']));
                     $businessHour->setClosing(new \DateTime(date('Y-m-d') . ' ' . $time['to']));
                     $output->write("from: " . $time['from'] . " to: " . $time['to']);
                 } else {
                     if (isset($time['isOpen'])) {
                         $businessHour->setOpening($defaultTimeFrom);
                         $businessHour->setClosing($defaultTimeTo);
                         $output->write(" - from: " . $businessHour->getOpening()->format('h:m:s') . ", to: " . $businessHour->getClosing()->format('h:m:s'));
                     }
                 }
                 if (isset($time['notes']) && $time['notes']) {
                     $businessHour->setNotes($time['notes']);
                     $output->writeln(" - notes: " . $time['notes']);
                 }
                 if ($businessHour->getOpening() && $businessHour->getClosing() && $weekdayBitValue) {
                     $businessHour->setWeekdayBitValue($weekdayBitValue);
                     $businessHour->setInstitutionMedicalCenter($each);
                     $each->addBusinessHour($businessHour);
                     $persistData = true;
                 }
                 $output->writeln('');
             }
             $each->setOldBusinessHours(null);
             if ($persistData) {
                 $em->persist($each);
             }
         }
     }
     $em->flush();
     // Print end of script
     $output->writeln('end of ' . $this->getName() . ' script');
 }