Ejemplo n.º 1
0
 private function saveAndDeleteMedia($type)
 {
     /** @var $model Media [ ] */
     $model = new Media();
     $mockRecord = $this->getMockRecord();
     $instruction = Deal::model()->findByPk($mockRecord['med_row']);
     $this->assertNotEmpty($instruction, "instruction not exist");
     $property = Property::model()->findByPk($instruction->dea_prop);
     $this->assertNotEmpty($property, "property not exist");
     $this->assertNotNull($property->addressId, "property has no address");
     $address = Address::model()->findByPk($property->addressId);
     $this->assertNotEmpty($address, " Address not exist");
     $model->setAttributes($this->getMockRecord());
     $model->file = $this->getMockCuploadedImage('image/jpeg', 1);
     if ($type == Media::TYPE_PHOTO) {
         $model->setCropFactor($this->getCropFactor());
     } elseif ($type == Media::TYPE_EPC || $type == Media::TYPE_FLOORPLAN) {
         $model->otherMedia = $type;
     }
     $this->assertTrue($model->validate(), "record not validated");
     $this->assertTrue($model->save(), "record not saved");
     foreach ($model->getImageSizes() as $imageSize) {
         $this->assertFileExists($model->getFullPath($imageSize), $imageSize . " does not exist");
     }
     $this->deleteMedia($model->med_id);
 }
Ejemplo n.º 2
0
 public function testSetClientsSavesClientsAfterModelIsSaved()
 {
     $model = $this->getModel('search');
     $model->setClients([1, 2], Property::CLIENT_TYPE_TENANT);
     $this->assertTrue(is_array($model->tenants));
     $model->save(false);
     $model = Property::model()->findByPk($model->pro_id);
     $this->assertTrue(is_array($model->tenants));
     $this->assertCount(2, $model->tenants);
 }
Ejemplo n.º 3
0
 public function actionIndex()
 {
     Yii::beginProfile('wishlist');
     $criteria = PropertyWishlistApi::getCriteriaObjectForUser(Yii::app()->user->id);
     $count = Property::model()->count($criteria);
     $pages = new CPagination($count);
     $pages->pageSize = Yii::app()->params['resultsPerPage'];
     $pages->applyLimit($criteria);
     $properties = PropertyWishlistApi::searchWithCriteria($criteria);
     //	$projects = ProjectWishlistApi::getWishlistProjectsByUserId(Yii::app()->user->id);
     $this->render('index', array('properties' => $properties, 'count' => $count, 'pages' => $pages));
     Yii::endProfile('wishlist');
 }
Ejemplo n.º 4
0
 public static function getWishlistPropertiesByUserId($userId)
 {
     $models = Property::model()->findAllBySql("SELECT * FROM property where id IN(SELECT property_id FROM property_wishlist WHERE user_id=:userId)", array(':userId' => $userId));
     $result = array();
     if ($models) {
         foreach ($models as $model) {
             $result[] = $model;
         }
         return $result;
     } else {
         return false;
     }
 }
Ejemplo n.º 5
0
 public function actionSimilar($id)
 {
     Yii::beginProfile('requirements_view');
     $session = Yii::app()->session;
     $requirement = RequirementApi::getRequirementById($id);
     if (!$requirement) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     $userDetails = UserApi::getUserProfileDetails($requirement->user_id);
     $data['i_want_to'] = $requirement->i_want_to;
     $data['min_price'] = $requirement->min_price;
     $data['max_price'] = $requirement->max_price;
     $propertytypes = RequirementPropertyTypesApi::getPropertyTypesByRequirementId($requirement->id);
     $propertytypeids = null;
     if ($propertytypes) {
         foreach ($propertytypes as $propertytype) {
             $propertytypeids[] = $propertytype->property_type_id;
         }
     }
     $data['property_type_id'] = $propertytypeids;
     $amenity_ids = RequirementAmenitiesApi::getAmenitiesByRequirementId($requirement->id);
     $amenityids = null;
     if ($amenity_ids) {
         foreach ($amenity_ids as $amenity_id) {
             $amenityids[] = $amenity_id->amenity_id;
         }
     }
     $data['PropertyAmenities'] = $amenityids;
     $cityids = RequirementCitiesApi::getCitiesByRequirementId($requirement->id);
     $city = null;
     if ($cityids) {
         foreach ($cityids as $cityid) {
             $city[] = $cityid->city_id;
         }
     }
     $data['city_id'] = $city;
     $bedrooms = RequirementBedroomsApi::getBedroomsByRequirementId($requirement->id);
     $beds = null;
     if ($bedrooms) {
         foreach ($bedrooms as $bedroom) {
             $beds[] = $bedroom->bedrooms;
         }
     }
     $data['bedrooms'] = $beds;
     $criteria = PropertyApi::getCriteriaObjectForRequirement($data);
     $count = Property::model()->count($criteria);
     $pages = new CPagination($count);
     $pages->pageSize = Yii::app()->params['resultsPerPage'];
     $pages->applyLimit($criteria);
     $properties = PropertyApi::searchMyPropertyWithCriteria($criteria);
     $this->render('similar', array('requirement' => $requirement, 'userDetails' => $userDetails, 'properties' => $properties, 'pages' => $pages, 'propertiesCount' => $count));
     Yii::endProfile('requirements_view');
 }
