<?php

class Lote_Model extends CI_Model {

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

    public function obtemcertificadonovos() {
        $this->db->select('c.id_certificado, c.data_registro,c.endereco as endc,c.situacao,a.nome as nomealuno, a.endereco,a.numero,a.complemento,a.cep,a.bairro,a.cidade,a.estado, d.nome as nomecurso');
        $this->db->join('historico h', 'h.id_historico = c.id_historico');
        $this->db->join('aluno a', 'a.id_aluno = h.id_aluno');
        $this->db->join('curso d', 'd.id_curso = h.id_curso');
        $this->db->where('h.certificado', 1);
        $this->db->where_in('h.concluido ', array(1,3));
        $this->db->where('c.situacao', 0);
        $query = $this->db->get('certificado c');
        return $query->result();
    }

    public function lista($limite,$quantidade) {
        
        $this->db->select('h.id_aluno,c.id_certificado,a.nome AS nomealuno, a.endereco, a.numero, a.complemento, a.cep, a.bairro, a.cidade, a.estado, d.nome AS nomecurso, COUNT( h.id_aluno ) AS quantidade');
        $this->db->join('historico h', 'h.id_historico = c.id_historico');
        $this->db->join('aluno a', 'a.id_aluno = h.id_aluno');
        $this->db->join('curso d', 'd.id_curso = h.id_curso');
        $this->db->where('h.certificado', 1);
        $this->db->where_in('h.concluido ', array(1,3));
        $this->db->where('c.situacao', 0);
        $this->db->group_by('h.id_aluno');
        if ($limite <= 2) {
        $this->db->having('quantidade > 0 AND quantidade = ' .$limite); 
        } else {
        $this->db->having('quantidade > 0 AND quantidade >= ' .$limite);     
        }
        $this->db->order_by('quantidade ASC , a.estado ASC, h.id_aluno DESC');
        $this->db->limit($quantidade);
        $query = $this->db->get('certificado c');

        return $query->result();
    }
    
    public function getAllCertificadosAluno($id_aluno) {
        
        $this->db->select('c.id_certificado,a.id_aluno,a.nome as nomealuno,a.endereco,a.numero,a.complemento,a.cep,a.bairro,a.cidade,a.estado,d.nome as nomecurso, h.id_historico,h.carga_horaria, h.nota, h.primeiro_dia, h.ultimo_dia, h.nota, h.concluido,h.cod_autenticacao, d.ementa');
        $this->db->join('historico h', 'h.id_historico = c.id_historico');
        $this->db->join('aluno a', 'a.id_aluno = h.id_aluno');
        $this->db->join('curso d', 'd.id_curso = h.id_curso');
        $this->db->join('transacao t', 't.id_transacao = c.transacao');
        $this->db->where('h.certificado', 1);
        $this->db->where('c.id_tipo', 5);
        $this->db->where('c.situacao', 0);
        $this->db->where_in('h.concluido ', array(1,3));
        $this->db->where('h.id_aluno', $id_aluno);
        $query = $this->db->get('certificado c');
        
        return $query->result();
        
        
    }
    public function inserelote($nome) {
        
        date_default_timezone_set('America/Belem');
        
        $data = date('Y-m-d H:i:s', time());
        
        $date = date('Y-m-d', time());
        $hora = date('H:i:s', time());
        
        $dados = array(
            'data_criacao' => $data,
            'situacao' => 0
        );

        $this->db->insert('certificado_lote', $dados);
        
        $id = $this->db->insert_id();
        
        $arquivo = 'Lote_' . $id .'_' .$nome . '_' . $date . '_' . $hora . '.pdf';
        
        $this->db->set('url', $arquivo);
        $this->db->where('id_lote', $id);
        $this->db->update('certificado_lote'); 
        
    }
    
    public function ultimo() {
        $this->db->select('id_lote,url');
        $this->db->order_by('id_lote', 'DESC');
        $query = $this->db->get('certificado_lote')->row_array();
        
        return $query;
    }
    
