/** * Отправка отчета менеджеру о выполнении стадии * создаем отчет, меняем статус стадии и проекта и уведомляем менеджера об отправки отчетности * Проверен (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'; } } }
/** * Редактирование проекта * Суть такова: У каждого стадии есть 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]); } }