@extends('layouts.app')

@section('title', 'Nuovo Piano di Rateizzazione')

@section('content')
<div class="container-fluid">
    <div class="row">
        <div class="col-12">
            <div class="card">
                <div class="card-header">
                    <h3 class="card-title">Nuovo Piano di Rateizzazione</h3>
                    <div class="card-tools">
                        <a href="{{ route('admin.piani-rateizzazione.index') }}" class="btn btn-default btn-sm">
                            <i class="fas fa-arrow-left"></i> Torna all'elenco
                        </a>
                    </div>
                </div>

                <form action="{{ route('admin.piani-rateizzazione.store') }}" method="POST">
                    @csrf
                    <div class="card-body">
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    <label for="denominazione">Denominazione *</label>
                                    <input type="text" class="form-control @error('denominazione') is-invalid @enderror" 
                                           id="denominazione" name="denominazione" 
                                           value="{{ old('denominazione') }}" required>
                                    @error('denominazione')
                                        <div class="invalid-feedback">{{ $message }}</div>
                                    @enderror
                                </div>
                            </div>

                            <div class="col-md-6">
                                <div class="form-group">
                                    <label for="ripartizione_id">Ripartizione Spesa *</label>
                                    <select class="form-control select2 @error('ripartizione_id') is-invalid @enderror" 
                                            id="ripartizione_id" name="ripartizione_id" required>
                                        <option value="">Seleziona una ripartizione</option>
                                        @foreach($ripartizioni as $ripartizione)
                                            <option value="{{ $ripartizione->id }}" 
                                                {{ old('ripartizione_id', request('ripartizione_id')) == $ripartizione->id ? 'selected' : '' }}>
                                                {{ $ripartizione->voceSpesa->codice }} - {{ $ripartizione->stabile->denominazione }} 
                                                (€ {{ number_format($ripartizione->importo_totale, 2, ',', '.') }})
                                            </option>
                                        @endforeach
                                    </select>
                                    @error('ripartizione_id')
                                        <div class="invalid-feedback">{{ $message }}</div>
                                    @enderror
                                </div>
                            </div>
                        </div>

                        <div class="row">
                            <div class="col-md-4">
                                <div class="form-group">
                                    <label for="numero_rate">Numero Rate *</label>
                                    <input type="number" min="2" max="36" 
                                           class="form-control @error('numero_rate') is-invalid @enderror" 
                                           id="numero_rate" name="numero_rate" 
                                           value="{{ old('numero_rate', 6) }}" required>
                                    @error('numero_rate')
                                        <div class="invalid-feedback">{{ $message }}</div>
                                    @enderror
                                </div>
                            </div>

                            <div class="col-md-4">
                                <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') }}" required>
                                        <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-4">
                                <div class="form-group">
                                    <label for="tipo_scadenza">Tipo Scadenza *</label>
                                    <select class="form-control @error('tipo_scadenza') is-invalid @enderror" 
                                            id="tipo_scadenza" name="tipo_scadenza" required>
                                        <option value="mensile" {{ old('tipo_scadenza', 'mensile') == 'mensile' ? 'selected' : '' }}>Mensile</option>
                                        <option value="bimestrale" {{ old('tipo_scadenza') == 'bimestrale' ? 'selected' : '' }}>Bimestrale</option>
                                        <option value="trimestrale" {{ old('tipo_scadenza') == 'trimestrale' ? 'selected' : '' }}>Trimestrale</option>
                                        <option value="semestrale" {{ old('tipo_scadenza') == 'semestrale' ? 'selected' : '' }}>Semestrale</option>
                                        <option value="personalizzata" {{ old('tipo_scadenza') == 'personalizzata' ? 'selected' : '' }}>Personalizzata</option>
                                    </select>
                                    @error('tipo_scadenza')
                                        <div class="invalid-feedback">{{ $message }}</div>
                                    @enderror
                                </div>
                            </div>
                        </div>

                        <div class="row">
                            <div class="col-md-4">
                                <div class="form-group">
                                    <label for="data_inizio">Data Inizio *</label>
                                    <input type="date" class="form-control @error('data_inizio') is-invalid @enderror" 
                                           id="data_inizio" name="data_inizio" 
                                           value="{{ old('data_inizio', date('Y-m-d')) }}" required>
                                    @error('data_inizio')
                                        <div class="invalid-feedback">{{ $message }}</div>
                                    @enderror
                                </div>
                            </div>

                            <div class="col-md-4">
                                <div class="form-group">
                                    <label for="data_fine">Data Fine</label>
                                    <input type="date" class="form-control @error('data_fine') is-invalid @enderror" 
                                           id="data_fine" name="data_fine" 
                                           value="{{ old('data_fine') }}" readonly>
                                    @error('data_fine')
                                        <div class="invalid-feedback">{{ $message }}</div>
                                    @enderror
                                </div>
                            </div>

                            <div class="col-md-4">
                                <div class="form-group">
                                    <label for="stato">Stato</label>
                                    <select class="form-control @error('stato') is-invalid @enderror" 
                                            id="stato" name="stato">
                                        <option value="bozza" {{ old('stato', 'bozza') == 'bozza' ? 'selected' : '' }}>Bozza</option>
                                        <option value="attivo" {{ old('stato') == 'attivo' ? 'selected' : '' }}>Attivo</option>
                                        <option value="sospeso" {{ old('stato') == 'sospeso' ? 'selected' : '' }}>Sospeso</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="tasso_interesse">Tasso Interesse (%)</label>
                                    <input type="number" step="0.01" min="0" max="100" 
                                           class="form-control @error('tasso_interesse') is-invalid @enderror" 
                                           id="tasso_interesse" name="tasso_interesse" 
                                           value="{{ old('tasso_interesse', 0) }}">
                                    @error('tasso_interesse')
                                        <div class="invalid-feedback">{{ $message }}</div>
                                    @enderror
                                </div>
                            </div>

                            <div class="col-md-6">
                                <div class="form-group">
                                    <label for="spese_gestione">Spese Gestione (€)</label>
                                    <input type="number" step="0.01" min="0" 
                                           class="form-control @error('spese_gestione') is-invalid @enderror" 
                                           id="spese_gestione" name="spese_gestione" 
                                           value="{{ old('spese_gestione', 0) }}">
                                    @error('spese_gestione')
                                        <div class="invalid-feedback">{{ $message }}</div>
                                    @enderror
                                </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 sul piano di rateizzazione...">{{ old('note') }}</textarea>
                                    @error('note')
                                        <div class="invalid-feedback">{{ $message }}</div>
                                    @enderror
                                </div>
                            </div>
                        </div>

                        <!-- Anteprima Rate -->
                        <div class="row" id="anteprima-rate" style="display: none;">
                            <div class="col-12">
                                <div class="card">
                                    <div class="card-header">
                                        <h5>Anteprima Rate</h5>
                                    </div>
                                    <div class="card-body">
                                        <div class="table-responsive">
                                            <table class="table table-bordered table-sm" id="tabella-anteprima">
                                                <thead>
                                                    <tr>
                                                        <th>Rata</th>
                                                        <th>Data Scadenza</th>
                                                        <th>Importo</th>
                                                        <th>Interessi</th>
                                                        <th>Spese</th>
                                                        <th>Totale</th>
                                                    </tr>
                                                </thead>
                                                <tbody>
                                                    <!-- Popolato via JavaScript -->
                                                </tbody>
                                            </table>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>

                    <div class="card-footer">
                        <button type="button" class="btn btn-info" id="btn-anteprima">
                            <i class="fas fa-eye"></i> Anteprima Rate
                        </button>
                        <button type="submit" class="btn btn-primary">
                            <i class="fas fa-save"></i> Salva Piano
                        </button>
                        <a href="{{ route('admin.piani-rateizzazione.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%'
    });

    // Auto-fill importo_totale quando si seleziona una ripartizione
    $('#ripartizione_id').on('change', function() {
        var selectedOption = $(this).find('option:selected');
        if (selectedOption.val()) {
            // Estrai importo dal testo dell'opzione
            var text = selectedOption.text();
            var matches = text.match(/€\s*([\d.,]+)/);
            if (matches) {
                var importo = matches[1].replace(/\./g, '').replace(',', '.');
                $('#importo_totale').val(importo);
            }
        }
    });

    // Calcola data fine automaticamente
    function calcolaDataFine() {
        var dataInizio = $('#data_inizio').val();
        var numeroRate = parseInt($('#numero_rate').val());
        var tipoScadenza = $('#tipo_scadenza').val();
        
        if (dataInizio && numeroRate && tipoScadenza) {
            var data = new Date(dataInizio);
            var mesi = 0;
            
            switch(tipoScadenza) {
                case 'mensile': mesi = numeroRate; break;
                case 'bimestrale': mesi = numeroRate * 2; break;
                case 'trimestrale': mesi = numeroRate * 3; break;
                case 'semestrale': mesi = numeroRate * 6; break;
                default: mesi = numeroRate;
            }
            
            data.setMonth(data.getMonth() + mesi);
            $('#data_fine').val(data.toISOString().split('T')[0]);
        }
    }

    $('#data_inizio, #numero_rate, #tipo_scadenza').on('change', calcolaDataFine);

    // Anteprima rate
    $('#btn-anteprima').click(function() {
        var numeroRate = parseInt($('#numero_rate').val());
        var importoTotale = parseFloat($('#importo_totale').val());
        var dataInizio = $('#data_inizio').val();
        var tipoScadenza = $('#tipo_scadenza').val();
        var tassoInteresse = parseFloat($('#tasso_interesse').val()) || 0;
        var speseGestione = parseFloat($('#spese_gestione').val()) || 0;
        
        if (!numeroRate || !importoTotale || !dataInizio) {
            alert('Compila tutti i campi obbligatori per vedere l\'anteprima');
            return;
        }
        
        var importoRata = importoTotale / numeroRate;
        var interessiRata = (importoTotale * tassoInteresse / 100) / numeroRate;
        var speseRata = speseGestione / numeroRate;
        var totaleRata = importoRata + interessiRata + speseRata;
        
        var tbody = $('#tabella-anteprima tbody');
        tbody.empty();
        
        var dataCorrente = new Date(dataInizio);
        var mesiIncremento = 1;
        
        switch(tipoScadenza) {
            case 'bimestrale': mesiIncremento = 2; break;
            case 'trimestrale': mesiIncremento = 3; break;
            case 'semestrale': mesiIncremento = 6; break;
        }
        
        for (var i = 1; i <= numeroRate; i++) {
            var row = '<tr>' +
                '<td>' + i + '</td>' +
                '<td>' + dataCorrente.toLocaleDateString('it-IT') + '</td>' +
                '<td>€ ' + importoRata.toFixed(2) + '</td>' +
                '<td>€ ' + interessiRata.toFixed(2) + '</td>' +
                '<td>€ ' + speseRata.toFixed(2) + '</td>' +
                '<td><strong>€ ' + totaleRata.toFixed(2) + '</strong></td>' +
                '</tr>';
            tbody.append(row);
            
            dataCorrente.setMonth(dataCorrente.getMonth() + mesiIncremento);
        }
        
        $('#anteprima-rate').show();
    });
});
</script>
@endsection
