3namespace Bitrix\Bizproc\Workflow\Entity;
5use Bitrix\Main\Application;
6use Bitrix\Main\Entity\ExpressionField;
7use Bitrix\Main\ORM\Data\DataManager;
8use Bitrix\Main\ORM\Fields\IntegerField;
9use Bitrix\Main\ORM\Fields\StringField;
10use Bitrix\Main\ORM\Fields\DatetimeField;
11use Bitrix\Main\Type\DateTime;
37 return 'b_bp_workflow_user_comment';
51 ->configureNullable(
false)
54 ->configureNullable(
false)
55 ->configureDefaultValue(0)
58 ->configureNullable(
false)
66 int $commentType = self::COMMENT_TYPE_DEFAULT
73 $tableName = static::getTableName();
76 'WORKFLOW_ID' => $workflowId,
78 'MODIFIED' => $modified,
79 'LAST_TYPE' => $commentType,
82 'UNREAD_CNT' => new \Bitrix\Main\DB\SqlExpression(
'?#.?# + ?i', $tableName,
'UNREAD_CNT', 1),
83 'MODIFIED' => $modified,
84 'LAST_TYPE' => $commentType,
96 $queries = $sqlHelper->prepareMerge($tableName, $primary, $insert, $update);
98 foreach ($queries as
$query)
107 $rows = static::getList([
109 '=WORKFLOW_ID' => $workflowId,
110 '=MODIFIED' => $modified,
112 'select' => [
'USER_ID',
'UNREAD_CNT'],
115 foreach (
$rows as $row)
118 'WORKFLOW_ID' => $workflowId,
119 'USER_ID' => $row[
'USER_ID'],
121 if ($row[
'UNREAD_CNT'] <= 1)
123 static::delete(
$key);
128 static::update(
$key, [
134 static fn ($row) => (
int)$row[
'USER_ID'],
141 $rows = static::query()
143 ->setSelect([
'WORKFLOW_ID'])
147 $workflowIds = array_column(
$rows,
'WORKFLOW_ID');
155 ->whereIn(
'WORKFLOW_ID', $workflowIds)
157 ->setSelect([
'WORKFLOW_ID'])
160 $realIds = array_column($workflowRows,
'WORKFLOW_ID');
161 $oldIds = array_diff($workflowIds, $realIds);
163 foreach ($oldIds as $id)
167 'WORKFLOW_ID' => $id,
174 $row = static::query()
180 return (
int)($row[
'SUM'] ?? 0);
186 ->setSelect([
'USER_ID',
'WORKFLOW_ID'])
187 ->setFilter([
'=WORKFLOW_ID' => $workflowId])
193 static::delete($row);
203 'WORKFLOW_ID' => $workflowId,
if(!is_object($USER)||! $USER->IsAuthorized()) $userId
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
if(empty($signedUserToken)) $key