From 6179580506c1c0a8d04a851a09d3321e80ed29de Mon Sep 17 00:00:00 2001 From: Mihail Date: Thu, 12 Nov 2015 17:38:51 +0200 Subject: [PATCH] fixed testing issues Details, Crosses ex... --- backend/components/FieldEditor/FieldEditor.php | 42 ++++++++++++++++++++++++++++++++++++++++++ backend/components/FieldEditor/views/phone_field.php | 28 ++++++++++++++++++++++++++++ backend/components/FieldEditor/views/price_field.php | 30 ++++++++++++++++++++++++++++++ backend/components/FieldEditor/views/video_field.php | 28 ++++++++++++++++++++++++++++ backend/components/base/BaseActiveRecord.php | 5 ++++- backend/controllers/BrandsController.php | 8 ++++++-- backend/controllers/BrandsReplaceController.php | 6 ++++-- backend/controllers/CurrencyController.php | 6 ++++-- backend/controllers/DetailsController.php | 2 ++ backend/controllers/ManufacturersController.php | 6 ++++-- backend/controllers/MarginsController.php | 6 ++++-- backend/views/brands/index.php | 4 ++-- backend/views/details-crosses/index.php | 10 ++++------ backend/views/details/index.php | 21 +++++++++------------ backend/views/layouts/column.php | 4 ++-- backend/views/manufacturers/_search.php | 18 +++--------------- backend/views/manufacturers/index.php | 17 +++++++---------- common/components/PriceWriter.php | 32 +++++++++++++++++++++----------- common/models/Details.php | 18 +++++++++--------- common/models/DetailsCrosses.php | 10 +++++----- common/models/DetailsCrossesSearch.php | 43 ++++++++++++++++++++++++++++--------------- common/models/DetailsSearch.php | 49 +++++++++++++++++++++++++++++-------------------- common/models/Manufacturers.php | 10 +++++----- common/models/ManufacturersSearch.php | 4 ++-- 24 files changed, 282 insertions(+), 125 deletions(-) create mode 100644 backend/components/FieldEditor/FieldEditor.php create mode 100644 backend/components/FieldEditor/views/phone_field.php create mode 100644 backend/components/FieldEditor/views/price_field.php create mode 100644 backend/components/FieldEditor/views/video_field.php diff --git a/backend/components/FieldEditor/FieldEditor.php b/backend/components/FieldEditor/FieldEditor.php new file mode 100644 index 0000000..82a0b41 --- /dev/null +++ b/backend/components/FieldEditor/FieldEditor.php @@ -0,0 +1,42 @@ +item_id && $this->model){ + $widgetData = $this->findModel(); + } else { + $widgetData= [new Fields()]; + } + + + return $this->render($this->template.'_field',['model'=>$widgetData]); + } + + protected function findModel() + { + if (($model = Fields::find()->where(['table_id'=>$this->item_id, 'table_name'=>$this->model, 'field_type'=>$this->template])->all()) !== null) { + + return $model; + + } else { + return [new Fields()]; + } + } +} \ No newline at end of file diff --git a/backend/components/FieldEditor/views/phone_field.php b/backend/components/FieldEditor/views/phone_field.php new file mode 100644 index 0000000..28078ff --- /dev/null +++ b/backend/components/FieldEditor/views/phone_field.php @@ -0,0 +1,28 @@ + +
+ + 'form-group'])?> + + + + +
+

Добавить поле

+ + + \ No newline at end of file diff --git a/backend/components/FieldEditor/views/price_field.php b/backend/components/FieldEditor/views/price_field.php new file mode 100644 index 0000000..5f552fd --- /dev/null +++ b/backend/components/FieldEditor/views/price_field.php @@ -0,0 +1,30 @@ + +
+ + 'form-group'])?> + + + + + +
+

Добавить поле

