public static function UpdateCall($params) { if (!CModule::IncludeModule('crm')) { return false; } CVoxImplantHistory::WriteToLog($params, 'CRM UPDATE TO CALL'); $activity = CCrmActivity::GetByOriginID('VI_' . $params['CALL_ID'], false); if ($activity) { $params = CVoxImplantHistory::PrepereData($params); if (isset($params['DESCRIPTION']) && strlen($params['DESCRIPTION']) > 0) { $description = $params['DESCRIPTION']; } else { if ($params['CALL_DURATION'] > 0) { $description = GetMessage('VI_CRM_CALL_DURATION', array('#DURATION#' => $params['CALL_DURATION_TEXT'])); } else { $description = GetMessage('VI_CRM_CALL_STATUS') . ' ' . $params['CALL_FAILED_REASON']; } } if ($params['INCOMING'] == CVoxImplantMain::CALL_INCOMING) { $portalNumbers = CVoxImplantConfig::GetPortalNumbers(); $portalNumber = isset($portalNumbers[$params['PORTAL_NUMBER']]) ? $portalNumbers[$params['PORTAL_NUMBER']] : ''; if ($portalNumber) { $description = $description . "\n" . GetMessage('VI_CRM_CALL_TO_PORTAL_NUMBER', array('#PORTAL_NUMBER#' => $portalNumber)); } } $arFields = array('DESCRIPTION' => (strlen($activity['DESCRIPTION']) > 0 ? $activity['DESCRIPTION'] . "\n" : '') . $description, 'COMPLETED' => 'Y'); CCrmActivity::Update($activity['ID'], $arFields, false, true, array('REGISTER_SONET_EVENT' => true)); } return true; }
} $result->NavRecordCount = $totalCount; $result->NavPageCount = $totalPage; $result->NavPageNomer = $page; $arResult["NAV_OBJECT"] = $result; $arResult["ROWS_COUNT"] = $result->SelectedRowsCount(); $arResult["ELEMENTS_ROWS"] = array(); $arAvailableStatuses = array("200", "304", "603", "404", "486", "503", "480", "402", "1", "2", "3"); $bModuleCatalog = false; if (CModule::IncludeModule("catalog")) { $bModuleCatalog = true; } $arUserIds = array(); $portalNumbers = CVoxImplantConfig::GetPortalNumbers(); while ($data = $result->fetch()) { $data = CVoxImplantHistory::PrepereData($data); if ($data["PORTAL_USER_ID"] > 0 && !in_array($data["PORTAL_USER_ID"], $arUserIds)) { $arUserIds[] = $data["PORTAL_USER_ID"]; } if (in_array($data["CALL_FAILED_CODE"], array(1, 2, 3, 409))) { $data["CALL_FAILED_REASON"] = GetMessage("TELEPHONY_STATUS_" . $data["CALL_FAILED_CODE"]); } if (isset($portalNumbers[$data["PORTAL_NUMBER"]])) { $data["PORTAL_NUMBER"] = $portalNumbers[$data["PORTAL_NUMBER"]]; } else { if (substr($data["PORTAL_NUMBER"], 0, 3) == 'sip') { $data["PORTAL_NUMBER"] = GetMessage("TELEPHONY_PORTAL_PHONE_SIP_OFFICE", array('#ID#' => substr($data["PORTAL_NUMBER"], 3))); } else { if (substr($data["PORTAL_NUMBER"], 0, 3) == 'reg') { $data["PORTAL_NUMBER"] = GetMessage("TELEPHONY_PORTAL_PHONE_SIP_CLOUD", array('#ID#' => substr($data["PORTAL_NUMBER"], 3))); } else {