<?php

namespace App\Http\Controllers\Reporte;

use App\Model\Asistencia_Personal;
use App\Model\Curso;
use App\Model\Especialidad;
use App\Model\Role;
use App\Model\User;
use Illuminate\Database\QueryException;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;

class AsistenciaController extends Controller
{
    //Extras
    public function cursoxciclo($periodoID)
    {

        if ($periodoID == 0) {
            $cursos = Curso::distinct()->pluck('curso.nombre', 'curso.id');
        } else {
            $cursos = Curso::join('seccion_curso', 'curso.id', '=', 'seccion_curso.id_curso')
                ->join('periodo', 'seccion_curso.id_periodo', '=', 'periodo.id')->where('periodo.id', '=', $periodoID)
                ->pluck('curso.nombre', 'curso.id');
        }

        return $cursos;
    }

    public function seccionxcurso($cursoID, $periodoID)
    {

        if ($cursoID == 0 && $periodoID == 0) {

            $secciones = DB::table('seccion_curso')
                ->join('curso', 'seccion_curso.id_curso', '=', 'curso.id')
                ->join('periodo', 'seccion_curso.id_periodo', '=', 'periodo.id')
                ->where('seccion_curso.nombre_seccion', '!=', null)
                ->distinct()
                ->pluck('seccion_curso.nombre_seccion', 'seccion_curso.id');
        } elseif ($cursoID != 0 && $periodoID == 0) {
            $secciones = DB::table('seccion_curso')
                ->join('curso', 'seccion_curso.id_curso', '=', 'curso.id')
                ->join('periodo', 'seccion_curso.id_periodo', '=', 'periodo.id')
                ->where('curso.id', '=', $cursoID)
                ->where('seccion_curso.nombre_seccion', '!=', null)
                ->distinct()
                ->pluck('seccion_curso.nombre_seccion', 'seccion_curso.id');
        } elseif ($cursoID == 0 && $periodoID != 0) {
            $secciones = DB::table('seccion_curso')
                ->join('curso', 'seccion_curso.id_curso', '=', 'curso.id')
                ->join('periodo', 'seccion_curso.id_periodo', '=', 'periodo.id')
                ->where('periodo.id', '=', $periodoID)
                ->where('seccion_curso.nombre_seccion', '!=', null)
                ->distinct()
                ->pluck('seccion_curso.nombre_seccion', 'seccion_curso.id');
        } else {
            $secciones = DB::table('seccion_curso')
                ->join('curso', 'seccion_curso.id_curso', '=', 'curso.id')
                ->join('periodo', 'seccion_curso.id_periodo', '=', 'periodo.id')
                ->where('periodo.id', '=', $periodoID)
                ->where('curso.id', '=', $cursoID)
                ->where('seccion_curso.nombre_seccion', '!=', null)
                ->distinct()
                ->pluck('seccion_curso.nombre_seccion', 'seccion_curso.id');
        }

        return $secciones;
    }

    //Fin Extras

    //alumnos
    public function indexalumnos()
    {

        return view('pages.reportes.asistencia.indexalumnos');

    }

