This commit is contained in:
Thomas Peterson 2025-12-11 21:42:48 +01:00
parent beb6450338
commit 4db2d79207
83 changed files with 732 additions and 379 deletions

View File

@ -16,7 +16,7 @@ namespace PSC\Shop\AccountBundle\Controller\Backend;
use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Knp\Component\Pager\PaginatorInterface; use Knp\Component\Pager\PaginatorInterface;
use Lexik\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface; use Spiriit\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface;
use PSC\Shop\AccountBundle\Form\Backend\SearchType; use PSC\Shop\AccountBundle\Form\Backend\SearchType;
use PSC\Shop\EntityBundle\Entity\Motiv; use PSC\Shop\EntityBundle\Entity\Motiv;
use PSC\System\SettingsBundle\Service\Shop; use PSC\System\SettingsBundle\Service\Shop;

View File

@ -13,8 +13,8 @@
namespace PSC\Shop\AccountBundle\Form\Backend; namespace PSC\Shop\AccountBundle\Form\Backend;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType; use Spiriit\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType;
use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface; use Spiriit\Bundle\FormFilterBundle\Filter\Query\QueryInterface;
use PSC\System\SettingsBundle\Service\Shop; use PSC\System\SettingsBundle\Service\Shop;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;

View File

@ -15,7 +15,7 @@ namespace PSC\Shop\CmsBundle\Controller\Backend;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Knp\Component\Pager\PaginatorInterface; use Knp\Component\Pager\PaginatorInterface;
use Lexik\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface; use Spiriit\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface;
use PSC\Shop\CmsBundle\Form\Backend\SearchType; use PSC\Shop\CmsBundle\Form\Backend\SearchType;
use PSC\Shop\EntityBundle\Entity\Motiv; use PSC\Shop\EntityBundle\Entity\Motiv;
use PSC\Shop\ThemeBundle\Core\ThemeSource; use PSC\Shop\ThemeBundle\Core\ThemeSource;

View File

@ -15,7 +15,7 @@ namespace PSC\Shop\CmsBundle\Form\Backend;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;
use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface; use Spiriit\Bundle\FormFilterBundle\Filter\Query\QueryInterface;
use PSC\Libraries\AceEditorBundle\Form\Extension\AceEditorType; use PSC\Libraries\AceEditorBundle\Form\Extension\AceEditorType;
use PSC\Shop\EntityBundle\Entity\Account; use PSC\Shop\EntityBundle\Entity\Account;
use PSC\Shop\EntityBundle\Entity\Cms; use PSC\Shop\EntityBundle\Entity\Cms;

View File

@ -13,8 +13,8 @@
namespace PSC\Shop\CmsBundle\Form\Backend; namespace PSC\Shop\CmsBundle\Form\Backend;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType; use Spiriit\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType;
use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface; use Spiriit\Bundle\FormFilterBundle\Filter\Query\QueryInterface;
use PSC\System\SettingsBundle\Service\Shop; use PSC\System\SettingsBundle\Service\Shop;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;

View File

@ -15,7 +15,7 @@ namespace PSC\Shop\ContactBundle\Controller\Backend;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Knp\Component\Pager\PaginatorInterface; use Knp\Component\Pager\PaginatorInterface;
use Lexik\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface; use Spiriit\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface;
use PSC\Shop\ContactBundle\Form\Backend\SearchType; use PSC\Shop\ContactBundle\Form\Backend\SearchType;
use PSC\System\SettingsBundle\Service\Shop; use PSC\System\SettingsBundle\Service\Shop;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;

View File

@ -13,8 +13,8 @@
namespace PSC\Shop\ContactBundle\Form\Backend; namespace PSC\Shop\ContactBundle\Form\Backend;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType; use Spiriit\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType;
use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface; use Spiriit\Bundle\FormFilterBundle\Filter\Query\QueryInterface;
use PSC\System\SettingsBundle\Service\Shop; use PSC\System\SettingsBundle\Service\Shop;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;

View File

@ -164,6 +164,16 @@ class Product
return $this->pluginSettings[$name]; return $this->pluginSettings[$name];
} }
public $pluginsAvailable = [];
public function __isset(string $name): bool
{
if (array_search($name, $this->pluginsAvailable) !== false) {
return true;
}
return false;
}
public function __set(string $name, mixed $value): void public function __set(string $name, mixed $value): void
{ {
$this->pluginSettings[$name] = $value; $this->pluginSettings[$name] = $value;

View File

@ -16,7 +16,7 @@ namespace PSC\Shop\OrderBundle\Controller\Backend;
use Doctrine\ORM\EntityManager; use Doctrine\ORM\EntityManager;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Knp\Component\Pager\PaginatorInterface; use Knp\Component\Pager\PaginatorInterface;
use Lexik\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface; use Spiriit\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface;
use PSC\Shop\EntityBundle\Document\Order; use PSC\Shop\EntityBundle\Document\Order;
use PSC\Shop\EntityBundle\Entity\Motiv; use PSC\Shop\EntityBundle\Entity\Motiv;
use PSC\Shop\EntityBundle\Entity\Shop; use PSC\Shop\EntityBundle\Entity\Shop;

View File

@ -13,8 +13,8 @@
namespace PSC\Shop\OrderBundle\Form\Backend; namespace PSC\Shop\OrderBundle\Form\Backend;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType; use Spiriit\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType;
use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface; use Spiriit\Bundle\FormFilterBundle\Filter\Query\QueryInterface;
use PSC\System\SettingsBundle\Service\Status; use PSC\System\SettingsBundle\Service\Status;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType;

View File

@ -25,7 +25,6 @@ use PSC\System\SettingsBundle\Service\History;
use PSC\System\SettingsBundle\Service\Log; use PSC\System\SettingsBundle\Service\Log;
use PSC\System\SettingsBundle\Service\Status; use PSC\System\SettingsBundle\Service\Status;
use Ramsey\Uuid\Uuid; use Ramsey\Uuid\Uuid;
use Symfony\Component\Security\Http\Attribute\IsGranted;
use Symfony\Bridge\Twig\Attribute\Template; use Symfony\Bridge\Twig\Attribute\Template;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\File\UploadedFile;
@ -34,6 +33,7 @@ use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\SessionInterface; use Symfony\Component\HttpFoundation\Session\SessionInterface;
use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Core\SecurityContext; use Symfony\Component\Security\Core\SecurityContext;
use Symfony\Component\Security\Http\Attribute\IsGranted;
/** /**
* DashboardController fürs Backend * DashboardController fürs Backend
@ -186,23 +186,8 @@ class EditController extends AbstractController
return new JsonResponse(['success' => true, 'found' => false]); return new JsonResponse(['success' => true, 'found' => false]);
} }
/**
* edit
*
* @template()
*
* @param Request $request Request
* @param Field $fieldService
* @param EntityManagerInterface $entityManager
* @param \PSC\System\SettingsBundle\Service\Shop $shopService
* @param DocumentManager $documentManager
* @param SessionInterface $session
* @param $type
* @return array|\Symfony\Component\HttpFoundation\RedirectResponse
* @throws \Doctrine\ODM\MongoDB\MongoDBException
* @throws \Doctrine\ORM\ORMException
*/
#[Route(path: '/edit/create/{type}', name: 'backend_production_product_create')] #[Route(path: '/edit/create/{type}', name: 'backend_production_product_create')]
#[Template('@PSCShopProduct/backend/product/edit/create.html.twig')]
public function createAction( public function createAction(
Request $request, Request $request,
Field $fieldService, Field $fieldService,
@ -231,6 +216,10 @@ class EditController extends AbstractController
->getRepository('PSC\Shop\EntityBundle\Entity\Productgroup') ->getRepository('PSC\Shop\EntityBundle\Entity\Productgroup')
->findBy(['parent' => 0, 'shop' => $selectedShop]); ->findBy(['parent' => 0, 'shop' => $selectedShop]);
$customProductFormFields = $fieldService->getFields(
\PSC\System\PluginBundle\Form\Interfaces\Field::Product,
$type,
);
$customProductFields = $fieldService->getProductFields( $customProductFields = $fieldService->getProductFields(
\PSC\System\PluginBundle\Form\Interfaces\Field::Product, \PSC\System\PluginBundle\Form\Interfaces\Field::Product,
$type, $type,
@ -246,6 +235,12 @@ class EditController extends AbstractController
$domains = $entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Domain')->getAllByShopId($selectedShop); $domains = $entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Domain')->getAllByShopId($selectedShop);
$product = new Product(); $product = new Product();
foreach ($customProductFields as $field) {
$product->pluginsAvailable[] = $field->getGroup();
}
foreach ($customProductFormFields as $field) {
$product->pluginsAvailable[] = $field->getGroup();
}
$product->setShop($selectedShop); $product->setShop($selectedShop);
$product->setInstall($selectedShop->getInstall()->getUid()); $product->setInstall($selectedShop->getInstall()->getUid());
$product->setType($type); $product->setType($type);
@ -335,27 +330,8 @@ class EditController extends AbstractController
]; ];
} }
/**
* edit
*
* @template()
*
* @param Request $request Request
* @param Field $fieldService
* @param EntityManagerInterface $entityManager
* @param DocumentManager $documentManager
* @param PaginatorInterface $paginator
* @param SessionInterface $session
* @param \PSC\System\SettingsBundle\Service\Shop $shopService
* @param Status $statusService
* @param \PSC\Shop\OrderBundle\Service\Order $orderService
* @param string $uuid Uuid
*
* @return array
* @throws \Doctrine\ODM\MongoDB\MongoDBException
* @throws \Doctrine\ORM\ORMException
*/
#[Route(path: '/edit/index/{uuid}', name: 'backend_production_product_edit')] #[Route(path: '/edit/index/{uuid}', name: 'backend_production_product_edit')]
#[Template('@PSCShopProduct/backend/product/edit/edit.html.twig')]
public function editAction( public function editAction(
Request $request, Request $request,
Field $fieldService, Field $fieldService,
@ -405,6 +381,10 @@ class EditController extends AbstractController
->getRepository('PSC\Shop\EntityBundle\Entity\Productgroup') ->getRepository('PSC\Shop\EntityBundle\Entity\Productgroup')
->findBy(['parent' => 0, 'shop' => $selectedShop]); ->findBy(['parent' => 0, 'shop' => $selectedShop]);
$customProductFormFields = $fieldService->getFields(
\PSC\System\PluginBundle\Form\Interfaces\Field::Product,
$product->getType(),
);
$customProductFields = $fieldService->getProductFields( $customProductFields = $fieldService->getProductFields(
\PSC\System\PluginBundle\Form\Interfaces\Field::Product, \PSC\System\PluginBundle\Form\Interfaces\Field::Product,
$product->getType(), $product->getType(),
@ -420,6 +400,12 @@ class EditController extends AbstractController
); );
$product->setUpdatedAt(new \DateTime()); $product->setUpdatedAt(new \DateTime());
foreach ($customProductFields as $field) {
$product->pluginsAvailable[] = $field->getGroup();
}
foreach ($customProductFormFields as $field) {
$product->pluginsAvailable[] = $field->getGroup();
}
if (!$request->isMethod('POST') && $productDoc) { if (!$request->isMethod('POST') && $productDoc) {
$product->setAnsprechPartner($productDoc->getAnsprechPartner()); $product->setAnsprechPartner($productDoc->getAnsprechPartner());

View File

@ -15,7 +15,7 @@ namespace PSC\Shop\ProductBundle\Controller\Backend\Product;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Knp\Component\Pager\PaginatorInterface; use Knp\Component\Pager\PaginatorInterface;
use Lexik\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface; use Spiriit\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface;
use PSC\Shop\EntityBundle\Entity\Motiv; use PSC\Shop\EntityBundle\Entity\Motiv;
use PSC\Shop\EntityBundle\Entity\Product; use PSC\Shop\EntityBundle\Entity\Product;
use PSC\Shop\NewsBundle\Form\Backend\DeleteType; use PSC\Shop\NewsBundle\Form\Backend\DeleteType;

View File

@ -25,13 +25,13 @@ use PSC\Shop\ProductBundle\PSCShopProductBundle;
use PSC\System\SettingsBundle\Document\LogEntry; use PSC\System\SettingsBundle\Document\LogEntry;
use PSC\System\SettingsBundle\Service\Log; use PSC\System\SettingsBundle\Service\Log;
use PSC\System\SettingsBundle\Service\Shop; use PSC\System\SettingsBundle\Service\Shop;
use Symfony\Bridge\Twig\Attribute\Template;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bridge\Twig\Attribute\Template;
use Symfony\Component\Security\Http\Attribute\IsGranted;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Security\Http\Attribute\IsGranted;
/** /**
* StockController fürs Backend * StockController fürs Backend
@ -45,43 +45,44 @@ class PermissionController extends AbstractController
* @var Log * @var Log
*/ */
private Log $logService; private Log $logService;
public function __construct(Log $logService) public function __construct(Log $logService)
{ {
$this->logService = $logService; $this->logService = $logService;
} }
/**
* add
*
* @template()
*
* @param Request $request Request
* @param Shop $shopService
* @param EntityManagerInterface $entityManager
* @param PaginatorInterface $paginator
* @param string $product Uuid
*
* @return array|View
* @throws \Doctrine\ORM\ORMException
*/
#[Route(path: '/permission/index/{product}', name: 'backend_production_product_permission_index')]
public function indexAction(Request $request, Shop $shopService, EntityManagerInterface $entityManager, PaginatorInterface $paginator, string $product)
{
#[Route(path: '/permission/index/{uuid}', name: 'backend_production_product_permission_index')]
#[Template('@PSCShopProduct/backend/product/permission/index.html.twig')]
public function indexAction(
Request $request,
Shop $shopService,
EntityManagerInterface $entityManager,
PaginatorInterface $paginator,
string $uuid,
) {
$selectedShop = $shopService->getSelectedShop(); $selectedShop = $shopService->getSelectedShop();
/** @var Product $product */ /** @var Product $product */
$product = $entityManager $product = $entityManager
->getRepository('PSC\Shop\EntityBundle\Entity\Product')->findOneBy(array('uuid' => $product, 'shop' => $selectedShop)); ->getRepository('PSC\Shop\EntityBundle\Entity\Product')
->findOneBy(['uuid' => $uuid, 'shop' => $selectedShop]);
$form = $this->createForm(PermissionType::class, $product); $form = $this->createForm(PermissionType::class, $product);
$form->handleRequest($request); $form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) { if ($form->isSubmitted() && $form->isValid()) {
$entityManager->persist($product); $entityManager->persist($product);
$entityManager->flush(); $entityManager->flush();
$this->logService->createLogEntry($selectedShop, $this->getUser(), LogEntry::INFO, PSCShopProductBundle::class, $product->getTitle(), "Product Permission set"); $this->logService->createLogEntry(
} $selectedShop,
$this->getUser(),
return array( LogEntry::INFO,
'form' => $form->createView(), PSCShopProductBundle::class,
'product' => $product, $product->getTitle(),
'Product Permission set',
); );
} }
return [
'form' => $form->createView(),
'product' => $product,
];
}
} }

View File

@ -15,7 +15,7 @@ namespace PSC\Shop\ProductBundle\Controller\Backend\Productgroup;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Knp\Component\Pager\PaginatorInterface; use Knp\Component\Pager\PaginatorInterface;
use Lexik\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface; use Spiriit\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface;
use PSC\Shop\EntityBundle\Entity\Motiv; use PSC\Shop\EntityBundle\Entity\Motiv;
use PSC\Shop\ProductBundle\Form\Backend\Productgroup\SearchType; use PSC\Shop\ProductBundle\Form\Backend\Productgroup\SearchType;
use PSC\Shop\ProductBundle\Form\Backend\ProductSearchType; use PSC\Shop\ProductBundle\Form\Backend\ProductSearchType;

View File

@ -406,6 +406,24 @@ class ProductType extends AbstractType
$field->formPreSubmit($event); $field->formPreSubmit($event);
} }
}); });
$builder->addEventListener(FormEvents::SUBMIT, function (FormEvent $event) use ($options) {
/**
* @var \PSC\System\PluginBundle\Form\Interfaces\Field $field
*/
foreach ($this->fields->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Product) as $field) {
$field->formSubmit($event);
}
/**
* @var \PSC\System\PluginBundle\Form\Interfaces\Field $field
*/
foreach ($this->fields->getProductFields(
\PSC\System\PluginBundle\Form\Interfaces\Field::Product,
$options['productType'],
) as $field) {
$field->formSubmit($event);
}
});
} }
public function getName() public function getName()

