Beispiel #1
0
 public function testOrganSetType()
 {
     $organ = new Organ();
     $organ->setType(Organ::ORGAN_TYPE_FRATERNITY);
     $this->assertEquals(Organ::ORGAN_TYPE_FRATERNITY, $organ->getType());
     $organ->setType(Organ::ORGAN_TYPE_COMMITTEE);
     $this->assertEquals(Organ::ORGAN_TYPE_COMMITTEE, $organ->getType());
 }
Beispiel #2
0
 /**
  * Returns a list of an organ's current and previous members including their function.
  *
  * @param OrganModel $organ
  *
  * @return array
  */
 public function getOrganMemberInformation($organ)
 {
     $oldMembers = [];
     $currentMembers = [];
     foreach ($organ->getMembers() as $install) {
         if (null === $install->getDischargeDate()) {
             // current member
             if (!isset($currentMembers[$install->getMember()->getLidnr()])) {
                 $currentMembers[$install->getMember()->getLidnr()] = ['member' => $install->getMember(), 'functions' => []];
             }
             if ($install->getFunction() != 'Lid') {
                 $function = $this->getTranslator()->translate($install->getFunction());
                 $currentMembers[$install->getMember()->getLidnr()]['functions'][] = $function;
             }
         } else {
             // old member
             if (!isset($oldMembers[$install->getMember()->getLidnr()])) {
                 $oldMembers[$install->getMember()->getLidnr()] = $install->getMember();
             }
         }
     }
     $oldMembers = array_filter($oldMembers, function ($member) use($currentMembers) {
         return !isset($currentMembers[$member->getLidnr()]);
     });
     // Sort members by function
     usort($currentMembers, function ($a, $b) {
         if ($a['functions'] == $b['functions']) {
             return 0;
         }
         if (count($a['functions']) > count($b['functions'])) {
             return -1;
         }
         return in_array('Voorzitter', $a['functions']) ? -1 : 1;
     });
     return ['oldMembers' => $oldMembers, 'currentMembers' => $currentMembers];
 }