get($currentUserId); $get = clearInputData($_GET); $post = clearInputData($_POST); $gmtmsk = get_time_zone_user(); $time_zone = ''; if($gmtmsk >= 0){ $time_zone = '+'.$gmtmsk.' hour'; } else { $time_zone = '-'.$gmtmsk.' hour'; } if (!isset($user_view->agencyId)) { $user_view->agencyId = $currentUserId; $user_view->agencyName = $user_view->agency_name; } $user = $user_view; $usersArr = array(); $s_1 = ''; if ($post['filter_employee']) { $empWho = array(); $empArr = json_decode(html_entity_decode($post['filter_employee']), ENT_QUOTES); foreach($empArr as $empId) { if (strpos($empId, "all_") !== false) { $agencyId = str_replace('all_', '', $empId); $sql_u = "SELECT id FROM `users` WHERE id = $agencyId OR id_manager = $agencyId OR id_manager IN (SELECT id FROM users WHERE id_manager = $agencyId)"; $q_u = mysql_query($sql_u); while($r_u = mysql_fetch_row($q_u)){ $empWho[] = $r_u[0]; } } else if(strpos($empId, "I_") !== false){ $empWho[] = str_replace('I_', '', $empId); } else { $empWho[] = $empId; } } if (!empty($empWho)) $s_1 .= " AND id_add_user IN (" . implode(", ", $empWho) . ")"; } $s_2 = ''; if (isset($post['filter_type'])) { $filter_type = json_decode(html_entity_decode($post['filter_type']), ENT_QUOTES); $ob_types = []; foreach($filter_type as $type) { if ($indx = array_search($type, $OBJECT_TYPES)) { $ob_types[] = $indx; } } if (!empty($ob_types)) $s_2 .= " AND type IN (" . implode(',', $ob_types) . ")"; } $param5 = (int) $_POST['param5']; $s_3 = ''; if ($param5 > 0) { $param5 += pow(2, 10); if ($param5 & (pow(2, 0))) { $s_3 .= ' add_to_avito_feed=1 OR '; } if ($param5 & (pow(2, 1))) { $s_3 .= ' add_to_cian_feed=1 OR '; } if ($param5 & (pow(2, 2))) { $s_3 .= ' add_to_domclick_feed=1 OR '; } if ($param5 & (pow(2, 3))) { $s_3 .= ' add_to_emls_feed=1 OR '; } if ($param5 & (pow(2, 4))) { $s_3 .= ' add_to_bn_feed=1 OR '; } } if ($s_3 !== '') { $s_3 = substr($s_3, 0, strlen($s_3) - 3); $s_3 = " AND ($s_3) "; } $param3 = (int) $_POST['param3']; $s_4 = ''; if ($param3 > 0) { $s_4 .= ' AND add_to_zipal=1 '; } $param4 = (int) $_POST['param4']; $s_5 = ''; if ($param4 > 0) { $s_5 .= ' AND add_to_yandex_feed=1 '; } $param7 = (int) $_POST['param7']; $s_7 = ''; if ($param7 > 0) { $arr_pac = array(); $sql_pac = "select object_id from advertising_package_object_publish where active = 1"; $q_pac = mysql_query($sql_pac); while($r_pac = mysql_fetch_row($q_pac)){ $arr_pac[] = $r_pac[0]; } if(!empty($arr_pac)){ $s_7 .= ' AND id in ('.implode(',',$arr_pac).') '; } else { $s_7 .= ' AND id in (0) '; } } if (((int) $_POST['param6']) && $s_3 === '' && $s_4 === '' && $s_5 === '') { $arr_pac = array(); $sql_pac = "select object_id from advertising_package_object_publish where active = 1"; $q_pac = mysql_query($sql_pac); while($r_pac = mysql_fetch_row($q_pac)){ $arr_pac[] = $r_pac[0]; } $s_3 = ' AND add_to_yandex_feed=0 AND add_to_zipal=0 AND add_to_avito_feed=0 AND add_to_cian_feed=0 AND add_to_domclick_feed=0 AND add_to_emls_feed=0 AND add_to_bn_feed=0 AND id not in ('.implode(',', $arr_pac).') '; } $param8 = (int) $_POST['param8']; $s_10 = ''; $param10 = (string)$_POST['param10']; if ($param10 == 'sale') { $s_10 .= ' AND operation_type = 1 '; $_SESSION['sale'] = 1; $_SESSION['rent'] = 0; } else if ($param10 == 'rent') { $s_10 .= ' AND operation_type = 0 '; $_SESSION['sale'] = 0; $_SESSION['rent'] = 1; } else { unset($_SESSION['sale']); unset($_SESSION['rent']); } $s_9 = ''; $isArchive = false; $param9 = (int) $_POST['param9']; if ($param9 == 1) { $isArchive = true; $s_9 .= ' archive = 1 AND use_in_advert = 1 '; } else { $s_9 .= ' archive = 0 AND use_in_advert = 1 '; } $usl = ""; if (trim($_POST['search']) !== '') { $search = trim($_POST['search']); if (preg_match('/^\d+$/', $search)) { $usl .= " AND id = " . $search; } else { $adres_mas = explode(" ", $search); $strSph = ''; for ($a = 0; $a < count($adres_mas); $a++) { if (strlen($strSph) > 1) { $strSph = $strSph . ' '; } if ($adres_mas[$a]) { $strSph = $strSph . '@adres ' . trim(str_replace("/","-",$adres_mas[$a])); } } $usl .= " AND MATCH ('$strSph')"; } } if ($_POST['filter_activities']) { $activitiesArr = json_decode(html_entity_decode($_POST['filter_activities']), ENT_QUOTES); $a_arr = array(); $sql_a = "SELECT object_id FROM objects_activities WHERE activity_id IN (" . implode(", ", $activitiesArr) . ")"; $q_a = mysql_query($sql_a); while($r_a = mysql_fetch_row($q_a)){ $a_arr[] = $r_a[0]; } if(!empty($a_arr)){ $usl .= " AND id IN (" . implode(", ", $a_arr) . ")"; } else { $usl .= " AND id IN (0)"; } } if ($_POST['price_from']) { $usl .= " AND price_for_order >= " . $_POST['price_from'] . " "; } if ($_POST['price_to']) { $usl .= " AND price_for_order <= " . $_POST['price_to'] . " "; } if (isset($_POST['komnat_from']) && $_POST['komnat_from']) { $usl .= " AND komnat >= " . $_POST['komnat_from']; } if (isset($_POST['komnat_to']) && $_POST['komnat_to']) { $usl .= " AND komnat <= " . $_POST['komnat_to']; } // Фильтр доп. полей (для модалки Найти объект при создании Спроса). // SQL-условия уже построены в /ajax/setReqObjectFieldsFilter.php и лежат в сессии. if (isset($_SESSION['filter_object_fields_req']['sql']) && is_array($_SESSION['filter_object_fields_req']['sql'])) { $obj_ids = []; foreach ($_SESSION['filter_object_fields_req']['sql'] as $sql_where) { $sql_dop = "SELECT `object_id` FROM `object_data` WHERE $sql_where"; $q_dop = mysql_query($sql_dop); $result_dop = []; if ($q_dop) { while ($r_dop = mysql_fetch_row($q_dop)) { $result_dop[] = $r_dop[0]; } } if (!empty($obj_ids)) { $obj_ids = array_intersect($obj_ids, $result_dop); } else { $obj_ids = $result_dop; } } $obj_ids = array_unique($obj_ids); if (count($obj_ids)) { $usl .= ' AND id IN (' . implode(',', $obj_ids) . ') '; } else { $usl .= ' AND id < 0 '; // нет совпадений с фильтром доп.полей } } $depClass = new Department(); /*$users_sp = []; $agentsOfAgency = User::getAllAgents($user_view->agencyId); foreach ($agentsOfAgency as $agent) { if (!in_array($agent['id'], $agentIds)) { $users_sp[] = $agent['id']; } } $sqlUsers = "SELECT id, role_id, department_id FROM `users` WHERE id = $user_view->agencyId OR id_manager = $user_view->agencyId OR id_manager IN ( SELECT id FROM users WHERE id_manager = $user_view->agencyId )"; $rezUsers = mysql_query($sqlUsers); $rowsUsers = mysql_num_rows($rezUsers); if ($rowsUsers > 0){ while($row = mysql_fetch_assoc($rezUsers)) { if(!in_array($row['id'], $users_sp)){ $users_sp[] = $row['id']; } if((int)$row['role_id'] > 0 && (int)$row['department_id'] > 0){ $role_user = $depClass->getRole((int)$row['role_id']); if($role_user['role'] == 'admin_department'){ $menagerDep = User::getDepManagers($role_user['department_id']); foreach($menagerDep as $md){ if(!in_array($md['id'], $users_sp)){ $users_sp[] = $md['id']; } $thisAgents = User::getAgentsOfAgency($md['id'], true); foreach($thisAgents as $da){ if (!in_array($da['id'], $users_sp)) { $users_sp[] = $da['id']; } } } } } } } if(empty($users_sp)) { $users_sp[] = $user_view->agencyId; }*/ $agency_id = $user_view->agencyId; $sql_users = "SELECT id FROM users WHERE id in (select id from users where id=$agency_id or id_manager=$agency_id or id_manager in (select id from users where id_manager=$agency_id or id_manager in (select id from users where id_manager=$agency_id)))"; $q_users = mysql_query($sql_users); $rows_user = mysql_num_rows($q_users); $users_sp = array(); while($r_user = mysql_fetch_assoc($q_users)){ $users_sp[] = (int)$r_user['id']; } $kol_on_page = 10; $sql_count = "SELECT count(*) FROM objects WHERE $s_9 $s_10 $s_1 $s_2 $s_3 $s_4 $s_5 $s_7 AND id_add_user in (" .implode(',', $users_sp).") $usl LIMIT 100000 OPTION max_matches=100000"; $rezVsego = $db_sphinx->query($sql_count, true); $ids = array(); $vsego = $db_sphinx->result($rezVsego,0); $sql_count_sale = "SELECT count(*) FROM objects WHERE $s_9 AND operation_type = 1 $s_1 $s_2 $s_3 $s_4 $s_5 $s_7 AND id_add_user in (" .implode(',', $users_sp).") $usl LIMIT 100000 OPTION max_matches=100000"; $vsego_sale = $db_sphinx->result($db_sphinx->query($sql_count_sale),0); $sql_count_rent = "SELECT count(*) FROM objects WHERE $s_9 AND operation_type = 0 $s_1 $s_2 $s_3 $s_4 $s_5 $s_7 AND id_add_user in (" .implode(',', $users_sp).") $usl LIMIT 100000 OPTION max_matches=100000"; $vsego_rent = $db_sphinx->result($db_sphinx->query($sql_count_rent),0); $all_pages = ceil($vsego / $kol_on_page); if (isset($post['page'])) { $page = $post['page']; } else { $page = 1; } $ot = ($page - 1) * $kol_on_page; //var_dump($vsego); if($vsego > 0) { $sqlIds = "SELECT id as obj_id, id_add_user FROM objects WHERE $s_9 $s_10 AND use_in_advert = 1 $s_1 $s_2 $s_3 $s_4 $s_5 $s_7 and id_add_user in (" .implode(',', $users_sp).") $usl ORDER BY date_add DESC LIMIT $ot, $kol_on_page"; if($_SESSION['id'] == 5238){ echo $sqlIds; } $rez = $db_sphinx->query($sqlIds, true); $ids = array(); $id_users_add = array(); $users_phone2 = array(); while ($obj = $db_sphinx->fetch_assoc($rez)) { $ids[] = $obj['obj_id']; $id_users_add[] = $obj['id_add_user']; } $sql_user_add = "SELECT id, phone2 FROM users WHERE id in (".implode(',', $id_users_add).")"; $q_user_add = mysql_query($sql_user_add); while($r_user_add = mysql_fetch_assoc($q_user_add)){ if(!empty($r_user_add['phone2'])){ $users_phone2[$r_user_add['id']] = $r_user_add['phone2']; } } } function num_of_pages__2($page, $all_pages) { if ($page == 1) { echo "
  • 1

  • "; } else { $prev = $page - 1; echo "
  • 1

  • "; } if ($all_pages > 8) { if ($page > 4) { $ot = $page - 3; echo "
  • ...

  • "; } else { $ot = 2; } if ($page < $all_pages - 4) { $do = $page + 3; } else { $do = $all_pages; } } else { $ot = 2; $do = $all_pages; } for ($i = $ot; $i < $do; $i++) { if ($i == $page) { $cl = "active"; } else { $cl = ""; } echo "
  • $i

  • "; } if ($all_pages > 8 and $page < $all_pages - 4) { echo "
  • ...

  • "; } if ($page == $all_pages) { echo "
  • $all_pages

  • "; } else { echo "
  • $all_pages

  • "; $nxt = $page + 1; } } if(count($ids) > 0) { $sql = "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, lu.name as land_usage_name FROM objects objects LEFT JOIN rayon rayon on objects.rayon = rayon.id LEFT JOIN land_usage_type lu on objects.land_usage_type_id = lu.id WHERE objects.id in (" . implode(", ", $ids) .") order by objects.date_add desc"; $rez = mysql_query($sql, $mdb); $arrActivities = []; $sql_adv = "SELECT * FROM `activities` WHERE `user_id` = '".$user->id."' OR `manager_id` = '".$user->id."'"; if ($user->id_manager) $sql_adv .= " OR `manager_id` = '".$user->id_manager."' OR `user_id` = '".$user->id_manager."'"; if ($user->agencyId) $sql_adv .= " OR `manager_id` = '".$user->agencyId."' OR `user_id` = '".$user->agencyId."'"; $sql_adv .= ' ORDER BY `name`'; $q_adv = mysql_query($sql_adv); $rows_adv = mysql_num_rows($q_adv); if ($rows_adv > 0) { while ($r_adv = mysql_fetch_assoc($q_adv)) { $arrActivities[$r_adv['id']] = $r_adv; } } if (mysql_num_rows($rez)) { echo '
    '; echo '
    '; echo '
    '; if ($_POST['view'] == 'table') { $cl = new Clients(); $usersId = $cl->getUsersFilter($usersArr, $_SESSION['id'], 1); $arrIdWhoWork = $arrIdAddUsers = $usersIdReal = array(); foreach ($usersId as $usrId) { $arrIdWhoWork[] = "who_work = $usrId"; $arrIdAddUsers[] = "id_add_user = $usrId"; } include($_SERVER['DOCUMENT_ROOT']."/templates/system__object_table_header.php"); } if (isset($_SESSION['notes_bd_usl'])) { $notes_bd_usl = $_SESSION['notes_bd_usl']; } else { $agencyId = User::getAgencyIdForUser($_SESSION['id']); $usersIds = User::getAllAgencyUsers($agencyId); $usersIds[] = $_SESSION['id']; $usersIds = array_unique($usersIds); $notes_bd_usl = "created_by IN (" . implode(",", $usersIds) . ")"; $_SESSION['notes_bd_usl'] = $notes_bd_usl; } $time = microtime(true) - $start; if($_SESSION['id'] == 5238){ echo $time." сек."; } $agency_id = $user->agencyId; //начитываем ошибки размещения объектов в рекламе /*$objAdsErrors = []; $sql_ads = "SELECT `object_id`, `service_id`, `errors` FROM `ads_stats` WHERE `agency_id` = '$agency_id' AND `object_id` IN (" . implode(", ", $ids) .") AND `errors` IS NOT NULL"; $rezAdsErrors = mysql_query($sql_ads); if (mysql_num_rows($rezAdsErrors) > 0) { while ($objAdsInfo = mysql_fetch_assoc($rezAdsErrors)) { $object_id = $objAdsInfo['object_id']; $service_id = $objAdsInfo['service_id']; $objAdsErrors[$object_id][$service_id] = json_decode($objAdsInfo['errors']); } }*/ //начитка тегов списком $rezActivityArray = []; $sqlAddInfo = "SELECT object_id, activity_id FROM objects_activities WHERE object_id in (" . implode(", ", $ids) .")"; $rezAddInfo = mysql_query($sqlAddInfo); if (mysql_num_rows($rezAddInfo) > 0) { while ($objActivity = mysql_fetch_assoc($rezAddInfo)) { if (!isset($rezActivityArray[$objActivity["object_id"]])) { $rezActivityArray[$objActivity["object_id"]] = []; } $rezActivityArray[$objActivity["object_id"]][] = $objActivity["activity_id"]; } } //начитка фото списком $rezPhotoArray = []; $sqlPhotoInfo = "SELECT oop.sort_order, oop.object_id, p.photo FROM objects_object_photo oop, object_photo p WHERE p.id = oop.object_photo_id AND oop.object_id in (" . implode(", ", $ids) .") ORDER BY oop.sort_order"; $rezPhotoInfo = mysql_query($sqlPhotoInfo); if (mysql_num_rows($rezPhotoInfo) > 0) { while ($objPhoto = mysql_fetch_assoc($rezPhotoInfo)) { if (!isset($rezPhotoArray[$objPhoto["object_id"]])) { $rezPhotoArray[$objPhoto["object_id"]] = []; } $rezPhotoArray[$objPhoto["object_id"]]['photo' . $objPhoto['sort_order']] = $objPhoto["photo"]; } } //начитываем данные воронки для объектов $objReqFunnelArray = []; $sqlReqFunnel = "SELECT id, funnel_id, stage, object_id FROM requisitions WHERE object_id in (" . implode(", ", $ids) .") AND type_id = 2 AND deleted = 0 AND cancel = 0"; $qReqFunnel = mysql_query($sqlReqFunnel); if(mysql_num_rows($qReqFunnel) > 0){ while ($objReqFunnel = mysql_fetch_assoc($qReqFunnel)) { $objReqFunnelArray[] = $objReqFunnel; } } //начитываем кол-во заявок для объектов /* $objRequisitionsArray = []; $sqlRequisitions = "SELECT count(id) as cnt, object_id FROM requisitions WHERE type_id = 4 AND cancel = 0 AND object_id in (" . implode(", ", $ids) .") GROUP BY object_id"; $qRequisitions = mysql_query($sqlRequisitions); if(mysql_num_rows($qRequisitions) > 0){ while ($objRequisitions = mysql_fetch_assoc($qRequisitions)) { $objRequisitionsArray[] = $objRequisitions; } }*/ /* $objPriceHistoryArray = []; $sqlPriceHistory="SELECT date_change_price, price, price_ku FROM objects_price_history WHERE object_id in (" . implode(", ", $ids) .")"; $rezPriceHistory=mysql_query($sqlPriceHistory); if(mysql_num_rows($rezPriceHistory)>0){ }*/ //начитываем клиентов списком $objClientsArray = []; $objClientsLike = []; $sql_cl_obj = "SELECT client_id FROM client_objects WHERE object_id in (".implode(',', $ids).")"; $q_cl_obj = mysql_query($sql_cl_obj); while($r_cl_obj = mysql_fetch_assoc($q_cl_obj)){ $objClientsLike[] = $r_cl_obj['client_id']; } $sqlClients = "SELECT `id`, `fio`, `email`, `phone`, `objects` FROM `clients` WHERE id in (" . implode(", ", $objClientsLike) . ")"; $qClient = mysql_query($sqlClients); if (mysql_num_rows($qClient) > 0) { while ($objCl = mysql_fetch_assoc($qClient)) { mask_client_contacts_inplace($objCl); $objClientsArray[] = $objCl; } } //начитываем координаты списком $objCoordinatesArray = []; $sqlCoordinates = "SELECT address, object_id, latitude, longitude FROM object_location WHERE object_id in (" . implode(", ", $ids) .")"; $rezCoordinatesAll = mysql_query($sqlCoordinates); if (mysql_num_rows($rezCoordinatesAll) > 0) { while ($objCoords = mysql_fetch_assoc($rezCoordinatesAll)) { $objCoordinatesArray[] = $objCoords; } } //начитываем цены $objPricesArray = []; $sqlPrices = "SELECT * FROM `object_prices` WHERE `object_id` in (" . implode(", ", $ids) .") AND `agency_id`='$agency_id'"; if ($queryPrices = mysql_query($sqlPrices)) { if (mysql_num_rows($queryPrices) > 0) { while ($objPrice = mysql_fetch_assoc($queryPrices)) { $objPricesArray[] = $objPrice; } } } $objectsFound = []; while ($obj = mysql_fetch_assoc($rez)) { if (isset($rezActivityArray[$obj["id"]])) { $obj['activities'] = $rezActivityArray[$obj["id"]]; } else { $obj['activities'] = null; } if ($objPricesArray) { foreach ($objPricesArray as $objPrice) { if ($objPrice["object_id"] == $obj["id"]) { if (!is_null($objPrice['prep_price'])) { $obj['prep_price'] = $objPrice['prep_price']; } if (!is_null($objPrice['start_price'])) { $obj['start_price'] = $objPrice['start_price']; } if (!is_null($objPrice['fact_price'])) { $obj['fact_price'] = $objPrice['fact_price']; } break; } } } $sqlAddInfo = "SELECT activity_id FROM objects_activities WHERE object_id=$obj[id]"; $rezAddInfo = mysql_query($sqlAddInfo); if (mysql_num_rows($rezAddInfo) > 0) { $obj['activities'] = array(); while($row = mysql_fetch_array($rezAddInfo)) { $obj['activities'][] = $row['activity_id']; } } else { $obj['activities'] = null; } if ($_POST['view'] == 'table') { if (!isset($clientObjIdsSql)) { $clientObjIdsSql = []; } $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)){ $clientObjIdsSql[] = $r_cl_obj['client_id']; }; $objectsFound[] = $obj; } else { if (isset($rezPhotoArray[$obj["id"]])) { foreach ($rezPhotoArray[$obj["id"]] as $key => $photo) { $obj[$key] = $photo; } } $use_advert_budget = ($_SESSION['use_advert_budget']); include($_SERVER['DOCUMENT_ROOT'] . "/templates/system_object_can.php"); } $time3 = microtime(true) - $start; if($_SESSION['id'] == 5238){ echo $time3." сек."; } } if (isset($objectsFound) && !empty($objectsFound) && isset($clientObjIdsSql) && !empty($clientObjIdsSql)) { $clientData = []; $clientCountData = []; $sql_clients = "SELECT `id`, `fio`, `email`, `phone`, `objects` FROM `clients` WHERE id in (".implode(',', $clientObjIdsSql).")"; $q_client = mysql_query($sql_clients); if (mysql_num_rows($q_client) > 0) { while ($client = mysql_fetch_array($q_client)) { $objIdsTmp = $client['objects']; $objIdsTmp = preg_replace("/[^,0-9]/", '', $objIdsTmp); if (!empty($objIdsTmp)) { $objIdsTmp = explode(',', $objIdsTmp); $clientItemBase = array( 'fio' => $client['fio'], 'phone' => $client['phone'], 'id' => $client['id'], ); mask_client_contacts_inplace($clientItemBase); foreach ($objIdsTmp as $objIdTmp) { if (!isset($clientData[$objIdTmp])) { $clientData[$objIdTmp] = []; } $clientData[$objIdTmp][] = $clientItemBase; } } } } if ($_COOKIE['debug_spd']) { echo ''; } foreach ($objectsFound as $obj) { include($_SERVER['DOCUMENT_ROOT'] . "/templates/system__object_table.php"); } } $time2 = microtime(true) - $start; if($_SESSION['id'] == 5238){ echo $time2." сек."; } if ($_POST['view'] == 'table') { include($_SERVER['DOCUMENT_ROOT']."/templates/system__object_table_find_footer.php"); } echo '
    '; echo '
    '; } } else { ?>

    Объектов не найдено