src/Controller/ProviderController.php line 80

Open in your IDE?
  1. <?php
  2. namespace App\Controller;
  3. use App\Entity\Provider;
  4. use Doctrine\Persistence\ManagerRegistry;
  5. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  6. use Symfony\Component\HttpFoundation\Request;
  7. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  8. use Symfony\Component\Routing\Annotation\Route;
  9. /**
  10.  * @Route("/provider")
  11.  * Class ProviderController
  12.  * @package App\Controller
  13.  */
  14. class ProviderController extends AbstractController
  15. {
  16.     /**
  17.      * @Route("/list", name="provider_list")
  18.      * @param Request $request
  19.      * @return \Symfony\Component\HttpFoundation\Response
  20.      */
  21.     public function providerList(Request $requestManagerRegistry $managerRegistry) {
  22.         return $this->render('provider/list.html.twig', [
  23.             'providers' => $managerRegistry->getRepository(Provider::class)->findAll()
  24.         ]);
  25.     }
  26.     /**
  27.      * @Route("/edit/submit", name="provider_edit_submit")
  28.      */
  29.     public function providerEditSubmit(Request $requestManagerRegistry $managerRegistry) {
  30.         $id $request->get('id');
  31.         $name $request->get('name');
  32.         $categorySeparator $request->get('category_separator');
  33.         $globalChargeType $request->get('global_charge_type''rub');
  34.         $globalChargeValue $request->get('global_charge_value'0);
  35.         $cellsParameters $request->get('cells');
  36.         $stockStringReplacements $request->get('stock_string', []);
  37.         $stockStringReplacementsFiltered = [];
  38.         foreach ($stockStringReplacements as $item) {
  39.             if (!empty(trim($item['original'])) && !empty(trim($item['replacement']))) {
  40.                 $stockStringReplacementsFiltered[] = $item;
  41.             }
  42.         }
  43.         if ($id === 'new') {
  44.             $provider = new Provider();
  45.             $managerRegistry->getManager()->persist($provider);
  46.         } else {
  47.             $provider $managerRegistry->getRepository(Provider::class)->find($id);
  48.         }
  49.         $provider->setName(trim($name));
  50.         $provider->setGlobalChargeType($globalChargeType);
  51.         $provider->setGlobalChargeValue((int)$globalChargeValue);
  52.         $provider->setPricelistParameters($cellsParameters);
  53.         $provider->setStockStringReplacements($stockStringReplacementsFiltered);
  54.         if (!empty(trim($categorySeparator))) {
  55.             $provider->setCategorySeparator($categorySeparator);
  56.         } else {
  57.             $provider->setCategorySeparator(null);
  58.         }
  59.         $managerRegistry->getManager()->flush();
  60.         return $this->redirectToRoute('provider_edit', ['id' => $provider->getId()]);
  61.     }
  62.     /**
  63.      * @Route("/edit/{id}", name="provider_edit")
  64.      */
  65.     public function providerEdit(Request $requestManagerRegistry $managerRegistrystring $id) {
  66.         if ($id === 'new') {
  67.             $provider = new Provider();
  68.         } else {
  69.             $provider $managerRegistry->getRepository(Provider::class)->find($id);
  70.         }
  71.         if ($provider instanceof Provider) {
  72.             return $this->render('provider/edit.html.twig', [
  73.                 'provider' => $provider,
  74.                 'id' => $id
  75.             ]);
  76.         }
  77.         throw new NotFoundHttpException("Provider with ID $id not found");
  78.     }
  79. }