114 lines
3.7 KiB
PHP
114 lines
3.7 KiB
PHP
<?php
|
|
|
|
require_once($_SERVER['DOCUMENT_ROOT'] . "/config.php");
|
|
|
|
$agency_id = isset($_SESSION['user']['agency_id']) ? $_SESSION['user']['agency_id'] : (isset($_COOKIE['agency_id']) ? $_COOKIE['agency_id'] : null);
|
|
|
|
$object_id = (int) $_POST['object_id'];
|
|
|
|
$all_agents = getAllAgents($agency_id);
|
|
|
|
$sql_object = "SELECT o.id, o.adres, o.cadastral_number, o.cadastral_number_land, o.id_add_user, oai.flat_number
|
|
FROM objects o
|
|
LEFT JOIN objects_additional_information oai ON o.id = oai.object_id
|
|
WHERE o.id = $object_id";
|
|
|
|
$result = mysql_query($sql_object);
|
|
$obj_data = mysql_fetch_assoc($result);
|
|
|
|
// Определяем кадастровый номер для проверки
|
|
if (!empty($obj_data['cadastral_number'])) {
|
|
$cadastral_number_to_check = $obj_data['cadastral_number'];
|
|
$cad_column = 'cadastral_number';
|
|
} elseif (!empty($obj_data['cadastral_number_land']) && empty($obj_data['cadastral_number'])) {
|
|
$cadastral_number_to_check = $obj_data['cadastral_number_land'];
|
|
$cad_column = 'cadastral_number_land';
|
|
}
|
|
if ($cadastral_number_to_check) {
|
|
// Проверяем по кадастровому номеру
|
|
$cad_sql = "SELECT id FROM objects
|
|
WHERE $cad_column = '" . mysql_real_escape_string($cadastral_number_to_check) . "'
|
|
AND id != " . intval($obj_data['id']) . "
|
|
AND id_add_user IN (" . implode(",", $all_agents) . ")
|
|
AND use_in_advert = 1"; // Исключаем текущий ID сразу в SQL
|
|
$cad_res = mysql_query($cad_sql);
|
|
|
|
$object_ids = [];
|
|
while ($cad_obj = mysql_fetch_assoc($cad_res)) {
|
|
$object_ids[] = $cad_obj['id'];
|
|
}
|
|
|
|
if (!empty($object_ids)) {
|
|
echo json_encode(["object_in_ads" => true, "object_ids" => $object_ids]);
|
|
exit();
|
|
}
|
|
}
|
|
|
|
// Если нет кадастрового номера, идем по обычной логике
|
|
$sim_sql = "SELECT o.id, o.id_add_user
|
|
FROM objects o
|
|
LEFT JOIN objects_additional_information oai ON o.id = oai.object_id
|
|
WHERE o.id_add_user IN (" . implode(",", $all_agents) . ")";
|
|
|
|
$conditions = [];
|
|
|
|
if (!empty($obj_data['adres']) && !empty($obj_data['flat_number'])) {
|
|
$conditions[] = "(o.adres = '" . mysql_real_escape_string($obj_data['adres']) . "'
|
|
AND oai.flat_number = '" . mysql_real_escape_string($obj_data['flat_number']) . "')";
|
|
}
|
|
|
|
if (empty($conditions)) {
|
|
echo json_encode(["object_in_ads" => false]);
|
|
exit();
|
|
} else {
|
|
$sim_sql .= " AND (" . implode(" OR ", $conditions) . ")";
|
|
}
|
|
|
|
$sim_res = mysql_query($sim_sql);
|
|
|
|
$matching_objects = [];
|
|
while ($row = mysql_fetch_assoc($sim_res)) {
|
|
$matching_objects[$row['id']] = $row['id_add_user'];
|
|
}
|
|
|
|
$filtered_objects = [];
|
|
foreach ($matching_objects as $id => $id_add_user) {
|
|
if (in_array($id_add_user, $all_agents)) {
|
|
$filtered_objects[] = $id;
|
|
}
|
|
}
|
|
|
|
function getAllAgents($agency_id)
|
|
{
|
|
$agents = [$agency_id];
|
|
$queue = [$agency_id];
|
|
|
|
while (!empty($queue)) {
|
|
$current_id = array_shift($queue);
|
|
$sql = "SELECT id FROM users WHERE id_manager = $current_id";
|
|
$result = mysql_query($sql);
|
|
|
|
while ($row = mysql_fetch_assoc($result)) {
|
|
$agents[] = $row['id'];
|
|
$queue[] = $row['id'];
|
|
}
|
|
}
|
|
|
|
return $agents;
|
|
}
|
|
|
|
$object_in_ads = false;
|
|
$objects_in_ads = [];
|
|
$this_object_id = intval($obj_data['id']);
|
|
foreach ($filtered_objects as $obj_id) {
|
|
$sql_ad = "SELECT COUNT(*) as count FROM objects WHERE id = $obj_id AND use_in_advert = 1";
|
|
$ad_res = mysql_query($sql_ad);
|
|
$ad_row = mysql_fetch_assoc($ad_res);
|
|
if ($ad_row['count'] > 0 && $obj_id !== $this_object_id) {
|
|
$objects_in_ads[] = $obj_id;
|
|
$object_in_ads = true;
|
|
}
|
|
}
|
|
|
|
echo json_encode(["object_in_ads" => $object_in_ads, "object_ids" => $objects_in_ads]);
|