<?php

namespace App\Http\Controllers\DeudasPendientes;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\View\View;
//use Auth;
use App\Model\Prestamo;
use App\Model\TramiteUsuarioDeuda;
use Yajra\Datatables\Datatables;
use Illuminate\Support\Facades\DB;
use App\Model\TramiteUsuario;
use Illuminate\Support\Facades\Auth;

class DeudasPendientesController extends Controller
{
    public function getIndex(){
        return view('pages.deudas.index');
    }

    public function getGestionPagos(Request $request)
    {
        try {
            $usuario = Auth::user()->id;

            $model = new TramiteUsuario();
            $tramiteUsuario = $model->join('tramite_procedimiento', 'tramite_usuario.id_tramite_procedimiento', '=','tramite_procedimiento.id')
                ->where('tramite_usuario.id_usuario', '=', $usuario)
                ->where(function ($query) {
                    $query->where('tramite_usuario.id_tramite_usuario_estado', '=', 1)
                        ->orWhere('tramite_usuario.deuda', '=', true);
                })
                ->select(
                    'tramite_usuario.id',
                    'tramite_procedimiento.nombre',
                    'tramite_usuario.monto_pagar as montopagar',
                    'tramite_usuario.monto_pagado as montopagado',
                    'tramite_usuario.deuda'
                )
                ->orderBy('tramite_usuario.id_tramite_procedimiento')
                ->groupBy('tramite_usuario.id_tramite_procedimiento', 'tramite_usuario.id', 'tramite_procedimiento.nombre');

            return Datatables::of($tramiteUsuario)->make(true);
        } catch (\Exception $e) {
            return json_encode([
                "sEcho" => 1,
                "iTotalRecords" => 0,
                "iTotalDisplayRecords" => 0,
                "aaData" => []
            ]);
        }
    }

    public function getGestionBiblioteca(Request $request){
        try {
            $biblioteca = Prestamo::join('usuario','usuario.id','prestamo.id_usuario')
//                ->join('mora','mora.id_prestamo','prestamo.id')
                ->join('mora', function($q) {
                    $q->on('mora.id_prestamo','=','prestamo.id')
                        ->where('mora.cancelado','=','0');
                })
                ->where('prestamo.id_usuario', '=', Auth::user()->id)
                ->select(
                    'prestamo.id as CodigoDeuda',
                    'prestamo.fecha_inicio as Nombre',
                    'prestamo.fecha_devolucion as FechaDevolucion',
                    "mora.monto as MontoPagar"
                );

            return Datatables::of($biblioteca)->make(true);
        } catch (\Exception $e) {
            return json_encode([
                "sEcho" => 1,
                "iTotalRecords" => 0,
                "iTotalDisplayRecords" => 0,
                "aaData" => []
            ]);
        }
    }
}
