]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Правки генерации когорт звонка и возможность отключения вотсапа feature_fomichev_erp-459_call_kogort_fix origin/feature_fomichev_erp-459_call_kogort_fix
authorVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Mon, 25 Aug 2025 06:51:57 +0000 (09:51 +0300)
committerVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Mon, 25 Aug 2025 06:51:57 +0000 (09:51 +0300)
erp24/records/Users.php
erp24/records/UsersMessageManagement.php
erp24/views/users-message-management/index.php

index 2f529602e5d7050b31f64bf4d8de36ad0bc0daa2..4c557a76f9db8869e9bfc0706f50427cd70cb55e 100755 (executable)
@@ -476,7 +476,7 @@ class Users extends \yii\db\ActiveRecord
         }
 
         if ($type === 'call' && !empty($existingWhatsappKogort)) {
-                return self::processCallKogort($existingWhatsappKogort, $targetDate);
+                return self::processCallKogort($existingTargetKogort, $targetDate);
         }
 
         $monthDay = date('m-d', strtotime($targetDate));
@@ -544,7 +544,7 @@ class Users extends \yii\db\ActiveRecord
         $whatsappResult = self::processWhatsappKogort($targetKogortData, $targetDate);
         return $type === 'whatsapp'
             ? $whatsappResult
-            : self::processCallKogort($whatsappResult['whatsapp'], $targetDate);
+            : self::processCallKogort($targetKogortData, $targetDate);
     }
 
     /**
@@ -597,18 +597,18 @@ class Users extends \yii\db\ActiveRecord
     /**
      * Обработка выборки для Call когорты
      */
-    private static function processCallKogort(array $whatsappPhones, string $targetDate): array
+    private static function processCallKogort(array $targetPhones, string $targetDate): array
     {
         $messagesSettings = UsersMessageManagement::find()->one();
 
-        $step2 = $messagesSettings ? $messagesSettings->day_before_step2 : 4;
+        $step1 = $messagesSettings ? $messagesSettings->day_before_step1 : 10;
         $step3 = $messagesSettings ? $messagesSettings->day_before_step3 : 2;
 
-        // Исключаем телефоны с продажами в период от 4 до 2 дней до даты
+        // Исключаем телефоны с продажами в период от 10 до 2 дней до даты
         $excludeSalesPhone = Sales::find()
-            ->where(['>=', 'date', date('Y-m-d', strtotime("$targetDate -$step2 days"))])
+            ->where(['>=', 'date', date('Y-m-d', strtotime("$targetDate -$step1 days"))])
             ->andWhere(['<=', 'date', date('Y-m-d', strtotime("$targetDate -$step3 days"))])
-            ->andWhere(['phone' => $whatsappPhones])
+            ->andWhere(['phone' => $targetPhones])
             ->andWhere(['not', ['phone' => 0]])
             ->distinct('phone')
             ->select('phone')
@@ -625,7 +625,7 @@ class Users extends \yii\db\ActiveRecord
             );
         }
 
-        return array_diff($whatsappPhones, $excludeSalesPhone);
+        return array_diff($targetPhones, $excludeSalesPhone);
     }
 
     public static function saveKogort(array $phones, string $kogortDate, string $targetDate, int $kogort_number, bool $delete = false): array
index 6ffad82e508c32cb14f31b6e3465a40d548e1fcd..eadcabe6dcca2b7b6e2c562d6f00946ec59ca199 100644 (file)
@@ -32,15 +32,15 @@ use Yii;
  * @property string|null $date_end Дата и время завершения события
  * @property string $test_phones_list Список тестовых телефонов
  * @property string $test_phones_active Активность тестового списка
- * @property string $channel_name Имя канала
- * @property string $channel_id Идентификатор канала - подпись
- * @property string $channel_limit Суточный лимит сообщений
- * @property string $cascade_name Имя каскада
- * @property string $cascade_id ID каскада
- * @property string $subject_id Идентификатор подписи
- * @property string $template_name Имя шаблона
- * @property string $template_id Идентификатор шаблона
- * @property string $callback_status_url URL приема колбеков статусов сообщений
+ * @property string|null $channel_name Имя канала
+ * @property string|null $channel_id Идентификатор канала - подпись
+ * @property int|null $channel_limit Суточный лимит сообщений
+ * @property string|null $cascade_name Имя каскада
+ * @property int|null $cascade_id ID каскада
+ * @property int|null $subject_id Идентификатор подписи
+ * @property string|null $template_name Имя шаблона
+ * @property int|null $template_id Идентификатор шаблона
+ * @property string|null $callback_status_url URL приема колбеков статусов сообщений
  */
 class UsersMessageManagement extends \yii\db\ActiveRecord
 {
index 9919fff3036f173d7c245ff24c77d85a032e163e..2ae1da1df3948f08035329b2ffe51fcab8ca714c 100644 (file)
@@ -284,13 +284,13 @@ $this->registerCss('
                             </div>
                             <div id="whatsAppSettings" class="collapse">
                                 <div class="card-body">
-                                    <?= $form->field($model, 'channel_name')->textInput(['required' => true])->label('Имя канала <span class="text-danger">*</span>') ?>
+                                    <?= $form->field($model, 'channel_name')->textInput(['required' => false])->label('Имя канала <span class="text-danger">*</span>') ?>
                                     <?= $form->field($model, 'channel_id')->textInput()->label('Идентификатор канала - подпись') ?>
                                     <?= $form->field($model, 'channel_limit')->textInput(['type' => 'number', 'readonly' => true])->label('Суточный лимит сообщений') ?>
-                                    <?= $form->field($model, 'cascade_name')->textInput(['required' => true])->label('Имя каскада <span class="text-danger">*</span>') ?>
+                                    <?= $form->field($model, 'cascade_name')->textInput(['required' => false])->label('Имя каскада <span class="text-danger">*</span>') ?>
                                     <?= $form->field($model, 'cascade_id')->textInput(['type' => 'number', 'readonly' => true])->label('ID каскада') ?>
                                     <?= $form->field($model, 'subject_id')->textInput(['type' => 'number', 'readonly' => true])->label('Идентификатор подписи') ?>
-                                    <?= $form->field($model, 'template_name')->textInput(['required' => true])->label('Имя шаблона <span class="text-danger">*</span>') ?>
+                                    <?= $form->field($model, 'template_name')->textInput(['required' => false])->label('Имя шаблона <span class="text-danger">*</span>') ?>
                                     <?= $form->field($model, 'template_id')->textInput(['type' => 'number', 'readonly' => true])->label('Идентификатор шаблона') ?>
                                     <?= $form->field($model, 'callback_status_url')->textInput()->label('URL приема колбеков статусов сообщений') ?>
                                 </div>