/**
  * @return bool
  */
 public function isActive()
 {
     return is_null($this->affiliation->getDateEnd());
 }
 /**
  * @param Affiliation $affiliation
  *
  * @return bool
  */
 public function canCreateInvoice(Affiliation $affiliation)
 {
     $errors = [];
     switch (true) {
         case $affiliation->getOrganisation()->getType()->getInvoice() === Type::NO_INVOICE && !($affiliation->getProject()->getCall()->getProgram()->getId() === 3 && $affiliation->getOrganisation()->getType()->getId() === Type::TYPE_UNIVERSITY):
             $errors[] = sprintf('No invoice is needed for %s', $affiliation->getOrganisation()->getType()->getDescription());
             break;
         case is_null($affiliation->getFinancial()):
             $errors[] = 'No financial organisation (affiliation financial) set for this partner';
             break;
         case !is_null($affiliation->getDateEnd()):
             $errors[] = 'Partner is de-activated';
             break;
         case is_null($affiliation->getFinancial()->getOrganisation()->getFinancial()):
             $errors[] = 'No financial information set for this organisation';
             break;
         case is_null($affiliation->getFinancial()->getContact()):
             $errors[] = 'No financial contact set for this organisation';
             break;
     }
     return $errors;
 }