getSettings()->getProduct() != SettingsProductEnum::MANAGER() && $organization->getSettings()->getProduct() != SettingsProductEnum::MANAGER_PREMIUM(); } /** * Test si l'organisation est considérée comme un manager == a un produit manager standard * @param Organization $organization * @return bool * @see UtilsTest::testIsManagerTest() */ public function isManager(Organization $organization): bool{ return $organization->getSettings()->getProduct() == SettingsProductEnum::MANAGER(); } /** * Test si l'organisation est la structure 2iOpenservice * @param Organization $organization * @return bool * @see UtilsTest::testIsOrganizationIs2ios() */ public function isOrganizationIs2ios(Organization $organization): bool{ return $this->isOrganizationIdIs($organization, OrganizationIdsEnum::_2IOS()); } /** * Test si l'organisation est la structure CMF * @param Organization $organization * @return bool * @see UtilsTest::testIsOrganizationIsCMF() */ public function isOrganizationIsCMF(Organization $organization): bool{ return $this->isOrganizationIdIs($organization, OrganizationIdsEnum::CMF()); } /** * Test si l'id de l'organisation est celui passé en paramètre (doit faire partit des OrganizationIdsEnum) * @param Organization $organization * @param OrganizationIdsEnum $organizationIdsEnum * @return bool */ private function isOrganizationIdIs(Organization $organization, OrganizationIdsEnum $organizationIdsEnum){ return $organization->getId() === $organizationIdsEnum->getValue(); } /** * Retourne dans quelles année d'activité on se situe aujourd'hui * @param Organization $organization * @return int * @throws \Exception * @see UtilsTest::testGetOrganizationCurrentActivityYear() */ public static function getOrganizationCurrentActivityYear(Organization $organization): int{ $today = new \DateTime(); $year = intval($today->format('Y')); $musicalDate = $organization->getParameters()->getMusicalDate(); if(empty($musicalDate)) $musicalDate = new \DateTime($year.'-08-31'); $base_date = new \DateTime($musicalDate->format($year.'-m-d')); $dateStart = new \DateTime($year . '-01-01'); if($today >= $dateStart && $today < $base_date) return $year - 1; else return $year; } /** * Fonction permettant de récupérer les dates de début et de fin d'activité d'une structure selon une année * @param Organization $organization * @param int $year * @return \DateTime[] * @throws \Exception * @see UtilsTest::testGetActivityPeriodsSwitchYear() */ public static function getActivityPeriodsSwitchYear(Organization $organization, int $year): array { $musicalDate = $organization->getParameters()->getMusicalDate(); if (empty($musicalDate)) { $dateStart = new \DateTime($year . "-09-01"); $dateEnd = new \DateTime(($year + 1) . "-08-31"); } else { $dateStart = new \DateTime($year . "-" . $musicalDate->format('m') . "-" . $musicalDate->format('d')); $dateEnd = clone($dateStart); $dateEnd->add(new \DateInterval('P1Y'))->sub(new \DateInterval('P1D')); } return [ self::START_DATE_KEY => $dateStart->format('Y-m-d'), self::END_DATE_KEY => $dateEnd->format('Y-m-d') ]; } /** * Permet de retrouver quelle sera la date d'activité correspondant à une date précise de l'année * @param Organization $organization * @param \DateTimeInterface $date * @return int * @throws \Exception * @see UtilsTest::testgetActivityYearSwitchDate() */ public static function getActivityYearSwitchDate(Organization $organization, \DateTimeInterface $date): int { $year = $date->format('Y'); $musicalDate = $organization->getParameters()->getMusicalDate(); if (empty($musicalDate)) { $startDate = new \DateTime($year.'-08-31'); }else{ $startDate = new \DateTime($musicalDate->format($year.'-m-d')); } $pivotDate = new \DateTime($year . '-01-01'); if($date >= $pivotDate && $date < $startDate) return (int) ($year - 1); else return (int) $year; } }