From 21b5773e0d7dbca930e0b0cdb15cf8f3d26ad344 Mon Sep 17 00:00:00 2001 From: fomichev Date: Thu, 12 Dec 2024 12:46:20 +0300 Subject: [PATCH] =?utf8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5?= =?utf8?q?=D0=BD=D0=B8=D1=8F=20=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD?= =?utf8?q?=D0=BE=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../UsersMessageManagementController.php | 69 +++++++++++++++--- .../users-message-management/_export.php | 70 +++++++++++++++++++ .../export-kogort.php | 28 +++++++- .../views/users-message-management/index.php | 9 ++- .../users-message-management/view-kogort.php | 25 +++++++ 5 files changed, 189 insertions(+), 12 deletions(-) create mode 100644 erp24/views/users-message-management/_export.php create mode 100644 erp24/views/users-message-management/view-kogort.php diff --git a/erp24/controllers/UsersMessageManagementController.php b/erp24/controllers/UsersMessageManagementController.php index cec867b9..09cbc4f8 100644 --- a/erp24/controllers/UsersMessageManagementController.php +++ b/erp24/controllers/UsersMessageManagementController.php @@ -2,8 +2,11 @@ namespace app\controllers; +use PhpOffice\PhpSpreadsheet\Cell\Coordinate; use PhpOffice\PhpSpreadsheet\Spreadsheet; use Yii; +use yii\base\DynamicModel; +use yii\data\ArrayDataProvider; use yii\web\Controller; use yii_app\records\Users; use yii_app\records\UsersMessageManagement; @@ -12,8 +15,29 @@ class UsersMessageManagementController extends Controller { public function actionIndex() { + $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'))); + + $dates = []; + $currentDate = strtotime($startDate); + + while ($currentDate <= strtotime($endDate)) { + $formattedDate = date('Y-m-d', $currentDate); + $dates[$formattedDate] = [ + 'target' => [$this->generateLink($formattedDate, 'target', 'generate-excel'), + $this->generateLink($formattedDate, 'target', 'view-kogort-users')], + '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') ], + + ]; + $currentDate = strtotime('+1 day', $currentDate); + } + if (!$model) { $model = new UsersMessageManagement; } @@ -30,7 +54,12 @@ class UsersMessageManagementController extends Controller } } - return $this->render('index', compact('model')); + return $this->render('index', [ + 'model' => $model, + 'links' => $dates, + 'startDate' => $startDate, + 'endDate' => $endDate, + ]); } @@ -48,13 +77,19 @@ class UsersMessageManagementController extends Controller while ($currentDate <= strtotime($endDate)) { $formattedDate = date('Y-m-d', $currentDate); $dates[$formattedDate] = [ - 'target' => $this->generateExcelLink($formattedDate, 'target'), - 'whatsapp' => $this->generateExcelLink($formattedDate, 'whatsapp'), - 'call' => $this->generateExcelLink($formattedDate, 'call'), + 'target' => [$this->generateLink($formattedDate, 'target', 'generate-excel'), + $this->generateLink($formattedDate, 'target', 'view-kogort-users')], + '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') ], + ]; $currentDate = strtotime('+1 day', $currentDate); } + //var_dump($dates); die(); + return $this->render('export-kogort', [ 'links' => $dates, 'startDate' => $startDate, @@ -78,7 +113,7 @@ class UsersMessageManagementController extends Controller $columnIndex = 1; foreach ($fields as $field) { - $sheet->setCellValue([ $columnIndex, 1], $field); + $sheet->setCellValue(Coordinate::stringFromColumnIndex($columnIndex) . '1', $field); $columnIndex++; } @@ -86,7 +121,7 @@ class UsersMessageManagementController extends Controller foreach ($data as $user) { $columnIndex = 1; foreach ($fields as $field) { - $sheet->setCellValue([$columnIndex, $row], $user->$field); + $sheet->setCellValue(Coordinate::stringFromColumnIndex($columnIndex) . $row, $user->$field); $columnIndex++; } $row++; @@ -109,10 +144,28 @@ class UsersMessageManagementController extends Controller Yii::$app->end(); } - protected function generateExcelLink($date, $type) + public function actionViewKogortUsers($date, $type) + { + $data = Users::getUsersListForKogort($date); + + $dataProvider = new ArrayDataProvider([ + 'allModels' => $data, + 'pagination' => [ + 'pageSize' => 200, + ], + ]); + + return $this->render('view-kogort', [ + 'dataProvider' => $dataProvider, + 'date' => $date, + ]); + } + + protected function generateLink($date, $type, $view) { + $url = 'users-message-management/' . $view; return Yii::$app->urlManager->createUrl([ - 'users-message-management/generate-excel', + $url, 'date' => $date, 'type' => $type, ]); diff --git a/erp24/views/users-message-management/_export.php b/erp24/views/users-message-management/_export.php new file mode 100644 index 00000000..742264b2 --- /dev/null +++ b/erp24/views/users-message-management/_export.php @@ -0,0 +1,70 @@ + + +
+
+
+ + +
+
+ + +
+
+ + +
+
+
+ + + + + + + + + + + + $columns): ?> + + + + + + + + +
День выгрузкиTargetWhatsappЗвонок
+ + Скачать EXCEL + + + Посмотреть + + + + + Скачать EXCEL + + + Посмотреть + + + + Скачать EXCEL + + + Посмотреть + +
diff --git a/erp24/views/users-message-management/export-kogort.php b/erp24/views/users-message-management/export-kogort.php index eaccb302..39e53554 100644 --- a/erp24/views/users-message-management/export-kogort.php +++ b/erp24/views/users-message-management/export-kogort.php @@ -46,9 +46,31 @@ $this->title = 'Рассылка по когортам'; $columns): ?> - Скачать EXCEL - Скачать EXCEL - Скачать EXCEL + + + Скачать EXCEL + + + Посмотреть + + + + + + Скачать EXCEL + + + Посмотреть + + + + + Скачать EXCEL + + + Посмотреть + + diff --git a/erp24/views/users-message-management/index.php b/erp24/views/users-message-management/index.php index 41471dca..83b69fbb 100644 --- a/erp24/views/users-message-management/index.php +++ b/erp24/views/users-message-management/index.php @@ -8,6 +8,9 @@ use dosamigos\datetimepicker\DateTimePicker; use yii_app\records\UsersMessageManagement; /* @var $model UsersMessageManagement */ +/** @var array $links */ +/** @var string $startDate */ +/** @var string $endDate */ $this->registerJsFile('/js/users-message-management/index.js', ['position' => \yii\web\View::POS_END]); @@ -164,7 +167,11 @@ $this->registerJsFile('/js/users-message-management/index.js', ['position' => \y
- вызгрузки + render('_export', [ + 'links' => $links, + 'startDate' => $startDate, + 'endDate' => $endDate, + ]) ?>
diff --git a/erp24/views/users-message-management/view-kogort.php b/erp24/views/users-message-management/view-kogort.php new file mode 100644 index 00000000..e07d333f --- /dev/null +++ b/erp24/views/users-message-management/view-kogort.php @@ -0,0 +1,25 @@ +title = 'Когорта пользователей'; +$this->params['breadcrumbs'][] = $this->title; +?> + 'btn btn-primary m-5']) ?> +
+ + + +

title) ?>

+ + + $dataProvider, + ]); ?> + +
-- 2.39.5