Exemplo n.º 1
0
 /**
  * Отправка отчета менеджеру о выполнении стадии
  * создаем отчет, меняем статус стадии и проекта и уведомляем менеджера об отправки отчетности
  * Проверен (21.12.15)
  */
 public function actionSent()
 {
     if (isset($_POST)) {
         $bid = new Bid();
         $bid->text = $_POST['text'];
         $bid->name = "Test";
         $bid->status = R::BID_SENT_TO_MANAGER;
         $bid->user_id = Yii::$app->user->identity->id;
         $bid->obj_id = $_POST['stage_id'];
         $bid->bid_type = R::BID_STAGE;
         $bid->notify_status = R::NOTIFY_ACTIVE;
         $bid->create_time = time();
         $bid->update_time = time();
         $bid->save();
         if ($bid->save()) {
             $bid->uploadFiles(Yii::$app->session['cs_' . Yii::$app->user->identity->id]);
             $stage = Stage::findOne($bid->obj_id);
             $stage->status = R::STAGE_PROCESS;
             $stage->save();
             $stage->project->status = R::PROJECT_PROCESS;
             $stage->project->save();
             echo '1';
         }
     }
 }
Exemplo n.º 2
0
 /**
  * Редактирование проекта
  * Суть такова: У каждого стадии есть id-шник. Если они приходять сюда POST-ом
  * значит они не были удалены во view-шке. Если же стадия была удалена во view-шке
  * соответсвенно ее надо удалить в базе.
  * Добавленные стадии создаются в обычном порядке.
  * Проверен (21.12.15) - все ровно
  */
 public function actionUpdate($id)
 {
     $model = $this->findModel($id);
     if ($model->load(Yii::$app->request->post())) {
         $model->deadline = date('Y-m-d', strtotime($model->deadline));
         $model->save();
         $stage_ids = $_POST['obj_id'];
         //id-шники всех стадий
         foreach ($model->stages as $stage) {
             $exist = false;
             foreach ($stage_ids as $k => $v) {
                 if ($stage->id == $v) {
                     $exist = true;
                 }
             }
             if ($exist == false) {
                 $stage->delete();
             }
         }
         if (isset($_POST['stage_name'])) {
             $stage_name = $_POST['stage_name'];
             $stage_description = $_POST['stage_description'];
             $stage_deadline = $_POST['stage_deadline'];
             $stage_who = $_POST['stage_who'];
             foreach ($stage_name as $k => $v) {
                 $exist = Stage::findOne($stage_ids[$k]);
                 if ($exist) {
                     $exist->name = $v;
                     $exist->description = $stage_description[$k];
                     $exist->deadline = strtotime($stage_deadline[$k]);
                     $exist->user_id = $stage_who[$k];
                     $exist->save();
                 } else {
                     $stage = new Stage();
                     $stage->name = $v;
                     $stage->description = $stage_description[$k];
                     $stage->deadline = strtotime($stage_deadline[$k]);
                     $stage->user_id = $stage_who[$k];
                     $stage->project_id = $model->id;
                     $stage->status = R::STAGE_CREATED;
                     $stage->create_time = time();
                     $stage->save();
                 }
             }
         }
         return $this->redirect(['view', 'id' => $model->id]);
     } else {
         return $this->render('update', ['model' => $model]);
     }
 }