Ir para conteúdo
Fórum Script Brasil
  • 0

pac calculado pelo pagseguro


marcoisa

Pergunta

Boa noite no meu site esta dando a seguinte mensagem quando vai calcular o frete:

Notice: A non well formed numeric value encountered in /home2/alternat/public_html/catalog/model/shipping/pac.php on line 49

o frete calcula direitinho, mas a mensagem é uma coisa chata. alguém sabe me dizer o que é isso e como retirar?

segue o codigo da pagina:

<?php

class ModelShippingpac extends Model {

function getQuote($address) {

$this->load->language('shipping/pac');

if ($this->config->get('pac_status')) {

$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone_to_geo_zone WHERE geo_zone_id = '" . (int)$this->config->get('pac_geo_zone_id') . "' AND country_id = '" . (int)$address['country_id'] . "' AND (zone_id = '" . (int)$address['zone_id'] . "' OR zone_id = '0')");

if (!$this->config->get('pac_geo_zone_id')) {

$status = TRUE;

} elseif ($query->num_rows) {

$status = TRUE;

} else {

$status = FALSE;

}

} else {

$status = FALSE;

}

$method_data = array();

if ($status) {

function arredonda_peso_pac($peso){

$tipo = gettype($peso);

$peso = str_replace(",",".",$peso);

settype($peso,"float");

if (floor($peso)<$peso) {

$peso = ceil($peso);

}

settype($peso,$tipo);

return $peso;

}

function calcula_pac_pag($cepOrigem,$cepDestino,$peso,$valoor){

require_once('frete.php');

$frete = new PgsFrete;

$valorFrete = $frete->gerar($cepOrigem, $peso, $valoor, $cepDestino);

if($valorFrete==erro1'){

$erro_postall='-3';

return $dadosfrete = array("valor" => "0.0", "errofrete" => $erro_postall);

}

else {

return $dadosfrete = array("valor" => number_format($valorFrete['PAC], 2, '.', ''), "errofrete" => 0);

}

}

function calcula_pac($cepOrigem,$cepDestino,$peso,$valoor){

$urlCorreios = "http://www.correios.com.br/encomendas/precos/calculo.cfm?resposta=xml&servico=41106&cepOrigem=%s&cepDestino=%s&peso=%s&valorDeclarado=%s";

$urlCorreios = sprintf($urlCorreios, $cepOrigem, $cepDestino, $peso, $valoor);

//carregando url dos correios...

// inicio modificacao bruno trazzini

$ch = curl_init();

curl_setopt ($ch, CURLOPT_URL, $urlCorreios);

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 0);

$file_contents = curl_exec($ch);

curl_close($ch);

$carrega = explode("\n", $file_contents);

$conteudo = trim(str_replace(array("\n", chr(13)), "", implode($carrega, "")));

// fim modificacao bruno trazzini

if(strlen($conteudo) <1) return false;

//informações de origem tratadas com RegExp...

if(preg_match_all("/<preco_postal>(.*)<\/preco_postal>/", $conteudo, $preco_postal)){

$preco_da_postagem = $preco_postal[1][0];

preg_match_all("/<tarifa_valor_declarado>(.*)<\/tarifa_valor_declarado>/", $conteudo, $preco_tarifa);

$preco_da_tarifa = $preco_tarifa[1][0];

$preco_da_postagel = ($preco_da_postagem + $preco_da_tarifa);

}else {

$preco_da_postagel=0;

}

if($preco_da_postagel){

$valooor= floatval($preco_da_postagel);

return $dadosfrete = array("valor" => number_format($valooor, 2, '.', ''), "errofrete" => 0);

}else {

if(!preg_match_all("/<codigo>(.*)<\/codigo>/", $conteudo, $erro_postal)){

$erro_postall= 666;

}else {

$erro_postall=$erro_postal[1][0];

}

return $dadosfrete = array("valor" => "0.0", "errofrete" => $erro_postall);

}

}

// Função getpac retirada do blog Lucas Ferreira

//http://blog.lucasferreira.com/2008/02/11/correios-pac-e-o-tão-famigerado-calculo-de-frete/

$cepOrigem = $this->config->get('pac_postcode');

$cepDestino = $address['postcode'];

$peso = $this->cart->getWeight();

$total_compra = $this->tax->calculate($this->cart->getSubTotal(), $this->config->get('zone_tax_class_id'), $this->config->get('config_tax'));

$total_compra = preg_replace("/[^0-9]/", "", $total_compra);

$total_compra = number_format($total_compra,'2','.','');

if($peso==0){

$peso = 0.300;

}

$peso = arredonda_peso_pac($peso);

if($peso>30) {

$var_quant = ceil($peso / 30);

$pesoparcial = ceil($peso / $var_quant);

$valorparcial = ceil($total_compra / $var_quant);

$resultado = 0;

for($i=1;$i<=$var_quant;$i++) {

if($this->config->get('pac_modofrete')==1){

$valorparcial = number_format($valorparcial,'2',',','');

$shipping = calcula_pac_pag($cepOrigem,$cepDestino,$pesoparcial,$valorparcial); //pagseguro

}else{

$shipping = calcula_pac($cepOrigem,$cepDestino,$pesoparcial,$valorparcial); //correios

}

$resultado = $resultado + $shipping['valor'];

}

}

else {

if($this->config->get('pac_modofrete')==1){

$total_compra = number_format($total_compra,'2',',','');

$shipping = calcula_pac_pag($cepOrigem,$cepDestino,$peso,$total_compra);

}else{

$shipping = calcula_pac($cepOrigem,$cepDestino,$peso,$total_compra);

}

$resultado = $shipping['valor'];

}

if($shipping['errofrete']){

$titulo_pac = $this->language->get('text_pac_title_erro_correios');

$descricao_pac = $this->language->get('text_pac_erro_busca_valor');

if($shipping['errofrete']==31){

$descricao_pac.=$this->language->get('text_pac_erro_cod_31');

}else if($shipping['errofrete']==-4") {

$descricao_pac.=$this->language->get('text_pac_erro_cod_-4');

}else if($shipping['errofrete]=="-2") {

$descricao_pac.=$this->language->get('text_pac_erro_cod_-2');

}else if($shipping['errofrete']==-3") {

$descricao_pac.=$this->language->get('text_pac_erro_cod_-3');

}

else if($shipping['errofrete]=="666") {

$descricao_pac.=$this->language->get('text_pac_erro_cod_666');

}

}else {

$titulo_pac = $this->language->get('text_pac_title');

$descricao_pac = $this->language->get('text_pac_description');

}

$quote_data = array();

$quote_data['pac'] = array(

'id' => 'pac.pac',

'title' => $descricao_pac,

'cost' => $resultado,

'tax_class_id' => $this->config->get('pac_tax_class_id'),

'text' => $this->currency->format($this->tax->calculate($resultado, $this->config->get('pac_tax_class_id'), $this->config->get('config_tax')))

);

$method_data = array(

'id' => 'pac',

'title' => $titulo_pac,

'quote' => $quote_data,

'sort_order' => $this->config->get('pac_sort_order'),

'error' => FALSE

);

}

return $method_data;

}

}

?>

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...