Ayuda con Calculadora

  • Autor Autor Nemessiss
  • Fecha de inicio Fecha de inicio
N

Nemessiss

Alfa
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Saludos Betas, Espero que me ayuden con esto 😀

Lo que pasa es que tengo una calculadora la cual hace algo que no quiero.

esta calculadora es de envió la cual debería darme un resultado de precio dependiendo de los datos ingresados por el usuario
cabe recalcar que ese precio se suma dependiendo de la cantidad de cupos que de la calculadora
ya que cada cupo es equivalente a: 2,50 Kg y 125 Cm3 (Cm Cúbicos) que es igual a (0.50 cm Longitud - 0.50 cm de Ancho - 0.50 cm de Altura) y al pasar asi sea un pelin de la equivalencia de un cupo, Ejem: 2,51 Kg o del Volumen. la calculadora le tendria que estar señalando 2 cupos

Y el error esta en que al poner solamente el kg (2,50 Kg dejando en 0 El volumen) me marca 1 cupo.
y cuando me paso en el Kg (2,51 Kg dejando en 0 el volumen) me marca 2 cupos.

(Hasta acá todo bien el problema aparece cuando agrego el volumen.)

Cuando pongo (2,50 Kg + 0.50 cm de Longitud + 0.50 cm de ancho + 0.50 cm de alto) me da 1 cupo como deberia por lo cual todo bien.

y Cuando me paso en volumen Ejem: (2,50 Kg + 0.51 cm de Longitud + 0.50 cm de ancho + 0.50 cm de alto). Ya sea en Longitud, Ancho o en Alto. Me marca 2 cupos. Hasta acá íbamos de maravilla

El problema empieza cuando a me paso en el Kg (teniendo en cuenta que puse el volumen) Ejem: (2,51 Kg + 0.50 cm de Longitud + 0.50 cm de ancho + 0.50 cm de alto) me deberia dar 2 cupos ya que me pase en el valor del peso. pero me marca un solo cupo.

aca el codigo de la calculadora. me avisan si necesitan algo para poder determinar el problema.

PHP:
});
$(function(){
$('#peso').priceFormat({
    prefix: '',
    centsSeparator: ',',
    thousandsSeparator: '.'
});
$('#longitud').priceFormat({
    prefix: '',
    centsSeparator: ',',
    thousandsSeparator: '.'
});
$('#ancho').priceFormat({
    prefix: '',
    centsSeparator: ',',
    thousandsSeparator: '.'
});
$('#altura').priceFormat({
    prefix: '',
    centsSeparator: ',',
    thousandsSeparator: '.'
});
});

function myCalc() {
        var pes = $("#peso").prop("value");
		var lon = $("#longitud").prop("value");
        var anc = $("#ancho").prop("value");
		var alt = $("#altura").prop("value");

		$.ajax({
		url: 'envios/calculo.php',
		type: "POST",
        cache: false,
        data: "submit=&pes="+pes+"&lon="+lon+"&anc="+anc+"&alt="+alt+"&op=calculando",
        success: function(datos){

var str1=pes;
var res1 = str1.replace(".", "");
var res1 = res1.replace(",", ".");
var pagapeso=parseFloat(res1);
//        alert(pagapeso);
var str2=datos;
var res = str2.replace(".", "");
var res = res.replace(",", ".");
var pagavol=parseFloat(res);


    if (isNaN(pagavol)){
        alert ("Ups... " + pagavol + " no es un n?mero.");
    }

if(pagapeso>pagavol){
            document.getElementById('peso').style.color = '#003366';
            document.getElementById('peso').style.fontWeight = "900";
            document.getElementById("peso").style.borderWidth = "thick";
            document.getElementById('peso').style.borderColor = '#006600';
            document.getElementById("peso").value = pes;

            document.getElementById('volumen').style.color = '#000A14';
            document.getElementById('volumen').style.fontWeight = "0";
            document.getElementById("volumen").style.borderWidth = "";
            document.getElementById('volumen').style.borderColor = '#000000';
            document.getElementById("volumen").value = datos;
CalcMto("PESO");
}else{
            document.getElementById('volumen').style.color = '#003366';
            document.getElementById('volumen').style.fontWeight = "900";
            document.getElementById("volumen").style.borderWidth = "thick";
            document.getElementById('volumen').style.borderColor = '#006600';
            document.getElementById("volumen").value = datos;

            document.getElementById('peso').style.color = '#000A14';
            document.getElementById('peso').style.fontWeight = "0";
            document.getElementById("peso").style.borderWidth = "";
            document.getElementById('peso').style.borderColor = '#000000';
            document.getElementById("peso").value = pes;
CalcMto("VOL");
}
        }
		});
		return false;
}

