Skip to content

Commit 0e615b1

Browse files
committed
Merge branch 'produccion' of https://github.com/PiruloDev/Proyecto into produccion
2 parents 9f868b6 + e466a93 commit 0e615b1

7 files changed

Lines changed: 98 additions & 19 deletions

File tree

Frontend/app/Http/Controllers/Estadisticas/EstadisticasController.php

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
use Illuminate\Http\Request;
66
use App\Http\Controllers\Controller;
7+
use Illuminate\Support\Facades\Log;
78
use App\Services\Reportes\ProductosMasVendidosService;
89
use App\Services\Reportes\UsuariosRegistradosService;
910

@@ -22,9 +23,27 @@ public function __construct(
2223

2324
public function index()
2425
{
25-
$productosMasVendidos = $this->productosMasVendidosService->obtenerProductosMasVendidos(10);
26-
$usuariosRegistrados = $this->usuariosRegistradosService->obtenerUsuariosRegistrados();
26+
Log::info('Accediendo a EstadisticasController@index');
27+
28+
try {
29+
$productosMasVendidos = $this->productosMasVendidosService->obtenerProductosMasVendidos(10);
30+
$usuariosRegistrados = $this->usuariosRegistradosService->obtenerUsuariosRegistrados();
2731

28-
return view('estadisticas.index', compact('productosMasVendidos', 'usuariosRegistrados'));
32+
Log::info('Estadísticas obtenidas correctamente', [
33+
'productos_count' => count($productosMasVendidos),
34+
'usuarios_count' => count($usuariosRegistrados)
35+
]);
36+
37+
return view('Estadisticas.index', compact('productosMasVendidos', 'usuariosRegistrados'));
38+
} catch (\Exception $e) {
39+
Log::error('Excepción en EstadisticasController@index: ' . $e->getMessage(), [
40+
'trace' => $e->getTraceAsString()
41+
]);
42+
43+
return view('Estadisticas.index', [
44+
'productosMasVendidos' => [],
45+
'usuariosRegistrados' => []
46+
])->with('error', 'Ocurrió un error al cargar las estadísticas. Por favor, revisa los logs.');
47+
}
2948
}
3049
}

Frontend/app/Http/Controllers/Reportes/OrdenSalidaController.php

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,44 @@
77
use App\Models\Clientes;
88
use App\Models\Reportes\OrdenSalida;
99
use App\Http\Controllers\Controller;
10+
use Illuminate\Support\Facades\Log;
1011

1112
class OrdenSalidaController extends Controller
1213
{
1314
public function index()
14-
{
15-
$ventas = OrdenSalida::with('cliente')->get();
16-
$clientes = Clientes::where('ACTIVO_CLI', 1)->get(); // solo clientes activos
17-
$pedidos = \DB::table('pedidos')->select('ID_PEDIDO', 'ID_CLIENTE')->get();
18-
19-
return view('reportes.index', compact('ventas', 'clientes', 'pedidos'));
20-
}
15+
{
16+
Log::info('Accediendo a OrdenSalidaController@index');
17+
18+
try {
19+
$ventas = OrdenSalida::with('cliente')->get();
20+
$clientes = Clientes::where('ACTIVO_CLI', 1)->get();
21+
$pedidos = \DB::table('pedidos')->select('ID_PEDIDO', 'ID_CLIENTE')->get();
22+
23+
Log::info('Datos de OrdenSalida cargados', [
24+
'ventas_count' => count($ventas),
25+
'clientes_count' => count($clientes),
26+
'pedidos_count' => count($pedidos)
27+
]);
28+
29+
return view('Reportes.index', compact('ventas', 'clientes', 'pedidos'));
30+
} catch (\Exception $e) {
31+
Log::error('Error en OrdenSalidaController@index: ' . $e->getMessage(), [
32+
'trace' => $e->getTraceAsString()
33+
]);
34+
35+
return view('Reportes.index', [
36+
'ventas' => collect([]),
37+
'clientes' => collect([]),
38+
'pedidos' => collect([])
39+
])->with('error', 'Error al cargar las órdenes de salida. Por favor revisa los logs.');
40+
}
41+
}
2142

2243

2344

2445
public function create()
2546
{
26-
return view('reportes.create');
47+
return view('Reportes.create');
2748
}
2849

2950
public function edit($id)
@@ -34,7 +55,7 @@ public function edit($id)
3455
return abort(404, 'Orden no encontrada');
3556
}
3657

37-
return view('reportes.edit', compact('venta'));
58+
return view('Reportes.edit', compact('venta'));
3859
}
3960

