diff --git a/app/src/plugins/tm@_components/z-files-upload.vue b/app/src/plugins/tm@_components/z-files-upload.vue index f5b836c..3d0fd4a 100644 --- a/app/src/plugins/tm@_components/z-files-upload.vue +++ b/app/src/plugins/tm@_components/z-files-upload.vue @@ -92,4 +92,4 @@ export default { .gif-loader height: 30px - \ No newline at end of file + diff --git a/be/app/Http/Controllers/SubTaskController.php b/be/app/Http/Controllers/SubTaskController.php index 44976ec..aa09ede 100644 --- a/be/app/Http/Controllers/SubTaskController.php +++ b/be/app/Http/Controllers/SubTaskController.php @@ -433,7 +433,8 @@ class SubTaskController extends Controller */ private function publishDraftWithMultipleEmployees(SubTask $draft, Request $request) { - $employees = $draft->draft_data; + // Použij employees z requestu ak existujú, inak fallback na draft_data z DB + $employees = $request->all()['data']['employees'] ?? $draft->draft_data; // Ak je employees pole prázdne, zlyhaj if (empty($employees)) { @@ -453,15 +454,16 @@ class SubTaskController extends Controller // Ak duration nie je nastavený, vypočítaj ho z timeblocks if (! isset($employee['duration']) || $employee['duration'] === null) { if (isset($employee['timeblocks']) && ! empty($employee['timeblocks'])) { - $totalDuration = 0; + $totalDurationMinutes = 0; foreach ($employee['timeblocks'] as $timeblock) { if (isset($timeblock['start']) && isset($timeblock['end'])) { $start = Carbon::parse($timeblock['start']); $end = Carbon::parse($timeblock['end']); - $totalDuration += $end->diffInMinutes($start); + $totalDurationMinutes += $end->diffInMinutes($start); } } - $employees[$key]['duration'] = $totalDuration; + // Konvertuj na hodiny (frontend očakáva hodiny) + $employees[$key]['duration'] = $totalDurationMinutes / 60; } else { return response()->json([ 'message' => 'Draft cannot be published. Each employee must have duration or timeblocks.', @@ -477,13 +479,19 @@ class SubTaskController extends Controller try { DB::beginTransaction(); + // Získame aktuálne hodnoty z requestu (ak existujú), inak fallback na draft + $requestData = $request->all()['data'] ?? []; + $title = $requestData['title'] ?? $draft->title; + $description = $requestData['description'] ?? $draft->description; + $deadline = $requestData['deadline'] ?? $draft->deadline; + // Vytvoríme subtask pre každého zamestnanca foreach ($employees as $employee) { $subtaskData = [ 'user_id' => $employee['id'], - 'title' => $draft->title, - 'description' => $draft->description, - 'deadline' => $draft->deadline, + 'title' => $title, + 'description' => $description, + 'deadline' => $deadline, 'estimated_time' => $employee['duration'], 'created_by' => $draft->created_by, 'is_draft' => false,