Ejemplo n.º 6
0
echo $form->labelEx($model, 'user_id');
?>
		<?php 
echo $form->dropDownList($model, 'user_id', UserApi::getUserList(), array('empty' => 'Select'));
?>
		<?php 
echo $form->error($model, 'user_id');
?>
	</div>

	<div class="row">
		<?php 
echo $form->labelEx($model, 'property_id');
?>
		<?php 
echo $form->dropDownList($model, 'property_id', CHtml::listData(Property::model()->findAll(), 'id', 'property_name'), array('empty' => 'Select'));
?>
		<?php 
echo $form->error($model, 'property_id');
?>
	</div>

	<div class="row">
		<?php 
echo $form->label($model, 'rate');
?>
		<?php 
echo $form->textField($model, 'rate');
?>
	</div>
Ejemplo n.º 7
0
 public function actionSearch()
 {
     Yii::beginProfile('search_property_and_people');
     // Initiate the entities.
     $properties = null;
     $users = null;
     $projects = null;
     $data = null;
     $data_user = null;
     $data_project = null;
     $data_user['user_type'] = 'agent';
     $amenities = null;
     $pages = null;
     $pagesAgent = null;
     $pagesBuilder = null;
     $pagesSpecialists = null;
     $pagesProject = null;
     $criteria = PropertyApi::getCriteriaObject($data);
     $totalProp = Property::model()->count();
     $pages = new CPagination($totalProp);
     $pages->pageSize = Yii::app()->params['resultsPerPage'];
     $pages->applyLimit($criteria);
     $properties = PropertyApi::searchPropertyWithCriteria($criteria);
     $propertiesCount = $totalProp;
     $totalUser = 0;
     $criteria = UserApi::getCriteriaObject($data_user);
     $users = UserApi::searchUser($data_user);
     if ($users) {
         $totalUser = count($users);
     }
     $pagesUser = new CPagination($totalUser);
     $pagesUser->pageSize = Yii::app()->params['resultsPerPage'];
     $pagesUser->applyLimit($criteria);
     $users = UserApi::searchUserWithCriteria($criteria);
     //$users = UserApi::searchUser($data_user);
     $projects = ProjectApi::searchProject($data_project);
     /* Property Model */
     $modelProperty = new Property();
     $modelState = new GeoState();
     $modelCity = new GeoCity();
     $propertyAmenities = new PropertyAmenities();
     // echo '<pre>';var_dump($pages);die();
     /* People Models */
     $modelUser = new UserCredentials();
     $modelProfile = new UserProfiles();
     $modelSpecialistType = new UserSpecialistType();
     /* Project Model */
     $modelProject = new Projects();
     $projectAmenities = new ProjectAmenities();
     if (isset($_POST['search']) && isset($_POST['mode'])) {
         if ($_POST['mode'] == "property") {
             $modelProperty->attributes = $_POST['Property'];
             //$modelProperty['i_want_to'] = isset($_POST['Property']['i_want_to'])?$_POST['Property']['i_want_to'] : null;
             $data = $_POST['Property'];
             $data['keyword'] = isset($_POST['keyword']) ? $_POST['keyword'] : null;
             $data['city'] = $_POST['GeoCity']['city'];
             $data['budget_min'] = $_POST['budget_min'];
             $data['budget_max'] = $_POST['budget_max'];
             $data['without_budget'] = isset($_POST['without_budget']) ? $_POST['without_budget'] : 0;
             $data['PropertyAmenities'] = isset($_POST['amenity_id']) ? $_POST['amenity_id'] : null;
             $data['posted_by_all'] = isset($_POST['posted_by_all']) ? $_POST['posted_by_all'] : 0;
             $data['posted_by'] = isset($_POST['posted_by']) ? $_POST['posted_by'] : null;
             $criteria = PropertyApi::getCriteriaObject($data);
             $totalProp = Property::model()->count();
             $pages = new CPagination($totalProp);
             $pages->pageSize = Yii::app()->params['resultsPerPage'];
             $pages->applyLimit($criteria);
             $properties = PropertyApi::searchPropertyWithCriteria($criteria);
             $propertiesCount = $totalProp;
             //$properties = PropertyApi::searchProperty($data);
         } elseif ($_POST['mode'] == "people") {
             $modelProfile->attributes = $_POST['UserProfiles'];
             $data_user = null;
             $data_user = $_POST['UserProfiles'];
             $data_user['user_type'] = $_POST['user_type'];
             $data_user['property_type_id'] = isset($_POST['property_type_id']) ? $_POST['property_type_id'] : null;
             $data_user['keyword'] = isset($_POST['keyword']) ? $_POST['keyword'] : null;
             $data_user['specialist_type_id'] = isset($_POST['specialist_type_id']) ? $_POST['specialist_type_id'] : null;
             //$users = UserApi::searchUser($data_user);
             if ($_POST['user_type'] == "agent") {
                 $totalAgent = '0';
                 $criteria = AgentProfileApi::getCriteriaObject($data_user);
                 $users = AgentProfileApi::searchAgents($data_user);
                 if ($users) {
                     $totalAgent = count($users);
                 }
                 $pagesAgent = new CPagination($totalAgent);
                 $pagesAgent->pageSize = Yii::app()->params['resultsPerPage'];
                 $pagesAgent->applyLimit($criteria);
                 $users = AgentProfileApi::searchAgentWithCriteria($criteria);
                 //	$users = AgentProfileApi::searchAgents($data_user);
             }
             if ($_POST['user_type'] == "builder") {
                 $totalBuilder = '0';
                 $criteria = BuilderProfileApi::getCriteriaObject($data_user);
                 $users = BuilderProfileApi::searchBuilderWithCriteria($criteria);
                 if ($users) {
                     $totalBuilder = count($users);
                 }
                 $pagesBuilder = new CPagination($totalBuilder);
                 $pagesBuilder->pageSize = Yii::app()->params['resultsPerPage'];
                 $pagesBuilder->applyLimit($criteria);
                 $users = BuilderProfileApi::searchBuilderWithCriteria($criteria);
             }
             if ($_POST['user_type'] == "specialist") {
                 $totalSpecialists = '0';
                 $criteria = SpecialistProfileApi::getCriteriaObject($data_user);
                 $users = SpecialistProfileApi::searchSpecialistsWithCriteria($criteria);
                 if ($users) {
                     $totalSpecialists = count($users);
                 }
                 $pagesSpecialists = new CPagination($totalSpecialists);
                 $pagesSpecialists->pageSize = Yii::app()->params['resultsPerPage'];
                 $pagesSpecialists->applyLimit($criteria);
                 $users = SpecialistProfileApi::searchSpecialistsWithCriteria($criteria);
             }
         } elseif ($_POST['mode'] == "project") {
             $modelProject->attributes = $_POST['Projects'];
             $amenities = isset($_POST['ProjectAmenities']['amenity_id']) ? $_POST['ProjectAmenities']['amenity_id'] : null;
             if ($amenities) {
                 $amenity_data = null;
                 foreach ($amenities as $i => $amenity) {
                     if ($i != 0) {
                         $amenity_data .= ',';
                     }
                     $amenity_data .= $amenity;
                 }
                 $amenities = $amenity_data;
             }
             $data = $_POST['Projects'];
             $data['keyword'] = isset($_POST['keyword']) ? $_POST['keyword'] : null;
             $data['city'] = $_POST['GeoCity']['city'];
             $data['budget_min'] = $_POST['budget_min'];
             $data['budget_max'] = $_POST['budget_max'];
             $data['ProjectAmenities'] = isset($_POST['ProjectAmenities']['amenity_id']) ? $_POST['ProjectAmenities']['amenity_id'] : null;
             $data['posted_by_all'] = isset($_POST['posted_by_all']) ? $_POST['posted_by_all'] : 0;
             $data['posted_by'] = isset($_POST['posted_by']) ? $_POST['posted_by'] : null;
             $totalProject = '0';
             $criteria = ProjectApi::getCriteriaObject($data);
             $users = ProjectApi::searchProjectWithCriteria($criteria);
             if ($users) {
                 $totalProject = count($users);
             }
             $pagesProject = new CPagination($totalProject);
             $pagesProject->pageSize = Yii::app()->params['resultsPerPage'];
             $pagesProject->applyLimit($criteria);
             $projects = ProjectApi::searchProjectWithCriteria($criteria);
         }
     }
     // echo '<br><pre>';var_dump($pages);die();
     $this->render('search', array('pages' => $pages, 'modelState' => $modelState, 'modelProperty' => $modelProperty, 'modelCity' => $modelCity, 'propertyAmenities' => $propertyAmenities, 'modelUser' => $modelUser, 'modelProfile' => $modelProfile, 'modelSpecialistType' => $modelSpecialistType, 'properties' => $properties, 'amenities' => $amenities, 'users' => $users, 'modelProject' => $modelProject, 'projectAmenities' => $projectAmenities, 'projects' => $projects, 'pagesAgent' => $pagesAgent, 'pagesUser' => $pagesUser, 'pagesBuilder' => $pagesBuilder, 'pagesSpecialists' => $pagesSpecialists, 'pagesProject' => $pagesProject, 'propertiesCount' => $propertiesCount));
     $this->render('search', array('pages' => $pages, 'modelProperty' => $modelProperty, 'modelCity' => $modelCity, 'propertyAmenities' => $propertyAmenities, 'modelUser' => $modelUser, 'modelProfile' => $modelProfile, 'modelSpecialistType' => $modelSpecialistType, 'properties' => $properties, 'amenities' => $amenities, 'users' => $users, 'modelProject' => $modelProject, 'projectAmenities' => $projectAmenities, 'projects' => $projects, 'pagesAgent' => $pagesAgent, 'pagesUser' => $pagesUser, 'pagesBuilder' => $pagesBuilder, 'pagesSpecialists' => $pagesSpecialists, 'pagesProject' => $pagesProject, 'propertiesCount' => $propertiesCount));
     $this->render('search', array('pages' => $pages, 'modelProperty' => $modelProperty, 'modelCity' => $modelCity, 'propertyAmenities' => $propertyAmenities, 'modelUser' => $modelUser, 'modelProfile' => $modelProfile, 'modelSpecialistType' => $modelSpecialistType, 'properties' => $properties, 'amenities' => $amenities, 'users' => $users, 'modelProject' => $modelProject, 'projectAmenities' => $projectAmenities, 'projects' => $projects, 'pagesAgent' => $pagesAgent, 'pagesUser' => $pagesUser, 'pagesBuilder' => $pagesBuilder, 'pagesSpecialists' => $pagesSpecialists, 'pagesProject' => $pagesProject, 'propertiesCount' => $propertiesCount));
     Yii::endProfile('search_property_and_people');
 }
