Skip to content
Code-Schnipsel Gruppen Projekte
EventHandler.php 2,51 KiB
Newer Older
  • Learn to ignore specific revisions
  • <?php
    
    /**
     * This File contains \QUI\ERP\Shipping\EventHandler
     */
    
    namespace QUI\ERP\Shipping;
    
    use QUI;
    
    /**
     * Class EventHandler
     *
     * @package QUI\ERP\Shipping
     */
    class EventHandler
    {
    
        /**
         * event for on package setup
         *
         * @throws QUI\Exception
         */
        public static function onPackageSetup()
        {
            $languages = QUI\Translator::getAvailableLanguages();
    
            // create locale
            $var    = 'message.no.rule.found.order.continue';
            $params = [
                'datatype' => 'php,js',
                'package'  => 'quiqqer/shipping'
            ];
    
            foreach ($languages as $language) {
                $params[$language] = QUI::getLocale()->getByLang(
                    $language,
                    'quiqqer/shipping',
                    $var
                );
            }
    
            try {
                QUI\Translator::addUserVar('quiqqer/shipping', $var, $params);
            } catch (QUI\Exception $Exception) {
                QUI\System\Log::addNotice($Exception->getMessage());
            }
    
            // create locale
    
            $var    = 'message.no.rule.found.order.cancel';
    
            $params = [
                'datatype' => 'php,js',
                'package'  => 'quiqqer/shipping'
            ];
    
            foreach ($languages as $language) {
                $params[$language] = QUI::getLocale()->getByLang(
                    $language,
                    'quiqqer/shipping',
                    $var
                );
            }
    
            try {
                QUI\Translator::addUserVar('quiqqer/shipping', $var, $params);
            } catch (QUI\Exception $Exception) {
                QUI\System\Log::addNotice($Exception->getMessage());
            }
        }
    
    
        /**
         * event - on price factor init
         *
         * @param $Basket
         * @param QUI\ERP\Order\AbstractOrder $Order
         * @param QUI\ERP\Products\Product\ProductList $Products
         */
    
        public static function onQuiqqerOrderBasketToOrderEnd(
    
            $Basket,
            QUI\ERP\Order\AbstractOrder $Order,
            QUI\ERP\Products\Product\ProductList $Products
        ) {
            $Shipping = $Order->getShipping();
    
            if (!$Shipping) {
                return;
            }
    
    
            $Shipping->setOrder($Order);
    
    
            $PriceFactors = $Products->getPriceFactors();
            $PriceFactors->addToEnd($Shipping->toPriceFactor());
    
            try {
                $Products->recalculation();
            } catch (QUI\Exception $Exception) {
                QUI\System\Log::writeDebugException($Exception);
            }
    
    
            $Order->getArticles()->calc();
    
            if (\method_exists($Order, 'save')) {
                $Order->save();
            }