public function __construct($saleId) { $this->externalSaleId = intval($saleId); $dbResult = CCrmExternalSale::GetList(array(), array("ID" => $this->externalSaleId, "ACTIVE" => "Y")); if ($arResult = $dbResult->Fetch()) { $scheme = isset($arResult['SCHEME']) ? strtolower($arResult['SCHEME']) : ''; $this->scheme = $scheme === 'https' ? 'https' : 'http'; $this->server = isset($arResult['SERVER']) ? $arResult['SERVER'] : ''; $this->port = isset($arResult['PORT']) ? intval($arResult['PORT']) : 80; $this->userName = isset($arResult['LOGIN']) ? $arResult['LOGIN'] : ''; $this->userPassword = isset($arResult['PASSWORD']) ? $arResult['PASSWORD'] : ''; if (isset($arResult['COOKIE']) && !empty($arResult['COOKIE'])) { $cookies = unserialize($arResult['COOKIE']); $this->cookies = is_array($cookies) ? $cookies : array(); } } else { $this->AddError('PA1', 'External site is not found'); } $proxySettings = CCrmExternalSale::GetProxySettings(); if (is_array($proxySettings) && isset($proxySettings['PROXY_HOST']) && $proxySettings['PROXY_HOST'] !== '') { $this->proxyServer = $proxySettings['PROXY_HOST']; $scheme = isset($proxySettings['PROXY_SCHEME']) ? strtolower($proxySettings['PROXY_SCHEME']) : ''; $this->proxyScheme = $scheme === 'https' ? 'https' : 'http'; $this->proxyPort = isset($proxySettings['PROXY_PORT']) ? intval($proxySettings['PROXY_PORT']) : 80; $this->proxyUserName = isset($proxySettings['PROXY_USERNAME']) ? $proxySettings['PROXY_USERNAME'] : ''; $this->proxyUserPassword = isset($proxySettings['PROXY_PASSWORD']) ? $proxySettings['PROXY_PASSWORD'] : ''; $this->enableProxy = true; } $this->isInitialized = $this->server !== ''; }
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; }
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>
$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["PATH_TO_INDEX"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_INDEX"], array()); $arResult["PATH_TO_SYNC"] = ""; if ($arParams["ID"] > 0) { $arResult["PATH_TO_SYNC"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_SYNC"], array("id" => $arParams["ID"])); } $arResult["DAS_IST_SHOP_LIMIT"] = false; 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") . ". "; } $arResult["BP"]["DATA_SYNC_PERIOD"] = 0; $dbAgents = CAgent::GetList(array(), array("NAME" => "CCrmExternalSaleImport::DataSync(" . $arParams["ID"] . ");", "MODULE_ID" => "crm", "ACTIVE" => "Y")); if ($arAgent = $dbAgents->Fetch()) { $arResult["BP"]["DATA_SYNC_PERIOD"] = intval($arAgent["AGENT_INTERVAL"] / 60); } } else { $cnt = CCrmExternalSale::Count(); $arResult["BP"] = array("ACTIVE" => "Y", "SCHEME" => "http", "PORT" => 80, "IMPORT_SIZE" => 10, "IMPORT_PERIOD" => 7, "DATA_SYNC_PERIOD" => 10, "IMPORT_PREFIX" => "EShop" . ($cnt + 1)); $arLimitationSettings = CCrmExternalSale::GetLimitationSettings(); if ($arLimitationSettings["MAX_SHOPS"] > 0) {
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) {
$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"];
} if (strlen($arFields["PASSWORD"]) <= 0 && $id <= 0) { $errorMessage .= GetMessage("BPWC_WNC_EMPTY_PASSWORD") . "<br>"; } if (empty($errorMessage)) { if ($id > 0) { $res = CCrmExternalSale::Update($id, $arFields); } else { $arFields["IMPORT_PROBABILITY"] = 20; $arFields["IMPORT_PERIOD"] = 7; $arFields["IMPORT_PUBLIC"] = "Y"; $res = CCrmExternalSale::Add($arFields); } if ($res) { $id = intval($res); $dbRecordsList = CCrmExternalSale::GetList(array(), array("ID" => $id)); $arRecord = $dbRecordsList->GetNext(); if (!$arRecord) { __ExtSaleWizardShowError(GetMessage("BPWC_WLC_WRONG_BP")); } } else { if ($ex = $GLOBALS["APPLICATION"]->GetException()) { $errorMessage .= $ex->GetString() . ".<br>"; } else { $errorMessage .= "Unknown error." . "<br>"; } } } if (empty($errorMessage)) { $proxy = new CCrmExternalSaleProxy($id); if (!$proxy->IsInitialized()) {