+ + + \ No newline at end of file diff --git a/backend/components/FieldEditor/views/video_field.php b/backend/components/FieldEditor/views/video_field.php new file mode 100644 index 0000000..769b608 --- /dev/null +++ b/backend/components/FieldEditor/views/video_field.php @@ -0,0 +1,28 @@ + +
+ + 'form-group'])?> + + + + +
+

Добавить поле

+ + + \ No newline at end of file diff --git a/backend/components/base/BaseActiveRecord.php b/backend/components/base/BaseActiveRecord.php index 1c41f6b..9d4c19d 100644 --- a/backend/components/base/BaseActiveRecord.php +++ b/backend/components/base/BaseActiveRecord.php @@ -13,9 +13,12 @@ use yii\base\ErrorException; class BaseActiveRecord extends \yii\db\ActiveRecord { - public function throwStringErrorException(){ + public function throwStringErrorException($row = 0){ $errors_str = ''; + if ($row != 0) { + $errors_str = "Ошибка в строке {$row} "; + } foreach ($this->getErrors() as $error) { $errors_str .= implode( array_values($error) ); } diff --git a/backend/controllers/BrandsController.php b/backend/controllers/BrandsController.php index 0f9580a..cffb86f 100644 --- a/backend/controllers/BrandsController.php +++ b/backend/controllers/BrandsController.php @@ -14,6 +14,8 @@ use yii\filters\VerbFilter; */ class BrandsController extends Controller { + public $layout = "/column"; + public function behaviors() { return [ @@ -63,7 +65,8 @@ class BrandsController extends Controller $model = new Brands(); if ($model->load(Yii::$app->request->post()) && $model->save()) { - return $this->redirect(['view', 'id' => $model->BRAND]); + //return $this->redirect(['view', 'id' => $model->BRAND]); + return $this->redirect(['index']); } else { return $this->render('create', [ 'model' => $model, @@ -82,7 +85,8 @@ class BrandsController extends Controller $model = $this->findModel($id); if ($model->load(Yii::$app->request->post()) && $model->save()) { - return $this->redirect(['view', 'id' => $model->BRAND]); + //return $this->redirect(['view', 'id' => $model->BRAND]); + return $this->redirect(['index']); } else { return $this->render('update', [ 'model' => $model, diff --git a/backend/controllers/BrandsReplaceController.php b/backend/controllers/BrandsReplaceController.php index aeb940b..a11a25f 100644 --- a/backend/controllers/BrandsReplaceController.php +++ b/backend/controllers/BrandsReplaceController.php @@ -66,7 +66,8 @@ class BrandsReplaceController extends Controller $model = new BrandsReplace(); if ($model->load(Yii::$app->request->post()) && $model->save()) { - return $this->redirect(['view', 'from_brand' => $model->from_brand, 'to_brand' => $model->to_brand]); + //return $this->redirect(['view', 'from_brand' => $model->from_brand, 'to_brand' => $model->to_brand]); + return $this->redirect(['index']); } else { return $this->render('create', [ 'model' => $model, @@ -86,7 +87,8 @@ class BrandsReplaceController extends Controller $model = $this->findModel($from_brand, $to_brand); if ($model->load(Yii::$app->request->post()) && $model->save()) { - return $this->redirect(['view', 'from_brand' => $model->from_brand, 'to_brand' => $model->to_brand]); + //return $this->redirect(['view', 'from_brand' => $model->from_brand, 'to_brand' => $model->to_brand]); + return $this->redirect(['index']); } else { return $this->render('update', [ 'model' => $model, diff --git a/backend/controllers/CurrencyController.php b/backend/controllers/CurrencyController.php index 1778a92..ca623d9 100644 --- a/backend/controllers/CurrencyController.php +++ b/backend/controllers/CurrencyController.php @@ -64,7 +64,8 @@ class CurrencyController extends Controller $model = new Currency(); if ($model->load(Yii::$app->request->post()) && $model->save()) { - return $this->redirect(['view', 'id' => $model->id]); + // return $this->redirect(['view', 'id' => $model->id]); + return $this->redirect(['index']); } else { return $this->render('create', [ 'model' => $model, @@ -83,7 +84,8 @@ class CurrencyController extends Controller $model = $this->findModel($id); if ($model->load(Yii::$app->request->post()) && $model->save()) { - return $this->redirect(['view', 'id' => $model->id]); + //return $this->redirect(['view', 'id' => $model->id]); + return $this->redirect(['index']); } else { return $this->render('update', [ 'model' => $model, diff --git a/backend/controllers/DetailsController.php b/backend/controllers/DetailsController.php index fd5e6b2..719c644 100644 --- a/backend/controllers/DetailsController.php +++ b/backend/controllers/DetailsController.php @@ -14,6 +14,8 @@ use yii\filters\VerbFilter; */ class DetailsController extends Controller { + public $layout = "/column"; + public function behaviors() { return [ diff --git a/backend/controllers/ManufacturersController.php b/backend/controllers/ManufacturersController.php index 271e62a..01ac19c 100644 --- a/backend/controllers/ManufacturersController.php +++ b/backend/controllers/ManufacturersController.php @@ -65,7 +65,8 @@ class ManufacturersController extends Controller $model = new Manufacturers(); if ($model->load(Yii::$app->request->post()) && $model->save()) { - return $this->redirect(['view', 'id' => $model->MFA_ID]); + // return $this->redirect(['view', 'id' => $model->MFA_ID]); + return $this->redirect(['index']); } else { return $this->render('create', [ 'model' => $model, @@ -84,7 +85,8 @@ class ManufacturersController extends Controller $model = $this->findModel($id); if ($model->load(Yii::$app->request->post()) && $model->save()) { - return $this->redirect(['view', 'id' => $model->MFA_ID]); + // return $this->redirect(['view', 'id' => $model->MFA_ID]); + return $this->redirect(['index']); } else { return $this->render('update', [ 'model' => $model, diff --git a/backend/controllers/MarginsController.php b/backend/controllers/MarginsController.php index 8909ada..e81f411 100644 --- a/backend/controllers/MarginsController.php +++ b/backend/controllers/MarginsController.php @@ -65,7 +65,8 @@ class MarginsController extends Controller $model = new Margins(); if ($model->load(Yii::$app->request->post()) && $model->save()) { - return $this->redirect(['view', 'id' => $model->id]); + // return $this->redirect(['view', 'id' => $model->id]); + return $this->redirect(['index']); } else { return $this->render('create', [ 'model' => $model, @@ -84,7 +85,8 @@ class MarginsController extends Controller $model = $this->findModel($id); if ($model->load(Yii::$app->request->post()) && $model->save()) { - return $this->redirect(['view', 'id' => $model->id]); + //return $this->redirect(['view', 'id' => $model->id]); + return $this->redirect(['index']); } else { return $this->render('update', [ 'model' => $model, diff --git a/backend/views/brands/index.php b/backend/views/brands/index.php index 169da77..ebf4186 100644 --- a/backend/views/brands/index.php +++ b/backend/views/brands/index.php @@ -7,7 +7,7 @@ use yii\grid\GridView; /* @var $searchModel common\models\BrandsSearch */ /* @var $dataProvider yii\data\ActiveDataProvider */ -$this->title = 'Brands'; +$this->title = 'Бренды'; $this->params['breadcrumbs'][] = $this->title; ?>
@@ -16,7 +16,7 @@ $this->params['breadcrumbs'][] = $this->title; render('_search', ['model' => $searchModel]); ?>

- 'btn btn-success']) ?> + 'btn btn-success']) ?>

title = 'Details Crosses'; +$this->title = 'Кроссы'; $this->params['breadcrumbs'][] = $this->title; ?>
@@ -16,7 +16,7 @@ $this->params['breadcrumbs'][] = $this->title; render('_search', ['model' => $searchModel]); ?>

- 'btn btn-success']) ?> + 'btn btn-success']) ?>

