function actionSaleUpdate($id) { $model = Sale::findOne(['id' => $id, 'user_id' => Yii::$app->user->identity->getId()]); if (empty($model)) { return $this->redirect(['/personal']); } for ($i = 1; $i <= Lang::find()->count(); $i++) { $model_content[$i] = SaleLang::findOne(['id' => $id, 'lang_id' => $i]); } if ($model->load(Yii::$app->request->post()) && Model::loadMultiple($model_content, Yii::$app->request->post()) && Model::validateMultiple($model_content) && $model->save()) { foreach ($model_content as $key => $content) { $content->save(false); } return $this->redirect(['/personal']); } else { return $this->render('sale/update', ['model' => $model, 'model_content' => $model_content]); } }
/** * Updates an existing Sale model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); for ($i = 1; $i <= Lang::find()->count(); $i++) { $model_content[$i] = SaleLang::findOne(['id' => $id, 'lang_id' => $i]); } if ($model->load(Yii::$app->request->post()) && Model::loadMultiple($model_content, Yii::$app->request->post()) && Model::validateMultiple($model_content) && $model->save()) { foreach ($model_content as $key => $content) { $content->save(false); } return $this->redirect(['/sale']); } else { return $this->render('update', ['model' => $model, 'model_content' => $model_content]); } }
public function actionAristo($url, $lang) { Lang::setCurrent($lang); $type_list = ParserAlias::type(); $view_list = ParserAlias::view(); $region_list = ParserAlias::region(); $district_list = ParserAlias::district(); $vat_list = ParserAlias::vat(); $stage_list = ParserAlias::stage(); //$file = '../../upload/xml'; $file = $url; $ids = Parse::saveXml($file, Parse::SCENARIO_ARISTO); $temp = Parse::find()->with('content')->where(['id' => $ids])->all(); $items = []; foreach ($temp as $t) { $data = Json::decode($t->content->data); if ($t->sale_id) { $sale = Sale::findOne(['id' => $t->sale_id]); $content = SaleLang::findOne(['id' => $t->sale_id, 'lang_id' => Lang::getCurrent()->id]); } else { $sale = new Sale(); $sale->user_id = $t->user_id; $content = new SaleLang(); $content->lang_id = Lang::getCurrent()->id; } $sale->covered = round($data['propertyTotalCoveredArea']); $sale->gps = $data['gpsLat'] . ', ' . $data['gpsLong']; $sale->bedroom = $data['propertyBedrooms']; $sale->price = round($data['propertyPrice']); $origin = []; if (isset($type_list[$data['propertyType']])) { $sale->type_id = $type_list[$data['propertyType']]; } else { $origin['type'] = $data['propertyType']; } if (isset($region_list[$data['area']])) { $sale->region_id = $region_list[$data['area']]; } else { $origin['region'] = $data['area']; } if (isset($district_list[$data['city']])) { $sale->district_id = $district_list[$data['city']]; } else { $origin['district'] = $data['city']; } if (!empty($data['views'])) { $view_ids = []; $views = explode(',', $data['views']); foreach ($views as $view) { $view = trim($view); if (isset($view_list[$view])) { $view_ids[] = $view_list[$view]; } } $sale->view_ids = $view_ids; } if (!empty($data['constructionStatus'])) { $stage_ids = []; $stages = explode(',', $data['constructionStatus']); foreach ($stages as $stage) { $stage = trim($stage); if (isset($stage_list[$stage])) { $stage_ids[] = $stage_list[$stage]; } } $sale->stage_ids = $stage_ids; } if (isset($vat_list[$data['vat']])) { $sale->vat = $vat_list[$data['vat']]; } else { $origin['vat'] = $data['vat']; } $content->description = $data['longDesc']; $content->name = $data['propertyName']; $image_array = []; if (isset($data['ImagesGallery']['mainImage'])) { $image_array[] = $data['ImagesGallery']['mainImage']; } foreach ($data['ImagesGallery']['image'] as $img) { $image_array[] = $img; } $image = ParseImage::find()->where(['parse_id' => $t->id])->indexBy('url')->all(); foreach ($image as $key => $value) { $image[$key]->url = ''; } foreach ($image_array as $key) { if (!isset($image[$key])) { $image[$key] = new ParseImage(); $image[$key]->parse_id = $t->id; } $image[$key]->url = $key; } $sale->validate(); $content->validate(); $items[] = ['sale' => $sale, 'content' => $content, 'image' => $image, 'origin' => $origin, 'parse' => $t]; } return $this->render('prepare', ['items' => $items]); }