<?php

class Auditoria_Model extends CI_Model {

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

    public function getLoginAdmin($login, $senha) {

        $this->db->where('login', $login);
        $this->db->where('senha', $senha);
        $query = $this->db->get('usuario');

        return $query->row_array();
    }
    
    public function getAlunoPorID($id) {
        $this->db->select('nome, email');
        $this->db->where("id_aluno", $id);
        $query = $this->db->get('aluno');

        if ($query->num_rows() > 0) {
            return $query->row_array();
        } else {
            return FALSE;
        }
    }

    public function getAluno($nome, $limit = NULL, $offset = NULL) {
        if ($limit) {
            $this->db->limit($limit, $offset);
        }
        $this->db->like('nome', $nome);
        $this->db->or_where('email', $nome);
        $query = $this->db->get('aluno');
        return $query->result();
    }

    public function CountAll($nome) {
        $this->db->like('nome', $nome);
        $this->db->or_where('email', $nome);
        $query = $this->db->get('aluno');
        return $query->num_rows();
    }

    public function getLoginAdminporID() {

        $this->db->where('id_usuario', $_SESSION['admin']['id_usuario']);
        $query = $this->db->get('usuario');

        return $query->row_array();
    }

    public function autalizadadoscadastrais($data, $id) {

        $this->db->where('id_aluno', $id);
        $this->db->update('aluno', $data);
    }

    public function getalteracaocpf($id) {

        $this->db->where('id_aluno', $id);
        $query = $this->db->get('log_aluno');

        return $query->result();
    }

    // ACADÊMICO
    public function getCursoHistorico($id_aluno) {
        $this->db->select('b.id_historico, a.nome, b.primeiro_dia,b.ultimo_dia,b.carga_horaria,b.nota, b.concluido, b.num_cliques');
        $this->db->where('b.id_curso = a.id_curso');
        $this->db->where('b.id_aluno', $id_aluno);
        $this->db->order_by('b.primeiro_dia, b.primeira_hora', 'DESC');
        $query = $this->db->get('curso a,historico b');
        return $query->result();
    }

    // FINANCEIRO
    public function obtemtransacao($id) {

        $this->db->select('a.id_transacao, a.data_transacao, a.tipopagamento, a.valor, a.situacao, a.id_historico');
        $this->db->where('a.id_aluno', $id);
        $this->db->where('a.data_transacao  >= "2017-01-01"');
        $this->db->order_by('a.data_transacao', 'DESC');
        $query = $this->db->get('transacao a')->result();

        if ($query) {
            $dados = array(
                'transacao' => array(),
            );

            foreach ($query as $valueS) {
                
            }
            if ($valueS->id_historico == 0) {
                foreach ($query as $value) {

                    $transa = $value->id_transacao;


                    $item = $this->obtemitemtransacao($transa);

                    $transacao = array('id_transacao' => $value->id_transacao, 'data' => date("d/m/Y", strtotime($value->data_transacao)), 'tipo' => $value->tipopagamento, 'valor' => $value->valor, 'situacao' => $value->situacao,
                        'itens_transacao' => array(),
                    );

                    foreach ($item as $itens) {

                        $historico = $itens->historico;


                        $curso = $this->obtemnomecurso($historico);

                        array_push($transacao['itens_transacao'], $curso);
                    }

                    array_push($dados['transacao'], $transacao);
                }

                return $dados;
            } else {

                foreach ($query as $value) {
                    $transa = $value->id_transacao;

                    $item = $this->obtemitemtransacao($transa);

                    $transacao = array('id_transacao' => $value->id_transacao, 'data' => date("d/m/Y", strtotime($value->data_transacao)), 'tipo' => $value->tipopagamento, 'valor' => $value->valor, 'situacao' => $value->situacao,
                        'itens_transacao' => array(),
                    );

                    $curso = $this->obtemnomecurso($value->id_historico);

                    array_push($transacao['itens_transacao'], $curso);
                    array_push($dados['transacao'], $transacao);
                }
                return $dados;
            }
        } else {
            return NULL;
        }
    }

