Exemplo n.º 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;
 }