/**
  * 录入
  *
  */
 public function actionCreate()
 {
     parent::_acl('propertyType_create');
     $model = new PropertyType();
     if (isset($_POST['PropertyType'])) {
         $model->attributes = $_POST['PropertyType'];
         if ($model->save()) {
             AdminLogger::_create(array('catalog' => 'create', 'intro' => '录入物业类型,ID:' . $model->id));
             $this->redirect(array('index'));
         }
     }
     $this->render('create', array('model' => $model));
 }
Example #2
0
 public function test_should_include_associates_using_simple_finder()
 {
     $Property = new Property();
     $PropertyType = new PropertyType();
     $this->assertTrue($Rancho =& $PropertyType->findFirstBy('description', 'Rancho Type', array('include' => 'properties')));
     $this->assertTrue($RanchoMaria =& $Property->find($Rancho->properties[0]->getId(), array('include' => 'property_types')));
     $this->assertEqual($RanchoMaria->property_types[0]->getId(), $Rancho->getId());
     $this->assertEqual($RanchoMaria->getId(), $Rancho->properties[0]->getId());
 }
				<label class="block-label">Branch</label>

				<div class="input-wrapper">
					<?php 
$branch = isset($deal['dea_branch']) ? $deal['dea_branch'] : null;
echo CHtml::dropDownList('Deal[dea_branch]', $branch, CHtml::listData(Office::model()->getShortBranchList($type), 'bra_id', 'shortTitle'), ['empty' => 'All']);
?>
				</div>
			</div>
			<div class="half-cell">
				<label class="block-label">Type of Property</label>

				<div class="input-wrapper">
					<?php 
$propertyType = isset($deal['dea_ptype']) ? $deal['dea_ptype'] : "";
echo CHtml::dropDownList('Deal[dea_ptype]', $propertyType, CHtml::listData(PropertyType::model()->getPublicSiteTypes($type), 'pty_id', 'pty_title'), ['empty' => 'All']);
?>
				</div>
			</div>
		</div>

		<div class="row">
			<div class="half-cell">
				<label class="block-label">Min Bed</label>

				<div class="input-wrapper">
					<?php 
$minBed = isset($deal['min_bedrooms']) ? $deal['min_bedrooms'] : "";
echo CHtml::dropDownList('Deal[min_bedrooms]', $minBed, ['Studio', 1, 2, 3, 4, 5, 6]);
?>
				</div>
Example #4
0
<?php

/**
 * @var    $this      ClientController
 * @var    $model     Client
 * @var    $form      AdminForm
 * @var    $types     PropertyType[]
 * @var    $minPrices array
 * @var    $maxPrices array
 */
$types = PropertyType::model()->getTypes();
?>
<div id="sales-requirements">
	<div class="control-group">
		<label class="control-label">Price</label>

		<div class="controls">
			<?php 
echo $form->dropDownList($model, 'minPrice', $minPrices, ['class' => 'input-xsmall', 'empty' => 'No Minimum']);
?>
			<?php 
echo $form->dropDownList($model, 'maxPrice', $maxPrices, ['class' => 'input-xsmall', 'empty' => 'No Maximum']);
?>
			<label><?php 
echo $form->checkBox($model, 'searchNoBudget', ['value' => true, 'uncheckValue' => false]);
?>
				<span class="hint">include clients without budget</span></label>
		</div>
	</div>
	<?php 
echo $form->beginControlGroup($model, 'cli_salebed');
Example #5
0
 public function actionIndexsb()
 {
     $housetype = PropertyType::model()->findAll();
     $this->render('indexsb', array('houseType' => $housetype));
 }
 /**
  * Fetches raw multi valued property not of type \PropertyType::PATH
  *
  * @param array &$property The property as read from the "properties" table of the database with $property['type'] != \PropertyType::PATH and $property['multivalue'] == TRUE
  * @return void
  * @author Matthias Hoermann <*****@*****.**>
  * @author Karsten Dambekalns <*****@*****.**>
  */
 protected function getRawMultiValuedProperty(&$property)
 {
     $typeName = strtolower(\PropertyType::nameFromValue($property['type']));
     $statementHandle = $this->databaseHandle->prepare('SELECT "index", "value" FROM "' . $typeName . 'properties" WHERE "parent" = ? AND "name" = ?');
     $statementHandle->execute(array($property['parent'], $property['name']));
     $multivalues = $statementHandle->fetchAll(\PDO::FETCH_ASSOC);
     if (is_array($multivalues)) {
         $resultArray = array();
         foreach ($multivalues as $multivalue) {
             $resultArray[$multivalue['index']] = $this->convertFromString($property['type'], $multivalue['value']);
         }
         $property['value'] = $resultArray;
     }
 }
