<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\{Alumno,AlumnoTesis,Carrera,Periodos,Personal,AlumnoVista,PersonalVista};
use Illuminate\Support\Facades\DB;

class AlumnoTesisController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        //
        $data = $request->all();
        $alumnos=null;
        if (count($data) > 0) {
            
            $bandera=true;
            if ($data['nombre']!=null) {
                if ($data['nombre']!="") {
                    //dd($data['nombre']);
                    $alumnos=AlumnoVista::where(DB::raw("CONCAT(nombre,' ',ap_paterno,' ',ap_materno)"), 'LIKE', '%' . $data['nombre'] . '%');
                    $bandera=false;
                }
                
            }
           if ($bandera) {
                if ($data['estado']=="2") {
                    $alumnos=AlumnoVista::where('fk_idCarrera',12)->orwhere('fk_idCarrera',13);

                }else{
                   if ($data['estado']=="0") {
                    $alumnos=AlumnoVista::where('fk_idCarrera',13);
                   }else{
                    $alumnos=AlumnoVista::where('fk_idCarrera',12);
             
                   }
                }
           }else {
            if ($data['estado']=="2") {
                $alumnos=$alumnos->where('fk_idCarrera',12)->orwhere('fk_idCarrera',13);
            }else{
               if ($data['estado']=="0") {
                $alumnos=$alumnos->where('fk_idCarrera',13);
               }else{
                $alumnos=$alumnos->where('fk_idCarrera',12);

               }
            }
           }
           $alumnos=$alumnos->with('alumnoTesis')->orderBy('idPeriodo')->get();
           
        }else{
            $alumnos=AlumnoVista::where('fk_idCarrera',13)->orwhere('fk_idCarrera',12)->with('alumnoTesis')->orderBy('idPeriodo')->get();
        //->with('periodoAlumno')
        }
        return view('admin.estudiantes.listado',compact('alumnos','data'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create(Request $request)
    {
        $idAlumno=$request['id'];
        $alumno=AlumnoVista::where('id',$idAlumno)->first();
        $idCarrera=$alumno->fk_idCarrera;

        $puesto=30;
        if ($idCarrera==12) {
            $puesto=33;
        }
        $personal=PersonalVista::where('idDepto',27)->where('idPuesto',$puesto)->get();
        return view('admin.estudiantes.nuevo',compact('personal','alumno'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        if(isset($_COOKIE['dip'])){
            $usuario=json_decode($_COOKIE['dip']);
            $ide=$usuario->idDP;
        }else{
            return response()->json([
                'estado'=>'error',
                'mensaje'=>'Su sesión a caducado, inicie de nuevo..'
            ]);
        }
        $idPersonal=$request['director_tesis'];
        $idAlumno=$request['idAlumno'];
        $tema=$request['tema_tesis'];

        
        if ($tema!=null&&$idPersonal!=null&&$idAlumno!=null) {
            AlumnoTesis::create(['tema'=>$tema,'alumno_id'=>trim($idAlumno),'personal_id'=>$idPersonal]);
            return response()->json([
                'estado'=>'success',
                'mensaje'=>'Tema registrado con éxito.'
                ]);
        }else{
            return response()->json([
                'estado'=>'error',
                'mensaje'=>'No as llenado todos los campos requeridos.'
                ]);
        }


        
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $idAlumno=$id;
        $alumno=AlumnoVista::where('id',$idAlumno)->with('alumnoTesis.directorTesis')->first();

        $idCarrera=$alumno->fk_idCarrera;

        $puesto=30;
        if ($idCarrera==12) {
            $puesto=33;
        }
        $personal=PersonalVista::where('idDepto',27)->where('idPuesto',$puesto)->get();

        return view('admin.estudiantes.editar',compact('personal','alumno'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        if(isset($_COOKIE['dip'])){
            $usuario=json_decode($_COOKIE['dip']);
            $ide=$usuario->idDP;
        }else{
            return response()->json([
                'estado'=>'error',
                'mensaje'=>'Su sesión a caducado, inicie de nuevo..'
            ]);
        }
        $idAlumno=$request['idAlumno'];
        $idPersonal=$request['director_tesis'];
        $tema=$request['tema_tesis'];

        
        if ($tema!=null&&$idPersonal!=null&&$idAlumno!=null) {
            /*$tesis=Alumno::where('id',$idAlumno)->with('alumnoTesis')->first();
            $tesis->alumnoTesis->tema=$tema;
            $tesis->alumnoTesis->personal_id=$idPersonal;
            $tesis->save();*/
            $tesis=AlumnoTesis::where('id',$id)->first();
            $tesis->tema=$tema;
            $tesis->personal_id=$idPersonal;
            $tesis->save();
            return response()->json([
                'estado'=>'success',
                'mensaje'=>'Tema modificado con éxito.'
                ]);
        }

    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
    public function mostrarVista($id)
    {
        $alumno=AlumnoVista::where('id',$id)->first();
        return view('admin.estudiantes.nuevoFoto',compact('alumno'));
    }
    public function guardarImagen(Request $request)
    {
        //imagens
        $id=$request['idAlumno'];

        //dd(unlink(getcwd()."/img/estudiantes/".$id.".webp"));
        if($request->file('imagen')!=null){
            $imagen= $request->file('imagen');
            $nombre_imgE=$id.".webp";
            $alumno=AlumnoVista::where('id',$id)->first();

            if ($alumno!=null) {
                $this->guardar($imagen,$nombre_imgE);
                return response()->json([
                    'estado'=>'success',
                    'mensaje'=>'Foto Actualizada.'
                ]);
            }else{
                return response()->json([
                    'estado'=>'error',
                    'mensaje'=>'El número de control no existe.'
                ]);
            }
 
        }else{
            return response()->json([
                'estado'=>'error',
                'mensaje'=>'No as llenado todos los campos requeridos.'
            ]);
        }  
    }
    public function guardar($imagen,$nombre_img){
        $calidad=60;
        $ruta = "/img/estudiantes/";         
        $nombre = explode(".",$imagen->getClientOriginalName());
        //dd(getcwd().$ruta.$nombre_img);
        if ($nombre[count($nombre)-1]=="webp"){
            $imagen->move(getcwd().$ruta, $nombre_img);
        }else{
            //dd($imagen);
            $img=\Image::make($imagen);
            $img->save(getcwd().$ruta.$nombre_img,$calidad);
            //unlink(getcwd().$ruta.$nombre_img);
        }
    }
}
