309 lines
20 KiB
PHP
Executable File
309 lines
20 KiB
PHP
Executable File
<!-- Tab Dati Bancari con Rubrica Universale -->
|
|
<div class="space-y-6">
|
|
<!-- Header con bottoni azione -->
|
|
<div class="flex justify-between items-center">
|
|
<div>
|
|
<h4 class="text-xl font-semibold text-gray-900 dark:text-gray-100">
|
|
<i class="fas fa-university mr-2 text-blue-600"></i>
|
|
Dati Bancari dello Stabile
|
|
</h4>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400 mt-1">
|
|
Gestione conti bancari con collegamento alla rubrica universale
|
|
</p>
|
|
</div>
|
|
|
|
<div class="flex flex-wrap gap-2">
|
|
<form method="POST" action="{{ route('admin.stabili.dati-bancari.import-da-stabili-mdb', $stabile) }}">
|
|
@csrf
|
|
<button type="submit" class="fi-btn fi-btn-color-warning fi-btn-size-sm" title="Legge Stabili.mdb e aggiorna banca/posta (non distruttivo)">
|
|
<span class="fi-btn-label">Importa banca da Stabili.mdb</span>
|
|
</button>
|
|
</form>
|
|
|
|
<a class="fi-btn fi-btn-color-success fi-btn-size-sm" href="{{ route('admin.dati-bancari.create', ['stabile_id' => $stabile->id]) }}">
|
|
<span class="fi-btn-label">Nuovo conto (CRUD)</span>
|
|
</a>
|
|
|
|
<a class="fi-btn fi-btn-color-gray fi-btn-size-sm" href="{{ route('admin.dati-bancari.index') }}">
|
|
<span class="fi-btn-label">Apri elenco conti</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Lista Conti Bancari Esistenti -->
|
|
@if($stabile->datiBancari && $stabile->datiBancari?->count() > 0)
|
|
<div class="space-y-4">
|
|
@foreach($stabile->datiBancari as $conto)
|
|
@php
|
|
$movimentiBaseUrl = \App\Filament\Pages\Contabilita\CasseBancheMovimenti::getUrl(panel: 'admin-filament');
|
|
$movimentiUrl = $movimentiBaseUrl;
|
|
|
|
$iban = is_string($conto->iban ?? null) ? trim((string) $conto->iban) : '';
|
|
if ($iban !== '') {
|
|
$movimentiUrl .= '?' . http_build_query([
|
|
'tableFilters' => [
|
|
'conto' => [
|
|
'ibans' => [$iban],
|
|
],
|
|
],
|
|
]);
|
|
}
|
|
|
|
$rubricaUrl = \App\Filament\Pages\Gescon\RubricaUniversaleArchivio::getUrl(panel: 'admin-filament');
|
|
@endphp
|
|
|
|
<div class="bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg p-6 hover:shadow-md transition-shadow">
|
|
<div class="flex justify-between items-start">
|
|
<div class="flex-1">
|
|
<div class="flex items-center mb-3">
|
|
<div class="p-2 bg-blue-100 dark:bg-blue-900 rounded-lg mr-3">
|
|
<i class="fas fa-university text-blue-600 dark:text-blue-400"></i>
|
|
</div>
|
|
<div>
|
|
<h5 class="font-semibold text-gray-900 dark:text-gray-100">
|
|
{{ $conto->denominazione_banca }}
|
|
</h5>
|
|
<p class="text-sm text-gray-600 dark:text-gray-400">
|
|
{{ ucfirst($conto->tipo_conto) }}
|
|
</p>
|
|
</div>
|
|
<div class="ml-auto flex items-center gap-2">
|
|
<a href="{{ $movimentiUrl }}"
|
|
class="inline-flex items-center justify-center w-9 h-9 rounded-lg bg-indigo-600 hover:bg-indigo-700 text-white transition-colors"
|
|
title="Movimenti / Import estratto">
|
|
<i class="fas fa-receipt text-sm"></i>
|
|
</a>
|
|
|
|
<a href="{{ $rubricaUrl }}"
|
|
class="inline-flex items-center justify-center w-9 h-9 rounded-lg bg-blue-600 hover:bg-blue-700 text-white transition-colors"
|
|
title="Apri rubrica">
|
|
<i class="fas fa-address-book text-sm"></i>
|
|
</a>
|
|
|
|
<a href="{{ route('admin.dati-bancari.edit', $conto) }}"
|
|
class="inline-flex items-center justify-center w-9 h-9 rounded-lg bg-green-600 hover:bg-green-700 text-white transition-colors"
|
|
title="Modifica (CRUD)">
|
|
<i class="fas fa-pen text-sm"></i>
|
|
</a>
|
|
|
|
<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium
|
|
{{ $conto->stato_conto === 'attivo' ? 'bg-green-100 text-green-800 dark:bg-green-800 dark:text-green-100' :
|
|
($conto->stato_conto === 'sospeso' ? 'bg-yellow-100 text-yellow-800 dark:bg-yellow-800 dark:text-yellow-100' :
|
|
'bg-red-100 text-red-800 dark:bg-red-800 dark:text-red-100') }}">
|
|
<i class="fas fa-circle mr-1 text-xs"></i>
|
|
{{ ucfirst($conto->stato_conto) }}
|
|
</span>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
<!-- Dati Bancari -->
|
|
<div class="bg-gray-50 dark:bg-gray-700 p-4 rounded-lg">
|
|
<h6 class="font-medium text-gray-900 dark:text-gray-100 mb-2">
|
|
<i class="fas fa-credit-card mr-2 text-gray-600"></i>
|
|
Dati Conto
|
|
</h6>
|
|
<dl class="space-y-1">
|
|
@if($conto->iban)
|
|
<div>
|
|
<dt class="text-xs font-medium text-gray-500 dark:text-gray-400">IBAN:</dt>
|
|
<dd class="text-sm text-gray-900 dark:text-gray-100 font-mono">{{ $conto->iban }}</dd>
|
|
</div>
|
|
@endif
|
|
@if($conto->numero_conto)
|
|
<div>
|
|
<dt class="text-xs font-medium text-gray-500 dark:text-gray-400">N. Conto:</dt>
|
|
<dd class="text-sm text-gray-900 dark:text-gray-100 font-mono">{{ $conto->numero_conto }}</dd>
|
|
</div>
|
|
@endif
|
|
@if($conto->abi && $conto->cab)
|
|
<div class="grid grid-cols-3 gap-2">
|
|
<div>
|
|
<dt class="text-xs font-medium text-gray-500 dark:text-gray-400">ABI:</dt>
|
|
<dd class="text-sm text-gray-900 dark:text-gray-100 font-mono">{{ $conto->abi }}</dd>
|
|
</div>
|
|
<div>
|
|
<dt class="text-xs font-medium text-gray-500 dark:text-gray-400">CAB:</dt>
|
|
<dd class="text-sm text-gray-900 dark:text-gray-100 font-mono">{{ $conto->cab }}</dd>
|
|
</div>
|
|
@if($conto->cin)
|
|
<div>
|
|
<dt class="text-xs font-medium text-gray-500 dark:text-gray-400">CIN:</dt>
|
|
<dd class="text-sm text-gray-900 dark:text-gray-100 font-mono">{{ $conto->cin }}</dd>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
@endif
|
|
@if($conto->cuc)
|
|
<div>
|
|
<dt class="text-xs font-medium text-gray-500 dark:text-gray-400">CUC:</dt>
|
|
<dd class="text-sm text-gray-900 dark:text-gray-100 font-mono">{{ $conto->cuc }}</dd>
|
|
</div>
|
|
@endif
|
|
</dl>
|
|
</div>
|
|
|
|
<!-- Dati Contatto Banca -->
|
|
<div class="bg-gray-50 dark:bg-gray-700 p-4 rounded-lg">
|
|
<div class="flex items-center justify-between mb-2">
|
|
<h6 class="font-medium text-gray-900 dark:text-gray-100">
|
|
<i class="fas fa-address-card mr-2 text-gray-600"></i>
|
|
Contatto Banca
|
|
</h6>
|
|
@if($conto->contatto)
|
|
<button type="button"
|
|
class="text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300"
|
|
onclick="mostraContattoCompleto({{ $conto->contatto->id }})">
|
|
<i class="fas fa-external-link-alt text-xs"></i>
|
|
</button>
|
|
@else
|
|
<button type="button"
|
|
class="text-green-600 hover:text-green-800 dark:text-green-400 dark:hover:text-green-300"
|
|
onclick="collegaContatto({{ $conto->id }})">
|
|
<i class="fas fa-link text-xs"></i>
|
|
</button>
|
|
@endif
|
|
</div>
|
|
|
|
@if($conto->contatto)
|
|
<dl class="space-y-1">
|
|
<div>
|
|
<dt class="text-xs font-medium text-gray-500 dark:text-gray-400">Nome:</dt>
|
|
<dd class="text-sm text-gray-900 dark:text-gray-100">{{ $conto->contatto->nome_completo }}</dd>
|
|
</div>
|
|
@if($conto->contatto->telefono_ufficio)
|
|
<div>
|
|
<dt class="text-xs font-medium text-gray-500 dark:text-gray-400">Tel:</dt>
|
|
<dd class="text-sm text-gray-900 dark:text-gray-100">
|
|
<a href="tel:{{ $conto->contatto->telefono_ufficio }}"
|
|
class="text-blue-600 hover:underline">
|
|
{{ $conto->contatto->telefono_ufficio }}
|
|
</a>
|
|
</dd>
|
|
</div>
|
|
@endif
|
|
@if($conto->contatto->email)
|
|
<div>
|
|
<dt class="text-xs font-medium text-gray-500 dark:text-gray-400">Email:</dt>
|
|
<dd class="text-sm text-gray-900 dark:text-gray-100">
|
|
<a href="mailto:{{ $conto->contatto->email }}"
|
|
class="text-blue-600 hover:underline">
|
|
{{ $conto->contatto->email }}
|
|
</a>
|
|
</dd>
|
|
</div>
|
|
@endif
|
|
@if($conto->contatto->indirizzo)
|
|
<div>
|
|
<dt class="text-xs font-medium text-gray-500 dark:text-gray-400">Indirizzo:</dt>
|
|
<dd class="text-sm text-gray-900 dark:text-gray-100">{{ $conto->contatto->indirizzo_completo }}</dd>
|
|
</div>
|
|
@endif
|
|
</dl>
|
|
@else
|
|
<div class="text-center py-4">
|
|
<i class="fas fa-unlink text-gray-400 text-2xl mb-2"></i>
|
|
<p class="text-sm text-gray-500 dark:text-gray-400">
|
|
Nessun contatto collegato
|
|
</p>
|
|
<button type="button"
|
|
class="mt-2 text-sm text-blue-600 hover:text-blue-800 dark:text-blue-400 dark:hover:text-blue-300"
|
|
onclick="collegaContatto({{ $conto->id }})">
|
|
Collega Contatto
|
|
</button>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
|
|
<!-- Saldo e Info -->
|
|
<div class="bg-gray-50 dark:bg-gray-700 p-4 rounded-lg">
|
|
<h6 class="font-medium text-gray-900 dark:text-gray-100 mb-2">
|
|
<i class="fas fa-chart-line mr-2 text-gray-600"></i>
|
|
Saldo Iniziale
|
|
</h6>
|
|
<dl class="space-y-1">
|
|
@if($conto->data_saldo_iniziale)
|
|
<div>
|
|
<dt class="text-xs font-medium text-gray-500 dark:text-gray-400">Data:</dt>
|
|
<dd class="text-sm text-gray-900 dark:text-gray-100">
|
|
<i class="fas fa-calendar mr-1"></i>
|
|
{{ $conto->data_saldo_iniziale->format('d/m/Y') }}
|
|
</dd>
|
|
</div>
|
|
@endif
|
|
<div>
|
|
<dt class="text-xs font-medium text-gray-500 dark:text-gray-400">Importo:</dt>
|
|
<dd class="text-sm font-semibold {{ $conto->saldo_iniziale >= 0 ? 'text-green-600' : 'text-red-600' }}">
|
|
<i class="fas fa-euro-sign mr-1"></i>
|
|
{{ number_format($conto->saldo_iniziale, 2, ',', '.') }}
|
|
</dd>
|
|
</div>
|
|
@if($conto->intestazione_conto)
|
|
<div>
|
|
<dt class="text-xs font-medium text-gray-500 dark:text-gray-400">Intestazione:</dt>
|
|
<dd class="text-sm text-gray-900 dark:text-gray-100">{{ $conto->intestazione_conto }}</dd>
|
|
</div>
|
|
@endif
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
|
|
@if($conto->note)
|
|
<div class="mt-4 p-3 bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded">
|
|
<p class="text-sm text-gray-700 dark:text-gray-300">
|
|
<i class="fas fa-sticky-note mr-2 text-yellow-600"></i>
|
|
{{ $conto->note }}
|
|
</p>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
@endforeach
|
|
</div>
|
|
@else
|
|
<!-- Stato vuoto -->
|
|
<div class="text-center py-12 bg-gray-50 dark:bg-gray-800 rounded-lg border-2 border-dashed border-gray-300 dark:border-gray-600">
|
|
<i class="fas fa-university text-gray-400 text-4xl mb-4"></i>
|
|
<h3 class="text-lg font-medium text-gray-900 dark:text-gray-100 mb-2">Nessun conto bancario configurato</h3>
|
|
<p class="text-gray-600 dark:text-gray-400 mb-6">
|
|
Inizia aggiungendo il primo conto bancario per questo stabile
|
|
</p>
|
|
<a href="{{ route('admin.dati-bancari.create', ['stabile_id' => $stabile->id]) }}"
|
|
class="inline-flex items-center bg-blue-600 hover:bg-blue-700 text-white px-6 py-3 rounded-lg transition-colors">
|
|
<i class="fas fa-plus mr-2"></i>
|
|
Aggiungi Primo Conto
|
|
</a>
|
|
</div>
|
|
@endif
|
|
|
|
<!-- Info Box sulla Rubrica Universale -->
|
|
<div class="bg-blue-50 dark:bg-blue-900/20 border-l-4 border-blue-500 p-6 rounded-lg">
|
|
<div class="flex items-start">
|
|
<div class="shrink-0">
|
|
<i class="fas fa-info-circle text-blue-500 text-xl"></i>
|
|
</div>
|
|
<div class="ml-3">
|
|
<h4 class="text-lg font-medium text-blue-900 dark:text-blue-100">Rubrica Universale</h4>
|
|
<div class="mt-2 text-sm text-blue-800 dark:text-blue-200">
|
|
<p class="mb-2">La rubrica universale centralizza tutti i contatti:</p>
|
|
<ul class="list-disc list-inside space-y-1">
|
|
<li><strong>Banche:</strong> Dati completi filiali, referenti, contatti</li>
|
|
<li><strong>Fornitori:</strong> Aziende, professionisti, manutentori</li>
|
|
<li><strong>Assicurazioni:</strong> Compagnie e agenti</li>
|
|
<li><strong>Condomini:</strong> Proprietari e inquilini</li>
|
|
<li><strong>Altri:</strong> Qualsiasi tipo di contatto</li>
|
|
</ul>
|
|
<p class="mt-3 font-medium">
|
|
<i class="fas fa-lightbulb mr-1"></i>
|
|
Collega i conti bancari ai contatti per avere sempre i dati aggiornati!
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|