<?php

class Detalle extends Conexion {

    public function Eliminar_por_ID($detalleId) {
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "
                DELETE FROM detalle WHERE detalledbk = ?
                ";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $detalleId);
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }

    public function Consultar($fil, $m) {
        $conectar = parent::conectar();
        parent::set_names();
        switch ($fil) {
            case "all":
                $sql = "";
                break;
            case "dt":
                $sql = "SELECT detalledbk,asignatura,asignatura.descripcion as desasig,paralelo,
                        case tipo when 1 then 'NORMAL' when 2 then 'HOMOLOGADO' when 3 then 'SUFICIENCIA' end as tipo
                        FROM detalle
                        INNER JOIN asignatura ON asignaturadbk = asignatura
                        WHERE detalle.estado = 'ACTIVO'
                        AND matricula = ?                        
                    ";
                break;

            case "M":
                $sql = "";
                break;
            case "D":
                $sql = "";
                break;
        }
        $sql = $conectar->prepare($sql);
        if ($fil == "dt") {
            $sql->bindValue(1, $m);
        }
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }

    public function ConsultarAsignatura($m) {
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "SELECT * FROM matricula where matriculadbk = ?";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $m);
        $sql->execute();
        $resultado = $sql->fetchAll();
        foreach ($resultado as $row) {
            $estudiante = $row["estudiante"];
            $carrera = $row["codcar"];
            $periodo = $row["periodo"];
            $itinerario = $row["itinerario"];
        }
        $sql = "SELECT nivel,descripcion,asignatura
                FROM mallacurricular 
                INNER JOIN asignatura ON asignaturadbk = asignatura
                WHERE carrera = ?
                AND periodo = ?
                AND itinerario = ?
                AND asignatura NOT IN
                (SELECT asignatura 
                FROM matricula
                INNER JOIN detalle ON matriculadbk = matricula
                WHERE codcar = ?
                AND estudiante = ?
                AND nfinal >= 7)";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $carrera);
        $sql->bindValue(2, $periodo);
        $sql->bindValue(3, $itinerario);
        $sql->bindValue(4, $carrera);
        $sql->bindValue(5, $estudiante);
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }

    public function Calificar($periodo, $carrera, $asignatura) {
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "SELECT detalledbk,CONCAT(papellido,' ',sapellido,' ',pnombre,' ',snombre)as estudiante,
                n11,n12,n13,n14,nfinal,detalle.tipo as tipo
                FROM detalle 
                INNER JOIN matricula ON matriculadbk = matricula 
                INNER JOIN persona ON personadbk = estudiante 
                WHERE codcar = ?
                AND periodo = ?
                AND asignatura = ?
                AND detalle.estado = 'ACTIVO'
                AND matricula.estado = 'ACTIVO'";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $carrera);
        $sql->bindValue(2, $periodo);
        $sql->bindValue(3, $asignatura);
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }
    
    public function CalificarD($mallacurriculardbk) {
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "SELECT * FROM mallacurricular WHERE mallacurriculardbk=?";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $mallacurriculardbk);
        $sql->execute();
        $resultado = $sql->fetchAll();
        foreach($resultado as $row){
            $carrera = $row["carrera"];
            $asignatura = $row["asignatura"];
            $periodo = $row["periodo"];
        }        
        $sql = "SELECT detalledbk,CONCAT(papellido,' ',sapellido,' ',pnombre,' ',snombre)as estudiante,
                n11,n12,n13,n14,nfinal,detalle.tipo as tipo
                FROM detalle 
                INNER JOIN matricula ON matriculadbk = matricula 
                INNER JOIN persona ON personadbk = estudiante 
                WHERE codcar = ".$carrera."
                AND periodo = ".$periodo."
                AND asignatura = ".$asignatura."
                AND detalle.estado = 'ACTIVO'
                AND matricula.estado = 'ACTIVO'
                AND detalle.tipo = 1";
        $sql = $conectar->prepare($sql);
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }    

    public function CalificarEstudiante($carrera, $estudiante) {
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "SELECT detalledbk,CONCAT(papellido,' ',sapellido,' ',pnombre,' ',snombre)as estudiante,
                n11,n12,n13,n14,nfinal,periodo.descrip as periodo, asignatura.descripcion as asignatura, detalle.tipo as tipo  
                FROM detalle 
                INNER JOIN matricula ON matriculadbk = matricula 
                INNER JOIN asignatura ON asignaturadbk = asignatura
                INNER JOIN persona ON personadbk = estudiante 
                INNER JOIN periodo ON periodbk = periodo
                WHERE codcar = ?                
                AND estudiante = ?
                AND detalle.estado = 'ACTIVO'
                AND matricula.estado = 'ACTIVO'
                ORDER BY periodo,detalledbk";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $carrera);
        $sql->bindValue(2, $estudiante);
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }

    public function mdlGuardarDetalle($datos) {
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "INSERT INTO " . $datos["tabla"] . "  
                (matricula,estado,asignatura,tipo,paralelo)
                VALUES (?,?,?,?,?);
                ";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $datos["matricula"]);
        $sql->bindValue(2, "ACTIVO");
        $sql->bindValue(3, $datos["asignatura"]);
        $sql->bindValue(4, $datos["tipo"]);
        $sql->bindValue(5, "A");
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }

    public function mdlActualizarDetalle($datos) {
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "UPDATE " . $datos["tabla"] . "  SET tipo = ? WHERE detalledbk = ?";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $datos["tipo"]);
        $sql->bindValue(2, $datos["detalledbk"]);
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }

    public function mdlGuardarDetalleAutomatico($datos) {
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "SELECT asignatura FROM mallacurricular                 
                WHERE carrera = ?
                AND periodo = ?
                AND nivel = ?
                AND estado = 'ACTIVO'";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $datos['codcar']);
        $sql->bindValue(2, $datos['periodbk']);
        $sql->bindValue(3, $datos['nivel']);
        $sql->execute();
        $resultado = $sql->fetchAll();
        foreach ($resultado as $ros) {
            $sql = "INSERT INTO detalle  
                (matricula,estado,asignatura,aprada,tipo,paralelo)
                VALUES (?,?,?,?,?,?);
                ";
            $sql = $conectar->prepare($sql);
            $sql->bindValue(1, $datos["matricula"]);
            $sql->bindValue(2, "ACTIVO");
            $sql->bindValue(3, $ros["asignatura"]);
            $sql->bindValue(4, "NO");
            $sql->bindValue(5, 1);
            $sql->bindValue(6, "A");
            $sql->execute();
        }
        return $resultado = $sql->fetchAll();
    }

    public function Detalle_por_ID($detalleId) {
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "
                SELECT * FROM detalle                                 
                WHERE detalledbk = ?
                ";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $detalleId);
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }

    public function Detalle_por_Matricula($matriculaId) {
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "
                SELECT * FROM detalle
                INNER JOIN asignatura on asignaturadbk = asignatura
                WHERE matricula = ?
                AND detalle.estado = 'ACTIVO'
                ";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $matriculaId);
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }
    
    public function mdlCalificarDetalle($datos) {
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "UPDATE " . $datos["tabla"] . "  SET n11 = ?,n12 = ?, n13 = ?, n14 = ?, nfinal = ? WHERE detalledbk = ?";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $datos["n11"]);
        $sql->bindValue(2, $datos["n12"]);
        $sql->bindValue(3, $datos["n13"]);
        $sql->bindValue(4, $datos["n14"]);
        $sql->bindValue(5, $datos["nfinal"]);
        $sql->bindValue(6, $datos["detalledbk"]);
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }
    public function GraficoResumenRecordAcademico() {
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "SELECT codcar,MAX(periodo)as periodo FROM matricula 
                WHERE estudiante = ?
                AND estado = 'ACTIVO'
               ";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $_SESSION["personadbk"]);
        $sql->execute();
        $resultado = $sql->fetchAll();
        foreach($resultado as $row){
            $carrera = $row["codcar"];
        }
        $sql = "SELECT nfinal, asignatura.descripcion as asignatura from detalle
                INNER JOIN asignatura ON asignaturadbk = asignatura
                INNER JOIN matricula ON matriculadbk = matricula
                WHERE matricula.estado = 'ACTIVO'
                AND detalle.estado = 'ACTIVO'
                AND estudiante = ?
                AND nfinal >8
                AND codcar = ?  
                ORDER BY  nfinal DESC
                LIMIT 0,5
               ";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $_SESSION["personadbk"]);
        $sql->bindValue(2, $carrera);
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }
}

?>
