/** * Listado de slug categorias descuentos * @return string */ private function listadoCategorias() { $slugs = ''; $model = new DescuentosCategorias(); foreach ($model->listadoSlugsCategorias() as $cont => $categoria) { $slugs .= $cont > 0 ? '|' : ''; $slugs .= $categoria['slug']; } return $slugs; }
/** * Slug de categoria principal * @return string */ public function enlaceCategoriaPrincipal() { if ($this->portada) { return null; } return $this->categoria->esPrincipal() ? $this->categoria->slug : Categoria::find()->categoriaPadre($this->categoria->padre)->one()->slug; }
/** * Creates data provider instance with search query applied * @param $params * @param int $page_size * @param int $pagina * @param null $usuario * @return ActiveDataProvider */ public function buscadorDescuentosCategoria($params, $page_size = 18, $pagina = 0, $usuario = null) { // echo '<pre>';print_r([__LINE__, __METHOD__,'',$params,$page_size,$pagina]);die(); $model = DescuentosCategorias::find(); // $query = Descuentos::find()->alias('d'); $query = Descuentos::find(); $tbl_categorias = DescuentosCategorias::tableName(); $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]]]); if (!empty($usuario)) { $query->andWhere('descuentos.usuario = :id', [':id' => $usuario]); } $query->andWhere(['not in', 'descuentos.estado', [self::ESTADO_EXPIRO, self::ESTADO_EXPIRO]]); $this->load($params); 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; } $query->innerJoin($tbl_categorias . ' ch', 'ch.id = descuentos.categoria'); $query->innerJoin($tbl_categorias . ' cp', 'cp.id = ch.padre'); if (!empty($this->cs)) { $categoria = $model->where(['slug' => $this->cs])->one(); if ($categoria->esPrincipal()) { $query->andwhere('ch.padre = :id', [':id' => $categoria->id]); $query->andwhere('cp.slug = :slug', [':slug' => $this->cs]); } else { $query->andwhere('ch.id = :id', [':id' => $categoria->id]); } $query->groupBy(['ch.id', 'descuentos.iddescuento']); } $query->andFilterWhere(['descuentos.iddescuento' => $this->iddescuento, 'descuentos.preciodescuento' => $this->preciodescuento, 'descuentos.categoria' => $this->categoria, 'descuentos.fechacreado' => $this->fechacreado]); $query->andFilterWhere(['like', 'descuentos.nombre', $this->nombre])->andFilterWhere(['like', 'descuentos.descripcion', $this->descripcion])->andFilterWhere(['like', 'descuentos.estado', $this->estado]); return $dataProvider; }
/** * RENDERIZA SUBCATEGORIAS EN DROPDOWNLIST * @param $id */ public function run($id) { $subCategorias = new DescuentosCategorias(); $resultado = $subCategorias->listadoSubcategoriasPorId($id); //echo '<pre>';print_r([$id]);die(); if (!empty($resultado)) { foreach ($resultado as $subc) { echo "<option value='" . $subc->id . "'>" . $subc->nombre . "</option>"; } } else { echo "<option>-</option>"; } // $parametros = Yii::$app->request->post(); // $model = new ArticulosBuscador(); // $id = Yii::$app->user->identity->getId(); // $dataProvider = $model->buscadorArticulosUsuario($parametros, $id); // // return $this->controller->render('descuentos', [ // 'dataProvider' => $dataProvider, // 'model' => $model, // 'search' => $model // ]); }
/** * Reiniciar categoria descuentos * @throws \yii\base\InvalidConfigException */ public function actionRefrescarCategoriasDescuentos() { $schema = DescuentosCategorias::getTableSchema(); if ($schema) { Yii::$app->db->createCommand("SET foreign_key_checks = 0; TRUNCATE TABLE " . $schema->name . ";")->query(); $this->stdout("Se ha limpiado la tabla: " . $schema->name . "\n", Console::FG_CYAN); $this->actionCategoriaDescuentoInit(); return; } $this->stdout("No existe modelo'\n", Console::FG_RED); }
/** * Menu Categorias populares Descuentos * @return array */ public static function listadoCategoriasPopularesDescuentos() { $model = new DescuentosCategorias(); return $model->listadoCategoriasPrincipales(); }
/** * @return \yii\db\ActiveQuery */ public function getCategorias() { return $this->hasOne(DescuentosCategorias::className(), ['id' => 'categoria']); }
/** * Listado sub categorias * @return array|\common\models\DescuentosCategorias[] */ public function listadoSubCategorias() { $listado = new DescuentosCategorias(); return $listado->listadoSubcategoriasPorId(null, true); }
/** * Total descuentos en una categoria principal * @return int|string */ public function totalDescuentosCategoriaPrincipal() { $tbl_categorias = DescuentosCategorias::tableName(); $tbl_descuentos = Descuentos::tableName(); return $this->find()->alias('cp')->innerJoin($tbl_categorias . ' ch', 'ch.padre = cp.id')->innerJoin($tbl_descuentos . ' d', 'd.categoria = ch.id')->where(['cp.id' => $this->id])->groupBy('ch.id')->count(); }