Файловый менеджер - Редактировать - /var/www/axolotl/data/www/ekb.axolotls.ru/cf5ac/activity.php.tar
Назад
var/www/axolotl/data/www/axolotls.ru/www/bitrix/modules/imopenlines/lib/crm/activity.php 0000664 00000014013 14765006201 0025706 0 ustar 00 <?php namespace Bitrix\ImOpenLines\Crm; use \Bitrix\ImOpenLines\Crm, \Bitrix\ImOpenLines\Log, \Bitrix\ImOpenLines\Error, \Bitrix\ImOpenLines\Result, \Bitrix\ImOpenLines\Session; use \Bitrix\Crm\Activity\StatisticsStatus, \Bitrix\Crm\Integration\Channel\IMOpenLineTracker; use \Bitrix\Main\Loader, \Bitrix\Main\Localization\Loc; Loc::loadMessages(__FILE__); Crm::loadMessages(); class Activity { const ERROR_IMOL_ACTIVITY_NO_REQUIRED_PARAMETERS = 'ERROR IMOPENLINES ACTIVITY NO REQUIRED PARAMETERS'; /** * @param array $params * @return Result * @throws \Bitrix\Main\ArgumentException * @throws \Bitrix\Main\LoaderException * @throws \Bitrix\Main\ObjectException */ public static function add($params = array()) { $result = new Result; if (Loader::includeModule('crm')) { if(!empty($params)) { $addFields = [ 'TYPE_ID' => \CCrmActivityType::Provider, 'PROVIDER_ID' => \Bitrix\Crm\Activity\Provider\OpenLine::getId(), 'NOTIFY_TYPE' => \CCrmActivityNotifyType::None, 'RESULT_MARK' => \Bitrix\Crm\Activity\StatisticsMark::None, ]; if(!empty($params['LINE_ID'])) { $addFields['PROVIDER_TYPE_ID'] = $params['LINE_ID']; } if(!empty($params['NAME'])) { $addFields['SUBJECT'] = $params['NAME']; } if(!empty($params['SESSION_ID'])) { $addFields['ASSOCIATED_ENTITY_ID'] = $params['SESSION_ID']; $addFields['ORIGIN_ID'] = 'IMOL_' . $params['SESSION_ID']; } if(empty($params['START_TIME'])) { $addFields['START_TIME'] = new \Bitrix\Main\Type\DateTime(); } else { $addFields['START_TIME'] = $params['START_TIME']; } if(empty($params['COMPLETED'])) { $addFields['COMPLETED'] = 'N'; } else { $addFields['COMPLETED'] = $params['COMPLETED'] == 'Y' ? 'Y' : 'N'; } if(empty($params['MODE'])) { $addFields['DIRECTION'] = \CCrmActivityDirection::Incoming; $addFields['RESULT_STATUS'] = \Bitrix\Crm\Activity\StatisticsStatus::Unanswered; } else { $addFields['DIRECTION'] = $params['MODE'] == Session::MODE_INPUT ? \CCrmActivityDirection::Incoming : \CCrmActivityDirection::Outgoing; $addFields['RESULT_STATUS'] = $params['MODE'] == Session::MODE_OUTPUT ? \Bitrix\Crm\Activity\StatisticsStatus::Answered : \Bitrix\Crm\Activity\StatisticsStatus::Unanswered; } if(!empty($params['BINDINGS'])) { $addFields['BINDINGS'] = $params['BINDINGS']; } if(!empty($params['SETTINGS'])) { $addFields['SETTINGS'] = $params['SETTINGS']; } if(!empty($params['OPERATOR_ID'])) { $addFields['AUTHOR_ID'] = $params['OPERATOR_ID']; $addFields['RESPONSIBLE_ID'] = $params['OPERATOR_ID']; } if(!empty($params['USER_CODE'])) { $addFields['PROVIDER_PARAMS'] = ['USER_CODE' => $params['USER_CODE']]; } if(!empty($params['CONNECTOR_ID'])) { $addFields['RESULT_SOURCE_ID'] = $params['CONNECTOR_ID']; } if(!empty($params['ENTITES']) && is_array($params['ENTITES']) && !empty($params['USER_CODE'])) { foreach ($params['ENTITES'] as $entity) { $addFields['COMMUNICATIONS'][] = [ 'ID' => 0, 'TYPE' => 'IM', 'VALUE' => 'imol|' . $params['USER_CODE'], 'ENTITY_ID' => $entity['ENTITY_ID'], 'ENTITY_TYPE_ID' => $entity['ENTITY_TYPE_ID'] ]; } } $id = \CCrmActivity::Add($addFields, false, true, ['REGISTER_SONET_EVENT' => true]); if ($id) { $result->setResult($id); IMOpenLineTracker::getInstance()->registerActivity($id, array('ORIGIN_ID' => $params['LINE_ID'], 'COMPONENT_ID' => $params['CONNECTOR_ID'])); Log::write($id, 'CRM ACTIVITY CREATED'); } else { if(\CAllCrmActivity::GetErrorCount() > 0) { $errorMessage = \CAllCrmActivity::GetLastErrorMessage(); $result->addError(new Error($errorMessage, Crm::ERROR_IMOL_CRM_ACTIVITY, __METHOD__)); Log::write($errorMessage, 'CRM ACTIVITY ERROR'); } } } else { $result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_ACTIVITY_NO_REQUIRED_PARAMETERS'), self::ERROR_IMOL_ACTIVITY_NO_REQUIRED_PARAMETERS, __METHOD__)); } } else { $result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_NOT_LOAD_CRM'), Crm::ERROR_IMOL_NOT_LOAD_CRM, __METHOD__)); } return $result; } /** * @param $id * @param array $params * @return Result * @throws \Bitrix\Main\LoaderException */ public static function update($id, $params = array()) { $result = new Result; if (Loader::includeModule('crm')) { if(!empty($id) && $id > 0 && !empty($params)) { $updateDate = []; if(!empty($params['ANSWERED'])) { $updateDate['RESULT_STATUS'] = $params['ANSWERED'] == 'Y' ? StatisticsStatus::Answered : StatisticsStatus::Unanswered; } if(!empty($params['COMPLETED'])) { $updateDate['COMPLETED'] = $params['COMPLETED'] == 'N' ? 'N' : 'Y'; } if(!empty($params['DATE_CLOSE'])) { $updateDate['END_TIME'] = $params['DATE_CLOSE']; } if(!empty($params['OPERATOR_ID']) && $params['OPERATOR_ID'] > 0) { $updateDate['RESPONSIBLE_ID'] = $params['OPERATOR_ID']; } if(!empty($params['EDITOR_ID'])) { $updateDate['EDITOR_ID'] = $params['EDITOR_ID']; } if(!empty($updateDate)) { $resultUpdate = \CCrmActivity::Update($id, $updateDate, false, true, ['REGISTER_SONET_EVENT' => true]); if($resultUpdate == false) { if(\CAllCrmActivity::GetErrorCount() > 0) { $errorMessage = \CAllCrmActivity::GetLastErrorMessage(); $result->addError(new Error($errorMessage, Crm::ERROR_IMOL_CRM_ACTIVITY, __METHOD__)); Log::write($errorMessage, 'CRM ACTIVITY ERROR'); } } } } else { $result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_ACTIVITY_NO_REQUIRED_PARAMETERS'), self::ERROR_IMOL_ACTIVITY_NO_REQUIRED_PARAMETERS, __METHOD__)); } } else { $result->addError(new Error(Loc::getMessage('IMOL_CRM_ERROR_NOT_LOAD_CRM'), Crm::ERROR_IMOL_NOT_LOAD_CRM, __METHOD__)); } return $result; } }
| ver. 1.4 |
Github
|
.
| PHP 7.4.8 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка