Browse Source

rubi

muestra prestamos aceptado y te mando al formualrio ya creado y pouedes llenarlo
main
sergiomarquez778 4 weeks ago
parent
commit
3ed3861f42
  1. 2
      app/Http/Controllers/PrestamoController.php
  2. 24
      app/Http/Controllers/UserDashboardController.php
  3. 5
      app/Models/prestamo.php
  4. 2
      resources/views/layouts/app.blade.php
  5. 9
      resources/views/user-dashboard/cuestionario.blade.php
  6. 25
      resources/views/user-dashboard/detalle-prestamo.blade.php
  7. 5
      resources/views/user-dashboard/index.blade.php
  8. 171
      resources/views/user-dashboard/prestamos-aceptados.blade.php
  9. 3
      routes/web.php

2
app/Http/Controllers/PrestamoController.php

@ -70,6 +70,8 @@ class PrestamoController extends Controller
// Preparar los datos
$datos = $request->all();
$datos['chofer'] = $request->has('chofer') ? 1 : 0;
// Sobrescribir el nombre del solicitante con el nombre del usuario autenticado
$datos['nombre_solicitante'] = auth()->user()->name;
$prestamo = new Prestamo($datos);
$prestamo->estado = 'pendiente';

24
app/Http/Controllers/UserDashboardController.php

@ -3,6 +3,7 @@
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Prestamo;
class UserDashboardController extends Controller
{
@ -20,4 +21,27 @@ class UserDashboardController extends Controller
return view('user-dashboard.index');
}
public function prestamosAceptados()
{
// Mostrar todos los préstamos aceptados a cualquier usuario tipo 2
$prestamos = Prestamo::where('estado', 'aceptado')->with('choferAsignado')->get();
return view('user-dashboard.prestamos-aceptados', compact('prestamos'));
}
public function detallePrestamo($id)
{
$prestamo = Prestamo::findOrFail($id);
return view('user-dashboard.detalle-prestamo', compact('prestamo'));
}
public function cuestionario(Request $request)
{
$prestamo = null;
if ($request->has('prestamo_id')) {
$prestamo = \App\Models\Prestamo::find($request->prestamo_id);
}
return view('user-dashboard.cuestionario', compact('prestamo'));
}
}

5
app/Models/prestamo.php

@ -28,4 +28,9 @@ public function vehiculo()
{
return $this->belongsTo(\App\Models\tiposVeiculos::class, 'vehiculo_id');
}
public function choferAsignado()
{
return $this->belongsTo(\App\Models\Chofer::class, 'chofer');
}
}

2
resources/views/layouts/app.blade.php

@ -20,7 +20,7 @@
</head>
<body>
<div id="app">
@if (!request()->is('user-dashboard') && !request()->is('user-dashboard/cuestionario'))
@if (!request()->is('user-dashboard') && !request()->is('user-dashboard/cuestionario') && !request()->is('user-dashboard/prestamos-aceptados'))
<nav class="navbar navbar-expand-md navbar-light bg-white shadow-sm">
<div class="container">
<a class="navbar-brand" href="{{ url('/') }}">

9
resources/views/user-dashboard/cuestionario.blade.php

@ -50,6 +50,10 @@
}
</style>
@php
if (!isset($prestamo)) $prestamo = null;
@endphp
<body class="user-dashboard-bg">
<!-- Botón de cerrar sesión -->
<div class="user-dashboard-logout">
@ -64,6 +68,11 @@
<div class="contenedor-flex">
<div class="user-dashboard-card" style="min-width:350px;max-width:400px;flex:1; margin-top:40px;">
<h1 class="user-dashboard-title">Reporte de Usuario</h1>
@if($prestamo)
<div class="alert alert-primary" style="font-size:1.1rem; font-weight:600; margin-bottom:24px;">
Seleccionaste el préstamo con destino: <strong>{{ $prestamo->destino }}</strong>
</div>
@endif
<form id="form-reporte" style="font-family: 'Century Gothic', sans-serif; font-size: 12px;">
<div style="margin-bottom: 18px; text-align:left;">
<label for="foto_gasolina_inicio" style="font-weight:600; color:#2d3748;">Foto de la gasolina (antes de salir):</label><br><br>

