public function generateProgress($progress = 0) { $user = new User(); $user->username = "******"; $user->email = "*****@*****.**"; $user->password = "******"; $user->save(); $plan = new Plan(); $plan->user_id = $user->id; $plan->name = 'UnitTestProject'; $plan->description = 'UnitTestProject'; $plan->budget = '0'; $plan->target = '10000'; $plan->expected = '1000'; $plan->period = '10'; $plan->created_at = date('Y-m-d H:i:s', strtotime('-1 month', strtotime(date('Y-m-d')))); $plan->updated_at = date('Y-m-d H:i:s', strtotime('-1 month', strtotime(date('Y-m-d')))); $plan->save(); $month = new Monthly(); $month->plan_id = $plan->id; $month->status = 0; $month->month = 1; $month->limit = 1000; $month->progress = $progress; $month->save(); return ['plan' => $plan, 'month' => $month, 'user' => $user]; }
/** * Creates a new Plan model. * If creation is successful, the browser will be redirected to the 'view' page. * @return mixed */ public function actionCreate() { $model = new Plan(); if ($model->load($this->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render(['model' => $model]); } }
public function postIndex(Request $request) { $messages = ["pname.required" => "Plan name is required", "pdescription.required" => "Description is required", "pexpected.required" => "Expected per month is required", "ptarget.required" => "Target for saving is required", "pbudget.required" => "Budget is required", "pmonth.required" => "Period is required", "pname.alpha_num" => "Plan name must be consist of texts and numbers", "pexpected.numeric" => "Expected per month must be consist of only numbers", "ptarget.numeric" => "Target for saving must be consist of only numbers", "pbudget.numeric" => "Budget must be consist of only numbers", "pmonth.numeric" => "Period must be consist of only numbers"]; $validator = Validator::make($request->all(), ['pname' => 'required|alpha_num', 'pdescription' => 'required', 'pexpected' => 'required|numeric', 'ptarget' => 'required|numeric', 'pbudget' => 'required|numeric', 'pmonth' => 'required|numeric|min:1'], $messages); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } if ($request->pdelete != null) { return redirect('plan/delete'); } if ($request->pbudget > $request->ptarget) { $validator->errors()->add('target', 'Budget is more than target!'); return redirect()->back()->withErrors($validator)->withInput(); } if ($request->pexpected >= $request->ptarget) { $validator->errors()->add('target', 'Expected per month is more than target!'); return redirect()->back()->withErrors($validator)->withInput(); } if (!$this->user) { $validator->errors()->add('user', 'You are not login!'); return redirect('login')->withErrors($validator); } else { $plan = $this->user->plans()->where("id", "=", $request->plan_id)->first(); if (!$plan) { $plan = new Plan(); $plan->budget = $request->pbudget; } //$period = ceil(($request->ptarget - $request->pbudget) / $request->pexpected); $plan->user_id = $this->user->id; $plan->name = $request->pname; $plan->description = $request->pdescription; $plan->period = $request->pmonth; $plan->target = $request->ptarget; $plan->expected = $request->pexpected; $plan->original = $request->pbudget; $plan->save(); Session::put("Plan", $plan->id); } return redirect()->back()->withInput(); }
/** * добавление нового плана расхода * @return string */ public function actionAdd() { $errors = []; $message = null; $user_id = Yii::$app->user->getId(); $model = new ExpenseForm(); if (Yii::$app->request->isPost) { $model->setAttributes(Yii::$app->request->post("PlanForm")); $purse = Purse::find()->where(['id' => $model->purse_id])->one(); if ($purse) { if ($model->validate()) { if ($model->datetime) { $date = DateComponent::PeopleDateToDate($model->datetime); $model->datetime = $date; } if (!$model->datetime || $model->datetime && date("Y-m-d") <= $model->datetime) { $plan = new Plan(); $plan->setAttributes($model->getAttributes()); $type = $model->getType($user_id); if ($type) { $plan->type_expense_id = $type; $save = $plan->save(); if ($save) { $message = '<div class="alert alert-success" role="alert">Новый план добавлен</div>'; $model = new ExpenseForm(['scenario' => 'plan']); } } else { $errors = $model->getErrors(); } } else { $message = '<div class="alert alert-danger" role="alert">Дата не должна быть раньше сегодняшней</div>'; } } else { $errors = $model->getErrors(); } } } $purses = Purse::find()->where(['user_id' => $user_id])->orderBy('active DESC')->all(); $categories = TypeExpense::find()->where(['user_id' => $user_id])->orderBy('id desc')->all(); return $this->render('add', ['purses' => $purses, 'categories' => $categories, 'model' => $model, 'message' => $message, 'errors' => $errors]); }