public function addProduct($idArticulo, $unidades) { $ok = false; $filtro = "session='{$_SESSION['IdSesion']}' and IDArticulo='{$idArticulo}'"; $rows = $this->cargaCondicion("Id", $filtro); if ($rows[0]['Id']) { $carrito = new Carrito($rows[0]['Id']); $carrito->setUnidades($carrito->getUnidades() + $unidades); $carrito->setImporte($carrito->getUnidades() * $carrito->getPrecio() * (1 - $carrito->getDescuento() / 100)); $ok = $carrito->save(); unset($carrito); } else { $articulo = new Articulos($idArticulo); $this->sesion = $_SESSION['IdSesion']; $this->IpOrigen = $_SERVER['REMOTE_ADDR']; $this->UserAgent = $_SERVER['HTTP_USER_AGENT']; $this->IDArticulo = $idArticulo; $this->Descripcion = $articulo->getDescripcion(); $this->Unidades = $unidades; $this->UnidadMedida = $articulo->getUnidadMedida("UMV"); $this->Precio = $articulo->getPrecioVentaConImpuestos(); $this->Descuento = 0; $this->Importe = $this->Unidades * $this->Precio * (1 - $this->Descuento / 100); $this->Iva = $articulo->getIDIva()->getIva(); $this->Recargo = $articulo->getIDIva()->getRecargo(); $this->Estado = 0; $ok = $this->create() > 0; unset($articulo); } return $ok; }
/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new Carrito(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['Carrito'])) { $model->attributes = $_POST['Carrito']; if ($model->save()) { $this->redirect(array('view', 'id' => $model->id)); } } $this->render('create', array('model' => $model)); }
/** * 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; }