<?php
if (!defined('BASEPATH')) exit('No direct script access allowed');

class Financeiro extends CI_Controller {

    public function __construct() {

        parent::__construct();

        //session_start();

        $this->load->helper('string');

        $this->load->helper('criptografia');

        $this->load->helper('massinaturas');



        $this->load->library('form_validation');

        $this->load->library('pagination');



        $this->load->model('usuarios_model', 'um');

        $this->load->model('planos_model', 'pm');

        $this->load->model('Transacao_model', 'tm');



        $paginas = array("login", "logout", "validar_login", "atualizar_dados", "logar", "listen", "processa_pagamento", "alterar_dados_moip", "emitir_nfc", "emitir_nfp");

        

        //valida��o de login

        if (in_array($this->uri->segment(2), $paginas) === true) {

            return true;

        } else if ($this->uri->segment(2) == "usuarios_cursos_matriculados_certif") {

            return true;

        } else {

            $this->load->view('area_aluno/inc/header');

            $this->load->view('area_aluno/inc/sidebar');

        }

    }



    public function index() {//alterar 

        $this->validar_login();

        $this->load->library('table');
        
        $user_data = $this->session->all_userdata();

        $tr = $this->tm->get_faturas_planos_aluno( $user_data['email_aluno'] );
        

        if ($tr !== false) {

            $data['tr_certificados'] = $this->tm->get_faturas_certifica_aluno($_SESSION['email_aluno']);

            $data['transacoes']      = $tr;

        } else {

            $data['tr_certificados'] = null;

            $data['transacoes']      = null;

        }

        $this->load->view('area_aluno/tela/financeiro', $data);

        $this->__footer();

    }



    public function pedido($transacao = null) {//alterar 

        $this->validar_login();

        $this->load->library('table');

        $this->load->model("transacao_model", "tm");



        if ($_SESSION['codigo_transacao'] && $_SESSION['codigo_transacao'] !== "")
        {

            $data['transacao'] = $this->tm->get_by_id($_SESSION['codigo_transacao'], $_SESSION['email_aluno']);

            if ($data['transacao'] !== false) {

                $data['total'] = $data['transacao'][0]->valor;

                $this->load->view('area_aluno/tela/pedido', $data);

                $this->__footer();

            } else {

                redirect('planos');

            }

        } else {

            redirect('planos');

        }

    }



