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;
 }
예제 #3
0
    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>
예제 #4
0
$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) {
예제 #5
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;
 }
예제 #6
0
            $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) {
예제 #7
0
    $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;
예제 #8
0
        }
        $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"];
예제 #9
0
 }
 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()) {