<?php

namespace App\Http\Controllers\Apoderado;

use App\Model\Alumno;
use App\Model\Apoderado;
use App\Model\TramiteUsuario;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use Yajra\Datatables\Datatables;

class TramiteController extends Controller
{
    public function index(){
        return view('pages.apoderado.tramites');
    }
    public function getTramites()
    {
        try
        {
            $alumnoid = Apoderado::where('id_usuario','=', Auth::user()->id)->first()->id_alumno;
            $id_usuario = Alumno::find($alumnoid)->id_usuario;

            $model = new TramiteUsuario();
            $tramiteUsuario = $model->tramite_usuario()
                ->where('tramite_usuario.id_usuario', '=', $id_usuario)
                ->where('tramite_usuario.id_tramite_usuario_estado', '<>', config('constants.TRAMITE_USUARIO_ESTADO_ID.FINALIZADO'))
                ->orderByDesc('tramite_usuario.id')
                ->get();

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

    public function detalle($id)
    {
        try
        {
            $alumnoid = Apoderado::where('id_usuario','=', Auth::user()->id)->first()->id_alumno;
            $id_usuario = Alumno::find($alumnoid)->id_usuario;
            $model = new TramiteUsuario();
            $tramiteUsuario = $model->tramite_usuario()
                ->where('tramite_usuario.id', '=', $id)
                ->where('tramite_usuario.id_usuario', '=', $id_usuario)
                ->first();

            if ($tramiteUsuario){
                return view('pages.apoderado.tramitedetalle')->with('tramiteUsuario', $tramiteUsuario);
            }
            Alert()->error(config('constants.ALERT.ERROR.MENSAJE'), config('constants.ALERT.ERROR.TITULO'))->persistent('Ok');
            return redirect('apoderado/tramites');
        }
        catch (Exception $e)
        {
            Alert()->error(config('constants.ALERT.ERROR.MENSAJE'), config('constants.ALERT.ERROR.TITULO'))->persistent('Ok');
            return redirect('apoderado/tramites');
        }
    }
}