25
resources/views/user-dashboard/detalle-prestamo.blade.php

@ -0,0 +1,25 @@
@extends('layouts.app')
@section('content')
<div class="container">
<h2>Detalle del Préstamo</h2>
<div class="card mb-4">
<div class="card-body">
<ul class="list-group">
<li class="list-group-item"><strong>Destino:</strong> {{ $prestamo->destino }}</li>
<li class="list-group-item"><strong>Fecha Salida:</strong> {{ $prestamo->fecha_salida }}</li>
<li class="list-group-item"><strong>Fecha Llegada:</strong> {{ $prestamo->fecha_llegada }}</li>
<li class="list-group-item"><strong>Motivo:</strong> {{ $prestamo->motivo }}</li>
<li class="list-group-item"><strong>Domicilio:</strong> {{ $prestamo->domicilio }}</li>
<li class="list-group-item"><strong>Personas:</strong> {{ $prestamo->personas }}</li>
<li class="list-group-item"><strong>Chofer:</strong> {{ $prestamo->chofer }}</li>
<li class="list-group-item"><strong>Estado:</strong> {{ $prestamo->estado }}</li>
</ul>
</div>
</div>
<a href="{{ url('/user-dashboard/cuestionario?prestamo_id=' . $prestamo->id) }}" class="btn btn-success">
Continuar con el cuestionario
</a>
<a href="{{ route('user.prestamos.aceptados') }}" class="btn btn-secondary">Volver a la lista</a>
</div>
@endsection

5
resources/views/user-dashboard/index.blade.php

@ -25,7 +25,10 @@
<div class="user-dashboard-card">
<h1 class="user-dashboard-title">Bienvenido a los Préstamos TecMM</h1>
<p class="user-dashboard-desc">Gestiona tus préstamos de manera fácil y rápida</p>
<a href="{{ url('/user-dashboard/cuestionario') }}" class="user-dashboard-btn">Ir a la siguiente sección</a>
<div style="display: flex; flex-direction: column; align-items: center; gap: 16px; margin-top: 24px;">
<!-- <a href="{{ url('/user-dashboard/cuestionario') }}" class="user-dashboard-btn" style="width: 220px;">Ir a la siguiente sección</a> -->
<a href="{{ route('user.prestamos.aceptados') }}" class="user-dashboard-btn" style="width: 220px;">Ver Préstamos Aceptados</a>
</div>
</div>
</body>
@endsection

171
resources/views/user-dashboard/prestamos-aceptados.blade.php

