From: fomichev Date: Thu, 9 Jan 2025 09:15:55 +0000 (+0300) Subject: Исправление генерации для ватсапа и звонка X-Git-Tag: 1.7~94^2~5 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=cce607af9e42e11476d9b1053e2acfe20dfd6fb9;p=erp24_rep%2Fyii-erp24%2F.git Исправление генерации для ватсапа и звонка --- 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')