<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\DB;

class HistorialPrestamoController extends Controller
{

    public function getIndex()
    {
        $UsuarioID = Auth::user()->id;
        $query = DB::table('prestamo')
            ->join('bibliografia_prestamo', 'prestamo.id', '=', 'bibliografia_prestamo.id_prestamo')
            ->leftJoin('ejemplar','bibliografia_prestamo.id_ejemplar','=','ejemplar.id')
            ->join('bibliografia', 'ejemplar.id_bibliografia', '=', 'bibliografia.id')
            ->join('autor', 'bibliografia.id_autor', '=', 'autor.id')
            ->where('id_usuario', '=', $UsuarioID)
            ->where('fecha_devolucion', '!=', null)
            ->select('bibliografia.nombre', 'autor.nombres',  'bibliografia.materia', 'ejemplar.anio', 'ejemplar.edicion', 'prestamo.fecha_inicio', 'prestamo.fecha_devolucion')
            ->orderby('prestamo.fecha_inicio', 'desc')
            ->paginate(25);
        return view('pages.prestamo.historialprestamo', ['datas' => $query]);

    }

    public function getPrestamoEstado()
    {
        $UsuarioID = Auth::user()->id;
        $datas = DB::table('prestamo')
            ->join('bibliografia_prestamo', 'prestamo.id', '=', 'bibliografia_prestamo.id_prestamo')
            ->join('ejemplar','bibliografia_prestamo.id_ejemplar','=','ejemplar.id')
            ->join('bibliografia', 'ejemplar.id_bibliografia', '=', 'bibliografia.id')
            ->join('autor', 'bibliografia.id_autor', '=', 'autor.id')
            ->where('id_usuario', '=', $UsuarioID)
            ->where('prestamo.fecha_devolucion', '=',null)
            ->where('ejemplar.estado','=',3)
            ->select('bibliografia.nombre', 'autor.nombres', 'ejemplar.anio', 'ejemplar.edicion', 'prestamo.fecha_inicio', 'prestamo.fecha_devolucion','prestamo.fecha_fin')
            ->orderby('prestamo.fecha_inicio', 'desc')
            ->paginate(25);

        $userrol = DB::table('usuario')
            ->join('role_user','usuario.id','=','role_user.user_id')
            ->where('usuario.id','=', $UsuarioID)->select('role_id')->get();

        $auxdata = DB::table('config_prestamo')
            ->where('config_prestamo.rolid',$userrol[0]->role_id)
            ->select('id','rolid','cant_dias_reserva','cant_dias_prestamo','moraxdia','cant_libros_dia','cant_dias_penalidad')
            ->get();

        return view('pages.prestamo.estadoprestamo',compact('datas','auxdata'));
    }

    public function getPrestamosEstados()
    {

        $datas = DB::table('prestamo')
            ->join('bibliografia_prestamo', 'prestamo.id', '=', 'bibliografia_prestamo.id_prestamo')
            ->join('ejemplar','bibliografia_prestamo.id_ejemplar','=','ejemplar.id')
            ->join('bibliografia', 'ejemplar.id_bibliografia', '=', 'bibliografia.id')
            ->join('autor', 'bibliografia.id_autor', '=', 'autor.id')
            ->join('usuario','prestamo.id_usuario','=', 'usuario.id')
            ->where('prestamo.fecha_devolucion', '=',null)
            ->where('ejemplar.estado','=',3)
            ->select('usuario.dni','usuario.nombres as NombreUsuario','usuario.apellido_materno','usuario.apellido_paterno','bibliografia.nombre', 'autor.nombres', 'ejemplar.anio', 'ejemplar.edicion', 'prestamo.fecha_inicio', 'prestamo.fecha_devolucion','prestamo.fecha_fin')
            ->orderby('prestamo.fecha_inicio', 'desc')
            ->paginate(25);

        return view('pages.prestamo.estadosprestamos',compact('datas'));

    }
}