static function getListByType()
{
$list = [
[
'CODE' => 'birthday',
'SEGMENT_CODES' => ['case_crm_client_birthday', 'case_crm_lead_birthday'],
'HINT' => Loc::getMessage('SENDER_PRESET_TEMPLATE_RC_HINT_EVERY_DAY'),
'DISPATCH' => [
'METHOD_CODE' => DispatchMethod::SCHEDULE,
'TIMES_OF_DAY' => '09:00',
'DAYS_OF_WEEK' => "1,2,3,4,5,6,7",
]
],
[
'CODE' => 'nps',
'SEGMENT_CODES' => ['case_crm_client_aft_deal_clo'],
'HINT' => Loc::getMessage('SENDER_PRESET_TEMPLATE_RC_HINT_NPS'),
'DISPATCH' => [
'METHOD_CODE' => DispatchMethod::SCHEDULE,
'TIMES_OF_DAY' => '09:00',
'DAYS_OF_WEEK' => "1,2,3,4,5,6,7",
]
],
];
foreach ($list as $index => $item)
{
$code = mb_strtoupper($item['CODE']);
$msgPrefix = 'SENDER_PRESET_TEMPLATE_RC_' . $code . '_';
foreach (['NAME', 'DESC', 'TITLE', 'TEXT'] as $key)
{
$item[$key] = Loc::getMessage($msgPrefix . $key);
}
$list[$index] = $item;
}
foreach (Holiday::getList() as $holiday)
{
$code = $holiday->getCode();
$name = $holiday->getName();
$formattedDate = $holiday->formatDate();
$item = [
'CODE' => $holiday->getCode(),
'SEGMENT_CODES' => ["case_crm_client_$code"],
'HINT' => Loc::getMessage(
'SENDER_PRESET_TEMPLATE_RC_HINT_ONE_DAY',
[
'%run_date%' => PrettyDate::formatDate($holiday->getDateFrom()),
'%date_from%' => PrettyDate::formatDate($holiday->getDateFrom()),
'%date_to%' => PrettyDate::formatDate($holiday->getDateTo()),
]
),
'DISPATCH' => [
'METHOD_CODE' => DispatchMethod::SCHEDULE,
'TIMES_OF_DAY' => '09:00',
'DAYS_OF_WEEK' => "1,2,3,4,5,6,7",
'DAYS_OF_MONTH' => $holiday->getDay(),
'MONTHS_OF_YEAR' => $holiday->getMonth(),
]
];
$msgPrefix = "SENDER_PRESET_TEMPLATE_RC_HOLIDAY_";
foreach (['NAME', 'DESC', 'TITLE', 'TEXT'] as $key)
{
$item[$key] = Loc::getMessage(
$msgPrefix . $key,
[
'%holiday_name%' => $name,
'%holiday_date%' => $formattedDate,
]
);
$item[$key] = Texts::replace($item[$key] ?? '');
}
$list[] = $item;
}
return $list;
}