Foros del Web » Programando para Internet » PHP »

Problema de calculo en php (complicado)

Estas en el tema de Problema de calculo en php (complicado) en el foro de PHP en Foros del Web. Tengo que hacer este cálculo: En un formulario se pone una cantidad y el cálculo tiene tres condiciones para dar un importe total: Primera opción/condición: ...
  #1 (permalink)  
Antiguo 17/06/2008, 19:28
 
Fecha de Ingreso: mayo-2008
Mensajes: 32
Antigüedad: 16 años
Puntos: 0
Problema de calculo en php (complicado)

Tengo que hacer este cálculo:

En un formulario se pone una cantidad y el cálculo tiene tres condiciones para dar un importe total:

Primera opción/condición:
Si pone una cantidad hasta 500 el precio es:
25,00 euros
Y hasta esta cantidad el precio final siempre es de 25,00 euros
A partir de 500 hay que hacer estos cálculos:

Segunda opción:
Si pone una cantidad entre 501 y 2000 el precio es:
25,00 euros (que equivale al valor hasta 500 de la primera opción y que se arrastrará este importe y cantidad en adelante)
+ la diferencia hasta llegar a la cantidad puesta que se multiplica por 0.48 euros y se divide por 12
Ejemplo: pongo 600
Arrastro 500 de cantidad y 25,00 euros
Queda una diferencia de 100 (que se multiplica 100x0.48 y se divide por 12)
Total: 25,00 + 4,48 = 29,48 euros

Tercera opción:
Si pone más de 2001 el precio es:
(25,00 euros) + (valor de la segunda opción acumulado hasta llegar a 2000) + (la cantidad puesta a partir de 2001 y esa cantidad se multiplica por 0.35 euros y se divide por 12)


Bueno, no se si se entiende pero para mi es bastante complicado.
Tengo hecho esto hasta aquí y me calcula bien la primera opción pero ya no sé como seguir

