]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Вывод промокодов в отдельную скрытую таблицу и экспорт её
authorAlexander Smirnov <fredeom@mail.ru>
Tue, 25 Jun 2024 13:08:28 +0000 (16:08 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Tue, 25 Jun 2024 13:08:28 +0000 (16:08 +0300)
erp24/controllers/PromocodeController.php
erp24/views/promocode/edit.php

index 0b525905abbb1e0d192fda0d022bb5d4d8a0841a..cb7b262d81a6301840565afd6dcbe65233fc0ad2 100644 (file)
@@ -17,14 +17,17 @@ class PromocodeController extends Controller
 
     public function actionEdit($id = null) {
         $dataProvider = null;
+        $promocodesForExport = null;
         if (!$id) {
             $model = new Promocode;
             $model->date_start = date("Y-m-d 00:00:00");
             $model->date_end = date("Y-m-d 00:00:00", strtotime("+366 day", time()));
         } else {
             $model = Promocode::findOne($id);
-            $dataProvider = new ActiveDataProvider(['query' => Promocode::find()->where(['base' => Promocode::BASE_SINGLE_USE, 'parent_id' => $id])
-                ->orderBy(['created_at' => SORT_DESC, 'code' => SORT_ASC])]);
+            $promocodeQuery = Promocode::find()->where(['base' => Promocode::BASE_SINGLE_USE, 'parent_id' => $id])
+                ->orderBy(['created_at' => SORT_DESC, 'code' => SORT_ASC]);
+            $dataProvider = new ActiveDataProvider(['query' => $promocodeQuery]);
+            $promocodesForExport = $promocodeQuery->all();
         }
         /** @var $model Promocode */
         if (Yii::$app->request->isPost && $model->load(Yii::$app->request->post())) {
@@ -49,6 +52,6 @@ class PromocodeController extends Controller
                 var_dump($model->getErrors());
             }
         }
-        return $this->render('edit', compact('model', 'dataProvider'));
+        return $this->render('edit', compact('model', 'dataProvider', 'promocodesForExport'));
     }
 }
\ No newline at end of file
index f6d59bb14c279fabf6d9fef5dcb0611bdef3907a..f3106a4bd70b34bdd3e29b5cd7c89d069ccc9dc8 100644 (file)
@@ -11,6 +11,7 @@ use \yii_app\helpers\PrintBlockHelper;
 
 /** @var $model Promocode */
 /** @var $dataProvider ActiveDataProvider */
+/** @var $promocodesForExport array */
 
 $this->registerJsFile('https://unpkg.com/xlsx@0.15.1/dist/xlsx.full.min.js', ['position' => \yii\web\View::POS_END]);
 
@@ -70,14 +71,22 @@ $this->registerJsFile('https://unpkg.com/xlsx@0.15.1/dist/xlsx.full.min.js', ['p
 
         <script>
             function htmlTableToExcel(type){
-                var data = document.querySelector('table');
+                var data = document.querySelector('#promocodesForExport');
                 var excelFile = XLSX.utils.table_to_book(data, {sheet: "sheet1"});
                 XLSX.write(excelFile, { bookType: type, bookSST: true, type: 'base64' });
                 moment.locale('ru');
                 XLSX.writeFile(excelFile, 'SingleUsePromocodeTable_' + moment().format('L') + '.' + type);
             }
         </script>
-
+        <div style="display: none;">
+            <table id="promocodesForExport">
+                <tbody>
+                    <?php foreach($promocodesForExport as $pc /** @var $pc Promocode */): ?>
+                        <tr><td><?= $pc->code ?></td></tr>
+                    <?php endforeach; ?>
+                </tbody>
+            </table>
+        </div>
         <?= GridView::widget([
             'dataProvider' => $dataProvider,
             'columns' => [