public static function PrepareListItems() { $ary = array(); $rsSaleSettings = CCrmExternalSale::GetList(array('NAME' => 'ASC', 'SERVER' => 'ASC'), array('ACTIVE' => 'Y')); while ($arSaleSetting = $rsSaleSettings->Fetch()) { $saleSettingsID = $arSaleSetting['ID']; $saleSettingName = isset($arSaleSetting['NAME']) ? strval($arSaleSetting['NAME']) : ''; if (!isset($saleSettingName[0]) && isset($arSaleSetting['SERVER'])) { $saleSettingName = $arSaleSetting['SERVER']; } if (!isset($saleSettingName[0])) { $saleSettingName = $saleSettingsID; } $ary[$saleSettingsID] = $saleSettingName; } return $ary; }
public static function DataSync($id) { global $USER; if (!(isset($USER) && (get_class($USER) === 'CUser' || $USER instanceof CUser))) { $USER = new CUser(); } $id = intval($id); $i = new CCrmExternalSaleImport($id); if ($i->IsInitialized()) { if ($i->arExternalSale == null) { $i->arExternalSale = CCrmExternalSale::GetDefaultSettings($id); } if ($i->arExternalSale["LABEL"] != "") { $i->SyncOrderData(false, false); } if ($i->arExternalSale["ERRORS"] > 10) { $i->NotifyError(); return; } return "CCrmExternalSaleImport::DataSync(" . $id . ");"; } }
ob_start(); ?> <select name="ORIGINATOR_ID"> <option value=""><?php echo GetMessage("CRM_COLUMN_ALL"); ?> </option> <option value="__INTERNAL" <?php echo $originatorID === '__INTERNAL' ? 'selected' : ''; ?> ><?php echo GetMessage("CRM_INTERNAL"); ?> </option> <?php $dbOriginatorsList = CCrmExternalSale::GetList(array("NAME" => "ASC", "SERVER" => "ASC"), array("ACTIVE" => "Y")); while ($arOriginator = $dbOriginatorsList->GetNext()) { ?> <option value="<?php echo $arOriginator["ID"]; ?> "<?php echo $originatorID === $arOriginator["ID"] ? " selected" : ""; ?> ><?php echo empty($arOriginator["NAME"]) ? $arOriginator["SERVER"] : $arOriginator["NAME"]; ?> </option><?php } ?> </select>
if ($crmUrlPort <= 0) { $crmUrlPort = $crmUrlScheme == 'https' ? 443 : 80; } $arFields["SCHEME"] = $crmUrlScheme; $arFields["SERVER"] = $crmUrlHost; $arFields["PORT"] = $crmUrlPort; } if ($arParams["ID"] > 0) { //$arFields["MODIFICATION_LABEL"] = $_POST["MODIFICATION_LABEL"]; if (strlen($_POST["PASSWORD"]) > 0) { $arFields["PASSWORD"] = $_POST["PASSWORD"]; } $res = CCrmExternalSale::Update($arParams["ID"], $arFields); } else { $arFields["PASSWORD"] = $_POST["PASSWORD"]; $res = CCrmExternalSale::Add($arFields); } if (!$res) { if ($ex = $GLOBALS["APPLICATION"]->GetException()) { $errorMessage .= $ex->GetString() . ".<br>"; } else { $errorMessage .= "Unknown error." . "<br>"; } } } if (strlen($errorMessage) <= 0) { $dbAgents = CAgent::GetList(array(), array("NAME" => "CCrmExternalSaleImport::DataSync(" . intval($res) . ");", "MODULE_ID" => "crm")); if ($arAgent = $dbAgents->Fetch()) { if ($arResult["BP"]["DATA_SYNC_PERIOD"] > 0) { if ($arAgent["ACTIVE"] != "Y" || intval($arAgent["AGENT_INTERVAL"] / 60) != $arResult["BP"]["DATA_SYNC_PERIOD"]) { CAgent::Update($arAgent["ID"], array("ACTIVE" => "Y", "AGENT_INTERVAL" => 60 * $arResult["BP"]["DATA_SYNC_PERIOD"]));
protected static function getDealOriginatorName($originatorID, $htmlEncode = false) { $rsSaleSttings = CCrmExternalSale::GetList(array(), array('ID' => intval($originatorID))); $arSaleSettings = $rsSaleSttings->Fetch(); if (!is_array($arSaleSettings)) { return $originatorID; } $name = isset($arSaleSettings['NAME']) ? strval($arSaleSettings['NAME']) : ''; if ($name === '') { $name = isset($arSaleSettings['SERVER']) ? strval($arSaleSettings['SERVER']) : ''; } return $htmlEncode ? htmlspecialcharsbx($name) : $name; }
$strCreateOrderHtmlSelect .= '<input type="hidden" name="EXTERNAL_SALE_ID" id="ID_EXTERNAL_SALE_ID" value="' . $arKeys[0] . '" />'; $strCreateOrderHtmlAction .= "document.getElementById('ID_EXTERNAL_SALE_ID').value"; } elseif ($salesListCount > 1) { $strCreateOrderHtmlSelect .= '<select name="EXTERNAL_SALE_ID" id="ID_EXTERNAL_SALE_ID">'; foreach ($arSalesList as $key => $val) { $strCreateOrderHtmlSelect .= '<option value="' . $key . '">' . $val . '</option>'; } $strCreateOrderHtmlSelect .= '</select> '; $strCreateOrderHtmlAction .= "document.getElementById('ID_EXTERNAL_SALE_ID').options[document.getElementById('ID_EXTERNAL_SALE_ID').selectedIndex].value"; } $arResult['FIELDS']['tab_1'][] = array('id' => 'SALE_ORDER', 'name' => GetMessage('CRM_FIELD_SALE_ORDER'), 'type' => 'custom', 'value' => $strCreateOrderHtml, 'persistent' => true); } } else { if (intval($arResult['ELEMENT']['ORIGINATOR_ID']) > 0 && intval($arResult['ELEMENT']['ORIGIN_ID']) > 0) { $strEditOrderHtml = '<script type="text/javascript">var extSaleGetRemoteFormLocal = {"PRINT":"' . GetMessage("CRM_EXT_SALE_DEJ_PRINT") . '","SAVE":"' . GetMessage("CRM_EXT_SALE_DEJ_SAVE") . '","ORDER":"' . GetMessage("CRM_EXT_SALE_DEJ_ORDER") . '","CLOSE":"' . GetMessage("CRM_EXT_SALE_DEJ_CLOSE") . '"};</script>' . '<input type="hidden" name="SYNC_ORDER_ID" id="ID_SYNC_ORDER_ID" value="" />' . '<input type="hidden" name="SYNC_ORDER_FORM_NAME" id="ID_SYNC_ORDER_FORM_NAME" value="form_' . htmlspecialcharsbx($arResult['FORM_ID']) . '" />'; $dbSalesList = CCrmExternalSale::GetList(array("NAME" => "ASC", "SERVER" => "ASC"), array("ID" => $arResult['ELEMENT']['ORIGINATOR_ID'])); if ($arSale = $dbSalesList->GetNext()) { $strEditOrderHtml .= $arSale["NAME"] != "" ? $arSale["NAME"] : $arSale["SERVER"]; } $arResult['FIELDS']['tab_1'][] = array('id' => 'SALE_ORDER', 'name' => GetMessage('CRM_FIELD_SALE_ORDER1'), 'type' => 'custom', 'value' => $strEditOrderHtml, 'persistent' => true); } } $arResult['FIELDS']['tab_1'][] = array('id' => 'section_deal_info', 'name' => GetMessage('CRM_SECTION_DEAL_INFO'), 'type' => 'section'); $arResult['FIELDS']['tab_1'][] = array('id' => 'TITLE', 'name' => GetMessage('CRM_FIELD_TITLE_DEAL'), 'params' => array('size' => 50), 'value' => isset($arResult['ELEMENT']['~TITLE']) ? $arResult['ELEMENT']['~TITLE'] : '', 'type' => 'text'); $arResult['FIELDS']['tab_1'][] = array('id' => 'STAGE_ID', 'name' => GetMessage('CRM_FIELD_STAGE_ID'), 'items' => $arResult['STAGE_LIST'], 'params' => array('sale_order_marker' => 'Y'), 'type' => 'list', 'value' => isset($arResult['ELEMENT']['STAGE_ID']) ? $arResult['ELEMENT']['STAGE_ID'] : ''); $currencyID = CCrmCurrency::GetBaseCurrencyID(); if (isset($arResult['ELEMENT']['CURRENCY_ID']) && $arResult['ELEMENT']['CURRENCY_ID'] !== '') { $currencyID = $arResult['ELEMENT']['CURRENCY_ID']; } $currencyFld = array('id' => 'CURRENCY_ID', 'name' => GetMessage('CRM_FIELD_CURRENCY_ID')); if (!$isExternal) {
if (strlen($arParams["PATH_TO_EDIT"]) <= 0) { $arParams["PATH_TO_EDIT"] = $APPLICATION->GetCurPage() . "?" . $arParams["PAGE_VAR"] . "=edit&" . $arParams["ID_VAR"] . "=#id#"; } $arParams["PATH_TO_SYNC"] = trim($arParams["PATH_TO_SYNC"]); if (strlen($arParams["PATH_TO_SYNC"]) <= 0) { $arParams["PATH_TO_SYNC"] = $APPLICATION->GetCurPage() . "?" . $arParams["PAGE_VAR"] . "=sync&" . $arParams["ID_VAR"] . "=#id#"; } $arResult["FatalErrorMessage"] = ""; $arResult["ErrorMessage"] = ""; $arParams["ID"] = intval($arParams["ID"]); $arResult["BP"] = false; $arResult["PATH_TO_INDEX"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_INDEX"], array()); $arResult["PATH_TO_EDIT"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_EDIT"], array("id" => $arParams["ID"])); if (strlen($arResult["FatalErrorMessage"]) <= 0) { if ($arParams["ID"] > 0) { $dbRecordsList = CCrmExternalSale::GetList(array(), array("ID" => $arParams["ID"])); if ($arRecord = $dbRecordsList->GetNext()) { $arResult["BP"] = $arRecord; } else { $arResult["FatalErrorMessage"] .= GetMessage("BPWC_WLC_WRONG_BP") . ". "; } } else { $arResult["FatalErrorMessage"] .= GetMessage("BPWC_WLC_WRONG_BP") . ". "; } } if (strlen($arResult["FatalErrorMessage"]) <= 0) { if ($arResult["BP"]["ACTIVE"] != "Y") { $arResult["FatalErrorMessage"] .= GetMessage("BPWC_WLC_WRONG_BP_ACTIVE") . ". "; } } $this->IncludeComponentTemplate();
$arResult['FIELDS']['tab_1'][] = array('id' => 'MODIFY_BY_ID', 'name' => GetMessage('CRM_FIELD_MODIFY_BY_ID'), 'type' => 'custom', 'value' => $sVal); $arResult['FIELDS']['tab_1'][] = array('id' => 'DATE_MODIFY', 'name' => GetMessage('CRM_FIELD_DATE_MODIFY'), 'params' => array('size' => 50), 'type' => 'label', 'value' => isset($arResult['ELEMENT']['DATE_MODIFY']) ? FormatDate('x', MakeTimeStamp($arResult['ELEMENT']['DATE_MODIFY']), time() + CTimeZone::GetOffset()) : ''); } $arResult['USER_FIELD_COUNT'] = $CCrmUserType->AddFields($arResult['FIELDS']['tab_1'], $arResult['ELEMENT']['ID'], $arResult['FORM_ID'], false, true, false, array('FILE_URL_TEMPLATE' => "/bitrix/components/bitrix/crm.deal.show/show_file.php?ownerId=#owner_id#&fieldName=#field_name#&fileId=#file_id#", 'IS_TACTILE' => true)); // <-- ADDITIONAL SECTION $arResult['FIELDS']['tab_details'][] = array('id' => 'section_details', 'name' => GetMessage('CRM_SECTION_DETAILS'), 'type' => 'section'); // WEB-STORE SECTION --> $enableWebStore = true; $strEditOrderHtml = ''; if ($isExternal) { $dbSalesList = CCrmExternalSale::GetList(array("NAME" => "ASC", "SERVER" => "ASC"), array("ID" => $arResult['ELEMENT']['ORIGINATOR_ID'])); if ($arSale = $dbSalesList->GetNext()) { $strEditOrderHtml .= $arSale["NAME"] != "" ? $arSale["NAME"] : $arSale["SERVER"]; } } else { $dbSalesList = CCrmExternalSale::GetList(array(), array("ACTIVE" => "Y")); $enableWebStore = $dbSalesList->Fetch() !== false; } if ($enableWebStore) { $arResult['FIELDS']['tab_details'][] = array('id' => 'section_web_store', 'name' => GetMessage('CRM_SECTION_WEB_STORE'), 'type' => 'section'); $arResult['FIELDS']['tab_details'][] = array('id' => 'SALE_ORDER', 'name' => GetMessage('CRM_FIELD_SALE_ORDER1'), 'type' => 'custom', 'value' => isset($strEditOrderHtml[0]) ? $strEditOrderHtml : htmlspecialcharsbx(GetMessage('MAIN_NO'))); } // <-- WEB-STORE SECTION if ($enableWebStore) { $strAdditionalInfoHtml = ''; if ($isExternal && isset($arResult['ELEMENT']['ADDITIONAL_INFO'])) { $arAdditionalInfo = unserialize($arResult['ELEMENT']['~ADDITIONAL_INFO']); if (is_array($arAdditionalInfo) && count($arAdditionalInfo) > 0) { foreach ($arAdditionalInfo as $k => $v) { $msgID = 'CRM_SALE_' . $k; $k1 = HasMessage($msgID) ? GetMessage($msgID) : $k;
} $arResult["ErrorMessage"] .= $errorMessage; if (strlen($errorMessage) <= 0) { $arResult["SuccessMessage"] = GetMessage("CRM_EXT_SALE_C1SUCCESS") . "<br>"; } } } if (strlen($arResult["FatalErrorMessage"]) <= 0) { $arResult["GRID_ID"] = "crm_config_external_sale"; $gridOptions = new CGridOptions($arResult["GRID_ID"]); $gridColumns = $gridOptions->GetVisibleColumns(); $gridSort = $gridOptions->GetSorting(array("sort" => array("DATE_UPDATE" => "desc"))); $arResult["HEADERS"] = array(array("id" => "NAME", "name" => GetMessage("BPWC_WLC_NAME"), "default" => true, "sort" => "NAME"), array("id" => "ACTIVE", "name" => GetMessage("BPWC_WLC_ACTIVE"), "default" => true, "sort" => "ACTIVE"), array("id" => "IMPORT_AGENT", "name" => GetMessage("BPWC_WLC_IMPORT_AGENT"), "default" => true, "sort" => ""), array("id" => "MESSAGE", "name" => GetMessage("BPWC_WLC_MESSAGE"), "default" => true, "sort" => ""), array("id" => "URL", "name" => GetMessage("BPWC_WLC_URL"), "default" => true, "sort" => ""), array("id" => "LAST_STATUS_DATE", "name" => GetMessage("BPWC_WLC_LAST_STATUS_DATE"), "default" => true, "sort" => "LAST_STATUS_DATE"), array("id" => "LAST_STATUS", "name" => GetMessage("BPWC_WLC_STATUS"), "default" => false, "sort" => "LAST_STATUS"), array("id" => "DATE_UPDATE", "name" => GetMessage("BPWC_WLC_DATE_UPDATE"), "default" => false, "sort" => "DATE_UPDATE"), array("id" => "IMPORT_PREFIX", "name" => GetMessage("BPWC_WLC_IMPORT_PREFIX"), "default" => false, "sort" => "IMPORT_PREFIX"), array("id" => "ID", "name" => "ID", "default" => false, "sort" => "ID"), array("id" => "DATE_CREATE", "name" => GetMessage("BPWC_WLC_DATE_CREATE"), "default" => false, "sort" => "DATE_CREATE"), array("id" => "IMPORT_SIZE", "name" => GetMessage("BPWC_WLC_SIZE"), "default" => false, "sort" => "IMPORT_SIZE"), array("id" => "IMPORT_PERIOD", "name" => GetMessage("BPWC_WLC_IMPORT_PERIOD"), "default" => false, "sort" => "IMPORT_PERIOD"), array("id" => "IMPORT_PROBABILITY", "name" => GetMessage("BPWC_WLC_IMPORT_PROBABILITY"), "default" => false, "sort" => "IMPORT_PROBABILITY"), array("id" => "IMPORT_PUBLIC", "name" => GetMessage("BPWC_WLC_IMPORT_PUBLIC"), "default" => false, "sort" => "IMPORT_PUBLIC")); $arResult["SORT"] = $gridSort["sort"]; $arResult["RECORDS"] = array(); $dbRecordsList = CCrmExternalSale::GetList($gridSort["sort"], array()); while ($arRecord = $dbRecordsList->GetNext()) { $path2Edit = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_EDIT"], array("id" => $arRecord["ID"])); $path2Sync = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_SYNC"], array("id" => $arRecord["ID"])); $agentInterval = 0; $dbAgents = CAgent::GetList(array(), array("NAME" => "CCrmExternalSaleImport::DataSync(" . $arRecord["ID"] . ");", "MODULE_ID" => "crm", "ACTIVE" => "Y")); if ($arAgent = $dbAgents->Fetch()) { $agentInterval = intval($arAgent["AGENT_INTERVAL"] / 60); } $v = htmlspecialcharsbx($arRecord["SCHEME"] . "://" . $arRecord["SERVER"] . (intval($arRecord["PORT"]) > 0 ? ":" . $arRecord["PORT"] : "")); $aCols = array("URL" => "<a href=\"" . $v . "\" target=\"_blank\">" . $v . "</a>", "ACTIVE" => $arRecord["ACTIVE"] == "Y" ? GetMessage("BPWC_WLC_YES") : GetMessage("BPWC_WLC_NO"), "IMPORT_PUBLIC" => $arRecord["IMPORT_PUBLIC"] == "Y" ? GetMessage("BPWC_WLC_YES") : GetMessage("BPWC_WLC_NO"), "IMPORT_AGENT" => $agentInterval > 0 ? $agentInterval : GetMessage("BPWC_WLC_MANUAL"), "MESSAGE" => ""); if (intval($arRecord["MODIFICATION_LABEL"]) == 0) { $aCols["MESSAGE"] .= "<font class='errortext'>" . GetMessage("BPWC_WLC_NEED_FIRST_SYNC1") . "</font><br /><a href='" . $path2Sync . "'>" . GetMessage("BPWC_WLC_NEED_FIRST_SYNC1_DO") . "</a><br />"; } if ($arRecord["LAST_STATUS"] != "" && strtolower(substr($arRecord["LAST_STATUS"], 0, strlen("success"))) != "success") { $aCols["MESSAGE"] .= GetMessage("BPWC_WLC_NEED_FIRST_SYNC3") . $arRecord["LAST_STATUS"];
} ?> <tr><td> <form method="post"> <?php if ($currentStep == 1) { ?> <?php echo GetMessage("CRM_CES_STEP_1"); ?> <?php } elseif ($currentStep == 2) { if ($id > 0) { $arFields = $arRecord; } else { $cnt = CCrmExternalSale::Count(); $arFields = array("NAME" => "", "LOGIN" => "", "PASSWORD" => "", "IMPORT_PREFIX" => "EShop" . ($cnt + 1), "SCHEME" => "http", "SERVER" => "", "PORT" => 80); } if ($arFields["SCHEME"] == "http" && $arFields["PORT"] != 80 || $arFields["SCHEME"] == "https" && $arFields["PORT"] != 443) { $arFields["SERVER"] .= ":" . $arFields["PORT"]; } foreach ($arFields as $key => &$value) { if (isset($_REQUEST[$key])) { $value = htmlspecialcharsbx($_REQUEST[$key]); } } ?> <table align="center"> <tr> <td class="bx-popup-label"><span style="color:red;">*</span><?php echo GetMessage("BPWC_WNCW_SHURL");
public function Send(array $request) { $method = isset($request['METHOD']) ? strtoupper($request['METHOD']) : ''; if ($method !== \Bitrix\Main\Web\HttpClient::HTTP_GET && $method !== \Bitrix\Main\Web\HttpClient::HTTP_POST) { throw new Bitrix\Main\ArgumentException("Could not find 'METHOD'.", 'request'); } $path = isset($request['PATH']) && is_string($request['PATH']) ? $request['PATH'] : ''; if ($path === '') { throw new Bitrix\Main\ArgumentException("Could not find 'PATH'.", 'request'); } $postData = $method === \Bitrix\Main\Web\HttpClient::HTTP_POST && isset($request['BODY']) ? $request['BODY'] : null; if (!$this->client) { $this->client = new \Bitrix\Main\Web\HttpClient(); } $this->client->setRedirect(false); if ($method === \Bitrix\Main\Web\HttpClient::HTTP_POST && is_array($postData)) { //Force UTF encoding $this->client->setCharset('UTF-8'); if ((!isset($request['UTF']) || !$request['UTF']) && !defined('BX_UTF')) { $postData = \Bitrix\Main\Text\Encoding::convertEncodingArray($postData, SITE_CHARSET, 'UTF-8'); } } $headers = isset($request['HEADERS']) ? $request['HEADERS'] : null; if (is_array($headers)) { foreach ($headers as $k => $v) { $this->client->setHeader($k, $v, true); } } if (!empty($this->cookies)) { $this->client->setCookies($this->cookies); } if ($this->enableProxy) { $this->client->setProxy($this->proxyServer, $this->proxyPort, $this->proxyUserName, $this->proxyUserPassword); } if ($this->userName !== '') { $this->client->setAuthorization($this->userName, $this->userPassword); } $this->client->setHeader('User-Agent', $this->userAgent, true); $absolutePath = $this->GetUrl() . $path; if (!$this->client->query($method, $absolutePath, $postData)) { $this->responseData = null; $this->errors = $this->client->getError(); } else { /**@var \Bitrix\Main\Web\HttpHeaders*/ $responseHeaders = $this->client->getHeaders(); //STATUS.VERSION & STATUS.PHRASE are delcared for backward compatibility only. $this->responseData = array('STATUS' => array('VERSION' => '', 'CODE' => $this->client->getStatus(), 'PHRASE' => ''), 'CONTENT' => array('TYPE' => $this->client->getContentType(), 'ENCODING' => $this->client->getCharset()), 'HEADERS' => $responseHeaders, 'BODY' => $this->client->getResult()); if ($responseHeaders->get('Set-Cookie', false) !== null) { $this->cookies = array_merge($this->cookies, $this->client->getCookies()->toArray()); CCrmExternalSale::Update($this->externalSaleId, array('COOKIE' => serialize($this->cookies))); } $this->errors = array(); } return $this->responseData; }