View File

@ -14,9 +14,9 @@
namespace PSC\Shop\ProductBundle\Form\Backend; namespace PSC\Shop\ProductBundle\Form\Backend;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\EntityFilterType; use Spiriit\Bundle\FormFilterBundle\Filter\Form\Type\EntityFilterType;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType; use Spiriit\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType;
use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface; use Spiriit\Bundle\FormFilterBundle\Filter\Query\QueryInterface;
use PSC\Shop\EntityBundle\Entity\Productgroup; use PSC\Shop\EntityBundle\Entity\Productgroup;
use PSC\System\SettingsBundle\Service\Shop; use PSC\System\SettingsBundle\Service\Shop;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;

View File

@ -3,8 +3,8 @@
namespace PSC\Shop\ProductBundle\Form\Backend\Productgroup; namespace PSC\Shop\ProductBundle\Form\Backend\Productgroup;
use Doctrine\ORM\EntityRepository; use Doctrine\ORM\EntityRepository;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType; use Spiriit\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType;
use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface; use Spiriit\Bundle\FormFilterBundle\Filter\Query\QueryInterface;
use PSC\Shop\EntityBundle\Entity\Productgroup; use PSC\Shop\EntityBundle\Entity\Productgroup;
use PSC\System\SettingsBundle\Service\Shop; use PSC\System\SettingsBundle\Service\Shop;
use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Bridge\Doctrine\Form\Type\EntityType;

View File

@ -11,7 +11,7 @@ a[href^="#formlayouter"] {display:none;}
<i class="fa-fw fa fa-tags"></i> <i class="fa-fw fa fa-tags"></i>
{{ 'Product'|trans }} <span>> {{ 'Product'|trans }} <span>>
{{ 'edit'|trans }} </span> {{ 'edit'|trans }} </span>
<a target="_blank" href="//{{ domain }}/article/show/uuid/{{ product.uuid }}">{{ 'show'|trans }}</a> <a target="_blank" href="//{{ domain }}/article/show/uuid/{{ product.getUUID() }}">{{ 'show'|trans }}</a>
</h3> </h3>
</div> </div>
<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6 text-end"> <div class="col-xs-12 col-sm-6 col-md-6 col-lg-6 text-end">
@ -22,9 +22,9 @@ a[href^="#formlayouter"] {display:none;}
<div class="body"> <div class="body">
<div class="panel"> <div class="panel">
<div class="body"> <div class="body">
<a href="{{ path("backend_production_product_permission_index", {product: product.uuid}) }}" class="btn btn-default btn-sm"><i class="fa fa-lg fa-fw fa-key"></i> {{ 'opening'|trans }}</a> <a href="{{ path("backend_production_product_permission_index", {uuid: product.getUUID()}) }}" class="btn btn-default btn-sm"><i class="fa fa-lg fa-fw fa-key"></i> {{ 'opening'|trans }}</a>
<a href="{{ path("backend_production_product_stock_index", {product: product.uuid}) }}" class="btn btn-default btn-sm"><i class="fa fa-lg fa-fw fa-building"></i> {{ 'Warehousemanagement'|trans }}</a> <a href="{{ path("backend_production_product_stock_index", {product: product.getUUID()}) }}" class="btn btn-default btn-sm"><i class="fa fa-lg fa-fw fa-building"></i> {{ 'Warehousemanagement'|trans }}</a>
<a href="{{ path("backend_production_product_product_set", {product: product.uuid}) }}" class="btn btn-default btn-sm"><i class="fa fa-lg fa-fw fa-boxes"></i> {{ 'Product-Set'|trans }}</a> <a href="{{ path("backend_production_product_product_set", {product: product.getUUID()}) }}" class="btn btn-default btn-sm"><i class="fa fa-lg fa-fw fa-boxes"></i> {{ 'Product-Set'|trans }}</a>
{% for customButton in customProductButtons %} {% for customButton in customProductButtons %}
{{ customButton.setProduct(product).render()|raw }} {{ customButton.setProduct(product).render()|raw }}
{% endfor %} {% endfor %}
@ -653,7 +653,7 @@ a[href^="#formlayouter"] {display:none;}
</div> </div>
</div> </div>
<div class="col-12"> <div class="col-12">
<a href="{{ path('backend_production_product_upload_index', {uuid: product.uuid }) }}" class="m-2 btn btn-sm btn-success">Uploads bearbeiten</a> <a href="{{ path('backend_production_product_upload_index', {uuid: product.getUUID() }) }}" class="m-2 btn btn-sm btn-success">Uploads bearbeiten</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -35,11 +35,20 @@ interface Field
const GroupGeneral = 'general'; const GroupGeneral = 'general';
public function formPreSubmit(FormEvent $event); public function formPreSubmit(FormEvent $event);
public function formPostSubmit(FormEvent $event); public function formPostSubmit(FormEvent $event);
public function formPostSetData(FormEvent $event); public function formPostSetData(FormEvent $event);
public function formPreSetData(FormEvent $event); public function formPreSetData(FormEvent $event);
public function formSubmit(FormEvent $event);
public function getModule(); public function getModule();
public function getGroup(); public function getGroup();
public function getTemplate(); public function getTemplate();
public function buildForm(FormBuilderInterface $builder, array $options); public function buildForm(FormBuilderInterface $builder, array $options);
} }

View File

@ -13,7 +13,7 @@ use Doctrine\Bundle\MongoDBBundle\ManagerRegistry;
use Doctrine\ODM\MongoDB\DocumentManager; use Doctrine\ODM\MongoDB\DocumentManager;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Knp\Component\Pager\PaginatorInterface; use Knp\Component\Pager\PaginatorInterface;
use Lexik\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface; use Spiriit\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface;
use PhpParser\Comment\Doc; use PhpParser\Comment\Doc;
use PSC\Shop\EntityBundle\Entity\Paper; use PSC\Shop\EntityBundle\Entity\Paper;
use PSC\Shop\EntityBundle\Entity\Shop; use PSC\Shop\EntityBundle\Entity\Shop;

