2namespace Bitrix\Sale\Integration\Numerator;
4use Bitrix\Main\Entity\ExpressionField;
5use Bitrix\Main\Localization\Loc;
6use Bitrix\Main\Numerator\Generator\Contract\DynamicConfigurable;
7use Bitrix\Main\Numerator\Generator\NumberGenerator;
8use Bitrix\Sale\Internals\OrderTable;
9use Bitrix\Sale\Internals\OrderArchiveTable;
10use Bitrix\Sale\Registry;
26 static::getPatternFor(static::TEMPLATE_WORD_USER_ID_ORDERS_COUNT),
34 static::getPatternFor(static::TEMPLATE_WORD_USER_ID_ORDERS_COUNT)
35 => Loc::getMessage(
'BITRIX_SALE_INTEGRATION_NUMERATOR_ORDERUSERORDERSNUMBERGENERATOR_WORD_USER_ID_ORDERS_COUNT'),
52 return OrderTable::class;
60 $userIdOfOrder = $tableName::query()
61 ->addSelect(
'USER_ID')
62 ->where(
'ID', $this->orderId)
68 $userIdOfOrder = intval($userIdOfOrder[
'USER_ID']);
69 $countArchiveOrderOfUser = OrderArchiveTable::query()
70 ->addSelect(
'ORDERS_COUNT')
71 ->registerRuntimeField(
77 ->where(
'USER_ID', $userIdOfOrder)
81 $countArchiveOrderOfUser = (int)$countArchiveOrderOfUser[
'ORDERS_COUNT'];
83 $countOrderOfUser = $tableName::query()
84 ->addSelect(
'ORDERS_COUNT')
85 ->registerRuntimeField(
91 ->where(
'USER_ID', $userIdOfOrder)
96 $countOrderOfUser = (int)$countOrderOfUser[
'ORDERS_COUNT'] + $countArchiveOrderOfUser;
97 $numID = ($countOrderOfUser > 0) ? $countOrderOfUser : 1;
98 $value = $userIdOfOrder .
"_" . $numID;
115 $this->orderId =
$config[
'ORDER_ID'];
static getPatternFor($word)
const TEMPLATE_WORD_USER_ID_ORDERS_COUNT
static getAvailableForType()
static getTemplateWordsForParse()
setDynamicConfig($config)
static getTemplateWordsSettings()
const REGISTRY_TYPE_ORDER