4135 and (now() <= DATE_ADD(date_tarif, INTERVAL (select t.period FROM tariffs t where t.id=id_tarif LIMIT 1) DAY)) AND ((agent = 1 and agency = 1) or
(id = 6917) or (id = 6876) or (id = 6916) or (id = 6793) or (id = 6935) or (id = 6531) or (id = 7225) or (id = 1543) or (id = 7949) or (id = 8128) or id = 8317 or id = 8481 or id = 8524 or id = 8499 or id = 8519 or id = 8669 or id = 8702 or id = 8681 or id = 8771 or id = 9142) and blocked = 0";
$rezAgency = mysql_query($sqlAgency, $mdb);
while ($agency = mysql_fetch_assoc($rezAgency)) {
$html = '';
$result = '' . "\r\n";
$result .= '' . "\r\n";
$result .= '' . date('c') . '' . "\r\n";
$f = @fopen($file, "r+");
if ($f !== false) {
ftruncate($f, 0);
fclose($f);
}
file_put_contents($file, $result, FILE_APPEND | LOCK_EX);
$sqlUsers = "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])";
$users_sp = [];
$rezUsers = mysql_query($sqlUsers);
$rowsUsers = mysql_num_rows($rezUsers);
if($rowsUsers > 0){
while($row = mysql_fetch_assoc($rezUsers)){
$users_sp[] = $row['id'];
}
}
if(empty($users_sp)) {
$users_sp[] = $agency['id'];
}
/*$sql = "SELECT * FROM objects, objects_delta WHERE archive = 0 and use_in_advert = 0 and add_to_yandex_feed = 1 and operation_type = 1 and
id_add_user in (".implode(',', $users_sp).") LIMIT 0,2000 OPTION max_matches=3000";*/
$sql = "SELECT objects.* FROM objects objects WHERE objects.archive <> 1 and add_to_yandex_feed > 0 and objects.operation_type = 1
and objects.id_add_user 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]))";
//$rez = $db->query($sql, true);
$rez = mysql_query($sql);
// счетчик - будем писать по 30 в файл
$i = 0;
//while ($object = $db->fetch_assoc($rez)) {
while ($object = mysql_fetch_assoc($rez)) {
$sqlPhotoInfo = "SELECT oop.sort_order, p.photo FROM objects_object_photo oop, object_photo p WHERE p.id = oop.object_photo_id AND oop.object_id = $object[id] ORDER BY oop.sort_order";
$rezPhotoInfo = mysql_query($sqlPhotoInfo);
if (mysql_num_rows($rezPhotoInfo) > 0) {
while ($photoInfo = mysql_fetch_assoc($rezPhotoInfo)) {
$object['photo' . $photoInfo['sort_order']] = $photoInfo['photo'];
}
}
$sqlAddInfo = "SELECT apartments, video_url, balcony, loggias, separate_wcs, combined_wcs, passenger_lifts, cargo_lifts FROM objects_additional_information WHERE object_id=$object[id]";
$rezAddInfo = mysql_query($sqlAddInfo);
if (mysql_num_rows($rezAddInfo) > 0) {
$objAddInfo = mysql_fetch_assoc($rezAddInfo);
//дополнительные поля
$object['apartments'] = $objAddInfo['apartments'];
$object['video_url'] = $objAddInfo['video_url'];
$object['balcony'] = $objAddInfo['balcony'];
$object['loggias'] = $objAddInfo['loggias'];
$object['separate_wcs'] = $objAddInfo['separate_wcs'];
$object['combined_wcs'] = $objAddInfo['combined_wcs'];
$object['passenger_lifts'] = $objAddInfo['passenger_lifts'];
$object['cargo_lifts'] = $objAddInfo['cargo_lifts'];
} else {
$object['apartments'] = 0;
$object['video_url'] = null;
$object['balcony'] = null;
$object['loggias'] = null;
$object['separate_wcs'] = null;
$object['combined_wcs'] = null;
$object['passenger_lifts'] = null;
$object['cargo_lifts'] = null;
}
$sqlNbInfo = "SELECT newbuilding_id, zipal_new_flat_type_id, nb_end_date FROM object_nb_info WHERE object_id=$object[id]";
$rezNbInfo = mysql_query($sqlNbInfo);
if (mysql_num_rows($rezNbInfo) > 0) {
$objNbInfo = mysql_fetch_assoc($rezNbInfo);
$object['newbuilding_id'] = $objNbInfo['newbuilding_id'];
$object['zipal_new_flat_type_id'] = $objNbInfo['zipal_new_flat_type_id'];
$object['nb_end_date'] = $objNbInfo['nb_end_date'];
}
//$sqlRayonInfo = "SELECT rayon, is_lo FROM rayon WHERE id=$object[rayon_id]";
$sqlRayonInfo = "SELECT rayon, is_lo FROM rayon WHERE id=$object[rayon]";
$rezRayonInfo = mysql_query($sqlRayonInfo);
if (mysql_num_rows($rezRayonInfo) > 0) {
$objRayonInfo = mysql_fetch_assoc($rezRayonInfo);
$object['rayon_name'] = $objRayonInfo['rayon'];
} else {
$object['rayon_name'] = null;
}
$sqlSaleInfo = "SELECT * FROM sale_objects WHERE object_id=$object[id]";
$rezSaleInfo = mysql_query($sqlSaleInfo);
if (mysql_num_rows($rezSaleInfo) > 0) {
$objSaleInfo = mysql_fetch_assoc($rezSaleInfo);
$object['house_type'] = $objSaleInfo['house_type'];
$object['house_material'] = $objSaleInfo['house_material'];
$object['deal_type'] = $objSaleInfo['deal_type'];
$object['build_year'] = $objSaleInfo['build_year'];
$sqlHmInfo = "SELECT name FROM house_material WHERE id=$object[house_material]";
$rezHmInfo = mysql_query($sqlHmInfo);
if (mysql_num_rows($rezHmInfo) > 0) {
$objHmInfo = mysql_fetch_assoc($rezHmInfo);
$object['house_material_name'] = $objHmInfo['name'];
} else {
$object['house_material_name'] = null;
}
$sqlHtInfo = "SELECT name FROM house_type WHERE id=$object[house_type]";
$rezHtInfo = mysql_query($sqlHtInfo);
if (mysql_num_rows($rezHtInfo) > 0) {
$objHtInfo = mysql_fetch_assoc($rezHtInfo);
$object['house_type_name'] = $objHtInfo['name'];
} else {
$object['house_type_name'] = null;
}
$sqlDtInfo = "SELECT name FROM deal_type WHERE id=$object[deal_type]";
$rezDtInfo = mysql_query($sqlDtInfo);
if (mysql_num_rows($rezDtInfo) > 0) {
$objDtInfo = mysql_fetch_assoc($rezDtInfo);
$object['deal_type_name'] = $objDtInfo['name'];
} else {
$object['deal_type_name'] = null;
}
} else {
$object['house_material'] = null;
$object['house_type'] = null;
$object['deal_type'] = null;
$object['build_year'] = null;
$object['deal_type_name'] = null;
$object['house_type_name'] = null;
$object['house_material_name'] = null;
}
/** GET PLAN */
$plan = '';
$sqlP = "SELECT * FROM objects_plan WHERE object_id = $object[id]";
$rez_plan = mysql_query($sqlP);
if(mysql_num_rows($rez_plan) > 0){
$obj_plan = mysql_fetch_assoc($rez_plan);
if($obj_plan['img_plan'] != ''){
if (stripos($obj_plan['img_plan'], "http://") === false && stripos($obj_plan['img_plan'], "https://") === false) {
$obj_plan['img_plan'] = "https://joywork.ru/photos/" . $obj_plan['img_plan'];
}
$plan = $obj_plan['img_plan'];
}
}
$operationType = 'аренда';
$mortgage = '';
$buildingType = '';
$builtYear = '';
$propertyType = 'жилая';
if ($object['operation_type'] == 1) {
$operationType = 'продажа';
$buildingType = $object['house_material_name'];
$builtYear = $object['build_year'];
$mortgage = (strpos($object['stoim_prim'], "ипотека") === false) ? 'нет' : 'да';
}
$typeCategory = '';
if ($object['type'] == 6 || $object['type'] == 4) {
$propertyType = '';
if ($object['type_category']) {
if ($object['type_category'] == 1) {
$typeCategory = 'office';
}
if ($object['type_category'] == 2) {
$typeCategory = 'warehouse';
}
if ($object['type_category'] == 3) {
$typeCategory = 'retail';
}
if ($object['type_category'] == 4) {
$typeCategory = 'manufacturing';
}
if ($object['type_category'] == 5) {
$typeCategory = 'free purpose';
}
} else {
$typeCategory = 'free purpose';
}
}
$common = array(
'type' => $operationType,
'cadastral-number' => $object['cadastral_number'],
'property-type' => $propertyType,
'category' => 'квартира',
'commercial-type' => $typeCategory,
'mortgage' => $mortgage,
'building-type' => $buildingType,
'built-year' => $builtYear,
'creation-date' => Yandex::getRealtyDate($object['date_really_add']),
'last-update-date' => Yandex::getRealtyDate($object['date_add'])
);
switch ($object['type']) {
case 1:
$common['category'] = 'квартира';
break;
case 2:
$common['category'] = 'комната';
break;
case 3:
$common['category'] = 'дом';
break;
case 4:
$common['category'] = 'коммерческая';
break;
case 5:
$common['category'] = 'часть дома';
break;
case 6:
$common['category'] = 'коммерческая';
break;
case 7:
$common['category'] = 'участок';
$common['property-type'] = '';
break;
}
$sql = "SELECT metro.metro FROM metro, sp_metro WHERE sp_metro.id_metro = metro.id AND sp_metro.id_obj = $object[id]";
$result = mysql_query($sql);
$m = mysql_fetch_row($result);
$mtr = $m[0];
//$address = $object['adres'];
$address = '';
if (!empty($location['street'])) {
$address = $location['street'];
if ($object['dom']) {
$address = $address . ", " . $object['dom'];
}
if ($object['korpus']) {
$address = $address . ", корпус " . $object['korpus'];
}
if ($object['litera']) {
$address = $address . ", литера" . $object['litera'];
}
}
if (isset($objRayonInfo) && $objRayonInfo['is_lo'] == 1) {
$location = array(
'country' => 'Россия',
'region' => 'Ленинградская область',
'sub-locality-name' => $object['rayon']
);
if (!empty($address))
$location['address'] = $address;
} else if($object['id_rf_region']){
$sql_rf = "SELECT `id`, `name` FROM `rf_regions` where id=$object[id_rf_region]";
$q_rf = mysql_query($sql_rf);
$r_rf = mysql_fetch_assoc($q_rf);
if ($object['id_rf_region'] == 1) {
$r_rf['name'] = 'Москва';
}
if (isset($location) && $location['address'] && strpos($location['address'], "Московская") !== false && strpos($location['address'], "ул Московская") === false) {
$r_rf['name'] = 'Московская область';
}
if ($object['id_rf_region'] == 2) {
$r_rf['name'] = 'Санкт-Петербург';
}
if (isset($location) && $location['address'] && strpos($location['address'], "Ленинградская") !== false) {
$r_rf['name'] = 'Ленинградская область';
}
$location = array(
'country' => 'Россия',
'region' => $r_rf['name'],
'district' => $object['rayon'],
);
if ($city)
$location['locality-name'] = $city;
if ($rayon)
$location['district'] = $rayon;
if (!empty($address))
$location['address'] = $address;
if (isset($object['flat_number']))
$location['apartment'] = $object['flat_number'];
/*if (strpos($address, $r_rf['name']) === false) {
$address = $r_rf['name'].", ". $address;
}*/
/*if ($object['id'] == '4631450') {
var_export($object);
die();
}*/
} else {
$location = array(
'country' => 'Россия',
'locality-name' => 'Санкт-Петербург',
'sub-locality-name' => $object['rayon']
);
if (!empty($address))
$location['address'] = $address;
}
$sql = "SELECT * FROM object_location WHERE object_id = $object[id]";
if ($result = mysql_query($sql)) {
$locationInfo = mysql_fetch_assoc($result);
if ($locationInfo['latitude'] && $locationInfo['longitude']) {
$location['latitude'] = $locationInfo['latitude'];
$location['longitude'] = $locationInfo['longitude'];
}
}
$metro = array();
if ($mtr) {
$metro = array(
'name' => $mtr,
'time-on-foot' => $object['peshkom'],
'time-on-transport' => $object['transport']
);
}
if ($object['operation_type'] == 0) {
$period = 'месяц';
if ($object['srok'] == 1) {
$period = 'день';
}
$price = array(
'value' => $object['stoim'],
'currency' => 'RUB',
'period' => $period
);
} else {
$price = array(
'value' => $object['stoim'],
'currency' => 'RUB'
);
}
$userOwner = new User;
$userOwner->get($object['id_add_user']);
$secondPhone = "";
if ($userOwner->user_logo) {
$sales = array(
'name' => htmlspecialchars_decode(trim($userOwner->last_name . ' ' . $userOwner->first_name . ' ' . $userOwner->middle_name)),
'category' => 'агентство',
'organization' => isset($userOwner->agencyName) ? $userOwner->agencyName : "",
'url' => isset($userOwner->site) ? $userOwner->site : "",
'email' => $userOwner->email,
'photo' => "https://" . $_SERVER['SERVER_NAME'] . "/photos/agency/" . $userOwner->user_logo
);
} else {
$sales = array(
'name' => htmlspecialchars_decode(trim($userOwner->last_name . ' ' . $userOwner->first_name . ' ' . $userOwner->middle_name)),
'category' => 'агентство',
'organization' => isset($userOwner->agencyName) ? $userOwner->agencyName : "",
'url' => isset($userOwner->site) ? $userOwner->site : "",
'email' => $userOwner->email
);
}
if (stripos($object['phone'], ",") === false) {
$sales['phone'] = $object['phone'];
} else {
$res = explode(",", $object['phone']);
$sales['phone'] = $res[0];
$secondPhone = $res[1];
}
$studio = 0;
if ($object['studio_flag'] == 1) {
$studio = 1;
}
$living = array(
'floor' => $object['etazh'],
'floors-total' => $object['etazh_iz'],
'rooms' => $object['komnat'],
'television' => $object['tv'],
'washing-machine' => $object['stirka'],
'refrigerator' => $object['holod'],
'room-furniture' => $object['mebel']
);
if ($studio == 1) {
$living = array(
'floor' => $object['etazh'],
'floors-total' => $object['etazh_iz'],
'studio' => 1,
'television' => $object['tv'],
'washing-machine' => $object['stirka'],
'refrigerator' => $object['holod'],
'room-furniture' => $object['mebel']
);
}
if ($object['type'] == 3) {
$living = array(
'floors-total' => $object['etazh_iz'],
'rooms' => $object['komnat'],
'television' => $object['tv'],
'washing-machine' => $object['stirka'],
'refrigerator' => $object['holod'],
'room-furniture' => $object['mebel']
);
}
$html .= '' . "\r\n";
$html .= Yandex::getXmlFields($common);
$html .= '' . "\r\n";
$html .= Yandex::getXmlFields($location);
if ($mtr) {
$html .= '' . "\r\n";
$html .= Yandex::getXmlFields($metro);
$html .= '' . "\r\n";
}
$html .= '' . "\r\n";
$html .= '' . "\r\n";
$html .= Yandex::getXmlFields($price);
$html .= '' . "\r\n";
if ($object['operation_type'] == 0) {
$html .= '' . "\r\n";
$html .= '1' . "\r\n";
$html .= ''.$object['commission'] .''. "\r\n";
$html .= '' . "\r\n";
}
if (!empty($object['video_url'])) {
$html .= "" . $object['video_url'] . "\r\n";
}
if($plan != '') {
$html .= ''.$plan.''. "\r\n";
}
for ($k = 1; $k <= 20; $k++) {
if ($object['photo' . $k]) {
$srcFile = $object['photo' . $k];
if (stripos($object['photo' . $k], "http://") === false && stripos($object['photo' . $k], "https://") === false) {
$srcFile = $ph_url = "https://" . $_SERVER['SERVER_NAME'] . "/photos/" . $object['photo' . $k];
}
if ($srcFile != null) {
$html .= '' . $srcFile . '' . "\r\n";
}
}
}
$html .= '' . "\r\n";
$html .= Yandex::getXmlFields($sales);
if ($secondPhone) {
$html .= '' . $secondPhone . '';
}
$html .= '' . "\r\n";
if (!empty($object['opis'])) {
$html .= '' . htmlspecialchars(br2nl($object['opis']), ENT_QUOTES) . '' . "\r\n";
}
if ($object['type'] == 1 || $object['type'] == 2) {
if ($object['balcony'] && $object['balcony'] > 0) {
if ($object['balcony'] == 1) {
$html .= 'балкон' . "\r\n";
}
if ($object['balcony'] > 1 && $object['balcony'] < 5) {
$html .= '' . $object['balcony'] . ' балкона' . "\r\n";
}
if ($object['balcony'] >= 5) {
$html .= '' . $object['balcony'] . ' балконов' . "\r\n";
}
} else {
if ($object['loggias'] && $object['loggias'] > 0) {
if ($object['loggias'] == 1) {
$html .= 'лоджия' . "\r\n";
}
if ($object['loggias'] > 1 && $object['loggias'] < 5) {
$html .= '' . $object['loggias'] . ' лоджии' . "\r\n";
}
if ($object['loggias'] >= 5) {
$html .= '' . $object['loggias'] . ' лоджий' . "\r\n";
}
}
}
if ($object['separate_wcs'] && $object['separate_wcs'] > 0) {
$html .= 'раздельный' . "\r\n";
} else {
if ($object['combined_wcs'] && $object['combined_wcs'] > 0) {
$html .= 'совмещенный' . "\r\n";
}
}
if (($object['passenger_lifts'] && $object['passenger_lifts'] > 0) || ($object['cargo_lifts'] && $object['cargo_lifts'] > 0)) {
$html .= 'true' . "\r\n";
}
$html .= "" . ($object['apartments'] && $object['apartments'] == 1 ? "true" : "false") . "\r\n";
if (isset($object['deal_type']) && ($object['deal_type'] == 5 || $object['deal_type'] == 6)) {
$html .= 'true' . "\r\n";
if ($object['newbuilding_id']) {
$sqlNb = "SELECT * FROM newbuildings WHERE id = $object[newbuilding_id]";
$rezNb = mysql_query($sqlNb);
$nb = mysql_fetch_assoc($rezNb);
if ($nb) {
$sqlObjName = "SELECT value FROM newbuilding_object WHERE id = $nb[newbuilding_object_id]";
$rezObjName = mysql_query($sqlObjName);
$objName = mysql_fetch_assoc($rezObjName);
$sqlHousingName = "SELECT value FROM newbuilding_housing WHERE id = $nb[newbuilding_housing_id]";
$rezHousingName = mysql_query($sqlHousingName);
$housingName = mysql_fetch_assoc($rezHousingName);
$html .= '' . $objName['value'] . '' . "\r\n";
$html .= '' . $nb['yandex_id'] . '' . "\r\n";
$html .= '' . $housingName['value'] . '' . "\r\n";
}
}
if ($object['zipal_new_flat_type_id']) {
$sqlNb = "SELECT * FROM zipal_new_flat_type WHERE id='" . $object['zipal_new_flat_type_id'] . "'";
$rezNb = mysql_query($sqlNb);
$nb = mysql_fetch_assoc($rezNb);
if ($nb) {
if ($nb['code'] == 'NOT_READY') {
$html .= 'unfinished' . "\r\n";
} else {
$html .= 'built' . "\r\n";
}
}
}
if ($object['nb_end_date'] && $object['nb_end_date'] != '0000-00-00') {
$curMonth = date("m", strtotime($object['nb_end_date']));
$curQuarter = ceil($curMonth / 3);
$html .= '' . date("Y", strtotime($object['nb_end_date'])) . '' . "\r\n";
$html .= '' . $curQuarter . '' . "\r\n";
}
}
}
if ($object['type'] != 7) {
if (!empty($object['ploshad']) && $object['ploshad'] > 0) {
$html .= '' . "\r\n";
$html .= '' . $object['ploshad'] . '' . "\r\n";
$html .= 'кв.м' . "\r\n";
$html .= '' . "\r\n";
}
if (!empty($object['ploshad_komn']) && $object['ploshad_komn'] > 0) {
$sq = $object['ploshad_komn'];
if (strpos($object['ploshad_komn'], "+")) {
$sqTemp = 0;
$res = explode("+", $object['ploshad_komn']);
foreach ($res as $str) {
$sqTemp = $sqTemp + intval(trim($str));
}
$sq = $sqTemp;
}
$html .= '' . "\r\n";
$html .= '' . $sq . '' . "\r\n";
$html .= 'кв.м' . "\r\n";
$html .= '' . "\r\n";
if ($object['type'] == 2) {
$html .= '' . "\r\n";
$html .= '' . $sq . '' . "\r\n";
$html .= 'кв.м' . "\r\n";
$html .= '' . "\r\n";
}
}
if (!empty($object['ploshad_k']) && $object['ploshad_k'] > 0) {
$html .= '' . "\r\n";
$html .= '' . $object['ploshad_k'] . '' . "\r\n";
$html .= 'кв.м' . "\r\n";
$html .= '' . "\r\n";
}
$html .= Yandex::getXmlFields($living);
} else {
$html .= '' . "\r\n";
$html .= '' . $object['land_area'] . '' . "\r\n";
$html .= 'сотка' . "\r\n";
$html .= '' . "\r\n";
}
if ($object['type'] == 2) {
$html .= '1' . "\r\n";
}
if ($object['operation_type'] == 1) {
if ($object['deal_type'] == 1) {
$html .= 'прямая продажа' . "\r\n";
}
if ($object['deal_type'] == 2) {
$html .= 'встречная продажа' . "\r\n";
}
if ($object['deal_type'] == 4) {
$html .= 'первичная продажа вторички' . "\r\n";
}
if ($object['deal_type'] == 5) {
$html .= 'переуступка' . "\r\n";
}
}
$html .= '' . "\r\n";
$i = $i + 1;
if ($i == 30) {
file_put_contents($file, $html, FILE_APPEND | LOCK_EX);
$html = '';
$i = 0;
}
}
if ($i > 0) {
file_put_contents($file, $html, FILE_APPEND | LOCK_EX);
}
file_put_contents($file, '', FILE_APPEND | LOCK_EX);
$feedName = $agency['id'];
if (!copy($file, $_SERVER['DOCUMENT_ROOT'] . '/bn_fbn_feeds/' . $feedName . '.xml')) {
// если не удалось скопировать файл - пробуем еще раз
sleep(10);
copy($file, $_SERVER['DOCUMENT_ROOT'] . '/bn_fbn_feeds/' . $feedName . '.xml');
}
}
}
static function create_common_feed($mdb){
$db = new MysqlPdo(hstsph, null, null, null, true, '9306');
if (!is_dir($_SERVER['DOCUMENT_ROOT'] . "/bn_fbn_feeds")) {
mkdir($_SERVER['DOCUMENT_ROOT'] . "/bn_fbn_feeds");
}
// временный файл - из него потом копируем в основной в конце
$file = $_SERVER['DOCUMENT_ROOT'] . '/bn_fbn_feeds/common_feed_temp.xml';
$sqlAgency = "SELECT * from users where (now() <= DATE_ADD(date_tarif, INTERVAL (select t.period FROM tariffs t where t.id=id_tarif LIMIT 1) DAY)) AND id != 4135 and ((agent = 1 and agency = 1) or
(id = 6917) or (id = 6876) or (id = 6916) or (id = 6793) or (id = 6935) or (id = 6531) or (id = 7225) or id = 8317 or id = 8222 or id = 8481 or id = 8524 or id = 8499 or id = 8519 or id = 8669 or id = 8702 or id = 8681 or id = 9142) and blocked = 0";
$rezAgency = mysql_query($sqlAgency, $mdb);
$html = '';
$result = '' . "\r\n";
$result .= '' . "\r\n";
$result .= '' . date('c') . '' . "\r\n";
if(file_exists($file)){
unlink($file);
}
file_put_contents($file, $result, FILE_APPEND | LOCK_EX);
$i = 0;
while($agency = mysql_fetch_assoc($rezAgency)) {
$sqlUsers = "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])";
$users_sp = [];
$rezUsers = mysql_query($sqlUsers);
$rowsUsers = mysql_num_rows($rezUsers);
if($rowsUsers > 0){
while($row = mysql_fetch_assoc($rezUsers)){
$users_sp[] = $row['id'];
}
}
if(empty($users_sp)) {
$users_sp[] = $agency['id'];
}
/*$sql = "SELECT * FROM objects, objects_delta WHERE archive = 0 and use_in_advert = 0 and add_to_yandex_feed = 1 and operation_type = 1 and
id_add_user in (".implode(',', $users_sp).") LIMIT 0,2000 OPTION max_matches=3000";*/
$sql = "SELECT objects.* FROM objects objects
RIGHT JOIN users ON users.id = objects.id_add_user
WHERE objects.archive <> 1 and add_to_yandex_feed > 0 and objects.operation_type = 1 and objects.id_add_user 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]))";
//$rez = $db->query($sql, true);
$rez = mysql_query($sql);
//while ($object = $db->fetch_assoc($rez)) {
while ($object = mysql_fetch_assoc($rez)) {
$sqlPhotoInfo = "SELECT oop.sort_order, p.photo FROM objects_object_photo oop, object_photo p WHERE p.id = oop.object_photo_id AND oop.object_id = $object[id] ORDER BY oop.sort_order";
$rezPhotoInfo = mysql_query($sqlPhotoInfo);
if (mysql_num_rows($rezPhotoInfo) > 0) {
while ($photoInfo = mysql_fetch_assoc($rezPhotoInfo)) {
$object['photo' . $photoInfo['sort_order']] = $photoInfo['photo'];
}
}
$sqlAddInfo = "SELECT apartments, video_url, balcony, loggias, separate_wcs, combined_wcs, passenger_lifts, cargo_lifts FROM objects_additional_information WHERE object_id=$object[id]";
$rezAddInfo = mysql_query($sqlAddInfo);
if (mysql_num_rows($rezAddInfo) > 0) {
$objAddInfo = mysql_fetch_assoc($rezAddInfo);
//дополнительные поля
$object['apartments'] = $objAddInfo['apartments'];
$object['video_url'] = $objAddInfo['video_url'];
$object['balcony'] = $objAddInfo['balcony'];
$object['loggias'] = $objAddInfo['loggias'];
$object['separate_wcs'] = $objAddInfo['separate_wcs'];
$object['combined_wcs'] = $objAddInfo['combined_wcs'];
$object['passenger_lifts'] = $objAddInfo['passenger_lifts'];
$object['cargo_lifts'] = $objAddInfo['cargo_lifts'];
} else {
$object['apartments'] = 0;
$object['video_url'] = null;
$object['balcony'] = null;
$object['loggias'] = null;
$object['separate_wcs'] = null;
$object['combined_wcs'] = null;
$object['passenger_lifts'] = null;
$object['cargo_lifts'] = null;
}
$sqlNbInfo = "SELECT newbuilding_id, zipal_new_flat_type_id, nb_end_date FROM object_nb_info WHERE object_id=$object[id]";
$rezNbInfo = mysql_query($sqlNbInfo);
if (mysql_num_rows($rezNbInfo) > 0) {
$objNbInfo = mysql_fetch_assoc($rezNbInfo);
$object['newbuilding_id'] = $objNbInfo['newbuilding_id'];
$object['zipal_new_flat_type_id'] = $objNbInfo['zipal_new_flat_type_id'];
$object['nb_end_date'] = $objNbInfo['nb_end_date'];
}
$sqlRayonInfo = "SELECT rayon, is_lo FROM rayon WHERE id=$object[rayon]";
//$sqlRayonInfo = "SELECT rayon, is_lo FROM rayon WHERE id=$object[rayon_id]";
$rezRayonInfo = mysql_query($sqlRayonInfo);
if (mysql_num_rows($rezRayonInfo) > 0) {
$objRayonInfo = mysql_fetch_assoc($rezRayonInfo);
$object['rayon'] = $objRayonInfo['rayon'];
} else {
$object['rayon'] = null;
}
$sqlSaleInfo = "SELECT * FROM sale_objects WHERE object_id=$object[id]";
$rezSaleInfo = mysql_query($sqlSaleInfo);
if (mysql_num_rows($rezSaleInfo) > 0) {
$objSaleInfo = mysql_fetch_assoc($rezSaleInfo);
$object['house_type'] = $objSaleInfo['house_type'];
$object['house_material'] = $objSaleInfo['house_material'];
$object['deal_type'] = $objSaleInfo['deal_type'];
$object['build_year'] = $objSaleInfo['build_year'];
$sqlHmInfo = "SELECT name FROM house_material WHERE id=$object[house_material]";
$rezHmInfo = mysql_query($sqlHmInfo);
if (mysql_num_rows($rezHmInfo) > 0) {
$objHmInfo = mysql_fetch_assoc($rezHmInfo);
$object['house_material_name'] = $objHmInfo['name'];
} else {
$object['house_material_name'] = null;
}
$sqlHtInfo = "SELECT name FROM house_type WHERE id=$object[house_type]";
$rezHtInfo = mysql_query($sqlHtInfo);
if (mysql_num_rows($rezHtInfo) > 0) {
$objHtInfo = mysql_fetch_assoc($rezHtInfo);
$object['house_type_name'] = $objHtInfo['name'];
} else {
$object['house_type_name'] = null;
}
$sqlDtInfo = "SELECT name FROM deal_type WHERE id=$object[deal_type]";
$rezDtInfo = mysql_query($sqlDtInfo);
if (mysql_num_rows($rezDtInfo) > 0) {
$objDtInfo = mysql_fetch_assoc($rezDtInfo);
$object['deal_type_name'] = $objDtInfo['name'];
} else {
$object['deal_type_name'] = null;
}
} else {
$object['house_material'] = null;
$object['house_type'] = null;
$object['deal_type'] = null;
$object['build_year'] = null;
$object['deal_type_name'] = null;
$object['house_type_name'] = null;
$object['house_material_name'] = null;
}
/** GET PLAN */
$plan = '';
$sqlP = "SELECT * FROM objects_plan WHERE object_id = $object[id]";
$rez_plan = mysql_query($sqlP);
if(mysql_num_rows($rez_plan) > 0){
$obj_plan = mysql_fetch_assoc($rez_plan);
if($obj_plan['img_plan'] != ''){
if (stripos($obj_plan['img_plan'], "http://") === false && stripos($obj_plan['img_plan'], "https://") === false) {
$obj_plan['img_plan'] = "https://joywork.ru/photos/" . $obj_plan['img_plan'];
}
$plan = $obj_plan['img_plan'];
}
}
$operationType = 'аренда';
$mortgage = '';
$buildingType = '';
$builtYear = '';
$propertyType = 'жилая';
if ($object['operation_type'] == 1) {
$operationType = 'продажа';
$buildingType = $object['house_material_name'];
$builtYear = $object['build_year'];
$mortgage = (strpos($object['stoim_prim'], "ипотека") === false) ? 'нет' : 'да';
}
$typeCategory = '';
if ($object['type'] == 6 || $object['type'] == 4) {
$propertyType = '';
if ($object['type_category']) {
if ($object['type_category'] == 1) {
$typeCategory = 'office';
}
if ($object['type_category'] == 2) {
$typeCategory = 'warehouse';
}
if ($object['type_category'] == 3) {
$typeCategory = 'retail';
}
if ($object['type_category'] == 4) {
$typeCategory = 'manufacturing';
}
if ($object['type_category'] == 5) {
$typeCategory = 'free purpose';
}
} else {
$typeCategory = 'free purpose';
}
}
$common = array(
'type' => $operationType,
'cadastral-number' => $object['cadastral_number'],
'property-type' => $propertyType,
'category' => 'квартира',
'commercial-type' => $typeCategory,
'mortgage' => $mortgage,
'building-type' => $buildingType,
'built-year' => $builtYear,
'creation-date' => Yandex::getRealtyDate($object['date_really_add']),
'last-update-date' => Yandex::getRealtyDate($object['date_add'])
);
switch ($object['type']) {
case 1:
$common['category'] = 'квартира';
break;
case 2:
$common['category'] = 'комната';
break;
case 3:
$common['category'] = 'дом';
break;
case 4:
$common['category'] = 'коммерческая';
break;
case 5:
$common['category'] = 'часть дома';
break;
case 6:
$common['category'] = 'коммерческая';
break;
case 7:
$common['category'] = 'участок';
$common['property-type'] = '';
break;
}
$sql = "SELECT metro.metro FROM metro, sp_metro WHERE sp_metro.id_metro = metro.id AND sp_metro.id_obj = $object[id]";
$result = mysql_query($sql);
$m = mysql_fetch_row($result);
$mtr = $m[0];
$location = [];
$sql = "SELECT * FROM object_location WHERE object_id = $object[id]";
$result = mysql_query($sql);
if ($result) {
$location = mysql_fetch_assoc($result);
}
$city = null;
if (!empty($location['city'])) {
$city = $location['city'];
}
$rayon = null;
if (!empty($location['rf_region_rayon'])) {
$rayon = $location['rf_region_rayon'];
}
$address = $object['adres'];
if (!empty($location['street'])) {
$address = $location['street'];
}
if ($object['dom']) {
$address = $address . ", " . $object['dom'];
}
if ($object['korpus']) {
$address = $address . ", корпус " . $object['korpus'];
}
if ($object['litera']) {
$address = $address . ", литера" . $object['litera'];
}
if ($object['id_rf_region']) {
$sql_rf = "SELECT `id`, `name` FROM `rf_regions` where id=$object[id_rf_region]";
$q_rf = mysql_query($sql_rf);
$r_rf = mysql_fetch_assoc($q_rf);
if ($object['id_rf_region'] == 1) {
$r_rf['name'] = 'Москва';
}
if (isset($address) && $address && strpos($address, "Московская") !== false && strpos($address, "ул Московская") === false) {
$r_rf['name'] = 'Московская область';
}
if ($object['id_rf_region'] == 2) {
$r_rf['name'] = 'Санкт-Петербург';
}
if (isset($address) && $address && strpos($address, "Ленинградская") !== false) {
$r_rf['name'] = 'Ленинградская область';
}
$location = array(
'country' => 'Россия',
'region' => $r_rf['name'],
'district' => $object['rayon'],
);
if ($city)
$location['locality-name'] = $city;
if ($rayon)
$location['sub-locality-name'] = $rayon;
if ($address)
$location['address'] = $address;
if (isset($object['flat_number']))
$location['apartment'] = $object['flat_number'];
/*if (strpos($address, $r_rf['name']) === false) {
$address = $r_rf['name'].", ". $address;
}*/
/*if ($object['id'] == '4631450') {
var_export($object);
die();
}*/
} else {
if (isset($objRayonInfo) && $objRayonInfo['is_lo'] == 1) {
$location = array(
'country' => 'Россия',
'region' => 'Ленинградская область',
'sub-locality-name' => $object['rayon'],
'address' => $address
);
} else {
$location = array(
'country' => 'Россия',
'locality-name' => 'Санкт-Петербург',
'sub-locality-name' => $object['rayon'],
'address' => $address
);
}
}
$metro = array();
if ($mtr) {
$metro = array(
'name' => $mtr,
'time-on-foot' => $object['peshkom'],
'time-on-transport' => $object['transport']
);
}
if ($object['operation_type'] == 0) {
$period = 'месяц';
if ($object['srok'] == 1) {
$period = 'день';
}
$price = array(
'value' => $object['stoim'],
'currency' => 'RUB',
'period' => $period
);
} else {
$price = array(
'value' => $object['stoim'],
'currency' => 'RUB'
);
}
$userOwner = new User;
$userOwner->get($object['id_add_user']);
$secondPhone = "";
if ($userOwner->user_logo) {
$sales = array(
'name' => htmlspecialchars_decode(trim($userOwner->last_name . ' ' . $userOwner->first_name . ' ' . $userOwner->middle_name)),
'category' => 'агентство',
'organization' => isset($userOwner->agencyName) ? $userOwner->agencyName : "",
'url' => isset($userOwner->site) ? $userOwner->site : "",
'email' => $userOwner->email,
'photo' => "https://" . $_SERVER['SERVER_NAME'] . "/photos/agency/" . $userOwner->user_logo
);
} else {
$sales = array(
'name' => htmlspecialchars_decode(trim($userOwner->last_name . ' ' . $userOwner->first_name . ' ' . $userOwner->middle_name)),
'category' => 'агентство',
'organization' => isset($userOwner->agencyName) ? $userOwner->agencyName : "",
'url' => isset($userOwner->site) ? $userOwner->site : "",
'email' => $userOwner->email
);
}
if (stripos($object['phone'], ",") === false) {
$sales['phone'] = $object['phone'];
} else {
$res = explode(",", $object['phone']);
$sales['phone'] = $res[0];
$secondPhone = $res[1];
}
$studio = 0;
if ($object['studio_flag'] == 1) {
$studio = 1;
}
$living = array(
'floor' => $object['etazh'],
'floors-total' => $object['etazh_iz'],
'rooms' => $object['komnat'],
'television' => $object['tv'],
'washing-machine' => $object['stirka'],
'refrigerator' => $object['holod'],
'room-furniture' => $object['mebel']
);
if ($studio == 1) {
$living = array(
'floor' => $object['etazh'],
'floors-total' => $object['etazh_iz'],
'studio' => 1,
'television' => $object['tv'],
'washing-machine' => $object['stirka'],
'refrigerator' => $object['holod'],
'room-furniture' => $object['mebel']
);
}
if ($object['type'] == 3) {
$living = array(
'floors-total' => $object['etazh_iz'],
'rooms' => $object['komnat'],
'television' => $object['tv'],
'washing-machine' => $object['stirka'],
'refrigerator' => $object['holod'],
'room-furniture' => $object['mebel']
);
}
$html .= '' . "\r\n";
$html .= Yandex::getXmlFields($common);
$html .= '' . "\r\n";
$html .= Yandex::getXmlFields($location);
if ($mtr) {
$html .= '' . "\r\n";
$html .= Yandex::getXmlFields($metro);
$html .= '' . "\r\n";
}
$html .= '' . "\r\n";
$html .= '' . "\r\n";
$html .= Yandex::getXmlFields($price);
$html .= '' . "\r\n";
$html .= '' . "\r\n";
$html .= '1' . "\r\n";
$html .= '' . $object['commission'] . '' . "\r\n";
$html .= '' . "\r\n";
if (!empty($object['video_url'])) {
$html .= "" . $object['video_url'] . "\r\n";
}
if($plan != '') {
$html .= ''.$plan.''. "\r\n";
}
for ($k = 1; $k <= 20; $k++) {
if (isset($object['photo' . $k]) && $object['photo' . $k]) {
$srcFile = $object['photo' . $k];
if (stripos($object['photo' . $k], "http://") === false && stripos($object['photo' . $k], "https://") === false) {
$srcFile = $ph_url = "https://" . $_SERVER['SERVER_NAME'] . "/photos/" . $object['photo' . $k];
}
if ($srcFile != null) {
$html .= '' . $srcFile . '' . "\r\n";
}
}
}
$html .= '' . "\r\n";
$html .= Yandex::getXmlFields($sales);
if ($secondPhone) {
$html .= '' . $secondPhone . '';
}
$html .= '' . "\r\n";
if (!empty($object['opis'])) {
$html .= '' . htmlspecialchars(br2nl($object['opis']), ENT_QUOTES) . '' . "\r\n";
}
if ($object['type'] == 1 || $object['type'] == 2) {
if ($object['balcony'] && $object['balcony'] > 0) {
if ($object['balcony'] == 1) {
$html .= 'балкон' . "\r\n";
}
if ($object['balcony'] > 1 && $object['balcony'] < 5) {
$html .= '' . $object['balcony'] . ' балкона' . "\r\n";
}
if ($object['balcony'] >= 5) {
$html .= '' . $object['balcony'] . ' балконов' . "\r\n";
}
} else {
if ($object['loggias'] && $object['loggias'] > 0) {
if ($object['loggias'] == 1) {
$html .= 'лоджия' . "\r\n";
}
if ($object['loggias'] > 1 && $object['loggias'] < 5) {
$html .= '' . $object['loggias'] . ' лоджии' . "\r\n";
}
if ($object['loggias'] >= 5) {
$html .= '' . $object['loggias'] . ' лоджий' . "\r\n";
}
}
}
if ($object['separate_wcs'] && $object['separate_wcs'] > 0) {
$html .= 'раздельный' . "\r\n";
} else {
if ($object['combined_wcs'] && $object['combined_wcs'] > 0) {
$html .= 'совмещенный' . "\r\n";
}
}
if (($object['passenger_lifts'] && $object['passenger_lifts'] > 0) || ($object['cargo_lifts'] && $object['cargo_lifts'] > 0)) {
$html .= 'true' . "\r\n";
}
$html .= "" . ($object['apartments'] && $object['apartments'] == 1 ? "true" : "false") . "\r\n";
if (isset($object['deal_type']) && ($object['deal_type'] == 5 || $object['deal_type'] == 6)) {
$html .= 'true' . "\r\n";
if (isset($object['newbuilding_id']) && $object['newbuilding_id']) {
$sqlNb = "SELECT * FROM newbuildings WHERE id = $object[newbuilding_id]";
$rezNb = mysql_query($sqlNb);
$nb = mysql_fetch_assoc($rezNb);
if ($nb) {
$sqlObjName = "SELECT value FROM newbuilding_object WHERE id = $nb[newbuilding_object_id]";
$rezObjName = mysql_query($sqlObjName);
$objName = mysql_fetch_assoc($rezObjName);
$html .= '' . $objName['value'] . '' . "\r\n";
$html .= '' . $nb['yandex_id'] . '' . "\r\n";
if ($nb['newbuilding_housing_id']) {
$sqlHousingName = "SELECT value FROM newbuilding_housing WHERE id = $nb[newbuilding_housing_id]";
$rezHousingName = mysql_query($sqlHousingName);
$housingName = mysql_fetch_assoc($rezHousingName);
$html .= '' . $housingName['value'] . '' . "\r\n";
}
}
}
if (isset($object['zipal_new_flat_type_id']) && $object['zipal_new_flat_type_id']) {
$sqlNb = "SELECT * FROM zipal_new_flat_type WHERE id='" . $object['zipal_new_flat_type_id'] . "'";
$rezNb = mysql_query($sqlNb);
$nb = mysql_fetch_assoc($rezNb);
if ($nb) {
if ($nb['code'] == 'NOT_READY') {
$html .= 'unfinished' . "\r\n";
} else {
$html .= 'built' . "\r\n";
}
}
}
if (isset($object['nb_end_date']) && $object['nb_end_date'] && $object['nb_end_date'] != '0000-00-00') {
$curMonth = date("m", strtotime($object['nb_end_date']));
$curQuarter = ceil($curMonth / 3);
$html .= '' . date("Y", strtotime($object['nb_end_date'])) . '' . "\r\n";
$html .= '' . $curQuarter . '' . "\r\n";
}
}
}
if ($object['type'] != 7) {
if (!empty($object['ploshad']) && $object['ploshad'] > 0) {
$html .= '' . "\r\n";
$html .= '' . $object['ploshad'] . '' . "\r\n";
$html .= 'кв.м' . "\r\n";
$html .= '' . "\r\n";
}
if (!empty($object['ploshad_komn']) && $object['ploshad_komn'] > 0) {
$sq = $object['ploshad_komn'];
if (strpos($object['ploshad_komn'], "+")) {
$sqTemp = 0;
$res = explode("+", $object['ploshad_komn']);
foreach ($res as $str) {
$sqTemp = $sqTemp + intval(trim($str));
}
$sq = $sqTemp;
}
$html .= '' . "\r\n";
$html .= '' . $sq . '' . "\r\n";
$html .= 'кв.м' . "\r\n";
$html .= '' . "\r\n";
if ($object['type'] == 2) {
$html .= '' . "\r\n";
$html .= '' . $sq . '' . "\r\n";
$html .= 'кв.м' . "\r\n";
$html .= '' . "\r\n";
}
}
if (!empty($object['ploshad_k']) && $object['ploshad_k'] > 0) {
$html .= '' . "\r\n";
$html .= '' . $object['ploshad_k'] . '' . "\r\n";
$html .= 'кв.м' . "\r\n";
$html .= '' . "\r\n";
}
$html .= Yandex::getXmlFields($living);
} else {
$html .= '' . "\r\n";
$html .= '' . $object['land_area'] . '' . "\r\n";
$html .= 'сотка' . "\r\n";
$html .= '' . "\r\n";
}
if ($object['type'] == 2) {
$html .= '1' . "\r\n";
}
if ($object['operation_type'] == 1) {
if ($object['deal_type'] == 1) {
$html .= 'прямая продажа' . "\r\n";
}
if ($object['deal_type'] == 2) {
$html .= 'встречная продажа' . "\r\n";
}
if ($object['deal_type'] == 4) {
$html .= 'первичная продажа вторички' . "\r\n";
}
if ($object['deal_type'] == 5) {
$html .= 'переуступка' . "\r\n";
}
}
$html .= '' . "\r\n";
$i = $i + 1;
if ($i == 30) {
file_put_contents($file, $html, FILE_APPEND | LOCK_EX);
$html = '';
$i = 0;
}
}
}
if ($i > 0) {
file_put_contents($file, $html, FILE_APPEND | LOCK_EX);
}
file_put_contents($file, '', FILE_APPEND | LOCK_EX);
$target_path = $_SERVER['DOCUMENT_ROOT'] . '/bn_fbn_feeds/' . 'common_feed' . '.xml';
if(file_exists($target_path)){
unlink($target_path);
}
if (!copy($file, $target_path)) {
// если не удалось скопировать файл - пробуем еще раз
sleep(10);
copy($file, $target_path);
}
}
static function parse_data($url,$mdb){
$reader = new FbnParser();
$reader->load($url,$mdb);
}
static function getRealtyDate($date, $cur_format='Y-m-d H:i:s') {
return ($date != '0000-00-00 00:00:00') ? Yandex::convertDate($date, $cur_format, 'c') : '';
}
static function convertDate($date, $cur_format, $new_format) {
$date = DateTime::createFromFormat($cur_format, $date);
$result = ($date instanceof DateTime) ? $date->format($new_format) : '';
return $result;
}
static function getXmlFields($data) {
if (empty($data)) return '';
$result = '';
foreach ($data as $key => $val) {
if (!empty($val)) $result .= "<$key>" . htmlspecialchars(strip_tags($val), ENT_QUOTES) . "$key>\r\n";
}
return $result;
}
}