networkOrganizationRepository->isLastParent($organization) && $this->networkUtils->isCMF($organization); } /** * Test si l'organisation est une structure (non manager) ET appartient à la CMF. * * @see config/opentalent/modulesbyconditions.yaml * @see UtilsTest::testIsStructureAndCMF() */ public function isStructureAndCMF(Organization $organization): bool { return $this->organizationUtils->isStructure($organization) && $this->networkUtils->isCMF($organization); } /** * Test si la structure est un manager ET qu'elle appartient à la CMF. * * @see config/opentalent/modulesbyconditions.yaml * @see UtilsTest::testIsManagerAndCMF() */ public function isManagerAndCMF(Organization $organization): bool { return $this->organizationUtils->isManager($organization) && $this->networkUtils->isCMF($organization); } /** * Test si l'organisation est un manager ET un dernier parent ET appartient à la CMF. * * @see config/opentalent/modulesbyconditions.yaml * @see UtilsTest::testIsManagerAndLastParentAndCMF() */ public function isManagerAndLastParentAndCMF(Organization $organization): bool { return $this->organizationUtils->isManager($organization) && $this->isLastParentAndCMF($organization); } /** * Test si l'organisation est un manager ET n'est pas un dernier parent ET appartient à la CMF. * * @see config/opentalent/modulesbyconditions.yaml * @see UtilsTest::testIsManagerAndNotLastParentAndCMF() */ public function isManagerAndNotLastParentAndCMF(Organization $organization): bool { return $this->organizationUtils->isManager($organization) && !$this->networkOrganizationRepository->isLastParent($organization) && $this->networkUtils->isCMF($organization); } /** * Retourne le niveau d'alerte de l'appel de cotisation pour une année. * * @see UtilsTest::testGetAlertStateAffiliation() */ public function getAlertState(Organization $organization, int $year): ?AlertStateEnum { $state = $this->cotisationApiResourcesRepository->getAffiliationState($organization->getId(), $year); $alertState = null; if ($state == self::MEMBERSHIP_WAITING || $state == self::SUBMIT_IN_PROGRESS) { $alertState = AlertStateEnum::AFFILIATION; } elseif ($state == self::MEMBERSHIP_NOPAYMENT) { $alertState = AlertStateEnum::INVOICE; } elseif ($this->cotisationApiResourcesRepository->isInsuranceNotDone($organization->getId(), $year)) { $alertState = AlertStateEnum::INSURANCE; } elseif ($this->cotisationApiResourcesRepository->isNotDGVCustomer($organization->getId())) { $alertState = AlertStateEnum::ADVERTISINGINSURANCE; } return $alertState; } /** * Retourne dans quelle année de cotisation on est aujourd'hui. * * @throws \Exception * * @see UtilsTest::testGetCurrentCotisationYear() */ public function getCurrentCotisationYear(): int { $date = DatesUtils::new('now'); $year = (int) $date->format('Y'); $base_date = new \DateTime($year.'-09-01'); $dateStart = new \DateTime($year.'-01-01'); if ($date >= $dateStart && $date <= $base_date) { $cotisationYear = $year; } else { $cotisationYear = $year + 1; } return $cotisationYear; } }