public function getEmailtaskclosed($id = false) { if (!$id) { return App::abort(404); } $task = Task::find($id); if (!$task) { return App::abort(404); } Taskemails::taskClosed($task); }
public function getClose($id = false) { if (!$id) { return App::abort(404); } $item = Task::find($id); if (!$item) { return App::abort(404); } // если в задаче есть незакрытый этап бизнес логики, то осуществить переназначение задачи вместо закрытия $businessLogic = $item->logic; if ($businessLogic) { foreach ($businessLogic->steps()->orderBy("sort")->get() as $step) { $assinment = Taskassign::where("task_id", $item->id)->where("logicstep_id", $step->id)->first(); if ($assinment) { continue; } $position = $step->position; if (!$position) { continue; } $user = $position->users()->first(); if (!$user) { continue; } $assign = new Taskassign(); $assign->task_id = $item->id; $assign->logicstep_id = $step->id; $assign->user_from_id = $item->author_id; $assign->user_to_id = $user->id; $assign->save(); Taskemails::taskAssigned($assign); return Redirect::to($_SERVER["HTTP_REFERER"])->with("message", "Задача согласована и переназначена другому исполнителю."); } } // если есть незакрытые подзадачи, то закрыть нельзя $countOpenedSubtasks = Task::where("subtask_id", $item->id)->where("is_active", 1)->count(); if ($countOpenedSubtasks > 0) { $message = "У этой задачи есть незакрытые подзадачи. Вы сможете закрыть задачу только после закрытия подзадач."; return Redirect::to($_SERVER["HTTP_REFERER"])->with("error", $message); } // в других случаях закрыть задачу $item->who_closed_id = $this->userdata->id; $item->closed_at = date("Y-m-d H:i:s"); $item->is_active = 0; $item->save(); Taskemails::taskClosed($item); return Redirect::to($_SERVER["HTTP_REFERER"])->with("message", "Задача закрыта."); }