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 . ");"; } }
$arFields['~MODIFY_BY_FORMATTED_NAME'] = CUser::FormatName($fullNameFormat, array('LOGIN' => $arFields['~MODIFY_BY_LOGIN'], 'NAME' => $arFields['~MODIFY_BY_NAME'], 'LAST_NAME' => $arFields['~MODIFY_BY_LAST_NAME'], 'SECOND_NAME' => $arFields['~MODIFY_BY_SECOND_NAME']), true, false); $arFields['MODIFY_BY_FORMATTED_NAME'] = htmlspecialcharsbx($arFields['~MODIFY_BY_FORMATTED_NAME']); $arFields['PATH_TO_USER_MODIFIER'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_USER_PROFILE'], array('user_id' => $arFields['MODIFY_BY'])); $arFields['ORIGIN_ID'] = isset($arFields['ORIGIN_ID']) ? intval($arFields['ORIGIN_ID']) : 0; $arFields['ORIGINATOR_ID'] = isset($arFields['ORIGINATOR_ID']) ? intval($arFields['ORIGINATOR_ID']) : 0; $arResult['ELEMENT'] = $arFields; unset($arFields); if (empty($arResult['ELEMENT']['ID'])) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_DEAL_LIST'], array())); } $contactID = isset($arResult['ELEMENT']['CONTACT_ID']) ? intval($arResult['ELEMENT']['CONTACT_ID']) : 0; $companyID = isset($arResult['ELEMENT']['COMPANY_ID']) ? intval($arResult['ELEMENT']['COMPANY_ID']) : 0; $currentUserPermissions = CCrmPerms::GetCurrentUserPermissions(); $arResult['ERROR_MESSAGE'] = ''; if (intval($_REQUEST["SYNC_ORDER_ID"]) > 0) { $imp = new CCrmExternalSaleImport($arResult['ELEMENT']["ORIGINATOR_ID"]); if ($imp->IsInitialized()) { $r = $imp->GetOrderData($arResult['ELEMENT']["ORIGIN_ID"], false); if ($r != CCrmExternalSaleImport::SyncStatusError) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_DEAL_SHOW'], array('deal_id' => $arResult['ELEMENT']['ID']))); } else { $arErrors = $imp->GetErrors(); foreach ($arErrors as $err) { $arResult['ERROR_MESSAGE'] .= $err[1] . "<br />"; } } } } $isExternal = $arResult['IS_EXTERNAL'] = $arResult['ELEMENT']['ORIGINATOR_ID'] > 0 && $arResult['ELEMENT']['ORIGIN_ID'] > 0; $arResult['FORM_ID'] = 'CRM_DEAL_SHOW_V12' . ($isExternal ? "_E" : ""); $arResult['GRID_ID'] = 'CRM_DEAL_LIST_V12' . ($isExternal ? "_E" : "");
$arContactFields = array('COMPANY_ID' => $arFields['COMPANY_ID']); $bSuccess = $CrmContact->Update($arFields['CONTACT_ID'], $arContactFields, false, true, array('DISABLE_USER_FIELD_CHECK' => true)); if (!$bSuccess) { $arResult['ERROR_MESSAGE'] = !empty($arFields['RESULT_MESSAGE']) ? $arFields['RESULT_MESSAGE'] : GetMessage('UNKNOWN_ERROR'); } } } if ($bSuccess) { $DB->Commit(); } else { $DB->Rollback(); $arResult['ERROR_MESSAGE'] = !empty($arFields['RESULT_MESSAGE']) ? $arFields['RESULT_MESSAGE'] : GetMessage('UNKNOWN_ERROR'); } } if (intval($_POST['SYNC_ORDER_ID']) > 0) { $imp = new CCrmExternalSaleImport($originatorId); if ($imp->IsInitialized()) { $r = $imp->GetOrderData($originId, true); if ($r == CCrmExternalSaleImport::SyncStatusError) { $arErrors = $imp->GetErrors(); foreach ($arErrors as $err) { $arResult['ERROR_MESSAGE'] .= $err[1] . '<br />'; } } } } if (empty($arResult['ERROR_MESSAGE'])) { if (!$CCrmBizProc->StartWorkflow($arResult['ELEMENT']['ID'], $arBizProcParametersValues)) { $arResult['ERROR_MESSAGE'] = $CCrmBizProc->LAST_ERROR; } }
<?php define('NO_KEEP_STATISTIC', 'Y'); define('NO_AGENT_STATISTIC', 'Y'); require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php'; if (!CModule::IncludeModule('crm')) { die; } $CrmPerms = new CCrmPerms($USER->GetID()); if (!$CrmPerms->HavePerm('CONFIG', BX_CRM_PERM_CONFIG, 'WRITE') && $CrmPerms->HavePerm('DEAL', BX_CRM_PERM_NONE, 'READ')) { die("Permission denied"); } $i = new CCrmExternalSaleImport($_REQUEST["id"]); $r = $i->SyncOrderData($_REQUEST["skip_bp"] == "Y"); if ($r != CCrmExternalSaleImport::SyncStatusError) { echo CUtil::PhpToJSObject(array("result" => $r, "details" => $i->GetImportResult()->ToArray())); } else { $str = ''; foreach ($i->GetErrors() as $arError) { $str .= sprintf("[%s] %s", $arError[0], htmlspecialchars($arError[1])) . "<br>"; } echo CUtil::PhpToJSObject(array("result" => CCrmExternalSaleImport::SyncStatusError, "errors" => $str)); } require $_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php';