From cce607af9e42e11476d9b1053e2acfe20dfd6fb9 Mon Sep 17 00:00:00 2001 From: fomichev Date: Thu, 9 Jan 2025 12:15:55 +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=D0=B5=20=D0=B3=D0=B5=D0=BD=D0=B5=D1=80=D0=B0=D1=86?= =?utf8?q?=D0=B8=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D0=B2=D0=B0=D1=82=D1=81?= =?utf8?q?=D0=B0=D0=BF=D0=B0=20=D0=B8=20=D0=B7=D0=B2=D0=BE=D0=BD=D0=BA?= =?utf8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../UsersMessageManagementController.php | 1 + erp24/records/Users.php | 39 +++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/erp24/controllers/UsersMessageManagementController.php b/erp24/controllers/UsersMessageManagementController.php index bcf3b861..d776f717 100644 --- a/erp24/controllers/UsersMessageManagementController.php +++ b/erp24/controllers/UsersMessageManagementController.php @@ -276,6 +276,7 @@ class UsersMessageManagementController extends Controller ->where(['kogort_date' => $date, 'kogort_number' => SentKogort::KOGORT_NUMBERS[$type]]) ->select(['phone']) ->column(); + //$targetDate $data = Users::prepareDataForExport($dataKogort, $date, $type); diff --git a/erp24/records/Users.php b/erp24/records/Users.php index 1ae3f13b..00b0562f 100755 --- a/erp24/records/Users.php +++ b/erp24/records/Users.php @@ -430,27 +430,27 @@ class Users extends \yii\db\ActiveRecord return $data; } - public static function formKogortByDateAndType($startDate = null, $type = 'target'): array + public static function formKogortByDateAndType($targetDate = null, $type = 'target'): array { - $startDate = $startDate ?? date('Y-m-d'); + $targetDate = $targetDate ?? date('Y-m-d'); $existingTargetKogort = SentKogort::find() ->select('phone') ->where([ - 'kogort_date' => $startDate, + 'kogort_target' => $targetDate, 'kogort_number' => SentKogort::KOGORT_NUMBERS['target'] ]) ->column(); if ($type === 'whatsapp' && !empty($existingTargetKogort)) { - return self::processWhatsappKogort($existingTargetKogort, $startDate); + return self::processWhatsappKogort($existingTargetKogort, $targetDate); } if ($type === 'call' && !empty($existingTargetKogort)) { - return self::processCallKogort($existingTargetKogort, $startDate); + return self::processCallKogort($existingTargetKogort, $targetDate); } - $monthDay = date('m-d', strtotime($startDate)); + $monthDay = date('m-d', strtotime($targetDate)); $messagesSettings = UsersMessageManagement::find()->one(); @@ -464,7 +464,8 @@ class Users extends \yii\db\ActiveRecord ->column(); $memorableDate = UsersEvents::find() - ->where(new \yii\db\Expression("TO_CHAR(date, 'MM-DD') = :monthDay", [':monthDay' => $monthDay])) + ->where(['date_month' => (int)date('m', strtotime($targetDate)), + 'date_day' => (int)date('d', strtotime($targetDate))]) ->distinct('phone') ->select('phone') ->column(); @@ -475,8 +476,8 @@ class Users extends \yii\db\ActiveRecord $phonesSent = SentKogort::find() ->select('phone') ->where(['between', 'kogort_date', - date('Y-m-d', strtotime("$startDate -$hold days")), - date('Y-m-d', strtotime("$startDate -1 days"))]) + date('Y-m-d', strtotime("$targetDate -$hold days")), + date('Y-m-d', strtotime("$targetDate -1 days"))]) ->andWhere(['kogort_number' => SentKogort::KOGORT_NUMBERS['target']]) ->column(); } else { @@ -499,14 +500,14 @@ class Users extends \yii\db\ActiveRecord } return $type === 'whatsapp' - ? self::processWhatsappKogort($kogortData, $startDate) - : self::processCallKogort($kogortData, $startDate); + ? self::processWhatsappKogort($kogortData, $targetDate) + : self::processCallKogort($kogortData, $targetDate); } /** * Обработка выборки для WhatsApp когорты */ - private static function processWhatsappKogort(array $targetPhones, string $startDate): array + private static function processWhatsappKogort(array $targetPhones, string $targetDate): array { $messagesSettings = UsersMessageManagement::find()->one(); @@ -521,8 +522,8 @@ class Users extends \yii\db\ActiveRecord ->column(); $excludeSalesPhone = Sales::find() - ->where(['>=', 'date', date('Y-m-d', strtotime("$startDate -$step1 days"))]) - ->andWhere(['<=', 'date', date('Y-m-d', strtotime("$startDate -$step2 days"))]) + ->where(['>=', 'date', date('Y-m-d', strtotime("$targetDate -$step1 days"))]) + ->andWhere(['<=', 'date', date('Y-m-d', strtotime("$targetDate -$step2 days"))]) ->andWhere(['phone' => $targetPhones]) ->distinct('phone') ->select('phone') @@ -536,19 +537,17 @@ class Users extends \yii\db\ActiveRecord /** * Обработка выборки для Call когорты */ - private static function processCallKogort(array $whatsappPhones, string $startDate): array + private static function processCallKogort(array $whatsappPhones, string $targetDate): array { - $messagesSettings = UsersMessageManagement::find() - //->where(['active' => 1]) - ->one(); + $messagesSettings = UsersMessageManagement::find()->one(); $step2 = $messagesSettings ? $messagesSettings->day_before_step2 : 4; $step3 = $messagesSettings ? $messagesSettings->day_before_step3 : 2; // Исключаем телефоны с продажами в период от 4 до 2 дней до даты $excludeSalesPhone = Sales::find() - ->where(['>=', 'date', date('Y-m-d', strtotime("$startDate -$step2 days"))]) - ->andWhere(['<=', 'date', date('Y-m-d', strtotime("$startDate -$step3 days"))]) + ->where(['>=', 'date', date('Y-m-d', strtotime("$targetDate -$step2 days"))]) + ->andWhere(['<=', 'date', date('Y-m-d', strtotime("$targetDate -$step3 days"))]) ->andWhere(['phone' => $whatsappPhones]) ->distinct('phone') ->select('phone') -- 2.39.5