custom/plugins/EwGrecoAdministration/src/Subscriber/IndividualCodeWrittenSubscriber.php line 28

Open in your IDE?
  1. <?php
  2. namespace Ew\GrecoAdministration\Subscriber;
  3. use Ew\GrecoAdministration\Service\IndividualCodeCustomService;
  4. use Shopware\Core\Checkout\Cart\Event\CheckoutOrderPlacedEvent;
  5. use Shopware\Core\Framework\DataAbstractionLayer\EntityWriteResult;
  6. use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityWrittenEvent;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. class IndividualCodeWrittenSubscriber implements EventSubscriberInterface
  9. {
  10.     private IndividualCodeCustomService $customService;
  11.     public function __construct(
  12.         IndividualCodeCustomService $customService
  13.     ) {
  14.         $this->customService $customService;
  15.     }
  16.     public static function getSubscribedEvents(): array
  17.     {
  18.         return [
  19.             'promotion_individual_code.written' => 'onIndividualCodeWritten'
  20.         ];
  21.     }
  22.     public function onIndividualCodeWritten(EntityWrittenEvent $event): void
  23.     {
  24.         $writtenResults $event->getWriteResults();
  25.         foreach ($writtenResults as $writeResult) {
  26.             $operation $writeResult->getOperation();
  27.             if ($operation === EntityWriteResult::OPERATION_INSERT) {
  28.                 $payload $writeResult->getPayload();
  29.                 $prefix $this->customService->getPromotionPrefix($payload['promotionId'], $event->getContext());
  30.                 $this->customService->incrementVoucherNumber($payload['id'], $payload['promotionId'], $prefix$event->getContext());
  31.             }
  32.         }
  33.     }
  34. }