8namespace Bitrix\Sender;
10use Bitrix\Main\DB\SqlExpression;
11use Bitrix\Main\Entity;
12use Bitrix\Main\Entity\ReferenceField;
13use Bitrix\Main\Localization\Loc;
14use Bitrix\Main\ORM\Query\Query;
16use Bitrix\Sender\Internals\Model\GroupCounterTable;
17use Bitrix\Sender\Posting\SegmentDataBuilder;
19Loc::loadMessages(__FILE__);
32 return 'b_sender_group';
42 'data_type' =>
'integer',
44 'autocomplete' =>
true,
47 'data_type' =>
'string',
48 'validation' =>
function ()
56 'data_type' =>
'string',
58 'title' => Loc::getMessage(
'SENDER_ENTITY_GROUP_FIELD_TITLE_NAME')
60 'DATE_INSERT' =>
array(
61 'data_type' =>
'datetime',
65 'DATE_UPDATE' =>
array(
66 'data_type' =>
'datetime',
71 'data_type' =>
'datetime',
73 'DATE_USE_EXCLUDE' =>
array(
74 'data_type' =>
'datetime',
77 'data_type' =>
'boolean',
79 'default_value' =>
'Y',
80 'values' =>
array(
'N',
'Y'),
83 'data_type' =>
'boolean',
85 'default_value' =>
'N',
86 'values' =>
array(
'N',
'Y'),
89 'data_type' =>
'boolean',
91 'default_value' =>
'N',
92 'values' =>
array(
'N',
'Y'),
94 'DESCRIPTION' =>
array(
95 'data_type' =>
'string',
96 'title' => Loc::getMessage(
'SENDER_ENTITY_GROUP_FIELD_TITLE_DESCRIPTION'),
97 'validation' =>
array(__CLASS__,
'validateDescription'),
100 'data_type' =>
'integer',
102 'default_value' => 100,
103 'title' => Loc::getMessage(
'SENDER_ENTITY_GROUP_FIELD_TITLE_SORT')
105 'ADDRESS_COUNT' =>
array(
106 'data_type' =>
'integer',
107 'default_value' => 0,
110 'USE_COUNT' =>
array(
111 'data_type' =>
'integer',
112 'default_value' => 0,
115 'USE_COUNT_EXCLUDE' =>
array(
116 'data_type' =>
'integer',
117 'default_value' => 0,
120 'GROUP_CONNECTOR' =>
array(
121 'data_type' =>
'Bitrix\Sender\GroupConnectorTable',
122 'reference' =>
array(
'=this.ID' =>
'ref.GROUP_ID'),
124 'MAILING_GROUP' =>
array(
125 'data_type' =>
'Bitrix\Sender\MailingGroupTable',
126 'reference' =>
array(
'=this.ID' =>
'ref.GROUP_ID'),
128 'DEAL_CATEGORY' =>
new ReferenceField(
130 GroupDealCategoryTable::class,
132 '=this.ID' =>
'ref.GROUP_ID',
134 [
'join_type' =>
'LEFT']
137 'data_type' =>
'string',
138 'default_value' => self::STATUS_NEW,
141 self::STATUS_IN_PROGRESS,
142 self::STATUS_READY_TO_USE,
170 $primary =
array(
'GROUP_ID' =>
$data[
'primary'][
'ID']);
172 GroupCounterTable::deleteList($primary);
173 SegmentDataBuilder::clearGroupBuilding((
int)
$data[
'primary'][
'ID']);
183 if (array_key_exists(
'DATE_UPDATE',
$data[
'fields']))
189 if (array_key_exists(
'CODE',
$data[
'fields']) && is_null(
$data[
'fields'][
'CODE']))
207 return 'b_sender_group_connector';
217 'data_type' =>
'integer',
221 'data_type' =>
'string',
224 'data_type' =>
'string',
226 'serialized' =>
true,
228 'ADDRESS_COUNT' =>
array(
229 'data_type' =>
'integer',
230 'default_value' => 0,
233 'data_type' =>
'Bitrix\Sender\GroupTable',
234 'reference' =>
array(
'=this.GROUP_ID' =>
'ref.ID'),
236 'FILTER_ID' =>
array(
237 'data_type' =>
'string',
247 $groupId =
$data[
'fields'][
'GROUP_ID'];
249 SegmentDataBuilder::actualize($groupId,
false);
279 return 'b_sender_group_deal_category';
289 'data_type' =>
'integer',
293 'data_type' =>
'Bitrix\Sender\GroupTable',
294 'reference' =>
array(
'=this.GROUP_ID' =>
'ref.ID'),
296 'DEAL_CATEGORY_ID' =>
array(
297 'data_type' =>
'integer',
316 \CTimeZone::disable();
318 'DELETE FROM %s WHERE %s',
323 \CTimeZone::enable();
static onAfterUpdate(Entity\Event $event)
static deleteList(array $filter)
static onBeforeUpdate(Entity\Event $event)
static validateDescription()
static onAfterDelete(Entity\Event $event)
const STATUS_READY_TO_USE
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)