4061
public function store(Request $request)

Frontend/app/Services/Reportes/ProductosMasVendidosService.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,12 @@ class ProductosMasVendidosService
99
{
1010
protected $apiService;
1111

12-
public function __construct()
12+
public function __construct(ApiService $apiService)
1313
{
14-
$this->baseUrl = env('API_BASE_URL', 'http://32.193.167.191:8080');
14+
$this->apiService = $apiService;
1515
}
1616

17+
1718
/**
1819
* Obtener los productos más vendidos desde la API de Spring Boot
1920
*
@@ -22,6 +23,11 @@ public function __construct()
2223
*/
2324
public function obtenerProductosMasVendidos(int $limite = 10): array
2425
{
26+
if (!$this->apiService) {
27+
Log::error('ApiService no está inicializado en ProductosMasVendidosService. ¿Falló la inyección de dependencias?');
28+
return [];
29+
}
30+
2531
try {
2632
$response = $this->apiService->get("/productos/mas-vendidos?limite={$limite}");
2733

Frontend/app/Services/Reportes/UsuariosRegistradosService.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ class UsuariosRegistradosService
99
{
1010
protected $apiService;
1111

12-
public function __construct()
12+
public function __construct(ApiService $apiService)
1313
{
14-
$this->baseUrl = env('API_BASE_URL', 'http://32.193.167.191:8080');
14+
$this->apiService = $apiService;
1515
}
1616

1717
/**
@@ -21,6 +21,11 @@ public function __construct()
2121
*/
2222
public function obtenerUsuariosRegistrados(): array
2323
{
24+
if (!$this->apiService) {
25+
Log::error('ApiService no está inicializado en UsuariosRegistradosService. ¿Falló la inyección de dependencias?');
26+
return [];
27+
}
28+
2429
try {
2530
$response = $this->apiService->get('/reporte/usuarios');
2631

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
@extends('layouts.app')
2+
3+
@section('content')
4+
<div class="container py-5">
5+
<div class="alert alert-info">
6+
<h4>Funcionalidad disponible en el Listado</h4>
7+
<p>Esta acción ahora se realiza directamente mediante ventanas modales en la página principal de órdenes de salida.</p>
8+
<a href="{{ route('ordenes.salida.index') }}" class="btn btn-primary">Volver al listado</a>
9+
</div>
10+
</div>
11+
@endsection
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
@extends('layouts.app')
2+
3+
@section('content')
4+
<div class="container py-5">
5+
<div class="alert alert-info">
6+
<h4>Funcionalidad disponible en el Listado</h4>
7+
<p>Esta acción ahora se realiza directamente mediante ventanas modales en la página principal de órdenes de salida.</p>
8+
<a href="{{ route('ordenes.salida.index') }}" class="btn btn-primary">Volver al listado</a>
9+
</div>
10+
</div>
11+
@endsection

Frontend/resources/views/Reportes/index.blade.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,13 @@
3232
<div class="orden-card">
3333
<div class="card-header-custom">
3434
<span class="orden-id">Orden #{{ $venta->ID_FACTURA }}</span>
35-
<span class="fecha-badge">{{ \Carbon\Carbon::parse($venta->FECHA_FACTURACION)->format('d/m/Y H:i') }}</span>
35+
<span class="fecha-badge">
36+
@if($venta->FECHA_FACTURACION)
37+
{{ \Carbon\Carbon::parse($venta->FECHA_FACTURACION)->format('d/m/Y H:i') }}
38+
@else
39+
N/A
40+
@endif
41+
</span>
3642
</div>
3743
<div class="card-body-custom">
3844
<div class="info-row">
@@ -53,8 +59,8 @@
5359
{{ $venta->ID_FACTURA }},
5460
{{ $venta->ID_CLIENTE }},
5561
{{ $venta->ID_PEDIDO }},
56-
'{{ \Carbon\Carbon::parse($venta->FECHA_FACTURACION)->format('Y-m-d\TH:i') }}',
57-
{{ $venta->TOTAL_FACTURA }}
62+
'{{ $venta->FECHA_FACTURACION ? \Carbon\Carbon::parse($venta->FECHA_FACTURACION)->format("Y-m-d\TH:i") : "" }}',
63+
{{ $venta->TOTAL_FACTURA ?? 0 }}
5864
)">Editar</button>
5965
<form action="{{ route('ordenes.salida.destroy',$venta->ID_FACTURA) }}" method="POST" style="flex: 1;">
6066
@csrf

0 commit comments

Comments
 (0)