<?php
if (!defined('BASEPATH'))    exit('No direct script access allowed');

class Curso extends CI_Controller {

	private $carrinho;

	private $carrinhoComum;

    public function __construct() {
        parent::__construct();

        if (!$this->seguranca_model->valida_login_aluno()) {
            $this->session->sess_destroy();
            redirect('home#login');
        }

        if ($this->session->userdata("termo_pendente")) {
            redirect("site/termo_novo#termo");
        }

        $this->load->model("cursos_model", "cm");
        $this->load->model("usuarios_model", "um");
        $this->load->model("termos_model", "tem");
        $this->load->model('certificado_model','certfm');
        $this->load->model('historico_model','hm');
        $this->load->library('cart');
		require_once APPPATH . 'libraries/CarrinhoDeComprasComum.php';
		$this->carrinhoComum = new CarrinhoDeComprasComum();

		require_once APPPATH . 'libraries/CarrinhoDeCompras.php';
		$this->carrinho = new CarrinhoDeCompras();

        //Instancia a classe fpdf
        $params = array('orientation' => 'L', 'unit' => 'mm', 'size' => 'A4');
        require_once(APPPATH.'libraries/fpdf/Fpdf.php');
        $this->fpdf = new FPDF($params);

        if ($this->carrinhoComum->total_items() > 1) {
            $this->session->set_flashdata('alerta-carrinho', 'Você possui ' . $this->carrinhoComum->total_items() . ' itens no seu carrinho. <a href="' . base_url('finalizarPedido') . '"><b>Clique aqui</b></a> para efetuar o pagamento!');
        } else if ($this->carrinhoComum->total_items() == 1) {
            $this->session->set_flashdata('alerta-carrinho', 'Você possui 1 item no seu carrinho. <a href="' . base_url('finalizarPedido') . '"><b>Clique aqui</b></a> para efetuar o pagamento!');
		}

		if ($this->carrinho->total_items() > 1) {
			$this->session->set_flashdata('alerta-carrinho-em-grupo', 'Você possui ' . $this->carrinho->total_items() . ' itens no seu carrinho do grupo. <a href="' . base_url('finalizarPedidoMatriculasEmGrupo') . '"><b>Clique aqui</b></a> para efetuar o pagamento!');
		} else if ($this->carrinho->total_items() == 1) {
			$this->session->set_flashdata('alerta-carrinho-em-grupo', 'Você possui 1 item no seu carrinho do grupo. <a href="' . base_url('finalizarPedidoMatriculasEmGrupo') . '"><b>Clique aqui</b></a> para efetuar o pagamento!');
		}

//		$numeroDeItensNoCarrinho = $carrinho->total_items();
//		$conteudoDoCarrinho = $carrinho->contents();
//		$numeroDeItensNecessariosParaODesconto = 5;
//		$percentagemDeDesconto = .30;
//		$numeroDeItensQueFaltamParaGanharODesconto = $numeroDeItensNecessariosParaODesconto - $numeroDeItensNoCarrinho;
//
//		$mensagem = '';
//		if ($numeroDeItensNoCarrinho < 2)
//		{
//			$mensagem = 'Na compra de ' . $numeroDeItensNecessariosParaODesconto . ' ou mais cursos você ganha um super desconto na sua fatura. Aproveite esta oportunidade';
//		}
//		else
//		{
//			if ($numeroDeItensQueFaltamParaGanharODesconto > 0)
//			{
//				$mensagem = 'Você está mais perto de ganhar um super desconto na sua fatura. Adicione mais ' . $numeroDeItensQueFaltamParaGanharODesconto . ' curso(s) no seu carrinho';
//			}
//			else
//			{
//				$mensagem = 'Parabéns! Você ganhou um desconto de ' . (100 * $percentagemDeDesconto) . '% na sua fatura. Aproveite!';
//			}
//		}
    }



    public function transfere_curso()
    {
       
        
        $id_fic_codificado = $this->input->post("ifo", true);
        $email_origem = decodifica($this->input->post("email_origem", true));
        $id_fic = decodifica($id_fic_codificado);
        
        
        $id_historico_codificado = $this->input->post("ia", true);
        $id_historico = decodifica($id_historico_codificado);

        $email = $this->input->post("email", true);

        $id_fic_destino = $this->cm->get_id_fic_email($email);
        $id_destino = $id_fic_destino[0]['id_fic'];
        $is_historico = $this->cm->check_historico($id_historico, $id_fic);
        
        $al2=$this->db->query("SELECT *  FROM `aluno` WHERE `email` = '".$email."'" )->result();
        if(count($al2)==0){
            echo '<script>  alert("O emai informado não possui cadastro no site! Solicite que seja realizado primeiramente o cadastro do email no site, depois realize a transferência do curso.");  window.location.href = "https://www.imazoncursos.com.br/cursos_matriculados";</script>';
        
            exit();
        }
        
      if( !empty($id_fic) && !empty($id_historico) && !empty($email)  && !empty($id_fic_destino)){
        
        $is_update_historico = $this->cm->troca_historico($id_historico, $id_destino,$email_origem);
                    $is_log = $this->cm->add_log_transferencia_historico($id_historico, $id_fic, $id_destino);
      }
                    redirect('cursos_matriculados');
                    
                    exit();
        
        if( !empty($id_fic) && !empty($id_historico) && !empty($email) )
        {
            

            if (!empty( $id_fic_destino[0]['id_fic']) && ($id_fic!=$id_fic_destino[0]['id_fic']) )
            {
                

                
                if($is_historico)
                {
                    
                    if($is_update_historico && $is_log)
                    {
                        echo json_encode(["status"=>1, "msg"=>'Historico Transferico com Sucesso!']);
                    }
                    else
                    {
                        echo json_encode(["status"=>2, "msg"=>'Problema na Transferencia Historico']);
                    }
                }
            }
            else
            {
                echo json_encode(["status"=>3, "msg"=>'Não é possivel realizar a transferencia para si mesmo ou quando o aluno não existe.']);
            }
        }
        else
        {
            echo json_encode(["status"=>0, "msg"=>'Dados insuficientes para a Transferencia']);
        }
    }

    public function update_situacao_cadastro()
    {
        $id_fic_codificado = $this->input->post("id", TRUE);
        $id_fic = decodifica($id_fic_codificado);

        $this->load->model("Cursos_model", "cm");
        $email = $this->cm->get_dados_aluno($id_fic);
        $email_md5 = md5($email[0]['email']);

        $cpf = $this->input->post("inputCPF", TRUE);

        $this->load->library('Cpf');

        $cpf_obj = new Cpf($cpf);

        $is_cpf = $cpf_obj->valida_cpf();

        if( $is_cpf )
        {
            $post = [
                     'token'=>IMAZON_TOKEN,
                     'chave'=>IMAZON_CHAVE,
                     'instituicao'=>IMAZON_INSTITUICAO,
                     'cpf'=>$cpf,
//                    'forcar_consulta'=>'1',
                     'identificador'=>$email_md5
                    ];

            $ch = curl_init();

            curl_setopt($ch, CURLOPT_URL, CPF_URL);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

            $requisicao = curl_exec($ch);

            $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
            curl_close($ch);
            if($httpcode == 200)
            {
                //echo $requisicao;die;
                $dados = json_decode($requisicao);
                $dados = (array)$dados;
                
                
                 $nomebanco=$email[0]['nome'];
                 
                 
                 
                if ($dados['status'] == 108 && $nomebanco<>'' ){
                  $is_update = $this->cm->update_situacao_cadastro($id_fic, $cpf, $nomebanco);

			if (!$is_update) {
				echo json_encode(['status' => 2, 'mensagem' => 'Problema na Atualização.']);
				return;
			}

			echo json_encode(['status' => 1, 'mensagem' => 'Sucesso na Atualização da situação do Cadastro.']);
			$this->session->set_userdata("imazon_nome", $nomebanco);
			$this->session->set_userdata("imazon_verificado", 1);
                }
                

                if( $dados['status']==1 && !empty($dados['nome']) )
                {
                    //$id_requisicao = $dados['id_requisicao'];
                    //$this->api_confirmacao_entrega($id_requisicao);

                    $nome_atual = $dados['nome'];

                    if( !empty($nome_atual) )
                    {
                        $aluno = $this->cm->get_aluno($id_fic);

                        if( $aluno[0]['situacao_cadastro']=='0')
                        {
                            $is_update = $this->cm->update_situacao_cadastro($id_fic, $cpf, $nome_atual);

                            if($is_update)
                            {
                                echo json_encode( ['status'=>1, 'mensagem'=>'Sucesso na Atualização da situação do Cadastro.'] );
                                $this->session->set_userdata("imazon_nome", $dados['nome']);
                                $this->session->set_userdata("imazon_verificado", 1);
                            }
                            else
                            {
                                echo json_encode( ['status'=>2, 'mensagem'=>'Problema na Atualização.'] );
                            }
                        }
                        else
                        {
                            echo json_encode( ['status'=>3, 'mensagem'=>'Não é possível atualizar, aluno já verificado.'] );
                        }
                    }
                }
                else if($dados['status']===0)
                {
                    //$mensagem_retorno = substr($dados['mensagem'], 10 );

                    echo json_encode( [ 'status'=>4, 'mensagem'=>'O CPF informado não existe, informe o CPF de uma pessoa.' ] );
                }
            }
            else
            {
                echo json_encode( ['status'=>0, 'mensagem'=>'Falha na comunicação.'] );
            }

        }
        else
        {
            echo json_encode( ['status'=>5, 'mensagem'=>'Digite um CPF Invalido'] );
        }
    }

    private function template_presente($nome, $nome_curso)
    {

        return '<html>
                <head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                <title>IMAZON Cursos</title>
                </head>
        <body>
        <table cellpadding="0" cellspacing="0" border="0" width="100%" style="width:100%">
                <tr>
                        <td style="background-image: linear-gradient(to bottom, #74C302, #74C302 130%); box-shadow: inset 0 2px 3px 0 rgba(255,255,255,.3), inset 0 -3px 6px 0 rgba(0,0,0,.2), 0 3px 2px 0 rgba(0,0,0,.2);" bgcolor="#74C302" >
                                <table cellpadding="10" cellspacing="0" border="0" width="650px" align="center" style="width:650px;font-family:Verdana, Helvetica, sans-serif;color:#FFFFFF;font-size:13px;line-height:180%" >
                                        <tr>
                                                <td align="center">
                                                        <div style="font-size:40px;font-weight:bold;text-shadow: 0.1em 0.1em #333;">IMAZON CURSOS</div>
                                                        <div style="padding: 20px 1px 1px 1px;">WWW.IMAZONCURSOS.COM.BR</div>
                                                </td>
                                                <td align="right">
                                                </td>

                                        </tr>
                                </table>
                        </td>
                </tr>

                <tr>
                        <!--<td height="20px" style="background:#cf2b4f; border-bottom: #000 2px solid;box-shadow: 5px 5px 20px #000000;-webkit-box-shadow: 5px 5px 20px #00000;
        -moz-box-shadow: 5px 5px 20px #00000;height:5px" bgcolor="#5F872F" align="center"></td>-->

                </tr>
                <tr>
                        <td style="background-color:#EBEDE2;" bgcolor="#EBEDE2">
                                <table cellpadding="10" cellspacing="0" border="0" width="650px" style="width:650px;font-family:Verdana, Helvetica, sans-serif;color:#000000;font-size:13px;line-height:180%" align="center">
                                        <tr>

                                                <td style="border-bottom:1px #FFFFFF solid" align="left">

                                                <div style="font-weight:bold;text-align:center;font-weight:bold;text-align:center;">Você foi Presentado</div></div>

                                                <div style="background:; border-bottom: #000 2px solid;box-shadow: 5px 5px 20px #000000;-webkit-box-shadow: 5px 5px 20px #00000;
        -moz-box-shadow: 5px 5px 20px #00000;" bgcolor="#5F872F"><p>Olá,  informamos que você foi presenteado com o curso '.$nome_curso.' por '.$nome.' no Imazon Cursos, realize o login desbloquei o curso que você ganhou e inicie o quanto antes seus estudos.<p>

                                                <p>O Imazon Cursos disponibiliza inúmeros cursos, encontre outros cursos de seu interesse.</p>

                                                <b>Presenteie também novos alunos no Imazon Cursos, saiba mais em:</b><br />
                                                <a href="'.base_url().'" target="_blank">www.imazoncursos.com.br</a><br /><br /></div>

                                                <div style="background:; border-bottom: #000 2px solid;box-shadow: 5px 5px 20px #000000;-webkit-box-shadow: 5px 5px 20px #00000;
        -moz-box-shadow: 5px 5px 20px #00000;" bgcolor="#5F872F"><p>Horario de Atendimento de Segunda e Sexta de 09:00 as 17:00 horas</p>

                                                Cordialmente,<br />
                                                <b>Equipe Imazon</b><br />
                                                <a href="mailto:atendimento@imazon.com.br">atendimento@imazon.com.br</a>
                                                <br />
                                                <br /></div>
                                                </td>
                                        </tr>

                                </table>
                        </td>
                </tr>
                <tr>
                        <td style="background-color:#1F2327;border-bottom:2px #FFFFFF solid" bgcolor="#1F2327">
                                <table cellpadding="10" cellspacing="0" border="0" width="650px" style="width:650px;color:#9D9A93;font-family:Verdana, Helvetica, sans-serif;font-size:11px" align="center">
                                        <tr>
                                                <td align="left">
                                                        Para retirar seu e-mail da lista clique <a href="https://docs.google.com/spreadsheet/viewform?formkey=dDRuU2ZLV0gzSnJOc1Y5LUg4QzN4ZWc6MQ#gid=0" style="color: #FFFFFF">aqui</a>
                                                </td>
                                                <td align="right">
                                                </td>
                                        </tr>
                                </table>
                        </td>
                </tr>
        </table>
        </body>
        </html>';
    }

