Commit 6179580506c1c0a8d04a851a09d3321e80ed29de

Authored by Mihail
1 parent 811bbfad

fixed testing issues Details, Crosses ex...

backend/components/FieldEditor/FieldEditor.php 0 → 100644
  1 +<?php
  2 +namespace backend\components;
  3 +use common\models\Fields;
  4 +use yii\base\Widget;
  5 +
  6 +
  7 +class FieldEditor extends Widget
  8 +{
  9 + public $item_id;
  10 + public $model;
  11 + public $template;
  12 +
  13 + public function init(){
  14 +
  15 + parent::init();
  16 +
  17 + }
  18 +
  19 +
  20 + public function run()
  21 + {
  22 + if($this->item_id && $this->model){
  23 + $widgetData = $this->findModel();
  24 + } else {
  25 + $widgetData= [new Fields()];
  26 + }
  27 +
  28 +
  29 + return $this->render($this->template.'_field',['model'=>$widgetData]);
  30 + }
  31 +
  32 + protected function findModel()
  33 + {
  34 + if (($model = Fields::find()->where(['table_id'=>$this->item_id, 'table_name'=>$this->model, 'field_type'=>$this->template])->all()) !== null) {
  35 +
  36 + return $model;
  37 +
  38 + } else {
  39 + return [new Fields()];
  40 + }
  41 + }
  42 +}
0 \ No newline at end of file 43 \ No newline at end of file
backend/components/FieldEditor/views/phone_field.php 0 → 100644
  1 +<?php
  2 +use yii\helpers\Html;
  3 +?>
  4 +<div class="fields_result">
  5 +<?php $i=0; foreach ($model as $field):?>
  6 + <?= Html::beginTag('div',['class'=>'form-group'])?>
  7 + <input type="text" class="form-control" value="<?= $field->value ?>" name="Fields[phone][<?=$i++?>][value]" />
  8 + <span data-id="<?= $field->id ?>" title="удалить" class="glyphicon glyphicon-trash delete-field-item"></span>
  9 + <?= Html::endTag('div')?>
  10 +<?php endforeach; ?>
  11 +</div>
  12 +<p class="btn btn-success add_field">Добавить поле</p>
  13 +
  14 +
  15 +<script>
  16 + $( document ).ready(function(){
  17 + var start_i = <?=$i?>;
  18 + $('.add_field').click(function(){
  19 + var block = $('.fields_result');
  20 + var sub_block = '<div class="form-group">'+
  21 + '<input type="text" class="form-control" value="" name="Fields[phone]['+ start_i++ +'][value]">'+
  22 + '<span data-id="none" title="удалить" class="glyphicon glyphicon-trash delete-field-item"></span>'+
  23 + '<div>';
  24 + block.append(sub_block);
  25 +
  26 + });
  27 + });
  28 +</script>
0 \ No newline at end of file 29 \ No newline at end of file
backend/components/FieldEditor/views/price_field.php 0 → 100644
  1 +<?php
  2 +use yii\helpers\Html;
  3 +?>
  4 +<div class="price_fields_result">
  5 + <?php $i=0; foreach ($model as $field):?>
  6 + <?= Html::beginTag('div',['class'=>'form-group'])?>
  7 + <input type="text" placeholder="Описание" class="form-control" value="<?= $field->field_name ?>" name="Fields[price][<?=$i?>][description]" />
  8 + <input type="text" placeholder="Цена" class="form-control" value="<?= $field->value ?>" name="Fields[price][<?=$i++?>][value]" />
  9 + <span data-id="<?= $field->id ?>" title="удалить" class="glyphicon glyphicon-trash delete-field-item"></span>
  10 + <?= Html::endTag('div')?>
  11 + <?php endforeach; ?>
  12 +</div>
  13 +<p class="btn btn-success add_price_field">Добавить поле</p>
  14 +
  15 +
  16 +<script>
  17 + $( document ).ready(function(){
  18 + var start_i = <?=$i?>;
  19 + $('.add_price_field').click(function(){
  20 + var block = $('.price_fields_result');
  21 + var sub_block = '<div class="form-group">'+
  22 + '<input type="text" placeholder="Описание" class="form-control" value="" name="Fields[price]['+ start_i +'][description]">'+
  23 + '<input type="text" placeholder="Цена" class="form-control" value="" name="Fields[price]['+ start_i++ +'][value]">'+
  24 + '<span data-id="none" title="удалить" class="glyphicon glyphicon-trash delete-field-item"></span>'+
  25 + '<div>';
  26 + block.append(sub_block);
  27 +
  28 + });
  29 + });
  30 +</script>
0 \ No newline at end of file 31 \ No newline at end of file
backend/components/FieldEditor/views/video_field.php 0 → 100644
  1 +<?php
  2 +use yii\helpers\Html;
  3 +?>
  4 +<div class="fields_video_result">
  5 + <?php $i=0; foreach ($model as $field):?>
  6 + <?= Html::beginTag('div',['class'=>'form-group'])?>
  7 + <input type="text" class="form-control" value="<?= $field->value ?>" name="Fields[video][<?=$i++?>][value]" />
  8 + <span data-id="<?= $field->id ?>" title="удалить" class="glyphicon glyphicon-trash delete-field-item"></span>
  9 + <?= Html::endTag('div')?>
  10 + <?php endforeach; ?>
  11 +</div>
  12 +<p class="btn btn-success add_video_field">Добавить поле</p>
  13 +
  14 +
  15 +<script>
  16 + $( document ).ready(function(){
  17 + var start_i = <?=$i?>;
  18 + $('.add_video_field').click(function(){
  19 + var block = $('.fields_video_result');
  20 + var sub_block = '<div class="form-group">'+
  21 + '<input type="text" class="form-control" value="" name="Fields[video]['+ start_i++ +'][value]">'+
  22 + '<span data-id="none" title="удалить" class="glyphicon glyphicon-trash delete-field-item"></span>'+
  23 + '<div>';
  24 + block.append(sub_block);
  25 +
  26 + });
  27 + });
  28 +</script>
