diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..5236e1e4621a7a79cad1c2b069faaa994d1bf73b --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*~ + diff --git a/src/Event/FactuursturenOrderItemEvent.php b/src/Event/FactuursturenOrderItemEvent.php new file mode 100644 index 0000000000000000000000000000000000000000..b50c2c7173c6abb395c844a10f759313dafed1ba --- /dev/null +++ b/src/Event/FactuursturenOrderItemEvent.php @@ -0,0 +1,42 @@ +<?php + +namespace Drupal\commerce_factuursturen\Event; + +use Symfony\Component\EventDispatcher\Event; +use Drupal\commerce_order\Entity\OrderItemInterface; + +/** + * Event that is fired when Order Item data is composed for factuursturen. + */ +class FactuursturenOrderItemEvent extends Event { + + const ORDER_LINE_EVENT = 'factuursturen_order_line'; + + /** + * The order item. + * + * @var \Drupal\commerce_order\Entity\OrderItemInterface + */ + public $orderItem; + + /** + * The order data. + * + * @var array + */ + public $orderItemData; + + /** + * Constructs the object. + * + * @param \Drupal\commerce_order\Entity\OrderItemInterface $order_item + * The order. + * @param array $order_item_data + * The order item data for factuursturen. + */ + public function __construct(OrderItemInterface $order_item, array &$order_item_data) { + $this->orderItem = $order_item; + $this->orderItemData = &$order_item_data; + } + +} diff --git a/src/FactuurSturenService.php b/src/FactuurSturenService.php index a5a658a915f82e223f55ba980f3ea81b15949568..a5f0b3c1ac8c367b0ef5ea1e8087499df35ae920 100644 --- a/src/FactuurSturenService.php +++ b/src/FactuurSturenService.php @@ -9,6 +9,7 @@ use Drupal\Core\Messenger\MessengerInterface; use Drupal\Core\StringTranslation\StringTranslationTrait; use Drupal\commerce_factuursturen\Event\FactuursturenOrderEvent; +use Drupal\commerce_factuursturen\Event\FactuursturenOrderItemEvent; use Drupal\commerce_factuursturen\Event\FactuursturenProfileEvent; use Drupal\commerce_order\Entity\OrderInterface; @@ -155,6 +156,10 @@ class FactuurSturenService implements FactuurSturenServiceInterface { 'tax_rate' => $taxrate, 'price' => $price->getNumber(), ]; + + $event = new FactuursturenOrderItemEvent($order_item, $line_data); + $this->eventDispatcher->dispatch(FactuursturenOrderItemEvent::ORDER_LINE_EVENT, $event); + return $line_data; }