<?php

namespace App\Http\Controllers;

use App\Acces;
use App\CotxeAutoritzat;
use App\Http\Controllers\NewAccesController;
use Illuminate\Http\Request;
use Illuminate\Support\Collection;
use App\Http\Requests;
use App\Http\Controllers\Input;

class ConfirmarMatriculesController extends Controller
{
    /**
     * ConfirmarMatriculesController constructor.
     */
    public function __construct()
    {
        //midelware per demanar que s'estigui registrat
        $this->middleware('auth');
    }

    /** 
     * @return vista amb accessos pendents de confirmar
     */
    public function index()
    {
        $malesLectures = $this->llistarAccessos();
        return view('confirmacioMatricula')->with('malesLectures', $malesLectures->paginate(10));
    }

    /** Metode actualitza el valor de la matricula, amb el valor enviat des de la vista
     * @param Request $request
     * @return redireccio a la vista
     */
    public function postConfirmarMatricules(Request $request)
    {
        $dades = $request->all();
        $this->actualitzarMatricula(array_get($dades, 'id_acces'),array_get($dades, 'matricula'));
        return redirect('/confirmar');
    }

    /** Metode borra acces
     * @param Request $request
     * @return redireccio a la vista
     */
    public function borrarBadAcces(Request $request){
        $dades = $request->all();
        $AccesTest = new Acces;
        $AccesTest->borrarAcces(array_get($dades, 'id_acces'));
        return redirect()->back();
    }

    /** Metode marca com a lectura correcta l'acces
     * @param Request $request
     * @return redireccio a la vista
     */
    public function bonaLecturaAcces(Request $request){
        $dades = $request->all();
        $AccesTest = new Acces;
        $AccesTest->canviLecturaMatricula(array_get($dades, 'id_acces'), True);
        return redirect('/confirmar');
    }

    /** Valida i actualitza la matricula 
     * @param $idAcces
     * @param $matricula
     */
    public function actualitzarMatricula($idAcces, $matricula)
    {
        $AccesTest = new Acces;
        $CotxeAutoritzat = new CotxeAutoritzat();
        $NewAccesController = new NewAccesController();
        $boolLecturaMatricula = $NewAccesController->validarLecturaMatricula($matricula);
        $acces = $AccesTest->getAccesId($idAcces);
        $boolAccesAutoritzat = $CotxeAutoritzat->searchCotxeAutoritzat($matricula);
        //si el nou valor de matricula es de cotxe autoritzat actualitza la situacio
        if(!$boolAccesAutoritzat){
            $boolAccesAutoritzat = $acces[0]->acces_autoritzat;
        }
        $AccesTest->updateErrorLecturaMatricula($idAcces, $matricula, $boolLecturaMatricula, $boolAccesAutoritzat);
    }

    /** Crida al model per llistar els accessos amb lectura incorrecta
     * @return llista de males lectures
     */
    public function llistarAccessos()
    {
        $acces = new Acces;
        $malesLectures = $acces->getAccesLecturaMatricula(False);
        return $malesLectures;
    }

}
