Jump to content
Fórum Script Brasil
  • 0

Não Calcula direito


Clayton
 Share

Question

Olá amigos preciso da ajuda de vocês , pois o meu sistema não está fazendo o cálculo dos produtos corretamente( está dando pra menos) abaixo o js que faz o cálculo:


$(document).ready(function (e) {
    $('input').change(function (e) {
        id = $(this).attr('rel');
        $index = this.value;
        $preço = $('font#preço'+id).html().replace("R$ ",'');
        console.log($preço);
        $val = ($preço*$index).toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,');;
        $('font#sub'+id).html('R$ '+$val);
 clearInterval(timer);

        });
        });


e o script que finaliza a compra:

<?php
include_once("../funcao/conecta.php");
      session_start();

      if(!isset($_SESSION['shop'])){
         $_SESSION['shop'] = array();
      }
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Endereço e Forma de pagamento</title>
<script type="text/javascript" src="../js/jquery-1.5.2.min.js"></script>
<script type="text/javascript">
$(document).ready (function() {

  $("#cardradius") .click (function()  {

      $(".card") .css ("visibility" ,"visible");
       $(".boleto") .css ("visibility" ,"hidden");
        $(".mercado") .css ("visibility" ,"hidden");
         $(".pagseguro") .css ("visibility" ,"hidden");
  });
   $("#boletoradius") .click (function()  {

      $(".card") .css ("visibility" ,"hidden");
       $(".boleto") .css ("visibility" ,"visible");
       $(".mercado") .css ("visibility" ,"hidden");
         $(".pagseguro") .css ("visibility" ,"hidden");
  });
     $("#mercadoradius") .click (function()  {

      $(".card") .css ("visibility" ,"hidden");
       $(".boleto") .css ("visibility" ,"hidden");
       $(".mercado") .css ("visibility" ,"visible");
         $(".pagseguro") .css ("visibility" ,"hidden");
  })
     $("#pagseguroradius") .click (function()  {

      $(".card") .css ("visibility" ,"hidden");
       $(".boleto") .css ("visibility" ,"hidden");
       $(".mercado") .css ("visibility" ,"hidden");
         $(".pagseguro") .css ("visibility" ,"visible");
  })
  });
</script>
</head>
<body>
<div id="principal">
<div id="conteudo">
<div class="progressend"><div align ="center"><img src="../imagens/13.png" class="progend" ></div>
<div class="textprogress"> <li>IDENTIFICAÇÃO</li><li>ENTREGA E PAGAMENTO</li><li>CONFIRMAÇÃO</li> </div>
<div class="enderecamento">
<div class="textoprog"> <h2>1</h2>&nbsp;&nbsp; Endereço de entrega e cobrança </div>

<ul><?php
if (isset($_POST['cep-destino'])){
    // Peso total do pacote em Quilos, caso seja menos de 1Kg, ex.: 300g, coloque 0.300
define('PESO',7.00);
define('EMBALAGEM',2.00);

// Valor adicional no envio como custo de embalagem.
define('COMPRIMENTO',60);
define('ALTURA',15);
define('LARGURA',20);

if($_POST) {
// Código do Serviço que deseja calcular, veja tabela acima:
if ($_POST['servico']) {
$cod_servico = $_POST['servico'];
}
// CEP de Origem, em geral o CEP da Loja
$cep_origem = '13360-000';

// CEP de Destino, você pode passar esse CEP por GET ou POST vindo de um formulário
$cep_destino = $_POST['cep-destino'];
$cep_destino = @eregi_replace("([^0-9])","",$cep_destino);

// URL de Consulta dos Correios
$correios = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?StrRetorno=xml&nCdServico={$cod_servico}&nVlPeso=" . PESO . "&sCepOrigem={$cep_origem}&sCepDestino={$cep_destino}&nCdFormato=1&nVlComprimento=" . COMPRIMENTO . "&nVlAltura=" . ALTURA . "&nVlLargura=" . LARGURA;

// Capta as informações da página dos Correios
$correios_info = file($correios);

// Processa as informações vindas do site dos correios em um Array
foreach($correios_info as $info) {

// Busca a informação do Preço da Postagem
if(preg_match("/\<Valor>(.*)\<\/Valor>/",$info,$tarifa)) {

$frete = $tarifa[1] + EMBALAGEM;
}
if(preg_match("/\<PrazoEntrega>(.*)\<\/PrazoEntrega>/",$info,$PrazoEntrega)) {
$PrazoEntrega = $PrazoEntrega[1];
}
}

// Neste exemplo estamos usando apenas PAC e SEDEX. Caso seja necessário, utilize outras opções.
switch ($cod_servico) {
case 41106:
$nome_servico = " PAC ";
break;
case 40010:
$nome_servico = " SEDEX ";
break;
}
}
}
?>
<form id="form-pesquisa-repasse" action="" method="post" class="formMain formSearch wsizep100" >
<fieldset>
<legend>Pesquisar valor do frete!</legend>
<label for="servico" class="wsize015">
<span class="nameField">Envio</span>
<select id="servico" name="servico" title="Serviços dos Correios" class="select" tabindex="1">
<option value="41106">PAC</option>
<option value="40010">SEDEX</option>
</select>