Example #7
0
 /**
  * 房源列表
  */
 public function actionIndex()
 {
     Yii::app()->clientScript->registerCssFile(Yii::app()->theme->baseUrl . '/css/house.css');
     $city_id = Yii::app()->request->getQuery('cd1', 0);
     $district_id = Yii::app()->request->getQuery('cd2', 0);
     $investType_id = Yii::app()->request->getQuery('cd3', 0);
     $propertyType_id = Yii::app()->request->getQuery('cd4', 0);
     $total_price = Yii::app()->request->getQuery('cd5', 0);
     $house_area = Yii::app()->request->getQuery('cd6', 0);
     $land_area = Yii::app()->request->getQuery('cd7', 0);
     $bedroom_num = Yii::app()->request->getQuery('cd8', 0);
     $construction_year = Yii::app()->request->getQuery('cd9', 0);
     $prop_featx_out = Yii::app()->request->getQuery('cd10', 0);
     $prop_featx_out2 = Yii::app()->request->getQuery('cd11', 0);
     $prop_featx_out3 = Yii::app()->request->getQuery('cd12', 0);
     $bath_tot = Yii::app()->request->getQuery('cd13', 0);
     $style = Yii::app()->request->getQuery('cd14', 0);
     $comp_pts = Yii::app()->request->getQuery('cd15', 0);
     $gar_spaces = Yii::app()->request->getQuery('cd16', 0);
     $bsmt1_out = Yii::app()->request->getQuery('cd17', 0);
     $pool = Yii::app()->request->getQuery('cd18', 0);
     $time_sort = Yii::app()->request->getQuery('time_sort', 'DESC');
     $price_sort = Yii::app()->request->getQuery('price_sort');
     $diy_word = null;
     $city_list = City::model()->findAll(array('order' => 'id ASC'));
     if (!empty($city_id)) {
         $district_list = District::model()->findAll('city_id=:city_id', array(':city_id' => $city_id));
     } else {
         $district_list = District::model()->findAll();
     }
     $investType_list = InvestType::model()->findAll();
     $propertyType_list = PropertyType::model()->findAll();
     //按搜索条件查询房源信息
     $criteria = new CDbCriteria();
     //省份
     if (!empty($city_id)) {
         $criteria->addCondition('area!=""');
     }
     //地区
     if (!empty($district_id)) {
         if ($district_id == 1) {
             $criteria->addCondition('area="Toronto"');
         } elseif ($district_id == 2) {
             $criteria->addCondition('area="Durham"');
         } elseif ($district_id == 3) {
             $criteria->addCondition('area="Peel"');
         } elseif ($district_id == 4) {
             $criteria->addCondition('area="Halton"');
         } elseif ($district_id == 5) {
             $criteria->addCondition('area="York"');
         }
     }
     //挂牌时间
     if (!empty($investType_id)) {
         if ($investType_id == 1) {
             //查询一周数据
             $criteria->addCondition('DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(pix_updt)');
         } elseif ($investType_id == 2) {
             //查询一月数据
             $criteria->addCondition('DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(pix_updt)');
         } elseif ($investType_id == 3) {
             //查询三月数据
             $criteria->addCondition('DATE_SUB(CURDATE(), INTERVAL 90 DAY) <= date(pix_updt)');
         }
     }
     if (!empty($prop_featx_out)) {
         if ($prop_featx_out == 1) {
             $criteria->addCondition('prop_feat1_out like "%Waterfront%" or prop_feat2_out like "%Waterfront%" or prop_feat3_out like "%Waterfront%" or prop_feat4_out like "%Waterfront%" or prop_feat5_out like "%Waterfront%" or prop_feat6_out like "%Waterfront%" ');
         } elseif ($prop_featx_out == 2) {
             $criteria->addCondition('prop_feat1_out like "%Pond%" or prop_feat2_out like "%Pond%" or prop_feat3_out like "%Pond%" or prop_feat4_out like "%Pond%" or prop_feat5_out like "%Pond%" or prop_feat6_out like "%Pond%" ');
         } elseif ($prop_featx_out == 3) {
             $criteria->addCondition('prop_feat1_out like "%Stream%" or prop_feat2_out like "%Stream%" or prop_feat3_out like "%Stream%" or prop_feat4_out like "%Stream%" or prop_feat5_out like "%Stream%" or prop_feat6_out like "%Stream%" ');
         } elseif ($prop_featx_out == 4) {
             $criteria->addCondition('prop_feat1_out like "%River%" or prop_feat2_out like "%River%" or prop_feat3_out like "%River%" or prop_feat4_out like "%River%" or prop_feat5_out like "%River%" or prop_feat6_out like "%River%" ');
         } elseif ($prop_featx_out == 5) {
             $criteria->addCondition('prop_feat1_out like "%Lake%" or prop_feat2_out like "%Lake%" or prop_feat3_out like "%Lake%" or prop_feat4_out like "%Lake%" or prop_feat5_out like "%Lake%" or prop_feat6_out like "%Lake%" ');
         } elseif ($prop_featx_out == 6) {
             $criteria->addCondition('prop_feat1_out like "%Marina%" or prop_feat2_out like "%Marina%" or prop_feat3_out like "%Marina%" or prop_feat4_out like "%Marina%" or prop_feat5_out like "%Marina%" or prop_feat6_out like "%Marina%" ');
         }
     }
     if (!empty($prop_featx_out2)) {
         if ($prop_featx_out2 == 1) {
             $criteria->addCondition('prop_feat1_out like "%Treed%" or prop_feat2_out like "%Treed%" or prop_feat3_out like "%Treed%" or prop_feat4_out like "%Treed%" or prop_feat5_out like "%Treed%" or prop_feat6_out like "%Treed%" ');
         } elseif ($prop_featx_out2 == 2) {
             $criteria->addCondition('prop_feat1_out like "%Wooded%" or prop_feat2_out like "%Wooded%" or prop_feat3_out like "%Wooded%" or prop_feat4_out like "%Wooded%" or prop_feat5_out like "%Wooded%" or prop_feat6_out like "%Wooded%" ');
         } elseif ($prop_featx_out2 == 3) {
             $criteria->addCondition('prop_feat1_out like "%Grnbelt%" or prop_feat2_out like "%Grnbelt%" or prop_feat3_out like "%Grnbelt%" or prop_feat4_out like "%Grnbelt%" or prop_feat5_out like "%Grnbelt%" or prop_feat6_out like "%Grnbelt%" ');
         } elseif ($prop_featx_out2 == 4) {
             $criteria->addCondition('prop_feat1_out like "%Conserv%" or prop_feat2_out like "%Conserv%" or prop_feat3_out like "%Conserv%" or prop_feat4_out like "%Conserv%" or prop_feat5_out like "%Conserv%" or prop_feat6_out like "%Conserv%" ');
         } elseif ($prop_featx_out2 == 5) {
             $criteria->addCondition('prop_feat1_out like "%Ravine%" or prop_feat2_out like "%Ravine%" or prop_feat3_out like "%Ravine%" or prop_feat4_out like "%Ravine%" or prop_feat5_out like "%Ravine%" or prop_feat6_out like "%Ravine%" ');
         }
     }
     //
     if (!empty($prop_featx_out3)) {
         if ($prop_featx_out3 == 1) {
             $criteria->addCondition('prop_feat1_out like "%School%" or prop_feat2_out like "%School%" or prop_feat3_out like "%School%" or prop_feat4_out like "%School%" or prop_feat5_out like "%School%" or prop_feat6_out like "%School%" ');
         } elseif ($prop_featx_out3 == 2) {
             $criteria->addCondition('prop_feat1_out like "%Hospital%" or prop_feat2_out like "%Hospital%" or prop_feat3_out like "%Hospital%" or prop_feat4_out like "%Hospital%" or prop_feat5_out like "%Hospital%" or prop_feat6_out like "%Hospital%" ');
         } elseif ($prop_featx_out3 == 3) {
             $criteria->addCondition('prop_feat1_out like "%Public Transit%" or prop_feat2_out like "%Public Transit%" or prop_feat3_out like "%Public Transit%" or prop_feat4_out like "%Public Transit%" or prop_feat5_out like "%Public Transit%" or prop_feat6_out like "%Public Transit%" ');
         } elseif ($prop_featx_out3 == 4) {
             $criteria->addCondition('prop_feat1_out like "%Park%" or prop_feat2_out like "%Park%" or prop_feat3_out like "%Park%" or prop_feat4_out like "%Park%" or prop_feat5_out like "%Park%" or prop_feat6_out like "%Park%" ');
         } elseif ($prop_featx_out3 == 5) {
             $criteria->addCondition('prop_feat1_out like "%Golf%" or prop_feat2_out like "%Golf%" or prop_feat3_out like "%Golf%" or prop_feat4_out like "%Golf%" or prop_feat5_out like "%Golf%" or prop_feat6_out like "%Golf%" ');
         } elseif ($prop_featx_out3 == 6) {
             $criteria->addCondition('prop_feat1_out like "%Library%" or prop_feat2_out like "%Library%" or prop_feat3_out like "%Library%" or prop_feat4_out like "%Library%" or prop_feat5_out like "%Library%" or prop_feat6_out like "%Library%" ');
         }
     }
     //物业类型
     if (!empty($propertyType_id)) {
         $criteria->addCondition('propertyType_id="' . $propertyType_id . '"');
         //if($propertyType_id==1){
         //$criteria->addCondition('type_own1_out="Detached"');
         //}
         //elseif($propertyType_id==2){
         //$criteria->addCondition('type_own1_out="Townhouse" or type_own1_out="Att∕Row∕Twnhouse" or type_own1_out="Triplex" or type_own1_out="Fourplex" or type_own1_out="Multiplex"');
         //}
         //elseif($propertyType_id==3){
         //$criteria->addCondition('lp_dol>3000000');
         //}
         //elseif($propertyType_id==4){
         //$criteria->addCondition('type_own1_out="Semi-Detached" or type_own1_out="Link" or type_own1_out="Duplex"');
         //}
         //elseif($propertyType_id==5){
         //$criteria->addCondition('type_own1_out="Cottage" or type_own1_out="Rural Resid"');
         //}
         //elseif($propertyType_id==6){
         //$criteria->addCondition('type_own1_out="Farm"');
         //}
         //elseif($propertyType_id==7){
         //$criteria->addCondition('type_own1_out="Vacant Land"');
         //}
         //elseif($propertyType_id==8){
         //$criteria->addCondition('type_own1_out="Mobile/Trailer" or type_own1_out="Det W/Com Elements" or type_own1_out="Store W/Apt/offc"');
         //}
     }
     //挂牌价格
     if (!empty($total_price)) {
         if ($total_price == 1) {
             $criteria->addCondition('lp_dol<300000');
         } elseif ($total_price == 2) {
             $criteria->addCondition('lp_dol>=300000 and lp_dol<500000');
         } elseif ($total_price == 3) {
             $criteria->addCondition('lp_dol>500000 and lp_dol<1000000');
         } elseif ($total_price == 4) {
             $criteria->addCondition('lp_dol>1000000 and lp_dol<1500000');
         } elseif ($total_price == 5) {
             $criteria->addCondition('lp_dol>1500000 and lp_dol<3000000');
         } elseif ($total_price == 6) {
             $criteria->addCondition('lp_dol>3000000');
         }
     }
     //房屋面积
     if (!empty($house_area)) {
         if ($house_area == 1) {
             $criteria->addCondition('sqft<700');
         } elseif ($house_area == 2) {
             $criteria->addCondition('sqft>700 and sqft<1100');
         } elseif ($house_area == 3) {
             $criteria->addCondition('sqft>1100 and sqft<1500');
         } elseif ($house_area == 4) {
             $criteria->addCondition('sqft>1500 and sqft<2000');
         } elseif ($house_area == 5) {
             $criteria->addCondition('sqft>2000 and sqft<2500');
         } elseif ($house_area == 6) {
             $criteria->addCondition('sqft>2500 and sqft<3000');
         } elseif ($house_area == 7) {
             $criteria->addCondition('sqft>3000 and sqft<3500');
         } elseif ($house_area == 8) {
             $criteria->addCondition('sqft>3500 and sqft<4000');
         } elseif ($house_area == 9) {
             $criteria->addCondition('sqft>4000');
         }
     }
     //土地面积
     if (!empty($land_area)) {
         if ($land_area == 1) {
             $criteria->addCondition('depth*front_ft<1000');
         } elseif ($land_area == 2) {
             $criteria->addCondition('depth*front_ft>=1000 and depth*front_ft<2000');
         } elseif ($land_area == 3) {
             $criteria->addCondition('depth*front_ft>=2000 and depth*front_ft<3000');
         } elseif ($land_area == 4) {
             $criteria->addCondition('depth*front_ft>=3000 and depth*front_ft<4000');
         } elseif ($land_area == 5) {
             $criteria->addCondition('depth*front_ft>=4000 and depth*front_ft<5000');
         } elseif ($land_area == 6) {
             $criteria->addCondition('depth*front_ft>=5000 and depth*front_ft<6000');
         } elseif ($land_area == 7) {
             $criteria->addCondition('depth*front_ft>6000');
         }
     }
     if (!empty($bedroom_num)) {
         if ($bedroom_num <= 5) {
             $criteria->addCondition('br=' . $bedroom_num);
         } else {
             $criteria->addCondition('br>=' . $bedroom_num);
         }
     }
     if (!empty($construction_year)) {
         if (!empty(self::$searchData['cd9'][$construction_year]['min'])) {
             $criteria->addCondition('yr_built>' . self::$searchData['cd9'][$construction_year]['min']);
         }
         if (!empty(self::$searchData['cd9'][$construction_year]['max'])) {
             $criteria->addCondition('yr_built<=' . self::$searchData['cd9'][$construction_year]['max']);
         }
     }
     if (!empty($bath_tot)) {
         $criteria->addCondition('bath_tot>"' . $bath_tot . '"');
     }
     if (!empty($style)) {
         if ($style == "1") {
             $criteria->addCondition('style="Bungalow" or style="Bungalow-Raised" or style="Raised-Bungalow"');
         } elseif ($style == "2") {
             $criteria->addCondition('style="1 1/2 Storey"');
         } elseif ($style == "3") {
             $criteria->addCondition('style="2-Storey"');
         } elseif ($style == "4") {
             $criteria->addCondition('style="2 1/2 Storey"');
         } elseif ($style == "5") {
             $criteria->addCondition('style="3-Storey"');
         }
     }
     if (!empty($comp_pts)) {
         if ($comp_pts == "1") {
             $criteria->addCondition('comp_pts="S"');
         } elseif ($comp_pts == "2") {
             $criteria->addCondition('comp_pts="N"');
         } elseif ($comp_pts == "3") {
             $criteria->addCondition('comp_pts="E"');
         } elseif ($comp_pts == "4") {
             $criteria->addCondition('comp_pts="W"');
         }
     }
     if (!empty($gar_spaces)) {
         $criteria->addCondition('gar_spaces >"' . $gar_spaces . '"');
     }
     if (!empty($bsmt1_out)) {
         $criteria->addCondition('bsmt1_out="' . $bsmt1_out . '"');
     }
     if (!empty($pool)) {
         if ($pool == "1") {
             $criteria->addCondition('pool="Abv" or pool="Grnd" or pool="Indoor" or pool="Inground"');
         } elseif ($pool == "2") {
             $criteria->addCondition('pool="" or pool="None"');
         }
     }
     $criteria->order = 'id DESC';
     if (!empty($time_sort)) {
         $criteria->order = 'pix_updt ' . $time_sort;
     }
     if (!empty($price_sort)) {
         $criteria->order = 'lp_dol ' . $price_sort;
     }
     $criteria->with = array('mname', 'propertyType');
     $count = House::model()->count($criteria);
     $pager = new CPagination($count);
     $pager->pageSize = 10;
     $pager->applyLimit($criteria);
     $house_list = House::model()->findAll($criteria);
     $collection_list = array();
     if ($this->_account['userId']) {
         $collect_model = Collect::model()->find('user_id=:user_id', array(':user_id' => $this->_account['userId']));
         if (!empty($collect_model)) {
             $collection_list = explode(',', $collect_model->collection);
         }
     }
     $data = array('cd1' => $city_id, 'cd2' => $district_id, 'cd3' => $investType_id, 'cd4' => $propertyType_id, 'cd5' => $total_price, 'cd6' => $house_area, 'cd7' => $land_area, 'cd8' => $bedroom_num, 'cd9' => $construction_year, 'cd10' => $prop_featx_out, 'cd11' => $prop_featx_out2, 'cd12' => $prop_featx_out3, 'cd13' => $bath_tot, 'cd14' => $style, 'cd15' => $comp_pts, 'cd16' => $gar_spaces, 'cd17' => $bsmt1_out, 'cd18' => $pool, 'time_sort' => $time_sort, 'price_sort' => $price_sort, 'diy_price' => json_encode($diy_price), 'city_list' => $city_list, 'district_list' => $district_list, 'investType_list' => $investType_list, 'propertyType_list' => $propertyType_list, 'count' => $count, 'house_list' => $house_list, 'collection_list' => $collection_list, "pages" => $pager);
     $this->render('index', $data);
 }
