}*/
$messagesSettings = UsersMessageManagement::find()
- ->where(['active' => 1])
+ // ->where(['active' => 1])
->one();
$step1 = $messagesSettings ? $messagesSettings->day_before_step1 : 10;
$dateToProcess = date('Y-m-d', strtotime("-$i days", strtotime($currentDate)));
$startDate = date('Y-m-d', strtotime("+$step1 days", strtotime($dateToProcess)));
- $kogortPhones = Users::formKogortByDateAndType($startDate, 'target');
+ $kogortPhones = Users::formKogortByDateAndType($dateToProcess, 'target');
if (!empty($kogortPhones)) {
- Users::saveKogort($kogortPhones, $startDate, SentKogort::KOGORT_NUMBERS['target']);
- $this->stdout("Когорта для даты {$startDate} успешно сохранена.\n", BaseConsole::FG_GREEN);
+ Users::saveKogort($kogortPhones, $dateToProcess, SentKogort::KOGORT_NUMBERS['target']);
+ $this->stdout("Когорта для даты {$dateToProcess} успешно сохранена.\n", BaseConsole::FG_GREEN);
} else {
- $this->stdout("Нет данных для формирования когорты на дату {$startDate}.\n", BaseConsole::FG_RED);
+ $this->stdout("Нет данных для формирования когорты на дату {$dateToProcess}.\n", BaseConsole::FG_RED);
}
}
$stepsBack = $this->stepsBack ?? 0;
$messagesSettings = UsersMessageManagement::find()
- ->where(['active' => 1])
+ // ->where(['active' => 1])
->one();
$step2 = $messagesSettings ? $messagesSettings->day_before_step2 : 4;
continue;
}*/
- $kogortPhones = Users::formKogortByDateAndType($startDate, 'whatsapp');
+ $kogortPhones = Users::formKogortByDateAndType($dateToProcess, 'whatsapp');
if (!empty($kogortPhones)) {
- Users::saveKogort($kogortPhones, $startDate, SentKogort::KOGORT_NUMBERS['whatsapp']);
+ Users::saveKogort($kogortPhones, $dateToProcess, SentKogort::KOGORT_NUMBERS['whatsapp']);
$this->stdout(
- "Когорта для Вотсапа на дату {$startDate} успешно создана.\n",
+ "Когорта для Вотсапа на дату {$dateToProcess} успешно создана.\n",
BaseConsole::FG_GREEN
);
} else {
$this->stdout(
- "Нет данных для формирования когорты для Ватсапа на дату {$startDate}.\n",
+ "Нет данных для формирования когорты для Ватсапа на дату {$dateToProcess}.\n",
BaseConsole::FG_RED
);
}
$currentDate = $this->time ? date('Y-m-d', (int)$this->time) : date('Y-m-d');
$stepsBack = $this->stepsBack ?? 0;
$messagesSettings = UsersMessageManagement::find()
- ->where(['active' => 1])
+ // ->where(['active' => 1])
->one();
$step3 = $messagesSettings ? $messagesSettings->day_before_step3 : 2;
continue;
}*/
- $kogortPhones = Users::formKogortByDateAndType($startDate, 'call');
+ $kogortPhones = Users::formKogortByDateAndType($dateToProcess, 'call');
if (!empty($kogortPhones)) {
- Users::saveKogort($kogortPhones, $startDate, SentKogort::KOGORT_NUMBERS['call']);
+ Users::saveKogort($kogortPhones, $dateToProcess, SentKogort::KOGORT_NUMBERS['call']);
$this->stdout(
- "Когорта для Звонка на данную дату {$startDate} успешно создана.\n",
+ "Когорта для Звонка на данную дату {$dateToProcess} успешно создана.\n",
BaseConsole::FG_GREEN
);
} else {
$currentDate = strtotime('+1 day', $currentDate);
}
-
if (!$model) {
$model = new UsersMessageManagement();
$model->hold_active = 1;
$data = Users::prepareDataForExport($dataKogort, $date, $type);
$messagesSettings = UsersMessageManagement::find()
- ->where(['active' => 1])
+ // ->where(['active' => 1])
->one();
+ $message = '';
+
if($messagesSettings && $messagesSettings->{UsersMessageManagement::TYPE_MESSAGE[$type]}) {
$message = $messagesSettings->replaceShortcodes(
$messagesSettings->{UsersMessageManagement::TYPE_MESSAGE[$type]}
'dataProvider' => $dataProvider,
'date' => $date,
'type' => $type,
- 'message' => $message ?? '',
+ 'message' => $message,
]);
}
$monthDay = date('m-d', strtotime($startDate));
$messagesSettings = UsersMessageManagement::find()
- ->where(['active' => 1])
+ //->where(['active' => 1])
->one();
$step1 = $messagesSettings ? $messagesSettings->day_before_step1 : 10;
$monthDay = date('m-d', strtotime($startDate));
$messagesSettings = UsersMessageManagement::find()
- ->where(['active' => 1])
+ //->where(['active' => 1])
->one();
$hold = isset($messagesSettings->hold) ? $messagesSettings->hold : 10;
private static function processWhatsappKogort(array $targetPhones, string $startDate): array
{
$messagesSettings = UsersMessageManagement::find()
- ->where(['active' => 1])
+ // ->where(['active' => 1])
->one();
$step1 = $messagesSettings ? $messagesSettings->day_before_step1 : 10;
private static function processCallKogort(array $whatsappPhones, string $startDate): array
{
$messagesSettings = UsersMessageManagement::find()
- ->where(['active' => 1])
+ //->where(['active' => 1])
->one();
$step2 = $messagesSettings ? $messagesSettings->day_before_step2 : 4;
->where(['phone' => $user['phone']])
->exists() ? 1 : 0;
- $lastSale = Sales::find()
+ $query = Sales::find()
+ ->select([
+ 'lastSaleDate' => 'MAX(date)',
+ 'dealsCount' => 'COUNT(*)',
+ 'totalSum' => 'SUM(summ)'
+ ])
->where(['phone' => $user['phone']])
- ->orderBy(['date' => SORT_DESC])
+ ->asArray()
->one();
- $lastDate = $lastSale ? date('d-m-Y', strtotime($lastSale->date)) : 'нет данных';
-
- $dealsCount = Sales::find()
- ->where(['phone' => $user['phone']])
- ->count();
-
- $totalSum = Sales::find()
- ->where(['phone' => $user['phone']])
- ->sum('summ') ?? 0;
+ $lastDate = $query['lastSaleDate'] ? date('d-m-Y', strtotime($query['lastSaleDate'])) : 'нет данных';
+ $dealsCount = $query['dealsCount'] ?? 0;
+ $totalSum = $query['totalSum'] ?? 0;
$data[] = [
'phone' => $user['phone'],
public function getBonusAction()
{
- return $this->day_before_step1 + 1;
+ return (int)($this->day_before_step1) + 1;
}
public function getTestPhonesList()
<?php
use yii\helpers\Html;
use yii\helpers\Url;
-
-
+use yii_app\records\UsersMessageManagement;
+/* @var $model UsersMessageManagement */
/** @var array $links */
/** @var string $month */
/** @var string $year */
'links' => $links,
'month' => $month,
'year' => $year,
+ 'model' => $model,
]) ?>
</div>
}, $attributes);
array_unshift($columns, ['class' => 'yii\grid\SerialColumn']);
+if ($message == '') {
+ $message = Html::a('Нет сообщения для рассылки - сформируйте ее в интерфейсе', ['index'], ['class' => 'btn btn-link']);
+} else {
+ $message = Html::encode($message);
+}
?>
<?= Html::a('Назад', ['index'], ['class' => 'btn btn-primary m-5']) ?>
- <h1><?= Html::encode($this->title) ?>: <?= \yii_app\records\Users::KOGORT_TYPES[$type] ?> - <?= date('d-m-Y', strtotime($date)) ?></h1>
+ <h1><?= Html::encode($this->title) ?>: <?= \yii_app\records\Users::KOGORT_TYPES[$type] ?>
+ на <span style="color:red"><?= date('d-m-Y', strtotime($date)) ?></span></h1>
<div class="row mb-6">
</button>
</h2>
<div id="flush-collapseOne" class="accordion-collapse collapse" aria-labelledby="flush-headingOne" data-bs-parent="#accordionFlushExample">
- <div class="accordion-body card card-body border"><?= Html::encode($message) ?></div>
+ <div class="accordion-body card card-body border"><?= $message ?></div>
</div>
</div>