namespace app\controllers;
use Exception;
+use PhpOffice\PhpSpreadsheet\IOFactory;
use Yii;
use yii\base\DynamicModel;
+use yii\data\ArrayDataProvider;
use yii\db\Expression;
use yii\filters\AccessControl;
use yii\helpers\ArrayHelper;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\web\Response;
+use yii\web\UploadedFile;
use yii_app\helpers\DataHelper;
use yii_app\records\{BouquetComposition,
BouquetCompositionPrice,
Files,
MatrixType,
PricesDynamic,
+ Products1c,
Products1cNomenclature,
SelfCostProduct,
StoreType,
'year' => $year,
]);
}
+
+ public function actionGetGuidBouquets()
+ {
+ $model = new DynamicModel(['excelFile']);
+ $model->addRule('excelFile', 'file', ['extensions' => ['xls', 'xlsx'], 'skipOnEmpty' => false]);
+
+ $data = [];
+
+ if (Yii::$app->request->isPost) {
+ $model->excelFile = UploadedFile::getInstance($model, 'excelFile');
+
+ if ($model->validate()) {
+ $filePath = Yii::getAlias('@runtime') . '/import_' . uniqid() . '.' . $model->excelFile->extension;
+ $model->excelFile->saveAs($filePath);
+
+ $spreadsheet = IOFactory::load($filePath);
+ $rows = $spreadsheet->getActiveSheet()->toArray();
+
+ $names = array_filter(array_column($rows, 0));
+ var_dump($names); die();
+ $products = Products1c::find()
+ ->select(['id', 'name'])
+ ->where(['name' => $names])
+ ->asArray()
+ ->all();
+
+ $data = $products;
+
+ Yii::$app->session->set('productExportData', $data);
+ }
+ }
+
+ $provider = new ArrayDataProvider([
+ 'allModels' => $data,
+ 'pagination' => false,
+ ]);
+
+ return $this->render('get-guid-bouquet', [
+ 'model' => $model,
+ 'provider' => $provider,
+ ]);
+ }
+
}
--- /dev/null
+<?php
+
+use yii\widgets\ActiveForm;
+use yii\helpers\Html;
+use kartik\grid\GridView;
+
+/** @var yii\web\View $this */
+/** @var yii\base\DynamicModel $model */
+/** @var yii\data\ArrayDataProvider $provider */
+
+$this->title = 'Импорт товаров из Excel';
+?>
+
+ <h1><?= Html::encode($this->title) ?></h1>
+
+<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?>
+<?= $form->field($model, 'excelFile')->fileInput() ?>
+ <div class="form-group">
+ <?= Html::submitButton('Загрузить', ['class' => 'btn btn-primary']) ?>
+ </div>
+<?php ActiveForm::end() ?>
+
+<?php if ($provider->getCount()): ?>
+ <h2>Результаты поиска</h2>
+ <?= GridView::widget([
+ 'dataProvider' => $provider,
+ 'columns' => [
+ ['class' => 'yii\grid\SerialColumn'],
+ 'id',
+ 'name',
+ ],
+ ]) ?>
+
+ <?= Html::a('📥 Скачать найденные товары', ['download'], ['class' => 'btn btn-success']) ?>
+<?php endif; ?>
\ No newline at end of file