uawdijnntqw1x1x1
IP : 216.73.216.207
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
/
/
<? require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); CModule::IncludeModule("catalog"); CModule::IncludeModule("iblock"); CModule::IncludeModule("sale"); $action = param_post('action'); if ($action == "delivery_print"){ $_SESSION['delivery_print'] = '<div style="font-size: 20px; padding: 20px">'.param_post('html').'<div>'; // Массив ответа $arResult = Array( "status" => "ok" ); // Ответ echo json_encode($arResult); } if ($action == "pdf_save") { $_SESSION['pdf_save'] = '<div style="font-size: 16px; padding: 20px;"><h1 style="font-size: 23px;">Расчёт стоимости доставки груза</h1>'.param_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 ($action == "get_delivery_prices") { // Проверяем города $city_from = param_post('city_from'); $city_from_error = true; $upCity_from = trim(strtoupper($city_from)); $city_to = param_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>Вес груза: '.param_post('weight').' кг</p>'; $html .= '<p>Объём груза: '.param_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(param_post('volume'), 5), 'sizedWeight' => round(param_post('weight'), 5) ) ); $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(param_post('volume'), 1/3), 1), '1' => round(pow(param_post('volume'), 1/3), 1), '2' => round(pow(param_post('volume'), 1/3), 1),*/ '3' => round(param_post('volume'), 5), '4' => round(param_post('weight'), 5), /*'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*/ ); $get_string = array_to_get_string($request_array); $result = file_get_contents('http://calc.pecom.ru/bitrix/components/pecom/calc/ajax.php'.$get_string); $array = get_json_array($result); // Запрос if ($result){ // Получаем массив из json $array = get_json_array($result); $pecom_price = ($array['auto'][2] * 1); } } // Если имеются рассчитанные цены 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 ($action == "get_delivery_status") { // ДЕЛОВЫЕ ЛИНИИ if (param_post('delivery_company') == 'dellines') { // формируем параметры запроса $postdata = json_encode( array( 'appKey' => '165585EE-4F34-11E6-8899-00505683A6D3', 'docid' => param_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 (param_post('delivery_company') == 'pek') { // Подключение файла с классом require_once($_SERVER["DOCUMENT_ROOT"]."/include/pecom_kabinet.php"); $sdk = new PecomKabinet('medkompleks', '665E7552C67F2D25F8919F0CE784DA8A1F28130E'); $result = $sdk->call('cargos', 'status', array('cargoCodes' => array(param_post('code')))); // Запрос успешный if ($result) { // Есть ошибки if (!empty($result->error)) { // Массив ответа $arResult = Array( "status" => "error", "text" => $result->error->message ); // Ошибок нет } else { // формируем разметку ответа $arrived = array('arrived', 'warehousing', 'airport_warehousing'); $html = '<div class="calc-form_info calc-status_info">'; $html .= '<p>'; // Если груз прибыл if (isset($result->cargos[0]->info->arrivalDateTime)){ $html .= '<i class="fa fa-map-marker"></i>'; } $html .= 'Статус: '.date("d.m.Y").' '.$result->cargos[0]->info->cargoStatus; // Если груз прибыл if (isset($result->cargos[0]->info->arrivalDateTime)){ $html .= ' в '.$result->cargos[0]->receiver->branch->divisionName; } $html .= '</p>'; //if ($result->cargos[0]->info->cargoStatus == 'Возвращен отправителю'){ // $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 ($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.' '; }*/ } } } // АВТОРИЗАЦИЯ if ($action == "auth_form") { parse_str(param_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 ($action == "restore_form_1") { parse_str(param_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 ($action == "restore_form_2") { parse_str(param_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 ($action == "register_form") { parse_str(param_post('data'), $aUserFields); $q = CUser::GetByLogin($aUserFields["EMAIL"]); if ($q->SelectedRowsCount() > 0) { echo "error"; } else { $user = new CUser; $aUserFields["ACTIVE"] = "N"; $aUserFields["LOGIN"] = $aUserFields["EMAIL"]; $aUserFields["GROUP_ID"] = Array(5); $aUserFields["CONFIRM_PASSWORD"] = $aUserFields["PASSWORD"]; $ID = $user->Add($aUserFields); if (intval($ID) > 0) { if($aUserFields['NEED_SUBSCRIBE']=='Y'){ $NEED_SUBSCRIBE = 'true'; }else{ $NEED_SUBSCRIBE = 'false'; } if($aUserFields['UF_ACTION_TYPE']==12){ $UF_ACTION_TYPE = 'medicine'; }elseif($aUserFields['UF_ACTION_TYPE']==13){ $UF_ACTION_TYPE = 'sale'; }else{ $UF_ACTION_TYPE = 'other'; } $UF_DATETIME = date('Y-m-d').'T'.date('H:i:s'); $arParams = array( 'EMAIL' => $aUserFields["EMAIL"], 'NAME' => $aUserFields["NAME"], 'UF_ACTION_TYPE' => $UF_ACTION_TYPE, 'UF_COMPANY' => $aUserFields["UF_COMPANY"], 'NEED_SUBSCRIBE' => $NEED_SUBSCRIBE, 'UF_DATETIME' => $UF_DATETIME, 'UF_USER_ID' => $ID, 'UF_REG' => 'true' ); $result = AddAndUpdateSubscriberReg($arParams); if($NEED_SUBSCRIBE == 'true'){ $result = AddAndUpdateSubscriberSub($arParams); } //$result = $USER->Login($aUserFields["EMAIL"], $aUserFields["PASSWORD"], "Y"); //if (!is_array($result)) { //$USER->Authorize($USER->GetID()); $aEventFields = Array( "ID" => $ID, "EMAIL" => $aUserFields["EMAIL"], "PASSWORD" => $aUserFields["PASSWORD"] ); CEvent::SendImmediate("REGISTER", "s1", $aEventFields); echo "success"; //} } } } if ($action == "reload_captcha") { echo $APPLICATION->CaptchaGetCode(); } // ИЗМЕНЕНИЕ ДАННЫХ if ($action == "personal_form") { if ($USER->IsAuthorized()) { $user = new CUser; parse_str(param_post('data'), $aUserFields); $aUserFields["LOGIN"] = $aUserFields["EMAIL"]; $user->Update($USER->GetID(), $aUserFields); } } if ($action == "passchange_form") { if ($USER->IsAuthorized()) { parse_str(param_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 ($action == "add_favorite") { if (intval(param_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[] = param_post('id'); $aFav = array_unique($aFav); $APPLICATION->set_cookie("FAVORITE", implode(",", $aFav), time()+86400); // Ответ $arResult = Array( "status" => "ok" ); echo json_encode($arResult); } } // УДАЛЕНИЕ ИЗ ИЗБРАННОГО if ($action == "unset_favorite") { if (intval(param_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 == param_post('id')) { unset($aFav[$k]); } } $APPLICATION->set_cookie("FAVORITE", implode(",", $aFav), time()+86400); // Ответ $arResult = Array( "status" => "ok" ); echo json_encode($arResult); } } // ДОБАВЛЕНИЕ В СРАВНЕНИЕ if ($_POST["action"] == "add_to_compare") { $count = 0; $count_section = 0; $el_name = ''; $el_section = ''; $img = ' <div class="compare-modal-info__img"> <img alt="" src="/bitrix/templates/medcomp/img/compare-img.jpg"> </div> '; if (intval($_POST["product"]) > 0) { global $APPLICATION; $arElem = el_info($_POST["product"]); $el_name = $arElem['NAME']; $arFile = CFile::GetFileArray(intval($arElem['DETAIL_PICTURE'])); if(strlen($arFile['SRC'])>0){ $img = ' <div class="compare-modal-info__img"> <img alt="" src="'.$arFile['SRC'].'"> </div> '; } $arSection = section_info(intval($arElem['IBLOCK_SECTION_ID'])); $el_section = $arSection['NAME']; $arCompare = Array(); $COMPARE = $APPLICATION->get_cookie("COMPARE"); $arTMP = explode(",", $COMPARE); foreach ($arTMP as $id) { $id = trim($id); if (intval($id) > 0) { $arCompare[] = $id; } } $arCompare[] = $_POST["product"]; $arCompare = array_unique($arCompare); $APPLICATION->set_cookie("COMPARE", implode(",", $arCompare), time()+86400); $count = count($arCompare); foreach($arCompare as $el_id){ $arElem_ = el_info($el_id); if($arElem_['IBLOCK_SECTION_ID']==$arElem['IBLOCK_SECTION_ID']){ $count_section++; } } } // Ответ $arResult = Array( "count" => $count, "el_name" => $el_name, "el_section" => $el_section, "count_str" => $count_section.' '.pfCnt($count, "товар", "товара", "товаров"), "count_section" => $count_section, "img" => $img, ); echo json_encode($arResult); } // УДАЛЕНИЕ ИЗ СРАВНЕНИЯ if ($_POST["action"] == "remove_from_compare") { $count = 0; $count_section = 0; $el_name = ''; $el_section = ''; $img = ' <div class="compare-modal-info__img"> <img alt="" src="/bitrix/templates/medcomp/img/compare-img.jpg"> </div> '; if (intval($_POST["product"]) > 0) { global $APPLICATION; $arElem = el_info($_POST["product"]); $el_name = $arElem['NAME']; $arFile = CFile::GetFileArray($arElem['DETAIL_PICTURE']); if(strlen($arFile['SRC'])>0){ $img = ' <div class="compare-modal-info__img"> <img alt="" src="'.$arFile['SRC'].'"> </div> '; } $arSection = section_info(intval($arElem['IBLOCK_SECTION_ID'])); $el_section = $arSection['NAME']; $arCompare = Array(); $COMPARE = $APPLICATION->get_cookie("COMPARE"); $arTMP = explode(",", $COMPARE); foreach ($arTMP as $id) { $id = trim($id); if (intval($id) > 0) { $arCompare[] = $id; } } foreach ($arCompare as $k=>$v) { if ($v == $_POST["product"]) { unset($arCompare[$k]); } } $APPLICATION->set_cookie("COMPARE", implode(",", $arCompare), time()+86400); $count = count($arCompare); foreach($arCompare as $el_id){ $arElem_ = el_info($el_id); if($arElem_['IBLOCK_SECTION_ID']==$arElem['IBLOCK_SECTION_ID']){ $count_section++; } } } // Ответ $arResult = Array( "count" => $count, "el_name" => $el_name, "el_section" => $el_section, "count_str" => $count_section.' '.pfCnt($count, "товар", "товара", "товаров"), "count_section" => $count_section, "img" => $img, ); echo json_encode($arResult); } // УДАЛЕНИЕ ГРУППЫ ИЗ СРАВНЕНИЯ if ($_POST["action"] == "remove_section_from_compare") { $count = 0; $count_section = 0; if (intval($_POST["sec_id"]) > 0) { global $APPLICATION; $arCompare = Array(); $COMPARE = $APPLICATION->get_cookie("COMPARE"); $arTMP = explode(",", $COMPARE); foreach ($arTMP as $id) { $id = trim($id); if (intval($id) > 0) { $arCompare[] = $id; } } foreach ($arCompare as $k=>$v) { $arElem = el_info(intval($v)); $arSection = section_info(intval($arElem['IBLOCK_SECTION_ID'])); $find = false; $r_sects = CIBlockSection::GetNavChain(2, intval($arElem['IBLOCK_SECTION_ID'])); while ($sect = $r_sects->GetNext()) { if($sect['ID']==intval($_POST['sec_id'])){ $find = true; break; } } if($find===true) { unset($arCompare[$k]); } } $APPLICATION->set_cookie("COMPARE", implode(",", $arCompare), time()+86400); $count = count($arCompare); foreach($arCompare as $el_id){ $arElem_ = el_info($el_id); if($arElem_['IBLOCK_SECTION_ID']==$arElem['IBLOCK_SECTION_ID']){ $count_section++; } } } // Ответ $arResult = Array( "count" => $count, "count_section" => $count_section, ); echo json_encode($arResult); } // ОЧИСТИТЬ ВЕСЬ СПИСОК СРАВНЕНИЯ if ($action == "clear_compare") { $APPLICATION->set_cookie("COMPARE", ""); } if ($action == "check_level") { echo $_SESSION["DISCOUNT_LEVEL"]; } // РАБОТА С КОРЗИНОЙ // ДОБАВЛЕНИЕ В КОРЗИНУ КОМПЛЕКТА if ($action == "add_to_basket_complect"){ $pr = array(); $data = explode('|', param_post('data')); foreach ($data as $row) { if ($row != '') { $dt = explode(':', $row); $pr[$dt[0]] = $dt[1]; } } foreach ($pr as $key=>$row) { // Получаем инфо о товаре BXClearCache(true, "/el_info/".$key."/"); $a = el_info_no_cache($key); $el = $a; //file_put_contents ( $_SERVER['DOCUMENT_ROOT'].'/event1.txt' , $key); if ($a && intval($a['ID']) > 0) { global $aGlobalPrices; if (!$_SESSION["DISCOUNT_LEVEL"]) $_SESSION["DISCOUNT_LEVEL"] = 1; // CAT_MEASURE_RATIO $q_ratio = CCatalogMeasureRatio::getList(Array(), Array("PRODUCT_ID"=>$a["ID"])); $a_ratio = $q_ratio->GetNext(); $QUANTITY = intval($row); if (intval($a_ratio["RATIO"]) > $QUANTITY) $QUANTITY = $a_ratio["RATIO"]; $arProps = Array(); if(intval($a["XML_ID"])<1) $a["XML_ID"] = $a["ID"]; $aBasketFields = array( "MODULE" => "catalog", "DETAIL_PAGE_URL" => $a["DETAIL_PAGE_URL"], "PRODUCT_ID" => $a["ID"], "PRODUCT_PRICE_ID" => getPriceLevel($a["ID"], 'priceID'), "PRICE" => getPriceLevel($a["ID"]), "PRODUCT_XML_ID" => $a["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) { // it's ok } } } $small_basket_html = get_small_basket_html(); // Ответ $arResult = Array( "status" => "ok", "small_basket_html" => $small_basket_html ); echo json_encode($arResult); } // ДОБАВЛЕНИЕ В КОРЗИНУ if ($action == "add_to_basket"){ // Получаем инфо о товаре BXClearCache(true, "/el_info/".param_post('product')."/"); $a = el_info_no_cache(param_post('product')); $el = $a; //file_put_contents ( $_SERVER['DOCUMENT_ROOT'].'/event1.txt' , param_post('product')); if ($a && intval($a['ID']) > 0){ if ($a['CATALOG_PRICE_1'] > 0){ global $aGlobalPrices; if (!$_SESSION["DISCOUNT_LEVEL"]) { $_SESSION["DISCOUNT_LEVEL"] = 1; } // CAT_MEASURE_RATIO $q_ratio = CCatalogMeasureRatio::getList(Array(), Array("PRODUCT_ID"=>$a["ID"])); $a_ratio = $q_ratio->GetNext(); $QUANTITY = intval(param_post('quantity')); if (intval($a_ratio["RATIO"]) > $QUANTITY) { $QUANTITY = $a_ratio["RATIO"]; } $arProps = Array(); if(intval($a["XML_ID"])<1){ $a["XML_ID"] = $a["ID"]; } $aBasketFields = array( "MODULE" => "catalog", "DETAIL_PAGE_URL" => $a["DETAIL_PAGE_URL"], "PRODUCT_ID" => $a["ID"], "PRODUCT_PRICE_ID" => getPriceLevel($a["ID"], 'priceID'), "PRICE" => getPriceLevel($a["ID"]), "PRODUCT_XML_ID" => $a["XML_ID"], "CURRENCY" => "RUB", "QUANTITY" => $QUANTITY, "LID" => LANG, "DELAY" => "N", "CAN_BUY" => "Y", "NAME" => $a["NAME"], "FUSER_ID"=>CSaleBasket::GetBasketUserID(), "PROPS" => $arProps ); // file_put_contents($_SERVER['DOCUMENT_ROOT'].'/bas.txt', date('[Y-m-d H:i:s] ').$a["ID"].' - '.json_encode($aGlobalPrices[$a["ID"]], JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE). PHP_EOL, FILE_APPEND); $result = CSaleBasket::Add($aBasketFields); if ($result) { $small_basket_html = get_small_basket_html(); $small_basket_footer_html = get_small_basket_footer_html(); // инфо о раделе товара $section = section_info($el['IBLOCK_SECTION_ID']); // Ответ $arResult = Array( "status" => "ok", "small_basket_html" => $small_basket_html, "small_basket_footer_html" => $small_basket_footer_html, "new_discount_level" => $_SESSION["DISCOUNT_LEVEL"], 'products' => array( array( "id" => ($el['XML_ID']?$el['XML_ID']:'-'), "name" => $el['NAME'], "price" => round($el['CATALOG_PRICE_1'], 2), "category" => $section['NAME'], "quantity" => $QUANTITY ) ) ); // Получам ID товаров $tov_ids = param_post('tov_ids'); // Получаем ценовые блоки $prices_html = get_prices_html ($tov_ids, array(), param_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 ($action == "quantity_change") { if (intval(param_post('id')) > 0 && intval(param_post('quantity')) > 0) { CSaleBasket::Update(param_post('id'), Array("QUANTITY"=>param_post('quantity'))); echo return_basket(); } } // УДАЛЕНИЕ ИЗ КОРЗИНЫ if ($action == "unset_item") { if (intval(param_post('id')) > 0) { CSaleBasket::Delete(param_post('id')); $el = el_info_no_cache(param_post('id')); $section = section_info($el['IBLOCK_SECTION_ID']); // Ответ $arResult = Array( "status" => "ok", "basket_html" => return_basket(), 'products' => array( array( "id" => ($el['XML_ID']?$el['XML_ID']:'-'), "name" => $el['NAME'], "category" => $section['NAME'] ) ) ); echo json_encode($arResult); } } // ОЧИСТКА КОРЗИНЫ if ($action == "del_basket"){ CModule::IncludeModule("sale"); // Сначала формируем массив товаров, удаляемых из корзины (для Яндекс-Метрики) $products = array(); $basket = CSaleBasket::GetList(Array(), Array("FUSER_ID"=>CSaleBasket::GetBasketUserID(), "ORDER_ID"=>false)); while ($basket_item = $basket->GetNext()){ $el = el_info_no_cache($basket_item['PRODUCT_ID']); $section = section_info($el['IBLOCK_SECTION_ID']); $products[] = array( "id" => ($el['XML_ID']?$el['XML_ID']:'-'), "name" => $el['NAME'], "category" => $section['NAME'] ); } // Очистка корзины CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID()); // Ответ $arResult = Array( "status" => "ok", 'products' => $products ); echo json_encode($arResult); } // ОЧИСТКА КОРЗИНЫ if ($action == "clear_basket") { // Сначала формируем массив товаров, удаляемых из корзины (для Яндекс-Метрики) $products = array(); $basket = CSaleBasket::GetList(Array(), Array("FUSER_ID"=>CSaleBasket::GetBasketUserID(), "ORDER_ID"=>false)); while ($basket_item = $basket->GetNext()){ $el = el_info_no_cache($basket_item['PRODUCT_ID']); $section = section_info($el['IBLOCK_SECTION_ID']); $products[] = array( "id" => ($el['XML_ID']?$el['XML_ID']:'-'), "name" => $el['NAME'], "category" => $section['NAME'] ); } CSaleBasket::DeleteAll(CSaleBasket::GetBasketUserID()); // Ответ $arResult = Array( "status" => "ok", 'products' => $products, "basket_html" => return_basket() ); echo json_encode($arResult); } // ОБНОВЛЕНИЕ КОРЗИНЫ if ($action == "update_basket") { return_basket(); } // ОФОРМЛЕНИЕ ЗАКАЗА if ($action == "order_form") { CModule::IncludeModule('highloadblock'); return_basket(); $hlblock_id = 5; $hlblock = Bitrix\Highloadblock\HighloadBlockTable::getById($hlblock_id)->fetch(); $entity = Bitrix\Highloadblock\HighloadBlockTable::compileEntity( $hlblock ); $entity_data_class = $entity->getDataClass(); $entity_table_name = $hlblock['TABLE_NAME']; $sTableID = 'tbl_'.$entity_table_name; parse_str(param_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+getPriceLevel(null, 'kof')]); $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"], "UF_ACTION_TYPE" => $aFields["UF_ACTION_TYPE_ID"] ); $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 json_encode( array( "status" => "error" ) ); } } if(intval($aFields["MANAGER_ID"])>0){ $aUserFields = Array( "UF_MANAGER" => $aFields["MANAGER_ID"] ); $user = new CUser; //$ID = $user->Update($USER->GetID(), $aUserFields); $arFilter = array("ID"=>intval($aFields["MANAGER_ID"])); $arSelect = array('ID','UF_NAME','UF_XML_ID','UF_TELEFON','UF_EMAIL','UF_VLADELETS'); $arOrder = array("ID"=>"ASC"); $rsData = $entity_data_class::getList(array( "select" => $arSelect, "filter" => $arFilter, "order" => $arOrder )); $rsData = new CDBResult($rsData, $sTableID); $arSelManager = $rsData->Fetch(); } /*if(intval($aFields["UF_ACTION_TYPE_ID"])>0){ $aUserFields = Array( "UF_ACTION_TYPE" => $aFields["UF_ACTION_TYPE_ID"] ); $user = new CUser; $ID = $user->Update($USER->GetID(), $aUserFields); }*/ // Создаём заказ $aOrderFields = Array( "LID" => "s1", "PERSON_TYPE_ID" => 1, "DELIVERY_ID" => $aFields["DELIVERY_ID"], "STATUS_ID" => "N", "PRICE" => $CART_SUM, "DISCOUNT_VALUE" => $DISCOUNT, "CURRENCY" => "RUB", "USER_ID" => $USER->GetID(), "PAY_SYSTEM_ID" => $aFields["PAYSYSTEM_ID"] ); $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") ||($aSaleProps["CODE"] == "FILES") ){ continue; } $PROPERTIES .= '<p><b>'.$aSaleProps["NAME"].'</b>: '.$aFields[$aSaleProps["CODE"]].';</p>'; } } } if(strlen($arSelManager['UF_NAME'])>0){ CSaleOrderPropsValue::Add( Array( "ORDER_ID"=>$ORDER_ID, "ORDER_PROPS_ID"=>14, "NAME"=>'Менеджер', "CODE"=>'UF_MANAGER', "VALUE"=>$arSelManager['UF_VLADELETS'] ) ); $PROPERTIES .= '<p><b>'.'Менеджер'.'</b>: '.$arSelManager['UF_NAME'].';</p>'; } if(!empty($aFields['FILES'])){ $files_text = ''; foreach($aFields['FILES'] as $key => $file_id){ $arFile = CFile::GetFileArray($file_id); if(strlen($files_text)<1){ $files_text .= 'http://'.$_SERVER['HTTP_HOST'].$arFile['SRC']; }else{ $files_text .= '|'.'http://'.$_SERVER['HTTP_HOST'].$arFile['SRC']; } } $prop_id = CSaleOrderPropsValue::Add( Array( "ORDER_ID"=>$ORDER_ID, "ORDER_PROPS_ID"=>23, "NAME"=>'Файлы', "CODE"=>'FILES', "VALUE"=>$files_text ) ); } if(strlen($aFields['SUB_DELIVERY'])>0){ CSaleOrderPropsValue::Add( Array( "ORDER_ID"=>$ORDER_ID, "ORDER_PROPS_ID"=>13, "NAME"=>'Тип доставки', "CODE"=>'DEL_TYPE', "VALUE"=>$aFields['SUB_DELIVERY'] ) ); $db_dtype = CSaleDelivery::GetList( array( "SORT" => "ASC", "NAME" => "ASC" ), array( "LID" => SITE_ID, "ACTIVE" => "Y", "ID" => intval($aFields['DELIVERY_ID']) ), false, false, array() ); $arDelivery = $db_dtype->Fetch(); $PROPERTIES .= '<p><b>Способ доставки</b>: '.$arDelivery['NAME'].';</p>'; $PROPERTIES .= '<p><b>'.'Тип доставки'.'</b>: '.$aFields['SUB_DELIVERY'].';</p>'; } if(strlen($aFields['SUB_DELIVERY_NAME_'.$aFields["DELIVERY_ID"]])>0){ CSaleOrderPropsValue::Add( Array( "ORDER_ID"=>$ORDER_ID, "ORDER_PROPS_ID"=>12, "NAME"=>'Город', "CODE"=>'CITY', "VALUE"=>$aFields['SUB_DELIVERY_NAME_'.$aFields["DELIVERY_ID"]] ) ); $PROPERTIES .= '<p><b>'.'Город доставки'.'</b>: '.$aFields['SUB_DELIVERY_NAME_'.$aFields["DELIVERY_ID"]].';</p>'; } if($aFields['SUB_DELIVERY'] == 'Доставка до адреса'){ if(strlen($aFields['ADDRESS_STR_'.$aFields["DELIVERY_ID"]])>0){ CSaleOrderPropsValue::Add( Array( "ORDER_ID"=>$ORDER_ID, "ORDER_PROPS_ID"=>11, "NAME"=>'Адрес', "CODE"=>'ADDRESS', "VALUE"=>$aFields['ADDRESS_STR_'.$aFields["DELIVERY_ID"]] ) ); $PROPERTIES .= '<p><b>'.'Адрес доставки'.'</b>: '.$aFields['ADDRESS_STR_'.$aFields["DELIVERY_ID"]].';</p>'; } } CSaleOrderPropsValue::Add( Array( "ORDER_ID"=>$ORDER_ID, "ORDER_PROPS_ID"=>9, "NAME"=>'Местоположение', "CODE"=>'LOCATION', "VALUE"=>19 ) ); // Перебираем корзину $PRODUCTS = ''; $yandex_products = array(); $q = CSaleBasket::GetList(Array(), Array("FUSER_ID"=>CSaleBasket::GetBasketUserID(), "ORDER_ID"=>$ORDER_ID)); while ($a = $q->GetNext()) { // формируем массив товаров в составе заказа (для Яндекс-Метрики) $el = el_info($a['PRODUCT_ID']); $section = section_info($el['IBLOCK_SECTION_ID']); $yandex_products[] = array( "id" => ($el['XML_ID']?$el['XML_ID']:'-'), "name" => $el['NAME'], "price" => round($el['CATALOG_PRICE_1'], 2), "category" => $section['NAME'], "quantity" => $a['QUANTITY'] ); $google_products[] = array( "id" => $ORDER_ID, "name" => $el['NAME'], "sku" => '', "price" => round($el['CATALOG_PRICE_1'], 2), "category" => $section['NAME'], "quantity" => $a['QUANTITY'] ); // Получаем ставки НДС $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 = ""; $tax = ''; if (intval($aFields["VAT"]) > 0) { $tax = floatval($aFields["VAT"]); $VAT = "<h2>В том числе НДС:</h2>".$aFields["VAT"]." рублей"; } if(!empty($aFields['FILES'])){ foreach($aFields['FILES'] as $file_id){ $arFile = CFile::GetFileArray($file_id); $PROPERTIES .= '<p><b>'.'Файл:'.'</b>: <a href="'.$arFile['SRC'].'">'.$arFile['ORIGINAL_NAME'].'</a>;</p>'; } } $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); //CEvent::Send("ORDER_ADMIN", "s1", $aEventFields, "Y", "", $aFields['FILES']); // Ответ $arResult = Array( "status" => "ok", "order_id" => $ORDER_ID, "products" => $yandex_products, "google_products" => $google_products, "google_revenue" => floatval($CART_SUM), "google_tax" => floatval($tax), ); echo json_encode($arResult); } } if ($action == "payment") { $_REQUEST["ORDER_ID"] = param_post('order_id'); $APPLICATION->IncludeComponent( "bitrix:sale.order.payment", "", Array( ), false ); } // SEARCH if ($action == "search") { $q = trim(param_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 ($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 ($action == "get_models") { $vendor = param_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 ($action == "get_models") { $vendor = param_post('vendor'); $model = param_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 ($action == "get_types") { if (param_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"] == param_post('vendor')) { $aCars[] = $a["model"]; } } $aCars = array_unique($aCars); echo '<option value="">модель</option>'; foreach ($aCars as $car) { echo '<option>'.$car.'</option>'; } } if (param_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"] == param_post('vendor') && $a["model"] == param_post('model')) { $aCars[$a["id"]] = $a["modification"]; } } //$aCars = array_unique($aCars); echo '<option>модификация</option>'; foreach ($aCars as $id=>$car) { echo '<option>'.$car.'</option>'; } } if (param_post('type') == 4) { $vendor = param_post('vendor'); $model = param_post('model'); $modification = param_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 ($action == "subscribe_form") { parse_str(param_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 ($action == "subscribe_form_simple") { CModule::IncludeModule("subscribe"); $aSubscriptionFields = Array( "FORMAT" => "html", "EMAIL" => param_post('email'), "ACTIVE" => "Y", "CONFIRMED" => "Y", "RUB_ID" => Array(1), "SEND_CONFIRM" => "N" ); $subscribtion = new CSubscription; $q = CSubscription::GetList(Array(), Array("EMAIL"=>param_post('email'))); if ($a = $q->GetNext()) { echo 'Ваш E-mail уже участвует в рассылке.'; } else { $subscribtion->Add($aSubscriptionFields); echo 'Вы успешно подписаны на рассылку!'; $aEventFields = Array( "EMAIL" => param_post('email') ); CEvent::SendImmediate("NEW_SUBSCRIBER", "s1", $aEventFields); $subscr = CSubscription::GetList( array("ID"=>"ASC"), array("ID"=>"Y") ); $arUser = $subscr->Fetch(); $UF_ACTION_TYPE = 'other'; $UF_DATETIME = date('Y-m-d').'T'.date('H:i:s'); $arParams = array( 'EMAIL' => param_post('email'), 'NAME' => '', 'UF_ACTION_TYPE' => $UF_ACTION_TYPE, 'UF_COMPANY' => '', 'NEED_SUBSCRIBE' => 'true', 'UF_DATETIME' => $UF_DATETIME, 'UF_REG' => 'false' ); $result = AddAndUpdateSubscriberSub($arParams); //echo '<pre>'; print_r($arParams); echo '</pre>'; //echo '<pre>'; print_r($result); echo '</pre>'; } } // ОБРАТНАЯ СВЯЗЬ if ($action == "feedback_form") { parse_str(param_post('data'), $aEventFields); CEvent::SendImmediate("FEEDBACK_FORM", "s1", $aEventFields); } if ($action == "get_groups") { $SORT_FIELD = "SORT"; $SORT_ORDER = "ASC"; if (param_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[param_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 (param_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 (param_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 ($action == "repeat_order") { if (intval(param_post('order_id')) > 0) { $q_basket = CSaleBasket::GetList(Array(), Array("ORDER_ID"=>param_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" => getPriceLevel($a["ID"], 'priceID'), "PRICE" => getPriceLevel($a["ID"]), /*"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); } } echo return_basket(); } } // Подсчёт товаров по фильтру if ($action == "filter_count") { if(strlen($_POST['q'])>0){ // Поиск с морфологией $search_array = my_search($_POST['q'], $search_array, true); // Поиск без морфологии $search_array = my_search($_POST['q'], $search_array, false); } $smart_form_array = Array(); parse_str(param_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(param_post('smart_form_double_data'), $smart_form_double_array); $smart_prop_types_form_array = Array(); parse_str(param_post('smart_prop_types_form_data'), $smart_prop_types_form_array); if(empty(param_post('SECTION_CODE'))){ $SECTION_ID = str_replace("'",'"',param_post('SECTION_ID')); $SECTION_ID = unserialize($SECTION_ID); //echo "<pre>"; print_r($SECTION_ID); echo "</pre>"; // Формируем поля для запроса $fields = Array("ID"); $filter = Array("IBLOCK_ID"=>2, "ACTIVE"=>"Y", "INCLUDE_SUBSECTIONS"=>"Y"); $filter['=SECTION_ID'] = $SECTION_ID; }else{ // Получаем ID раздела $q = CIBlockSection::GetList(Array(), Array("IBLOCK_ID"=>2, "CODE"=>param_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(!empty($search_array)){ $filter['=ID'] = $search_array; } //if(strlen(param_post('q'))>0){ // $filter['NAME'] = '%'.param_post('q').'%'; //} 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, 'searchFilter_'))) || ((substr_count($key, '_MAX'))&&(substr_count($key, 'searchFilter_')))){ $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; } } } } if ($GLOBALS["USER"]->IsAdmin()){ //echo "<pre>"; print_r($filter); echo "</pre>"; } // Запрашиваем элементы $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 ($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+getPriceLevel(null, 'kof')] > $aGlobalPrices[$a["PRODUCT_ID"]][2+getPriceLevel(null, 'kof')]) { $oldprice = $aGlobalPrices[$a["PRODUCT_ID"]][1+getPriceLevel(null, 'kof')]; } if ($a_product["PROPERTY_OLD_PRICE_VALUE"]) { $oldprice = intval($a_product["PROPERTY_OLD_PRICE_VALUE"]); } //$price = intval($aGlobalPrices[$a["PRODUCT_ID"]][$_SESSION["DISCOUNT_LEVEL"]]); $price = intval(getPriceLevel($a["PRODUCT_ID"])); 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 $aVAT = array( 0 => 0, 1 => 0.18, 2 => 0.1, 3 => 0, ); $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+getPriceLevel(null, 'kof')], CCurrency::GetBaseCurrency()), "CurrentSum" => FormatCurrency($aCART_SUM[$_SESSION["DISCOUNT_LEVEL"]+getPriceLevel(null, 'kof')], CCurrency::GetBaseCurrency()), "SaleSum" => FormatCurrency($discount, CCurrency::GetBaseCurrency()), "VatSum" => number_format($vat_total, 2, '.', ' ' )." руб.", "DETAIL_PRICE" => "Всего наименований ".count($arBasket)." на ".FormatCurrency($aCART_SUM[$_SESSION["DISCOUNT_LEVEL"]+getPriceLevel(null, 'kof')], 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 ($action == "feedback"){ // Данные формы $arFields = Array(); parse_str(param_post('form_data'), $arFields); // Отправляем письмо $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); } // ОБНОВЛЯЕМ ОЦЕНКУ ДЛЯ МЕНЕДЖЕРА if ($action == "update_manager_rating") { $arFields = Array(); $arTMP1 = explode('&', $_POST['data']); foreach ($arTMP1 as $item) { $arTMP2 = explode('=', $item); $arFields[$arTMP2[0]] = urldecode($arTMP2[1]); } $USER_ID = intval($arFields['USER_ID']); $RATE = trim($arFields['RATE']); $COMMENT = trim($arFields['COMMENT']); $MANAGER = trim($arFields['MANAGER']); $INN = trim($arFields['INN']); $COMPANY = trim($arFields['COMPANY']); $CITY = trim($arFields['CITY']); if($USER_ID>0){ $el = new CIBlockElement; $PROP = array(); $PROP['MANAGER'] = $MANAGER; $PROP['DATETIME'] = Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))); $PROP['INN'] = $INN; $PROP['COMPANY'] = $COMPANY; $PROP['CITY'] = $CITY; $PROP['RATE'] = $RATE; $PROP['COMMENT'] = $COMMENT; $arLoadProductArray = Array( "IBLOCK_SECTION_ID" => false, "IBLOCK_ID" => 40, "PROPERTY_VALUES"=> $PROP, "NAME" => 'Оценка от '.$COMPANY.' '.date('ymd_his'), "ACTIVE" => "Y", ); $el->Add($arLoadProductArray); } echo 'ok'; } // СТРОИМ СПИСОК ЗАКАЗОВ В КАБИНЕТЕ if ($action == "getOrdersList") { global $USER; $payed = $_POST['payed']; $html = '<div class="orders_table">'; $filter = Array("USER_ID" => $USER->GetID()); if(!empty($payed)){ if($payed=='N'){ $filter['STATUS_ID'] = array('N','O','D'); }else{ $filter['!STATUS_ID'] = array('N','O','D'); } } $q_order = CSaleOrder::GetList(Array("ID"=>"DESC"), $filter); $cnt = 0; while ($a_order = $q_order->GetNext()) { $cnt++; $aBasket = Array(); $basket_count = 0; $q_basket = CSaleBasket::GetList(Array(), Array("ORDER_ID"=>$a_order["ID"])); while ($a_basket = $q_basket->GetNext()) { $aBasket[] = $a_basket; $basket_count += $a_basket["QUANTITY"]; } $arSroki = array(); $db_vals = CSaleOrderPropsValue::GetList( array("SORT" => "ASC"), array( "ORDER_ID" => $a_order['ID'], "ORDER_PROPS_ID" => 20 ) ); $arVals = $db_vals->Fetch(); $arTMP = explode('|',$arVals['VALUE']); foreach($arTMP as $str){ if(empty($str)){ continue; } $arTMP_ = explode('/',$str); if(empty($arTMP_[1])){$arTMP_[1] = '-';} $arSroki[$arTMP_[0]] = $arTMP_[1]; } $arCharges = array(); $db_vals = CSaleOrderPropsValue::GetList( array("SORT" => "ASC"), array( "ORDER_ID" => $a_order['ID'], "ORDER_PROPS_ID" => 19 ) ); $arVals = $db_vals->Fetch(); $arTMP = explode('|',$arVals['VALUE']); foreach($arTMP as $str){ $arCharge = getChargeArray($str); $arCharges[] = $arCharge; } $db_vals = CSaleOrderPropsValue::GetList( array("SORT" => "ASC"), array( "ORDER_ID" => $a_order['ID'], "ORDER_PROPS_ID" => 16 ) ); $arVals = $db_vals->Fetch(); $arVals['VALUE'] = str_replace('|',', ',$arVals['VALUE']); $arDelivery = CSaleDelivery::GetByID($a_order['DELIVERY_ID']); if(substr_count($arDelivery['NAME'],'ПЭК')){ $DeliveryName = 'ПЭК'; }elseif(substr_count($arDelivery['NAME'],'Деловые линии')){ $DeliveryName = 'Деловые линии'; }elseif(substr_count($arDelivery['NAME'],'Скиф-Карго')){ $DeliveryName = 'Скиф-Карго'; }else{ $DeliveryName = $arDelivery['NAME']; } $arDelivery['NAME'] = $DeliveryName; $arStatus = CSaleStatus::GetByID($a_order["STATUS_ID"]); if($a_order["STATUS_ID"] == 'N'){ $arStatus['NAME'] = 'Принят к обработке'; $arStatus['NOTE'] = '* Спасибо за заказ! В ближайшее время на Ваш e-mail '.$USER->GetParam("EMAIL").' будет отправлен счет на оплату, при возникновении вопросов, с Вами может связаться наш менеджер для уточнения деталей'; }elseif($a_order["STATUS_ID"] == 'O'){ $arStatus['NAME'] = 'Обработан'; $arStatus['NOTE'] = '* Для того, чтобы проверить статус данного заказа, Вам необходимо произвести оплату'; }elseif($a_order["STATUS_ID"] == 'L'){ $arStatus['NAME'] = 'Частично оплачен'; $arStatus['NOTE'] = '* Спасибо, Ваш заказ частично оплачен!'; }elseif($a_order["STATUS_ID"] == 'P'){ $arStatus['NAME'] = 'Оплачен'; $arStatus['NOTE'] = '* Спасибо, что Вы оплатили заказ!'; }elseif($a_order["STATUS_ID"] == 'E'){ $arStatus['NAME'] = 'Частично оплачен, готов к частичной отгрузке'; if(($a_order['DELIVERY_ID']==2)||($a_order['DELIVERY_ID']==3)){ $arStatus['NOTE'] = '* Спасибо, Ваш заказ частично оплачен и готов к частичной отгрузке.'; }else{ if(substr_count($arDelivery['NAME'],'ПЭК')){ $DeliveryName = 'ПЭК'; }elseif(substr_count($arDelivery['NAME'],'Деловые линии')){ $DeliveryName = 'Деловые линии'; }elseif(substr_count($arDelivery['NAME'],'Скиф-Карго')){ $DeliveryName = 'Скиф-Карго'; }else{ $DeliveryName = $arDelivery['NAME']; } $arStatus['NOTE'] = '* Спасибо, Ваш заказ частично оплачен, частично передан в транспортную компанию "'.$DeliveryName.'" и будет отгружен '.$arVals['VALUE'].'.'; } }elseif($a_order["STATUS_ID"] == 'R'){ $arStatus['NAME'] = 'Оплачен, готов к частичной отгрузке'; if(($a_order['DELIVERY_ID']==2)||($a_order['DELIVERY_ID']==3)){ $arStatus['NOTE'] = '* Спасибо, что Вы оплатили заказ! Ваш товар готов к частичной отгрузке.'; }else{ if(substr_count($arDelivery['NAME'],'ПЭК')){ $DeliveryName = 'ПЭК'; }elseif(substr_count($arDelivery['NAME'],'Деловые линии')){ $DeliveryName = 'Деловые линии'; }elseif(substr_count($arDelivery['NAME'],'Скиф-Карго')){ $DeliveryName = 'Скиф-Карго'; }else{ $DeliveryName = $arDelivery['NAME']; } $arStatus['NOTE'] = '* Спасибо, что Вы оплатили заказ! Ваш товар частично передан в транспортную компанию "'.$DeliveryName.'" и будет отгружен '.$arVals['VALUE'].'.'; } }elseif($a_order["STATUS_ID"] == 'T'){ $arStatus['NAME'] = 'Оплачен, готов к отгрузке'; if(($a_order['DELIVERY_ID']==2)||($a_order['DELIVERY_ID']==3)){ $arStatus['NOTE'] = '* Спасибо, что Вы оплатили заказ! Ваш товар готов к отгрузке.'; }else{ $arStatus['NOTE'] = '* Спасибо, что Вы оплатили заказ! Ваш товар передан в транспортную компанию "'.$arDelivery['NAME'].'" и будет отгружен '.$arVals['VALUE'].'.'; } }elseif($a_order["STATUS_ID"] == 'Y'){ $arStatus['NAME'] = 'Частично отгружен'; if(($a_order['DELIVERY_ID']==2)||($a_order['DELIVERY_ID']==3)){ $arStatus['NOTE'] = '* Спасибо, Ваш заказ частично отгружен.'; }else{ $arStatus['NOTE'] = '* Спасибо, Ваш заказ частично отгружен из транспортной компании "'.$arDelivery['NAME'].'" '.$arVals['VALUE'].'.'; } }elseif($a_order["STATUS_ID"] == 'F'){ $arStatus['NAME'] = 'Отгружен'; if(($a_order['DELIVERY_ID']==2)||($a_order['DELIVERY_ID']==3)){ $arStatus['NOTE'] = '* Ваш товар отгружен.'; }else{ $arStatus['NOTE'] = '* Ваш товар отгружен из транспортной компании "'. $arDelivery['NAME'].'" '.$arVals['VALUE'].'.'; } }elseif($a_order["STATUS_ID"] == 'C'){ if(($a_order['DELIVERY_ID']==2)||($a_order['DELIVERY_ID']==3)){ $arStatus['NOTE'] = '* Ваш товар частично оплачен и частично отгружен.'; }else{ $arStatus['NOTE'] = '* Ваш товар частично оплачен и частично отгружен из транспортной компании "'.$arDelivery['NAME'].'" '.$arVals['VALUE'].'.'; } }elseif($a_order["STATUS_ID"] == 'Q'){ if(($a_order['DELIVERY_ID']==2)||($a_order['DELIVERY_ID']==3)){ $arStatus['NOTE'] = '* Ваш товар оплачен и частично отгружен.'; }else{ $arStatus['NOTE'] = '* Ваш товар оплачен и частично отгружен из транспортной компании "'.$arDelivery['NAME'].'" '.$arVals['VALUE'].'.'; } } $nds_str = ''; foreach($arCharges as $arCharge){ if(strlen($nds_str)>0){ $nds_str .= ', '; } $nds_str .= '№'.$arCharge['NUMBER'].' '; if($arCharge['NDS']!='Без НДС'){ $nds_str .= 'c НДС'; } $nds_str .= $arCharge['NDS']; } //Dop $arChargeItemsStatus = array(); $arStatuses = array(); $arNal = array(); $arSrok = array(); foreach($arCharges as $arCharge){ foreach($arCharge['ITEMS'] as $arChargeItem){ if($arChargeItem['STATUS']==''){$arChargeItem['STATUS'] = '-';} if($arChargeItem['HAVE']==''){$arChargeItem['HAVE'] = '-';} if($arChargeItem['SROK']==''){$arChargeItem['SROK'] = '-';} $arStatuses[$arChargeItem['XML_ID']] = $arChargeItem['STATUS']; $arNal[$arChargeItem['XML_ID']] = $arChargeItem['HAVE']; $arSrok[$arChargeItem['XML_ID']] = $arChargeItem['SROK']; if(!in_array($arChargeItem['STATUS'],$arChargeItemsStatus)){ $arChargeItemsStatus[] = $arChargeItem['STATUS']; } } } $itemStatus = ''; $itemNal = ''; $itemSrok = ''; if(count($arChargeItemsStatus)>1){ $itemStatus = $arStatuses[$arElem['XML_ID']]; } if(empty($itemStatus)){$itemStatus = '-';} $itemNal = $arNal[$arElem['XML_ID']]; if(empty($itemNal)){$itemNal = '-';} $itemSrok = $arSrok[$arElem['XML_ID']]; if(empty($itemSrok)){$itemSrok = '-';} $html .= ' <div class="orders-list-container"> <!--order-list__item--> <div class="orders-list__item"> <span class="order-list__order">Заказ № <span>'.$a_order['ID'].'</span></span> <span class="order-list__date">'.substr($a_order["DATE_INSERT"], 0, 16).'</span> <span class="order-list__status">'.$arStatus['NAME'].'</span> <span class="order-list__warehouse">-</span> <span class="order-list__delivery">-</span> <span class="order-list__quantity">'.$basket_count.' '.pfCnt($basket_count, "товар", "товара", "товаров").' на сумму</span> <span class="order-list__price">'.number_format($a_order["PRICE"], 0, "", " ").'<span class="currency">₽</span></span> <span onclick="onClickOrdersFullPosBtn(this)" class="order-list__btn order-list__btn--position"></span> </div> <!--order-list__item--> <div class="orders-list-hidden">'; foreach($aBasket as $arItem){ $q_product = CIBlockElement::GetList(Array(), Array("IBLOCK_ID"=>2, "ID"=>$arItem["PRODUCT_ID"]), false, Array("nTopCount"=>1), Array("ID", "NAME", "DETAIL_PICTURE", "PREVIEW_TEXT", "DETAIL_TEXT", "PROPERTY_RATING")); $a_product = $q_product->GetNext(); $arElem = elem_info(2, $a_product['ID']); if(floatval($arElem['CATALOG_QUANTITY'])>0){ $Q = floatval($arElem['CATALOG_QUANTITY']); }else{ $Q = 'Нет в наличии'; } if(!empty($arSroki[$arElem['XML_ID']])){ $srok = $arSroki[$arElem['XML_ID']]; }else{ $srok = '-'; } $photo = "/upload/no_photo_270_270.png"; if (intval($a_product["DETAIL_PICTURE"])>0) { $arFile = CFile::GetFileArray(intval($a_product["DETAIL_PICTURE"])); $photo = $arFile['SRC']; } $price = intval($arItem["PRICE"]); if (!$a_product["PREVIEW_TEXT"]) { $a_product["PREVIEW_TEXT"] = substr(strip_tags($a_product["DETAIL_TEXT"]), 0, 150)."..."; } // VAT VALUE $aVAT = array( 0 => 0, 1 => 0.18, 2 => 0.1, 3 => 0, ); $vat = false; $q_catalog = CCatalogProduct::GetList(Array(), Array("ID"=>$arItem["PRODUCT_ID"])); if ($a_catalog = $q_catalog->GetNext()) { if ($a_catalog["VAT_ID"]) { $rate = $aVAT[$a_catalog["VAT_ID"]]; if ($a_catalog["VAT_INCLUDED"] == "Y") { $vat = ($price*$rate)/(100+$rate); } else { $vat = ($price*$rate)/100; } } } if ($vat) { $nds_ = '<span>НДС '.number_format($vat, 2, ",", " ").' ₽</span>'; } else { $nds_ = '<span>Без НДС</span>'; } //Dop $arChargeItemsStatus = array(); $arStatuses = array(); $arNal = array(); $arSrok = array(); foreach($arCharges as $arCharge){ foreach($arCharge['ITEMS'] as $arChargeItem){ if($arChargeItem['STATUS']==''){$arChargeItem['STATUS'] = '-';} if($arChargeItem['HAVE']==''){$arChargeItem['HAVE'] = '-';} if($arChargeItem['SROK']==''){$arChargeItem['SROK'] = '-';} $arStatuses[$arChargeItem['XML_ID']] = $arChargeItem['STATUS']; $arNal[$arChargeItem['XML_ID']] = $arChargeItem['HAVE']; $arSrok[$arChargeItem['XML_ID']] = $arChargeItem['SROK']; if(!in_array($arChargeItem['STATUS'],$arChargeItemsStatus)){ $arChargeItemsStatus[] = $arChargeItem['STATUS']; } } } $itemStatus = ''; $itemNal = ''; $itemSrok = ''; if(count($arChargeItemsStatus)>1){ $itemStatus = $arStatuses[$arElem['XML_ID']]; } if(empty($itemStatus)){$itemStatus = '-';} $itemNal = $arNal[$arElem['XML_ID']]; if(empty($itemNal)){$itemNal = '-';} $itemSrok = $arSrok[$arElem['XML_ID']]; if(empty($itemSrok)){$itemSrok = '-';} $html .= '<div class="orders-list__item"> <span class="order-list__img"><img src="'.$photo.'"></span> <span class="order-list__date">'.$a_product['NAME'].'</span> <span class="order-list__status">'.$itemStatus.'</span> <span class="order-list__warehouse">'.$itemNal.'</span> <span class="order-list__delivery">'.$itemSrok.'</span> <span class="order-list__quantity"> <div class="basket-product-number clearfix"> <input disabled type="text" class="basket-product-number-input" name="quantity" value="'.intval($arItem["QUANTITY"]).'"> </div> </span> <span class="order-list__price">'.number_format($price, 0, "", " ").' <span class="currency">₽</span> '.$nds_.' </span> <span></span> </div>'; } $html .= '</div> </div> <!--orders-list-container--> <!--orders-full_btn--> <div class="orders-full__btn"><i></i><span onclick="onClickOrdersFullBtn(this)">Статус заказа подробнее</span></div> <!--orders-full_btn--> <!--order-list-full-content--> <div class="order-list-full-content"> <button onclick="onClickOrdersFullCloseBtn(this)" type="button"></button>'; if(empty($arCharges[0]['NUMBER'])){ $arCharges = array(); } $html .= ' <ul class="order-list-full-content__info"> <li><span>Заказ: </span><span>№ '.$a_order["ID"].'</span></li> <li><span>Дата и время заказа: </span><span>'.substr($a_order["DATE_INSERT"], 0, 16).'</span></li>'; if(!empty($arCharges)){ $html .= '<li><span>Счет по заказу: </span><span>'.$nds_str.'</span></li>'; } $html .= '<li><span>Статус заказа: </span><span>'.$arStatus['NAME'].'</span></li> <li>'.$arStatus['NOTE'].'</li> </ul> <div class="orders-list-table">'; foreach($arCharges as $arCharge){ $status = $arCharge['STATUS']; if(strtolower($arCharge['STATUS']) == 'частично оплачен'){ $arCharge['STATUS'] = 'Оплачен, готов к отгрузке'; $status = 'Частично оплачен'; }elseif(strtolower($arCharge['STATUS']) == 'частично отгружен'){ $arCharge['STATUS'] = 'Оплачен, готов к частичной отгрузке'; $status = 'Частично отгружен'; }elseif(strtolower($arCharge['STATUS']) == 'не оплачен'){ $arCharge['STATUS'] = 'Не оплачен'; $status = 'Не оплачен'; } if($arCharge['NDS']!='Без НДС'){ $nds = 'с НДС'.$arCharge['NDS']; }else{ $nds = 'Без НДС'; } $html .= ' <div class="orders-list-table__item"> <span>Счет №'.$arCharge['NUMBER'].' '.$nds.' на сумму '.number_format($arCharge['SUM'], 0, "", " ").' руб. '.$status.'.</span> <table class="check"> <tr><th>Наименование</th><th>Статус</th><th>Наличие товара</th><th>Срок поставки</th></tr>'; foreach($arCharge['ITEMS'] as $arItem){ if($arItem['STATUS']==''){$arItem['STATUS'] = '-';} if($arItem['HAVE']==''){$arItem['HAVE'] = '-';} if($arItem['SROK']==''){$arItem['SROK'] = '-';} $arElem = elem_info_by_xml_id(2, $arItem['XML_ID']); if(empty($arElem['NAME'])){ $arElem['NAME'] = 'Товар не найден в базе! ('.$arItem['XML_ID'].')'; } $html .= ' <tr> <td>'.$arElem['NAME'].'</td> <td>'.$arItem['STATUS'].'</td> <td>'.$arItem['HAVE'].'</td> <td>'.$arItem['SROK'].'</td> </tr> '; } $html .= '</table> </div> '; } $html .= '</div> <!--save-account__btn-->'; $db_vals = CSaleOrderPropsValue::GetList( array("SORT" => "ASC"), array( "ORDER_ID" => $a_order['ID'], "ORDER_PROPS_ID" => 22 ) ); $arVals = $db_vals->Fetch(); if(strlen($arVals['VALUE'])>0){ $arPrint = getPrintArray($arVals['VALUE']); } foreach($arCharges as $arCharge){ $html .= '<div class="save-account__btn"><a href="/downloadorder/download_charge.php?order_id='.$a_order['ID'].'&charge_number='.$arCharge['NUMBER'].'" target="_BLANK"><span>Сохранить счет №'.$arCharge['NUMBER'].'</span></a></div>'; foreach($arPrint as $charge_number => $arPrintForms){ if($charge_number!=$arCharge['NUMBER']) continue; if(!empty($arPrintForms['TORG12'])){ foreach($arPrintForms['TORG12'] as $torg){ if( ($a_order['DELIVERY_ID']==4)|| ($a_order['DELIVERY_ID']==5)|| ($a_order['DELIVERY_ID']==6) ){ if( ($DeliveryName == 'ПЭК')|| ($DeliveryName == 'Скиф-Карго')|| ($DeliveryName == 'Деловые линии') ){ if( (strtolower($status)=='отгружен')|| (strtolower($status)=='частично отгружен') ){ $html .= '<div class="save-account__btn"><a href="javascript:void(0);"><span>Товарно-транспортная накладная № '.$torg.'</span></a></div>'; } } } } } } } $html .= '<!--save-account__btn--> </div> '; } if($cnt == 0){ $html .= ' <div class="orders-list-container"> <span style="font-size:14pt;">Список заказов пуст.</span> </div> '; } $html .= '</div>'; echo $html; } // СТРОИМ СПИСОК ЗАКАЗОВ В КАБИНЕТЕ if ($action == "getStatusOrder") { global $USER; $html = '<div class="order-list-full-content status-page-content" style="font-size:14pt;">'; $filter = Array("ID" => intval($_POST['number_o']), "PROPERTY_VAL_BY_CODE_UF_INN" => trim($_POST['inn'])); $q_order = CSaleOrder::GetList(Array("ID"=>"DESC"), $filter); $cnt = 0; $a_order = array(); if ($a_order = $q_order->GetNext()) { }else{ $filter = Array("PROPERTY_VAL_BY_CODE_UF_INN" => trim($_POST['inn'])); //echo '<pre>'; print_r($filter); echo '</pre>';$_POST['number_c'] $find = false; $q_order = CSaleOrder::GetList(Array("ID"=>"DESC"), $filter); while ($a_order = $q_order->GetNext()){ $db_vals = CSaleOrderPropsValue::GetList( array("SORT" => "ASC"), array( "ORDER_ID" => $a_order['ID'], "ORDER_PROPS_ID" => 18 ) ); $arVals = $db_vals->Fetch(); if(in_array($_POST['number_c'],$arVals['VALUE_ORIG'])){ $find = true; break; } //echo '<pre>'; print_r($arVals); echo '</pre>'; } //die('!'); } if (!empty($a_order)) { $cnt++; $aBasket = Array(); $basket_count = 0; $q_basket = CSaleBasket::GetList(Array(), Array("ORDER_ID"=>$a_order["ID"])); while ($a_basket = $q_basket->GetNext()) { $aBasket[] = $a_basket; $basket_count += $a_basket["QUANTITY"]; } $arSroki = array(); $db_vals = CSaleOrderPropsValue::GetList( array("SORT" => "ASC"), array( "ORDER_ID" => $a_order['ID'], "ORDER_PROPS_ID" => 20 ) ); $arVals = $db_vals->Fetch(); $arTMP = explode('|',$arVals['VALUE']); foreach($arTMP as $str){ if(empty($str)){ continue; } $arTMP_ = explode('/',$str); if(empty($arTMP_[1])){$arTMP_[1] = '-';} $arSroki[$arTMP_[0]] = $arTMP_[1]; } $arCharges = array(); $db_vals = CSaleOrderPropsValue::GetList( array("SORT" => "ASC"), array( "ORDER_ID" => $a_order['ID'], "ORDER_PROPS_ID" => 19 ) ); $arVals = $db_vals->Fetch(); $arTMP = explode('|',$arVals['VALUE']); foreach($arTMP as $str){ $arCharge = getChargeArray($str); $arCharges[] = $arCharge; } $db_vals = CSaleOrderPropsValue::GetList( array("SORT" => "ASC"), array( "ORDER_ID" => $a_order['ID'], "ORDER_PROPS_ID" => 16 ) ); $arVals = $db_vals->Fetch(); $arVals['VALUE'] = str_replace('|',', ',$arVals['VALUE']); $arDelivery = CSaleDelivery::GetByID($a_order['DELIVERY_ID']); if(substr_count($arDelivery['NAME'],'ПЭК')){ $DeliveryName = 'ПЭК'; }elseif(substr_count($arDelivery['NAME'],'Деловые линии')){ $DeliveryName = 'Деловые линии'; }elseif(substr_count($arDelivery['NAME'],'Скиф-Карго')){ $DeliveryName = 'Скиф-Карго'; }else{ $DeliveryName = $arDelivery['NAME']; } $arDelivery['NAME'] = $DeliveryName; $arStatus = CSaleStatus::GetByID($a_order["STATUS_ID"]); if($a_order["STATUS_ID"] == 'N'){ $arStatus['NAME'] = 'Принят к обработке'; $arStatus['NOTE'] = '* Спасибо за заказ! В ближайшее время на Ваш e-mail '.$USER->GetParam("EMAIL").' будет отправлен счет на оплату, при возникновении вопросов, с Вами может связаться наш менеджер для уточнения деталей'; }elseif($a_order["STATUS_ID"] == 'O'){ $arStatus['NAME'] = 'Обработан'; $arStatus['NOTE'] = '* Для того, чтобы проверить статус данного заказа, Вам необходимо произвести оплату'; }elseif($a_order["STATUS_ID"] == 'L'){ $arStatus['NAME'] = 'Частично оплачен'; $arStatus['NOTE'] = '* Спасибо, Ваш заказ частично оплачен!'; }elseif($a_order["STATUS_ID"] == 'P'){ $arStatus['NAME'] = 'Оплачен'; $arStatus['NOTE'] = '* Спасибо, что Вы оплатили заказ!'; }elseif($a_order["STATUS_ID"] == 'E'){ $arStatus['NAME'] = 'Частично оплачен, готов к частичной отгрузке'; if(($a_order['DELIVERY_ID']==2)||($a_order['DELIVERY_ID']==3)){ $arStatus['NOTE'] = '* Спасибо, Ваш заказ частично оплачен и готов к частичной отгрузке.'; }else{ if(substr_count($arDelivery['NAME'],'ПЭК')){ $DeliveryName = 'ПЭК'; }elseif(substr_count($arDelivery['NAME'],'Деловые линии')){ $DeliveryName = 'Деловые линии'; }elseif(substr_count($arDelivery['NAME'],'Скиф-Карго')){ $DeliveryName = 'Скиф-Карго'; }else{ $DeliveryName = $arDelivery['NAME']; } $arStatus['NOTE'] = '* Спасибо, Ваш заказ частично оплачен, частично передан в транспортную компанию "'.$DeliveryName.'" и будет отгружен '.$arVals['VALUE'].'.'; } }elseif($a_order["STATUS_ID"] == 'R'){ $arStatus['NAME'] = 'Оплачен, готов к частичной отгрузке'; if(($a_order['DELIVERY_ID']==2)||($a_order['DELIVERY_ID']==3)){ $arStatus['NOTE'] = '* Спасибо, что Вы оплатили заказ! Ваш товар готов к частичной отгрузке.'; }else{ if(substr_count($arDelivery['NAME'],'ПЭК')){ $DeliveryName = 'ПЭК'; }elseif(substr_count($arDelivery['NAME'],'Деловые линии')){ $DeliveryName = 'Деловые линии'; }elseif(substr_count($arDelivery['NAME'],'Скиф-Карго')){ $DeliveryName = 'Скиф-Карго'; }else{ $DeliveryName = $arDelivery['NAME']; } $arStatus['NOTE'] = '* Спасибо, что Вы оплатили заказ! Ваш товар частично передан в транспортную компанию "'.$DeliveryName.'" и будет отгружен '.$arVals['VALUE'].'.'; } }elseif($a_order["STATUS_ID"] == 'T'){ $arStatus['NAME'] = 'Оплачен, готов к отгрузке'; if(($a_order['DELIVERY_ID']==2)||($a_order['DELIVERY_ID']==3)){ $arStatus['NOTE'] = '* Спасибо, что Вы оплатили заказ! Ваш товар готов к отгрузке.'; }else{ $arStatus['NOTE'] = '* Спасибо, что Вы оплатили заказ! Ваш товар передан в транспортную "'.$arDelivery['NAME'].'" и будет отгружен '.$arVals['VALUE'].'.'; } }elseif($a_order["STATUS_ID"] == 'Y'){ $arStatus['NAME'] = 'Частично отгружен'; if(($a_order['DELIVERY_ID']==2)||($a_order['DELIVERY_ID']==3)){ $arStatus['NOTE'] = '* Спасибо, Ваш заказ частично отгружен.'; }else{ $arStatus['NOTE'] = '* Спасибо, Ваш заказ частично отгружен из транспортной компании "'.$arDelivery['NAME'].'" '.$arVals['VALUE'].'.'; } }elseif($a_order["STATUS_ID"] == 'F'){ $arStatus['NAME'] = 'Отгружен'; if(($a_order['DELIVERY_ID']==2)||($a_order['DELIVERY_ID']==3)){ $arStatus['NOTE'] = '* Ваш товар отгружен.'; }else{ $arStatus['NOTE'] = '* Ваш товар отгружен из транспортной компании "'. $arDelivery['NAME'].'" '.$arVals['VALUE'].'.'; } }elseif($a_order["STATUS_ID"] == 'C'){ if(($a_order['DELIVERY_ID']==2)||($a_order['DELIVERY_ID']==3)){ $arStatus['NOTE'] = '* Ваш товар частично оплачен и частично отгружен.'; }else{ $arStatus['NOTE'] = '* Ваш товар частично оплачен и частично отгружен из транспортной компании "'.$arDelivery['NAME'].'" '.$arVals['VALUE'].'.'; } }elseif($a_order["STATUS_ID"] == 'Q'){ if(($a_order['DELIVERY_ID']==2)||($a_order['DELIVERY_ID']==3)){ $arStatus['NOTE'] = '* Ваш товар оплачен и частично отгружен.'; }else{ $arStatus['NOTE'] = '* Ваш товар оплачен и частично отгружен из транспортной компании "'.$arDelivery['NAME'].'" '.$arVals['VALUE'].'.'; } } $nds_str = ''; foreach($arCharges as $arCharge){ if(strlen($nds_str)>0){ $nds_str .= ', '; } $nds_str .= '№'.$arCharge['NUMBER'].' '; if($arCharge['NDS']!='Без НДС'){ $nds_str .= 'c НДС'; } $nds_str .= $arCharge['NDS']; } if(empty($arCharges[0]['NUMBER'])){ $arCharges = array(); } $html .= ' <ul class="order-list-full-content__info"> <li><span>Заказ: </span><span>№ '.$a_order["ID"].'</span></li> <li><span>Дата и время заказа: </span><span>'.substr($a_order["DATE_INSERT"], 0, 16).'</span></li>'; if(!empty($arCharges)){ $html .= '<li><span>Счет по заказу: </span><span>'.$nds_str.'</span></li>'; } $html .= '<li><span>Статус заказа: </span><span>'.$arStatus['NAME'].'</span></li> <li>'.$arStatus['NOTE'].'</li> </ul> <div class="orders-list-table">'; foreach($arCharges as $arCharge){ $status = $arCharge['STATUS']; if(strtolower($arCharge['STATUS']) == 'частично оплачен'){ $arCharge['STATUS'] = 'Оплачен, готов к отгрузке'; $status = 'Частично оплачен'; }elseif(strtolower($arCharge['STATUS']) == 'частично отгружен'){ $arCharge['STATUS'] = 'Оплачен, готов к частичной отгрузке'; $status = 'Частично отгружен'; }elseif(strtolower($arCharge['STATUS']) == 'не оплачен'){ $arCharge['STATUS'] = 'Не оплачен'; $status = 'Не оплачен'; } if($arCharge['NDS']!='Без НДС'){ $nds = 'с НДС'.$arCharge['NDS']; }else{ $nds = 'Без НДС'; } $html .= ' <div class="orders-list-table__item"> <span>Счет №'.$arCharge['NUMBER'].' '.$nds.' на сумму '.number_format($arCharge['SUM'], 0, '', ' ').' руб. '.$status.'.</span> <table class="check"> <tr><th>Наименование</th><th>Статус</th><th>Наличие товара</th><th>Срок поставки</th></tr>'; foreach($arCharge['ITEMS'] as $arItem){ if($arItem['STATUS']==''){$arItem['STATUS'] = '-';} if($arItem['HAVE']==''){$arItem['HAVE'] = '-';} if($arItem['SROK']==''){$arItem['SROK'] = '-';} $arElem = elem_info_by_xml_id(2, $arItem['XML_ID']); if(empty($arElem['NAME'])){ $arElem['NAME'] = 'Товар не найден в базе! ('.$arItem['XML_ID'].')'; } $html .= ' <tr> <td>'.$arElem['NAME'].'</td> <td>'.$arItem['STATUS'].'</td> <td>'.$arItem['HAVE'].'</td> <td>'.$arItem['SROK'].'</td> </tr> '; } $html .= '</table> </div> '; } $html .= '</div> <!--save-account__btn-->'; $db_vals = CSaleOrderPropsValue::GetList( array("SORT" => "ASC"), array( "ORDER_ID" => $a_order['ID'], "ORDER_PROPS_ID" => 22 ) ); $arVals = $db_vals->Fetch(); if(strlen($arVals['VALUE'])>0){ $arPrint = getPrintArray($arVals['VALUE']); } foreach($arCharges as $arCharge){ $html .= '<div class="save-account__btn"><a href="/downloadorder/download_charge.php?order_id='.$a_order['ID'].'&charge_number='.$arCharge['NUMBER'].'" target="_BLANK"><span>Сохранить счет №'.$arCharge['NUMBER'].'</span></a></div>'; foreach($arPrint as $charge_number => $arPrintForms){ if($charge_number!=$arCharge['NUMBER']) continue; if(!empty($arPrintForms['TORG12'])){ foreach($arPrintForms['TORG12'] as $torg){ if( ($a_order['DELIVERY_ID']==4)|| ($a_order['DELIVERY_ID']==5)|| ($a_order['DELIVERY_ID']==6) ){ if( ($DeliveryName == 'ПЭК')|| ($DeliveryName == 'Скиф-Карго')|| ($DeliveryName == 'Деловые линии') ){ if( (strtolower($status)=='отгружен')|| (strtolower($status)=='частично отгружен') ){ $html .= '<div class="save-account__btn"><a href="javascript:void(0);"><span>Товарно-транспортная накладная № '.$torg.'</span></a></div>'; } } } } } } } $html .= '<!--save-account__btn--> '; }else{ if((intval($_POST['number_o'])>0)&&(intval($_POST['number_c'])<1)){ $html .= 'Заказ не найден'; }elseif((intval($_POST['number_o'])<1)&&(intval($_POST['number_c'])>0)){ $html .= 'Счёт не найден'; }else{ $html .= 'Не заказ ни счёт не найдены'; } } $html .= '</div>'; echo $html; } // ЗАПРОС НА ОТПРАВКУ ОРИГИНАЛОВ АКТОВ СВЕРКИ if ($action == "send_orig_akts") { global $USER; $arFields = Array(); $arTMP1 = explode('&', $_POST['data']); foreach ($arTMP1 as $item) { $arTMP2 = explode('=', $item); $arFields[$arTMP2[0]] = urldecode($arTMP2[1]); } if((strlen($arFields['DATE_FROM'])>0)&&(strlen($arFields['DATE_TO'])>0)){ $PERIOD = 'c '.str_replace('/','.',$arFields['DATE_FROM']).' по '.str_replace('/','.',$arFields['DATE_TO']); }elseif((strlen($arFields['DATE_FROM'])>0)&&(strlen($arFields['DATE_TO'])<1)){ $PERIOD = 'c '.str_replace('/','.',$arFields['DATE_FROM']).' по '.date('d.m.Y'); }elseif((strlen($arFields['DATE_FROM'])<1)&&(strlen($arFields['DATE_TO'])>0)){ $PERIOD = 'по '.str_replace('/','.',$arFields['DATE_TO']); }else{ $PERIOD = 'за всё время'; } $ADDRESS = $arFields['UF_ADDRESS']; if(intval($arFields['ANOTHER_ADDR'])>0){ $ADDRESS = $arFields['UF_ADDRESS_NEW']; } $q = CUser::GetByID($USER->GetID()); $aUser = $q->GetNext(); $arEventFields = Array( "DATE_ZAPROSA" => date('d.m.Y H:i:s'), "PERIOD" => $PERIOD, "ADDRESS" => $ADDRESS, "COMPANY" => $aUser['UF_COMPANY'], "INN" => $aUser['UF_INN'], ); CEvent::SendImmediate("SEND_AKTS", "s1", $arEventFields); $q = CUser::GetByID($USER->GetID()); $aUser = $q->GetNext(); if(strlen($arFields['DATE_FROM'])>0){ $arFields['DATE_FROM'] = ConvertDateTo1C($arFields['DATE_FROM']); } if(strlen($arFields['DATE_TO'])>0){ $arFields['DATE_TO'] = ConvertDateTo1C($arFields['DATE_TO']); } $str .= date('YmdHis'); $str .= '|'.$aUser['UF_INN'].'|'.$arFields['DATE_FROM'].'|'.$arFields['DATE_TO'].'|'.$ADDRESS.'|Y'; $time = time(); $remote_file = 'zaproz_'.$time.'.txt'; $file = $_SERVER['DOCUMENT_ROOT'].'/to_ftp/zaproz_'.$time.'.txt'; $fp = fopen($file, "w"); $result = fwrite($fp, $str); fclose($fp); AddFileToFTP($remote_file, $file); echo 'ok'; } // ЗАПРОС НА ОТПРАВКУ АКТОВ СВЕРКИ НА E-MAIL if ($action == "send_akts") { global $USER; $arFields = Array(); $arTMP1 = explode('&', $_POST['data']); foreach ($arTMP1 as $item) { $arTMP2 = explode('=', $item); $arFields[$arTMP2[0]] = urldecode($arTMP2[1]); } $str = ''; if(strlen($arFields['DATE_FROM'])>0){ $arFields['DATE_FROM'] = ConvertDateTo1C($arFields['DATE_FROM']); } if(strlen($arFields['DATE_TO'])>0){ $arFields['DATE_TO'] = ConvertDateTo1C($arFields['DATE_TO']); } $EMAIL = $arFields['EMAIL']; if(intval($arFields['ANOTHER_EMAIL'])>0){ $EMAIL = $arFields['EMAIL_NEW']; } $q = CUser::GetByID($USER->GetID()); $aUser = $q->GetNext(); $str .= date('YmdHis'); $str .= '|'.$aUser['UF_INN'].'|'.$arFields['DATE_FROM'].'|'.$arFields['DATE_TO'].'|'.$EMAIL.'|N'; $time = time(); $remote_file = 'zaproz_'.$time.'.txt'; $file = $_SERVER['DOCUMENT_ROOT'].'/to_ftp/zaproz_'.$time.'.txt'; $fp = fopen($file, "w"); $result = fwrite($fp, $str); fclose($fp); AddFileToFTP($remote_file, $file); echo 'ok'; } // ЗАПРОС НА ОТПРАВКУ ОРИГИНАЛОВ ДОКУМЕНТОВ if ($action == "send_orig_docs") { global $USER; $arFields = Array(); $arTMP1 = explode('&', $_POST['data']); foreach ($arTMP1 as $item) { $arTMP2 = explode('=', $item); $arFields[$arTMP2[0]] = urldecode($arTMP2[1]); } $ADDRESS = $arFields['UF_ADDRESS']; if(intval($arFields['ANOTHER_ADDR'])>0){ $ADDRESS = $arFields['UF_ADDRESS_NEW']; } $q = CUser::GetByID($USER->GetID()); $aUser = $q->GetNext(); $arEventFields = Array( "DATE_ZAPROSA" => date('d.m.Y H:i:s'), "NUMBER" => $arFields['CHARGE_NUMBER'], "DOCS" => $arFields['DOCS'], "ADDRESS" => $ADDRESS, "COMPANY" => $aUser['UF_COMPANY'], "INN" => $aUser['UF_INN'], ); CEvent::SendImmediate("SEND_DOCS", "s1", $arEventFields); $CHARGE_NUMBER = str_replace(' ','',$arFields['CHARGE_NUMBER']); $arCharges = explode(',',$CHARGE_NUMBER); foreach($arCharges as $charge_number){ if(intval($charge_number)<1){ continue; } $charge_number .= '_'.$arFields['YEAR_CHARGE']; $SendDate = ''; $RequestDay = date('l'); $RequestTime = date('H'); $arThisThursday = array('Monday','Tuesday','Wednesday'); $arNextThursday = array('Thursday','Friday','Saturday','Sunday'); if(in_array($RequestDay,$arThisThursday)){ // До 16:00 Среды if($RequestTime<16){ $time = strtotime("Thursday"); $SendDate = date('d.m.Y H:i:s',$time); }else{ $time = strtotime("next Thursday"); $SendDate = date('d.m.Y H:i:s',$time); } }else{ $time = strtotime("next Thursday"); $SendDate = date('d.m.Y H:i:s',$time); } $str = 'Запрос оригиналов сделан|'.date('d.m.Y H:i:s').'|'.$SendDate; $remote_file = 'docz_orig_'.$charge_number.'.txt'; $file = $_SERVER['DOCUMENT_ROOT'].'/to_ftp/zaproz_orig_'.$charge_number.'.txt'; $fp = fopen($file, "w"); $result = fwrite($fp, $str); fclose($fp); AddFileToFTP($remote_file, $file); } $str = ''; $str_YC = ''; foreach($arCharges as $key => $charge_number){ if(intval($charge_number)<1){ continue; } $charge_number .= '_'.$arFields['YEAR_CHARGE']; if($key == 0){ $str_YC .= $charge_number; }else{ $str_YC .= ','.$charge_number; } } $str .= $aUser['UF_INN'].'|'.$ADDRESS.'|'.$str_YC; /*if(substr_count($arFields['DOCS'],'Счёт')){ $str .= '|Y'; }else{ $str .= '|'; } if(substr_count($arFields['DOCS'],'Товарная накладная')){ $str .= '|Y'; }else{ $str .= '|'; } if(substr_count($arFields['DOCS'],'Счет-фактура')){ $str .= '|Y'; }else{ $str .= '|'; }*/ $str .= '|'.date('YmdHis'); $time = time(); $remote_file = 'docz_zaproz_'.$time.'.txt'; $file = $_SERVER['DOCUMENT_ROOT'].'/to_ftp/docz_zaproz_'.$time.'.txt'; $fp = fopen($file, "w"); $result = fwrite($fp, $str); fclose($fp); AddFileToFTP($remote_file, $file); echo 'ok'; } require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); ?>
/var/./././backup/external_www/new02.medcomp.ru/include/functions.php