params['breadcrumbs'][] = $this->title; 'filterModel' => $searchModel, 'columns' => [ ['class' => 'yii\grid\SerialColumn'], - - 'ID', 'ARTICLE', 'BRAND', - 'CROSS_BRAND', 'CROSS_ARTICLE', - // 'timestamp', + 'CROSS_BRAND', + 'timestamp', ['class' => 'yii\grid\ActionColumn'], ], diff --git a/backend/views/details/index.php b/backend/views/details/index.php index 3f4e61e..a06abe3 100644 --- a/backend/views/details/index.php +++ b/backend/views/details/index.php @@ -7,7 +7,7 @@ use yii\grid\GridView; /* @var $searchModel common\models\DetailsSearch */ /* @var $dataProvider yii\data\ActiveDataProvider */ -$this->title = 'Details'; +$this->title = 'Список запчастей'; $this->params['breadcrumbs'][] = $this->title; ?>
@@ -16,7 +16,7 @@ $this->params['breadcrumbs'][] = $this->title; render('_search', ['model' => $searchModel]); ?>

- 'btn btn-success']) ?> + 'btn btn-success']) ?>

params['breadcrumbs'][] = $this->title; 'layout'=>"{pager}\n{items}", 'columns' => [ ['class' => 'yii\grid\SerialColumn'], - - 'ID', - 'IMPORT_ID', - 'BRAND', 'ARTICLE', - 'FULL_ARTICLE', - // 'PRICE', - // 'DESCR', - // 'BOX', - // 'ADD_BOX', - // 'GROUP', + 'BRAND', + 'IMPORT_ID', + 'DESCR', + 'BOX', + 'ADD_BOX', + 'PRICE', + 'GROUP', // 'timestamp', ['class' => 'yii\grid\ActionColumn'], diff --git a/backend/views/layouts/column.php b/backend/views/layouts/column.php index 1b0e910..13c01c3 100644 --- a/backend/views/layouts/column.php +++ b/backend/views/layouts/column.php @@ -314,8 +314,8 @@ $this->beginContent('@app/views/layouts/main.php'); ['label' => 'Карточки товаров', 'url' => ['#']], ['label' => 'Товары поставщиков', 'url' => ['details/index']], ['label' => 'Кроссы', 'url' => ['details-crosses/index']], - ['label' => 'Бренды', 'url' => ['currency/index']], - ['label' => 'Марки авто', 'url' => ['currency/index']], + ['label' => 'Бренды', 'url' => ['brands/index']], + ['label' => 'Марки авто', 'url' => ['manufacturers/index']], ['label' => 'Статусы заказов', 'url' => ['currency/index']], ['label' => 'Типы доставок', 'url' => ['currency/index']], ['label' => 'Категории товаров', 'url' => ['currency/index']], diff --git a/backend/views/manufacturers/_search.php b/backend/views/manufacturers/_search.php index f29c77e..6243a5d 100644 --- a/backend/views/manufacturers/_search.php +++ b/backend/views/manufacturers/_search.php @@ -17,23 +17,11 @@ use yii\widgets\ActiveForm; field($model, 'MFA_ID') ?> - field($model, 'MFA_PC_MFC') ?> - - field($model, 'MFA_CV_MFC') ?> - - field($model, 'MFA_AXL_MFC') ?> - - field($model, 'MFA_ENG_MFC') ?> - - field($model, 'MFA_ENG_TYP') ?> - - field($model, 'MFA_MFC_CODE') ?> - - field($model, 'MFA_BRAND') ?> + field($model, 'MFA_BRAND') ?> field($model, 'MFA_MF_NR') ?> - field($model, 'MY_SORT') ?> + field($model, 'MY_SORT') ?> field($model, 'MY_ACTIVE') ?> @@ -53,7 +41,7 @@ use yii\widgets\ActiveForm; field($model, 'h1') ?> - field($model, 'original_url') ?> + field($model, 'original_url') ?>
'btn btn-primary']) ?> diff --git a/backend/views/manufacturers/index.php b/backend/views/manufacturers/index.php index cd33395..f1ec484 100644 --- a/backend/views/manufacturers/index.php +++ b/backend/views/manufacturers/index.php @@ -7,7 +7,7 @@ use yii\grid\GridView; /* @var $searchModel common\models\ManufacturersSearch */ /* @var $dataProvider yii\data\ActiveDataProvider */ -$this->title = 'Manufacturers'; +$this->title = 'Марки авто'; $this->params['breadcrumbs'][] = $this->title; ?>
@@ -16,7 +16,7 @@ $this->params['breadcrumbs'][] = $this->title; render('_search', ['model' => $searchModel]); ?>

