$unreadTabEnabled = erLhcoreClassModelUserSetting::getSetting('enable_unread_list', 1);
$showAllPending = erLhcoreClassModelUserSetting::getSetting('show_all_pending', 1);
$showDepartmentsStats = $currentUser->hasAccessTo('lhuser', 'canseedepartmentstats');
if ($showDepartmentsStats == true) {
/**
* Departments stats
* */
$limitList = is_numeric($Params['user_parameters_unordered']['limitd']) ? (int) $Params['user_parameters_unordered']['limitd'] : 10;
$filter = array('ignore_fields' => erLhcoreClassChat::$chatListIgnoreField);
$filter['limit'] = $limitList;
if (is_array($Params['user_parameters_unordered']['departmentd']) && !empty($Params['user_parameters_unordered']['departmentd'])) {
erLhcoreClassChat::validateFilterIn($Params['user_parameters_unordered']['departmentd']);
$filter['filterin']['id'] = $Params['user_parameters_unordered']['departmentd'];
}
$filter['sort'] = 'pending_chats_counter DESC';
$departments = erLhcoreClassModelDepartament::getList($filter);
erLhcoreClassChat::prefillGetAttributes($departments, array('id', 'name', 'pending_chats_counter', 'active_chats_counter'), array(), array('remove_all' => true));
$ReturnMessages['departments_stats'] = array('list' => array_values($departments));
}
if ($activeTabEnabled == true) {
/**
* Active chats
* */
$limitList = is_numeric($Params['user_parameters_unordered']['limita']) ? (int) $Params['user_parameters_unordered']['limita'] : 10;
$filter = array('ignore_fields' => erLhcoreClassChat::$chatListIgnoreField);
if (is_array($Params['user_parameters_unordered']['actived']) && !empty($Params['user_parameters_unordered']['actived'])) {
erLhcoreClassChat::validateFilterIn($Params['user_parameters_unordered']['actived']);
$filter['filterin']['dep_id'] = $Params['user_parameters_unordered']['actived'];
}
$chats = erLhcoreClassChat::getActiveChats($limitList, 0, $filter);
erLhcoreClassChat::prefillGetAttributes($chats, array('time_created_front', 'department_name', 'plain_user_name'), array('department', 'time', 'status', 'user_id', 'user'));