예제 #1
0
 public function getEmailtaskclosed($id = false)
 {
     if (!$id) {
         return App::abort(404);
     }
     $task = Task::find($id);
     if (!$task) {
         return App::abort(404);
     }
     Taskemails::taskClosed($task);
 }
예제 #2
0
 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", "Задача закрыта.");
 }