Ejemplo n.º 8
0
 public static function getPropertyCount($projectId)
 {
     $models = Property::model()->findAllBySql("SELECT * FROM property where id IN(SELECT property_id FROM project_properties WHERE project_id=:projectId)", array(':projectId' => $projectId));
     $result = 0;
     if ($models) {
         $result = count($models);
     }
     return $result;
 }
Ejemplo n.º 9
0
 public function actionProperty()
 {
     Yii::beginProfile('search_property');
     $session = new CHttpSession();
     $session->open();
     //$session->destroy();
     //
     // Initiate the pagination variables.
     $properties = null;
     $data = null;
     //$data['new_launches'] = isset($_POST['new_launches']) ? $_POST['new_launches'] : '';
     $data['new_launches'] = isset($_GET['new_launches']) ? $_GET['new_launches'] : '';
     $data['agent_id'] = isset($_GET['agent_id']) ? $_GET['agent_id'] : '';
     $data['builder_id'] = isset($_GET['builder_id']) ? $_GET['builder_id'] : '';
     $data['i_want_to'] = isset($_GET['i_want_to']) ? $_GET['i_want_to'] : 'Sell';
     //	var_dump($data);die();
     //var_dump($data);die();
     // Initiate the models to be used in the search screen.
     $modelProperty = new Property();
     $modelState = new GeoState();
     $modelCity = new GeoCity();
     $modelLocality = new GeoLocality();
     $propertyAmenities = new PropertyAmenities();
     //	var_dump(Yii::app()->params['resultsPerPage']);die();
     //	var_dump($_POST);
     if (isset($_POST['Property'])) {
         // Populate the search criteria to a variable and pass it to the Api to get the criteria object.
         $modelProperty->attributes = $_POST['Property'];
         $data = $_POST['Property'];
         if (isset($_POST['minbuysearch'])) {
             $data['property_type_id'] = '';
             $data['transaction_type_id'] = '';
             $data['age_of_construction'] = '';
             $data['ownership_type_id'] = '';
             $data['jackpot_investment'] = '0';
             $data['featured'] = '0';
             $data['instant_home'] = '0';
             $data['keyword'] = '';
         }
         //$data['new_launches'] = isset($_POST['new_launches']) ? $_POST['new_launches'] : '';
         $data['new_launches'] = isset($_GET['new_launches']) ? $_GET['new_launches'] : '';
         $data['agent_id'] = isset($_GET['agent_id']) ? $_GET['agent_id'] : '';
         $data['builder_id'] = isset($_GET['builder_id']) ? $_GET['builder_id'] : '';
         $data['keyword'] = isset($_POST['keyword']) ? $_POST['keyword'] : null;
         $data['city_id'] = isset($_POST['GeoCity']['city']) ? $_POST['GeoCity']['city'] : '';
         $data['state_id'] = isset($_POST['GeoState']['state']) ? $_POST['GeoState']['state'] : '';
         $data['locality_id'] = isset($_POST['GeoLocality']['locality']) ? $_POST['GeoLocality']['locality'] : '';
         if ($data['locality_id'] != '') {
             $locality = GeoLocality::model()->find('locality=:locality', array(':locality' => $data['locality_id']));
             if ($locality) {
                 $data['locality_id'] = $locality->id;
             }
         }
         if ($data['keyword'] = 'Eg: Builder') {
             $data['keyword'] = '';
         }
         //var_dump($_POST['Property']['i_want_to']);
         if (isset($_POST['Property']['i_want_to'])) {
             if ($_POST['Property']['i_want_to'] == 'Rent') {
                 if (isset($_POST['budget_min_rent'])) {
                     $data['budget_min'] = $_POST['budget_min_rent'];
                 } elseif (isset($_POST['budget_min'])) {
                     $data['budget_min'] = $_POST['budget_min'];
                 }
                 if (isset($_POST['budget_max_rent'])) {
                     $data['budget_max'] = $_POST['budget_max_rent'];
                 } elseif (isset($_POST['budget_max'])) {
                     $data['budget_max'] = $_POST['budget_max'];
                 }
             } else {
                 if (isset($_POST['budget_min'])) {
                     $data['budget_min'] = $_POST['budget_min'];
                 }
                 if (isset($_POST['budget_max'])) {
                     $data['budget_max'] = $_POST['budget_max'];
                 }
             }
         } else {
             $data['i_want_to'] = 'sell';
             if (isset($_POST['budget_min'])) {
                 $data['budget_min'] = $_POST['budget_min'];
             }
             if (isset($_POST['budget_max'])) {
                 $data['budget_max'] = $_POST['budget_max'];
             }
         }
         $data['without_budget'] = isset($_POST['without_budget']) ? $_POST['without_budget'] : 0;
         $data['PropertyAmenities'] = isset($_POST['PropertyAmenities']['amenity_id']) ? $_POST['PropertyAmenities']['amenity_id'] : null;
         $data['posted_by_all'] = isset($_POST['posted_by_all']) ? $_POST['posted_by_all'] : 0;
         $data['posted_by'] = isset($_POST['posted_by']) ? $_POST['posted_by'] : null;
         $criteria = PropertyApi::getCriteriaObject($data);
         $total = Property::model()->count($criteria);
         $pages = new CPagination($total);
         $pages->pageSize = Yii::app()->params['resultsPerPage'];
         $pages->applyLimit($criteria);
         $properties = PropertyApi::searchPropertyWithCriteria($criteria);
         $propertiesCount = $total;
         $session['search-criteria-property'] = $criteria;
         $session['results-page'] = $total;
     } else {
         /*if(isset($_GET['page'])) {
         
         			$total=0;
         			$criteria = $session['search-criteria'];
         			$total = $session['results-page'];
         			$pages = new CPagination($total);
         			$pages->pageSize =  Yii::app()->params['resultsPerPage'];
         			$pages->applyLimit($criteria);
         			$propertiesCount=$totalProp;
         			$properties = PropertyApi::searchPropertyWithCriteria($criteria);
         			$total = count($properties);
         
         			} else {*/
         //	unset($session['search-criteria']);
         if (isset($session['search-criteria-property'])) {
             $criteria = $session['search-criteria-property'];
             //$criteria = new CDbCriteria;
         } else {
             $criteria = PropertyApi::getCriteriaObject($data);
         }
         if ($data['new_launches']) {
             $totalProp = Property::model()->count();
             $properties = PropertyApi::searchPropertyWithCriteria();
         } else {
             $totalProp = Property::model()->count($criteria);
             $properties = PropertyApi::searchPropertyWithCriteria($criteria);
         }
         $pages = new CPagination($totalProp);
         $pages->pageSize = Yii::app()->params['resultsPerPage'];
         $pages->applyLimit($criteria);
         $propertiesCount = $totalProp;
         //	}
     }
     $this->render('property', array('pages' => $pages, 'modelState' => $modelState, 'modelProperty' => $modelProperty, 'modelCity' => $modelCity, 'modelLocality' => $modelLocality, 'propertyAmenities' => $propertyAmenities, 'properties' => $properties, 'propertiesCount' => $propertiesCount));
     Yii::endProfile('search_property');
 }
