/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. * @param string $phase 1, 2 or 3 * @param string $parent Parent WaterRequest ID */ public function actionCreate($phase = null, $parent = null) { if (!Yii::app()->user->checkAccess('createWaterRequest')) { throw new CHttpException(403, Yii::t('http_status', '403')); } if (!$phase || $phase != 1 && $phase != 2 && $phase != 3) { $this->layout = '//layouts/column1'; /* $model=WaterRequests::model()->findAllByAttributes( array( 'username'=>Yii::app()->user->id, 'status'=>WaterRequests::SW_NODE(WaterRequests::SUBMITTED_STATUS), 'phase'=>1 ) );*/ $criteria = new CDbCriteria(); $criteria->compare('username', Yii::app()->user->id, true, 'AND'); $criteria->compare('status', WaterRequests::SW_NODE(WaterRequests::SUBMITTED_STATUS), false, 'AND'); $criteria->compare('phase', 1, false, 'AND'); $dataProvider_phase_two = new CActiveDataProvider(WaterRequests::model()->no_tmp(), array('criteria' => $criteria)); $criteria = new CDbCriteria(); $criteria->compare('username', Yii::app()->user->id, true, 'AND'); $criteria->compare('status', WaterRequests::SW_NODE(WaterRequests::CONFIRMED_STATUS), false, 'AND'); $criteria->compare('phase', 2, false, 'AND'); $dataProvider_phase_three = new CActiveDataProvider(WaterRequests::model()->no_tmp(), array('criteria' => $criteria)); $this->render('choose_phase', array('dataProvider_phase_two' => $dataProvider_phase_two, 'dataProvider_phase_three' => $dataProvider_phase_three)); Yii::app()->end(); } $model = WaterRequests::model()->findByAttributes(array('username' => Yii::app()->user->id, 'status' => WaterRequests::SW_NODE(WaterRequests::TEMP_STATUS), 'phase' => $phase)); if ($model != null) { $model->delete(); } $model = new WaterRequests(); $model->username = Yii::app()->user->id; $model->phase = $phase; if ($parent) { //check if parent exist and it would be a right parent $parent_phase = $parent_status = null; if ($phase == 2) { $parent_phase = 1; $parent_status = WaterRequests::SW_NODE(WaterRequests::SUBMITTED_STATUS); } else { if ($phase == 3) { $parent_phase = 2; $parent_status = WaterRequests::SW_NODE(WaterRequests::CONFIRMED_STATUS); } } $p = WaterRequests::model()->findAllByAttributes(array('username' => Yii::app()->user->id, 'status' => $parent_status, 'phase' => $parent_phase, 'id' => $parent)); if (isset($p)) { $model->parent_phase = $parent; } } $model->save(false); if ($model->phase == 2) { $model->scenario = 'phase_two'; } // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['WaterRequests'])) { $model->attributes = $_POST['WaterRequests']; //$model->timestamp=date(Yii::app()->params['dateTimeFormatDB']); //$model->username=Yii::app()->user->id; if (isset($_POST['save-button'])) { $model->updateStatus(WaterRequests::SAVED_STATUS); } else { $model->updateStatus(WaterRequests::SUBMITTED_STATUS); } if ($model->save()) { $this->redirect(array('view', 'id' => $model->id)); } } $this->render('create', array('model' => $model)); }