<?php

class Assinatura extends CI_Controller {

    private $url  = "https://www.amazoniacursos.com.br/assets/img/assinatura/"; 
    
    function __construct() {

        parent::__construct();
        $this->load->model('Auditoria_Model');
        $this->load->database();
        $this->load->library('Criptografia');
        $this->load->library('Sanitize');
    }

    public function assinaturas() {

        if (isset($_SESSION['admin']) == TRUE) {
            $config = array("base_url" => base_url('assinaturas/p'), "per_page" => 8, "num_links" => 4, "uri_segment" => 3, "total_rows" => $this->Auditoria_Model->CountAllAssinaturas(), "full_tag_open" => "<ul class= 'pagination'>", "full_tag_close" => "</ul>", "first_link" => FALSE, "last_link" => FALSE, "first_tag_open" => "<li>", "first_tag_close" => "</li>", "prev_link" => "Anterior", "prev_tag_open" => "<li class='prev'>", "prev_tag_close" => "</li>", "next_link" => "Próximo", "next_tag_open" => "<li class='next'>", "next_tag_close" => "</li>", "last_tag_open" => "<li>", "last_tag_close" => "</li>", "cur_tag_open" => "<li class= 'active'><a href='#'>", "cur_tag_close" => "</a></li>", "num_tag_open" => "<li>", "num_tag_close" => "</li>");

            $this->pagination->initialize($config);
            $offset = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;

            $dados = array('controle' => $this,"total_rows" => $this->Auditoria_Model->CountAllAssinaturas(),'pagination' => $this->pagination->create_links(), 'admin' => $this->Auditoria_Model->getLoginAdminporID(), 'assinaturas' => $this->Auditoria_Model->obtemassinaturas($config['per_page'], $offset));
           
            $this->load->view('assinatura', $dados);
        } else {
            redirect();
        }
    }
    
    public function ativar() {
         if (isset($_SESSION['admin']) == TRUE) {
        $id_aluno = $this->criptografia->decodifica($this->input->post('id'));
        $ativar = $this->input->post('ativar');
        $info = array('ativo' => $ativar);
        
        $this->Auditoria_Model->atualizaAssinatura($info, $id_aluno);
        
        $data = array('situacao' => true);
        echo json_encode($data);
       }   
    }
    
    public function indeferir() {
         if (isset($_SESSION['admin']) == TRUE) {
        $id_aluno = $this->criptografia->decodifica($this->input->post('id'));
        $indeferir = $this->input->post('indeferir');
        $info = array('ativo' => $indeferir);
        
        $this->Auditoria_Model->atualizaAssinatura($info, $id_aluno);
        
        $data = array('situacao' => true);
        echo json_encode($data);
       }  
    }
    public function download() {

        $imagem = $this->input->post('imagem');
        
        $path = $_SERVER["DOCUMENT_ROOT"]."/assets/img/assinatura/" .$imagem;
        
        $data = file_get_contents($path);
        
        force_download($imagem, $data);
    }
    
    public function upload_old() {
        
        $id_aluno = $this->criptografia->decodifica($this->input->post('id'));
        $assinatura = $this->input->post('assinatura');

        $path = $_SERVER["DOCUMENT_ROOT"]."/assets/img/assinatura/";
       
        // definimos as configurações para o upload
        // determinamos o path para gravar o arquivo
        $configUpload['upload_path']   = $path;
        // definimos - através da extensão - 
        // os tipos de arquivos suportados
        $configUpload['allowed_types'] = 'jpg|png|jpeg';
        // definimos que o nome do arquivo
        // será alterado para um nome criptografado
        $configUpload['encrypt_name']   = TRUE;
        $configUpload['max_size']  = '20480';
 
        // passamos as configurações para a library upload
        $this->upload->initialize($configUpload);
        
        // verificamos se o upload foi processado com sucesso
        if ( ! $this->upload->do_upload('assinatura_alunos')) {
            // em caso de erro retornamos os mesmos para uma variável
            // e enviamos para a home
            $this->session->set_flashdata('erro-assinatura', $this->upload->display_errors());
            redirect('editarassinatura/' . $assinatura);
        }
        else{
            
              $upload = $this->upload->data();
              $nomeImagem = $upload['file_name'];
              $info = array('assinatura' => $nomeImagem);
             
              $this->Auditoria_Model->documentacaoassinatura($info, $id_aluno);
              $this->session->set_flashdata('sucesso-upload', '<div class="alert alert-success" role="alert"><i class="fa fa-check-circle"></i> Assinatura salva com sucesso</div>');
              
              redirect('editarassinatura/' . $this->criptografia->codifica($nomeImagem));
        }
    }
    
