netgescon-day0/resources/views/admin/stabili/tabs/dati-bancari.blade.php

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>