public function getAvailableGlobalAwardsOfInstitution(Institution $institution, QueryOptionBag $options)
 {
     $globalAwardPropertyType = $this->getEntityManager()->getRepository('InstitutionBundle:InstitutionPropertyType')->findOneBy(array('name' => InstitutionPropertyType::TYPE_GLOBAL_AWARD));
     $sql = "SELECT a.value  FROM institution_properties a WHERE a.institution_property_type_id = :propertyType AND a.institution_id = :institutionId";
     $statement = $this->getEntityManager()->getConnection()->prepare($sql);
     $statement->execute(array('propertyType' => $globalAwardPropertyType->getId(), 'institutionId' => $institution->getId()));
     $result = array();
     $ids = array();
     if ($statement->rowCount() > 0) {
         while ($row = $statement->fetch(Query::HYDRATE_ARRAY)) {
             $ids[] = $row['value'];
         }
     }
     $qb = $this->getEntityManager()->createQueryBuilder()->select('a,b')->from('HelperBundle:GlobalAward', 'a')->innerJoin('a.awardingBody', 'b')->where('a.status = :globalAwardActiveStatus')->setParameter('globalAwardActiveStatus', GlobalAward::STATUS_ACTIVE)->orderBy('a.name', 'ASC');
     if ($options->has('globalAward.name')) {
         $qb->andWhere('a.name LIKE :globalAwardName')->setParameter('globalAwardName', '%' . $options->get('globalAward.name') . '%');
     }
     if ($options->has('globalAward.type')) {
         $qb->andWhere('a.type = :globalAwardType')->setParameter('globalAwardType', $options->get('globalAward.type'));
     }
     if (\count($ids)) {
         $qb->andWhere($qb->expr()->notIn('a.id', ':globalAwardIds'))->setParameter('globalAwardIds', $ids);
     }
     //echo $qb->getQuery()->getSQL(); exit;
     return $qb->getQuery()->getResult();
 }
 public function testLocationAction(Request $request)
 {
     $country = $this->getDoctrine()->getRepository('HelperBundle:Country')->find(206);
     $state = $this->getDoctrine()->getRepository('HelperBundle:State')->find(2363);
     $institution = new Institution();
     $institution->setName('test only ' . time());
     $institution->setType(InstitutionTypes::MULTIPLE_CENTER);
     //         $institution->setCountry($country);
     //         $institution->setState($state);
     $validationGroups = array('editInstitutionInformation', 'Default');
     $validationGroups = array();
     $form = $this->createFormBuilder($institution, array('validation_groups' => $validationGroups))->add('country', FancyCountryFieldType::NAME, array())->add('city', GlobalCityListType::NAME, array('attr' => array('placeholder' => 'Select a city')))->add('state', 'state_list', array('attr' => array('placeholder' => 'Select a state/province')))->getForm();
     if ($request->isMethod('POST')) {
         $form->bind($request);
         if ($form->isValid()) {
             echo 'adi valid';
             exit;
         } else {
             $errors = array();
             foreach ($form->getChildren() as $field) {
                 foreach ($field->getErrors() as $err) {
                     $errors[] = array('name' => $field->getName(), 'error' => $err->getMessage());
                 }
             }
             foreach ($form->getErrors() as $err) {
                 $errors[] = array('name' => $form->getName(), 'error' => $err->getMessage());
             }
             var_dump($errors);
             echo 'adi invalid';
             exit;
         }
     }
     return $this->render('HelperBundle:Test:testLocation.html.twig', array('form' => $form->createView()));
 }
 /**
  * Added/Updated recentlyApproved institution type listing. Removed when updated from APPROVED to INACTIVE, SUSPENDED or INACTIVE
  * @param Institution $institution
  */
 function updateInstitutionListing(Institution $institution)
 {
     $criteria = array('institution' => $institution->getId(), 'institutionMedicalCenter' => null);
     $recentlyApprovedListing = $this->em->getRepository('AdminBundle:RecentlyApprovedListing')->findOneBy($criteria);
     if ($recentlyApprovedListing) {
         if ($institution->getStatus() == InstitutionStatus::getBitValueForActiveAndApprovedStatus()) {
             $recentlyApprovedListing->setDateUpdated(new \DateTime());
             $this->em->persist($recentlyApprovedListing);
         } else {
             $this->em->remove($recentlyApprovedListing);
         }
         $this->em->flush();
     } else {
         if ($institution->getStatus() == InstitutionStatus::getBitValueForActiveAndApprovedStatus()) {
             $recentlyApprovedListingService = new RecentlyApprovedListingService();
             $recentlyApprovedListingService->setEntityManager($this->em);
             $recentlyApprovedListing = new RecentlyApprovedListing();
             $recentlyApprovedListing->setInstitution($institution);
             $recentlyApprovedListing->setInstitutionMedicalCenter(null);
             $recentlyApprovedListing->setDateUpdated(new \DateTime());
             $recentlyApprovedListing->setStatus(1);
             $this->em->persist($recentlyApprovedListing);
             $this->em->flush($recentlyApprovedListing);
         }
     }
 }
 public function bypassClientAdminLoginAction(Request $request)
 {
     $user = $this->get('services.institution_user')->findById($request->get('accountId'));
     if ($this->institution->getId() != $user->getInstitution()->getId()) {
         return new Response(\sprintf('User %s does not belong to institution %s', $user->getAccountId(), $this->institution->getId()), 401);
     }
     return $this->render('AdminBundle:InstitutionUser:bypassClientAdminLogin.html.twig', array('user' => $user, 'institution' => $this->institution));
 }
 public function preExecute()
 {
     $this->request = $this->getRequest();
     $this->institution = $this->get('services.institution.factory')->findById($this->request->get('institutionId'));
     $this->institutionService = $this->get('services.institution');
     if (!$this->institution) {
         throw $this->createNotFoundException("Invalid institution");
     }
     if ($imcId = $this->getRequest()->get('imcId', 0)) {
         $this->institutionMedicalCenter = $this->get('services.institution_medical_center')->findById($imcId);
         // institution medical center does not belong to institution
         if ($this->institutionMedicalCenter && $this->institutionMedicalCenter->getInstitution()->getId() != $this->institution->getId()) {
             return new Response('Medical center does not belong to institution', 401);
         }
     }
 }
 private function doInstitution(Institution $institution, $em)
 {
     //$this->output->write("Institution #{$institution->getId()}");
     $oldState = \trim($institution->getStateBak());
     if ($oldState == '') {
         //$this->output->writeln('[No old state]');
         return;
     }
     $country = $institution->getCountry();
     // find a state with the same name for this country in chromedia_global
     $connection = $this->doctrine->getConnection();
     $sql = "SELECT gs.* FROM `chromedia_global`.`geo_states` gs WHERE `name` LIKE :state AND `geo_country_id` = :geoCountryId";
     $statement = $connection->prepare($sql);
     $statement->bindValue('state', $oldState);
     $statement->bindValue('geoCountryId', $country->getId());
     $statement->execute();
     if (!($rowCount = $statement->rowCount())) {
         //$this->output->writeln('[No matching state]');
         $this->nonMatchingInstitutions[] = $institution;
         return;
     } else {
         if ($rowCount == 1) {
             $globalStateData = $statement->fetch();
             $hcaState = $this->getHcaState($globalStateData, $country);
             $institution->setState($hcaState);
             $em->persist($institution);
             //$this->output->writeln("[Set to {$hcaState->getName()} ]");
         } else {
             if (strtolower($oldState) == 'singapore') {
                 // manual for singapore
                 while ($globalStateData = $statement->fetch()) {
                     if ($globalStateData['id'] == 2732) {
                         $hcaState = $this->getHcaState($globalStateData, $country);
                         $institution->setState($hcaState);
                         $em->persist($institution);
                         //$this->output->writeln("[Set to {$hcaState->getName()} ]");
                         break;
                     }
                 }
             } else {
                 $this->nonUniqueStates[] = array('country_id' => $country->getId(), 'state' => $oldState);
                 //$this->output->writeln("[Non unique state {$oldState}]");
                 $this->nonMatchingInstitutions[] = $institution;
             }
         }
     }
 }
 public function saveContactDetail(Institution $institution)
 {
     $contactIdsArray = array();
     $contactNumber = $institution->getContactNumber();
     $contactNumber = \json_decode($institution->getContactNumber(), true);
     if (\is_array($contactNumber)) {
         if (isset($contactNumber['number'])) {
             $contactDetail = new ContactDetail();
             $contactDetail->setNumber(isset($contactNumber['country_code']) ? $contactNumber['country_code'] : '');
             $contactDetail->setAreaCode(isset($contactNumber['area_code']) ? $contactNumber['area_code'] : '');
             $contactDetail->setNumber($contactNumber['number']);
             $contactDetail->setType(ContactDetailTypes::PHONE);
             $institution->addContactDetail($contactDetail);
         }
     }
     return $institution;
 }
 public function testIsSuspended()
 {
     $this->institution->setAsSuspended();
     $this->assertTrue($this->institution->isSuspended(), 'Is suspended should be true after setting as Suspended');
     $this->institution->setAsApproved();
     $this->assertFalse($this->institution->isSuspended(), 'Is suspended should be false after setting as Approved');
     $this->institution->setAsUnapproved();
     $this->assertFalse($this->institution->isSuspended(), 'Is suspended should be false after setting as Unapproved');
     $this->institution->setAsActive();
     $this->assertFalse($this->institution->isSuspended(), 'Is suspended should be false after setting as Active');
     $this->institution->setAsInactive();
     $this->assertFalse($this->institution->isSuspended(), 'Is suspended should be false after setting as Inactive');
 }
 /**
  * Remove an ancillary service to institution medical center
  * Required parameters:
  *     - institutionId
  *     - imcId institution medical center id
  *     - asId ancillary service id
  *
  * @param Request $request
  * @return \Symfony\Component\HttpFoundation\Response
  * @author acgvelarde
  */
 public function ajaxRemoveInstitutionMedicalCenterAncillaryServiceAction(Request $request)
 {
     $property = $this->getDoctrine()->getRepository('InstitutionBundle:InstitutionMedicalCenterProperty')->find($request->get('id', 0));
     if (!$property) {
         throw $this->createNotFoundException('Invalid property.');
     }
     // get global,current and selcted ancillary services
     $ancillaryService = $this->getDoctrine()->getRepository('AdminBundle:OfferedService')->find($property->getValue());
     $ancillaryServicesData = array('globalList' => $this->get('services.helper.ancillary_service')->getActiveAncillaryServices(), 'selected' => array(), 'currentAncillaryData' => array());
     $ancillaryServicesData = $this->get('services.institution_medical_center_property')->getCurrentAndSelectedAncillaryServicesByPropertyType($this->institutionMedicalCenter, InstitutionPropertyType::TYPE_ANCILLIARY_SERVICE, $ancillaryServicesData);
     try {
         $em = $this->getDoctrine()->getEntityManager();
         $em->remove($property);
         $em->flush();
         // Invalidate InstitutionMedicalCenter Profile cache
         $this->get('services.memcache')->delete(FrontendMemcacheKeysHelper::generateInsitutionMedicalCenterProfileKey($request->get('imcId')));
         $output = array('label' => 'Add Service', 'href' => $this->generateUrl('admin_institution_medicalCenter_ajaxAddAncillaryService', array('institutionId' => $this->institution->getId(), 'imcId' => $this->institutionMedicalCenter->getId(), 'id' => $ancillaryService->getId())), 'ancillaryServicesData' => $ancillaryServicesData, '_isSelected' => false);
         $response = new Response(\json_encode($output), 200, array('content-type' => 'application/json'));
     } catch (\Exception $e) {
         $response = new Response($e->getMessage(), 500);
     }
     return $response;
 }
 public function uploadToGallery($file, Institution $institution, $flushObject = true)
 {
     $result = parent::uploadFile($file);
     if (is_object($result)) {
         $media = $result;
         $sizes = $this->getSizesByType(self::GALLERY_TYPE_IMAGE);
         $gallery = $this->entityManager->getRepository('MediaBundle:Gallery')->findOneByInstitution($institution->getId());
         if (!$gallery) {
             $gallery = new Gallery();
             $gallery->addMedia($media);
             $gallery->setInstitution($institution);
         } else {
             $gallery->addMedia($media);
         }
         $this->resize($media, $sizes);
         if ($flushObject) {
             $this->entityManager->persist($gallery);
             $this->entityManager->flush($gallery);
         }
         return $media;
     }
     return null;
 }
 public function findByTypeName(Institution $institution, $userTypeName)
 {
     $query = $this->getEntityManager()->createQueryBuilder()->select('u')->from('UserBundle:InstitutionUser', 'u')->join('u.institutionUserType', 't', Join::WITH, 't.name LIKE :userTypeName')->where('u.institution = :institutionId')->andWhere('u.status = :status')->setParameter('userTypeName', '%' . $userTypeName . '%')->setParameter('institutionId', $institution->getId())->setParameter('status', SiteUser::STATUS_ACTIVE)->getQuery();
     return $query->getResult();
 }
 public function institutionWebsitesToArray(Institution $institution)
 {
     return $this->jsonWebsitesToArray($institution->getSocialMediaSites());
 }
 /**
  * Get medicaCenter count by Institution
  *
  * @param Institution $institution
  * @return int
  */
 public function getCountByInstitution(Institution $institution)
 {
     $qb = $this->getEntityManager()->createQueryBuilder()->select('count(a)')->from('InstitutionBundle:InstitutionMedicalCenter', 'a')->where('a.institution = :institutionId')->setParameter('institutionId', $institution->getId());
     $count = $qb->getQuery()->getSingleScalarResult();
     return $count;
 }
 /**
  * 
  * @param Institution $institution
  * @return array
  */
 function getAlertsByInstitution(Institution $institution, $groupByType = false)
 {
     $params = array('keys' => array(array($institution->getId(), AlertRecipient::INSTITUTION), array(null, AlertRecipient::ALL_ACTIVE_INSTITUTION)));
     return $this->getAlerts(self::RECIPIENT_ALERT_VIEW_URI, $params, $groupByType);
 }
 /**
  * @depends testSave
  */
 public function testFindById(Institution $institution)
 {
     $inst2 = $this->factory->findById($institution->getId());
     $this->assertEquals($institution->getId(), $inst2->getId());
 }
 public static function institutionToArray(Institution $institution)
 {
     $data = array('id' => $institution->getId(), 'name' => $institution->getName());
     return $data;
 }
 public function setInstitutionStatusActive(Institution $institution)
 {
     $institution->setStatus(Institution::ACTIVE);
     $em = $this->doctrine->getEntityManager();
     $em->persist($institution);
     $em->flush();
 }
 private function doMove(Institution $institution, Media $media, $sizes)
 {
     // point file system to new path
     $this->fileSystem->rename($institution->getId() . '/' . $media->getName(), $media->getName());
     // do resize
     $this->institutionMediaService->resize($media, $sizes);
 }
 /**
  * See comment in previous function
  */
 public function getInstitutionLinks(Institution $institution, $url)
 {
     $links = array();
     //Falls through; order of the elements in $links is significant
     if ($institution->getPayingClient()) {
         $socialMediaSites = json_decode($institution->getSocialMediaSites(), true);
         foreach ($socialMediaSites as $type => $value) {
             if ($value) {
                 $links[$type] = array('tooltip' => "This hospital is on {$value}");
             }
         }
         if ($website = $institution->getWebsites()) {
             $links['website'] = array('tooltip' => "Website: {$website}");
         }
         if ($number = $institution->getContactNumber()) {
             $links['contactnumber'] = array('tooltip' => 'Call Us', 'value' => $url);
         }
     }
     $links['email'] = array('tooltip' => 'Email Us', 'value' => $url . '#form_feedback');
     return $links;
 }
 public function renderInstitutionContactDetails(Institution $institution, $asJSON = false)
 {
     $contactDetails = $institution->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;
 }
 /**
  * Get global awards of an institution
  *
  * @param Institution $institution
  * @return array GlobalAward
  */
 public function getAllGlobalAwardsByInstitution($institution, $hydrationMode = Query::HYDRATE_OBJECT)
 {
     $institutionId = $institution;
     if ($institution instanceof Institution) {
         $institutionId = $institution->getId();
     }
     //$globalAwardPropertyType = $this->getEntityManager()->getRepository('InstitutionBundle:InstitutionPropertyType')->findOneBy(array('name' => InstitutionPropertyType::TYPE_GLOBAL_AWARD));
     $sql = "SELECT a.value  FROM institution_properties a " . "WHERE a.institution_property_type_id = :propertyType AND a.institution_id = :institutionId";
     $statement = $this->getEntityManager()->getConnection()->prepare($sql);
     $statement->bindValue('propertyType', InstitutionPropertyType::GLOBAL_AWARD_ID);
     $statement->bindValue('institutionId', $institutionId);
     $statement->execute();
     $result = array();
     if ($statement->rowCount() > 0) {
         $ids = array();
         while ($row = $statement->fetch(Query::HYDRATE_ARRAY)) {
             $ids[] = $row['value'];
         }
         $dql = "SELECT a, b FROM HelperBundle:GlobalAward a INNER JOIN a.awardingBody as b WHERE a.id IN (?1)";
         $query = $this->getEntityManager()->createQuery($dql)->setParameter(1, $ids);
         $result = $query->getResult($hydrationMode);
     }
     return $result;
 }
 /**
  * Get values of institution $institution for property type $propertyType
  *
  * @param Institution $institution
  * @param InstitutionPropertyType $propertyType
  * @return array InstitutionProperty
  */
 public function getPropertyValues(Institution $institution, InstitutionPropertyType $propertyType)
 {
     $dql = "SELECT a FROM InstitutionBundle:InstitutionProperty a WHERE a.institution = :institutionId AND a.institutionPropertyType = :institutionPropertyTypeId";
     $result = $this->doctrine->getEntityManager()->createQuery($dql)->setParameter('institutionId', $institution->getId())->setParameter('institutionPropertyTypeId', $propertyType->getId())->getResult();
     return $result;
 }