<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Storage;
use Auth;
use DB;
use App\Configuracion as Configuracion;
use App\Pais as Pais;
use App\Distincion as Distincion;

class DistincionController extends Controller {

    public function show_info($msg = null) {
		$configuracion = Configuracion::where('llave', '=', 'limit_date')->first();
		if (strtotime($configuracion['valor']) >  (time()- 5 * 3600) || Auth::user()->isAdmin()) {
			$aspirante_id = Auth::user()->id;
			//Contamos la cantidad de registros de cada tipo de formulario para visualizarlos en las pestañas
			//de la plantilla (main.blade.php)
			$objeto = new HelperController();
			$count = $objeto->menu($aspirante_id);

			$user_email = Auth::user()->email;

			$paises = Pais::all();
			$distinciones = Distincion::where('aspirantes_id', '=', $aspirante_id)->get();

			//Si no hay entrada de adjunto válida, se crea una entrada con el id de usuario, por lo tanto, cambiamos el enlace para no mostrar esta información
			foreach ($distinciones as $cur_distincion_key=>$cur_distincion) {
				if (preg_match("/^[0-9]+$/", $cur_distincion["ruta_adjunto"])) {            //La expresión regular para los ids autonuméricos
					$distinciones[$cur_distincion_key]["ruta_adjunto"]=null;
				}
			}

			$data = array(
				'aspirante_id' => $aspirante_id,
				'distinciones' => $distinciones,
				'msg' => $msg,
				'count' => $count
			);
			return view('distincion', $data);
		}
		else{
			$data = array(
				'limit_date' => $configuracion['valor']
			);
			auth()->logout();
return view('auth/timeout', $data);
		}
    }

    public function insert() {
        $input = Input::all();
		$id = Auth::user()->id;
		$userCode = Auth::user()->codigo;

		$aleatorio = rand(111111, 999999);
		$nombre = substr($input['nombre'], 0, 12);
		$nombre = $nombre . $aleatorio;
		$nombre = str_replace(' ', '_', $nombre);
        //Efectuamos las operaciones sobre el archivo adjunto si existe
		if (isset($input['adjunto'])) {
			$file = Input::file('adjunto');
			//$nombre = str_replace(' ', '_', $input['nombre']) . '_' . $input['fecha_entrega'];
			$file->move(public_path() . '/file/' . $userCode . '/distinciones_academicas/' , $nombre . '.pdf');

			$input['ruta_adjunto'] = 'file/' . $userCode . '/distinciones_academicas/' . $nombre . '.pdf';
			unset($input['adjunto']);
		}

		$input['aspirantes_id'] = $id;
        $distincion = Distincion::create($input);
        if ($distincion->save()) {
            return $this->show_info("Se ingresó la información de la distinción académica");
        }
    }

    public function delete() {
        $input = Input::all();
        $distincion = Distincion::find($input["id"]);

		if ($distincion->ruta_adjunto) {
			Storage::delete($distincion->ruta_adjunto);
		}
        if ($distincion->delete()) {
            return $this->show_info("Se borró la información de la distincion académica.");
        }
    }

}
