Initial commit: Sistema de comisiones y gastos personales
This commit is contained in:
199
resources/views/reports/monthly.blade.php
Executable file
199
resources/views/reports/monthly.blade.php
Executable file
@@ -0,0 +1,199 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', 'Reporte Mensual')
|
||||
|
||||
@section('content')
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h2 class="mb-4">Reporte Mensual</h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Selector -->
|
||||
<div class="row mb-4">
|
||||
<div class="col-md-6">
|
||||
<form method="GET" class="d-flex gap-2">
|
||||
<select name="month_id" class="form-select" onchange="this.form.submit()">
|
||||
@foreach($months as $m)
|
||||
<option value="{{ $m->id }}" {{ $month->id == $m->id ? 'selected' : '' }}>
|
||||
{{ $m->name }} {{ $m->year }}
|
||||
</option>
|
||||
@endforeach
|
||||
</select>
|
||||
<a href="{{ route('reports.biweekly', ['month_id' => $month->id, 'biweekly' => 1]) }}" class="btn btn-outline-primary">Quincenal</a>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if($report)
|
||||
<!-- Resumen General -->
|
||||
<div class="row mb-4">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-header bg-primary text-white">
|
||||
<h5 class="mb-0">{{ $report['month_name'] }}</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<h6 class="text-muted">Ventas del Usuario</h6>
|
||||
<h4>${{ number_format($report['total_user_sales'], 2) }}</h4>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h6 class="text-muted">Ventas del Sistema</h6>
|
||||
<h4>${{ number_format($report['total_system_sales'], 2) }}</h4>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h6 class="text-muted">Comisión ({{ $report['commission_percentage'] }}%)</h6>
|
||||
<h4 class="text-success">${{ number_format($report['commission_amount'], 2) }}</h4>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<h6 class="text-muted">Total a Recibir</h6>
|
||||
<h4 class="text-primary">${{ number_format($report['total_earning'], 2) }}</h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Detalles -->
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="card mb-4">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0">Desglose</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table">
|
||||
<tr>
|
||||
<td>Salario Mensual</td>
|
||||
<td class="text-end">${{ number_format($report['monthly_salary'], 2) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Comisión ({{ $report['commission_percentage'] }}%)</td>
|
||||
<td class="text-end text-success">+${{ number_format($report['commission_amount'], 2) }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Gastos del Mes</td>
|
||||
<td class="text-end text-danger">-${{ number_format($report['total_expenses'], 2) }}</td>
|
||||
</tr>
|
||||
<tr class="table-light">
|
||||
<td><strong>Total a Recibir</strong></td>
|
||||
<td class="text-end"><strong>${{ number_format($report['total_earning'], 2) }}</strong></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<div class="card mb-4">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0">Diferencia de Ventas</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if($report['has_difference'])
|
||||
<div class="alert alert-{{ $report['sales_difference'] > 0 ? 'warning' : 'danger' }}">
|
||||
<strong>Diferencia:</strong> ${{ number_format($report['sales_difference'], 2) }}
|
||||
<br>
|
||||
<small>
|
||||
{{ $report['sales_difference'] > 0 ? 'Ventas del usuario mayores que sistema' : 'Ventas del sistema mayores que usuario' }}
|
||||
</small>
|
||||
</div>
|
||||
@else
|
||||
<div class="alert alert-success">
|
||||
<i class="bi bi-check-circle"></i> Ventas conciliadas (sin diferencia)
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ventas Diarias -->
|
||||
<div class="card mb-4">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0">Ventas Diarias</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table table-sm table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Fecha</th>
|
||||
<th class="text-end">Venta Usuario</th>
|
||||
<th class="text-end">Venta Sistema</th>
|
||||
<th class="text-end">Diferencia</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse($dailySales as $sale)
|
||||
<tr>
|
||||
<td>{{ $sale->date->format('d/m/Y') }}</td>
|
||||
<td class="text-end">${{ number_format($sale->user_sales, 2) }}</td>
|
||||
<td class="text-end">${{ number_format($sale->system_sales, 2) }}</td>
|
||||
<td class="text-end">
|
||||
@php $diff = $sale->user_sales - $sale->system_sales; @endphp
|
||||
@if($diff != 0)
|
||||
<span class="text-{{ $diff > 0 ? 'warning' : 'danger' }}">
|
||||
${{ number_format($diff, 2) }}
|
||||
</span>
|
||||
@else
|
||||
<span class="text-success">-</span>
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr><td colspan="4" class="text-center">No hay ventas</td></tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr class="table-light">
|
||||
<th>Total</th>
|
||||
<th class="text-end">${{ number_format($dailySales->sum('user_sales'), 2) }}</th>
|
||||
<th class="text-end">${{ number_format($dailySales->sum('system_sales'), 2) }}</th>
|
||||
<th class="text-end">${{ number_format($dailySales->sum('user_sales') - $dailySales->sum('system_sales'), 2) }}</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Gastos -->
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h5 class="mb-0">Gastos del Mes</h5>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table table-sm table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Fecha</th>
|
||||
<th>Descripción</th>
|
||||
<th class="text-end">Monto</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse($expenses as $expense)
|
||||
<tr>
|
||||
<td>{{ $expense->date->format('d/m/Y') }}</td>
|
||||
<td>{{ $expense->description }}</td>
|
||||
<td class="text-end text-danger">${{ number_format($expense->amount, 2) }}</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr><td colspan="3" class="text-center">No hay gastos</td></tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr class="table-light">
|
||||
<th colspan="2">Total Gastos</th>
|
||||
<th class="text-end">${{ number_format($expenses->sum('amount'), 2) }}</th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@else
|
||||
<div class="alert alert-warning">No hay datos disponibles para este mes.</div>
|
||||
@endif
|
||||
@endsection
|
||||
Reference in New Issue
Block a user