public function render_institution_medical_center_contact_details(InstitutionMedicalCenter $center, $asJSON = false)
 {
     $contactDetails = $center->getContactDetails();
     $contactDetailsArray = array();
     foreach ($contactDetails as $each) {
         if ('' != \trim($each->getNumber())) {
             $contactDetailsArray[$each->getType()] = array('type' => ContactDetailTypes::getTypeLabel($each->getType()), 'number' => $each->__toString());
         }
     }
     if (!\count($contactDetailsArray)) {
         return null;
     }
     return $asJSON ? \json_encode($contactDetailsArray) : $contactDetailsArray;
 }
 public function getListOfEmptyFieldsOnInstitutionMedicalCenter(InstitutionMedicalCenter $center)
 {
     $emptyFields = array();
     if (!$center->getDescription()) {
         $emptyFields[] = 'description';
     }
     if (!$center->getLogo()) {
         $emptyFields[] = 'logo';
     }
     if (!$center->getContactDetails()->count()) {
         $emptyFields[] = 'contact details';
     }
     if (!$center->getSocialMediaSites()) {
         $emptyFields[] = 'social media sites';
     }
     if (!$center->getDoctors()) {
         $emptyFields[] = 'doctors';
     }
     return $emptyFields;
 }
 /**
  * Ajax handler for updating institution medical center by field
  * @param Request $request
  * @author acgvelarde
  */
 public function ajaxUpdateByFieldAction(Request $request)
 {
     $output = array();
     $propertyService = $this->get('services.institution_medical_center_property');
     if (true) {
         try {
             $formVariables = $request->get(InstitutionMedicalCenterFormType::NAME);
             unset($formVariables['_token']);
             $removedFields = \array_diff(InstitutionMedicalCenterFormType::getFieldNames(), array_keys($formVariables));
             $this->get('services.contact_detail')->initializeContactDetails($this->institutionMedicalCenter, array(ContactDetailTypes::PHONE));
             $form = $this->createForm(new InstitutionMedicalCenterFormType($this->institution), $this->institutionMedicalCenter, array(InstitutionMedicalCenterFormType::OPTION_BUBBLE_ALL_ERRORS => false, InstitutionMedicalCenterFormType::OPTION_REMOVED_FIELDS => $removedFields));
             $form->bind($request);
             if ($form->isValid()) {
                 $institutionMedicalCenterService = $this->get('services.institution_medical_center');
                 $this->get('services.contact_detail')->removeInvalidContactDetails($this->institutionMedicalCenter);
                 $responseContent = array();
                 if (isset($formVariables['businessHours'])) {
                     $institutionMedicalCenterService->clearBusinessHours($this->institutionMedicalCenter);
                     foreach ($this->institutionMedicalCenter->getBusinessHours() as $hour) {
                         $hour->setInstitutionMedicalCenter($this->institutionMedicalCenter);
                     }
                     $institutionMedicalCenterService->save($this->institutionMedicalCenter);
                     $responseContent = array('businessHours' => $formVariables['businessHours']);
                 } elseif (isset($form['services'])) {
                     $propertyService->addPropertyForInstitutionMedicalCenterByType($this->institution, $form['services']->getData(), InstitutionPropertyType::TYPE_ANCILLIARY_SERVICE, $this->institutionMedicalCenter);
                     $responseContent = array('services' => $form['services']);
                 } elseif ($awardType = $request->get('awardTypeKey')) {
                     $awardsData = isset($form['awards']) ? $form['awards']->getData() : array();
                     $propertyService->addPropertyForInstitutionMedicalCenterByType($this->institution, $awardsData, InstitutionPropertyType::TYPE_GLOBAL_AWARD, $this->institutionMedicalCenter);
                     $globalAwards = $propertyService->getGlobalAwardPropertiesByInstitutionMedicalCenter($this->institutionMedicalCenter);
                     $responseContent['awardsType'] = $awardType;
                     $responseContent['awardsHtml'] = $this->renderView('InstitutionBundle:Widgets/Profile:globalAwards.html.twig', array('eachAward' => array('list' => $globalAwards[$awardType]), 'type' => $awardType . 's', 'toggleBtnId' => 'clinic-edit-' . $awardType . 's-btn'));
                 } else {
                     $institutionMedicalCenterService->save($this->institutionMedicalCenter);
                     if ($this->isSingleCenter) {
                         // also update the instituion name and description
                         $this->institution->setName($this->institutionMedicalCenter->getName());
                         $this->institution->setDescription($this->institutionMedicalCenter->getDescription());
                         $this->get('services.institution.factory')->save($this->institution);
                     }
                     if (isset($formVariables['address'])) {
                         $formVariables['stringAddress'] = $this->get('services.institutionMedicalCenter.twig.extension')->getCompleteAddressAsString($this->institutionMedicalCenter);
                     }
                     if (isset($formVariables['contactDetails'])) {
                         $formVariables['contactDetails'] = $this->get('services.contact_detail')->getContactDetailsStringValue($this->institutionMedicalCenter->getContactDetails());
                     }
                     $responseContent = array('institutionMedicalCenter' => $formVariables);
                 }
                 // Invalidate InstitutionMedicalCenterProfile memcache
                 $this->get('services.memcache')->delete(FrontendMemcacheKeysHelper::generateInsitutionMedicalCenterProfileKey($this->institutionMedicalCenter->getId()));
                 // Invalidate InstitutionProfile memcache
                 $this->get('services.memcache')->delete(FrontendMemcacheKeysHelper::generateInsitutionProfileKey($this->institutionMedicalCenter->getInstitution()->getId()));
                 $response = new Response(\json_encode($responseContent), 200, array('content-type' => 'application/json'));
             } else {
                 $errors = array();
                 foreach ($form->getChildren() as $field) {
                     if (\count($eachErrors = $field->getErrors())) {
                         $errors[] = array('field' => $field->getName(), 'error' => $eachErrors[0]->getMessageTemplate());
                     }
                 }
                 $response = new Response(\json_encode(array('errors' => $errors)), 400, array('content-type' => 'application/json'));
             }
         } catch (\Exception $e) {
             return new Response($e->getMessage(), 500);
         }
     }
     return $response;
 }