File: D:/HostingSpaces/MdnDirecteur/hours.komma.cloud/app/Komma/Tasks/TaskController.php
<?php
namespace App\Komma\Tasks;
use App\Http\Controllers\Controller;
use App\Komma\Messages\MessageController;
use App\Komma\Settings\TaskTemplates\TaskTemplate;
use App\Komma\Subprojects\Subproject;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Session;
class TaskController extends Controller
{
private $messageController;
private $taskService;
public function __construct(MessageController $messageController, TaskService $taskService)
{
$this->middleware('auth');
$this->messageController = $messageController;
$this->taskService = $taskService;
}
/**
* @param $subproject
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function create($subproject)
{
$subproject = Subproject::find($subproject);
$subprojects = Subproject::orderBy('name', 'asc')->get();
$taskTemplates = TaskTemplate::orderBy('name', 'asc')->where('name','!=', 'Import')->get();
$ref = \Request::filled('ref') ? \Request::get('ref') : 'projecten';
$ref = str_replace(' ', '+', $ref);
return view('tasks.create', compact('subproject', 'subprojects', 'taskTemplates', 'ref'));
}
/**
* @param Request $request
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
*/
public function store(Request $request)
{
$subproject = Subproject::find($request->subproject);
//check if exist
if (!empty($this->taskService->checkIfExist($request))) return redirect('/' . $this->taskService->checkIfExist($request));
if (!empty($request->tasks)) {
$subproject->TaskTemplates()->sync($request->tasks);
} else {
$subproject->TaskTemplates()->detach();
}
//message + activity
// $subject = Task::find($task->id);
// $value = "taak";
// $this->messageController->create($value, $subject);
Session::flash('message', 'Taken zijn aangepast.');
// Find redirect route
$redirectRoute = 'projecten';
if ($request->filled('ref')) {
$ref = $request->get('ref');
$redirectRoute = str_replace('+', '?', $ref);
$redirectRoute = str_replace('-', '/', $redirectRoute);
}
//return redirect
if($request->ajax()) {
return "success";
} else {
return redirect('/' . $redirectRoute . '&subproject=' . $request->subproject);
}
}
/**
* @param $task
* @return \Illuminate\Http\RedirectResponse
*/
public function destroy($task)
{
$getTask = Task::find($task);
if (count($getTask->Hours)) {
//message
$value = "Taak";
$underlying = "uren";
$this->messageController->failed($value, $underlying);
return back();
} else {
$getTask->delete();
//message + activity
$value = "Taak";
$this->messageController->destroyed($value, $getTask);
return back();
}
}
/**
* @param $task
* @return \Illuminate\Http\RedirectResponse
*/
public function restore($task)
{
\DB::transaction(function () use ($task) {
Task::withTrashed()->find($task)->restore();
//message + activity
$subject = Task::find($task);
$value = "Taak";
$this->messageController->recovered($value, $subject);
});
//redirect back
return back();
}
}