Ejemplo n.º 10
0
 /**
  * makes a full copy of an instruction
  *
  * @param string $type
  * @param string $status
  * @return bool|\Deal
  * @throws InvalidArgumentException
  */
 public function copyAs($type = self::TYPE_SALES, $status = self::STATUS_PRODUCTION)
 {
     if (!in_array($type, [self::TYPE_LETTINGS, self::TYPE_SALES])) {
         throw new InvalidArgumentException('type must be one of the following [' . self::TYPE_LETTINGS . ', ' . self::TYPE_SALES . '] actual value is: ' . $type);
     }
     if (!in_array($status, self::getStatuses())) {
         throw new InvalidArgumentException('Status must be in the list [' . implode(', ', self::getStatuses()) . '] actual value is: ' . $status);
     }
     /** @var $property Property */
     $property = Property::model()->findByPk($this->dea_prop);
     $instruction = new Deal('copy');
     $instruction->setAttributes($this->attributes);
     $instruction->dea_type = $type;
     $instruction->dea_status = $status;
     $instruction->dea_marketprice = 0;
     $instruction->dea_launchdate = null;
     $instruction->importFromProperty($property);
     if ($instruction->save(false)) {
         InstructionVideo::copyRecords($this->dea_id, $instruction->dea_id);
         LinkInstructionToFeature::copyRecords($this->dea_id, $instruction->dea_id);
         LinkClientToInstruction::copyRecords($this->dea_id, $instruction->dea_id);
         Media::copyRecords($this->dea_id, $instruction->dea_id);
         return $instruction;
     }
     return false;
 }
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer $id the ID of the model to be loaded
  * @return Property the loaded model
  * @throws CHttpException
  */
 public function loadModel($id)
 {
     $model = Property::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     $model->strArrayImagenes = $model->imagesToStringArray();
     return $model;
 }
