Пример #1
0
 /**
  * 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));
 }