<?php

namespace App\Http\Controllers;

use App\Model\Curso;
use App\Model\DetalleCurso;
use App\Model\Notas;
use App\Model\Profesor;
use App\Model\Usuario;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
use League\Flysystem\Exception;

class NotasDocenteController extends Controller{


    public function get_index(){
        try{
            $id = Profesor::where('id_usuario',Auth::user()->id)->get()->pluck('id')[0];

            $Arr = DB::table('seccion_curso')
                ->join('profesor','profesor.id','=','seccion_curso.id_profesor')
                ->join('curso','curso.id','=','seccion_curso.id_curso')
                ->join('periodo','periodo.id','=','seccion_curso.id_periodo')
                ->join('usuario','usuario.id','=','profesor.id_usuario')
                ->where('profesor.id','=',$id)
                ->where('periodo.estado','=',1)
                ->select('seccion_curso.id as id_seccion',
                    'seccion_curso.nombre_seccion as seccion',
                    'curso.id as id_curso',
                    'curso.nombre as curso',
                    'periodo.nombre as periodo')->get()->toArray();

            return view('pages.RegistroAcademico.index',compact('Arr'));
        }catch (\Exception $e){
            $Arr = [];
            return view('pages.RegistroAcademico.index',compact('Arr'));
        }
    }

    public function get_evaluaciones($id,$id2){
        $idp= Profesor::where('id_usuario',Auth::user()->id)->get()->pluck('id')[0];

        $validar = DB::table('notas')->distinct()->select('notas.id_seccion_curso','notas.id_detalle_curso')->get()->toArray();

        $List = DB::table('detalle_curso')
            ->join('curso','curso.id','=','detalle_curso.id_curso')
            ->join('seccion_curso','seccion_curso.id_curso','=','curso.id')
            ->join('periodo','periodo.id','=','detalle_curso.id_periodo')
            ->where('seccion_curso.id','=',$id)
            ->where('curso.id','=',$id2)
            ->where('seccion_curso.id_profesor','=',$idp)
            ->where('periodo.estado','=',1)
            ->select('detalle_curso.id as id_detalle_curso',
                'detalle_curso.nombre as detalle_curso',
                'detalle_curso.porcentaje',
                'detalle_curso.estado',
                'seccion_curso.id as ID_seccion',
                'seccion_curso.nombre_seccion as seccion')->get()->toArray();


        return view('pages.RegistroAcademico._evaluaciones',compact('List','validar'));
    }

    public function get_vernotas($id,$id2){
        try{
        $idp= Profesor::where('id_usuario',Auth::user()->id)->get()->pluck('id')[0];

        $Arr = DB::table('notas')
            ->join('alumno_seccion', 'alumno_seccion.id', '=', 'notas.id_alumno_seccion')
            ->join('alumno', 'alumno.id', '=', 'alumno_seccion.id_alumno')
            ->join('usuario', 'usuario.id', '=', 'alumno.id_usuario')
            ->join('detalle_curso', 'detalle_curso.id', '=', 'notas.id_detalle_curso')
            ->join('seccion_curso', 'seccion_curso.id', '=', 'alumno_seccion.id_seccion_curso')
            ->where('notas.id_seccion_curso', '=', $id)
            ->where('notas.id_detalle_curso', '=', $id2)
            ->where('seccion_curso.id_profesor', '=', $idp)
            ->select('alumno_seccion.id as id_alumno_seccion',
                'alumno.codigo',
                'usuario.nombres as uNombre',
                'usuario.apellido_materno  as uAM',
                'usuario.apellido_paterno  as uAP',
                'notas.nota',
                'detalle_curso.porcentaje',
                'notas.descripcion')->get()->toArray();


        $detalle = DetalleCurso::where('id', $id2)
            ->select('id','nombre','id_curso')->get()->toArray()[0];

        $curso = Curso::where('id',$detalle['id_curso'])
            ->select('nombre')->get()->toArray()[0];

            return view('pages.RegistroAcademico.vernotas',compact('Arr','detalle','curso'));
        }
        catch (\Exception $e){
         return null;
        }
    }

    public function get_notas($id,$id2)
    {
        try{

            $detalle = DetalleCurso::where('id', $id2)
                ->select('id','nombre','id_curso','estado')->get()->toArray()[0];

                if($detalle['estado'] == 0){
                    $Arr = [];
                    return view('pages.RegistroAcademico.index',compact('Arr'));
                }
                else{
                    $idp = Profesor::where('id_usuario', Auth::user()->id)->get()->pluck('id')[0];


                    $Arr = DB::table('seccion_curso')
                        ->join('profesor', 'profesor.id', '=', 'seccion_curso.id_profesor')
                        ->join('curso', 'curso.id', '=', 'seccion_curso.id_curso')
                        ->join('periodo', 'periodo.id', '=', 'seccion_curso.id_periodo')
                        ->join('alumno_seccion', 'alumno_seccion.id_seccion_curso', '=', 'seccion_curso.id')
                        ->join('alumno', 'alumno.id', '=', 'alumno_seccion.id_alumno')
                        ->join('usuario', 'usuario.id', '=', 'alumno.id_usuario')
                        ->where('seccion_curso.id', '=', $id)
                        ->where('periodo.estado', '=', 1)
                        ->where('seccion_curso.id_profesor', '=', $idp)
                        ->select('alumno_seccion.id as id_alumno_seccion',
                            'alumno.codigo',
                            'usuario.nombres as uNombre',
                            'usuario.apellido_materno  as uAM',
                            'usuario.apellido_paterno  as uAP')->get()->toArray();


                    $curso = Curso::where('id',$detalle['id_curso'])
                        ->select('nombre')->get()->toArray()[0];


                    return view('pages.RegistroAcademico.registronotas',compact('Arr','detalle','curso','id'));
                }
        }
        catch (\Exception $e){
            $Arr = [];
            return view('pages.RegistroAcademico.index',compact('Arr'));
        }
    }

    public function post_notas(Request $request){

        try{
            $data = array();
            $c = count($request['datos']['NOTAS']);
            for($i = 0; $i < $c; $i++){
                $arr = [
                    'nombre' => $request['datos']['N'],
                    'descripcion' => (string)$request['datos']['D'][$i],
                    'nota' => (float)$request['datos']['NOTAS'][$i],
                    'id_alumno_seccion' => (int)$request['datos']['IAS'][$i],
                    'id_detalle_curso' => (int)$request['datos']['C'],
                    'id_seccion_curso' => (int)$request['datos']['S']
                ];

//                $SC = DetalleCurso::find((int)$request['datos']['C']);
//                $SC->estado = 0;
//                $SC->save();

                if(Notas::where('id_alumno_seccion','=',$request['datos']['IAS'][$i])
                        ->where('id_detalle_curso',$request['datos']['C'])
                        ->where('id_seccion_curso',$request['datos']['S'])
                        ->where('nombre',$request['datos']['N'])
                        ->get()->toArray() == []){
                    Notas::create($arr);
                }
                else{
                    Notas::where('id_alumno_seccion','=',$request['datos']['IAS'][$i])
                        ->where('id_detalle_curso',$request['datos']['C'])
                        ->where('id_seccion_curso',$request['datos']['S'])
                        ->where('nombre',$request['datos']['N'])
                        ->update($arr);
                }

            $arr = [];
        }
        return 'true';

        }catch (\Exception $e){
            $data = 'Ocurrio un error con la solicitud';
            return 'false';
        }
    }

}
