/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = ProductCategory::find(); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 1]]); $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->andFilterWhere(['id' => $this->id, 'created_time' => $this->created_time, 'last_update' => $this->last_update]); $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'code', $this->code])->andFilterWhere(['like', 'detail', $this->detail]); return $dataProvider; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $productsCountSql = self::getProductsCountQuery('`pc`.`id`')->createCommand()->sql; $query = ProductCategory::find()->select(['`pc`.*', "({$productsCountSql}) AS `productsCount`"])->from(ProductCategory::tableName() . ' `pc`'); $dataProvider = new ActiveDataProvider(['query' => $query]); $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->andFilterWhere([]); $query->andFilterWhere(['like', 'name', $this->name]); $dataProvider->sort = ['attributes' => ['name', 'productsCount'], 'defaultOrder' => ['name' => SORT_ASC]]; return $dataProvider; }
<?= GridView::widget([ 'dataProvider' => $dataProvider, 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], // 'id', 'code', 'name', // 'detail:ntext', // 'created_time', // 'last_update', // 'product_category_id', [ 'attribute' => 'product_category_id', 'header' => Yii::t('app', 'Product Category'), 'filter' => Html::activeDropDownList($searchModel, 'product_category_id', ArrayHelper::map(\app\models\ProductCategory::find()->asArray()->all(), 'id', 'name'), ['class' => 'form-control', 'prompt' => Yii::t('app', 'All')]), 'value' => function ($data) { return $data->productCategory->name; } ], ['class' => 'yii\grid\ActionColumn', 'template' => '{update} {delete}' ], ], ]); ?> <?php Pjax::end() ?> </div> </div>
/** * Updates an existing ProductCategory model. * If update is successful, the browser will be redirected to the 'view' page. * @param integer $id * @return mixed */ public function actionUpdate($id) { $model = $this->findModel($id); if ($model->load(Yii::$app->request->post()) && $model->save()) { return $this->redirect(['view', 'id' => $model->id]); } else { return $this->render('update', ['model' => $model, 'categories' => ProductCategory::find()->orderBy('id')->asArray()->noParents()->all()]); } }
/** * @return array */ public function getCategoryIdItems() { if ($this->_categoryIdItems !== null) { return $this->_categoryIdItems; } $this->_categoryIdItems = []; $categories = ProductCategory::find()->orderBy('name')->asArray()->all(); if (!empty($categories)) { foreach ($categories as $category) { $this->_categoryIdItems[$category['id']] = $category['name']; } } return $this->_categoryIdItems; }
public function actionSearch() { $post = \Yii::$app->request->post(); if (isset($post["code"])) { $category = ProductCategory::find()->where("code=:code", [":code" => $post["code"]])->one(); if ($category) { echo json_encode(["id" => $category->id, "code" => $category->code, "name" => $category->name]); } } else { echo ""; } }
public function actionProductsales($groupBy = null) { $this->layout = 'dashboard'; $model = new ProductSaleReportForm(); $modelsales = new SaleOrder(); $modelsaleine = new SaleOrderLine(); // Data Category Product $category = ProductCategory::find()->all(); $datacetegory = ArrayHelper::map($category, 'id', 'name'); // Data Pricelist $pricelist = ProductPricelist::find()->where(['type' => 'sale'])->all(); $datapricelist = ArrayHelper::map($pricelist, 'id', 'name'); if ($model->load(Yii::$app->request->get())) { $query = $this->getSOLineRelatedQuery($model, $groupBy); } else { $query = $this->getSOLineRelatedQuery($model, $groupBy); $productcategory = null; $pricelist = null; } $dataProvider = new ActiveDataProvider(['query' => $query, 'key' => 'id', 'pagination' => ['pageSize' => 100]]); if ($groupBy) { return $this->render('productsales_form', ['model' => $model, 'type' => 'search', 'dataProvider' => $dataProvider, 'groupBy' => $groupBy, 'datacetegory' => $datacetegory, 'datapricelist' => $datapricelist]); } else { return $this->render('productsales_form', ['model' => $model, 'type' => 'search', 'dataProvider' => $dataProvider, 'groupBy' => 'nogroup', 'datacetegory' => $datacetegory, 'datapricelist' => $datapricelist]); } }