    public function gerarPagamento() {



        $transacao = $_SESSION['codigo_transacao'];

        $aluno = $this->um->get_by_id_fic($_SESSION['email_aluno'])->result();

        $transacao = $this->tm->get_by_id($transacao, $_SESSION['email_aluno']);

        $Nome = $aluno[0]->nome;

        $tipo = $transacao[0]->tipo;

        $tipoplano = $transacao[0]->cod_plano;

        $nome_plano = $this->tm->getNomePlanoById($tipoplano);

        if ($tipo == 1) {

//            $descricao = "COMPRA DO PLANO " . $tipoplano;
            $descricao = "Compra do " . $nome_plano[0]['nome'];

        } else {

            $descricao = "";//"Fatura de Compra de Documentos Amaz�nia Cursos";

        }


        $Email = $aluno[0]->email;

        $valor = number_format($transacao[0]->valor / 100, 2, ".", ".");

        $idtransacao = "CURSOSVIP" . $transacao[0]->id;

        $IdPagador = $aluno[0]->id_aluno;

        $sexo = $this->input->post('sexo');

        $cpf = $this->input->post('Identidade');

        $nascimento = $this->input->post('DataNascimento');

        $Logradouro = $aluno[0]->endereco;

        $NumeroCasa = $aluno[0]->numero;

        $Complemento = $aluno[0]->complemento;

        $Bairro = $aluno[0]->bairro;

        $Cidade = $aluno[0]->cidade;

        $Estado = $aluno[0]->estado;

        $Cep = $aluno[0]->cep;
        
        /*
         *Alteração para solucionar problema de numero de telefone invalido 
         */
        if($aluno[0]->ddd_celular && $aluno[0]->celular)
        {
            $TelefoneFixo = $aluno[0]->ddd_celular . $aluno[0]->celular;
        }
        else if($aluno[0]->ddd_telefone && $aluno[0]->telefone)
        {
            $TelefoneFixo = $aluno[0]->ddd_telefone . $aluno[0]->telefone;
        }
//        $TelefoneFixo = $aluno[0]->ddd_telefone . $aluno[0]->telefone;

        $Forma = $this->input->post('Forma');
        /*
         * Alteração para solucionar problema de numero de parcelas na opção de pagamento boleto
         */
        $Parcelas = $this->input->post('Parcelas');
        if($Parcelas == NULL)
        {
            $Parcelas = '1';
        }
        $numerocartao = $this->input->post('CartaoNumero');

        $Expiracao = $this->input->post('Expiracao');

        $CodigoSeguranca = $this->input->post('CodigoSeguranca');

        $NomePortador = $this->input->post('NomePortador');

        $DataNascimento = $this->input->post('DataNascimento');

        if ($Expiracao == '') {

            $Expiracao = "00/00";

        }

        $ext = explode("/", $Expiracao);

        $mesvalidade = $ext[0];

        $anovalidade = $ext[1];



        //echo $Nome . "<br>" . $Email . "<br>" . $valor . "<br>" . $idtransacao . "<br>" . $IdPagador . "<br>" . $sexo . "<br>" . $cpf . "<br>" . $nascimento . "<br>" . $Logradouro . "<br>" . $NumeroCasa . "<br>" . $Complemento . "<br>" . $Bairro . "<br>" . $Cidade . "<br>" . $Estado . "<br>" . $Cep . "<br>" . $TelefoneFixo . "<br>" . $Forma . "<br>" . $Parcelas . "<br>" . $numerocartao . "<br>" . $Expiracao . "<br>" . $CodigoSeguranca . "<br>" . $NomePortador . "<br>" . $DataNascimento . "<br>" . $mesvalidade . "<br>" . $anovalidade;



        $emailPagamentoLoja = "suporte@curso.me";

        $consumerKey = "";

        $time = time() * 1000;

        $oauth_nonce = md5(microtime() . mt_rand());

        $urlPost = "https://api.bcash.com.br/service/createTransaction/xml/";

        $signature = array("oauth_consumer_key" => urlencode($consumerKey), "oauth_nonce" => urlencode($oauth_nonce),

            "oauth_signature_method" => urlencode("PLAINTEXT"), "oauth_timestamp" => urlencode($time), "oauth_version" => urlencode("1.0"),);

        $signature = base64_encode(http_build_query($signature, '', '&'));

        $oAuth = array("Authorization: OAuth realm=" . $urlPost . ",oauth_consumer_key=" . $consumerKey . ",oauth_nonce=" . $oauth_nonce . ",oauth_signature=" . $signature . ",oauth_signature_method=PLAINTEXT" . ",oauth_timestamp=" . $time . ",oauth_version=1.0"

        );

        $data = '{"products":[{"code":"' . $idtransacao . '","description":"' . $descricao . '","amount":"1","value":"' . $valor . '","extraDescription":"compra Mobile"}],"dependentTransactions":[{"email":"","value":""}],"buyer":{"address":{"address":"' . $Logradouro . '","number":"' . $NumeroCasa . '","complement":"' . $Complemento . '","neighborhood":"' . $Bairro . '","city":"' . $Cidade . '","state":"' . $Estado . '","zipCode":"' . $Cep . '"},"mail":"' . $Email . '","name":"' . $Nome . '","cpf":"' . $cpf . '","phone":"' . $TelefoneFixo . '","cellPhone":"' . $TelefoneFixo . '","gender":"' . $sexo . '","birthDate":"' . $DataNascimento . '","searchToken":""},"paymentMethod":{"code":"' . $Forma . '"},

"creditCard":{"holder":"' . $NomePortador . '","number":"' . $numerocartao . '","securityCode":"' . $CodigoSeguranca . '","maturityMonth":"' . $mesvalidade . '","maturityYear":"' . $anovalidade . '"},

"sellerMail":"' . $emailPagamentoLoja . '","orderId":"' . $idtransacao . '","free":"","freight":"","freightType":"","discount":"","addition":"","urlReturn":"https://www.imazonvip.com.br/Listen_Moip","urlNotification":"https://www.imazonvip.com.br/Listen_Moip","installments":"' . $Parcelas . '","campaignId":"","currency":"BRL","acceptedContract":"S","viewedContract":"S"}';



        $version = "1.0";