function CalcMto(valores) {
//alert(valores);
        var cpes = $("#cupopeso").prop("value");
		var cvol = $("#cupovol").prop("value");
        var vvol = $("#volumen").prop("value");
		var vpes = $("#peso").prop("value");
        var cenv = $("#costoenvio").prop("value");

//        alert("submit=&valores="+valores+"&cpes="+cpes+"&cvol="+cvol+"&vpes="+vpes+"&vvol="+vvol+"&cenv="+cenv+"&op=mtocalculando");
		$.ajax({
		url: 'envios/calculo.php',
		type: "POST",
        cache: false,
        data: "submit=&valores="+valores+"&cpes="+cpes+"&cvol="+cvol+"&vpes="+vpes+"&vvol="+vvol+"&cenv="+cenv+"&op=mtocalculando",
        success: function(datos){
//alert(datos);

var cadena = datos,
    separador = ">", // un espacio en blanco
    arreglo = cadena.split(separador);
//alert(arreglo[0]);
//alert(arreglo[1]);
/*var str1=datos;
var res1 = str1.replace(".", "");
var res1 = res1.replace(",", ".");*/
document.getElementById("Cupos").value = arreglo[0];
           document.getElementById('mtopagar').style.color = '#003366';
           document.getElementById('mtopagar').style.fontWeight = "950";
           document.getElementById("mtopagar").style.borderWidth = "thick";
           document.getElementById('mtopagar').style.borderColor = '#FF6600';
           document.getElementById("mtopagar").value = arreglo[1];

        }
		});
		return false;
}

function CostoEnvio(valor) {
/*        var pes = $("#peso").prop("value");
		var lon = $("#longitud").prop("value");
        var anc = $("#ancho").prop("value");
		var alt = $("#altura").prop("value");*/
		$.ajax({
		url: 'envios/costo_envio.php',
		type: "POST",
        cache: false,
        data: "submit=&valor="+valor,
        success: function(datos){
        document.getElementById("costoenvio").value = datos;
        }
		});
		return false;
}
</script>
<body>
  <div class="container">
  <div style="background-color:#000000;"><center><span style="color: #FFFFFF; font-size: 30px;" ><b>C&Aacute;LCULO DE ENVIO</b></span></center></div>
<input id="cupopeso" type="hidden" name="cupopeso" value="1">
<input id="cupovol" type="hidden" name="cupovol" value="125">
<form method="post" action="">
      <div class="card card-register mx-auto mt-2">
      <div class="card-header">DATOS DEL ENVIO</div>
      <div class="card-body">
          <div class="form-group">
            <div class="form-row">