Ejemplo n.º 12
0
 private function loadModel($id = null)
 {
     if ($id === null) {
         $model = new Property();
     } else {
         $model = Property::model()->findByPk($id);
         if (!$model) {
             throw new CHttpException('404', 'Proeprty [id: ' . $id . '] not found');
         }
     }
     if (isset($_GET['addressId']) && $_GET['addressId']) {
         $address = Address::model()->findByPk($_GET['addressId']);
         if ($address) {
             $model->address = $address;
             $model->addressId = $address->id;
         }
     }
     if (isset($_GET['owner']) && $_GET['owner']) {
         $model->setClients([$_GET['owner']], Property::CLIENT_TYPE_OWNER);
     }
     if (isset($_GET['tenant']) && $_GET['tenant']) {
         $model->setClients([$_GET['tenant']], Property::CLIENT_TYPE_TENANT);
     }
     return $model;
 }
Ejemplo n.º 13
0
 /**
  * Returns the data model based on the primary key given in the GET variable.
  * If the data model is not found, an HTTP exception will be raised.
  * @param integer the ID of the model to be loaded
  */
 public function loadModel($id)
 {
     $model = Property::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
 public function actionSelectInstruction()
 {
     $builder = AppointmentBuilder::getCurrent();
     if (isset($_POST['Deal']) && $_POST['Deal']) {
         // need to finish instruction info;
         $instruction = Deal::model()->findByPk($builder->getInstructionId());
         $instruction->attributes = $_POST['Deal'];
         if ($instruction->save()) {
             $this->redirect(['InstructionSelected', 'instructionId' => $instruction->dea_id]);
         } else {
             echo "<pre style='color:blue' title='" . __FILE__ . "'>" . basename(__FILE__) . ":" . __LINE__ . "<br>";
             print_r($instruction->getErrors());
             echo "</pre>";
         }
         $this->render('createInstruction', ['model' => $instruction]);
         return;
     }
     /** @var $property Property */
     $property = Property::model()->findByPk($builder->getPropertyId());
     if (!$property->instructions || isset($_GET['new'])) {
         // need to create one.
         $instruction = new Deal();
         $instruction->dea_prop = $property->pro_id;
         $instruction->dea_status = Deal::STATUS_VALUATION;
         $instruction->importFromProperty($property);
         $instruction->save(false);
         $builder->setInstructionId($instruction->dea_id);
         $this->render('createInstruction', ['model' => $instruction]);
         return;
     }
     $this->render('selectInstruction', ['model' => $property]);
 }
Ejemplo n.º 15
0
 public function actionUpdate($id, $imageId = '')
 {
     //		var_dump($_GET);die();
     Yii::beginProfile('property_update');
     $model = Property::model()->findByPk($id);
     if (!$model) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     $jackpot = $model->jackpot_investment;
     $instant = $model->instant_home;
     $currentImages = PropertyImagesApi::getAllImages($model->id);
     $localitymodel = GeoLocality::model()->find('id=:id', array(':id' => $model->locality_id));
     $locality = $localitymodel->locality;
     if ($imageId && is_array($currentImages)) {
         $imageResult = false;
         if (array_key_exists($imageId, $currentImages)) {
             $imageResult = PropertyImagesApi::deleteImageByPk($imageId);
         }
         $this->renderPartial('_imageDeleted', array('result' => $imageResult));
         Yii::app()->end();
     }
     if ($model->user_id != Yii::app()->user->id) {
         throw new CHttpException(503, 'Unauthorized.');
     }
     // Open session object
     $session = new CHttpSession();
     $session->open();
     $userId = Yii::app()->user->id;
     $model->country = 'india';
     $modelCity = new GeoCity();
     $propertyAmenities = new PropertyAmenities();
     $propertyImages = new PropertyImages();
     $amenities = PropertyAmenitiesApi::getAmenitiesIdForProperty($id);
     $localityNew = false;
     if ($model->latitude && $model->longitude) {
         $locationPosition = array($model->latitude, $model->longitude);
     } else {
         $locationPosition = array(20.59368, 78.96288);
     }
     $localityList = GeoLocalityApi::getAllNameList();
     $this->performAjaxValidation($model);
     //$this->performAjaxValidation($profilesModel);
     if (isset($_POST['ajax']) && $_POST['ajax'] === 'property-form') {
         echo CActiveForm::validate($model);
         //echo CActiveForm::validate($profilesModel);
         Yii::app()->end();
     }
     if (isset($_POST['submit'])) {
         $amenity_id = array();
         $model->attributes = $_POST['Property'];
         $amenity_id = array();
         if (isset($_POST['PropertyAmenitiesHouse']) && isset($_POST['PropertyAmenitiesExternal'])) {
             $amenity_id = array_merge($_POST['PropertyAmenitiesHouse'], $_POST['PropertyAmenitiesExternal']);
         } elseif (isset($_POST['PropertyAmenitiesHouse'])) {
             $amenity_id = $_POST['PropertyAmenitiesHouse'];
         } elseif (isset($_POST['PropertyAmenitiesExternal'])) {
             $amenity_id = $_POST['PropertyAmenitiesExternal'];
         }
         //			var_dump($amenity_id);die();
         $model->user_id = $userId;
         $valid = true;
         $data = $_POST['Property'];
         if (isset($model->city_id)) {
             $cityModel = GeoCity::model()->findByPk($model->city_id);
             if ($cityModel) {
                 $model->state_id = $cityModel->state_id;
                 $data['state_id'] = $cityModel->state_id;
                 if (isset($model->locality)) {
                     $criteria = new CDbCriteria();
                     $criteria->condition = 'city_id=:city_id && locality=:locality';
                     $criteria->params = array(':city_id' => $cityModel->id, ':locality' => $model->locality);
                     $localityModel = GeoLocality::model()->find($criteria);
                     $locality = $model->locality;
                     if ($localityModel) {
                         $model->locality_id = $localityModel->id;
                     } else {
                         $localityModel = new GeoLocality();
                         $localityModel->locality = $model->locality;
                         $localityModel->city_id = $model->city_id;
                         $localityModel->save();
                         $model->locality_id = $localityModel->id;
                         $localityNew = $localityModel;
                     }
                     $data['locality_id'] = $localityModel->id;
                 }
             }
         }
         $valid = $valid && $model->validate();
         if ($model->latitude != '' && $model->longitude != '') {
             $locationPosition = array($model->latitude, $model->longitude);
         }
         if (!isset($data['property_type_id'])) {
             $data['property_type_id'] = $model->property_type_id;
         }
         if ($valid) {
             $data['property_name'] = PropertyTypesApi::getPropertyTypeById($data['property_type_id']);
             if ($data['jackpot_investment'] != $jackpot) {
                 $data['jackpot_investment'] = 2;
             }
             if ($data['instant_home'] != $instant) {
                 $data['instant_home'] = 2;
             }
             if (isset($model->video_url)) {
                 $video = explode('&', $model->video_url);
                 $videocode = explode('=', $video[0]);
                 if (isset($videocode[1])) {
                     $data['video_url'] = $videocode[1];
                 }
             }
             $property = PropertyApi::updatePropertyById($model->id, $data);
             if (!$property->hasErrors()) {
                 if (count($amenity_id) > 0) {
                     PropertyAmenitiesApi::deleteAllAmenitiesForProperty($property->id);
                     $amenities = PropertyAmenitiesApi::addAmenitiesForProperty($property->id, $amenity_id);
                 }
                 $images = $session['PropertyImages'];
                 if (is_array($images)) {
                     foreach ($images as $count => $image) {
                         $valid = $valid && PropertyImagesApi::addImage($property->id, $image) === true;
                     }
                 }
                 if ($valid) {
                     unset($session['PropertyImages']);
                     Yii::app()->user->setFlash('success', 'Great! You have succesfully updated your property.');
                     $this->redirect('/property/' . $property->id);
                 } else {
                     if ($localityNew && !$localityNew->isNewRecord) {
                         $localityNew->delete();
                     }
                     unset($session['PropertyImages']);
                     $propertyUpdateUrl = Yii::app()->createUrl('/property/update/' . $property->id . '');
                     Yii::app()->user->setFlash('error', 'Oops! We faced a problem and hence could not update your property.Please <a href=' . $propertyUpdateUrl . '>retry </a>');
                 }
             }
         } else {
             if ($localityNew && !$localityNew->isNewRecord) {
                 $localityNew->delete();
             }
             unset($session['PropertyImages']);
             //	var_dump($model->getErrors());
             Yii::app()->user->setFlash('error', 'There was an error while updating the property.');
         }
     }
     $this->render('update', array('model' => $model, 'propertyAmenities' => $propertyAmenities, 'propertyImages' => $propertyImages, 'amenities' => $amenities, 'currentImages' => $currentImages, 'locationPosition' => $locationPosition, 'localityList' => $localityList, 'locality' => $locality));
     Yii::endProfile('property_update');
 }
Ejemplo n.º 16
0
 public static function searchPropertyWithCriteria($criteria = "")
 {
     $dependency = new CDbCacheDependency('SELECT MAX(updated_time) FROM property');
     $properties = Property::model()->findAll($criteria);
     return $properties;
     /*$count=Property::model()->count($criteria);
     		 $pages=new CPagination($count);
     
     		 // results per page
     		 $pages->pageSize=1;
     		 $pages->applyLimit($criteria);
     
     		 $properties = Property::model()->findAll($criteria);
     
     		 $result['properties'] = $properties;
     		 $result['pages'] = $pages;
     
     
     		 return $result;*/
 }
 public function testAcceptedOfferIsOverridenByNewerInstruction()
 {
     $instruction = new Deal();
     $instruction->dea_prop = $this->property->pro_id;
     $instruction->dea_status = 'Completed';
     $instruction->save(false);
     $sql = "INSERT INTO link_client_to_instruction (dealId, clientId, capacity)\n\t\t\t\tVALUES\n\t\t\t\t(" . $instruction->dea_id . ", " . $this->owner1->cli_id . ", 'Owner'),\n\t\t\t\t(" . $instruction->dea_id . ", " . $this->owner2->cli_id . ", 'Owner')";
     Yii::app()->db->createCommand($sql)->execute();
     $sql = "INSERT INTO offer SET\n\t\toff_deal = '" . $instruction->dea_id . "',\n\t \toff_status = 'Accepted'";
     Yii::app()->db->createCommand($sql)->execute();
     $offerId = Yii::app()->db->getLastInsertID();
     $sql = "INSERT INTO cli2off SET c2o_cli = '" . $this->owner3->cli_id . "', c2o_off='" . $offerId . "'";
     Yii::app()->db->createCommand($sql)->execute();
     $sql = "INSERT INTO cli2off SET c2o_cli = '" . $this->owner4->cli_id . "', c2o_off='" . $offerId . "'";
     Yii::app()->db->createCommand($sql)->execute();
     // =================================================================================
     // <<< second instruction
     $instruction2 = new Deal();
     $instruction2->dea_prop = $this->property->pro_id;
     $instruction2->dea_status = 'Available';
     $instruction2->save(false);
     $sql = "INSERT INTO link_client_to_instruction (dealId, clientId, capacity)\n\t\t\t\t\t\tVALUES\n\t\t\t\t\t\t(" . $instruction2->dea_id . ", " . $this->owner1->cli_id . ", 'Owner'),\n\t\t\t\t\t\t(" . $instruction2->dea_id . ", " . $this->owner2->cli_id . ", 'Owner')";
     Yii::app()->db->createCommand($sql)->execute();
     // second instruction >>>
     // =================================================================================
     $this->migration->up();
     $property = Property::model()->findByPk($this->property->pro_id);
     $this->assertCount(2, $property->owners);
     $ownerIds = [];
     foreach ($property->owners as $key => $value) {
         $ownerIds[] = $value->cli_id;
     }
     $this->assertContains($this->owner1->cli_id, $ownerIds);
     $this->assertContains($this->owner2->cli_id, $ownerIds);
 }