Example #8
0
 function test_for_has_and_belons_to_many()
 {
     $Property =& new Property(array('description' => 'Gandia Palace'));
     $this->assertEqual($Property->property_type->getType(), 'hasAndBelongsToMany');
     $this->assertTrue(is_array($Property->property_types) && count($Property->property_types) === 0);
     $Property->property_type->load();
     $this->assertEqual($Property->property_type->count(), 0);
     $Chalet =& new PropertyType(array('description' => 'Chalet'));
     $Property->property_type->add($Chalet);
     $this->assertEqual($Property->property_type->count(), 1);
     $this->assertReference($Property->property_types[0], $Chalet);
     $Property->property_type->add($Chalet);
     $this->assertEqual($Property->property_type->count(), 1);
     $Condo =& new PropertyType(array('description' => 'Condominium'));
     $Property->property_type->add($Condo);
     $this->assertEqual($Property->property_type->count(), 2);
     $this->assertTrue($Property->save());
     $this->assertFalse($Chalet->isNewRecord());
     $this->assertFalse($Condo->isNewRecord());
     $this->assertTrue($Chalet = $Chalet->findFirstBy('description', 'Chalet', array('include' => 'properties')));
     $this->assertEqual($Chalet->properties[0]->getId(), $Property->getId());
     $this->assertTrue($Condo = $Condo->findFirstBy('description', 'Condominium', array('include' => 'properties')));
     $this->assertEqual($Condo->properties[0]->getId(), $Property->getId());
     $this->assertReference($Chalet, $Property->property_types[0]);
     $this->assertReference($Condo, $Property->property_types[1]);
     $Property =& new Property($Property->getId());
     $Property->property_type->load();
     $this->assertEqual($Property->property_type->association_id, 'property_types');
     $this->assertEqual($Property->property_type->count(), 2);
     $Property->property_types = array();
     $this->assertEqual($Property->property_type->count(), 0);
     $Property->property_type->load();
     $this->assertEqual($Property->property_type->count(), 0);
     $Property->property_type->load(true);
     $this->assertEqual($Property->property_type->count(), 2);
     $this->assertEqual($Property->property_types[1]->getType(), 'PropertyType');
     $Property->property_type->delete($Property->property_types[1]);
     $this->assertEqual($Property->property_type->count(), 1);
     $Property->property_type->load(true);
     $this->assertEqual($Property->property_type->count(), 1);
     $Property = $Property->findFirstBy('description', 'Gandia Palace');
     $PropertyType = new PropertyType();
     $PropertyTypes = $PropertyType->find();
     $Property->property_type->set($PropertyTypes);
     $this->assertEqual($Property->property_type->count(), count($PropertyTypes));
     $Property = $Property->findFirstBy('description', 'Gandia Palace');
     $Property->property_type->load();
     $this->assertEqual($Property->property_type->count(), count($PropertyTypes));
     $Property = $Property->findFirstBy('description', 'Gandia Palace');
     $PropertyType->set('description', 'Palace');
     $Property->property_type->set($PropertyType);
     $this->assertEqual($Property->property_type->count(), 1);
     $this->assertTrue(in_array('property_types', $Property->getAssociatedIds()));
     $Property = $Property->findFirstBy('description', 'Gandia Palace', array('include' => 'property_types'));
     $this->assertIdentical($Property->property_type->count(), 1);
     $this->assertTrue($Property->property_type->delete($Property->property_types[0]));
     $this->assertIdentical($Property->property_type->count(), 0);
     $Property = $Property->findFirstBy('description', 'Gandia Palace');
     $this->assertIdentical($Property->property_type->count(), 0);
     $this->assertFalse($Property->findFirstBy('description', 'Gandia Palace', array('include' => 'property_types')));
     /** /}/**/
     $Property =& new Property(array('description' => 'Luxury Downtown House'));
     $Apartment =& $PropertyType->create(array('description' => 'Apartment'));
     $Loft =& $PropertyType->create(array('description' => 'Loft'));
     $Penthouse =& $PropertyType->create(array('description' => 'Penthouse'));
     $Property->property_type->setByIds(array($Apartment->getId(), $Loft->getId(), $Penthouse->getId()));
     $this->assertEqual($Property->property_type->count(), 3);
     $this->assertTrue($Property->save());
     $this->assertTrue($Property->save());
     $this->assertTrue($Property =& $Property->findFirstBy('description', 'Luxury Downtown House'));
     $Property->property_type->load();
     $this->assertEqual($Property->property_type->count(), 3);
     $FoundApartment = $Property->property_type->find('first', array('description' => 'Apartment'));
     $this->assertEqual($Apartment->get('description') . $Apartment->getId(), $FoundApartment->get('description') . $FoundApartment->getId());
     $FoundTypes = $Property->property_type->find();
     $this->assertEqual(count($FoundTypes), $Property->property_type->count());
     $descriptions = array();
     foreach ($FoundTypes as $FoundType) {
         $descriptions[] = $FoundType->get('description');
     }
     sort($descriptions);
     $this->assertEqual($descriptions, array('Apartment', 'Loft', 'Penthouse'));
     $this->assertFalse($Property->property_type->isEmpty());
     $this->assertEqual($Property->property_type->getSize(), 3);
     $this->assertTrue($Property->property_type->clear());
     $this->assertTrue($Property->property_type->isEmpty());
     $this->assertEqual($Property->property_type->getSize(), 0);
     $Property =& new Property();
     $LandProperty =& $Property->property_type->build(array('description' => 'Land'));
     $this->assertReference($LandProperty, $Property->property_types[0]);
     $this->assertTrue($Property->property_types[0]->isNewRecord());
     $this->assertEqual($LandProperty->getType(), 'PropertyType');
     $Property->set('description', 'Plot of Land in Spain');
     $this->assertTrue($Property->save());
     $this->assertTrue($LandProperty = $Property->findFirstBy('description', 'Plot of Land in Spain', array('include' => 'property_types')));
     $this->assertEqual($LandProperty->property_types[0]->get('description'), 'Land');
     $Property =& new Property(array('description' => 'Seaside house in Altea'));
     $SeasidePropertyType =& $Property->property_type->create(array('description' => 'Seaside property'));
     $this->assertReference($SeasidePropertyType, $Property->property_types[0]);
     $this->assertTrue($SeasidePropertyType->isNewRecord());
     $Property =& new Property(array('description' => 'Bermi\'s appartment in Altea'));
     $this->assertTrue($Property->save());
     $SeasidePropertyType =& $Property->property_type->create(array('description' => 'Seaside property'));
     $this->assertReference($SeasidePropertyType, $Property->property_types[0]);
     $this->assertFalse($SeasidePropertyType->isNewRecord());
     $this->assertTrue($PropertyInAltea = $Property->findFirstBy('description', 'Bermi\'s appartment in Altea', array('include' => 'property_types')));
     $this->assertEqual($PropertyInAltea->property_types[0]->get('description'), 'Seaside property');
     // Testing destroy callbacks
     $this->assertTrue($Property =& $Property->findFirstBy('description', 'Bermi\'s appartment in Altea'));
     $property_id = $Property->getId();
     //echo '<pre>'.print_r($Property->_associations, true).'</pre>';
     $this->assertTrue($Property->destroy());
     $RecordSet = $PropertyInAltea->_db->Execute('SELECT * FROM properties_property_types WHERE property_id = ' . $property_id);
     $this->assertEqual($RecordSet->RecordCount(), 0);
 }
