src/Controller/ManagePlanSettingsController.php line 147

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use Doctrine\ORM\EntityManagerInterface;
  4. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  5. use Symfony\Component\HttpFoundation\Request;
  6. use Symfony\Component\HttpFoundation\Response;
  7. use Symfony\Component\Routing\Annotation\Route;
  8. use App\Entity\SmsPackages;
  9. use App\Repository\SmsPackagesRepository;
  10. use App\Form\Filters\SmsPackagesFilter;
  11. use App\Form\SmsPackagesForm;
  12. use App\Form\PlanSettingForm;
  13. #[Route('/plan')]
  14. class ManagePlanSettingsController extends AbstractController
  15. {
  16.     #[Route('/settings'defaults: ['page' => '1'], methods: ['GET''POST'], name'manage_plan_index')]
  17.     public function index(Request $request,int $page,EntityManagerInterface $entityManagerSmsPackagesRepository $smsPackagesRepository): Response
  18.     {
  19.         //$params = $request->query->all();
  20.       
  21.         $params = [];
  22.         $setting $entityManager->getRepository(\App\Entity\SiteSettings::class);
  23.             $params = array(
  24.                 'primaryPlanPrice' => $setting->getSetting('plan.primary_plan_price'),
  25.                 'primaryPlanMember' => $setting->getSetting('plan.primary_plan_member'),
  26.                 'primaryPlanStorage' => $setting->getSetting('plan.primary_plan_storage'),
  27.                 'perMemberPrice' => $setting->getSetting('plan.per_member_price'),
  28.                 'perStoragePrice' => $setting->getSetting('plan.per_storage_price'),
  29.                 'trialPeriod' => $setting->getSetting('plan.trial_period'),
  30.                 'crmRevoked' => $setting->getSetting('plan.crm_revoked'),
  31.                 'smsQuantity' => $setting->getSetting('plan.sms_quantity'),
  32.                 'smsAmount' => $setting->getSetting('plan.sms_amount')
  33.             );
  34.         
  35.         if ($request->isMethod('POST')) {
  36.       
  37.             $primaryPlanMember $request->request->get('primary_plan_member');
  38.             $primaryPlanPrice $request->request->get('primary_plan_price');
  39.             $primaryPlanStorage $request->request->get('primary_plan_storage');
  40.             $perMemberPrice $request->request->get('per_member_price');
  41.             $perBucketPrice $request->request->get('per_storage_price');
  42.             $trialPeriod $request->request->get('trial_period');
  43.             //$crmRevoked = $form->get('crm_revoked')->getData();
  44.             $smsQuantity $request->request->get('sms_quantity');
  45.             $smsAmount $request->request->get('sms_amount');
  46.             $setting->setSetting('plan.primary_plan_price'trim($primaryPlanPrice));
  47.             $setting->setSetting('plan.primary_plan_member'trim($primaryPlanMember));
  48.             $setting->setSetting('plan.primary_plan_storage'trim($primaryPlanStorage));
  49.             $setting->setSetting('plan.per_member_price'trim($perMemberPrice));
  50.             $setting->setSetting('plan.per_storage_price'trim($perBucketPrice));
  51.             $setting->setSetting('plan.trial_period'trim($trialPeriod));
  52.             //$setting->setSetting('plan.crm_revoked', trim($crmRevoked));
  53.             $setting->setSetting('plan.sms_quantity'trim($smsQuantity));
  54.             $setting->setSetting('plan.sms_amount'trim($smsAmount));
  55.             $this->addFlash('success''Plan Updated');
  56.             return $this->redirectToRoute('manage_plan_index', [], Response::HTTP_SEE_OTHER);
  57.        }
  58.        
  59.         return $this->render('manage-plan/index.html.twig', [
  60.             //'form' => $form,
  61.             'params' => $params
  62.         ]);
  63.     }
  64.     #[Route('/manage-sms'defaults: ['page' => '1'], methods: ['GET'], name'manage_sms_index')]
  65.     #[Route('/page/{page<[1-9]\d*>}'methods: ['GET'], name'manage_sms_index_paginated')]
  66.     #[Cache(smaxage10)]
  67.     public function smsPackages(Request $request,int $page,EntityManagerInterface $entityManagerSmsPackagesRepository $smsPackagesRepository): Response
  68.     {
  69.         $params $request->query->all();
  70.         $filter = [];
  71.         $filterForm $this->createForm(SmsPackagesFilter::class);
  72.         if(isset($params['package'])) {
  73.             $filterForm['package']->setData($params['package']);
  74.             $filter['package'] = $params['package'];
  75.         }
  76.         
  77.         $data $smsPackagesRepository->adminPaginatorFetchAll($page$filter);
  78.         return $this->render('manage-plan/manage-sms.html.twig', [
  79.             'paginator' => $data,
  80.             'filter' => $params,
  81.             'form' => $filterForm->createView(),
  82.         ]);
  83.     }
  84.     #[Route('/add'name'sms_packages_add'methods: ['GET''POST'])]
  85.     public function add(Request $requestEntityManagerInterface $entityManager){
  86.         $redirectPage ='';
  87.         $smsPackages = new SmsPackages();
  88.         $form $this->createForm(SmsPackagesForm::class, $smsPackages);
  89.         $form->handleRequest($request);
  90.             if ($form->isSubmitted() && $form->isValid()) {
  91.                 $smsPackages->setCreatedAt(new \DateTime());
  92.                 $entityManager->persist($smsPackages);
  93.                 $entityManager->flush();
  94.                 $this->addFlash('success''Created successfully.');
  95.             $redirectPage $request->request->get('redirect_page');
  96.             if($redirectPage){
  97.                 return $this->redirectToRoute('manage_sms_index_paginated', ['page'=> $redirectPage], Response::HTTP_SEE_OTHER);
  98.             }
  99.             return $this->redirectToRoute('manage_sms_index', [], Response::HTTP_SEE_OTHER);
  100.             }
  101.         return $this->renderForm('manage-plan/add.html.twig', [
  102.             'form' => $form,
  103.             'redirect_page' =>$redirectPage
  104.         ]);
  105.     }
  106.     #[Route('/edit-sms-package/{id}'name'sms_package_edit'methods: ['GET''POST'])]
  107.     public function editSmsPackage($idRequest $requestSmsPackages $smsPackagesEntityManagerInterface $entityManager){
  108.         $redirectPage $request->query->get('redirect_page');
  109.         $form $this->createForm(SmsPackagesForm::class, $smsPackages);
  110.         $form->handleRequest($request);
  111.         if ($form->isSubmitted()) {
  112.             $entityManager->persist($smsPackages);
  113.             $entityManager->flush();
  114.             $this->addFlash('success''Update successfully.');
  115.             $redirectPage $request->request->get('redirect_page');
  116.             if($redirectPage){
  117.                 return $this->redirectToRoute('manage_sms_index_paginated', ['page'=> $redirectPage], Response::HTTP_SEE_OTHER);
  118.             }
  119.             return $this->redirectToRoute('manage_sms_index', [], Response::HTTP_SEE_OTHER);
  120.        }
  121.         return $this->renderForm('manage-plan/_edit_form.html.twig', [
  122.             'form' => $form,
  123.             'id'=>$id,
  124.             'redirect_page' => $redirectPage
  125.         ]);
  126.     }
  127.     #[Route('/delete-sms/{id}'name'delete_sms'methods: ['POST','GET'])]
  128.     public function deleteSms(Request $requestEntityManagerInterface $entityManager,  SmsPackages $smsPackages): Response
  129.     {
  130.         if ($this->isCsrfTokenValid('delete'.$smsPackages->getId(), $request->request->get('_token'))) {
  131.             if($request->isMethod('POST')){
  132.                 $entityManager->remove($smsPackages);
  133.                 $entityManager->flush();
  134.                 $this->addFlash('error''Delete successfully.');
  135.                 if($request->request->get('redirect_page')){
  136.                     return $this->redirectToRoute('manage_sms_index_paginated', ['page'=> $request->request->get('redirect_page')], Response::HTTP_SEE_OTHER);
  137.                 }
  138.                 return $this->redirectToRoute('manage_sms_index', [], Response::HTTP_SEE_OTHER);       
  139.             }
  140.         }
  141.         return  $this->renderForm('manage-plan/_delete_form.html.twig', [
  142.             'smsPackages' => $smsPackages,
  143.             'redirect_page' => $request->query->get('redirect_page')
  144.         ]);
  145.     }
  146.     #[Route('/disable-sms/{id}'name'disable_sms'methods: ['POST','GET'])]
  147.     public function disableSms($idRequest $requestEntityManagerInterface $entityManager,SmsPackages $smsPackages): Response
  148.     {
  149.         $query $entityManager->getRepository(\App\Entity\SmsPackages::class)->find($id);
  150.                            
  151.             if($request->isMethod('POST')){
  152.                 $query->setIsActive(0);
  153.                 $entityManager->persist($query);
  154.                 $entityManager->flush();
  155.                 $this->addFlash('success''Enable successfully.');
  156.                 if($request->request->get('redirect_page')){
  157.                     return $this->redirectToRoute('manage_sms_index_paginated', ['page'=> $request->request->get('redirect_page')], Response::HTTP_SEE_OTHER);
  158.                 }
  159.                 return $this->redirectToRoute('manage_sms_index', [], Response::HTTP_SEE_OTHER);       
  160.             }
  161.         
  162.         return  $this->renderForm('manage-plan/_disable_sms_form.html.twig', [
  163.             'smsPackages' => $smsPackages,
  164.             'redirect_page' => $request->query->get('redirect_page')
  165.         ]);
  166.     }
  167.     #[Route('/enable-sms/{id}'name'enable_sms'methods: ['POST','GET'])]
  168.     public function enableSms($idRequest $requestEntityManagerInterface $entityManager,SmsPackages $smsPackages): Response
  169.     {
  170.         $query $entityManager->getRepository(\App\Entity\SmsPackages::class)->find($id);
  171.                            
  172.             if($request->isMethod('POST')){
  173.                 $query->setIsActive(1);
  174.                 $entityManager->persist($query);
  175.                 $entityManager->flush();
  176.                 $this->addFlash('success''Disable successfully.');
  177.                 if($request->request->get('redirect_page')){
  178.                     return $this->redirectToRoute('manage_sms_index_paginated', ['page'=> $request->request->get('redirect_page')], Response::HTTP_SEE_OTHER);
  179.                 }
  180.                 return $this->redirectToRoute('manage_sms_index', [], Response::HTTP_SEE_OTHER);       
  181.             }
  182.         
  183.         return  $this->renderForm('manage-plan/_enable_sms_form.html.twig', [
  184.             'smsPackages' => $smsPackages,
  185.             'redirect_page' => $request->query->get('redirect_page')
  186.         ]);
  187.     }
  188.     /* #[Route('/edit/{id}', name: 'testimonial_edit', methods: ['GET', 'POST'])]
  189.     public function edit(Request $request, EntityManagerInterface $entityManager, Testimonials $testimonials){
  190.        
  191.         $form = $this->createForm(TestimonialForm::class, $testimonials);
  192.         $form->handleRequest($request);
  193.         
  194.         if ($form->isSubmitted() && $form->isValid()) {
  195.             $testimonials->setUpdatedAt(new \DateTime());
  196.             $entityManager->persist($testimonials);
  197.             $entityManager->flush();
  198.             $this->addFlash('success', 'Update successfully.');
  199.             return $this->redirectToRoute('manage_testimonial_index', [], Response::HTTP_SEE_OTHER);
  200.         }
  201.         return $this->renderForm('testimonial/edit-page.html.twig', [
  202.             'form' => $form,
  203.             'testimonials'=>$testimonials
  204.         ]);
  205.     }
  206.     #[Route('/delete-testimonial/{id}', name: 'delete_testimonial', methods: ['POST','GET'])]
  207.     public function delete(Request $request, EntityManagerInterface $entityManager,  Testimonials $testimonials): Response
  208.     {
  209.         if ($this->isCsrfTokenValid('delete'.$testimonials->getId(), $request->request->get('_token'))) {
  210.             if($request->isMethod('POST')){
  211.                 $entityManager->remove($testimonials);
  212.                 $entityManager->flush();
  213.                 $this->addFlash('error', 'Delete successfully.');
  214.                 if($request->request->get('redirect_page')){
  215.                     return $this->redirectToRoute('manage_testimonial_index_paginated', ['page'=> $request->request->get('redirect_page')], Response::HTTP_SEE_OTHER);
  216.                 }
  217.                 return $this->redirectToRoute('manage_testimonial_index', [], Response::HTTP_SEE_OTHER);       
  218.             }
  219.         }
  220.         return  $this->renderForm('testimonial/_delete_form.html.twig', [
  221.             'testimonials' => $testimonials,
  222.             'redirect_page' => $request->query->get('redirect_page')
  223.         ]);
  224.     } */
  225. }