src/WellCommerce/Bundle/FirmesBundle/EventListener/FirmesSubscriber.php line 46

Open in your IDE?
  1. <?php
  2. declare(strict_types=0);
  3. /*
  4.  * WellCommerce Foundation
  5.  *
  6.  * This file is part of the WellCommerce package.
  7.  *
  8.  * (c) Adam Piotrowski <adam@wellcommerce.org>, Adrian Potepa <adrian@wellcommerce.org>
  9.  *
  10.  * For the full copyright and license information,
  11.  * please view the LICENSE file that was distributed with this source code.
  12.  */
  13. namespace WellCommerce\Bundle\FirmesBundle\EventListener;
  14. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  15. use WellCommerce\Bundle\AppBundle\Entity\Shop;
  16. use WellCommerce\Bundle\OrderBundle\DataSet\Admin\OrderStatusDataSet;
  17. use WellCommerce\Bundle\OrderBundle\Entity\OrderStatus;
  18. use WellCommerce\Component\Form\Event\FormEvent;
  19. /**
  20.  * Class FirmesSubscriber
  21.  *
  22.  * @author  Adam Piotrowski <adam@wellcommerce.org>
  23.  */
  24. class FirmesSubscriber implements EventSubscriberInterface
  25. {
  26.     /**
  27.      * @var OrderStatusDataSet
  28.      */
  29.     protected $dataSet;
  30.     public function __construct(OrderStatusDataSet $dataSet)
  31.     {
  32.         $this->dataSet $dataSet;
  33.     }
  34.     public static function getSubscribedEvents()
  35.     {
  36.         return [
  37.             'admin.shop.pre_form_init' => ['onShopFormAdminInit'],
  38.         ];
  39.     }
  40.     public function onShopFormAdminInit(FormEvent $event)
  41.     {
  42.         $resource $event->getResource();
  43.         if ($resource instanceof Shop) {
  44.             $form    $event->getForm();
  45.             $builder $event->getFormBuilder();
  46.             $firmesData $form->addChild($builder->getElement('nested_fieldset', [
  47.                 'name'  => 'firmes_data',
  48.                 'label' => 'Ustawienia Firmes',
  49.             ]));
  50.             $orderStatuses $this->dataSet->getResult('select', [], ['default_option' => '---']);
  51.             $firmesData->addChild($builder->getElement('select', [
  52.                 'name'        => 'firmesStatus1',
  53.                 'label'       => 'Przyjęte',
  54.                 'options'     => $orderStatuses,
  55.                 'transformer' => $builder->getRepositoryTransformer('entity'OrderStatus::class),
  56.             ]));
  57.             $firmesData->addChild($builder->getElement('select', [
  58.                 'name'        => 'firmesStatus2',
  59.                 'label'       => 'Niezrealizowane bez rezerwacji',
  60.                 'options'     => $orderStatuses,
  61.                 'transformer' => $builder->getRepositoryTransformer('entity'OrderStatus::class),
  62.             ]));
  63.             $firmesData->addChild($builder->getElement('select', [
  64.                 'name'        => 'firmesStatus3',
  65.                 'label'       => 'Niezrealizowane z rezerwacją',
  66.                 'options'     => $orderStatuses,
  67.                 'transformer' => $builder->getRepositoryTransformer('entity'OrderStatus::class),
  68.             ]));
  69.             $firmesData->addChild($builder->getElement('select', [
  70.                 'name'        => 'firmesStatus4',
  71.                 'label'       => 'Zrealizowane',
  72.                 'options'     => $orderStatuses,
  73.                 'transformer' => $builder->getRepositoryTransformer('entity'OrderStatus::class),
  74.             ]));
  75.             $firmesData->addChild($builder->getElement('select', [
  76.                 'name'        => 'firmesStatus5',
  77.                 'label'       => 'Zakończone',
  78.                 'options'     => $orderStatuses,
  79.                 'transformer' => $builder->getRepositoryTransformer('entity'OrderStatus::class),
  80.             ]));
  81.             $firmesData->addChild($builder->getElement('select', [
  82.                 'name'        => 'firmesStatus6',
  83.                 'label'       => 'Usunięte',
  84.                 'options'     => $orderStatuses,
  85.                 'transformer' => $builder->getRepositoryTransformer('entity'OrderStatus::class),
  86.             ]));
  87.             $firmesData->addChild($builder->getElement('select', [
  88.                 'name'        => 'firmesStatus7',
  89.                 'label'       => 'Zwrot',
  90.                 'options'     => $orderStatuses,
  91.                 'transformer' => $builder->getRepositoryTransformer('entity'OrderStatus::class),
  92.             ]));
  93.             $firmesData->addChild($builder->getElement('select', [
  94.                 'name'        => 'firmesStatus8',
  95.                 'label'       => 'Reklamacja',
  96.                 'options'     => $orderStatuses,
  97.                 'transformer' => $builder->getRepositoryTransformer('entity'OrderStatus::class),
  98.             ]));
  99.         }
  100.     }
  101. }