Utils.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Service\Cotisation;
  4. use App\Entity\Organization\Organization;
  5. use App\Repository\Network\NetworkOrganizationRepository;
  6. use App\Service\Organization\Utils as OrganizationUtils;
  7. use App\Tests\Service\Cotisation\UtilsTest;
  8. use App\Service\Network\Utils as NetworkUtils;
  9. /**
  10. * Class Utils : Service rassemblant des fonctions d'interrogation pour gérer des conditions dans les Cotisations
  11. * @package App\Service\Cotisation
  12. */
  13. class Utils {
  14. function __construct(
  15. private NetworkUtils $networkUtils,
  16. private OrganizationUtils $organizationUtils,
  17. private NetworkOrganizationRepository $networkOrganizationRepository
  18. ) { }
  19. /**
  20. * Test si l'organisation est un dernier parent ET appartient à la CMF.
  21. * @param Organization $organization
  22. * @return bool
  23. * @see UtilsTest::testIsLastParentAndCMF()
  24. */
  25. public function isLastParentAndCMF(Organization $organization): bool {
  26. return $this->networkOrganizationRepository->isLastParent($organization) && $this->networkUtils->isCMF($organization);
  27. }
  28. /**
  29. * Test si l'organisation est une structure (non manager) ET appartient à la CMF
  30. * @param Organization $organization
  31. * @return bool
  32. * @see UtilsTest::testIsStructureAndCMF()
  33. */
  34. public function isStructureAndCMF(Organization $organization):bool {
  35. return $this->organizationUtils->isStructure($organization) && $this->networkUtils->isCMF($organization);
  36. }
  37. /**
  38. * Test si la structure est un manager ET qu'elle appartient à la CMF
  39. * @param Organization $organization
  40. * @return bool
  41. * @see UtilsTest::testIsManagerAndCMF()
  42. */
  43. public function isManagerAndCMF(Organization $organization): bool{
  44. return $this->organizationUtils->isManager($organization) && $this->networkUtils->isCMF($organization);
  45. }
  46. /**
  47. * Test si l'organisation est un manager ET un dernier parent ET appartient à la CMF
  48. * @param Organization $organization
  49. * @return bool
  50. * @see UtilsTest::testIsManagerAndLastParentAndCMF()
  51. */
  52. public function isManagerAndLastParentAndCMF(Organization $organization): bool {
  53. return $this->organizationUtils->isManager($organization) && $this->isLastParentAndCMF($organization);
  54. }
  55. /**
  56. * Test si l'organisation est un manager ET n'est pas un dernier parent ET appartient à la CMF
  57. * @param Organization $organization
  58. * @return bool
  59. * @see UtilsTest::testIsManagerAndNotLastParentAndCMF()
  60. */
  61. public function isManagerAndNotLastParentAndCMF(Organization $organization): bool {
  62. return $this->organizationUtils->isManager($organization) && !$this->isLastParentAndCMF($organization);
  63. }
  64. }