@ -0,0 +1,171 @@
@extends('layouts.app')
@section('content')
<link rel="stylesheet" href="{{ asset('css/user-dashboard.css') }}">
<style>
body.user-dashboard-bg {
background: linear-gradient(120deg, #4158D0 0%, #5068c8 46%, #70e7ff 100%) !important;
min-height: 100vh;
}
.prestamos-card {
border-radius: 24px;
box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.15);
background: #fff;
margin: 40px auto;
max-width: 1100px;
}
.prestamos-header {
border-radius: 24px 24px 0 0;
background: #4158D0;
color: #fff;
padding: 24px 32px;
font-size: 2rem;
font-weight: 800;
letter-spacing: 1px;
text-align: left;
display: flex;
align-items: center;
justify-content: space-between;
}
.prestamos-header .logo {
font-size: 2rem;
font-weight: 900;
letter-spacing: 2px;
color: #fff;
}
.prestamos-header .logout-btn {
background: #e53e3e;
color: #fff;
border: none;
border-radius: 8px;
padding: 10px 22px;
font-size: 1rem;
font-weight: 600;
display: flex;
align-items: center;
gap: 8px;
box-shadow: 0 2px 8px rgba(229,62,62,0.15);
transition: background 0.2s;
cursor: pointer;
}
.prestamos-header .logout-btn:hover {
background: #c53030;
color: #fff;
}
.prestamos-table th, .prestamos-table td {
vertical-align: middle;
text-align: center;
}
.prestamos-table th {
background: #f7fafc;
font-weight: bold;
}
.prestamos-table {
border-radius: 16px;
overflow: hidden;
background: #fff;
}
.prestamos-table td, .prestamos-table th {
font-size: 1rem;
}
.prestamos-table .badge {
font-size: 1rem;
padding: 6px 14px;
border-radius: 8px;
}
.prestamos-title {
font-size: 2.2rem;
font-weight: 900;
color: #4158D0;
margin-bottom: 24px;
text-align: center;
letter-spacing: 1px;
}
.btn-action {
border: none;
border-radius: 6px;
padding: 6px 14px;
font-size: 1rem;
font-weight: 600;
margin: 2px;
transition: background 0.2s;
cursor: pointer;
display: inline-flex;
align-items: center;
gap: 6px;
}
.btn-action.details {
background: #3182ce;
color: #fff;
}
.btn-action.details:hover {
background: #225ea8;
}
.btn-action.select {
background: #38a169;
color: #fff;
}
.btn-action.select:hover {
background: #276749;
}
</style>
<body class="user-dashboard-bg">
<div class="container py-4">
<div class="prestamos-card">
<div class="prestamos-header">
<span class="logo">PréstamosTecmm</span>
<form method="POST" action="{{ route('logout') }}" style="margin:0;">
@csrf
<button type="submit" class="logout-btn">
<i class="fas fa-sign-out-alt"></i> Cerrar Sesión
</button>
</form>
</div>
<div class="card-body" style="background: #fff; border-radius: 0 0 24px 24px;">
<div class="prestamos-title">Préstamos Aceptados</div>
@if($prestamos->isEmpty())
<div class="alert alert-info text-center mb-0">No tienes préstamos aceptados.</div>
@else
<div class="table-responsive">
<table class="table table-hover align-middle prestamos-table">
<thead>
<tr>
<th>Destino</th>
<th>Fecha Salida</th>
<th>Fecha Llegada</th>
<th>Motivo</th>
<th>Personas</th>
<th>Chofer</th>
<th>Estado</th>
<th>Acciones</th>
</tr>
</thead>
<tbody>
@foreach($prestamos as $prestamo)
<tr>
<td>{{ $prestamo->destino }}</td>
<td>{{ $prestamo->fecha_hora_salida }}</td>
<td>{{ $prestamo->fecha_hora_llegada }}</td>
<td>{{ $prestamo->motivo }}</td>
<td>{{ $prestamo->numero_personas }}</td>
<td>{{ $prestamo->choferAsignado ? $prestamo->choferAsignado->nombre : 'Sin chofer' }}</td>
<td>
<span class="badge bg-success">{{ ucfirst($prestamo->estado) }}</span>
</td>
<td>
<a href="{{ url('/user-dashboard/cuestionario?prestamo_id=' . $prestamo->id) }}" class="btn-action select">
<i class="fas fa-check"></i> Seleccionar Préstamo
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
@endif
</div>
</div>
</div>
</body>
@endsection

3
routes/web.php

@ -95,6 +95,9 @@ use App\Http\Controllers\PuestoController;
Route::get('usuarios/excel', [usuariosController::class, 'exportExcel'])->name('usuarios.excel');
Route::get('usuarios/pdf', [usuariosController::class, 'exportPDF'])->name('usuarios.pdf');
Route::get('/home', [HomeController::class, 'index'])->name('home');
Route::get('/user-dashboard/prestamos-aceptados', [App\Http\Controllers\UserDashboardController::class, 'prestamosAceptados'])->name('user.prestamos.aceptados');
Route::get('/user-dashboard/prestamos-aceptados/{id}', [App\Http\Controllers\UserDashboardController::class, 'detallePrestamo'])->name('user.prestamos.detalle');
Route::get('/user-dashboard/cuestionario', [App\Http\Controllers\UserDashboardController::class, 'cuestionario'])->name('user.cuestionario');
});
// Ruta para el dashboard de usuarios

Loading…
Cancel
Save