/**
  * 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);
 }
Beispiel #6
0
 /**
  * Menu Categorias populares Descuentos
  * @return array
  */
 public static function listadoCategoriasPopularesDescuentos()
 {
     $model = new DescuentosCategorias();
     return $model->listadoCategoriasPrincipales();
 }
Beispiel #7
0
 /**
  * @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();
 }