/** * @param OrderBase $order * @return Entity\Result */ public static function doCalculate(OrderBase $order) { $result = new Result(); if ($order->getPersonTypeId() !== null) { if (!($personTypeList = static::load($order->getSiteId(), $order->getPersonTypeId()))) { $result->addError(new Entity\EntityError(GetMessage('SKGP_PERSON_TYPE_NOT_FOUND'), 'PERSON_TYPE_ID')); } return $result; } if (($personTypeList = static::load($order->getSiteId())) && !empty($personTypeList) && is_array($personTypeList)) { $firstPersonType = reset($personTypeList); $order->setPersonTypeId($firstPersonType["ID"]); } else { $result->addError(new Entity\EntityError(GetMessage('SKGP_PERSON_TYPE_EMPTY'), 'PERSON_TYPE_ID')); } return $result; }
/** * @param OrderBase $order * @return array|null */ public static function load(OrderBase $order) { $tax = new static(); $tax->order = $order; if ($order->getId() > 0) { $tax->list = $tax->loadList($order); } else { $tax->list = $tax->getAvailableList(); } return $tax; }
/** * @param OrderBase $order */ public function setOrder(OrderBase $order) { $this->order = $order; $this->orderId = $order->getId(); }
/** * @return bool */ public function isChanged() { if (parent::isChanged()) { return true; } /** @var PropertyValueCollection $propertyCollection */ if ($propertyCollection = $this->getPropertyCollection()) { if ($propertyCollection->isChanged()) { return true; } } /** @var Basket $basket */ if ($basket = $this->getBasket()) { if ($basket->isChanged()) { return true; } /** @var PaymentCollection $paymentCollection */ if ($paymentCollection = $this->getPaymentCollection()) { if ($paymentCollection->isChanged()) { return true; } } /** @var ShipmentCollection $shipmentCollection */ if ($shipmentCollection = $this->getShipmentCollection()) { if ($shipmentCollection->isChanged()) { return true; } } } return false; }