<?php use Bitrix\Currency\CurrencyManager; use Bitrix\Main\Application; use Bitrix\Main\EventManager; use Bitrix\Main\LoaderException; use Bitrix\Main\SystemException; use Bitrix\Main\UI\Extension; use Bitrix\Sale\Delivery\Services\Manager; use Intaro\RetailCrm\Component\ApiClient\ClientAdapter; use Intaro\RetailCrm\Component\ConfigProvider; use Intaro\RetailCrm\Component\Constants; use Intaro\RetailCrm\Component\Handlers\EventsHandlers; use Intaro\RetailCrm\Repository\AgreementRepository; use Intaro\RetailCrm\Repository\TemplateRepository; use Intaro\RetailCrm\Service\OrderLoyaltyDataService; use RetailCrm\Exception\CurlException; use \Intaro\RetailCrm\Service\Utils as RetailcrmUtils; IncludeModuleLangFile(__FILE__); $mid = 'intaro.retailcrm'; $uri = $APPLICATION->GetCurPage() . '?mid=' . htmlspecialchars($mid) . '&lang=' . LANGUAGE_ID; $CRM_API_HOST_OPTION = 'api_host'; $CRM_API_KEY_OPTION = 'api_key'; $CRM_ORDER_TYPES_ARR = 'order_types_arr'; $CRM_DELIVERY_TYPES_ARR = 'deliv_types_arr'; $CRM_DELIVERY_SERVICES_ARR = 'deliv_services_arr'; $CRM_PAYMENT_TYPES = 'pay_types_arr'; $CRM_PAYMENT_STATUSES = 'pay_statuses_arr'; $CRM_PAYMENT = 'payment_arr'; $CRM_ORDER_LAST_ID = 'order_last_id'; $CRM_ORDER_SITES = 'sites_ids'; $CRM_ORDER_DISCHARGE = 'order_discharge'; $CRM_ORDER_PROPS = 'order_props'; $CRM_LEGAL_DETAILS = 'legal_details'; $CRM_CUSTOM_FIELDS = 'custom_fields'; $CRM_COUPON_FIELD = 'crm_coupon_field'; $CRM_CONTRAGENT_TYPE = 'contragent_type'; $CRM_SITES_LIST = 'sites_list'; $CRM_ORDER_NUMBERS = 'order_numbers'; $CRM_ORDER_VAT = 'order_vat'; $CRM_CANSEL_ORDER = 'cansel_order'; $CRM_INVENTORIES_UPLOAD = 'inventories_upload'; $CRM_STORES = 'stores'; $CRM_SHOPS = 'shops'; $CRM_IBLOCKS_INVENTORIES = 'iblocks_inventories'; $CRM_PRICES_UPLOAD = 'prices_upload'; $CRM_PRICES = 'prices'; $CRM_PRICE_SHOPS = 'price_shops'; $CRM_IBLOCKS_PRICES = 'iblock_prices'; $CRM_COLLECTOR = 'collector'; $CRM_COLL_KEY = 'coll_key'; $CRM_UA = 'ua'; $CRM_UA_KEYS = 'ua_keys'; $CRM_DISCOUNT_ROUND = 'discount_round'; $CRM_CC = 'cc'; $CRM_CORP_SHOPS = 'shops-corporate'; $CRM_CORP_NAME = 'nickName-corporate'; $CRM_CORP_ADRES = 'adres-corporate'; $CRM_API_VERSION = 'api_version'; $CRM_CURRENCY = 'currency'; $CRM_ADDRESS_OPTIONS = 'address_options'; $CRM_DIMENSIONS = 'order_dimensions'; $PROTOCOL = 'protocol'; $CRM_PURCHASE_PRICE_NULL = 'purchasePrice_null'; $CRM_CART = 'cart'; $MODULE_DEACTIVATE = 'module_deactivate'; $AGENTS_DEACTIVATE = 'agents_deactivate'; $EVENTS_DEACTIVATE = 'events_deactivate'; if (!CModule::IncludeModule('intaro.retailcrm') || !CModule::IncludeModule('sale') || !CModule::IncludeModule('iblock') || !CModule::IncludeModule('catalog')) { return; } $_GET['errc'] = htmlspecialchars(trim($_GET['errc'])); $_GET['ok'] = htmlspecialchars(trim($_GET['ok'])); if (RetailcrmConfigProvider::isPhoneRequired()) { echo ShowMessage(["TYPE" => "ERROR", "MESSAGE" => GetMessage('PHONE_REQUIRED')]); } if (array_key_exists('errc', $_GET) && is_string($_GET['errc']) && strlen($_GET['errc']) > 0) { echo CAdminMessage::ShowMessage(GetMessage($_GET['errc'])); } if (!empty($_GET['ok']) && $_GET['ok'] === 'Y') { echo CAdminMessage::ShowNote(GetMessage('ICRM_OPTIONS_OK')); } $arResult = []; if (file_exists($_SERVER["DOCUMENT_ROOT"] . '/bitrix/modules/intaro.retailcrm/classes/general/config/options.xml')) { $options = simplexml_load_file($_SERVER["DOCUMENT_ROOT"] . '/bitrix/modules/intaro.retailcrm/classes/general/config/options.xml'); foreach($options->contragents->contragent as $contragent) { $type["NAME"] = $APPLICATION->ConvertCharset((string)$contragent, 'utf-8', SITE_CHARSET); $type["ID"] = (string)$contragent["id"]; $arResult['contragentType'][] = $type; unset ($type); } foreach ($options->fields->field as $field) { $type["NAME"] = $APPLICATION->ConvertCharset((string) $field, 'utf-8', SITE_CHARSET); $type["ID"] = (string) $field["id"]; if ($field["group"] === 'custom') { $arResult['customFields'][] = $type; } elseif (!$field["group"]) { $arResult['orderProps'][] = $type; } else { $groups = explode(",", (string) $field["group"]); foreach ($groups as $group) { $type["GROUP"][] = trim($group); } $arResult['legalDetails'][] = $type; } unset($type); } } $arResult['arSites'] = RCrmActions::getSitesList(); $arResult['arCurrencySites'] = RCrmActions::getCurrencySites(); //ajax update deliveryServices if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') && isset($_POST['ajax']) && ($_POST['ajax'] === 1)) { $api_host = COption::GetOptionString($mid, $CRM_API_HOST_OPTION, 0); $api_key = COption::GetOptionString($mid, $CRM_API_KEY_OPTION, 0); $api = new RetailCrm\ApiClient($api_host, $api_key); try { $api->paymentStatusesList(); } catch (CurlException $e) { RCrmActions::eventLog( 'intaro.retailcrm/options.php', 'RetailCrm\ApiClient::paymentStatusesList::CurlException', $e->getCode() . ': ' . $e->getMessage() ); $APPLICATION->RestartBuffer(); header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET); die(json_encode(['success' => false, 'errMsg' => $e->getCode()])); } $optionsDelivTypes = unserialize(COption::GetOptionString($mid, $CRM_DELIVERY_TYPES_ARR, 0)); $arDeliveryServiceAll = Manager::getActiveList(); foreach ($optionsDelivTypes as $key => $deliveryType) { foreach ($arDeliveryServiceAll as $deliveryService) { if ($deliveryService['PARENT_ID'] != 0 && $deliveryService['PARENT_ID'] === $key) { try { $api->deliveryServicesEdit(RCrmActions::clearArr([ 'code' => 'bitrix-' . $deliveryService['ID'], 'name' => RCrmActions::toJSON($deliveryService['NAME']), 'deliveryType' => $deliveryType, ])); } catch (CurlException $e) { RCrmActions::eventLog( 'intaro.retailcrm/options.php', 'RetailCrm\ApiClient::deliveryServiceEdit::CurlException', $e->getCode() . ': ' . $e->getMessage() ); } } } } $APPLICATION->RestartBuffer(); header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET); die(json_encode(['success' => true])); } //upload orders after install module if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') && isset($_POST['ajax']) && $_POST['ajax'] == 2) { $step = $_POST['step']; $orders = $_POST['orders']; $countStep = 50; // 50 orders on step if ($orders) { $ordersArr = explode(',', $orders); $orders = []; foreach ($ordersArr as $_ordersArr) { $ordersList = explode('-', trim($_ordersArr)); if (count($ordersList) > 1) { for ($i = (int) trim($ordersList[0]); $i <= (int) trim($ordersList[count($ordersList) - 1]); $i++) { $orders[] = $i; } } else { $orders[] = (int)$ordersList[0]; } } $splitedOrders = array_chunk($orders, $countStep); $stepOrders = $splitedOrders[$step]; RetailCrmOrder::uploadOrders($countStep, false, $stepOrders); $percent = round((($step * $countStep + count($stepOrders)) * 100 / count($orders)), 1); $step++; if (!$splitedOrders[$step]) { $step = 'end'; } $res = ["step" => $step, "percent" => $percent, 'stepOrders' => $stepOrders]; } else { $orders = []; for ($i = 1; $i <= $countStep; $i++) { $orders[] = $i + $step * $countStep; } RetailCrmOrder::uploadOrders($countStep, false, $orders); $step++; $countLeft = (int)CSaleOrder::GetList(["ID" => "ASC"], ['>ID' => $step * $countStep], []); $countAll = (int)CSaleOrder::GetList(["ID" => "ASC"], [], []); $percent = round(100 - ($countLeft * 100 / $countAll), 1); if ($countLeft === 0) { $step = 'end'; } $res = ["step" => $step, "percent" => $percent, 'stepOrders' => $orders]; } $APPLICATION->RestartBuffer(); header('Content-Type: application/x-javascript; charset=' . LANG_CHARSET); die(json_encode($res)); } $availableSites = RetailcrmConfigProvider::getSitesList(); if (!empty($availableSites)) { $availableSites = array_flip($availableSites); } else { $site = RetailcrmConfigProvider::getSitesAvailable(); $availableSites[$site] = $site; } //update connection settings if (isset($_POST['Update']) && ($_POST['Update'] === 'Y')) { $api_host = htmlspecialchars(trim($_POST['api_host'])); $api_key = htmlspecialchars(trim($_POST['api_key'])); //bitrix site list $siteListArr = []; foreach ($arResult['arSites'] as $arSites) { if (count($arResult['arSites']) > 1) { if ($_POST['sites-id-' . $arSites['LID']]) { $siteListArr[$arSites['LID']] = htmlspecialchars(trim($_POST['sites-id-' . $arSites['LID']])); } else { $siteListArr[$arSites['LID']] = null; } } } if ($api_host && $api_key) { $api = new ClientAdapter($api_host, $api_key); try { $credentials = $api->getCredentials(); if (!empty($credentials->errorMsg)) { $uri .= '&errc=ERR_' . $credentials->errorMsg; LocalRedirect($uri); } ConfigProvider::setSitesAvailable( count($credentials->sitesAvailable) > 0 ? $credentials->sitesAvailable[0] : '' ); } catch (CurlException $e) { RCrmActions::eventLog( 'intaro.retailcrm/options.php', 'RetailCrm\ApiClient::paymentStatusesList::CurlException', $e->getCode() . ': ' . $e->getMessage() ); $uri .= '&errc=ERR_' . $e->getCode(); LocalRedirect($uri); } COption::SetOptionString($mid, 'api_host', $api_host); COption::SetOptionString($mid, 'api_key', $api_key); } else { $uri .= '&errc=ERR_WRONG_CREDENTIALS'; LocalRedirect($uri); } //form order types ids arr $orderTypesList = RCrmActions::OrderTypesList($arResult['arSites']); $orderTypesArr = []; foreach ($orderTypesList as $orderType) { $orderTypesArr[$orderType['ID']] = htmlspecialchars(trim($_POST['order-type-' . $orderType['ID']])); } //form delivery types ids arr $arResult['bitrixDeliveryTypesList'] = RCrmActions::DeliveryList(); $deliveryTypesArr = []; foreach ($arResult['bitrixDeliveryTypesList'] as $delivery) { $deliveryTypesArr[$delivery['ID']] = htmlspecialchars(trim($_POST['delivery-type-' . $delivery['ID']])); } //form payment types ids arr $arResult['bitrixPaymentTypesList'] = RCrmActions::PaymentList(); $paymentTypesArr = []; foreach ($arResult['bitrixPaymentTypesList'] as $payment) { $paymentTypesArr[$payment['ID']] = htmlspecialchars(trim($_POST['payment-type-' . $payment['ID']])); } //form payment statuses ids arr $arResult['bitrixStatusesList'] = RCrmActions::StatusesList(); $paymentStatusesArr = []; $canselOrderArr = []; foreach ($arResult['bitrixStatusesList'] as $status) { $paymentStatusesArr[$status['ID']] = htmlspecialchars(trim($_POST['payment-status-' . $status['ID']])); if (trim($_POST['order-cansel-' . $status['ID']]) === 'Y') { $canselOrderArr[] = $status['ID']; } } //form payment ids arr $paymentArr = []; $paymentArr['Y'] = htmlspecialchars(trim($_POST['payment-Y'])); $paymentArr['N'] = htmlspecialchars(trim($_POST['payment-N'])); $previousDischarge = COption::GetOptionString($mid, $CRM_ORDER_DISCHARGE, 0); //order discharge mode // 0 - agent // 1 - event $orderDischarge = (int) htmlspecialchars(trim($_POST['order-discharge'])); if (($orderDischarge != $previousDischarge) && ($orderDischarge === 0)) { // remove depenedencies UnRegisterModuleDependences('sale', 'OnOrderUpdate', $mid, 'RetailCrmEvent', "onUpdateOrder"); UnRegisterModuleDependences('sale', 'OnSaleOrderDeleted', $mid, 'RetailCrmEvent', "orderDelete"); } elseif (($orderDischarge != $previousDischarge) && ($orderDischarge === 1)) { // event dependencies RegisterModuleDependences('sale', 'OnOrderUpdate', $mid, 'RetailCrmEvent', "onUpdateOrder"); RegisterModuleDependences('sale', 'OnSaleOrderDeleted', $mid, 'RetailCrmEvent', "orderDelete"); } $optionCart = COption::GetOptionString($mid, $CRM_CART, 'N'); $cart = htmlspecialchars(trim($_POST['cart'])); if ($cart != $optionCart) { if ($cart === 'Y') { $optionCart = 'Y'; RegisterModuleDependences('sale', 'OnSaleBasketSaved', $mid, 'RetailCrmEvent', 'onChangeBasket'); } else { $optionCart = 'N'; UnRegisterModuleDependences('sale', 'OnSaleBasketSaved', $mid, 'RetailCrmEvent', 'onChangeBasket'); } } $orderPropsArr = []; foreach ($orderTypesList as $orderType) { $propsCount = 0; $_orderPropsArr = []; foreach ($arResult['orderProps'] as $orderProp) { if (isset($_POST['address-detail-' . $orderType['ID']])) { $addressDatailOptions[$orderType['ID']] = $_POST['address-detail-' . $orderType['ID']]; } if ( (!(int) htmlspecialchars(trim($_POST['address-detail-' . $orderType['ID']]))) && $propsCount > 4 ) { break; } $_orderPropsArr[$orderProp['ID']] = htmlspecialchars( trim($_POST['order-prop-' . $orderProp['ID'] . '-' . $orderType['ID']]) ); $propsCount++; } $orderPropsArr[$orderType['ID']] = $_orderPropsArr; } //legal details props $legalDetailsArr = []; foreach ($orderTypesList as $orderType) { $_legalDetailsArr = []; foreach ($arResult['legalDetails'] as $legalDetails) { $_legalDetailsArr[$legalDetails['ID']] = htmlspecialchars(trim($_POST['legal-detail-' . $legalDetails['ID'] . '-' . $orderType['ID']])); } $legalDetailsArr[$orderType['ID']] = $_legalDetailsArr; } $customFieldsArr = []; foreach ($orderTypesList as $orderType) { $_customFieldsArr = []; foreach ($arResult['customFields'] as $custom) { $_customFieldsArr[$custom['ID']] = htmlspecialchars(trim($_POST['custom-fields-' . $custom['ID'] . '-' . $orderType['ID']])); } $customFieldsArr[$orderType['ID']] = $_customFieldsArr; } //contragents type list $contragentTypeArr = []; foreach ($orderTypesList as $orderType) { $contragentTypeArr[$orderType['ID']] = htmlspecialchars(trim($_POST['contragent-type-' . $orderType['ID']])); } //stores $bitrixStoresArr = []; $bitrixShopsArr = []; $bitrixIblocksInventories = []; if (htmlspecialchars(trim($_POST['inventories-upload'])) === 'Y') { $inventoriesUpload = 'Y'; $dateAgent = new DateTime(); $intAgent = new DateInterval('PT60S'); // PT60S - 60 sec; $dateAgent->add($intAgent); CAgent::AddAgent( "RetailCrmInventories::inventoriesUpload();", $mid, "N", 3600, // interval - 1 hour $dateAgent->format('d.m.Y H:i:s'), // date of first check "Y", // agent is active $dateAgent->format('d.m.Y H:i:s'), // date of first start 30 ); $arResult['bitrixStoresExportList'] = RCrmActions::StoresExportList(); foreach ($arResult['bitrixStoresExportList'] as $bitrixStores) { $bitrixStoresArr[$bitrixStores['ID']] = htmlspecialchars(trim($_POST['stores-export-' . $bitrixStores['ID']])); } function maskInv($var) { return preg_match("/^shops-exoprt/", $var); } $bitrixShopsArr = array_values(array_filter($_POST, 'maskInv', ARRAY_FILTER_USE_KEY)); $arResult['bitrixIblocksExportList'] = RCrmActions::IblocksExportList(); foreach ($arResult['bitrixIblocksExportList'] as $bitrixIblocks) { if (htmlspecialchars(trim($_POST['iblocks-stores-' . $bitrixIblocks['ID']])) === 'Y') { $bitrixIblocksInventories[] = $bitrixIblocks['ID']; } } } else { $inventoriesUpload = 'N'; CAgent::RemoveAgent("RetailCrmInventories::inventoriesUpload();", $mid); } //prices $bitrixPricesArr = []; $bitrixIblocksPrices = []; $bitrixPriceShopsArr = []; if (htmlspecialchars(trim($_POST['prices-upload'])) === 'Y') { $pricesUpload = 'Y'; $dateAgent = new DateTime(); $intAgent = new DateInterval('PT60S'); // PT60S - 60 sec; $dateAgent->add($intAgent); CAgent::AddAgent( "RetailCrmPrices::pricesUpload();", $mid, "N", 86400, // interval - 24 hours $dateAgent->format('d.m.Y H:i:s'), // date of first check "Y", // agent is active $dateAgent->format('d.m.Y H:i:s'), // date of first start 30 ); $arResult['bitrixPricesExportList'] = RCrmActions::PricesExportList(); foreach ($arResult['bitrixPricesExportList'] as $bitrixPrices) { $bitrixPricesArr[$bitrixPrices['ID']] = htmlspecialchars(trim($_POST['price-type-export-' . $bitrixPrices['ID']])); } function maskPrice($var) { return preg_match("/^shops-price/", $var); } $bitrixPriceShopsArr = array_values(array_filter($_POST, 'maskPrice', ARRAY_FILTER_USE_KEY)); $arResult['bitrixIblocksExportList'] = RCrmActions::IblocksExportList(); foreach ($arResult['bitrixIblocksExportList'] as $bitrixIblocks) { if (htmlspecialchars(trim($_POST['iblocks-prices-' . $bitrixIblocks['ID']])) === 'Y') { $bitrixIblocksPrices[] = $bitrixIblocks['ID']; } } } else { $pricesUpload = 'N'; CAgent::RemoveAgent("RetailCrmPrices::pricesUpload();", $mid); } //demon $collectorKeys = []; if (htmlspecialchars(trim($_POST['collector'])) === 'Y') { $collector = 'Y'; foreach ($arResult['arSites'] as $site) { $collectorKeys[$site['LID']] = trim($_POST['collector-id-' . $site['LID']]); } RegisterModuleDependences("main", "OnBeforeProlog", $mid, "RetailCrmCollector", "add"); } else { $collector = 'N'; UnRegisterModuleDependences("main", "OnBeforeProlog", $mid, "RetailCrmCollector", "add"); } //UA $uaKeys = []; if (htmlspecialchars(trim($_POST['ua-integration'])) === 'Y') { $ua = 'Y'; foreach ($arResult['arSites'] as $site) { $uaKeys[$site['LID']]['ID'] = trim($_POST['ua-id-' . $site['LID']]); $uaKeys[$site['LID']]['INDEX'] = trim($_POST['ua-index-' . $site['LID']]); } RegisterModuleDependences("main", "OnBeforeProlog", $mid, "RetailCrmUa", "add"); } else { $ua = 'N'; UnRegisterModuleDependences("main", "OnBeforeProlog", $mid, "RetailCrmUa", "add"); } //online_consultant if (htmlspecialchars(trim($_POST['online_consultant'] === 'Y'))) { $onlineConsultant = 'Y'; $onlineConsultantScript = trim($_POST['online_consultant_script']); RegisterModuleDependences("main", "OnBeforeProlog", $mid, "RetailCrmOnlineConsultant", "add"); } else { $onlineConsultant = 'N'; $onlineConsultantScript = RetailcrmConfigProvider::getOnlineConsultantScript(); UnRegisterModuleDependences("main", "OnBeforeProlog", $mid, "RetailCrmOnlineConsultant", "add"); } //discount_round if (htmlspecialchars(trim($_POST['discount_round'])) === 'Y') { $discount_round = 'Y'; } else { $discount_round = 'N'; } //shipment if (htmlspecialchars(trim($_POST['shipment_deducted'])) === 'Y') { $shipment_deducted = 'Y'; } else { $shipment_deducted = 'N'; } //corporate-cliente if (htmlspecialchars(trim($_POST['corp-client'])) === 'Y') { $cc = 'Y'; $bitrixCorpName = htmlspecialchars(trim($_POST['nickName-corporate'])); $bitrixCorpAdres = htmlspecialchars(trim($_POST['adres-corporate'])); function maskCorp($var) { return preg_match("/^shops-corporate/", $var); } $bitrixCorpShopsArr = array_values(array_filter($_POST, 'maskCorp', ARRAY_FILTER_USE_KEY)); } else { $cc = 'N'; } //purchasePrice_null if (htmlspecialchars(trim($_POST['purchasePrice_null'])) === 'Y') { $purchasePrice_null = 'Y'; } else { $purchasePrice_null = 'N'; } //version $version = COption::GetOptionString($mid, $CRM_API_VERSION); if (htmlspecialchars(trim($_POST['api_version'])) != $version) { if (htmlspecialchars(trim($_POST['api_version'])) === 'v5') { $version = 'v5'; } else { LocalRedirect($uri); echo CAdminMessage::ShowMessage(GetMessage('API_NOT_FOUND')); } //api request with $version $crmUrl = htmlspecialchars(trim($_POST['api_host'])); $apiKey = htmlspecialchars(trim($_POST['api_key'])); if ('/' !== $crmUrl[strlen($crmUrl) - 1]) { $crmUrl .= '/'; } $crmUrl .= 'api/' . $version; $client = new RetailCrm\Http\Client($crmUrl, ['apiKey' => $apiKey]); $result = $client->makeRequest( '/reference/payment-statuses', 'GET' ); if ($result->getStatusCode() === 200) { COption::SetOptionString($mid, $CRM_API_VERSION, $version); } else { LocalRedirect($uri); echo CAdminMessage::ShowMessage(GetMessage('API_NOT_WORK')); } } if ($_POST[$CRM_CURRENCY]) { COption::SetOptionString($mid, $CRM_CURRENCY, $_POST['currency']); } if (isset($_POST['loyalty_toggle']) && $_POST['loyalty_toggle'] === 'on') { try { $hlName = RetailcrmUtils::getHlClassByName(Constants::HL_LOYALTY_CODE); if (empty($hlName)) { OrderLoyaltyDataService::createLoyaltyHlBlock(); } } catch (LoaderException | SystemException $exception) { RCrmActions::eventLog( 'intaro.retailcrm/options.php', 'OrderLoyaltyDataService::createLoyaltyHlBlock', $e->getCode() . ': ' . $exception->getMessage() ); } ConfigProvider::setLoyaltyProgramStatus('Y'); } else { ConfigProvider::setLoyaltyProgramStatus('N'); } try { $arResult['paymentTypesList'] = RetailCrmService::getAvailableTypes( $availableSites, $api->paymentTypesList()->paymentTypes ); $arResult['deliveryTypesList'] = RetailCrmService::getAvailableTypes( $availableSites, $api->deliveryTypesList()->deliveryTypes ); } catch (\RetailCrm\Exception\CurlException $e) { RCrmActions::eventLog( 'intaro.retailcrm/options.php', 'RetailCrm\ApiClient::*List::CurlException', $e->getCode() . ': ' . $e->getMessage() ); CAdminMessage::ShowMessage(GetMessage('ERR_' . $e->getCode())); } $integrationPayments = RetailCrmService::selectIntegrationPayments($arResult['paymentTypesList']); $integrationDeliveries = RetailCrmService::selectIntegrationDeliveries($arResult['deliveryTypesList']); RetailcrmConfigProvider::setIntegrationPaymentTypes($integrationPayments); RetailcrmConfigProvider::setIntegrationDelivery($integrationDeliveries); $moduleDeactivateParam = htmlspecialchars(trim($_POST['module-deactivate'])) ?? 'N'; if ('Y' === $moduleDeactivateParam) { global $DB; $agents = $DB->Query("SELECT * FROM `b_agent` WHERE `MODULE_ID` = 'intaro.retailcrm';"); $events = $DB->Query("SELECT * FROM `b_module_to_module` WHERE `TO_MODULE_ID` = 'intaro.retailcrm';"); $deactivateAgents = []; $deactivateEvents = []; // Fetch - If the last record is reached (or there are no records as a result), the method returns false while ($agent = $agents->Fetch()) { $deactivateAgents[] = $agent; CAgent::RemoveAgent($agent['NAME'], $agent['MODULE_ID'], $agent['USER_ID']); } // Fetch - If the last record is reached (or there are no records as a result), the method returns false while ($event = $events->Fetch()) { $deactivateEvents[] = $event; UnRegisterModuleDependences( $event['FROM_MODULE_ID'], $event['MESSAGE_ID'], $event['TO_MODULE_ID'], $event['TO_CLASS'], $event['TO_METHOD'] ); } if ($deactivateAgents !== []) { COption::SetOptionString($mid, $AGENTS_DEACTIVATE, serialize($deactivateAgents)); } if ($deactivateEvents !== []) { COption::SetOptionString($mid, $EVENTS_DEACTIVATE, serialize($deactivateEvents)); } } else { $deactivateAgents = unserialize(COption::GetOptionString($mid, $AGENTS_DEACTIVATE, '')); $deactivateEvents = unserialize(COption::GetOptionString($mid, $EVENTS_DEACTIVATE, '')); if (!empty($deactivateAgents)) { $dateAgent = new DateTime(); // PT60S - 60 sec; $dateAgent->add(new DateInterval('PT60S')); foreach ($deactivateAgents as $agent) { CAgent::AddAgent( $agent['NAME'], $agent['MODULE_ID'], 'N', $agent['AGENT_INTERVAL'], $dateAgent->format('d.m.Y H:i:s'), $agent['ACTIVE'], $dateAgent->format('d.m.Y H:i:s') ); } COption::SetOptionString($mid, $AGENTS_DEACTIVATE, serialize([])); } if (!empty($deactivateEvents)) { $eventManager = EventManager::getInstance(); foreach ($deactivateEvents as $event) { if (strpos($event['TO_METHOD'], 'Handler') !== false) { $eventManager->registerEventHandler( $event['FROM_MODULE_ID'], $event['MESSAGE_ID'], $event['TO_MODULE_ID'], $event['TO_CLASS'], $event['TO_METHOD'] ); } else { RegisterModuleDependences( $event['FROM_MODULE_ID'], $event['MESSAGE_ID'], $event['TO_MODULE_ID'], $event['TO_CLASS'], $event['TO_METHOD'] ); } } COption::SetOptionString($mid, $EVENTS_DEACTIVATE, serialize([])); } } COption::SetOptionString( $mid, $MODULE_DEACTIVATE, serialize($moduleDeactivateParam) ); COption::SetOptionString( $mid, $CRM_ADDRESS_OPTIONS, serialize($addressDatailOptions) ); COption::SetOptionString( $mid, $CRM_SITES_LIST, serialize($siteListArr) ); COption::SetOptionString( $mid, $CRM_ORDER_TYPES_ARR, serialize(RCrmActions::clearArr(is_array($orderTypesArr) ? $orderTypesArr : [])) ); COption::SetOptionString( $mid, $CRM_DELIVERY_TYPES_ARR, serialize(RCrmActions::clearArr(is_array($deliveryTypesArr) ? $deliveryTypesArr : [])) ); COption::SetOptionString( $mid, $CRM_PAYMENT_TYPES, serialize(RCrmActions::clearArr(is_array($paymentTypesArr) ? $paymentTypesArr : [])) ); COption::SetOptionString( $mid, $CRM_PAYMENT_STATUSES, serialize(RCrmActions::clearArr(is_array($paymentStatusesArr) ? $paymentStatusesArr : [])) ); COption::SetOptionString( $mid, $CRM_PAYMENT, serialize(RCrmActions::clearArr(is_array($paymentArr) ? $paymentArr : [])) ); COption::SetOptionString( $mid, $CRM_ORDER_DISCHARGE, $orderDischarge ); COption::SetOptionString( $mid, $CRM_ORDER_PROPS, serialize(RCrmActions::clearArr(is_array($orderPropsArr) ? $orderPropsArr : [])) ); COption::SetOptionString( $mid, $CRM_CONTRAGENT_TYPE, serialize(RCrmActions::clearArr(is_array($contragentTypeArr) ? $contragentTypeArr : [])) ); COption::SetOptionString( $mid, $CRM_LEGAL_DETAILS, serialize(RCrmActions::clearArr(is_array($legalDetailsArr) ? $legalDetailsArr : [])) ); COption::SetOptionString( $mid, $CRM_CUSTOM_FIELDS, serialize(RCrmActions::clearArr(is_array($customFieldsArr) ? $customFieldsArr : [])) ); COption::SetOptionString( $mid, $CRM_ORDER_NUMBERS, htmlspecialchars(trim($_POST['order-numbers'])) ?: 'N' ); COption::SetOptionString( $mid, $CRM_ORDER_VAT, htmlspecialchars(trim($_POST['order-vat'])) ?: 'N' ); COption::SetOptionString( $mid, $CRM_COUPON_FIELD, htmlspecialchars(trim($_POST['crm-coupon-field'])) ?: 'N' ); COption::SetOptionString( $mid, Constants::CRM_SEND_PICKUP_POINT_ADDRESS, htmlspecialchars(trim($_POST['send-pickup-point-address'])) ?: 'N' ); COption::SetOptionString( $mid, $CRM_CANSEL_ORDER, serialize(RCrmActions::clearArr(is_array($canselOrderArr) ? $canselOrderArr : [])) ); COption::SetOptionString( $mid, $CRM_INVENTORIES_UPLOAD, $inventoriesUpload ); COption::SetOptionString( $mid, $CRM_STORES, serialize(RCrmActions::clearArr(is_array($bitrixStoresArr) ? $bitrixStoresArr : [])) ); COption::SetOptionString( $mid, $CRM_SHOPS, serialize(RCrmActions::clearArr(is_array($bitrixShopsArr) ? $bitrixShopsArr : [])) ); COption::SetOptionString( $mid, $CRM_IBLOCKS_INVENTORIES, serialize(RCrmActions::clearArr(is_array($bitrixIblocksInventories) ? $bitrixIblocksInventories : [])) ); COption::SetOptionString( $mid, $CRM_PRICES_UPLOAD, $pricesUpload ); COption::SetOptionString( $mid, $CRM_PRICES, serialize(RCrmActions::clearArr(is_array($bitrixPricesArr) ? $bitrixPricesArr : [])) ); COption::SetOptionString( $mid, $CRM_PRICE_SHOPS, serialize(RCrmActions::clearArr(is_array($bitrixPriceShopsArr) ? $bitrixPriceShopsArr : [])) ); COption::SetOptionString( $mid, $CRM_IBLOCKS_PRICES, serialize(RCrmActions::clearArr(is_array($bitrixIblocksPrices) ? $bitrixIblocksPrices : [])) ); COption::SetOptionString( $mid, $CRM_COLLECTOR, $collector ); COption::SetOptionString( $mid, $CRM_COLL_KEY, serialize(RCrmActions::clearArr(is_array($collectorKeys) ? $collectorKeys : [])) ); RetailCrmConfigProvider::setOnlineConsultant($onlineConsultant); RetailCrmConfigProvider::setOnlineConsultantScript($onlineConsultantScript); COption::SetOptionString( $mid, $CRM_UA, $ua ); COption::SetOptionString( $mid, $CRM_UA_KEYS, serialize(RCrmActions::clearArr(is_array($uaKeys) ? $uaKeys : [])) ); COption::SetOptionString( $mid, $CRM_DIMENSIONS, htmlspecialchars(trim($_POST[$CRM_DIMENSIONS])) ?: 'N' ); RetailcrmConfigProvider::setSendPaymentAmount(htmlspecialchars(trim($_POST[Constants::SEND_PAYMENT_AMOUNT])) ?: 'N'); RetailCrmConfigProvider::setDiscountRound($discount_round); RetailcrmConfigProvider::setCart($optionCart); COption::SetOptionString( $mid, $CRM_PURCHASE_PRICE_NULL, $purchasePrice_null ); COption::SetOptionString( $mid, RetailcrmConstants::CRM_SHIPMENT_DEDUCTED, $shipment_deducted); COption::SetOptionString( $mid, $CRM_CC, $cc ); COption::SetOptionString( $mid, $CRM_CORP_SHOPS, serialize(RCrmActions::clearArr(is_array($bitrixCorpShopsArr) ? $bitrixCorpShopsArr : [])) ); COption::SetOptionString( $mid, $CRM_CORP_NAME, $bitrixCorpName ); COption::SetOptionString( $mid, $CRM_CORP_ADRES, $bitrixCorpAdres ); $request = Application::getInstance()->getContext()->getRequest(); if ($request->isHttps() === true) { COption::SetOptionString($mid, $PROTOCOL, 'https://'); } else { COption::SetOptionString($mid, $PROTOCOL, 'http://'); } $uri .= '&ok=Y'; LocalRedirect($uri); } else { $api_host = COption::GetOptionString($mid, $CRM_API_HOST_OPTION, 0); $api_key = COption::GetOptionString($mid, $CRM_API_KEY_OPTION, 0); $api = new RetailCrm\ApiClient($api_host, $api_key); //prepare crm lists try { $arResult['orderTypesList'] = $api->orderTypesList()->orderTypes; $arResult['deliveryTypesList'] = $api->deliveryTypesList()->deliveryTypes; $arResult['deliveryServicesList'] = $api->deliveryServicesList()->deliveryServices; $arResult['paymentTypesList'] = $api->paymentTypesList()->paymentTypes; $arResult['paymentStatusesList'] = $api->paymentStatusesList()->paymentStatuses; // --statuses $arResult['paymentList'] = $api->statusesList()->statuses; $arResult['paymentGroupList'] = $api->statusGroupsList()->statusGroups; // -- statuses groups $arResult['sitesList'] = $APPLICATION->ConvertCharsetArray($api->sitesList()->sites, 'utf-8', SITE_CHARSET); $arResult['inventoriesList'] = $APPLICATION->ConvertCharsetArray($api->storesList()->stores, 'utf-8', SITE_CHARSET); $arResult['priceTypeList'] = $APPLICATION->ConvertCharsetArray($api->pricesTypes()->priceTypes, 'utf-8', SITE_CHARSET); } catch (\RetailCrm\Exception\CurlException $e) { RCrmActions::eventLog( 'intaro.retailcrm/options.php', 'RetailCrm\ApiClient::*List::CurlException', $e->getCode() . ': ' . $e->getMessage() ); echo CAdminMessage::ShowMessage(GetMessage('ERR_' . $e->getCode())); } catch (InvalidArgumentException $e) { $badKey = true; echo CAdminMessage::ShowMessage(GetMessage('ERR_403')); } catch (\RetailCrm\Exception\InvalidJsonException $e) { $badJson = true; echo CAdminMessage::ShowMessage(GetMessage('ERR_JSON')); } $arResult['paymentTypesList'] = RetailCrmService::getAvailableTypes( $availableSites, $api->paymentTypesList()->paymentTypes ); $arResult['deliveryTypesList'] = RetailCrmService::getAvailableTypes( $availableSites, $api->deliveryTypesList()->deliveryTypes ); $integrationPayments = RetailCrmService::selectIntegrationPayments($arResult['paymentTypesList']); $integrationDeliveries = RetailCrmService::selectIntegrationDeliveries($arResult['deliveryTypesList']); RetailcrmConfigProvider::setIntegrationPaymentTypes($integrationPayments); RetailcrmConfigProvider::setIntegrationDelivery($integrationDeliveries); //bitrix orderTypesList -- personTypes $arResult['bitrixOrderTypesList'] = RCrmActions::OrderTypesList($arResult['arSites']); //bitrix deliveryTypesList $arResult['bitrixDeliveryTypesList'] = RCrmActions::DeliveryList(); //bitrix paymentTypesList $arResult['bitrixPaymentTypesList'] = RCrmActions::PaymentList(); //bitrix statusesList $arResult['bitrixPaymentStatusesList'] = RCrmActions::StatusesList(); //bitrix pyament Y/N $arResult['bitrixPaymentList'][0]['NAME'] = GetMessage('PAYMENT_Y'); $arResult['bitrixPaymentList'][0]['ID'] = 'Y'; $arResult['bitrixPaymentList'][1]['NAME'] = GetMessage('PAYMENT_N'); $arResult['bitrixPaymentList'][1]['ID'] = 'N'; //bitrix orderPropsList $arResult['arProp'] = RCrmActions::OrderPropsList(); $arResult['bitrixIblocksExportList'] = RCrmActions::IblocksExportList(); $arResult['bitrixStoresExportList'] = RCrmActions::StoresExportList(); $arResult['bitrixPricesExportList'] = RCrmActions::PricesExportList(); //saved params $moduleDeactivate = unserialize(COption::GetOptionString($mid, $MODULE_DEACTIVATE, 'N')); $optionsOrderTypes = unserialize(COption::GetOptionString($mid, $CRM_ORDER_TYPES_ARR, 0)); $optionsDelivTypes = unserialize(COption::GetOptionString($mid, $CRM_DELIVERY_TYPES_ARR, 0)); $optionsPayTypes = unserialize(COption::GetOptionString($mid, $CRM_PAYMENT_TYPES, 0)); $optionsPayStatuses = unserialize(COption::GetOptionString($mid, $CRM_PAYMENT_STATUSES, 0)); // --statuses $optionsPayment = unserialize(COption::GetOptionString($mid, $CRM_PAYMENT, 0)); $optionsSitesList = unserialize(COption::GetOptionString($mid, $CRM_SITES_LIST, 0)); $optionsDischarge = (int) COption::GetOptionString($mid, $CRM_ORDER_DISCHARGE, 0); $optionsOrderProps = unserialize(COption::GetOptionString($mid, $CRM_ORDER_PROPS, 0)); $optionsContragentType = unserialize(COption::GetOptionString($mid, $CRM_CONTRAGENT_TYPE, 0)); $optionsLegalDetails = unserialize(COption::GetOptionString($mid, $CRM_LEGAL_DETAILS, 0)); $optionsCustomFields = unserialize(COption::GetOptionString($mid, $CRM_CUSTOM_FIELDS, 0)); $optionsOrderNumbers = COption::GetOptionString($mid, $CRM_ORDER_NUMBERS, 0); $optionsOrderVat = COption::GetOptionString($mid, $CRM_ORDER_VAT, 0); $canselOrderArr = unserialize(COption::GetOptionString($mid, $CRM_CANSEL_ORDER, 0)); $sendPickupPointAddress = COption::GetOptionString($mid, Constants::CRM_SEND_PICKUP_POINT_ADDRESS, 'N'); $optionInventotiesUpload = COption::GetOptionString($mid, $CRM_INVENTORIES_UPLOAD, 0); $optionStores = unserialize(COption::GetOptionString($mid, $CRM_STORES, 0)); $optionShops = unserialize(COption::GetOptionString($mid, $CRM_SHOPS, 0)); $optionIblocksInventories = unserialize(COption::GetOptionString($mid, $CRM_IBLOCKS_INVENTORIES, 0)); $optionShopsCorporate = unserialize(COption::GetOptionString($mid, $CRM_SHOPS, 0)); $optionPricesUpload = COption::GetOptionString($mid, $CRM_PRICES_UPLOAD, 0); $optionPrices = unserialize(COption::GetOptionString($mid, $CRM_PRICES, 0)); $optionPriceShops = unserialize(COption::GetOptionString($mid, $CRM_PRICE_SHOPS, 0)); $optionIblocksPrices = unserialize(COption::GetOptionString($mid, $CRM_IBLOCKS_PRICES, 0)); $optionCollector = COption::GetOptionString($mid, $CRM_COLLECTOR, 0); $optionCollectorKeys = unserialize(COption::GetOptionString($mid, $CRM_COLL_KEY)); $optionOnlineConsultant = RetailcrmConfigProvider::isOnlineConsultantEnabled(); $optionOnlineConsultantScript = RetailcrmConfigProvider::getOnlineConsultantScript(); $optionUa = COption::GetOptionString($mid, $CRM_UA, 0); $optionUaKeys = unserialize(COption::GetOptionString($mid, $CRM_UA_KEYS)); $optionDiscRound = COption::GetOptionString($mid, $CRM_DISCOUNT_ROUND, 0); $optionPricePrchaseNull = COption::GetOptionString($mid, $CRM_PURCHASE_PRICE_NULL, 0); $optionShipmentDeducted = RetailcrmConfigProvider::getShipmentDeducted(); //corporate-cliente $optionCorpClient = COption::GetOptionString($mid, $CRM_CC, 0); $optionCorpShops = unserialize(COption::GetOptionString($mid, $CRM_CORP_SHOPS, 0)); $optionsCorpComName = COption::GetOptionString($mid, $CRM_CORP_NAME, 0); $optionsCorpAdres = COption::GetOptionString($mid, $CRM_CORP_ADRES, 0); $version = COption::GetOptionString($mid, $CRM_API_VERSION, 0); //currency $baseCurrency = \Bitrix\Currency\CurrencyManager::getBaseCurrency(); $currencyOption = COption::GetOptionString($mid, $CRM_CURRENCY, 0) ?: $baseCurrency; $currencyList = \Bitrix\Currency\CurrencyManager::getCurrencyList(); $errorsText = []; if (preg_match('/&errc=ERR_(.*)/is', $APPLICATION->GetCurUri(), $matches)) { $errorsText[] = GetMessage(urldecode($matches[1])); } if (empty($errorsText)) { if (count($arResult['arSites']) === 1 && count($arResult['sitesList']) > 1) { $errorsText[] = GetMessage('ERR_COUNT_SITES'); } if (count($arResult['arSites']) > 1) { foreach ($optionsSitesList as $LID => $crmCode) { if (empty($crmCode)) { continue; } $currentCurrency = $baseCurrency; if (isset($arResult['arCurrencySites'][$LID])) { $currentCurrency = $arResult['arCurrencySites'][$LID]; } if ($currentCurrency !== $arResult['sitesList'][$crmCode]['currency']) { $errorsText[] = GetMessage('ERR_CURRENCY_SITES') . ' (' . $arResult['sitesList'][$crmCode]['name'] . ')'; } } } else { $currentCurrency = $baseCurrency; $LID = $arResult['arSites'][0]['LID']; if (isset($arResult['arCurrencySites'][$LID])) { $currentCurrency = $arResult['arCurrencySites'][$LID]; } $crmSite = reset($arResult['sitesList']); if ($currentCurrency !== $crmSite['currency']) { $errorsText[] = GetMessage('ERR_CURRENCY_SITES') . ' (' . $crmSite['name'] . ')'; } } } $customFields = [['code' => '__default_empty_value__', 'name' => GetMessage('SELECT_VALUE')]]; $crmCouponFieldOption = COption::GetOptionString($mid, $CRM_COUPON_FIELD, 0) ?: null; $page = 1; do { $getCustomFields = $api->customFieldsList(['entity' => 'order', 'type' => ['string', 'text']], 100, $page); if (!$getCustomFields->isSuccessful() && empty($getCustomFields['customFields'])) { break; } foreach ($getCustomFields['customFields'] as $customField) { $customFields[] = $customField; } $page++; } while($getCustomFields['pagination']['currentPage'] < $getCustomFields['pagination']['totalPageCount']); $optionsOrderDimensions = COption::GetOptionString($mid, $CRM_DIMENSIONS, 'N'); $addressOptions = unserialize(COption::GetOptionString($mid, $CRM_ADDRESS_OPTIONS, 0)); $optionCart = COption::GetOptionString($mid, $CRM_CART, 'N'); //loyalty program options $loyaltyProgramToggle = ConfigProvider::getLoyaltyProgramStatus(); $aTabs = [ [ "DIV" => "edit1", "TAB" => GetMessage('ICRM_OPTIONS_GENERAL_TAB'), "ICON" => "", "TITLE" => GetMessage('ICRM_OPTIONS_GENERAL_CAPTION'), ], [ "DIV" => "edit2", "TAB" => GetMessage('ICRM_OPTIONS_CATALOG_TAB'), "ICON" => '', "TITLE" => GetMessage('ICRM_OPTIONS_CATALOG_CAPTION'), ], [ "DIV" => "edit3", "TAB" => GetMessage('ICRM_OPTIONS_ORDER_PROPS_TAB'), "ICON" => '', "TITLE" => GetMessage('ICRM_OPTIONS_ORDER_PROPS_CAPTION'), ], [ "DIV" => "edit4", "TAB" => GetMessage('LOYALTY_PROGRAM_TITLE'), "ICON" => '', "TITLE" => GetMessage('ICRM_OPTIONS_ORDER_DISCHARGE_CAPTION'), ], [ "DIV" => "edit5", "TAB" => GetMessage('UPLOAD_ORDERS_OPTIONS'), "ICON" => '', "TITLE" => GetMessage('ORDER_UPLOAD'), ], [ "DIV" => "edit6", "TAB" => GetMessage('OTHER_OPTIONS'), "ICON" => '', "TITLE" => GetMessage('ICRM_OPTIONS_ORDER_DISCHARGE_CAPTION'), ] ]; $tabControl = new CAdminTabControl("tabControl", $aTabs); $tabControl->Begin(); ?> <?php CJSCore::Init(array("jquery")); try { Extension::load("ui.notification"); } catch (LoaderException $exception) { RCrmActions::eventLog( 'intaro.retailcrm/options.php', 'Extension::load', $e->getCode() . ': ' . $exception->getMessage() ); } ?> <?php CJSCore::Init(['jquery']);?> <script type="text/javascript"> function createTemplates(donor) { BX.ajax.runAction('intaro:retailcrm.api.adminpanel.createTemplate', { data: { sessid: BX.bitrix_sessid(), templates: [ { 'location': '/local/templates/', 'name': '.default' } ], donor: donor } } ).then(result => { if (result.data.status !== undefined && result.data.status === true) { BX.UI.Notification.Center.notify({ content: "<?= GetMessage('TEMPLATE_SUCCESS_COPING') ?>" }); } else { BX.UI.Notification.Center.notify({ content: "<?= GetMessage('TEMPLATE_COPING_ERROR') ?>" }); } }); } function replaceDefaultTemplates(donor) { let templates = []; let i = 0; let node; if (donor === 'sale.order.ajax') { node = $('#lp-sale-templates input:checkbox:checked'); } if (donor === 'main.register') { node = $('#lp-reg-templates input:checkbox:checked'); } if (donor === 'sale.basket.basket') { node = $('#lp-basket-templates input:checkbox:checked'); } node.each( function(index, checkbox){ templates[i] = { 'name': $(checkbox).val(), 'location': $(checkbox).attr('templateFolder') }; i++; } ); BX.ajax.runAction('intaro:retailcrm.api.adminpanel.createTemplate', { data: { sessid: BX.bitrix_sessid(), templates: templates, donor: donor, replaceDefaultTemplate: 'Y' } } ).then(result => { if (result.data.status !== undefined && result.data.status === true) { BX.UI.Notification.Center.notify({ content: "<?= GetMessage('TEMPLATES_SUCCESS_COPING') ?>" }); } else { BX.UI.Notification.Center.notify({ content: "<?= GetMessage('TEMPLATES_COPING_ERROR') ?>" }); } });; } function editSaleTemplates(method) { let templates = []; let i = 0; $('#lp-templates input:checkbox:checked') .each( function(index, checkbox){ templates[i] = $(checkbox).val(); i++; } ); let requestAdress = 'intaro:retailcrm.api.adminpanel.' + method; BX.ajax.runAction(requestAdress, { data: { sessid: BX.bitrix_sessid(), templates: templates } } ); } function replaceDefSaleTemplate() { console.log($('#lp-templates').serializeArray()); BX.ajax.runAction('intaro:retailcrm.api.adminpanel.replaceDefSaleTemplate', { data: { sessid: BX.bitrix_sessid() } } ) } function replaceDefSaleTemplate() { console.log($('#lp-templates').serializeArray()); BX.ajax.runAction('intaro:retailcrm.api.adminpanel.replaceDefSaleTemplate', { data: { sessid: BX.bitrix_sessid() } } ) } function switchPLStatus() { $('#loyalty_main_settings').toggle(500); } $(document).ready(function() { $('input.addr').change(function() { splitName = $(this).attr('name').split('-'); orderType = splitName[2]; if (parseInt($(this).val()) === 1) $('tr.address-detail-' + orderType).show('slow'); else if (parseInt($(this).val()) === 0) $('tr.address-detail-' + orderType).hide('slow'); }); $('tr.contragent-type select').change(function() { splitName = $(this).attr('name').split('-'); contragentType = $(this).val(); orderType = splitName[2]; $('tr.legal-detail-' + orderType).hide(); $('.legal-detail-title-' + orderType).hide(); $('tr.legal-detail-' + orderType).each(function() { if ($(this).hasClass(contragentType)) { $(this).show(); $('.legal-detail-title-' + orderType).show(); } }); }); $('.inventories-batton label').change(function() { if ($(this).find('input').is(':checked') === true) { $('tr.inventories').show('slow'); } else if ($(this).find('input').is(':checked') === false) { $('tr.inventories').hide('slow'); } return true; }); $('.prices-batton label').change(function() { if ($(this).find('input').is(':checked') === true) { $('tr.prices').show('slow'); } else if ($(this).find('input').is(':checked') === false) { $('tr.prices').hide('slow'); } return true; }); $('.r-ua-button label').change(function() { if ($(this).find('input').is(':checked') === true) { $('tr.r-ua').show('slow'); } else if ($(this).find('input').is(':checked') === false) { $('tr.r-ua').hide('slow'); } return true; }); $('.r-dc-button label').change(function() { if ($(this).find('input').is(':checked') === true) { $('tr.r-dc').show('slow'); } else if ($(this).find('input').is(':checked') === false) { $('tr.r-dc').hide('slow'); } return true; }); $('.r-ac-button label').change(function() { if ($(this).find('input').is(':checked') === true) { $('tr.r-ac').show('slow'); } else if ($(this).find('input').is(':checked') === false) { $('tr.r-ac').hide('slow'); } return true; }) $('.r-cc-button label').change(function() { if ($(this).find('input').is(':checked') === true) { $('tr.r-cc').show('slow'); } else if ($(this).find('input').is(':checked') === false) { $('tr.r-cc').hide('slow'); } return true; }); $('.r-coll-button label').change(function() { if ($(this).find('input').is(':checked') === true) { $('tr.r-coll').show('slow'); } else if ($(this).find('input').is(':checked') === false) { $('tr.r-coll').hide('slow'); } return true; }); $('.r-consultant-button label').change(function(){ if($(this).find('input').is(':checked') === true){ $('tr.r-consultant').show('slow'); } else if($(this).find('input').is(':checked') === false){ $('tr.r-consultant').hide('slow'); } return true; }); $('.r-purchaseprice-button label').change(function() { if ($(this).find('input').is(':checked') === true) { $('tr.r-purchaseprice').show('slow'); } else if ($(this).find('input').is(':checked') === false) { $('tr.r-purchaseprice').hide('slow'); } return true; }); }); $('input[name="update-delivery-services"]').on('click', function() { BX.showWait(); var updButton = this; // hide next step button $(updButton).css('opacity', '0.5').attr('disabled', 'disabled'); var handlerUrl = $(this).parents('form').attr('action'); var data = 'ajax=1'; $.ajax({ type: 'POST', url: handlerUrl, data: data, dataType: 'json', success: function(response) { BX.closeWait(); $(updButton).css('opacity', '1').removeAttr('disabled'); if (!response.success) alert('<?php echo GetMessage('MESS_1'); ?>'); }, error: function () { BX.closeWait(); $(updButton).css('opacity', '1').removeAttr('disabled'); alert('<?php echo GetMessage('MESS_2'); ?>'); } }); return false; }); </script> <style type="text/css"> .option-other-bottom { border-bottom: 0px !important; } .option-other-top { border-top: 1px solid #f5f9f9 !important; } .option-other-center { border-top: 5px solid #f5f9f9 !important; border-bottom: 5px solid #f5f9f9 !important; } .option-other-heading { border-top: 25px solid #f5f9f9 !important; border-bottom: 0px solid #f5f9f9 !important; } .option-other-empty { border-bottom: 15px solid #f5f9f9 !important; } .option-head { text-align: center; padding: 10px; font-size: 14px; color: #4b6267; } </style> <form method="POST" action="<?php echo $uri; ?>" id="FORMACTION"> <?php echo bitrix_sessid_post(); $tabControl->BeginNextTab(); ?> <input type="hidden" name="tab" value="catalog"> <tr class="heading"> <td colspan="2"><b><?php echo GetMessage('ICRM_CONN_SETTINGS'); ?></b></td> </tr> <tr > <td width="50%" class="adm-detail-content-cell-l"><?php echo GetMessage('ICRM_API_HOST'); ?></td> <td width="50%" class="adm-detail-content-cell-r"><input type="text" id="api_host" name="api_host" value="<?php echo $api_host; ?>"></td> </tr> <tr> <td width="50%" class="adm-detail-content-cell-l"><?php echo GetMessage('ICRM_API_KEY'); ?></td> <td width="50%" class="adm-detail-content-cell-r"><input type="text" id="api_key" name="api_key" value="<?php echo $api_key; ?>"></td> </tr> <?php if ($errorsText): ?> <?php foreach ($errorsText as $error): ?> <tr align="center"> <td colspan="2"> <strong style="color:red" > <?php echo $error; ?> </strong> </td> </tr> <?php endforeach; ?> <?php endif; ?> <?php if (count($arResult['arSites']) > 1): ?> <tr class="heading"> <td colspan="2" style="background-color: transparent;"> <b> <?php echo GetMessage('ICRM_SITES'); ?> </b> </td> </tr> <?php foreach ($arResult['arSites'] as $site): ?> <tr> <td width="50%" class="adm-detail-content-cell-l"><?php echo $site['NAME'] . ' (' . $site['LID'] . ')'; ?></td> <td width="50%" class="adm-detail-content-cell-r"> <select class="typeselect" name="sites-id-<?php echo $site['LID'] ?>"> <option value=""></option> <?php foreach ($arResult['sitesList'] as $sitesList): ?> <option value="<?php echo $sitesList['code'] ?>" <?php if ($sitesList['code'] === $optionsSitesList[$site['LID']]) { echo 'selected="selected"'; } ?>><?php echo $sitesList['name'] ?></option> <?php endforeach; ?> </select> </td> </tr> <?php endforeach; ?> <?php endif; ?> <?php if (!$badKey && !$badJson): ?> <?php $tabControl->BeginNextTab(); ?> <input type="hidden" name="tab" value="catalog"> <tr class="option-head"> <td colspan="2"><b><?php echo GetMessage('INFO_1'); ?></b></td> </tr> <tr class="heading"> <td colspan="2"><b><?php echo GetMessage('DELIVERY_TYPES_LIST'); ?></b></td> </tr> <?php foreach ($arResult['bitrixDeliveryTypesList'] as $bitrixDeliveryType): ?> <tr> <td width="50%" class="adm-detail-content-cell-l" name="<?php echo $bitrixDeliveryType['ID']; ?>"> <?php echo $bitrixDeliveryType['NAME']; ?> </td> <td width="50%" class="adm-detail-content-cell-r"> <label> <select name="delivery-type-<?php echo $bitrixDeliveryType['ID']; ?>" class="typeselect"> <option value=""></option> <?php foreach ($arResult['deliveryTypesList'] as $deliveryType): ?> <option value="<?php echo $deliveryType['code']; ?>" <?php if ($optionsDelivTypes[$bitrixDeliveryType['ID']] === $deliveryType['code']) { echo 'selected'; } ?>> <?php echo $APPLICATION->ConvertCharset($deliveryType['name'], 'utf-8', SITE_CHARSET); ?> </option> <?php endforeach; ?> </select> </label> </td> </tr> <?php endforeach; ?> <tr class="heading"> <td colspan="2"> <input type="submit" name="update-delivery-services" value="<?php echo GetMessage('UPDATE_DELIVERY_SERVICES'); ?>" class="adm-btn-save"> </td> </tr> <tr class="heading"> <td colspan="2"><b><?php echo GetMessage('PAYMENT_TYPES_LIST'); ?></b></td> </tr> <?php foreach ($arResult['bitrixPaymentTypesList'] as $bitrixPaymentType): ?> <tr> <td width="50%" class="adm-detail-content-cell-l" name="<?php echo $bitrixPaymentType['ID']; ?>"> <?php echo $bitrixPaymentType['NAME']; ?> </td> <td width="50%" class="adm-detail-content-cell-r"> <label> <select name="payment-type-<?php echo $bitrixPaymentType['ID']; ?>" class="typeselect"> <option value="" selected=""></option> <?php foreach ($arResult['paymentTypesList'] as $paymentType): ?> <option value="<?php echo $paymentType['code']; ?>" <?php if ($optionsPayTypes[$bitrixPaymentType['ID']] === $paymentType['code']) { echo 'selected'; } ?>> <?php echo $APPLICATION->ConvertCharset($paymentType['name'], 'utf-8', SITE_CHARSET); ?> </option> <?php endforeach; ?> </select> </label> </td> </tr> <?php endforeach; ?> <tr class="heading"> <td colspan="2"><b><?php echo GetMessage('PAYMENT_STATUS_LIST'); ?></b></td> </tr> <? if (empty($arResult['bitrixPaymentStatusesList'])) :?> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b><label><?echo GetMessage('STATUS_NOT_SETTINGS');?></label></b> </td> <?else:?> <tr> <td width="50%"></td> <td width="50%"> <table width="100%"> <tr> <td width="50%"></td> <td width="50%" style="text-align: center;"> <?php echo GetMessage('CANCELED'); ?> </td> </tr> </table> </td> </tr> <?endif;?> <?php foreach($arResult['bitrixPaymentStatusesList'] as $bitrixPaymentStatus): ?> <tr> <td width="50%" class="adm-detail-content-cell-l" name="<?php echo $bitrixPaymentStatus['ID']; ?>"> <?php echo $bitrixPaymentStatus['NAME']; ?> </td> <td width="50%" class="adm-detail-content-cell-r"> <table width="100%"> <tr> <td width="70%"> <select name="payment-status-<?php echo $bitrixPaymentStatus['ID']; ?>" class="typeselect"> <option value=""></option> <?php foreach ($arResult['paymentGroupList'] as $orderStatusGroup): if (!empty($orderStatusGroup['statuses'])) : ?> <optgroup label="<?php echo $APPLICATION->ConvertCharset($orderStatusGroup['name'], 'utf-8', SITE_CHARSET); ?>"> <?php foreach ($orderStatusGroup['statuses'] as $payment): ?> <?php if (isset($arResult['paymentList'][$payment])): ?> <?php if($arResult['paymentList'][$payment]['active'] === true): ?> <option value="<?php echo $arResult['paymentList'][$payment]['code']; ?>" <?php if ($optionsPayStatuses[$bitrixPaymentStatus['ID']] === $arResult['paymentList'][$payment]['code']) { echo 'selected'; } ?>> <?php echo $APPLICATION->ConvertCharset($arResult['paymentList'][$payment]['name'], 'utf-8', SITE_CHARSET); ?> </option> <?php endif; ?> <?php endif; ?> <?php endforeach; ?> </optgroup> <?php endif; endforeach; ?> </select> </td> <td width="30%"> <label> <input name="order-cansel-<?php echo $bitrixPaymentStatus['ID']; ?>" <?php if (is_array($canselOrderArr) && in_array($bitrixPaymentStatus['ID'], $canselOrderArr)) { echo "checked"; } ?> value="Y" type="checkbox"/> </label> </td> </tr> </table> </td> </tr> <?php endforeach; ?> <tr class="heading"> <td colspan="2"><b><?php echo GetMessage('PAYMENT_LIST'); ?></b></td> </tr> <?php foreach ($arResult['bitrixPaymentList'] as $bitrixPayment): ?> <tr> <td width="50%" class="adm-detail-content-cell-l" name="<?php echo $bitrixPayment['ID']; ?>"> <?php echo $bitrixPayment['NAME']; ?> </td> <td width="50%" class="adm-detail-content-cell-r"> <select name="payment-<?php echo $bitrixPayment['ID']; ?>" class="typeselect"> <option value=""></option> <?php foreach ($arResult['paymentStatusesList'] as $paymentStatus): ?> <?php if($paymentStatus['active'] === true): ?> <option value="<?php echo $paymentStatus['code']; ?>" <?php if ($optionsPayment[$bitrixPayment['ID']] === $paymentStatus['code']) { echo 'selected'; } ?>> <?php echo $APPLICATION->ConvertCharset($paymentStatus['name'], 'utf-8', SITE_CHARSET); ?> </option> <?php endif; ?> <?php endforeach; ?> </select> </td> </tr> <?php endforeach; ?> <tr class="heading"> <td colspan="2"><b><?php echo GetMessage('ORDER_TYPES_LIST'); ?></b></td> </tr> <?php if (isset($isCustomOrderType) && $isCustomOrderType): ?> <tr> <td colspan="2" style="text-align: center!important; padding-bottom:10px;"><b style="color:#c24141;"><?php echo GetMessage('ORDER_TYPES_LIST_CUSTOM'); ?></b></td> </tr> <?php endif; ?> <?php foreach ($arResult['bitrixOrderTypesList'] as $bitrixOrderType): ?> <tr> <td width="50%" class="adm-detail-content-cell-l" name="<?php echo $bitrixOrderType['ID']; ?>"> <?php echo $bitrixOrderType['NAME']; ?> </td> <td width="50%" class="adm-detail-content-cell-r"> <select name="order-type-<?php echo $bitrixOrderType['ID']; ?>" class="typeselect"> <option value=""></option> <?php foreach ($arResult['orderTypesList'] as $orderType): ?> <?php if($orderType['active'] === true): ?> <option value="<?php echo $orderType['code']; ?>" <?php if ($optionsOrderTypes[$bitrixOrderType['ID']] === $orderType['code']) { echo 'selected'; } ?>> <?= $APPLICATION ->ConvertCharset($orderType['name'], 'utf-8', SITE_CHARSET) ?> </option> <?php endif; ?> <?php endforeach; ?> </select> </td> </tr> <?php endforeach; ?> <?php $tabControl->BeginNextTab(); ?> <input type="hidden" name="tab" value="catalog"> <tr class="option-head"> <td colspan="2"><b><?php echo GetMessage('INFO_2'); ?></b></td> </tr> <?php foreach ($arResult['bitrixOrderTypesList'] as $bitrixOrderType): ?> <tr class="heading"> <td colspan="2"><b><?php echo GetMessage('ORDER_TYPE_INFO') . ' ' . $bitrixOrderType['NAME']; ?></b></td> </tr> <tr class="contragent-type"> <td width="50%" class="adm-detail-content-cell-l"> <?php echo GetMessage('CONTRAGENTS_TYPES_LIST'); ?> </td> <td width="50%" class="adm-detail-content-cell-r"> <select name="contragent-type-<?php echo $bitrixOrderType['ID']; ?>" class="typeselect"> <?php foreach ($arResult['contragentType'] as $contragentType): ?> <option value="<?php echo $contragentType["ID"]; ?>" <?php if ($optionsContragentType[$bitrixOrderType['ID']] === $contragentType['ID']) { echo 'selected'; } ?>> <?php echo $contragentType["NAME"]; ?> </option> <?php endforeach; ?> </select> </td> </tr> <?php $countProps = 1; foreach ($arResult['orderProps'] as $orderProp): ?> <?php if ($orderProp['ID'] === 'text'): ?> <tr class="heading"> <td colspan="2" style="background-color: transparent;"> <b> <label> <input class="addr" type="radio" name="address-detail-<?php echo $bitrixOrderType['ID']; ?>" value="0" <?php if ($addressOptions[$bitrixOrderType['ID']] === '0') { echo 'checked'; } ?>> <?= GetMessage('ADDRESS_SHORT')?> </label> <label> <input class="addr" type="radio" name="address-detail-<?php echo $bitrixOrderType['ID']; ?>" value="1" <?php if ($addressOptions[$bitrixOrderType['ID']] === '1') { echo 'checked'; } ?>> <?= GetMessage('ADDRESS_FULL')?> </label> </b> </td> </tr> <?php endif; ?> <tr <?php if ($countProps > 4) { echo 'class="address-detail-' . $bitrixOrderType['ID'] . '"'; } if (($countProps > 4) && ($addressOptions[$bitrixOrderType['ID']] === 0)) { echo 'style="display:none;"'; } ?>> <td width="50%" class="adm-detail-content-cell-l" name="<?php echo $orderProp['ID']; ?>"> <?php echo $orderProp['NAME']; ?> </td> <td width="50%" class="adm-detail-content-cell-r"> <select name="order-prop-<?php echo $orderProp['ID'] . '-' . $bitrixOrderType['ID']; ?>" class="typeselect"> <option value=""></option> <?php foreach ($arResult['arProp'][$bitrixOrderType['ID']] as $arProp): ?> <option value="<?php echo $arProp['CODE']; ?>" <?php if ($optionsOrderProps[$bitrixOrderType['ID']][$orderProp['ID']] === $arProp['CODE']) { echo 'selected'; } ?>> <?php echo $arProp['NAME']; ?> </option> <?php endforeach; ?> </select> </td> </tr> <?php $countProps++; endforeach; ?> <? if (isset($arResult['customFields']) && count($arResult['customFields']) > 0): ?> <tr class="heading custom-detail-title"> <td colspan="2" style="background-color: transparent;"> <b> <?=GetMessage("ORDER_CUSTOM");?> </b> </td> </tr> <? foreach ($arResult['customFields'] as $customFields): ?> <tr class="custom-detail-<?=$customFields['ID'];?>"> <td width="50%" class="" name=""> <?=$customFields['NAME'];?> </td> <td width="50%" class=""> <select name="custom-fields-<?=$customFields['ID'] . '-' . $bitrixOrderType['ID'];?>" class="typeselect"> <option value=""></option> <? foreach ($arResult['arProp'][$bitrixOrderType['ID']] as $arProp): ?> <option value="<?=$arProp['CODE']?>" <?php if ($optionsCustomFields[$bitrixOrderType['ID']][$customFields['ID']] === $arProp['CODE']) { echo 'selected'; } ?>> <?=$arProp['NAME'];?> </option> <? endforeach; ?> </select> </td> </tr> <? endforeach; ?> <? endif; ?> <tr class="heading legal-detail-title-<?php echo $bitrixOrderType['ID']; ?>" <?php if (is_array($optionsLegalDetails[$bitrixOrderType['ID']]) && count($optionsLegalDetails[$bitrixOrderType['ID']]) < 1) { echo 'style="display:none"'; } ?>> <td colspan="2" style="background-color: transparent;"> <b> <?php echo GetMessage('LEGAL_DETAIL'); ?> </b> </td> </tr> <?php foreach ($arResult['legalDetails'] as $legalDetails): ?> <tr class="legal-detail-<?php echo $bitrixOrderType['ID']; ?> <?php foreach ($legalDetails['GROUP'] as $gr) { echo $gr . ' '; } ?>" <?php if (!in_array($optionsContragentType[$bitrixOrderType['ID']], $legalDetails['GROUP'], true)) { echo 'style="display:none"'; } ?>> <td width="50%" class="" name="<?php ?>"> <?php echo $legalDetails['NAME']; ?> </td> <td width="50%" class=""> <select name="legal-detail-<?php echo $legalDetails['ID'] . '-' . $bitrixOrderType['ID']; ?>" class="typeselect"> <option value=""></option> <?php foreach ($arResult['arProp'][$bitrixOrderType['ID']] as $arProp): ?> <option value="<?php echo $arProp['CODE']; ?>" <?php if ($optionsLegalDetails[$bitrixOrderType['ID']][$legalDetails['ID']] === $arProp['CODE']) { echo 'selected'; } ?>> <?php echo $arProp['NAME']; ?> </option> <?php endforeach; ?> </select> </td> </tr> <?php endforeach; ?> <?php endforeach; ?> <?php $tabControl->BeginNextTab(); ?> <?php //loyalty program options $loyaltyProgramToggle = ConfigProvider::getLoyaltyProgramStatus(); ?> <tr class="heading"> <td colspan="2" class="option-other-heading"> <b> <label> <input class="addr" type="checkbox" id="loyalty_toggle" name="loyalty_toggle" onclick="switchPLStatus();" <?php if ($loyaltyProgramToggle === 'Y') { echo "checked"; } ?>> <?php echo GetMessage('LOYALTY_PROGRAM_TOGGLE_MSG'); ?> </label> </b> </td> </tr> <tr> <td> <div id="loyalty_main_settings" <?php if ($loyaltyProgramToggle !== 'Y') { echo "hidden"; } ?>> <table width="100%"> <tr class="heading"> <td colspan="2" class="option-other-heading"> <?php echo GetMessage('LP_SALE_ORDER_AJAX_HEAD'); ?> </td> </tr> <tr> <td colspan="2"> <div style="text-align: center;"> <h4> <?= GetMessage('CREATING_AN_ADDITIONAL_TEMPLATE') ?> </h4> </div> <?= sprintf(GetMessage('LP_CUSTOM_TEMP_CREATE_MSG'), 'sale.order.ajax') ?> <div style="text-align: center;"> <input type="button" onclick="createTemplates('sale.order.ajax')" class="adm-btn-save" value="<?php echo GetMessage('LP_CREATE_TEMPLATE'); ?>"/> </div> </td> </tr> <tr> <td colspan="2"> <div style="text-align: center;"> <h4> <?= GetMessage('REPLACING_THE_STANDARD_TEMPLATE') ?> </h4> </div> <?= sprintf(GetMessage('LP_DEF_TEMP_CREATE_MSG'), 'sale.order.ajax') ?> <hr> <?php echo GetMessage('LP_TEMP_CHOICE_MSG'); ?> </td> </tr> <tr> <td width="50%" align="center"> <input type="button" onclick="replaceDefaultTemplates('sale.order.ajax')" class="adm-btn-save" value="<?php echo GetMessage('LP_REPLACE_TEMPLATE'); ?>" /> </td> <td width="50%" > <div id="lp-sale-templates"> <?php $templates = TemplateRepository::getAllIds(); foreach ($templates as $template) { ?> <p><input type="checkbox" name="<?= $template['name']?>" value="<?= $template['name']?>" templateFolder="<?= $template['folder']?>"> <?= $template['name']?> (<?= $template['folder']?>)</p> <?php } ?> </div> </td> </tr> </table> <table width="100%"> <tr class="heading"> <td colspan="2" class="option-other-heading"> <?php echo GetMessage('LP_MAIN_REGISTER_HEAD'); ?> </td> </tr> <tr> <td colspan="2"> <div style="text-align: center;"> <h4> <?=GetMessage('CREATING_AN_ADDITIONAL_TEMPLATE')?> </h4> </div> <?= sprintf(GetMessage('LP_CUSTOM_TEMP_CREATE_MSG'), 'main.register') ?> <div style="text-align: center;"> <input type="button" onclick="createTemplates('main.register')" class="adm-btn-save" value="<?php echo GetMessage('LP_CREATE_TEMPLATE'); ?>"/> </div> </td> </tr> <tr> <td colspan="2"> <div style="text-align: center;"> <h4> <?= GetMessage('REPLACING_THE_STANDARD_TEMPLATE') ?> </h4> </div> <?= sprintf(GetMessage('LP_DEF_TEMP_CREATE_MSG'), 'main.register') ?> <hr> <?php echo GetMessage('LP_TEMP_CHOICE_MSG'); ?> </td> </tr> <tr> <td width="50%" align="center"> <input type="button" onclick="replaceDefaultTemplates('main.register')" class="adm-btn-save" value="<?php echo GetMessage('LP_REPLACE_TEMPLATE'); ?>" /> </td> <td width="50%" > <div id="lp-reg-templates"> <?php $templates = TemplateRepository::getAllIds(); foreach ($templates as $template) { ?> <p><input type="checkbox" name="<?= $template['name']?>" value="<?= $template['name']?>" templateFolder="<?= $template['folder']?>"> <?= $template['name']?> (<?= $template['folder']?>)</p> <?php } ?> </div> </td> </tr> <tr> <td style="text-align: center;" colspan="2"> <?php $isAgreementPersonalProgram = AgreementRepository::getFirstByWhere( ['ID'], [ ['CODE', '=', 'AGREEMENT_PERSONAL_DATA_CODE'] ] ); $isAgreementLoyaltyProgram = AgreementRepository::getFirstByWhere( ['ID'], [ ['CODE', '=', 'AGREEMENT_LOYALTY_PROGRAM_CODE'] ] ); ?> <h4><?= GetMessage('EDITING_AGREEMENTS')?></h4> <?php if (isset($isAgreementLoyaltyProgram['ID']) && isset($isAgreementLoyaltyProgram['ID'])) { ?> <a href="<?= SITE_SERVER_NAME . '/bitrix/admin/agreement_edit.php?ID=' . $isAgreementLoyaltyProgram['ID']?>" target="_blank"><?= GetMessage('AGREEMENT_PROCESSING_PERSONAL_DATA')?></a> <br> <a href="<?= SITE_SERVER_NAME . '/bitrix/admin/agreement_edit.php?ID=' . $isAgreementLoyaltyProgram['ID']?>" target="_blank"><?= GetMessage('ACCEPTANCE_TERMS_LOYALTY_PROGRAM')?></a> <?php } ?> </td> </tr> </table> <table width="100%"> <tr class="heading"> <td colspan="2" class="option-other-heading"> <?php echo GetMessage('LP_MAIN_BASKET_HEAD'); ?> </td> </tr> <tr> <td colspan="2"> <div style="text-align: center;"> <h4> <?=GetMessage('CREATING_AN_ADDITIONAL_TEMPLATE')?> </h4> </div> <?= sprintf(GetMessage('LP_CUSTOM_TEMP_CREATE_MSG'), 'sale.basket.basket') ?> <div style="text-align: center;"> <input type="button" onclick="createTemplates('sale.basket.basket')" class="adm-btn-save" value="<?php echo GetMessage('LP_CREATE_TEMPLATE'); ?>"/> </div> </td> </tr> <tr> <td colspan="2"> <div style="text-align: center;"> <h4> <?= GetMessage('REPLACING_THE_STANDARD_TEMPLATE') ?> </h4> </div> <?= sprintf(GetMessage('LP_DEF_TEMP_CREATE_MSG'), 'sale.basket.basket') ?> <hr> <?php echo GetMessage('LP_TEMP_CHOICE_MSG'); ?> </td> </tr> <tr> <td width="50%" align="center"> <input type="button" onclick="replaceDefaultTemplates('sale.basket.basket')" class="adm-btn-save" value="<?php echo GetMessage('LP_REPLACE_TEMPLATE'); ?>" /> </td> <td width="50%" > <div id="lp-basket-templates"> <?php $templates = TemplateRepository::getAllIds(); foreach ($templates as $template) { ?> <p><input type="checkbox" name="<?= $template['name']?>" value="<?= $template['name']?>" templateFolder="<?= $template['folder']?>"> <?= $template['name']?> (<?= $template['folder']?>)</p> <?php } ?> </div> </td> </tr> </table> </div> </td> </tr> <?php // Manual orders upload. ?> <?php $tabControl->BeginNextTab(); ?> <style type="text/css"> .install-load-label { color: #000; margin-bottom: 15px; } .install-progress-bar-outer { height: 32px; border: 1px solid; border-color: #9ba6a8 #b1bbbe #bbc5c9 #b1bbbe; -webkit-box-shadow: 1px 1px 0 #fff, inset 0 2px 2px #c0cbce; box-shadow: 1px 1px 0 #fff, inset 0 2px 2px #c0cbce; background-color: #cdd8da; background-image: -webkit-linear-gradient(top, #cdd8da, #c3ced1); background-image: -moz-linear-gradient(top, #cdd8da, #c3ced1); background-image: -ms-linear-gradient(top, #cdd8da, #c3ced1); background-image: -o-linear-gradient(top, #cdd8da, #c3ced1); background-image: linear-gradient(top, #ced9db, #c3ced1); border-radius: 2px; text-align: center; color: #6a808e; text-shadow: 0 1px rgba(255, 255, 255, 0.85); font-size: 18px; line-height: 35px; font-weight: bold; } .install-progress-bar-alignment { height: 28px; margin: 0; position: relative; } .install-progress-bar-inner { height: 28px; border-radius: 2px; border-top: solid 1px #52b9df; background-color: #2396ce; background-image: -webkit-linear-gradient(top, #27a8d7, #2396ce, #1c79c0); background-image: -moz-linear-gradient(top, #27a8d7, #2396ce, #1c79c0); background-image: -ms-linear-gradient(top, #27a8d7, #2396ce, #1c79c0); background-image: -o-linear-gradient(top, #27a8d7, #2396ce, #1c79c0); background-image: linear-gradient(top, #27a8d7, #2396ce, #1c79c0); position: absolute; overflow: hidden; top: 1px; left: 0; } .install-progress-bar-inner-text { color: #fff; text-shadow: 0 1px rgba(0, 0, 0, 0.2); font-size: 18px; line-height: 32px; font-weight: bold; text-align: center; position: absolute; left: -2px; top: -2px; } .order-upload-button { padding: 1px 13px 2px; height: 28px; } .order-upload-button div { float: right; position: relative; visible: none; } </style> <script type="text/javascript"> $(document).ready(function() { $('#percent').width($('.install-progress-bar-outer').width()); $(window).resize(function() { // strechin progress bar $('#percent').width($('.install-progress-bar-outer').width()); }); // orderUpload function function orderUpload() { var handlerUrl = $('#upload-orders').attr('action'); var step = $('input[name="step"]').val(); var orders = $('input[name="orders"]').val(); var data = 'orders=' + orders + '&step=' + step + '&ajax=2'; // ajax request $.ajax({ type: 'POST', url: handlerUrl, data: data, dataType: 'json', success: function(response) { $('input[name="step"]').val(response.step); if (response.step === 'end') { $('input[name="step"]').val(0); BX.closeWait(); } else { orderUpload(); } $('#indicator').css('width', response.percent + '%'); $('#percent').html(response.percent + '%'); $('#percent2').html(response.percent + '%'); }, error: function() { BX.closeWait(); $('#status').text('<?php echo GetMessage('MESS_4'); ?>'); alert('<?php echo GetMessage('MESS_5'); ?>'); } }); } $('input[name="start"]').on('click', function() { BX.showWait(); $('#indicator').css('width', 0); $('#percent2').html('0%'); $('#percent').css('width', '100%'); orderUpload(); return false; }); $('input[name="send-pickup-point-address"]').change( function(){ if ($(this).is(':checked')) { alert('<?php echo GetMessage('SEND_PICKUP_POINT_ADDRESS_WARNING'); ?>'); } }); }); </script> <form id="upload-orders" action="<?php echo $uri; ?>" method="POST"> <input type="hidden" name="step" value="0"> <div> <?php echo GetMessage('ORDER_NUMBER'); ?> <input id="order-nombers" style="width:86%" type="text" value="" name="orders"> </div> <br> <div class="install-load-block" id="result"> <div class="install-load-label" id="status"><?php echo GetMessage('ORDER_UPLOAD_INFO'); ?></div> <div class="install-progress-bar-outer"> <div class="install-progress-bar-alignment" style="width: 100%;"> <div class="install-progress-bar-inner" id="indicator" style="width: 0%;"> <div class="install-progress-bar-inner-text" style="width: 100%;" id="percent">0%</div> </div> <span id="percent2">0%</span> </div> </div> </div> <br /> <div class="order-upload-button"> <div align="left"> <input type="submit" name="start" value="<?php echo GetMessage('ORDER_UPL_START'); ?>" class="adm-btn-save"> </div> </div> </form> <?php $tabControl->BeginNextTab(); ?> <input type="hidden" name="tab" value="catalog"> <tr class="heading"> <td colspan="2" class="option-other-bottom"><b><?php echo GetMessage('ORDERS_OPTIONS'); ?></b></td> </tr> <tr> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b> <label><input class="addr" type="checkbox" name="order-vat" value="Y" <?php if ($optionsOrderVat === 'Y') { echo "checked"; } ?>> <?php echo GetMessage('ORDER_VAT'); ?></label> </b> </td> </tr> <tr> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b> <label> <input class="addr" type="checkbox" name="send-pickup-point-address" value="Y" <?php if($sendPickupPointAddress === 'Y') {echo "checked";} ?>> <?php echo GetMessage('SEND_PICKUP_POINT_ADDRESS'); ?> </label> </b> </td> </tr> <?php if($sendPickupPointAddress === 'Y') { $warningMessage = GetMessage('SEND_PICKUP_POINT_ADDRESS_WARNING'); echo sprintf('<tr> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b> <label style="color: darkorange"> %s </label> </b> </td> </tr>', $warningMessage); } ?> <tr> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b> <label> <input class="addr" type="checkbox" name="<?php echo RetailcrmConstants::SEND_PAYMENT_AMOUNT; ?>" value="Y" <?php if(RetailcrmConfigProvider::shouldSendPaymentAmount()) echo "checked"; ?>> <?php echo GetMessage('SEND_PAYMENT_AMOUNT'); ?> </label> </b> </td> </tr> <tr> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b> <label> <input class="addr" type="checkbox" name="order_dimensions" value="Y" <?php if ($optionsOrderDimensions === 'Y') { echo "checked"; } ?>> <?php echo GetMessage('ORDER_DIMENSIONS'); ?> </label> </b> </td> </tr> <tr> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b> <label><input class="addr" type="checkbox" name="order-numbers" value="Y" <?php if ($optionsOrderNumbers === 'Y') { echo "checked"; } ?>> <?php echo GetMessage('ORDER_NUMBERS'); ?></label> </b> </td> </tr> <tr> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b> <label><input class="addr" type="radio" name="order-discharge" value="1" <?php if ($optionsDischarge === 1) { echo "checked"; } ?>><?php echo GetMessage('DISCHARGE_EVENTS'); ?></label> <label><input class="addr" type="radio" name="order-discharge" value="0" <?php if ($optionsDischarge === 0) { echo "checked"; } ?>><?php echo GetMessage('DISCHARGE_AGENT'); ?></label> </b> </td> </tr> <tr> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b><?php echo GetMessage('COUPON_CUSTOM_FIELD'); ?></b> <br><br> <select name="crm-coupon-field" class="typeselect"> <?php foreach ($customFields as $customField) : ?> <option value="<?php echo $customField['code']; ?>" <?php if ($customField['code'] === $crmCouponFieldOption) { echo 'selected'; } ?>> <?php echo $customField['name']; ?> </option> <?php endforeach; ?> </select> </td> </tr> <?php //По умолчанию используем апи V5. При добавлении в будущем V6 выводить пользователю данный блок ?> <tr class="heading" hidden="hidden"> <td colspan="2" class="option-other-heading"><b><?php echo GetMessage('CRM_API_VERSION'); ?></b></td> </tr> <tr hidden="hidden"> <td colspan="2" class="option-head option-other-top option-other-bottom"> <select name="api_version" class="typeselect"> <?php for ($v = 5; $v <= 5; $v++) { $ver = 'v' . $v; ?> <option value="<?php echo $ver; ?>" <?php if ($ver === $version) { echo 'selected'; } ?>> API V<?php echo $v; ?> </option> <?php } ?> </select> </td> </tr> <tr class="heading"> <td colspan="2" class="option-other-heading"><b><?php echo GetMessage('CURRENCY'); ?></b></td> </tr> <tr> <td colspan="2" class="option-head option-other-top option-other-bottom"> <select name="currency" class="typeselect"> <?php foreach ($currencyList as $currencyCode => $currencyName) : ?> <option value="<?php echo $currencyCode; ?>" <?php if ($currencyCode === $currencyOption) { echo 'selected'; } ?>> <?php echo $currencyName; ?> </option> <?php endforeach; ?> </select> </td> </tr> <?php if ($optionInventotiesUpload === 'Y' || count($arResult['bitrixStoresExportList']) > 0) : ?> <tr class="heading inventories-batton"> <td colspan="2" class="option-other-heading"> <b> <label><input class="addr" type="checkbox" name="inventories-upload" value="Y" <?php if ($optionInventotiesUpload === 'Y') { echo "checked"; } ?>><?php echo GetMessage('INVENTORIES_UPLOAD'); ?></label> </b> </td> </tr> <tr class="inventories" <?php if ($optionInventotiesUpload !== 'Y') { echo 'style="display: none;"'; } ?>> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b><label><?php echo GetMessage('INVENTORIES'); ?></label></b> </td> </tr> <?php foreach ($arResult['bitrixStoresExportList'] as $catalogExportStore): ?> <tr class="inventories" <?php if ($optionInventotiesUpload !== 'Y') { echo 'style="display: none;"'; } ?>> <td width="50%" class="adm-detail-content-cell-l"><?php echo $catalogExportStore['TITLE'] ?></td> <td width="50%" class="adm-detail-content-cell-r"> <select class="typeselect" name="stores-export-<?php echo $catalogExportStore['ID'] ?>"> <option value=""></option> <?php foreach ($arResult['inventoriesList'] as $inventoriesList): ?> <?php if ($inventoriesList['active'] === true): ?> <option value="<?php echo $inventoriesList['code'] ?>" <?php if ($optionStores[$catalogExportStore['ID']] === $inventoriesList['code']) { echo 'selected="selected"'; } ?>><?php echo $inventoriesList['name'] ?></option> <?php endif; ?> <?php endforeach; ?> </select> </td> </tr> <?php endforeach; ?> <tr class="inventories" <?php if ($optionInventotiesUpload !== 'Y') { echo 'style="display: none;"'; } ?>> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b> <label><?php echo GetMessage('SHOPS_INVENTORIES_UPLOAD'); ?></label> </b> </td> </tr> <?php foreach ($arResult['sitesList'] as $sitesList): ?> <tr class="inventories" align="center" <?php if ($optionInventotiesUpload !== 'Y') { echo 'style="display: none;"'; } ?>> <td colspan="2" class="option-other-center"> <label><input class="addr" type="checkbox" name="shops-exoprt-<?= $sitesList['code']; ?>" value="<?= $sitesList['code']?>" <?php if (is_array($optionShops) && in_array($sitesList['code'], $optionShops)) { echo "checked"; } ?>> <?php echo $sitesList['name'] . ' (' . $sitesList['code'] . ')'; ?> </label> </td> </tr> <?php endforeach; ?> <tr class="inventories" <?php if ($optionInventotiesUpload !== 'Y') { echo 'style="display: none;"'; } ?>> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b> <label><?php echo GetMessage('IBLOCKS_UPLOAD'); ?></label> </b> </td> </tr> <?php foreach ($arResult['bitrixIblocksExportList'] as $catalogExportIblock) : ?> <tr class="inventories" align="center" <?php if ($optionInventotiesUpload !== 'Y') { echo 'style="display: none;"'; } ?>> <td colspan="2" class="option-other-center"> <label><input class="addr" type="checkbox" name="iblocks-stores-<? echo $catalogExportIblock['ID']; ?>" value="Y" <?php if (is_array($optionIblocksInventories) && in_array($catalogExportIblock['ID'], $optionIblocksInventories)) { echo "checked"; } ?>> <?php echo '[' . $catalogExportIblock['CODE'] . '] ' . $catalogExportIblock['NAME'] . ' (' . $catalogExportIblock['LID'] . ')'; ?></label> </td> </tr> <?php endforeach; ?> <?php endif; ?> <?php if ($optionPricesUpload === 'Y' || count($arResult['bitrixPricesExportList']) > 0) : ?> <tr class="heading prices-batton"> <td colspan="2" class="option-other-heading"> <b> <label><input class="addr" type="checkbox" name="prices-upload" value="Y" <?php if ($optionPricesUpload === 'Y') { echo "checked"; } ?>><?php echo GetMessage('PRICES_UPLOAD'); ?></label> </b> </td> </tr> <tr class="prices" <?php if ($optionPricesUpload !== 'Y') { echo 'style="display: none;"'; } ?>> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b> <label><?php echo GetMessage('PRICE_TYPES'); ?></label> </b> </td> </tr> <?php foreach ($arResult['bitrixPricesExportList'] as $catalogExportPrice) : ?> <tr class="prices" <?php if ($optionPricesUpload !== 'Y') { echo 'style="display: none;"'; } ?>> <td width="50%" class="adm-detail-content-cell-l"><?php echo $catalogExportPrice['NAME_LANG'] . ' (' . $catalogExportPrice['NAME'] . ')'; ?></td> <td width="50%" class="adm-detail-content-cell-r"> <select class="typeselect" name="price-type-export-<?php echo $catalogExportPrice['ID']; ?>"> <option value=""></option> <?php foreach ($arResult['priceTypeList'] as $priceTypeList): ?> <?php if ($priceTypeList['active'] === true): ?> <option value="<?php echo $priceTypeList['code'] ?>" <?php if ($optionPrices[$catalogExportPrice['ID']] === $priceTypeList['code']) { echo 'selected="selected"'; } ?>><?php echo $priceTypeList['name'] ?></option> <?php endif; ?> <?php endforeach; ?> </select> </td> </tr> <?php endforeach; ?> <tr class="prices" <?php if ($optionPricesUpload !== 'Y') { echo 'style="display: none;"'; } ?>> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b> <label><?php echo GetMessage('SHOPS_PRICES_UPLOAD'); ?></label> </b> </td> </tr> <?php foreach ($arResult['sitesList'] as $sitesList): ?> <tr class="prices" align="center" <?php if ($optionPricesUpload !== 'Y') { echo 'style="display: none;"'; } ?>> <td colspan="2" class="option-other-center"> <label><input class="addr" type="checkbox" name="shops-price-<? echo $sitesList['code']; ?>" value="<? echo $sitesList['code']; ?>" <?php if (is_array($optionPriceShops) && in_array($sitesList['code'], $optionPriceShops)) { echo "checked"; } ?>> <?php echo $sitesList['name'] . ' (' . $sitesList['code'] . ')'; ?> </label> </td> </tr> <?php endforeach; ?> <tr class="prices" <?php if ($optionPricesUpload !== 'Y') { echo 'style="display: none;"'; } ?>> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b> <label><?php echo GetMessage('IBLOCKS_UPLOAD'); ?></label> </b> </td> </tr> <?php foreach ($arResult['bitrixIblocksExportList'] as $catalogExportIblock) : ?> <tr class="prices" align="center" <?php if ($optionPricesUpload !== 'Y') { echo 'style="display: none;"'; } ?>> <td colspan="2" class="option-other-center"> <label><input class="addr" type="checkbox" name="iblocks-prices-<? echo $catalogExportIblock['ID']; ?>" value="Y" <?php if (is_array($optionIblocksPrices) && in_array($catalogExportIblock['ID'], $optionIblocksPrices)) { echo "checked"; } ?>> <?php echo '[' . $catalogExportIblock['CODE'] . '] ' . $catalogExportIblock['NAME'] . ' (' . $catalogExportIblock['LID'] . ')'; ?></label> </td> </tr> <?php endforeach; ?> <?php endif; ?> <tr class="heading r-coll-button"> <td colspan="2" class="option-other-heading"> <b> <label><input class="addr" type="checkbox" name="collector" value="Y" <?php if ($optionCollector === 'Y') { echo "checked"; } ?>><?php echo GetMessage('DEMON_COLLECTOR'); ?></label> </b> </td> </tr> <tr class="r-coll" <?php if ($optionCollector !== 'Y') { echo 'style="display: none;"'; } ?>> <td class="option-head" colspan="2"> <b><?php echo GetMessage('ICRM_SITES'); ?></b> </td> </tr> <?php foreach ($arResult['arSites'] as $sitesList): ?> <tr class="r-coll" <?php if ($optionCollector !== 'Y') { echo 'style="display: none;"'; } ?>> <td class="adm-detail-content-cell-l" width="50%"><?php echo GetMessage('DEMON_KEY'); ?> <?php echo $sitesList['NAME']; ?> (<?php echo $sitesList['LID']; ?>)</td> <td class="adm-detail-content-cell-r" width="50%"> <label> <input name="collector-id-<? echo $sitesList['LID']; ?>" value="<?php echo $optionCollectorKeys[$sitesList['LID']]; ?>" type="text"> </label> </td> </tr> <?php endforeach; ?> <tr class="heading r-ua-button"> <td colspan="2" class="option-other-heading"> <b> <label><input class="addr" type="checkbox" name="ua-integration" value="Y" <?php if ($optionUa === 'Y') { echo "checked"; } ?>><?php echo GetMessage('UNIVERSAL_ANALYTICS'); ?></label> </b> </td> </tr> <?php foreach ($arResult['arSites'] as $sitesList): ?> <tr class="r-ua" <?php if ($optionUa !== 'Y') { echo 'style="display: none;"'; } ?>> <td class="option-head" colspan="2"> <b><?php echo $sitesList['NAME']; ?> (<?php echo $sitesList['LID']; ?>)</b> </td> </tr> <tr class="r-ua" <?php if ($optionUa !== 'Y') { echo 'style="display: none;"'; } ?>> <td class="adm-detail-content-cell-l" width="50%"><?php echo GetMessage('ID_UA'); ?></td> <td class="adm-detail-content-cell-r" width="50%"> <input name="ua-id-<? echo $sitesList['LID']; ?>" value="<?php echo $optionUaKeys[$sitesList['LID']]['ID']; ?>" type="text"> </td> </tr> <tr class="r-ua" <?php if ($optionUa !== 'Y') { echo 'style="display: none;"'; } ?>> <td class="adm-detail-content-cell-l" width="50%"><?php echo GetMessage('INDEX_UA'); ?></td> <td class="adm-detail-content-cell-r" width="50%"> <input name="ua-index-<? echo $sitesList['LID']; ?>" value="<?php echo $optionUaKeys[$sitesList['LID']]['INDEX']; ?>" type="text"> </td> </tr> <?php endforeach; ?> <tr class="heading r-consultant-button"> <td colspan="2" class="option-other-heading"> <b> <label><input class="addr" type="checkbox" name="online_consultant" value="Y" <?php if ($optionOnlineConsultant) echo "checked"; ?>><?php echo GetMessage('ONLINE_CONSULTANT'); ?></label> </b> </td> </tr> <tr class="r-consultant" <?php if (!$optionOnlineConsultant) echo 'style="display: none;"'; ?>> <td class="adm-detail-content-cell-l" width="45%"><?php echo GetMessage('ONLINE_CONSULTANT_LABEL')?></td> <td class="adm-detail-content-cell-r" width="55%"> <textarea name="online_consultant_script"><?php echo $optionOnlineConsultantScript; ?></textarea> </td> </tr> <tr class="heading r-dc-button"> <td colspan="2" class="option-other-heading"> <b> <label><input class="addr" type="checkbox" name="discount_round" value="Y" <?php if($optionDiscRound === 'Y') echo "checked"; ?>><?php echo GetMessage('ROUND_PRICE_FOR_SAME_POSITIONS'); ?></label> </b> </td> </tr> <tr class="r-dc" <?php if ($optionDiscRound !== 'Y') { echo 'style="display: none;"'; } ?>> <td class="option-head" colspan="2"> <b><?php echo GetMessage('ROUND_LABEL'); ?></b> </td> </tr> <tr class="heading r-ac-button"> <td colspan="2" class="option-other-heading"> <b> <label><input class="addr" type="checkbox" name="cart" value="Y" <?php if ($optionCart === 'Y') echo "checked"; ?>><?php echo GetMessage('CART'); ?></label> </b> </td> </tr> <tr class="r-ac" <?php if ($optionCart !== 'Y') { echo 'style="display: none;"'; } ?>> <td class="option-head" colspan="2"> <b><?php echo GetMessage('CART_DESCRIPTION'); ?></b> </td> </tr> <tr class="heading r-cc-button"> <td colspan="2" class="option-other-heading"> <b> <label><input class="addr" type="checkbox" name="corp-client" value="Y" <?php if ($optionCorpClient === 'Y') { echo "checked"; } ?>><?php echo GetMessage('CORP_CLIENTE'); ?></label> </b> </td> </tr> <tr class="r-cc" <?php if ($optionCorpClient !== 'Y') { echo 'style="display: none;"'; } ?>> <td width="50%" class="" name="<?php ?>"> <?php echo GetMessage('CORP_NAME'); ?> </td> <td width="50%" class=""> <select name="nickName-corporate" class="typeselect"> <option value=""></option> <?php foreach ($arResult['arProp'][$bitrixOrderType['ID']] as $arProp): ?> <option value="<?php echo $arProp['CODE']; ?>" <?php if ($optionsCorpComName === $arProp['CODE']) { echo 'selected'; } ?>> <?php echo $arProp['NAME']; ?> </option> <?php endforeach; ?> </select> </td> </tr> <tr class="r-cc" <?php if ($optionCorpClient !== 'Y') { echo 'style="display: none;"'; } ?>> <td width="50%" class="" name="<?php ?>"> <?php echo GetMessage('CORP_ADRESS'); ?> </td> <td width="50%" class=""> <select name="adres-corporate" class="typeselect"> <option value=""></option> <?php foreach ($arResult['arProp'][$bitrixOrderType['ID']] as $arProp): ?> <option value="<?php echo $arProp['CODE']; ?>" <?php if ($optionsCorpAdres === $arProp['CODE']) { echo 'selected'; } ?>> <?php echo $arProp['NAME']; ?> </option> <?php endforeach; ?> </select> </td> </tr> <tr class="r-cc" <?php if ($optionCorpClient !== 'Y') { echo 'style="display: none;"'; } ?>> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b> <label><?php echo GetMessage('CORP_LABEL'); ?></label> </b> </td> </tr> <tr class="r-cc" <?php if ($optionCorpClient !== 'Y') { echo 'style="display: none;"'; } ?>> <td width="50%" class="" name="<?php ?>" align="center"> <?php foreach ($arResult['sitesList'] as $sitesList): ?> <td colspan="2" class="option-other-center"> <label><input class="addr" type="checkbox" name="shops-corporate-<? echo $sitesList['code']; ?>" value="<? echo $sitesList['code']; ?>" <?php if (is_array($optionCorpShops) && in_array($sitesList['code'], $optionCorpShops)) { echo "checked"; } ?>> <?php echo $sitesList['name'] . ' (' . $sitesList['code'] . ')'; ?> </label> </td> <?php endforeach; ?> </td> </tr> <tr class="heading"> <td colspan="2" class="option-other-heading"> <b> <label><input class="addr" type="checkbox" name="shipment_deducted" value="Y" <?php if ($optionShipmentDeducted === 'Y') { echo "checked"; } ?>><?php echo GetMessage('CHANGE_SHIPMENT_STATUS_FROM_CRM'); ?></label> </b> </td> </tr> <?php endif; ?> <tr class="heading"> <td colspan="2" class="option-other-bottom"><b><?php echo GetMessage('ACTIVITY_SETTINGS'); ?></b></td> </tr> <tr> <td colspan="2" class="option-head option-other-top option-other-bottom"> <b> <label><input class="addr" type="checkbox" name="module-deactivate" value="Y" <?php if ($moduleDeactivate === 'Y') { echo "checked"; } ?>> <?php echo GetMessage('DEACTIVATE_MODULE'); ?></label> </b> </td> </tr> <?php $tabControl->Buttons(); ?> <input type="hidden" name="Update" value="Y"/> <input type="submit" title="<?php echo GetMessage('ICRM_OPTIONS_SUBMIT_TITLE'); ?>" value="<?php echo GetMessage('ICRM_OPTIONS_SUBMIT_VALUE'); ?>" name="btn-update" class="adm-btn-save"/> <?php $tabControl->End(); ?> </form> <?php } ?>