170 lines
7.8 KiB
PHP
Executable File
170 lines
7.8 KiB
PHP
Executable File
@extends('layouts.app')
|
|
|
|
@section('title', 'Dashboard')
|
|
|
|
@section('content')
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<h2 class="mb-4">Bienvenido, {{ auth()->user()->name }}</h2>
|
|
</div>
|
|
</div>
|
|
|
|
@if($currentMonth)
|
|
<div class="row mb-4">
|
|
<div class="col-md-12">
|
|
<div class="card">
|
|
<div class="card-header bg-primary text-white">
|
|
<h5 class="mb-0">
|
|
<i class="bi bi-calendar3"></i>
|
|
Resumen de {{ $currentMonth->name }} {{ $currentMonth->year }}
|
|
@if($currentMonth->status === 'open')
|
|
<span class="badge bg-success ms-2">Abierto</span>
|
|
@elseif($currentMonth->status === 'closed')
|
|
<span class="badge bg-warning ms-2">Cerrado</span>
|
|
@else
|
|
<span class="badge bg-info ms-2">Pagado</span>
|
|
@endif
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
@if($data)
|
|
<div class="row">
|
|
<div class="col-md-3">
|
|
<div class="card stat-card primary mb-3">
|
|
<div class="card-body">
|
|
<h6 class="text-muted">Ventas del Usuario</h6>
|
|
<h4>${{ number_format($data['total_user_sales'], 2) }}</h4>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="card stat-card success mb-3">
|
|
<div class="card-body">
|
|
<h6 class="text-muted">Ventas del Sistema</h6>
|
|
<h4>${{ number_format($data['total_system_sales'], 2) }}</h4>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="card stat-card warning mb-3">
|
|
<div class="card-body">
|
|
<h6 class="text-muted">Comisión ({{ $data['commission_percentage'] }}%)</h6>
|
|
<h4>${{ number_format($data['commission_amount'], 2) }}</h4>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<div class="card stat-card danger mb-3">
|
|
<div class="card-body">
|
|
<h6 class="text-muted">Total a Recibir</h6>
|
|
<h4>${{ number_format($data['total_earning'], 2) }}</h4>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row mt-3">
|
|
<div class="col-md-6">
|
|
<ul class="list-group">
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
Salario Mensual
|
|
<span class="badge bg-primary rounded-pill">${{ number_format($data['monthly_salary'], 2) }}</span>
|
|
</li>
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
Gastos del Mes
|
|
<span class="badge bg-danger rounded-pill">${{ number_format($data['total_expenses'], 2) }}</span>
|
|
</li>
|
|
@if($data['has_difference'])
|
|
<li class="list-group-item d-flex justify-content-between align-items-center">
|
|
Diferencia Ventas
|
|
<span class="badge bg-warning rounded-pill">${{ number_format($data['sales_difference'], 2) }}</span>
|
|
</li>
|
|
@endif
|
|
</ul>
|
|
</div>
|
|
<div class="col-md-6 text-end">
|
|
<a href="{{ route('reports.monthly', ['month_id' => $currentMonth->id]) }}" class="btn btn-primary">
|
|
<i class="bi bi-file-earmark-text"></i> Ver Reporte Mensual
|
|
</a>
|
|
<a href="{{ route('reports.biweekly', ['month_id' => $currentMonth->id, 'biweekly' => 1]) }}" class="btn btn-outline-primary">
|
|
<i class="bi bi-file-earmark-text"></i> Ver Quincena
|
|
</a>
|
|
</div>
|
|
</div>
|
|
@else
|
|
<div class="alert alert-info">
|
|
No hay datos suficientes para calcular el resumen. Agrega ventas y gastos.
|
|
</div>
|
|
@endif
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@else
|
|
<div class="alert alert-warning">
|
|
<h5>No hay un mes de trabajo activo</h5>
|
|
<p>Para comenzar, crea un nuevo mes de trabajo.</p>
|
|
<a href="{{ route('months.create') }}" class="btn btn-primary">Crear Mes</a>
|
|
</div>
|
|
@endif
|
|
|
|
<!-- Últimos meses -->
|
|
<div class="row mt-4">
|
|
<div class="col-12">
|
|
<h4 class="mb-3">Meses Recientes</h4>
|
|
</div>
|
|
@forelse($recentMonths as $month)
|
|
<div class="col-md-4 col-lg-2 mb-3">
|
|
<div class="card h-100">
|
|
<div class="card-body text-center">
|
|
<h6>{{ $month->name }}</h6>
|
|
<small class="text-muted">{{ $month->year }}</small>
|
|
<div class="mt-2">
|
|
@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
|
|
</div>
|
|
</div>
|
|
<div class="card-footer bg-transparent">
|
|
<a href="{{ route('months.show', $month->id) }}" class="btn btn-sm btn-outline-primary w-100">Ver</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@empty
|
|
<div class="col-12">
|
|
<div class="alert alert-info">No hay meses registrados.</div>
|
|
</div>
|
|
@endforelse
|
|
</div>
|
|
|
|
<!-- Acceso rápido -->
|
|
<div class="row mt-4">
|
|
<div class="col-12">
|
|
<h4 class="mb-3">Acceso Rápido</h4>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<a href="{{ route('sales.create') }}" class="btn btn-success w-100 mb-2">
|
|
<i class="bi bi-plus-circle"></i> Nueva Venta
|
|
</a>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<a href="{{ route('expenses.create') }}" class="btn btn-warning w-100 mb-2">
|
|
<i class="bi bi-plus-circle"></i> Nuevo Gasto
|
|
</a>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<a href="{{ route('calendar') }}" class="btn btn-info w-100 mb-2">
|
|
<i class="bi bi-calendar3"></i> Ver Calendario
|
|
</a>
|
|
</div>
|
|
<div class="col-md-3">
|
|
<a href="{{ route('reports.monthly') }}" class="btn btn-secondary w-100 mb-2">
|
|
<i class="bi bi-graph-up"></i> Ver Reportes
|
|
</a>
|
|
</div>
|
|
</div>
|
|
@endsection |