Joywork/ajax/modals/findObjectsWinContent.php
2026-05-22 21:21:54 +03:00

417 lines
21 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
$start = microtime(true);
require_once($_SERVER['DOCUMENT_ROOT'] . "/config.php");
?>
<script type="text/javascript" src="/js/popup.js"></script>
<script type="text/javascript">
setTimeout(function(){
var elem = document.createElement('script');
elem.type = 'text/javascript';
elem.src = 'https://api-maps.yandex.ru/2.1/?load=package.standard&apikey=692f0a05-cb88-4158-88b9-06bc0dc93004&lang=ru_RU';
document.getElementsByTagName('body')[0].appendChild(elem);
}, 1000);
</script>
<?php
$db_sphinx = new MysqlPdo(hstsph2, null, null, null, true, '9306');
$data = json_decode(file_get_contents("php://input"));
$agency_id = 0;
if(isset($data->agency_id)){
$agency_id = (int)$data->agency_id;
}
//var_dump($_POST);
/*if (!isset($_SESSION['adv_list_view']) && !isset($_SESSION['adv_table_view'])) {
$_SESSION['adv_list_view'] = 1;
}
$currentUserId = $_SESSION['id'];
$user_view = new User;
$user_view->get($currentUserId);
if (!isset($user_view->agencyId)) {
$user_view->agencyId = $currentUserId;
$user_view->agencyName = $user_view->fio;
}*/
/*$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'];
}
}
$time = microtime(true) - $start;
if($_SESSION['id'] == 12071){
echo $time." сек.";
}
$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);
$time = microtime(true) - $start;
if($_SESSION['id'] == 12071){
echo $time." сек.";
}
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;
}
if($_SESSION['id'] == 12071){
echo count($users_sp);
$users_sp = array_unique($users_sp);
echo count($users_sp);
}*/
/*if($_SESSION['id'] == 12071){
$time = microtime(true) - $start;
// echo $rows_user;
echo " 1 ".$time;
}*/
/*$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'];
}
/*if($_SESSION['id'] == 12071){
$time = microtime(true) - $start;
echo $sql_users;
echo " 2 " .$time;
echo " ".count($users_sp);
}*/
/*
//$sql = "SELECT count(id) FROM objects WHERE archive <> 1 and use_in_advert = 0 and id_add_user = $currentUserId";
$sql = "SELECT count(*) FROM objects WHERE archive <> 1 and use_in_advert = 1 and id_add_user in (" .implode(',', $users_sp).")";
$rez = $db_sphinx->query($sql);
$kol_my_obj_not_archive = $db_sphinx->result($rez,0);
//$sql = "SELECT count(id) FROM objects WHERE archive = 1 and use_in_advert = 0 and id_add_user = $currentUserId";
$sql = "SELECT count(*) FROM objects WHERE archive = 1 and use_in_advert = 1 and id_add_user in (" .implode(',', $users_sp).")";
$rez = $db_sphinx->query($sql);
$kol_my_obj_archive = $db_sphinx->result($rez,0);
$sql = "SELECT count(*) FROM objects WHERE operation_type = 1 and use_in_advert = 1 and id_add_user in (" .implode(',', $users_sp).")";
$rez = $db_sphinx->query($sql);
$kol_my_obj_sale = $db_sphinx->result($rez,0);
$sql = "SELECT count(*) FROM objects WHERE operation_type = 0 and use_in_advert = 1 and id_add_user in (" .implode(',', $users_sp).")";
$rez = $db_sphinx->query($sql);
$kol_my_obj_rent = $db_sphinx->result($rez,0);
*/
/*$time = microtime(true) - $start;
if($_SESSION['id'] == 5238){
echo $time." сек.";
}*/
?>
<!--<div class="f__modal" id="modalFindObj" style="display: none; padding-bottom: 0px;">-->
<span class="pseudo-link closer">×</span>
<style>
/* Скрываем элементы изменения воронки и смены этапа на карточках объектов
внутри модалки поиска при создании заявки: здесь пользователь только выбирает
объект, а не редактирует его этап. */
#modalFindObj [id^="object_req_stagebar"],
#modalFindObj .funnel-client-block { display: none !important; }
</style>
<h3>Объекты</h3>
<div class="crm new">
<div class="crm__filters">
<div class="crm__filters-inner">
<style>#__CLEAR_FILT:before {content:"\e646";}</style>
<div id="__COUNT_FILT_CONT" style="display:none;margin:10px 0 0 35px;">
<div style="display:inline-block;position:relative;min-width:65px;border:1px solid rgb(67,160,71);
color:rgb(67,160,71);cursor:pointer;padding:3px 28px 5px 15px;margin-right:10px;border-radius:3px;font-size:16px;font-weight:500;">
<span id="__COUNT_FILT">1 опция</span>
<i id="__CLEAR_FILT" style="font-size:13px;position:absolute;right:8px;top:8px;font-family: 'themify';speak:none;font-style:normal;
font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;"></i>
</div>
</div>
<div class="search-filter" style="margin-left: 79px;">
<input type="text" tabindex="1" value="<?= $search ?>" name="search" placeholder="ID или адрес объекта" class="search-filter__filter" id="search_filter_input_find_obj" autocomplete="off">
<div class="search-filter__icons">
<i class="ti-search2" title="Искать"></i>
</div>
</div>
<div class="search-filter jw__page__tabs" style="margin-left: 10px; border-bottom: none;">
<a href="/agency-objects.php" class="tab active-ag <?php if(!$_GET['archive']) echo 'selected'; ?>">
<span>В работе</span>
</div>
<div class="view-changer">
<div class="view-adv-find-list">
<a href="javascript:{}">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 512 512" xml:space="preserve"><g><g><path d="M0,74.672V224h512V74.672H0z M496,208H16V90.672h480V208z" fill="#757575"/></g></g><g><g><path d="M0,288v149.328h512V288H0z M496,421.328H16V304h480V421.328z" fill="#757575"/></g></g></svg>
<span>Список</span>
</a>
</div>
<div class="view-adv-find-table">
<a href="javascript:{}">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 512 512" xml:space="preserve"><g><g><path d="M0,74.672V224h512V74.672H0z M496,208H16V90.672h480V208z" fill="#757575"/></g></g><g><g><path d="M0,288v128h128V288H0z M112,400H16v-96h96V400z" fill="#757575"/></g></g><g><g><path d="M192,288v128h128V288H192z M304,400h-96v-96h96V400z" fill="#757575"/></g></g><g><g><path d="M384,288v128h128V288H384z M496,400h-96v-96h96V400z" fill="#757575"/></g></g></svg>
<span>Таблица</span>
</a>
</div>
</div>
</div>
<div class="crm__filter-popup" style="width: fit-content;">
<span class="pseudo-link closer"><i class="ti-close"></i></span>
<div class="filter-popup-items">
<div class="filter-popup__left">
<div class="filter-popup-type" data-id="sale">
<a href="javascript:{};">
<span>Продажа</span>
</a>
<i class="filter_counter" <?= (!$kol_my_obj_sale) ? 'style="display: none"' : ''; ?>><?php echo $kol_my_obj_sale;?></i>
</div>
<div class="filter-popup-type" data-id="rent">
<a href="javascript:{};">
<span>Аренда</span>
</a>
<i class="filter_counter" <?= (!$kol_my_obj_rent) ? 'style="display: none"' : ''; ?>><?php echo $kol_my_obj_rent;?></i>
</div>
</div>
<div class="filter-popup__right">
<div class="filter-popup-header-inputs">
<h3 style="display:inline-flex;">Параметры</h3>
<button class="top-line__button button-fl-right" id="requisitions-objects_filter_apply" type="button" style="margin-right: 50px;font-size: 14px;font-weight: normal;padding: 5px 13px;margin-top: -3px;">Применить</button>
</div>
<div class="filter-popup-input">
<div class="crm__filter-input">
<input type="number" id="requisitions-objects_filter_price_from" step="0.01" min="0" max="100" name="objects_filter_cena_ot" style="width: 179px; height: 18px; font-size: 18px; padding: 9px;" class="text medium-input no-mrg-left" placeholder="Цена от">
<input type="number" id="requisitions-objects_filter_price_to" step="0.01" min="0" max="100" name="objects_filter_cena_do" style="width: 179px; height: 18px; font-size: 18px; padding: 9px;" class="text medium-input no-mrg-left" placeholder="Цена до">
</div>
</div>
<div id="filter_emp_find_obj_input"></div>
<div class="filter-popup-input">
<div class="crm__filter-input">
<select id="filter-object-type-find-obj" multiple>
<?php foreach($OBJECT_TYPES as $key => $val) {
if ($key > 0) { ?>
<option data-op="<?= $key ?>" value="<?= $val ?>">
<?= $val ?>
</option>
<?php }
} ?>
</select>
</div>
</div>
<div class="filter-popup-input requisitions-filter-obj-komnat" style="display: none;">
<div class="crm__filter-input">
<input type="number" id="requisitions-objects_filter_komnat_from" step="1" min="0" max="100" name="objects_filter_komnat_from" style="width: 179px; height: 18px; font-size: 18px; padding: 9px;" class="text medium-input no-mrg-left" placeholder="Комнат от">
<input type="number" id="requisitions-objects_filter_komnat_to" step="1" min="0" max="100" name="objects_filter_komnat_to" style="width: 179px; height: 18px; font-size: 18px; padding: 9px;" class="text medium-input no-mrg-left" placeholder="Комнат до">
</div>
</div>
<?php
if($agency_id > 0){ ?>
<div class="filter-popup-input">
<div class="crm__filter-input">
<select id="filter-object-activities-find-obj" multiple="">
<?php
$sql_adv = "SELECT * FROM `activities` WHERE `user_id` = '".$agency_id."' OR `manager_id` = '".$agency_id."'";
$sql_adv .= " OR `manager_id` = '".$agency_id."' OR `user_id` = '".$agency_id."'";
$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)) { ?>
<option value="<?= $r_adv['id']; ?>">
<?= $r_adv['name']; ?>
</option>
<?php }
} ?>
</select>
</div>
</div>
<?php } ?>
<div style="display:flex;margin-bottom:10px;">
<div id="find_obj___b" class="___1" data-active="0">
<p>С отчетами</p>
</div>
<div id="find_obj___c" class="___1" data-active="0">
<p>Бесплатные</p>
</div>
<div id="find_obj___d" class="___1" data-active="0">
<p>Пакеты</p>
</div>
</div>
<div class="object-content__sub-actions actionAdv jw__object" style="box-shadow: none;margin-bottom: 10px;">
<table>
<tbody>
<tr>
<td style="padding-bottom: 10px;">
<div class="jw__action-button with-check" style="width: 112px; text-align: center;">
<div class="action-button actionJW actionAdvButton addToAvito">
<img class="bBnru" src="/images/avito.svg" data-id="1633381">
</div>
</div>
</td>
<td style="padding-bottom: 10px;">
<div class="jw__action-button with-check" style="width: 112px; text-align: center;">
<div class="action-button actionJW actionAdvButton addToCian">
<img class="bRealCian" src="/images/cian.png">
</div>
</div>
</td>
</tr>
<tr>
<td>
<div class="jw__action-button with-check" style="width: 112px; text-align: center;">
<div class="action-button actionJW actionAdvButton addToDomClick">
<img class="bBnru" style="top: 5px;" src="/images/domcl.jpg">
</div>
</div>
</td>
<td>
<div class="jw__action-button with-check" style="width: 112px; text-align: center;">
<div class="action-button actionJW actionAdvButton addToEMLS">
<img class="bCian" src="/images/emls.png">
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div id="find_obj___a" class="___1" data-active="0">
<p>Не рекламируется</p>
</div>
<?php
$agency_id_dop = User::getUserAgencyID($_SESSION['id']);
$sql_fields_dop = "SELECT count(*) as `count` FROM `object_fields`
WHERE `agency_id`='$agency_id_dop' AND `type` IN (1,2,3,4)
AND `is_active`=1 AND `is_filtrable`=1";
$row_fields_dop = mysql_fetch_assoc(mysql_query($sql_fields_dop));
if ((int)$row_fields_dop['count'] > 0) :
$req_filter_count = 0;
if (isset($_SESSION['filter_object_fields_req']) && is_array($_SESSION['filter_object_fields_req'])) {
$req_fields_arr = isset($_SESSION['filter_object_fields_req']['fields']) ? $_SESSION['filter_object_fields_req']['fields'] : array();
$req_filter_count = count(array_unique(array_map(function($k) { return preg_replace('/_(ot|do)$/', '', (string)$k); }, array_keys($req_fields_arr))));
}
?>
<div style="margin-top:10px;">
<div class="fr-btn steel" id="filter-object-fields-req"
data-active="<?= $req_filter_count > 0 ? '1' : '0' ?>"
style="float:left;">
<p>Дополнительные поля<span id="filter-object-fields-req-count"><?= $req_filter_count > 0 ? " ($req_filter_count)" : '' ?></span></p>
</div>
<a href="javascript:{};" id="filter-object-fields-req-reset" class="fl-right no-border"
style="<?= $req_filter_count > 0 ? 'display:inline-block;' : 'display:none;' ?>padding:6px 8px;margin-top:1px;margin-left:5px;">
<i class="ti-close"></i>
</a>
<div class="clear"></div>
</div>
<?php endif; ?>
<style>
#find_obj___b, #find_obj___c, #find_obj___d {
padding: 6px 18px;
margin-right: 10px;
}
.___1 {
padding: 6px 57px;
width: fit-content;
cursor: pointer;
background: -webkit-linear-gradient(top, #fff, #f5f5f5);
border: 1px solid #d0d0d0;
border-radius: 4px;
}
.___1[data-active="1"] {
background: #fff !important;
border-color: rgba(56, 142, 60, .6) !important;
}
.___1 p {
display: inline;
}
.find_obj___a1 {
cursor: pointer;
}
#modalFindObj .object-content__main-actions{
visibility: hidden;
}
</style>
</div>
</div>
</div>
</div>
</div>
<div id="objectsFind" class="jw__objects">
<div style="text-align:center; margin-top: 25px;">
<img src="../images/rocket-spinner.svg" width="96px">
</div>
</div>
<?php
$time2 = microtime(true) - $start;
if($_SESSION['id'] == 5238){
echo $time2." сек.";
}
?>
<div class="clear"></div>
<!--</div>-->