]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Форма для фильтрации
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 12 Dec 2024 12:31:41 +0000 (15:31 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 12 Dec 2024 12:31:41 +0000 (15:31 +0300)
erp24/controllers/UsersMessageManagementController.php
erp24/records/UsersMessageManagement.php
erp24/views/users-message-management/_export.php
erp24/views/users-message-management/index.php

index 09cbc4f8a62124bf278cc72769f2d8282c54de7f..654e1b40c9d0133d804e47c7dbef73d30f8bd055 100644 (file)
@@ -18,8 +18,11 @@ class UsersMessageManagementController extends Controller
         $request = Yii::$app->request;
         $model = UsersMessageManagement::find()->one();
 
-        $startDate = $request->get('start_date', date('Y-m-d'));
-        $endDate = $request->get('end_date', date('Y-m-d', strtotime('+7 days')));
+        $month = $request->get('month', date('m'));
+        $year = $request->get('year', date('Y'));
+
+        $startDate = date('Y-m-d', strtotime("$year-$month-01"));
+        $endDate = date('Y-m-t', strtotime($startDate)); // Последний день месяца
 
         $dates = [];
         $currentDate = strtotime($startDate);
@@ -32,8 +35,7 @@ class UsersMessageManagementController extends Controller
                 'whatsapp' => [$this->generateLink($formattedDate, 'whatsapp', 'generate-excel'),
                     $this->generateLink($formattedDate, 'whatsapp', 'view-kogort-users')],
                 'call' => [$this->generateLink($formattedDate, 'call', 'generate-excel'),
-                    $this->generateLink($formattedDate, 'call', 'view-kogort-users') ],
-
+                    $this->generateLink($formattedDate, 'call', 'view-kogort-users')],
             ];
             $currentDate = strtotime('+1 day', $currentDate);
         }
@@ -57,8 +59,8 @@ class UsersMessageManagementController extends Controller
         return $this->render('index', [
             'model' => $model,
             'links' => $dates,
-            'startDate' => $startDate,
-            'endDate' => $endDate,
+            'month' => $month,
+            'year' => $year,
         ]);
     }
 
@@ -67,9 +69,11 @@ class UsersMessageManagementController extends Controller
     {
         $request = Yii::$app->request;
 
+        $month = $request->get('month', date('m'));
+        $year = $request->get('year', date('Y'));
 
-        $startDate = $request->get('start_date', date('Y-m-d'));
-        $endDate = $request->get('end_date', date('Y-m-d', strtotime('+7 days')));
+        $startDate = date('Y-m-d', strtotime("$year-$month-01"));
+        $endDate = date('Y-m-t', strtotime($startDate)); // Последний день месяца
 
         $dates = [];
         $currentDate = strtotime($startDate);
@@ -82,18 +86,16 @@ class UsersMessageManagementController extends Controller
                 'whatsapp' => [$this->generateLink($formattedDate, 'whatsapp', 'generate-excel'),
                     $this->generateLink($formattedDate, 'whatsapp', 'view-kogort-users')],
                 'call' => [$this->generateLink($formattedDate, 'call', 'generate-excel'),
-                    $this->generateLink($formattedDate, 'call', 'view-kogort-users') ],
-
+                    $this->generateLink($formattedDate, 'call', 'view-kogort-users')],
             ];
             $currentDate = strtotime('+1 day', $currentDate);
         }
-
         //var_dump($dates); die();
 
         return $this->render('export-kogort', [
             'links' => $dates,
-            'startDate' => $startDate,
-            'endDate' => $endDate,
+            'month' => $month,
+            'year' => $year,
         ]);
     }
 
@@ -133,15 +135,16 @@ class UsersMessageManagementController extends Controller
         $response->format = \yii\web\Response::FORMAT_RAW;
 
 
