From e07ac290ae3d2c3000a857fb276f0dd7e38783f0 Mon Sep 17 00:00:00 2001 From: fomichev Date: Fri, 27 Dec 2024 13:16:14 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=BF?= =?utf8?q?=D0=BE=20=D1=84=D0=BE=D1=80=D0=BC=D0=B8=D1=80=D0=BE=D0=B2=D0=B0?= =?utf8?q?=D0=BD=D0=B8=D1=8E=20=D0=B8=20=D1=81=D0=BE=D0=BE=D0=B1=D1=89?= =?utf8?q?=D0=B5=D0=BD=D0=B8=D1=8F=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/commands/CronController.php | 28 +++++++++--------- .../UsersMessageManagementController.php | 7 +++-- erp24/records/Users.php | 29 +++++++++---------- erp24/records/UsersMessageManagement.php | 2 +- .../users-message-management/_data_table.php | 4 +-- .../views/users-message-management/index.php | 1 + .../users-message-management/view-kogort.php | 10 +++++-- 7 files changed, 44 insertions(+), 37 deletions(-) diff --git a/erp24/commands/CronController.php b/erp24/commands/CronController.php index bd304748..054fe4e2 100644 --- a/erp24/commands/CronController.php +++ b/erp24/commands/CronController.php @@ -215,7 +215,7 @@ class CronController extends Controller }*/ $messagesSettings = UsersMessageManagement::find() - ->where(['active' => 1]) + // ->where(['active' => 1]) ->one(); $step1 = $messagesSettings ? $messagesSettings->day_before_step1 : 10; @@ -224,13 +224,13 @@ class CronController extends Controller $dateToProcess = date('Y-m-d', strtotime("-$i days", strtotime($currentDate))); $startDate = date('Y-m-d', strtotime("+$step1 days", strtotime($dateToProcess))); - $kogortPhones = Users::formKogortByDateAndType($startDate, 'target'); + $kogortPhones = Users::formKogortByDateAndType($dateToProcess, 'target'); if (!empty($kogortPhones)) { - Users::saveKogort($kogortPhones, $startDate, SentKogort::KOGORT_NUMBERS['target']); - $this->stdout("Когорта для даты {$startDate} успешно сохранена.\n", BaseConsole::FG_GREEN); + Users::saveKogort($kogortPhones, $dateToProcess, SentKogort::KOGORT_NUMBERS['target']); + $this->stdout("Когорта для даты {$dateToProcess} успешно сохранена.\n", BaseConsole::FG_GREEN); } else { - $this->stdout("Нет данных для формирования когорты на дату {$startDate}.\n", BaseConsole::FG_RED); + $this->stdout("Нет данных для формирования когорты на дату {$dateToProcess}.\n", BaseConsole::FG_RED); } } @@ -256,7 +256,7 @@ class CronController extends Controller $stepsBack = $this->stepsBack ?? 0; $messagesSettings = UsersMessageManagement::find() - ->where(['active' => 1]) + // ->where(['active' => 1]) ->one(); $step2 = $messagesSettings ? $messagesSettings->day_before_step2 : 4; @@ -277,17 +277,17 @@ class CronController extends Controller continue; }*/ - $kogortPhones = Users::formKogortByDateAndType($startDate, 'whatsapp'); + $kogortPhones = Users::formKogortByDateAndType($dateToProcess, 'whatsapp'); if (!empty($kogortPhones)) { - Users::saveKogort($kogortPhones, $startDate, SentKogort::KOGORT_NUMBERS['whatsapp']); + Users::saveKogort($kogortPhones, $dateToProcess, SentKogort::KOGORT_NUMBERS['whatsapp']); $this->stdout( - "Когорта для Вотсапа на дату {$startDate} успешно создана.\n", + "Когорта для Вотсапа на дату {$dateToProcess} успешно создана.\n", BaseConsole::FG_GREEN ); } else { $this->stdout( - "Нет данных для формирования когорты для Ватсапа на дату {$startDate}.\n", + "Нет данных для формирования когорты для Ватсапа на дату {$dateToProcess}.\n", BaseConsole::FG_RED ); } @@ -307,7 +307,7 @@ class CronController extends Controller $currentDate = $this->time ? date('Y-m-d', (int)$this->time) : date('Y-m-d'); $stepsBack = $this->stepsBack ?? 0; $messagesSettings = UsersMessageManagement::find() - ->where(['active' => 1]) + // ->where(['active' => 1]) ->one(); $step3 = $messagesSettings ? $messagesSettings->day_before_step3 : 2; @@ -328,12 +328,12 @@ class CronController extends Controller continue; }*/ - $kogortPhones = Users::formKogortByDateAndType($startDate, 'call'); + $kogortPhones = Users::formKogortByDateAndType($dateToProcess, 'call'); if (!empty($kogortPhones)) { - Users::saveKogort($kogortPhones, $startDate, SentKogort::KOGORT_NUMBERS['call']); + Users::saveKogort($kogortPhones, $dateToProcess, SentKogort::KOGORT_NUMBERS['call']); $this->stdout( - "Когорта для Звонка на данную дату {$startDate} успешно создана.\n", + "Когорта для Звонка на данную дату {$dateToProcess} успешно создана.\n", BaseConsole::FG_GREEN ); } else { diff --git a/erp24/controllers/UsersMessageManagementController.php b/erp24/controllers/UsersMessageManagementController.php index e1355a58..3b681e15 100644 --- a/erp24/controllers/UsersMessageManagementController.php +++ b/erp24/controllers/UsersMessageManagementController.php @@ -87,7 +87,6 @@ class UsersMessageManagementController extends Controller $currentDate = strtotime('+1 day', $currentDate); } - if (!$model) { $model = new UsersMessageManagement(); $model->hold_active = 1; @@ -282,8 +281,10 @@ class UsersMessageManagementController extends Controller $data = Users::prepareDataForExport($dataKogort, $date, $type); $messagesSettings = UsersMessageManagement::find() - ->where(['active' => 1]) + // ->where(['active' => 1]) ->one(); + $message = ''; + if($messagesSettings && $messagesSettings->{UsersMessageManagement::TYPE_MESSAGE[$type]}) { $message = $messagesSettings->replaceShortcodes( $messagesSettings->{UsersMessageManagement::TYPE_MESSAGE[$type]} @@ -302,7 +303,7 @@ class UsersMessageManagementController extends Controller 'dataProvider' => $dataProvider, 'date' => $date, 'type' => $type, - 'message' => $message ?? '', + 'message' => $message, ]); } diff --git a/erp24/records/Users.php b/erp24/records/Users.php index 9f7ccc81..1d9d2e34 100755 --- a/erp24/records/Users.php +++ b/erp24/records/Users.php @@ -305,7 +305,7 @@ class Users extends \yii\db\ActiveRecord $monthDay = date('m-d', strtotime($startDate)); $messagesSettings = UsersMessageManagement::find() - ->where(['active' => 1]) + //->where(['active' => 1]) ->one(); $step1 = $messagesSettings ? $messagesSettings->day_before_step1 : 10; @@ -453,7 +453,7 @@ class Users extends \yii\db\ActiveRecord $monthDay = date('m-d', strtotime($startDate)); $messagesSettings = UsersMessageManagement::find() - ->where(['active' => 1]) + //->where(['active' => 1]) ->one(); $hold = isset($messagesSettings->hold) ? $messagesSettings->hold : 10; @@ -502,7 +502,7 @@ class Users extends \yii\db\ActiveRecord private static function processWhatsappKogort(array $targetPhones, string $startDate): array { $messagesSettings = UsersMessageManagement::find() - ->where(['active' => 1]) + // ->where(['active' => 1]) ->one(); $step1 = $messagesSettings ? $messagesSettings->day_before_step1 : 10; @@ -535,7 +535,7 @@ class Users extends \yii\db\ActiveRecord private static function processCallKogort(array $whatsappPhones, string $startDate): array { $messagesSettings = UsersMessageManagement::find() - ->where(['active' => 1]) + //->where(['active' => 1]) ->one(); $step2 = $messagesSettings ? $messagesSettings->day_before_step2 : 4; @@ -601,20 +601,19 @@ class Users extends \yii\db\ActiveRecord ->where(['phone' => $user['phone']]) ->exists() ? 1 : 0; - $lastSale = Sales::find() + $query = Sales::find() + ->select([ + 'lastSaleDate' => 'MAX(date)', + 'dealsCount' => 'COUNT(*)', + 'totalSum' => 'SUM(summ)' + ]) ->where(['phone' => $user['phone']]) - ->orderBy(['date' => SORT_DESC]) + ->asArray() ->one(); - $lastDate = $lastSale ? date('d-m-Y', strtotime($lastSale->date)) : 'нет данных'; - - $dealsCount = Sales::find() - ->where(['phone' => $user['phone']]) - ->count(); - - $totalSum = Sales::find() - ->where(['phone' => $user['phone']]) - ->sum('summ') ?? 0; + $lastDate = $query['lastSaleDate'] ? date('d-m-Y', strtotime($query['lastSaleDate'])) : 'нет данных'; + $dealsCount = $query['dealsCount'] ?? 0; + $totalSum = $query['totalSum'] ?? 0; $data[] = [ 'phone' => $user['phone'], diff --git a/erp24/records/UsersMessageManagement.php b/erp24/records/UsersMessageManagement.php index c1a8ab94..076830b8 100644 --- a/erp24/records/UsersMessageManagement.php +++ b/erp24/records/UsersMessageManagement.php @@ -114,7 +114,7 @@ class UsersMessageManagement extends \yii\db\ActiveRecord public function getBonusAction() { - return $this->day_before_step1 + 1; + return (int)($this->day_before_step1) + 1; } public function getTestPhonesList() diff --git a/erp24/views/users-message-management/_data_table.php b/erp24/views/users-message-management/_data_table.php index a69c04fe..67e36015 100644 --- a/erp24/views/users-message-management/_data_table.php +++ b/erp24/views/users-message-management/_data_table.php @@ -1,8 +1,8 @@ registerCss(' 'links' => $links, 'month' => $month, 'year' => $year, + 'model' => $model, ]) ?> diff --git a/erp24/views/users-message-management/view-kogort.php b/erp24/views/users-message-management/view-kogort.php index 9636e2f5..d559fc39 100644 --- a/erp24/views/users-message-management/view-kogort.php +++ b/erp24/views/users-message-management/view-kogort.php @@ -26,6 +26,11 @@ $columns = array_map(function ($attribute) { }, $attributes); array_unshift($columns, ['class' => 'yii\grid\SerialColumn']); +if ($message == '') { + $message = Html::a('Нет сообщения для рассылки - сформируйте ее в интерфейсе', ['index'], ['class' => 'btn btn-link']); +} else { + $message = Html::encode($message); +} ?> 'btn btn-primary m-5']) ?> @@ -33,7 +38,8 @@ array_unshift($columns, ['class' => 'yii\grid\SerialColumn']); -

title) ?>: -

+

title) ?>: + на

@@ -47,7 +53,7 @@ array_unshift($columns, ['class' => 'yii\grid\SerialColumn']);
-
+
-- 2.39.5