Hola, es sobre el pdf

Lo he publicado en esta dirección:
http://www.naturallink.es/pdf/esquema_calculo_nomina.pdf
Ya me dirás
Gracias

1 Respuesta

Respuesta
1
El PDF sí que deja claro el tema :-)
Necesitas una primera página con un formulario de 5 casillas:
Nomina, nom13, nom12, nom11 y nom10 (más la casilla de valor total que supongo que se querrá actualizar on-line con Javascript).
Al enviar el formulario obtendrás el valor de estas cinco casillas y has de mostrar el resultado en otras cinco:
En la primera, el valor es nomina, así que puedes poner en el código PHP de la segunda página:
echo '<input type="text" value="' . $_POST[" />';
Para la primera casilla (si has enviado los datos por POST, sino cámbialo por GET).
Para la segunda casilla:
echo '<input type="text" value="' . $_POST["nom13"]*13 . '">';
Y así con el resto.
Gracias,
Pero no sé el código para que vaya acumulando los diferentes cálculos según las cantidades entre si de cada opción (las cuatro casillas)
Si me puedes poner una primera linea de ejemplo (completa) me haré una idea.
Es lo de ir acumulando las cantidades en su casilla y que éstas se multipliquen por el valor que le corresponde.
Lo del javascript del final para el cálculo ¿?
Perdona las molestias pero ya te he dicho antes que soy muy novato en php y me encuentro con este tema que prácticamente no sé ni como empezarlo.
Gracias por tu ayuda y paciencia
Javier
Como te digo: en la primera página, un formulario, con las casillas:
<form name="form1" action="segunda.php" method="post">
<input type="text" name="nomina">
<input type="text" name="nom13">
<input type="text" name="nom12">
<input type="text" name="nom11">
<input type="text" name="nom10">
</form>
Se supone que esas casillas las tiene que rellenar el usuario.
Entonces en la página segunda.php muestras en un texto (o en unas casillas también), el resultado tal y como dice el PDF que tienes que calcularlo:
<input type="text" name="resu_nomina" value="<?php echo $_POST["nomina"]; ?>">
<input type="text" name="resu_nom13" value="<?php echo $_POST["nom13"] * 13; ?>">
<input type="text" name="resu_nom12" value="<?php echo $_POST["nom12"] * 12; ?>">
<input type="text" name="resu_nom11" value="<?php echo $_POST["nom11"] * 11; ?>">
<input type="text" name="resu_nom10" value="<?php echo $_POST["nom10"]  * 10; ?>">
<input type="text" name="resu_total" value="<?php echo $_POST["nom13]*13+$_POST["nom12"]*12+$_POST["nom11"]*11+$_POST["nom10"]*10; ?>">
Y con esto se muestra el resultado deseado. Como ves te he escrito todo el código necesario.
En cuanto a lo del total de la primera página, no sé la especificación lo que dice y por tanto no sé cuando se supone que debe actualizarse. Lo lógico es que quieran que se actualice cada vez que se introduce un dato en una casilla. Entonces o bien se gestiona con Javascript, o bien tienes que enviar el formulario cada vez que alguien llena una de las casillas para que PHP pueda calcular el total.
PHP se ejecuta en el servidor y por tanto, para poder hacer cálculos, sólo lo puedes hacer 'antes' de que se genere la página.
David,
El problema es que en las 4 casillas ($nom13, $nom12, $nom11, $nom10) el usuario NO PONE NADA (es más... como si no estuvieran visibles para él, pero que haga al cálculo)
El usuario solo pone una cantidad en la casilla del form ($nomina) y el resto se debe calcular según creo se explica en el pdf.
El cálculo que hacen estas casillas es como se ve en el PDF y como particularidad es que han de irse restando las cantidades hasta llegar a los límites marcados por cada casilla y dándoles el valor que cada una tiene (13, 12 11, 10)
Ej.
Si un usuario pone 15 en la casilla ($nomina) que es la única donde puede poner algo
El total debe dar: 190
Y viene de este cálculo:
cantidad: 10 en la casilla $nom13 (por 13 = 130)
cantidad: 5 en la casilla $nom12 (por 12 = 60)
en las otras casillas nada (ya que la cantidad introducida en $nomina no les afecta.
El total nos dará 130+60= 190
En tu ejemplo estos valores y cálculos de arrastre no aparecen (imagino que es porque pensabas que el usuario podía poner cantidades en estas casillas)
Como ves esto no es nada fácil,
Te agradezco tu ayuda
Javier
Ahora entiendo tu problema. Se trata sólo de entender la especificación escrita en el PDF, y creo que ya lo tengo claro.
El usuario llena sólo la casilla de nomina.
Entonces:
if ($nomina <= 10)
    $resultado = $nomina * 13
else {
    $nomina -= 10;
    $resultado = 10 * 13;
}
if ($nomina <= 15)
    $resultado += $nomina * 12;
else {
    $nomina -= 15;
    $resultado += 15 * 12;
}
if ($nomina <= 25)
    $resultado += $nomina * 11;
else {
    $nomina -= 25;
    $resultado += 25 * 11
    $resultado += $nomina * 10;
}
Esto da el total correcto para cada caso, siguiendo las instrucciones.
En resumen, las primeras 10 nóminas cuestan 13 cada una, las siguientes 15 cuestan 12, las siguientes 25 cuestan 11 y a partir de ahí (10+15+25 = 50) cuestan a 10 cada una.
David,
He puesto esto en el resultado de la segunda página:
<?php
$nomina = POST["nomina"];
if ($nomina <= 10)
$resultado = $nomina * 13;
else {
$nomina -= 10;
$resultado = 10 * 13;
}
if ($nomina <= 15)
$resultado += $nomina * 12;
else {
$nomina -= 15;
$resultado += 15 * 12;
}
if ($nomina <= 25)
$resultado += $nomina * 11;
else {
$nomina -= 25;
$resultado += 25 * 11;
$resultado += $nomina * 10;
}
?>
La pregunta es ¿dónde veo el resultado de la operación?
Muchas gracias
Para empezar, en la primera línea, el post es incorrecto (falta el $_ ), debería ser:
$nomina = $_POST["nomina"];
El resultado puedes mostrarlo como quieras, o bien:
echo $resultado;
o, si lo quieres en una casilla:
echo '<input type="text" value="' . $resultado . '">';
Pero eso ya depende de como tengas la página de salida, claro.
Hola David,
He hecho todo lo que me has dicho y el resultado lo puedes ver aquí:
http://www.economis.es/a.php
El cálculo no lo hace bien
Y no sé que falla.
Por ejemplo:
Tu pones 28
Y el resultado debería dar: 343 y da 343
Es correcto
Y así creo que con cantidades superiores
El problema es con las cantidades inferiores
Pones 1 y da: 36 (debería dar 13)
Pones 11 y da: 153 (debería dar 142 - 10 valor: 13 y 1 valor: 12)
Bueno ya me dirás y te agradezco tu ayuda
Gracias
Javier
Tienes razón, mi algoritmo no era correcto. Debería ser como sigue:
<?php
$nomina = POST["nomina"];
if ($nomina <= 10)
  $resultado = $nomina * 13;
else {
  $nomina -= 10;
  $resultado = 10 * 13;
  if ($nomina <= 15)
    $resultado += $nomina * 12;
  else {
    $nomina -= 15;
    $resultado += 15 * 12;
    if ($nomina <= 25)
      $resultado += $nomina * 11;
    else {
      $nomina -= 25;
      $resultado += 25 * 11;
      $resultado += $nomina * 10;
    }
  }
}
?>
Ahora debería ser correcto. Por cierto que algunos de los ejemplos del PDF son incorrectos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas