/** * Listado de articulos * @param int $id opcional * @return array */ public function detalle($id) { $parametros = array(); $criteria = new CDbCriteria(); $criteria->with = array('ELPROPIETARIO.MIPERFIL', 'ELPROPIETARIO' => array("select" => "id,username,email,profile", "together" => false), 'LAGALERIA', 'LACATEGORIA', 'LAMONEDA'); //detalle articulo if (!empty($id) && is_int($id)) { $criteria->condition = 't.id = :id'; $parametros[':id'] = $id; } $criteria->params = $parametros; $model = Articulos::model()->find($criteria); $model->megusta = !empty($model->megusta) ? $model->megusta : 0; $model->precio = $model->getValor(); $model->categoria = $model->LACATEGORIA->attributes; $model->moneda = $model->LAMONEDA->attributes; $model->categoria = $model->LACATEGORIA->attributes; $model->galeria = array("fotos" => !empty($model->LAGALERIA->imagen) ? ImagenHelper::obtenerFotosArticulo($model->LAGALERIA->imagen) : array(ImagenHelper::imagenArticuloPorDefecto())); $listado = array("propietario" => array("id" => $model->ELPROPIETARIO->id, "id_perfil" => !empty($model->ELPROPIETARIO->MIPERFIL->id) ? $model->ELPROPIETARIO->MIPERFIL->id : 0, "usuario" => $model->ELPROPIETARIO->username, "nombre" => $model->ELPROPIETARIO->MIPERFIL->nombre, "megusta" => !empty($model->ELPROPIETARIO->MIPERFIL->megusta) ? $model->ELPROPIETARIO->MIPERFIL->megusta : 0, "correo" => $model->ELPROPIETARIO->email, "estado" => $model->ELPROPIETARIO->MIPERFIL->estado, "imagen" => !empty($model->ELPROPIETARIO->MIPERFIL->image) ? ImagenHelper::obtenerFotoUsuario($model->ELPROPIETARIO->MIPERFIL->image) : ImagenHelper::imagenUsuarioPorDefecto(), "ubicacion" => $model->ELPROPIETARIO->MIPERFIL->ubicacion)); return array_merge($model->attributes, $listado); }
/** * Returns the data model based on the primary key given in the GET variable. * If the data model is not found, an HTTP exception will be raised. * @param integer $id the ID of the model to be loaded * @return Articulos the loaded model * @throws CHttpException */ public function loadModel($id) { $model = Articulos::model()->findByPk($id); if ($model === null) { throw new CHttpException(404, 'The requested page does not exist.'); } return $model; }
/** * Guarda me gusta de un articulo * @param $id_articulo * @param $dispositivo * @return bool|int|mixed */ public static function guardarMeGusta($id_articulo, $dispositivo) { $resultado = false; if (empty($id_articulo) || empty($dispositivo)) { return $resultado; } $megustatotal = Articulos::model()->findByPk($id_articulo); $condicion = 'id_articulo = :articulo and tipo_interaccion = :tipo and id_dispositivo = :dispositivo'; $parametros = array(":articulo" => $id_articulo, ":dispositivo" => $dispositivo, ":tipo" => self::MEGUSTA); $existe = Interacciones::model()->exists($condicion, $parametros); if (!$existe) { $transaction = Yii::app()->db->beginTransaction(); try { $modelInteraccion = new Interacciones(); $modelInteraccion->id_articulo = $id_articulo; $modelInteraccion->id_dispositivo = $dispositivo; $modelInteraccion->tipo_interaccion = self::MEGUSTA; if ($modelInteraccion->validate() && $modelInteraccion->save()) { $articulocreado = Articulos::model()->findByPk($id_articulo); $articulocreado->megusta = $articulocreado->megusta + 1; $articulocreado->update(array('megusta')); $transaction->commit(); $resultado = $articulocreado->megusta; } } catch (Exception $e) { $transaction->rollback(); $resultado = $megustatotal->megusta; 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__); } } return $resultado; }
/** * 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; }