@extends('layouts.app') @section('title', 'Ticket #' . $ticket->ticket_number) @section('page-title', 'Detalle del Ticket #' . $ticket->ticket_number) @section('content')

{{ $ticket->title }}

@php $wasReopened = $ticket->activities()->where('action', 'reopened')->exists(); @endphp @if($wasReopened) Reabierto @endif {{ ucfirst($ticket->priority) }} {{ ucfirst(str_replace('_', ' ', $ticket->status)) }}
Descripci贸n

{{ $ticket->description }}

@if($ticket->resolution_notes)
Notas de Resoluci贸n

{{ $ticket->resolution_notes }}

@endif
Comentarios
@forelse($ticket->comments as $comment) @php $isReopenComment = strpos($comment->content, '馃攧 **Ticket Reabierto**') !== false; @endphp
@if($isReopenComment) @else {{ substr($comment->user->name, 0, 1) }} @endif
{{ $comment->user->name }} {{ role_name($comment->user->role) }} @if($isReopenComment) Reapertura @endif
{{ $comment->created_at->diffForHumans() }}

{!! nl2br(e($comment->content)) !!}

{{-- Debug: mostrar cantidad de attachments --}} @if(config('app.debug')) DEBUG: {{ $comment->attachments->count() }} archivo(s) adjunto(s) @endif @if($comment->attachments->count() > 0)
Archivos adjuntos:
@foreach($comment->attachments as $attachment) @endforeach
@endif
@empty

No hay comentarios todav铆a

@endforelse @php $user = auth()->user(); $canComment = false; if ($user->role === 'administrador') { $canComment = true; } elseif ($user->role === 'solicitante') { $canComment = ($ticket->requester_id === $user->id); } elseif (in_array($user->role, ['responsable', 'ingeniero', 'supervisor'])) { $assignedProjectIds = $user->getAssignedProjectIds(); $canComment = ($ticket->assigned_to === $user->id) || ($ticket->requester_id === $user->id) || (in_array($ticket->project_id, $assignedProjectIds)); } @endphp @if($ticket->status != 'cerrado' && $canComment)
Agregar Comentario
@csrf
Puedes adjuntar im谩genes, documentos o archivos (m谩x. 10MB por archivo)
@elseif($ticket->status != 'cerrado')
No tienes permisos para comentar en este ticket. Solo puedes comentar en tickets de tus proyectos asignados.
@endif
Informaci贸n del Ticket
ID del Ticket {{ $ticket->ticket_number }}
Proyecto @if($ticket->project) {{ $ticket->project->name }} @else Sin proyecto @endif
Creado por {{ $ticket->requester->name }}
Asignado a @if($ticket->assignedUser) {{ $ticket->assignedUser->name }} @else Sin asignar @endif
Fecha de Creaci贸n {{ $ticket->created_at->format('d/m/Y H:i') }}
@if($ticket->due_date)
Fecha L铆mite {{ $ticket->due_date->format('d/m/Y') }} @if($ticket->isOverdue()) @endif
@endif @if($ticket->resolved_at)
Fecha de Resoluci贸n {{ $ticket->resolved_at->format('d/m/Y H:i') }}
@endif @if($ticket->closed_at)
Fecha de Cierre {{ $ticket->closed_at->format('d/m/Y H:i') }}
@endif @php $reopenCount = $ticket->activities()->where('action', 'reopened')->count(); @endphp @if($reopenCount > 0)
Veces Reabierto {{ $reopenCount }} {{ $reopenCount == 1 ? 'vez' : 'veces' }}
@endif
@if(in_array(auth()->user()->role, ['responsable', 'ingeniero', 'supervisor', 'administrador']))
Tiempo de Trabajo
Tiempo Total Invertido {{ $ticket->getFormattedTotalWorkTime() ?: '0m' }}
@php $activeSession = $ticket->workSessions() ->where('user_id', auth()->id()) ->whereNull('ended_at') ->first(); @endphp @if($activeSession)
Sesi贸n activa
Iniciada: {{ $activeSession->started_at->format('H:i:s') }}
Tiempo: Calculando...
@endif @if($ticket->workSessions->count() > 0)
Historial de Sesiones ({{ $ticket->workSessions->count() }})
@foreach($ticket->workSessions->take(10) as $session)
{{ $session->user->name }}
{{ $session->started_at->format('d/m/Y H:i') }}
{{ $session->formatted_duration }}
@endforeach
@endif
@endif
Acciones
@php // Verificar permisos de edici贸n $canEdit = auth()->user()->hasRole(['administrador', 'supervisor']) || auth()->id() == $ticket->requester_id; // Verificar permisos para cambiar estado $canChangeStatus = false; if (auth()->user()->hasRole(['administrador'])) { $canChangeStatus = true; } elseif (in_array(auth()->user()->role, ['responsable', 'ingeniero', 'supervisor'])) { $assignedProjectIds = auth()->user()->getAssignedProjectIds(); $canChangeStatus = ($ticket->assigned_to === auth()->id()) || (in_array($ticket->project_id, $assignedProjectIds)); } @endphp @if($canEdit) Editar Ticket @endif @if($canChangeStatus && $ticket->status != 'cerrado')
@csrf @method('PATCH') @if($ticket->status == 'abierto') @endif
@csrf @method('PATCH') @if($ticket->status != 'resuelto') @endif
@endif @if(auth()->id() == $ticket->requester_id && $ticket->status == 'resuelto')
驴El problema fue solucionado?
Si confirmas que todo funciona correctamente, puedes cerrar este ticket.
@endif @if($ticket->status == 'cerrado') @endif @if(!$canChangeStatus && !auth()->user()->hasRole(['administrador']))
Solo puedes gestionar tickets de tus proyectos asignados
@endif Volver a Lista
@endsection @push('scripts') @endpush