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


class Usuario extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->library("form_validation");
        $this->load->helper("combox");
        $this->form_validation->set_error_delimiters('<div class="alert alert-danger">', '</div>');
        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('usuarios_model', 'um');
    }

    public function index() {
        redirect('cursos_matriculados');
    }

    public function pesquisa() {
        $data = array('titulo' => 'Pesquisa de Satisfação', 'palavra_chave' => 'Imazon Cursos', 'usuario' => $usuario);
        $this->parser->parse('aluno/include/head', $data);
        $this->load->view("aluno/tela/pesquisa");
        $this->load->view("aluno/include/foot");
    }

    public function dados_cadastrais() {
        $this->load->library('cart');
        $usuario = $this->um->get_aluno()->result();
        $data = array('titulo' => 'Seus dados', 'palavra_chave' => 'Imazon Cursos', 'usuario' => $usuario);
        $this->parser->parse('aluno/include/head', $data);
        $this->load->view('aluno/include/sidebar');
        $this->load->view('aluno/tela/dados_cadastrais');
        $this->load->view('aluno/include/foot');
    }

    public function dados_contato() {

        $this->load->library("form_validation");
        $this->form_validation->set_rules('ddd_telefone', 'ddd', 'required|max_length[2]|trim|numeric');
        $this->form_validation->set_rules('telefone', 'celular', 'required|max_length[9]|trim|numeric');

        if ($this->input->post()) {
            if ($this->form_validation->run()) {
                $this->load->helper('array');
                $dados = elements(array('ddd_telefone', 'telefone'), $this->input->post());
                if ($this->um->update($dados)) {
                    $this->session->set_userdata(array("preencher_endereco" => true));
                    redirect("finalizarPedido");
                } else {
                    $data = array(
                        'titulo' => 'Dados de cobrança',
                        'palavra_chave' => 'Imazon Cursos'
                    );
                    $data['usuario'] = $this->um->get_aluno()->result();
                    $this->load->library('table');
                    $this->parser->parse('aluno/include/head', $data);
                    $this->load->view('aluno/include/sidebar');
                    $this->load->view('aluno/tela/dados_contato');
                    $this->load->view('aluno/include/foot');
                }
            }
        }

        $data = array(
            'titulo' => 'Dados de cobrança',
            'palavra_chave' => 'Imazon Cursos'
        );
        $data['usuario'] = $this->um->get_aluno()->result();
        $this->load->library('table');
        $this->parser->parse('aluno/include/head', $data);
        $this->load->view('aluno/include/sidebar');
        $this->load->view('aluno/tela/dados_contato');
        $this->load->view('aluno/include/foot');
    }

    public function endereco_cobranca() {
        $data = array(
            'titulo' => 'Dados de cobrança',
            'palavra_chave' => 'Imazon Cursos'
        );
        $data['usuario'] = $this->um->get_aluno()->result();

        if ($this->input->post()) {

            $this->load->library("form_validation");

            $this->form_validation->set_rules('estado', 'estado', 'required|callback_valida_estado');
            $this->form_validation->set_rules('cidade', 'cidade', 'required');
            $this->form_validation->set_rules('cep', 'cep', 'required');
            $this->form_validation->set_rules('endereco', 'endereco', 'required|min_length[2]|max_length[150]');
            $this->form_validation->set_rules('numero', 'numero', 'required');
            $this->form_validation->set_rules('bairro', 'bairro', 'required');
            //$this->form_validation->set_rules('ddd_telefone', 'ddd', 'required|max_length[2]');
            //$this->form_validation->set_rules('telefone', 'celular', 'required|max_length[9]');

            $this->form_validation->set_rules('ddd_telefone', 'ddd', 'trim|required|callback_valida_ddd');
            $this->form_validation->set_rules('telefone', 'celular', 'trim|required|callback_valida_telefone');

            if ($data['usuario'][0]->nome == "") {
                $this->form_validation->set_rules('nome', 'nome', 'min_length[6]|max_length[120]|required|callback_valida_nome');
            }

            if ($this->form_validation->run() == true) {

                $this->load->helper('array');
                $dados = elements(array('estado', 'cidade', 'cep', 'endereco', 'numero', 'complemento', 'bairro', 'rg', 'ddd_telefone', 'telefone','marketing'), $this->input->post());
                $dados['estado'] = strtoupper($dados['estado']);
                $dados['cidade'] = strtoupper($dados['cidade']);
                $dados['endereco'] = strtoupper($dados['endereco']);
                $dados['complemento'] = strtoupper($dados['complemento']);
                $dados['bairro'] = strtoupper($dados['bairro']);
                
                if($dados['marketing']=="on"){
                $dados['marketing']=1;   
                }
              else{
                $dados['marketing']=0; 
               }

                if ($data['usuario'][0]->nome =="") {
                    $dados['nome'] = $this->input->post("nome");
                }

                if ($this->um->update($dados) == true) {
                    $this->session->set_userdata(array("preencher_endereco" => true));

                    if( empty( $this->session->userdata('imazon_nome') ) )
                    {
                        $this->session->unset_userdata('imazon_nome');
                        $this->session->set_userdata( array( "imazon_nome" => $dados['nome'] ) ) ;
                    }

                    redirect("finalizarPedido");
                } else {
                    $this->session->set_flashdata('danger', 'N&atilde;o foi poss&iacute;vel alterar seus dados de cobrança. Tente novamente!');
                    redirect('endereco_cobranca');
                }
            }
        }

        $this->load->library('table');
        $this->parser->parse('aluno/include/head', $data);
        $this->load->view('aluno/include/sidebar');
        $this->load->view('aluno/tela/endereco_cobranca');
        $this->load->view('aluno/include/foot');
    }

	public function endereco_cobranca_grupo() {
        $data = array(
            'titulo' => 'Dados de cobrança',
            'palavra_chave' => 'Imazon Cursos'
        );
        $data['usuario'] = $this->um->get_aluno()->result();

        if ($this->input->post()) {

            $this->load->library("form_validation");

            $this->form_validation->set_rules('estado', 'estado', 'required|callback_valida_estado');
            $this->form_validation->set_rules('cidade', 'cidade', 'required');
            $this->form_validation->set_rules('cep', 'cep', 'required');
            $this->form_validation->set_rules('endereco', 'endereco', 'required|min_length[2]|max_length[150]');
            $this->form_validation->set_rules('numero', 'numero', 'required');
            $this->form_validation->set_rules('bairro', 'bairro', 'required');
            //$this->form_validation->set_rules('ddd_telefone', 'ddd', 'required|max_length[2]');
            //$this->form_validation->set_rules('telefone', 'celular', 'required|max_length[9]');

            $this->form_validation->set_rules('ddd_telefone', 'ddd', 'trim|required|callback_valida_ddd');
            $this->form_validation->set_rules('telefone', 'celular', 'trim|required|callback_valida_telefone');

            if ($data['usuario'][0]->nome == "") {
                $this->form_validation->set_rules('nome', 'nome', 'min_length[6]|max_length[120]|required|callback_valida_nome');
            }

            if ($this->form_validation->run() == true) {

                $this->load->helper('array');
                $dados = elements(array('estado', 'cidade', 'cep', 'endereco', 'numero', 'complemento', 'bairro', 'rg', 'ddd_telefone', 'telefone'), $this->input->post());
                $dados['estado'] = strtoupper($dados['estado']);
                $dados['cidade'] = strtoupper($dados['cidade']);
                $dados['endereco'] = strtoupper($dados['endereco']);
                $dados['complemento'] = strtoupper($dados['complemento']);
                $dados['bairro'] = strtoupper($dados['bairro']);

                if ($data['usuario'][0]->nome == "") {
                    $dados['nome'] = $this->input->post("nome");
                }

                if ($this->um->update($dados) == true) {
                    $this->session->set_userdata(array("preencher_endereco" => true));

                    if( empty( $this->session->userdata('imazon_nome') ) )
                    {
                        $this->session->unset_userdata('imazon_nome');
                        $this->session->set_userdata( array( "imazon_nome" => $dados['nome'] ) ) ;
                    }

					redirect('finalizarPedidoMatriculasEmGrupo');
                } else {
                    $this->session->set_flashdata('danger', 'N&atilde;o foi poss&iacute;vel alterar seus dados de cobrança. Tente novamente!');
                    redirect('endereco_cobranca_grupo');
                }
            }
        }

		require_once APPPATH . 'libraries/CarrinhoDeCompras.php';
		$data['carrinhos'] = [new CarrinhoDeCompras()];
		//$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!');

        $this->load->library('table');
        $this->parser->parse('aluno/include/head', $data);
        $this->load->view('aluno/include/sidebar');
        $this->load->view('aluno/tela/endereco_cobranca_grupo');
        $this->load->view('aluno/include/foot');
    }

    public function valida_ddd($ddd)
    {
        if( strlen($ddd)==2 && $ddd>="11" )
        {
            return TRUE;
        }
        else
        {
            $this->form_validation->set_message('valida_ddd', 'O campo ddd deve ter 2 digitos e não pode ser menor do que 11');
            return FALSE;
        }
    }

    public function valida_telefone($telefone)
    {
        $primeiro_digito = substr($telefone, 0, -8);

        if( strlen($telefone)==9 && $primeiro_digito=="9")
        {
            return TRUE;
        }
        else
        {
            $this->form_validation->set_message('valida_telefone', 'O campo celular deve ter 9 digitos e o primeiro digito deve ser o número 9"');
            return FALSE;
        }
    }


    public function alterar_dados() {

        $usuario = $this->um->get_aluno()->result();

        $this->form_validation->set_rules('estado', 'estado', 'required|callback_valida_estado');
        $this->form_validation->set_rules('cidade', 'cidade', 'required');
        $this->form_validation->set_rules('cep', 'cep', 'required');
        $this->form_validation->set_rules('endereco', 'endereco', 'required');
        $this->form_validation->set_rules('numero', 'numero', 'required');
        $this->form_validation->set_rules('bairro', 'bairro', 'required');
        $this->form_validation->set_rules('ddd_telefone', 'ddd', 'trim|required|integer|callback_valida_ddd');
        $this->form_validation->set_rules('telefone', 'celular', 'trim|required|integer|callback_valida_telefone');

        if ($usuario[0]->nome == ""){
            //$this->form_validation->set_rules('nome', 'nome', 'min_length[6]|max_length[120]|required|callback_valida_nome');
        }

        if ($this->form_validation->run() == true) {
            
            $this->load->helper('array');
            $dados = elements(array('apelido', 'estado', 'cidade', 'cep', 'endereco', 'numero', 'complemento', 'bairro', 'ddd_telefone', 'telefone', 'ddd_celular', 'celular', 'data_nasc', 'rg', 'marketing'), $this->input->post());
            if($dados['marketing']=="on"){
             $dados['marketing']=1;   
            }
            else{
                $dados['marketing']=0; 
            }
            
            $dados['estado'] = strtoupper($dados['estado']);
            $dados['cidade'] = strtoupper($dados['cidade']);
            $dados['endereco'] = strtoupper($dados['endereco']);
            $dados['complemento'] = strtoupper($dados['complemento']);
            $dados['bairro'] = strtoupper($dados['bairro']);
            if($usuario[0]->nome=="") { 
                $dados['nome'] = $this->input->post("nome");
            }

            $this->um->update($dados);
            //$this->session->unset_userdata('imazon_nome');
            //$this->session->set_userdata( array( "imazon_nome" => $dados['nome'] ) ) ;

            $this->session->set_flashdata('success', 'Dados alterados com sucesso!');
            if ($this->input->post('redir')) {
                redirect($this->input->post('redir'));
            }
            redirect('cursos_matriculados');
        } else {

            $data = array('titulo' => 'Seus dados', 'palavra_chave' => 'Imazon Cursos', 'usuario' => $usuario);
            $this->parser->parse('aluno/include/head', $data);
            $this->load->view('aluno/include/sidebar');
            $this->load->view('aluno/tela/dados_cadastrais');
            $this->load->view('aluno/include/foot');
        }
    }

    public function valida_nome($nome) {
        if (count(explode(" ", $nome)) >= 2) {
            return true;
        } else {
            $this->form_validation->set_message('valida_nome', 'O nome precisa conter pelo menos duas palavras.');
            return false;
        }
    }

    public function altera_email() {
        $this->load->library("form_validation");
        $this->form_validation->set_rules('novoEmail', 'email', 'required|valid_email');

        if ($this->form_validation->run() == true) {
            if ($this->um->verifica_email_cadastrado2($this->input->post('novoEmail'))) {
                if ($this->um->atualizaEmail(array('email' => $this->input->post("novoEmail")))) {
                    $this->session->set_flashdata('success', 'Email alterado com sucesso!');
                    redirect("dados_cadastrais#Email");
                } else {
                    $this->session->set_flashdata('danger', 'N&atilde;o foi poss&iacute;vel alterar o seu email!');
                    redirect("dados_cadastrais#Email");
                }
            } else {
                $this->session->set_flashdata('danger', 'N&atilde;o foi poss&iacute;vel alterar o seu email!');
                redirect("dados_cadastrais#Email");
            }
        } else {
            $this->session->set_flashdata('danger', 'N&atilde;o foi poss&iacute;vel alterar o seu email!');
            redirect("dados_cadastrais#Email");
        }
    }

    public function altera_senha() {
       
        
        
        $this->load->library("form_validation");
        $this->form_validation->set_rules('senha_atual', 'senha_atual', 'required|min_length[6]');
        $this->form_validation->set_rules('senha_nova', 'senha_nova', 'required|min_length[6]');

        $senha_atual= str_replace(' ', '', $this->input->post("senha_atual"));
        $senha_nova=str_replace(' ', '', $this->input->post("senha_nova"));
        
        if ($this->form_validation->run() == true) {
            if ($this->um->atualizaSenha($senha_atual, $senha_nova)) {
                $this->session->set_flashdata('success', 'Senha alterada com sucesso!');
                redirect("dados_cadastrais#senha");
            } else {

                $this->session->set_flashdata('danger', 'N&atilde;o foi poss&iacute;vel alterar a sua senha. Digite corretamente a sua senha atual.');
                redirect("dados_cadastrais#senha");
            }
        } else {

            if (strlen($this->input->post("senha_nova")) < 6) {
                $this->session->set_flashdata('danger', 'N&atilde;o foi poss&iacute;vel alterar a sua senha. A sua senha nova deve conter pelo menos 6 caracteres.');
            } else {

                $this->session->set_flashdata('danger', 'N&atilde;o foi poss&iacute;vel alterar a sua senha. Digite corretamente a sua senha atual.');
            }

            redirect("dados_cadastrais#senha");
        }
    }

    public function valida_estado($estado) {
        if ($estado !== "Selecione") {
            return true;
        }
        $this->form_validation->set_message('valida_estado', 'Você precisa informar o estado.');
        return false;
    }

	public function atualizar_nome()
	{
	$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']);
        $nome=$email[0]['nome'];
        $cpf = $this->input->post("inputCPF", TRUE);

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

        $cpf_obj = new Cpf($cpf);

        $is_cpf = $cpf_obj->valida_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);
        
            $nome_api=json_decode($requisicao)->nome;
          
            if(($nome_api<>$nome) && ($nome_api<>"")){
                
                $this->cm->update_situacao_cadastro($id_fic, $cpf, $nome_api);
            }
            else{
                
            }
        
	}
}
