Example #1
0
 /**
  * VISTA CATEGORIA
  * @param $categoria
  * @param null $pp
  * @param null $p
  * @return mixed
  */
 public function run($categoria, $pp = null, $p = null)
 {
     $parametros = Yii::$app->request->post();
     $modelCategoria = new Categorias();
     $modelArticulo = new Articulos();
     $modelProvincia = new Provincias();
     if (!empty(Yii::$app->request->get('ca'))) {
         Yii::$app->request->get('ca');
         $categoria = $modelCategoria->obtenerSlug(Yii::$app->request->get('ca'));
         $provincia = strtolower($modelProvincia->obtenerProvincia(Yii::$app->request->get('ps')));
         $estado = strtolower($modelArticulo->obtenerEstado(Yii::$app->request->get('estado')));
         $estado = MetodosHelper::terminacionEsPlural($categoria) == true ? $estado . 's' : $estado;
         $this->controller->redirect(Yii::$app->urlManager->createUrl(['articulo/categoria-provincia', 'provincia' => $provincia, 'categoria' => $categoria, 'estado' => $estado]));
     }
     $model = Articulos::obtenerArticulosPorCategoria($categoria);
     $datos = new ArticulosBuscador();
     $datos->cs = $categoria;
     $dataProvider = $datos->buscador($parametros, $pp, $p, 'categoria');
     if (!empty($model)) {
         $this->controller->view->params['breadcrumbs'][] = $model[0]->categorias->nombre;
         return $this->controller->render('categoria', ['model' => $model, 'dataProvider' => $dataProvider]);
         echo '<pre>';
         print_r(array('categoria', $categoria, $model[0]->categorias->slug, $model));
     }
     echo '<pre>';
     print_r(array('categoria', $categoria, 'articulo no existe'));
 }
Example #2
0
 /**
  * Crea un articulo
  */
 public function actionCrearArticulo($categoria = null)
 {
     $categoria = !empty($categoria) ? intval($categoria) : 10;
     $model = new Articulos();
     $model->usuario = 1;
     $model->nombre = ucfirst('Articulo demo creado desde consola');
     $model->estado = 'N';
     $model->descripcion = ucfirst('Lorem ipsum dolor sit amet, consectetur adipiscing elit');
     $model->categoria = $categoria;
     $model->precio = '99.99';
     $model->transacciones = 'NE';
     if ($model->save()) {
         echo "Articulo creado: " . $model->idarticulo;
     }
 }
Example #3
0
 /**
  * VISTA PROVINCIA
  * @param $provincia
  */
 public function run($provincia)
 {
     $model = Articulos::obtenerArticulosPorProvincia($provincia);
     if (!empty($model)) {
         echo '<pre>';
         print_r(array('provincia', $provincia, $model[0]->usuarios->municipios->provincias->slug, count($model), $model));
     }
     echo '<pre>';
     print_r(array('provincia', $provincia, 'articulo no existe'));
 }
Example #4
0
 public function prepareDataProvider()
 {
     $params = \Yii::$app->request->queryParams;
     //print_r($params);die();
     $model = new $this->modelClass();
     // I'm using yii\base\Model::getAttributes() here
     // In a real app I'd rather properly assign
     // $model->scenario then use $model->safeAttributes() instead
     $modelAttr = $model->attributes;
     // this will hold filtering attrs pairs ( 'name' => 'value' )
     $search = [];
     if (!empty($params)) {
         foreach ($params as $key => $value) {
             // In case if you don't want to allow wired requests
             // holding 'objects', 'arrays' or 'resources'
             if (!is_scalar($key) or !is_scalar($value)) {
                 throw new BadRequestHttpException('Bad Request');
             }
             // if the attr name is not a reserved Keyword like 'q' or 'sort' and
             // is matching one of models attributes then we need it to filter results
             if (!in_array(strtolower($key), $this->reservedParams) && ArrayHelper::keyExists($key, $modelAttr, false)) {
                 $search[$key] = $value;
             }
         }
     }
     //print_r($search);die();
     // you may implement and return your 'ActiveDataProvider' instance here.
     // in my case I prefer using the built in Search Class generated by Gii which is already
     // performing validation and using 'like' whenever the attr is expecting a 'string' value.
     $searchByAttr['ProductSearch'] = $search;
     $lat = isset($params['lat']) ? $params['lat'] : 18.509111;
     $lon = isset($params['lon']) ? $params['lon'] : -69.8468487;
     $model = new Articulos();
     $searchModel = $model->listadoPorUbicacion($lat, $lon);
     //$searchModel = Articulos::findOne($search);//new \common\models\ArticulosBuscador();
     //return $searchModel->search($searchByAttr);
     return $searchModel;
 }
