netgescon-day0/resources/views/livewire/condomini/stabile-dati-bancari-table.blade.php

161 lines
13 KiB
PHP
Executable File

<div>
@if($isCreatingConto || $editingContoId)
<div class="rounded-xl border border-slate-200 bg-white p-6 shadow-sm dark:border-gray-800 dark:bg-gray-900 animate-fade-in">
<div class="flex flex-wrap items-center justify-between gap-4 border-b border-slate-200 pb-4 mb-6 dark:border-gray-800">
<div>
<h3 class="text-lg font-semibold text-slate-900 dark:text-white">
{{ $isCreatingConto ? 'Nuovo Conto Bancario / Cassa' : 'Modifica Conto Bancario / Cassa' }}
</h3>
<p class="text-xs text-slate-500 dark:text-slate-400 mt-1">
Inserisci tutti i dettagli del conto. I campi contrassegnati con * sono obbligatori.
</p>
</div>
<x-filament::button type="button" size="sm" color="gray" icon="heroicon-m-arrow-left" wire:click="cancelInlineForm">
Torna alla lista
</x-filament::button>
</div>
<form wire:submit.prevent="saveContoInline" class="space-y-6">
<!-- Sezione 1: Dati Generali -->
<div class="space-y-4">
<h4 class="text-xs font-bold uppercase tracking-wider text-slate-500 dark:text-slate-400 border-l-2 border-sky-500 pl-2">
1. Dati generali del conto
</h4>
<div class="grid grid-cols-1 gap-4 md:grid-cols-3">
<div>
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">Denominazione banca/cassa *</label>
<input type="text" wire:model.defer="contoFormState.denominazione_banca" required class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100" />
</div>
<div>
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">Tipo conto *</label>
<select wire:model.defer="contoFormState.tipo_conto" required class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100">
<option value="corrente">Corrente</option>
<option value="deposito">Deposito</option>
<option value="risparmio">Risparmio</option>
</select>
</div>
<div>
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">Stato *</label>
<select wire:model.defer="contoFormState.stato_conto" required class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100">
<option value="attivo">Attivo</option>
<option value="sospeso">Sospeso</option>
<option value="chiuso">Chiuso</option>
</select>
</div>
</div>
<div class="grid grid-cols-1 gap-4 md:grid-cols-2">
<div>
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">Intestazione conto</label>
<input type="text" wire:model.defer="contoFormState.intestazione_conto" class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100" />
</div>
<div class="flex items-center pt-6">
<label class="flex items-center gap-2 cursor-pointer">
<input type="checkbox" wire:model.defer="contoFormState.is_nostro_conto" class="rounded border-gray-300 text-primary-600 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700" />
<span class="text-sm font-medium text-slate-700 dark:text-slate-300">Nostro conto (conto principale di gestione)</span>
</label>
</div>
</div>
</div>
<!-- Sezione 2: Coordinate Bancarie -->
<div class="space-y-4 pt-4 border-t border-slate-100 dark:border-gray-800">
<h4 class="text-xs font-bold uppercase tracking-wider text-slate-500 dark:text-slate-400 border-l-2 border-sky-500 pl-2">
2. Coordinate bancarie (IBAN e codici)
</h4>
<div class="grid grid-cols-1 gap-4 md:grid-cols-2">
<div>
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">IBAN</label>
<input type="text" wire:model.defer="contoFormState.iban" placeholder="IT00..." class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100" />
</div>
<div>
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">Numero conto</label>
<input type="text" wire:model.defer="contoFormState.numero_conto" class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100" />
</div>
</div>
<div class="grid grid-cols-2 gap-4 md:grid-cols-4">
<div>
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">ABI</label>
<input type="text" wire:model.defer="contoFormState.abi" class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100" />
</div>
<div>
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">CAB</label>
<input type="text" wire:model.defer="contoFormState.cab" class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100" />
</div>
<div>
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">CIN</label>
<input type="text" wire:model.defer="contoFormState.cin" class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100" />
</div>
<div>
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">BIC / SWIFT</label>
<input type="text" wire:model.defer="contoFormState.bic_swift" class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100" />
</div>
</div>
</div>
<!-- Sezione 3: Codici Operativi e Saldo Iniziale -->
<div class="space-y-4 pt-4 border-t border-slate-100 dark:border-gray-800">
<h4 class="text-xs font-bold uppercase tracking-wider text-slate-500 dark:text-slate-400 border-l-2 border-sky-500 pl-2">
3. Codici operativi e saldi di partenza
</h4>
<div class="grid grid-cols-1 gap-4 md:grid-cols-5">
<div>
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">Codice CUC</label>
<input type="text" wire:model.defer="contoFormState.cuc" class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100" />
</div>
<div>
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">Codice SIA</label>
<input type="text" wire:model.defer="contoFormState.sia" class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100" />
</div>
<div>
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">Valuta</label>
<input type="text" wire:model.defer="contoFormState.valuta" class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100" />
</div>
<div>
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">Saldo iniziale</label>
<input type="number" step="0.01" wire:model.defer="contoFormState.saldo_iniziale" class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100" />
</div>
<div>
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">Data saldo iniziale</label>
<input type="date" wire:model.defer="contoFormState.data_saldo_iniziale" class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100" />
</div>
</div>
</div>
<!-- Sezione 4: Referenze e Note -->
<div class="space-y-4 pt-4 border-t border-slate-100 dark:border-gray-800">
<h4 class="text-xs font-bold uppercase tracking-wider text-slate-500 dark:text-slate-400 border-l-2 border-sky-500 pl-2">
4. Referenze e note operative
</h4>
<div class="grid grid-cols-1 gap-4 md:grid-cols-3">
<div class="md:col-span-1">
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">Contatto banca (rubrica)</label>
<select wire:model.defer="contoFormState.contatto_id" class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100">
<option value=""> Nessun contatto </option>
@foreach($contattiBancaOptions as $id => $label)
<option value="{{ $id }}">{{ $label }}</option>
@endforeach
</select>
</div>
<div class="md:col-span-2">
<label class="block text-xs font-semibold text-slate-700 dark:text-slate-300">Note interne</label>
<textarea wire:model.defer="contoFormState.note" rows="2" class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm text-sm focus:border-primary-500 focus:ring-primary-500 dark:bg-gray-800 dark:border-gray-700 dark:text-gray-100"></textarea>
</div>
</div>
</div>
<!-- Footer Azioni -->
<div class="flex flex-wrap justify-end gap-3 border-t border-slate-200 pt-4 dark:border-gray-800">
<x-filament::button type="button" size="md" color="gray" wire:click="cancelInlineForm">
Annulla
</x-filament::button>
<x-filament::button type="submit" size="md" color="primary" icon="heroicon-m-check">
Salva dati conto
</x-filament::button>
</div>
</form>
</div>
@else
{{ $this->table }}
@endif
</div>