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

432 lines
25 KiB
PHP
Raw 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
require_once($_SERVER['DOCUMENT_ROOT'] . "/config.php");
//ini_set('display_errors', 1);
//error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE);
if ($_SESSION['id'] && $_GET['object_id'] && is_numeric($_GET['object_id']) && $_GET['days_num'] && is_numeric($_GET['days_num'])) {
$get = clearInputData($_GET);
$sql3 = "SELECT objects.* FROM objects WHERE objects.id = $get[object_id]";
$rez_obj = mysql_query($sql3);
$obj = mysql_fetch_assoc($rez_obj);
if ($obj) {
$curUser = new User();
$curUser->get($_SESSION['id']);
$requestToSend = [];
$login = $curUser->zipal_login;
$password = $curUser->zipal_password;
if (empty($login) || empty($password)) {
$login = $curUser->agencyZipalLogin;
$password = $curUser->agencyZipalPassword;
}
$requestToSend['login'] = $login;
$requestToSend['password'] = $password;
$requestToSend['method'] = 'GetPrices';
$requestToSend['request'] = [];
$requestToSend['request']['requestType'] = 'GetPricesByParamsRequestType';
$requestToSend['request']['days'] = $get['days_num'];
$requestToSend['request']['hasPhotos'] = false;
$requestToSend['request']['room'] = false;
if($obj['id_rf_region']){
$sqlRegion = "SELECT code FROM rf_regions
WHERE rf_regions.id = ".$obj['id_rf_region'];
$rezRegion = mysql_query($sqlRegion);
$requestToSend['request']['region'] = mysql_fetch_assoc($rezRegion)['code'];
}else{
$requestToSend['request']['region'] = 78;
}
if ($obj['operation_type'] == 1) {
$requestToSend['request']['dealType'] = 'SELL';
} else {
$requestToSend['request']['dealType'] = 'RENT';
$requestToSend['request']['priceType'] = 'MONTH';
if ($obj['srok'] == 1) {
$requestToSend['request']['priceType'] = 'DAY';
}
}
$sqlPhotoInfo = "SELECT oop.sort_order FROM objects_object_photo oop WHERE oop.object_id = $obj[id]";
$rezPhotoInfo = mysql_query($sqlPhotoInfo);
if (mysql_num_rows($rezPhotoInfo) > 0) {
$requestToSend['request']['hasPhotos'] = true;
}
switch ($obj['type']) {
case 1:
$requestToSend['request']['objectType'] = 'FLAT';
break;
case 2:
$requestToSend['request']['objectType'] = 'FLAT';
$requestToSend['request']['room'] = true;
break;
case 3:
$requestToSend['request']['objectType'] = 'HOUSE';
break;
case 4:
case 6:
if ($obj['type_category']) {
if ($obj['type_category'] == 1) {
$requestToSend['request']['objectType'] = 'BUSINESS';
}
if ($obj['type_category'] == 2) {
$requestToSend['request']['objectType'] = 'WAREHOUSE';
}
if ($obj['type_category'] >= 3) {
$requestToSend['request']['objectType'] = 'BUSINESS';
}
} else {
$requestToSend['request']['objectType'] = 'BUSINESS';
}
break;
case 5:
$requestToSend['request']['objectType'] = 'HOUSE';
break;
break;
case 7:
$requestToSend['request']['objectType'] = 'LAND';
break;
}
$user_agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; HTC_Touch_Diamond2_T5353; Windows Phone 6.5)';
//делаем запрос к zipal
$result = curl_request_zipal_json("https://zipal.ru/ws/json", $_SESSION['id'], $user_agent, json_encode($requestToSend));
/*if ($_SESSION['id'] == 93) {
echo json_encode($requestToSend);
}*/
$jsonResult = json_decode($result, true);
if ($jsonResult['resultCode'] == "FAIL") {
//ошибка
$res = strpos($jsonResult['result'], "at [Source:");
if ($res) {
echo substr($jsonResult['result'], $res);
} else {
echo $jsonResult['result'];
}
echo $jsonResult['result'];
} else {
if ($jsonResult['resultCode'] == "OK") {
if (!isset($_GET['asScript'])) {
//print_r($jsonResult['result']);
?>
<input type="hidden" name="zipal_object_Id" id="zipal_object_Id"
value="<?php echo $get['object_id']; ?>"/>
<div class="form-block">
<div class="label">Дней размещения</div>
<div class="inputs">
<input class="text" type="number" min="1" max="30" name="zipal_days" id="zipal_days"
value="<?php echo $get['days_num']; ?>"/>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">Базовая цена</div>
<div class="label" style="color: black;">
<span id="zipal-base-price"><?php echo ($jsonResult['result']['basePrice'] / 100) * $ZIPAL_MULTIPLY; ?></span>
<span class="rub">p</span>
</div>
<div class="clear"></div>
</div>
<div class="form-block">
<div class="label">Итого</div>
<div class="label" style="color: black;">
<span id="zipal-total-price"><?php echo ($jsonResult['result']['basePrice'] / 100) * $ZIPAL_MULTIPLY; ?></span>
<span class="rub">p</span>
</div>
<div class="clear"></div>
</div>
<div style="max-height: 600px; overflow-y: auto;">
<table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
<?php
foreach ($jsonResult['result']['destination'] as $dest) {
//Авито пропускаем, так как он у нас есть на JW
//if ($dest['destination'] === 'AVITO') {
//continue;
//}
//EMLS пропускаем, так как он у нас есть на JW
//if ($dest['destination'] === 'EMLS') {
//continue;
//}
//CIAN пропускаем, так как он у нас есть на JW
//if ($dest['destination'] === 'CIAN') {
//continue;
//}
if (!isset($dest['destination'])) {
continue;
}
$targetName = $dest['destination'];
if(isset($ZIPAL_TARGETS[$dest['destination']])){
$targetName = $ZIPAL_TARGETS[$dest['destination']];
}
// у нас должны быть показаны те, кто не в фиде
$onlyFeed = true;
foreach ($dest['price'] as $price) {
if (!$price['feedOnly']) {
$onlyFeed = false;
}
}
if ($dest['destination'] === 'YANDEX') {
$onlyFeed = false;
}
if ($dest['destination'] === 'CIAN') {
$onlyFeed = false;
}
if ($dest['destination'] === 'EMLS') {
$onlyFeed = false;
}
if ($dest['destination'] === 'AVITO') {
$onlyFeed = false;
}
$checked = false;
foreach ($dest['price'] as $price) {
if (($price['price'] == 0 && !$price['feedOnly']) || $dest['destination'] === 'YANDEX' || $dest['destination'] === 'CIAN' || $dest['destination'] === 'EMLS' || $dest['destination'] === 'AVITO') {
$checked = true;
}
}
if (!$onlyFeed) {
?>
<tr style="border-top: 1px solid gray;" class="<?php echo $dest['destination']; ?>_row <?php if (!$checked) { echo 'gryed-row';}?>">
<td style="width:50%;">
<div class="form-block" style="padding-top: 10px;">
<div class="inputs" style="width: 90%;">
<div class="checkbox" style="height: 60px;">
<input name="<?php echo $dest['destination']; ?>_check"
id="<?php echo $dest['destination']; ?>_check"
data-destination="<?php echo $dest['destination']; ?>"
type="checkbox" class="destination-box" <?php if ($checked) { echo 'checked = "true"';}?>>
<label style="font-weight: bold;"
for="<?php echo $dest['destination']; ?>_check"><?php echo $targetName; ?></label>
</div>
</div>
<div class="clear"></div>
</div>
</td>
<td style="padding: 10px 0;">
<?php
foreach ($dest['price'] as $price) {
$oneSelected = false;
$priceType = $ZIPAL_PRICE_TYPES[$price['type']];
if (!$priceType) {
$priceType = $price['type'];
}
if ($dest['destination'] === 'YANDEX' || $dest['destination'] === 'CIAN' || $dest['destination'] === 'EMLS' || $dest['destination'] === 'AVITO') {
if ($price['feedOnly']) {
?>
<label style="display: block; cursor: pointer;position: relative;">
<span id="feed_<?php echo $dest['destination'] . "_" .$price['type']; ?>_value" style="width:60px;position: absolute;top: 0;text-align: right;right: 100%;">
<?php if ($price['price'] > 0) { ?>
<?php echo $price['price'] / 100; ?><span class="rub">p</span>
<?php } ?>
</span>&nbsp;
<input name="<?php echo $dest['destination']; ?>_radio" type="radio"
class="zipal-radio-price"
data-price="<?php echo $price['price'] / 100; ?>"
data-feed="true" data-type="<?php echo $price['type']; ?>"
<?php if ($price['price'] == 0 && !$oneSelected) { $oneSelected = true; echo 'checked = "true"';} else { if (!$checked) { echo " disabled ";}}?>
id="feed_<?php echo $dest['destination'] . "_" .$price['type']; ?>_radio"
value="feed_<?php echo $price['type']; ?>"> Фид
- <?php echo $priceType; ?></label>
<?php
} else {
?>
<label style="display: block; cursor: pointer;position: relative;">
<span id="<?php echo $dest['destination'] . "_" .$price['type']; ?>_value" style="width:60px;position: absolute;top: 0;text-align: right;right: 100%;">
<?php if ($price['price'] > 0) { ?>
<?php echo $price['price'] / 100; ?><span class="rub">p</span>
<?php } ?>
</span>&nbsp;
<input name="<?php echo $dest['destination']; ?>_radio" type="radio"
class="zipal-radio-price"
data-price="<?php echo $price['price'] / 100; ?>"
data-feed="false" data-type="<?php echo $price['type']; ?>"
<?php if ($price['price'] == 0 && !$oneSelected) { $oneSelected = true; echo 'checked = "true"';} else { if (!$checked) { echo " disabled ";}}?>
id="<?php echo $dest['destination'] . "_" .$price['type']; ?>_radio"
value="<?php echo $price['type']; ?>"> <?php echo $priceType; ?>
</label>
<label style="display: block; cursor: pointer;position: relative;">
<span id="feed_<?php echo $dest['destination'] . "_" .$price['type']; ?>_value" style="width:60px;position: absolute;top: 0;text-align: right;right: 100%;">
<?php if ($price['price'] > 0) { ?>
<?php echo $price['price'] / 100; ?><span class="rub">p</span>
<?php } ?>
</span>&nbsp;
<input name="<?php echo $dest['destination']; ?>_radio" type="radio"
class="zipal-radio-price"
data-price="<?php echo $price['price'] / 100; ?>"
data-feed="true" data-type="<?php echo $price['type']; ?>"
<?php if ($price['price'] == 0 && !$oneSelected) { $oneSelected = true; echo 'checked = "true"';} else { if (!$checked) { echo " disabled ";}}?>
id="feed_<?php echo $dest['destination'] . "_" .$price['type']; ?>_radio"
value="feed_<?php echo $price['type']; ?>"> Фид
- <?php echo $priceType; ?></label>
<?php
}
} else {
if (!$price['feedOnly']) {
?>
<label style="display: block; cursor: pointer;position: relative;">
<span id="<?php echo $dest['destination'] . "_" .$price['type']; ?>_value" style="width:60px;position: absolute;top: 0;text-align: right;right: 100%;">
<?php if ($price['price'] > 0) { ?>
<?php echo $price['price'] / 100; ?><span class="rub">p</span>
<?php } ?>
</span>&nbsp;
<input name="<?php echo $dest['destination']; ?>_radio"
class="zipal-radio-price"
data-price="<?php echo $price['price'] / 100; ?>"
type="radio" data-type="<?php echo $price['type']; ?>"
data-feed="false"
<?php if ($price['price'] == 0 && !$oneSelected) { $oneSelected = true; echo 'checked = "true"';} else { if (!$checked) { echo " disabled ";}}?>
id="<?php echo $dest['destination'] . "_" .$price['type']; ?>_radio"
value="<?php echo $price['type']; ?>"> <?php echo $priceType; ?>
</label>
<?php }
}
} ?>
</td>
<?php } ?>
</tr>
<?php } ?>
</table>
</div>
<?php
} else {
echo '[{';
echo '"id": "zipal-base-price",';
echo '"value" : "';
echo ($jsonResult['result']['basePrice'] / 100) * $ZIPAL_MULTIPLY;
echo '"}';
foreach ($jsonResult['result']['destination'] as $dest) {
//Авито пропускаем, так как он у нас есть на JW
//if ($dest['destination'] === 'AVITO') {
//continue;
//}
//EMLS пропускаем, так как он у нас есть на JW
//if ($dest['destination'] === 'EMLS') {
//continue;
//}
//CIAN пропускаем, так как он у нас есть на JW
//if ($dest['destination'] === 'CIAN') {
//continue;
//}
// у нас должны быть показаны те, кто не в фиде
$onlyFeed = true;
foreach ($dest['price'] as $price) {
if (!$price['feedOnly']) {
$onlyFeed = false;
}
}
if (!isset($dest['destination'])) {
continue;
}
if ($dest['destination'] === 'YANDEX') {
$onlyFeed = false;
}
if ($dest['destination'] === 'CIAN') {
$onlyFeed = false;
}
if ($dest['destination'] === 'EMLS') {
$onlyFeed = false;
}
if ($dest['destination'] === 'AVITO') {
$onlyFeed = false;
}
if (!$onlyFeed) {
foreach ($dest['price'] as $price) {
if ($dest['destination'] === 'YANDEX' || $dest['destination'] === 'CIAN' || $dest['destination'] === 'EMLS' || $dest['destination'] === 'AVITO') {
echo ",";
if ($price['feedOnly']) {
echo '{';
echo '"id": "feed_' . $dest['destination'] . "_" .$price['type'] .'_value",';
echo '"value" : "';
echo $price['price'] > 0 ? $price['price'] / 100 . '<span class=\'rub\'>p</span>' : "";
echo '"},';
echo '{';
echo '"id": "feed_' . $dest['destination'] . "_" .$price['type'] .'_radio",';
echo '"price" : "';
echo $price['price'] > 0 ? $price['price'] / 100 : "";
echo '"}';
} else {
echo '{';
echo '"id": "' . $dest['destination'] . "_" .$price['type'] .'_value",';
echo '"value" : "';
echo $price['price'] > 0 ? $price['price'] / 100 . '<span class=\'rub\'>p</span>' : "";
echo '"},';
echo '{';
echo '"id": "' . $dest['destination'] . "_" .$price['type'] .'_radio",';
echo '"price" : "';
echo $price['price'] > 0 ? $price['price'] / 100 : "";
echo '"},';
echo '{';
echo '"id": "feed_' . $dest['destination'] . "_" .$price['type'] .'_value",';
echo '"value" : "';
echo $price['price'] > 0 ? $price['price'] / 100 . '<span class=\'rub\'>p</span>' : "";
echo '"},';
echo '{';
echo '"id": "feed_' . $dest['destination'] . "_" .$price['type'] .'_radio",';
echo '"price" : "';
echo $price['price'] > 0 ? $price['price'] / 100 : "";
echo '"}';
}
} else {
if (!$price['feedOnly']) {
echo ",";
echo '{';
echo '"id": "' . $dest['destination'] . "_" .$price['type'] .'_value",';
echo '"value" : "';
echo $price['price'] > 0 ? $price['price'] / 100 . '<span class=\'rub\'>p</span>' : "";
echo '"},';
echo '{';
echo '"id": "' . $dest['destination'] . "_" .$price['type'] .'_radio",';
echo '"price" : "';
echo $price['price'] > 0 ? $price['price'] / 100 : "";
echo '"}';
}
}
}
}
}
echo ']';
}
}
}
}
}