コード例 #1
0
    $arParams["EXTRA_PARAMS"] = array();
}
$arParams["LOCATION_TO"] = intval($arParams["LOCATION_TO"]);
$arParams["LOCATION_FROM"] = intval($arParams["LOCATION_FROM"]);
if ($arParams["LOCATION_FROM"] <= 0) {
    $arParams["LOCATION_FROM"] = COption::GetOptionString('sale', 'location');
}
$arParams["STEP"] = intval($arParams["STEP"]);
if ($arParams["STEP"] <= 0) {
    $arParams["AJAX_CALL"] = 'N';
}
if (is_set($arParams["START_VALUE"])) {
    $arParams["START_VALUE"] = doubleval($arParams["START_VALUE"]);
}
if ($arParams["AJAX_CALL"] == "Y") {
    $shipment = CSaleDelivery::convertOrderOldToNew(array("WEIGHT" => $arParams["ORDER_WEIGHT"], "PRICE" => $arParams["ORDER_PRICE"], "LOCATION_TO" => $arParams["LOCATION_TO"], "LOCATION_ZIP" => $arParams['LOCATION_ZIP'], "ITEMS" => $arParams["ITEMS"], "CURRENCY" => $arParams["CURRENCY"]));
    /** @var \Bitrix\Sale\Delivery\Services\Base  $deliveryObj */
    $deliveryObj = \Bitrix\Sale\Delivery\Services\Manager::getObjectById($arParams["DELIVERY_ID"]);
    if (!$deliveryObj) {
        ShowError(GetMessage("SALE_DELIVERY_HANDLER_NOT_INSTALL"));
        return;
    }
    $calcResult = $deliveryObj->calculate($shipment);
    $result = array("VALUE" => $calcResult->getPrice(), "TRANSIT" => $calcResult->getPeriodDescription(), "RESULT" => $calcResult->isSuccess() ? "OK" : "ERROR");
    if (!empty($arParams["ORDER_DATA"]) && is_array($arParams["ORDER_DATA"])) {
        $orderDeliveryPriceData = $arParams["ORDER_DATA"];
        $orderDeliveryPriceData['BASKET_ITEMS'] = !empty($arParams['ITEMS']) && is_array($arParams['ITEMS']) ? $arParams['ITEMS'] : array();
        $orderDeliveryPriceData['PRICE_DELIVERY'] = $orderDeliveryPriceData['DELIVERY_PRICE'] = $calcResult->getPrice();
        $orderDeliveryPriceData['DELIVERY_ID'] = $arParams["DELIVERY_ID"];
        CSaleDiscount::DoProcessOrder($orderDeliveryPriceData, array(), $arErrors);
        if (floatval($orderDeliveryPriceData['DELIVERY_PRICE']) >= 0 && $orderDeliveryPriceData['PRICE_DELIVERY'] != $calcResult->getPrice()) {
コード例 #2
0
ファイル: component.php プロジェクト: Satariall/izurit
         $bFirst = True;
         $arFilter = array("ACTIVE" => "Y", "PERSON_TYPE_ID" => $arUserResult["PERSON_TYPE_ID"], "PSA_HAVE_PAYMENT" => "Y");
         $dbPaySystem = CSalePaySystem::GetList(array("SORT" => "ASC", "PSA_NAME" => "ASC"), $arFilter);
         while ($arPaySystem = $dbPaySystem->Fetch()) {
             if (IntVal($arUserResult["PAY_SYSTEM_ID"]) <= 0 && $bFirst) {
                 $arPaySystem["CHECKED"] = "Y";
                 $arUserResult["PAY_SYSTEM_ID"] = $arPaySystem["ID"];
             }
             $bFirst = false;
         }
     }
 }
 $bFirst = True;
 $bFound = false;
 $bSelected = false;
 $shipment = CSaleDelivery::convertOrderOldToNew(array("SITE_ID" => SITE_ID, "WEIGHT" => $arResult["ORDER_WEIGHT"], "PRICE" => $arResult["ORDER_PRICE"], "LOCATION_TO" => isset($arUserResult["DELIVERY_LOCATION_BCODE"]) ? $arUserResult["DELIVERY_LOCATION_BCODE"] : $arUserResult["DELIVERY_LOCATION"], "LOCATION_ZIP" => $arUserResult["DELIVERY_LOCATION_ZIP"], "ITEMS" => $arResult["BASKET_ITEMS"], "CURRENCY" => $arResult["BASE_LANG_CURRENCY"]));
 if (!empty($arUserResult["PAY_SYSTEM_ID"]) && $arParams["DELIVERY_TO_PAYSYSTEM"] == "p2d") {
     /** @var \Bitrix\Sale\Order $order */
     $order = $shipment->getCollection()->getOrder();
     /** @var \Bitrix\Sale\Payment $payment */
     $payment = $order->getPaymentCollection()->createItem();
     $payment->setField("PAY_SYSTEM_ID", $arUserResult["PAY_SYSTEM_ID"]);
 }
 /** @var \Bitrix\Sale\Delivery\Services\Base[]  $arDeliveryServiceAll */
 $arDeliveryServiceAll = \Bitrix\Sale\Delivery\Services\Manager::getServicesForShipment($shipment);
 if (intval($arUserResult["DELIVERY_ID"]) > 0) {
     $bFound = array_key_exists($arUserResult["DELIVERY_ID"], $arDeliveryServiceAll);
 }
 if (!$bFound && !empty($arUserResult["DELIVERY_ID"])) {
     $arUserResult["DELIVERY_ID"] = "";
     $arResult["DELIVERY_PRICE"] = 0;