예제 #1
0
 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;
 }
예제 #2
0
}
$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 {