@extends('admin.layouts.netgescon') @section('page-title', 'Rubrica Unica NetGescon') @push('head') @endpush @section('content') @php $records = null; if (isset($persone) && $persone instanceof \Illuminate\Contracts\Pagination\LengthAwarePaginator) { $records = $persone; } elseif (isset($soggetti) && $soggetti instanceof \Illuminate\Contracts\Pagination\LengthAwarePaginator) { $records = $soggetti; } if (!$records) { $records = new \Illuminate\Pagination\LengthAwarePaginator([], 0, 20, 1, [ 'path' => request()->url(), 'query' => request()->query(), ]); } // Deduplica client-side per display: prefer CF, poi email, poi telefono, poi nome+telefono $displayRecords = $records->getCollection() ->unique(function ($item) { $cf = $item->codice_fiscale ?? null; $email = $item->email ?? $item->email_principale ?? null; $tel = $item->telefono_ufficio ?? $item->telefono_cellulare ?? $item->telefono_principale ?? null; $name = ($item->nome ?? '') . '|' . ($item->cognome ?? '') . '|' . ($item->ragione_sociale ?? ''); return $cf ?: $email ?: ($tel ? $name . '|' . $tel : $name); }) ->values(); $duplicateHidden = max(0, $records->count() - $displayRecords->count()); $statistiche = is_array($statistiche ?? null) ? $statistiche : [ 'totale_persone' => 0, 'persone_fisiche' => 0, 'persone_giuridiche' => 0, 'con_relazioni_attive' => 0, 'senza_relazioni' => 0, ]; $categorieDisponibili = collect($categorieDisponibili ?? [])->filter()->values(); @endphp

Rubrica Unica NetGescon

Sistema centralizzato per gestione anagrafica di tutto lo studio

Totale Persone

{{ $statistiche['totale_persone'] ?? 0 }}

Persone Fisiche

{{ $statistiche['persone_fisiche'] ?? 0 }}

Persone Giuridiche

{{ $statistiche['persone_giuridiche'] ?? 0 }}

Con Relazioni

{{ $statistiche['con_relazioni_attive'] ?? 0 }}

Collegate a unità

Senza Relazioni

{{ $statistiche['senza_relazioni'] ?? 0 }}

Da collegare

@if($categorieDisponibili->isNotEmpty())
@endif
@if(request('search')) Reset @endif

Elenco Soggetti @if(request('search')) ({{ $displayRecords->count() }} risultati unici per "{{ request('search') }}" @if($duplicateHidden>0) / {{ $duplicateHidden }} duplicati nascosti @endif) @else ({{ $displayRecords->count() }} soggetti unici @if($duplicateHidden>0) / {{ $duplicateHidden }} duplicati nascosti @endif) @endif