<div class="col-md-10">
<label>Selecciona el envio:</label>
<select tabindex="7" class="form-control" id="costo" name="costo" size="1" onchange="CostoEnvio(this.value);">
<?php
include_once("recursos/conexion.php");
$sql="SELECT * FROM envios where nombre='SIMPLE' ORDER BY tipo,forma,cantidad";
$result = mysqli_query($cn,$sql);
if (mysqli_num_rows($result)){
while($row = mysqli_fetch_array($result))
{
$campo0=$row['id'];
$campo1=$row['tipo'];
$campo2=$row['forma'];
$campo3=$row['nombre'];
/*$campo4=$row['cantidad'];
$campo5=number_format($row['precio'], 2, ',', '.');
$campo6=number_format($row['seguro'], 2, ',', '.');
$campo7=number_format($row['iva'], 2, ',', '.');
$campo8=number_format($row['total'], 2, ',', '.');*/

echo '<option value="'.$campo0.'">'.$campo2.'-'.$campo3.'</option>';
}}
mysqli_close($cn);
?>
</select>
</div>
               <div class="col-md-2">
                <label for="exampleConfirmPassword">Costo:</label>
                <input class="form-control text-center font-weight-bold" id="costoenvio" name="costoenvio" type="text" value="0" readonly>
              </div>
 </div>
<div class="form-row">

              <div class="col-md-6"><br>
              <h3><b>POR PESO</b></h3>
                <label for="exampleInputPassword">Peso (grs.):</label>
                <input class="form-control text-center" id="peso" name="peso" type="text" maxlength="11" placeholder="">
              </div>
</div> <br><br>
<div class="form-row">
<br><h3><b>POR VOLUMEN</b></h3><br>
</div>
<div class="form-row">
              <div class="col-md-2">
                <label for="exampleConfirmPassword">Longitud (cm.):</label>
                <input class="form-control text-center" id="longitud" name="longitud" type="text" maxlength="11" placeholder="">
              </div>
              <div class="col-md-2">
                <label for="exampleInputPassword">Ancho (cm.):</label>
                <input class="form-control text-center" id="ancho" name="ancho" type="text" maxlength="11" placeholder="">
              </div>
              <div class="col-md-2">
                <label for="exampleConfirmPassword">Altura (cm.):</label>
                <input class="form-control text-center" id="altura" name="altura" type="text" maxlength="11" placeholder="">
              </div>
               <div class="col-md-3">
                <label for="exampleConfirmPassword">Volumen:</label>
                <input class="form-control text-center" id="volumen" name="volumen" type="text" maxlength="11" readonly>
              </div>
              <div class="col-md-3">
                <label for="exampleConfirmPassword">Cupos:</label>
                <input class="form-control text-center" id="Cupos" name="Cupos" type="text" maxlength="11" readonly>
              </div>
</div>
<div class="form-row">
              <div class="col-md-12">
              <label for="exampleConfirmPassword">&nbsp;</label>
          <input type="button" name="registrar" value="Calcular" onclick="myCalc();" class="btn btn-success btn-block" >
              </div>
             <div class="col-md-12"><br>
                <label for="exampleConfirmPassword"><h5><b>MONTO A PAGAR:</b></h5></label>
                <input class="form-control text-center font-weight-bold" id="mtopagar" name="mtopagar" type="text" readonly>
              </div>
</div>

Desde ya esperando a que ustedes puedan ayudarme :encouragement:

- - - Actualizado - - -

Encerio necesito ayuda, Ya que mis conocimientos son casi nulos con respecto a php, mysql y php. por lo cual se me hace dificil detectar el problema.
 
Colega, está super espagueti tu código, no se le entiende nada. Tal vez por eso es muy difícil detectar el problema.
 
Colega, está super espagueti tu código, no se le entiende nada. Tal vez por eso es muy difícil detectar el problema.

Disculpa la tardanza, problemas tecnicos :witless:

la cuestion aca es que este codigo no es mio, es de otra persona que me estaba montando la calculadora pero de un dia a otro desaparecio y no me pude contactar mas nunca con el. de alli que este buscando alguna solución.
 
Hola.
Jquery es una mala practica, cambialo a JS es mas rapido y sencillo
En segundo lugar \No requieres php para una calculadora de tus características con JS te sobra.
 
Atrás
Arriba