netgescon-day0/resources/views/admin/documenti-collegati/index.blade.php

146 lines
7.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@extends('admin.layouts.netgescon')
@section('page-title', 'Documenti Collegati')
@section('content')
<div class="space-y-6 netgescon-fade-in">
<div class="netgescon-card">
<div class="flex items-center justify-between gap-4 flex-wrap">
<div>
<h2 class="netgescon-title">
<i class="fas fa-folder-open text-purple-600 mr-3"></i>
Gestione Documentale (Documenti Collegati)
</h2>
<p class="netgescon-text mt-2">
Qui trovi i documenti protocollati e puoi stampare le etichette (DYMO 11354 / 99014).
</p>
</div>
<div class="flex items-center gap-2">
<a href="{{ route('admin.stabili.index') }}" class="netgescon-btn netgescon-btn-outline-secondary">
<i class="fas fa-building"></i>
Vai agli Stabili
</a>
<a href="{{ route('admin.documenti-collegati.create') }}" class="netgescon-btn netgescon-btn-primary">
<i class="fas fa-plus"></i>
Nuovo Documento
</a>
</div>
</div>
</div>
<div class="netgescon-card">
<form method="GET" class="grid grid-cols-1 md:grid-cols-5 gap-4">
<div>
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1">Categoria</label>
<select name="categoria" class="netgescon-select">
<option value="">Tutte</option>
@foreach(['contratto','assicurazione','certificato','preventivo','fattura','verbale','altro'] as $cat)
<option value="{{ $cat }}" @selected(request('categoria')===$cat)>{{ ucfirst($cat) }}</option>
@endforeach
</select>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1">Anno</label>
<input name="anno" value="{{ request('anno') }}" class="netgescon-input" placeholder="2026" />
</div>
<div class="md:col-span-2">
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1">Ricerca</label>
<input name="search" value="{{ request('search') }}" class="netgescon-input" placeholder="Titolo / protocollo / descrizione" />
</div>
<div>
<label class="block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1">Faldone (opz.)</label>
<input id="faldone" value="{{ request('faldone') }}" class="netgescon-input" placeholder="Es. A3" />
</div>
<div class="md:col-span-5 flex items-center gap-2">
<button type="submit" class="netgescon-btn netgescon-btn-primary">
<i class="fas fa-search"></i>
Filtra
</button>
<a href="{{ route('admin.documenti-collegati.index') }}" class="netgescon-btn netgescon-btn-outline-secondary">
<i class="fas fa-eraser"></i>
Reset
</a>
</div>
</form>
</div>
@if(session('success'))
<div class="netgescon-alert netgescon-alert-success">{{ session('success') }}</div>
@endif
@if(session('error'))
<div class="netgescon-alert netgescon-alert-danger">{{ session('error') }}</div>
@endif
<div class="netgescon-card overflow-x-auto">
<table class="min-w-full">
<thead>
<tr class="text-left text-gray-600 dark:text-gray-300">
<th class="py-3 pr-4">Protocollo</th>
<th class="py-3 pr-4">Stabile</th>
<th class="py-3 pr-4">Titolo</th>
<th class="py-3 pr-4">Tipo</th>
<th class="py-3 pr-4">Data</th>
<th class="py-3 pr-4">Stato</th>
<th class="py-3">Azioni</th>
</tr>
</thead>
<tbody class="divide-y divide-gray-200 dark:divide-gray-700">
@forelse($documenti as $doc)
<tr>
<td class="py-3 pr-4 font-semibold">
{{ $doc->protocollo_formattato ?? $doc->numero_protocollo }}
</td>
<td class="py-3 pr-4">
{{ optional($doc->stabile)->denominazione ?: ('ID ' . (int) $doc->stabile_id) }}
</td>
<td class="py-3 pr-4">{{ $doc->titolo }}</td>
<td class="py-3 pr-4">{{ strtoupper((string) $doc->tipo_documento) }}</td>
<td class="py-3 pr-4">{{ optional($doc->data_sottoscrizione)->format('d-m-Y') }}</td>
<td class="py-3 pr-4">{{ strtoupper((string) $doc->stato_documento) }}</td>
<td class="py-3">
<div class="flex gap-2 flex-wrap">
<a class="netgescon-btn netgescon-btn-sm netgescon-btn-outline-secondary" href="{{ route('admin.documenti-collegati.show', $doc->id) }}" target="_blank">
<i class="fas fa-eye"></i>
Apri
</a>
<a class="netgescon-btn netgescon-btn-sm netgescon-btn-outline-secondary print-label" data-url="{{ route('admin.documenti-collegati.etichetta', $doc->id) }}" href="#">
<i class="fas fa-tag"></i>
Etichetta 11354
</a>
<a class="netgescon-btn netgescon-btn-sm netgescon-btn-outline-secondary print-label" data-url="{{ route('admin.documenti-collegati.etichetta', $doc->id) }}?format=99014" href="#">
<i class="fas fa-tag"></i>
Etichetta 99014
</a>
</div>
</td>
</tr>
@empty
<tr>
<td colspan="7" class="py-6 text-gray-600 dark:text-gray-300">
Nessun documento trovato. Clicca “Nuovo Documento” per crearne uno e poi stampa letichetta.
</td>
</tr>
@endforelse
</tbody>
</table>
<div class="mt-4">
{{ $documenti->withQueryString()->links() }}
</div>
</div>
</div>
<script>
document.querySelectorAll('.print-label').forEach((a) => {
a.addEventListener('click', (e) => {
e.preventDefault();
const baseUrl = a.getAttribute('data-url');
const faldone = (document.getElementById('faldone')?.value || '').trim();
const url = faldone ? (baseUrl + (baseUrl.includes('?') ? '&' : '?') + 'faldone=' + encodeURIComponent(faldone)) : baseUrl;
window.open(url, '_blank');
});
});
</script>
@endsection