View File

@ -13,7 +13,7 @@ use Doctrine\Bundle\MongoDBBundle\ManagerRegistry;
use Doctrine\ODM\MongoDB\DocumentManager; use Doctrine\ODM\MongoDB\DocumentManager;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Knp\Component\Pager\PaginatorInterface; use Knp\Component\Pager\PaginatorInterface;
use Lexik\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface; use Spiriit\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface;
use PhpParser\Comment\Doc; use PhpParser\Comment\Doc;
use PSC\Shop\EntityBundle\Entity\Paper; use PSC\Shop\EntityBundle\Entity\Paper;
use PSC\Shop\EntityBundle\Entity\Shop; use PSC\Shop\EntityBundle\Entity\Shop;

View File

@ -13,8 +13,8 @@
namespace PSC\System\SettingsBundle\Form\Backend; namespace PSC\System\SettingsBundle\Form\Backend;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType; use Spiriit\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType;
use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface; use Spiriit\Bundle\FormFilterBundle\Filter\Query\QueryInterface;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\RequestStack;

View File

@ -59,4 +59,8 @@ class CalcnumberText implements Field
{ {
// TODO: Implement formPreSetData() method. // TODO: Implement formPreSetData() method.
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -86,4 +86,8 @@ class ShopSettings implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -16,11 +16,13 @@ use Symfony\Component\Form\FormEvent;
#[AutoconfigureTag('psc.backend.custom.fields')] #[AutoconfigureTag('psc.backend.custom.fields')]
class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field
{ {
protected $tab = "uploads"; protected $tab = 'uploads';
public function __construct(private Status $statusService, private Shop $shopService, private EntityManagerInterface $entityManager) public function __construct(
{ private Status $statusService,
} private Shop $shopService,
private EntityManagerInterface $entityManager,
) {}
public function getTemplate() public function getTemplate()
{ {
@ -37,16 +39,18 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field
*/ */
public function formPreSubmit(FormEvent $event) public function formPreSubmit(FormEvent $event)
{ {
} }
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$results = $this->entityManager
$results = $this->entityManager->getRepository(Account::class)->createQueryBuilder('a') ->getRepository(Account::class)
->createQueryBuilder('a')
->join('a.shops', 's') ->join('a.shops', 's')
->where('s.uid = :shop')->setParameter('shop', $this->shopService->getSelectedShop()->getId())->getQuery()->execute(); ->where('s.uid = :shop')
->setParameter('shop', $this->shopService->getSelectedShop()->getId())
->getQuery()
->execute();
$accounts = []; $accounts = [];
/** @var Account $result */ /** @var Account $result */
@ -56,45 +60,42 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field
$builder $builder
->add('uploadCollectLayouter', CheckboxType::class, ['required' => false, 'label' => 'Aktivieren']) ->add('uploadCollectLayouter', CheckboxType::class, ['required' => false, 'label' => 'Aktivieren'])
->add("uploadCollectLayouterOrdersInitalStatus", ChoiceType::class, array( ->add('uploadCollectLayouterOrdersInitalStatus', ChoiceType::class, [
'label' => 'Initalstatus', 'label' => 'Initalstatus',
'choices' => $this->statusService->getPositionStatusAsArray(), 'choices' => $this->statusService->getPositionStatusAsArray(),
'translation_domain' => 'posstatus' 'translation_domain' => 'posstatus',
)) ])
->add('uploadCollectLayouterDownload', CheckboxType::class, ['required' => false, 'label' => 'Download']) ->add('uploadCollectLayouterDownload', CheckboxType::class, ['required' => false, 'label' => 'Download'])
->add('uploadCollectLayouterSek', CheckboxType::class, ['required' => false, 'label' => 'Aktivieren']) ->add('uploadCollectLayouterSek', CheckboxType::class, ['required' => false, 'label' => 'Aktivieren'])
->add("uploadCollectLayouterOrdersInitalStatusSek", ChoiceType::class, array( ->add('uploadCollectLayouterOrdersInitalStatusSek', ChoiceType::class, [
'label' => 'Initalstatus', 'label' => 'Initalstatus',
'choices' => $this->statusService->getPositionStatusAsArray(), 'choices' => $this->statusService->getPositionStatusAsArray(),
'translation_domain' => 'posstatus' 'translation_domain' => 'posstatus',
)) ])
->add('uploadCollectLayouterAccountFilter', ChoiceType::class, array( ->add('uploadCollectLayouterAccountFilter', ChoiceType::class, [
'choices' => array( 'choices' => [
'Alle nicht gesperrten' => 1, 'Alle nicht gesperrten' => 1,
'Gleich der angemeldeten Firma' => 2, 'Gleich der angemeldeten Firma' => 2,
'Filter nach gewählter Firma' => 3, 'Filter nach gewählter Firma' => 3,
'Filter nach gewählter Firma + alle Personen aller Firmen die dieser Firma zugordnet sind' => 4, 'Filter nach gewählter Firma + alle Personen aller Firmen die dieser Firma zugordnet sind' => 4,
'Gleich der angemeldeten Firma + alle Personen aller Firmen die meiner Firma zugordnet sind' => 5, 'Gleich der angemeldeten Firma + alle Personen aller Firmen die meiner Firma zugordnet sind' => 5,
), ],
'label' => 'Firmenfilter' 'label' => 'Firmenfilter',
)) ])
->add('uploadCollectLayouterOrdersAccount', ChoiceType::class, [
->add('uploadCollectLayouterOrdersAccount', ChoiceType::class, array(
'multiple' => false, 'multiple' => false,
'expanded' => false, 'expanded' => false,
'required' => false, 'required' => false,
'label' => 'Gewählte Firma', 'label' => 'Gewählte Firma',
'choices' => $accounts 'choices' => $accounts,
)); ]);
return $builder; return $builder;
} }
public function getGroup() public function getGroup()
{ {
return "collectlayouter"; return 'collectlayouter';
} }
public function formPostSetData(FormEvent $event) public function formPostSetData(FormEvent $event)
@ -110,4 +111,8 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field
{ {
// TODO: Implement formPreSetData() method. // TODO: Implement formPreSetData() method.
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -7,7 +7,7 @@ use Doctrine\ORM\Mapping\Entity;
use Gaufrette\FilesystemMapInterface; use Gaufrette\FilesystemMapInterface;
use Knp\Bundle\GaufretteBundle\FilesystemMap; use Knp\Bundle\GaufretteBundle\FilesystemMap;
use Knp\Component\Pager\PaginatorInterface; use Knp\Component\Pager\PaginatorInterface;
use Lexik\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface; use Spiriit\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface;
use PSC\Shop\EntityBundle\Entity\Motiv; use PSC\Shop\EntityBundle\Entity\Motiv;
use PSC\Shop\MotivBundle\Form\Backend\MotivType; use PSC\Shop\MotivBundle\Form\Backend\MotivType;
use PSC\Shop\MotivBundle\Form\Backend\SearchType; use PSC\Shop\MotivBundle\Form\Backend\SearchType;

View File

@ -2,8 +2,8 @@
namespace Plugin\Custom\PSC\CreativeLayouter\Form\Backend; namespace Plugin\Custom\PSC\CreativeLayouter\Form\Backend;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType; use Spiriit\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType;
use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface; use Spiriit\Bundle\FormFilterBundle\Filter\Query\QueryInterface;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;

View File

@ -91,4 +91,8 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -98,5 +98,9 @@ class FacebookProductExporter implements Field
{ {
// TODO: Implement formPreSetData() method. // TODO: Implement formPreSetData() method.
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -118,4 +118,8 @@ class ShopSettings implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -74,4 +74,8 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Fiel
{ {
// TODO: Implement formPreSetData() method. // TODO: Implement formPreSetData() method.
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -134,4 +134,8 @@ class EnableEditor implements Field
{ {
// TODO: Implement formPreSetData() method. // TODO: Implement formPreSetData() method.
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -86,5 +86,9 @@ class ProductSettings implements Field
{ {
// TODO: Implement formPreSetData() method. // TODO: Implement formPreSetData() method.
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -105,4 +105,8 @@ class ShopSettings implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -60,5 +60,9 @@ class EnableCheckbox implements Field
{ {
// TODO: Implement formPreSetData() method. // TODO: Implement formPreSetData() method.
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -100,4 +100,8 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field
{ {
// TODO: Implement formPreSetData() method. // TODO: Implement formPreSetData() method.
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -72,4 +72,8 @@ class ShopSettings implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -1,31 +1,36 @@
<?php <?php
namespace Plugin\Custom\PSC\Printess\Controller\Frontend; namespace Plugin\Custom\PSC\Printess\Controller\Frontend;
use Doctrine\ODM\MongoDB\DocumentManager; use Doctrine\ODM\MongoDB\DocumentManager;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Plugin\Custom\PSC\Printess\Transformer\ContactArray; use Plugin\Custom\PSC\Printess\Transformer\ContactArray;
use PSC\Shop\ContactBundle\Model\Contact; use PSC\Shop\ContactBundle\Model\Contact;
use PSC\Shop\EntityBundle\Entity\Layoutdesigndata;
use PSC\System\SettingsBundle\Service\Shop; use PSC\System\SettingsBundle\Service\Shop;
use Symfony\Bridge\Twig\Attribute\Template; use Symfony\Bridge\Twig\Attribute\Template;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use PSC\Shop\EntityBundle\Entity\Layoutdesigndata;
use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\Session; use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\Routing\Annotation\Route; use Symfony\Component\Routing\Annotation\Route;
#[Route('/designer')] #[Route('/designer')]
class DesignerController extends AbstractController class DesignerController extends AbstractController
{ {
#[Template()] #[Template('@PluginCustomPSCPrintess/frontend/designer/start.html.twig')]
#[Route('/start/{productId}', name: 'plugin_custom_psc_printess_start')] #[Route('/start/{productId}', name: 'plugin_custom_psc_printess_start')]
public function startAction(Shop $shopService, EntityManagerInterface $entityManager, DocumentManager $documentManager, \PSC\Shop\ContactBundle\Transformer\Model\Contact $contactTransformer, ContactArray $contactArray, string $productId) public function startAction(
{ Shop $shopService,
EntityManagerInterface $entityManager,
DocumentManager $documentManager,
\PSC\Shop\ContactBundle\Transformer\Model\Contact $contactTransformer,
ContactArray $contactArray,
string $productId,
) {
$data = []; $data = [];
if ($this->getUser() !== null) { if ($this->getUser() !== null) {
$contact = new Contact(); $contact = new Contact();
$contactTransformer->fromDb($contact, $this->getUser()); $contactTransformer->fromDb($contact, $this->getUser());
@ -35,45 +40,49 @@ class DesignerController extends AbstractController
/** @var \Plugin\Custom\PSC\Pitchprint\Controller\Frontend\Product $product */ /** @var \Plugin\Custom\PSC\Pitchprint\Controller\Frontend\Product $product */
$product = $entityManager $product = $entityManager
->getRepository('PSC\Shop\EntityBundle\Entity\Product') ->getRepository('PSC\Shop\EntityBundle\Entity\Product')
->findOneBy(array('uuid' => $productId)); ->findOneBy(['uuid' => $productId]);
/** @var \PSC\Shop\EntityBundle\Document\Product $productDoc */ /** @var \PSC\Shop\EntityBundle\Document\Product $productDoc */
$productDoc = $documentManager $productDoc = $documentManager
->getRepository('PSC\Shop\EntityBundle\Document\Product') ->getRepository('PSC\Shop\EntityBundle\Document\Product')
->findOneBy(array('uid' => (string)$product->getUid())); ->findOneBy(['uid' => (string) $product->getUid()]);
return [ return [
'shopDoc' => $shopService->getMongoShopByDomain(), 'shopDoc' => $shopService->getMongoShopByDomain(),
'product' => $product, 'product' => $product,
'productDoc' => $productDoc, 'productDoc' => $productDoc,
'data' => $data 'data' => $data,
]; ];
} }
#[Template()] #[Template('@PluginCustomPSCPrintess/frontend/designer/load.html.twig')]
#[Route('/load/{productId}/{layouterId}', name: 'plugin_custom_psc_printess_load')] #[Route('/load/{productId}/{layouterId}', name: 'plugin_custom_psc_printess_load')]
public function loadAction(Shop $shopService,EntityManagerInterface $entityManager, DocumentManager $documentManager, \PSC\Shop\ContactBundle\Transformer\Model\Contact $contactTransformer, ContactArray $contactArray, string $productId, string $layouterId) public function loadAction(
{ Shop $shopService,
EntityManagerInterface $entityManager,
DocumentManager $documentManager,
\PSC\Shop\ContactBundle\Transformer\Model\Contact $contactTransformer,
ContactArray $contactArray,
string $productId,
string $layouterId,
) {
/** @var \Plugin\Custom\PSC\Pitchprint\Controller\Frontend\Product $product */ /** @var \Plugin\Custom\PSC\Pitchprint\Controller\Frontend\Product $product */
$product = $entityManager $product = $entityManager
->getRepository('PSC\Shop\EntityBundle\Entity\Product') ->getRepository('PSC\Shop\EntityBundle\Entity\Product')
->findOneBy(array('uuid' => $productId)); ->findOneBy(['uuid' => $productId]);
/** @var \PSC\Shop\EntityBundle\Document\Product $productDoc */ /** @var \PSC\Shop\EntityBundle\Document\Product $productDoc */
$productDoc = $documentManager $productDoc = $documentManager
->getRepository('PSC\Shop\EntityBundle\Document\Product') ->getRepository('PSC\Shop\EntityBundle\Document\Product')
->findOneBy(array('uid' => (string)$product->getUid())); ->findOneBy(['uid' => (string) $product->getUid()]);
$layoutDesignData = $entityManager $layoutDesignData = $entityManager
->getRepository('PSC\Shop\EntityBundle\Entity\Layoutdesigndata')->findOneBy(array('uuid' => $layouterId)); ->getRepository('PSC\Shop\EntityBundle\Entity\Layoutdesigndata')
->findOneBy(['uuid' => $layouterId]);
$data = []; $data = [];
if ($this->getUser() !== null) { if ($this->getUser() !== null) {
$contact = new Contact(); $contact = new Contact();
$contactTransformer->fromDb($contact, $this->getUser()); $contactTransformer->fromDb($contact, $this->getUser());
@ -86,19 +95,17 @@ class DesignerController extends AbstractController
'productDoc' => $productDoc, 'productDoc' => $productDoc,
'layouterId' => $layouterId, 'layouterId' => $layouterId,
'projectId' => $layoutDesignData->getDesign()['projectId'], 'projectId' => $layoutDesignData->getDesign()['projectId'],
'data' => $data 'data' => $data,
]; ];
} }
#[Route('/save', name: 'plugin_custom_psc_printess_save')] #[Route('/save', name: 'plugin_custom_psc_printess_save')]
public function saveAction(Request $request, EntityManagerInterface $entityManager) public function saveAction(Request $request, EntityManagerInterface $entityManager)
{ {
$uuid = $request->get('layouter');
$uuid = $request->get("layouter"); $articleUuid = $request->get('article');
$articleUuid = $request->get("article"); $projectId = $request->get('projectId');
$projectId = $request->get("projectId"); $previews = $request->get('previews');
$previews = $request->get("previews");
$layoutDesignData = new Layoutdesigndata(); $layoutDesignData = new Layoutdesigndata();
$layoutDesignData->setUuid($uuid); $layoutDesignData->setUuid($uuid);
@ -109,7 +116,7 @@ class DesignerController extends AbstractController
$entityManager->flush(); $entityManager->flush();
$json = new JsonResponse(); $json = new JsonResponse();
$json->setContent(json_encode(array('success' => true))); $json->setContent(json_encode(['success' => true]));
return $json; return $json;
} }
@ -117,13 +124,13 @@ class DesignerController extends AbstractController
#[Route('/update', name: 'plugin_custom_psc_printess_update')] #[Route('/update', name: 'plugin_custom_psc_printess_update')]
public function updateAction(Request $request, EntityManagerInterface $entityManager) public function updateAction(Request $request, EntityManagerInterface $entityManager)
{ {
$uuid = $request->get('layouter');
$uuid = $request->get("layouter"); $projectId = $request->get('projectId');
$projectId = $request->get("projectId"); $previews = $request->get('previews');
$previews = $request->get("previews");
$layoutDesignData = $entityManager $layoutDesignData = $entityManager
->getRepository('PSC\Shop\EntityBundle\Entity\Layoutdesigndata')->findOneBy(array('uuid' => $uuid)); ->getRepository('PSC\Shop\EntityBundle\Entity\Layoutdesigndata')
->findOneBy(['uuid' => $uuid]);
$layoutDesignData->setDesign(['projectId' => $projectId, 'previews' => $previews]); $layoutDesignData->setDesign(['projectId' => $projectId, 'previews' => $previews]);
@ -131,8 +138,9 @@ class DesignerController extends AbstractController
$entityManager->flush(); $entityManager->flush();
$json = new JsonResponse(); $json = new JsonResponse();
$json->setContent(json_encode(array('success' => true))); $json->setContent(json_encode(['success' => true]));
return $json; return $json;
} }
} }

View File

@ -23,7 +23,7 @@ use Symfony\Component\HttpFoundation\File\UploadedFile;
class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field
{ {
protected $tab = "uploads"; protected $tab = 'uploads';
private $statusService; private $statusService;
/** /**
@ -57,16 +57,18 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field
*/ */
public function formPreSubmit(FormEvent $event) public function formPreSubmit(FormEvent $event)
{ {
} }
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$results = $this->entityManager
$results = $this->entityManager->getRepository(Account::class)->createQueryBuilder('a') ->getRepository(Account::class)
->createQueryBuilder('a')
->join('a.shops', 's') ->join('a.shops', 's')
->where('s.uid = :shop')->setParameter('shop', $this->shopService->getSelectedShop()->getId())->getQuery()->execute(); ->where('s.uid = :shop')
->setParameter('shop', $this->shopService->getSelectedShop()->getId())
->getQuery()
->execute();
$accounts = []; $accounts = [];
/** @var Account $result */ /** @var Account $result */
@ -77,34 +79,47 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field
/** @var Product $product */ /** @var Product $product */
$product = $options['product']; $product = $options['product'];
$builder->add('uploadCollectingOrders', CheckboxType::class, ['required' => false, 'label' => 'Aktivieren']) $builder
->add('collectingOrdersChangePicture', CheckboxType::class, ['required' => false, 'label' => 'Bild tauschen aktivieren']) ->add('uploadCollectingOrders', CheckboxType::class, ['required' => false, 'label' => 'Aktivieren'])
->add('collectingOrdersChangePicture', CheckboxType::class, [
'required' => false,
'label' => 'Bild tauschen aktivieren',
])
->add('collectingOrdersCopy', CheckboxType::class, ['required' => false, 'label' => 'Mitarbeiter kopieren']) ->add('collectingOrdersCopy', CheckboxType::class, ['required' => false, 'label' => 'Mitarbeiter kopieren'])
->add('collectingOrdersNewContact', CheckboxType::class, ['required' => false, 'label' => 'Neuen Mitarbeiter anlegen']) ->add('collectingOrdersNewContact', CheckboxType::class, [
->add('collectingOrdersInviteContact', CheckboxType::class, ['required' => false, 'label' => 'Mitarbeiter einladen']) 'required' => false,
->add('collectingOrdersIntegrated', CheckboxType::class, ['required' => false, 'label' => 'nicht als Popup']) 'label' => 'Neuen Mitarbeiter anlegen',
->add('collectingOrdersAccountFilter', ChoiceType::class, array( ])
'choices' => array( ->add('collectingOrdersInviteContact', CheckboxType::class, [
'required' => false,
'label' => 'Mitarbeiter einladen',
])
->add('collectingOrdersIntegrated', CheckboxType::class, [
'required' => false,
'label' => 'nicht als Popup',
])
->add('collectingOrdersAccountFilter', ChoiceType::class, [
'choices' => [
'Alle nicht gesperrten' => 1, 'Alle nicht gesperrten' => 1,
'Gleich der angemeldeten Firma' => 2, 'Gleich der angemeldeten Firma' => 2,
'Filter nach gewählter Firma' => 3, 'Filter nach gewählter Firma' => 3,
'Filter nach gewählter Firma + alle Personen aller Firmen die meiner Firma zugordnet sind' => 4, 'Filter nach gewählter Firma + alle Personen aller Firmen die meiner Firma zugordnet sind' => 4,
'Gleich der angemeldeten Firma + alle Personen aller Firmen die meiner Firma zugordnet sind' => 5, 'Gleich der angemeldeten Firma + alle Personen aller Firmen die meiner Firma zugordnet sind' => 5,
), ],
'label' => 'Firmenfilter' 'label' => 'Firmenfilter',
)) ])
->add("uploadCollectingOrdersInitalStatus", ChoiceType::class, array( ->add('uploadCollectingOrdersInitalStatus', ChoiceType::class, [
'label' => 'Initalstatus', 'label' => 'Initalstatus',
'choices' => $this->statusService->getPositionStatusAsArray(), 'choices' => $this->statusService->getPositionStatusAsArray(),
'translation_domain' => 'posstatus' 'translation_domain' => 'posstatus',
)) ])
->add('collectingOrdersAccount', ChoiceType::class, array( ->add('collectingOrdersAccount', ChoiceType::class, [
'multiple' => false, 'multiple' => false,
'expanded' => false, 'expanded' => false,
'required' => false, 'required' => false,
'label' => 'Gewählte Firma', 'label' => 'Gewählte Firma',
'choices' => $accounts 'choices' => $accounts,
)); ]);
if ($product) { if ($product) {
$builder->get('uploadCollectingOrders')->setData($product->isUploadCollectingOrders()); $builder->get('uploadCollectingOrders')->setData($product->isUploadCollectingOrders());
@ -113,7 +128,9 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field
$builder->get('collectingOrdersNewContact')->setData($product->isCollectingOrdersNewContact()); $builder->get('collectingOrdersNewContact')->setData($product->isCollectingOrdersNewContact());
$builder->get('collectingOrdersInviteContact')->setData($product->isCollectingOrdersInviteContact()); $builder->get('collectingOrdersInviteContact')->setData($product->isCollectingOrdersInviteContact());
$builder->get('collectingOrdersAccountFilter')->setData($product->getCollectingOrdersAccountFilter()); $builder->get('collectingOrdersAccountFilter')->setData($product->getCollectingOrdersAccountFilter());
$builder->get('uploadCollectingOrdersInitalStatus')->setData($product->getUploadCollectingOrdersInitalStatus()); $builder
->get('uploadCollectingOrdersInitalStatus')
->setData($product->getUploadCollectingOrdersInitalStatus());
$builder->get('collectingOrdersAccount')->setData($product->getCollectingOrdersAccount()); $builder->get('collectingOrdersAccount')->setData($product->getCollectingOrdersAccount());
} }
@ -122,7 +139,7 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field
public function getGroup() public function getGroup()
{ {
return "Printess"; return 'Printess';
} }
public function formPostSetData(FormEvent $event) public function formPostSetData(FormEvent $event)
@ -134,18 +151,39 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field
{ {
/** @var Product $product */ /** @var Product $product */
$product = $event->getData(); $product = $event->getData();
$product->setUploadCollectingOrders($event->getForm()->get('PrintessBulkorder')->get('uploadCollectingOrders')->getData()); $product->setUploadCollectingOrders(
$product->setCollectingOrdersChangePicture($event->getForm()->get('PrintessBulkorder')->get('collectingOrdersChangePicture')->getData()); $event->getForm()->get('PrintessBulkorder')->get('uploadCollectingOrders')->getData(),
$product->setCollectingOrdersCopy($event->getForm()->get('PrintessBulkorder')->get('collectingOrdersCopy')->getData()); );
$product->setCollectingOrdersNewContact($event->getForm()->get('PrintessBulkorder')->get('collectingOrdersNewContact')->getData()); $product->setCollectingOrdersChangePicture(
$product->setCollectingOrdersInviteContact($event->getForm()->get('PrintessBulkorder')->get('collectingOrdersInviteContact')->getData()); $event->getForm()->get('PrintessBulkorder')->get('collectingOrdersChangePicture')->getData(),
$product->setCollectingOrdersAccountFilter($event->getForm()->get('PrintessBulkorder')->get('collectingOrdersAccountFilter')->getData()); );
$product->setUploadCollectingOrdersInitalStatus($event->getForm()->get('PrintessBulkorder')->get('uploadCollectingOrdersInitalStatus')->getData()); $product->setCollectingOrdersCopy(
$product->setCollectingOrdersAccount($event->getForm()->get('PrintessBulkorder')->get('collectingOrdersAccount')->getData()); $event->getForm()->get('PrintessBulkorder')->get('collectingOrdersCopy')->getData(),
);
$product->setCollectingOrdersNewContact(
$event->getForm()->get('PrintessBulkorder')->get('collectingOrdersNewContact')->getData(),
);
$product->setCollectingOrdersInviteContact(
$event->getForm()->get('PrintessBulkorder')->get('collectingOrdersInviteContact')->getData(),
);
$product->setCollectingOrdersAccountFilter(
$event->getForm()->get('PrintessBulkorder')->get('collectingOrdersAccountFilter')->getData(),
);
$product->setUploadCollectingOrdersInitalStatus(
$event->getForm()->get('PrintessBulkorder')->get('uploadCollectingOrdersInitalStatus')->getData(),
);
$product->setCollectingOrdersAccount(
$event->getForm()->get('PrintessBulkorder')->get('collectingOrdersAccount')->getData(),
);
} }
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
// TODO: Implement formPreSetData() method. // TODO: Implement formPreSetData() method.
} }
public function formSubmit(FormEvent $event)
{
} }
}

View File

@ -16,11 +16,11 @@ use Symfony\Component\Form\FormEvent;
#[AutoconfigureTag('psc.backend.custom.fields')] #[AutoconfigureTag('psc.backend.custom.fields')]
class ProductSettings extends \PSC\System\PluginBundle\Form\Field implements Field class ProductSettings extends \PSC\System\PluginBundle\Form\Field implements Field
{ {
protected $tab = "uploads"; protected $tab = 'uploads';
public function __construct(private readonly Status $statusService) public function __construct(
{ private readonly Status $statusService,
} ) {}
public function getTemplate() public function getTemplate()
{ {
@ -36,11 +36,11 @@ class ProductSettings extends \PSC\System\PluginBundle\Form\Field implements Fie
{ {
$builder $builder
->add('uploadPrintess', CheckboxType::class, ['required' => false, 'label' => 'Aktivieren']) ->add('uploadPrintess', CheckboxType::class, ['required' => false, 'label' => 'Aktivieren'])
->add("uploadPrintessInitalStatus", ChoiceType::class, array( ->add('uploadPrintessInitalStatus', ChoiceType::class, [
'label' => 'Initalstatus', 'label' => 'Initalstatus',
'choices' => $this->statusService->getPositionStatusAsArray(), 'choices' => $this->statusService->getPositionStatusAsArray(),
'translation_domain' => 'posstatus' 'translation_domain' => 'posstatus',
)) ])
->add('uploadPrintessTemplate', TextType::class, ['required' => false, 'label' => 'Template Name']) ->add('uploadPrintessTemplate', TextType::class, ['required' => false, 'label' => 'Template Name'])
->add('uploadPrintessDownload', CheckboxType::class, ['required' => false, 'label' => 'Download']); ->add('uploadPrintessDownload', CheckboxType::class, ['required' => false, 'label' => 'Download']);
@ -63,11 +63,13 @@ class ProductSettings extends \PSC\System\PluginBundle\Form\Field implements Fie
public function formPostSubmit(FormEvent $event) public function formPostSubmit(FormEvent $event)
{ {
} }
public function formPostSetData(FormEvent $event) public function formPostSetData(FormEvent $event)
{ {
}
public function formSubmit(FormEvent $event)
{
} }
} }

View File

@ -14,7 +14,6 @@ use Symfony\Component\Form\FormEvent;
#[AutoconfigureTag('psc.backend.custom.fields')] #[AutoconfigureTag('psc.backend.custom.fields')]
class ShopSettings implements Field class ShopSettings implements Field
{ {
public function getTemplate() public function getTemplate()
{ {
return '@PluginCustomPSCPrintess/form/shop_settings.html.twig'; return '@PluginCustomPSCPrintess/form/shop_settings.html.twig';
@ -32,30 +31,46 @@ class ShopSettings implements Field
{ {
/** @var Shop $data */ /** @var Shop $data */
$data = $event->getData(); $data = $event->getData();
$data->setPluginSettingModule('printess', 'shopToken', $event->getForm()->get('printess')->get('shopToken')->getData()); $data->setPluginSettingModule(
$data->setPluginSettingModule('printess', 'serviceToken', $event->getForm()->get('printess')->get('serviceToken')->getData()); 'printess',
'shopToken',
$event->getForm()->get('printess')->get('shopToken')->getData(),
);
$data->setPluginSettingModule(
'printess',
'serviceToken',
$event->getForm()->get('printess')->get('serviceToken')->getData(),
);
} }
public function formPostSetData(FormEvent $event) public function formPostSetData(FormEvent $event)
{ {
/** @var Shop $data */ /** @var Shop $data */
$data = $event->getData(); $data = $event->getData();
$event->getForm()->get('printess')->get('shopToken')->setData($data->getPluginSettingModule('printess', 'shopToken')); $event
$event->getForm()->get('printess')->get('serviceToken')->setData($data->getPluginSettingModule('printess', 'serviceToken')); ->getForm()
->get('printess')
->get('shopToken')
->setData($data->getPluginSettingModule('printess', 'shopToken'));
$event
->getForm()
->get('printess')
->get('serviceToken')
->setData($data->getPluginSettingModule('printess', 'serviceToken'));
} }
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$builder->add('shopToken', TextType::class, array( $builder->add('shopToken', TextType::class, [
'label' => 'Shop Token', 'label' => 'Shop Token',
'required' => false, 'required' => false,
'mapped'=> false 'mapped' => false,
)); ]);
$builder->add('serviceToken', TextType::class, array( $builder->add('serviceToken', TextType::class, [
'label' => 'Service Token', 'label' => 'Service Token',
'required' => false, 'required' => false,
'mapped'=> false 'mapped' => false,
)); ]);
return $builder; return $builder;
} }
@ -69,6 +84,10 @@ class ShopSettings implements Field
{ {
} }
public function formSubmit(FormEvent $event)
{
}
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }

View File

@ -69,4 +69,8 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field
{ {
// TODO: Implement formPreSetData() method. // TODO: Implement formPreSetData() method.
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -72,4 +72,8 @@ class ShopSettings implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -4,7 +4,7 @@ namespace Plugin\Custom\PSC\R2_Sendcloud\Controller\Backend;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Knp\Component\Pager\PaginatorInterface; use Knp\Component\Pager\PaginatorInterface;
use Lexik\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface; use Spiriit\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface;
use Plugin\Custom\PSC\R2_Sendcloud\Form\ParcelsForm; use Plugin\Custom\PSC\R2_Sendcloud\Form\ParcelsForm;
use Plugin\Custom\PSC\R2_Sendcloud\Form\SearchForm; use Plugin\Custom\PSC\R2_Sendcloud\Form\SearchForm;
use Plugin\Custom\PSC\R2_Sendcloud\Model\Parcel; use Plugin\Custom\PSC\R2_Sendcloud\Model\Parcel;

View File

@ -5,7 +5,7 @@ namespace Plugin\Custom\PSC\R2_Sendcloud\Controller\Backend;
use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\EntityManagerInterface;
use Exception; use Exception;
use Knp\Component\Pager\PaginatorInterface; use Knp\Component\Pager\PaginatorInterface;
use Lexik\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface; use Spiriit\Bundle\FormFilterBundle\Filter\FilterBuilderUpdaterInterface;
use Picqer\Carriers\SendCloud\DocumentDownloader; use Picqer\Carriers\SendCloud\DocumentDownloader;
use Picqer\Carriers\SendCloud\SendCloudApiException; use Picqer\Carriers\SendCloud\SendCloudApiException;
use Plugin\Custom\PSC\R2_Sendcloud\Form\ParcelsForm; use Plugin\Custom\PSC\R2_Sendcloud\Form\ParcelsForm;

View File

@ -2,8 +2,8 @@
namespace Plugin\Custom\PSC\R2_Sendcloud\Form; namespace Plugin\Custom\PSC\R2_Sendcloud\Form;
use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType; use Spiriit\Bundle\FormFilterBundle\Filter\Form\Type\TextFilterType;
use Lexik\Bundle\FormFilterBundle\Filter\Query\QueryInterface; use Spiriit\Bundle\FormFilterBundle\Filter\Query\QueryInterface;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\HttpFoundation\RequestStack; use Symfony\Component\HttpFoundation\RequestStack;

View File

@ -14,9 +14,9 @@ use Symfony\Component\Form\FormEvent;
#[AutoconfigureTag('psc.backend.custom.fields')] #[AutoconfigureTag('psc.backend.custom.fields')]
class ShopSettings implements Field class ShopSettings implements Field
{ {
public function __construct(private Status $statusService) public function __construct(
{ private Status $statusService,
} ) {}
public function getTemplate(): string public function getTemplate(): string
{ {
@ -35,9 +35,21 @@ class ShopSettings implements Field
{ {
/** @var Shop $data */ /** @var Shop $data */
$data = $event->getData(); $data = $event->getData();
$data->setPluginSettingModule('r2sendcloud', 'publicKey', $event->getForm()->get('r2sendcloud')->get('publicKey')->getData()); $data->setPluginSettingModule(
$data->setPluginSettingModule('r2sendcloud', 'secretKey', $event->getForm()->get('r2sendcloud')->get('secretKey')->getData()); 'r2sendcloud',
$data->setPluginSettingModule('r2sendcloud', 'status', $event->getForm()->get('r2sendcloud')->get('status')->getData()); 'publicKey',
$event->getForm()->get('r2sendcloud')->get('publicKey')->getData(),
);
$data->setPluginSettingModule(
'r2sendcloud',
'secretKey',
$event->getForm()->get('r2sendcloud')->get('secretKey')->getData(),
);
$data->setPluginSettingModule(
'r2sendcloud',
'status',
$event->getForm()->get('r2sendcloud')->get('status')->getData(),
);
$event->setData($data); $event->setData($data);
} }
@ -45,32 +57,43 @@ class ShopSettings implements Field
{ {
/** @var Shop $data */ /** @var Shop $data */
$data = $event->getData(); $data = $event->getData();
$event->getForm()->get('r2sendcloud')->get('publicKey')->setData($data->getPluginSettingModule('r2sendcloud', 'publicKey')); $event
$event->getForm()->get('r2sendcloud')->get('secretKey')->setData($data->getPluginSettingModule('r2sendcloud', 'secretKey')); ->getForm()
$event->getForm()->get('r2sendcloud')->get('status')->setData($data->getPluginSettingModule('r2sendcloud', 'status')); ->get('r2sendcloud')
->get('publicKey')
->setData($data->getPluginSettingModule('r2sendcloud', 'publicKey'));
$event
->getForm()
->get('r2sendcloud')
->get('secretKey')
->setData($data->getPluginSettingModule('r2sendcloud', 'secretKey'));
$event
->getForm()
->get('r2sendcloud')
->get('status')
->setData($data->getPluginSettingModule('r2sendcloud', 'status'));
} }
public function buildForm(FormBuilderInterface $builder, array $options): FormBuilderInterface public function buildForm(FormBuilderInterface $builder, array $options): FormBuilderInterface
{ {
$builder->add('publicKey', TextType::class, [
$builder->add('publicKey', TextType::class, array(
'label' => 'Public Key', 'label' => 'Public Key',
'required' => false, 'required' => false,
'mapped' => false 'mapped' => false,
)); ]);
$builder->add('secretKey', TextType::class, array( $builder->add('secretKey', TextType::class, [
'label' => 'Secret Key', 'label' => 'Secret Key',
'required' => false, 'required' => false,
'mapped' => false 'mapped' => false,
)); ]);
$builder->add('status', ChoiceType::class, array( $builder->add('status', ChoiceType::class, [
'label' => 'Status wenn versand', 'label' => 'Status wenn versand',
'required' => false, 'required' => false,
'choices' => $this->statusService->getOrderStatusAsArray(), 'choices' => $this->statusService->getOrderStatusAsArray(),
'mapped' => false 'mapped' => false,
)); ]);
return $builder; return $builder;
} }
@ -89,4 +112,8 @@ class ShopSettings implements Field
{ {
// TODO: Implement formPreSetData() method. // TODO: Implement formPreSetData() method.
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -2,25 +2,25 @@
namespace Plugin\Custom\PSC\Saxoprint_API_R1\Controller; namespace Plugin\Custom\PSC\Saxoprint_API_R1\Controller;
use PSC\Shop\OrderBundle\Model\Base;
use PSC\Shop\OrderBundle\Model\Order\Position;
use Plugin\Custom\PSC\Saxoprint_API_R1\Api\GetState; use Plugin\Custom\PSC\Saxoprint_API_R1\Api\GetState;
use PSC\Shop\EntityBundle\Document\Order; use PSC\Shop\EntityBundle\Document\Order;
use PSC\Shop\OrderBundle\Model\Base;
use PSC\Shop\OrderBundle\Model\Order\Position;
use PSC\System\SettingsBundle\Service\Shop; use PSC\System\SettingsBundle\Service\Shop;
use Symfony\Bridge\Twig\Attribute\Template; use Symfony\Bridge\Twig\Attribute\Template;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class OrderController extends AbstractController class OrderController extends AbstractController
{ {
#[Template()] #[Template('@PluginCustomPSCSaxoprint_API_R1/order/index.html.twig')]
public function indexAction( public function indexAction(
?\PSC\Shop\EntityBundle\Entity\Order $order, null|\PSC\Shop\EntityBundle\Entity\Order $order,
Order $orderDoc, null|Order $orderDoc,
\PSC\Shop\OrderBundle\Service\Order $orderService, null|\PSC\Shop\OrderBundle\Service\Order $orderService,
GetState $getStateService, GetState $getStateService,
Shop $shopService Shop $shopService,
) { ) {
if($order && $order->getUuid() != "") { if ($order && $order->getUuid() != '') {
$orderModel = $orderService->getOrderByUuid($order->getUuid()); $orderModel = $orderService->getOrderByUuid($order->getUuid());
$positions = []; $positions = [];
@ -29,7 +29,7 @@ class OrderController extends AbstractController
if ($position->getProduct()->getSpecialProductTypeObject()->getTyp() != 100) { if ($position->getProduct()->getSpecialProductTypeObject()->getTyp() != 100) {
continue; continue;
} }
if ($position->getExternalOrderNumber() != "") { if ($position->getExternalOrderNumber() != '') {
$getStateService->setShop($shopService->getMongoShopByUid($orderModel->getShop()->getId())); $getStateService->setShop($shopService->getMongoShopByUid($orderModel->getShop()->getId()));
$getStateService->setOrderNumber($position->getExternalOrderNumber()); $getStateService->setOrderNumber($position->getExternalOrderNumber());
$result = $getStateService->call(); $result = $getStateService->call();
@ -37,14 +37,14 @@ class OrderController extends AbstractController
'externalNumber' => $position->getExternalOrderNumber(), 'externalNumber' => $position->getExternalOrderNumber(),
'pos' => $position->getPos(), 'pos' => $position->getPos(),
'type' => $position->getProduct()->getSpecialProductTypeObject()->getTyp(), 'type' => $position->getProduct()->getSpecialProductTypeObject()->getTyp(),
'status' => $result['State'] 'status' => $result['State'],
]; ];
} else { } else {
$positions[] = [ $positions[] = [
'externalNumber' => '', 'externalNumber' => '',
'pos' => $position->getPos(), 'pos' => $position->getPos(),
'type' => $position->getProduct()->getSpecialProductTypeObject()->getTyp(), 'type' => $position->getProduct()->getSpecialProductTypeObject()->getTyp(),
'status' => 'nicht übermittelt' 'status' => 'nicht übermittelt',
]; ];
} }
} }
@ -55,10 +55,9 @@ class OrderController extends AbstractController
return ['list' => false]; return ['list' => false];
} }
#[Template()] #[Template('@PluginCustomPSCSaxoprint_API_R1/order/detail.html.twig')]
public function detailAction(Base $order, Position $position): array public function detailAction(null|Base $order, null|Position $position): array
{ {
return ['position' => $position]; return ['position' => $position];
} }
} }

View File

@ -12,8 +12,8 @@ use PSC\System\SettingsBundle\Service\Shop;
use PSC\System\SettingsBundle\Service\Tax; use PSC\System\SettingsBundle\Service\Tax;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType; use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\FileType; use Symfony\Component\Form\Extension\Core\Type\FileType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Form; use Symfony\Component\Form\Form;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvent;
@ -21,10 +21,8 @@ use Symfony\Component\HttpFoundation\File\UploadedFile;
class SaxoprintProduct implements Field class SaxoprintProduct implements Field
{ {
public function __construct() {}
public function __construct()
{
}
public function getTemplate() public function getTemplate()
{ {
return '@PluginCustomPSCSaxoprint_API_R1/form/field/saxoprint_product.html.twig'; return '@PluginCustomPSCSaxoprint_API_R1/form/field/saxoprint_product.html.twig';
@ -64,5 +62,8 @@ class SaxoprintProduct implements Field
{ {
// TODO: Implement formPreSetData() method. // TODO: Implement formPreSetData() method.
} }
}
public function formSubmit(FormEvent $event)
{
}
}

View File

@ -2,8 +2,8 @@
namespace Plugin\Custom\PSC\Saxoprint_API_R1\Form\Field; namespace Plugin\Custom\PSC\Saxoprint_API_R1\Form\Field;
use Plugin\System\PSC\HPLayouter\Form\Group\HPLayouter;
use Plugin\Custom\PSC\Saxoprint_API_R1\Form\Group\Saxosettings; use Plugin\Custom\PSC\Saxoprint_API_R1\Form\Group\Saxosettings;
use Plugin\System\PSC\HPLayouter\Form\Group\HPLayouter;
use PSC\Shop\EntityBundle\Document\Shop; use PSC\Shop\EntityBundle\Document\Shop;
use PSC\Shop\EntityBundle\Entity\Cms; use PSC\Shop\EntityBundle\Entity\Cms;
use PSC\System\PluginBundle\Form\Interfaces\Field; use PSC\System\PluginBundle\Form\Interfaces\Field;
@ -18,7 +18,6 @@ use Symfony\Component\HttpFoundation\File\UploadedFile;
class ShopSettings implements Field class ShopSettings implements Field
{ {
public function getTemplate() public function getTemplate()
{ {
return '@PluginCustomPSCSaxoprint_API_R1/form/field/shop_settings.html.twig'; return '@PluginCustomPSCSaxoprint_API_R1/form/field/shop_settings.html.twig';
@ -36,11 +35,31 @@ class ShopSettings implements Field
{ {
/** @var Shop $data */ /** @var Shop $data */
$data = $event->getData(); $data = $event->getData();
$data->setPluginSettingModule('saxoprint', 'customerNumber', $event->getForm()->get('saxoprint')->get('customerNumber')->getData()); $data->setPluginSettingModule(
$data->setPluginSettingModule('saxoprint', 'sriAPIKey', $event->getForm()->get('saxoprint')->get('sriAPIKey')->getData()); 'saxoprint',
$data->setPluginSettingModule('saxoprint', 'saxoprintaufschlag', $event->getForm()->get('saxoprint')->get('saxoprintaufschlag')->getData()); 'customerNumber',
$data->setPluginSettingModule('saxoprint', 'saxoprintaufschlagFix', $event->getForm()->get('saxoprint')->get('saxoprintaufschlagFix')->getData()); $event->getForm()->get('saxoprint')->get('customerNumber')->getData(),
$data->setPluginSettingModule('saxoprint', 'useTestSystem', $event->getForm()->get('saxoprint')->get('useTestSystem')->getData()); );
$data->setPluginSettingModule(
'saxoprint',
'sriAPIKey',
$event->getForm()->get('saxoprint')->get('sriAPIKey')->getData(),
);
$data->setPluginSettingModule(
'saxoprint',
'saxoprintaufschlag',
$event->getForm()->get('saxoprint')->get('saxoprintaufschlag')->getData(),
);
$data->setPluginSettingModule(
'saxoprint',
'saxoprintaufschlagFix',
$event->getForm()->get('saxoprint')->get('saxoprintaufschlagFix')->getData(),
);
$data->setPluginSettingModule(
'saxoprint',
'useTestSystem',
$event->getForm()->get('saxoprint')->get('useTestSystem')->getData(),
);
$event->setData($data); $event->setData($data);
} }
@ -48,39 +67,59 @@ class ShopSettings implements Field
{ {
/** @var Shop $data */ /** @var Shop $data */
$data = $event->getData(); $data = $event->getData();
$event->getForm()->get('saxoprint')->get('customerNumber')->setData($data->getPluginSettingModule('saxoprint', 'customerNumber')); $event
$event->getForm()->get('saxoprint')->get('sriAPIKey')->setData($data->getPluginSettingModule('saxoprint', 'sriAPIKey')); ->getForm()
$event->getForm()->get('saxoprint')->get('saxoprintaufschlag')->setData($data->getPluginSettingModule('saxoprint', 'saxoprintaufschlag')); ->get('saxoprint')
$event->getForm()->get('saxoprint')->get('saxoprintaufschlagFix')->setData($data->getPluginSettingModule('saxoprint', 'saxoprintaufschlagFix')); ->get('customerNumber')
$event->getForm()->get('saxoprint')->get('useTestSystem')->setData($data->getPluginSettingModule('saxoprint', 'useTestSystem')); ->setData($data->getPluginSettingModule('saxoprint', 'customerNumber'));
$event
->getForm()
->get('saxoprint')
->get('sriAPIKey')
->setData($data->getPluginSettingModule('saxoprint', 'sriAPIKey'));
$event
->getForm()
->get('saxoprint')
->get('saxoprintaufschlag')
->setData($data->getPluginSettingModule('saxoprint', 'saxoprintaufschlag'));
$event
->getForm()
->get('saxoprint')
->get('saxoprintaufschlagFix')
->setData($data->getPluginSettingModule('saxoprint', 'saxoprintaufschlagFix'));
$event
->getForm()
->get('saxoprint')
->get('useTestSystem')
->setData($data->getPluginSettingModule('saxoprint', 'useTestSystem'));
} }
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$builder->add('customerNumber', TextType::class, array( $builder->add('customerNumber', TextType::class, [
'label' => 'Customer Number', 'label' => 'Customer Number',
'required' => false, 'required' => false,
'mapped'=> false 'mapped' => false,
)); ]);
$builder->add('sriAPIKey', TextType::class, array( $builder->add('sriAPIKey', TextType::class, [
'label' => 'SRI API Key', 'label' => 'SRI API Key',
'required' => false, 'required' => false,
'mapped' => false 'mapped' => false,
)); ]);
$builder->add('saxoprintaufschlagFix', TextType::class, array( $builder->add('saxoprintaufschlagFix', TextType::class, [
'label' => 'Aufschlag Fix:', 'label' => 'Aufschlag Fix:',
'required' => false 'required' => false,
)); ]);
$builder->add('saxoprintaufschlag', TextType::class, array( $builder->add('saxoprintaufschlag', TextType::class, [
'label' => 'Aufschlag %', 'label' => 'Aufschlag %',
'required' => false, 'required' => false,
'mapped' => false 'mapped' => false,
)); ]);
$builder->add('useTestSystem', CheckboxType::class, array( $builder->add('useTestSystem', CheckboxType::class, [
'label' => 'Saxoprint Testsystem benutzen', 'label' => 'Saxoprint Testsystem benutzen',
'required' => false, 'required' => false,
'mapped' => false 'mapped' => false,
)); ]);
return $builder; return $builder;
} }
@ -98,4 +137,8 @@ class ShopSettings implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -2,7 +2,7 @@
<ul> <ul>
{% for elm in position.additionalInfos[0]['infos'] %} {% for elm in position.additionalInfos[0]['infos'] %}
{% if elm.text != "" %} {% if elm.text != "" %}
<li>{{elm.label}}: {{elm.text}}</li> <li>{{elm.name}}: {{elm.text}}</li>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</ul> </ul>

View File

@ -118,4 +118,8 @@ class ShopSettings implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -187,5 +187,8 @@ class BackendFields extends \PSC\System\PluginBundle\Form\Field implements Field
{ {
// TODO: Implement formPreSetData() method. // TODO: Implement formPreSetData() method.
} }
}
public function formSubmit(FormEvent $event)
{
}
}

View File

@ -2,22 +2,23 @@
namespace Plugin\Custom\PSC\WMD_API\Controller; namespace Plugin\Custom\PSC\WMD_API\Controller;
use Plugin\Custom\PSC\WMD_API\Api\GetState;
use PSC\Shop\EntityBundle\Document\Order; use PSC\Shop\EntityBundle\Document\Order;
use PSC\System\SettingsBundle\Service\Shop; use PSC\System\SettingsBundle\Service\Shop;
use Plugin\Custom\PSC\WMD_API\Api\GetState;
use Symfony\Bridge\Twig\Attribute\Template; use Symfony\Bridge\Twig\Attribute\Template;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class OrderController extends AbstractController class OrderController extends AbstractController
{ {
#[Template()] #[Template('@PluginCustomPSCWMD_API/order/index.html.twig')]
public function indexAction(?\PSC\Shop\EntityBundle\Entity\Order $order, public function indexAction(
Order $orderDoc, null|\PSC\Shop\EntityBundle\Entity\Order $order,
\PSC\Shop\OrderBundle\Service\Order $orderService, null|Order $orderDoc,
null|\PSC\Shop\OrderBundle\Service\Order $orderService,
GetState $getStateService, GetState $getStateService,
Shop $shopService Shop $shopService,
) { ) {
if($order && $order->getUuid() != "") { if ($order && $order->getUuid() != '') {
$orderModel = $orderService->getOrderByUuid($order->getUuid()); $orderModel = $orderService->getOrderByUuid($order->getUuid());
$positions = []; $positions = [];
@ -26,7 +27,7 @@ class OrderController extends AbstractController
if ($position->getProduct()->getSpecialProductTypeObject()->getTyp() != 101) { if ($position->getProduct()->getSpecialProductTypeObject()->getTyp() != 101) {
continue; continue;
} }
if ($position->getExternalOrderNumber() != "") { if ($position->getExternalOrderNumber() != '') {
$getStateService->setShop($shopService->getMongoShopByUid($orderModel->getShop()->getId())); $getStateService->setShop($shopService->getMongoShopByUid($orderModel->getShop()->getId()));
$getStateService->setOrderNumber($position->getExternalOrderNumber()); $getStateService->setOrderNumber($position->getExternalOrderNumber());
$result = $getStateService->call(); $result = $getStateService->call();
@ -34,14 +35,14 @@ class OrderController extends AbstractController
'externalNumber' => $position->getExternalOrderNumber(), 'externalNumber' => $position->getExternalOrderNumber(),
'pos' => $position->getPos(), 'pos' => $position->getPos(),
'type' => $position->getProduct()->getSpecialProductTypeObject()->getTyp(), 'type' => $position->getProduct()->getSpecialProductTypeObject()->getTyp(),
'status' => $result['items'][0]['state']['key'] 'status' => $result['items'][0]['state']['key'],
]; ];
} else { } else {
$positions[] = [ $positions[] = [
'externalNumber' => '', 'externalNumber' => '',
'pos' => $position->getPos(), 'pos' => $position->getPos(),
'type' => $position->getProduct()->getSpecialProductTypeObject()->getTyp(), 'type' => $position->getProduct()->getSpecialProductTypeObject()->getTyp(),
'status' => 'nicht übermittelt' 'status' => 'nicht übermittelt',
]; ];
} }
} }
@ -51,7 +52,4 @@ class OrderController extends AbstractController
return ['list' => false]; return ['list' => false];
} }
} }

View File

@ -106,5 +106,9 @@ class ProductSettings implements Field
{ {
// TODO: Implement formPreSetData() method. // TODO: Implement formPreSetData() method.
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -82,4 +82,8 @@ class ShopSettings implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -103,4 +103,8 @@ class ProductSettings implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -67,4 +67,8 @@ class ShopSettings implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -107,4 +107,8 @@ class Design implements Field
'translation_domain' => 'core_settings_edit' 'translation_domain' => 'core_settings_edit'
)); ));
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -216,4 +216,8 @@ class Formulare extends AbstractController implements Field
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -161,4 +161,8 @@ class General implements Field
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -144,4 +144,8 @@ class Images extends AbstractController implements Field
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -110,5 +110,9 @@ class PostUpload implements Field
{ {
$this->_shopService = $shopService; $this->_shopService = $shopService;
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -473,4 +473,8 @@ if(!file_exists($filenamecmsindex)) {
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -202,5 +202,9 @@ class Startseite implements Field
{ {
$this->_shopService = $shopService; $this->_shopService = $shopService;
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -142,4 +142,8 @@ class Style extends AbstractController implements Field
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -314,4 +314,8 @@ foreach($directorys as $key => $directorysout) {
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -83,4 +83,8 @@ class Design implements Field
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -323,5 +323,9 @@ class Formulare extends AbstractController implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -150,4 +150,8 @@ class General implements Field
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -182,4 +182,8 @@ class Images extends AbstractController implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -110,5 +110,9 @@ class PostUpload implements Field
{ {
$this->_shopService = $shopService; $this->_shopService = $shopService;
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -504,4 +504,8 @@ if(isset($_POST["settings"]["bootstrap4Images"]["layout"])) {
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -196,5 +196,9 @@ class Startseite implements Field
{ {
$this->_shopService = $shopService; $this->_shopService = $shopService;
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -147,4 +147,8 @@ if(isset($_POST["settings"]["bootstrap4General"]["layout"])) {
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -13,7 +13,6 @@ use Symfony\Component\Form\FormEvent;
#[AutoconfigureTag('psc.backend.custom.fields')] #[AutoconfigureTag('psc.backend.custom.fields')]
class ShopSettings implements Field class ShopSettings implements Field
{ {
public function getTemplate() public function getTemplate()
{ {
return '@PluginSystemPSCCaptchaFox/form/field/shop_settings.html.twig'; return '@PluginSystemPSCCaptchaFox/form/field/shop_settings.html.twig';
@ -31,8 +30,16 @@ class ShopSettings implements Field
{ {
/** @var Shop $data */ /** @var Shop $data */
$data = $event->getData(); $data = $event->getData();
$data->setPluginSettingModule('captchafox', 'secretkey', $event->getForm()->get('captchafox')->get('secretkey')->getData()); $data->setPluginSettingModule(
$data->setPluginSettingModule('captchafox', 'publickey', $event->getForm()->get('captchafox')->get('publickey')->getData()); 'captchafox',
'secretkey',
$event->getForm()->get('captchafox')->get('secretkey')->getData(),
);
$data->setPluginSettingModule(
'captchafox',
'publickey',
$event->getForm()->get('captchafox')->get('publickey')->getData(),
);
$event->setData($data); $event->setData($data);
} }
@ -40,22 +47,30 @@ class ShopSettings implements Field
{ {
/** @var Shop $data */ /** @var Shop $data */
$data = $event->getData(); $data = $event->getData();
$event->getForm()->get('captchafox')->get('secretkey')->setData($data->getPluginSettingModule('captchafox', 'secretkey')); $event
$event->getForm()->get('captchafox')->get('publickey')->setData($data->getPluginSettingModule('captchafox', 'publickey')); ->getForm()
->get('captchafox')
->get('secretkey')
->setData($data->getPluginSettingModule('captchafox', 'secretkey'));
$event
->getForm()
->get('captchafox')
->get('publickey')
->setData($data->getPluginSettingModule('captchafox', 'publickey'));
} }
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$builder->add('secretkey', TextType::class, array( $builder->add('secretkey', TextType::class, [
'label' => 'Secret Key', 'label' => 'Secret Key',
'required' => false, 'required' => false,
'mapped'=> false 'mapped' => false,
)); ]);
$builder->add('publickey', TextType::class, array( $builder->add('publickey', TextType::class, [
'label' => 'Public Key', 'label' => 'Public Key',
'required' => false, 'required' => false,
'mapped'=> false 'mapped' => false,
)); ]);
return $builder; return $builder;
} }
@ -73,4 +88,8 @@ class ShopSettings implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -13,7 +13,6 @@ use Symfony\Component\Form\FormEvent;
#[AutoconfigureTag('psc.backend.custom.fields')] #[AutoconfigureTag('psc.backend.custom.fields')]
class ShopSettings implements Field class ShopSettings implements Field
{ {
public function getTemplate() public function getTemplate()
{ {
return '@PluginSystemPSCFriendlyCaptcha/form/field/shop_settings.html.twig'; return '@PluginSystemPSCFriendlyCaptcha/form/field/shop_settings.html.twig';
@ -31,8 +30,16 @@ class ShopSettings implements Field
{ {
/** @var Shop $data */ /** @var Shop $data */
$data = $event->getData(); $data = $event->getData();
$data->setPluginSettingModule('friendlycaptcha', 'secret', $event->getForm()->get('friendlycaptcha')->get('secret')->getData()); $data->setPluginSettingModule(
$data->setPluginSettingModule('friendlycaptcha', 'siteKey', $event->getForm()->get('friendlycaptcha')->get('siteKey')->getData()); 'friendlycaptcha',
'secret',
$event->getForm()->get('friendlycaptcha')->get('secret')->getData(),
);
$data->setPluginSettingModule(
'friendlycaptcha',
'siteKey',
$event->getForm()->get('friendlycaptcha')->get('siteKey')->getData(),
);
$event->setData($data); $event->setData($data);
} }
@ -40,22 +47,30 @@ class ShopSettings implements Field
{ {
/** @var Shop $data */ /** @var Shop $data */
$data = $event->getData(); $data = $event->getData();
$event->getForm()->get('friendlycaptcha')->get('secret')->setData($data->getPluginSettingModule('friendlycaptcha', 'secret')); $event
$event->getForm()->get('friendlycaptcha')->get('siteKey')->setData($data->getPluginSettingModule('friendlycaptcha', 'siteKey')); ->getForm()
->get('friendlycaptcha')
->get('secret')
->setData($data->getPluginSettingModule('friendlycaptcha', 'secret'));
$event
->getForm()
->get('friendlycaptcha')
->get('siteKey')
->setData($data->getPluginSettingModule('friendlycaptcha', 'siteKey'));
} }
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$builder->add('secret', TextType::class, array( $builder->add('secret', TextType::class, [
'label' => 'Secret', 'label' => 'Secret',
'required' => false, 'required' => false,
'mapped'=> false 'mapped' => false,
)); ]);
$builder->add('siteKey', TextType::class, array( $builder->add('siteKey', TextType::class, [
'label' => 'SiteKey', 'label' => 'SiteKey',
'required' => false, 'required' => false,
'mapped'=> false 'mapped' => false,
)); ]);
return $builder; return $builder;
} }
@ -73,4 +88,8 @@ class ShopSettings implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -8,13 +8,9 @@ use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class OrderController extends AbstractController class OrderController extends AbstractController
{ {
#[Template('@PluginSystemPSCInvoiceControllerBackend/order/index.html.twig')] #[Template('@PluginSystemPSCInvoice/backend/order/index.html.twig')]
public function indexAction(?\PSC\Shop\EntityBundle\Entity\Order $order, public function indexAction(null|\PSC\Shop\EntityBundle\Entity\Order $order, null|Order $orderDoc)
?Order $orderDoc)
{ {
return ['uuid' => $order ? $order->getUuid() : false]; return ['uuid' => $order ? $order->getUuid() : false];
} }
} }

View File

@ -106,5 +106,9 @@ class ResellerProduct implements Field
{ {
// TODO: Implement formPreSetData() method. // TODO: Implement formPreSetData() method.
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -243,4 +243,8 @@ class ShopSettings implements Field
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
public function formSubmit(FormEvent $event)
{
}
} }

View File

@ -23,7 +23,6 @@ use Symfony\Component\HttpFoundation\File\UploadedFile;
class Calc implements Field class Calc implements Field
{ {
protected $generalService; protected $generalService;
protected $taxService; protected $taxService;
@ -52,16 +51,19 @@ class Calc implements Field
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$builder $builder
->add("mwert", ChoiceType::class, array( ->add('mwert', ChoiceType::class, [
'label' => 'MwSt.', 'label' => 'MwSt.',
'choices' => $this->taxService->getTaxesForForm(), 'choices' => $this->taxService->getTaxesForForm(),
)) ])
->add('fromPrice', TextType::class, ['required' => false, 'label' => 'Ab Preis']) ->add('fromPrice', TextType::class, ['required' => false, 'label' => 'Ab Preis'])
->add('weight', NumberType::class, ['required' => false, 'label' => 'Gewicht']) ->add('weight', NumberType::class, ['required' => false, 'label' => 'Gewicht'])
->add('price', MoneyType::class, ['required' => false, 'label' => 'Fix Preis']) ->add('price', MoneyType::class, ['required' => false, 'label' => 'Fix Preis'])
->add('scaledPrice', TextareaType::class, ['required' => false, 'label' => 'Staffel Preis (ACHTUNG! Wenn im Feld Fix Preis ein Wert eingetragen wird, wird der Staffelpreis ignoriert.)', 'attr' => ['rows' => 5]]); ->add('scaledPrice', TextareaType::class, [
'required' => false,
'label' => 'Staffel Preis (ACHTUNG! Wenn im Feld Fix Preis ein Wert eingetragen wird, wird der Staffelpreis ignoriert.)',
'attr' => ['rows' => 5],
]);
return $builder; return $builder;
} }
@ -83,6 +85,14 @@ class Calc implements Field
} }
public function formPostSubmit(FormEvent $event) public function formPostSubmit(FormEvent $event)
{
}
public function formPreSetData(FormEvent $event)
{
}
public function formSubmit(FormEvent $event)
{ {
/** @var Product $data */ /** @var Product $data */
$data = $event->getData(); $data = $event->getData();
@ -93,9 +103,4 @@ class Calc implements Field
$data->setWeight($event->getForm()->get('warehouse')->get('weight')->getData()); $data->setWeight($event->getForm()->get('warehouse')->get('weight')->getData());
$event->setData($data); $event->setData($data);
} }
public function formPreSetData(FormEvent $event)
{
} }
}

View File

@ -34,6 +34,7 @@ use PSC\System\SettingsBundle\Service\Help;
use PSC\System\SettingsBundle\Service\PaperDB; use PSC\System\SettingsBundle\Service\PaperDB;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter; use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpKernel\Attribute\MapRequestPayload;
use Symfony\Component\Routing\Attribute\Route; use Symfony\Component\Routing\Attribute\Route;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
@ -84,12 +85,7 @@ class GetPrice extends AbstractController
#[RequestBody(content: new JsonContent(ref: new Model(type: PriceInput::class)))] #[RequestBody(content: new JsonContent(ref: new Model(type: PriceInput::class)))]
#[Tag(name: 'Plugin/System/psc/Xmlcalc/Price')] #[Tag(name: 'Plugin/System/psc/Xmlcalc/Price')]
#[Route(path: '/price', methods: ['POST'])] #[Route(path: '/price', methods: ['POST'])]
#[ParamConverter( public function getprice(#[MapRequestPayload] PriceInput $data)
'data',
class: '\Plugin\System\PSC\XmlCalc\Dto\Input\PriceInput',
converter: 'psc_rest.request_body',
)]
public function getprice(PriceInput $data)
{ {
$output = new \Plugin\System\PSC\XmlCalc\Dto\Output\PriceOutput(); $output = new \Plugin\System\PSC\XmlCalc\Dto\Output\PriceOutput();
$output->product = $data->product; $output->product = $data->product;

View File

@ -14,7 +14,6 @@ use Symfony\Component\Form\FormEvent;
class Calc implements Field class Calc implements Field
{ {
protected $generalService; protected $generalService;
protected $taxService; protected $taxService;
@ -34,24 +33,16 @@ class Calc implements Field
return Field::Product; return Field::Product;
} }
/**
* @param array $data
*/
public function formPreSubmit(FormEvent $event)
{
}
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$builder->add('mwert', ChoiceType::class, [
$builder->add("mwert", ChoiceType::class, array('label' => 'MwSt.', 'label' => 'MwSt.',
'choices' => $this->taxService->getTaxesForForm(), 'choices' => $this->taxService->getTaxesForForm(),
)) ])->add('fromPrice', TextType::class, ['required' => false, 'label' => 'Ab Preis'])->add(
->add('fromPrice', TextType::class, ['required' => false, 'label' => 'Ab Preis']) 'calcXml',
->add('calcXml', AceEditorType::class, array( AceEditorType::class,
'wrapper_attr' => array(), // aceeditor wrapper html attributes. [
'wrapper_attr' => [], // aceeditor wrapper html attributes.
'width' => '90%', 'width' => '90%',
'height' => '500', 'height' => '500',
'font_size' => 14, 'font_size' => 14,
@ -63,8 +54,9 @@ class Calc implements Field
'use_wrap_mode' => null, 'use_wrap_mode' => null,
'show_print_margin' => null, 'show_print_margin' => null,
'required' => false, 'required' => false,
'highlight_active_line' => null 'highlight_active_line' => null,
)); ],
);
return $builder; return $builder;
} }
@ -83,7 +75,11 @@ class Calc implements Field
$event->getForm()->get('xmlCalc')->get('fromPrice')->setData($data->getFromPrice()); $event->getForm()->get('xmlCalc')->get('fromPrice')->setData($data->getFromPrice());
} }
public function formPostSubmit(FormEvent $event) public function formPreSubmit(FormEvent $event)
{
}
public function formSubmit(FormEvent $event)
{ {
/** @var Product $data */ /** @var Product $data */
$data = $event->getData(); $data = $event->getData();
@ -93,8 +89,11 @@ class Calc implements Field
$event->setData($data); $event->setData($data);
} }
public function formPostSubmit(FormEvent $event)
{
}
public function formPreSetData(FormEvent $event) public function formPreSetData(FormEvent $event)
{ {
} }
} }