src/General/GeneralService.php line 58

Open in your IDE?
  1. <?php
  2. namespace App\General;
  3. use App\Entity\ChatAssistant;
  4. use App\Entity\PageQuiSommesNous;
  5. use App\Entity\ReseauxSociaux;
  6. use App\Entity\SectionIconeColoree;
  7. use App\Repository\ChatAssistantRepository;
  8. use App\Repository\CompteurRepository;
  9. use App\Repository\GeneralRepository;
  10. use App\Repository\HorairesDouvertureRepository;
  11. use App\Repository\IconesColoreesRepository;
  12. use App\Repository\ImagesAccueilRepository;
  13. use App\Repository\NosChiffresClesRepository;
  14. use App\Repository\NosTarifsRepository;
  15. use App\Repository\PageQuiSommesNousRepository;
  16. use App\Repository\PresentationRepository;
  17. use App\Repository\QuiSommesNousRepository;
  18. use App\Repository\RealisationRepository;
  19. use App\Repository\ReseauxSociauxRepository;
  20. use App\Repository\SectionIconeColoreeRepository;
  21. use App\Repository\SectionZoneDinterventionRepository;
  22. use App\Repository\ServiceRepository;
  23. use App\Repository\ZoneDinterventionRepository;
  24. use Doctrine\Common\Collections\ArrayCollection;
  25. use Doctrine\ORM\EntityManagerInterface;
  26. class GeneralService{
  27. private $gr;
  28. private $ir;
  29. public function __construct(
  30. GeneralRepository $GeneralRepository,
  31. ImagesAccueilRepository $imagesAccueilRepository,
  32. NosChiffresClesRepository $nccr,
  33. QuiSommesNousRepository $qsnr,
  34. NosTarifsRepository $ntr,
  35. HorairesDouvertureRepository $hdr,
  36. CompteurRepository $compteurRepository,
  37. PageQuiSommesNousRepository $pqs,
  38. SectionZoneDinterventionRepository $szdr,
  39. ZoneDinterventionRepository $zi,
  40. ReseauxSociauxRepository $rsr,
  41. SectionIconeColoreeRepository $sicr,
  42. IconesColoreesRepository $icr,
  43. PresentationRepository $pr,
  44. RealisationRepository $rr,
  45. ChatAssistantRepository $chatAssistantRepository,
  46. EntityManagerInterface $em){
  47. $this->gr = $GeneralRepository;
  48. $this->ir = $imagesAccueilRepository;
  49. $this->nccr = $nccr;
  50. $this->qsnr = $qsnr;
  51. $this->ntr = $ntr;
  52. $this->hdr = $hdr;
  53. $this->compteurRepo = $compteurRepository;
  54. $this->pqsr = $pqs;
  55. $this->szdr = $szdr;
  56. $this->zi = $zi;
  57. $this->rsr = $rsr;
  58. $this->icr = $icr;
  59. $this->sicr = $sicr;
  60. $this->pr = $pr;
  61. $this->rr = $rr;
  62. $this->chatAssistantRepository = $chatAssistantRepository;
  63. $this->em = $em;
  64. }
  65. public function getGeneral(){
  66. return $this->gr->find(1);
  67. }
  68. public function getImageAccueil()
  69. {
  70. return $this->ir->find(1);
  71. }
  72. public function getQuiSommesNous(){
  73. return $this->qsnr->find(1);
  74. }
  75. public function getNosChiffresCles(){
  76. return $this->nccr->find(1);
  77. }
  78. public function getNosTarifs(){
  79. return $this->ntr->find(1);
  80. }
  81. public function getHorairesDouverture(){
  82. return $this->hdr->find(1);
  83. }
  84. public function getCompteurs(){
  85. return $this->compteurRepo->findBy([],['id' => 'DESC']);
  86. }
  87. public function getPageQuiSommesNous(){
  88. return $this->pqsr->find(1);
  89. }
  90. public function getSectionZoneDintervention(){
  91. return $this->szdr->find(1);
  92. }
  93. public function getZoneDinterventions()
  94. {
  95. return $this->zi->findBy([],['id' => 'DESC']);
  96. }
  97. public function getReseauxSociaux(){
  98. return $this->rsr->find(1);
  99. }
  100. public function getIconesColorees(){
  101. return $this->icr->findBy([],['id' => 'DESC']);
  102. }
  103. public function getSectionIconesColorees(){
  104. return $this->sicr->find(1);
  105. }
  106. public function getPresentations()
  107. {
  108. return $this->pr->findBy([],['id' => 'DESC']);
  109. }
  110. public function hasPreviousRealisation(int $id)
  111. {
  112. return $this->searchForOtherRealisation($id,false);
  113. }
  114. public function hasNextRealisation(int $id)
  115. {
  116. return $this->searchForOtherRealisation($id,true);
  117. }
  118. public function searchForOtherRealisation(int $baseSearch,bool $next){
  119. $realisations = $this->rr->findAll();
  120. $baseSearch = $this->rr->find($baseSearch);
  121. $collection = new ArrayCollection($realisations);
  122. $collection = new ArrayCollection($collection->slice(max($collection->indexOf($baseSearch) -1,0), 3));
  123. $resultIndex = null;
  124. $result = $collection->exists(function($index, $element) use($next,$baseSearch,&$resultIndex){
  125. if($next){
  126. $result = $element->getId() > $baseSearch->getId();
  127. }
  128. else{
  129. $result = $element->getId() < $baseSearch->getId();
  130. }
  131. if($result){
  132. $resultIndex = $element->getId();
  133. }
  134. return $result;
  135. });
  136. return $resultIndex;
  137. }
  138. public function getTidioUrl()
  139. {
  140. $tidioElement = $this->chatAssistantRepository->find(1);
  141. if(is_null($tidioElement)){
  142. $tidioElement = (new ChatAssistant())->setId(1);
  143. $this->em->persist($tidioElement);
  144. $this->em->flush();
  145. }
  146. return $this->chatAssistantRepository->find(1)->getTidioUrl();
  147. }
  148. }