- 'btn btn-success']) ?> + 'btn btn-success']) ?>

params['breadcrumbs'][] = $this->title; ['class' => 'yii\grid\SerialColumn'], 'MFA_ID', - 'MFA_PC_MFC', - 'MFA_CV_MFC', - 'MFA_AXL_MFC', - 'MFA_ENG_MFC', + // 'MFA_ENG_TYP', // 'MFA_MFC_CODE', - // 'MFA_BRAND', + 'MFA_BRAND', // 'MFA_MF_NR', - // 'MY_SORT', - // 'MY_ACTIVE', + 'MY_SORT', + 'MY_ACTIVE', // 'MY_IMG', // 'MY_DEFAULT', // 'name', @@ -44,7 +41,7 @@ $this->params['breadcrumbs'][] = $this->title; // 'kwords', // 'descr', // 'h1', - // 'original_url:url', + 'original_url:url', ['class' => 'yii\grid\ActionColumn'], ], diff --git a/common/components/PriceWriter.php b/common/components/PriceWriter.php index cb6ab17..9025196 100644 --- a/common/components/PriceWriter.php +++ b/common/components/PriceWriter.php @@ -61,18 +61,24 @@ class PriceWriter if ($this->mode == 0) { // преобразуем числовые значения foreach ($this->data as &$row) { + if(isset( $row['PRICE'] )) + $row['PRICE'] = \Yii::$app->converter->convertTo('float',$row['PRICE']); - $row['PRICE'] = \Yii::$app->converter->convertTo('float',$row['PRICE']); - $row['BOX'] = \Yii::$app->converter->convertTo('integer',$row['BOX']); + if(isset( $row['BOX'] )) + $row['BOX'] = \Yii::$app->converter->convertTo('integer',$row['BOX']); // присвоим полный артикул - $row['FULL_ARTICLE'] = $row['ARTICLE']; - if ((int)$this->configuration['delete_prefix']) { - $row = \Yii::$app->converter->convertTo( 'Article', $row, ['importer_id' => $this->configuration['importer_id']] ); - } else { - $row['ARTICLE'] = \Yii::$app->converter->convertTo( 'Article', $row['ARTICLE'] ); - } + if( isset( $row['ARTICLE'] ) ) { + + $row['FULL_ARTICLE'] = $row['ARTICLE']; + if ((int)$this->configuration['delete_prefix']) { + $row = \Yii::$app->converter->convertTo('Article', $row, ['importer_id' => $this->configuration['importer_id']]); + } else { + if (isset($row['ARTICLE'])) + $row['ARTICLE'] = \Yii::$app->converter->convertTo('Article', $row['ARTICLE']); + } + } if (isset($row['ADD_BOX'])) $row['ADD_BOX'] = \Yii::$app->converter->convertTo( 'integer', $row['ADD_BOX'] ); @@ -80,8 +86,7 @@ class PriceWriter // проверим все ли обязательные колонки были указаны пользователем $details_model->load(['Details' => $row]); if (!$details_model->validate()) - //@todo предоставить более детальную информацию об ошибке - throw new \ErrorException('Ошибка записи товаров'); + $details_model->throwStringErrorException( key($this->data) ); } } @@ -89,16 +94,17 @@ class PriceWriter // дополним данные значением импортера и даты обновления цены $this->data = CustomArrayHelper::addColumns( $this->data, ['IMPORT_ID' => $this->configuration['importer_id'], 'timestamp' => $update_date] ); try { - //@todo add transaction if ( isset($this->configuration['delete_price']) && (int)$this->configuration['delete_price'] ) { $details_model->delete_price = true; } + $transaction = \Yii::$app->db->beginTransaction(); //2. попытаемся вставить данные в БД с апдейтом по ключам $details_model->ManualInsert($this->data, $this->configuration['importer_id']); // 3. зафиксируем дату конца загрузки в файлах поставщика if (!$files_model->save()) { + $transaction->rollBack(); throw new \ErrorException(implode(', ', $files_model->getErrors())); } @@ -107,9 +113,13 @@ class PriceWriter $imp_model->price_date_update = $update_date; if (!$imp_model->save()) { + $transaction->rollBack(); throw new \ErrorException(implode(', ', $imp_model->getErrors())); } + $transaction->commit(); + } catch (ErrorException $e) { + $transaction->rollBack(); throw new \ErrorException($e->getMessage()); } diff --git a/common/models/Details.php b/common/models/Details.php index ee6a6c8..244ba08 100644 --- a/common/models/Details.php +++ b/common/models/Details.php @@ -52,15 +52,15 @@ class Details extends \yii\db\ActiveRecord { return [ 'ID' => 'ID', - 'IMPORT_ID' => 'Import ID', - 'BRAND' => 'Brand', - 'ARTICLE' => 'Article', - 'FULL_ARTICLE' => 'Full Article', - 'PRICE' => 'Price', - 'DESCR' => 'Descr', - 'BOX' => 'Box', - 'ADD_BOX' => 'Add Box', - 'GROUP' => 'Group', + 'IMPORT_ID' => 'ПОСТАВЩИК', + 'BRAND' => 'БРЕНД', + 'ARTICLE' => 'АРТИКУЛ', + 'FULL_ARTICLE' => 'ПОЛНЫЙ АРТИКУЛ', + 'PRICE' => 'ЦЕНА', + 'DESCR' => 'ОПИСАНИЕ', + 'BOX' => 'НАЛИЧИЕ', + 'ADD_BOX' => 'В ПУТИ', + 'GROUP' => 'ГРУППА RG', 'timestamp' => 'Timestamp', ]; } diff --git a/common/models/DetailsCrosses.php b/common/models/DetailsCrosses.php index 4efd56a..6e5ef93 100644 --- a/common/models/DetailsCrosses.php +++ b/common/models/DetailsCrosses.php @@ -43,11 +43,11 @@ class DetailsCrosses extends \yii\db\ActiveRecord { return [ 'ID' => 'ID', - 'ARTICLE' => 'Article', - 'BRAND' => 'Brand', - 'CROSS_BRAND' => 'Cross Brand', - 'CROSS_ARTICLE' => 'Cross Article', - 'timestamp' => 'Timestamp', + 'ARTICLE' => 'АРТИКУЛ', + 'BRAND' => 'БРЕНД', + 'CROSS_ARTICLE' => 'КРОСС БРЕНД', + 'CROSS_BRAND' => 'КРОСС АРТИКУЛ', + 'timestamp' => 'ВРЕМЯ ДОБАВЛЕНИЯ', ]; } } diff --git a/common/models/DetailsCrossesSearch.php b/common/models/DetailsCrossesSearch.php index 3c4776e..aa6c0d6 100644 --- a/common/models/DetailsCrossesSearch.php +++ b/common/models/DetailsCrossesSearch.php @@ -18,8 +18,7 @@ class DetailsCrossesSearch extends DetailsCrosses public function rules() { return [ - [['ID'], 'integer'], - [['ARTICLE', 'BRAND', 'CROSS_BRAND', 'CROSS_ARTICLE', 'timestamp'], 'safe'], + [['ARTICLE', 'BRAND', 'CROSS_BRAND', 'CROSS_ARTICLE'], 'safe'], ]; } @@ -43,27 +42,41 @@ class DetailsCrossesSearch extends DetailsCrosses { $query = DetailsCrosses::find(); - $dataProvider = new ActiveDataProvider([ - 'query' => $query, - ]); + $pagination = [ + 'pageSize' => 20, + ]; + // удалим пустые параметры + if ( is_array( $params['DetailsCrossesSearch'] )) { + $params['DetailsCrossesSearch'] = array_filter( $params['DetailsCrossesSearch'], function($val){ + return $val !=""; + }); + } $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; + if ( !$this->validate() ) { + $query->where('0=1'); + } + + if ( !$params || !$params['DetailsCrossesSearch'] ) { + // если не переданы параметры - показываем первые 100 записей + $pagination = false; + $query->limit = 100; + } $query->andFilterWhere([ - 'ID' => $this->ID, - 'timestamp' => $this->timestamp, + 'ARTICLE' => $this->ARTICLE, + 'BRAND' => $this->BRAND, + 'CROSS_BRAND' => $this->CROSS_BRAND, + 'CROSS_ARTICLE' => $this->CROSS_ARTICLE, ]); - $query->andFilterWhere(['like', 'ARTICLE', $this->ARTICLE]) - ->andFilterWhere(['like', 'BRAND', $this->BRAND]) - ->andFilterWhere(['like', 'CROSS_BRAND', $this->CROSS_BRAND]) - ->andFilterWhere(['like', 'CROSS_ARTICLE', $this->CROSS_ARTICLE]); + + $dataProvider = new ActiveDataProvider([ + 'query' => $query, + 'pagination' => $pagination, + ]); return $dataProvider; } diff --git a/common/models/DetailsSearch.php b/common/models/DetailsSearch.php index f8ddb92..a4bb0da 100644 --- a/common/models/DetailsSearch.php +++ b/common/models/DetailsSearch.php @@ -2,6 +2,7 @@ namespace common\models; +use common\components\CustomVarDamp; use Yii; use yii\base\Model; use yii\data\ActiveDataProvider; @@ -18,9 +19,8 @@ class DetailsSearch extends Details public function rules() { return [ - [['ID', 'IMPORT_ID', 'BOX', 'ADD_BOX'], 'integer'], - [['BRAND', 'ARTICLE', 'FULL_ARTICLE', 'DESCR', 'GROUP', 'timestamp'], 'safe'], - [['PRICE'], 'number'], + [['IMPORT_ID'], 'integer'], + [['BRAND', 'ARTICLE'], 'safe'], ]; } @@ -44,32 +44,41 @@ class DetailsSearch extends Details { $query = Details::find(); - $dataProvider = new ActiveDataProvider([ - 'query' => $query, - ]); + $pagination = [ + 'pageSize' => 20, + ]; + + // удалим пустые параметры + if ( isset( $params['DetailsSearch'] ) && is_array( $params['DetailsSearch'] )) { + $params['DetailsSearch'] = array_filter( $params['DetailsSearch'], function($val){ + return $val !=""; + }); + } $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; + if ( !$this->validate() ) { + $query->where('0=1'); + } + + if ( !$params || !$params['DetailsSearch'] ) { + // если не переданы параметры - показываем первые 100 записей + $pagination = false; + $query->limit = 100; + } $query->andFilterWhere([ - 'ID' => $this->ID, 'IMPORT_ID' => $this->IMPORT_ID, - 'PRICE' => $this->PRICE, - 'BOX' => $this->BOX, - 'ADD_BOX' => $this->ADD_BOX, - 'timestamp' => $this->timestamp, + 'ARTICLE' => $this->ARTICLE, + 'BRAND' => $this->BRAND, ]); - $query->andFilterWhere(['like', 'BRAND', $this->BRAND]) - ->andFilterWhere(['like', 'ARTICLE', $this->ARTICLE]) - ->andFilterWhere(['like', 'FULL_ARTICLE', $this->FULL_ARTICLE]) - ->andFilterWhere(['like', 'DESCR', $this->DESCR]) - ->andFilterWhere(['like', 'GROUP', $this->GROUP]); + + $dataProvider = new ActiveDataProvider([ + 'query' => $query, + 'pagination' => $pagination, + ]); return $dataProvider; } diff --git a/common/models/Manufacturers.php b/common/models/Manufacturers.php index 4a7e1d4..f731084 100644 --- a/common/models/Manufacturers.php +++ b/common/models/Manufacturers.php @@ -60,17 +60,17 @@ class Manufacturers extends \yii\db\ActiveRecord public function attributeLabels() { return [ - 'MFA_ID' => 'Mfa ID', + 'MFA_ID' => 'ID', 'MFA_PC_MFC' => 'Mfa Pc Mfc', 'MFA_CV_MFC' => 'Mfa Cv Mfc', 'MFA_AXL_MFC' => 'Mfa Axl Mfc', 'MFA_ENG_MFC' => 'Mfa Eng Mfc', 'MFA_ENG_TYP' => 'Mfa Eng Typ', 'MFA_MFC_CODE' => 'Mfa Mfc Code', - 'MFA_BRAND' => 'Mfa Brand', + 'MFA_BRAND' => 'Название', 'MFA_MF_NR' => 'Mfa Mf Nr', - 'MY_SORT' => 'My Sort', - 'MY_ACTIVE' => 'My Active', + 'MY_SORT' => 'Сортировка', + 'MY_ACTIVE' => 'Выводить', 'MY_IMG' => 'My Img', 'MY_DEFAULT' => 'My Default', 'name' => 'Name', @@ -79,7 +79,7 @@ class Manufacturers extends \yii\db\ActiveRecord 'kwords' => 'Kwords', 'descr' => 'Descr', 'h1' => 'H1', - 'original_url' => 'Original Url', + 'original_url' => 'Ссылка на оригинальный каталог', ]; } } diff --git a/common/models/ManufacturersSearch.php b/common/models/ManufacturersSearch.php index 4314f61..03cc444 100644 --- a/common/models/ManufacturersSearch.php +++ b/common/models/ManufacturersSearch.php @@ -18,7 +18,7 @@ class ManufacturersSearch extends Manufacturers public function rules() { return [ - [['MFA_ID', 'MFA_PC_MFC', 'MFA_CV_MFC', 'MFA_AXL_MFC', 'MFA_ENG_MFC', 'MFA_ENG_TYP', 'MFA_MF_NR', 'MY_SORT', 'MY_ACTIVE', 'MY_DEFAULT'], 'integer'], + [['MFA_ID', 'MFA_PC_MFC', 'MFA_CV_MFC', 'MFA_AXL_MFC', 'MFA_ENG_MFC', 'MFA_ENG_TYP', 'MFA_MF_NR', 'MY_SORT', 'MY_DEFAULT'], 'integer'], [['MFA_MFC_CODE', 'MFA_BRAND', 'MY_IMG', 'name', 'content', 'title', 'kwords', 'descr', 'h1', 'original_url'], 'safe'], ]; } @@ -64,7 +64,7 @@ class ManufacturersSearch extends Manufacturers 'MFA_ENG_TYP' => $this->MFA_ENG_TYP, 'MFA_MF_NR' => $this->MFA_MF_NR, 'MY_SORT' => $this->MY_SORT, - 'MY_ACTIVE' => $this->MY_ACTIVE, + 'MY_ACTIVE' => isset( $this->MY_ACTIVE ) ? $this->MY_ACTIVE : 1, 'MY_DEFAULT' => $this->MY_DEFAULT, ]); -- libgit2 0.21.4