142 lines
4.7 KiB
PHP
Executable File
142 lines
4.7 KiB
PHP
Executable File
@extends('layouts.app')
|
|
|
|
@section('title', 'Detalles del Mes')
|
|
|
|
@section('content')
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<h2 class="mb-4">
|
|
{{ $month->name }} {{ $month->year }}
|
|
@if($month->status === 'open')
|
|
<span class="badge bg-success">Abierto</span>
|
|
@elseif($month->status === 'closed')
|
|
<span class="badge bg-warning">Cerrado</span>
|
|
@else
|
|
<span class="badge bg-info">Pagado</span>
|
|
@endif
|
|
</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Resumen -->
|
|
<div class="row mb-4">
|
|
<div class="col-md-3">
|
|
<div class="card stat-card primary">
|
|
<div class="card-body">
|
|
<h6>Ventas Usuario</h6>
|
|
<h4>${{ number_format($month->dailySales()->sum('user_sales'), 2) }}</h4>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="card stat-card success">
|
|
<div class="card-body">
|
|
<h6>Ventas Sistema</h6>
|
|
<h4>${{ number_format($month->dailySales()->sum('system_sales'), 2) }}</h4>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="card stat-card warning">
|
|
<div class="card-body">
|
|
<h6>Total Gastos</h6>
|
|
<h4>${{ number_format($month->expenses()->sum('amount'), 2) }}</h4>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="card stat-card danger">
|
|
<div class="card-body">
|
|
<h6>Días Registrados</h6>
|
|
<h4>{{ $month->dailySales()->count() }}</h4>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Acciones -->
|
|
<div class="row mb-4">
|
|
<div class="col-md-12">
|
|
<a href="{{ route('sales.create', ['month_id' => $month->id]) }}" class="btn btn-success">
|
|
<i class="bi bi-plus-circle"></i> Agregar Venta
|
|
</a>
|
|
<a href="{{ route('expenses.create', ['month_id' => $month->id]) }}" class="btn btn-warning">
|
|
<i class="bi bi-plus-circle"></i> Agregar Gasto
|
|
</a>
|
|
<a href="{{ route('reports.monthly', ['month_id' => $month->id]) }}" class="btn btn-info">
|
|
<i class="bi bi-graph-up"></i> Ver Reporte
|
|
</a>
|
|
|
|
@if($month->status === 'open')
|
|
<form method="POST" action="{{ route('months.close', $month->id) }}" class="d-inline">
|
|
@csrf
|
|
<button type="submit" class="btn btn-outline-danger" onclick="return confirm('¿Cerrar este mes?')">
|
|
<i class="bi bi-lock"></i> Cerrar Mes
|
|
</button>
|
|
</form>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Últimas ventas -->
|
|
<div class="card mb-4">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">Últimas Ventas</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<table class="table table-sm">
|
|
<thead>
|
|
<tr>
|
|
<th>Fecha</th>
|
|
<th>Venta Usuario</th>
|
|
<th>Venta Sistema</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@forelse($month->dailySales()->latest()->limit(10)->get() as $sale)
|
|
<tr>
|
|
<td>{{ $sale->date->format('d/m/Y') }}</td>
|
|
<td>${{ number_format($sale->user_sales, 2) }}</td>
|
|
<td>${{ number_format($sale->system_sales, 2) }}</td>
|
|
</tr>
|
|
@empty
|
|
<tr><td colspan="3" class="text-center">No hay ventas</td></tr>
|
|
@endforelse
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Últimos gastos -->
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h5 class="mb-0">Últimos Gastos</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<table class="table table-sm">
|
|
<thead>
|
|
<tr>
|
|
<th>Fecha</th>
|
|
<th>Descripción</th>
|
|
<th>Monto</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@forelse($month->expenses()->latest()->limit(10)->get() as $expense)
|
|
<tr>
|
|
<td>{{ $expense->date->format('d/m/Y') }}</td>
|
|
<td>{{ $expense->description }}</td>
|
|
<td class="text-danger">${{ number_format($expense->amount, 2) }}</td>
|
|
</tr>
|
|
@empty
|
|
<tr><td colspan="3" class="text-center">No hay gastos</td></tr>
|
|
@endforelse
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="mt-3">
|
|
<a href="{{ route('months.index') }}" class="btn btn-secondary">Volver a Meses</a>
|
|
</div>
|
|
@endsection |