        $encode = "UTF-8";

        $params = array("data" => $data, "version" => $version, "encode" => $encode);

        ob_start();

        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $urlPost);

        curl_setopt($ch, CURLOPT_POST, 1);

        curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params, '', '&'));

        curl_setopt($ch, CURLOPT_HTTPHEADER, $oAuth);

        curl_exec($ch);



        /* XML ou Json de retorno */

        $json_str = ob_get_contents();

        $resposta = ob_get_contents();

        ob_end_clean();



        /* Capturando o httpcode para tratamento dos erros na requisi��o */

        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

        curl_close($ch);


        if ($httpCode != "200") {

            $result = @simplexml_load_string($resposta);

            $merror = utf8_decode($result->error->description);

            print utf8_encode("<script>alert('Transa��o Recusada. $merror!')</script>");

            print utf8_decode("<script>window.location.href = '../financeiro/pedido';</script>");

        } else {

            //$this->cart->destroy();

            $result = @simplexml_load_string($resposta);

            $transa = $result->{'transactionId'};
            

            $link = $result->{'paymentLink'};

            $mensagem = utf8_decode($result->{'message'});

            $status = $result->{'status'};



            if ($Forma == 10 && $link != '') {

                print utf8_decode("<script> window.location.href = '$link' ;</script>");

            }



            if ($Forma != 10 && $status ==7) {

			  print utf8_encode("<script>alert('Transa��o Recusada. $mensagem!')</script>");

              print utf8_decode("<script>window.location.href = '../financeiro/pedido' ;</script>");               

            }



             if($Forma!=10 && $status!=7){

              redirect('aluno/financeiro/recibo/'.$transa);

              } 

        }

    }



    public function recibo($recibo){

        $d['recibo'] = $recibo;

        $this->load->view('area_aluno/tela/transacao_cartao_sucesso', $d);

        $this->__footer();

    }

    

