getUsersFilter($usersArr, $post['user_id'], $post['users_admin']); $user_id = $post['user_id']; $usersIdReal = array(); //пользователь, по которому смотрим объекты $userId = $post['userId']; //тип для вывода списка объектов - обозначнеие столбца из таблицы $type = $post['type']; //echo $type; $tempUserId = $userId; if($userId == 'all'){ $tempUserId = $user_id; } $user = mysql_fetch_assoc(mysql_query("SELECT agency, manager, agency_name, last_name, first_name, middle_name, id_manager FROM users WHERE id=" . $tempUserId)); $arrIdAddUsers = $arrIdWhoWork = array(); //если смотрим статистику по агентству, то смотрим по всем, кто в списке if ($user['agency']) { foreach ($usersId as $usrId) { $arrIdWhoWork[] = "who_work = $usrId"; $arrIdAddUsers[] = $usrId; } // $usersIdReal = $usersId; } elseif ($user['manager']) { $arrIdWhoWork[] = "who_work = $userId"; $arrIdAddUsers[] = $userId; //$usersIdReal[] = $userId; $usersResult = mysql_query("SELECT id, manager FROM users WHERE id_manager=" . $userId); while ($usr = mysql_fetch_assoc($usersResult)) { if (in_array($usr['id'], $usersId)) { $arrIdWhoWork[] = "who_work = $usr[id]"; $arrIdAddUsers[] = $usr['id']; // $usersIdReal[] = $usr['id']; } if($usr['manager'] > 0){ $rez004 = mysql_query("SELECT id FROM users WHERE id_manager=$usr[id]"); while ($mm02 = mysql_fetch_assoc($rez004)) { if(!in_array((int)$mm02['id'], $arrIdAddUsers)){ $arrIdWhoWork[] = "who_work = $mm02[id]"; $arrIdAddUsers[] = $mm02['id']; // $usersIdReal[] = $mm02['id']; } } } } } else { $arrIdWhoWork[] = "who_work = $userId"; $arrIdAddUsers[] = $userId; //$usersIdReal[] = $userId; } /*$arrIdWhoWork[] = "who_work = $userId"; $arrIdAddUsers[] = $userId;*/ if($userId == 'all'){ $usersIdReal = $usersId; } else $usersIdReal[] = $userId; $bd_usl_addUsers = " id_add_user in (" . implode(",", $arrIdAddUsers) . ")"; $bd_usl_whoWork = " AND (" . implode(" OR ", $arrIdWhoWork) . ")"; $period = 'all'; if (isset($post['period'])) { $period = $post['period']; if ($period == 'dates') { /* $onDate = date('Y-m-d 00:00:00', strtotime($post['onDate'])); if (empty($onDate)) { $onDate = '1970-01-01 00:00:00'; } if (!empty($post['offDate'])) { $offDate = date('Y-m-d 23:59:59', strtotime($_POST['offDate'])); } else { $offDate = date('Y-m-d 23:59:59'); } $bd_piriod .= " AND `date_add` between '{$onDate}' AND '{$offDate}'"; $bd_piriod_objects .= " AND `date_really_add` between '{$onDate}' AND '{$offDate}'";*/ $_SESSION['on_date'] = $post['onDate']; $_SESSION['off_date'] = $post['offDate']; } else { unset($_SESSION['on_date']); unset($_SESSION['off_date']); /* $arrPeriod = ['today' => '-0 day', 'week' => '-6 day', 'month' => '-30 day', 'quarter' => '-120 day', 'year' => '-365']; $days = date('Y-m-d', strtotime($arrPeriod[$post['period']])); $bd_piriod .= " AND `date_add` > '{$days}'"; $bd_piriod_objects .= " AND `date_really_add` > '{$days}'";*/ } } $dates = getPeriod($period,$_POST['onDate'],$_POST['offDate']); /*$lastDay = ''; $startDate = '1970-01-01 00:00:00'; $endDate = '3000-12-31 23:59:59'; $whereTasks = " and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') between '1970-01-01 00:00:00' AND '3000-12-31 23:59:59'"; switch ($period) { case 'month': { $totalDays = cal_days_in_month(CAL_GREGORIAN, (int)date('m'), date('Y')); $lastDay = $totalDays; $startDate = date('Y') . "-" . date('m') . "-01 00:00:00"; $endDate = date('Y') . "-" . date('m') . "-" . $lastDay . " 23:59:59"; $whereTasks = " and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') between '".date('Y')."-".date('m')."-01 00:00:00' AND '".date('Y')."-".date('m')."-".$lastDay." 23:59:59'"; break; } case 'today':{ $startDate = date("Y-m-d 00:00:00"); $endDate = date("Y-m-d 23:59:59"); $whereTasks = " and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') between '".date("Y-m-d 00:00:00")."' AND '".date("Y-m-d 23:59:59")."'"; break; } case 'quarter' : { $nowMonth = (int)date('m'); if ($nowMonth < 4) { $startDate = date('Y') . "-01-01 00:00:00"; $endDate = date('Y') . "-03-31 23:59:59"; $whereTasks = " and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') between '".date('Y')."-01-01 00:00:00' AND '".date('Y')."-03-31 23:59:59'"; } else if ($nowMonth >= 4 && $nowMonth < 7) { $startDate = date('Y') . "-04-01 00:00:00"; $endDate = date('Y') . "-06-30 23:59:59"; $whereTasks = " and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') between '".date('Y')."-04-01 00:00:00' AND '".date('Y')."-06-30 23:59:59'"; } else if ($nowMonth >= 7 && $nowMonth < 10) { $startDate = date('Y') . "-07-01 00:00:00"; $endDate = date('Y') . "-09-30 23:59:59"; $whereTasks = " and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') between '".date('Y')."-07-01 00:00:00' AND '".date('Y')."-09-30 23:59:59'"; } else if ($nowMonth >= 10 && $nowMonth < 13) { $startDate = date('Y') . "-10-01 00:00:00"; $endDate = date('Y') . "-12-31 23:59:59"; $whereTasks = " and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') between '".date('Y')."-10-01 00:00:00' AND '".date('Y')."-12-31 23:59:59'"; } break; } case 'week': { $startDate = date("Y-m-d 00:00:00", strtotime("monday this week")); $endDate = date("Y-m-d 23:59:59", strtotime("sunday this week")); $whereTasks = " and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') between '".date("Y-m-d 00:00:00", strtotime("monday this week"))."' AND '".date("Y-m-d 23:59:59", strtotime("sunday this week"))."'"; break; } case 'dates' : { $onDate = $_POST['onDate']; //if(empty($onDate)) $onDate = '1970-01-01 00:00:00'; $offDate = $_POST['offDate']; if (empty($offDate)) { $offDate = date('Y-m-d 23:59:59'); } $startDate = date("Y-m-d 00:00:00", strtotime($onDate)); $endDate = date("Y-m-d 23:59:59", strtotime($offDate)); $whereTasks = " and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') between '".date("Y-m-d 00:00:00", strtotime($onDate))."' AND '".date("Y-m-d 23:59:59", strtotime($offDate))."'"; break; } case 'year' : { $startDate = date('Y') . "-01-01 00:00:00"; $endDate = date('Y') . "-12-31 23:59:59"; $whereTasks = " and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') between '".date('Y')."-01-01 00:00:00' AND '".date('Y')."-12-31 23:59:59'"; break; } }*/ //var_dump($dates); $startDate = $dates['dateStart']; $endDate = $dates['dateEnd']; $date_between = "between '" . $dates['dateStart'] . "' AND '" . $dates['dateEnd'] . "'"; $bd_piriod = " AND `date_add` between '{$dates['dateStart']}' AND '{$dates['dateEnd']}'"; $bd_piriod_objects = " AND `date_really_add` between '{$dates['dateStart']}' AND '{$dates['dateEnd']}'"; $date_between = $dates['between']; $whereTasks = $dates['whereTasks']; $all_pages = 0; $db = new MysqlPdo(hstsph, null, null, null, true, '9306'); // Определяем текущего пользователя $user = new User; $user->get($_SESSION['id']); $user->checkPermissions(); if ($post['type'] == 'added') { $objectIds = array(); $total = 0; $sqlS = "SELECT id FROM objects, objects_delta WHERE id_add_user in (" . implode(', ', $usersIdReal) . ") LIMIT 1000000 OPTION max_matches=1000000"; $rezS = $db->query($sqlS); while($rS = $db->fetch_assoc($rezS)) { $objectIds[] = $rS['id']; } $sqlAddedObjCount = "SELECT id FROM objects WHERE id in (".implode(',', $objectIds).") $bd_piriod_objects ORDER BY objects.id "; // echo $sqlAddedObjCount; // die(); $objectIds = array(); $rezAddedObjCount = mysql_query($sqlAddedObjCount); while($r_rezAddedObjCount = mysql_fetch_array($rezAddedObjCount)){ $objectIds[] = $r_rezAddedObjCount[0]; $total++; } $all_pages = ceil($total/$one_page_size); $sqlAddedObj = "SELECT objects.*, rayon.rayon, DATE_FORMAT(objects.date_add,'%d.%m.%Y %H:%i') as date_add, DATE_FORMAT(objects.date_really_add,'%d.%m.%Y %H:%i') as date_really_add FROM objects LEFT JOIN rayon on objects.rayon = rayon.id WHERE objects.id in (" .implode(',', $objectIds).") ORDER BY objects.id " . $limit; //echo $sqlAddedObj; $query = mysql_query($sqlAddedObj); } if ($post['type'] == 'advInPeriod') { $sqlAdvInPeriodObjCount = "SELECT * FROM objects WHERE id IN (SELECT DISTINCT object_id FROM object_publish_statistic WHERE on_moderation = 0 AND user_owner_id IN (" . implode(', ', $usersIdReal) . ") AND publish_start_date <= '$endDate' AND (publish_end_date >= '$startDate' OR publish_end_date IS NULL OR publish_end_date = '0000-00-00' )) ORDER BY objects.id "; $rezAdvInPeriodObjCount = mysql_query($sqlAdvInPeriodObjCount); $total = mysql_num_rows($rezAdvInPeriodObjCount); $all_pages = ceil($total/$one_page_size); $sqlAdvInPeriodObj = "SELECT objects.*, rayon.rayon, DATE_FORMAT(objects.date_add,'%d.%m.%Y %H:%i') AS date_add, DATE_FORMAT(objects.date_really_add,'%d.%m.%Y %H:%i') AS date_really_add FROM objects LEFT JOIN rayon ON objects.rayon = rayon.id WHERE objects.id IN (SELECT DISTINCT object_id FROM object_publish_statistic WHERE on_moderation = 0 AND user_owner_id IN (" . implode(', ', $usersIdReal) . ") AND publish_start_date <= '$endDate' AND (publish_end_date >= '$startDate' OR publish_end_date IS NULL OR publish_end_date = '0000-00-00' OR publish_end_date = '0000-00-00 00:00:00' ))"; $sqlAdvInPeriodObj .= " ORDER BY objects.id " . $limit; $query = mysql_query($sqlAdvInPeriodObj); } if ($post['type'] == 'advBeforePeriod') { $sqlAdvBeforePeriodObjCount = "SELECT objects.id FROM objects WHERE objects.id in (SELECT DISTINCT object_id FROM object_publish_statistic WHERE on_moderation = 0 AND user_owner_id in (" . implode(', ', $usersIdReal) . ") and publish_start_date <= '$startDate' AND (publish_end_date >= '$startDate' OR publish_end_date IS NULL OR publish_end_date = '0000-00-00' OR publish_end_date = '0000-00-00 00:00:00')) ORDER BY objects.id "; $rezAdvBeforePeriodObjCount = mysql_query($sqlAdvBeforePeriodObjCount); $total = mysql_num_rows($rezAdvBeforePeriodObjCount); $all_pages = ceil($total/$one_page_size); $sqlAdvBeforePeriodObj = "SELECT objects.*, rayon.rayon, DATE_FORMAT(objects.date_add,'%d.%m.%Y %H:%i') AS date_add, DATE_FORMAT(objects.date_really_add,'%d.%m.%Y %H:%i') AS date_really_add FROM objects LEFT JOIN rayon ON objects.rayon = rayon.id WHERE objects.id IN ( SELECT DISTINCT object_id FROM object_publish_statistic WHERE on_moderation = 0 AND user_owner_id IN (" . implode(', ', $usersIdReal) . ") AND publish_start_date <= '$startDate' AND (publish_end_date >= '$startDate' OR publish_end_date IS NULL OR publish_end_date = '0000-00-00' OR publish_end_date = '0000-00-00 00:00:00') )"; $sqlAdvBeforePeriodObj .= " ORDER BY objects.id " . $limit; $query = mysql_query($sqlAdvBeforePeriodObj); } if ($post['type'] == 'statsNotAdvInPeriod') { /* $sqlNotAdvInPeriodObjCount = "SELECT objects.id FROM objects WHERE $bd_usl_addUsers $bd_piriod_objects and objects.id not in (SELECT id FROM objects WHERE id in (SELECT object_id FROM object_publish_statistic WHERE on_moderation = 0 AND user_owner_id in (" . implode(', ', $usersIdReal) . ") and (`publish_start_date` $date_between OR '$startDate' between publish_start_date and publish_end_date)) and $bd_usl_addUsers $bd_piriod_objects) ORDER BY objects.id "; */ $sqlNotAdvInPeriodObjCount = "SELECT objects.id FROM objects WHERE objects.id not in (SELECT DISTINCT object_id FROM object_publish_statistic WHERE on_moderation = 0 AND user_owner_id in (" . implode(', ', $usersIdReal) . ") and publish_start_date <= '$endDate' AND (publish_end_date >= '$startDate' OR publish_end_date IS NULL OR publish_end_date = '0000-00-00' OR publish_end_date = '0000-00-00 00:00:00')) and objects.id_add_user in (" . implode(', ', $usersIdReal) . ")"; $rezNotAdvInPeriodObjCount = mysql_query($sqlNotAdvInPeriodObjCount); $total = mysql_num_rows($rezNotAdvInPeriodObjCount); $all_pages = ceil($total/$one_page_size); $sqlNotAdvInPeriodObj = "SELECT objects.*, rayon.rayon, DATE_FORMAT(objects.date_add,'%d.%m.%Y %H:%i') AS date_add, DATE_FORMAT(objects.date_really_add,'%d.%m.%Y %H:%i') AS date_really_add FROM objects LEFT JOIN rayon ON objects.rayon = rayon.id WHERE objects.id not in (SELECT DISTINCT object_id FROM object_publish_statistic WHERE on_moderation = 0 AND user_owner_id in (" . implode(', ', $usersIdReal) . ") and publish_start_date <= '$endDate' AND (publish_end_date >= '$startDate' OR publish_end_date IS NULL OR publish_end_date = '0000-00-00' OR publish_end_date = '0000-00-00 00:00:00')) and objects.id_add_user in (" . implode(', ', $usersIdReal) . ")"; $sqlNotAdvInPeriodObj .= " ORDER BY objects.id " . $limit; $query = mysql_query($sqlNotAdvInPeriodObj); } if ($post['type'] == 'statsAdvCost') { $sql = "SELECT DISTINCT objects.id FROM objects WHERE objects.id IN ( SELECT object_id FROM object_publish_statistic WHERE on_moderation = 0 AND user_owner_id = $userId AND `publish_start_date` $date_between AND price > 0 ) ORDER BY objects.id "; $rezAdvCostObjCount = mysql_query($sql); $total = mysql_num_rows($rezAdvCostObjCount); $all_pages = ceil($total/$one_page_size); $ids = []; while ($rez = mysql_fetch_assoc($rezAdvCostObjCount)) { $ids[] = $rez['id']; } // Основная статистика $sqlAdvCostObj = "SELECT DISTINCT objects.*, rayon.rayon, DATE_FORMAT(objects.date_add,'%d.%m.%Y %H:%i') AS date_add, DATE_FORMAT(objects.date_really_add,'%d.%m.%Y %H:%i') AS date_really_add FROM objects LEFT JOIN rayon ON objects.rayon = rayon.id WHERE objects.id IN (" . implode(', ', $ids) . ")"; // ( // SELECT object_id // FROM object_publish_statistic // WHERE on_moderation = 0 AND user_owner_id IN (" . implode(', ', $usersIdReal) . ") AND // created_at $date_between // )"; $sqlAdvCostObj .= " ORDER BY objects.id " . $limit; $query = mysql_query($sqlAdvCostObj); } if ($post['type'] == 'statsRequests') { $start_date = $dates['dateStart']; $end_date = $dates['dateEnd']; //$bd_piriod_req = str_replace('date_add', 'created_at', $bd_piriod); // $who_work_req = " AND ((user_id in (select id from users where id=$user_id or id_manager=$user_id or id_manager in // (select id from users where id_manager=$user_id) or id_manager in (select id from users where id_manager in (select id from users where id_manager=$user_id))) or who_work in (select id from users where id=$user_id or id_manager=$user_id or id_manager in // (select id from users where id_manager=$user_id) or id_manager in (select id from users where id_manager in (select id from users where id_manager=$user_id)))) or doers like '%"".$user_id."":1%')"; //$sqlRequestObjCount = "SELECT objects.id FROM objects WHERE $bd_usl_addUsers and objects.id in (SELECT object_id FROM requisitions WHERE 1 $who_work_req $bd_piriod_req and object_id > 0 and type_id=4) ORDER BY objects.id "; $type_id_condition = "(type_id = 4 OR type_id IN (SELECT id FROM requisitions_type WHERE heir = 4 AND agency_id = {$user->agencyId}))"; $sqlRequestObjCount = "SELECT DISTINCT o.id FROM objects o INNER JOIN requisitions r ON o.id = r.object_id WHERE o.id_add_user IN (" . implode(', ', $usersIdReal) . ") AND r.created_at BETWEEN '$start_date' AND '$end_date' AND r.object_id > 0 AND r.deleted = 0 AND $type_id_condition ORDER BY o.id"; //echo $sqlRequestObjCount; $rezRequestObjCount = mysql_query($sqlRequestObjCount); $total = mysql_num_rows($rezRequestObjCount); $all_pages = ceil($total/$one_page_size); $sqlRequestObj = "SELECT o.*, rayon.rayon, DATE_FORMAT(o.date_add,'%d.%m.%Y %H:%i') as date_add, DATE_FORMAT(o.date_really_add,'%d.%m.%Y %H:%i') as date_really_add FROM objects o LEFT JOIN rayon rayon ON o.rayon = rayon.id INNER JOIN requisitions r ON o.id = r.object_id WHERE o.id_add_user IN (" . implode(', ', $usersIdReal) . ") AND r.created_at BETWEEN '$start_date' AND '$end_date' AND r.object_id > 0 AND r.deleted = 0 AND $type_id_condition GROUP BY o.id ORDER BY o.id " . $limit; //echo $sqlRequestObj; $query = mysql_query($sqlRequestObj); } if ($post['type'] == 'statsPresentations') { $sqlPresentationsObjCount = "SELECT objects.id FROM objects WHERE objects.id in (SELECT id_object FROM sended_pdf WHERE id_object in (SELECT id FROM objects WHERE `date_add` <= '$endDate' AND id_add_user in (" . implode(', ', $usersId) . ")) and id_agent in (" . implode(', ', $usersIdReal) . ") and date_send $date_between) ORDER BY objects.id "; $rezPresentationsObjCount = mysql_query($sqlPresentationsObjCount); $total = mysql_num_rows($rezPresentationsObjCount); $all_pages = ceil($total/$one_page_size); $sqlPresentationsObj = "SELECT objects.*, rayon.rayon, DATE_FORMAT(objects.date_add,'%d.%m.%Y %H:%i') as date_add, DATE_FORMAT(objects.date_really_add,'%d.%m.%Y %H:%i') as date_really_add FROM objects LEFT JOIN rayon on objects.rayon = rayon.id WHERE objects.id in (SELECT id_object FROM sended_pdf WHERE id_object in (SELECT id FROM objects WHERE `date_add` <= '$endDate' and $bd_usl_addUsers) and id_agent in (" . implode(', ', $usersIdReal) . ") and date_send $date_between) ORDER BY objects.id " . $limit; $query = mysql_query($sqlPresentationsObj); } if ($post['type'] == 'statsMeets') { $sqlMeetsObjCount = "SELECT objects.id FROM objects WHERE objects.id in (SELECT object_id FROM user_object_events WHERE user_id in (". implode(', ', $usersIdReal).") and `type` = 'show' and calendar_view = 1 and schedule_date is not null $whereTasks and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') <= '".date("Y-m-d H:i:s")."')"; $rezMeetsObjCount = mysql_query($sqlMeetsObjCount); $total = mysql_num_rows($rezMeetsObjCount); $all_pages = ceil($total/$one_page_size); $sqlMeetsObj = "SELECT objects.*, rayon.rayon, DATE_FORMAT(objects.date_add,'%d.%m.%Y %H:%i') as date_add, DATE_FORMAT(objects.date_really_add,'%d.%m.%Y %H:%i') as date_really_add FROM objects LEFT JOIN rayon on objects.rayon = rayon.id WHERE objects.id in (SELECT object_id FROM user_object_events WHERE user_id in (" . implode(', ', $usersIdReal).") and `type` = 'show' and calendar_view = 1 and schedule_date is not null $whereTasks and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') <= '".date("Y-m-d H:i:s")."') ORDER BY objects.id " . $limit; $query = mysql_query($sqlMeetsObj); } if ($post['type'] == 'statsTaskNew') { $sqlTaskNewObjCount = "SELECT objects.id FROM objects WHERE objects.id in (SELECT object_id FROM user_object_events WHERE user_id in (". implode(', ', $usersIdReal).") and calendar_view = 0 and schedule_date is not null $whereTasks and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') > '".date("Y-m-d H:i:s")."')"; $rezTaskNewObjCount = mysql_query($sqlTaskNewObjCount); $total = mysql_num_rows($rezTaskNewObjCount); $all_pages = ceil($total/$one_page_size); $sqlTaskNewObj = "SELECT objects.*, rayon.rayon, DATE_FORMAT(objects.date_add,'%d.%m.%Y %H:%i') as date_add, DATE_FORMAT(objects.date_really_add,'%d.%m.%Y %H:%i') as date_really_add FROM objects LEFT JOIN rayon on objects.rayon = rayon.id WHERE objects.id in (SELECT object_id FROM user_object_events WHERE user_id in (" . implode(', ', $usersIdReal).") and calendar_view = 0 and schedule_date is not null $whereTasks and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') > '".date("Y-m-d H:i:s")."') ORDER BY objects.id " . $limit; $query = mysql_query($sqlTaskNewObj); } if ($post['type'] == 'statsTaskOld') { $sqlTaskOldObjCount = "SELECT objects.id FROM objects WHERE objects.id in (SELECT object_id FROM user_object_events WHERE user_id in (". implode(', ', $usersIdReal).") and calendar_view = 0 and schedule_date is not null $whereTasks and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') < '".date("Y-m-d H:i:s")."')"; $rezTaskOldObjCount = mysql_query($sqlTaskOldObjCount); $total = mysql_num_rows($rezTaskOldObjCount); $all_pages = ceil($total/$one_page_size); $sqlTaskOldObj = "SELECT objects.*, rayon.rayon, DATE_FORMAT(objects.date_add,'%d.%m.%Y %H:%i') as date_add, DATE_FORMAT(objects.date_really_add,'%d.%m.%Y %H:%i') as date_really_add FROM objects LEFT JOIN rayon on objects.rayon = rayon.id WHERE objects.id in (SELECT object_id FROM user_object_events WHERE user_id in (" . implode(', ', $usersIdReal).") and calendar_view = 0 and schedule_date is not null $whereTasks and DATE_FORMAT(schedule_date, '%Y-%m-%d %H:%i:%s') < '".date("Y-m-d H:i:s")."') ORDER BY objects.id " . $limit; $query = mysql_query($sqlTaskOldObj); } if ($post['type'] == 'statsTaskSlung') { $sqlTaskSlungObjCount = "SELECT objects.id FROM objects WHERE objects.id in (SELECT object_id FROM user_object_events WHERE user_id in (". implode(', ', $usersIdReal).") and calendar_view = 1 and schedule_date is not null $whereTasks)"; $rezTaskSlungObjCount = mysql_query($sqlTaskSlungObjCount); $total = mysql_num_rows($rezTaskSlungObjCount); $all_pages = ceil($total/$one_page_size); $sqlTaskSlungObj = "SELECT objects.*, rayon.rayon, DATE_FORMAT(objects.date_add,'%d.%m.%Y %H:%i') as date_add, DATE_FORMAT(objects.date_really_add,'%d.%m.%Y %H:%i') as date_really_add FROM objects LEFT JOIN rayon on objects.rayon = rayon.id WHERE objects.id in (SELECT object_id FROM user_object_events WHERE user_id in (" . implode(', ', $usersIdReal).") and calendar_view = 1 and schedule_date is not null $whereTasks) ORDER BY objects.id " . $limit; $query = mysql_query($sqlTaskSlungObj); } if(isset($query)) { ?>
0) { while ($photoInfo = mysql_fetch_assoc($rezPhotoInfo)) { $obj['photo' . $photoInfo['sort_order']] = $photoInfo['photo']; } } $type = 'Объект'; switch ($obj['type']) { case 1: if ($obj['komnat'] == 1 && $obj['studio_flag']) { $type = "Квартира-студия"; } else { $type = "$obj[komnat]-комнатная квартира"; } break; case 2: $type = "Комната в $obj[komnat]-комнатной квартире"; break; case 3: $type = "$obj[komnat]-комнатный дом"; break; case 4: if ($obj['komnat'] == 0) { $type = "Помещение"; } else { $type = "$obj[komnat]-комнатное помещение"; } break; case 5: $type = "Часть дома"; break; case 6: $type = "Комплекс"; break; case 7: $type = "Участок"; break; default: $type = "$obj[komnat]-комнатная квартира"; } $mtr = array(); $sql = "SELECT metro.metro FROM metro, sp_metro WHERE sp_metro.id_metro = metro.id AND sp_metro.id_obj = $obj[id]"; $result = mysql_query($sql); while ($m = mysql_fetch_row($result)) { $mtr[] = $m[0]; } $metroRayon = ''; if ($obj['rayon']) { $metroRayon .= $obj['rayon'] . ' район'; } if (count($mtr) > 0) { $metroRayon .= ' / ' . implode(", ", $mtr); } $address = $obj['adres']; if ($obj['dom']) { $address = $address . ", " . $obj['dom']; } if ($obj['korpus']) { $address = $address . ", корпус " . $obj['korpus']; } if ($obj['litera']) { $address = $address . ", литера " . $obj['litera']; } $etazh = ''; if ($obj['type'] == 3) { if ($obj['etazh_iz'] * 1 != 0) { $etazh = $obj['etazh_iz'] . " этажей"; } } $etaz_first_types = ["Тип первого этажа", "Подвал", "Цоколь", "Бельэтаж"]; if ($obj['etazh'] * 1 != 0) { $etazh = $obj['etazh'] . ' этаж'; if ((int)$obj['etazh'] == 1 && !empty($obj['etaz_first_type'])) { $etazh = $etaz_first_types[$obj['etaz_first_type']]; } if ($obj['etazh_iz'] * 1 != 0) { $etazh .= " из " . $obj['etazh_iz']; } } list($dateAdd, $timeAdd) = explode(" ", $obj['date_add']); list($d, $m, $y) = explode(".", $dateAdd); $date_add = $d . " " . getRusMonth($m) . " " . $y; $updateDate = $date_add . " " . $timeAdd; list($dateAdd, $timeAdd) = explode(" ", $obj['date_really_add']); list($d, $m, $y) = explode(".", $dateAdd); $date_add = $d . " " . getRusMonth($m) . " " . $y; $createDate = $date_add . " " . $timeAdd; $agentData = mysql_fetch_assoc(mysql_query("SELECT first_name, fio, last_name, middle_name, id_manager FROM users WHERE id=" . $userId)); $agentData['fio'] = trim($agentData['last_name'] . ' ' . $agentData['first_name'] . ' ' . $agentData['middle_name']); $managerData = []; if (isset($agentData['id_manager']) && $agentData['id_manager']) { $managerData = mysql_fetch_assoc(mysql_query("SELECT first_name, last_name, middle_name, id_manager FROM users WHERE id=" . $agentData['id_manager'])); $managerData['fio'] = trim($managerData['last_name'] . ' ' . $managerData['first_name'] . ' ' . $managerData['middle_name']); } else { $managerData['fio'] = $agentData['fio']; } $clients = '['; $clientObjIds = []; $sql_cl_obj = "SELECT client_id FROM client_objects WHERE object_id = {$obj['id']}"; $q_cl_obj = mysql_query($sql_cl_obj); while($r_cl_obj = mysql_fetch_assoc($q_cl_obj)){ $clientObjIds[] = $r_cl_obj['client_id']; } $sql_clients = "SELECT `id`, `fio`, `email` FROM `clients` WHERE id in (".implode(',', $clientObjIds).")"; $q_client = mysql_query($sql_clients); if (mysql_num_rows($q_client) > 0) { $clCount = 0; while ($client = mysql_fetch_assoc($q_client)) { mask_client_contacts_inplace($client); if ($clCount > 0) { $clients .= ','; } $clients = $clients . '{"fio": "' . htmlspecialchars($client['fio'], ENT_QUOTES, 'UTF-8') . '", "id" : "' . $client['id'] . '"}'; $clCount++; } } $clients .= ']'; // $who_work_req = " AND ((user_id in (select id from users where id=$user_id or id_manager=$user_id or id_manager in // (select id from users where id_manager=$user_id)) or who_work in (select id from users where id=$user_id or id_manager=$user_id or id_manager in // (select id from users where id_manager=$user_id))) or doers like '%"".$user_id."":1%')"; $bd_piriod_req = str_replace('date_add', 'created_at', $bd_piriod); $sqlRequest = "SELECT id FROM requisitions WHERE 1 $bd_piriod_req and object_id = $obj[id] AND deleted = 0 and (type_id = 4 or type_id in (SELECT id FROM requisitions_type WHERE heir = 4 AND agency_id = {$user->agencyId}))"; $qRequest = mysql_query($sqlRequest); // echo $sqlRequest; $requestsCount = mysql_num_rows($qRequest); $sqlPresentation = "SELECT id FROM sended_pdf WHERE id_object = $obj[id] and date_send $date_between"; $rezPresentation = mysql_query($sqlPresentation); $presentationsCount = mysql_num_rows($rezPresentation); $sqlMeet = "SELECT id FROM user_object_events WHERE object_id = $obj[id] and `type` = 'show' and calendar_view = 1 and schedule_date is not null "; $rezMeet = mysql_query($sqlMeet); $meetCount = mysql_num_rows($rezMeet); $packs = ''; $sqlAdvInPeriod = "SELECT id, name FROM `advertising_package` where id in (SELECT advertising_package_id from advertising_package_object_publish where id in (SELECT DISTINCT advertising_package_object_publish_id FROM object_publish_statistic WHERE on_moderation = 0 AND user_owner_id in (" . implode(', ', $usersIdReal) . ") and (`publish_start_date` $date_between OR '$startDate' between publish_start_date and publish_end_date) and object_id=$obj[id]))"; $rezAdvInPeriod = mysql_query($sqlAdvInPeriod); if (mysql_num_rows($rezAdvInPeriod) > 0) { while ($pack = mysql_fetch_assoc($rezAdvInPeriod)) { $packs = $packs . $pack['name'] . "; "; } } $minDate = ''; $maxDate = ''; $sumPrice = 0; $periods = []; $periodsCount = 0; $usersWhere = $userId == $_SESSION['id'] ? "`user_owner_id` IN (" . implode(', ', $usersId) . ")" : "user_owner_id = '$userId'"; // $usersWhere = "user_owner_id = '$userId'"; $sqlAdvCosts = "SELECT `object_publish_statistic`.id, `publish_start_date`, `publish_end_date`, `price`, `destination`, `created_at`, `days_count` FROM `object_publish_statistic` WHERE $usersWhere AND (`publish_start_date` $date_between) AND `on_moderation` = 0 AND `object_id` = '$obj[id]'"; $rezAdvCosts = mysql_query($sqlAdvCosts); while ($statRec = mysql_fetch_assoc($rezAdvCosts)) { if (!$minDate) { $minDate = $statRec['publish_start_date']; } else { if (strtotime($minDate) > strtotime($statRec['publish_start_date'])) { $minDate = $statRec['publish_start_date']; } } if ($statRec['days_count'] != 5000) { if (!$maxDate) { $maxDate = $statRec['publish_end_date']; } else { if (strtotime($maxDate) < strtotime($statRec['publish_end_date'])) { $maxDate = $statRec['publish_end_date']; } } } if ( (strtotime($statRec['publish_start_date']) >= strtotime($startDate) && strtotime($statRec['publish_start_date']) <= strtotime($endDate)) || (strtotime($statRec['publish_end_date']) >= strtotime($startDate) && strtotime($statRec['publish_end_date']) <= strtotime($endDate)) || (strtotime($startDate) >= strtotime($statRec['publish_start_date']) && strtotime($statRec['publish_end_date']) <= strtotime($statRec['publish_end_date'])) ) { $sumPrice += $statRec['price']; } if ($periodsCount == 0) { $p['publish_start_date'] = $statRec['publish_start_date']; $p['publish_end_date'] = $statRec['days_count'] != 5000 ? $statRec['publish_end_date'] : '-'; $periods[] = $p; $periodsCount++; } else { $found = false; foreach ($periods as $key => $period) { if ($period['publish_start_date'] === $statRec['publish_start_date'] && $period['publish_end_date'] === $statRec['publish_end_date'] ){ //тот же период, ничего не делаем $found = true; } } if (!$found) { $p['publish_start_date'] = $statRec['publish_start_date']; $p['publish_end_date'] = $statRec['days_count'] != 5000 ? $statRec['publish_end_date'] : '-'; $periods[] = $p; $periodsCount++; } } } $days = []; foreach ($periods as $key => $period) { if ($period['publish_end_date'] != '-') { $startStr = date("Y-m-d", strtotime($period['publish_start_date'])); $endStr = date("Y-m-d", strtotime($period['publish_end_date'])); $startAsDate = strtotime(date("Y-m-d", strtotime($period['publish_start_date']))); $endAsDate = strtotime(date("Y-m-d", strtotime($period['publish_end_date']))); $foundStart = false; $foundEnd = false; foreach ($days as $dayKey => $day) { if ($day === $startStr) { $foundStart = true; } if ($day === $endStr) { $foundEnd = true; } } if (!$foundStart) { $days[] = $startStr; } if (!$foundEnd) { $days[] = $endStr; } while (true) { if ($startStr === $endStr) { break; } if (strtotime($startStr) > strtotime($endStr)) { break; } $startStr = date('Y-m-d', strtotime($startStr . ' + 1 days')); $found = false; foreach ($days as $dayKey => $day) { if ($day === $startStr) { $found = true; } } if (!$found) { $days[] = $startStr; } } } } $photo = ""; for ($num = 1; $num <= 20; $num++) { if ($obj['photo' . $num]) { if(stripos($obj['photo'.$num],"http://") === false && stripos($obj['photo'.$num], "https://") === false) { $obj['photo'.$num] = "/photos/".$obj['photo'.$num]; } if($obj['photo'.$num]) { $photo = $obj['photo'.$num]; break; } } } $agency_id = $user->agencyId; $sql = "SELECT * FROM `object_prices` WHERE `object_id`='$obj[id]' AND `agency_id`='$agency_id' LIMIT 1"; if ($query_stat = mysql_query($sql)) { $row_stat = mysql_fetch_assoc($query_stat); if (!is_null($row_stat['prep_price'])) $obj['prep_price'] = $row_stat['prep_price']; else $obj['prep_price'] = '-'; if (!is_null($row_stat['start_price'])) $obj['start_price'] = $row_stat['start_price']; else $obj['start_price'] = '-'; if (!is_null($row_stat['fact_price'])) $obj['fact_price'] = $row_stat['fact_price']; else $obj['fact_price'] = '-'; } $countDays = count($days); if (!empty($minDate) && !empty($maxDate)) { $countDays = intval(round(abs(strtotime($minDate) - strtotime($maxDate)) / 86400)); } else if (!empty($minDate)) { if (date("d.m.Y", strtotime($minDate)) == date("d.m.Y")) $countDays = 1; else $countDays = intval(round(abs(strtotime($minDate) - strtotime(date("d.m.Y"))) / 86400)); } ?>
ID объекта Превью Тип рынка Тип квартиры/помещения Район/Метро Адрес Метраж общий Метраж жилой Метраж кухни Этаж/Этажность Цена Предварительная цена Начальная цена Фактическая цена Ответственный менеджер Ответственный агент Клиент - собственник Дата создания Дата последнего изменения Заявки по объекту Кол-во отправленных презентаций Встречи на объекте Реклама Дата начала рекламы Дата окончания рекламы Кол-во дней в рекламе Потрачено на рекламу
1) { echo "
    "; num_of_pages_for_ajax_with_class($page, $all_pages, "objects-table"); echo "
"; } ?>