HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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();
    }

}