Ver Mensaje Individual
  #14 (permalink)  
Antiguo 01/02/2013, 10:51
Avatar de jandrogdz
jandrogdz
 
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 9 meses
Puntos: 12
Respuesta: Como compactar codigo

Ok muchas gracias a todos por su ayuda de verdad aprendi algo nuevo en los switches que puedes hacer validaciones dobles. y gracias a todos por sus consejos me hicieron volar mas ideas ya he conseguido compactarloe me ahorre hasta un 60% de lineas de codigo a la forma en la que yo lo tenia.

Quedo de la siguiente forma:

Código PHP:
Ver original
  1. private function comprobar($cantidad){
  2.         switch($cantidad):
  3.             case $cantidad>0 && $cantidad<=100:  return 100; break;
  4.             case $cantidad>100 && $cantidad<=200:  return 200; break;
  5.             case $cantidad>200 && $cantidad<=300:  return 300; break;
  6.             case $cantidad>300 && $cantidad<=500:  return 500; break;
  7.             case $cantidad>500 && $cantidad<=1000:  return 1000; break;
  8.             case $cantidad>1000 && $cantidad<=2000:  return 2000; break;
  9.             case $cantidad>2000 && $cantidad<=3000:  return 3000; break;
  10.             case $cantidad>3000 && $cantidad<=4000:  return 4000; break;
  11.             case $cantidad>4000 && $cantidad<=5000:  return 5000; break;
  12.             case $cantidad>5000 && $cantidad<=6000:  return 6000; break;
  13.             case $cantidad>6000 && $cantidad<=8000:  return 8000; break;
  14.             case $cantidad>8000 && $cantidad<=10000:  return 10000; break;
  15.         endswitch;
  16.     }
  17.    
  18.     public function retornaPrecio($codigo,$cantidad){
  19.         $nuevaCantidad=$this->comprobar($cantidad);
  20.         $sql="SELECT precio FROM precio WHERE productoID='$codigo' AND cantidad='$nuevaCantidad'";
  21.         $precio=$this->uniqueValue($sql);
  22.         $precio ? $precio->precio : null;  
  23.         return $precio;  
  24.     }

Otra pregunta como puedo hacer para que en el metodo retornPrecio hacer un if mas compacto.
Intente asi:

Pero me dice que la variable $precio no existe
Código PHP:
Ver original
  1. $nuevaCantidad=$this->comprobar($cantidad);
  2.         $sql="SELECT precio FROM precio WHERE productoID='$codigo' AND cantidad='$nuevaCantidad'";
  3.         $precio=$this->uniqueValue($sql) ? $precio->precio : null;  
  4.         return $precio;

y en el where trate de hacer esto pero no funciono

Código PHP:
Ver original
  1. $sql="SELECT precio FROM precio WHERE productoID='$codigo' AND cantidad='$this->comprobar($cantidad)'";
__________________
Lo imposible solo cuesta un poco mas