277 lines
17 KiB
PHP
277 lines
17 KiB
PHP
@extends('layouts.app')
|
|
|
|
@section('title', 'Voce di Spesa - ' . $voceSpesa->denominazione)
|
|
|
|
@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> {{ $voceSpesa->denominazione }}
|
|
<span class="badge bg-{{ $voceSpesa->stato == 'attiva' ? 'success' : ($voceSpesa->stato == 'inattiva' ? 'warning' : 'secondary') }}">
|
|
{{ ucfirst($voceSpesa->stato) }}
|
|
</span>
|
|
</h3>
|
|
<div class="btn-group">
|
|
<a href="{{ route('admin.voci-spesa.edit', $voceSpesa) }}" class="btn btn-warning">
|
|
<i class="fas fa-edit"></i> Modifica
|
|
</a>
|
|
<form method="POST" action="{{ route('admin.voci-spesa.duplicate', $voceSpesa) }}" style="display: inline;">
|
|
@csrf
|
|
<button type="submit" class="btn btn-info">
|
|
<i class="fas fa-copy"></i> Duplica
|
|
</button>
|
|
</form>
|
|
<a href="{{ route('admin.voci-spesa.index') }}" class="btn btn-secondary">
|
|
<i class="fas fa-arrow-left"></i> Torna all'elenco
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<!-- Informazioni Base -->
|
|
<div class="col-md-6">
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h5 class="card-title mb-0">
|
|
<i class="fas fa-info-circle"></i> Informazioni Base
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<table class="table table-borderless">
|
|
<tr>
|
|
<td class="fw-bold">Codice:</td>
|
|
<td><code>{{ $voceSpesa->codice_spesa }}</code></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Stabile:</td>
|
|
<td>{{ $voceSpesa->stabile->denominazione }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Categoria:</td>
|
|
<td>
|
|
<span class="badge bg-info">{{ $voceSpesa->categoria }}</span>
|
|
@if($voceSpesa->sottocategoria)
|
|
<br><small class="text-muted">{{ $voceSpesa->sottocategoria }}</small>
|
|
@endif
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Importo Previsto:</td>
|
|
<td>
|
|
@if($voceSpesa->importo_previsto)
|
|
<span class="text-success">€ {{ number_format($voceSpesa->importo_previsto, 2, ',', '.') }}</span>
|
|
@else
|
|
<span class="text-muted">Non specificato</span>
|
|
@endif
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Periodicità:</td>
|
|
<td>
|
|
@if($voceSpesa->periodicita)
|
|
<span class="badge bg-secondary">{{ ucfirst(str_replace('_', ' ', $voceSpesa->periodicita)) }}</span>
|
|
@else
|
|
<span class="text-muted">Non specificata</span>
|
|
@endif
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Ripartizione Personalizzata:</td>
|
|
<td>
|
|
@if($voceSpesa->ripartizione_personalizzata)
|
|
<span class="badge bg-warning">Sì</span>
|
|
@else
|
|
<span class="badge bg-success">No</span>
|
|
@endif
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Configurazione Ripartizione -->
|
|
<div class="col-md-6">
|
|
<div class="card mb-3">
|
|
<div class="card-header">
|
|
<h5 class="card-title mb-0">
|
|
<i class="fas fa-chart-pie"></i> Configurazione Ripartizione
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<table class="table table-borderless">
|
|
<tr>
|
|
<td class="fw-bold">Tabella Millesimale Default:</td>
|
|
<td>
|
|
<strong>{{ $voceSpesa->tabellaMillesimaleDefault->denominazione }}</strong>
|
|
<br><small class="text-muted">{{ $voceSpesa->tabellaMillesimaleDefault->tipo_tabella }}</small>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Ripartizioni Create:</td>
|
|
<td>
|
|
<span class="badge bg-primary">{{ $voceSpesa->ripartizioniSpese->count() }}</span>
|
|
@if($voceSpesa->ripartizioniSpese->count() > 0)
|
|
<br><small class="text-muted">
|
|
Ultima: {{ $voceSpesa->ripartizioniSpese->first()->created_at->format('d/m/Y') }}
|
|
</small>
|
|
@endif
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="fw-bold">Totale Ripartito:</td>
|
|
<td>
|
|
@php
|
|
$totaleRipartito = $voceSpesa->ripartizioniSpese->sum('importo_totale');
|
|
@endphp
|
|
@if($totaleRipartito > 0)
|
|
<span class="text-success">€ {{ number_format($totaleRipartito, 2, ',', '.') }}</span>
|
|
@else
|
|
<span class="text-muted">€ 0,00</span>
|
|
@endif
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Descrizione e Note -->
|
|
@if($voceSpesa->descrizione || $voceSpesa->note || $voceSpesa->tags)
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5 class="card-title mb-0">
|
|
<i class="fas fa-sticky-note"></i> Descrizione e Note
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
@if($voceSpesa->descrizione)
|
|
<div class="mb-3">
|
|
<strong>Descrizione:</strong>
|
|
<p class="mt-2">{{ $voceSpesa->descrizione }}</p>
|
|
</div>
|
|
@endif
|
|
|
|
@if($voceSpesa->tags)
|
|
<div class="mb-3">
|
|
<strong>Tags:</strong>
|
|
<div class="mt-2">
|
|
@foreach(explode(',', $voceSpesa->tags) as $tag)
|
|
<span class="badge bg-light text-dark me-1">{{ trim($tag) }}</span>
|
|
@endforeach
|
|
</div>
|
|
</div>
|
|
@endif
|
|
|
|
@if($voceSpesa->note)
|
|
<div class="mb-3">
|
|
<strong>Note:</strong>
|
|
<p class="mt-2">{{ $voceSpesa->note }}</p>
|
|
</div>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
|
|
<!-- Ripartizioni Associate -->
|
|
@if($voceSpesa->ripartizioniSpese->count() > 0)
|
|
<div class="row mt-4">
|
|
<div class="col-12">
|
|
<div class="card">
|
|
<div class="card-header d-flex justify-content-between align-items-center">
|
|
<h5 class="card-title mb-0">
|
|
<i class="fas fa-chart-pie"></i> Ripartizioni Associate
|
|
</h5>
|
|
<a href="{{ route('admin.ripartizioni-spesa.create', ['voce_spesa_id' => $voceSpesa->id]) }}" class="btn btn-primary btn-sm">
|
|
<i class="fas fa-plus"></i> Nuova Ripartizione
|
|
</a>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>Codice</th>
|
|
<th>Descrizione</th>
|
|
<th>Importo</th>
|
|
<th>Data</th>
|
|
<th>Stato</th>
|
|
<th>Azioni</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach($voceSpesa->ripartizioniSpese as $ripartizione)
|
|
<tr>
|
|
<td><code>{{ $ripartizione->codice_ripartizione }}</code></td>
|
|
<td>{{ $ripartizione->descrizione }}</td>
|
|
<td>€ {{ number_format($ripartizione->importo_totale, 2, ',', '.') }}</td>
|
|
<td>{{ $ripartizione->data_ripartizione->format('d/m/Y') }}</td>
|
|
<td>
|
|
<span class="badge bg-{{ $ripartizione->stato == 'confermata' ? 'success' : 'warning' }}">
|
|
{{ ucfirst($ripartizione->stato) }}
|
|
</span>
|
|
</td>
|
|
<td>
|
|
<a href="{{ route('admin.ripartizioni-spesa.show', $ripartizione) }}" class="btn btn-sm btn-outline-primary">
|
|
<i class="fas fa-eye"></i>
|
|
</a>
|
|
</td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
|
|
<!-- Informazioni Sistema -->
|
|
<div class="row mt-4">
|
|
<div class="col-12">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5 class="card-title mb-0">
|
|
<i class="fas fa-info-circle"></i> Informazioni Sistema
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-md-6">
|
|
<small class="text-muted">
|
|
<strong>Creato:</strong> {{ $voceSpesa->created_at->format('d/m/Y H:i:s') }}
|
|
@if($voceSpesa->createdBy)
|
|
da {{ $voceSpesa->createdBy->name }}
|
|
@endif
|
|
</small>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<small class="text-muted">
|
|
<strong>Ultimo aggiornamento:</strong> {{ $voceSpesa->updated_at->format('d/m/Y H:i:s') }}
|
|
@if($voceSpesa->updatedBy)
|
|
da {{ $voceSpesa->updatedBy->name }}
|
|
@endif
|
|
</small>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@endsection
|