break; case 'remove': $ok = ErpCarrito::removeProduct($datos['Id']); if (!$ok) { $errores = ErpCarrito::getErrores(); } else { $alertas = ErpCarrito::getAlertas(); } break; case 'update': $idLinea = ErpCarrito::updateProduct($datos['Id'], $datos['Unidades']); if (!$idLinea) { $errores = ErpCarrito::getErrores(); } else { $alertas = ErpCarrito::getAlertas(); } break; } $status = 'ok'; if (count($errores)) { $status = "error"; } if (count($alertas)) { $status = "alerta"; } $linea = isset($idLinea) ? ErpCarrito::getLinea($idLinea)->iterator() : array(); $twig->addGlobal('appPath', $app['path']); $htmlMiniCarrito = $twig->render('Carrito/miniCarrito.html.twig', array('carrito' => ErpCarrito::getCarrito())); $resultado = array('status' => $status, 'accion' => $accion, 'linea' => $linea, 'totales' => ErpCarrito::getTotales(), 'errores' => $errores, 'alertas' => $alertas, 'htmlMinicarrito' => $htmlMiniCarrito); $tag = json_encode($resultado); echo $tag;
/** * Actualiza la línea $idLinea del carrito en curso con las * unidades $unidades de producto, actualizando también el importe de la línea * * @param integer $idLinea El id de la línea a actualizar * @param decimal $unidades El número de unidades de producto a actulizar * @return integer El id de la línea actualizada */ static function updateProduct($idLinea, $unidades) { $carrito = new Carrito($idLinea); $idLinea = $carrito->getId(); if ($idLinea) { $carrito->setUnidades($unidades); $carrito->setImporte($carrito->getPrecio() * $unidades); // * (1 - $carrito->getDescuento() / 100)); $carrito->save(); self::$errores = $carrito->getErrores(); self::$alertas = $carrito->getAlertas(); } return $idLinea; }