Example #5
0
 /**
  * VISTA DENUNCIA
  * @param $articulo
  * @return mixed
  */
 public function run($articulo)
 {
     $articulo = Articulos::findOne($articulo);
     $model = new Denuncias();
     //enviar denuncia
     if ($model->load(Yii::$app->request->post())) {
         $id_usuario = '';
         if (!Yii::$app->user->isGuest) {
             $id_usuario = Yii::$app->user->identity->getId();
         }
         $model->cargarValores($articulo->idarticulo, $articulo->usuario, $id_usuario);
         if ($model->crearDenuncia()) {
             return $this->controller->goHome();
         }
     }
     if (!empty($articulo)) {
         return $this->controller->render('denunciar', ['model' => $model, 'articulo' => $articulo]);
     }
     return $this->controller->goHome();
 }
 /**
  * VISTA CATEGORIA PROVINCIA
  * @param $provincia
  * @param $categoria
  * @param $estado
  * @param null $pp
  * @param null $p
  * @return string
  */
 public function run($provincia, $categoria, $estado, $pp = null, $p = null)
 {
     $parametros = Yii::$app->request->post();
     $model = Articulos::obtenerArticulosPorCategoriaProvincia($categoria, $provincia, $estado);
     $datos = new ArticulosBuscador();
     $datos->cs = $categoria;
     $datos->ps = $provincia;
     $datos->ea = $estado;
     $dataProvider = $datos->buscadorCategoriaProvincia($parametros, $pp, $p, 'categoria-provincia');
     if (!empty($model)) {
         if ($provincia == Provincias::TODA_REP_DOM) {
             $this->controller->view->params['breadcrumbs'][] = ['label' => 'Toda República Dominicana', 'url' => Url::to(['articulo/provincia', 'provincia' => Provincias::TODA_REP_DOM])];
         } else {
             $this->controller->view->params['breadcrumbs'][] = ['label' => $model[0]->usuarios->municipios->provincias->nombre, 'url' => Url::to(['articulo/provincia', 'provincia' => $model[0]->usuarios->municipios->provincias->slug])];
             $this->controller->view->params['breadcrumbs'][] = ['label' => $model[0]->usuarios->municipios->nombre, 'url' => Url::to(['articulo/provincia', 'provincia' => $model[0]->usuarios->municipios->provincias->slug])];
         }
         $this->controller->view->params['breadcrumbs'][] = $model[0]->categorias->nombre;
         return $this->controller->render('categoria-provincia', ['model' => $model, 'dataProvider' => $dataProvider]);
         echo '<pre>';
         print_r(array('categoria provincia', $provincia, $model[0]->usuarios->municipios->provincias->slug, count($model), $model));
     }
     echo '<pre>';
     print_r(array('categoria provincia', $provincia, $categoria, $estado, 'articulo no existe'));
 }
Example #7
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getArticulos()
 {
     return $this->hasMany(Articulos::className(), ['usuario' => 'idusuario']);
 }
