示例#1
0
 /**
  * @param  Organisation $organisation
  * @return Contact[]
  */
 public function findContactsInOrganisation(Organisation $organisation)
 {
     $qb = $this->_em->createQueryBuilder();
     $qb->select('c');
     $qb->from("Contact\\Entity\\Contact", 'c');
     $qb->addOrderBy('c.lastName', 'ASC');
     //Select the contacts based on their organisations
     $subSelect = $this->_em->createQueryBuilder();
     $subSelect->select('contact');
     $subSelect->from('Contact\\Entity\\ContactOrganisation', 'co');
     $subSelect->join('co.organisation', 'o');
     $subSelect->join('co.contact', 'contact');
     $subSelect->where('o.id = ?1');
     $qb->setParameter(1, $organisation->getId());
     $qb->andWhere($qb->expr()->isNull('c.dateEnd'));
     $qb->andWhere($qb->expr()->in('c', $subSelect->getDQL()));
     return $qb->getQuery()->getResult();
 }
示例#2
0
 /**
  * @param Contact $contact
  *
  * @return array
  */
 public function findOrganisationForProfileEditByContact(Contact $contact)
 {
     $organisations = [];
     //Start with your own organisation
     if (!is_null($contact->getContactOrganisation())) {
         $organisations[$contact->getContactOrganisation()->getOrganisation()->getId()] = $contact->getContactOrganisation()->getOrganisation();
     }
     foreach ($this->findOrganisationByEmailAddress($contact->getEmail()) as $organisation) {
         $organisations[$organisation->getId()] = $organisation;
     }
     asort($organisations);
     //Add an empty value
     $emptyOrganisation = new Entity\Organisation();
     $emptyOrganisation->setId(0);
     $emptyOrganisation->setOrganisation('— None of the above');
     $organisations[$emptyOrganisation->getId()] = $emptyOrganisation;
     return $organisations;
 }