Example #1
0
 /**
  * 显示当前课程列表
  * @author FuRongxin
  * @date    2016-03-29
  * @version 2.0
  * @return  \Illuminate\Http\Response 教师课程列表
  */
 public function index()
 {
     $tasks = Task::with(['course' => function ($query) {
         $query->select('kch', 'kcmc', 'xs');
     }])->whereJsgh(Auth::user()->jsgh)->whereNd(session('year'))->whereXq(session('term'))->orderBy('kcxh')->get();
     $title = session('year') . '年度' . Term::find(session('term'))->mc . '学期';
     return view('tes.index')->withTitle($title . '课程列表')->withTasks($tasks);
 }
Example #2
0
 public function edit($id)
 {
     $user_group = Auth::user()->user_group_id;
     if ($user_group == 1) {
         $tasks = Task::with('component', 'module')->get();
         foreach ($tasks as &$task) {
             $task->list = 1;
             $task->view = 1;
             $task->add = 1;
             $task->edit = 1;
             $task->delete = 1;
             $task->report = 1;
             $task->print = 1;
         }
     } else {
         if ($user_group == $id || $id == 1) {
             $tasks = DB::table('user_group_roles as ugr')->select('ugr.component_id', 'ugr.module_id', 'ugr.task_id', 'ugr.list', 'ugr.view', 'ugr.add', 'ugr.edit', 'ugr.delete', 'ugr.report', 'ugr.print', 'components.name_en as component_name', 'modules.name_en as module_name', 'tasks.name_en as task_name')->join('tasks', 'tasks.id', '=', 'ugr.task_id')->join('components', 'components.id', '=', 'ugr.component_id')->join('modules', 'modules.id', '=', 'ugr.module_id')->where('tasks.route', 'not like', 'roles%')->where('ugr.user_group_id', $id)->where('ugr.list', 1)->get();
         } else {
             $tasks = DB::table('user_group_roles as ugr')->select('ugr.component_id', 'ugr.module_id', 'ugr.task_id', 'ugr.list', 'ugr.view', 'ugr.add', 'ugr.edit', 'ugr.delete', 'ugr.report', 'ugr.print', 'components.name_en as component_name', 'modules.name_en as module_name', 'tasks.name_en as task_name')->join('tasks', 'tasks.id', '=', 'ugr.task_id')->join('components', 'components.id', '=', 'ugr.component_id')->join('modules', 'modules.id', '=', 'ugr.module_id')->where('ugr.user_group_id', $id)->where('ugr.list', 1)->get();
         }
     }
     $roleResult = DB::table('user_group_roles as ugr')->select('ugr.id as ugr_id', 'ugr.list', 'ugr.view', 'ugr.add', 'ugr.edit', 'ugr.delete', 'ugr.report', 'ugr.print', 'ugr.component_id', 'ugr.module_id', 'ugr.task_id')->where('ugr.user_group_id', $id)->orderBy('ugr.component_id', 'asc')->orderBy('ugr.module_id', 'asc')->get();
     $roles = new stdClass();
     $roles->list = [];
     $roles->view = [];
     $roles->add = [];
     $roles->edit = [];
     $roles->delete = [];
     $roles->report = [];
     $roles->print = [];
     $roles->ugr_id = [];
     foreach ($roleResult as $result) {
         $roles->ugr_id[$result->task_id] = $result->ugr_id;
         if ($result->list) {
             $roles->list[] = $result->task_id;
         }
         if ($result->view) {
             $roles->view[] = $result->task_id;
         }
         if ($result->add) {
             $roles->add[] = $result->task_id;
         }
         if ($result->edit) {
             $roles->edit[] = $result->task_id;
         }
         if ($result->delete) {
             $roles->delete[] = $result->task_id;
         }
         if ($result->report) {
             $roles->report[] = $result->task_id;
         }
         if ($result->print) {
             $roles->print[] = $result->task_id;
         }
     }
     return view('roles.edit', compact('tasks', 'roles', 'id'));
 }