    public function verifica($id_certificado) {
        
        $this->db->where('id_certificado', $id_certificado);
        $query = $this->db->get('certificado_lote_certificado');
        
        if ($query->num_rows() > 0) {
            return 1;
        } else {
            return array('id_certificado' => $id_certificado);
        }
    }

    public function certificado_lote_certificado($id, $id_certificado) {
        
         $dados = array(
            'id_lote' => $id,
            'id_certificado' => $id_certificado
        );
         
        $this->db->insert('certificado_lote_certificado', $dados);
    }
    
    public function get_lote_certificado($id_lote) {
        
        $this->db->where('id_lote', $id_lote);
        $query = $this->db->get('certificado_lote_certificado');
        
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return FALSE;
        }
        
    }
    
    public function atualizalote($id_lote, $situacao, $data) {
        
        $this->db->set('situacao', $situacao);
        $this->db->set('data_emissao', $data);
        $this->db->where('id_lote', $id_lote);
        $this->db->update('certificado_lote'); 
    }
    
    public function inserecertificados($dados, $id_lote) {
        
        $this->db->insert('certificado', $dados);
        
        $id_certificado = $this->db->insert_id();
        
        $data = array('id_lote' => $id_lote, 'id_certificado' => $id_certificado);
        
        $this->db->insert('certificado_lote_certificado', $data);
    }
    
    public function recupera_certificado($id) {
        
        $this->db->where('id_certificado', $id);
        $query = $this->db->get('certificado');
        
        if ($query->num_rows() > 0) {
            return $query->row_array();
        } else {
            return FALSE;
        }
    }
    
    public function get_certificado_lote_certificado($id_lote, $limite) {
        
        $this->db->select('cl.id_certificado as identificador, c.id_certificado,a.id_aluno,a.nome as nomealuno,a.endereco,a.numero,a.complemento,a.cep,a.bairro,a.cidade,a.estado,d.nome as nomecurso, h.id_historico,h.carga_horaria, h.nota, h.primeiro_dia, h.ultimo_dia, h.nota, h.concluido,h.cod_autenticacao, d.ementa');
        $this->db->join('historico h', 'h.id_historico = c.id_historico');
        $this->db->join('aluno a', 'a.id_aluno = h.id_aluno');
        $this->db->join('curso d', 'd.id_curso = h.id_curso');
        $this->db->where('c.id_certificado = cl.id_certificado');
        $this->db->where('h.certificado', 1);
        $this->db->where_in('h.concluido ', array(1,3));
        $this->db->where('c.situacao', 0);
        $this->db->where('cl.id_lote', $id_lote);
        $this->db->order_by('a.estado ASC, h.id_aluno DESC');
        $query = $this->db->get('certificado c, certificado_lote_certificado cl');
        
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return FALSE;
        }
    }

        public function get_certificado_lote_certificado2($id_lote, $limite) {
        
        $this->db->select('cl.id_certificado as identificador, c.id_certificado,a.id_aluno,a.nome as nomealuno,a.endereco,a.numero,a.complemento,a.cep,a.bairro,a.cidade,a.estado,d.nome as nomecurso, h.id_historico,h.carga_horaria, h.nota, h.primeiro_dia, h.ultimo_dia, h.nota, h.concluido,h.cod_autenticacao, d.ementa');
        $this->db->join('historico h', 'h.id_historico = c.id_historico');
        $this->db->join('aluno a', 'a.id_aluno = h.id_aluno');
        $this->db->join('curso d', 'd.id_curso = h.id_curso');
        $this->db->where('c.id_certificado = cl.id_certificado');
        $this->db->where('h.certificado', 1);
        $this->db->where_in('h.concluido ', array(1,3));

        $this->db->where('cl.id_lote', $id_lote);
        $this->db->order_by('a.estado ASC, h.id_aluno DESC');
        $query = $this->db->get('certificado c, certificado_lote_certificado cl');
        
        if ($query->num_rows() > 0) {
            return $query->result();
        } else {
            return FALSE;
        }
    }
    
    public function lista_lote() {
        $this->db->select('id_lote, url, DATE_FORMAT(data_criacao, "%Y-%m-%d") data, DATE_FORMAT(data_criacao, "%H:%i:%s") hora');
        $this->db->where('situacao', 0);
        $this->db->order_by('id_lote', 'DESC');
        $query = $this->db->get('certificado_lote');
        
        return $query->result();
    }

    public function quantidade() {
        
        $this->db->select('a.nome AS nomealuno, a.endereco, a.numero, a.complemento, a.cep, a.bairro, a.cidade, a.estado, d.nome AS nomecurso, COUNT( h.id_aluno ) AS quantidade');
        $this->db->join('historico h', 'h.id_historico = c.id_historico');
        $this->db->join('aluno a', 'a.id_aluno = h.id_aluno');
        $this->db->join('curso d', 'd.id_curso = h.id_curso');
        $this->db->where('h.certificado', 1);
        $this->db->where_in('h.concluido ', array(1,3));
        $this->db->where('c.situacao', 0);
        $this->db->group_by('h.id_aluno');
        $this->db->having('quantidade > 0 AND quantidade = 1'); 
        $this->db->order_by('quantidade ASC , a.estado ASC');
        $query = $this->db->get('certificado c');

        return $query->num_rows();
    }
    
    public function quantidade_2() {
        
        $this->db->select('a.nome AS nomealuno, a.endereco, a.numero, a.complemento, a.cep, a.bairro, a.cidade, a.estado, d.nome AS nomecurso, COUNT( h.id_aluno ) AS quantidade');
        $this->db->join('historico h', 'h.id_historico = c.id_historico');
        $this->db->join('aluno a', 'a.id_aluno = h.id_aluno');
        $this->db->join('curso d', 'd.id_curso = h.id_curso');
        $this->db->where('h.certificado', 1);
        $this->db->where_in('h.concluido ', array(1,3));
        $this->db->where('c.situacao', 0);
        $this->db->group_by('h.id_aluno');
        $this->db->having('quantidade > 0 AND quantidade = 2'); 
        $this->db->order_by('quantidade ASC , a.estado ASC');
        $query = $this->db->get('certificado c');

        return $query->num_rows();
    }
    public function quantidade_3() {
        
        $this->db->select('a.nome AS nomealuno, a.endereco, a.numero, a.complemento, a.cep, a.bairro, a.cidade, a.estado, d.nome AS nomecurso, COUNT( h.id_aluno ) AS quantidade');
        $this->db->join('historico h', 'h.id_historico = c.id_historico');
        $this->db->join('aluno a', 'a.id_aluno = h.id_aluno');
        $this->db->join('curso d', 'd.id_curso = h.id_curso');
        $this->db->where('h.certificado', 1);
        $this->db->where_in('h.concluido ', array(1,3));
        $this->db->where('c.situacao', 0);
        $this->db->group_by('h.id_aluno');
        $this->db->having('quantidade > 0 AND quantidade >= 3'); 
        $this->db->order_by('quantidade ASC , a.estado ASC');
        $query = $this->db->get('certificado c');

        return $query->num_rows();
    }
    
    public function atualizacertificado($id, $situacao) {
        
        $this->db->set('situacao', $situacao);
        $this->db->where('id_certificado', $id);
        $this->db->update('certificado'); 
    }
    
    public function getAllCertificadosPorCertificado($id_certificado) {
        
        $this->db->select('c.id_certificado,a.id_aluno,a.nome as nomealuno,a.endereco,a.numero,a.complemento,a.cep,a.bairro,a.cidade,a.estado,d.nome as nomecurso, h.id_historico,h.carga_horaria, h.nota, h.primeiro_dia, h.ultimo_dia, h.nota, h.concluido,h.cod_autenticacao, d.ementa');
        $this->db->join('historico h', 'h.id_historico = c.id_historico');
        $this->db->join('aluno a', 'a.id_aluno = h.id_aluno');
        $this->db->join('curso d', 'd.id_curso = h.id_curso');
        $this->db->where('h.certificado', 1);
        $this->db->where('c.id_tipo', 5);
        $this->db->where('c.situacao', 0);
        $this->db->where_in('h.concluido ', array(1,3));
        $this->db->where('c.id_certificado', $id_certificado);
        $query = $this->db->get('certificado c');
        
        return $query->result();
        
        
    }

}
