Joywork/ajax/updateTabObjects.php

81 lines
4.0 KiB
PHP
Raw Normal View History

2026-05-22 20:21:54 +02:00
<?php
require_once($_SERVER['DOCUMENT_ROOT']."/config.php");
$result = array('activeObj'=>0, 'archiveObj'=>0);
$db_sphinx = new MysqlPdo(hstsph2, null, null, null, true, '9306');
$depClass = new Department();
$searchUserId = $_SESSION['id'];
$adminDep = false;
if ($_SESSION['agency'] || $_SESSION['manager'] || $_SESSION['users_admin']) {
$agentIds = [];
if ($_SESSION['users_admin']) {
$user = new User;
$user->checkPermissions();
$searchUserId = $user->agencyId;
$agentIds[] = $user->agencyId;
}
$dep_user = $depClass->getDepartment((int)$_SESSION['id']);
if($dep_user['role'] == 'manager_office'){
$searchUserId = $dep_user['admin'];
$adminDep = true;
} else if($dep_user['role'] == 'manager_office_menager') {
$searchUserId = $user->id_manager;
$adminDep = true;
}
$agentIds[] = $searchUserId;
$agentsOfAgency = User::getAllAgents($searchUserId);
foreach ($agentsOfAgency as $agent) {
if (!in_array($agent['id'], $agentIds)) {
$agentIds[] = $agent['id'];
}
}
if ($_SESSION['agency'] || $_SESSION['users_admin'] || $adminDep) {
$agentsOfManager = User::getAllManagers($searchUserId);
foreach ($agentsOfManager as $agent) {
if (!in_array($agent['id'], $agentIds)) {
$agentIds[] = $agent['id'];
}
if((int)$agent['role_id'] > 0 && (int)$agent['department_id'] > 0){
$role_user = $depClass->getRole((int)$agent['role_id']);
if($role_user['role'] == 'admin_department'){
$menagerDep = User::getDepManagers($role_user['department_id']);
foreach($menagerDep as $md){
if(!in_array($md['id'], $agentIds)){
$agentIds[] = $md['id'];
$thisAgents = User::getAgentsOfAgency($md['id'], true);
foreach($thisAgents as $da){
if (!in_array($da['id'], $agentIds)) {
$agentIds[] = $da['id'];
}
}
}
}
}
}
}
}
} else {
$agentIds = isset($user_view) ? [$user_view->id] : [$searchUserId];
$agentIds = array_merge($agentIds, $agentIds);
}
$sql = "SELECT id FROM objects WHERE del=0 and archive <> 1 and id_add_user IN (" . implode(',', $agentIds) . ") LIMIT 1000000 OPTION max_matches=1000000";
$rez = $db_sphinx->query($sql, true);
$kol_my_obj_not_archive = $db_sphinx->num_rows($rez);
$result['activeObj']= (int)$kol_my_obj_not_archive;
$sql = "SELECT id FROM objects WHERE del=0 and archive = 1 and id_add_user IN (" . implode(',', $agentIds) . ") LIMIT 1000000 OPTION max_matches=1000000";
$rez = $db_sphinx->query($sql);
$kol_my_obj_archive = $db_sphinx->num_rows($rez);
$result['archiveObj'] = (int)$kol_my_obj_archive;
echo json_encode($result);