]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Простановка гуидов
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 14 May 2025 07:21:10 +0000 (10:21 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 14 May 2025 07:21:10 +0000 (10:21 +0300)
erp24/controllers/BouquetController.php
erp24/views/bouquet/get-guid-bouquet.php [new file with mode: 0644]

index 314a97207e7b1eabb2e56096379a065737b1d9dc..d3312aee1704db41016bae79f090d37edfe9047c 100644 (file)
@@ -3,8 +3,10 @@
 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;
@@ -12,6 +14,7 @@ use yii\helpers\Url;
 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,
@@ -22,6 +25,7 @@ use yii_app\records\{BouquetComposition,
     Files,
     MatrixType,
     PricesDynamic,
+    Products1c,
     Products1cNomenclature,
     SelfCostProduct,
     StoreType,
@@ -295,4 +299,47 @@ class BouquetController extends Controller
             '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,
+        ]);
+    }
+
 }
diff --git a/erp24/views/bouquet/get-guid-bouquet.php b/erp24/views/bouquet/get-guid-bouquet.php
new file mode 100644 (file)
index 0000000..4203b80
--- /dev/null
@@ -0,0 +1,35 @@
+<?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