<?php
declare(strict_types=0);
/*
* WellCommerce Foundation
*
* This file is part of the WellCommerce package.
*
* (c) Adam Piotrowski <adam@wellcommerce.org>, Adrian Potepa <adrian@wellcommerce.org>
*
* For the full copyright and license information,
* please view the LICENSE file that was distributed with this source code.
*/
namespace WellCommerce\Bundle\FirmesBundle\EventListener;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use WellCommerce\Bundle\AppBundle\Entity\Shop;
use WellCommerce\Bundle\OrderBundle\DataSet\Admin\OrderStatusDataSet;
use WellCommerce\Bundle\OrderBundle\Entity\OrderStatus;
use WellCommerce\Component\Form\Event\FormEvent;
/**
* Class FirmesSubscriber
*
* @author Adam Piotrowski <adam@wellcommerce.org>
*/
class FirmesSubscriber implements EventSubscriberInterface
{
/**
* @var OrderStatusDataSet
*/
protected $dataSet;
public function __construct(OrderStatusDataSet $dataSet)
{
$this->dataSet = $dataSet;
}
public static function getSubscribedEvents()
{
return [
'admin.shop.pre_form_init' => ['onShopFormAdminInit'],
];
}
public function onShopFormAdminInit(FormEvent $event)
{
$resource = $event->getResource();
if ($resource instanceof Shop) {
$form = $event->getForm();
$builder = $event->getFormBuilder();
$firmesData = $form->addChild($builder->getElement('nested_fieldset', [
'name' => 'firmes_data',
'label' => 'Ustawienia Firmes',
]));
$orderStatuses = $this->dataSet->getResult('select', [], ['default_option' => '---']);
$firmesData->addChild($builder->getElement('select', [
'name' => 'firmesStatus1',
'label' => 'Przyjęte',
'options' => $orderStatuses,
'transformer' => $builder->getRepositoryTransformer('entity', OrderStatus::class),
]));
$firmesData->addChild($builder->getElement('select', [
'name' => 'firmesStatus2',
'label' => 'Niezrealizowane bez rezerwacji',
'options' => $orderStatuses,
'transformer' => $builder->getRepositoryTransformer('entity', OrderStatus::class),
]));
$firmesData->addChild($builder->getElement('select', [
'name' => 'firmesStatus3',
'label' => 'Niezrealizowane z rezerwacją',
'options' => $orderStatuses,
'transformer' => $builder->getRepositoryTransformer('entity', OrderStatus::class),
]));
$firmesData->addChild($builder->getElement('select', [
'name' => 'firmesStatus4',
'label' => 'Zrealizowane',
'options' => $orderStatuses,
'transformer' => $builder->getRepositoryTransformer('entity', OrderStatus::class),
]));
$firmesData->addChild($builder->getElement('select', [
'name' => 'firmesStatus5',
'label' => 'Zakończone',
'options' => $orderStatuses,
'transformer' => $builder->getRepositoryTransformer('entity', OrderStatus::class),
]));
$firmesData->addChild($builder->getElement('select', [
'name' => 'firmesStatus6',
'label' => 'Usunięte',
'options' => $orderStatuses,
'transformer' => $builder->getRepositoryTransformer('entity', OrderStatus::class),
]));
$firmesData->addChild($builder->getElement('select', [
'name' => 'firmesStatus7',
'label' => 'Zwrot',
'options' => $orderStatuses,
'transformer' => $builder->getRepositoryTransformer('entity', OrderStatus::class),
]));
$firmesData->addChild($builder->getElement('select', [
'name' => 'firmesStatus8',
'label' => 'Reklamacja',
'options' => $orderStatuses,
'transformer' => $builder->getRepositoryTransformer('entity', OrderStatus::class),
]));
}
}
}