uawdijnntqw1x1x1
IP : 216.73.217.85
Hostname : xhost1.intravision.ru
Kernel : Linux xhost1.intravision.ru 3.16.0-7-amd64 #1 SMP Debian 3.16.59-1 (2018-10-03) x86_64
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
OS : Linux
PATH:
/
var
/
.
/
.
/
.
/
backup
/
external_www
/
new02.medcomp.ru
/
include
/
functions.php.bak
/
/
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); CModule::IncludeModule("catalog"); CModule::IncludeModule("iblock"); CModule::IncludeModule("sale"); if ($_POST["action"] == "delivery_print") { $_SESSION['delivery_print'] = '<div style="font-size: 20px; padding: 20px">'.$_POST['html'].'<div>'; // Массив ответа $arResult = Array( "status" => "ok" ); // Ответ echo json_encode($arResult); } if ($_POST["action"] == "pdf_save") { $_SESSION['pdf_save'] = '<div style="font-size: 16px; padding: 20px;"><h1 style="font-size: 23px;">Расчёт стоимости доставки груза</h1>'.$_POST['html'].'<div>'; $symbols = array("<a>", "</a>"); $_SESSION['pdf_save'] = str_replace($symbols, "", $_SESSION['pdf_save']); // Массив ответа $arResult = Array( "status" => "ok" ); // Ответ echo json_encode($arResult); } // Запрос стоимости доставки if ($_POST["action"] == "get_delivery_prices") { // Проверяем города $city_from = $_POST['city_from']; $city_from_error = true; $upCity_from = trim(strtoupper($city_from)); $city_to = $_POST['city_to']; $city_to_error = true; $upCity_to = trim(strtoupper($city_to)); // Запрашиваем список городов $cities = calculator_cities(); if ( count($cities) > 0 ){ // Проверяем города на наличие (в т.ч. на наличие айдишников) foreach ($cities as $city){ $upCity = trim(strtoupper($city['NAME'])); if ($upCity == $upCity_from){ $city_from_error = false; $arCity_from = $city; } if ($upCity == $upCity_to){ $city_to_error = false; $arCity_to = $city; } } // Нет ошибок по городам if (!$city_from_error && !$city_to_error){ $html = '<div class="calc-form_info">'; $html .= '<div class="print_area">'; $html .= '<p>Город отправления: '.$city_from.'</p>'; $html .= '<p>Город назначения: '.$city_to.'</p>'; $html .= '<p>Вес груза: '.$_POST['weight'].' кг</p>'; $html .= '<p>Объём груза: '.$_POST['volume'].' м.куб.</p>'; $html .= '<br>'; $html .= '</div>'; // ДЕЛОВЫЕ ЛИНИИ // Все ID городов определены if ($arCity_from['PROPERTY_DELLIN_ID_VALUE'] && $arCity_to['PROPERTY_DELLIN_ID_VALUE']){ // формируем параметры запроса $request_data = json_encode( array( 'appKey' => '165585EE-4F34-11E6-8899-00505683A6D3', 'derivalPoint' => $arCity_from['PROPERTY_DELLIN_ID_VALUE'], 'arrivalPoint' => $arCity_to['PROPERTY_DELLIN_ID_VALUE'], 'sizedVolume' => round($_POST['volume'], 1), 'sizedWeight' => round($_POST['weight'], 1) ) ); $opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/json', 'content' => $request_data ) ); $context = stream_context_create($opts); // Запрос $result = file_get_contents('https://api.dellin.ru/v1/public/calculator.json', false, $context); if ($result){ // Получаем массив из json $array = get_json_array($result); // Если нет ошибок if (!$array['errorses']){ $dellin_price = $array['price']; } } } // ПЭК // Все ID городов определены if ($arCity_from['PROPERTY_PECOM_ID_VALUE'] && $arCity_to['PROPERTY_PECOM_ID_VALUE']){ // формируем параметры запроса $request_array = array( 'places' => array( '0' => array( '0' => round(pow($_POST['volume'], 1/3), 1), '1' => round(pow($_POST['volume'], 1/3), 1), '2' => round(pow($_POST['volume'], 1/3), 1), '3' => round($_POST['volume']), '4' => round($_POST['weight']), '5' => 0, '6' => 0, ) ), 'take' => array( 'town' => $arCity_from['PROPERTY_PECOM_ID_VALUE'], 'tent' => 1, 'gidro' => 1, 'manip' => 1, 'speed' => 1, 'moscow' => 1, ), 'deliver' => array( 'town' => $arCity_to['PROPERTY_PECOM_ID_VALUE'], 'tent' => 1, 'gidro' => 1, 'manip' => 1, 'speed' => 1, 'moscow' => 1, ), 'plombir' => 12, 'strah' => 12, 'ashan' => 1, 'night' => 1, 'pal' => 1, 'pallets' => 1 ); $request_data = json_encode($request_array); if( $curl = curl_init() ){ // Настройки HTTP-клиента curl_setopt_array($curl, array( CURLOPT_URL => 'http://calc.pecom.ru/bitrix/components/pecom/calc/ajax.php', CURLOPT_POSTFIELDS => json_encode( $request_data ), CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_POST => TRUE, CURLOPT_HTTPHEADER => array( 'Content-Type: application/json; charset=utf-8' ) )); // Запрос $result = curl_exec($curl); curl_close($curl); } // Запрос if ($result){ // Получаем массив из json $array = get_json_array($result); $pecom_price = $array['auto'][2]; } } // Если имеются рассчитанные цены if ( intval($dellin_price) > 0 || intval($pecom_price) > 0 ){ $html .= '<div class="print_area_2">'; $html .= '<p><a><b>Ориентировочная стоимость доставки груза:</b></a></p>'; // Деловые линии if ( intval($dellin_price) > 0 ){ $html .= '<p>Деловые линии - '.number_format( $dellin_price, 2, ",", " ").' руб.</p>'; } // ПЭК if ( intval($pecom_price) > 0 ){ $html .= '<p>ПЭК - '.number_format( $pecom_price, 2, ",", " ").' руб.</p>'; } $html .= '</div>'; $html .= '<br>'; $html .= '<p><a class="delivery_print_button" style="text-decoration: underline">Распечатать</a> <a class="delivery_pdf_button" style="text-decoration: underline">Сохранить</a></p>'; // Нет ни одной рассчитанной цены } else { $html .= '<p class="error_p" style="margin:0">К сожалению, попытка расчёта стоимости не удалась... </p>'; } $html .= '</div>'; // Массив ответа $arResult = Array( "status" => "ok", "html" => $html ); // Есть ошибка по городу } else { // Массив ответа $arResult = Array( "status" => "error", "city_from_error" => $city_from_error, "city_to_error" => $city_to_error, "text" => "Ошибка: один из городов не найден в базе", "description" => "Ошибка: один из городов не найден в базе", ); } // Нет городов } else { // Массив ответа $arResult = Array( "status" => "error", "text" => "Ошибка запроса", "description" => "Ошибка: в базу не загружены города" ); } // Ответ echo json_encode($arResult); } // Запрос статуса доставки if ($_POST["action"] == "get_delivery_status") { // ДЕЛОВЫЕ ЛИНИИ if ($_POST["delivery_company"] == 'dellines'){ // формируем параметры запроса $postdata = json_encode( array( 'appKey' => '165585EE-4F34-11E6-8899-00505683A6D3', 'docid' => $_POST["code"], ) ); $opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/json', 'content' => $postdata ) ); $context = stream_context_create($opts); // Запрос $result = file_get_contents('https://api.dellin.ru/v2/public/tracker.json', false, $context); // Запрос успешный if ($result){ // Получаем массив из json $array = get_json_array($result); // Есть ошибки if ($array['errors'] && $array['errors']['docid']){ // Массив ответа $arResult = Array( "status" => "error", "text" => $array['errors']['docid'] ); // Ошибок нет } else { // формируем разметку ответа $arrived = array('arrived', 'warehousing', 'airport_warehousing'); $html = '<div class="calc-form_info calc-status_info">'; $html .= '<p>'; // Если груз прибыл if ( in_array($array['state'],$arrived) ){ $html .= '<i class="fa fa-map-marker"></i>'; } $html .= 'Статус: '.date("d.m.Y").' '.$array['state_name']; // Если груз прибыл if ( in_array($array['state'],$arrived) ){ $html .= ' в '.$array['arrival_city']; } $html .= '</p>'; if ($array['state'] == 'declined' && $array['decline_reason']){ $html .= '<p>Причина: '.$array['decline_reason'].'</p>'; } $html .= '</div>'; // Массив ответа $arResult = Array( "status" => "ok", "html" => $html ); } // Ошибка запроса } else { // Массив ответа $arResult = Array( "status" => "error", "text" => "Ошибка запроса" ); } // ответ echo json_encode($arResult); } } if ($_POST["action"] == "calculate") { if( $curl = curl_init() ){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://pecom.ru/ru/calc/towns.php'); curl_setopt($curl, CURLOPT_USERAGENT, "Opera/10.00 (Windows NT 5.1; U; ru) Presto/2.2.0"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POST, true); // или 0 $content = curl_exec($curl); curl_close($curl); $arCities = get_json_array($content); $all_cities = array(); $city_regions = array(); foreach ($arCities as $region => $cities){ foreach ($cities as $id => $city){ $all_cities[$id] = $city; $city_regions[$id] = $region; } } foreach ($all_cities as $id => $city){ $el = new CIBlockElement; $arLoadProductArray = Array( "IBLOCK_ID" => 34, "NAME" => $city, "ACTIVE" => "Y", "CODE" => $id, "PREVIEW_TEXT" => $city_regions[$id] ); /*if($ID = $el->Add($arLoadProductArray)){ echo "New ID: ".$ID.' '; }*/ } } } function return_basket() { CModule::IncludeModule("sale"); $CART_COUNT = 0; $aCART_SUM = Array(); $_SESSION["DISCOUNT_LEVEL"] = 1; global $aGlobalPrices; $q = CSaleBasket::GetList(Array(), Array("FUSER_ID"=>CSaleBasket::GetBasketUserID(), "ORDER_ID"=>false)); while ($a = $q->GetNext()) { $CART_COUNT = $CART_COUNT + intval($a["QUANTITY"]); foreach ($aGlobalPrices[$a["PRODUCT_ID"]] as $key=>$value) { $aCART_SUM[$key] = $aCART_SUM[$key] + intval($value*$a["QUANTITY"]); } } $_SESSION["DISCOUNT_LEVEL"] = calculate_discount_level($aCART_SUM[1]); // дополнительный цикл для обновления цены $q = CSaleBasket::GetList(Array(), Array("FUSER_ID"=>CSaleBasket::GetBasketUserID(), "ORDER_ID"=>false)); while ($a = $q->GetNext()) { $aBasketFields = Array( "PRODUCT_PRICE_ID" => $_SESSION["DISCOUNT_LEVEL"], "PRICE" => $aGlobalPrices[$a["PRODUCT_ID"]][$_SESSION["DISCOUNT_LEVEL"]] ); CSaleBasket::Update($a["ID"], $aBasketFields); } ?> <div class="header-basket-column header-basket-column-x1"> <div class="header-basket-icon-basket"></div> <a href="/basket/" class="header-basket-link"> <span class="header-basket-link-title"><span><?=$CART_COUNT?></span> <?=pfCnt($CART_COUNT, "товар", "товара", "товаров")?></span> <span class="header-basket-link-price"><?=number_format($aCART_SUM[$_SESSION["DISCOUNT_LEVEL"]], 0, "", " ")?> рублей</span> </a> </div> <? $percent = 0; if ($_SESSION["DISCOUNT_LEVEL"] > 1) { $diff = $aCART_SUM[1] - $aCART_SUM[$_SESSION["DISCOUNT_LEVEL"]]; $percent = ($diff*100)/$aCART_SUM[1]; $percent = round($percent); } $height = 0; if ($_SESSION["DISCOUNT_LEVEL"] == 1) { $height = ($aCART_SUM[1]*100)/50000; $height = round($height); } if ($_SESSION["DISCOUNT_LEVEL"] == 2) { $height = ($aCART_SUM[1]*100)/100000; $height = round($height); } if ($_SESSION["DISCOUNT_LEVEL"] == 3) { $height = 100; } ?> <div class="header-basket-column header-basket-column-x2"> <div class="header-basket-icon-sale"></div> <div class="header-basket-level"><span style="height: <?=$height?>%;"></span></div> <div class="header-basket-level-title"><?=$_SESSION["DISCOUNT_LEVEL"]?> уровень</div> <div class="header-basket-level-sale">скидка - <span><?=$percent?>%</span></div> <a href="#" class="header-basket-quest">?</a> </div> <? } // АВТОРИЗАЦИЯ if ($_POST["action"] == "auth_form") { parse_str($_POST["data"], $aFields); $result = $USER->Login($aFields["LOGIN"], $aFields["PASSWORD"], "Y"); if (!is_array($result)) { $USER->Authorize($USER->GetID()); echo "ok"; } } // RESTORE STEP 1 if ($_POST["action"] == "restore_form_1") { parse_str($_POST["data"], $aFields); $aFields["LOGIN"] = trim($aFields["LOGIN"]); if (strlen($aFields["LOGIN"]) > 0) { $q = CUser::GetByLogin($aFields["LOGIN"]); if ($a = $q->GetNext()) { $user = new CUser; $CHECKWORD = randString(12, Array("abcdefghijklnmopqrstuvwxyz", "0123456789")); $aUserFields = Array( "ADMIN_NOTES" => $CHECKWORD ); $ID = $user->Update($a["ID"], $aUserFields); if (intval($ID) > 0) { $aEventFields = Array( "USER_ID" => $a["ID"], "EMAIL" => $aFields["LOGIN"], "CHECKWORD" => $CHECKWORD ); CEvent::SendImmediate("RESTORE_1", "s1", $aEventFields); echo "success"; } } } } // RESTORE STEP 2 if ($_POST["action"] == "restore_form_2") { parse_str($_POST["data"], $aFields); if (intval($aFields["USER_ID"]) > 0) { $q = CUser::GetByID($aFields["USER_ID"]); if ($a = $q->GetNext()) { $user = new CUser; $aUserFields = Array( "PASSWORD" => $aFields["PASSWORD"], "CONFIRM_PASSWORD" => $aFields["PASSWORD"] ); $ID = $user->Update($a["ID"], $aUserFields); if (intval($ID) > 0) { $aEventFields = Array( "EMAIL" => $a["LOGIN"], "PASSWORD" => $aFields["PASSWORD"] ); CEvent::SendImmediate("RESTORE_2", "s1", $aEventFields); // Ответ $arResult = Array( "status" => "ok" ); echo json_encode($arResult); } else { // Ответ $arResult = Array( "status" => "error", "text" => $user->LAST_ERROR ); echo json_encode($arResult); } } } } // РЕГИСТРАЦИЯ if ($_POST["action"] == "register_form") { parse_str($_POST["data"], $aUserFields); $q = CUser::GetByLogin($aUserFields["EMAIL"]); if ($q->SelectedRowsCount() > 0) { echo "error"; } else { $user = new CUser; $aUserFields["ACTIVE"] = "Y"; $aUserFields["LOGIN"] = $aUserFields["EMAIL"]; $aUserFields["GROUP_ID"] = Array(5); $aUserFields["CONFIRM_PASSWORD"] = $aUserFields["PASSWORD"]; $ID = $user->Add($aUserFields); if (intval($ID) > 0) { $result = $USER->Login($aUserFields["EMAIL"], $aUserFields["PASSWORD"], "Y"); if (!is_array($result)) { $USER->Authorize($USER->GetID()); $aEventFields = Array( "EMAIL" => $aUserFields["EMAIL"], "PASSWORD" => $aUserFields["PASSWORD"] ); CEvent::SendImmediate("REGISTER", "s1", $aEventFields); echo "success"; } } } } if ($_POST["action"] == "reload_captcha") { echo $APPLICATION->CaptchaGetCode(); } // ИЗМЕНЕНИЕ ДАННЫХ if ($_POST["action"] == "personal_form") { if ($USER->IsAuthorized()) { $user = new CUser; parse_str($_POST["data"], $aUserFields); $aUserFields["LOGIN"] = $aUserFields["EMAIL"]; $user->Update($USER->GetID(), $aUserFields); } } if ($_POST["action"] == "passchange_form") { if ($USER->IsAuthorized()) { parse_str($_POST["data"], $aUserFields); $q = CUser::GetByID($USER->GetID()); $aUser = $q->GetNext(); // проверяем старый пароль $old_hash = $aUser["PASSWORD"]; $salt = substr($old_hash, 0, 8); $new_hash = $salt.md5($salt.$aUserFields["OLD_PASSWORD"]); if ($old_hash == $new_hash) { unset($aUserFields["OLD_PASSWORD"]); $user = new CUser; $ID = $user->Update($USER->GetID(), $aUserFields); if (intval($ID) > 0) { echo "Пароль успешно сменен."; } } else { echo "Старый пароль указан неверно."; } } } // ИЗБРАННОЕ // ДОБАВЛЕНИЕ В ИЗБРАННОЕ if ($_POST["action"] == "add_favorite") { if (intval($_POST["id"]) > 0) { global $APPLICATION; $aFav = Array(); $FAVORITE = $APPLICATION->get_cookie("FAVORITE"); $arTMP = explode(",", $FAVORITE); foreach ($arTMP as $id) { $id = trim($id); if (intval($id) > 0) { $aFav[] = $id; } } $aFav[] = $_POST["id"]; $aFav = array_unique($aFav); $APPLICATION->set_cookie("FAVORITE", implode(",", $aFav), time()+86400); // Ответ $arResult = Array( "status" => "ok" ); echo json_encode($arResult); } } // УДАЛЕНИЕ ИЗ ИЗБРАННОГО if ($_POST["action"] == "unset_favorite") { if (intval($_POST["id"]) > 0) { global $APPLICATION; $aFav = Array(); $FAVORITE = $APPLICATION->get_cookie("FAVORITE"); $arTMP = explode(",", $FAVORITE); foreach ($arTMP as $id) { $id = trim($id); if (intval($id) > 0) { $aFav[] = $id; } } foreach ($aFav as $k=>$v) { if ($v == $_POST["id"]) { unset($aFav[$k]); } } $APPLICATION->set_cookie("FAVORITE", implode(",", $aFav), time()+86400); // Ответ $arResult = Array( "status" => "ok" ); echo json_encode($arResult); } } // ОЧИСТИТЬ ВЕСЬ СПИСОК СРАВНЕНИЯ if ($_POST["action"] == "clear_compare") { $APPLICATION->set_cookie("COMPARE", ""); } if ($_POST["action"] == "check_level") { echo $_SESSION["DISCOUNT_LEVEL"]; } // РАБОТА С КОРЗИНОЙ // ДОБАВЛЕНИЕ В КОРЗИНУ if ($_POST["action"] == "add_to_basket"){ // Получаем инфо о товаре BXClearCache(true, "/el_info/".$_POST['product']."/"); $a = el_info($_POST['product']); if ($a && intval($a['ID']) > 0){ if ($a['CATALOG_PRICE_1'] > 0){ global $aGlobalPrices; if (!$_SESSION["DISCOUNT_LEVEL"]) { $_SESSION["DISCOUNT_LEVEL"] = 1; } /*$qIblock = CIBlock::GetByID($a["IBLOCK_ID"]); $aIblock = $qIblock->GetNext();*/ // CAT_MEASURE_RATIO $q_ratio = CCatalogMeasureRatio::getList(Array(), Array("PRODUCT_ID"=>$a["ID"])); $a_ratio = $q_ratio->GetNext(); $QUANTITY = intval($_POST["quantity"]); if (intval($a_ratio["RATIO"]) > $QUANTITY) { $QUANTITY = $a_ratio["RATIO"]; } $arProps = Array(); $aBasketFields = array( "MODULE" => "catalog", "DETAIL_PAGE_URL" => $a["DETAIL_PAGE_URL"], "PRODUCT_ID" => $a["ID"], "PRODUCT_PRICE_ID" => $_SESSION["DISCOUNT_LEVEL"], "PRICE" => $aGlobalPrices[$a["ID"]][$_SESSION["DISCOUNT_LEVEL"]], /*"PRODUCT_XML_ID" => $a["XML_ID"], "CATALOG_XML_ID" => $aIblock["XML_ID"],*/ "CURRENCY" => "RUB", "QUANTITY" => $QUANTITY, "LID" => LANG, "DELAY" => "N", "CAN_BUY" => "Y", "NAME" => $a["NAME"], "FUSER_ID"=>CSaleBasket::GetBasketUserID(), "PROPS" => $arProps ); $result = CSaleBasket::Add($aBasketFields); if ($result) { $small_basket_html = get_small_basket_html(); // Ответ $arResult = Array( "status" => "ok", "small_basket_html" => $small_basket_html, "new_discount_level" => $_SESSION["DISCOUNT_LEVEL"] ); // Получам ID товаров $tov_ids = $_POST['tov_ids']; // Получаем ценовые блоки $prices_html = get_prices_html ($tov_ids, array(), $_POST['current_id']); if (count($prices_html) > 0){ $arResult['prices_html'] = $prices_html; } echo json_encode($arResult); } } else { // Ответ $arResult = Array( "status" => "zero" ); echo json_encode($arResult); } } } // ПЕРЕСЧЕТ КОЛИЧЕСТВА if ($_POST["action"] == "quantity_change") { if (intval($_POST["id"]) > 0 && intval($_POST["quantity"]) > 0) { CSaleBasket::Update($_POST["id"], Array("QUANTITY"=>$_POST["quantity"])); return_basket(); } } // УДАЛЕНИЕ ИЗ КОРЗИНЫ if ($_POST["action"] == "unset_item") { if (intval($_POST["id"]) > 0) { CSaleBasket::Delete($_POST["id"]); return_basket(); } } // ОЧИСТКА КОРЗИНЫ if ($_POST["action"] == "del_basket"){ CModule::IncludeModule("sale"); CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID()); // Ответ $arResult = Array( "status" => "ok" ); echo htmlspecialchars(json_encode($arResult), ENT_NOQUOTES); } // ОЧИСТКА КОРЗИНЫ if ($_POST["action"] == "clear_basket") { CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID()); return_basket(); } // ОБНОВЛЕНИЕ КОРЗИНЫ if ($_POST["action"] == "update_basket") { return_basket(); } // ОФОРМЛЕНИЕ ЗАКАЗА if ($_POST["action"] == "order_form") { parse_str($_POST["data"], $aFields); global $aGlobalPrices; $q = CSaleBasket::GetList(Array(), Array("FUSER_ID"=>CSaleBasket::GetBasketUserID(), "ORDER_ID"=>false)); $CART_SUM = 0; $DISCOUNT = 0; while ($a = $q->GetNext()) { $CART_SUM = $CART_SUM + ($a["PRICE"]*$a["QUANTITY"]); $base_price = intval($aGlobalPrices[$a["PRODUCT_ID"]][1]); $q_prop = CIBlockElement::GetProperty(2, $a["PRODUCT_ID"], Array(), Array("CODE"=>"OLD_PRICE")); if ($a_prop = $q_prop->GetNext()) { if (intval($a_prop["VALUE"]) > 0) { $base_price = $a_prop["VALUE"]; } } $DISCOUNT += ($base_price*$a["QUANTITY"]) - ($a["PRICE"]*$a["QUANTITY"]); } if (!$USER->IsAuthorized()) { $q = CUser::GetByLogin($aFields["EMAIL"]); if (!$q->SelectedRowsCount()) { // создаем пользователя и авторизуем его $user = new CUser; $password = randString(6, Array("abcdefghijklnmopqrstuvwxyz", "0123456789")); $aUserFields = Array( "EMAIL" => $aFields["EMAIL"], "LOGIN" => $aFields["EMAIL"], "PASSWORD" => $password, "CONFIRM_PASSWORD" => $password, "GROUP_ID" => Array(5), "UF_FIO" => $aFields["UF_FIO"], "UF_COMPANY" => $aFields["UF_COMPANY"], "UF_INN" => $aFields["UF_INN"], "UF_PHONE" => $aFields["UF_PHONE"] ); $ID = $user->Add($aUserFields); if (intval($ID) > 0) { $result = $USER->Login($aUserFields["EMAIL"], $aUserFields["PASSWORD"], "Y"); if (!is_array($result)) { $USER->Authorize($USER->GetID()); $aEventFields = Array( "EMAIL" => $aUserFields["EMAIL"], "PASSWORD" => $aUserFields["PASSWORD"] ); CEvent::SendImmediate("REGISTER", "s1", $aEventFields); } } } else { // логин занят echo "error"; } } // Создаём заказ $aOrderFields = Array( "LID" => "s1", "PERSON_TYPE_ID" => 1, "DELIVERY_ID" => 1, "STATUS_ID" => "N", "PRICE" => $CART_SUM, "DISCOUNT_VALUE" => $DISCOUNT, "CURRENCY" => "RUB", "USER_ID" => $USER->GetID(), "PAY_SYSTEM_ID" => 1 ); $ORDER_ID = CSaleOrder::Add($aOrderFields); if($ORDER_ID){ CSaleBasket::OrderBasket($ORDER_ID); // Инфо о покупателе $PROPERTIES = ""; // Вытягиваем свойства для заказа $qSaleProps = CSaleOrderProps::GetList(Array("SORT"=>"ASC"), Array("ACTIVE"=>"Y")); while ($aSaleProps = $qSaleProps->GetNext()){ if ($aFields[$aSaleProps["CODE"]] && strlen($aFields[$aSaleProps["CODE"]]) > 0){ // Вставляем в заказ значение данного свойства CSaleOrderPropsValue::Add( Array( "ORDER_ID"=>$ORDER_ID, "ORDER_PROPS_ID"=>$aSaleProps["ID"], "NAME"=>$aSaleProps["NAME"], "CODE"=>$aSaleProps["CODE"], "VALUE"=>$aFields[$aSaleProps["CODE"]] ) ); // Формируем разметку для письма if ($aFields[$aSaleProps["CODE"]]){ // Исключаем свойство SKLAD if ($aSaleProps["CODE"] == "SKLAD"){ continue; } $PROPERTIES .= '<p><b>'.$aSaleProps["NAME"].'</b>: '.$aFields[$aSaleProps["CODE"]].';</p>'; } } } // Перебираем корзину $PRODUCTS = ''; $q = CSaleBasket::GetList(Array(), Array("FUSER_ID"=>CSaleBasket::GetBasketUserID(), "ORDER_ID"=>$ORDER_ID)); while ($a = $q->GetNext()) { // Получаем ставки НДС $aNDS = Array(); $rNDS = CCatalogVat::GetListEx(Array(), Array()); while ($NDS = $rNDS->GetNext()) { $aNDS[$NDS["ID"]] = intval($NDS["RATE"]); } // Расчёт суммы НДС $nds = false; $rate = 0; $q_catalog = CCatalogProduct::GetList(Array(), Array("ID"=>$a["PRODUCT_ID"])); if ($a_catalog = $q_catalog->GetNext()){ if ($a_catalog["VAT_ID"]) { $rate = $aNDS[$a_catalog["VAT_ID"]]; if ($a_catalog["VAT_INCLUDED"] == "Y") { $nds = ($a["PRICE"]*$rate)/(100+$rate); } else { $nds = ($a["PRICE"]*$rate)/100; } } } $arSelect = Array("ID", "IBLOCK_ID", "PROPERTY_ARTNUMBER");//IBLOCK_ID и ID обязательно должны быть указаны, см. описание arSelectFields выше $arFilter = Array("IBLOCK_ID"=>2, "ID"=>intval($a["PRODUCT_ID"]), "ACTIVE"=>"Y"); $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect); $artnumber = ''; if($ob = $res->GetNext()){ $artnumber = $ob['PROPERTY_ARTNUMBER_VALUE']; } $rate_html = ''; if($nds){ $rate_html = '(НДС '.$rate.'%)'; } $PRODUCTS .= '<p>Арт. '.$artnumber.' '.$a["NAME"].' - '.number_format($a["QUANTITY"], 2, ",", " ").' шт. по '.number_format($a["PRICE"], 0, ",", " ").' руб. '.$rate_html.'</p>'; } $q = CUser::GetByID($USER->GetID()); $aUser = $q->GetNext(); if ($DISCOUNT > 0) { $DISCOUNT = "<p><strong>Цены на товары указаны с учетом скидки.</strong></p><h2>Общая сумма скидки:</h2>".$DISCOUNT." рублей"; } else { $DISCOUNT = ""; } $VAT = ""; if (intval($aFields["VAT"]) > 0) { $VAT = "<h2>В том числе НДС:</h2>".$aFields["VAT"]." рублей"; } $aEventFields = Array( "EMAIL" => (!$aFields["EMAIL"])?$aUser["EMAIL"]:$aFields["EMAIL"], "ORDER_ID" => $ORDER_ID, "ORDER_DATE" => date("d.m.Y", time()), "PROPERTIES" => $PROPERTIES, "PRODUCTS" => $PRODUCTS, "CART_SUM" => number_format($CART_SUM, 2, ",", " "), "DISCOUNT" => $DISCOUNT, "VAT" => $VAT ); CEvent::SendImmediate("ORDER_USER", "s1", $aEventFields); $aEventFields = Array( "EMAIL" => (!$aFields["EMAIL"])?$aUser["EMAIL"]:$aFields["EMAIL"], "ORDER_ID" => $ORDER_ID, "ORDER_DATE" => date("d.m.Y", time()), "PROPERTIES" => $PROPERTIES, "PRODUCTS" => $PRODUCTS, "CART_SUM" => number_format($CART_SUM, 2, ",", " "), "DISCOUNT" => $DISCOUNT, "VAT" => $VAT ); CEvent::SendImmediate("ORDER_ADMIN", "s1", $aEventFields); echo $ORDER_ID; } } if ($_POST["action"] == "payment") { $_REQUEST["ORDER_ID"] = $_POST["order_id"]; $APPLICATION->IncludeComponent( "bitrix:sale.order.payment", "", Array( ), false ); } // SEARCH if ($_POST["action"] == "search") { $q = trim($_POST["q"]); if (strlen($q) > 0) { $aLogicFilter = Array( "IBLOCK_ID" => 1, Array( "LOGIC" => "OR", Array("NAME" => "%".$q."%") ) ); $q_search = CIBlockElement::GetList(Array("NAME"=>"ASC"), $aLogicFilter, false, Array("nTopCount"=>5), Array("ID", "NAME", "DETAIL_PAGE_URL")); if ($q_search->SelectedRowsCount()) { ?> <div class="drop-down-search"> <? while ($a_search = $q_search->GetNext()) { $a_search["NAME"] = preg_replace("/(".$q.")/iu", '<b>$1</b>', $a_search["NAME"]); ?> <p><a href="<?=$a_search["DETAIL_PAGE_URL"]?>"><?=$a_search["NAME"]?></a></p> <? } ?> </div> <? } } } if ($_POST["action"] == "get_vendors") { $q = $DB->Query("SELECT * FROM tx_carmodels_akb"); while ($a = $q->GetNext()) { $a_data[] = $a["vendor"]; } $a_data = array_unique($a_data); echo '<option value="">марка</option>'; foreach ($a_data as $val) { echo '<option>'.$val.'</option>'; } } if ($_POST["action"] == "get_models") { $vendor = $_POST["vendor"]; $q = $DB->Query("SELECT * FROM tx_carmodels_akb WHERE vendor = '".$vendor."'"); while ($a = $q->GetNext()) { $a_data[] = $a["model"]; } $a_data = array_unique($a_data); echo '<option value="">модель</option>'; foreach ($a_data as $val) { echo '<option>'.$val.'</option>'; } } if ($_POST["action"] == "get_models") { $vendor = $_POST["vendor"]; $model = $_POST["model"]; $q = $DB->Query("SELECT * FROM tx_carmodels_akb WHERE vendor = '".$vendor."' AND model = '".$model."'"); while ($a = $q->GetNext()) { $a_data[] = $a["modification"]; } $a_data = array_unique($a_data); echo '<option value="">модификация</option>'; foreach ($a_data as $val) { echo '<option>'.$val.'</option>'; } } if ($_POST["action"] == "get_types") { if ($_POST["type"] == 2) { $q = $DB->Query("SELECT * FROM `tx_carmodels_akb` ORDER BY `tx_carmodels_akb`.`model` ASC"); while ($a = $q->GetNext()) { if ($a["vendor"] == $_POST["vendor"]) { $aCars[] = $a["model"]; } } $aCars = array_unique($aCars); echo '<option value="">модель</option>'; foreach ($aCars as $car) { echo '<option>'.$car.'</option>'; } } if ($_POST["type"] == 3) { $q = $DB->Query("SELECT * FROM `tx_carmodels_akb` ORDER BY `tx_carmodels_akb`.`modification` ASC"); while ($a = $q->GetNext()) { if ($a["vendor"] == $_POST["vendor"] && $a["model"] == $_POST["model"]) { $aCars[$a["id"]] = $a["modification"]; } } //$aCars = array_unique($aCars); echo '<option>модификация</option>'; foreach ($aCars as $id=>$car) { echo '<option>'.$car.'</option>'; } } if ($_POST["type"] == 4) { $vendor = $_POST["vendor"]; $model = $_POST["model"]; $modification = $_POST["modification"]; $q = $DB->Query("SELECT * FROM tx_carmodels_akb WHERE vendor = '".$vendor."' AND model = '".$model."' AND modification = '".$modification."'"); if ($a = $q->GetNext()) { $modification_id = $a["id"]; } $q = $DB->Query("SELECT * FROM tx_akbspecifications WHERE carmodel_id = '".$modification_id."'"); while ($a = $q->GetNext()) { ?> <input type="hidden" name="length" value="<?=$a["length"]?>" /> <input type="hidden" name="width" value="<?=$a["width"]?>" /> <input type="hidden" name="height" value="<?=$a["height"]?>" /> <input type="hidden" name="capacity" value="<?=$a["capacity"]?>" /> <? if (1==2) { ?> <input type="hidden" name="starting_current" value="<?=$a["starting_current"]?>" /> <input type="hidden" name="polarity" value="<?=$a["polarity"]?>" /> <input type="hidden" name="terminal_type" value="<?=$a["terminal_type"]?>" /> <input type="hidden" name="voltage" value="<?=$a["voltage"]?>" /> <? } ?> <? } } } // ПОДПИСКА НА РАССЫЛКУ - КАБИНЕТ if ($_POST["action"] == "subscribe_form") { parse_str($_POST["data"], $aFields); CModule::IncludeModule("subscribe"); $aSubscriptionFields = Array( "USER_ID" => $USER->GetID(), "FORMAT" => "html", "EMAIL" => $aFields["EMAIL"], "ACTIVE" => "Y", "CONFIRMED" => "Y", "RUB_ID" => $aFields["RUB_ID"], "SEND_CONFIRM" => "N" ); $subscribtion = new CSubscription; $q = CSubscription::GetList(Array(), Array("USER_ID"=>$USER->GetID(), "EMAIL"=>$aFields["EMAIL"])); if ($a = $q->GetNext()) { $subscribtion->Update($a["ID"], $aSubscriptionFields); } else { $subscribtion->Add($aSubscriptionFields); } } // ПОДПИСКА НА РАССЫЛКУ - EMAIL if ($_POST["action"] == "subscribe_form_simple") { CModule::IncludeModule("subscribe"); $aSubscriptionFields = Array( "FORMAT" => "html", "EMAIL" => $_POST["email"], "ACTIVE" => "Y", "CONFIRMED" => "Y", "RUB_ID" => Array(1), "SEND_CONFIRM" => "N" ); $subscribtion = new CSubscription; $q = CSubscription::GetList(Array(), Array("EMAIL"=>$_POST["email"])); if ($a = $q->GetNext()) { echo 'Ваш E-mail уже участвует в рассылке.'; } else { $subscribtion->Add($aSubscriptionFields); echo 'Вы успешно подписаны на рассылку!'; $aEventFields = Array( "EMAIL" => $_POST["email"] ); CEvent::SendImmediate("NEW_SUBSCRIBER", "s1", $aEventFields); } } // ОБРАТНАЯ СВЯЗЬ if ($_POST["action"] == "feedback_form") { parse_str($_POST["data"], $aEventFields); CEvent::SendImmediate("FEEDBACK_FORM", "s1", $aEventFields); } if ($_POST["action"] == "get_groups") { $SORT_FIELD = "SORT"; $SORT_ORDER = "ASC"; if ($_POST["sort"] != "category") { $SORT_FIELD = "NAME"; $SORT_ORDER = "ASC"; } $a_level_1 = Array(); $a_level_2 = Array(); $a_level_3 = Array(); $q = CIBlockSection::GetList(Array($SORT_FIELD=>$SORT_ORDER), Array("IBLOCK_ID"=>2, "ACTIVE"=>"Y")); while ($a = $q->GetNext()) { if ($a["DEPTH_LEVEL"] == 1) { $a_level_1[] = $a; } elseif ($a["DEPTH_LEVEL"] == 2) { $a_level_2[$a["IBLOCK_SECTION_ID"]][] = $a; } elseif ($a["DEPTH_LEVEL"] == 3) { $a_level_3[$a["IBLOCK_SECTION_ID"]][] = $a; } } ?> <div class="dropdown-menu-col"> <ul class="dropdown-menu-list"> <? //pre($a_level_2[$level_1["ID"]]); // определяем общее кол-во подразделов 2-го и 3-го уровня $total_cnt=0; foreach ($a_level_2[$level_1["ID"]] as $level_2) { $total_cnt++; foreach ($a_level_3[$level_2["ID"]] as $level_3) { $total_cnt++; } } $ceil = ceil($total_cnt/3); $cnt=0; foreach ($a_level_2[$_POST["id"]] as $level_2) { $cnt++; ?> <li> <a href="<?=$level_2["SECTION_PAGE_URL"]?>"><?=$level_2["NAME"]?></a> <? if (count($a_level_3[$level_2["ID"]]) > 0) { ?> <ul> <? foreach ($a_level_3[$level_2["ID"]] as $level_3) { //$cnt++; ?> <li><a href="<?=$level_3["SECTION_PAGE_URL"]?>"><?=$level_3["NAME"]?></a></li> <? if ($cnt/$ceil == intval($cnt/$ceil) && 1==2) { ?> </ul> </li> </ul> </div> <!-- /.dropdown-menu-col --> <div class="dropdown-menu-col"> <ul class="dropdown-menu-list"> <li><a href="<?=$level_2["SECTION_PAGE_URL"]?>"><?=$level_2["NAME"]?></a> <ul> <? } ?> <? } ?> </ul> <? } ?> </li> <?// if ($cnt/$ceil == intval($cnt/$ceil)) { ?> <? $aCounters = Array( 17 => Array(2, 6), 1 => Array(9, 13), 28 => Array(3, 6), 18 => Array(7, 13), 210 => Array(1), 234 => Array(5, 11) ); if ($_POST["sort"] != "category") { $aCounters = Array( 17 => Array(5, 7), 1 => Array(9, 13), 28 => Array(3, 6), 18 => Array(7, 13), 210 => Array(1), 234 => Array(7, 10) ); } ?> <? foreach ($aCounters as $key=>$val) { ?> <? if ($_POST["id"] == $key && in_array($cnt, $aCounters[$key])) { ?> </ul> </div> <!-- /.dropdown-menu-col --> <div class="dropdown-menu-col"> <ul class="dropdown-menu-list"> <? } ?> <? } ?> <? } ?> </ul> </div> <!-- /.dropdown-menu-col --> <? } if ($_POST["action"] == "repeat_order") { if (intval($_POST["order_id"]) > 0) { $q_basket = CSaleBasket::GetList(Array(), Array("ORDER_ID"=>$_POST["order_id"])); while ($a_basket = $q_basket->GetNext()) { $q = CIBlockElement::GetList(Array(), Array("IBLOCK_ID"=>2, "ID"=>$a_basket["PRODUCT_ID"]), false, Array("nTopCount"=>1), Array("ID", "NAME", "DETAIL_PAGE_URL", "CATALOG_GROUP_1", "IBLOCK_ID", "XML_ID")); if ($a = $q->GetNext()) { global $aGlobalPrices; if (!$_SESSION["DISCOUNT_LEVEL"]) { $_SESSION["DISCOUNT_LEVEL"] = 1; } /*$qIblock = CIBlock::GetByID($a["IBLOCK_ID"]); $aIblock = $qIblock->GetNext();*/ // CAT_MEASURE_RATIO $q_ratio = CCatalogMeasureRatio::getList(Array(), Array("PRODUCT_ID"=>$a["ID"])); $a_ratio = $q_ratio->GetNext(); $QUANTITY = 1; if (intval($a_ratio["RATIO"]) > 1) { $QUANTITY = $a_ratio["RATIO"]; } $arProps = Array(); $aBasketFields = array( "MODULE" => "catalog", "DETAIL_PAGE_URL" => $a["DETAIL_PAGE_URL"], "PRODUCT_ID" => $a["ID"], "PRODUCT_PRICE_ID" => $_SESSION["DISCOUNT_LEVEL"], "PRICE" => $aGlobalPrices[$a["ID"]][$_SESSION["DISCOUNT_LEVEL"]], /*"PRODUCT_XML_ID" => $a["XML_ID"], "CATALOG_XML_ID" => $aIblock["XML_ID"],*/ "CURRENCY" => "RUB", "QUANTITY" => $QUANTITY, "LID" => LANG, "DELAY" => "N", "CAN_BUY" => "Y", "NAME" => $a["NAME"], "FUSER_ID"=>CSaleBasket::GetBasketUserID(), "PROPS" => $arProps ); $result = CSaleBasket::Add($aBasketFields); } } return_basket(); } } // Подсчёт товаров по фильтру if ($_POST["action"] == "filter_count") { $smart_form_array = Array(); parse_str($_POST["smart_form_data"], $smart_form_array); unset($smart_form_array['view']); unset($smart_form_array['set_filter']); foreach ($smart_form_array as $key => $value){ if (substr_count($key, 'type_arrFilter_')){ unset($smart_form_array[$key]); } } $smart_form_double_array = Array(); parse_str($_POST["smart_form_double_data"], $smart_form_double_array); $smart_prop_types_form_array = Array(); parse_str($_POST["smart_prop_types_form_data"], $smart_prop_types_form_array); // Получаем ID раздела $q = CIBlockSection::GetList(Array(), Array("IBLOCK_ID"=>2, "CODE"=>$_POST["SECTION_CODE"])); $a_section = $q->GetNext(); // Формируем поля для запроса $fields = Array("ID"); $filter = Array("IBLOCK_ID"=>2, "ACTIVE"=>"Y", "INCLUDE_SUBSECTIONS"=>"Y"); if (intval($a_section["ID"]) > 0){ $filter['SECTION_ID'] = $a_section["ID"]; } if(is_array($smart_form_array) && count($smart_form_array) > 0){ foreach ($smart_form_array as $key => $value){ $key_array = explode("_", $key); if ($value == 'Y'){ $prop_id = $key_array[1]; // Получаем код свойства $prop_res = CIBlockProperty::GetByID(intval($prop_id)); if($el_prop = $prop_res->GetNext()){ $prop_code = $el_prop['CODE']; } if (!in_array('PROPERTY_'.$prop_code, $fields)){ $fields[] = 'PROPERTY_'.$prop_code; } if ($smart_form_double_array[$key]){ if ($smart_prop_types_form_array['type_'.$key] == 'E'){ CModule::IncludeModule("iblock"); $q = CIBlockElement::GetList(Array("SORT"=>"ASC"), Array("IBLOCK_ID"=>14, "ACTIVE"=>"Y", "=NAME" => $smart_form_double_array[$key]), false, Array("nTopCount"=>1), Array("ID", "NAME")); while ($a = $q->GetNext()){ $filter['PROPERTY_'.$prop_code][] = $a['ID']; } } else if ($smart_prop_types_form_array['type_'.$key] == 'L'){ $enum_id = false; $property_enums = CIBlockPropertyEnum::GetList(Array(), Array("IBLOCK_ID"=>2, "CODE"=>$prop_code)); while($enum_fields = $property_enums->GetNext()){ if ($smart_form_double_array[$key] == $enum_fields['VALUE']){ $enum_id = $enum_fields['ID']; } } if ($enum_id){ $filter['=PROPERTY_'.$prop_id][] = $enum_id; } } else if ($smart_prop_types_form_array['type_'.$key] == 'S'){ $filter['=PROPERTY_'.$prop_id][] = $smart_form_double_array[$key]; } } } else if (substr_count($key, '_MIN') || substr_count($key, '_MAX')){ $prop_id = $key_array[1]; // Получаем код свойства $prop_res = CIBlockProperty::GetByID(intval($prop_id)); if($el_prop = $prop_res->GetNext()){ $prop_code = $el_prop['CODE']; } if (!in_array('PROPERTY_'.$prop_code, $fields)){ $fields[] = 'PROPERTY_'.$prop_code; } if (substr_count($key, '_MIN')){ $filter['>=PROPERTY_'.$prop_code] = $value; } else if (substr_count($key, '_MAX')){ $filter['<=PROPERTY_'.$prop_code] = $value; } } } } // Запрашиваем элементы $ids = array(); CModule::IncludeModule("iblock"); $qqq = CIBlockElement::GetList(Array('SORT' => 'ASC'), $filter, false, false, $fields); while ($aaa = $qqq->GetNext()){ if (!in_array($aaa['ID'], $ids)){ $ids[] = $aaa['ID']; } } $total_tov_cnt = count($ids); // Ответ $arResult = Array( "status" => "ok", "cnt" => $total_tov_cnt, "cnt_word" => pfCnt($total_tov_cnt, "товар", "товара", "товаров") ); echo htmlspecialchars(json_encode($arResult), ENT_NOQUOTES); } if ($_POST["action"] == "basket_print_refresh") { global $aGlobalPrices; $CART_COUNT = 0; $CART_SUM = 0; $aCART_SUM = Array(); $q = CSaleBasket::GetList(Array(), Array("FUSER_ID"=>CSaleBasket::GetBasketUserID(), "ORDER_ID"=>false)); while ($a = $q->GetNext()) { $CART_COUNT = $CART_COUNT + intval($a["QUANTITY"]); $CART_SUM = $CART_SUM + intval($a["PRICE"]*$a["QUANTITY"]); foreach ($aGlobalPrices[$a["PRODUCT_ID"]] as $key=>$value) { $aCART_SUM[$key] = $aCART_SUM[$key] + intval($value*$a["QUANTITY"]); } } // VAT $aVAT = Array(); $q = CCatalogVat::GetListEx(Array(), Array()); while ($a = $q->GetNext()) { $aVAT[$a["ID"]] = intval($a["RATE"]); } $vat_total = 0; $discount = 0; $q = CSaleBasket::GetList(Array(), Array("FUSER_ID"=>CSaleBasket::GetBasketUserID(), "ORDER_ID"=>false)); while ($a = $q->GetNext()) { $q_product = CIBlockElement::GetList(Array(), Array("IBLOCK_ID"=>2, "ID"=>$a["PRODUCT_ID"]), false, Array("nTopCount"=>1), Array("ID", "XML_ID", "DETAIL_PICTURE", "PREVIEW_TEXT", "DETAIL_TEXT", "PROPERTY_RATING", "PROPERTY_OLD_PRICE")); $a_product = $q_product->GetNext(); $photo = "/upload/no_photo_270_270.png"; if ($a_product["DETAIL_PICTURE"]) { $photo = $a_product["DETAIL_PICTURE"]; } $oldprice = false; if ($aGlobalPrices[$a["PRODUCT_ID"]][1] > $aGlobalPrices[$a["PRODUCT_ID"]][2]) { $oldprice = $aGlobalPrices[$a["PRODUCT_ID"]][1]; } if ($a_product["PROPERTY_OLD_PRICE_VALUE"]) { $oldprice = intval($a_product["PROPERTY_OLD_PRICE_VALUE"]); } $price = intval($aGlobalPrices[$a["PRODUCT_ID"]][$_SESSION["DISCOUNT_LEVEL"]]); if ($oldprice) { $discount += ($oldprice*$a["QUANTITY"]) - ($price*$a["QUANTITY"]); } if (!$a_product["PREVIEW_TEXT"]) { $a_product["PREVIEW_TEXT"] = substr(strip_tags($a_product["DETAIL_TEXT"]), 0, 150)."..."; } // CAT_MEASURE_RATIO $RATIO = 1; $q_ratio = CCatalogMeasureRatio::GetList(Array(), Array("PRODUCT_ID"=>$a["PRODUCT_ID"])); $a_ratio = $q_ratio->GetNext(); if (intval($a_ratio["RATIO"]) > 1) { $RATIO = $a_ratio["RATIO"]; } // VAT VALUE $vat = false; $q_catalog = CCatalogProduct::GetList(Array(), Array("ID"=>$a["PRODUCT_ID"])); if ($a_catalog = $q_catalog->GetNext()) { if ($a_catalog["VAT_ID"]) { $vat = $aVAT[$a_catalog["VAT_ID"]]; } } $sub_vat = 0; if ($vat) { $sub_vat = ($price*$vat)/(100+$vat); } if ($sub_vat > 0) { $vat_total += $sub_vat*$a["QUANTITY"]; } // формируем массив для документов $arBasket[] = array( "PRODUCT_ID" => $a["PRODUCT_ID"], "PRODUCT_XML_ID" => $a_product["XML_ID"], "PRODUCT_EXTERNAL_ID" => $a_product["XML_ID"], "NAME" => $a["NAME"], "BASE_PRICE" => $price, "CURRENT_PRICE" => $price, "CURRENCY" => $a["CURRENCY"], "QUANTITY" => $a["QUANTITY"], "VAT_RATE" => number_format($sub_vat*$a["QUANTITY"], 2, '.', ' ' ) ); } // формируем массив для документов $arOrder = array( "DOCUMENT_NAME" => "Коммерческое предложение №".(($USER->IsAuthorized()) ? $USER->GetID() : "kp")."_".date("ymd_his")." от ".ConvertTimeStamp(time(), "SHORT"), "FILE_NAME" => (($USER->IsAuthorized()) ? $USER->GetID() : "kp")."_".date("ymd_his"), "BASKET" => $arBasket, "BaseSum" => FormatCurrency($aCART_SUM[1], CCurrency::GetBaseCurrency()), "CurrentSum" => FormatCurrency($aCART_SUM[$_SESSION["DISCOUNT_LEVEL"]], CCurrency::GetBaseCurrency()), "SaleSum" => FormatCurrency($discount, CCurrency::GetBaseCurrency()), "VatSum" => number_format($vat_total, 2, '.', ' ' )." руб.", "DETAIL_PRICE" => "Всего наименований ".count($arBasket)." на ".FormatCurrency($aCART_SUM[$_SESSION["DISCOUNT_LEVEL"]], CCurrency::GetBaseCurrency()), "USER_SUBSCRIBE" => (int)0, "USER_AUTHORIZE" => (int)$USER->IsAuthorized() ); ?> <form name="getOrderDetail" action="/downloadorder/download_file.php" method="post"> <input type="hidden" name="arOrder" value="<?=htmlspecialchars(serialize($arOrder), ENT_QUOTES, 'UTF8')?>" /> <input type="submit" name="toWord" value="Сохранить коммерческое предложение" /> </form> <form name="getOrderDetail" action="/downloadorder/print_file.php" method="post" target="_blank"> <input type="hidden" name="arOrder" value="<?=htmlspecialchars(serialize($arOrder), ENT_QUOTES, 'UTF8')?>" /> <input type="submit" name="toPrint" value="Распечатать коммерческое предложение" /> </form> <? } if ($_POST["action"] == "feedback"){ // Данные формы $arFields = Array(); parse_str($_POST["form_data"], $arFields); // Создаём новый элемент инфоблока /*$el = new CIBlockElement; $PROP[1] = $arFields['name']; $PROP[3] = $arFields['phone']; $PROP[4] = $arFields['email']; $arLoadProductArray = Array( "IBLOCK_ID" => 2, "PROPERTY_VALUES" => $PROP, "NAME" => "Новое сообщение", "ACTIVE" => "Y", "PREVIEW_TEXT" => $arFields['message'] ); $ID = $el->Add($arLoadProductArray); if($ID){*/ // Отправляем письмо $arEventFields = Array( "NAME" => $arFields["name"], "PHONE" => $arFields["phone"]?$arFields["phone"]:'-', "EMAIL" => $arFields["email"]?$arFields["email"]:'-', "MESSAGE" => $arFields["message"]?$arFields["message"]:'-', ); CEvent::SendImmediate("FEEDBACK", "s1", $arEventFields); // Ответ $arResult = Array( "status" => "ok" ); echo json_encode($arResult); //} } require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); ?>
/var/./././backup/external_www/new02.medcomp.ru/include/functions.php.bak