public function postDesdeArchivo() { $articulosSinRegistrar = []; try { $extensiones = array('xls', 'xlsx'); $file = Input::file("articulos"); $extension = strtolower($file->getClientOriginalExtension()); $size = Input::file('articulos')->getClientOriginalExtension(); if (!in_array($extension, $extensiones)) { return Redirect::to('/')->with('message', 'Tipo de archivo inválido.'); } $dataUpload = array("articulos" => $file); $objPHPExcel = PHPExcel_IOFactory::load($file); for ($i = 2; $i < 200; $i++) { $codigoBarras = $objPHPExcel->getActiveSheet()->getCell('A' . $i)->getValue(); $cantidad = $objPHPExcel->getActiveSheet()->getCell('B' . $i)->getValue(); // Si la celda está vacía ignora la fila y continúa. if ($codigoBarras == '') { continue; } // Se buscan los artículos que coincidan con el código de barras. $articulos = Article::whereRaw("comments LIKE '%" . $codigoBarras . "%'")->get(); $cantidad = $cantidad; // Si el artículo no existe en el sistema. if (empty($articulos->first()->name)) { // Se agrega el código de barras al final del arreglo $articulosSinRegistrar. array_push($articulosSinRegistrar, $codigoBarras); } else { foreach ($articulos as $articulo) { // Se agrega el artículo al carrito. self::addToCart($articulo, $cantidad); } } } // For if (!empty($articulosSinRegistrar)) { $mensaje = "No se encontraron artículos relacionados para los siguientes valores: <ul>"; foreach ($articulosSinRegistrar as $articulo) { $mensaje .= "<li>" . $articulo . "</li>"; } $mensaje .= "</ul>"; return Redirect::to('cart')->with('message', $mensaje); } return Redirect::to('cart')->with('messageOk', 'Artículos agregados al carrito satisfactoriamente.'); } catch (Exception $e) { return Redirect::to('/')->with('message', 'Ocurrió un error en el postDesdeArchivo.'); } }
public function getSearch() { $title = "Artículos"; $input = Input::all(); $articles = null; $filtro = ''; if ($input['filterBy'] == 'id') { $filtro = 'Artículo con código <strong>' . $input['search'] . '</strong>.'; $articles = Article::whereRaw("id = '" . $input['search'] . "'")->paginate(6); } else { if ($input['filterBy'] == 'comments') { $palabras = explode(' ', $input['search']); $articles = Article::where('comments', 'LIKE', '%%'); foreach ($palabras as $palabra) { $articles->where('comments', 'LIKE', '%' . $palabra . '%'); } $articles = $articles->orderBy('comments', 'ASC')->paginate(6); $filtro = 'Artículos que contienen en datos adicionales <strong>' . $input['search'] . '</strong>.'; //$articles = Article::whereRaw("comments like '%". $input['search'] ."%'")->orderBy('name', 'asc')->paginate(6); } else { // Se asume que el filtro es por nombre. $palabras = explode(' ', $input['search']); $articles = Article::where('name', 'LIKE', '%%'); foreach ($palabras as $palabra) { $articles->where('name', 'LIKE', '%' . $palabra . '%'); } $articles = $articles->orderBy('name', 'ASC')->paginate(6); $filtro = 'Artículos que contienen en el nombre <strong>' . $input['search'] . '</strong>.'; //$articles = Article::whereRaw("name like '%". $input['search'] ."%'")->orderBy('name', 'asc')->paginate(6); } } $branches = Branche::orderBy('name', 'asc')->get(); return View::make('articles.index')->with(compact('articles', 'title', 'branches', 'filtro', 'input')); }