From: fomichev Date: Thu, 26 Dec 2024 11:07:37 +0000 (+0300) Subject: Проверка на hold > 0 и и показ сообщения в таблице номеров X-Git-Tag: 1.7~94^2~29 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=d0a9c40f7df2696268569acfc57305dc64cc8f24;p=erp24_rep%2Fyii-erp24%2F.git Проверка на hold > 0 и и показ сообщения в таблице номеров --- diff --git a/erp24/commands/CronController.php b/erp24/commands/CronController.php index 1aaf979a..bd304748 100644 --- a/erp24/commands/CronController.php +++ b/erp24/commands/CronController.php @@ -195,11 +195,13 @@ class CronController extends Controller } $time = $this->time ? (int)$this->time : time(); - + $stepsBack = $this->stepsBack ?? 0; $currentYear = date('Y', $time); $currentMonth = date('m', $time); + $currentDay = date('j', $time); + $currentDate = sprintf('%04d-%02d-%02d', $currentYear, $currentMonth, $currentDay); - if (date('j', $time) == 1) { + /*if (date('j', $time) == 1) { $startDay = 1; $endDay = cal_days_in_month(CAL_GREGORIAN, $currentMonth, $currentYear); } elseif (date('j', $time) == 21) { @@ -210,27 +212,25 @@ class CronController extends Controller } else { $this->stdout("Формирование когорты в текущий день невозможно. Пропускаю.\n", BaseConsole::FG_YELLOW); return ExitCode::UNAVAILABLE; - } + }*/ - for ($day = $startDay; $day <= $endDay; $day++) { - $currentDate = sprintf('%04d-%02d-%02d', $currentYear, $currentMonth, $day); + $messagesSettings = UsersMessageManagement::find() + ->where(['active' => 1]) + ->one(); - /*if ( - SentKogort::find() - ->where(['kogort_date' => $currentDate, 'kogort_number' => SentKogort::KOGORT_NUMBERS['target']]) - ->exists() - ) { - $this->stdout("Когорта для даты {$currentDate} уже существует. Пропускаю...\n", BaseConsole::FG_YELLOW); - continue; - }*/ + $step1 = $messagesSettings ? $messagesSettings->day_before_step1 : 10; + + for ($i = $stepsBack; $i >= 0; $i--) { + $dateToProcess = date('Y-m-d', strtotime("-$i days", strtotime($currentDate))); + $startDate = date('Y-m-d', strtotime("+$step1 days", strtotime($dateToProcess))); - $kogortPhones = Users::formKogortByDateAndType($currentDate, 'target'); + $kogortPhones = Users::formKogortByDateAndType($startDate, 'target'); if (!empty($kogortPhones)) { - Users::saveKogort($kogortPhones, $currentDate, SentKogort::KOGORT_NUMBERS['target']); - $this->stdout("Когорта для даты {$currentDate} успешно сохранена.\n", BaseConsole::FG_GREEN); + Users::saveKogort($kogortPhones, $startDate, SentKogort::KOGORT_NUMBERS['target']); + $this->stdout("Когорта для даты {$startDate} успешно сохранена.\n", BaseConsole::FG_GREEN); } else { - $this->stdout("Нет данных для формирования когорты на дату {$currentDate}.\n", BaseConsole::FG_RED); + $this->stdout("Нет данных для формирования когорты на дату {$startDate}.\n", BaseConsole::FG_RED); } } diff --git a/erp24/controllers/UsersMessageManagementController.php b/erp24/controllers/UsersMessageManagementController.php index da9daa0c..633f7712 100644 --- a/erp24/controllers/UsersMessageManagementController.php +++ b/erp24/controllers/UsersMessageManagementController.php @@ -280,6 +280,11 @@ class UsersMessageManagementController extends Controller $data = Users::prepareDataForExport($dataKogort, $date, $type); + $messagesSettings = UsersMessageManagement::find() + ->where(['active' => 1]) + ->one(); + $message = $messagesSettings->{UsersMessageManagement::TYPE_MESSAGE[$type]} ?? ''; + $dataProvider = new ArrayDataProvider([ 'allModels' => $data, 'pagination' => [ @@ -291,6 +296,7 @@ class UsersMessageManagementController extends Controller 'dataProvider' => $dataProvider, 'date' => $date, 'type' => $type, + 'message' => $message, ]); } diff --git a/erp24/records/Users.php b/erp24/records/Users.php index 3e437051..7a7a62f0 100755 --- a/erp24/records/Users.php +++ b/erp24/records/Users.php @@ -487,7 +487,7 @@ class Users extends \yii\db\ActiveRecord $usersArray = array_unique(array_merge($salesPhone, $memorableDate)); - if ($holdActive == 1) { + if ($hold > 0) { $phonesSent = SentKogort::find() ->select('phone') ->where(['between', 'kogort_date', @@ -495,10 +495,9 @@ class Users extends \yii\db\ActiveRecord date('Y-m-d', strtotime("$startDate -1 days"))]) ->column(); } else { - $phonesSent =[]; + $phonesSent = []; } - $filteredUsers = array_diff($usersArray, $phonesSent); $kogortData = array_values($filteredUsers); diff --git a/erp24/records/UsersMessageManagement.php b/erp24/records/UsersMessageManagement.php index ebe801f4..3414ea65 100644 --- a/erp24/records/UsersMessageManagement.php +++ b/erp24/records/UsersMessageManagement.php @@ -37,6 +37,12 @@ class UsersMessageManagement extends \yii\db\ActiveRecord const TYPE_TARGET = 'target'; const TYPE_WHATSAPP = 'whatsapp'; const TYPE_CALL = 'call'; + + const TYPE_MESSAGE = [ + 'target' => 'offer_text', + 'whatsapp' => 'offer_whatsapp', + //'call' => 'offer_text', + ]; /** * {@inheritdoc} */ diff --git a/erp24/views/users-message-management/view-kogort.php b/erp24/views/users-message-management/view-kogort.php index 4b675139..3a7ff7a2 100644 --- a/erp24/views/users-message-management/view-kogort.php +++ b/erp24/views/users-message-management/view-kogort.php @@ -8,6 +8,7 @@ use yii\helpers\Html; /** @var yii\data\ActiveDataProvider $dataProvider */ /** @var string $date */ /** @var string $type */ +/** @var string $message */ $this->title = 'Когорта пользователей'; $this->params['breadcrumbs'][] = $this->title; @@ -34,6 +35,8 @@ array_unshift($columns, ['class' => 'yii\grid\SerialColumn']);

title) ?>: -

+

Сообщение:

+ $dataProvider,