    private  function limitarTexto($texto, $limite)
    {
       $contador = strlen($texto);

       if ($contador >= $limite)
       {
           $texto = substr($texto, 0, strrpos(substr($texto, 0, $limite), ' '));
           return $texto;
       }
       else
       {
           return $texto;
       }
   }

    private function send_email($email, $nome, $nome_curso)
    {
        $this->load->helper("emailphpmailer");

        $msg = $this->template_presente($nome, $nome_curso);
        $assunto = 'Imazon Cursos';
        $email = 'luiz-odl@hotmail.com';
        //envia_email($email, $assunto, $msg);
        notificacao_cadastro_email($email, $assunto, $msg);
    }

    private function send_sms($dados_aluno, $nome_curso)
    {
        $phone = '';

        if( strlen( trim($dados_aluno[0]['ddd_telefone']) )==2  && substr( $dados_aluno[0]['telefone'], 0, 1)==9 && strlen( trim($dados_aluno[0]['telefone']) )==9)
        {
            $phone = $dados_aluno[0]['ddd_telefone'].$dados_aluno[0]['telefone'];
        }
        else if( strlen( trim($dados_aluno[0]['ddd_celular']) )==2  && substr( $dados_aluno[0]['celular'], 0, 1)==9 && strlen( trim($dados_aluno[0]['celular']))==9 )
        {
            $phone = $dados_aluno[0]['ddd_celular'].$dados_aluno[0]['celular'];
        }

        if( !empty( trim($phone) ) )
        {
            $curso = $this->limitarTexto($nome_curso, 28);
            $msg = 'https://www.imazoncursos.com.br informa: Voce foi presentado com o curso '.$curso.'.., faça login e desbloqueie seu curso';

            $post = array(
                'token' => IMAZON_TOKEN,
                'chave' => IMAZON_CHAVE,
                'instituicao' =>IMAZON_INSTITUICAO,
                'celular' => $phone,
                'mensagem' => $msg,
                'identificador'=> md5($dados_aluno[0]['email'] ),
                'market' => '',
                'email' => $dados_aluno[0]['email']
            );

            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, SMS_URL);
            curl_setopt($ch, CURLOPT_POST, 1);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
            curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

            $requisicao = curl_exec($ch);
            curl_close ($ch);
            return json_decode($requisicao);
        }
    }


    public function presentear()
    {

        if($this->session->userdata('imazon_logado'))
        {

            $email = $this->input->post("inputEmail", true);
            $email = filter_var($email, FILTER_VALIDATE_EMAIL);

            $cpf = $this->input->post("inputCPF",true);
            $this->load->library('Cpf');
            $cpf_obj = new Cpf($cpf);

            $is_cpf = $cpf_obj->valida_cpf();

            $id_historico = decodifica( $this->input->post("inputPresente",TRUE) );

            if( ($email==FALSE) || ($is_cpf==FALSE) )
            {
                echo json_encode(['status'=>0, 'mensagem'=>'Digite um CPF e Email válido']);
            }
            else
            {
                $aluno_vericado = $this->cm->get_aluno_vericado( $this->session->userdata("imazon_id_fic") );

                if( count($aluno_vericado)>0 )
                {
                    $dados_aluno = $this->cm->get_id_fic($email);

                    if( count($dados_aluno)>0)
                    {

                        $dados_historico = $this->cm->get_dados_historico($dados_aluno[0]['id_fic']);

                        if( count($dados_historico)==0 )
                        {

                                $email_md5 = md5($email);

                                $post = [
                                        'token'=>IMAZON_TOKEN,
                                        'chave'=>IMAZON_CHAVE,
                                        'instituicao'=>IMAZON_INSTITUICAO,
                                        'cpf'=>$cpf,
                                        'identificador'=>$email_md5
                                       ];

                               $ch = curl_init();

                               curl_setopt($ch, CURLOPT_URL, CPF_URL);
                               curl_setopt($ch, CURLOPT_POST, 1);
                               curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
                               curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
                               curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

                               $requisicao = curl_exec($ch);
                               $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
                               curl_close($ch);

                               if($httpcode==200)
                               {
                                    $requisicao= json_decode($requisicao,TRUE);

                                    if($requisicao['status']==1 && !empty($requisicao['nome']) )
                                    {

                                        $is_nome_aluno = $this->cm->is_nome_aluno($requisicao['nome']);

                                        if(!$is_nome_aluno)
                                        {
                                            $this->load->model("Historico_model", "hm");

                                            $hash = date('Y') . '-' . strtoupper(substr(md5($dados_aluno[0]['id_fic'] . ':' . microtime() . '-' . microtime()), 0, 4) . '-' . substr(md5($dados_aluno[0]['id_fic'] . ':' . microtime()), 0, 4));
                                            $hash2 = date('Y') . '-' . strtoupper(substr(md5($dados_aluno[0]['id_fic'] . ':' . microtime() . '-' . microtime()), 0, 4) . '-' . substr(md5($dados_aluno[0]['id_fic'] . ':' . $hash . microtime()), 0, 4));
                                            $dados_historico = $this->cm->get_historico($id_historico);
                                            $dados_curso = $this->cm->get_curso($dados_historico[0]['id_curso']);

                                            $id_base_lega = $this->cm->base_legal();
                                            $historico_presente = array('id' => 'NULL', 'id_historico' => $hash2, 'id_aluno' => $dados_aluno[0]['id_fic'], 'email' => $dados_aluno[0]['email'], 'data_aprovacao' => '0000-00-00', 'hora_aprovacao' => '00:00:00', 'nota' => '0', 'id_avaliacao' => '1', 'id_curso' => $dados_historico[0]['id_curso'], 'primeiro_dia' => date("Y-m-d"), 'primeira_hora' => date("H:i:s"), 'carga_horaria' => $dados_historico[0]['carga_horaria'], 'id_baselegal' => $id_base_lega, 'ip_aprovacao' => '', 'situacao' => '9', 'observacao' => 'Imazon Cursos - Presente', 'trabalho' => '', 'arquivo' => '', 'codigo_autenticacao' => $hash);

                                            $is_add = $this->hm->add($historico_presente);

                                            if($is_add)
                                            {
                                                $this->cm->update_nome($requisicao['nome'], $dados_aluno[0]['id_fic']);

                                                $log_curso_presente = ['id_aluno'=>$dados_aluno[0]['id_aluno'],
                                                                       'cpf'=>$cpf,
                                                                       'nome_antigo'=>$dados_aluno[0]['nome'],
                                                                       'nome_atual'=>$requisicao['nome'],
                                                                       'quem'=>'aluno-'.$aluno_vericado[0]['id_aluno'],
                                                                       'onde'=>'Brinde',
                                                                       'data_alteracao'=>date("Y-m-d H:i:s")];

                                                $this->cm->log_curso_presente($log_curso_presente);

                                                $this->send_sms($dados_aluno, $dados_curso[0]['nome']);

                                                $this->send_email($dados_aluno[0]['email'], $aluno_vericado[0]['nome'],  $dados_curso[0]['nome']);
                                                echo json_encode(['status'=>1, 'mensagem'=>'Curso Presente enviado com sucesso']);
                                            }
                                            else
                                            {
                                                echo json_encode(['status'=>2, 'mensagem'=>'Problemas ao presentear.']);
                                            }
                                        }
                                        else
                                        {
                                            echo json_encode(['status'=>3, 'mensagem'=>'Nome do aluno já está Cadastrado.']);
                                        }
                                    //
                                    }
                                    else if($requisicao['status']==0 || empty($requisicao['nome']))
                                    {
                                        echo json_encode(['status'=>8, 'mensagem'=>'O CPF informado não existe, informe o CPF de uma pessoa.']);
                                    }
                               }
                               else
                               {
                                   echo json_encode( ['status'=>4, 'mensagem'=>'Falha na comunicação, tente novamente.'] );
                               }

                        }
                        else
                        {
                            echo json_encode(['status'=>5, 'mensagem'=>'O aluno já está Matriculado.']);
                        }
                    }
                    else
                    {
                        echo json_encode(['status'=>6, 'mensagem'=>'É necessário que o e-mail esteja Cadastrado. Peça ao seu amigo que se cadastre em www.imazoncursos.com.br']);
                    }

                }
                else
                {
                    echo json_encode(['status'=>7, 'mensagem'=>'O aluno deve ter seu CPF verificado para presentear.']);
                }
            }
        }
        else
        {
            echo json_encode(['status'=>119, 'mensagem'=>'']);
        }
    }

    
    public function index_v2($inicio = null) {
         $usuario = $this->um->get_aluno()->result();
         $nome=$usuario [0]->nome;
         
         if($nome== ""){
             redirect("dados_cadastrais");
         }
        $this->load->library('pagination');
        $config['base_url'] = base_url() . 'cursos_matriculados';
        $config['total_rows'] = $this->cm->count_todos_cursos_aluno_home();
        $config['per_page'] = 15;
        $config['uri_segment'] = 2;
        $this->pagination->initialize($config);
        $res = $this->cm->todos_cursos_aluno_home(array('inicio' => $inicio, 'limite' => $config['per_page']));

       
        $area_curso = $this->cm->area_curso();

        $id_fic = $this->session->userdata("imazon_id_fic");
        $is_Facebook_Google = $this->cm->check_cadastro_aluno($id_fic);

        $id_aluno = $this->session->userdata('imazon_id_aluno');
        //print_r($id_aluno);
        $area_aluno = $this->cm->consulta_area_aluno($id_aluno);
        $count_area_aluno = count($area_aluno);

        $check_situacao_cadastro = $this->check_situacao_cadastro($id_fic);
        $check_aluno_vefiricado = $this->cm->check_aluno_vefiricado($id_fic);

        $count = count($res);
        $data = array('titulo' => 'Cursos Matriculados', 'palavra_chave' => 'Imazon Cursos', 'paginacao' => $this->pagination->create_links());
        ($count >= 1) ? $data['cursos'] = $res : $data['cursos'] = null;

        $data['check_aluno_vefiricado'] = $check_aluno_vefiricado;
        $data['situacao_cadastro'] = $check_situacao_cadastro;
        $data['area_curso'] = $area_curso;
        $data['count_area_aluno'] = $count_area_aluno;
        $data['origem_cadastro'] = $is_Facebook_Google;
        //var_dump( md5("luiz-odl@hotmail.com"));die;
        $this->parser->parse('aluno/include/head', $data);
        //$this->load->view('aluno/include/sidebar');

        $this->load->view('aluno/tela/cursos_v2');

        $this->load->view('aluno/include/foot');
    }
    
    public function index($inicio = null) {
         $usuario = $this->um->get_aluno()->result();
         $nome=$usuario [0]->nome;
         
         if($nome== ""){
             redirect("dados_cadastrais");
         }
        $this->load->library('pagination');
        $config['base_url'] = base_url() . 'cursos_matriculados';
        $config['total_rows'] = $this->cm->count_todos_cursos_aluno_home();
        $config['per_page'] = 15;
        $config['uri_segment'] = 2;
        $this->pagination->initialize($config);
        $res = $this->cm->todos_cursos_aluno_home(array('inicio' => $inicio, 'limite' => $config['per_page']));

       
        $area_curso = $this->cm->area_curso();

        $id_fic = $this->session->userdata("imazon_id_fic");
        $is_Facebook_Google = $this->cm->check_cadastro_aluno($id_fic);

        $id_aluno = $this->session->userdata('imazon_id_aluno');
        //print_r($id_aluno);
        $area_aluno = $this->cm->consulta_area_aluno($id_aluno);
        $count_area_aluno = count($area_aluno);

        $check_situacao_cadastro = $this->check_situacao_cadastro($id_fic);
        $check_aluno_vefiricado = $this->cm->check_aluno_vefiricado($id_fic);

        $count = count($res);
        $data = array('titulo' => 'Cursos Matriculados', 'palavra_chave' => 'Imazon Cursos', 'paginacao' => $this->pagination->create_links());
        ($count >= 1) ? $data['cursos'] = $res : $data['cursos'] = null;

        $data['check_aluno_vefiricado'] = $check_aluno_vefiricado;
        $data['situacao_cadastro'] = $check_situacao_cadastro;
        $data['area_curso'] = $area_curso;
        $data['count_area_aluno'] = $count_area_aluno;
        $data['origem_cadastro'] = $is_Facebook_Google;
        //var_dump( md5("luiz-odl@hotmail.com"));die;
        $this->parser->parse('aluno/include/head', $data);
        //$this->load->view('aluno/include/sidebar');

        $this->load->view('aluno/tela/cursos');

        $this->load->view('aluno/include/foot');
    }

    public function add_celula_aluno()
    {
        $celular_aluno = $this->input->post("celular_aluno", true);
        $id_fic = $this->session->userdata("imazon_id_fic");
				$email =  $this->session->userdata('imazon_email_aluno');
				$identificador = md5($email);

        $celular = str_replace([' ','(',')'], '', $celular_aluno);
				// $this->load->helper('file');
        // $debug1 = var_export($celular, true);
        // write_file(APPPATH.'/logs/logAreas.txt', "\n------------------------------------\n$debug1\n------------------------------------\n", 'a+');

        if( !empty($id_fic) && !empty($celular) && strlen($celular)==11 )
        {
            $array_celular = str_split($celular);
            $ddd = $array_celular[0].$array_celular[1];
            $celular = $array_celular[2].$array_celular[3].$array_celular[4].$array_celular[5].
                        $array_celular[6].$array_celular[7].$array_celular[8].$array_celular[9].$array_celular[10];
						$receberPublicidade = $this->input->post('receberMensagensPublicitarias');
						$market = $receberPublicidade === 'aceito' ? 1 : 0;

						$this->cadastrar_cpe($market, $email);

		        // write_file(APPPATH.'/logs/logAreas.txt', "\n------------------------------------\n$ddd - $celular - $market\n------------------------------------\n", 'a+');

						$this->enviar_senha_sms("Seja bem-vindo(a) ao Imazon Cursos! Compre um curso com CH superior a 100h e ganhe um curso bônus!", $ddd . $celular, $identificador, $market);

            $is_update = $this->cm->add_celula_aluno($id_fic, $ddd, $celular);

            if($is_update)
            {
                echo json_encode(['status'=>1,'mensagem'=>'Número atualizado com sucesso. Aguarde...']);
            }
            else
            {
                echo json_encode(['status'=>0,'mensagem'=>'Não foi possivel atualizar']);
            }
        }
        else
        {
            echo json_encode(['status'=>2,'mensagem'=>'Digite corretamente o número  para DDD de celular']);
        }

    }

		private function cadastrar_cpe($market, $email){
      $url_central_preferencia_notiticacoes = CENTRAL_PREFERENCIA_NOTIFICACOES_URL . 'cliente/atualizar_preferencias/';
      $intervalo = $market;
      $post_central_preferencia_notiticacoes = array(
          'token' => CENTRAL_PREFERENCIA_NOTIFICACOES_TOKEN,
          'chave' => CENTRAL_PREFERENCIA_NOTIFICACOES_CHAVE,
          'id_unico' => md5($email),
          'intervalo_sms' => $intervalo,
          'intervalo_email' => $intervalo,
          'intervalo_push' => $intervalo,
          'informativo' => $intervalo,
          'promocional' => $intervalo,
      );
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url_central_preferencia_notiticacoes);
      curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
      curl_setopt($ch, CURLOPT_POSTFIELDS, $post_central_preferencia_notiticacoes);
      curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
      $resultado = curl_exec($ch);
      // $this->load->helper('file');
      // $debug1 = var_export($resultado, true);
      // write_file(APPPATH.'/logs/logCPE.txt', "\n------------------------------------\n$email : $market\n$debug1\n------------------------------------\n", 'a+');
      curl_close($ch);
    }

		private function enviar_senha_sms($msg, $celular, $identificador, $market = '')
		{
				$post = array(
						'token' => IMAZON_TOKEN,
						'chave' =>  IMAZON_CHAVE,
						'instituicao' => IMAZON_INSTITUICAO,
						'celular' => $celular,
						'mensagem' => $msg,
						'identificador'=> md5($identificador),
						'market' => $market,
						'email'=>$identificador,
				);

				$ch = curl_init();
				curl_setopt($ch, CURLOPT_URL, SMS_URL);
				curl_setopt($ch, CURLOPT_POST, 1);
				curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
				curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
				curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

				$requisicao = curl_exec($ch);
				curl_close ($ch);
				return json_decode($requisicao);
		}

    public function area_aluno()
    {
        $areas_aluno = $this->input->post();

				if($this->input->post('celular_aluno') != null)
					$this->add_celula_aluno();

        $areas = $areas_aluno['areas'];

        if( count($areas)>0 )
        {
            $this->cm->add_aluno_area($areas);
            redirect("cursos");
        }


    }

    private function check_situacao_cadastro($id_fic)
    {
        if( !empty($id_fic) )
        {
            $id_aluno = $id_fic;
        }
        else
        {
            $id_aluno = '';
        }

        return $this->cm->check_situacao_cadastro($id_aluno);
    }

    public function trocar_curso()
	{

		if (!$this->uri->segment(2))
		{
			redirect("cursos_matriculados");
		}

		$this->load->model("historico_model", "hm");
        $id_historico = decodifica($this->uri->segment(2));
        $historico = $this->hm->get_historico_by_id_aluno_curso($id_historico)->result();

		if (count($historico) == 0)
		{
			redirect("cursos_matriculados");
		}

		if ((int) $historico[0]->id_curso !== 2861)
		{
			redirect("cursos_matriculados");
		}

		if ($this->input->post()) {
            $this->load->library("form_validation");
            $this->form_validation->set_rules("curso", "curso", "required|integer");
            $this->form_validation->set_rules("ht", "histórico", "required|integer");
            if ($this->form_validation->run()) {
                $cr = $this->input->post("curso");
                $hisr = $this->input->post("ht");
                $historico = $this->hm->trocacurso_historico($historico, $cr);
                $dt = array('historico' => $hisr, 'data' => date('Y-m-d H:i:s'));
                $st = $this->hm->inserelogtrocacurso($dt);
                redirect("estudar/" . codifica($id_historico));
            }
        }
        $ht = $historico[0]->id;
        $data = array(
            'id' => $ht,
            'titulo' => 'Usar o Bonus',
            'palavra_chave' => 'Imazon Cursos',
            'historico' => $ht);
        $this->parser->parse('site/include/head', $data);
        $this->load->view('aluno/tela/trocacurso');
        $this->load->view('aluno/include/foot');
    }

    public function desbloquear_curso(){
        if ($this->uri->segment(2) !== null) {
            $this->load->model("historico_model", "hm");
            $id_historico = decodifica($this->uri->segment(2));
            $historico = $this->hm->get_historico_by_id_aluno_curso($id_historico)->result();
                    
            $aluno = $this->cm->get_aluno($historico[0]->id_aluno);

            if(count($historico)==0) redirect("cursos_matriculados");

//            if($aluno[0]['situacao_cadastro']=='1' || $aluno[0]['situacao_cadastro']=='2')
            if (1==1)    
            {
                if($historico[0]->situacao!=9)redirect("cursos_matriculados");

                $historico_atualizado = array('situacao' => 1);

				/** @todo (Des)comentar essa linha?
				  $hoje = new \DateTime('now');
				  $data_matricula = new \DateTime($historico[0]->primeiro_dia . ' ' . $historico[0]->primeira_hora);
				  if ($data_matricula < $hoje)
				  {
				  if ($historico[0]->id_curso == 2861) //apenas para o curso "BONUS"?
				  {
				  $historico_atualizado['primeiro_dia'] = $hoje->format('Y-m-d');
				  $historico_atualizado['primeira_hora'] = $hoje->format('H:i:s');
				  }
				  }
				  // */

				$this->hm->atualiza_historico_by_id($historico[0]->id, $historico_atualizado);
            }

        }

        redirect("cursos_matriculados");
    }

    private function realizaFrequencia($historico, $nome_curso)
    {
        $aluno_acesso = $this->hm->aluno_acesso($historico[0]->id);
        $id_link = $aluno_acesso['link'] ?? '';

        $this->load->library('Frequencia');
        $frequencia = new Frequencia();

        if( count($aluno_acesso)>0 && !empty($id_link) )
        {
            //$frequencia->consulta_idLink($id_link);
            
           
            //$consulta_idLink = json_decode($consulta_idLink);
            //echo '<pre>';var_dump($consulta_idLink);die;
        }
        else
        {
            $nome = 'IMAZON-HISTORICO: '.$historico[0]->id;
            $descricao = 'IMAZON-CURSO: '.$nome_curso;
            //$click_unico = '0';//a cada clique
            $click_unico = '1';//apenas uma vez ao dia
            $tipo = '2';
            $respostaLink = $frequencia->adiciona($nome, $descricao, $click_unico, $tipo);
            $respostaLink = json_decode($respostaLink, TRUE);

            if( isset($respostaLink["status"]) && ($respostaLink["status"]==1) )
            {
                $aluno_acesso = [
                                    'link'=>$respostaLink['link']['id_link'],
                                    'id_historico'=>$historico[0]->id,
                                    'tipo'=>$click_unico
                                ];
                $this->hm->insert_aluno_acesso($aluno_acesso);
            }
        }
    }


    public function estudar() {

        //echo decodifica($this->uri->segment(2) );die;
        if ($this->uri->segment(2) !== null) {
            $this->load->model("historico_model", "hm");
            $id_historico = decodifica($this->uri->segment(2));
            $historico = $this->hm->get_historico_by_id_aluno_curso($id_historico)->result();
            //echo '<pre>';var_dump($historico);die;
            if (count($historico) > 0) {


                $curso = $this->cm->get_curso_by_id($historico[0]->id_curso);

                $link_curso = $this->cm->get_link_curso($historico[0]->id_curso);
                $questionario = $curso[0]->questionario;
                if( isset($link_curso[0]) )
                {
                    //$link_curso[0]->descricao;
                    $questionario = '<a target="_blank" href="'.$link_curso[0]->link.'" class="btn btn-link" role="button">Acessar o Material de Estudo</a>';
                }

                $data = array(
                    'id' => $curso[0]->id_curso,
                    'link'=> $link_curso,
                    'titulo' => 'Estudar',
                    'nome' => $curso[0]->nome,
                    'descricao' => $curso[0]->descricao,
                    'questionario' => $questionario,
                    'imagem' => $curso[0]->imagem,
                    'palavra_chave' => 'Imazon Cursos',
                    'historico' => $historico,
                    'declaracao' => null,
                    'prova_liberada' => null,
                    'certificado_impresso' => null,
                    'certificado_web' => null,
                    'nota' => null,
                    'tiposCertificado' => null,
                    'libera_compra_segunda_chamada' => null,
                    'primeirodia' => date('d/m/Y', strtotime($historico[0]->primeiro_dia)),
                    'liberacaoprova' => date('d/m/Y', strtotime($historico[0]->data_aprovacao)),
                    'ultimo_dia' => date('d/m/Y', strtotime($historico[0]->primeiro_dia . "+90 days"))
                
                    );

                $situacao_frequencia = ['1','2','3'];

                if( in_array($historico[0]->situacao, $situacao_frequencia) )
                {
                    $this->realizaFrequencia($historico, $curso[0]->nome);
                }
                //recebe status/situação do histórico atual do aluno
                switch ($historico[0]->situacao) {
                    case 0://inscrito
                        break;
                    case 1://matrículado
                        $data['declaracao'] = true; //permite ao aluno solicitar uma declaração de participação no curso
                        $prova_liberada = strtotime($historico[0]->primeiro_dia . "+" . round($historico[0]->carga_horaria / 8) . " days");
                        $prova_liberada = date('d-m-Y', $historico[0]->primeiro_dia);

                        $ultimo = strtotime($historico[0]->data_aprovacao);
                        $ultimo = date('d-m-Y', $ultimo);
                        $dtAtual = date('d-m-Y');

                        $pLiberada = new DateTime($historico[0]->primeiro_dia);
                        $ultimo = new DateTime($ultimo);
                        $atual = new DateTime($dtAtual);

						$hoje = new DateTime('today');
						$primeiroDia = new DateTime($historico[0]->primeiro_dia . ' 00:00:00');

						$ultimoDia = new DateTime($historico[0]->data_aprovacao . ' 00:00:00'); // 23:59:59
						$diferenca = $hoje->diff($ultimoDia);
						$diferenca2 = $primeiroDia->diff($hoje);
						$ch = round($historico[0]->carga_horaria / 8);
                                                
                                                $data['data_prova_liberada'] = strtotime($historico[0]->data_aprovacao);
                                                $agora = strtotime(date('Y-m-d'));
                                                
                                                
                                                
                                                

						if ($agora>=$data['data_prova_liberada'])
						{
                                                    $data['prova_liberada'] = true;
                                                } else {
                                                $data['prova_liberada'] = false;
                                                }
                        break;
                    case 2://aprovado

                        $this->load->model("produtos_model", "produtom");
                        $this->load->model('certificado_model', 'cem');
                        $data['certificado_impresso'] = $this->cem->get_certificados_by_historico($historico[0]->id)->result();

                        $data['certificado_web'] = true;
                        $data['nota'] = $historico[0]->nota;
                        $data['tiposCertificado'] = $this->produtom->get_all_tipo_certificado_ativo();
                        break;
                    case 3://reprovado
                        $data['certificado_participacao'] = true; //permite ao aluno solicitar uma declaração de participação no curso
                        $this->load->model("pedido_model", "pedm");
                        $data['libera_compra_segunda_chamada'] = $this->pedm->verifica_compra_segunda_chamada_historico($historico[0]->id_historico);
                        $data['nota'] = $historico[0]->nota;
                        break;
                    default:
                        break;
                }

                $data['situacao'] = $historico[0]->situacao; //situação do histórico

                $this->parser->parse('aluno/include/head', $data);
                $this->load->view('aluno/include/sidebar');
                $this->load->view('aluno/tela/estudar');
                $this->load->view('aluno/include/foot');
            } else {
                redirect('cursos_matriculados');
            }
        } else {
            redirect('cursos_matriculados');
        }
	}

	public function estudar_grupo() {

        //echo decodifica($this->uri->segment(2) );die;
        if ($this->uri->segment(2) !== null) {
            $this->load->model("historico_model", "hm");
            $id_historico = decodifica($this->uri->segment(2));
            $historico = $this->hm->get_historico_by_id_aluno_curso($id_historico)->result();
            //echo '<pre>';var_dump($historico);die;
            if (count($historico) > 0) {


                $curso = $this->cm->get_curso_by_id($historico[0]->id_curso);

                $link_curso = $this->cm->get_link_curso($historico[0]->id_curso);
                $questionario = $curso[0]->questionario;
                if( isset($link_curso[0]) )
                {
                    //$link_curso[0]->descricao;
                    $questionario = '<a target="_blank" href="'.$link_curso[0]->link.'" class="btn btn-link" role="button">Acessar o Material de Estudo</a>';
                }

                $data = array(
                    'id' => $curso[0]->id_curso,
                    'titulo' => 'Estudar',
                    'nome' => $curso[0]->nome,
                    'descricao' => $curso[0]->descricao,
                    'questionario' => $questionario,
                    'imagem' => $curso[0]->imagem,
                    'palavra_chave' => 'Imazon Cursos',
                    'historico' => $historico,
                    'declaracao' => null,
                    'prova_liberada' => null,
                    'certificado_impresso' => null,
                    'certificado_web' => null,
                    'nota' => null,
                    'tiposCertificado' => null,
                    'libera_compra_segunda_chamada' => null,
                    'ultimo_dia' => date('d/m/Y', strtotime($historico[0]->primeiro_dia . "+90 days"))
                );

                $situacao_frequencia = ['1','2','3'];

                if( in_array($historico[0]->situacao, $situacao_frequencia) )
                {
                    $this->realizaFrequencia($historico, $curso[0]->nome);
                }
                //recebe status/situação do histórico atual do aluno
                switch ($historico[0]->situacao) {
                    case 0://inscrito
                        break;
                    case 1://matrículado
                        $data['declaracao'] = true; //permite ao aluno solicitar uma declaração de participação no curso
                        $prova_liberada = strtotime($historico[0]->primeiro_dia . "+" . round($historico[0]->carga_horaria / 8) . " days");
                        $prova_liberada = date('d-m-Y', $prova_liberada);

                        $ultimo = strtotime($historico[0]->primeiro_dia . "+90 days");
                        $ultimo = date('d-m-Y', $ultimo);
                        $dtAtual = date('d-m-Y');

                        $pLiberada = new DateTime($historico[0]->primeiro_dia);
                        $ultimo = new DateTime($ultimo);
                        $atual = new DateTime($dtAtual);

						$hoje = new DateTime('today');
						$primeiroDia = new DateTime($historico[0]->primeiro_dia . ' 00:00:00');

						$ultimoDia = new DateTime($historico[0]->primeiro_dia . ' 00:00:00 +90 days'); // 23:59:59
						$diferenca = $hoje->diff($ultimoDia);
						$diferenca2 = $primeiroDia->diff($hoje);
						$ch = round($historico[0]->carga_horaria / 8);
                        $data['data_prova_liberada'] = strtotime($historico[0]->primeiro_dia . "+" . round($historico[0]->carga_horaria / 8) . " days");

                        if (((int) $diferenca->format('%r%a')) <= 90)
						{
							if (((int) $diferenca2->format('%r%a')) >= $ch)
							{
								$data['prova_liberada'] = true;
                            } else {
                                $data['prova_liberada'] = false;
                            }
                        } else {
                            $data['prova_liberada'] = false;
                        }
                        break;
                    case 2://aprovado

                        $this->load->model("produtos_model", "produtom");
                        $this->load->model('certificado_model', 'cem');
                        $data['certificado_impresso'] = $this->cem->get_certificados_by_historico($historico[0]->id)->result();

                        $data['certificado_web'] = true;
                        $data['nota'] = $historico[0]->nota;
                        $data['tiposCertificado'] = $this->produtom->get_all_tipo_certificado_ativo();
                        break;
                    case 3://reprovado
                        $data['certificado_participacao'] = true; //permite ao aluno solicitar uma declaração de participação no curso
                        $this->load->model("pedido_model", "pedm");
                        $data['libera_compra_segunda_chamada'] = $this->pedm->verifica_compra_segunda_chamada_historico($historico[0]->id_historico);
                        $data['nota'] = $historico[0]->nota;
                        break;
                    default:
                        break;
                }

                $data['situacao'] = $historico[0]->situacao; //situação do histórico

				$data['carrinhos'] = [$this->carrinho];

                $this->parser->parse('aluno/include/head', $data);
                $this->load->view('aluno/include/sidebar');
                $this->load->view('aluno/tela/estudar_grupo');
                $this->load->view('aluno/include/foot');
            } else {
                redirect('cursos_matriculados');
            }
        } else {
            redirect('cursos_matriculados');
        }
    }

    public function cancelar_curso() {
        if ($this->uri->segment(2)) {
            $this->load->model('historico_model', 'hm');
            $id_historico = decodifica($this->uri->segment(2));
            $historico = $this->hm->get_historico_by_id_aluno_curso($id_historico)->result();
            if (count($historico) == 1 && $historico[0]->situacao == 0) {
                if ($this->hm->remove_historico($id_historico)) {
                    $this->session->set_flashdata('success', 'Inscrição cancelada com sucesso!');
                } else {
                    $this->session->set_flashdata('warning', 'Não foi possível excluir esta inscrição!');
                }
            } else {
                $this->session->set_flashdata('warning', 'Não foi possível excluir esta inscrição!');
            }
        }
        redirect('cursos_matriculados');
    }

    public function liberar_curso_old() {
        if ($this->uri->segment(2)) {
            $this->load->model('historico_model', 'hm');
            $id_historico = decodifica($this->uri->segment(2));
            $historico = $this->hm->get_historico_by_id_aluno_curso($id_historico)->result();

            if (count($historico) == 1 && $historico[0]->situacao == 4) {
                if ($this->hm->congela_historico($id_historico)) {
                    $hash = date('Y') . '-' . strtoupper(substr(md5($this->session->userdata('imazon_id_fic') . ':' . microtime() . '-' . microtime()), 0, 4) . '-' . substr(md5($this->session->userdata('imazon_id_fic') . ':' . microtime()), 0, 4));
                    $autenticacao = strtoupper(substr(md5($hash), 0, 8));
                    $autenticacao = date('Y') . '-' . substr($autenticacao, 0, 4) . '-' . substr($autenticacao, 4, 9);
                    $novohistorico = array('id_historico' => $historico[0]->id_historico, 'id_aluno' => $this->session->userdata('imazon_id_fic'),
                        'data_aprovacao' => '0000-00-00', 'hora_aprovacao' => '00:00:00', 'nota' => 0,
                        'email' => $this->session->userdata('imazon_email_aluno'), 'id_avaliacao' => $historico[0]->id_avaliacao,
                        'id_curso' => $historico[0]->id_curso,
                        'primeiro_dia' => date('Y-m-d'), 'primeira_hora' => date('H:i:s'),
                        'carga_horaria' => $historico[0]->carga_horaria,
                        'id_baselegal' => $historico[0]->id_baselegal, 'situacao' => 1, 'codigo_autenticacao' => $autenticacao);
                    if ($this->hm->add($novohistorico)) {
                        $this->session->set_flashdata('success', 'Inscrição cancelada com sucesso!');
                    } else {
                        $this->session->set_flashdata('warning', 'Não foi possível executar esta operação!');
                    }
                } else {
                    $this->session->set_flashdata('warning', 'Não foi possível executar esta operação!');
                }
            } else {
                $this->session->set_flashdata('warning', 'Não foi possível executar esta operação!');
            }
        }
        redirect('cursos_matriculados');
    }

        public function liberar_curso() {
        if ($this->uri->segment(2)) {
            $this->load->model('historico_model', 'hm');
            $id_historico = decodifica($this->uri->segment(2));
            $historico = $this->hm->get_historico_by_id_aluno_curso($id_historico)->result();

            $aluno = $this->cm->get_aluno($historico[0]->id_aluno);
            if($aluno[0]['situacao_cadastro']=='1' || $aluno[0]['situacao_cadastro']=='2')
            {

                if (count($historico) == 1 && $historico[0]->situacao == 4)
                {
                    if ($this->hm->congela_historico($id_historico)) {
                        $hash = date('Y') . '-' . strtoupper(substr(md5($this->session->userdata('imazon_id_fic') . ':' . microtime() . '-' . microtime()), 0, 4) . '-' . substr(md5($this->session->userdata('imazon_id_fic') . ':' . microtime()), 0, 4));
                        $autenticacao = strtoupper(substr(md5($hash), 0, 8));
                        $autenticacao = date('Y') . '-' . substr($autenticacao, 0, 4) . '-' . substr($autenticacao, 4, 9);

                        if($historico[0]->id_curso==2861){
                            $situacao=9;
                        }
                        else{
                            $situacao=1;
                        }

                        $novohistorico = array('id_historico' => $historico[0]->id_historico, 'id_aluno' => $this->session->userdata('imazon_id_fic'),
                            'data_aprovacao' => '0000-00-00', 'hora_aprovacao' => '00:00:00', 'nota' => 0,
                            'email' => $this->session->userdata('imazon_email_aluno'), 'id_avaliacao' => $historico[0]->id_avaliacao,
                            'id_curso' => $historico[0]->id_curso,
                            'primeiro_dia' => date('Y-m-d'), 'primeira_hora' => date('H:i:s'),
                            'carga_horaria' => $historico[0]->carga_horaria,
                            'id_baselegal' => $historico[0]->id_baselegal, 'situacao' => $situacao, 'codigo_autenticacao' => $autenticacao);
                        if ($this->hm->add($novohistorico)) {
                            $this->session->set_flashdata('success', 'Inscrição cancelada com sucesso!');
                        } else {
                            $this->session->set_flashdata('warning', 'Não foi possível executar esta operação!');
                        }
                    } else {
                        $this->session->set_flashdata('warning', 'Não foi possível executar esta operação!');
                    }
                }
                else
                {
                    $this->session->set_flashdata('warning', 'Não foi possível executar esta operação!');
                }
          }
        }
        redirect('cursos_matriculados');
    }

    public function troca_curso(){
        $data = array('titulo' => 'Trocar Curso', 'palavra_chave' => 'Imazon Cursos');
        $this->parser->parse('site/include/head', $data);
        $this->load->view('aluno/tela/trocar_curso');
        $this->load->view('aluno/include/foot');
    }

    public function seleciona_curso_troca()
	{
		if ($this->uri->segment(2))
		{
			$p = explode("|", decodifica($this->uri->segment(2)));
            if (count($p) === 2)
			{
				$this->load->model("historico_model", "hm");
                $id_historico = decodifica($p[1]);
                $historico = $this->hm->get_historico_by_id_aluno_curso($id_historico)->result();

				if (count($historico) !== 1)
				{
					redirect("cursos_matriculados");
				}

				if ($historico[0]->situacao != 9)
				{
					redirect("cursos_matriculados");
				}

				$dados = array("id_curso" => $p[0]);

				//** @todo (Des)comentar essa linha?
				$hoje = new \DateTime('now');
				  if ($hoje > (new \DateTime($historico[0]->primeiro_dia . ' ' . $historico[0]->primeira_hora)))
				  {
				  if ($historico[0]->id_curso == 2861) //curso "BONUS"
				  {
//				  $dados['primeiro_dia'] = $hoje->format('Y-m-d');
//				  $dados['primeira_hora'] = $hoje->format('H:i:s');
                                  
                                  
                                  
				  }
				  }
				  // */

				$this->hm->atualiza_historico_by_id($historico[0]->id, $dados);
			}
        }
        redirect("cursos_matriculados");
	}

    public function ajaxBuscaCursoTroca() {

        if ($this->input->post())
		{
			$busca = trim($this->input->post("nome", true));
            $busca = filter_var($busca, FILTER_SANITIZE_STRING);
            //strlen($busca) % 2 == 0 &&
            if (strlen($busca) > 3)
			{
                $data["cursos"] = $this->cm->todos_cursos_busca_ajax(array("nome" => $busca));
                $this->load->view("aluno/tela/cursos_disponiveis_troca", $data);
            }
        }

    }

    public function meus_certificados() {
        $this->load->model('certificado_model', 'cem');
        $data = array('titulo' => 'Seus Certificados', 'palavra_chave' => 'Imazon Cursos');
        $data['certificados'] = $this->cem->get_certificados_impresos_by_aluno()->result();
        $this->parser->parse('aluno/include/head', $data);
        $this->load->view('aluno/include/sidebar');
        $this->load->view('aluno/tela/meus_certificados');
        $this->load->view('aluno/include/foot');
    }

    public function gerar_certificado_web() {

        if ($this->uri->segment(2)) {
            $this->load->model('historico_model', 'hm');
            $id_historico = decodifica($this->uri->segment(2));
            $historico = $this->hm->gera_historico_by_id_historico($id_historico)->result();
            if (count($historico) >= 1) {
                $this->load->model('base_legal_model', 'blm');
                $base_legal = $this->blm->get_atual()->result();
                switch ($historico[0]->situacao) {
                    case 2:
                        $situacao = 'Aprovado';
                        break;
                    case 3:
                        $situacao = 'Reprovado';
                        break;
                    default:
                        break;
                }

                //instancia fpdf
//                $params = array('orientation' => 'L', 'unit' => 'mm', 'size' => 'A4');
//                $this->load->library('fpdf', $params);

                // Página de Verso
                $this->fpdf->AliasNbPages();

                $this->fpdf->AddPage();
                $this->fpdf->Image('imgs/fundo_certificado_imazon.jpg', 1, 1, 270, 'JPG'); //logo
                $this->fpdf->setY("40");
                $this->fpdf->setX("10");
                $this->fpdf->SetFont('Arial', 'B', 40);
                $this->fpdf->Cell(0, 13, utf8_decode('Certificado de Conclusão'), 0, 1, 'C');
                $this->fpdf->SetFont('Arial', '', 16);
                $this->fpdf->Cell(0, 10, 'conferido a', 0, 1, 'C');
                $this->fpdf->SetFont('Arial', 'B', 16);
                $this->fpdf->Cell(0, 10, utf8_decode($historico[0]->nomeAluno), 0, 1, 'C');
                $this->fpdf->SetFont('Arial', '', 16);
                $this->fpdf->Cell(0, 8, 'RG: ' . utf8_decode($historico[0]->rg), 0, 1, 'C');
                $this->fpdf->SetFont('Arial', '', 16);
                $this->fpdf->Cell(0, 5, utf8_decode('Por ter concluído o Curso Livre '), 0, 1, 'C');
                $this->fpdf->setY(120);

                $this->fpdf->setY(90);
                $this->fpdf->MultiCell(0, 5, utf8_decode($historico[0]->nomeCurso), 0, 'C');

                $this->fpdf->setY(105);
                $this->fpdf->setX(50);
                $this->fpdf->Cell(0, 5, utf8_decode('Tipo: Capacitação/Atualização'), 0, 1);
                $this->fpdf->setX(50);
                $this->fpdf->Cell(0, 5, 'Aproveitamento: ' . $historico[0]->nota . ',0', 0, 1);
                $this->fpdf->setX(50);
                $this->fpdf->Cell(0, 5, utf8_decode('Cert. Nº ') . $historico[0]->id_historico, 0, 1);
                $this->fpdf->setY(105);
                $this->fpdf->setX(180);
                $this->fpdf->Cell(0, 5, utf8_decode('Carga Horária: ') . $historico[0]->carga_horaria . ' Horas', 0, 1);
                $this->fpdf->setX(180);
                $this->fpdf->Cell(0, 5, utf8_decode('Data de Início: ') . date('d/m/Y', strtotime($historico[0]->primeiro_dia)), 0, 1);
                $this->fpdf->setX(180);
                $this->fpdf->Cell(0, 5, utf8_decode('Data de Término: ') . date('d/m/Y', strtotime($historico[0]->data_aprovacao)), 0, 1);
                $this->fpdf->setY(120);
                $this->fpdf->Cell(0, 10, utf8_decode('Situação: ') . $situacao, 0, 1, 'C');
                $this->fpdf->SetFont('Arial', '', 16);
                $this->fpdf->SetFont('Arial', '', 16);
                $this->fpdf->SetXY(10, 128);
                $texto = utf8_decode($base_legal[0]->texto);
                $this->fpdf->MultiCell(0, 5, $texto, 0, 'C');
                $this->fpdf->SetFont('Arial', 'B', 16);
                $this->fpdf->Cell(430, 18, utf8_decode('Belém, ') . date("d/m/Y"), 0, 1, 'C');
                $this->fpdf->SetFont('Arial', '', 16);
                $this->fpdf->SetLineWidth(0.2);
                $this->fpdf->Line(30, 170, 125, 170);
                $this->fpdf->SetXY(50, 175);
                $this->fpdf->Cell(0, 1, 'Assinatura do(a) Aluno(a)', 0, 0);
                $this->fpdf->SetXY(20, 187);
                $this->fpdf->Image('imgs/rubrica.jpg', 200, 150, 50);
                $this->fpdf->Line(180, 170, 265, 170);
                $this->fpdf->SetXY(200, 175);
                $this->fpdf->Cell(0, 1, 'Ezelildo G Dornelas', 0, 0);
                $this->fpdf->SetXY(210, 180);
                $this->fpdf->Cell(0, 1, 'Diretor', 0, 0);


                // Página de Verso
                $this->fpdf->AddPage();
                $this->fpdf->Image('imgs/fundo_certificado_imazon.jpg', 1, 1, 270, 'JPG'); //logo
                $this->fpdf->SetFont('Arial', 'B', 8);
                $this->fpdf->SetXY(20, 40);
                $this->fpdf->Cell(0, 20, utf8_decode('Conteúdo'), 0, 1, 'L');
                $this->fpdf->SetXY(20, 60);
                $conteudo = str_replace("â€“", "-", $historico[0]->descricao);

                $this->fpdf->MultiCell(0, 5, strip_tags(utf8_decode($conteudo)));
                $this->fpdf->SetXY(20, 90);
               
                $this->fpdf->SetXY(200, 180);
                $this->fpdf->Cell(0, 2, 'Autenticar em: www.imazoncursos.com.br/autenticacao ', 0, 0);
                $this->fpdf->SetXY(200, 187);
                $this->fpdf->Cell(0, 2, utf8_decode('Código de Autenticação: ') . $historico[0]->codigo_autenticacao, 0, 0);


                $this->fpdf->Output();
            } else {
                redirect('cursos_matriculados');
            }
        }

        exit;
    }

    public function gerar_certificado_webnovo() {

        if ($this->uri->segment(2)) {
            $this->load->model('historico_model', 'hm');
            $id_historico = decodifica($this->uri->segment(2));
            $historico = $this->hm->gera_historico_by_id_historico($id_historico)->result();
            if (count($historico) >= 1) {
                $this->load->model('base_legal_model', 'blm');
                $base_legal = $this->blm->get_atual()->result();
                switch ($historico[0]->situacao) {
                    case 2:
                        $situacao = 'Aprovado';
                        break;
                    case 3:
                        $situacao = 'Reprovado';
                        break;
                    default:
                        break;
                }
                $conteudo1 = str_replace('', "-", $historico[0]->nomeCurso);
                echo $conteudo1;
                exit();

                //instancia fpdf
//                $params = array('orientation' => 'L', 'unit' => 'mm', 'size' => 'A4');
//                $this->load->library('fpdf', $params);

                // Página de Verso
                $this->fpdf->AliasNbPages();

                $this->fpdf->AddPage();
                //$this->fpdf->Image('imgs/fundo_certificado_imazon.jpg', 1, 1, 270, 'JPG'); //logo
                $this->fpdf->setY("40");
                $this->fpdf->setX("10");
                $this->fpdf->SetFont('Arial', 'B', 40);
                $this->fpdf->Cell(0, 13, utf8_decode('Certificado de Conclusão'), 0, 1, 'C');
                $this->fpdf->SetFont('Arial', '', 16);
                $this->fpdf->Cell(0, 10, 'conferido a', 0, 1, 'C');
                $this->fpdf->SetFont('Arial', 'B', 16);
                $this->fpdf->Cell(0, 10, utf8_decode($historico[0]->nomeAluno), 0, 1, 'C');
                $this->fpdf->SetFont('Arial', '', 16);
                $this->fpdf->Cell(0, 8, 'RG: ' . utf8_decode($historico[0]->rg), 0, 1, 'C');
                $this->fpdf->SetFont('Arial', '', 16);
                $this->fpdf->Cell(0, 5, utf8_decode('Por ter concluído o Curso Livre '), 0, 1, 'C');
                $this->fpdf->setY(120);

                $this->fpdf->setY(90);
                $conteudo1 = str_replace(' â€“ ', "-", $historico[0]->nomeCurso);

                $this->fpdf->MultiCell(0, 5, $conteudo1 . '2', 0, 'C');

                $this->fpdf->setY(105);
                $this->fpdf->setX(50);
                $this->fpdf->Cell(0, 5, utf8_decode('Tipo: Capacitação/Atualização'), 0, 1);
                $this->fpdf->setX(50);
                $this->fpdf->Cell(0, 5, 'Aproveitamento: ' . $historico[0]->nota . ',0', 0, 1);
                $this->fpdf->setX(50);
                $this->fpdf->Cell(0, 5, utf8_decode('Cert. Nº ') . $historico[0]->id_historico, 0, 1);
                $this->fpdf->setY(105);
                $this->fpdf->setX(180);
                $this->fpdf->Cell(0, 5, utf8_decode('Carga Horária: ') . $historico[0]->carga_horaria . ' Horas', 0, 1);
                $this->fpdf->setX(180);
                $this->fpdf->Cell(0, 5, utf8_decode('Data de Início: ') . date('d/m/Y', strtotime($historico[0]->primeiro_dia)), 0, 1);
                $this->fpdf->setX(180);
                $this->fpdf->Cell(0, 5, utf8_decode('Data de Término: ') . date('d/m/Y', strtotime($historico[0]->data_aprovacao)), 0, 1);
                $this->fpdf->setY(120);
                $this->fpdf->Cell(0, 10, utf8_decode('Situação: ') . $situacao, 0, 1, 'C');
                $this->fpdf->SetFont('Arial', '', 16);
                $this->fpdf->SetFont('Arial', '', 16);
                $this->fpdf->SetXY(10, 128);
                $texto = utf8_decode($base_legal[0]->texto);
                $this->fpdf->MultiCell(0, 5, $texto, 0, 'C');
                $this->fpdf->SetFont('Arial', 'B', 16);
                $this->fpdf->Cell(430, 18, utf8_decode('Belém, ') . date("d/m/Y"), 0, 1, 'C');
                $this->fpdf->SetFont('Arial', '', 16);
                $this->fpdf->SetLineWidth(0.2);
                $this->fpdf->Line(30, 170, 125, 170);
                $this->fpdf->SetXY(50, 175);
                $this->fpdf->Cell(0, 1, 'Assinatura do(a) Aluno(a)', 0, 0);
                $this->fpdf->SetXY(20, 187);
                $this->fpdf->Image('imgs/rubrica.jpg', 200, 150, 50);
                $this->fpdf->Line(180, 170, 265, 170);
                $this->fpdf->SetXY(200, 175);
                $this->fpdf->Cell(0, 1, 'Ezelildo G Dornelas', 0, 0);
                $this->fpdf->SetXY(210, 180);
                $this->fpdf->Cell(0, 1, 'Diretor', 0, 0);


                // Página de Verso
                $this->fpdf->AddPage();
                $this->fpdf->Image('imgs/fundo_certificado_imazon.jpg', 1, 1, 270, 'JPG'); //logo
                $this->fpdf->SetFont('Arial', 'B', 8);
                $this->fpdf->SetXY(20, 40);
                $this->fpdf->Cell(0, 20, utf8_decode('Conteúdo'), 0, 1, 'L');
                $this->fpdf->SetXY(20, 60);
                $conteudo = str_replace("â€“", "-", $historico[0]->descricao);

                $this->fpdf->MultiCell(0, 5, strip_tags(utf8_decode($conteudo)));
                $this->fpdf->SetXY(20, 90);
               
                $this->fpdf->SetXY(200, 180);
                $this->fpdf->Cell(0, 2, 'Autenticar em: www.imazoncursos.com.br/autenticacao ', 0, 0);
                $this->fpdf->SetXY(200, 187);
                $this->fpdf->Cell(0, 2, utf8_decode('Código de Autenticação: ') . $historico[0]->codigo_autenticacao, 0, 0);


                $this->fpdf->Output();
            } else {
                redirect('cursos_matriculados');
            }
        }

        exit;
    }

    private function check_dados_aluno($historico)
    {
        $aluno = $this->um->get_aluno();
        $dados_aluno = $aluno->result_array();
        //echo count($dados_aluno);die;
        $dados_historico = $this->hm->get_historico_by_id($historico)->result_array();
        $id_historico = $dados_historico[0]['id_historico'];

        if (count($dados_aluno) > 0)
		{
            if (empty(trim($dados_aluno[0]['nome'])) || empty(trim($dados_aluno[0]['endereco'])) ||
				(is_string($dados_aluno[0]['numero']) && strlen(trim($dados_aluno[0]['numero'])) <
				1) || empty(trim($dados_aluno[0]['bairro'])) || empty(trim($dados_aluno[0]['cidade'])) ||
				empty(trim($dados_aluno[0]['estado'])) || empty(trim($dados_aluno[0]['cep'])))
			{
                $this->session->set_flashdata('feedback_prova', 'Para a realização da Prova é necessário Atualizar seus dados');
                redirect('estudar/'.codifica($id_historico) );
            }

        }

    }

    public function fazer_avaliacao() {

        //echo decodifica( $this->uri->segment(2) );die;
        if ($this->uri->segment(2)) {
            $this->load->model("historico_model", "hm");
            $item = explode(":", decodifica($this->uri->segment(2)));
            $historico = $item[1];
            $curso = $item[0];

            $this->check_dados_aluno($historico);

            //echo '<pre>';var_dump($historico);die;
            $historico = $this->hm->get_dados_historico_cabecalho_curso_by_id_historico($historico)->result();

            if (1==1) {
                $curso = $this->cm->get_curso_by_id($curso);
                $this->load->model("questoes_model", "qm");
                $questoes = $this->qm->get_all_by_curso($curso[0]->id_curso,
											$historico[0]->id_avaliacao);

				//** @todo (Des)comentar essa linha?
				//if (ENVIRONMENT === 'development')
				{
					if (empty($questoes) && $historico[0]->id_avaliacao === '2')
					{
						$questoes = $this->qm->get_all_by_curso($curso[0]->id_curso, 1);
					}
				}
				//*/

				if (!in_array((int) $historico[0]->id_avaliacao, array(1, 2, 3))) {
                    $this->session->set_flashdata('danger', 'Erro ao efetuar avaliação. Entre em contato com o suporte técnico.');
                    redirect("estudar/" . codifica($historico[0]->id_historico));
                }

                if (!in_array((int) $historico[0]->situacao, array(1))) {
                    $this->session->set_flashdata('danger', 'Erro ao efetuar avaliação. Entre em contato com o suporte técnico.');
                    redirect("estudar/" . codifica($historico[0]->id_historico));
                }

                
                //prova escrita
                if ($this->input->post("editor-prova")) {
                    $trabalho = $this->input->post("editor-prova");

                    $dados = array('trabalho' => $trabalho, 'nota' => 0, 'data_aprovacao' => date('Y-m-d'), 'hora_aprovacao' => date('H:i:s'), 'id_avaliacao' => $historico[0]->id_avaliacao + 1, 'ip_aprovacao' => getenv("REMOTE_ADDR"));
                    $dadosHist = $this->hm->_atualiza_historico($historico[0]->id_historico, $dados);
                    if ($dadosHist) {
                        $this->session->unset_userdata(array('avaliacao' => ''));
                        $this->session->unset_userdata(array('id_avaliacao' => ''));
                        $this->session->set_userdata(array('avaliacao' => $curso[0]->id_curso));
                        $this->session->set_userdata(array('id_avaliacao' => $historico[0]->id_avaliacao));
                        $this->session->set_userdata(array('id_historico' => $historico[0]->id));
                        $this->session->set_flashdata('success', 'Seu trabalho de conclusão foi enviado com sucesso! Aguarde a correção de sua prova.');
                        redirect("estudar/" . codifica($historico[0]->id_historico));
                    } else {
                        $this->session->set_flashdata('danger', 'Erro ao atualizar histórico.');
                        redirect("estudar/" . codifica($historico[0]->id_historico));
                    }
                }

                //prova de multipla escolha
                if (count($historico) == 1 && count($curso) == 1 && count($questoes) >= 1) {
                    $this->session->unset_userdata(array('avaliacao' => ''));
                    $this->session->unset_userdata(array('id_avaliacao' => ''));
                    $this->session->set_userdata(array('avaliacao' => $curso[0]->id_curso));
                    $this->session->set_userdata(array('id_avaliacao' => $historico[0]->id_avaliacao));
                    $this->session->set_userdata(array('id_historico' => $historico[0]->id));
                    $data['titulo'] = "Avaliação de " . ucfirst(strtolower($curso[0]->nome));
                    $data['palavra_chave'] = "Prova";
                    $data['questoes'] = $questoes;
                    $data['historico'] = $historico;
                    $data['nomeCurso'] = ucfirst(strtolower($curso[0]->nome));
                    $this->parser->parse('aluno/include/head', $data);
                    $this->load->view('aluno/tela/avaliacao');
                    $this->load->view('aluno/include/foot');
                } else {
                    $this->session->set_flashdata('danger', 'Erro ao efetuar avaliação. Entre em contato com o suporte técnico.');
                    redirect("estudar/" . codifica($historico[0]->id_historico));
                }
            } else {
                $this->session->set_flashdata('danger', 'Erro ao efetuar avaliação. Você já fez esta avaliação antes.');
                redirect("estudar/" . codifica($historico[0]->id_historico));
            }
        } else {
            $this->session->set_flashdata('danger', 'Erro ao efetuar avaliação. Entre em contato com o suporte técnico.');
            redirect("estudar/" . codifica($historico[0]->id_historico));
        }
    }

    private function insereFrequencia($carga_horaria, $id_link, $data)
    {
        $this->load->library('Frequencia');
        $frequencia = new Frequencia();

        return $frequencia->calculo_frequencia($carga_horaria, $id_link, $data);
    }

    public function corrigir_avaliacao() {

        if ($this->session->userdata('avaliacao'))
		{
			$respostas = $this->input->post();
			if (empty($respostas))
			{
				// Nenhuma resposta foi enviada
				redirect('cursos_matriculados');
			}

			$id_curso = $this->session->userdata('avaliacao');
            $this->load->model("questoes_model", "qm");
            $this->load->model("historico_model", "hm");

            $questoes = $this->qm->get_all_by_curso($id_curso,
										   $this->session->userdata('id_avaliacao'));

			$historico = $this->hm->get_historico_by_id($this->session->userdata('id_historico'))->result();

            $this->check_dados_aluno($historico[0]->id);

            $numAcertos = 0;
            $numErros = 0;
            $numQuestBr = 0;
            $numQuestResp = 0;
            $numQuest = count($questoes);
            $i = 0;
            $cr = 1;
            $resultado = null;
            $correcao = null;
			$gabarito = null;
			$g = 1;
			$this->load->model("gabarito_model", "gabm");

			for (; $i < $numQuest; $i++)
			{
				$q = $questoes[$i];
				if (
					array_key_exists($q->id_questao, $respostas)
					&& $respostas[$q->id_questao] === $q->resposta
				)
				{
					$numAcertos++;
				}

				$numQuestResp++;

				$resultado[$i] = [
					'descricao' => $q->descricao,
					'status' => 1,
					'alternativaCorreta' => $q->resposta,
					'justificativa' => $q->justificativa,
				];

				$correcao[$cr] = $resultado[$i];
				$correcao[$cr]['resposta'] = $respostas[$q->id_questao];

				$gabarito[$g] = [
					'id_questao' => (int) $q->id_questao,
					'resposta' => $respostas[$q->id_questao],
				];

				$g++;
				$cr++;
				//}
			}

            $gabarito = array("id_historico" => $historico[0]->id, "conteudo" => addslashes(json_encode($gabarito)),
				"id_tipo_prova" => $historico[0]->id_avaliacao, "data_registro" => date("Y-m-d H:i:s"));
			$this->gabm->add($gabarito);

            //calcula nota
            $numQuestBr = $numQuest - $numQuestResp;
            $nota = (($numAcertos * 100) / $numQuest) / 10;

            $avaliacao = $historico[0]->id_avaliacao;
            $dados = array('nota' => $nota,
                //'data_aprovacao' => date('Y-m-d'),
                'hora_aprovacao' => date('H:i:s'),
                'ip_aprovacao' => getenv("REMOTE_ADDR"));

             $check_situacao = [2,3];
             $is_avaliacao = in_array($historico[0]->situacao, $check_situacao);

            //se aluno reprovar
            if ($nota == 0) {
                $dados['situacao'] = 7;
                $hash = date('Y') . '-' . strtoupper(substr(md5($this->session->userdata('imazon_id_fic') . ':' . microtime() . '-' . microtime()), 0, 4) . '-' . substr(md5($this->session->userdata('imazon_id_fic') . ':' . microtime()), 0, 4));
                $autenticacao = strtoupper(substr(md5($hash), 0, 8));
                $autenticacao = date('Y') . '-' . substr($autenticacao, 0, 4) . '-' . substr($autenticacao, 4, 9);
                $reteste = array('id_historico' => $historico[0]->id_historico,
                    'id_aluno' => $historico[0]->id_aluno,
                    'email' => $historico[0]->email,
                    'id_curso' => $historico[0]->id_curso,
                    'primeiro_dia' => $historico[0]->primeiro_dia,
                    'data_aprovacao' => $historico[0]->data_aprovacao,
                    'primeira_hora' => $historico[0]->primeira_hora,
                    'carga_horaria' => $historico[0]->carga_horaria,
                    'id_baselegal' => $historico[0]->id_baselegal,
                    'codigo_autenticacao' => $autenticacao,
                    'nota' => null,
                    'id_avaliacao' => 3,
                    'situacao' => 1
                );
            } else if ($nota < 5 && $nota >= 1) {
                //gera segunda-chance
                $dados['situacao'] = 3;
				$data_inicio= strtotime('2017-06-12');// data de quando começou a promoção certificado eletrônico.
				$data_primeiro_dia= strtotime($historico[0]->primeiro_dia);
					if($data_primeiro_dia>=$data_inicio){
					$certificado = array('id_historico' =>$historico[0]->id, 'codigo_programa' => '006', 'data_registro' => date('Y-m-d H:i:s'), 'situacao' => 0, 'transacao' => '', 'id_tipo' => '3', 'endereco' => '');
					/*
                                         * Inserção do certificado eletronico para o aluno reprovado
                                         */
                                                if( !$is_avaliacao )
                                                {
                                                    //$id_certificado_last= $this->certfm->add($certificado);

                                                }
					}
            } else if ($nota >= 5) {
                $dados['situacao'] = 2;
				$data_inicio= strtotime('2017-06-12');// data de quando começou a promoção certificado eletrônico.
				$data_primeiro_dia= strtotime($historico[0]->primeiro_dia);
					if($data_primeiro_dia>=$data_inicio){
					$certificado = array('id_historico' =>$historico[0]->id, 'codigo_programa' => '006', 'data_registro' => date('Y-m-d H:i:s'), 'situacao' => 0, 'transacao' => '', 'id_tipo' => '3', 'endereco' => '');
					/*
                                         * Inserção do certificado eletronico para o aluno reprovado
                                         */
                                            if( !$is_avaliacao )
                                            {
                                                //$id_certificado_last = $this->certfm->add($certificado);
                                            }
					}
            }

			if (
				!array_key_exists('frequencia', $certificado)
				OR empty(trim($certificado['frequencia']))
			)
			{
				$aluno_acesso = $this->hm->aluno_acesso($historico[0]->id);
				$id_link = $aluno_acesso['link'] ?? '';
                $respostaFrequencia = $this->insereFrequencia($historico[0]->carga_horaria, $id_link, $historico[0]->primeiro_dia);
                $respostaFrequencia = json_decode($respostaFrequencia);

                if($respostaFrequencia->status==1)
                {
                    $respostaFrequencia->frequencia = 100;
                    $this->hm->update_frequencia_historico($historico[0]->id, $respostaFrequencia->frequencia );
                }
            }

            $dadosHist = $this->hm->atualiza_historico_by_id($this->session->userdata('id_historico'), $dados);

            if( isset($id_certificado_last) )
            {
                //$this->certfm->add_certificado_eletronico_docs($id_certificado_last);
            }

            if ( isset($reteste) ) {
                //adiciona novo histórico
                $this->hm->add($reteste);
            }

            if (!$dadosHist) {
                $this->session->set_flashdata('warning', 'Vocẽ não pode fazer isso');
                redirect('cursos_matriculados');
            }
            $data = array('numQuestoes' => $numQuest, 'numErros' => $numErros, 'numAcertos' => $numAcertos, 'numQuestoesBranco' => $numQuestBr, 'questoes' => $questoes, 'questoesForm' => $_POST);
            $data['resultado'] = $correcao;
            $data['titulo'] = "Resultado da sua avaliação";
            $data['palavra_chave'] = "Prova";

            $this->parser->parse('aluno/include/head', $data);
            $this->load->view('aluno/tela/avaliacao_corrigida', $dados);
            $this->load->view('aluno/include/foot');
        }
		else
		{
			$this->session->set_flashdata('danger', 'Erro ao efetuar avaliação. Você já fez esta avaliação antes.');
            redirect("cursos_matriculados");
        }
    }

    public function gerar_declaracao() {
        if ($this->uri->segment(2)) {
            $h = decodifica($this->uri->segment(2));

            $this->load->model("historico_model", "hm");
            $historico = $this->hm->get_declaracao($h)->result();
            if ($historico[0]->situacao == 1 ||  $historico[0]->situacao == 0) {
            $params = array('orientation' => 'P', 'unit' => 'mm', 'size' => 'A4');
            require_once(APPPATH.'libraries/fpdf/Fpdf.php');
            $this->fpdf = new FPDF($params);
                $this->fpdf->AliasNbPages();
                $this->fpdf->AddPage();
                $this->fpdf->SetMargins(19, 18);
                $this->fpdf->Image('imgs/logo.png', 19, 21); //logo
                $this->fpdf->SetFont('Arial', 'B', 9);
                $this->fpdf->Ln(1); //quebra de linha
                $this->fpdf->setX(220);
                $this->fpdf->setY("20");
                $this->fpdf->setX("10");
                $this->fpdf->SetFont('Arial', 'B', 14);
                $this->fpdf->Cell(0, 13, utf8_decode(NOME_MANTENEDORA), 0, 1, 'R');
                $this->fpdf->setY("28");
                $this->fpdf->setX("10");
                $this->fpdf->SetFont('Arial', '', 8);
                $this->fpdf->Cell(0, 13, utf8_decode(ENDERECO_MANTENEDORA), 0, 1, 'R');
                $this->fpdf->setY("31");
                $this->fpdf->setX("10");
                $this->fpdf->SetFont('Arial', '', 8);
                $this->fpdf->Cell(0, 13, utf8_decode(CEP_MANTENEDORA), 0, 1, 'R');
                $this->fpdf->setY("34");
                $this->fpdf->setX("10");
                $this->fpdf->SetFont('Arial', '', 8);
                $this->fpdf->Cell(0, 13, 'CNPJ: '.CNPJ_MANTENEDORA, 0, 1, 'R');
                $this->fpdf->setY("70");
                $this->fpdf->setX("10");
                $this->fpdf->setX(220);
                $this->fpdf->setY("80");
                $this->fpdf->setX("10");
                $this->fpdf->SetFont('Arial', 'B', 11);
                $this->fpdf->Cell(0, 13, utf8_decode('Declaração de Matrícula'), 0, 1, 'C');
                $this->fpdf->SetFont('Arial', '', 11);
                if(!empty($historico[0]->cpf)){ $cpf= ', com CPF '.$historico[0]->cpf;}
                $this->fpdf->MultiCell(0, 6, 'Declaro,  para os devidos fins, que ' . utf8_decode($historico[0]->nomeAluno .$cpf.   ', é aluno do Programa de Formação  Imazon Cursos,  mantido pela Instituição de Ensino '.NOME_MANTENEDORA.' e encontra-se matriculado desde o dia ') . date('d/m/Y', strtotime($historico[0]->primeiro_dia)) . ', no Curso ' . utf8_decode($historico[0]->nomeCurso . ', com Carga Horária de ' . $historico[0]->carga_horaria . ' Horas, do Tipo Capacitação / Atualização, com número de matrícula ' . $historico[0]->id_historico) . '.', 0, 'J');
                $this->fpdf->SetFont('Arial', 'B', 11);
                $this->fpdf->SetXY(19, 132);
                $this->fpdf->Cell(0, 10, utf8_decode('Código de Autenticação: ' . $historico[0]->codigo_autenticacao), 0, 1, 'R');
                $this->fpdf->SetXY(19, 127);
                $this->fpdf->Cell(0, 10, utf8_decode('Autenticar em: www.imazoncursos.com.br/autenticacao'), 0, 1, 'R');
                $this->fpdf->SetFont('Arial', 'B', 11);
                $this->fpdf->SetXY(19, 260);
                $this->fpdf->Cell(0, 10, utf8_decode('Obs: Declaração Válida por 90 Dias a partir da Data da Matrícula.'), 0, 1, 'L');
                $this->fpdf->Image('imgs/rubrica.jpg', 80, 150, 40);
                $this->fpdf->SetXY(75, 165);
                $this->fpdf->Cell(0, 1, 'Prof. Me Ezelildo G Dornelas', 0, 0);
                $this->fpdf->SetXY(95, 170);
                $this->fpdf->Cell(0, 1, 'Diretor', 0, 0);
                $this->fpdf->Output();
            } else {
                redirect('cursos_matriculados');
            }
        }
    }

    public function certificado_participacao() {
        $h = decodifica($this->uri->segment(2));
        $this->load->model("historico_model", "hm");
        $historico = $this->hm->get_declaracao($h)->result();
        if (count($historico) === 1) {
            $texto = utf8_decode(str_replace("<br />", "", nl2br(strip_tags($historico[0]->descricao))));
//            $params = array('orientation' => 'L', 'unit' => 'mm', 'size' => 'A4');
//            $this->load->library('fpdf', $params);
            $this->fpdf->AliasNbPages();

            $this->fpdf->AddPage();
            $this->fpdf->Image('imgs/fundo_certificado_imazon.jpg', 1, 1, 270); //logo
            $this->fpdf->SetFont('Arial', 'B', 9);
            $this->fpdf->setY("40");
            $this->fpdf->setX("10");
            $this->fpdf->SetFont('Arial', 'B', 40);
            $this->fpdf->Cell(0, 13, utf8_decode('Certificado de Participação'), 0, 1, 'C');
            $this->fpdf->SetFont('Arial', '', 16);
            $this->fpdf->Cell(0, 10, 'conferido a', 0, 1, 'C');
            $this->fpdf->SetFont('Arial', 'B', 16);
            $this->fpdf->Cell(0, 10, utf8_decode($historico[0]->nomeAluno), 0, 1, 'C');
            $this->fpdf->SetFont('Arial', 'B', 16);
            $this->fpdf->Cell(0, 10, 'RG: ' . utf8_decode($historico[0]->rg), 0, 1, 'C');

            $this->fpdf->SetFont('Arial', '', 16);

            $this->fpdf->Cell(0, 5, 'Por participar do Curso Livre ', 0, 1, 'C');
            $this->fpdf->SetFont('Arial', 'B', 16);
            $this->fpdf->MultiCell(0, 10, utf8_decode($historico[0]->nomeCurso), 0, 'C');
            $this->fpdf->SetFont('Arial', '', 16);
            $this->fpdf->Cell(0, 10, utf8_decode('Tipo: Capacitação/Atualização'), 0, 1, 'C');
            $this->fpdf->Cell(0, 10, utf8_decode('Carga Horária: ') . $historico[0]->carga_horaria . ' Horas', 0, 1, 'C');
            $this->fpdf->Cell(0, 10, utf8_decode('Data de início: ') . date('d/m/Y', strtotime($historico[0]->primeiro_dia)), 0, 1, 'C');
            $this->fpdf->Cell(0, 10, utf8_decode('Matrícula: ') . $historico[0]->id_historico, 0, 1, 'C');
            $this->fpdf->SetFont('Arial', '', 16);
            $this->fpdf->SetXY(10, 125);
            $this->fpdf->SetFont('Arial', 'B', 16);
            $this->fpdf->SetXY(10, 138);
            $this->fpdf->Cell(430, 18, utf8_decode('Belém, ') . date("d/m/Y"), 0, 1, 'C');
            $this->fpdf->SetXY(10, 125);
            $this->fpdf->SetFont('Arial', '', 16);
            $this->fpdf->SetLineWidth(0.2);
            $this->fpdf->Line(30, 170, 125, 170);
            $this->fpdf->SetXY(50, 175);
            $this->fpdf->Cell(0, 1, 'Assinatura do/a Aluno/a', 0, 0);
            $this->fpdf->SetXY(20, 187);

            $this->fpdf->Image('imgs/rubrica.jpg', 200, 150, 60);
            $this->fpdf->Line(180, 170, 265, 170);
            $this->fpdf->SetXY(200, 175);
            $this->fpdf->Cell(0, 1, 'Ezelildo G Dornelas', 0, 0);
            $this->fpdf->SetXY(210, 180);
            $this->fpdf->Cell(0, 1, 'Diretor', 0, 0);

            // Página de Verso

            $this->fpdf->AddPage();
            $this->fpdf->Image('imgs/fundo_certificado_imazon.jpg', 1, 1, 270, 'JPG'); //logo
            $this->fpdf->SetFont('Arial', 'B', 8);
            $this->fpdf->SetXY(20, 40);
            $this->fpdf->Cell(0, 20, utf8_decode('Conteúdo'), 0, 1, 'L');
            $this->fpdf->SetXY(20, 60);
            $this->fpdf->MultiCell(0, 5, strip_tags($texto));
            $this->fpdf->SetXY(20, 90);
           
            $this->fpdf->SetXY(200, 183);
            $this->fpdf->SetFont('Arial', 'B', 10);
            $this->fpdf->Cell(0, 2, 'Autenticar em: www.imazoncursos.com.br/autenticacao/', 0, 0);
            $this->fpdf->SetXY(200, 188);
            $this->fpdf->Cell(0, 1, utf8_decode('Código de Autenticação: ') . $historico[0]->codigo_autenticacao, 0, 0);

            $this->fpdf->Output();
        }
    }

    public function solicitar_segunda_chance() {
        if ($this->uri->segment(2)) {
            $h = decodifica($this->uri->segment(2));
            $this->load->model("historico_model", "hm");
            $historico = $this->hm->get_historico_by_id_historico($h)->result();
            if (count($historico) == 1) {
                if ($historico[0]->id_aluno == $this->session->userdata("imazon_id_fic")) {
                    //adiciona fatura p segunda-chance
                    print_r($historico);
                }
            }
        } else {
            redirect("cursos__matriculados");
        }
    }

    public function ultimo_curso_matriculado() {
        $historico = $this->cm->ultimo_curso_matriculado()->result();
        if (count($historico) == 1) {
            redirect(base_url("add_item_matricula") . "/" . codifica($historico[0]->id_curso) . "/" . codifica($historico[0]->carga_horaria) . "/" . codifica($historico[0]->id));
            //redirect(base_url("estudar") . "/" . codifica($historico[0]->id_historico));
        }
    }

    public function ultimo_curso_matriculado_em_grupo() {
        $historico = $this->cm->ultimo_curso_matriculado()->result();
        if (count($historico) == 1) {
            redirect(base_url("add_item_matricula_em_grupo") . "/" . codifica($historico[0]->id_curso) . "/" . codifica($historico[0]->carga_horaria) . "/" . codifica($historico[0]->id));
            //redirect(base_url("estudar") . "/" . codifica($historico[0]->id_historico));
        }
    }

    
    public function atualizaDataConclusao(){
       
        $array=$this->input->post();      
        $i=0;            
        foreach ($array as $v) {
            $i=$i+1;
            if($i==1){
                $data=$v;
            }
            if($i==4){
                $historico=$v;
            }
        }
        $dataNova = $data;
        $tdi      = decodifica($historico);
        $historico = $this->hm->get_dados_historico_cabecalho_curso_by_id_historico($tdi)->result();
         if((int)$historico[0]->situacao!==0 && (int)$historico[0]->situacao!==9) redirect("cursos_matriculados");
            $dataNova = explode("-", $dataNova);
            $dataNova = $dataNova[2].'-'.$dataNova[1].'-'.$dataNova[0];
            $dados = array("data_aprovacao"=>$dataNova);
            
             $dataNVA= $dataNova;
             $dataNVA=  strtotime($dataNVA);
             $agora = strtotime(date('Y-m-d'));
             $dataap=$historico[0]->primeiro_dia;
             $dataap=  strtotime($dataap);
                                                
            
            
            if ($dataNVA<=$dataap)
						{
                                                    $this->session->set_flashdata('danger', 'Erro ao alterar a data.');
                                                    echo "<script>alert('data incompativel')</script>";
                                                    redirect("cursos_matriculados");
                                                    exit();
                                                   
                                                }
//            print_r($dados);
//            print_r($tdi);
//            exit();
                                                
                                                
             $slq="INSERT INTO `log_alteracao_data` (`id_log`, `primeiro_dia_original`, `data_conclusao_original`, `id_historico`, `nova_data_matricula`, `nova_data_conclusao`, `tipo`, `data`) 
                    VALUES (NULL, '".$historico[0]->primeiro_dia."', '".$historico[0]->data_aprovacao."', '".$tdi."', '".$historico[0]->primeiro_dia."', '".$dataNova."', '99', current_timestamp())";
                
                $this->db->query($slq);                                    
                                                
            $dadosHist = $this->hm->atualiza_historico_by_id($tdi, $dados);
            
            if($dadosHist){
                $this->session->set_flashdata('success', 'Data alterada com sucesso');
            }else{
                $this->session->set_flashdata('danger', 'Erro ao alterar a data.');
            }

            redirect("cursos_matriculados");
        
        
    }
    
   public function atualizaDataMatricula() {
        if ($this->input->post("dataNova", true) && $this->input->post("tdi", true)) {
            $dataNova = $this->input->post("dataNova");
            $tdi = decodifica($this->input->post("tdi"));
            $this->load->library("form_validation");

            $this->form_validation->set_rules("dataNova", "dataNova", "callback_valida_data");
            $this->form_validation->set_rules("tdi", "curso escolhido", "required");

            if (!$this->form_validation->run())
                redirect("cursos_matriculados");
            $this->load->model("historico_model", "hm");

            $historico = $this->hm->get_dados_historico_cabecalho_curso_by_id_historico($tdi)->result();
            if (!$historico)
                redirect("cursos_matriculados");
            if ((int) $historico[0]->situacao !== 0 && (int) $historico[0]->situacao !== 9)
                redirect("cursos_matriculados");
            $dataNova = explode("-", $dataNova);
            $dataNova = $dataNova[2] . '-' . $dataNova[1] . '-' . $dataNova[0];

            $dataNVA = $dataNova;

            $dataNVA = strtotime($dataNVA);
            $agora = strtotime(date('Y-m-d'));

            $dataap = $historico[0]->data_aprovacao;
           
            $dataap = strtotime($dataap);

            $carga_horaria = $historico[0]->carga_horaria;
            $dias = ceil($historico[0]->carga_horaria / 8);

            $data_minima = date("Y-m-d", strtotime("+" . $dias . " days", strtotime($dataNova)));

            $data_minimac = strtotime($data_minima);

//            if ($dataap < $data_minimac) {
            if ($dataap < $data_minimac  || $dataNVA > $dataap ){   
                
                $slq="INSERT INTO `log_alteracao_data` (`id_log`, `primeiro_dia_original`, `data_conclusao_original`, `id_historico`, `nova_data_matricula`, `nova_data_conclusao`, `tipo`, `data`) 
                    VALUES (NULL, '".$historico[0]->primeiro_dia."', '".$historico[0]->data_aprovacao."', '".$tdi."', '".$dataNova."', '".$data_minima."', '1', current_timestamp())";
                
                $this->db->query($slq);
                
                $dados = array("primeiro_dia" => $dataNova, "data_aprovacao" => $data_minima);
                $dadosHist = $this->hm->atualiza_historico_by_id($tdi, $dados);
                $this->session->set_flashdata('success', 'Data alterada com sucesso para o período mínimo do curso');
                redirect("cursos_matriculados");
                exit();
            }

            if ($dataNVA < $agora || $dataNVA >= $dataap) {
                $this->session->set_flashdata('danger', 'Erro ao alterar a data.');
                redirect("cursos_matriculados");
                exit();
            }

            $dados = array("primeiro_dia" => $dataNova);
            $dadosHist = $this->hm->atualiza_historico_by_id($tdi, $dados);
            
            
            $slq="INSERT INTO `log_alteracao_data` (`id_log`, `primeiro_dia_original`, `data_conclusao_original`, `id_historico`, `nova_data_matricula`, `nova_data_conclusao`, `tipo`, `data`) 
                    VALUES (NULL, '".$historico[0]->primeiro_dia."', '".$historico[0]->data_aprovacao."', '".$tdi."', '".$dataNova."', '".$historico[0]->data_aprovacao."', '2', current_timestamp())";
                
                $this->db->query($slq);

            if ($dadosHist) {
                $this->session->set_flashdata('success', 'Data alterada com sucesso');
            } else {
                $this->session->set_flashdata('danger', 'Erro ao alterar a data.');
            }

            redirect("cursos_matriculados#" . $this->input->post("tdi"));
        }
    }
    
    public function valida_data($data=null){
        if($data){
            if(strtotime($data) < strtotime(date("d-m-Y"))){
                $this->form_validation->set_message('valida_data', 'Você digitou uma data incorreta!');
            }else{
                return true;
            }
        }
        return false;

    }

}