</label>
<label class="wsize010" for="cep-destino">
<span class="nameField">CEP Destino</span>
<input id="cep-destino" class="text" type="text" value="<?php echo  @$cep_destino ?>" maxlength="9" title="CPF destino" name="cep-destino" tabindex="2"/>
</label>
<label for="pesquisar" class="wsize010">
<input type="submit" id="pesquisar" name="pesquisar" tabindex="3" class="button inline"  value="Pesquisar" />
</label>
</fieldset>
</form>
 <?php
// Caso venha valor de resposta é numerio e maior que o custo da embalagem senão ocorreu algum erro na solicitação.
if(is_numeric(@$frete) and (@$frete > @$embalagem)) {

// Quando encontra o valor da postagem, exibe na página formatando em padrão de moeda 10,89
// Caso você não queira formatar basta comentar a linha abaixo que será exibido assim 10.89 e basta executar o comando abaixo
$frete = number_format($frete,2,',','.');

echo $nome_servico . $frete . ' prazo entrega de ' . $PrazoEntrega . ' dia(s) ';
}  else {
 echo 'Erro ao consultar verifique se o CEP esta correto';
}  ?>
</li>
</ul>
<form action="email.php" method="post" >
<ul>Nome : <input type="text" name="name" class="one" ></ul>
<ul>Endereço : <input type="text" name="endereco" class="two"><li> Numero : <input type="text" name="numero" class="tree" ></li></ul>
<ul>Bairro : <input type="text" name="bairro" class="four">
 <li> UF :<input type="text" name="uf" class="six"></li>
<li class="city"> Cidade :<input type="text" name="cidade" class="five" ></li>
</ul>
<ul> Telefone :<input type="text" name="tel" class="eight">  </ul> </div>
<div class="pagamento">

