function testCliente() { $carrinho = new Pgs(); $carrinho->cliente('nome', 'Michael'); $result = $carrinho->dump('cliente'); $this->assertEqual("[CLIENTE nome: 'Michael']", $result, 'Adiciona cliente usando valor e chave. %s'); $carrinho = new Pgs(); $carrinho->cliente('nome=Eduardo'); $result = $carrinho->dump('cliente'); $this->assertEqual("[CLIENTE nome: 'Eduardo']", $result, 'Adiciona cliente usando string. %s'); $carrinho = new Pgs(); $carrinho->cliente('nome=André&email=andre@gmail.com'); $result = $carrinho->dump('cliente'); $this->assertEqual("[CLIENTE nome: 'André', email: '*****@*****.**']", $result, 'Aceita varios valores usando string. %s'); $carrinho->cliente('nome=Lucas'); $result = $carrinho->dump('cliente'); $this->assertEqual("[CLIENTE nome: 'Lucas', email: '*****@*****.**']", $result, 'Altera o valor, mas mantém os anteriores. %s'); $carrinho->cliente(array('nome' => 'Gabriel')); $result = $carrinho->dump('cliente'); $this->assertEqual("[CLIENTE nome: 'Gabriel', email: '*****@*****.**']", $result, 'Aceita array como valor. %s'); $carrinho->cliente(array('nome' => 'Henrique'), 'luciano'); $result = $carrinho->dump('cliente'); $this->assertEqual("[CLIENTE nome: 'Henrique', email: '*****@*****.**']", $result, 'Ignora o segundo valor, se o primeiro for um array. %s'); $carrinho = new Pgs(); $this->expectError('Valor para cliente invalido: idade', 'Não deveria ter aceitado esta chave (idade). %s'); $carrinho->cliente('idade', 25); $carrinho = new Pgs(); $this->expectError('Valor para cliente invalido: telefone', 'Não deveria ter aceitado esta chave (telefone). %s'); $carrinho->cliente('nome=Michael&email=michaelgranados@gmail.com&telefone=25'); }
/** * index - Incluido à ultima tela do processo de compra * * @access protected * @return void */ protected function index() { $this->language->load('payment/pagseguro'); $this->load->model('payment/pagseguro'); $this->data['button_confirm'] = $this->language->get('button_confirm'); $this->data['button_back'] = $this->language->get('button_back'); $this->session->data['token'] = isset($this->session->data['token']) ? $this->session->data['token'] : ''; $this->data['continue'] = HTTPS_SERVER . 'index.php?route=checkout/success&token=' . $this->session->data['token']; $this->data['back'] = HTTPS_SERVER . 'index.php?route=checkout/payment&token=' . $this->session->data['token']; /* Aplicando a biblioteca PagSeguro */ list($order, $cart) = $this->model_payment_pagseguro->getCart(); $produtos = array(); foreach ($cart as $item) { $produtos[] = array('id' => $item['product_id'], 'descricao' => $item['name'], 'quantidade' => $item['quantity'], 'valor' => $item['total'] / $item['quantity'], 'frete' => 0); } list($ddd, $telefone) = trataTelefone($order['telephone']); $street = explode(',', $order['shipping_address_1']); $street = array_slice(array_merge($street, array("", "", "")), 0, 3); list($endereco, $numero, $complemento) = $street; $cliente = array('nome' => $order['payment_firstname'] . ' ' . $order['payment_lastname'], 'cep' => $order['payment_postcode'], 'end' => $endereco, 'num' => $numero, 'compl' => $complemento, 'cidade' => $order['payment_city'], 'uf' => $order['payment_zone'], 'pais' => $order['payment_country'], 'ddd' => $ddd, 'tel' => $telefone, 'email' => $order['email']); /*Pega cupom e calcula o desconto*/ if (isset($this->session->data['coupon']) && $this->session->data['coupon']) { $coupon = $this->model_checkout_coupon->getCoupon($this->session->data['coupon']); $extras = 0; if (count($coupon['product']) > 0) { foreach ($this->cart->getProducts() as $products) { if (in_array($products['product_id'], $coupon['product'])) { if ($coupon['type'] == 'F') { $extra = $coupon['discount'] > $products['total'] ? $products['total'] : $coupon['discount']; } elseif ($coupon['type'] == 'P') { $extra = $products['total'] * $coupon['discount'] / 100; $extra = $extra > $products['total'] ? $products['total'] : $extra; } $extras += $extra; } } } else { if ($coupon['type'] == 'F') { $extras = $coupon['discount'] > $this->cart->getTotal() ? $this->cart->getTotal() : $coupon['discount']; } elseif ($coupon['type'] == 'P') { $extras = $this->cart->getTotal() * $coupon['discount'] / 100; $extras = $extras > $this->cart->getTotal() ? $this->cart->getTotal() : $extras; } } $extras = $this->cart->getTotal() - $extras == 0 ? $extras - 0.01 : $extras; $extras = sprintf("%01.2f", $extras); $extras = '-' . str_replace('.', '', $extras); } else { $extras = 0; } $pgs = new Pgs(array('email_cobranca' => $this->config->get("pagseguro_mail"), 'extras' => $extras, 'ref_transacao' => $order['order_id'], 'encoding' => 'utf-8')); $pgs->cliente($cliente); if (isset($this->session->data['shipping_method'])) { $produtos[0]['frete'] = str_replace('.', '', sprintf("%01.2f", $this->session->data['shipping_method']['cost'])); } $pgs->adicionar($produtos); $this->form = $pgs->mostra(array('print' => false)); $this->id = 'payment'; if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/pagseguro.tpl')) { $this->template = $this->config->get('config_template') . '/template/payment/pagseguro.tpl'; } else { $this->template = 'default/template/payment/pagseguro.tpl'; } $this->render(); }