コード例 #1
0
ファイル: order_ajax.php プロジェクト: webgksupport/alpina
 /**
  * @param $formData
  * @return Sale\Order
  * @throws ArgumentNullException
  * @throws UserMessageException
  */
 protected function getOrder(array $formData, Result &$result = null)
 {
     if (!isset($formData["ID"])) {
         $formData["ID"] = 0;
     } else {
         $formData["ID"] = intval($formData["ID"]);
     }
     if ($this->order !== null && !$this->formDataChanged && $this->order->getId() == $formData["ID"]) {
         return $this->order;
     }
     if (!$result) {
         $result = new Result();
     }
     Admin\OrderEdit::initCouponsData(intval($formData["USER_ID"]) > 0 ? intval($formData["USER_ID"]) : 0, intval($formData["ID"]) > 0 ? intval($formData["ID"]) : 0, intval($formData["OLD_USER_ID"]) > 0 ? intval($formData["OLD_USER_ID"]) : null);
     if ($formData["ID"] > 0) {
         $this->order = Sale\Order::load($formData["ID"]);
         if (!$this->order) {
             throw new UserMessageException("Can't load order with id:\"" . $formData["ID"] . "\"!");
         }
     } else {
         $this->order = Admin\OrderEdit::createOrderFromForm($formData, $this->userId, false, array(), $result);
         if (!$this->order) {
             throw new UserMessageException("Can't create order!");
         }
     }
     $this->formDataChanged = false;
     return $this->order;
 }
コード例 #2
0
ファイル: order_create.php プロジェクト: DarneoStudio/bitrix
        $formData["PRODUCT"] = array();
        $basketCode = 1;
        foreach ($_GET["product"] as $productId => $quantity) {
            $productParams = Blocks\OrderBasket::getProductDetails($productId, $quantity, $formData["USER_ID"], $formData["SITE_ID"]);
            if (!is_array($productParams) || empty($productParams)) {
                continue;
            }
            $formData["PRODUCT"][$basketCode] = $productParams;
            $formData["PRODUCT"][$basketCode]["BASKET_CODE"] = $basketCode;
            $basketCode++;
        }
        if (empty($formData["PRODUCT"])) {
            unset($formData["PRODUCT"]);
        }
    }
    $order = OrderEdit::createOrderFromForm($formData, $USER->GetID(), false, array(), $result);
    if (!$order) {
        $result->addError(new \Bitrix\Main\Entity\EntityError("Can't create order!"));
    }
} elseif ($isCopyingOrderOperation) {
    /** @var \Bitrix\Sale\Order $originalOrder */
    $originalOrder = Bitrix\Sale\Order::load($ID);
    if ($originalOrder) {
        $order = \Bitrix\Sale\Order::create($originalOrder->getSiteId(), $originalOrder->getUserId(), $originalOrder->getCurrency());
        $order->setPersonTypeId($originalOrder->getPersonTypeId());
        $originalPropCollection = $originalOrder->getPropertyCollection();
        $properties['PROPERTIES'] = array();
        $files = array();
        /** @var \Bitrix\Sale\PropertyValue $prop */
        foreach ($originalPropCollection as $prop) {
            if ($prop->getField('TYPE') == 'FILE') {