    public function upload() {
        
        
        $id_aluno = $this->criptografia->decodifica($this->input->post('id'));
        $assinatura = $this->input->post('assinatura');

        $path = $_SERVER["DOCUMENT_ROOT"] ."/assets/img/assinatura/";
        
        // definimos as configurações para o upload
        // determinamos o path para gravar o arquivo
        $configUpload['upload_path'] = $path;
        // definimos - através da extensão - 
        // os tipos de arquivos suportados
        $configUpload['allowed_types'] = 'jpg|png|jpeg';
        // definimos que o nome do arquivo
        // será alterado para um nome criptografado
        $configUpload['encrypt_name'] = TRUE;
        $configUpload['max_size'] = '20480';

        // passamos as configurações para a library upload
        $this->upload->initialize($configUpload);

        // verificamos se o upload foi processado com sucesso
        if (!$this->upload->do_upload('assinatura_alunos')) {
            
            // em caso de erro retornamos os mesmos para uma variável
            // e enviamos para a home
            $this->session->set_flashdata('erro-assinatura', '<div class="alert alert-warning" role="alert"><i class="fa fa-info-circle"></i> ' .$this->upload->display_errors(). '</div>');
            redirect('editarassinatura/' . $assinatura);
        } else {

            $upload = $this->upload->data();
            $nomeImagem = $upload['file_name'];
            var_dump($nomeImagem);
          
            $nomeAssinatura = $this->url.$nomeImagem;
            
            $info = array('assinatura' => $nomeAssinatura);

            $this->Auditoria_Model->documentacaoassinatura($info, $id_aluno);
            $this->session->set_flashdata('sucesso-upload', '<div class="alert alert-success" role="alert"><i class="fa fa-check-circle"></i> Assinatura salva com sucesso</div>');

            redirect('editarassinatura/' . $this->criptografia->codifica($nomeAssinatura));
        }
    }
    
    public function editarassinatura_old($assinatura) {
         if (isset($_SESSION['admin']) == TRUE) {
        $imagem = $this->criptografia->decodifica($assinatura);

        $path = $_SERVER["DOCUMENT_ROOT"]."/assets/img/assinatura/" . $imagem;//"../../assets/img/assinatura/" . $imagem;
        
        
        if (file_exists($path)) {            
            $dados = array('admin' => $this->Auditoria_Model->getLoginAdminporID(), 'assinatura' => $this->Auditoria_Model->obtemassinaturaporassinatura($imagem));
            $this->load->view('editarassinatura', $dados);
        } else {
            
            $this->session->set_flashdata('erro-editar', '<div class="alert alert-warning" role="alert"><i class="fa fa-info-circle"></i> O arquivo para edição não existe </div>');

            redirect('assinaturas');
        }
    }
  }
  
    public function editarassinatura($assinatura) {
        if (isset($_SESSION['admin']) == TRUE) {
           
            $imagem = $this->criptografia->decodifica($assinatura);
            
            $dados = array('admin' => $this->Auditoria_Model->getLoginAdminporID(), 'assinatura' => $this->Auditoria_Model->obtemassinaturaporassinatura($imagem));
            $this->load->view('editarassinatura', $dados);
        }
    }
    
    public function novotermo() {

        $conteudo = $this->input->post('termo');
        $this->Auditoria_Model->termo($conteudo);

        $data = array('situacao' => true);
        echo json_encode($data);
    }

}
