src/Controller/Client/PageController.php line 23

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Client;
  3. use App\Entity\Child;
  4. use App\Entity\Member;
  5. use App\Entity\Payment;
  6. use App\Form\MemberOnlineRegistrationType;
  7. use App\Form\MemberRegistrationType;
  8. use App\Repository\MemberRepository;
  9. use App\Service\Member\MemberService;
  10. use App\Service\Payment\PaymentService;
  11. use Knp\Bundle\SnappyBundle\Snappy\Response\PdfResponse;
  12. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  13. use Symfony\Component\Form\FormInterface;
  14. use Symfony\Component\HttpFoundation\Request;
  15. use Symfony\Component\HttpFoundation\Response;
  16. use Symfony\Component\Routing\Annotation\Route;
  17. class PageController extends AbstractController
  18. {
  19.     #[Route(path'/'name'home')]
  20.     public function home(Request $request): Response
  21.     {
  22.         $flashInfos = [
  23.             "Suite à la bastonnade d'un chauffeur à ..",
  24.             "La SYNACVTCCI apporte son assistance au chauffeur bastonné ..",
  25.             "La SYNACVTCCI signe une convetion avec la maison d'assurance santé VITAS Santé",
  26.         ];
  27.         $imageTextActivities = [
  28.             [
  29.                 "title"  => "",
  30.                 "description"  => "",
  31.                 "images" => ["","",""],
  32.                 "url" => ""
  33.             ],
  34.         ];
  35.         $videoActivities = [
  36.             [
  37.                 "title"  => "",
  38.                 "description"  => "",
  39.                 "url" => ""
  40.             ],
  41.         ];
  42.         return $this->render('frontend/pages/index.html.twig',[
  43.             "flashInfos" => $flashInfos,
  44.             "videoActivities" => $videoActivities,
  45.             "imageTextActivities" => $imageTextActivities,
  46.         ]);
  47.     }
  48.     #[Route(path'/success/{id}'name'success')]
  49.     public function success(Member $memberMemberService $memberService): Response
  50.     {
  51.         $flashInfos = [
  52.             "Suite à la bastonnade d'un chauffeur à ..",
  53.             "La SYNACVTCCI apporte son assistance au chauffeur bastonné ..",
  54.             "La SYNACVTCCI signe une convetion avec la maison d'assurance santé VITAS Santé",
  55.         ];
  56.         $memberService->generateRegistrationReceipt($member);
  57.         return $this->render('frontend/member/success.html.twig', ["flashInfos" => $flashInfos'member' => $member]);
  58.     }
  59.     #[Route(path'/register'name'register_member')]
  60.     public function registerMember (Request $requestMemberService $memberService): Response
  61.     {
  62.         $flashInfos = [
  63.             "Suite à la bastonnade d'un chauffeur à ..",
  64.             "La SYNACVTCCI apporte son assistance au chauffeur bastonné ..",
  65.             "La SYNACVTCCI signe une convetion avec la maison d'assurance santé VITAS Santé",
  66.         ];
  67.         $member = new Member;
  68.         $form $this->createForm(MemberOnlineRegistrationType::class, $member);
  69.         $form->handleRequest($request);
  70.         if ($form->isSubmitted() && $form->isValid()){
  71.             $res $this->handleFormCreation($request$form$member$memberService);
  72.             if($res) return $this->redirectToRoute('success',["id" => $member->getId()], Response::HTTP_SEE_OTHER);
  73.         }
  74.         return $this->renderForm('frontend/member/register.html.twig', [
  75.             "flashInfos" => $flashInfos,
  76.             'member' => $member,
  77.             'form' => $form
  78.         ]);
  79.     }
  80.     #[Route(path'/profile/{reference}'name'public_member_profile')]
  81.     public function memberProfile(Request $requestMemberRepository $memberRepository): Response
  82.     {
  83.         $member $memberRepository->findOneBy(["reference" => $request->get("reference")]);
  84.         if($member)  return $this->render('admin/member/synacvtcci/public_profile.html.twig', ["member" => $member]);
  85.         else return $this->redirectToRoute('home');
  86.     }
  87.     #[Route('/cnmci/{id}'name'member_cncmi_sticker'methods: ['GET'])]
  88.     public function formCnmciShow($idMemberRepository $memberRepository): Response
  89.     {
  90.         $member $memberRepository->findOneBy(['code_sticker' => $id]);
  91.         return $this->render('admin/member/cnmci/cnmci_show_sticker.html.twig', ['member' => $member]);
  92.     }
  93.     private function handleFormCreation(Request $requestFormInterface $formMember &$memberMemberService $memberService): Member {
  94.         $images = [];
  95.         if($form->has('photo'))  $images['photo'] = $form->get('photo')?->getData();
  96.         if($form->has('photoPieceFront'))  $images['photoPieceFront'] = $form->get('photoPieceFront')?->getData();
  97.         if($form->has('photoPieceBack'))  $images['photoPieceBack'] = $form->get('photoPieceBack')?->getData();
  98.         if($form->has('photoPermisFront'))  $images['photoPermisFront'] = $form->get('photoPermisFront')?->getData();
  99.         if($form->has('photoPermisBack'))  $images['photoPermisBack'] = $form->get('photoPermisBack')?->getData();
  100.         if($form->has('paymentReceiptCnmci'))  $images['paymentReceiptCnmci'] = $form->get('paymentReceiptCnmci')?->getData();
  101.         if($form->has('paymentReceiptSyndicatPdf'))  $images['paymentReceiptSyndicatPdf'] = $form->get('paymentReceiptSyndicatPdf')?->getData();
  102.         $data $request->request->all();
  103.         if(isset($data['child'])){
  104.             foreach($data['child'] as $childItem){
  105.                 $child=  new Child();
  106.                 $child->setLastName($childItem['lastname']);
  107.                 $child->setFirstName($childItem['firstname']);
  108.                 $child->setSex($childItem['sex']);
  109.                 $child->setMember($member);
  110.                 $member->addChild($child);
  111.             }
  112.         }
  113.         $memberService->createMember($member$images);
  114.         return $member;
  115.     }
  116.     #[Route('/download/receipt/{id}'name'download_receipt_pdf'methods: ['GET'])]
  117.     public function pdfGenerate(Member $memberMemberService $memberService): Response
  118.     {
  119.         set_time_limit(0);
  120.         $content $memberService->generateRegistrationReceipt($member);
  121.         return new PdfResponse($content'recu_syndicat.pdf');
  122.     }
  123.     #[Route('/download/syndicat/receipt/{id}'name'download_payment_receipt_carte_syndicat_pdf'methods: ['GET'])]
  124.     public function downloadReceiptCarteSyndiact(?Payment $paymentPaymentService $paymentService): Response
  125.     {
  126.         set_time_limit(0);
  127.         $content $paymentService->generatePaymentReceipt($payment);
  128.         return new PdfResponse($content'recu_syndicat.pdf');
  129.     }
  130.     #[Route('/preinscription/{tracking_code}'name'presubscribe'methods: ['GET']), ]
  131.     public function presubscribe (string $tracking_codeRequest $requestMemberRepository $memberRepository): Response
  132.     {
  133.         date_default_timezone_set("Africa/Abidjan");
  134.         $member $memberRepository->findOneBy(['tracking_code' => $tracking_code]);
  135.         $form $this->createForm(MemberRegistrationType::class, $member);
  136.         $form->handleRequest($request);
  137.         if ($form->isSubmitted() && $form->isValid()) {
  138.             $memberRepository->add($membertrue);
  139.             return $this->redirectToRoute('home');
  140.         }
  141.         return $this->renderForm('frontend/member/self_subscription.html.twig', [
  142.             'member' => $member,
  143.             'form' => $form,
  144.         ]);
  145.     }
  146. }