<?php

class Titulacion extends Conexion {

    public function Titulacion_por_ID($titulacionId) {
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "
                SELECT * FROM titulacion                                 
                WHERE titulaciondbk = ?
                ";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $titulacionId);
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }

    public function CalcularRecord($estudiante, $carrera) {
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "
                SELECT AVG(nfinal)AS record 
                FROM matricula,detalle
                WHERE 
                matriculadbk=matricula 
                AND estudiante=? 
                AND codcar=? 
                AND matricula.estado='ACTIVO'
                AND detalle.estado='ACTIVO'
                AND aprada = 'A'
                AND asignatura !=34
                ";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $estudiante);
        $sql->bindValue(2, $carrera);
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }

    public function CalcularCreditos($carrera, $periodo) {
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "
                SELECT sum(creditos) as creditos
                FROM mallacurricular
                WHERE carrera=? and paralelo='A' and periodo=?
                ";
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $carrera);
        $sql->bindValue(2, $periodo);
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }

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

    public function Consultar($fil) {
        $conectar = parent::conectar();
        parent::set_names();
        switch ($fil) {
            case "all":
                $sql = "SELECT titulaciondbk, CONCAT(papellido,' ',sapellido,' ',pnombre,' ',snombre)as estudiante,
                        carrera.descripcion as carrera,periodo.descrip as periodo,catalogo.descripcion as tipo,promedio                         
                        FROM titulacion 
                        INNER JOIN persona ON personadbk = estudiante
                        INNER JOIN carrera ON carreradbk = carrera
                        INNER JOIN periodo ON periodbk = periodo
                        INNER JOIN catalogo ON catalogodbk = titulacion.tipo
                        ORDER BY titulaciondbk";
                break;
            case "H":
                $sql = "";
                break;
            case "M":
                $sql = "";
                break;
            case "D":
                $sql = "";
                break;
        }
        $sql = $conectar->prepare($sql);
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }

    public function mdlActualizarTitulacionP($datos) {
        $conectar = parent::conectar();
        parent::set_names();
        if ($datos["titulaciondbk"] == "") {
            $sql = "INSERT INTO " . $datos["tabla"] . "   
                (estudiante,carrera,tipo,titulo,tribunal,
                oral,periodo,fecha_defensa,fecha_acta,acta,expediente,
                folio,record,creditos,promedio) 
                VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);
                ";
            $sql = $conectar->prepare($sql);
            $sql->bindValue(1, $datos["estudiante"]);
            $sql->bindValue(2, $datos["carrera"]);
            $sql->bindValue(3, $datos["tipo"]);
            $sql->bindValue(4, $datos["titulo"]);
            $sql->bindValue(5, $datos["tribunal"]);
            $sql->bindValue(6, $datos["oral"]);
            $sql->bindValue(7, $datos["periodo"]);
            $sql->bindValue(8, $datos["fecha_defensa"]);
            $sql->bindValue(9, $datos["fecha_acta"]);
            $sql->bindValue(10, $datos["acta"]);
            $sql->bindValue(11, $datos["expediente"]);
            $sql->bindValue(12, $datos["folio"]);
            $sql->bindValue(13, $datos["record"]);
            $sql->bindValue(14, $datos["creditos"]);
            $promedio = ($datos["tribunal"] + $datos["oral"]) / 2;
            $promedio = number_format($promedio, 2, ".", ",");
            $sql->bindValue(15, $promedio);

            $sql->execute();
        }
        return $resultado = $sql->fetchAll();
    }

    public function mdlActualizarTitulacionE($datos) {
        $conectar = parent::conectar();
        parent::set_names();
        if ($datos["titulaciondbk"] == "") {
            $sql = "INSERT INTO " . $datos["tabla"] . "   
                (estudiante,
                carrera,
                tipo,
                examen,
                oral,
                periodo,
                fecha_defensa,
                fecha_acta,
                acta,
                expediente,
                folio,
                record,
                creditos,
                promedio) 
                VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?);
                ";
            $sql = $conectar->prepare($sql);
            $sql->bindValue(1, $datos["estudiante"]);
            $sql->bindValue(2, $datos["carrera"]);
            $sql->bindValue(3, 6);
            $sql->bindValue(4, $datos["examen"]);
            $sql->bindValue(5, $datos["oral"]);
            $sql->bindValue(6, $datos["periodo"]);
            $sql->bindValue(7, $datos["fecha_defensa"]);
            $sql->bindValue(8, $datos["fecha_acta"]);
            $sql->bindValue(9, $datos["acta"]);
            $sql->bindValue(10, $datos["expediente"]);
            $sql->bindValue(11, $datos["folio"]);
            $sql->bindValue(12, $datos["record"]);
            $sql->bindValue(13, $datos["creditos"]);
            $promedio = ($datos["examen"] + $datos["oral"]) / 2;
            $promedio = number_format($promedio, 2, ".", ",");
            $sql->bindValue(14, $promedio);

            $sql->execute();
        }
        return $resultado = $sql->fetchAll();
    }
    public function MdlTitulacionPorEstudianteCarrera($carrera,$identificacion){          
        $conectar = parent::conectar();
        parent::set_names();
        $sql = "SELECT titulaciondbk,estudiante,carrera,titulacion.tipo as tipo,record,titulo,tribunal,oral,
                examen,promedio,periodo,acta,expediente,folio,fecha_defensa,fecha_acta,creditos 
                FROM titulacion,persona
                WHERE personadbk=? and carrera=?
                AND estudiante = personadbk ";            
        $sql = $conectar->prepare($sql);
        $sql->bindValue(1, $identificacion);
        $sql->bindValue(2, $carrera);
        $sql->execute();
        return $resultado = $sql->fetchAll();
    }
}

?>
