custom/static-plugins/CioCustomOrdernumber/src/Subscriber/CioCustomOrdernumberSubscriber.php line 34

Open in your IDE?
  1. <?php
  2. namespace CioCustomOrdernumber\Subscriber;
  3. use CioExports\Service\Order\PositionExporter;
  4. use Shopware\Core\Checkout\Cart\Order\CartConvertedEvent;
  5. use Shopware\Core\Checkout\Order\OrderEntity;
  6. use Shopware\Core\Framework\Context;
  7. use Shopware\Core\Framework\DataAbstractionLayer\EntityRepository;
  8. use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityWrittenEvent;
  9. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  10. use Shopware\Core\System\SystemConfig\SystemConfigService;
  11. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  12. use Shopware\Core\Framework\Event\OrderNumberAssignEvent;
  13. use Symfony\Component\HttpFoundation\RequestStack;
  14. class CioCustomOrdernumberSubscriber implements EventSubscriberInterface
  15. {
  16.     private RequestStack $requestStack;
  17.     public function __construct(
  18.         RequestStack $requestStack,
  19.     ) {
  20.         $this->requestStack $requestStack;
  21.     }
  22.     public static function getSubscribedEvents(): array
  23.     {
  24.         return [
  25.             CartConvertedEvent::class => 'onChangeOrderNumber'
  26.         ];
  27.     }
  28.     public function onChangeOrderNumber(CartConvertedEvent $event): void
  29.     {
  30.         // WS/PERSOID/KOSTENSTELLENNR/Bestellnummer
  31.         $prefix 'WS-';
  32.         $prefix .= $event->getSalesChannelContext()->getCustomer()->getCustomerNumber() . '-';
  33.         if ($costsCenterNb $this->requestStack->getCurrentRequest()->request->get('cio_costcenter')) {
  34.             $prefix .= $costsCenterNb '-';
  35.         }
  36.         $convertedCart $event->getConvertedCart();
  37.         $convertedCart['orderNumber'] = $prefix $convertedCart['orderNumber'];
  38.         $event->setConvertedCart($convertedCart);
  39.     }
  40. }