{{-- ── Header de la empresa ─────────────────────────────────────────────── --}}
{{-- Izquierda: logo + datos --}}
{{-- Logo --}} @if($company->logo_path && \Illuminate\Support\Facades\Storage::disk('public')->exists($company->logo_path)) Logo {{ $company->name }} @else
@endif {{-- Datos --}}

{{ $company->name }}

@if($company->apodo) "{{ $company->apodo }}" @endif {{-- Tipo --}} @php $typeBadge = match($company->type) { 'owner' => ['badge-success', 'Promotor'], 'constructor' => ['badge-primary', 'Constructor'], 'subcontractor' => ['badge-secondary','Subcontratista'], 'consultant' => ['badge-info', 'Consultor'], 'supplier' => ['badge-warning', 'Proveedor'], default => ['badge-ghost', 'Otro'], }; @endphp {{ $typeBadge[1] }}
{{-- NIF --}} @if($company->tax_id)

NIF/CIF: {{ $company->tax_id }}

@endif {{-- Contacto inline --}}
@if($company->email) {{ $company->email }} @endif @if($company->phone) {{ $company->phone }} @endif @if($company->address) {{ $company->address }} @endif @if($company->website) {{ parse_url($company->website, PHP_URL_HOST) ?? $company->website }} @endif
{{-- Derecha: estado + botones --}}
{{-- Estado --}} @php $estadoBadge = match($company->estado ?? 'activo') { 'activo' => ['badge-success', 'Activo'], 'inactivo' => ['badge-ghost', 'Inactivo'], 'suspendido' => ['badge-error', 'Suspendido'], default => ['badge-ghost', ucfirst($company->estado ?? '')], }; @endphp {{ $estadoBadge[1] }} {{-- Botones --}}
{{-- ── Contenido principal ──────────────────────────────────────────────── --}}
{{-- Tabs --}}
{{-- ════════════════════════════════════════════════════════════════════ TAB: RESUMEN ════════════════════════════════════════════════════════════════════ --}} @if($activeTab === 'summary')
{{-- KPIs --}}

{{ $usersCount }}

Personas

{{ $projectsCount }}

Proyectos

{{ $avgProgress }}%

Progreso medio

@if($projectsCount > 0) @endif

{{ $openIssues }}

Issues abiertos

{{-- Proyectos con progreso --}} @if($company->projects->isNotEmpty())

Estado de proyectos

@foreach($company->projects as $p) @php $avg = $p->phases->avg('progress_percent') ?? 0; $pStatusBadge = match($p->status) { 'in_progress' => ['badge-primary', 'En progreso'], 'completed' => ['badge-success', 'Completado'], 'paused' => ['badge-warning', 'Pausado'], 'planning' => ['badge-ghost', 'Planificación'], default => ['badge-ghost', ucfirst($p->status)], }; @endphp
{{ $p->name }} {{ $pStatusBadge[1] }}
{{ round($avg) }}%
@if($p->pivot->role_in_project) {{ $p->pivot->role_in_project }} @endif
@endforeach
@endif {{-- Ficha empresa --}}

Ficha

@foreach([ ['NIF/CIF', $company->tax_id], ['Tipo', $typeBadge[1]], ['Estado', $estadoBadge[1]], ['Teléfono', $company->phone], ['Email', $company->email], ['Dirección', $company->address], ['Web', $company->website], ] as [$label, $val]) @if($val)
{{ $label }} @if($label === 'Web') {{ $val }} @else {{ $val }} @endif
@endif @endforeach
@endif {{-- ════════════════════════════════════════════════════════════════════ TAB: PERSONAS ════════════════════════════════════════════════════════════════════ --}} @if($activeTab === 'people')
{{-- Acciones --}}
{{-- Crear nuevo usuario --}} Crear nuevo usuario {{-- Asignar existente --}} @if($assignableUsers->isNotEmpty())
@error('assignUserId')

{{ $message }}

@enderror
@endif
{{-- Lista personas --}} @if($company->users->isEmpty())

Ninguna persona asociada a esta empresa.

@else
@foreach($company->users as $u) @php $uStatusBadge = match($u->status ?? 'active') { 'active' => ['badge-success', 'Activo'], 'inactive' => ['badge-ghost', 'Inactivo'], 'suspended' => ['badge-error', 'Suspendido'], default => ['badge-ghost', ucfirst($u->status ?? '')], }; @endphp @endforeach
Persona Rol Estado Contacto
{{ strtoupper(substr($u->first_name ?: $u->name, 0, 1)) }}{{ strtoupper(substr($u->last_name ?: '', 0, 1)) }}

@if($u->title) {{ $u->title }} @endif {{ $u->first_name && $u->last_name ? $u->first_name . ' ' . $u->last_name : $u->name }}

{{ $u->email }}

@foreach($u->roles as $role) {{ $role->name }} @endforeach @if($u->roles->isEmpty()) Sin rol @endif
{{ $uStatusBadge[1] }} @if($u->phone)
{{ $u->phone }}
@endif
@endif
@endif {{-- ════════════════════════════════════════════════════════════════════ TAB: PROYECTOS ════════════════════════════════════════════════════════════════════ --}} @if($activeTab === 'projects')
{{-- Formulario asignar --}}

Vincular a proyecto

@if($availableProjects->isEmpty())

La empresa ya está vinculada a todos los proyectos.

@else
@error('addProjectId')

{{ $message }}

@enderror
@error('addProjectRole')

{{ $message }}

@enderror
@endif
{{-- Lista proyectos --}} @if($company->projects->isEmpty())

Sin proyectos vinculados.

@else
@foreach($company->projects as $project) @php $avg = $project->phases->avg('progress_percent') ?? 0; $psCfg = match($project->status) { 'in_progress' => ['badge-primary', 'En progreso'], 'completed' => ['badge-success', 'Completado'], 'paused' => ['badge-warning', 'Pausado'], 'planning' => ['badge-ghost', 'Planificación'], default => ['badge-ghost', ucfirst($project->status)], }; @endphp @endforeach
Proyecto Rol de la empresa Estado Progreso
{{ $project->name }} @if($project->address)

{{ $project->address }}

@endif
{{ $project->pivot->role_in_project }} {{ $psCfg[1] }}
{{ round($avg) }}%
@endif
@endif {{-- ════════════════════════════════════════════════════════════════════ TAB: NOTAS ════════════════════════════════════════════════════════════════════ --}} @if($activeTab === 'notes')

Notas internas

@if(!$editingNotes) @endif
@if($editingNotes)
@else @if($company->notes)
{{ $company->notes }}
@else

Sin notas.

@endif @endif
@endif