netgescon-master/netgescon-laravel/resources/views/admin/rate/create.blade.php

265 lines
14 KiB
PHP

@extends('layouts.app')
@section('title', 'Nuova Rata')
@section('content')
<div class="container-fluid">
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-header">
<h3 class="card-title">Nuova Rata</h3>
<div class="card-tools">
<a href="{{ route('admin.rate.index') }}" class="btn btn-default btn-sm">
<i class="fas fa-arrow-left"></i> Torna all'elenco
</a>
</div>
</div>
<form action="{{ route('admin.rate.store') }}" method="POST">
@csrf
<div class="card-body">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="piano_id">Piano di Rateizzazione *</label>
<select class="form-control select2 @error('piano_id') is-invalid @enderror"
id="piano_id" name="piano_id" required>
<option value="">Seleziona un piano</option>
@foreach($piani as $piano)
<option value="{{ $piano->id }}" {{ old('piano_id', request('piano_id')) == $piano->id ? 'selected' : '' }}>
{{ $piano->denominazione }} - {{ $piano->ripartizione->stabile->denominazione }}
</option>
@endforeach
</select>
@error('piano_id')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="numero_rata">Numero Rata *</label>
<input type="number" min="1" max="999"
class="form-control @error('numero_rata') is-invalid @enderror"
id="numero_rata" name="numero_rata"
value="{{ old('numero_rata') }}" required>
@error('numero_rata')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="data_scadenza">Data Scadenza *</label>
<input type="date" class="form-control @error('data_scadenza') is-invalid @enderror"
id="data_scadenza" name="data_scadenza"
value="{{ old('data_scadenza') }}" required>
@error('data_scadenza')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="importo">Importo *</label>
<div class="input-group">
<input type="number" step="0.01" min="0"
class="form-control @error('importo') is-invalid @enderror"
id="importo" name="importo"
value="{{ old('importo') }}" required>
<div class="input-group-append">
<span class="input-group-text">€</span>
</div>
@error('importo')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="importo_interessi">Importo Interessi</label>
<div class="input-group">
<input type="number" step="0.01" min="0"
class="form-control @error('importo_interessi') is-invalid @enderror"
id="importo_interessi" name="importo_interessi"
value="{{ old('importo_interessi', 0) }}">
<div class="input-group-append">
<span class="input-group-text">€</span>
</div>
@error('importo_interessi')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="importo_spese">Importo Spese</label>
<div class="input-group">
<input type="number" step="0.01" min="0"
class="form-control @error('importo_spese') is-invalid @enderror"
id="importo_spese" name="importo_spese"
value="{{ old('importo_spese', 0) }}">
<div class="input-group-append">
<span class="input-group-text">€</span>
</div>
@error('importo_spese')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="importo_totale">Importo Totale</label>
<div class="input-group">
<input type="number" step="0.01" min="0"
class="form-control @error('importo_totale') is-invalid @enderror"
id="importo_totale" name="importo_totale"
value="{{ old('importo_totale') }}" readonly>
<div class="input-group-append">
<span class="input-group-text">€</span>
</div>
@error('importo_totale')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="stato">Stato</label>
<select class="form-control @error('stato') is-invalid @enderror"
id="stato" name="stato">
<option value="da_pagare" {{ old('stato', 'da_pagare') == 'da_pagare' ? 'selected' : '' }}>Da Pagare</option>
<option value="pagata" {{ old('stato') == 'pagata' ? 'selected' : '' }}>Pagata</option>
<option value="scaduta" {{ old('stato') == 'scaduta' ? 'selected' : '' }}>Scaduta</option>
<option value="sospesa" {{ old('stato') == 'sospesa' ? 'selected' : '' }}>Sospesa</option>
</select>
@error('stato')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="data_pagamento">Data Pagamento</label>
<input type="date" class="form-control @error('data_pagamento') is-invalid @enderror"
id="data_pagamento" name="data_pagamento"
value="{{ old('data_pagamento') }}">
@error('data_pagamento')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<label for="importo_pagato">Importo Pagato</label>
<div class="input-group">
<input type="number" step="0.01" min="0"
class="form-control @error('importo_pagato') is-invalid @enderror"
id="importo_pagato" name="importo_pagato"
value="{{ old('importo_pagato', 0) }}">
<div class="input-group-append">
<span class="input-group-text">€</span>
</div>
@error('importo_pagato')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="form-group">
<label for="note">Note</label>
<textarea class="form-control @error('note') is-invalid @enderror"
id="note" name="note" rows="3"
placeholder="Note aggiuntive sulla rata...">{{ old('note') }}</textarea>
@error('note')
<div class="invalid-feedback">{{ $message }}</div>
@enderror
</div>
</div>
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn-primary">
<i class="fas fa-save"></i> Salva Rata
</button>
<a href="{{ route('admin.rate.index') }}" class="btn btn-default">
<i class="fas fa-times"></i> Annulla
</a>
</div>
</form>
</div>
</div>
</div>
</div>
@endsection
@section('scripts')
<script>
$(document).ready(function() {
// Initialize Select2
$('.select2').select2({
theme: 'bootstrap4',
width: '100%'
});
// Calcola importo totale automaticamente
function calcolaImportoTotale() {
var importo = parseFloat($('#importo').val()) || 0;
var interessi = parseFloat($('#importo_interessi').val()) || 0;
var spese = parseFloat($('#importo_spese').val()) || 0;
var totale = importo + interessi + spese;
$('#importo_totale').val(totale.toFixed(2));
}
$('#importo, #importo_interessi, #importo_spese').on('input', calcolaImportoTotale);
// Gestione stato pagata
$('#stato').on('change', function() {
var stato = $(this).val();
if (stato === 'pagata') {
$('#data_pagamento').val(new Date().toISOString().split('T')[0]);
$('#importo_pagato').val($('#importo_totale').val());
} else {
$('#data_pagamento').val('');
$('#importo_pagato').val('0');
}
});
// Auto-fill importo pagato quando si cambia data pagamento
$('#data_pagamento').on('change', function() {
if ($(this).val() && $('#importo_pagato').val() == '0') {
$('#importo_pagato').val($('#importo_totale').val());
}
});
});
</script>
@endsection