%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/components/bitrix/eshopapp.ajax.delivery.calculator/ |
| Current File : /home/bitrix/www/bitrix/components/bitrix/eshopapp.ajax.delivery.calculator/component.php |
<?
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
if (!CModule::IncludeModule("sale"))
{
ShowError(GetMessage("SALE_MODULE_NOT_INSTALL"));
return;
}
$arParams["AJAX_CALL"] = $arParams["AJAX_CALL"] == "Y" ? "Y" : "N";
$arParams["STEP"] = intval($arParams["STEP"]);
$arParams['NO_AJAX'] = $arParams['NO_AJAX'] == 'Y' ? 'Y' : 'N';
if ($arParams['NO_AJAX'] == 'Y')
{
$arParams['AJAX_CALL'] = 'Y';
$arParams['STEP'] = 1;
}
$arParams["LOCATION_TO"] = intval($arParams["LOCATION_TO"]);
$arParams["LOCATION_FROM"] = intval($arParams["LOCATION_FROM"]);
if ($arParams["LOCATION_FROM"] <= 0)
{
$arParams["LOCATION_FROM"] = COption::GetOptionInt('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")
{
if ($arParams['NO_AJAX'] == 'Y')
{
$result = CSaleDeliveryHandler::CalculateFull(
$arParams["DELIVERY"],
$arParams["PROFILE"],
array(
"PRICE" => $arParams["ORDER_PRICE"],
"WEIGHT" => $arParams["ORDER_WEIGHT"],
"LOCATION_FROM" => $arParams["LOCATION_FROM"],
"LOCATION_TO" => $arParams["LOCATION_TO"],
"LOCATION_ZIP" => $arParams['LOCATION_ZIP'],
),
$arParams["CURRENCY"]
);
if (is_array($result))
{
if ($result["RESULT"] == "OK" && CModule::IncludeModule('currency'))
{
$result["VALUE_FORMATTED"] = CurrencyFormat($result["VALUE"], $arParams["CURRENCY"]);
}
elseif ($result["RESULT"] == "NEXT_STEP" && strlen($result["TEMP"]) > 0)
{
$result["TEMP"] = CUtil::JSEscape($result["TEMP"]);
}
$arResult["RESULT"] = $result;
}
}
else
{
$dbHandler = CSaleDeliveryHandler::GetBySID($arParams["DELIVERY"]);
if ($arHandler = $dbHandler->Fetch())
{
foreach ($arHandler["PROFILES"] as $profile_id => $arProfile)
{
if ($profile_id != $arParams["PROFILE"]) unset($arHandler["PROFILES"][$profile_id]);
}
$result = CSaleDeliveryHandler::Calculate(
$arParams["STEP"],
$arParams["DELIVERY"],
$arParams["PROFILE"],
array(
"PRICE" => $arParams["ORDER_PRICE"],
"WEIGHT" => $arParams["ORDER_WEIGHT"],
"LOCATION_FROM" => $arParams["LOCATION_FROM"],
"LOCATION_TO" => $arParams["LOCATION_TO"],
"LOCATION_ZIP" => $arParams['LOCATION_ZIP'],
),
$arParams["CURRENCY"],
$arParams["~TEMP"]
);
if (is_array($result))
{
if ($result["RESULT"] == "OK" && CModule::IncludeModule('currency'))
{
$result["VALUE_FORMATTED"] = CurrencyFormat($result["VALUE"], $arParams["CURRENCY"]);
}
elseif ($result["RESULT"] == "NEXT_STEP" && strlen($result["TEMP"]) > 0)
{
$result["TEMP"] = CUtil::JSEscape($result["TEMP"]);
}
$arResult["RESULT"] = $result;
}
}
else
{
ShowError(GetMessage("SALE_DELIVERY_HANDLER_NOT_INSTALL"));
return;
}
}
}
else
{
$arParams["STEP"] = 0;
$arResult["B_ADMIN"] = defined("ADMIN_SECTION") && ADMIN_SECTION===true ? "Y" : "N";
if ($arResult["B_ADMIN"] != "Y")
{
IncludeAJAX();
$APPLICATION->AddHeadScript($this->GetPath() . '/templates/' . (strlen($componentTemplate) > 0 ? $componentTemplate : '.default') . '/proceed.js');
}
elseif ($arParams["STEP"] == 0)
{
$arResult["PATH"] = $this->GetPath() . '/templates/' . (strlen($componentTemplate) > 0 ? $componentTemplate : '.default') . '/';
}
}
$arTmpParams = array(
"STEP" => intval($arParams["STEP"]) + 1,
"DELIVERY" => $arParams["DELIVERY"],
"PROFILE" => $arParams["PROFILE"],
"WEIGHT" => doubleval($arParams["ORDER_WEIGHT"]),
"PRICE" => doubleval($arParams["ORDER_PRICE"]),
"LOCATION" => intval($arParams["LOCATION_TO"]),
"LOCATION_ZIP" => $arParams['LOCATION_ZIP'],
"CURRENCY" => $arParams["CURRENCY"],
"INPUT_NAME" => $arParams["INPUT_NAME"],
"TEMP" => $arParams["~TEMP"]
);
//echo "<pre>"; print_r($arResult); echo "</pre>";
$arResult["JS_PARAMS"] = CUtil::PhpToJsObject($arTmpParams);
$this->IncludeComponentTemplate();
?>