/** * @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; }