From 01c387e3ba55a66fb3e8337865b1b981fec6aead Mon Sep 17 00:00:00 2001 From: michele Date: Sat, 29 Aug 2026 00:54:50 +0200 Subject: [PATCH] fix(unita-immobiliare): load in_da_ec payments & clean up UI top bar layout matching ASCII wireframe (task-d095b0e23b) --- app/Filament/Pages/UnitaImmobiliarePage.php | 65 ++++++++---- .../pages/unita-immobiliare.blade.php | 98 ++++++++----------- 2 files changed, 90 insertions(+), 73 deletions(-) diff --git a/app/Filament/Pages/UnitaImmobiliarePage.php b/app/Filament/Pages/UnitaImmobiliarePage.php index d291726..9934a86 100755 --- a/app/Filament/Pages/UnitaImmobiliarePage.php +++ b/app/Filament/Pages/UnitaImmobiliarePage.php @@ -881,26 +881,55 @@ public function getEstrattoContoNominativoDettaglioProperty(): array $dettaglioIncassi = []; $totaleIncassato = 0.0; - if ($idCond > 0 && DbSchema::connection('gescon_import')->hasTable('incassi')) { - $incassiRows = DB::connection('gescon_import')->table('incassi') - ->where('cod_stabile', $codStabile) - ->where('id_cond', $idCond) - ->orderBy('data_pagamento') - ->get(); + if ($idCond > 0) { + if (DbSchema::connection('gescon_import')->hasTable('in_da_ec')) { + $ecRows = DB::connection('gescon_import')->table('in_da_ec') + ->where('cod_stabile', $codStabile) + ->where(function ($q) use ($idCond) { + $q->where('id_condomino', (string) $idCond) + ->orWhere('id_condomino', (int) $idCond); + }) + ->orderBy('data_pag') + ->get(); - foreach ($incassiRows as $inc) { - $imp = (float) ($inc->importo_euro ?? $inc->importo_pagato_euro ?? 0); - $yearRef = (string) ($inc->anno_rif ?? ''); - $humanYr = $yearRef !== '' ? $this->resolveHumanYearLabel($yearRef, $codStabile) : '—'; + foreach ($ecRows as $inc) { + $imp = (float) ($inc->importo ?? 0); + $yearRef = (string) ($inc->legacy_year ?? ''); + $humanYr = $yearRef !== '' ? $this->resolveHumanYearLabel($yearRef, $codStabile) : '—'; + $dtPag = ! empty($inc->data_pag) ? date('d/m/Y', strtotime((string) $inc->data_pag)) : '—'; - $dettaglioIncassi[] = [ - 'data_pagamento' => (string) ($inc->data_pagamento ?? '—'), - 'cod_cassa' => (string) ($inc->cod_cassa ?? '—'), - 'anno_rif' => $humanYr, - 'importo_euro' => $imp, - 'descrizione' => (string) ($inc->descrizione ?? '—'), - ]; - $totaleIncassato += $imp; + $dettaglioIncassi[] = [ + 'data_pagamento' => $dtPag, + 'cod_cassa' => (string) ($inc->num_incasso ?? ($inc->protocollo ?? 'EC')), + 'anno_rif' => $humanYr, + 'importo_euro' => $imp, + 'descrizione' => trim((string) ($inc->nome_condomino ?? '')) . ($inc->descrizione_aggintiva ? ' — ' . trim((string) $inc->descrizione_aggintiva) : ''), + ]; + $totaleIncassato += $imp; + } + } + + if (empty($dettaglioIncassi) && DbSchema::connection('gescon_import')->hasTable('incassi')) { + $incassiRows = DB::connection('gescon_import')->table('incassi') + ->where('cod_stabile', $codStabile) + ->where('id_cond', $idCond) + ->orderBy('data_pagamento') + ->get(); + + foreach ($incassiRows as $inc) { + $imp = (float) ($inc->importo_euro ?? $inc->importo_pagato_euro ?? 0); + $yearRef = (string) ($inc->anno_rif ?? ''); + $humanYr = $yearRef !== '' ? $this->resolveHumanYearLabel($yearRef, $codStabile) : '—'; + + $dettaglioIncassi[] = [ + 'data_pagamento' => (string) ($inc->data_pagamento ?? '—'), + 'cod_cassa' => (string) ($inc->cod_cassa ?? '—'), + 'anno_rif' => $humanYr, + 'importo_euro' => $imp, + 'descrizione' => (string) ($inc->descrizione ?? '—'), + ]; + $totaleIncassato += $imp; + } } } diff --git a/resources/views/filament/pages/unita-immobiliare.blade.php b/resources/views/filament/pages/unita-immobiliare.blade.php index 620cc07..8274762 100755 --- a/resources/views/filament/pages/unita-immobiliare.blade.php +++ b/resources/views/filament/pages/unita-immobiliare.blade.php @@ -60,18 +60,6 @@ class="inline-flex items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-xs font-me - - @include('filament.components.page-breadcrumbs', [ - 'breadcrumbs' => [ - ['label' => 'Condomini', 'url' => route('admin.dashboards.condomini')], - ['label' => 'Unità immobiliari', 'url' => \App\Filament\Pages\Condomini\UnitaImmobiliariArchivio::getUrl(panel: 'admin-filament')], - ['label' => 'Scheda unità'], - ], - 'backUrl' => $this->getBackUrl(), - 'backLabel' => 'Torna indietro', - ]) - - @php $unitaOptions = $this->getUnitaOptions(); $prevUrl = $this->getPrevUnitaUrl(); @@ -83,53 +71,53 @@ class="inline-flex items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-xs font-me ]; @endphp - -
-
-
- Prec. - @if($prevUrl) - - @else - - @endif + {{-- CONTROLLI COMPATTI SELEZIONE UNITÀ & VISTA --}} +
+
+ + + Torna indietro + + | + +
+ @if($prevUrl) + ← Prec. + @else + ← Prec. + @endif + +
+ {{ $this->getSchema('unitaPicker') }}
-
- Unità -
{{ $this->getSchema('unitaPicker') }}
-
- -
- Succ. - @if($nextUrl) - - @else - - @endif -
-
- -
- Vista: - - Visibilità: - @foreach($visibilityOptions as $key => $label) - - @endforeach + @if($nextUrl) + Succ. → + @else + Succ. → + @endif
- + +
+ Vista: + + Visibilità: + @foreach($visibilityOptions as $key => $label) + + @endforeach +
+
@if(!$unita)
Nessuna unità immobiliare trovata.