{{-- resources/views/tramites/edit.blade.php --}} @extends('backend.layouts.app') {{-- Estilos críticos en el head para evitar FOUC --}} @push('before-styles') @stack('before-styles') @vite(['resources/sass/tramite-form.scss']) @stack('after-styles') @endpush @push('after-styles') @endpush {{-- Título personalizado mejorado para edición --}} @section('page-title')

Editar Trámite

ID: {{ $tramite->id }} - {{ $tramite->nombre_producto ?? 'Sin nombre' }}

@php $stateClass = match($tramite->estado_tramite_id ?? 1) { 1 => 'badge-secondary', // NO ASIGNADO 2 => 'badge-primary', // ASIGNADO 3 => 'badge-info', // INICIADO 4 => 'badge-warning', // EN REVISIÓN 5 => 'badge-danger', // DEVUELTO 6 => 'badge-success', // APROBADO 7 => 'badge-dark', // CANCELADO 8 => 'badge-info', // TICKET 9 => 'badge-primary', // RADICADO 10 => 'badge-warning', // AUTO 11 => 'badge-info', // GESTIÓN DEL AUTO 12 => 'badge-success', // CONCEDIDO 13 => 'badge-danger', // NEGADO 14 => 'badge-warning', // RECURSO 15 => 'badge-info', // COMUNICACIÓN 16 => 'badge-success', // FINALIZADO default => 'badge-secondary' }; @endphp {{ $tramite->estadoTramite->nombre ?? 'Sin estado' }}
@endsection @section('content') @vite(['resources/sass/tramite-form.scss']) @php $stateHandler = app(\App\Services\TramiteStateHandler::class); $viewData = $stateHandler->getViewData($tramite); $stateId = $viewData['stateId']; $userRole = $viewData['userRole']; $alertConfig = $viewData['alertConfig']; $fieldPermissions = $viewData['fieldPermissions']; $buttonPermissions = $viewData['buttonPermissions']; $visibleFields = $viewData['visibleFields']; $editableFields = $viewData['editableFields']; $fieldDefinitions = $viewData['fieldDefinitions']; $customFields = $viewData['customFields']; $jsConfig = $viewData['jsConfig']; @endphp
{{-- Dynamic Alert based on state configuration --}} @if(!empty($alertConfig))
@if(isset($alertConfig['icon'])) @endif {!! $alertConfig['message'] ?? '' !!} @if(($alertConfig['show_responsible'] ?? false) && $tramite->usuario_responsable)
Responsable: {{ strtoupper($tramite->usuario_responsable->name) }} @endif
@endif @if ($errors->any())
Por favor corrija los siguientes errores:
@endif @if (session('error'))
{{ session('error') }}
@endif @if (session('success'))
{{ session('success') }}
@endif
@csrf @method('PUT') {{-- Crear una versión estilizada del universal-state --}} @include('tramites.edicion.universal-state-styled') {{-- ACCIONES DEL FORMULARIO --}}
@if(count(array_intersect($editableFields, $visibleFields)) > 0) @endif
{{-- Botón de Iniciar - Solo visible cuando el trámite está en estado ASIGNADO --}} @if($stateHandler->isButtonEnabled($stateId, 'iniciar', $userRole)) @php $buttonConfig = $stateHandler->getButtonConfig($stateId, 'iniciar', $userRole); @endphp @endif {{-- Botón de Solicitar Ticket - Solo visible cuando el trámite está en estado APROBADO --}} @if($stateHandler->isButtonEnabled($stateId, 'solicitar_ticket', $userRole)) @php $buttonConfig = $stateHandler->getButtonConfig($stateId, 'solicitar_ticket', $userRole); @endphp @endif {{-- Botón de Corregir Trámite - Solo visible cuando el trámite está en estado DEVUELTO --}} @if($stateHandler->isButtonEnabled($stateId, 'corregir_tramite', $userRole)) @php $buttonConfig = $stateHandler->getButtonConfig($stateId, 'corregir_tramite', $userRole); @endphp @endif {{-- Botón de Notificar - Solo visible cuando el trámite está en estado COMUNICADO --}} @if($tramite->estado_tramite_id === 15) @endif @if(count(array_intersect($editableFields, $visibleFields)) > 0) @endif
@include('tramites.partials.comentarios', ['tramite' => $tramite])
@endsection