$asientos = $_POST ["importe"];
if ($asientos <= 500)
$resultado2 = 25;
else {
$asientos -= 500;
$resultado2 = + 25;
if ($asientos <= 2000)
$resultado2 += $asientos * 48/1000/12;
else {
$asientos -= 2000;
$resultado2 += 2000 * 48/1000/12;
if ($asientos <= 25)
$resultado2 += $asientos * 11;
}


$total= $resultado2;

Os agradecería ayuda y alguna explicación ya que estoy empezando en php y no tengo mucha idea pero sí ganas de aprender
Gracias
  #2 (permalink)  
Antiguo 17/06/2008, 19:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema de calculo en php (complicado)

tengo una idea... ya que es un calculo matemático, intenta resolverlo con álgebra o algo así...

una ves que lo tengas resuelto, pásalo a PHP o al lenguaje que desees, así es mas fácil...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 18/06/2008, 02:07
 
Fecha de Ingreso: mayo-2008
Mensajes: 32
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema de calculo en php (complicado)

Yo tengo creado hasta aquí y me funciona bien parte del calculo, pero hay cantidades que me salen mal los decimales y el calculo en si.
Hasta 500 me calcula bien (sale siempre 25)
Luego dependiendo que cantidades pongo me sale bien o me sale asi:
Total: 119.58333333333,00 euros

Yo tengo hecho esto:

$asientos = $_POST ["cantidad"];

if ($asientos <= 500)
$resultado2 = $asientos = 25;
else {
$asientos -= 500;
$resultado2 = + 25;

if ($asientos <= 2000)
$resultado2 += $asientos * 0.48/12;
else {
$asientos -= 2000;
$resultado2 += 2000 * 0.48/12;
$resultado2 += $asientos * 0.35/12;
}
}
  #4 (permalink)  
Antiguo 18/06/2008, 02:26
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Respuesta: Problema de calculo en php (complicado)

Para empezar no puedes usar la variable asientos como la estas utilizando ya que necesitas una temporal para hacer restas (siempre que tengas menos de 2000 te va a entrar en los dos if, unas veces haciendo lo correcto y otras no) con lo cual el segundo if deberia excluir al primero (if ($asientos>500) && ($asientos<=2000)).

Mi consejo es que cojas una variable ($num_asientos) que dejes fija para que sepas lo que tienes y despues aunque sea más pesado yo lo haría, para no hacerte lios, tal y como lo has explicado haciendo tres if excluyentes (<=500, >500 y <=2000, >2000) y realizando todas las operaciones en cada if ayudandote de temporales
  #5 (permalink)  
Antiguo 18/06/2008, 04:59
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problema de calculo en php (complicado)

en este if agrega un intervalo de cantidades, aver si resuelve tu problema

if ( $asientos >500 && $asientos <= 2000)


Un saludo

EDITO: no me di cuenta y te dije lo mismo que en el post de arriba
  #6 (permalink)  
Antiguo 18/06/2008, 05:05
 
Fecha de Ingreso: mayo-2008
Mensajes: 32
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema de calculo en php (complicado)

Cita:
Iniciado por cargosan Ver Mensaje
Para empezar no puedes usar la variable asientos como la estas utilizando ya que necesitas una temporal para hacer restas (siempre que tengas menos de 2000 te va a entrar en los dos if, unas veces haciendo lo correcto y otras no) con lo cual el segundo if deberia excluir al primero (if ($asientos>500) && ($asientos<=2000)).

Mi consejo es que cojas una variable ($num_asientos) que dejes fija para que sepas lo que tienes y despues aunque sea más pesado yo lo haría, para no hacerte lios, tal y como lo has explicado haciendo tres if excluyentes (<=500, >500 y <=2000, >2000) y realizando todas las operaciones en cada if ayudandote de temporales

Me podrías poner parte del código correcto para hacerme una idea?
Te lo agadezco
Gracias
  #7 (permalink)  
Antiguo 18/06/2008, 05:08
 
Fecha de Ingreso: mayo-2008
Mensajes: 32
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema de calculo en php (complicado)

Cita:
Iniciado por jaronu Ver Mensaje
en este if agrega un intervalo de cantidades, aver si resuelve tu problema

if ( $asientos >500 && $asientos <= 2000)


Un saludo

EDITO: no me di cuenta y te dije lo mismo que en el post de arriba


Lo he puesto y me sigue sin funcionar,
Si pongo 505 me sale: 25.08,00
Ayuda please!!
  #8 (permalink)  
Antiguo 18/06/2008, 05:14
 
Fecha de Ingreso: mayo-2008
Mensajes: 32
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema de calculo en php (complicado)

Cita:
Iniciado por xavi33es Ver Mensaje
Me podrías poner parte del código correcto para hacerme una idea?
Te lo agadezco
Gracias
Ahora lo tengo así:

$asientos = $_POST ["cantidad"];

if ($asientos <= 500)
$resultado2 = $asientos = 25;
else {
$asientos -= 500;
$resultado2 = + 25;

if (($asientos >500) && ($asientos <=2000))
$resultado2 += $asientos * 0.48/12;
else {
$asientos -= 2000;
$resultado2 += 2000 * 0.48/12;
$resultado2 += $asientos * 0.35/12;
}
}
$total= $resultado2;
echo "El presupuesto es de: <b> $total</b>,00 euros/mes";
?>
  #9 (permalink)  
Antiguo 18/06/2008, 05:18
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problema de calculo en php (complicado)

Separa los IF a ver si es eso, que puede ser, aunque tampoco me gusta como tienes esos ELSE, si las condiciones las haces en el IF para ver cual es el rango de cantidades, creo que deberias quitar los ELSE y si no usar ELSE IF y anidar los dos IF´s

Código PHP:
if ($asientos <= 500)
$resultado2 $asientos 25
else {
$asientos -= 500
$resultado2 = + 25;
}



if ((
$asientos >500) && ($asientos <=2000))
$resultado2 += $asientos 0.48/12;
else { 
$asientos -= 2000
$resultado2 += 2000 0.48/12
$resultado2 += $asientos 0.35/12
 

$total$resultado2;
echo 
"El presupuesto es de: <b> $total</b>,00 euros/mes";

  #10 (permalink)  
Antiguo 18/06/2008, 05:27
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Respuesta: Problema de calculo en php (complicado)

a Ver si te sirve esto, creo haber entendido lo que pides

Código PHP:
<?
$asientos
=$_POST['cantidad'];
$asientos_tmp=$asientos;
$precio_total=0;

if (
$asientos_tmp<=500)
{
$precio_total=25.00
}

if ((
$asientos_tmp>500) && ($asientos_tmp<=2000))
{
// este es el precio hasta 500
$precio_total=25.00;
//sumamos el resto
$resto=$asientos-500;
$precio_parcial=($resto*0.48)/12;
$precio_total+=$precio_parcial;
}



if (
$asientos_tmp<2000)
{
// este es el precio hasta 500
$precio_total=25.00;
// hasta 2000-500 = 1500
$precio_parcial=(1500*0.48)/12;
$precio_total+=$precio_parcial;
//el resto es más de 2000
$resto=$asientos-2000;
$precio_parcial=($resto*0.35)/12;
$precio_total+=$precio_parcial;
}

return 
$precio_total;
?>
  #11 (permalink)  
Antiguo 18/06/2008, 06:36
 
Fecha de Ingreso: mayo-2008
Mensajes: 32
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema de calculo en php (complicado)

Cita:
Iniciado por cargosan Ver Mensaje
a Ver si te sirve esto, creo haber entendido lo que pides

Código PHP:
<?
$asientos
=$_POST['cantidad'];
$asientos_tmp=$asientos;
$precio_total=0;

if (
$asientos_tmp<=500)
{
$precio_total=25.00
}

if ((
$asientos_tmp>500) && ($asientos_tmp<=2000))
{
// este es el precio hasta 500
$precio_total=25.00;
//sumamos el resto
$resto=$asientos-500;
$precio_parcial=($resto*0.48)/12;
$precio_total+=$precio_parcial;
}



if (
$asientos_tmp<2000)
{
// este es el precio hasta 500
$precio_total=25.00;
// hasta 2000-500 = 1500
$precio_parcial=(1500*0.48)/12;
$precio_total+=$precio_parcial;
//el resto es más de 2000
$resto=$asientos-2000;
$precio_parcial=($resto*0.35)/12;
$precio_total+=$precio_parcial;
}

return 
$precio_total;
?>



Te adjunto una dirección para que veas mi problema
Está el formulario y la página de cálculo (tambien un link para un pdf)
Lo de las nóminas me funciona pero lo tro es donde falla
la dirección es: http://www.economis.es/calculo.php

Gracias
  #12 (permalink)  
Antiguo 18/06/2008, 06:44
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problema de calculo en php (complicado)

Hola de nuevo, no se si haces bien los calculos, eso es de las matematicas, pero yo usaria por ejemplo ELSE IF para anidar los IF´s, para que se te cumplan bien las condiciones.


Código PHP:
if (condicion
{

//calculos

}

else if (
condicion2)

{

//calculos

}

else if (
condicion 3)

{

//calculos


Y si no, dejame el codigo del form, pues el php ya lo tengo, para probarlo en local , a ver donde falla, porque te da error de que no has cerrado un corchete {
Un saludo

Última edición por jaronu; 18/06/2008 a las 06:55
  #13 (permalink)  
Antiguo 18/06/2008, 07:07
 
Fecha de Ingreso: mayo-2008
Mensajes: 32
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema de calculo en php (complicado)

Cita:
Iniciado por jaronu Ver Mensaje
Hola de nuevo, no se si haces bien los calculos, eso es de las matematicas, pero yo usaria por ejemplo ELSE IF para anidar los IF´s, para que se te cumplan bien las condiciones.


Código PHP:
if (condicion
{

//calculos

}

else if (
condicion2)

{

//calculos

}

else if (
condicion 3)

{

//calculos


Y si no, dejame el codigo del form, pues el php ya lo tengo, para probarlo en local , a ver donde falla, porque te da error de que no has cerrado un corchete {
Un saludo

He publicado el calculo en esta dirección: http://www.economis.es/calculo.php
y un pdf de ejemplo: http://www.economis.es/pdf/calculo.pdf

Oye, gracias por tu ayuda pero es un encargo que me esta volviendo loco
  #14 (permalink)  
Antiguo 18/06/2008, 07:15
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problema de calculo en php (complicado)

pero publica tambien el codigo html del form, La verdad, no me apetece hacer uno si ya lo tienes hecho y lo provare en local

Un saludo

EDITO:

no hace falta, ya tengo el html del form
  #15 (permalink)  
Antiguo 18/06/2008, 07:26
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problema de calculo en php (complicado)

prueba asi, y mira si te hace bien los calculos, que esa parte no la he mirado

Código PHP:
if (isset ($_POST ["nomina"])){  // comprovamos que llega la variable del form

$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


}

//Hasta aquí me calcula bien la parte de las nónimas 

// Apartir de aquí es donde el calculo no sé como hacerlo 

$compra $_POST ["compra"];
$venta $_POST ["venta"];
$asientos $compra $venta;
$asientos_tmp $asientos
$precio_total=0

if (
$asientos_tmp <=500

$precio_total 25.00 ;
 

if ((
$asientos_tmp>500) && ($asientos_tmp<=2000)) 

// este es el precio hasta 500 
$precio_total 25.00
//sumamos el resto 
$resto $asientos-500
$precio_parcial = ($resto*0.48)/12
$precio_total += $precio_parcial


 

if (
$asientos_tmp <2000

// este es el precio hasta 500 
$precio_total 25.00
// hasta 2000-500 = 1500 
$precio_parcial = (1500*0.48)/12
$precio_total += $precio_parcial
//el resto es más de 2000 
$resto=$asientos -2000
$precio_parcial = ($resto*0.35)/12
$precio_total += $precio_parcial

//return $precio_total;
$total$resultado $preciototal;
echo 
"El presupuesto es de: <b> $total</b>,00 euros/mes";
}
?> 
  #16 (permalink)  
Antiguo 18/06/2008, 07:32
 
Fecha de Ingreso: mayo-2008
Mensajes: 32
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema de calculo en php (complicado)

Cita:
Iniciado por jaronu Ver Mensaje
prueba asi, y mira si te hace bien los calculos, que esa parte no la he mirado

Código PHP:
if (isset ($_POST ["nomina"])){  // comprovamos que llega la variable del form

$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


}

//Hasta aquí me calcula bien la parte de las nónimas 

// Apartir de aquí es donde el calculo no sé como hacerlo 

$compra $_POST ["compra"];
$venta $_POST ["venta"];
$asientos $compra $venta;
$asientos_tmp $asientos
$precio_total=0

if (
$asientos_tmp <=500

$precio_total 25.00 ;
 

if ((
$asientos_tmp>500) && ($asientos_tmp<=2000)) 

// este es el precio hasta 500 
$precio_total 25.00
//sumamos el resto 
$resto $asientos-500
$precio_parcial = ($resto*0.48)/12
$precio_total += $precio_parcial


 

if (
$asientos_tmp <2000

// este es el precio hasta 500 
$precio_total 25.00
// hasta 2000-500 = 1500 
$precio_parcial = (1500*0.48)/12
$precio_total += $precio_parcial
//el resto es más de 2000 
$resto=$asientos -2000
$precio_parcial = ($resto*0.35)/12
$precio_total += $precio_parcial

//return $precio_total;
$total$resultado $preciototal;
echo 
"El presupuesto es de: <b> $total</b>,00 euros/mes";
}
?> 


Me da siempre 0
Está publicado en: http://www.economis.es/calculo.php
miratelo tu mismo y veras que las nominas las calcula bien, pero en o tro me da '0' de resultado siempre

Gracias
  #17 (permalink)  
Antiguo 18/06/2008, 07:35
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problema de calculo en php (complicado)

pues a mi no, si pongo todos los campos del form 1

me sale como resultado

El presupuesto es de: 13,00 euros/mes

seguro que lo has copiado y pegado bien??

a ver si tu problema ahora es el form

yo he puesto este

Cita:

<form name="form1" action="rcalculo.php" method="POST">
<p class="cont2"> <strong>&iquest;Cu&aacute;ntos trabajadores tiene en n&oacute;mina?<img src="http://www.forosdelweb.com/images/10_trans.gif" width="10" height="10"></strong>
<input type="text" name="nomina" size="6" maxlength="2">
</p>
<p class="cont2"><strong>&iquest;Facturas de Compra?<img src="/images/10_trans.gif" width="10" height="10"></strong>
<input name="compra" type="text" id="compra" size="10" maxlength="4">
</p>
<p class="cont2"><strong>Facturas de venta <img src="/images/10_trans.gif" width="10" height="10"></strong>
<input name="venta" type="text" id="venta" size="10" maxlength="4">
</p>
<p class="cont2">
<label>
<input type="submit" name="button" id="button" value="Enviar" />
</label>
<br>
<img src="/images/10_trans.gif" width="10" height="10"><br>
</p>
</form>

Última edición por jaronu; 18/06/2008 a las 07:41
  #18 (permalink)  
Antiguo 18/06/2008, 07:43
 
Fecha de Ingreso: mayo-2008
Mensajes: 32
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema de calculo en php (complicado)

Cita:
Iniciado por jaronu Ver Mensaje
pues a mi no, si pongo todos los campos del form 1

me sale como resultado

El presupuesto es de: 13,00 euros/mes

seguro que lo has copiado y pegado bien??

a ver si tu problema ahora es el form

yo he puesto este
  #19 (permalink)  
Antiguo 18/06/2008, 07:47
 
Fecha de Ingreso: mayo-2008
Mensajes: 32
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema de calculo en php (complicado)

Ya, el problema no está en el cálculo de las nóminas (esto funciona bien)
el problema es en el cálculo de las otras dos casillas que dan la $asientos
que debe calcular lo que te digo en el pdf y lo que en el código php pone
Ahora si pones cualquier cantidad en las casillas que calculan los asientos me da resultado siempre de 'cero'

¿?
  #20 (permalink)  
Antiguo 18/06/2008, 07:48
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problema de calculo en php (complicado)

Hola

edita esta linea

Código PHP:
if (isset ($_POST ["nomina"]) || isset ($_POST ["compra"]) || isset ($_POST ["venta"])){  // comprovamos que llega la variable del form 
No te deben de entrar los IF, intenta anidarlos con else if como te dije antes y nos cuentas

Un saludo

Última edición por jaronu; 18/06/2008 a las 07:53
  #21 (permalink)  
Antiguo 18/06/2008, 07:55
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problema de calculo en php (complicado)

Aqui hay un error al nombrar a la variables

$total= $resultado + $preciototal;
echo "El presupuesto es de: <b> $total</b>,00 euros/mes";


Has de poner


$total= $resultado + $precio_total;
echo "El presupuesto es de: <b> $total</b>,00 euros/mes";
  #22 (permalink)  
Antiguo 18/06/2008, 08:01
 
Fecha de Ingreso: mayo-2008
Mensajes: 32
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema de calculo en php (complicado)

Más fácil:
Olvidémonos del cálculo de las nónimas y nos centramos en el calculo que me da problemas:
Ahora queda así:
http://www.economis.es/calculo.php

Me da cero (ya lo verás)

y el código puesto en rcalculo.php es el siguiente:

<?php
$compra = $_POST ["compra"];
$venta = $_POST ["venta"];
$asientos = $compra + $venta;
$asientos_tmp = $asientos;
$precio_total=0; if ($asientos_tmp <= 500)

$precio_total = 25.00;


if (($asientos_tmp > 500) && ($asientos_tmp <= 2000))
{
// este es el precio hasta 500
$precio_total = 25.00;
//sumamos el resto
$resto = $asientos -500;
$precio_parcial = ($resto*0.48)/12;
$precio_total += $precio_parcial;
}

if ($asientos_tmp <2000)
{
// este es el precio hasta 500
$precio_total = 25.00;
// hasta 2000-500 = 1500
$precio_parcial = (1500*0.48)/12;
$precio_total += $precio_parcial;
//el resto es más de 2000
$resto=$asientos -2000;
$precio_parcial = ($resto*0.35)/12;
$precio_total += $precio_parcial;

$total= $preciototal;
echo "El presupuesto es de: <b> $total</b>,00 euros/mes";
}
?>
  #23 (permalink)  
Antiguo 18/06/2008, 08:03
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problema de calculo en php (complicado)

lee el post de arriba que te deje
  #24 (permalink)  
Antiguo 18/06/2008, 08:09
 
Fecha de Ingreso: mayo-2008
Mensajes: 32
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema de calculo en php (complicado)

Ya lo he corregido y me salen mal los calculos
No entiendo donde está el error para que dé esos importes extraños

http://www.economis.es/calculo.php


¿?
  #25 (permalink)  
Antiguo 18/06/2008, 08:46
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Respuesta: Problema de calculo en php (complicado)

Cita:
Iniciado por xavi33es Ver Mensaje
Ya lo he corregido y me salen mal los calculos
No entiendo donde está el error para que dé esos importes extraños

http://www.economis.es/calculo.php


¿?
Segun el pdf que me dijiste yo creo que lo que yo te indique para los asientos esta bien, otra cosa es que quieras formatear los numeros porque te de numeros extrañisimos con decimales
  #26 (permalink)  
Antiguo 18/06/2008, 10:44
 
Fecha de Ingreso: mayo-2008
Mensajes: 32
Antigüedad: 16 años
Puntos: 0
Respuesta: Problema de calculo en php (complicado)

Cargosan,
yo no quiero numeros formateados ni extraños,
tan solo que me de un calculo a traves de unas condiciones
Actualmente el codigo que tengo es este:

<?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;
}
}
}

//Hasta aquí me calcula bien la parte de las nónimas

// Apartir de aquí es donde el calculo no sé como hacerlo

$compra = $_POST ["compra"];
$venta = $_POST ["venta"];
$asientos = $compra + $venta;
$asientos_tmp = $asientos;
$precio_total=0;

if ($asientos_tmp <= 500)

$precio_total = 25.00;


if (($asientos_tmp > 500) && ($asientos_tmp <= 2000))
{
// este es el precio hasta 500
$precio_total = 25.00;
//sumamos el resto
$resto = $asientos -500;
$precio_parcial = ($resto*0.48)/12;
$precio_total += $precio_parcial;
}

if ($asientos_tmp <2000)
{
// este es el precio hasta 500
$precio_total = 25.00;
// hasta 2000-500 = 1500
$precio_parcial = (1500*0.48)/12;
$precio_total += $precio_parcial;
//el resto es más de 2000
$resto=$asientos -2000;
$precio_parcial = ($resto*0.35)/12;
$precio_total += $precio_parcial;
}
$total= $resultado + $asientos;
echo "El presupuesto es de: <b> $total</b> euros/mes";

?>

Y la parte del calculo de NOMINAS me sale correcto, pero el otro calculo es donde me sale la suma de lo que pongo.
Y tiene que hacer el calculo que ya dije y que puedes ver en el pdf que tengo publicado en
http://www.economis.es/pdf/calculo.pdf

Debe haber algo que está mal y como voy haciendo lo que me vais diciendo no sé donde está el error.
Gracias por vuestra ayuda
  #27 (permalink)  
Antiguo 19/06/2008, 02:54
 
Fecha de Ingreso: abril-2003
Ubicación: Malaga
Mensajes: 176
Antigüedad: 21 años
Puntos: 1
Respuesta: Problema de calculo en php (complicado)

Cita:
Iniciado por xavi33es Ver Mensaje
Cargosan,
yo no quiero numeros formateados ni extraños,
tan solo que me de un calculo a traves de unas condiciones
Actualmente el codigo que tengo es este:

<?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;
}
}
}

//Hasta aquí me calcula bien la parte de las nónimas

// Apartir de aquí es donde el calculo no sé como hacerlo

$compra = $_POST ["compra"];
$venta = $_POST ["venta"];
$asientos = $compra + $venta;
$asientos_tmp = $asientos;
$precio_total=0;

if ($asientos_tmp <= 500)

$precio_total = 25.00;


if (($asientos_tmp > 500) && ($asientos_tmp <= 2000))
{
// este es el precio hasta 500
$precio_total = 25.00;
//sumamos el resto
$resto = $asientos -500;
$precio_parcial = ($resto*0.48)/12;
$precio_total += $precio_parcial;
}

if ($asientos_tmp >2000)
{
// este es el precio hasta 500
$precio_total = 25.00;
// hasta 2000-500 = 1500
$precio_parcial = (1500*0.48)/12;
$precio_total += $precio_parcial;
//el resto es más de 2000
$resto=$asientos -2000;
$precio_parcial = ($resto*0.35)/12;
$precio_total += $precio_parcial;
}
$total= $resultado + $asientos;
echo "El presupuesto es de: <b> $total</b> euros/mes";

?>

Y la parte del calculo de NOMINAS me sale correcto, pero el otro calculo es donde me sale la suma de lo que pongo.
Y tiene que hacer el calculo que ya dije y que puedes ver en el pdf que tengo publicado en
http://www.economis.es/pdf/calculo.pdf

Debe haber algo que está mal y como voy haciendo lo que me vais diciendo no sé donde está el error.
Gracias por vuestra ayuda

Vamos a ver:

1.-$total= $resultado + $asientos; no se esto que es, en todo caso si he entendido bien seria $total= $resultado + $precio_total, no?

2.- Has probado las dos cosas por separado? asi podemos acotar un poco mas el error

Comentame lo que sea e intentamos sacarlo

EDITO: mira lo que te he puesto en negrita del codigo la ultima condicion esta mal, tenia un menor en vez de un mayor

Última edición por cargosan; 19/06/2008 a las 03:00
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:12.