<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class Prova extends CI_Controller {

    function __construct() {
        parent::__construct();
        (isset($_SESSION['controle-aluno']) == TRUE) ? redirect('carreira') : '';
        $this->load->model('Cadastro_Model');
        $this->load->model('Matricula_Model');
        $this->load->model('Historico_Model');
        $this->load->model('Pagamento_Model');
        $this->load->model('Cursos_Model');
        $this->load->library('Criptografia');
        $this->load->database();
    }

    public function prova($id) {
        // SE O ALUNO ESTÁ LOGADO
        if (isset($_SESSION['aluno']) == TRUE) {
//            $id_aluno = $_SESSION['aluno']['id_aluno'];
             $aluno = $this->Matricula_Model->obtemCursoMatriculadoporIDhistorico($this->criptografia->decodifica($id));
             $id_aluno=$aluno[0]->id_aluno;  
             
             
             
            
            $aluno = $this->Cadastro_Model->getAlunoPorID($id_aluno);
            
           
            $cursos = $this->Matricula_Model->obtemCursoMatriculadoporHistorico_aluno($this->criptografia->decodifica($id),$id_aluno);
            
             
            foreach ($cursos as $value) {
                
            }

            $concluido = $value->concluido;
            $cliq = $value->num_cliques;
            if ($value->id_aluno == $id_aluno) { // VERIFICAR SE O ALUNO LOGADO É O MESMO DO HISTÓCIO NA URL
                // VERIFICAR SE OS DADOS DE CADASTROS ESTÃO COMPLETOS
                if(1<>1){
               // if (($aluno['endereco'] == "") || ($aluno['numero'] == "") || ($aluno['cep'] == "") || ($aluno['bairro'] == "") || ($aluno['cidade'] == "") || ($aluno['estado'] == "")) {

                    $prova_session = array('situacao' => true, 'prova' => $id);

                    $this->session->set_userdata("prova-confirma", $prova_session);

                    $this->session->set_flashdata('prova-erro', ' <div class="alert alert-warning alert-conf" role="alert"><i class="fa fa-exclamation-triangle"></i>  Você ainda precisa completar o seu cadastro. </div>');

                    redirect('confirmaendereco');
                } else {
                    // SE O ALUNO CONCLUIU O CURSO 
                    if ($concluido == 0) {
                        // SE O ALUNO ACESSOU O MATERIAL DE ESTUDO
                        if ($cliq == "Z") {
                            $this->session->set_flashdata('material-erro', ' <div class="alert alert-warning " role="alert"><i class="fa fa-exclamation-triangle"></i>  Você precisa acessar o material de estudo para realizar a sua prova. </div>');
                            redirect('acessar' . '/' . $id);
                        } else {
                            // SE PASSOU EM TODAS AS VERIFICAÇÕES
                            $id_curso = $value->id_curso;
                            $datas = $this->datas($this->criptografia->decodifica($id));
                            $alternativas = $this->Cursos_Model->getAlternativasPorCurso($id_curso);
                            $dados = array('descricao' => 'O aluno pode realizar a sua avaliação do seu curso no Amazônia Cursos','termos' => $this->Cadastro_Model->obtemTermo(), 'titulo' => 'Prova', 'erro_conf' => NULL, 'alternativa' => $alternativas, 'aluno' => $aluno, 'curso' => $cursos, 'datas' => $datas);
                            $this->load->view('prova', $dados);
                        }
                    } else {
                        redirect('cursosmatriculados');
                    }
                }
            } else {
                redirect('cursosmatriculados');
            }
        } else {
            redirect();
        }
    }

    public function prova_old($id) {
        // SE O ALUNO ESTÁ LOGADO
        if (isset($_SESSION['aluno']) == TRUE) {
            $id_aluno = $_SESSION['aluno']['id_aluno'];
            $aluno = $this->Cadastro_Model->getAlunoPorID($id_aluno);
            $cursos = $this->Matricula_Model->obtemCursoMatriculadoporHistorico($this->criptografia->decodifica($id));
            foreach ($cursos as $value) {
                
            }

            $concluido = $value->concluido;
            $cliq = $value->num_cliques;
            if ($value->id_aluno == $id_aluno) { // VERIFICAR SE O ALUNO LOGADO É O MESMO DO HISTÓCIO NA URL
                // VERIFICAR SE OS DADOS DE CADASTROS ESTÃO COMPLETOS
                if (($aluno['endereco'] == "") || ($aluno['numero'] == "") || ($aluno['cep'] == "") || ($aluno['bairro'] == "") || ($aluno['cidade'] == "") || ($aluno['estado'] == "")) {

                    $this->session->set_flashdata('prova-erro', ' <div class="alert alert-warning alert-conf" role="alert"><i class="fa fa-exclamation-triangle"></i>  Você ainda precisa completar o seu cadastro. </div>');

                    redirect('confirmaendereco');
                } else {
                    // SE O ALUNO CONCLUIU O CURSO 
                    if ($concluido == 0) {
                        // SE O ALUNO ACESSOU O MATERIAL DE ESTUDO
                        if ($cliq == 0) {
                            $this->session->set_flashdata('material-erro', ' <div class="alert alert-warning " role="alert"><i class="fa fa-exclamation-triangle"></i>  Você precisa acessar o material de estudo para realizar a sua prova. </div>');
                            redirect('acessar' . '/' . $id);
                        } else {
                            // SE PASSOU EM TODAS AS VERIFICAÇÕES
                            $id_curso = $value->id_curso;
                            $datas = $this->datas($this->criptografia->decodifica($id));
                            $alternativas = $this->Cursos_Model->getAlternativasPorCurso($id_curso);
                            $dados = array('termos' => $this->Cadastro_Model->obtemTermo(), 'titulo' => 'Prova', 'erro_conf' => NULL, 'alternativa' => $alternativas, 'aluno' => $aluno, 'curso' => $cursos, 'datas' => $datas);
                            $this->load->view('prova', $dados);
                        }
                    } else {
                        redirect('cursosmatriculados');
                    }
                }
            } else {
                redirect('cursosmatriculados');
            }
        } else {
            redirect();
        }
    }

    public function resultado() {

        if (isset($_SESSION['aluno']) == TRUE) {

            $id = $_SESSION['dados']['id_curso'];

             $aluno = $this->Matricula_Model->obtemCursoMatriculadoporIDhistorico($this->criptografia->decodifica($id));
             $id_aluno=$aluno[0]->id_aluno;
             
            $aluno = $this->Cadastro_Model->getAlunoPorID($id_aluno);
            $cursos = $this->Matricula_Model->obtemCursoMatriculadoporHistorico_aluno($this->criptografia->decodifica($id),$id_aluno);
            foreach ($cursos as $value) {
                
            }
            $id_curso = $value->id_curso;
            $datas = $this->datas($this->criptografia->decodifica($id));
            $alternativas = $this->Cursos_Model->getAlternativasPorCurso($id_curso);
            $dados = array('descricao' => '','cpf' => $this->validacpf(), 'controle' => $this, 'termos' => $this->Cadastro_Model->obtemTermo(), 'titulo' => 'Resultado da Prova', 'erro_conf' => NULL, 'aluno' => $aluno, 'curso' => $cursos, 'datas' => $datas, 'alternativa' => $alternativas);

            $this->load->view('resultadoprova', $dados);
        }
    }

    public function validacpf() {

        $alunonverificado = $this->Cadastro_Model->getalunonverificado();

        if ($alunonverificado != NULL) {
            return false;
        } else {
            return true;
        }
    }

    public function resultadoprova() {

        $id = $this->input->post('id');
        
        $aluno = $this->Matricula_Model->obtemCursoMatriculadoporIDhistorico($this->criptografia->decodifica($id));
        $id_aluno=$aluno[0]->id_aluno;

        $cursos = $this->Matricula_Model->obtemCursoMatriculadoporHistorico_aluno($this->criptografia->decodifica($id),$id_aluno);
        foreach ($cursos as $value) {
            
        }
        $id_curso = $value->id_curso;
        $id_historico = $value->id_historico;
        $alternativas = $this->Cursos_Model->getAlternativasPorCurso($id_curso);
        $i = 1;
        $item = 0;
        $qtdAlternativas = count($alternativas);

        $resposta = '{';

        while ($questao = array_shift($alternativas)) {

            $this->form_validation->set_rules('qst' . $i, 'Qst' . $i, 'trim|required', array('required' => 'Você precisa escolher a alternativa'));
            if ($this->form_validation->run() == FALSE) {
                $form = validation_errors();
            }
            if ($this->input->post('qst' . $i) == $questao->verdadeiro) {
                $item = $item + 1;
            }
            $resposta .= '\"' . $i . '\":{\"id_questao\":' . $questao->id_alternativa . ',\"resposta\":\"' . $this->input->post('qst' . $i) . '\"}, ';
            $i++;
        }
        $resposta_gabarito = substr($resposta, 0, -2);
        $data = ['id_historico' => $id_historico, 'id_tipo_prova' => 1, 'conteudo' => $resposta_gabarito];
        $this->Historico_Model->gabarito($data);
        $fracao = ($item * 100) / $qtdAlternativas;
        $nota = round($fracao, 2);
        $dados = array('id_curso' => $id, 'nota' => $nota);
        $this->session->set_userdata("dados", $dados);

        $this->Historico_Model->atualizahistoricoprova_aluno($id_historico, $nota,$id_aluno);

        redirect('resultado');
    }

    // FUNÇÃO QUE RETORNA AS DATAS DO PERÍODO DE AVALIAÇÃO
    public function datas($id) {

        $cursos = $this->Matricula_Model->obtemCursoMatriculadoporHistorico($id);
        foreach ($cursos as $value) {
            
        }
        $id_historico = $value->id_historico;
        $data_validade_matricula = date('d/m/Y', strtotime($value->primeiro_dia . ' + 90 days'));
        $ch = ceil($value->carga_horaria / 8);

        $acres = '+ ' . $ch . ' days';
        $datafutura = date('d/m/Y', strtotime($value->primeiro_dia . $acres));
        $data = explode("/", $datafutura);
        $ano = $data[2];
        $mes = $data[1];
        $dia = $data[0];
        $d_garan = $ano . "-" . $mes . "-" . $dia;
        $dados = array('data_validade_matricula' => $data_validade_matricula, 'data_fatura' => $datafutura, 'id_garan' => $d_garan);
        return $dados;
    }

}
