/** * @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; }