@forelse($displayRecords as $soggetto) @php $tipoRaw = strtolower((string) ($soggetto->tipologia ?? $soggetto->tipo ?? 'f')); $isFisica = in_array($tipoRaw, ['f', 'fisica', 'persona_fisica'], true); $nomeCompleto = $soggetto->nome_completo ?? ($isFisica ? trim(($soggetto->nome ?? '') . ' ' . ($soggetto->cognome ?? '')) : ($soggetto->ragione_sociale ?? trim(($soggetto->nome ?? '') . ' ' . ($soggetto->cognome ?? '')))); $codiceFiscale = $soggetto->codice_fiscale ?? $soggetto->codice_fiscale_societa ?? null; $partitaIva = $soggetto->partita_iva ?? $soggetto->partita_iva_societa ?? null; $emailPrincipale = $soggetto->email_principale ?? $soggetto->email ?? null; $pecPrincipale = $soggetto->email_pec ?? $soggetto->pec ?? null; $telefonoPrincipale = $soggetto->telefono_principale ?? $soggetto->telefono ?? null; $relazioniUnita = collect(); if (method_exists($soggetto, 'relationLoaded') && $soggetto->relationLoaded('relazioniUnitaAttive')) { $relazioniUnita = $soggetto->relazioniUnitaAttive->map(function ($relazione) { $unita = $relazione->unitaImmobiliare; return [ 'stabile' => $unita->stabile->denominazione ?? 'N/D', 'scala' => $unita->scala ?? null, 'interno' => $unita->interno ?? null, 'ruolo' => $relazione->tipo_relazione ?? null, 'quota' => $relazione->quota_relazione ?? null, ]; }); } elseif (method_exists($soggetto, 'relationLoaded') && $soggetto->relationLoaded('unitaImmobiliari')) { $relazioniUnita = $soggetto->unitaImmobiliari->map(function ($unita) { return [ 'stabile' => $unita->stabile->denominazione ?? 'N/D', 'scala' => $unita->scala ?? null, 'interno' => $unita->interno ?? null, 'ruolo' => $unita->pivot->tipo_diritto ?? null, 'quota' => $unita->pivot->percentuale_possesso ?? null, ]; }); } elseif (method_exists($soggetto, 'relationLoaded') && $soggetto->relationLoaded('ruoli')) { $relazioniUnita = $soggetto->ruoli->map(function ($ruolo) { $stabile = $ruolo->stabile; $unita = $ruolo->unitaImmobiliare; return [ 'stabile' => $stabile->denominazione ?? ($ruolo->meta['stabile_label'] ?? 'N/D'), 'scala' => $unita->scala ?? null, 'interno' => $unita->interno ?? null, 'ruolo' => $ruolo->ruolo_custom ?? $ruolo->ruolo_standard, 'quota' => null, ]; }); } @endphp @empty @endforelse
Soggetto Tipo Contatti Unità Immobiliari Azioni
@if($soggetto->tipo == 'F') @else @endif
{{ $nomeCompleto ?: '—' }}
@if($codiceFiscale) CF: {{ $codiceFiscale }} @endif @if($partitaIva) | P.IVA: {{ $partitaIva }} @endif
@if(!empty($soggetto->categoria)) {{ ucfirst($soggetto->categoria) }} @endif @if(method_exists($soggetto, 'relationLoaded') && $soggetto->relationLoaded('ruoli') && $soggetto->ruoli->count()) @foreach($soggetto->ruoli->take(3) as $ruolo) {{ strtoupper($ruolo->ruolo_custom ?? $ruolo->ruolo_standard) }} @if($ruolo->stabile) · {{ \Illuminate\Support\Str::limit($ruolo->stabile->denominazione, 20) }} @endif @endforeach @if($soggetto->ruoli->count() > 3) +{{ $soggetto->ruoli->count() - 3 }} @endif @endif
@if($isFisica) Persona Fisica @else Persona Giuridica @endif @if($emailPrincipale) @endif @if($pecPrincipale) @endif @if($telefonoPrincipale) @endif @if(!$emailPrincipale && !$telefonoPrincipale) Nessun contatto @endif @if($relazioniUnita->count() > 0)
@foreach($relazioniUnita->take(2) as $unita)
{{ $unita['stabile'] ?? 'N/D' }} @if(!empty($unita['scala']) || !empty($unita['interno'])) - Scala {{ $unita['scala'] ?? '-' }} Int. {{ $unita['interno'] ?? '-' }} @endif
@if(!empty($unita['ruolo']) || !empty($unita['quota']))
{{ ucfirst($unita['ruolo'] ?? 'ruolo') }} @if(!empty($unita['quota'])) ({{ $unita['quota'] }}) @endif
@endif @endforeach @if($relazioniUnita->count() > 2)
... e altre {{ $relazioniUnita->count() - 2 }} unità
@endif
@else Nessuna unità @endif
@if($records->count() > 0) @endif

Nessun soggetto trovato

@if(request('search'))

Prova a modificare i criteri di ricerca

@else

Aggiungi il primo soggetto alla rubrica

@endif
@if($records->hasPages())
{{ $records->appends(request()->query())->links() }}
@endif
@endsection