-        $response->headers->add('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
-        $response->headers->add('Content-Disposition', 'attachment; filename="users-' . $type . '-' . $date . '.xlsx"');
-        $response->headers->add('Cache-Control', 'max-age=0');
+        $response->headers->set('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
+        $response->headers->set('Content-Disposition', 'attachment; filename="users-' . $type . '-' . $date . '.xlsx"');
+        $response->headers->set('Cache-Control', 'max-age=0');
         $response->headers->add('Pragma', 'public');
 
 
         $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
         $writer->save('php://output');
         Yii::$app->end();
+        return null;
     }
 
     public function actionViewKogortUsers($date, $type)
index fa4ad87bf52a5bd8d6a621f07007eca4d664468a..25bd4471b1bb8bb5d6a1102097b2febfaabaa1c8 100644 (file)
@@ -32,6 +32,10 @@ use Yii;
  */
 class UsersMessageManagement extends \yii\db\ActiveRecord
 {
+
+    const TYPE_TARGET = 'target';
+    const TYPE_WHATSAPP = 'whatsapp';
+    const TYPE_CALL = 'call';
     /**
      * {@inheritdoc}
      */
index 742264b2c3055472101a49026bddf0fdd9013f32..34293dc672671ade9d618fac6c151fe0870af446 100644 (file)
@@ -1,30 +1,49 @@
 <?php
 use yii\helpers\Html;
 use yii\helpers\Url;
+use yii\widgets\ActiveForm;
 
 /** @var array $links */
-/** @var string $startDate */
-/** @var string $endDate */
-
+/** @var string $month */
+/** @var string $year */
+/* @var $model UsersMessageManagement */
 
 ?>
+<div class="row mb-3">
+    <div class="col-4 col-lg-offset-8">
+        <?php $form2 = ActiveForm::begin([
+            'id' => 'month-year-form',
+            'options' => ['class' => 'row align-items-center g-3'],
+        ]);
+
+        ?>
+
+        <div class="col">
+            <?= $form2->field($model, 'month', [
+                'options' => ['class' => 'form-group'],
+            ])->dropDownList(\yii_app\helpers\DateHelper::MONTH_NUMBER_NAMES, [
+                'class' => 'form-control',
+                'prompt' => 'Выберите месяц',
+            ])->label(false) ?>
+        </div>
 
-    <form method="get" class="mb-4">
-        <div class="row g-3">
-            <div class="col">
-                <label for="start_date" class="form-label">Начальная дата</label>
-                <input type="date" name="start_date" id="start_date" class="form-control" value="<?= Html::encode($startDate) ?>">
-            </div>
-            <div class="col">
-                <label for="end_date" class="form-label">Конечная дата</label>
-                <input type="date" name="end_date" id="end_date" class="form-control" value="<?= Html::encode($endDate) ?>">
-            </div>
-            <div class="col-auto">
-                <label class="form-label d-block">&nbsp;</label>
-                <button type="submit" class="btn btn-primary">Показать</button>
-            </div>
+        <div class="col">
+            <?= $form2->field($model, 'year', [
+                'options' => ['class' => 'form-group'],
+            ])->dropDownList(range(((int)$year - 3), ((int)$year + 3)), [
+                'class' => 'form-control',
+                'prompt' => 'Выберите год',
+            ])->label(false) ?>
         </div>
-    </form>
+
+        <div class="col-auto">
+            <?= Html::submitButton('Показать', ['class' => 'btn btn-primary']) ?>
+        </div>
+
+        <?php ActiveForm::end(); ?>
+    </div>
+</div>
+
 
     <table class="table table-bordered table-striped">
         <thead class="table-light">
@@ -40,27 +59,27 @@ use yii\helpers\Url;
             <tr>
                 <td><?= Html::encode($date) ?></td>
                 <td >
-                    <a href="<?= Url::to($columns['target'][0]) ?>" target="_blank" download="users-target-<?= $date ?>.xlsx">
-                        Ð¡ÐºÐ°Ñ\87аÑ\82Ñ\8c EXCEL
+                    <a href="<?= Url::to($columns['target'][0]) ?>" class="btn btn-link" target="_blank" download="users-target-<?= $date ?>.xlsx">
+                        Ð¢Ð°Ñ\80геÑ\82-<?= $date ?>.xlsx
                     </a>
-                    <a href="<?= Url::to($columns['target'][1]) ?>" target="_blank" class="btn btn-outline-primary">
+                    <a href="<?= Url::to($columns['target'][1]) ?>" target="_blank" class="btn btn-link">
                         Посмотреть
                     </a>
 
                 </td>
                 <td >
-                    <a href="<?= Url::to($columns['whatsapp'][0]) ?>" target="_blank" download="users-whatsapp-<?= $date ?>.xlsx">
-                        Скачать EXCEL
+                    <a href="<?= Url::to($columns['whatsapp'][0]) ?>" class="btn btn-link" target="_blank" download="users-whatsapp-<?= $date ?>.xlsx">
+                        Whatsapp-<?= $date ?>.xlsx
                     </a>
-                    <a href="<?= Url::to($columns['whatsapp'][1]) ?>" target="_blank" class="btn btn-outline-primary">
+                    <a href="<?= Url::to($columns['whatsapp'][1]) ?>" class="btn btn-link" target="_blank" class="btn btn-link">
                         Посмотреть
                     </a>
                 </td>
                 <td >
-                    <a href="<?= Url::to($columns['call'][0]) ?>" target="_blank" download="users-call-<?= $date ?>.xlsx">
-                        Ð¡ÐºÐ°Ñ\87аÑ\82Ñ\8c EXCEL
+                    <a href="<?= Url::to($columns['call'][0]) ?>" class="btn btn-link" target="_blank" download="users-call-<?= $date ?>.xlsx">
+                        Ð\97вонок-<?= $date ?>.xlsx
                     </a>
-                    <a href="<?= Url::to($columns['call'][1]) ?>" target="_blank" class="btn btn-outline-primary">
+                    <a href="<?= Url::to($columns['call'][1]) ?>" target="_blank" class="btn btn-link">
                         Посмотреть
                     </a>
                 </td>
index 83b69fbbb2f1cb099f9b5f48a80efa6086827782..ae59699ca8b77a30fda2c70ffcca4e6ada60f6e0 100644 (file)
@@ -9,8 +9,8 @@ use yii_app\records\UsersMessageManagement;
 
 /* @var $model UsersMessageManagement */
 /** @var array $links */
-/** @var string $startDate */
-/** @var string $endDate */
+/** @var string $month */
+/** @var string $year */
 
 $this->registerJsFile('/js/users-message-management/index.js', ['position' => \yii\web\View::POS_END]);
 
@@ -20,7 +20,7 @@ $this->registerJsFile('/js/users-message-management/index.js', ['position' => \y
 
     <h1>Настройка управления рассылками клиентам</h1>
 
-    <?php $form = ActiveForm::begin(); ?>
+    <?php $form = ActiveForm::begin(['id' => 'main-settings-form']); ?>
 
     <ul class="nav1 br-7 border">
         <li class="nav-item1">
@@ -169,8 +169,9 @@ $this->registerJsFile('/js/users-message-management/index.js', ['position' => \y
             <div id="unloadingTab">
                 <?= $this->render('_export', [
                     'links' => $links,
-                    'startDate' => $startDate,
-                    'endDate' => $endDate,
+                    'month' => $month,
+                    'year' => $year,
+                    'model' => $model,
                 ]) ?>
             </div>
         </div>