'-', 1 => 'ДДУ', 2 => 'ЖСК', 3 => 'КП', 4 => 'ПДКП', ]; public $id; public $address; public $region_id; public $name; public $note; public $phone; public $video_url; public $latitude; public $longitude; public $builder_id; public $type; public $fee; public $builderFee; public $builderRetransferFee; public $image; public $additional; public $additog; public $created_at; public $updated_at; public $newRecord; public $yandex_building_id; public $apartmentsCount; public $author_name; public $author_photo; public $author_desc; public $class_id; public $recommended; /** * Block constructor. */ public function __construct() { $this->newRecord = true; } public function save() { try { if ($this->newRecord) { if (!isset($this->id)) { $sql = "INSERT INTO blocks (region_id, address, name, phone, note, latitude, longitude, builder_id, image, created_at, fee, additional, additog, video_url, type, yandex_building_id, author_name, author_photo, author_desc, class_id) VALUES ('" . $this->region_id . "', '" . $this->address . "', '" . $this->name . "', '" .$this->phone. "', '" . $this->note . "', '" . $this->latitude . "', '" . $this->longitude . "', '" . $this->builder_id . "', '" . $this->image . "', NOW(), '" . $this->fee . "', '" . $this->additional . "', '" . $this->additog . "', '" . $this->video_url . "', '" . $this->type . "', '" . $this->yandex_building_id . "', '" . $this->author_name . "', '" . $this->author_photo . "', '" . $this->author_desc . "', '" . $this->class_id . "')"; } else { $sql = "INSERT INTO blocks (id, region_id, address, name, phone, note, latitude, longitude, builder_id, image, created_at, fee, additional, additog, video_url, type, yandex_building_id, author_name, author_photo, author_desc, class_id) VALUES ('" . $this->id . "', '" . $this->region_id . "', '" . $this->address . "', '" . $this->name . "', '" .$this->phone. "', '" . $this->note . "', '" . $this->latitude . "', '" . $this->longitude . "', '" . $this->builder_id . "', '" . $this->image . "', NOW(), '" . $this->fee . "', '" . $this->additional . "', '" . $this->additog . "', '" . $this->video_url . "', '" . $this->type . "', '" . $this->yandex_building_id . "', '" . $this->author_name . "', '" . $this->author_photo . "', '" . $this->author_desc . "', '" . $this->class_id . "')"; } mysql_query($sql); $err = mysql_errno(); if ($err > 0) { echo mysql_error(); return false; } if (!isset($this->id)) { $this->id = mysql_insert_id(); } } else { $sql = "UPDATE blocks SET region_id='" . $this->region_id . "',address='" . $this->address . "',name='" . $this->name . "',note='" . $this->note . "',phone='" . $this->phone . "',latitude='" . $this->latitude . "',longitude='" . $this->longitude . "',builder_id='" . $this->builder_id . "',image='" . $this->image . "',updated_at=NOW(),fee='" . $this->fee . "',additional='" . $this->additional . "', additog='".$this->additog."', video_url='" . $this->video_url . "',type='" . $this->type . "',yandex_building_id='" . $this->yandex_building_id . "',author_name='" . $this->author_name . "', author_photo='" . $this->author_photo . "', author_desc='" . $this->author_desc . "', class_id='" . $this->class_id . "', recommended='". $this->recommended ."' WHERE id = '" . $this->id . "'"; mysql_query($sql); $err = mysql_errno(); if ($err > 0) { echo mysql_error(); return false; } } return true; } catch (Exception $e) { echo $e->getMessage(); return false; } } public function updateParameters() { try { $sql = "UPDATE blocks SET updated_at=NOW(), fee='" . $this->fee . "',additional='" . $this->additional . "', additog='" . $this->additog . "',video_url='" . $this->video_url . "',type='" . $this->type . "', phone='" . $this->phone . "', recommended='" . $this->recommended . "' WHERE id = '" . $this->id . "'"; mysql_query($sql); $err = mysql_errno(); if ($err > 0) { echo mysql_error(); return false; } return true; } catch (Exception $e) { echo $e->getMessage(); return false; } } public function updateAuthorDesc() { try { $sql = "UPDATE blocks SET updated_at=NOW(), author_name='" . $this->author_name . "', author_photo='" . $this->author_photo . "', author_desc='" . $this->author_desc . "' WHERE id = '" . $this->id . "'"; mysql_query($sql); $err = mysql_errno(); if ($err > 0) { echo mysql_error(); return false; } return true; } catch (Exception $e) { echo $e->getMessage(); return false; } } public function getIsNewRecord() { return $this->newRecord; } public static function deleteAll($condition = '') { throw new Exception("deleteALL not implemented"); } public static function className() { return get_called_class(); } public static function findOne($id) { $sql = "SELECT b.*, (select count(id) from apartments where block_id = b.id) as apartmentsCount, (select bl.fee from builders bl where bl.id = b.builder_id) as builderFee, (select bl.discount_fee from builders bl where bl.id = b.builder_id) as builderRetransferFee FROM blocks b WHERE id='$id'"; $rez = mysql_query($sql); if (mysql_num_rows($rez)) { $block = new Block(); $block->newRecord = false; $dbObject = mysql_fetch_array($rez); $block->id = $dbObject['id']; $block->name = $dbObject['name']; $block->region_id = $dbObject['region_id']; $block->address = $dbObject['address']; $block->phone = $dbObject['phone']; $block->note = $dbObject['note']; $block->latitude = $dbObject['latitude']; $block->longitude = $dbObject['longitude']; $block->builder_id = $dbObject['builder_id']; $block->image = $dbObject['image']; $block->fee = $dbObject['fee']; $block->additional = $dbObject['additional']; $block->additog = $dbObject['additog']; $block->video_url = $dbObject['video_url']; $block->type = $dbObject['type']; $block->yandex_building_id = $dbObject['yandex_building_id']; $block->created_at = $dbObject['created_at']; $block->updated_at = $dbObject['updated_at']; $block->apartmentsCount = $dbObject['apartmentsCount']; $block->builderFee = $dbObject['builderFee']; $block->builderRetransferFee = $dbObject['builderRetransferFee']; $block->author_name = $dbObject['author_name']; $block->author_photo = $dbObject['author_photo']; $block->author_desc = $dbObject['author_desc']; $block->class_id = $dbObject['class_id']; $block->recommended = $dbObject['recommended']; return $block; } return null; } public static function count($searchName) { if ($searchName != null) { $sql = "SELECT count(id) FROM blocks WHERE LOWER(name) like LOWER('%$searchName%')"; } else { $sql = "SELECT count(id) FROM blocks"; } $rez = mysql_query($sql); return mysql_result($rez, 0); } public static function search($searchName, $from, $to) { if ($searchName != null) { $sql = "SELECT b.*, (select count(id) from apartments where block_id = b.id) as apartmentsCount, (select bl.fee from builders bl where bl.id = b.builder_id) as builderFee, (select bl.discount_fee from builders bl where bl.id = b.builder_id) as builderRetransferFee FROM blocks b WHERE LOWER(name) like LOWER('%$searchName%') LIMIT $from, $to"; } else { $sql = "SELECT b.*, (select count(id) from apartments where block_id = b.id) as apartmentsCount, (select bl.fee from builders bl where bl.id = b.builder_id) as builderFee, (select bl.discount_fee from builders bl where bl.id = b.builder_id) as builderRetransferFee FROM blocks b LIMIT $from, $to"; } $rez = mysql_query($sql); $blocks = array(); if (mysql_num_rows($rez) > 0) { while ($dbObject = mysql_fetch_assoc($rez)) { $block = new Block(); $block->newRecord = false; $block->id = $dbObject['id']; $block->name = $dbObject['name']; $block->region_id = $dbObject['region_id']; $block->address = $dbObject['address']; $block->phone = $dbObject['phone']; $block->note = $dbObject['note']; $block->latitude = $dbObject['latitude']; $block->longitude = $dbObject['longitude']; $block->builder_id = $dbObject['builder_id']; $block->image = $dbObject['image']; $block->fee = $dbObject['fee']; $block->additional = $dbObject['additional']; $block->additog = $dbObject['additog']; $block->video_url = $dbObject['video_url']; $block->type = $dbObject['type']; $block->yandex_building_id = $dbObject['yandex_building_id']; $block->created_at = $dbObject['created_at']; $block->updated_at = $dbObject['updated_at']; $block->apartmentsCount = $dbObject['apartmentsCount']; $block->builderFee = $dbObject['builderFee']; $block->builderRetransferFee = $dbObject['builderRetransferFee']; $block->author_name = $dbObject['author_name']; $block->author_photo = $dbObject['author_photo']; $block->author_desc = $dbObject['author_desc']; $block->class_id = $dbObject['class_id']; $block->recommended = $dbObject['recommended']; $blocks[] = $block; } } return $blocks; } public function getCalculatedFee() { if ($this->fee && (float)$this->fee) { return (float)$this->fee; } if ($this->builderFee && (float)$this->builderFee) { return (float)$this->builderFee; } return (float)(new ImporterService())->getDefaultFee(); } public function getCalculatedRetransferFee() { if ($this->fee && (float)$this->fee) { return (float)$this->fee; } if ($this->builderRetransferFee && (float)$this->builderRetransferFee) { return (float)$this->builderRetransferFee; } return (float)(new ImporterService())->getDefaultFee(); } public function getTypeName() { return isset(self::$types[$this->type]) ? self::$types[$this->type] : ''; } /** * @return integer */ public function getDocTargetType() { return Document::TYPE_BLOCK; } /** * @return integer */ public function getDocTargetId() { return $this->id; } /** * @return BlockImage[] */ public function getImages($type = Null) { if ((int)$type > 0) { $sql = "SELECT * FROM block_images WHERE model_id='" . $this->id . "' AND block_images.type=" . $type; } else { $sql = "SELECT * FROM block_images WHERE model_id='" . $this->id . "' AND type is NULL"; } $rez = mysql_query($sql); $images = array(); if (mysql_num_rows($rez) > 0) { while ($dbObject = mysql_fetch_assoc($rez)) { $blockImage = new BlockImage(); $blockImage->newRecord = false; $blockImage->id = $dbObject['id']; $blockImage->model_id = $dbObject['model_id']; $blockImage->image = $dbObject['image']; $blockImage->img_date = $dbObject['img_date']; $blockImage->video_id = $dbObject['video_id']; $images[] = $blockImage; } } return $images; } public static function getElementsList($temp_region) { $user = new User; $user->get($_SESSION['id']); if(isset($temp_region)) { $region_sql = $temp_region; } else { $region_sql = $user->region_rf_id; } $sql = "SELECT DISTINCT b.* FROM blocks as b INNER JOIN regions r ON b.region_id = r.id INNER JOIN rf_regions rr ON r.rf_region_id = rr.id INNER JOIN apartments a ON b.id = a.block_id WHERE rr.id = $region_sql ORDER BY b.name"; // INNER JOIN apartments a ON b.id = a.block_id // $sql_count = "SELECT COUNT(b.id) // FROM blocks b // INNER JOIN regions r ON b.region_id = r.id // INNER JOIN rf_regions rr ON r.rf_region_id = rr.id // INNER JOIN apartments a ON b.id = a.block_id // WHERE b.id = a.block_id AND rr.id = $user->region_rf_id // GROUP BY b.id"; // $sql = "SELECT b.* FROM blocks as b // INNER JOIN regions r ON b.region_id = r.id // INNER JOIN rf_regions rr ON r.rf_region_id = rr.id // INNER JOIN apartments a ON a.block_id = b.id // WHERE rr.id = $user->region_rf_id AND b.id = a.block_id // ORDER BY b.name"; $rez = mysql_query($sql); $blocks = array(); if (mysql_num_rows($rez) > 0) { while ($dbObject = mysql_fetch_assoc($rez)) { $block = new Block(); $block->newRecord = false; $block->id = $dbObject['id']; $block->name = $dbObject['name']; $block->region_id = $dbObject['region_id']; $block->address = $dbObject['address']; $block->phone = $dbObject['phone']; $block->note = $dbObject['note']; $block->latitude = $dbObject['latitude']; $block->longitude = $dbObject['longitude']; $block->builder_id = $dbObject['builder_id']; $block->image = $dbObject['image']; $block->fee = $dbObject['fee']; $block->additional = $dbObject['additional']; $block->additog = $dbObject['additog']; $block->video_url = $dbObject['video_url']; $block->type = $dbObject['type']; $block->yandex_building_id = $dbObject['yandex_building_id']; $block->created_at = $dbObject['created_at']; $block->updated_at = $dbObject['updated_at']; $block->apartmentsCount = $dbObject['apartmentsCount']; $block->builderFee = $dbObject['builderFee']; $block->recommended = $dbObject['recommended']; $blocks[] = $block; } } return $blocks; } /** * @return string[] */ public static function getAllImagesUrl($blockId) { $sql = "SELECT image FROM block_images WHERE `model_id`='{$blockId}' and `type` is null or `type` != 10"; $rez = mysql_query($sql); $images = array(); if (mysql_num_rows($rez) > 0) { while ($dbObject = mysql_fetch_assoc($rez)) { $images[] = $dbObject['image']; } } return $images; } public static function getAllPayments($blockId) { $strings = array(); $sql = "SELECT a.subsidy FROM apartments a WHERE a.subsidy > 0 AND a.block_id='$blockId'"; $rez = mysql_query($sql); if (mysql_num_rows($rez) > 0) { $strings[] = 'Субсидии'; } $sql = "SELECT max(b.mortgage) as mortgage, max(b.military_mortgage) as military_mortgage FROM buildings b WHERE b.block_id='$blockId'"; $rez = mysql_query($sql); if (mysql_num_rows($rez)) { $dbObject = mysql_fetch_array($rez); if($dbObject['mortgage'] == 1) { $strings[] = 'Ипотека'; } if($dbObject['military_mortgage'] == 1) { $strings[] = 'Военная ипотека'; } } return $strings; } public static function getRoomTypesWithPrices($blockId, $period, $str_usl_bd = '1') { // $sqlAdditional = "1"; // if (isset($period) && $period && $period > 0) { // $sqlAdditional = "a.building_id in (select bd.id from buildings bd where UNIX_TIMESTAMP(bd.deadline) <=" . $period . ")"; // } $sql = "SELECT DISTINCT a.room_type_id, room.name, MIN(a.price) as price, buildings.deadline FROM apartments a, room_types room, buildings INNER JOIN blocks b ON b.id = '$blockId' INNER JOIN regions r ON b.region_id = r.id INNER JOIN rf_regions rr ON r.rf_region_id = rr.id INNER JOIN builders bld ON b.builder_id = bld.id where a.room_type_id = room.id and a.building_id = buildings.id and a.block_id = '$blockId' and $str_usl_bd GROUP BY a.room_type_id ORDER BY a.price"; $rez = mysql_query($sql); $types = array(); if (mysql_num_rows($rez)) { while ($dbObject = mysql_fetch_assoc($rez)) { $types[$dbObject['room_type_id']]['name'] = $dbObject['name']; $types[$dbObject['room_type_id']]['price'] = $dbObject['price']; $types[$dbObject['room_type_id']]['deadline'] = $dbObject['deadline']; } } return $types; } }