Example #9
0
<?php

/**
 * @var $this  InstructionController
 * @var $model Deal
 * @var $form  AdminFilterForm
 * @var $title String
 */
$types = PropertyType::model()->getTypes();
$subtypes = array();
foreach ($types as $key => $value) {
    $subtypes[$value->pty_id] = PropertyType::model()->getTypes($value->pty_id);
}
$offices = Office::model()->enabledClientMatching()->findAll();
$matchingPostcodes = [];
foreach ($offices as $value) {
    $matchingPostcodes[$value->id] = LinkOfficeToPostcode::model()->getPostcodeList($value->id);
}
$form = $this->beginWidget('AdminFilterForm', array('action' => Yii::app()->getBaseUrl() . '/' . Yii::app()->request->getPathInfo(), 'id' => 'instruction-filter-form', 'enableAjaxValidation' => false, 'model' => [$model], 'ajaxFilterGrid' => 'instruction-list', 'storeInSession' => false, 'focus' => [$model, 'searchString']));
?>
<fieldset>
	<div class="block-header">Preference</div>
	<div class="control-group">
		<label class="control-label"></label>

		<div class="controls">
			<?php 
echo $title;
?>
			<br>
			<span class="hint">Client will receive email alert for following properties</span>
Example #10
0
 /**
  * @return array validation rules for model attributes.
  */
 public function rules()
 {
     $propertyTypes = CHtml::listData(PropertyType::model()->findAll(), 'pty_id', 'pty_id');
     return array(array('pro_tenure', 'in', 'range' => self::getTenureTypes()), array('pro_ptype, pro_psubtype', 'in', 'range' => $propertyTypes), array('pro_floor', 'in', 'range' => self::getFloorNames()), array('pro_parking', 'in', 'range' => self::getParkigTypes()), array('pro_garden', 'in', 'range' => self::getGardenTypes()), array('pro_bedroom, pro_reception, pro_bathroom, pro_floors,  pro_country, pro_area', 'numerical', 'integerOnly' => true), array('pro_leaseend,groundrent, servicecharge', 'type', 'type' => 'string'), array('addressId', 'required', 'message' => 'Property must have an address'), array('fullAddressString, pro_id, pro_status, pro_addr1, pro_addr2, pro_addr3, pro_addr4, pro_addr5, pro_addr6, pro_country, pro_postcode, pro_area, pro_pcid, pro_dump, pro_std, pro_ward, pro_authority, pro_east, pro_north, pro_latitude, pro_longitude, pro_ptype, pro_psubtype, pro_built, pro_refurbed, pro_floors, pro_floor, pro_listed, pro_parking, pro_garden, pro_gardenlength, pro_reception, pro_bedroom, pro_bathroom, pro_tenure, pro_leaseend, pro_location', 'safe', 'on' => 'search'));
 }
