]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Проверка на hold > 0 и и показ сообщения в таблице номеров
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 26 Dec 2024 11:07:37 +0000 (14:07 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 26 Dec 2024 11:07:37 +0000 (14:07 +0300)
erp24/commands/CronController.php
erp24/controllers/UsersMessageManagementController.php
erp24/records/Users.php
erp24/records/UsersMessageManagement.php
erp24/views/users-message-management/view-kogort.php

index 1aaf979a4c622194cbe5b7647af4f98b7ea3fedd..bd3047486229270b91cc37ca64097ef3f2de0763 100644 (file)
@@ -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);
             }
         }
 
index da9daa0ce6e17adfd73fdefe8727ba06d856faf8..633f771267a3e1beedc5dad00424259546bfd5c4 100644 (file)
@@ -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,
         ]);
     }
 
index 3e437051c3b6c81485f301fddaa65a0e1fd78f62..7a7a62f03a1de1268b8ff74b26dfdcbcfa716278 100755 (executable)
@@ -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);
 
index ebe801f47083affc6b7b1cf1fd889644c8cc7c55..3414ea65d83d29e1e6683ff7d5feb5a0caf13c95 100644 (file)
@@ -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}
      */
index 4b6751390b9991b0ad0f218375f56a3b412ddfb6..3a7ff7a2ebc84f25eb45ae469744027586aa67e6 100644 (file)
@@ -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']);
 
     <h1><?= Html::encode($this->title) ?>: <?= \yii_app\records\Users::KOGORT_TYPES[$type] ?> - <?= date('d-m-Y', strtotime($date)) ?></h1>
 
+    <p> Сообщение: <?= Html::encode($message) ?></p>
+
 
     <?= GridView::widget([
         'dataProvider' => $dataProvider,