46 lines
1.2 KiB
PHP
46 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\ServiceTask;
|
|
use App\Models\TaskItem;
|
|
use App\Services\ServiceTaskManager;
|
|
use Illuminate\Http\Request;
|
|
|
|
class ServiceTaskController extends Controller
|
|
{
|
|
public function __construct(protected ServiceTaskManager $manager)
|
|
{
|
|
}
|
|
|
|
public function start(ServiceTask $task)
|
|
{
|
|
$this->manager->startTask($task);
|
|
return back()->with('success', 'Tâche démarrée.');
|
|
}
|
|
|
|
public function toggleItem(TaskItem $item, Request $request)
|
|
{
|
|
if ($item->is_completed) {
|
|
$item->update(['is_completed' => false, 'completed_at' => null, 'completed_by' => null]);
|
|
} else {
|
|
$this->manager->completeTaskItem($item, $request->input('data', []));
|
|
}
|
|
|
|
return back();
|
|
}
|
|
|
|
public function approve(ServiceTask $task)
|
|
{
|
|
$this->manager->validateTask($task);
|
|
return back()->with('success', 'Tâche de service validée.');
|
|
}
|
|
|
|
public function reject(ServiceTask $task, Request $request)
|
|
{
|
|
$request->validate(['reason' => 'required|string']);
|
|
$this->manager->rejectTask($task, $request->reason);
|
|
return back()->with('warning', 'Tâche refusée.');
|
|
}
|
|
}
|