Example #3
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $today = date('Y-m-d');
     $indivs = Task::with('individual')->select('individual_id')->groupBy('individual_id')->get();
     foreach ($indivs as $ind) {
         if ($ind->individual->slack != "") {
             $society = $ind->individual->household->society->society . " Methodist Church";
             $otasks = Task::with('project')->where('individual_id', '=', $ind->individual->id)->where('donedate', '=', '')->where('duedate', '<', $today)->orderBy('duedate')->get();
             $itasks = Task::with('project')->where('individual_id', '=', $ind->individual->id)->where('donedate', '=', '')->where('duedate', '=', $today)->orderBy('duedate')->get();
             $projects = Project::with('task')->where('individual_id', '=', $ind->individual->id)->get();
             if (count($itasks) or count($otasks)) {
                 $msg = "Good morning, " . $ind->individual->firstname . "\n\nHere is a list of your overdue/upcoming project tasks:\n\n";
                 if (count($otasks)) {
                     $msg .= "*Overdue tasks*\n\n";
                 }
                 foreach ($otasks as $ot) {
                     $msg .= "_" . $ot->project->project . ":_ " . $ot->description . " (Due: *" . $ot->duedate . "*)\n";
                 }
                 $msg .= "\n";
                 if (count($itasks)) {
                     $msg .= "*Tasks due today*\n\n";
                 }
                 foreach ($itasks as $it) {
                     $msg .= $it->project->project . ": " . $it->description . "\n";
                 }
                 if (count($projects)) {
                     $msg .= "*Summary of your projects*\n\n";
                     foreach ($projects as $project) {
                         $tot = 0;
                         $ovd = 0;
                         foreach ($project->task as $task) {
                             if ($task->donedate == '') {
                                 if ($task->duedate < $today) {
                                     $ovd++;
                                 }
                                 $tot++;
                             }
                         }
                         if ($tot != 0) {
                             $msg .= $project->project . " [Total tasks: " . $tot . "] Overdue: " . round($ovd / $tot * 100) . "%\n";
                         } else {
                             $msg .= $project->project . " [No tasks set yet]\n";
                         }
                     }
                 }
                 $msg .= "\nThank you for the part you are playing in making this happen :)\n\n_" . $society . "_";
                 Helpers::slackmessage($msg, '@' . $ind->individual->slack);
             }
         }
     }
 }
Example #4
0
 public function index()
 {
     $tasks = Task::with('component', 'module')->latest()->where('tasks.status', 1)->paginate(Config::get('common.pagination'));
     return view('tasks.index', compact('tasks'));
 }
Example #5
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $today = date('Y-m-d');
     $indivs = Task::with('individual')->select('individual_id')->groupBy('individual_id')->get();
     foreach ($indivs as $ind) {
         $society = $ind->individual->household->society->society . " Methodist Church";
         $otasks = Task::with('project')->where('individual_id', '=', $ind->individual->id)->where('donedate', '=', '')->where('duedate', '<', $today)->orderBy('duedate')->get();
         $itasks = Task::with('project')->where('individual_id', '=', $ind->individual->id)->where('donedate', '=', '')->where('duedate', '>', $today)->orderBy('duedate')->get();
         $projects = Project::with('task')->where('individual_id', '=', $ind->individual->id)->get();
         if (count($itasks) or count($otasks)) {
             $msg = "Good morning, " . $ind->individual->firstname . "<br><br>Here is a list of your overdue/upcoming project tasks:<br><br>";
             if (count($otasks)) {
                 $msg .= "Overdue tasks:<br><br>";
             }
             foreach ($otasks as $ot) {
                 $msg .= $ot->project->project . ": " . $ot->description . " (Due: " . $ot->duedate . ")<br>";
             }
             $msg .= "<br>";
             if (count($itasks)) {
                 $msg .= "Tasks due in the next week:<br><br>";
             }
             foreach ($itasks as $it) {
                 $todaydt = new DateTime($today);
                 $interval = $todaydt->diff($it->duedate);
                 if ($interval->format('%R%a') < 8) {
                     $msg .= $it->project->project . ": " . $it->description . " (Due: " . $it->duedate . ")<br>";
                 }
             }
             if (count($projects)) {
                 $msg .= "Summary of your projects:<br><br>";
                 foreach ($projects as $project) {
                     $tot = 0;
                     $ovd = 0;
                     foreach ($project->task as $task) {
                         if ($task->donedate == '') {
                             if ($task->duedate < $today) {
                                 $ovd++;
                             }
                             $tot++;
                         }
                     }
                     if ($tot != 0) {
                         $msg .= $project->project . " [Total tasks: " . $tot . "] Overdue: " . round($ovd / $tot * 100) . "%<br>";
                     } else {
                         $msg .= $project->project . " [No tasks set yet]<br>";
                     }
                 }
             }
             $msg .= "<br>Thank you for the part you are playing in making this happen :)<br><br>" . $society;
             $semail = $ind->individual->household->society->email;
             $name = $ind->individual->firstname . " " . $ind->individual->surname;
             $email = $ind->individual->email;
             $subject = "Project tasks weekly email from " . $society;
             Mail::queue('messages.message', array('msg' => $msg), function ($message) use($name, $email, $subject, $society, $semail) {
                 $message->from($semail, $society);
                 $message->to($email, $name);
                 $message->replyTo($semail);
                 $message->subject($subject);
             });
         }
     }
 }
Example #6
0
 /**
  * 显示课程学期列表
  * @author FuRongxin
  * @date    2016-03-18
  * @version 2.0
  * @return  \Illuminate\Http\Response 课程学期列表
  */
 public function timetable()
 {
     $periods = Task::with('term')->whereJsgh(Auth::user()->jsgh)->select('nd', 'xq')->groupBy('nd', 'xq')->orderBy('nd', 'desc')->orderBy('xq', 'desc')->get();
     return view('task.timetable')->withTitle('学期列表')->withPeriods($periods);
 }