diff --git a/events.xml b/events.xml index 7794d2b9ed6590fb6df889cd0f043705d09047d1..a4b9e605adaa94b0a36700978c88f4de550741bb 100644 --- a/events.xml +++ b/events.xml @@ -2,6 +2,17 @@ <events> <event on="onAdminLoadFooter" fire="\QUI\ERP\Shipping\EventHandler::onAdminLoadFooter"/> + <event on="onQuiqqerOrderFactoryCreate" + fire="\QUI\ERP\Shipping\EventHandler::onQuiqqerOrderFactoryCreate" + /> + <event on="onQuiqqerOffersCreated" + fire="\QUI\ERP\Shipping\EventHandler::onQuiqqerOffersCreated" + /> + <event on="onQuiqqerSalesOrdersCreated" + fire="\QUI\ERP\Shipping\EventHandler::onQuiqqerSalesOrdersCreated" + /> + + <event on="onQuiqqerOrderBasketToOrderEnd" fire="\QUI\ERP\Shipping\EventHandler::onQuiqqerOrderBasketToOrderEnd" /> @@ -29,12 +40,6 @@ <event on="onQuiqqerOrderOrderProcessCheckoutOutputBefore" fire="\QUI\ERP\Shipping\EventHandler::onQuiqqerOrderOrderProcessCheckoutOutputBefore" /> - <event on="onQuiqqerOrderShippingOnEmpty" - fire="\QUI\ERP\Shipping\EventHandler::onQuiqqerOrderShippingOnEmpty" - /> - <event on="onQuiqqerOrderInit" - fire="\QUI\ERP\Shipping\EventHandler::onQuiqqerOrderInit" - /> <event on="onUserSaveBegin" fire="\QUI\ERP\Shipping\EventHandler::onUserSaveBegin" /> diff --git a/src/QUI/ERP/Shipping/EventHandler.php b/src/QUI/ERP/Shipping/EventHandler.php index 1815b8cb27ef3e6fac549d0eaf432e9da10c35a7..3bed96cca8821a3e829833d9881086a39c9c24fe 100644 --- a/src/QUI/ERP/Shipping/EventHandler.php +++ b/src/QUI/ERP/Shipping/EventHandler.php @@ -7,6 +7,7 @@ namespace QUI\ERP\Shipping; use QUI; +use QUI\ERP\Accounting\ArticleList; use QUI\ERP\Order\Controls\OrderProcess\Checkout as OrderCheckoutStepControl; use QUI\ERP\Products\Handler\Fields as ProductFields; use Quiqqer\Engine\Collector; @@ -503,13 +504,64 @@ public static function onQuiqqerProductsPriceEnd(Collector $Collector, QUI\ERP\P $Collector->append($html); } + //region default shipping + /** + * event: add default shipping at onQuiqqerOrderFactoryCreate + * * @param \QUI\ERP\Order\AbstractOrder $Order * @return void + */ + public static function onQuiqqerOrderFactoryCreate(QUI\ERP\Order\AbstractOrder $Order) + { + try { + self::addDefaultShipping($Order->getArticles()); + $Order->update(QUI::getUsers()->getSystemUser()); + } catch (QUI\Exception $Exception) { + QUI\System\Log::addError($Exception->getMessage()); + } + } + + /** + * event: add default shipping at onQuiqqerOffersCreated + * + * @param \QUI\ERP\Accounting\Offers\AbstractOffer $Offer + * @return void + */ + public static function onQuiqqerOffersCreated(QUI\ERP\Accounting\Offers\AbstractOffer $Offer) + { + try { + self::addDefaultShipping($Offer->getArticles()); + $Offer->update(QUI::getUsers()->getSystemUser()); + } catch (QUI\Exception $Exception) { + QUI\System\Log::addError($Exception->getMessage()); + } + } + + /** + * event: add default shipping at onQuiqqerSalesOrdersCreated * + * @param \QUI\ERP\SalesOrders\SalesOrder $Sales + * @return void + */ + public static function onQuiqqerSalesOrdersCreated(QUI\ERP\SalesOrders\SalesOrder $Sales) + { + try { + self::addDefaultShipping($Sales->getArticles()); + $Sales->update(); + } catch (QUI\Exception $Exception) { + QUI\System\Log::addError($Exception->getMessage()); + } + } + + /** + * event: addDefaultShipping + * + * @param \QUI\ERP\Accounting\ArticleList $Articles + * @return void * @throws \QUI\Exception */ - public static function onQuiqqerOrderShippingOnEmpty(QUI\ERP\Order\AbstractOrder $Order) + protected static function addDefaultShipping(ArticleList $Articles) { if (!QUI::isBackend()) { return; @@ -523,7 +575,6 @@ public static function onQuiqqerOrderShippingOnEmpty(QUI\ERP\Order\AbstractOrder } try { - $Articles = $Order->getArticles(); $PriceFactors = $Articles->getPriceFactors(); // check if shipping factor exist @@ -545,16 +596,7 @@ public static function onQuiqqerOrderShippingOnEmpty(QUI\ERP\Order\AbstractOrder } } - /** - * @param \QUI\ERP\Order\AbstractOrder $Order - * - * @return void - * @throws \QUI\Exception - */ - public static function onQuiqqerOrderInit(QUI\ERP\Order\AbstractOrder $Order) - { - self::onQuiqqerOrderShippingOnEmpty($Order); - } + //endregion /** * @param \QUI\ERP\Order\AbstractOrder $Order