/**
  * 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);
 }
Esempio n. 4
0
 /**
  * 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;
 }