From 165348a4b71ac507fc29b789b3b16f8e28d3edcf Mon Sep 17 00:00:00 2001 From: Mihail Date: Thu, 3 Sep 2015 12:57:27 +0300 Subject: [PATCH] draft commit --- backend/controllers/ParserController.php | 3 ++- backend/models/Importer.php | 3 +++ backend/models/UploadFileParsingForm.php | 26 ++++++++++++++++---------- backend/views/parser/index.php | 15 ++++++++++----- 4 files changed, 31 insertions(+), 16 deletions(-) diff --git a/backend/controllers/ParserController.php b/backend/controllers/ParserController.php index 814c332..69a9833 100644 --- a/backend/controllers/ParserController.php +++ b/backend/controllers/ParserController.php @@ -71,7 +71,8 @@ class ParserController extends BaseController if ($model->load(Yii::$app->request->post())) { $model->file = UploadedFile::getInstance($model, 'file'); - if ($model->file && $model->validate()) { + if ($model->validate()) { + //CustomVarDamp::dumpAndDie(Yii::$app->request->post()); $filePath = Yii::getAlias('@webroot') . '/uploads/' . $model->file->baseName . '.' . $model->file->extension; $model->file->saveAs( $filePath ); diff --git a/backend/models/Importer.php b/backend/models/Importer.php index d31fcea..daaa435 100644 --- a/backend/models/Importer.php +++ b/backend/models/Importer.php @@ -89,4 +89,7 @@ class Importer extends BaseActiveRecord 'price_date_update' => Yii::t('app', 'Price Date Update'), ]; } + + + } diff --git a/backend/models/UploadFileParsingForm.php b/backend/models/UploadFileParsingForm.php index 2c83b34..0021585 100644 --- a/backend/models/UploadFileParsingForm.php +++ b/backend/models/UploadFileParsingForm.php @@ -5,6 +5,7 @@ use yii\base\Model; use yii\web\UploadedFile; use backend\components\ParserHandler; use Yii; +use common\components\debug\CustomVarDamp; /** * UploadForm is the model behind the upload form. @@ -17,9 +18,9 @@ class UploadFileParsingForm extends Model public $file; public $importer; public $action; -// public $delimiter; -// public $delimiter_flag; -// public $delete_prefix; + public $delimiter; + public $delete_price; + public $delete_prefix; /** * @return array the validation rules. @@ -27,11 +28,15 @@ class UploadFileParsingForm extends Model public function rules() { return [ - [['file'], 'file', 'extensions' => ['csv', 'xml'] ], - ['importer', 'safe'], - ['action', 'boolean'] -// ['delimiter', 'string', 'max' => 1], -// ['delimiter', 'default', 'value' => ';'], + ['importer', 'required', 'message' => 'Не указан поставщик!' ], + ['file', 'required', 'message' => 'Не выбран файл!' ], + //@todo - not working this file validator!!! - fixed + [['file'], 'file', 'extensions' => ['csv', 'xml'] ], //'extensions' => ['csv'], + // 'wrongMimeType' => 'Указан неподдерживаемый тип файла. Можно выбирать csv, xml файлы.' ], + ['importer', 'integer','max' => 999999, 'min' => 0 ], + [['action','delete_prefix', 'delete_price'], 'boolean'], + ['delimiter', 'string', 'max' => 1], + ['delimiter', 'default', 'value' => ';'] ]; } @@ -40,12 +45,13 @@ class UploadFileParsingForm extends Model { return [ 'file' => Yii::t('app', 'Источник'), - 'first_line' => Yii::t('app', 'Первая значимая строка'), - 'first_column' => Yii::t('app', 'Первый значимый столбец'), + 'importer' => Yii::t('app', 'Поставщик'), + 'delimiter' => Yii::t('app', 'Разделитель'), ]; } public function readFile($filePath){ + CustomVarDamp::dumpAndDie( new ParserHandler( $filePath, $this )); $parser = new ParserHandler( $filePath, $this ); $data = $parser->run(); diff --git a/backend/views/parser/index.php b/backend/views/parser/index.php index a075f3a..ee75fef 100644 --- a/backend/views/parser/index.php +++ b/backend/views/parser/index.php @@ -1,6 +1,8 @@
@@ -9,11 +11,14 @@ use yii\helpers\Html;

Загрузка прайсов поставщиков

- field($model, 'importer')->dropDownList(['1'=>'test1', '2'=>'test2', '3'=>'test3' ]); ?> - field($model, 'file')->fileInput() ?> - 'Radio1']); ?> - 'Radio2']); ?> - 'Checkbox']); ?> + field($model, 'importer')->dropDownList(ArrayHelper::map( Importer::find()->all(), 'id','name' )); ?> + field($model, 'delete_price')->checkbox(['label' => 'Загрузить с удалением старого прайса']) ?> + field($model, 'file')->fileInput()->label(false) ?> + field($model, 'action')->radioList([1 => 'Стандартная обработка', 0 => 'С разделителем'])->label(false) ?> + field($model, 'delimiter', ['inputOptions' => ['value' => ';']]) ?> + + field($model, 'delete_prefix')->checkbox(['label' => 'Удалять префикс']) ?> +
'btn btn-primary']) ?> -- libgit2 0.21.4