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 originalprivate function comprobar($cantidad){
switch($cantidad):
case $cantidad>0 && $cantidad<=100: return 100; break;
case $cantidad>100 && $cantidad<=200: return 200; break;
case $cantidad>200 && $cantidad<=300: return 300; break;
case $cantidad>300 && $cantidad<=500: return 500; break;
case $cantidad>500 && $cantidad<=1000: return 1000; break;
case $cantidad>1000 && $cantidad<=2000: return 2000; break;
case $cantidad>2000 && $cantidad<=3000: return 3000; break;
case $cantidad>3000 && $cantidad<=4000: return 4000; break;
case $cantidad>4000 && $cantidad<=5000: return 5000; break;
case $cantidad>5000 && $cantidad<=6000: return 6000; break;
case $cantidad>6000 && $cantidad<=8000: return 8000; break;
case $cantidad>8000 && $cantidad<=10000: return 10000; break;
endswitch;
}
public function retornaPrecio($codigo,$cantidad){
$nuevaCantidad=$this->comprobar($cantidad);
$sql="SELECT precio FROM precio WHERE productoID='$codigo' AND cantidad='$nuevaCantidad'";
$precio=$this->uniqueValue($sql);
$precio ? $precio->precio : null;
return $precio;
}
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$nuevaCantidad=$this->comprobar($cantidad);
$sql="SELECT precio FROM precio WHERE productoID='$codigo' AND cantidad='$nuevaCantidad'";
$precio=$this->uniqueValue($sql) ? $precio->precio : null;
return $precio;
y en el where trate de hacer esto pero no funciono
Código PHP:
Ver original$sql="SELECT precio FROM precio WHERE productoID='$codigo' AND cantidad='$this->comprobar($cantidad)'";