netgescon-day0/app/Modules/Contabilita/Views/index_old.blade.php

185 lines
8.4 KiB
PHP
Executable File

@extends('modules.layouts.base')
@php
$moduleTitle = 'Contabilità';
$moduleIcon = 'fas fa-calculator';
$moduleBreadcrumb = 'Moduli > Contabilità';
@endphp
@section('module-actions')
<div class="btn-group" role="group">
@can('contabilita_create')
<a href="{{ route('contabilita.create') }}" class="btn btn-module-primary">
<i class="fas fa-plus me-1"></i>
Nuova Registrazione
</a>
@endcan
<button type="button" class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown">
<i class="fas fa-cog"></i>
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#"><i class="fas fa-file-export me-2"></i>Esporta</a></li>
<li><a class="dropdown-item" href="#"><i class="fas fa-cog me-2"></i>Impostazioni</a></li>
</ul>
</div>
@endsection
@section('module-content')
<!-- Statistiche rapide -->
<div class="row mb-4">
<div class="col-md-3">
<div class="module-stats-card">
<div class="module-stats-number">{{ $data->total() }}</div>
<div class="module-stats-label">Registrazioni Totali</div>
</div>
</div>
<div class="col-md-3">
<div class="module-stats-card">
<div class="module-stats-number">{{ number_format($data->sum(function($r) { return $r->movimenti->where('tipo', 'dare')->sum('importo'); }) ?? 0, 0) }}</div>
<div class="module-stats-label">Importo Totale</div>
</div>
</div>
<div class="col-md-3">
<div class="module-stats-card">
<div class="module-stats-number">{{ $data->where('created_at', '>=', now()->startOfMonth())->count() }}</div>
<div class="module-stats-label">Questo Mese</div>
</div>
</div>
<div class="col-md-3">
<div class="module-stats-card">
<div class="module-stats-number">{{ $data->where('created_at', '>=', now()->startOfYear())->count() }}</div>
<div class="module-stats-label">Quest'Anno</div>
</div>
</div>
</div>
<!-- Tabella Registrazioni -->
<div class="card">
<div class="card-header">
<h3 class="module-card-title">
<i class="fas fa-list me-2"></i>
Registrazioni Contabili
</h3>
</div>
<div class="card-body">
<!-- Filtri di ricerca -->
<form method="GET" class="mb-3">
<div class="row">
<div class="col-md-4">
<div class="input-group">
<input type="text" name="search" class="form-control"
placeholder="Cerca per descrizione..."
value="{{ request('search') }}">
<button type="submit" class="btn btn-outline-primary">
<i class="fas fa-search"></i>
</button>
</div>
</div>
<div class="col-md-3">
<select name="status" class="form-select">
<option value="">Tutti gli stati</option>
<option value="attivo" {{ request('status') == 'attivo' ? 'selected' : '' }}>Attivo</option>
<option value="inattivo" {{ request('status') == 'inattivo' ? 'selected' : '' }}>Inattivo</option>
</select>
</div>
<div class="col-md-2">
<button type="submit" class="btn btn-outline-secondary w-100">
<i class="fas fa-filter me-1"></i>Filtra
</button>
</div>
</div>
</form>
<div class="table-responsive">
<table class="table table-striped table-hover">
<thead class="table-light">
<tr>
<th>Data</th>
<th>Descrizione</th>
<th>Importo Totale</th>
<th>Stato</th>
<th width="140">Azioni</th>
</tr>
</thead>
<tbody>
@forelse($data as $registrazione)
<tr>
<td>
<i class="fas fa-calendar-alt text-muted me-1"></i>
{{ \Carbon\Carbon::parse($registrazione->data_registrazione)->format('d/m/Y') }}
</td>
<td>
<strong>{{ $registrazione->descrizione }}</strong>
</td>
<td>
<span class="fw-bold text-success">
€{{ number_format($registrazione->movimenti->where('tipo', 'dare')->sum('importo'), 2) }}
</span>
</td>
<td>
<span class="badge bg-success">Attivo</span>
</td>
<td>
<div class="btn-group" role="group">
@can('contabilita_view')
<a href="{{ route('contabilita.show', $registrazione->id) }}"
class="btn btn-sm btn-outline-info"
data-bs-toggle="tooltip" title="Visualizza">
<i class="fas fa-eye"></i>
</a>
@endcan
@can('contabilita_edit')
<a href="{{ route('contabilita.edit', $registrazione->id) }}"
class="btn btn-sm btn-outline-warning"
data-bs-toggle="tooltip" title="Modifica">
<i class="fas fa-edit"></i>
</a>
@endcan
@can('contabilita_delete')
<form method="POST" action="{{ route('contabilita.destroy', $registrazione->id) }}"
style="display: inline-block;">
@csrf
@method('DELETE')
<button type="submit"
class="btn btn-sm btn-outline-danger"
onclick="return confirm('Sei sicuro di voler eliminare questa registrazione?')"
data-bs-toggle="tooltip" title="Elimina">
<i class="fas fa-trash"></i>
</button>
</form>
@endcan
</div>
</td>
</tr>
@empty
<tr>
<td colspan="5">
<div class="module-empty-state">
<i class="fas fa-inbox"></i>
<h5>Nessuna registrazione contabile trovata</h5>
<p class="text-muted">
Non ci sono registrazioni che corrispondono ai criteri di ricerca.
</p>
@can('contabilita_create')
<a href="{{ route('contabilita.create') }}" class="btn btn-primary">
<i class="fas fa-plus me-1"></i>
Crea la prima registrazione
</a>
@endcan
</div>
</td>
</tr>
@endforelse
</tbody>
</table>
</div>
@if($data->hasPages())
<div class="d-flex justify-content-center mt-4">
{{ $data->appends(request()->query())->links() }}
</div>
@endif
</div>
</div>
@endsection