0 \ No newline at end of file 29 \ No newline at end of file
backend/components/base/BaseActiveRecord.php
@@ -13,9 +13,12 @@ use yii\base\ErrorException; @@ -13,9 +13,12 @@ use yii\base\ErrorException;
13 13
14 class BaseActiveRecord extends \yii\db\ActiveRecord { 14 class BaseActiveRecord extends \yii\db\ActiveRecord {
15 15
16 - public function throwStringErrorException(){ 16 + public function throwStringErrorException($row = 0){
17 17
18 $errors_str = ''; 18 $errors_str = '';
  19 + if ($row != 0) {
  20 + $errors_str = "Ошибка в строке {$row} ";
  21 + }
19 foreach ($this->getErrors() as $error) { 22 foreach ($this->getErrors() as $error) {
20 $errors_str .= implode( array_values($error) ); 23 $errors_str .= implode( array_values($error) );
21 } 24 }
backend/controllers/BrandsController.php
@@ -14,6 +14,8 @@ use yii\filters\VerbFilter; @@ -14,6 +14,8 @@ use yii\filters\VerbFilter;
14 */ 14 */
15 class BrandsController extends Controller 15 class BrandsController extends Controller
16 { 16 {
  17 + public $layout = "/column";
  18 +
17 public function behaviors() 19 public function behaviors()
18 { 20 {
19 return [ 21 return [
@@ -63,7 +65,8 @@ class BrandsController extends Controller @@ -63,7 +65,8 @@ class BrandsController extends Controller
63 $model = new Brands(); 65 $model = new Brands();
64 66
65 if ($model->load(Yii::$app->request->post()) && $model->save()) { 67 if ($model->load(Yii::$app->request->post()) && $model->save()) {
66 - return $this->redirect(['view', 'id' => $model->BRAND]); 68 + //return $this->redirect(['view', 'id' => $model->BRAND]);
  69 + return $this->redirect(['index']);
67 } else { 70 } else {
68 return $this->render('create', [ 71 return $this->render('create', [
69 'model' => $model, 72 'model' => $model,
@@ -82,7 +85,8 @@ class BrandsController extends Controller @@ -82,7 +85,8 @@ class BrandsController extends Controller
82 $model = $this->findModel($id); 85 $model = $this->findModel($id);
83 86
84 if ($model->load(Yii::$app->request->post()) && $model->save()) { 87 if ($model->load(Yii::$app->request->post()) && $model->save()) {
85 - return $this->redirect(['view', 'id' => $model->BRAND]); 88 + //return $this->redirect(['view', 'id' => $model->BRAND]);
  89 + return $this->redirect(['index']);
86 } else { 90 } else {
87 return $this->render('update', [ 91 return $this->render('update', [
88 'model' => $model, 92 'model' => $model,
backend/controllers/BrandsReplaceController.php
@@ -66,7 +66,8 @@ class BrandsReplaceController extends Controller @@ -66,7 +66,8 @@ class BrandsReplaceController extends Controller
66 $model = new BrandsReplace(); 66 $model = new BrandsReplace();
67 67
68 if ($model->load(Yii::$app->request->post()) && $model->save()) { 68 if ($model->load(Yii::$app->request->post()) && $model->save()) {
69 - return $this->redirect(['view', 'from_brand' => $model->from_brand, 'to_brand' => $model->to_brand]); 69 + //return $this->redirect(['view', 'from_brand' => $model->from_brand, 'to_brand' => $model->to_brand]);
  70 + return $this->redirect(['index']);
70 } else { 71 } else {
71 return $this->render('create', [ 72 return $this->render('create', [
72 'model' => $model, 73 'model' => $model,
@@ -86,7 +87,8 @@ class BrandsReplaceController extends Controller @@ -86,7 +87,8 @@ class BrandsReplaceController extends Controller
86 $model = $this->findModel($from_brand, $to_brand); 87 $model = $this->findModel($from_brand, $to_brand);
87 88
88 if ($model->load(Yii::$app->request->post()) && $model->save()) { 89 if ($model->load(Yii::$app->request->post()) && $model->save()) {
89 - return $this->redirect(['view', 'from_brand' => $model->from_brand, 'to_brand' => $model->to_brand]); 90 + //return $this->redirect(['view', 'from_brand' => $model->from_brand, 'to_brand' => $model->to_brand]);
  91 + return $this->redirect(['index']);
90 } else { 92 } else {
91 return $this->render('update', [ 93 return $this->render('update', [
92 'model' => $model, 94 'model' => $model,
backend/controllers/CurrencyController.php
@@ -64,7 +64,8 @@ class CurrencyController extends Controller @@ -64,7 +64,8 @@ class CurrencyController extends Controller
64 $model = new Currency(); 64 $model = new Currency();
65 65
66 if ($model->load(Yii::$app->request->post()) && $model->save()) { 66 if ($model->load(Yii::$app->request->post()) && $model->save()) {
67 - return $this->redirect(['view', 'id' => $model->id]); 67 + // return $this->redirect(['view', 'id' => $model->id]);
  68 + return $this->redirect(['index']);
68 } else { 69 } else {
69 return $this->render('create', [ 70 return $this->render('create', [
70 'model' => $model, 71 'model' => $model,
@@ -83,7 +84,8 @@ class CurrencyController extends Controller @@ -83,7 +84,8 @@ class CurrencyController extends Controller
83 $model = $this->findModel($id); 84 $model = $this->findModel($id);
84 85
85 if ($model->load(Yii::$app->request->post()) && $model->save()) { 86 if ($model->load(Yii::$app->request->post()) && $model->save()) {
86 - return $this->redirect(['view', 'id' => $model->id]); 87 + //return $this->redirect(['view', 'id' => $model->id]);
  88 + return $this->redirect(['index']);
87 } else { 89 } else {
88 return $this->render('update', [ 90 return $this->render('update', [
89 'model' => $model, 91 'model' => $model,
backend/controllers/DetailsController.php
@@ -14,6 +14,8 @@ use yii\filters\VerbFilter; @@ -14,6 +14,8 @@ use yii\filters\VerbFilter;
14 */ 14 */
15 class DetailsController extends Controller 15 class DetailsController extends Controller
16 { 16 {
  17 + public $layout = "/column";
  18 +
17 public function behaviors() 19 public function behaviors()
18 { 20 {
19 return [ 21 return [
backend/controllers/ManufacturersController.php
@@ -65,7 +65,8 @@ class ManufacturersController extends Controller @@ -65,7 +65,8 @@ class ManufacturersController extends Controller
65 $model = new Manufacturers(); 65 $model = new Manufacturers();
66 66
67 if ($model->load(Yii::$app->request->post()) && $model->save()) { 67 if ($model->load(Yii::$app->request->post()) && $model->save()) {
68 - return $this->redirect(['view', 'id' => $model->MFA_ID]); 68 + // return $this->redirect(['view', 'id' => $model->MFA_ID]);
  69 + return $this->redirect(['index']);
69 } else { 70 } else {
70 return $this->render('create', [ 71 return $this->render('create', [
71 'model' => $model, 72 'model' => $model,
@@ -84,7 +85,8 @@ class ManufacturersController extends Controller @@ -84,7 +85,8 @@ class ManufacturersController extends Controller
84 $model = $this->findModel($id); 85 $model = $this->findModel($id);
85 86
86 if ($model->load(Yii::$app->request->post()) && $model->save()) { 87 if ($model->load(Yii::$app->request->post()) && $model->save()) {
87 - return $this->redirect(['view', 'id' => $model->MFA_ID]); 88 + // return $this->redirect(['view', 'id' => $model->MFA_ID]);
  89 + return $this->redirect(['index']);
88 } else { 90 } else {
89 return $this->render('update', [ 91 return $this->render('update', [
90 'model' => $model, 92 'model' => $model,
backend/controllers/MarginsController.php
@@ -65,7 +65,8 @@ class MarginsController extends Controller @@ -65,7 +65,8 @@ class MarginsController extends Controller
65 $model = new Margins(); 65 $model = new Margins();
66 66
67 if ($model->load(Yii::$app->request->post()) && $model->save()) { 67 if ($model->load(Yii::$app->request->post()) && $model->save()) {
68 - return $this->redirect(['view', 'id' => $model->id]); 68 + // return $this->redirect(['view', 'id' => $model->id]);
  69 + return $this->redirect(['index']);
69 } else { 70 } else {
70 return $this->render('create', [ 71 return $this->render('create', [
71 'model' => $model, 72 'model' => $model,
@@ -84,7 +85,8 @@ class MarginsController extends Controller @@ -84,7 +85,8 @@ class MarginsController extends Controller
84 $model = $this->findModel($id); 85 $model = $this->findModel($id);
85 86
86 if ($model->load(Yii::$app->request->post()) && $model->save()) { 87 if ($model->load(Yii::$app->request->post()) && $model->save()) {
87 - return $this->redirect(['view', 'id' => $model->id]); 88 + //return $this->redirect(['view', 'id' => $model->id]);
  89 + return $this->redirect(['index']);
88 } else { 90 } else {
89 return $this->render('update', [ 91 return $this->render('update', [
90 'model' => $model, 92 'model' => $model,
backend/views/brands/index.php
@@ -7,7 +7,7 @@ use yii\grid\GridView; @@ -7,7 +7,7 @@ use yii\grid\GridView;
7 /* @var $searchModel common\models\BrandsSearch */ 7 /* @var $searchModel common\models\BrandsSearch */
8 /* @var $dataProvider yii\data\ActiveDataProvider */ 8 /* @var $dataProvider yii\data\ActiveDataProvider */
9 9
10 -$this->title = 'Brands'; 10 +$this->title = 'Бренды';
11 $this->params['breadcrumbs'][] = $this->title; 11 $this->params['breadcrumbs'][] = $this->title;
12 ?> 12 ?>
13 <div class="brands-index"> 13 <div class="brands-index">
@@ -16,7 +16,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -16,7 +16,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
16 <?php // echo $this->render('_search', ['model' => $searchModel]); ?> 16 <?php // echo $this->render('_search', ['model' => $searchModel]); ?>
17 17
18 <p> 18 <p>
19 - <?= Html::a('Create Brands', ['create'], ['class' => 'btn btn-success']) ?> 19 + <?= Html::a('Создать', ['create'], ['class' => 'btn btn-success']) ?>
20 </p> 20 </p>
21 21
22 <?= GridView::widget([ 22 <?= GridView::widget([
backend/views/details-crosses/index.php
@@ -7,7 +7,7 @@ use yii\grid\GridView; @@ -7,7 +7,7 @@ use yii\grid\GridView;
7 /* @var $searchModel common\models\DetailsCrossesSearch */ 7 /* @var $searchModel common\models\DetailsCrossesSearch */
8 /* @var $dataProvider yii\data\ActiveDataProvider */ 8 /* @var $dataProvider yii\data\ActiveDataProvider */
9 9
10 -$this->title = 'Details Crosses'; 10 +$this->title = 'Кроссы';
11 $this->params['breadcrumbs'][] = $this->title; 11 $this->params['breadcrumbs'][] = $this->title;
12 ?> 12 ?>
13 <div class="details-crosses-index"> 13 <div class="details-crosses-index">
@@ -16,7 +16,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -16,7 +16,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
16 <?php // echo $this->render('_search', ['model' => $searchModel]); ?> 16 <?php // echo $this->render('_search', ['model' => $searchModel]); ?>
17 17
18 <p> 18 <p>
19 - <?= Html::a('Create Details Crosses', ['create'], ['class' => 'btn btn-success']) ?> 19 + <?= Html::a('Создать', ['create'], ['class' => 'btn btn-success']) ?>
20 </p> 20 </p>
21 21
22 <?= GridView::widget([ 22 <?= GridView::widget([
@@ -24,13 +24,11 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -24,13 +24,11 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
24 'filterModel' => $searchModel, 24 'filterModel' => $searchModel,
25 'columns' => [ 25 'columns' => [
26 ['class' => 'yii\grid\SerialColumn'], 26 ['class' => 'yii\grid\SerialColumn'],
27 -  
28 - 'ID',  
29 'ARTICLE', 27 'ARTICLE',
30 'BRAND', 28 'BRAND',
31 - 'CROSS_BRAND',  
32 'CROSS_ARTICLE', 29 'CROSS_ARTICLE',
33 - // 'timestamp', 30 + 'CROSS_BRAND',
  31 + 'timestamp',
34 32
35 ['class' => 'yii\grid\ActionColumn'], 33 ['class' => 'yii\grid\ActionColumn'],
36 ], 34 ],
backend/views/details/index.php
@@ -7,7 +7,7 @@ use yii\grid\GridView; @@ -7,7 +7,7 @@ use yii\grid\GridView;
7 /* @var $searchModel common\models\DetailsSearch */ 7 /* @var $searchModel common\models\DetailsSearch */
8 /* @var $dataProvider yii\data\ActiveDataProvider */ 8 /* @var $dataProvider yii\data\ActiveDataProvider */
9 9
10 -$this->title = 'Details'; 10 +$this->title = 'Список запчастей';
11 $this->params['breadcrumbs'][] = $this->title; 11 $this->params['breadcrumbs'][] = $this->title;
12 ?> 12 ?>
13 <div class="details-index"> 13 <div class="details-index">
@@ -16,7 +16,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -16,7 +16,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
16 <?php // echo $this->render('_search', ['model' => $searchModel]); ?> 16 <?php // echo $this->render('_search', ['model' => $searchModel]); ?>
17 17
18 <p> 18 <p>
19 - <?= Html::a('Create Details', ['create'], ['class' => 'btn btn-success']) ?> 19 + <?= Html::a('Создать', ['create'], ['class' => 'btn btn-success']) ?>
20 </p> 20 </p>
21 21
22 <?= GridView::widget([ 22 <?= GridView::widget([
@@ -25,17 +25,14 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -25,17 +25,14 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
25 'layout'=>"{pager}\n{items}", 25 'layout'=>"{pager}\n{items}",
26 'columns' => [ 26 'columns' => [
27 ['class' => 'yii\grid\SerialColumn'], 27 ['class' => 'yii\grid\SerialColumn'],
28 -  
29 - 'ID',  
30 - 'IMPORT_ID',  
31 - 'BRAND',  
32 'ARTICLE', 28 'ARTICLE',
33 - 'FULL_ARTICLE',  
34 - // 'PRICE',  
35 - // 'DESCR',  
36 - // 'BOX',  
37 - // 'ADD_BOX',  
38 - // 'GROUP', 29 + 'BRAND',
  30 + 'IMPORT_ID',
  31 + 'DESCR',
  32 + 'BOX',
  33 + 'ADD_BOX',
  34 + 'PRICE',
  35 + 'GROUP',
39 // 'timestamp', 36 // 'timestamp',
40 37
41 ['class' => 'yii\grid\ActionColumn'], 38 ['class' => 'yii\grid\ActionColumn'],
backend/views/layouts/column.php
@@ -314,8 +314,8 @@ $this-&gt;beginContent(&#39;@app/views/layouts/main.php&#39;); @@ -314,8 +314,8 @@ $this-&gt;beginContent(&#39;@app/views/layouts/main.php&#39;);
314 ['label' => 'Карточки товаров', 'url' => ['#']], 314 ['label' => 'Карточки товаров', 'url' => ['#']],
315 ['label' => 'Товары поставщиков', 'url' => ['details/index']], 315 ['label' => 'Товары поставщиков', 'url' => ['details/index']],
316 ['label' => 'Кроссы', 'url' => ['details-crosses/index']], 316 ['label' => 'Кроссы', 'url' => ['details-crosses/index']],
317 - ['label' => 'Бренды', 'url' => ['currency/index']],  
318 - ['label' => 'Марки авто', 'url' => ['currency/index']], 317 + ['label' => 'Бренды', 'url' => ['brands/index']],
  318 + ['label' => 'Марки авто', 'url' => ['manufacturers/index']],
319 ['label' => 'Статусы заказов', 'url' => ['currency/index']], 319 ['label' => 'Статусы заказов', 'url' => ['currency/index']],
320 ['label' => 'Типы доставок', 'url' => ['currency/index']], 320 ['label' => 'Типы доставок', 'url' => ['currency/index']],
321 ['label' => 'Категории товаров', 'url' => ['currency/index']], 321 ['label' => 'Категории товаров', 'url' => ['currency/index']],
backend/views/manufacturers/_search.php
@@ -17,23 +17,11 @@ use yii\widgets\ActiveForm; @@ -17,23 +17,11 @@ use yii\widgets\ActiveForm;
17 17
18 <?= $form->field($model, 'MFA_ID') ?> 18 <?= $form->field($model, 'MFA_ID') ?>
19 19
20 - <?= $form->field($model, 'MFA_PC_MFC') ?>  
21 -  
22 - <?= $form->field($model, 'MFA_CV_MFC') ?>  
23 -  
24 - <?= $form->field($model, 'MFA_AXL_MFC') ?>  
25 -  
26 - <?= $form->field($model, 'MFA_ENG_MFC') ?>  
27 -  
28 - <?php // echo $form->field($model, 'MFA_ENG_TYP') ?>  
29 -  
30 - <?php // echo $form->field($model, 'MFA_MFC_CODE') ?>  
31 -  
32 - <?php // echo $form->field($model, 'MFA_BRAND') ?> 20 + <?php echo $form->field($model, 'MFA_BRAND') ?>
33 21
34 <?php // echo $form->field($model, 'MFA_MF_NR') ?> 22 <?php // echo $form->field($model, 'MFA_MF_NR') ?>
35 23
36 - <?php // echo $form->field($model, 'MY_SORT') ?> 24 + <?php echo $form->field($model, 'MY_SORT') ?>
37 25
38 <?php // echo $form->field($model, 'MY_ACTIVE') ?> 26 <?php // echo $form->field($model, 'MY_ACTIVE') ?>
39 27
@@ -53,7 +41,7 @@ use yii\widgets\ActiveForm; @@ -53,7 +41,7 @@ use yii\widgets\ActiveForm;
53 41
54 <?php // echo $form->field($model, 'h1') ?> 42 <?php // echo $form->field($model, 'h1') ?>
55 43
56 - <?php // echo $form->field($model, 'original_url') ?> 44 + <?php echo $form->field($model, 'original_url') ?>
57 45
58 <div class="form-group"> 46 <div class="form-group">
59 <?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?> 47 <?= Html::submitButton('Search', ['class' => 'btn btn-primary']) ?>
backend/views/manufacturers/index.php
@@ -7,7 +7,7 @@ use yii\grid\GridView; @@ -7,7 +7,7 @@ use yii\grid\GridView;
7 /* @var $searchModel common\models\ManufacturersSearch */ 7 /* @var $searchModel common\models\ManufacturersSearch */
8 /* @var $dataProvider yii\data\ActiveDataProvider */ 8 /* @var $dataProvider yii\data\ActiveDataProvider */
9 9
10 -$this->title = 'Manufacturers'; 10 +$this->title = 'Марки авто';
11 $this->params['breadcrumbs'][] = $this->title; 11 $this->params['breadcrumbs'][] = $this->title;
12 ?> 12 ?>
13 <div class="manufacturers-index"> 13 <div class="manufacturers-index">
@@ -16,7 +16,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -16,7 +16,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
16 <?php // echo $this->render('_search', ['model' => $searchModel]); ?> 16 <?php // echo $this->render('_search', ['model' => $searchModel]); ?>
17 17
18 <p> 18 <p>
19 - <?= Html::a('Create Manufacturers', ['create'], ['class' => 'btn btn-success']) ?> 19 + <?= Html::a('Создать', ['create'], ['class' => 'btn btn-success']) ?>
20 </p> 20 </p>
21 21
22 <?= GridView::widget([ 22 <?= GridView::widget([
@@ -26,16 +26,13 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -26,16 +26,13 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
26 ['class' => 'yii\grid\SerialColumn'], 26 ['class' => 'yii\grid\SerialColumn'],
27 27
28 'MFA_ID', 28 'MFA_ID',
29 - 'MFA_PC_MFC',  
30 - 'MFA_CV_MFC',  
31 - 'MFA_AXL_MFC',  
32 - 'MFA_ENG_MFC', 29 +
33 // 'MFA_ENG_TYP', 30 // 'MFA_ENG_TYP',
34 // 'MFA_MFC_CODE', 31 // 'MFA_MFC_CODE',
35 - // 'MFA_BRAND', 32 + 'MFA_BRAND',
36 // 'MFA_MF_NR', 33 // 'MFA_MF_NR',
37 - // 'MY_SORT',  
38 - // 'MY_ACTIVE', 34 + 'MY_SORT',
  35 + 'MY_ACTIVE',
39 // 'MY_IMG', 36 // 'MY_IMG',
40 // 'MY_DEFAULT', 37 // 'MY_DEFAULT',
41 // 'name', 38 // 'name',
@@ -44,7 +41,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title; @@ -44,7 +41,7 @@ $this-&gt;params[&#39;breadcrumbs&#39;][] = $this-&gt;title;
44 // 'kwords', 41 // 'kwords',
45 // 'descr', 42 // 'descr',
46 // 'h1', 43 // 'h1',
47 - // 'original_url:url', 44 + 'original_url:url',
48 45
49 ['class' => 'yii\grid\ActionColumn'], 46 ['class' => 'yii\grid\ActionColumn'],
50 ], 47 ],
common/components/PriceWriter.php
@@ -61,18 +61,24 @@ class PriceWriter @@ -61,18 +61,24 @@ class PriceWriter
61 if ($this->mode == 0) { 61 if ($this->mode == 0) {
62 // преобразуем числовые значения 62 // преобразуем числовые значения
63 foreach ($this->data as &$row) { 63 foreach ($this->data as &$row) {
  64 + if(isset( $row['PRICE'] ))
  65 + $row['PRICE'] = \Yii::$app->converter->convertTo('float',$row['PRICE']);
64 66
65 - $row['PRICE'] = \Yii::$app->converter->convertTo('float',$row['PRICE']);  
66 - $row['BOX'] = \Yii::$app->converter->convertTo('integer',$row['BOX']); 67 + if(isset( $row['BOX'] ))
  68 + $row['BOX'] = \Yii::$app->converter->convertTo('integer',$row['BOX']);
67 // присвоим полный артикул 69 // присвоим полный артикул
68 70
69 - $row['FULL_ARTICLE'] = $row['ARTICLE'];  
70 - if ((int)$this->configuration['delete_prefix']) {  
71 - $row = \Yii::$app->converter->convertTo( 'Article', $row, ['importer_id' => $this->configuration['importer_id']] );  
72 - } else {  
73 - $row['ARTICLE'] = \Yii::$app->converter->convertTo( 'Article', $row['ARTICLE'] );  
74 - } 71 + if( isset( $row['ARTICLE'] ) ) {
  72 +
  73 + $row['FULL_ARTICLE'] = $row['ARTICLE'];
75 74
  75 + if ((int)$this->configuration['delete_prefix']) {
  76 + $row = \Yii::$app->converter->convertTo('Article', $row, ['importer_id' => $this->configuration['importer_id']]);
  77 + } else {
  78 + if (isset($row['ARTICLE']))
  79 + $row['ARTICLE'] = \Yii::$app->converter->convertTo('Article', $row['ARTICLE']);
  80 + }
  81 + }
76 82
77 if (isset($row['ADD_BOX'])) 83 if (isset($row['ADD_BOX']))
78 $row['ADD_BOX'] = \Yii::$app->converter->convertTo( 'integer', $row['ADD_BOX'] ); 84 $row['ADD_BOX'] = \Yii::$app->converter->convertTo( 'integer', $row['ADD_BOX'] );
@@ -80,8 +86,7 @@ class PriceWriter @@ -80,8 +86,7 @@ class PriceWriter
80 // проверим все ли обязательные колонки были указаны пользователем 86 // проверим все ли обязательные колонки были указаны пользователем
81 $details_model->load(['Details' => $row]); 87 $details_model->load(['Details' => $row]);
82 if (!$details_model->validate()) 88 if (!$details_model->validate())
83 - //@todo предоставить более детальную информацию об ошибке  
84 - throw new \ErrorException('Ошибка записи товаров'); 89 + $details_model->throwStringErrorException( key($this->data) );
85 90
86 } 91 }
87 } 92 }
@@ -89,16 +94,17 @@ class PriceWriter @@ -89,16 +94,17 @@ class PriceWriter
89 // дополним данные значением импортера и даты обновления цены 94 // дополним данные значением импортера и даты обновления цены
90 $this->data = CustomArrayHelper::addColumns( $this->data, ['IMPORT_ID' => $this->configuration['importer_id'], 'timestamp' => $update_date] ); 95 $this->data = CustomArrayHelper::addColumns( $this->data, ['IMPORT_ID' => $this->configuration['importer_id'], 'timestamp' => $update_date] );
91 try { 96 try {
92 - //@todo add transaction  
93 97
94 if ( isset($this->configuration['delete_price']) && (int)$this->configuration['delete_price'] ) { 98 if ( isset($this->configuration['delete_price']) && (int)$this->configuration['delete_price'] ) {
95 $details_model->delete_price = true; 99 $details_model->delete_price = true;
96 } 100 }
  101 + $transaction = \Yii::$app->db->beginTransaction();
97 //2. попытаемся вставить данные в БД с апдейтом по ключам 102 //2. попытаемся вставить данные в БД с апдейтом по ключам
98 $details_model->ManualInsert($this->data, $this->configuration['importer_id']); 103 $details_model->ManualInsert($this->data, $this->configuration['importer_id']);
99 104
100 // 3. зафиксируем дату конца загрузки в файлах поставщика 105 // 3. зафиксируем дату конца загрузки в файлах поставщика
101 if (!$files_model->save()) { 106 if (!$files_model->save()) {
  107 + $transaction->rollBack();
102 throw new \ErrorException(implode(', ', $files_model->getErrors())); 108 throw new \ErrorException(implode(', ', $files_model->getErrors()));
103 } 109 }
104 110
@@ -107,9 +113,13 @@ class PriceWriter @@ -107,9 +113,13 @@ class PriceWriter
107 $imp_model->price_date_update = $update_date; 113 $imp_model->price_date_update = $update_date;
108 114
109 if (!$imp_model->save()) { 115 if (!$imp_model->save()) {
  116 + $transaction->rollBack();
110 throw new \ErrorException(implode(', ', $imp_model->getErrors())); 117 throw new \ErrorException(implode(', ', $imp_model->getErrors()));
111 } 118 }
  119 + $transaction->commit();
  120 +
112 } catch (ErrorException $e) { 121 } catch (ErrorException $e) {
  122 + $transaction->rollBack();
113 throw new \ErrorException($e->getMessage()); 123 throw new \ErrorException($e->getMessage());
114 } 124 }
115 125
common/models/Details.php
@@ -52,15 +52,15 @@ class Details extends \yii\db\ActiveRecord @@ -52,15 +52,15 @@ class Details extends \yii\db\ActiveRecord
52 { 52 {
53 return [ 53 return [
54 'ID' => 'ID', 54 'ID' => 'ID',
55 - 'IMPORT_ID' => 'Import ID',  
56 - 'BRAND' => 'Brand',  
57 - 'ARTICLE' => 'Article',  
58 - 'FULL_ARTICLE' => 'Full Article',  
59 - 'PRICE' => 'Price',  
60 - 'DESCR' => 'Descr',  
61 - 'BOX' => 'Box',  
62 - 'ADD_BOX' => 'Add Box',  
63 - 'GROUP' => 'Group', 55 + 'IMPORT_ID' => 'ПОСТАВЩИК',
  56 + 'BRAND' => 'БРЕНД',
  57 + 'ARTICLE' => 'АРТИКУЛ',
  58 + 'FULL_ARTICLE' => 'ПОЛНЫЙ АРТИКУЛ',
  59 + 'PRICE' => 'ЦЕНА',
  60 + 'DESCR' => 'ОПИСАНИЕ',
  61 + 'BOX' => 'НАЛИЧИЕ',
  62 + 'ADD_BOX' => 'В ПУТИ',
  63 + 'GROUP' => 'ГРУППА RG',
64 'timestamp' => 'Timestamp', 64 'timestamp' => 'Timestamp',
65 ]; 65 ];
66 } 66 }
common/models/DetailsCrosses.php
@@ -43,11 +43,11 @@ class DetailsCrosses extends \yii\db\ActiveRecord @@ -43,11 +43,11 @@ class DetailsCrosses extends \yii\db\ActiveRecord
43 { 43 {
44 return [ 44 return [
45 'ID' => 'ID', 45 'ID' => 'ID',
46 - 'ARTICLE' => 'Article',  
47 - 'BRAND' => 'Brand',  
48 - 'CROSS_BRAND' => 'Cross Brand',  
49 - 'CROSS_ARTICLE' => 'Cross Article',  
50 - 'timestamp' => 'Timestamp', 46 + 'ARTICLE' => 'АРТИКУЛ',
  47 + 'BRAND' => 'БРЕНД',
  48 + 'CROSS_ARTICLE' => 'КРОСС БРЕНД',
  49 + 'CROSS_BRAND' => 'КРОСС АРТИКУЛ',
  50 + 'timestamp' => 'ВРЕМЯ ДОБАВЛЕНИЯ',
51 ]; 51 ];
52 } 52 }
53 } 53 }
common/models/DetailsCrossesSearch.php
@@ -18,8 +18,7 @@ class DetailsCrossesSearch extends DetailsCrosses @@ -18,8 +18,7 @@ class DetailsCrossesSearch extends DetailsCrosses
18 public function rules() 18 public function rules()
19 { 19 {
20 return [ 20 return [
21 - [['ID'], 'integer'],  
22 - [['ARTICLE', 'BRAND', 'CROSS_BRAND', 'CROSS_ARTICLE', 'timestamp'], 'safe'], 21 + [['ARTICLE', 'BRAND', 'CROSS_BRAND', 'CROSS_ARTICLE'], 'safe'],
23 ]; 22 ];
24 } 23 }
25 24
@@ -43,27 +42,41 @@ class DetailsCrossesSearch extends DetailsCrosses @@ -43,27 +42,41 @@ class DetailsCrossesSearch extends DetailsCrosses
43 { 42 {
44 $query = DetailsCrosses::find(); 43 $query = DetailsCrosses::find();
45 44
46 - $dataProvider = new ActiveDataProvider([  
47 - 'query' => $query,  
48 - ]); 45 + $pagination = [
  46 + 'pageSize' => 20,
  47 + ];
49 48
  49 + // удалим пустые параметры
  50 + if ( is_array( $params['DetailsCrossesSearch'] )) {
  51 + $params['DetailsCrossesSearch'] = array_filter( $params['DetailsCrossesSearch'], function($val){
  52 + return $val !="";
  53 + });
  54 + }
50 $this->load($params); 55 $this->load($params);
51 56
52 - if (!$this->validate()) {  
53 - // uncomment the following line if you do not want to return any records when validation fails  
54 - // $query->where('0=1');  
55 - return $dataProvider; 57 + if ( !$this->validate() ) {
  58 + $query->where('0=1');
  59 + }
  60 +
  61 + if ( !$params || !$params['DetailsCrossesSearch'] ) {
  62 + // если не переданы параметры - показываем первые 100 записей
  63 + $pagination = false;
  64 + $query->limit = 100;
  65 +
56 } 66 }
57 67
58 $query->andFilterWhere([ 68 $query->andFilterWhere([
59 - 'ID' => $this->ID,  
60 - 'timestamp' => $this->timestamp, 69 + 'ARTICLE' => $this->ARTICLE,
  70 + 'BRAND' => $this->BRAND,
  71 + 'CROSS_BRAND' => $this->CROSS_BRAND,
  72 + 'CROSS_ARTICLE' => $this->CROSS_ARTICLE,
61 ]); 73 ]);
62 74
63 - $query->andFilterWhere(['like', 'ARTICLE', $this->ARTICLE])  
64 - ->andFilterWhere(['like', 'BRAND', $this->BRAND])  
65 - ->andFilterWhere(['like', 'CROSS_BRAND', $this->CROSS_BRAND])  
66 - ->andFilterWhere(['like', 'CROSS_ARTICLE', $this->CROSS_ARTICLE]); 75 +
  76 + $dataProvider = new ActiveDataProvider([
  77 + 'query' => $query,
  78 + 'pagination' => $pagination,
  79 + ]);
67 80
68 return $dataProvider; 81 return $dataProvider;
69 } 82 }
common/models/DetailsSearch.php
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 2
3 namespace common\models; 3 namespace common\models;
4 4
  5 +use common\components\CustomVarDamp;
5 use Yii; 6 use Yii;
6 use yii\base\Model; 7 use yii\base\Model;
7 use yii\data\ActiveDataProvider; 8 use yii\data\ActiveDataProvider;
@@ -18,9 +19,8 @@ class DetailsSearch extends Details @@ -18,9 +19,8 @@ class DetailsSearch extends Details
18 public function rules() 19 public function rules()
19 { 20 {
20 return [ 21 return [
21 - [['ID', 'IMPORT_ID', 'BOX', 'ADD_BOX'], 'integer'],  
22 - [['BRAND', 'ARTICLE', 'FULL_ARTICLE', 'DESCR', 'GROUP', 'timestamp'], 'safe'],  
23 - [['PRICE'], 'number'], 22 + [['IMPORT_ID'], 'integer'],
  23 + [['BRAND', 'ARTICLE'], 'safe'],
24 ]; 24 ];
25 } 25 }
26 26
@@ -44,32 +44,41 @@ class DetailsSearch extends Details @@ -44,32 +44,41 @@ class DetailsSearch extends Details
44 { 44 {
45 $query = Details::find(); 45 $query = Details::find();
46 46
47 - $dataProvider = new ActiveDataProvider([  
48 - 'query' => $query,  
49 - ]); 47 + $pagination = [
  48 + 'pageSize' => 20,
  49 + ];
  50 +
  51 + // удалим пустые параметры
  52 + if ( isset( $params['DetailsSearch'] ) && is_array( $params['DetailsSearch'] )) {
  53 + $params['DetailsSearch'] = array_filter( $params['DetailsSearch'], function($val){
  54 + return $val !="";
  55 + });
  56 + }
50 57
51 $this->load($params); 58 $this->load($params);
52 59
53 - if (!$this->validate()) {  
54 - // uncomment the following line if you do not want to return any records when validation fails  
55 - // $query->where('0=1');  
56 - return $dataProvider; 60 + if ( !$this->validate() ) {
  61 + $query->where('0=1');
  62 + }
  63 +
  64 + if ( !$params || !$params['DetailsSearch'] ) {
  65 + // если не переданы параметры - показываем первые 100 записей
  66 + $pagination = false;
  67 + $query->limit = 100;
  68 +
57 } 69 }
58 70
59 $query->andFilterWhere([ 71 $query->andFilterWhere([
60 - 'ID' => $this->ID,  
61 'IMPORT_ID' => $this->IMPORT_ID, 72 'IMPORT_ID' => $this->IMPORT_ID,
62 - 'PRICE' => $this->PRICE,  
63 - 'BOX' => $this->BOX,  
64 - 'ADD_BOX' => $this->ADD_BOX,  
65 - 'timestamp' => $this->timestamp, 73 + 'ARTICLE' => $this->ARTICLE,
  74 + 'BRAND' => $this->BRAND,
66 ]); 75 ]);
67 76
68 - $query->andFilterWhere(['like', 'BRAND', $this->BRAND])  
69 - ->andFilterWhere(['like', 'ARTICLE', $this->ARTICLE])  
70 - ->andFilterWhere(['like', 'FULL_ARTICLE', $this->FULL_ARTICLE])  
71 - ->andFilterWhere(['like', 'DESCR', $this->DESCR])  
72 - ->andFilterWhere(['like', 'GROUP', $this->GROUP]); 77 +
  78 + $dataProvider = new ActiveDataProvider([
  79 + 'query' => $query,
  80 + 'pagination' => $pagination,
  81 + ]);
73 82
74 return $dataProvider; 83 return $dataProvider;
75 } 84 }
common/models/Manufacturers.php
@@ -60,17 +60,17 @@ class Manufacturers extends \yii\db\ActiveRecord @@ -60,17 +60,17 @@ class Manufacturers extends \yii\db\ActiveRecord
60 public function attributeLabels() 60 public function attributeLabels()
61 { 61 {
62 return [ 62 return [
63 - 'MFA_ID' => 'Mfa ID', 63 + 'MFA_ID' => 'ID',
64 'MFA_PC_MFC' => 'Mfa Pc Mfc', 64 'MFA_PC_MFC' => 'Mfa Pc Mfc',
65 'MFA_CV_MFC' => 'Mfa Cv Mfc', 65 'MFA_CV_MFC' => 'Mfa Cv Mfc',
66 'MFA_AXL_MFC' => 'Mfa Axl Mfc', 66 'MFA_AXL_MFC' => 'Mfa Axl Mfc',
67 'MFA_ENG_MFC' => 'Mfa Eng Mfc', 67 'MFA_ENG_MFC' => 'Mfa Eng Mfc',
68 'MFA_ENG_TYP' => 'Mfa Eng Typ', 68 'MFA_ENG_TYP' => 'Mfa Eng Typ',
69 'MFA_MFC_CODE' => 'Mfa Mfc Code', 69 'MFA_MFC_CODE' => 'Mfa Mfc Code',
70 - 'MFA_BRAND' => 'Mfa Brand', 70 + 'MFA_BRAND' => 'Название',
71 'MFA_MF_NR' => 'Mfa Mf Nr', 71 'MFA_MF_NR' => 'Mfa Mf Nr',
72 - 'MY_SORT' => 'My Sort',  
73 - 'MY_ACTIVE' => 'My Active', 72 + 'MY_SORT' => 'Сортировка',
  73 + 'MY_ACTIVE' => 'Выводить',
74 'MY_IMG' => 'My Img', 74 'MY_IMG' => 'My Img',
75 'MY_DEFAULT' => 'My Default', 75 'MY_DEFAULT' => 'My Default',
76 'name' => 'Name', 76 'name' => 'Name',
@@ -79,7 +79,7 @@ class Manufacturers extends \yii\db\ActiveRecord @@ -79,7 +79,7 @@ class Manufacturers extends \yii\db\ActiveRecord
79 'kwords' => 'Kwords', 79 'kwords' => 'Kwords',
80 'descr' => 'Descr', 80 'descr' => 'Descr',
81 'h1' => 'H1', 81 'h1' => 'H1',
82 - 'original_url' => 'Original Url', 82 + 'original_url' => 'Ссылка на оригинальный каталог',
83 ]; 83 ];
84 } 84 }
85 } 85 }
common/models/ManufacturersSearch.php
@@ -18,7 +18,7 @@ class ManufacturersSearch extends Manufacturers @@ -18,7 +18,7 @@ class ManufacturersSearch extends Manufacturers
18 public function rules() 18 public function rules()
19 { 19 {
20 return [ 20 return [
21 - [['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'], 21 + [['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'],
22 [['MFA_MFC_CODE', 'MFA_BRAND', 'MY_IMG', 'name', 'content', 'title', 'kwords', 'descr', 'h1', 'original_url'], 'safe'], 22 [['MFA_MFC_CODE', 'MFA_BRAND', 'MY_IMG', 'name', 'content', 'title', 'kwords', 'descr', 'h1', 'original_url'], 'safe'],
23 ]; 23 ];
24 } 24 }
@@ -64,7 +64,7 @@ class ManufacturersSearch extends Manufacturers @@ -64,7 +64,7 @@ class ManufacturersSearch extends Manufacturers
64 'MFA_ENG_TYP' => $this->MFA_ENG_TYP, 64 'MFA_ENG_TYP' => $this->MFA_ENG_TYP,
65 'MFA_MF_NR' => $this->MFA_MF_NR, 65 'MFA_MF_NR' => $this->MFA_MF_NR,
66 'MY_SORT' => $this->MY_SORT, 66 'MY_SORT' => $this->MY_SORT,
67 - 'MY_ACTIVE' => $this->MY_ACTIVE, 67 + 'MY_ACTIVE' => isset( $this->MY_ACTIVE ) ? $this->MY_ACTIVE : 1,
68 'MY_DEFAULT' => $this->MY_DEFAULT, 68 'MY_DEFAULT' => $this->MY_DEFAULT,
69 ]); 69 ]);
70 70