Ejemplo n.º 1
0
 public function accion_introducir()
 {
     //sesion::set('carro', null);
     $error = 'No se ha podido añadir el artículo';
     $pagina = isset($_GET['p']) ? (int) $_GET['p'] : 0;
     $miCarro = sesion::get('carro');
     $filtro = array('referencia' => $_GET['id']);
     $articulo = new articulo();
     $sql = $articulo->sqlBuscar($filtro);
     $res = basedatos::obtenerUno($sql);
     $articulo->llenar($res);
     if ($miCarro === null && isset($_GET['id'])) {
         //Introduce un artículo al carro por primera vez
         $miCarro = array();
         //"Casting" a objeto del array $miCarro
         (object) ($miCarro[$articulo->referencia] = $articulo);
         $miCarro[$articulo->referencia]->cantidad = 1;
         sesion::set('carro', $miCarro);
         $error = 'Artículo añadido correctamente';
     } else {
         //Comprobar que el artículo que se quiere introducir no está en el carro
         if (isset($_GET['id'])) {
             $ya_estaba = false;
             $id = $_GET['id'];
             foreach ($miCarro as $key => $value) {
                 if ($miCarro[$key]->referencia === $id) {
                     $miCarro[$key]->cantidad++;
                     $ya_estaba = true;
                     break;
                 }
             }
             if (!$ya_estaba) {
                 $miCarro[$articulo->referencia] = $articulo;
                 $miCarro[$articulo->referencia]->cantidad++;
             }
             sesion::set('carro', $miCarro);
             $error = 'Artículo añadido correctamente';
         }
     }
     vista::generarPagina('inicio/ver', array('pagina' => $pagina, 'error' => $error, 'modelo' => $articulo));
 }