get(); $data['users'] = User::where('active',1)->where('utype','<',3)->orderBy('name')->get(); $data['tasks'] = Task::with('proj_name')->orderBy('created_time')->paginate(25); return view('admin.task.task',$data); /* 1=Created; 2=in process; 3=Completed; 4=checking; 5=bugfixing; 6=done; */ } public function deadlineToday(){ $data['title'] = "Deadline Today"; $data['projectss'] = Project::all(); $data['groups'] = Group::where('user_id',0)->get(); $data['users'] = User::where('active',1)->where('utype','<',3)->orderBy('name')->get(); $data['today_tasks'] = Task::with(['user','proj_name'])->where('user_id','!=',0)->where('status','!=',6)->whereDate('dead_line', '=', date('Y-m-d'))->orderBy('created_time')->paginate(25); return view('admin.task.today_task',$data); } public function deadlineMissed(){ $data['title'] = "Deadline Missed"; $data['projectss'] = Project::all(); $data['groups'] = Group::where('user_id',0)->get(); $data['users'] = User::where('active',1)->where('utype','<',3)->orderBy('name')->get(); $data['deadline_missed'] = Task::with(['user','proj_name'])->where('user_id','!=',0)->where('status','!=',6)->whereDate('dead_line', '<', date('Y-m-d'))->orderBy('created_time')->paginate(25); return view('admin.task.deadline_missed',$data); } public function completedToday(){ $data['title'] = "Completed Today"; $data['projectss'] = Project::all(); $data['groups'] = Group::where('user_id',0)->get(); $data['users'] = User::where('active',1)->where('utype','<',3)->orderBy('name')->get(); $data['completed_today'] = Task::with(['user','proj_name'])->where('user_id','!=',0)->where('status','=',6)->whereDate('closing_time', '=', date('Y-m-d'))->orderBy('created_time')->paginate(25); return view('admin.task.completed_today',$data); } public function completedYesterday(){ $data['title'] = "Completed Yesterday"; $data['projectss'] = Project::all(); $data['groups'] = Group::where('user_id',0)->get(); $data['users'] = User::where('active',1)->where('utype','<',3)->orderBy('name')->get(); $data['completed_yesterday'] = Task::with(['user','proj_name'])->where('user_id','!=',0)->where('status',6)->whereDate('closing_time', '=', date('Y-m-d'))->orderBy('created_time')->paginate(25); return view('admin.task.completed_yesterday',$data); } public function pendingTask(){ $data['title'] = "Pending Task"; $data['projectss'] = Project::all(); $data['groups'] = Group::where('user_id',0)->get(); $data['users'] = User::where('active',1)->where('utype','<',3)->orderBy('name')->get(); $data['pending_task'] = Task::with(['user','proj_name'])->where('user_id','!=',0)->where('status','!=',6)->orderBy('created_time')->paginate(25); return view('admin.task.pending_task',$data); } public function inProcess(){ $data['title'] = "In Process"; $data['projectss'] = Project::all(); $data['groups'] = Group::where('user_id',0)->get(); $data['users'] = User::where('active',1)->where('utype','<',3)->orderBy('name')->get(); $data['in_process'] = Task::with(['user','proj_name'])->where('user_id','!=',0)->whereIn('status',[2,3,4,5])->orderBy('created_time')->paginate(25); return view('admin.task.in_process',$data); } public function add_task(Request $request){ $name = $request->name; $proj_id = $request->proj_id; $p=Project::find($proj_id); $office_id=$p->office_id; $description = $request->description; $estimated_time = $request->estimated_time; $task_type = $request->task_type; $priority = $request->priority; $dead_date = $request->dead_line; //$dead_hour = $request->dead_hour; //$dead_min = $request->dead_min; $assigned_user = $request->user_id; $dead_line = $dead_date; date_default_timezone_set("Asia/Dhaka"); $cdate = date('Y-m-d H:i:s'); $sav = new Task; $sav->name = $name; $sav->type = $task_type; $sav->proj_id = $proj_id; $sav->priority = $priority; $sav->dead_line = $dead_line; $sav->description = $description; $sav->created_time = $cdate; $sav->created_by = Auth::user()->id; $sav->status = 1; $sav->user_id=$assigned_user; $sav->assign_by = Auth::user()->id; $sav->assign_time = $cdate; $sav->office_id = $office_id; $sav->save(); $task_id = $sav->id; //send email to add user add with this proj $proj_user = AssignProject::where('proj_id',$proj_id)->get(); $proj_namee = Project::find($proj_id)->name; foreach($proj_user as $pu){ $data = [ 'task_name' => $name, 'proj_name' => $proj_namee, 'user_name' => $pu->one_user->name, 'details' => $description, ]; $subj = "A task has been created in ".$proj_namee."."; $this->send_email_new_task($pu->one_user->email,$subj,$data); } //activity log $msg = "Task: $name created."; $this->task_log($msg,$task_id,$proj_id); //call function //notification $projj_name = Project::find($proj_id)->name; $adminss = User::where('utype',1)->get(); $post_by_name = Auth::user()->name; $post_by_id = Auth::user()->id; $msg = "Task:$name created in Proj:$projj_name by ".$post_by_name; foreach($adminss as $info){ if($info->id != $post_by_id){ $this->notification($info->id, $msg); } } $ass_usr = AssignProject::where('proj_id',$proj_id)->get(); if(count($ass_usr) > 0){ foreach($ass_usr as $info){ $this->notification($info->user_id, $msg); } } return redirect()->back()->with('message','Success'); } public function remove_task($id) { $del = Task::find($id); //activity log $msg = "Task:".$del->name." removed."; $this->project_log($msg,$del->proj_id); //call function //notification $projj_name = Project::find($del->proj_id)->name; $name = $del->name; $adminss = User::where('utype',1)->get(); $post_by_name = Auth::user()->name; $post_by_id = Auth::user()->id; $msg = "Task:$name removed from Proj:$projj_name by ".$post_by_name; foreach($adminss as $info){ if($info->id != $post_by_id){ $this->notification($info->id, $msg); } } $ass_usr = AssignProject::where('proj_id',$del->proj_id)->get(); if(count($ass_usr) > 0){ foreach($ass_usr as $info){ $this->notification($info->user_id, $msg); } } //end notification $del->delete(); return redirect()->back()->with('data','Delete successfully !!'); } public function change_tast_by_proj(Request $req) { $proj_id = $req->proj_id; $all = Task::where('proj_id',$proj_id)->get(); $str = ""; $str .=""; return $str; } public function user_list_for_task_assign(Request $req){ $proj_id = $req->proj_id; $task_id = $req->task_id; $all = AssignProject::with('one_user')->where('proj_id',$proj_id)->get(); $str = ""; $str .=""; //getting status of this task $task_sta = Task::find($task_id); $task_status = $task_sta->status; $deadline =$task_sta->dead_line; if(!empty($task_sta->description)) { $details = $task_sta->description; } else{ $details = "No details..."; } //tast already assigned user $str1 = $this->fetch_task_assign_user($task_id); //call function //activity log fetch $logss = ActivityLog::with('one_user')->where('task_id',$task_id)->orderBy('id','DESC')->get(); $str_log = ""; foreach($logss as $log){ $str_log .="* $log->msg -".$log->one_user->name."
"; } //comments fetch $str_comment = $this->fetch_comments($task_id); $data[0] = $str; $data[1] = $str1; $data[2] = $str_log; $data[3] = $str_comment; $data[4] = $task_status; $data[5] = $details; $data[6] = $deadline; return $data; } public function task_assign_to_user(Request $req){ $task_id = $req->id_task_id; $estimated_time = $req->id_estimated_time; $user_id = $req->id_user_id; date_default_timezone_set("Asia/Dhaka"); $cdate = date('Y-m-d H:i:s'); $assign_by = Auth::user()->id; //dd($estimated_time); $sav = Task::find($task_id); $sav->user_id = $user_id; //fetch for activity log $proj_id = $sav->proj_id; $task_name = $sav->name; //send email to add user add with this proj $data = [ 'task_name' => $sav->name, 'proj_name' => $sav->proj_name->name, 'user_name' => User::find($user_id)->name, 'estimated_time' => $estimated_time, 'assign_by' => User::find($assign_by)->name, ]; $this->send_email_assign_task($sav->user->email,'Task assign to you',$data); $sav->assign_by = $assign_by; $sav->assign_time = $cdate; $sav->estimated_time = $estimated_time; $sav->save(); //activity log $nam = User::find($user_id); $msg = "User: $nam->name added"; $this->task_log($msg,$task_id,$proj_id); //call function //notification $projj_name = Project::find($proj_id)->name; $adminss = User::where('utype',1)->get(); $post_by_name = Auth::user()->name; $post_by_id = Auth::user()->id; $msg = "$nam->name assigned in Task:$task_name of Proj:$projj_name by ".$post_by_name; foreach($adminss as $info){ if($info->id != $post_by_id){ $this->notification($info->id, $msg); } } $msg = "You assigned in Task:$task_name of Proj:$projj_name by ".$post_by_name; $this->notification($user_id, $msg); //---end notification $str = $this->fetch_task_assign_user($task_id); return $str; } public function remove_assign_task_user(Request $req){ $id = $req->id; //here id and task id same $task_id = $req->task_id; $del = Task::find($id); //fetch proj_id for activity log $proj_id = $del->proj_id; //activity log $nam = User::find($del->user_id); $msg = "User: $nam->name removed"; $this->task_log($msg,$task_id,$proj_id); //call function $del->user_id = 0; $del->save(); $str = $this->fetch_task_assign_user($task_id); //call function return $str; } public function add_task_comment(Request $req){ $comment = $req->comment; $task_id = $req->task_id; date_default_timezone_set("Asia/Dhaka"); $assign_time = date('Y-m-d H:i:s'); if(!empty($comment) && $task_id > 0){ $sav = new Comment; $sav->comment = $comment; $sav->task_id = $task_id; $sav->date_time = $assign_time; $sav->post_by = Auth::user()->id; $sav->save(); } //activity log $task_info = Task::find($task_id); $task_name = $task_info->name; $proj_id = $task_info->proj_id; $user_id = $task_info->user_id; $msg = "$comment -added to $task_name."; $this->task_log($msg,$task_id,$proj_id); //call function //notification $fetch_proj = Project::find($proj_id); $projj_name = $fetch_proj->name; $client_id = $fetch_proj->client_id; $adminss = User::where('utype',1)->get(); $notification_post_by = Auth::user()->name; $noti_post_by_id = Auth::user()->id; $msg = "A comment added in Task:$task_name of Proj:$projj_name by ".$notification_post_by; foreach($adminss as $info){ if($info->id != $noti_post_by_id){ $this->notification($info->id, $msg); } } $this->notification($user_id, $msg); $this->notification($client_id, $msg); //--------end notification $str = $this->fetch_comments($task_id); return $str; } public function project_log($msg,$proj_id) { date_default_timezone_set("Asia/Dhaka"); $assign_time = date('Y-m-d H:i:s'); $sav = new ActivityLog; $sav->msg = $msg; $sav->proj_id = $proj_id; $sav->logged_user_id = Auth::user()->id; $sav->created_at = $assign_time; $sav->save(); } public function fetch_task_assign_user($task_id) { $fetch = Task::with('user')->find($task_id); //echo $fetch->user_id; $str = ""; if($fetch->user_id > 0){ $test=date("F jS, Y h:i:s", strtotime($fetch->estimated_time)); $str .=""; $str .= $fetch->user->name."
Estimated time: ".$test."
"; } else{ $str .= "No user assigned"; } return $str; } public function task_log($msg,$task_id,$proj_id) { date_default_timezone_set("Asia/Dhaka"); $assign_time = date('Y-m-d H:i:s'); $sav = new ActivityLog; $sav->msg = $msg; $sav->proj_id = $proj_id; $sav->task_id = $task_id; $sav->logged_user_id = Auth::user()->id; $sav->created_at = $assign_time; $sav->save(); } public function fetch_comments($task_id){ $fetch = Comment::with('user')->where('task_id',$task_id)->orderBy('id','DESC')->get(); $str = ""; if(count($fetch) > 0){ foreach($fetch as $fet) { $immmgg = "assets/document/task/$fet->url"; $str .=""; $str .= $fet->comment ."-by ".$fet->user->name."
"; if(!empty($fet->url)){ $str .="
url")."> "; } $str .="
"; } } return $str; } public function change_to_process(Request $req) { $task_id = $req->task_id; $status = $req->status; date_default_timezone_set("Asia/Dhaka"); $t_time = date('Y-m-d H:i:s'); $sav = Task::find($task_id); $task_name = $sav->name; $sav->status = $status; if($status == 2){ $sav->start_time = $t_time; } elseif($status == 6){ $sav->closing_time = $t_time; } //fetch proj_id for activity log $proj_id = $sav->proj_id; if($sav->save()) { $text = ""; if($status == 2){ $text = "in-process"; } elseif($status == 3){ $text = "completed"; } elseif($status == 4){ $text = "checking"; } elseif($status == 5){ $text = "bug-fixing"; } elseif($status == 6){ $text = "done"; } $msg = "$task_name -Change status to: $text"; $this->task_log($msg,$task_id,$proj_id); //call function return "Yes"; } else{ return "No"; } } public function send_email_new_task($uemail,$subj,$data){ Mail::send('emails.new_task', $data, function ($message) use ($uemail,$subj) { $message->from('m.revinr@gmail.com', 'Revinr Task Management'); $message->to($uemail)->subject($subj); }); } public function send_email_assign_task($uemail,$subj,$data){ Mail::send('emails.task_assign', $data, function ($message) use ($uemail,$subj) { $message->from('m.revinr@gmail.com', 'Revinr Task Management'); $message->to($uemail)->subject($subj); }); } public function notification($user_id,$msg){ $sav = new Notification; $sav->user_id = $user_id; $sav->msg = $msg; $sav->status = 1; $sav->save(); } public function company_task(Request $request, $typ){ //dd($request->all()); date_default_timezone_set("Asia/Dhaka"); $company_id = $request->company_id; if($typ == 'manager_task'){ $task_type = 1; $act_val = 'New Task created'; }elseif($typ == 'manager_appointment'){ $task_type = 2; $act_val = 'New Appointment created'; }elseif($typ == 'manager_phone'){ $task_type = 3; $act_val = 'New Call date created'; }else{ $task_type = 4; $act_val = 'An email Sent'; } if($task_type != 4){ $name = $request->name; $desc = $request->description; $priority = $request->priority; $date = $request->date; $cur_date = date('Y-m-d H:i:s'); $company = CompanyModel::find($company_id); $manager_id = $company->account_manager; $manager = User::find($manager_id); if($manager_id != null){ $sav = new Task; $sav->name = $name; $sav->type = 0; $sav->proj_id = 0; $sav->priority = $priority; $sav->dead_line = $date; $sav->description = $desc; $sav->created_time = $cur_date; $sav->created_by = Auth::user()->id; $sav->status = 1; $sav->user_id = $manager_id; $sav->assign_by = Auth::user()->id; $sav->assign_time = $cur_date; $sav->office_id = 1; $sav->task_type = $task_type; $sav->client_id = $company_id; $sav->save(); $act = new CompanyActivity; $act->activity = $act_val; $act->company_id = $company_id; $act->date = $cur_date; $act->save(); $data = [ 'task_name' => $name, 'company_name' => $company->name, 'prio' => $priority, 'type' => $task_type, 'details' => $desc, 'date' => $date, 'manager_name' => $manager->name ]; $subj = "New Task Added"; $uemail = $manager->email; Mail::send('emails.company_task', $data, function ($message) use ($uemail,$subj) { $message->from('m.revinr@gmail.com', 'Revinr Task Management'); $message->to($uemail)->subject($subj)->cc('helaldu@gmail.com'); }); } }else{ $client = User::find($request->mail_to); $client_name = $client->name; $client_email = $client->email; $to = $client_email; $subject = $request->subject; $message = $request->message; $data = ['msg' => $message]; Mail::send('emails.email_to_client', $data, function ($message) use ($to,$subject) { $message->from('m.revinr@gmail.com', 'Revinr Task Management'); $message->to($to)->subject($subject)->cc('helaldu@gmail.com'); }); $act = new CompanyActivity; $act->activity = $act_val; $act->company_id = $company_id; $act->date = date('Y-m-d H:i:s'); $act->save(); } return redirect()->back()->with('message','Success'); } }