    public function obtemtransacaonula($id) {

        $this->db->select('a.id_transacao, a.data_transacao, a.tipopagamento, a.valor, a.situacao, a.id_historico');
        $this->db->where('a.id_transacao', $id);
        $this->db->order_by('a.data_transacao', 'DESC');
        $query = $this->db->get('transacao a')->result();

        if ($query) {
            $dados = array(
                'transacao' => array(),
            );

            foreach ($query as $valueS) {
                
            }
            if ($valueS->id_historico == 0) {
                foreach ($query as $value) {

                    $transa = $value->id_transacao;


                    $item = $this->obtemitemtransacao($transa);

                    $transacao = array('id_transacao' => $value->id_transacao, 'data' => date("d/m/Y", strtotime($value->data_transacao)), 'tipo' => $value->tipopagamento, 'valor' => $value->valor, 'situacao' => $value->situacao,
                        'itens_transacao' => array(),
                    );

                    foreach ($item as $itens) {

                        $historico = $itens->historico;


                        $curso = $this->obtemnomecurso($historico);

                        array_push($transacao['itens_transacao'], $curso);
                    }

                    array_push($dados['transacao'], $transacao);
                }

                return $dados;
            } else {

                foreach ($query as $value) {
                    $transa = $value->id_transacao;

                    $item = $this->obtemitemtransacao($transa);

                    $transacao = array('id_transacao' => $value->id_transacao, 'data' => date("d/m/Y", strtotime($value->data_transacao)), 'tipo' => $value->tipopagamento, 'valor' => $value->valor, 'situacao' => $value->situacao,
                        'itens_transacao' => array(),
                    );

                    $curso = $this->obtemnomecurso($value->id_historico);

                    array_push($transacao['itens_transacao'], $curso);
                    array_push($dados['transacao'], $transacao);
                }
                return $dados;
            }
        } else {
            return NULL;
        }
    }

    public function obtemitemtransacao($transa) {

        $this->db->where('transacao', $transa);

        return $query = $this->db->get('itens_transacao')->result();
    }

    public function obtemnomecurso($historico) {


        $this->db->select('b.nome');
        $this->db->join('historico a', 'a.id_curso = b.id_curso');
        $this->db->where('a.id_historico', $historico);
        $query = $this->db->get('curso b')->result();

        return $query;
    }

    public function obtemTermo() {

        $this->db->select('id_termo,conteudo, status');
        $this->db->where("status", 1);
        $query = $this->db->get('termo');

        return $query->row_array();
    }

    public function termo($conteudo) {
        $data = date("Y-m-d H:i:s");
        $this->db->set('status', 0);
        $this->db->set('data_atualizacao', $data);
        $this->db->where('status', 1);
        $this->db->update('termo');

        $dados = array('data_publicacao' => $data, 'status' => 1, 'conteudo' => $conteudo);
        $this->db->insert('termo', $dados);
    }

    public function obtemassinaturas($limit = NULL, $offset = NULL) {
        if ($limit) {
            $this->db->limit($limit, $offset);
        }
        $this->db->select('b.assinatura, b.id_aluno, a.nome, a.email');
        $this->db->join('aluno a', 'a.id_aluno = b.id_aluno');
        $this->db->where('b.ativo', 0);
        $this->db->where('b.assinatura != "" ');
        $this->db->order_by('a.nome', 'ASC');
        $query = $this->db->get('documentacao_aluno b')->result();
        
        return $query;
    }

    public function CountAllAssinaturas() {


        $this->db->select('b.assinatura, b.id_aluno, a.nome, a.email');
        $this->db->join('aluno a', 'a.id_aluno = b.id_aluno');
        $this->db->where('b.ativo', 0);
        $this->db->where('b.assinatura != "" ');
        $this->db->order_by('a.nome', 'ASC');
        $query = $this->db->get('documentacao_aluno b')->num_rows();
      
        return $query;
    }
    
    public function obtemassinaturaporassinatura($assinatura) {
        $this->db->select('b.assinatura, b.id_aluno as id, a.nome, a.email, b.ativo');
        $this->db->join('aluno a', 'a.id_aluno = b.id_aluno');
        $this->db->where('b.assinatura != "" ');
        $this->db->where('b.id_aluno != "" ');
        $this->db->where('b.assinatura', $assinatura);
        $this->db->order_by('a.nome', 'ASC');
        $query = $this->db->get('documentacao_aluno b');
        
        return $query->row_array();
    }
    
    public function obtemdocumentacao($id_aluno) {
        
        $this->db->where('id_aluno', $id_aluno);
        $query = $this->db->get('documentacao_aluno');
        
        if ($query->num_rows() > 0) {
            return $query->row_array();
        } else {
            return FALSE;
        }
    }
    public function documentacaoassinatura($info, $id_aluno) {
        
        $doc = $this->obtemdocumentacao($id_aluno);
        
        if ($doc != FALSE) {
        $this->db->where('id_aluno', $id_aluno);
        $this->db->update('documentacao_aluno', $info);
        
        } else {
        $data = array('id_aluno' => $id_aluno, 'assinatura' => $info['assinatura'], 'ativo' => 0);    
        $this->db->insert('documentacao_aluno', $data);    
        }
    }
    
    public function atualizaAssinatura($info, $id_aluno) {
        
        $this->db->where('id_aluno', $id_aluno);
        $this->db->update('documentacao_aluno', $info);
    }

}
