<?php


class Pagamento_OPAY extends CI_Controller { 
    
    function __construct() {
        
        parent::__construct();
        (isset($_SESSION['controle-aluno']) == TRUE) ? redirect('carreira') : '';
        $this->load->model('Cadastro_Model');
        $this->load->model('Cursos_Model');
        $this->load->model('Pagamento_Model');
        $this->load->library('Criptografia');
        $this->load->library('Url');
        $this->load->library('Boleto');
        $this->load->database();
    }
    
    public function teste() {
     
        $this->load->view('testewagner'); 
    }
    
    
    public function finalizarpedido() {
          
        if (isset($_SESSION['aluno']) == TRUE) {
            if($this->session->userdata("codigo_opayt") == NULL || empty($this->session->userdata("codigo_opayt")) ){
                redirect();
            }
            $id = $_SESSION['aluno']['id_aluno'];
            $aluno = $this->Cadastro_Model->getAlunoPorID($id);
//            $transacao = $this->transacao_opay();
//            $dados = array(
//                'ativo' => $this->Pagamento_Model->obtemclienteativo(),
//                'parcelas' => $this->gera_parcela(),
//                'termos' => $this->Cadastro_Model->obtemTermo(), 
//                'titulo' => 'Finalizar Pedido', 
//                'erro_conf' => NULL, 
//                'aluno' => $aluno,
//                'transacao' => $transacao
//                    );
//            $this->load->view('finalizarpedido_opay', $dados);
        $dados = array('descricao' => '','titulo' => 'Finalizar Pedido', 'aluno' => $aluno,);
            $this->load->view('finalizarpedido_opay_transparente', $dados); 
         } else {
             redirect();
         }
    }
    
    public function boletomovel() {
          
        if (isset($_SESSION['aluno']) == TRUE) {
            
            if ($this->url->dispostivo() == "mobile") {
            
            $id = $_SESSION['aluno']['id_aluno'];
            $aluno = $this->Cadastro_Model->getAlunoPorID($id);
            $dados = array('ativo' => $this->Pagamento_Model->obtemclienteativo(),'saldo' => $this->saldo(),'parcelas' => $this->gera_parcela(),'termos' => $this->Cadastro_Model->obtemTermo(), 'titulo' => 'Boleto Móvel', 'erro_conf' => NULL, 'aluno' => $aluno);
            $this->load->view('commons/pagamento/boleto_mobile', $dados);    
            } 
            
        } else {
             redirect();
         }
    }
    
    public function enviasms() {
            
            $ddd = $this->input->post('ddd_celular');
            $celular = $this->input->post('celular');
            $codigoBoleto = $this->input->post('codigo');
            $fatura = $this->input->post('fatura');
            $this->form_validation->set_rules('ddd_celular', 'Ddd', 'trim|required|min_length[2]|max_length[2]|is_numeric', array('required' => ' O DDD está em branco. ', 'min_length' => ' O campo ddd deve conter pelo menos 2 caracteres.', 'max_length' => ' O campo ddd não deve conter mais de 2 caracteres.','is_numeric' => ' O campo ddd deve conter apenas caracteres numéricos.'));
            $this->form_validation->set_rules('celular', 'Celular', 'trim|required|min_length[9]|max_length[9]|is_numeric', array('required' => ' O Celular está em branco. ', 'min_length' => ' O campo celular deve conter pelo menos 9 caracteres.', 'max_length' => ' O campo celular não deve conter mais de 9 caracteres.','is_numeric' => ' O campo celular deve conter apenas caracteres numéricos.'));
            
            if ($this->form_validation->run() == FALSE) {
            $form = validation_errors();
            $data = array('situacao' => 'form-erro', 'erro_form' => $form);
            echo json_encode($data);    
            } else {
                
                $telefone = $ddd.$celular;
                
                $mensagem = "Amazonia Boleto: ". str_replace(" ", "", str_replace(".", "", $codigoBoleto));
                $sms = $this->url->enviasms_1_3($telefone, $mensagem, $this->session->userdata("aluno")['email']);   
                
                if ($sms == 1) {
                  $log_sms = array("ddd"=> $ddd, "celular" => $celular,
                                    "codigo_boleto"=>str_replace(" ", "", str_replace(".", "", $codigoBoleto)), "codigo_fatura"=>$fatura, "data_envio"=>date('Y-m-d H:i:s'));
                  
                  $this->Pagamento_Model->logsms($log_sms);
                  $this->session->unset_userdata('id_transacao');
                  $data = array('situacao' => 'enviado');
                  echo json_encode($data);
                } else {
                   $data = array('situacao' => 'erro');
                  echo json_encode($data); 
                }
            }

    }
    

    
    public function descricao() {

        $certificados = '';
        foreach ($this->cart->contents() as $items) {
            $certificados .= $items['name'] . ', ';
        }
        $regra = substr($certificados, 0, -2);
        $descricao = 'TAXA DE ENVIO DO(S) CERTIFICADO(S) ' . $regra;

        return $descricao;
    }
    
