Foros del Web » Programando para Internet » PHP »

función para calcular precio

Estas en el tema de función para calcular precio en el foro de PHP en Foros del Web. Muy buenas, tengo un problema con una función y a ver si me podéis echar una manita. quiero que me realice un cálculo dependiendo de ...
  #1 (permalink)  
Antiguo 08/06/2011, 04:45
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años, 8 meses
Puntos: 3
función para calcular precio

Muy buenas, tengo un problema con una función y a ver si me podéis echar una manita. quiero que me realice un cálculo dependiendo de los datos que se hayan recibido del formulario. Concretamente si el grupo='IO' y el proyecto 'WDM' y tiene todas las actividades menos 2, que haga un cálculo, y en caso contrario otro.
Yo creo que tiene que ver algo con las prioridades pero no consigo dar con ello... os dejo el código! gracias por anticipado!

function calcularPrecioK($actividad, $escalado, $precio, $cantidad, $proyecto, $grupo){
if(($actividad='1' OR $actividad='2' OR $actividad='3' OR $actividad='4' OR $actividad='5' OR $actividad='6' OR $actividad='7' OR $actividad='8' OR $actividad='9' OR $actividad='10' OR $actividad='11' OR $actividad='12' OR $actividad='13' OR $actividad='14' OR $actividad='15' OR $actividad='16' OR $actividad='17' OR $actividad='18' OR $actividad='19' OR $actividad='20' OR $actividad='21' OR $actividad='22' OR $actividad='26')AND $grupo='IO' AND $proyecto='WDM'){
$escaladoK25= $escalado*1.25;

$precioK25 = $precio*$escaladoK25*$cantidad;

}

else {
$precioK25 =$precio*$escalado*$cantidad;
}
return $precioK25;
}
  #2 (permalink)  
Antiguo 08/06/2011, 05:41
 
Fecha de Ingreso: marzo-2011
Mensajes: 107
Antigüedad: 13 años, 8 meses
Puntos: 22
Respuesta: función para calcular precio

$precio separa los decimales con . ?

No hay una forma de simplificar ese if??? mete los numeros en un array y busca $cantidad en el array, porque es un poco grande
  #3 (permalink)  
Antiguo 08/06/2011, 06:06
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 11 meses
Puntos: 209
Respuesta: función para calcular precio

hmmm me parece que desconoces el uso del switch, te quedaría más elegante y menos propenso a errores
  #4 (permalink)  
Antiguo 08/06/2011, 08:25
 
Fecha de Ingreso: abril-2011
Mensajes: 103
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: función para calcular precio

se me está complicando el asunto ya que el cálculo K25 también se hace para el grupo IO independientemente del proyecto y de la actividad (quitando el caso WDM y las actividades 23-25)

He intentado con array pero el error sigue estando en el if inicial, ignora la actividad. Es decir si el proyecto es WDM del grupo IO, realiza el cálculo independientemente de si la actividad es la 1 (sí se haría) o la 23 (no se haría).

Código:
    function calcularPrecioK($actividad, $escalado, $precio, $cantidad, $proyecto, $grupo){
              $activiti = array('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','26');

               if($actividad==$activiti && $grupo=='IO' && $proyecto=='WDM'){
                    $escaladoK25= $escalado*1.25;
              
                    $precioK25 = $precio*$escaladoK25*$cantidad;
                    
                }
                else if($grupo=='IO'){
                     $escaladoK25= $escalado*1.25;
              
                    $precioK25 = $precio*$escaladoK25*$cantidad;
                }
                else {
                    $precioK25 =$precio*$escalado*$cantidad;
                }
                    return $precioK25;
    }
y este sin el array
Código:
    function calcularPrecioK($actividad, $escalado, $precio, $cantidad, $proyecto, $grupo){
             
               if(($actividad=='1' || $actividad=='2' ||$actividad=='3' ||$actividad=='4' ||$actividad=='5' ||$actividad=='6' ||$actividad=='7' ||$actividad=='8' ||$actividad=='9' ||$actividad=='10' ||$actividad=='11' ||$actividad=='12' ||$actividad=='13' ||$actividad=='14' ||$actividad=='15' ||$actividad=='16' ||$actividad=='17' ||$actividad=='18' ||$actividad=='19' ||$actividad=='20' ||$actividad=='21' ||$actividad=='22' ||$actividad=='26') && $grupo=='IO' && $proyecto=='WDM'){
                    $escaladoK25= $escalado*1.25;
              
                    $precioK25 = $precio*$escaladoK25*$cantidad;
                    
                }
                else if($grupo=='IO'){
                     $escaladoK25= $escalado*1.25;
              
                    $precioK25 = $precio*$escaladoK25*$cantidad;
                }
                else {
                    $precioK25 =$precio*$escalado*$cantidad;
                }
                    return $precioK25;
    }
voy a probar con un switch como aconseja iviamontes!
gracias a ambos por responder!
  #5 (permalink)  
Antiguo 08/06/2011, 08:33
Avatar de iviamontes  
Fecha de Ingreso: enero-2011
Ubicación: $cubano->Arg->Mendoza
Mensajes: 1.184
Antigüedad: 13 años, 11 meses
Puntos: 209
Respuesta: función para calcular precio

ok, suerte

Etiquetas: precio, calculadora
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 23:45.