src/Controller/Action/SiteAffectationController.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Action;
  3. use App\Entity\Customer;
  4. use App\Repository\CustomerRepository;
  5. use App\Repository\SiteRepository;
  6. use App\Traits\TreeBuilderTrait;
  7. use Doctrine\Common\Collections\ArrayCollection;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpKernel\Attribute\AsController;
  11. use Symfony\Component\Security\Core\Security;
  12. #[AsController]
  13. class SiteAffectationController extends AbstractController
  14. {
  15.     use TreeBuilderTrait;
  16.     public function __construct(private Security $security, private SiteRepository $siteRepository, private CustomerRepository $customerRepository)
  17.     {
  18.     }
  19.     public function __invoke(Request $request): array
  20.     {
  21.         $document $request->get('document'null);//@todo bilel to be checked for user admin
  22.         $user =  $this->getUser();
  23.         if ($user->isMasterAdmin() && !empty($customerFilter)){
  24.             $customerIds = [$customerFilter];
  25.         }elseif ($user->isMasterAdmin()){
  26.             $customerIds null;
  27.         } else {
  28.             $customerIds $user->getCustomerAssociated();
  29.             if(empty($customerIds))
  30.             {
  31.                 return [];
  32.             }
  33.         }
  34.         return $this->siteRepository->getAssignSitesByDocument($document$user$customerIds);
  35.     }
  36. }