Example #1
0
 public function actionView($type, $alias)
 {
     $model = Product::find()->where(['product_type' => $type, 'alias' => $alias])->one();
     if (!$model) {
         throw new NotFoundHttpException(\Yii::t('backend', 'Page not found'));
     }
     return $this->render('view', ['model' => $model]);
 }
Example #2
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Product::find();
     $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(['id' => $this->id, 'manufacture_id' => $this->manufacture_id, 'state' => $this->state, 'created_at' => $this->created_at, 'created_by' => $this->created_by, 'updated_at' => $this->updated_at, 'updated_by' => $this->updated_by]);
     $query->andFilterWhere(['like', 'guid', $this->guid])->andFilterWhere(['like', 'title', $this->title])->andFilterWhere(['like', 'slug', $this->slug])->andFilterWhere(['like', 'short_description', $this->short_description])->andFilterWhere(['like', 'description', $this->description])->andFilterWhere(['like', 'extension', $this->extension]);
     return $dataProvider;
 }
Example #3
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Product::find();
     $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['id' => SORT_DESC]]]);
     $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_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', 'product_img', $this->product_img])->andFilterWhere(['like', 'product_type', $this->product_type])->andFilterWhere(['like', 'product_name', $this->product_name])->andFilterWhere(['like', 'product_summary', $this->product_summary])->andFilterWhere(['like', 'product_description', $this->product_description])->andFilterWhere(['like', 'meta_title', $this->meta_title])->andFilterWhere(['like', 'meta_description', $this->meta_description])->andFilterWhere(['like', 'alias', $this->alias]);
     return $dataProvider;
 }
Example #4
0
 /**
  * search the product id from the campaign
  * @param $accountId,MongoId
  * @param $pageSize,int,the number record for one page
  * @param $page,int, which page to show
  */
 public static function searchProductInfo($accountId, $pageSize, $page)
 {
     $where = ['accountId' => $accountId, 'isDeleted' => self::NOT_DELETED];
     $campaigns = Campaign::find()->select(['promotion.data'])->where($where)->all();
     $showData = [];
     //get productId
     if (!empty($campaigns)) {
         $productIds = [];
         foreach ($campaigns as $campaign) {
             if (!empty($campaign['promotion']['data'])) {
                 $ids = $campaign['promotion']['data'];
                 foreach ($ids as $id) {
                     $productIds[] = $id;
                 }
             }
         }
         //get product info from product with productId
         if (!empty($productIds)) {
             $productIds = array_values(array_unique($productIds));
             $len = count($productIds);
             $offset = 0;
             $where = ['_id' => ['$in' => $productIds]];
             $query = Product::find()->select(['_id', 'name'])->where($where);
             if ($len > $pageSize && $pageSize > 0) {
                 $offset = ($page - 1) * $pageSize;
                 $showData = $query->offset($offset)->limit($pageSize);
             }
             $showData = $query->all();
         }
     }
     $data = ['data' => $showData, 'num' => empty($len) ? 0 : $len];
     return $data;
 }
Example #5
0
<?php

use yii\helpers\Html;
//use yii\widgets\ListView;
use yii\grid\GridView;
use backend\modules\product\models\Product;
/* @var $this yii\web\View */
/* @var $dataProvider yii\data\ActiveDataProvider */
$this->title = $type;
$this->params['breadcrumbs'][] = ['label' => 'Продукция', 'url' => '/#products'];
$this->params['breadcrumbs'][] = $this->title;
$this->params['right_menu_page'] = [['label' => 'Производство', 'url' => ['/page/view', 'alias' => 'proizvodstvo']], ['label' => 'О нас', 'url' => ['/page/view', 'alias' => 'about']]];
foreach (Product::find()->groupBy('product_type')->all() as $data) {
    $this->params['right_menu'][] = ['label' => Product::getProductTypeName2($data->product_type), 'url' => ['/product/index', 'type' => $data->product_type]];
}
$this->registerJsFile('/js/filtrproducts.js');
?>

<!--Фильтр товаров-->
<div class="container">
    <div class="row">
        <div class="col-md-8">
            <form>
                <div class="form-process"></div>
                <div class="col-md-8 form-group">
                    <input type="search" class="light-table-filter" data-table="table" placeholder="Поиск">
                </div>
            </form>
        </div>
    </div>
</div>
Example #6
0
 /**
  *check the property is required
  */
 public static function checkParam($params, $accountId)
 {
     //check the sku
     if (isset($params['sku'])) {
         $result = Product::find()->where(['sku' => $params['sku'], 'isDeleted' => false])->one();
         if ($result) {
             throw new InvalidParameterException(['number' => Yii::t("product", "number_isUsed")]);
         }
     }
     if (empty($params['category'])) {
         return true;
     }
     $where = ['isDeleted' => false, 'accountId' => $accountId, '_id' => new \MongoId($params['category']['id'])];
     $categoryInfos = ProductCategory::find()->where($where)->all();
     if (empty($categoryInfos)) {
         throw new ServerErrorHttpException('Fail to find the properties');
     }
     $requiredData = [];
     foreach ($categoryInfos as $categoryInfo) {
         foreach ($categoryInfo['properties'] as $cproperties) {
             if ($cproperties['isRequired']) {
                 $requiredData[] = $cproperties['id'];
             }
         }
     }
     if (count($requiredData) > 0 && empty($params['category']['properties'])) {
         throw new InvalidParameterException([$requiredData[0] => Yii::t('product', 'property_required')]);
     } else {
         if (count($requiredData) > 0 && !empty($params['category']['properties'])) {
             foreach ($params['category']['properties'] as $properties) {
                 $userData[] = $properties['id'];
             }
         }
     }
     foreach ($requiredData as $key => $value) {
         if (!in_array($value, $userData)) {
             throw new InvalidParameterException([$value => \Yii::t('product', 'property_required')]);
         }
     }
 }
Example #7
0
 public static function _generateCodePrefix($productId)
 {
     $year = date('y');
     $year = $year - 10;
     //start from 2015
     $yearPrefix = self::_getPrefix(1, $year);
     $product = Product::findByPk($productId);
     $productIndex = Product::find()->where(['createdAt' => ['$lte' => $product->createdAt], 'accountId' => $product->accountId])->orderBy(['createdAt' => SORT_ASC])->count();
     $productPrefix = self::_getPrefix(2, $productIndex);
     $batchPrefix = self::_getPrefix(1, $product->batchCode);
     return $yearPrefix . $productPrefix . $batchPrefix;
 }