/** * Creates a new model. * If creation is successful, the browser will be redirected to the 'view' page. */ public function actionCreate() { $model = new Articulos(); // Uncomment the following line if AJAX validation is needed // $this->performAjaxValidation($model); if (isset($_POST['Articulos'])) { $model->attributes = $_POST['Articulos']; if ($model->save()) { $this->redirect(array('view', 'id' => $model->id)); } } $this->render('create', array('model' => $model)); }
public function actionCreate() { switch ($_GET['model']) { // Get an instance of the respective model case 'posts': $model = new Post(); break; case 'articulo': $model = new Articulos(); break; default: $this->_sendResponse(501, sprintf('Mode <b>create</b> is not implemented for model <b>%s</b>', $_GET['model'])); Yii::app()->end(); } // Try to assign POST values to attributes foreach ($_POST as $var => $value) { // Does the model have this attribute? If not raise an error if ($model->hasAttribute($var)) { $model->{$var} = $value; } else { $this->_sendResponse(500, sprintf('Parameter <b>%s</b> is not allowed for model <b>%s</b>', $var, $_GET['model'])); } } // Try to save the model if ($model->save()) { $this->_sendResponse(200, CJSON::encode($model)); } else { // Errors occurred $msg = "<h1>Error</h1>"; $msg .= sprintf("Couldn't create model <b>%s</b>", $_GET['model']); $msg .= "<ul>"; foreach ($model->errors as $attribute => $attr_errors) { $msg .= "<li>Attribute: {$attribute}</li>"; $msg .= "<ul>"; foreach ($attr_errors as $attr_error) { $msg .= "<li>{$attr_error}</li>"; } $msg .= "</ul>"; } $msg .= "</ul>"; $this->_sendResponse(500, $msg); } }
/** * Recalcular el escandallo y actualiza los precios * en el articulo padre (origen) * * @param inter $idArticuloOrigen */ private function recalcular($idArticuloOrigen) { $escan = new ArticulosEscandallos(); $totales = $escan->cargaCondicion("sum(Unidades) as Unidades,sum(ImporteCosto) as Costo,sum(ImporteVenta) as Venta,sum(Peso) as Peso,sum(Volumen) as Volumen", "IDArticuloOrigen='{$idArticuloOrigen}' and IDArticuloDestino>0 GROUP BY IDArticuloOrigen"); $totales = $totales[0]; unset($escan); // Borrar la fila de totalización y volverla a crear $escan = new ArticulosEscandallos(); $escan->queryDelete("IDArticuloOrigen='{$idArticuloOrigen}' and IDArticuloDestino='0'"); $escan = new ArticulosEscandallos(); $escan->setIDArticuloOrigen($idArticuloOrigen); $escan->setIDArticuloDestino(0); $escan->setUnidades($totales['Unidades']); $escan->setImporteCosto($totales['Costo']); $escan->setImporteVenta($totales['Venta']); $escan->setPeso($totales['Peso']); $escan->setVolumen($totales['Volumen']); $escan->create(); unset($escan); // Actualizar el artículo padre // Leo el parametro 'ACTU_PRECIOS' para ver el comportamiento a seguir // en el cambio de precio de venta o margen. Si no estuviera definido, // se respeta el PVP a costa del MARGEN $parametro = $_SESSION['usuarioPortal']['actuPrecios']; if ($parametro != 'MARGEN' and $parametro != 'PVP') { $parametro = 'MARGEN'; } $articulo = new Articulos($idArticuloOrigen); // Calculo el nuevo margen o el nuevo precio de venta (según el parámetro) sobre el PRECIO MEDIO DE COSTO $articulo->setPvd($totales['Costo']); $articulo->setPvp($totales['Venta']); if ($articulo->getPmc() == 0) { $articulo->setPmc($articulo->getPvd()); } if ($articulo->getPmc() != 0) { $articulo->setMargen(100 * ($articulo->getPvp() / $articulo->getPmc() - 1)); } else { $articulo->setMargen(0); } $articulo->setFechaUltimoPrecio(date('Y-m-d H:i:s')); $articulo->save(); unset($articulo); }
/** * Crea Articulo * @param objecto $articulo * @return array */ public static function crearArticulo($articulo) { $respuesta = array('registro' => 0); if (empty($articulo)) { return $respuesta; } $transaction = Yii::app()->db->beginTransaction(); try { $model = new Articulos(); $model->nombre = $articulo->nombre; $model->descripcion = $articulo->descripcion; $model->precio = $articulo->precio; $model->moneda = self::vacio($articulo->moneda) ? 1 : $articulo->moneda; $model->estado = self::vacio($articulo->estado) ? Articulos::ES_NUEVO : $articulo->estado; $model->ubicacion = $articulo->ubicacion; $model->propietario = $articulo->propietario; $model->vistas = $articulo->vistas; $model->intercambio = self::vacio($articulo->intercambio) ? Articulos::NO : $articulo->intercambio; $model->negociable = self::vacio($articulo->negociable) ? Articulos::NO : $articulo->negociable; $model->envios = self::vacio($articulo->envios) ? Articulos::NO : $articulo->envios; $model->categoria = $articulo->categoria; if ($model->validate() && $model->save()) { //guardar imagen if (!self::vacio($articulo->galeria)) { $modelGaleria = new Galerias(); $modelGaleria->articulo = $model->id; $modelGaleria->tipo = ImagenHelper::TIPO_PNG; $modelGaleria->imagen = ImagenHelper::guardarImagenesArticulo($model->id, $model->propietario, $articulo->galeria); if ($modelGaleria->save()) { $transaction->commit(); $articulocreado = Articulos::model()->findByPk($model->id); $articulocreado->galeria = $modelGaleria->id; $articulocreado->update(array('galeria')); } } else { $transaction->commit(); } $respuesta = array('registro' => 1); return $respuesta; } } catch (Exception $e) { $transaction->rollback(); Yii::log("Error occurred while saving (update scenario) artist or its 'songs'. Rolling back... . Failure reason as reported in exception: " . $e->getMessage(), CLogger::LEVEL_ERROR, __METHOD__); } $respuesta['mensaje'] = $model->getErrors(); return $respuesta; }