@extends('layouts.app') @section('title', $project->name) @section('content') @include('professionalproject::layouts.nav') @php $projectStatuses = \Modules\ProfessionalProject\Entities\PpProject::statusDropdown(); $priorityLabels = \Modules\ProfessionalProject\Entities\PpTask::priorityDropdown(); $priorityColors = \Modules\ProfessionalProject\Entities\PpTask::priorityColors(); $tasks = $project->tasks ?? collect(); $totalTasks = $tasks->count(); $doneTaskIds = $task_statuses->where('is_completed', 1)->pluck('id')->toArray(); $completedTasks = $tasks->whereIn('status_id', $doneTaskIds)->count(); $overdueTasks = $tasks->filter(function ($task) use ($doneTaskIds) { return !empty($task->due_date) && !in_array($task->status_id, $doneTaskIds) && \Carbon\Carbon::parse($task->due_date)->isPast(); })->count(); $upcomingTasks = $tasks->filter(function ($task) use ($doneTaskIds) { if (empty($task->due_date) || in_array($task->status_id, $doneTaskIds)) { return false; } $due = \Carbon\Carbon::parse($task->due_date); return $due->isToday() || $due->isFuture(); })->count(); $timelineItems = collect(); foreach ($project->tasks as $task) { $timelineItems->push([ 'type' => 'task', 'icon' => 'fa-check-square-o', 'color' => '#00a65a', 'title' => $task->title, 'meta' => $task->status->title ?? '-', 'date' => $task->updated_at, ]); } foreach ($milestones as $milestone) { $timelineItems->push([ 'type' => 'milestone', 'icon' => 'fa-flag', 'color' => '#f39c12', 'title' => $milestone->title, 'meta' => $milestone->tasks_count . ' وظیفه', 'date' => $milestone->updated_at, ]); } $timelineItems = $timelineItems->sortByDesc('date')->take(10)->values(); @endphp

{{ $project->name }}

{{ $project->name }} {{ $projectStatuses[$project->status] ?? $project->status }} شروع: {{ $project->start_date ? format_date($project->start_date) : '-' }} پایان: {{ $project->end_date ? format_date($project->end_date) : '-' }}
@can('professionalproject.edit_project') @lang('professionalproject::lang.edit_project') @endcan @can('professionalproject.create_task') @lang('professionalproject::lang.create_task') @endcan @can('professionalproject.view_gantt') @lang('professionalproject::lang.gantt') @endcan

{{ $project->progress }}%

@lang('professionalproject::lang.progress')

{{ $completedTasks }}/{{ $totalTasks }}

وظایف تکمیل شده

{{ $overdueTasks }}

وظایف عقب‌افتاده

{{ $upcomingTasks }}

وظایف باز آینده

@endsection @section('css') @include('professionalproject::layouts.professional_style') @endsection @section('javascript') @endsection