select('id',"code")->where("id",">",$id)->where("code","like","IDE%") ->where("status",4)->limit(10)->orderBy("id")->get(); if ($boxes->count()==0)break; $ides = []; $str = "("; for ($i=0;$icode."',"; $ides[$boxes[$i]->code] = $boxes[$i]; } $box = $boxes[count($boxes)-1]; $ides[$box->code] = $box; $str .= "'".$box->code."')"; $id = $box->id; $sql = <<select(DB::raw($sql)) as $item){ if ((int)$item->qty==0)return $ides[$item->locationid]; unset($ides[$item->locationid]); } if ($ides)return current($ides); } return null; } }