Create Migration and Model
Table Names:task,track_task
task:
id,title,description,assigned_to,comment,status,created_by,created_at
track_task:
id,task_id,start_time,end_time,user_id,created_by,created_at
Insert Task :
Route::get('/add-task',[TaskController::class,'addTask']);
public function storeTask(Request $request){
$input=$request->all();
$description=$input['description'];
$users=$input['users'];
$status=$input['status'];
$comment=$input['comment'];
$userid=Auth::user()->id;
$insertArr=array(
"title"=>$summary,
"task_description"=>$description,
"status"=>$status,
"comment"=>$comment,
"assigned_to"=>$users,
"created_by"=>$userid,
"updated_by"=>$userid,
);
$insert=Task::create($insertArr);
}
public function getTask($id){
return view('task.get-task',compact('task'));
}
public function startTask(Request $request){
$task=new Track;
$input=$request->all();
$id=$input['id'];
$userid=Auth::user()->id;
$time=date('Y-m-d h:i:s');
$task->task_id=$id;
$task->user_id=$userid;
$task->start_time=$time;
$task->tracker_on="1";
$task->save();
DB::select("Update track set tracker_on='0' WHERE id NOT IN($task->id) AND task_id='$id' AND user_id='$userid'");
}
public function endTask(Request $request){
$input=$request->all();
$id=$input['id'];
$task=Track::where('task_id',$id)
->Where('tracker_on','1')->first();
$task->end_time=date('Y-m-d h:i:s');
$task->tracker_on='0';
$task->save();
$tsk=Track::where('id',$task->id)->first();
if($tsk){
$start=$tsk->start_time;
$end=$tsk->end_time;
$times=DB::select("SELECT SUM(TIMESTAMPDIFF(SECOND, '$start', '$end')) AS difference");
if($times){
$time=$this->convertSecondsToHMS($times[0]->difference);
if (!$this->taskLog($id,"Tracked Time",$time,Auth::user()->id)) {
}
}
}
}
public function convertSecondsToHMS($seconds) {
if (!is_numeric($seconds)) {
return "00:00:00";
}
$hours = floor($seconds / 3600);
$minutes = floor(($seconds % 3600) / 60);
$seconds = $seconds % 60;
return sprintf("%02d:%02d:%02d", $hours, $minutes, $seconds);
}