Example #11
0
 /**
  * 房源列表
  */
 public function actionIndex()
 {
     Yii::app()->clientScript->registerCssFile(Yii::app()->theme->baseUrl . '/css/house.css');
     $city_id = Yii::app()->request->getQuery('cd1', 0);
     $district_id = Yii::app()->request->getQuery('cd2', 0);
     //used to be Region search. Change it to municipality search
     $investType_id = Yii::app()->request->getQuery('cd3', 0);
     $propertyType_id = Yii::app()->request->getQuery('cd4', 0);
     $total_price = Yii::app()->request->getQuery('cd5', 0);
     $house_area = Yii::app()->request->getQuery('cd6', 0);
     $land_area = Yii::app()->request->getQuery('cd7', 0);
     $bedroom_num = Yii::app()->request->getQuery('cd8', 0);
     $construction_year = Yii::app()->request->getQuery('cd9', 0);
     $prop_featx_out = Yii::app()->request->getQuery('cd10', 0);
     $prop_featx_out2 = Yii::app()->request->getQuery('cd11', 0);
     $prop_featx_out3 = Yii::app()->request->getQuery('cd12', 0);
     $prop_featx_out_2 = Yii::app()->request->getQuery('cd12_2', 0);
     $prop_featx_out_3 = Yii::app()->request->getQuery('cd12_3', 0);
     $prop_featx_out_4 = Yii::app()->request->getQuery('cd12_4', 0);
     $prop_featx_out_5 = Yii::app()->request->getQuery('cd12_5', 0);
     $type = Yii::app()->request->getQuery('type', 'sale');
     $bath_tot = Yii::app()->request->getQuery('cd13', 0);
     $style = Yii::app()->request->getQuery('cd14', 0);
     $comp_pts = Yii::app()->request->getQuery('cd15', 0);
     $gar_spaces = Yii::app()->request->getQuery('cd16', 0);
     $bsmt1_out = Yii::app()->request->getQuery('cd17', 0);
     $pool = Yii::app()->request->getQuery('cd18', 0);
     $time_sort = Yii::app()->request->getQuery('time_sort', 'DESC');
     $price_sort = Yii::app()->request->getQuery('price_sort');
     $type = Yii::app()->request->getQuery('type');
     $diy_word = null;
     //$city_list = City::model()->findAll(array('order'=>'id ASC'));
     $city_list = City::model()->findAll(array('condition' => 'avail=1', 'order' => 'id ASC'));
     //$province_list  = Province::model()->findAll(array('condition'=>'avail=1','order'=>'id ASC'));
     if (!empty($city_id)) {
         $district_list = District::model()->findAll('city_id=:city_id', array(':city_id' => $city_id));
     } else {
         $district_list = District::model()->findAll();
     }
     $investType_list = InvestType::model()->findAll();
     $propertyType_list = PropertyType::model()->findAll();
     //按搜索条件查询房源信息
     $criteria = new CDbCriteria();
     //VOW limits
     $criteria->addCondition('src != "VOW"');
     //Search By Sale or Lease Type
     //$criteria->addCondition('s_r ="Sale"');
     if ($type == "sale") {
         $criteria->addCondition('s_r = "Sale"');
     } elseif ($type == "rent") {
         $criteria->addCondition('s_r = "Lease"');
     }
     //省份
     //if(!empty($city_id)) $criteria->addCondition('area!=""');
     if (!empty($city_id)) {
         $criteria->addCondition('city_id=' . $city_id);
     }
     //地区
     if (!empty($district_id)) {
         $criteria->addCondition('t.municipality ="' . $district_id . '"');
     }
     //挂牌时间
     if (!empty($investType_id)) {
         if ($investType_id == 1) {
             //数据
             $criteria->addCondition('DATE_SUB(CURDATE(), INTERVAL 1 DAY) <= date(pix_updt)');
         } elseif ($investType_id == 2) {
             //查询7数据
             $criteria->addCondition('DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(pix_updt)');
         } elseif ($investType_id == 3) {
             //查询1月数据
             $criteria->addCondition('DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(pix_updt)');
         } elseif ($investType_id == 4) {
             //查询三月数据
             $criteria->addCondition('DATE_SUB(CURDATE(), INTERVAL 90 DAY) <= date(pix_updt)');
         }
     }
     if (!empty($prop_featx_out)) {
         if ($prop_featx_out == 1) {
             $criteria->addCondition('prop_feat1_out like "%Waterfront%" or prop_feat2_out like "%Waterfront%" or prop_feat3_out like "%Waterfront%" or prop_feat4_out like "%Waterfront%" or prop_feat5_out like "%Waterfront%" or prop_feat6_out like "%Waterfront%" ');
         } elseif ($prop_featx_out == 2) {
             $criteria->addCondition('prop_feat1_out like "%Pond%" or prop_feat2_out like "%Pond%" or prop_feat3_out like "%Pond%" or prop_feat4_out like "%Pond%" or prop_feat5_out like "%Pond%" or prop_feat6_out like "%Pond%" ');
         } elseif ($prop_featx_out == 3) {
             $criteria->addCondition('prop_feat1_out like "%Stream%" or prop_feat2_out like "%Stream%" or prop_feat3_out like "%Stream%" or prop_feat4_out like "%Stream%" or prop_feat5_out like "%Stream%" or prop_feat6_out like "%Stream%" ');
         } elseif ($prop_featx_out == 4) {
             $criteria->addCondition('prop_feat1_out like "%River%" or prop_feat2_out like "%River%" or prop_feat3_out like "%River%" or prop_feat4_out like "%River%" or prop_feat5_out like "%River%" or prop_feat6_out like "%River%" ');
         } elseif ($prop_featx_out == 5) {
             $criteria->addCondition('prop_feat1_out like "%Lake%" or prop_feat2_out like "%Lake%" or prop_feat3_out like "%Lake%" or prop_feat4_out like "%Lake%" or prop_feat5_out like "%Lake%" or prop_feat6_out like "%Lake%" ');
         } elseif ($prop_featx_out == 6) {
             $criteria->addCondition('prop_feat1_out like "%Marina%" or prop_feat2_out like "%Marina%" or prop_feat3_out like "%Marina%" or prop_feat4_out like "%Marina%" or prop_feat5_out like "%Marina%" or prop_feat6_out like "%Marina%" ');
         }
     }
     if (!empty($prop_featx_out2)) {
         if ($prop_featx_out2 == 1) {
             $criteria->addCondition('prop_feat1_out like "%Treed%" or prop_feat2_out like "%Treed%" or prop_feat3_out like "%Treed%" or prop_feat4_out like "%Treed%" or prop_feat5_out like "%Treed%" or prop_feat6_out like "%Treed%" ');
         } elseif ($prop_featx_out2 == 2) {
             $criteria->addCondition('prop_feat1_out like "%Wooded%" or prop_feat2_out like "%Wooded%" or prop_feat3_out like "%Wooded%" or prop_feat4_out like "%Wooded%" or prop_feat5_out like "%Wooded%" or prop_feat6_out like "%Wooded%" ');
         } elseif ($prop_featx_out2 == 3) {
             $criteria->addCondition('prop_feat1_out like "%Grnbelt%" or prop_feat2_out like "%Grnbelt%" or prop_feat3_out like "%Grnbelt%" or prop_feat4_out like "%Grnbelt%" or prop_feat5_out like "%Grnbelt%" or prop_feat6_out like "%Grnbelt%" ');
         } elseif ($prop_featx_out2 == 4) {
             $criteria->addCondition('prop_feat1_out like "%Conserv%" or prop_feat2_out like "%Conserv%" or prop_feat3_out like "%Conserv%" or prop_feat4_out like "%Conserv%" or prop_feat5_out like "%Conserv%" or prop_feat6_out like "%Conserv%" ');
         } elseif ($prop_featx_out2 == 5) {
             $criteria->addCondition('prop_feat1_out like "%Ravine%" or prop_feat2_out like "%Ravine%" or prop_feat3_out like "%Ravine%" or prop_feat4_out like "%Ravine%" or prop_feat5_out like "%Ravine%" or prop_feat6_out like "%Ravine%" ');
         }
     }
     //$prop_featx_out3==>学校 1  prop_feat1_out like "%School%" or prop_feat2_out like "%School%" or prop_feat3_out like "%School%" or prop_feat4_out like "%School%" or prop_feat5_out like "%School%" or prop_feat6_out like "%School%"
     //$prop_featx_out_2==>医院 1 prop_feat1_out like "%Hospital%" or prop_feat2_out like "%Hospital%" or prop_feat3_out like "%Hospital%" or prop_feat4_out like "%Hospital%" or prop_feat5_out like "%Hospital%" or prop_feat6_out like "%Hospital%"
     //$prop_featx_out_3==>公共交通 1 prop_feat1_out like "%Public Transit%" or prop_feat2_out like "%Public Transit%" or prop_feat3_out like "%Public Transit%" or prop_feat4_out like "%Public Transit%" or prop_feat5_out like "%Public Transit%" or prop_feat6_out like "%Public Transit%"
     //$prop_featx_out_4==>高尔夫球场 1 prop_feat1_out like "%Golf%" or prop_feat2_out like "%Golf%" or prop_feat3_out like "%Golf%" or prop_feat4_out like "%Golf%" or prop_feat5_out like "%Golf%" or prop_feat6_out like "%Golf%"
     //$prop_featx_out_5==>图书馆 1 prop_feat1_out like "%Library%" or prop_feat2_out like "%Library%" or prop_feat3_out like "%Library%" or prop_feat4_out like "%Library%" or prop_feat5_out like "%Library%" or prop_feat6_out like "%Library%"
     if (!empty($prop_featx_out3)) {
         $criteria->addCondition('prop_feat1_out like "%School%" or prop_feat2_out like "%School%" or prop_feat3_out like "%School%" or prop_feat4_out like "%School%" or prop_feat5_out like "%School%" or prop_feat6_out like "%School%" ');
     }
     if (!empty($prop_featx_out_2)) {
         $criteria->addCondition('prop_feat1_out like "%Hospital%" or prop_feat2_out like "%Hospital%" or prop_feat3_out like "%Hospital%" or prop_feat4_out like "%Hospital%" or prop_feat5_out like "%Hospital%" or prop_feat6_out like "%Hospital%"');
     }
     if (!empty($prop_featx_out_3)) {
         $criteria->addCondition('prop_feat1_out like "%Public Transit%" or prop_feat2_out like "%Public Transit%" or prop_feat3_out like "%Public Transit%" or prop_feat4_out like "%Public Transit%" or prop_feat5_out like "%Public Transit%" or prop_feat6_out like "%Public Transit%"');
     }
     if (!empty($prop_featx_out_4)) {
         $criteria->addCondition('prop_feat1_out like "%Golf%" or prop_feat2_out like "%Golf%" or prop_feat3_out like "%Golf%" or prop_feat4_out like "%Golf%" or prop_feat5_out like "%Golf%" or prop_feat6_out like "%Golf%"');
     }
     if (!empty($prop_featx_out_5)) {
         $criteria->addCondition('prop_feat1_out like "%Library%" or prop_feat2_out like "%Library%" or prop_feat3_out like "%Library%" or prop_feat4_out like "%Library%" or prop_feat5_out like "%Library%" or prop_feat6_out like "%Library%"');
     }
     //物业类型
     if (!empty($propertyType_id)) {
         $criteria->addCondition('propertyType_id="' . $propertyType_id . '"');
     }
     if (strpos($total_price, '-') !== false) {
         $price = explode('-', $total_price);
         $minPrice = intval($price[0]) * 10000;
         $maxPrice = intval($price[1]) * 10000;
         if ($maxPrice != 0 || $minPrice != 0) {
             if ($maxPrice > $minPrice) {
                 $criteria->addCondition('lp_dol <' . $maxPrice);
             }
             $criteria->addCondition('lp_dol >=' . $minPrice);
         }
     }
     //房屋面积
     if (!empty($house_area)) {
         if ($house_area == 1) {
             $criteria->addCondition('house_area<700 and house_area > 1');
         } elseif ($house_area == 2) {
             $criteria->addCondition('house_area>=700 and house_area<1100');
         } elseif ($house_area == 3) {
             $criteria->addCondition('house_area>=1100 and house_area<1500');
         } elseif ($house_area == 4) {
             $criteria->addCondition('house_area>=1500 and house_area<2000');
         } elseif ($house_area == 5) {
             $criteria->addCondition('house_area>=2000 and house_area<2500');
         } elseif ($house_area == 6) {
             $criteria->addCondition('house_area>=2500 and house_area<3000');
         } elseif ($house_area == 7) {
             $criteria->addCondition('house_area>=3000 and house_area<3500');
         } elseif ($house_area == 8) {
             $criteria->addCondition('house_area>=3500 and house_area<4000');
         } elseif ($house_area == 9) {
             $criteria->addCondition('house_area>=4000');
         }
     }
     //土地面积
     if (!empty($land_area)) {
         if ($land_area == 1) {
             $criteria->addCondition('land_area<2000 and land_area > 100');
         } elseif ($land_area == 2) {
             $criteria->addCondition('land_area>=2000 and land_area<4000');
         } elseif ($land_area == 3) {
             $criteria->addCondition('land_area>=4000 and land_area<6000');
         } elseif ($land_area == 4) {
             $criteria->addCondition('land_area>=6000 and land_area<12000');
         } elseif ($land_area == 5) {
             $criteria->addCondition('land_area>=12000 and land_area<20000');
         } elseif ($land_area == 6) {
             $criteria->addCondition('land_area>=20000 and land_area<43560');
         } elseif ($land_area == 7) {
             $criteria->addCondition('land_area>=43560');
         }
     }
     if (!empty($bedroom_num)) {
         if ($bedroom_num <= 5) {
             $criteria->addCondition('br>' . $bedroom_num);
         } else {
             $criteria->addCondition('br>=' . $bedroom_num);
         }
     }
     if (!empty($construction_year)) {
         if (!empty(self::$searchData['cd9'][$construction_year]['min'])) {
             $criteria->addCondition('yr_built>' . self::$searchData['cd9'][$construction_year]['min']);
         }
         if (!empty(self::$searchData['cd9'][$construction_year]['max'])) {
             $criteria->addCondition('yr_built<=' . self::$searchData['cd9'][$construction_year]['max']);
         }
     }
     if (!empty($bath_tot)) {
         $criteria->addCondition('bath_tot>"' . $bath_tot . '"');
     }
     if (!empty($style)) {
         if ($style == "1") {
             $criteria->addCondition('style="Bungalow" or style="Bungalow-Raised" or style="Raised-Bungalow"');
         } elseif ($style == "2") {
             $criteria->addCondition('style="1 1/2 Storey"');
         } elseif ($style == "3") {
             $criteria->addCondition('style="2-Storey"');
         } elseif ($style == "4") {
             $criteria->addCondition('style="2 1/2 Storey"');
         } elseif ($style == "5") {
             $criteria->addCondition('style="3-Storey"');
         }
     }
     if (!empty($comp_pts)) {
         if ($comp_pts == "1") {
             $criteria->addCondition('comp_pts="S"');
         } elseif ($comp_pts == "2") {
             $criteria->addCondition('comp_pts="N"');
         } elseif ($comp_pts == "3") {
             $criteria->addCondition('comp_pts="E"');
         } elseif ($comp_pts == "4") {
             $criteria->addCondition('comp_pts="W"');
         }
     }
     if (!empty($gar_spaces)) {
         $criteria->addCondition('gar_spaces >"' . $gar_spaces . '"');
     }
     if (!empty($bsmt1_out)) {
         $criteria->addCondition('bsmt1_out="' . $bsmt1_out . '"');
     }
     if (!empty($pool)) {
         if ($pool == "1") {
             //$criteria->addCondition('pool="Abv" or pool="Grnd" or pool="Indoor" or pool="Inground"');
             $criteria->addCondition('pool like "%pool%"');
         } elseif ($pool == "2") {
             $criteria->addCondition('pool="" or pool="None"');
         }
     }
     #$criteria->order = 'id DESC';
     $criteria->order = 'city_id ASC,lp_dol DESC';
     if (!empty($time_sort)) {
         $criteria->order = 'pix_updt ' . $time_sort . ', city_id ASC,lp_dol DESC';
     }
     if (!empty($price_sort)) {
         $criteria->order = 'lp_dol ' . $price_sort;
     }
     $criteria->with = array('mname', 'propertyType', 'city');
     $count = House::model()->count($criteria);
     $pager = new CPagination($count);
     $pager->pageSize = 10;
     $pager->applyLimit($criteria);
     $house_list = House::model()->findAll($criteria);
     //generate cookie list for previous and next page
     foreach ($house_list as $val) {
         //generate ml_num for cookielist
         $ml_list = $ml_list . "," . $val->ml_num;
     }
     $listcookie = "fzd_houselist";
     if (!isset($_COOKIE[$listcookie])) {
         setcookie($listcookie, "", time() - 3600);
     }
     setcookie($listcookie, $ml_list, time() + 86400 * 30, "/");
     //end of adding cookie
     $collection_list = array();
     if ($this->_account['userId']) {
         $collect_model = Collect::model()->find('user_id=:user_id', array(':user_id' => $this->_account['userId']));
         if (!empty($collect_model)) {
             $collection_list = explode(',', $collect_model->collection);
         }
     }
     $data = array('cd1' => $city_id, 'cd2' => $district_id, 'cd3' => $investType_id, 'cd4' => $propertyType_id, 'cd5' => $total_price, 'cd6' => $house_area, 'cd7' => $land_area, 'cd8' => $bedroom_num, 'cd9' => $construction_year, 'cd10' => $prop_featx_out, 'cd11' => $prop_featx_out2, 'cd12' => $prop_featx_out3, 'cd12_2' => $prop_featx_out_2, 'cd12_3' => $prop_featx_out_3, 'cd12_4' => $prop_featx_out_4, 'cd12_5' => $prop_featx_out_5, 'cd13' => $bath_tot, 'cd14' => $style, 'cd15' => $comp_pts, 'cd16' => $gar_spaces, 'cd17' => $bsmt1_out, 'cd18' => $pool, 'time_sort' => $time_sort, 'price_sort' => $price_sort, 'diy_price' => json_encode($diy_price), 'city_list' => $city_list, 'district_list' => $district_list, 'investType_list' => $investType_list, 'propertyType_list' => $propertyType_list, 'count' => $count, 'house_list' => $house_list, 'collection_list' => $collection_list, "pages" => $pager, "type" => $type);
     $this->render('index', $data);
 }