    public function cursos()
    {

        $cursos = DB::select(DB::raw("

            SELECT DISTINCT sc.id ,c.nombre as Curso,  p.nombre as ciclo, sc.nombre_seccion
            FROM seccion_curso sc
            INNER JOIN curso c on sc.id_curso = c.id
            INNER JOIN periodo p on sc.id_periodo = p.id  
            ORDER BY `sc`.`id`  DESC 
            
        "));

        $ciclo = DB::select(DB::raw("

            SELECT *
            FROM periodo 
            
        "));


        return view('pages.reportes.asistencia.curso', compact('cursos', 'ciclo'));

    }

    public function alumnos()
    {

        $alumnos = DB::select(DB::raw("

            SELECT DISTINCT  a.codigo, concat(u.apellido_paterno,' ',u.apellido_materno,', ',u.nombres) as nombre_completo, e.nombre, u.id as userid
            FROM alumno a
            INNER JOIN usuario u on a.id_usuario = u.id
            INNER JOIN alumno_seccion sa on a.id = sa.id_alumno
            INNER JOIN seccion_curso sc on sa.id_seccion_curso = sc.id
            INNER JOIN periodo p on sc.id_periodo = p.id and p.estado = 1
            INNER JOIN especialidad e on a.id_especialidad = e.id
            where a.egresado != 1 and u.estado = 1
            GROUP BY a.codigo, u.apellido_paterno, u.apellido_materno, u.nombres, e.nombre,u.id
            ORDER BY a.codigo ASC
            
            "));

        $carrera = DB::select(DB::raw("

            SELECT *
            FROM especialidad e 
            
            "));

        return view('pages.reportes.asistencia.alumnos', compact('alumnos', 'carrera'));

    }

    public function tbcursos($periodoID, $cursoID, $seccionID)
    {

        if ($periodoID == 0 && $cursoID == 0 && $seccionID == 0){
            $tbcursos = DB::select(DB::raw("
                SELECT DISTINCT sc.id ,c.nombre as Curso,  p.nombre as ciclo, sc.nombre_seccion
                FROM seccion_curso sc
                INNER JOIN curso c on sc.id_curso = c.id
                INNER JOIN periodo p on sc.id_periodo = p.id  
                ORDER BY `sc`.`id`  DESC 
            "));
        }elseif ($periodoID != 0 && $cursoID == 0 && $seccionID == 0){
            $tbcursos = DB::select(DB::raw("
                SELECT DISTINCT sc.id ,c.nombre as Curso,  p.nombre as ciclo, sc.nombre_seccion
                FROM seccion_curso sc
                INNER JOIN curso c on sc.id_curso = c.id
                INNER JOIN periodo p on sc.id_periodo = p.id 
                WHERE p.id = $periodoID
                ORDER BY `sc`.`id`  DESC 
            "));
        }elseif ($periodoID == 0 && $cursoID != 0 && $seccionID == 0){
            $tbcursos = DB::select(DB::raw("
                SELECT DISTINCT sc.id ,c.nombre as Curso,  p.nombre as ciclo, sc.nombre_seccion
                FROM seccion_curso sc
                INNER JOIN curso c on sc.id_curso = c.id
                INNER JOIN periodo p on sc.id_periodo = p.id 
                WHERE c.id = $cursoID
                ORDER BY `sc`.`id`  DESC 
            "));
        }elseif ($periodoID == 0 && $cursoID == 0 && $seccionID != 0){
            $tbcursos = DB::select(DB::raw("
                SELECT DISTINCT sc.id ,c.nombre as Curso,  p.nombre as ciclo, sc.nombre_seccion
                FROM seccion_curso sc
                INNER JOIN curso c on sc.id_curso = c.id
                INNER JOIN periodo p on sc.id_periodo = p.id 
                WHERE sc.id = $seccionID
                ORDER BY `sc`.`id`  DESC 
            "));
        }elseif ($periodoID == 0 && $cursoID != 0 && $seccionID != 0){
            $tbcursos = DB::select(DB::raw("
                SELECT DISTINCT sc.id ,c.nombre as Curso,  p.nombre as ciclo, sc.nombre_seccion
                FROM seccion_curso sc
                INNER JOIN curso c on sc.id_curso = c.id
                INNER JOIN periodo p on sc.id_periodo = p.id 
                WHERE sc.id = $seccionID AND c.id = $cursoID
                ORDER BY `sc`.`id`  DESC 
            "));
        }elseif ($periodoID != 0 && $cursoID != 0 && $seccionID == 0){
            $tbcursos = DB::select(DB::raw("
                SELECT DISTINCT sc.id ,c.nombre as Curso,  p.nombre as ciclo, sc.nombre_seccion
                FROM seccion_curso sc
                INNER JOIN curso c on sc.id_curso = c.id
                INNER JOIN periodo p on sc.id_periodo = p.id 
                WHERE p.id = $periodoID AND c.id = $cursoID
                ORDER BY `sc`.`id`  DESC 
            "));
        }elseif ($periodoID != 0 && $cursoID == 0 && $seccionID != 0){
            $tbcursos = DB::select(DB::raw("
                SELECT DISTINCT sc.id ,c.nombre as Curso,  p.nombre as ciclo, sc.nombre_seccion
                FROM seccion_curso sc
                INNER JOIN curso c on sc.id_curso = c.id
                INNER JOIN periodo p on sc.id_periodo = p.id 
                WHERE p.id = $periodoID AND sc.id = $seccionID
                ORDER BY `sc`.`id`  DESC 
            "));
        }else{
            $tbcursos = DB::select(DB::raw("
                SELECT DISTINCT sc.id ,c.nombre as Curso,  p.nombre as ciclo, sc.nombre_seccion
                FROM seccion_curso sc
                INNER JOIN curso c on sc.id_curso = c.id
                INNER JOIN periodo p on sc.id_periodo = p.id 
                WHERE p.id = $periodoID AND sc.id = $seccionID AND  c.id = $cursoID
                ORDER BY `sc`.`id`  DESC 
            "));
        }

        return view('pages.reportes.asistencia.tbcursos', compact('tbcursos'));

    }

    public function asistenciaalumno($userID)
    {

        $cursos = DB::select(DB::raw("
            SELECT DISTINCT c.nombre as Curso, sc.nombre_seccion as Seccion, sc.id,a.id as alumnoID, IF(falta.faltas is not null ,falta.faltas,0) as faltas,IF(asistencia.asistencia is not null ,asistencia.asistencia,0) as asistencia, IF(tardanza.tardanza is not null ,tardanza.tardanza,0) as tardanza 
            from alumno a
            INNER JOIN alumno_seccion sa on a.id = sa.id_alumno
            INNER JOIN asistencia_alumno aa on sa.id = aa.id_alumno_seccion
            INNER JOIN seccion_curso sc on sa.id_seccion_curso = sc.id
            INNER JOIN curso c on sc.id_curso = c.id
            INNER JOIN (SELECT DISTINCT COUNT(aa.id) as faltas, aa.id as asistenciaID
                        from alumno a
                        INNER JOIN alumno_seccion sa on a.id = sa.id_alumno
                        INNER JOIN asistencia_alumno aa on sa.id = aa.id_alumno_seccion
                        INNER JOIN seccion_curso sc on sa.id_seccion_curso = sc.id
                        INNER JOIN curso c on sc.id_curso = c.id
                        where a.id_usuario = $userID AND aa.estado = 'Falta'
                        GROUP  by c.nombre, sc.nombre_seccion, c.id, aa.id) as falta on aa.id = falta.asistenciaID
            LEFT JOIN (SELECT DISTINCT COUNT(aa.id) as asistencia , aa.id as asistenciaID
                        from alumno a
                        INNER JOIN alumno_seccion sa on a.id = sa.id_alumno
                        INNER JOIN asistencia_alumno aa on sa.id = aa.id_alumno_seccion
                        INNER JOIN seccion_curso sc on sa.id_seccion_curso = sc.id
                        INNER JOIN curso c on sc.id_curso = c.id
                        where a.id_usuario = $userID AND aa.estado = 'Asistio'
                        GROUP  by c.nombre, sc.nombre_seccion, c.id, aa.id) as asistencia on aa.id = asistencia.asistenciaID
            LEFT JOIN (SELECT DISTINCT COUNT(aa.id) as tardanza , aa.id as asistenciaID
                        from alumno a
                        INNER JOIN alumno_seccion sa on a.id = sa.id_alumno
                        INNER JOIN asistencia_alumno aa on sa.id = aa.id_alumno_seccion
                        INNER JOIN seccion_curso sc on sa.id_seccion_curso = sc.id
                        INNER JOIN curso c on sc.id_curso = c.id
                        where a.id_usuario = $userID AND aa.estado = 'Tardanza'
                        GROUP  by c.nombre, sc.nombre_seccion, c.id, aa.id) as tardanza on aa.id = tardanza.asistenciaID
            where a.id_usuario = $userID
            GROUP  by c.nombre, sc.nombre_seccion, c.id
        "));

        return view('pages.reportes.asistencia.asistenciaalumno', compact('cursos','asistio','tardanza','faltas'));

    }

    public function asistenciaalumnocurso($SeccioncursoID,$alumnoID)
    {


        DB::statement("SET lc_time_names = 'es_EC'");

        $meses = DB::select(DB::raw("
            SELECT DISTINCT MONTHNAME(aa.fecha) as mes 
            FROM asistencia_alumno aa
            ORDER  BY mes DESC 
        "));

        $anios = DB::select(DB::raw("
            SELECT DISTINCT Year(aa.fecha) as anios 
            FROM asistencia_alumno aa
            ORDER  BY anios DESC 
        "));

        $historialAsistenciaCurso = DB::select(DB::raw("
            SELECT aa.estado, MONTHNAME(aa.fecha) as mes, Year(aa.fecha) as anio, Day(aa.fecha) as dia, aa.fecha 
            FROM alumno a
            INNER JOIN alumno_seccion sa on a.id = sa.id_alumno
            INNER JOIN asistencia_alumno aa on sa.id = aa.id_alumno_seccion
            INNER JOIN seccion_curso sc on sa.id_seccion_curso = sc.id
            INNER JOIN curso c on sc.id_curso = c.id
            WHERE sc.id = $SeccioncursoID AND a.id = $alumnoID
            ORDER BY anio,mes DESC
        "));

        return view('pages.reportes.asistencia.detalleasistenciaalumno', compact('anios', 'meses', 'historialAsistenciaCurso'));

    }

    public function asistenciacursoalumno($cursoseccionID)
    {

        DB::statement("SET lc_time_names = 'es_EC'");

        $meses = DB::select(DB::raw("
            SELECT DISTINCT MONTHNAME(aa.fecha) as mes 
            FROM asistencia_alumno aa
            ORDER  BY mes DESC 
        "));

        $anios = DB::select(DB::raw("
            SELECT DISTINCT Year(aa.fecha) as anios 
            FROM asistencia_alumno aa
            ORDER  BY anios DESC 
        "));

        $historialAsistenciaCurso = DB::select(DB::raw("
            SELECT aa.estado, MONTHNAME(aa.fecha) as mes, Year(aa.fecha) as anio, Day(aa.fecha) as dia, aa.fecha, u.nombres, u.apellido_paterno, u.apellido_materno, a.codigo
            from alumno a
            INNER JOIN usuario u on a.id_usuario = u.id
            INNER JOIN alumno_seccion sa on a.id = sa.id_alumno
            INNER JOIN asistencia_alumno aa on sa.id = aa.id_alumno_seccion
            INNER JOIN seccion_curso sc on sa.id_seccion_curso = sc.id
            INNER JOIN curso c on sc.id_curso = c.id
            where sc.id = $cursoseccionID
            ORDER BY anio,mes DESC 
        "));

        return view('pages.reportes.asistencia.detalleasistencicursoaalumno', compact('anios', 'meses', 'historialAsistenciaCurso'));


    }

    public function miasistenciaAlumno()
    {
        $userID = auth()->id();

        $cursos = DB::select(DB::raw("
            SELECT DISTINCT c.nombre as Curso, sc.nombre_seccion as Seccion, sc.id,a.id as alumnoID, IF(falta.faltas is not null ,falta.faltas,0) as faltas,IF(asistencia.asistencia is not null ,asistencia.asistencia,0) as asistencia, IF(tardanza.tardanza is not null ,tardanza.tardanza,0) as tardanza 
            from alumno a
            INNER JOIN alumno_seccion sa on a.id = sa.id_alumno 
            INNER JOIN asistencia_alumno aa on sa.id = aa.id_alumno_seccion 
            INNER JOIN seccion_curso sc on sa.id_seccion_curso = sc.id
            INNER JOIN  periodo p on sc.id_periodo = p.id and p.estado = 1
            INNER JOIN curso c on sc.id_curso = c.id
            LEFT JOIN (SELECT DISTINCT COUNT(aa.id) as faltas, aa.id as asistenciaID
                        from alumno a
                        INNER JOIN alumno_seccion sa on a.id = sa.id_alumno
                        INNER JOIN asistencia_alumno aa on sa.id = aa.id_alumno_seccion
                        INNER JOIN seccion_curso sc on sa.id_seccion_curso = sc.id
                        INNER JOIN curso c on sc.id_curso = c.id
                        where a.id_usuario = $userID AND aa.estado = 'Falta'
                        GROUP  by c.nombre, sc.nombre_seccion, c.id) as falta on aa.id = falta.asistenciaID
            LEFT JOIN (SELECT DISTINCT COUNT(aa.id) as asistencia , aa.id as asistenciaID
                        from alumno a
                        INNER JOIN alumno_seccion sa on a.id = sa.id_alumno
                        INNER JOIN asistencia_alumno aa on sa.id = aa.id_alumno_seccion
                        INNER JOIN seccion_curso sc on sa.id_seccion_curso = sc.id
                        INNER JOIN curso c on sc.id_curso = c.id
                        where a.id_usuario = $userID AND aa.estado = 'Asistio'
                        GROUP  by c.nombre, sc.nombre_seccion, c.id) as asistencia on aa.id = asistencia.asistenciaID
            LEFT JOIN (SELECT DISTINCT COUNT(aa.id) as tardanza , aa.id as asistenciaID
                        from alumno a
                        INNER JOIN alumno_seccion sa on a.id = sa.id_alumno
                        INNER JOIN asistencia_alumno aa on sa.id = aa.id_alumno_seccion
                        INNER JOIN seccion_curso sc on sa.id_seccion_curso = sc.id
                        INNER JOIN curso c on sc.id_curso = c.id
                        where a.id_usuario = $userID AND aa.estado = 'Tardanza'
                        GROUP  by c.nombre, sc.nombre_seccion, c.id) as tardanza on aa.id = tardanza.asistenciaID
            where a.id_usuario = $userID
            GROUP  by c.nombre, sc.nombre_seccion, c.id
        "));

        return view('pages.reportes.asistencia.miasistenciaalumno', compact('cursos', 'countasistencia', 'countfaltas', 'counttardanza'));
    }

    // Personal....
    public function indexpersonal()
    {

        try {

            $roles = Role::where('id', '!=', config('constants.ROLES.ALUMNO'))
                ->where('id', '!=', config('constants.ROLES.EMPRESA'))
                ->where('id', '!=', config('constants.ROLES.PROFESOR'))
                ->get();

            $idAlumnoRol = config('constants.ROLES.ALUMNO');
            $idEmpresaRol = config('constants.ROLES.EMPRESA');

            $users = DB::select(DB::raw("
            SELECT  u.id, u.dni, concat(u.apellido_paterno,' ',u.apellido_materno,', ',u.nombres) as nombre_completo,GROUP_CONCAT(r.name SEPARATOR ', ') as Roles
            from usuario u
            LEFT join role_user ru on u.id = ru.user_id
            LEFT join roles r on ru.role_id = r.id
            where r.id != $idAlumnoRol and u.deleted_at is NULL and r.id != $idEmpresaRol
            GROUP BY u.id, u.nombres, u.apellido_paterno, u.apellido_materno, u.dni, u.estado
            "));


        } catch (QueryException $e) {
            alert()->error('Se encontro un inconveniente, por favor inténtelo nuevamente.', 'Uuuupppps...')->confirmButton('Ok');
        }

        return view('pages.reportes.asistencia.indexpersonal')->with('roles', $roles)->with('users', $users);

    }

    public function asistenciapersonal($userID)
    {

        DB::statement("SET lc_time_names = 'es_EC'");

        $historialAsistencia = DB::select(DB::raw("
            SELECT ap.estado, MONTHNAME(ap.fecha) as mes, Year(ap.fecha) as anio, Day(ap.fecha) as dia, ap.fecha 
            FROM asistencia_personal ap 
            WHERE id_user = $userID
            ORDER BY anio,mes DESC 
        "));

        $meses = DB::select(DB::raw("
            SELECT DISTINCT MONTHNAME(ap.fecha) as mes 
            FROM asistencia_personal ap
            WHERE ap.id_user = $userID
            ORDER  BY mes DESC 
        "));

        $anios = DB::select(DB::raw("
            SELECT DISTINCT Year(ap.fecha) as anios 
            FROM asistencia_personal ap
            WHERE id_user = $userID
            ORDER  BY anios DESC 
        "));

        $usuario = User::find($userID);

        return view('pages.reportes.asistencia.asistenciapersonal', compact('historialAsistencia', 'meses', 'anios', 'usuario'));

    }

    // Profesor....

    public function miasistencia()
    {
        $userID = auth()->id();

        $cursos = DB::select(DB::raw("
            SELECT DISTINCT c.nombre as Curso, sc.nombre_seccion as Seccion, sc.id,p.id as profesorID, 
            IF(faltas.faltas is not null ,faltas.faltas,0) as faltas,
            IF(asistencia.asistencia is not null ,asistencia.asistencia,0) as asistencia
            FROM profesor p
            INNER JOIN seccion_curso sc on p.id = sc.id_profesor
            INNER JOIN curso c on sc.id_curso = c.id
            INNER JOIN asistencia_profesor ap on sc.id = ap.id_seccion_curso
            LEFT JOIN (
                                    SELECT DISTINCT COUNT(ap.id) as faltas, ap.id as asistenciaID
                                    FROM profesor p
                                    INNER JOIN seccion_curso sc on p.id = sc.id_profesor
                                    INNER JOIN curso c on sc.id_curso = c.id
                                    INNER JOIN asistencia_profesor ap on sc.id = ap.id_seccion_curso
                                    WHERE p.id_usuario = $userID AND ap.estado = 0
                                    GROUP by  c.nombre, sc.nombre_seccion, c.id, ap.id 
                       ) as faltas on ap.id = faltas.asistenciaID
            LEFT JOIN (
                                    SELECT DISTINCT COUNT(ap.id) as asistencia , ap.id as asistenciaID
                                    FROM profesor p
                                    INNER JOIN seccion_curso sc on p.id = sc.id_profesor
                                    INNER JOIN curso c on sc.id_curso = c.id
                                    INNER JOIN asistencia_profesor ap on sc.id = ap.id_seccion_curso
                                    where p.id_usuario = $userID AND ap.estado = 1
                                    GROUP  by  c.nombre, sc.nombre_seccion, c.id, ap.id 
                        ) as asistencia on ap.id = asistencia.asistenciaID
                        where p.id_usuario = $userID
                        GROUP  by c.nombre, sc.nombre_seccion, c.id
        "));


        return view('pages.reportes.asistencia.miasistencia', compact('cursos', 'countfaltas', 'countasistencia'));
    }

    public function asistenciaprofesor($userID)
    {

        $cursos = DB::select(DB::raw("
            SELECT DISTINCT c.nombre as Curso, sc.nombre_seccion as Seccion, sc.id,p.id as profesorID, 
            IF(faltas.faltas is not null ,faltas.faltas,0) as faltas,
            IF(asistencia.asistencia is not null ,asistencia.asistencia,0) as asistencia
            FROM profesor p
            INNER JOIN seccion_curso sc on p.id = sc.id_profesor
            INNER JOIN curso c on sc.id_curso = c.id
            INNER JOIN asistencia_profesor ap on sc.id = ap.id_seccion_curso
            LEFT JOIN (
                                    SELECT DISTINCT COUNT(ap.id) as faltas, ap.id as asistenciaID
                                    FROM profesor p
                                    INNER JOIN seccion_curso sc on p.id = sc.id_profesor
                                    INNER JOIN curso c on sc.id_curso = c.id
                                    INNER JOIN asistencia_profesor ap on sc.id = ap.id_seccion_curso
                                    WHERE p.id_usuario = $userID AND ap.estado = 0
                                    GROUP by  c.nombre, sc.nombre_seccion, c.id,ap.id
                       ) as faltas on ap.id = faltas.asistenciaID
            LEFT JOIN (
                                    SELECT DISTINCT COUNT(ap.id) as asistencia , ap.id as asistenciaID
                                    FROM profesor p
                                    INNER JOIN seccion_curso sc on p.id = sc.id_profesor
                                    INNER JOIN curso c on sc.id_curso = c.id
                                    INNER JOIN asistencia_profesor ap on sc.id = ap.id_seccion_curso
                                    where p.id_usuario = $userID AND ap.estado = 1
                                    GROUP  by  c.nombre, sc.nombre_seccion, c.id, ap.id
                        ) as asistencia on ap.id = asistencia.asistenciaID
                        where p.id_usuario = $userID
                        GROUP  by c.nombre, sc.nombre_seccion, c.id
        "));

        return view('pages.reportes.asistencia.asistenciaprofesor', compact('cursos'));

    }

    public function asistenciaprofesorcurso($seccionID, $profesorID)
    {

        DB::statement("SET lc_time_names = 'es_EC'");

        $meses = DB::select(DB::raw("
            SELECT DISTINCT MONTHNAME(ap.fecha) as mes 
            FROM asistencia_profesor ap
            ORDER  BY mes DESC 
        "));

        $anios = DB::select(DB::raw("
            SELECT DISTINCT Year(ap.fecha) as anios 
            FROM asistencia_profesor ap
            ORDER  BY anios DESC 
        "));

        $historialAsistenciaCurso = DB::select(DB::raw("
           SELECT ap.estado, MONTHNAME(ap.fecha) as mes, Year(ap.fecha) as anio, Day(ap.fecha) as dia, ap.fecha 
            FROM profesor p
            INNER JOIN seccion_curso sc on p.id = sc.id_profesor
            INNER JOIN curso c on sc.id_curso = c.id
            INNER JOIN asistencia_profesor ap on sc.id = ap.id_seccion_curso
            where p.id = $profesorID AND sc.id = $seccionID
            ORDER BY anio,mes DESC 
        "));


        return view('pages.reportes.asistencia.detalleasistenciaprofesor', compact('anios', 'meses', 'historialAsistenciaCurso'));

    }

}
