netgescon-master/resources/views/admin/voci-spesa/create.blade.php

243 lines
16 KiB
PHP

@extends('admin.layouts.netgescon')
@section('title', 'Nuova Voce di Spesa')
@section('content')
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h3 class="card-title">
<i class="fas fa-receipt"></i> Nuova Voce di Spesa
</h3>
<a href="{{ route('admin.voci-spesa.index') }}" class="btn btn-secondary">
<i class="fas fa-arrow-left"></i> Torna all'elenco
</a>
</div>
<div class="card-body">
<form method="POST" action="{{ route('admin.voci-spesa.store') }}">
@csrf
<div class="row">
<!-- Informazioni Base -->
<div class="col-md-6">
<div class="mb-3">
<label for="stabile_id" class="form-label">Stabile <span class="text-danger">*</span></label>
<select name="stabile_id" id="stabile_id" class="form-control @error('stabile_id') is-invalid @enderror" required>
<option value="">Seleziona uno stabile</option>
@foreach($stabili as $stabile)
<option value="{{ $stabile->id }}" {{ old('stabile_id') == $stabile->id ? 'selected' : '' }}>
{{ $stabile->denominazione }}
</option>
@endforeach
</select>
@error('stabile_id')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="mb-3">
<label for="denominazione" class="form-label">Denominazione <span class="text-danger">*</span></label>
<input type="text" name="denominazione" id="denominazione"
class="form-control @error('denominazione') is-invalid @enderror"
value="{{ old('denominazione') }}" required>
@error('denominazione')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="categoria" class="form-label">Categoria <span class="text-danger">*</span></label>
<select name="categoria" id="categoria" class="form-control @error('categoria') is-invalid @enderror" required>
<option value="">Seleziona categoria</option>
<option value="Amministrazione" {{ old('categoria') == 'Amministrazione' ? 'selected' : '' }}>Amministrazione</option>
<option value="Manutenzione" {{ old('categoria') == 'Manutenzione' ? 'selected' : '' }}>Manutenzione</option>
<option value="Pulizia" {{ old('categoria') == 'Pulizia' ? 'selected' : '' }}>Pulizia</option>
<option value="Utenze" {{ old('categoria') == 'Utenze' ? 'selected' : '' }}>Utenze</option>
<option value="Assicurazioni" {{ old('categoria') == 'Assicurazioni' ? 'selected' : '' }}>Assicurazioni</option>
<option value="Riscaldamento" {{ old('categoria') == 'Riscaldamento' ? 'selected' : '' }}>Riscaldamento</option>
<option value="Ascensore" {{ old('categoria') == 'Ascensore' ? 'selected' : '' }}>Ascensore</option>
<option value="Altro" {{ old('categoria') == 'Altro' ? 'selected' : '' }}>Altro</option>
</select>
@error('categoria')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="sottocategoria" class="form-label">Sottocategoria</label>
<input type="text" name="sottocategoria" id="sottocategoria"
class="form-control @error('sottocategoria') is-invalid @enderror"
value="{{ old('sottocategoria') }}">
@error('sottocategoria')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>
<div class="mb-3">
<label for="descrizione" class="form-label">Descrizione</label>
<textarea name="descrizione" id="descrizione" rows="3"
class="form-control @error('descrizione') is-invalid @enderror">{{ old('descrizione') }}</textarea>
@error('descrizione')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
<!-- Configurazione Ripartizione -->
<div class="col-md-6">
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="importo_previsto" class="form-label">Importo Previsto (€)</label>
<input type="number" name="importo_previsto" id="importo_previsto"
class="form-control @error('importo_previsto') is-invalid @enderror"
value="{{ old('importo_previsto') }}" step="0.01" min="0">
@error('importo_previsto')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="periodicita" class="form-label">Periodicità</label>
<select name="periodicita" id="periodicita" class="form-control @error('periodicita') is-invalid @enderror">
<option value="">Non specificata</option>
<option value="una_tantum" {{ old('periodicita') == 'una_tantum' ? 'selected' : '' }}>Una tantum</option>
<option value="mensile" {{ old('periodicita') == 'mensile' ? 'selected' : '' }}>Mensile</option>
<option value="trimestrale" {{ old('periodicita') == 'trimestrale' ? 'selected' : '' }}>Trimestrale</option>
<option value="semestrale" {{ old('periodicita') == 'semestrale' ? 'selected' : '' }}>Semestrale</option>
<option value="annuale" {{ old('periodicita') == 'annuale' ? 'selected' : '' }}>Annuale</option>
</select>
@error('periodicita')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>
<div class="mb-3">
<label for="tabella_millesimale_default_id" class="form-label">Tabella Millesimale di Default <span class="text-danger">*</span></label>
<select name="tabella_millesimale_default_id" id="tabella_millesimale_default_id"
class="form-control @error('tabella_millesimale_default_id') is-invalid @enderror" required>
<option value="">Seleziona tabella millesimale</option>
@foreach($tabelleMillesimali as $tabella)
<option value="{{ $tabella->id }}" {{ old('tabella_millesimale_default_id') == $tabella->id ? 'selected' : '' }}>
{{ $tabella->denominazione }} ({{ $tabella->tipo_tabella }})
</option>
@endforeach
</select>
@error('tabella_millesimale_default_id')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
<div class="mb-3">
<div class="form-check">
<input type="checkbox" name="ripartizione_personalizzata" id="ripartizione_personalizzata"
class="form-check-input" value="1" {{ old('ripartizione_personalizzata') ? 'checked' : '' }}>
<label class="form-check-label" for="ripartizione_personalizzata">
Ripartizione personalizzata
</label>
</div>
<small class="form-text text-muted">
Consente di modificare manualmente la ripartizione per singola unità immobiliare
</small>
</div>
<div class="mb-3">
<label for="stato" class="form-label">Stato <span class="text-danger">*</span></label>
<select name="stato" id="stato" class="form-control @error('stato') is-invalid @enderror" required>
<option value="attiva" {{ old('stato', 'attiva') == 'attiva' ? 'selected' : '' }}>Attiva</option>
<option value="inattiva" {{ old('stato') == 'inattiva' ? 'selected' : '' }}>Inattiva</option>
</select>
@error('stato')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="mb-3">
<label for="tags" class="form-label">Tags</label>
<input type="text" name="tags" id="tags"
class="form-control @error('tags') is-invalid @enderror"
value="{{ old('tags') }}" placeholder="Separati da virgola">
<small class="form-text text-muted">
Utilizzare per categorizzare e cercare più facilmente le voci di spesa
</small>
@error('tags')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="mb-3">
<label for="note" class="form-label">Note</label>
<textarea name="note" id="note" rows="3"
class="form-control @error('note') is-invalid @enderror">{{ old('note') }}</textarea>
@error('note')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>
<div class="d-flex justify-content-between">
<a href="{{ route('admin.voci-spesa.index') }}" class="btn btn-secondary">
<i class="fas fa-times"></i> Annulla
</a>
<button type="submit" class="btn btn-primary">
<i class="fas fa-save"></i> Salva Voce di Spesa
</button>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('scripts')
<script>
// Carica le tabelle millesimali quando cambia lo stabile
document.getElementById('stabile_id').addEventListener('change', function() {
const stabileId = this.value;
const tabellaSelect = document.getElementById('tabella_millesimale_default_id');
// Reset della select
tabellaSelect.innerHTML = '<option value="">Caricamento...</option>';
if (stabileId) {
fetch(`{{ route('admin.ajax.tabelle-millesimali') }}?stabile_id=${stabileId}`)
.then(response => response.json())
.then(data => {
tabellaSelect.innerHTML = '<option value="">Seleziona tabella millesimale</option>';
data.forEach(tabella => {
const option = document.createElement('option');
option.value = tabella.id;
option.textContent = `${tabella.denominazione} (${tabella.tipo_tabella})`;
tabellaSelect.appendChild(option);
});
})
.catch(error => {
console.error('Errore nel caricamento delle tabelle millesimali:', error);
tabellaSelect.innerHTML = '<option value="">Errore nel caricamento</option>';
});
} else {
tabellaSelect.innerHTML = '<option value="">Seleziona prima uno stabile</option>';
}
});
</script>
@endsection