<?php

App::uses('Helper', 'View/Helper');

/**
 * TODO refatorar para inserir o tratamento de tags do $this->Form (FormHelper)
 * cartoes de teste pagseguro
 * http://www.uolhost.com.br/blog/como-simular-um-pagamento-com-cartao-de-credito-na-loja-virtual-usando-o-pagseguro#rmcl
 * @author fabricio
 *
 */
class PagSeguroHelper extends Helper {
    
    public $helpers = array(
            'Form',
            'Session',
            );

    /**
     * Criando o form 
     * @return String
     */
    public function create($encoding = ''){
        $out = '<form action="https://pagseguro.uol.com.br/v2/checkout/payment.html" method="post" target="_blank">';

        if ($encoding) {
            $out .= '<input type="hidden" name="encoding" value="' .$encoding. '" />';
        }
        if (Configure::read('PagSeguro.email')) {
            $out .= '<input type="hidden" name="receiverEmail" value="' .Configure::read('PagSeguro.email'). '">';
        }
        
        $out .= '<input type="hidden" name="senderName" value="' .$this->Session->read('Auth.User.name'). '">';
        $out .= '<input type="hidden" name="senderEmail" value="' .$this->Session->read('Auth.User.email'). '">';
        
        $out .= '<input type="hidden" name="currency" value="BRL">';
        return $this->output($out);
    }

    /**
     * Cria os hidden com os dados necessários para envio das informações
     * @param array $data = null
     * 
     * ex: $data = array (
     *             'id' => 123,                       // id do item
     *             'description' => 'Lorem Ipsum',    // descricao
     *             'amount' => '100.50',              // valor total do item 
     *             'quantity' => '1',                 // quantidade vendida
     *             'wheight' => '0',                  // peso
     *         );
     * 
     * @return String
     */
    public function formatItem($indice, $data = null) {
        
        $out = '';
        if (!empty($data['id'])) {
            $out .= '<input type="hidden" name="itemId' .$indice. '" value="' .$data['id']. '">';
        }
        if (!empty($data['description'])) {
            $out .= '<input type="hidden" name="itemDescription' .$indice. '" value="' .$data['description']. '">';
        }
        if (!empty($data['amount'])) {
            $out .= '<input type="hidden" name="itemAmount' .$indice. '" value="' .$data['amount']. '">';
        }
        if (!empty($data['quantity'])) {
            $out .= '<input type="hidden" name="itemQuantity' .$indice. '" value="' .$data['quantity']. '">';
        }
        if (!empty($data['wheight'])) {
            $out .= '<input type="hidden" name="itemWeight' .$indice. '" value="' .$data['wheight']. '">';
        }
        return $out;
    }

    /**
     * Cria o button submit
     * @param array $params = array
     * @return String
     */
    public function submit($params = array()){
        $out = '<input type="image" name="submit" src="https://p.simg.uol.com.br/out/pagseguro/i/botoes/pagamentos/120x53-pagar.gif" alt="Pague com PagSeguro">'; 
        return $this->output($out);
    }

    /**
     * Finaliza o form
     * @return String
     */
    public function end(){
        $out = '</form>';
        return $this->output($out);
    }
}