Example #12
0
 /**
  * 取用户组列表
  * @param $type
  */
 protected function _groupList($type = 'user')
 {
     switch ($type) {
         case 'user':
             return AdminGroup::model()->findAll();
             break;
         case 'subject':
             return Subject::model()->findAll();
             break;
         case 'city':
             return City::model()->findAll();
             break;
         case 'district':
             return District::model()->findAll();
             break;
         case 'investType':
             return InvestType::model()->findAll();
             break;
         case 'propertyType':
             return PropertyType::model()->findAll();
             break;
         case 'house':
             return House::model()->findAll();
             break;
         case 'match':
             return Match::model()->findAll();
             break;
     }
 }
Example #13
0
 public function actionGetMapHouse()
 {
     $result = array();
     if (empty($_POST)) {
         $result['IsError'] = true;
         $result['Message'] = '数据接收失败';
     } else {
         $result['IsError'] = false;
         //根据条件查询地图
         $criteria = new CDbCriteria();
         //   $criteria->join = 'join city_id as b on b.id = t.city_id';
         // $criteria->join .= ' join propertyType_id as c on c.id = t.propertyType_id';
         /* 排序
            * <span data-value="1">价格:从高到低</span>
             <span data-value="2">价格:从低到高</span>
             <span data-value="3">日期:从后到前</span>
             <span data-value="4">日期:从前到后</span>
            */
         if ($_POST['orderby'] == 1) {
             $criteria->order = 't.lp_dol desc';
         } else {
             if ($_POST['orderby'] == 2) {
                 $criteria->order = 't.lp_dol asc';
             } else {
                 if ($_POST['orderby'] == 3) {
                     $criteria->order = 't.yr_built asc';
                 } else {
                     if ($_POST['orderby'] == 4) {
                         $criteria->order = 't.yr_built desc';
                     } else {
                         $criteria->order = 't.id desc';
                     }
                 }
             }
         }
         //city_id
         if (!empty($_POST['country']) && trim($_POST['country']) != 'undefined') {
             $criteria->addCondition("t.city_id = :city_id");
             $criteria->params += array(':city_id' => intval($_POST['country']));
         }
         //district_id
         if (!empty($_POST['district']) && trim($_POST['district']) != 'undefined') {
             $criteria->addCondition("t.district_id = :district_id");
             $criteria->params += array(':district_id' => intval($_POST['district']));
         }
         //卫生间数量 1-5
         if (!empty($_POST['housebaths']) && intval($_POST['housebaths']) > 0) {
             $criteria->addCondition("t.toilet_num = :toilet_num");
             $criteria->params += array(':toilet_num' => intval($_POST['housebaths']));
         }
         //土地面积
         if (!empty($_POST['houseground'])) {
             $ground = explode(',', $_POST['houseground']);
             $minGround = intval($ground[0]);
             $maxGround = intval($ground[1]);
             if ($minGround != 0 || $maxGround != 0) {
                 if ($maxGround > $minGround) {
                     $criteria->addCondition("t.depth*t.front_ft <= :maxGround");
                     $criteria->params += array(':maxGround' => $maxGround);
                 }
                 $criteria->addCondition("t.depth*t.front_ft >= :minGround");
                 $criteria->params += array(':minGround' => $minGround);
             }
         }
         //价格区间
         if (!empty($_POST['houseprice'])) {
             $price = explode(',', $_POST['houseprice']);
             $minPrice = intval($price[0]);
             $maxPrice = intval($price[1]);
             if ($maxPrice != 0 || $minPrice != 0) {
                 if ($maxPrice > $minPrice) {
                     $criteria->addCondition("t.lp_dol <= :maxPrice");
                     $criteria->params += array(':maxPrice' => $maxPrice);
                 }
                 $criteria->addCondition("t.lp_dol >= :minPrice");
                 $criteria->params += array(':minPrice' => $minPrice);
             }
         }
         //房型
         if (!empty($_POST['houseroom']) && intval($_POST['houseroom']) > 0) {
             $houseroom = intval($_POST['houseroom']);
             if ($houseroom == '6') {
                 $criteria->addCondition("t.br_plus >= :bedroom_num");
             } else {
                 if ($houseroom > 0) {
                     $criteria->addCondition("t.br_plus = :bedroom_num");
                 }
             }
             $criteria->params += array(':br_plus' => $houseroom);
         }
         //房屋类型
         if (!empty($_POST['housetype']) && intval($_POST['housetype']) != 0) {
             if ($_POST['housetype'] == 1) {
                 $criteria->addCondition('type_own1_out="Detached"');
             } elseif ($_POST['housetype'] == 2) {
                 $criteria->addCondition('type_own1_out="Townhouse" or type_own1_out="Att∕Row∕Twnhouse" or type_own1_out="Triplex" or type_own1_out="Fourplex" or type_own1_out="Multiplex"');
             } elseif ($_POST['housetype'] == 3) {
                 $criteria->addCondition('lp_dol>3000000');
             } elseif ($_POST['housetype'] == 4) {
                 $criteria->addCondition('type_own1_out="Semi-Detached" or type_own1_out="Link" or type_own1_out="Duplex"');
             } elseif ($_POST['housetype'] == 5) {
                 $criteria->addCondition('type_own1_out="Cottage" or type_own1_out="Rural Resid"');
             } elseif ($_POST['housetype'] == 6) {
                 $criteria->addCondition('type_own1_out="Farm"');
             } elseif ($_POST['housetype'] == 7) {
                 $criteria->addCondition('type_own1_out="Vacant Land"');
             } elseif ($_POST['housetype'] == 8) {
                 $criteria->addCondition('type_own1_out="Mobile/Trailer" or type_own1_out="Det W/Com Elements" or type_own1_out="Store W/Apt/offc"');
             }
             // $criteria->addCondition("t.propertyType_id = :propertyType_id");
             //   $criteria->params += array(':propertyType_id' => intval($_POST['housetype']));
         }
         //根据地区名字搜索
         if (!empty($_POST['city']) && trim($_POST['city']) != '州名/市名(中英)') {
             $city = trim($_POST['city']);
             $criteria->addCondition("t.addr like '%" . $city . "%' OR b.pinyin like '%" . $city . "%' OR b.englishName like '%" . $city . "%'");
         }
         //建造年份
         if (!empty($_POST['houseyear'])) {
             $year = explode(',', $_POST['houseyear']);
             $minYear = intval($year[0]);
             $maxYear = intval($year[1]);
             if ($maxYear != 0 || $minYear != 0) {
                 if ($maxYear > $minYear) {
                     $criteria->addCondition("t.yr <= :maxYear");
                     $criteria->params += array(':maxYear' => $maxYear);
                 }
                 $criteria->addCondition("t.yr >= :minYear");
                 $criteria->params += array(':minYear' => $minYear);
             }
         }
         $house = House::model()->findAll($criteria);
         //经纬度范围
         if ((empty($_POST['city']) || trim($_POST['city']) == '州名/市名(中英)') && empty($_POST['country']) && !empty($_POST['city'])) {
             if (!empty($house)) {
                 $bound = explode(',', $_POST['bounds']);
                 foreach ($house as $key => $val) {
                     $jingweidu = actionGetCodeAddress2($val->country . $val->community . $val->addr);
                     if (floatval($val->latitude) >= floatval($bound[0]) && floatval($jingweidu['lat']) <= floatval($bound[2]) && floatval($jingweidu['lng']) >= floatval($bound[1]) && floatval($jingweidu['lng']) <= floatval($bound[3])) {
                     } else {
                         unset($house[$key]);
                     }
                 }
             }
         }
         $count = count($house);
         //数据重组
         if (!empty($house)) {
             $result['Message'] = '成功';
             $result['Data']['AreaHouseCount'] = array();
             $result['Data']['MapHouseList'] = array();
             foreach ($house as $key => $val) {
                 $jingweidu = actionGetCodeAddress2($val->country . $val->community . $val->addr);
                 $mapHouseList = array();
                 $mapHouseList['Beds'] = $val->br_plus;
                 $mapHouseList['Baths'] = $val->bath_tot;
                 $mapHouseList['Kitchen'] = $val->kit_plus;
                 $mapHouseList['GeocodeLat'] = $jingweidu['lat'];
                 $mapHouseList['GeocodeLng'] = $jingweidu['lng'];
                 $mapHouseList['Address'] = $val->addr;
                 $mapHouseList['Price'] = $val->lp_dol;
                 $mapHouseList['Id'] = $val->id;
                 $propertyType = PropertyType::model()->findByPk($val->propertyType_id);
                 $mapHouseList['HouseType'] = !empty($propertyType) ? $propertyType->name : '';
                 $countryInfo = City::model()->findByPk($val->city_id);
                 $mapHouseList['CountryName'] = !empty($countryInfo) ? $countryInfo->name : '';
                 $mapHouseList['Country'] = $val->city_id;
                 $mapHouseList['Money'] = 'CAD';
                 $area2Name = District::model()->findByPk($val->district_id);
                 $mapHouseList['Area2Name'] = !empty($area2Name) ? $area2Name->name : '';
                 $mapHouseList['CoverImg'] = !empty($val->house_image) ? $val->house_image : 'uploads/201501/29cd77e5f187df554a1ff9facdc190e2.jpg';
                 $mapHouseList['BuildYear'] = $val->construction_year;
                 $result['Data']['MapHouseList'][] = $mapHouseList;
                 //数据总数拼装
                 if (!empty($countryInfo)) {
                     $provinceInfo = Province::model()->findByPk($countryInfo->province_id);
                 }
                 if (intval($_POST['zoom']) < 10 && intval($_POST['zoom']) >= 6) {
                     $result['Data']['AreaHouseCount'][$val->city_id]['Count']['NameCn'] = $val['name'];
                     $result['Data']['AreaHouseCount'][$val->city_id]['Count']['HouseCount'] += 1;
                     $result['Data']['AreaHouseCount'][$val->city_id]['Count']['GeocodeLat'] = !empty($countryInfo) ? $countryInfo->lat : '';
                     $result['Data']['AreaHouseCount'][$val->city_id]['Count']['GeocodeLng'] = !empty($countryInfo) ? $countryInfo->lnt : '';
                     $result['Data']['AreaHouseCount'][$val->city_id]['Count']['MaxZoom'] = 2;
                     $result['Data']['AreaHouseCount'][$val->city_id]['List'][] = $mapHouseList;
                 } else {
                     if (intval($_POST['zoom']) < 6) {
                         if (!empty($provinceInfo)) {
                             $result['Data']['AreaHouseCount'][$provinceInfo->id]['Count']['NameCn'] = $val['name'];
                             $result['Data']['AreaHouseCount'][$provinceInfo->id]['Count']['HouseCount'] += 1;
                             $result['Data']['AreaHouseCount'][$provinceInfo->id]['Count']['GeocodeLat'] = $provinceInfo->lat;
                             $result['Data']['AreaHouseCount'][$provinceInfo->id]['Count']['GeocodeLng'] = $provinceInfo->lnt;
                             $result['Data']['AreaHouseCount'][$provinceInfo->id]['Count']['MaxZoom'] = 2;
                             $result['Data']['AreaHouseCount'][$provinceInfo->id]['List'][] = $mapHouseList;
                         }
                     }
                 }
             }
         } else {
             $result['IsError'] = true;
             $result['Message'] = '无数据';
         }
     }
     echo json_encode($result);
 }
 /**
  * @param int $propertyType
  * @return bool
  */
 public function actionPropertySubTypes($propertyType = 0)
 {
     if (!$propertyType) {
         return false;
     }
     $propertySubTypes = PropertyType::model()->getTypes($propertyType);
     foreach ($propertySubTypes as $propertySubType) {
         echo "<option value='" . $propertySubType->pty_id . "'>" . $propertySubType->pty_title . "</option>";
     }
 }