//fim gera pagamento

    //m�todo que efetua valida��o de login

    private function validar_login() {

        if (!isset($_SESSION['imazon']['email']) && !isset($_SESSION['imazon']['status'])):

            redirect('site/login');

        else:

            return true;

        endif;

    }

    

    public function emitir_nfp(){

        if($this->uri->segment(4)){

            $pedido = decodifica($this->uri->segment(4));

            $p = $this->tm->gera_nf_planos_aluno($_SESSION['email_aluno'],$pedido);

            if(count($p)===1){

                $a = $this->um->get_idfic_recibo($_SESSION['email_aluno'])->result();

                //$params = array('orientation' => 'P', 'unit' => 'mm', 'size' => 'A4');

                $this->load->library('fpdf');

                $this->fpdf->AliasNbPages();

                $this->fpdf->AddPage();

                $this->fpdf->SetMargins(19, 18);

                $this->fpdf->Image('imgs/logo_22.png', 19, 21); //logo

                $this->fpdf->SetFont('Arial', 'B', 9);

                $this->fpdf->Ln(1); //quebra de linha

                $this->fpdf->setX(220);

                $this->fpdf->setY("20");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', 'B', 14);

                $this->fpdf->Cell(0, 13, 'CIDADE APRENDIZAGEM', 0, 1, 'R');

                $this->fpdf->setY("25");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, utf8_decode('Razão social: Cidade Aprendizagem'), 0, 1, 'R');

                $this->fpdf->setY("28");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, utf8_decode('Travessa Quatorze de Março, 221'), 0, 1, 'R');

                $this->fpdf->setY("31");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, utf8_decode('Umarizal - Belém/PA - CEP: 66055-490'), 0, 1, 'R');

                $this->fpdf->setY("34");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, 'CNPJ: 10.910.194/0001-16', 0, 1, 'R');

                $this->fpdf->setY("70");

                $this->fpdf->setX("19");

                $this->fpdf->SetFont('Arial', 'B', 12);

                $this->fpdf->Cell(0, 13, 'Fatura CURSOSVIP'.$p[0]->id, 0, 1, 'L');

                $this->fpdf->setY("75");

                $this->fpdf->setX("19");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, 'Data da fatura: '.date('d/m/Y', strtotime($p[0]->data_compra)), 0, 1, 'L');

                $this->fpdf->setY("90");

                $this->fpdf->setX("19");

                $this->fpdf->SetFont('Arial', 'B', 8);

                $this->fpdf->Cell(0, 13, 'Faturado para: ', 0, 1, 'L');

                $this->fpdf->setY("94");

                $this->fpdf->setX("19");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, utf8_decode($a[0]->nome), 0, 1, 'L');

                $this->fpdf->setY("97");

                $this->fpdf->setX("19");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, utf8_decode($a[0]->endereco). utf8_decode(', Nº '.$a[0]->numero), 0, 1, 'L');

                $this->fpdf->setY("100");

                $this->fpdf->setX("19");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, utf8_decode($a[0]->bairro), 0, 1, 'L');

                $this->fpdf->setY("103");

                $this->fpdf->setX("19");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, utf8_decode($a[0]->cidade). ', '.$a[0]->estado. ', '.$a[0]->cep, 0, 1, 'L');

                $this->fpdf->setY("120");

                $this->fpdf->setX("19");

                $this->fpdf->SetFont('Arial', 'B', 12);

                $this->fpdf->Cell(0, 13, utf8_decode('Descrição'), 0, 1, 'C');

                $this->fpdf->setY('127');

                $this->fpdf->setX("19");

                $this->fpdf->SetFont('Arial', 'B', 8);

                $this->fpdf->Cell(0, 13, 'Item', 0, 1, 'L');

                $this->fpdf->setY('127');

                $this->fpdf->setX("100");

                $this->fpdf->SetFont('Arial', 'B', 8);

                $this->fpdf->Cell(0, 13, 'Valor', 0, 1, 'R');

                $linha = 134;

                $valor = 0;

                foreach($p as $pe){

                    $valor2 = $pe->valor;

                    $primeiro = substr($valor2, 0, strlen($valor2)-2);

                    $segundo  = substr($valor2, strlen($valor2)-2, strlen($valor2)+2);

                    $total = $primeiro.','.$segundo;

                    

                    $this->fpdf->setY($linha);

                    $this->fpdf->setX("19");

                    $this->fpdf->SetFont('Arial', '', 8);

                    $this->fpdf->Cell(0, 13, 'Assinatura do '.  utf8_decode($pe->nome), 0, 1, 'L');

                    $this->fpdf->setY($linha);

                    $this->fpdf->setX("100");

                    $this->fpdf->SetFont('Arial', '', 8);

                    $this->fpdf->Cell(0, 13, 'R$ '. $total, 0, 1, 'R');

                    $linha +=3;

                    $valor += 9.90;

                }

                $this->fpdf->setY('260');

                $this->fpdf->setX("100");

                $this->fpdf->SetFont('Arial', 'B', 8);

                $this->fpdf->Cell(0, 13, 'Gerado em '.date('d/m/Y'). utf8_decode(' às ').date('h:i'), 0, 1, 'R');

                $this->fpdf->Output();

            }else{

                redirect("aluno/financeiro");

            }

        }else{

            redirect("aluno/financeiro");

        }

    }

  

    

    public function emitir_nfc(){

        if($this->uri->segment(4)){

            $pedido = decodifica($this->uri->segment(4));

            $p = $this->tm->gera_nf_certificado_aluno($_SESSION['email_aluno'],$pedido);

            if(count($p)===1){

                $a = $this->um->get_idfic_recibo($_SESSION['email_aluno'])->result();
                

                //$params = array('orientation' => 'P', 'unit' => 'mm', 'size' => 'A4');

                $this->load->library('fpdf');

                $this->fpdf->AliasNbPages();

                $this->fpdf->AddPage();

                $this->fpdf->SetMargins(19, 18);

                $this->fpdf->Image('imgs/logo_22.png', 15, 21); //logo

                $this->fpdf->SetFont('Arial', 'B', 9);

                $this->fpdf->Ln(1); //quebra de linha

                $this->fpdf->setX(220);

                $this->fpdf->setY("20");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', 'B', 14);

                $this->fpdf->Cell(0, 13, 'CIDADE APRENDIZAGEM', 0, 1, 'R');

                $this->fpdf->setY("25");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, utf8_decode('Razão social: Cidade Aprendizagem'), 0, 1, 'R');

                $this->fpdf->setY("28");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, utf8_decode('Travessa Quatorze de Março, 221'), 0, 1, 'R');

                $this->fpdf->setY("31");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, utf8_decode('Umarizal - Belém/PA - CEP: 66055-490'), 0, 1, 'R');

                $this->fpdf->setY("34");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, 'CNPJ: 10.910.194/0001-16', 0, 1, 'R');

                $this->fpdf->setY("70");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', 'B', 12);

                $this->fpdf->Cell(0, 13, 'Fatura #'.$pedido, 0, 1, 'L');

                $this->fpdf->setY("75");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, 'Data da fatura: '.date('d/m/Y', strtotime($p[0]->dt_cadastro)), 0, 1, 'L');

                $this->fpdf->setY("90");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', 'B', 8);

                $this->fpdf->Cell(0, 13, 'Faturado para: ', 0, 1, 'L');

                $this->fpdf->setY("94");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, utf8_decode($a[0]->nome), 0, 1, 'L');

                $this->fpdf->setY("97");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, utf8_decode($a[0]->endereco). utf8_decode(', Nº ').$a[0]->numero, 0, 1, 'L');

                $this->fpdf->setY("100");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, utf8_decode($a[0]->bairro), 0, 1, 'L');

                $this->fpdf->setY("103");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', '', 8);

                $this->fpdf->Cell(0, 13, utf8_decode($a[0]->cidade). ', '.$a[0]->estado. ', '.$a[0]->cep, 0, 1, 'L');

                $this->fpdf->setY("120");

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', 'B', 12);

                $this->fpdf->Cell(0, 13, utf8_decode('Descrição'), 0, 1, 'C');

                $this->fpdf->setY('127');

                $this->fpdf->setX("10");

                $this->fpdf->SetFont('Arial', 'B', 8);

                $this->fpdf->Cell(0, 13, 'Item', 0, 1, 'L');

                $this->fpdf->setY('127');

                $this->fpdf->setX("100");

                $this->fpdf->SetFont('Arial', 'B', 8);

                $this->fpdf->Cell(0, 13, 'Valor', 0, 1, 'R');

                $linha = 134;

                $valor = 0;

                foreach($p as $pe){

                    $this->fpdf->setY($linha);

                    $this->fpdf->setX("10");

                    $this->fpdf->SetFont('Arial', '', 8);

                    $this->fpdf->Cell(0, 13, 'Taxa de envio do certificado impresso do curso '.  utf8_decode($pe->nome), 0, 1, 'L');

                    $this->fpdf->setY($linha);

                    $this->fpdf->setX("100");

                    $this->fpdf->SetFont('Arial', '', 8);

                    $this->fpdf->Cell(0, 13, 'R$ '.  '9,90', 0, 1, 'R');

                    $linha +=3;

                    $valor += 9.90;

                }

                $this->fpdf->setY('260');

                $this->fpdf->setX("100");

                $this->fpdf->SetFont('Arial', 'B', 8);

                $this->fpdf->Cell(0, 13, 'Gerado em '.date('d/m/Y').' �s '.date('h:i'), 0, 1, 'R');

                $this->fpdf->Output();

            }else{

                redirect("aluno/financeiro");

            }

        }else{

            redirect("aluno/financeiro");

        }

    }

  

    public function solicitar_certificado() {



        $this->validar_login();

        if ($this->uri->segment(4)) {

            $this->load->model('cursos_model', 'cm');



            $this->load->model('usuarios_model', 'um');



            $i = $this->cm->verifica_matricula_aluno_curso(decodifica($this->uri->segment(4)), $_SESSION['email_aluno']);



            $data['fatura_paga'] = $this->fm->verifica_fatura_paga_ceritificado_impressso($_SESSION['email_aluno'], $this->uri->segment(4))->result();



            if ($i === 1 && count($data['fatura_paga']) === 0) {

                $data['dados'] = $this->um->get_by_id_fic($_SESSION['email_aluno'])->result();

                $data['curso'] = $this->cm->get_curso(decodifica($this->uri->segment(4)))->result();

                $this->load->view('area_aluno/tela/solicitar_certificado', $data);

                $this->__footer();

            } else {

                redirect('aluno/curso/cursos_matriculados');

            }

        } else {

            redirect('aluno/curso/cursos_matriculados');

        }

    }



    private function __footer() {

        $this->validar_login();

        $this->load->view('modal-site/modal-login');

        $this->load->view('site/inc/footer');

    }



}