    /**
     * Funcao que executa a divisão das parcelas do valor
     */
     public function gera_parcela() {

        $valor = $this->cart->total();
        $MIN_VAL = 5;
        $NUM_PARCELAS = 6;
        $parcelas = array();

        for ($i = 1; $i <= $NUM_PARCELAS; $i++) {
            
            $valor_parcelado = $valor / $i;
            if ($valor_parcelado < $MIN_VAL) {
            break;
            } 
            $parcelas[] = $valor_parcelado;            
        }
       
        if (empty($parcelas)) {
        return FALSE;   
        }else {
        return $parcelas;
        }
    }
    
    public function transacao_opay() {
        $id_transacao = $_SESSION['id_transacao'];
        
        return $this->Pagamento_Model->recuperatransacao($id_transacao);
    }
   
    public function transacao($forma) {
        $codigo = $this->Pagamento_Model->gera_hash();
        $this->session->set_userdata("id_transacao", $codigo);
        if ($forma == 'BoletoBancario' ||  $forma == 'Debito') {
        $dados = array('id_transacao' => $codigo, 'data_transacao' => date('Y-m-d'), 'situacao' => 0, 'tipopagamento' => 0, 'valor' => $this->cart->total(), 'id_aluno' => $_SESSION['aluno']['id_aluno'], 'certificado' => 0, 'data_envio' => '0000-00-00','tipo' => 'CE');
        $this->Pagamento_Model->inseretransacao($dados);
        } else {
        $dados = array('id_transacao' => $codigo, 'data_transacao' => date('Y-m-d'), 'situacao' => 0, 'tipopagamento' => $forma, 'valor' => $this->cart->total(), 'id_aluno' => $_SESSION['aluno']['id_aluno'], 'certificado' => 0, 'data_envio' => '0000-00-00','tipo' => 'CE');
        $this->Pagamento_Model->inseretransacao($dados);    
        }
        $id_transacao = $_SESSION['id_transacao'];
        
        $this->Pagamento_Model->recuperatransacao($id_transacao);
        $this->Pagamento_Model->item_transacao($id_transacao);
        $this->Pagamento_Model->log_transacao($id_transacao);
    }
    
    
   
  
    public function financeiro() {
      
        if (isset($_SESSION['aluno']) == TRUE) {
            $transacao_pendente = $this->Pagamento_Model->getTransacaoPendentePorIdResult();
            $transacaopaga = $this->Pagamento_Model->transacaopaga();
            $id = $_SESSION['aluno']['id_aluno'];
            $aluno = $this->Cadastro_Model->getAlunoPorID($id);
            $dados = array('descricao' => 'O aluno pode acompanhar todos os pagamentos realizados no Amazônia Cursos','pendente' => $transacao_pendente,'transacaopaga' => $transacaopaga,'termos' => $this->Cadastro_Model->obtemTermo(), 'titulo' => 'Financeiro', 'aluno' => $aluno);
            $this->load->view('financeiro', $dados);    
         } else {
             redirect();
         }
    }

}