Example #15
0
 /**
  * 房源列表
  */
 public function actionIndex()
 {
     Yii::app()->clientScript->registerCssFile(Yii::app()->theme->baseUrl . '/css/house.css');
     $city_id = Yii::app()->request->getQuery('cd1', 0);
     $district_id = Yii::app()->request->getQuery('cd2', 0);
     $investType_id = Yii::app()->request->getQuery('cd3', 0);
     $propertyType_id = Yii::app()->request->getQuery('cd4', 0);
     $total_price = Yii::app()->request->getQuery('cd5', 0);
     $house_area = Yii::app()->request->getQuery('cd6', 0);
     $land_area = Yii::app()->request->getQuery('cd7', 0);
     $bedroom_num = Yii::app()->request->getQuery('cd8', 0);
     $construction_year = Yii::app()->request->getQuery('cd9', 0);
     $prop_featx_out = Yii::app()->request->getQuery('cd10', 0);
     $time_sort = Yii::app()->request->getQuery('time_sort', 'DESC');
     $price_sort = Yii::app()->request->getQuery('price_sort');
     $diy_word = null;
     $city_list = City::model()->findAll(array('order' => 'id ASC'));
     if (!empty($city_id)) {
         $district_list = District::model()->findAll('city_id=:city_id', array(':city_id' => $city_id));
     } else {
         $district_list = District::model()->findAll();
     }
     $investType_list = InvestType::model()->findAll();
     $propertyType_list = PropertyType::model()->findAll();
     //按搜索条件查询房源信息
     $criteria = new CDbCriteria();
     if (!empty($city_id)) {
         $criteria->addCondition('city_id=' . $city_id);
     }
     if (!empty($district_id)) {
         $criteria->addCondition('district_id=' . $district_id);
     }
     if (!empty($propertyType_id)) {
         if ($propertyType_id == 1) {
             $criteria->addCondition('type_own1_out="Detached"');
         } elseif ($propertyType_id == 2) {
             $criteria->addCondition('type_own1_out="Townhouse" or type_own1_out="Att∕Row∕Twnhouse" or type_own1_out="Triplex" or type_own1_out="Fourplex" or type_own1_out="Multiplex"');
         } elseif ($propertyType_id == 3) {
             $criteria->addCondition('lp_dol>3000000');
         } elseif ($propertyType_id == 4) {
             $criteria->addCondition('type_own1_out="Semi-Detached" or type_own1_out="Link" or type_own1_out="Duplex"');
         } elseif ($propertyType_id == 5) {
             $criteria->addCondition('type_own1_out="Cottage" or type_own1_out="Rural Resid"');
         } elseif ($propertyType_id == 6) {
             $criteria->addCondition('type_own1_out="Farm"');
         } elseif ($propertyType_id == 7) {
             $criteria->addCondition('type_own1_out="Vacant Land"');
         } elseif ($propertyType_id == 8) {
             $criteria->addCondition('type_own1_out="Mobile/Trailer" or type_own1_out="Det W/Com Elements" or type_own1_out="Store W/Apt/offc"');
         }
     }
     if (!empty($total_price)) {
         if (!empty(self::$searchData['cd5'][$total_price]['min'])) {
             $criteria->addCondition('lp_dol>' . self::$searchData['cd5'][$total_price]['min']);
         }
         if (!empty(self::$searchData['cd5'][$total_price]['max'])) {
             $criteria->addCondition('lp_dol<=' . self::$searchData['cd5'][$total_price]['max']);
         }
     }
     if (!empty($house_area)) {
         if (!empty(self::$searchData['cd6'][$house_area]['min'])) {
             $criteria->addCondition('sqft>' . self::$searchData['cd6'][$house_area]['min']);
         }
         if (!empty(self::$searchData['cd6'][$house_area]['max'])) {
             $criteria->addCondition('sqft<=' . self::$searchData['cd6'][$house_area]['max']);
         }
     }
     if (!empty($land_area)) {
         if (!empty(self::$searchData['cd7'][$land_area]['min'])) {
             $criteria->addCondition('depth*front_ft>' . self::$searchData['cd7'][$land_area]['min']);
         }
         if (!empty(self::$searchData['cd7'][$land_area]['max'])) {
             $criteria->addCondition('depth*front_ft<=' . self::$searchData['cd7'][$land_area]['max']);
         }
     }
     if (!empty($bedroom_num)) {
         if ($bedroom_num <= 5) {
             $criteria->addCondition('br_plus=' . $bedroom_num);
         } else {
             $criteria->addCondition('br_plus>=' . $bedroom_num);
         }
     }
     if (!empty($construction_year)) {
         if (!empty(self::$searchData['cd9'][$construction_year]['min'])) {
             $criteria->addCondition('yr_built>' . self::$searchData['cd9'][$construction_year]['min']);
         }
         if (!empty(self::$searchData['cd9'][$construction_year]['max'])) {
             $criteria->addCondition('yr_built<=' . self::$searchData['cd9'][$construction_year]['max']);
         }
     }
     if (!empty($prop_featx_out)) {
         $criteria->addCondition('prop_feat1_out="' . $prop_featx_out . '"');
     }
     $criteria->order = 'id DESC';
     if (!empty($time_sort)) {
         $criteria->order = 'pix_updt ' . $time_sort;
     }
     if (!empty($price_sort)) {
         $criteria->order = 'lp_dol ' . $price_sort;
     }
     $count = House::model()->count($criteria);
     $pager = new CPagination($count);
     $pager->pageSize = 10;
     $pager->applyLimit($criteria);
     $house_list = House::model()->findAll($criteria);
     $collection_list = array();
     if ($this->_account['userId']) {
         $collect_model = Collect::model()->find('user_id=:user_id', array(':user_id' => $this->_account['userId']));
         if (!empty($collect_model)) {
             $collection_list = explode(',', $collect_model->collection);
         }
     }
     $data = array('cd1' => $city_id, 'cd2' => $district_id, 'cd3' => $investType_id, 'cd4' => $propertyType_id, 'cd5' => $total_price, 'cd6' => $house_area, 'cd7' => $land_area, 'cd8' => $bedroom_num, 'cd9' => $construction_year, 'cd10' => $prop_featx_out, 'time_sort' => $time_sort, 'price_sort' => $price_sort, 'diy_price' => json_encode($diy_price), 'city_list' => $city_list, 'district_list' => $district_list, 'investType_list' => $investType_list, 'propertyType_list' => $propertyType_list, 'count' => $count, 'house_list' => $house_list, 'collection_list' => $collection_list, "pages" => $pager);
     $this->render('index', $data);
 }