Example #8
0
 /**
  * Finds the Articulos model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param $municipio
  * @param $articulo
  * @return array|null|\yii\db\ActiveRecord
  * @throws NotFoundHttpException
  */
 protected function findModel($municipio, $articulo)
 {
     if (($model = Articulos::obtenerDetalleArticuloMunicipio($municipio, $articulo)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('El articulo no existe.');
     }
 }
Example #9
0
 /**
  * Obtiene el detalle de un articulo por slug y municipio
  * @param $municipio
  * @param $articulo
  * @return array|null|ActiveRecord
  */
 public static function obtenerArticulosEnProvincia($articulo, $provincia)
 {
     $array = MetodosHelper::dividir_texto($articulo, '-', true);
     $like = '';
     foreach ($array as $palabra) {
         $like .= "lower(articulos.nombre) like '%" . $palabra . "%'\n                    or articulos.slug like '%" . $palabra . "%' or ";
     }
     //busqueda general
     if ($articulo == self::ANUNCIOS && $provincia == Provincias::TODA_REP_DOM) {
         return Articulos::find()->all();
     } else {
         if ($articulo == self::ANUNCIOS && $provincia != Provincias::TODA_REP_DOM) {
             return Articulos::find()->joinWith(['categorias', 'usuarios.municipios.provincias'])->leftJoin('referencias', 'articulos.referencia = referencias.idreferencia')->where('provincias.slug = :provincia', [':provincia' => $provincia])->all();
         }
     }
     //busqueda especifica
     if ($provincia == Provincias::TODA_REP_DOM) {
         return Articulos::find()->leftJoin('referencias', 'articulos.referencia = referencias.idreferencia')->where($like . ' articulos.slug like :articulo or referencias.slug like :articulo', [':articulo' => '%' . $articulo . '%'])->all();
     }
     return Articulos::find()->joinWith(['categorias', 'usuarios.municipios.provincias'])->leftJoin('referencias', 'articulos.referencia = referencias.idreferencia')->where($like . ' articulos.slug like :articulo or referencias.slug like :articulo', [':articulo' => '%' . $articulo . '%'])->andWhere('provincias.slug = :provincia', [':provincia' => $provincia])->all();
     //        $debug = $articulos->prepare(Yii::$app->db->queryBuilder)->createCommand()->rawSql;
     //        echo '<pre>';print_r([$articulo, $provincia, $debug]);die();
     //        echo '<pre>';print_r([$articulo, $provincia, count($articulos), $articulos]);die();
 }
 /**
  * Listado de motivos por que eliminar el anuncio
  * @return array
  */
 public function listadoMotivos()
 {
     $listado = new Articulos();
     return $listado->listadoMotivosEliminacion();
 }
Example #11
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getArticulosTotal()
 {
     return $this->hasMany(Articulos::className(), ['categoria' => 'idcategoria'])->count();
 }
Example #12
0
 /**
  * Busca articulos en base a articulo y categoria
  * @param array $params
  * @return ActiveDataProvider
  */
 public function buscadorArticuloProvincia($params, $page_size = 18, $pagina = 0)
 {
     $query = Articulos::find();
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['page' => $pagina, 'pageSize' => $page_size, 'pageParam' => 'p', 'pageSizeParam' => 'pp', 'defaultPageSize' => '18', 'pageSizeLimit' => [1, 50]], 'sort' => ['defaultOrder' => ['fechacreado' => SORT_DESC]]]);
     $this->load($params);
     $query->leftJoin('categorias', 'categorias.idcategoria = articulos.categoria');
     $query->leftJoin('usuarios', 'usuarios.idusuario = articulos.usuario');
     $query->leftJoin('municipios', 'municipios.idmunicipio = usuarios.municipio');
     $query->leftJoin('provincias', 'provincias.idprovincia = municipios.provincia');
     $query->leftJoin('referencias', 'articulos.referencia = referencias.idreferencia');
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     //busqueda especifica
     if (strcmp($this->na, self::ANUNCIOS) !== 0) {
         $array = MetodosHelper::dividir_texto($this->na, '-', true);
         foreach ($array as $palabra) {
             $query->orWhere(['like', 'articulos.nombre', $palabra]);
             $query->orWhere(['like', 'articulos.slug', $palabra]);
             $query->orWhere(['like', 'referencias.slug', $palabra]);
             $buscador = new Buscador();
             $ids = $buscador->obtenerIdsResultadosIndexados($palabra);
             $query->orWhere(['in', 'articulos.referencia', $ids]);
         }
     }
     if (!empty($this->ps) && $this->ps != Provincias::TODA_REP_DOM) {
         $query->andwhere('provincias.slug = :provincia', [':provincia' => $this->ps]);
     }
     return $dataProvider;
 }
Example #13
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getArticulo0()
 {
     return $this->hasOne(Articulos::className(), ['idarticulo' => 'articulo']);
 }
Example #14
0
 /**
  * Finds the Articulos model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Articulos the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModelArticulo($id)
 {
     if (($model = Articulos::findOne($id)) !== null) {
         return $model;
     }
 }
 /**
  * Crear articulo nuevo
  * @return bool
  */
 public function crear()
 {
     $model = new Articulos();
     $idUsuario = Yii::$app->user->getId();
     if ($this->validate()) {
         $model->usuario = $idUsuario;
         $model->nombre = ucfirst($this->nombre);
         $model->estado = $this->estado;
         $model->descripcion = ucfirst($this->descripcion);
         $model->categoria = $this->categoria;
         $model->precio = $this->precio;
         $model->transacciones = implode(',', $this->transacciones);
         //$archivo = new Archivos();
         if ($model->save()) {
             if (!empty($this->imagenes)) {
                 foreach ($this->imagenes as $key => $file) {
                     $file = (object) $file;
                     // the path to save file, you can set an uploadPath
                     $nombre = ImagenHelper::obtenerNombreArchivo(['usuario' => $idUsuario, 'articulo' => $model->idarticulo, 'imagen' => $file->name]);
                     $archivo = new Archivos();
                     $archivo->usuario = $idUsuario;
                     $archivo->articulo = $model->idarticulo;
                     $archivo->nombre = $nombre;
                     $archivo->tipo = $file->type;
                     $archivo->peso = $file->size;
                     $archivo->fechacreado = MetodosHelper::fechaHoy();
                     //guardamos la imagen principal
                     $archivo->principal = count($this->imagenes) == 1 || $key == $this->principal ? 1 : 0;
                     if ($archivo->save()) {
                         file_put_contents(ImagenHelper::rutaImagenesArticulos() . $nombre, base64_decode($file->base64));
                         ImagenHelper::guardarImagenSize($nombre, 'articulos');
                     }
                 }
             }
             return true;
         } else {
             return false;
         }
     }
     return false;
 }
Example #16
0
 public function actionDemo($id)
 {
     return Articulos::findOne($id);
 }
Example #17
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getTotalArticulos()
 {
     return $this->hasMany(Articulos::className(), ['referencia' => 'idreferencia'])->count();
 }
Example #18
0
 /**
  * Finds the Usuarios model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return Categorias the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = Articulos::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }