<?php

class ControllerPaymentBoletoItau extends Controller {
	protected function index() {
		$this->language->load('payment/boleto_itau');
		
		$this->data['text_instruction'] = $this->language->get('text_instruction');
		$this->data['text_instruction2'] = $this->language->get('text_instruction2');
		$this->data['text_bank'] = $this->language->get('text_bank');
		$this->data['text_payment'] = $this->language->get('text_payment');
		$this->data['text_linkboleto'] = $this->language->get('text_linkboleto');
		$this->data['text_linkboleto2'] = $this->language->get('text_linkboleto2');
		
		$this->data['button_continue'] = $this->language->get('button_continue');
		$this->data['button_back'] = $this->language->get('button_back');
		
			
		$this->load->library('encryption');
		$encryption = new Encryption($this->config->get('config_encryption'));
    	$this->data['idboleto'] = $encryption->encrypt($this->session->data['order_id']);
		$this->data['continue'] = $this->url->link('checkout/success');
		$this->data['back'] = $this->url->link('checkout/checkout', '', 'SSL');
		$this->id = 'payment';

		if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/boleto_itau.tpl')) {
			$this->template = $this->config->get('config_template') . '/template/payment/boleto_itau.tpl';
		} else {
			$this->template = 'default/template/payment/boleto_itau.tpl';
		}
		
		$this->render(); 
	}
	
	public function confirm() {
		$this->load->library('encryption');
		
		$encryption = new Encryption($this->config->get('config_encryption'));
		$order_id = $encryption->encrypt($this->session->data['order_id']);
		
		$this->load->language('payment/boleto_itau');
		
		$this->load->model('checkout/order');
		
		$codigo_boleto = $order_id;
		
		$comment  = $this->language->get('text_instruction') . "\n\n";
		$comment .= sprintf($this->language->get('text_linkboleto'), $codigo_boleto). "\n\n";
		$comment .= $this->language->get('text_payment');
		
		$this->model_checkout_order->confirm($this->session->data['order_id'], $this->config->get('boleto_itau_order_status_id'), $comment);
	}

	public function callback() {

    function TiraAcento($str){
        return strtr(utf8_decode($str),utf8_decode('ŠŒŽšœžŸ¥µÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýÿ'),'SOZsozYYuAAAAAAACEEEEIIIIDNOOOOOOUUUUYsaaaaaaaceeeeiiiionoooooouuuuyy');
    }


		$this->load->library('encryption');
		$encryption = new Encryption($this->config->get('config_encryption'));
		$order_id = $encryption->decrypt(@$this->request->get['order_id']);
		$this->load->model('checkout/order');
		$order_info = $this->model_checkout_order->getOrder($order_id);

        if($order_info){
        $dias_de_prazo_para_pagamento       = $this->config->get('boleto_itau_dia_prazo_pg');
        $taxa_boleto                        = $this->config->get('boleto_itau_taxa_boleto');
        $data_venc                          = date("d/m/Y", time() + ($dias_de_prazo_para_pagamento * 86400));
        $valor_cobrado                      = $order_info['total'];
        $valor_cobrado                      = str_replace(",", ".",$valor_cobrado);
        $valor_boleto                       = number_format($valor_cobrado+$taxa_boleto, 2, ',', '');
		
		/*
		  OLD:
			$dadosboleto["nosso_numero"]        = str_pad($order_info['order_id'], 8, "0", STR_PAD_LEFT);
			
		  Incluindo digito de prefixo... Matheus
		
		*/
		
		
		$prefixo = $this->config->get('boleto_itau_prefixo');
		
		if($prefixo == "")
			$dadosboleto["nosso_numero"]        = str_pad($order_info['order_id'], 8, "0", STR_PAD_LEFT);
		else		
			$dadosboleto["nosso_numero"]        = $prefixo . str_pad($order_info['order_id'], 7, "0", STR_PAD_LEFT);		
		
        $dadosboleto["numero_documento"]    = str_pad($order_info['order_id'], 8, "0", STR_PAD_LEFT);
        $dadosboleto["data_vencimento"]     = $data_venc;
        $dadosboleto["data_documento"]      = date("d/m/Y");
        $dadosboleto["data_processamento"]  = date("d/m/Y");
        $dadosboleto["valor_boleto"]        = $valor_boleto;
        $dadosboleto["sacado"]              = strtoupper(TiraAcento($order_info['payment_firstname'] ." ".$order_info['payment_lastname']));
        if(isset($order_info['payment_number']) && $order_info['payment_complement']){
        $dadosboleto["endereco1"]           = strtoupper(TiraAcento($order_info['payment_address_1'] . ', ' . $order_info['payment_number'] . ' - ' . $order_info['payment_complement'] . ' - ' . $order_info['payment_address_2']));
        } else {
        $dadosboleto["endereco1"]           = strtoupper(TiraAcento($order_info['payment_address_1'] . " - " .$order_info['payment_address_2']));
        }
        $dadosboleto["endereco2"]           = strtoupper(TiraAcento("CEP: " . $order_info['payment_postcode'] . " - " . $order_info['payment_city']. " / " . $order_info['payment_zone']));
        $dadosboleto["demonstrativo1"]      = $this->config->get('boleto_itau_demonstrativo1');
        $dadosboleto["demonstrativo2"]      = $this->config->get('boleto_itau_demonstrativo2');
        $dadosboleto["demonstrativo3"]      = $this->config->get('boleto_itau_demonstrativo3');
        $dadosboleto["instrucoes1"]         = $this->config->get('boleto_itau_instrucoes1');
        $dadosboleto["instrucoes2"]         = $this->config->get('boleto_itau_instrucoes2');
        $dadosboleto["instrucoes3"]         = $this->config->get('boleto_itau_instrucoes3');
        $dadosboleto["instrucoes4"]         = $this->config->get('boleto_itau_instrucoes4');
        $dadosboleto["quantidade"]          = "";
        $dadosboleto["valor_unitario"]      = "";
        $dadosboleto["aceite"]              = "N";
        $dadosboleto["especie"]             = "R$";
        $dadosboleto["especie_doc"]         = "";
        $converte_conta                     = $this->config->get('boleto_itau_conta');
        $dadosboleto["agencia"]             = $this->config->get('boleto_itau_agencia');
        $dadosboleto["conta"]               = $this->config->get('boleto_itau_conta');
        $dadosboleto["conta_dv"]            = $this->config->get('boleto_itau_conta_dv');
        $dadosboleto["carteira"]            = $this->config->get('boleto_itau_carteira');
        $dadosboleto["identificacao"]       = $this->config->get('boleto_itau_identificacao');
        $dadosboleto["cpf_cnpj"]            = $this->config->get('boleto_itau_cpf_cnpj');
        $dadosboleto["endereco"]            = strtoupper(TiraAcento($this->config->get('boleto_itau_endereco') . ' - ' . $this->config->get('boleto_itau_cidade_uf')));
        $dadosboleto["cidade_uf"]           = strtoupper(TiraAcento($this->config->get('boleto_itau_cidade_uf')));
        $dadosboleto["cedente"]             = strtoupper(TiraAcento($this->config->get('boleto_itau_cedente')));
        $dadosboleto["empresa_logo"]        = "";
        ob_start();
        include("boleto/include/funcoes_itau.php");
        $ouput = include("boleto/include/layout_itau.php");
        }else {
    	$ouput = "<script>
        alert(\"Atencao!\\n \\nBoleto bancario nao encontrado!\\n \\nEntre em contato com nosso atendimento.\\n \\nVocê sera redirecionado para a Central do Cliente.\");
        window.location = 'index.php?route=information/contact';
        </script>";
        }
        $this->response->setOutput($ouput);
	}
}
?>