<?php

class Cursos_Model extends CI_Model {

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

    public function obtemCursosPorNome($nome, $limit = NULL, $offset = NULL) {
        if ($limit) {
            $this->db->limit($limit, $offset);
        }
        //$this->db->group_start();
        $this->db->where("liberado", 1);
        $this->db->or_where("liberado", 3);
       // $this->db->group_end();
       // $this->db->group_start();
        $this->db->like('nome', $nome);
        //$this->db->or_like('ementa', $nome);
        //$this->db->group_end();
        $this->db->order_by('locate(\'' . $nome . '\',nome)>0 desc, position(\'' . $nome . '\'in nome) asc, nome asc');
        $query = $this->db->get('curso');
        
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return FALSE;
        }
        
    }
    
     public function obtemCursos($limit = NULL, $offset = NULL) {
        
      
        if ($limit) {
            $this->db->limit($limit, $offset);
        }
        //$this->db->group_start();
        $this->db->join('historico h', 'h.id_curso = c.id_curso');
        $this->db->select("nome,h.id_curso");
        $this->db->where("liberado", 1);
        $this->db->or_where("liberado", 3);
        $this->db->group_by("h.id_curso");
        $this->db->order_by('count(h.id_curso)','DESC');
        $query = $this->db->get('curso c');
        
//        echo $this->db->last_query();
//        exit();
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return FALSE;
        }
        
    }
    
    public function countobtemCursosPorNome($nome, $limit = NULL, $offset = NULL) {
        
        $this->db->where("liberado", 1);
        $this->db->or_where("liberado", 3);
      
        $this->db->like('nome', $nome);
        $query = $this->db->get('curso');
        
//        echo  $this->db->last_query();
//        exit();
        
        if ($query->num_rows() > 0) {
            return count($query->result());
        } else {
            return FALSE;
        }
        
    }


    public function obtemCursosPorID($id) {

        
        $this->db->where('id_curso', $id);
        $query = $this->db->get('curso');

        return $query->result();
    }

    public function obtemCursosNomePorID($id) {
        $this->db->select('nome');
        $this->db->group_start();
        $this->db->where("liberado", 1);
        $this->db->or_where("liberado", 3);
        $this->db->group_end();
        $this->db->where('id_curso', $id);
        $query = $this->db->get('curso');

        return $query->row_array();
    }
    
    public function obtemcpf() {
       
        $this->db->where("id_aluno", $_SESSION['aluno']['id_aluno']);
        $query = $this->db->get('log_aluno');

        return $query->row_array();
    }
    
     public function insere_aluno_log($dados) {
       
         $this->db->insert('log_aluno', $dados);
    }

    public function CountAll($nome) {
        $this->db->group_start();
        $this->db->where("liberado", 1);
        $this->db->or_where("liberado", 3);
        $this->db->group_end();
        $this->db->group_start();
        $this->db->like('nome', $nome);
        $this->db->or_like('ementa', $nome);
        $this->db->group_end();
        $this->db->order_by('locate(\'' . $nome . '\',nome)>0 desc, position(\'' . $nome . '\'in nome) asc, nome asc');
        $query = $this->db->get('curso');
        return $query->num_rows();
    }

    public function obtemArea() {

        $this->db->where('situacao', 1);
        $query = $this->db->get('area');

        return $query->result();
    }
    
    public function obtemAreaEscolha() {

        $this->db->where('situacao != 0');
        $query = $this->db->get('area');

        return $query->result();
    }

    public function insereAlunoArea($nome) {

        foreach ($nome['nome'] as $nomes) {
            
            $this->db->select('id_area');
            $this->db->where('nome', $nomes);
            $this->db->where('situacao != 0');
            $query = $this->db->get('area')->row_array();
            
            foreach ($query as $area) {
                $dados = array('id_aluno' => $_SESSION['aluno']['id_aluno'], 'id_area' => $area);
                $this->db->insert('aluno_area', $dados);
            }
        }
    }

    public function obtemCursoAlunoArea($aluno) {
        $this->db->select('a.id_area, b.nome');
        $this->db->join('area b', 'a.id_area = b.id_area');
        $this->db->where('a.id_aluno', $aluno);
        $this->db->order_by('b.id_area, a.id_aluno_area  DESC');
        $query = $this->db->get('aluno_area a');
        return $query->row_array();
    }
    
    public function obtemConteudo($id) {
        
        $this->db->where('id_curso', $id);
         $this->db->group_by('url');
        $query = $this->db->get('link');
        
        return $query->result();
    }
    
    public function getAlternativasPorCurso($id_curso) {
        
        $this->db->where('id_curso', $id_curso);
        $query = $this->db->get('alternativa');
        
        return $query->result();
        
    }

    public function atualizacarga($historico, $data) {

        $this->db->where('id_historico', $historico);
        $this->db->where('id_aluno', $_SESSION['aluno']['id_aluno']);
        $query = $this->db->get('historico')->row_array();

        $verifica = $this->verificatransacaohistorico($historico);

        if ($query['concluido'] == 0) {
            if ($verifica == NULL) {
                $this->db->where('id_historico', $historico);
                $this->db->update('historico', $data);
            return TRUE;
            }
        } else {
            return FALSE;
        }
    }

    public function verificatransacaohistorico($historico) {
        
        $this->db->where('historico', $historico);
        
        $query = $this->db->get('itens_transacao');
        
        return $query->row_array();
    }
    
}
