custom/plugins/DatoElectronicInvoicingSw6/src/Validation/BuildValidationEventListener.php line 38

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace SmartDato\DatoElectronicInvoicing\Validation;
  3. use Shopware\Core\Framework\Validation\BuildValidationEvent;
  4. use SmartDato\DatoElectronicInvoicing\Validation\Constraint\MainValidator;
  5. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  6. /**
  7.  * Class BuildValidationEventListener
  8.  *
  9.  * @package SmartDato\DatoElectronicInvoicing\Validation
  10.  */
  11. class BuildValidationEventListener implements EventSubscriberInterface
  12. {
  13.     /**
  14.      * @inheritDoc
  15.      */
  16.     public static function getSubscribedEvents(): array
  17.     {
  18.         return [
  19.             'framework.validation.address.create' => ['onAddressCreate'],
  20.             'framework.validation.address.update' => ['onAddressUpdate'],
  21.             'framework.validation.order.create' => ['onOrderCreate']
  22.         ];
  23.     }
  24.     /**
  25.      * Event is dispatched when validating create address params, from register and address pages
  26.      *
  27.      * @param BuildValidationEvent $event
  28.      *
  29.      * Called from
  30.      *
  31.      * @see \Shopware\Core\Checkout\Customer\SalesChannel\AddressService::getValidationDefinition
  32.      * @see \Shopware\Core\Checkout\Customer\SalesChannel\RegisterRoute::getCreateAddressValidationDefinition
  33.      */
  34.     public function onAddressCreate(BuildValidationEvent $event): void
  35.     {
  36.         if (MainValidator::checkAndRemoveShippingAddressValidation($event->getContext())) {
  37.             return;
  38.         }
  39.         $this->addValidationDefinitions($event);
  40.         MainValidator::addSkipNextShippingAddressValidationFlag($event->getContext());
  41.     }
  42.     /**
  43.      * Event is dispatched when validating update address params
  44.      *
  45.      * @param BuildValidationEvent $event
  46.      *
  47.      * Called from
  48.      *
  49.      * @see \Shopware\Core\Checkout\Customer\SalesChannel\AddressService::getValidationDefinition
  50.      */
  51.     public function onAddressUpdate(BuildValidationEvent $event): void
  52.     {
  53.         $this->addValidationDefinitions($event);
  54.     }
  55.     /**
  56.      * Event is dispatched when validating create order params
  57.      *
  58.      * @param BuildValidationEvent $event
  59.      *
  60.      * Called from
  61.      *
  62.      * @see \Shopware\Core\Checkout\Order\SalesChannel\OrderService::getOrderCreateValidationDefinition
  63.      */
  64.     public function onOrderCreate(BuildValidationEvent $event): void
  65.     {
  66.         $this->addValidationDefinitions($event);
  67.     }
  68.     /**
  69.      * Add validation definitions from context
  70.      *
  71.      * @param BuildValidationEvent $event
  72.      */
  73.     private function addValidationDefinitions(BuildValidationEvent $event): void
  74.     {
  75.         MainValidator::checkAndAddValidationDefinitions($event->getContext(), $event->getDefinition());
  76.     }
  77. }