src/Controller/Bo/ClaimingRequestController.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Bo;
  3. use App\Entity\ClaimingRequest;
  4. use App\Entity\Collaborator;
  5. use App\Service\ClubHandler;
  6. use DateTime;
  7. use Doctrine\ORM\EntityManagerInterface;
  8. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. #[Route('/bo/claiming-request'name'bo_claiming_request_')]
  13. class ClaimingRequestController extends AbstractController
  14. {
  15.     public function __construct(
  16.         private readonly EntityManagerInterface $em,
  17.         private readonly ClubHandler $clubHandler
  18.     ) {
  19.     }
  20.     #[Route('/{id}/change-status'name'change_status')]
  21.     public function changeStatus(ClaimingRequest $claimingRequestRequest $request): Response
  22.     {
  23.         $company $claimingRequest->getCompany();
  24.         $status $request->get('status'ClaimingRequest::STATUS_NEW);
  25.         $ownerCollaborator $this->em->getRepository(Collaborator::class)->findOneBy([
  26.             'user' => $claimingRequest->getClaimer(),
  27.             'company' => $company,
  28.         ]);
  29.         if ($status === ClaimingRequest::STATUS_VALIDATED) {
  30.             if (!$ownerCollaborator) {
  31.                 $ownerCollaborator = new Collaborator();
  32.                 $ownerCollaborator->setUser($claimingRequest->getClaimer());
  33.                 $ownerCollaborator->setCompany($company);
  34.             }
  35.             $ownerCollaborator->setOwner(true);
  36.             $this->em->persist($ownerCollaborator);
  37.         } elseif ($ownerCollaborator) {
  38.             $ownerCollaborator->setOwner(false);
  39.             $this->em->persist($ownerCollaborator);
  40.         }
  41.         $claimingRequest->setStatus($status);
  42.         $this->em->persist($claimingRequest);
  43.         $company->setUpdatedAt(new DateTime());
  44.         $this->em->persist($company);
  45.         $this->em->flush();
  46.         return $this->redirectToRoute('bo_company_ownership', ['id' => $claimingRequest->getCompany()->getId()], Response::HTTP_SEE_OTHER);
  47.     }
  48. }