<div class="textoprog"> <h2>2</h2>&nbsp;&nbsp;Forma de pagamento</div>
<?php
 $total = 0;
 $conn = conecta();
 foreach ($_SESSION['shop'] as $id => $qtd) {
                            $cart = $conn->prepare("SELECT * FROM produtos WHERE  id=$id");
                            $cart->setFetchMode(PDO::FETCH_ASSOC);
                            $cart->execute();
                            while ($linha = $cart->fetch()) {

                              $foto = $linha['foto'];
                              $nome = $linha['nome'];
                              $descricao = $linha['descricao'];
                              $tamanho = $linha['tamanho'];
                              $cor = $linha['cor'];
                              $preço = $linha['preço'];
                              $total = number_format($total, 2, ',', '.');
                              $total += $linha['preço'] * $qtd;

                        }
?>
<div class="pal"><input type="radio" id="cardradius" name="bt" class="radio" ><img src="imagens/card.fw.png" class="cardicon" /><li>Cartão de credito</li></div>
<div class="card">
<div class="imgcard"><input type="radio" name="operadora" value="mastercard"><img src="imagens/Mastercard.fw.png" width="33" height="20" />
 <input type="radio" name="operadora" value="visa"><img src="imagens/visa_512.fw.png" width="33" height="20" ></div>
 <div class="infocard">
 <div class="namecard">Nome impresso no cartão : <input type="text" name="nomecard" class="card1" ></div>
  <div class="codcard">Numero do cartão :<input type="text" name="codcard" class="card2" ></div>
   <div class="datecard">Data de validade :
   <div class="month"> mês :</div>
   <select name="monthcard" class="card3" >
   <option value="Janeiro"> Janeiro</option>
   <option value="Fevereiro"> Fevereiro</option>
   <option value="Março"> Março</option>
   <option value="Abril"> Abril</option>
   <option value="Maio"> Maio</option>
   <option value="Junho"> Junho</option>
   <option value="Julho"> Julho</option>
   <option value="Agosto"> Agosto</option>
   <option value="Setembro"> Setembro</option>
   <option value="Outubro"> Outubro</option>
   <option value="Novembro"> Novembro</option>
   <option value="Dezembro"> Dezembro</option>
   </select>
   <div class="year"> Ano :
   <select name="yearcard" class="card4" >
   <option value="15"> 15</option>
   <option value="16"> 16</option>
   <option value="17"> 17</option>
   <option value="18"> 18</option>
   <option value="19"> 19</option>
   <option value="20"> 20</option>
   <option value="21"> 21</option>
   <option value="22"> 22</option>
   <option value="23"> 23</option>
   <option value="24"> 24</option>
   <option value="25"> 25</option>
   </select>
   </div>
   </div>
   <div class="securitycode">Codigo de segurança(CW) :<input type="text" name="securitycode" class="card5" ></div>
   <div class="parcel">Numero de parcelas
   <select name="parcel" class="card6" >
   <option value="1 Vez de R$   <?php echo number_format(@$total + @$frete , 2, ',', '.') ?>">1 Vez de R$   <?php echo number_format(@$total + @$frete , 2, ',', '.') ?></option>
   <option value="2 Vezes de R$ <?php echo number_format(@$total / 2 , 2, ',', '.')  ?>">2 Vezes de R$ <?php echo number_format(@$total / 2 , 2, ',', '.')  ?></option>
   <option value="3 Vezes de R$ <?php echo number_format(@$total / 3 , 2, ',', '.')  ?>">3 Vezes de R$ <?php echo number_format(@$total / 3 , 2, ',', '.')  ?></option>
   <option value="4 Vezes de R$ <?php echo number_format(@$total / 4 , 2, ',', '.')  ?>">4 Vezes de R$ <?php echo number_format(@$total / 4 , 2, ',', '.')  ?></option>
   <option value="5 Vezes de R$ <?php echo number_format(@$total / 5 , 2, ',', '.')  ?>">5 Vezes de R$ <?php echo number_format(@$total / 5 , 2, ',', '.')  ?></option>
   <option value="6 vezes de R$ <?php echo number_format(@$total / 6 , 2, ',', '.')  ?>">6 vezes de R$ <?php echo number_format(@$total / 6 , 2, ',', '.')  ?></option>
   </select>
   </div>
 </div>
 </div>
<div class="pal"><input type="radio" id="boletoradius" name="bt" class="radio" ><img src="imagens/boleto.fw.png" class="boleticon" /><li>Boleto bancário</li></div>
<div class="boleto">
<li>Pagamento à vista</li>
<li>Boleto vence em três dias</li>
<li>Imprima o boleto após a finalização do pedido</li>
<li>O pagamento do boleto poder ser feito em agências bancárias, casas lotéricas, correios ou internet banking</li>
</div>
<div class="pal"><input type="radio" id="mercadoradius" name="bt" class="radio" ><img src="imagens/mercado.fw.png" class="mpicon" /><li>Mercado Pago</li></div>
<div class="mercado">
<li>Após a finalização do pedido será aberta uma janela para realizar o pagamento através do MercadoPago</li>
<li>O ambiente de pagamento é totalmente seguro</li>
<li>Compras parceladas em até 12x através do MercadoPago não terão custos extras</li>
</div>
<div class="pal"><input type="radio" id="pagseguroradius" name="bt" class="radio" ><img src="imagens/pag.fw.png" class="pagicon" /><li>Pague seguro</li></div>
<div class="pagseguro">
<li>Após a finalização do pedido será aberta uma janela para realizar o pagamento através do Pagseguro</li>
<li>O ambiente de pagamento é totalmente seguro</li>
<li>Compras parceladas em até 12x através do Pagseguro </li>
</div>
</div>
<div class="confirma">
<div class="textoprog"> <h2>3</h2>&nbsp;&nbsp;Confirmar pedido </div>
<div class="desfinaliza">
<div id="textoend1"> <li>Codigo</li> <li>Foto</li> <li>Nome</li> <li>Quantidade</li> <li>Preço</li> </div>
</div>
 <?php

 $total = 0;
 foreach ($_SESSION['shop'] as $id => $qtd) {
                            $cart = $conn->prepare("SELECT * FROM produtos WHERE  id=$id");
                            $cart->setFetchMode(PDO::FETCH_ASSOC);
                            $cart->execute();
                            while ($linha = $cart->fetch()) {

                              $foto = $linha['foto'];
                              $nome = $linha['nome'];
                              $descricao = $linha['descricao'];
                              $tamanho = $linha['tamanho'];
                              $cor = $linha['cor'];
                              $preço = $linha['preço'];
                              $total += $linha['preço'] * $qtd;

echo '
<div id="textoend2">
<li ><div class="size" >R$'.$preço.' </div></li>
<li><div class="sub2 size"> '.$qtd.' </div></li>
<li><div class="name"> '.$linha['nome'].'<br>'.$linha['descricao'].'</div> </li>
<img "</td>
<li><div class="img"><img src = "../' . $foto . ' " width = "120px" height="120"  /></div> </li>
</div>
';
                    }
        }
      }

     $total = number_format($total +  @$frete, 2, ',', '.');

echo'
<div id="textoend">
<li class="totend">Total :</li>
<li class="totend2">R$ '.$total.' </li>
<li class="totend3"><input type="submit" class="totend3button" value="Finalizar Compra"></li>
</div>
';

?>

</div>
<input type="hidden"  name="nome" value="<?php echo $linha['nome'] ?>" >
<input type="hidden"  name="descricao" value=" <?php echo $linha ['descricao'] ?>" >
<input type="hidden"  name="quantidade" value="<?php echo $qtd ?>" >
<input type="hidden"  name="frete" value="<?php echo $frete ?>" >
<input type="hidden"  name="total" value="<?php echo $total ?>" >
</form>
</div>
 </div>
</body>
</html>


Por exemplo se o total é :  R$ 3.696,00            apresenta no total:  R$ 1.848,00, ou seja isso so acontece quando altero a quantidade no botao , se comprar direto funciona, o que fazer?

Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...