- /richiesta: modulo pubblico (nuovo territorio o riconsegna) con campo trappola, tempo minimo e limite orario; nome e note cifrati, avviso per email a chi ha richieste.gestisci (amministratore, assistente) - Home: riquadro Richieste con i proclamatori dal nome simile; porta su Assegna/Rientra già esistenti, che chiudono la richiesta; Scarta - Cartaceo sull'assegnazione (Assegna e Il mio gruppo), etichetta nell'elenco degli assegnati, pagina Cartacei, passa per l'XML - registro:invia-s13 agli amministratori l'ultima domenica del mese; richieste:pulizia dopo 90 giorni dalla gestione - Privacy, README e HANDOFF aggiornati; test in RichiesteTest Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
77 lines
4.6 KiB
PHP
77 lines
4.6 KiB
PHP
<div>
|
|
<div class="mb-6">
|
|
<a href="{{ $ritorno ?? $this->paginaPredefinita() }}" class="inline-flex items-center gap-1 text-sm text-gray-500 hover:text-indigo-600 transition-colors mb-1">
|
|
<svg class="h-4 w-4" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"/></svg>
|
|
{{ $ritorno ? 'Torna indietro' : (auth()->user()->can('territori.assign') ? 'Torna al territorio' : 'Torna al mio gruppo') }}
|
|
</a>
|
|
<h1 class="text-2xl font-bold text-gray-900">Rientro Territorio</h1>
|
|
</div>
|
|
|
|
@if($richiesta)
|
|
{{-- Partito da una richiesta di riconsegna (Home): registrando il rientro, risulta evasa. --}}
|
|
<div class="mb-4 rounded-lg border border-indigo-100 bg-indigo-50 px-4 py-3 text-sm text-indigo-900 max-w-lg" role="status">
|
|
Riconsegna annunciata da <strong>{{ $richiesta->nome }}</strong> il {{ $richiesta->created_at->format('d/m/Y') }}@if($richiesta->note): «{{ $richiesta->note }}»@endif.
|
|
</div>
|
|
@endif
|
|
|
|
{{-- Assignment summary --}}
|
|
<div class="bg-white rounded-xl shadow-sm border border-gray-200 p-4 mb-6">
|
|
<div class="grid grid-cols-1 sm:grid-cols-3 gap-4">
|
|
<div>
|
|
<p class="text-xs font-medium text-gray-500 uppercase">Territorio</p>
|
|
<p class="mt-1 text-lg font-bold text-gray-900">N° {{ $assegnazione->territorio->numero }}</p>
|
|
</div>
|
|
<div>
|
|
<p class="text-xs font-medium text-gray-500 uppercase">Proclamatore</p>
|
|
<p class="mt-1 text-sm text-gray-900">{{ $assegnazione->proclamatore->nome_completo }}</p>
|
|
</div>
|
|
<div>
|
|
<p class="text-xs font-medium text-gray-500 uppercase">Assegnato il</p>
|
|
<p class="mt-1 text-sm text-gray-900">{{ $assegnazione->assigned_at->format('d/m/Y') }}</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="bg-white rounded-xl shadow-sm border border-gray-200 p-6 max-w-lg">
|
|
<form wire:submit="save" class="space-y-4">
|
|
<div>
|
|
<label for="returned_at" class="block text-sm font-medium text-gray-700">Data Rientro *</label>
|
|
<input wire:model.live="returned_at" type="date" id="returned_at"
|
|
min="{{ $assegnazione->assigned_at->format('Y-m-d') }}"
|
|
max="{{ now()->format('Y-m-d') }}"
|
|
class="mt-1 block w-full rounded-lg border-gray-300 shadow-sm focus:ring-indigo-500 focus:border-indigo-500 text-sm">
|
|
@error('returned_at') <p class="text-red-500 text-xs mt-1">{{ $message }}</p> @enderror
|
|
</div>
|
|
|
|
{{-- Campaign retroactive prompt --}}
|
|
@if($showCampaignPrompt && $campagna)
|
|
<div class="bg-amber-50 border border-amber-200 rounded-lg p-4">
|
|
<p class="text-sm font-medium text-amber-800 mb-2">
|
|
⚠️ Campagna: <strong>{{ $campagna->descrizione }}</strong>
|
|
</p>
|
|
<p class="text-xs text-amber-700 mb-3">
|
|
Questo territorio era assegnato durante la campagna "{{ $campagna->descrizione }}"
|
|
({{ $campagna->start_date->format('d/m/Y') }} — {{ $campagna->end_date->format('d/m/Y') }}).
|
|
È stato percorso per la campagna? Se sì, conteggialo nella percentuale di percorrenza.
|
|
</p>
|
|
@if($giorniPercorrenza !== null && $giorniPercorrenza > $sogliaPercorrenza)
|
|
<div class="mb-3 rounded-md border border-red-200 bg-red-50 px-3 py-2 text-xs text-red-800">
|
|
⚠️ <strong>Tempo di percorrenza molto alto: {{ $giorniPercorrenza }} giorni</strong> (soglia {{ $sogliaPercorrenza }}).
|
|
Verifica che il territorio sia stato effettivamente percorso durante la campagna.
|
|
</div>
|
|
@endif
|
|
<div class="flex items-center gap-2">
|
|
<input wire:model="counted_in_campaign" type="checkbox" id="counted_in_campaign" class="rounded border-gray-300 text-amber-600 focus:ring-amber-500">
|
|
<label for="counted_in_campaign" class="text-sm text-amber-800">Sì, conteggia in campagna</label>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
|
|
<div class="flex flex-wrap items-center gap-3 pt-4">
|
|
<x-btn variante="primary" type="submit">Registra rientro</x-btn>
|
|
<x-btn variante="secondary" :href="$ritorno ?? $this->paginaPredefinita()">Annulla</x-btn>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|