Example #16
0
							<?php 
}
?>
						</tr>
					</table>
				</div>
			</div>
			<?php 
echo $form->beginControlGroup($model, 'dea_ptype');
?>
			<?php 
echo $form->controlLabel($model, 'dea_ptype');
?>
			<div class="controls">
				<?php 
echo $form->checkBoxListWithSelectOnLabel($model, 'dea_ptype', Chtml::listData(PropertyType::model()->getTypes(), 'pty_id', 'pty_title'), ['separator' => ' ']);
?>
				<label style="display:inline-block; margin-left:28px;float:none; margin-right:12px; font-weight: bold">Branch</label>
				<?php 
echo $form->checkBoxListWithSelectOnLabel($model, 'dea_branch', CHtml::listData(Branch::model()->active()->findAll(), 'bra_id', 'bra_title'), ['separator' => ' ']);
?>
			</div>
			<?php 
echo $form->endControlGroup();
?>

			<div class="control-group">
				<label class="control-label">
					Negotiator
				</label>
Example #17
0
		</div>
		<div class="control-group">
			<label class="control-label">Bedrooms</label>

			<div class="controls">
				<?php 
echo $form->textField($instructionModel, 'dea_bedroom');
?>
			</div>
		</div>
		<div class="control-group">
			<label class="control-label">PropertyType</label>

			<div class="controls">
				<?php 
echo $form->checkBoxList($instructionModel, 'dea_ptype', CHtml::listData(PropertyType::model()->getTypes(), 'pty_id', 'pty_title'), ['separator' => ' ']);
?>
			</div>
		</div>
		<div class="control-group">
			<label class="control-label">Receive Emails</label>

			<div class="controls">
				<?php 
echo $form->checkBox($clientModel, 'cli_saleemail', ['value' => 'Yes', 'uncheckValue' => '']);
?>
			</div>
		</div>

	</div>
</fieldset>