\Bitrix\Main\EventManager::getInstance()->addEventHandler('sale', 'OnSaleStatusOrderChange', ['Handler', 'OnSaleStatusOrderChange']);
class Handler {
function OnSaleStatusOrderChange($event)
{
$parameters = $event->getParameters();
if ($parameters['VALUE'] === 'F')
{
/** @var \Bitrix\Sale\Order $order */
$order = $parameters['ENTITY'];
/**
*
* Your code is here
*
*/
}
return new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::SUCCESS
);
}
}
\Bitrix\Main\Loader::includeModule('sale');
$historyEntityType = 'ORDER'; //В данном случае для заказа
$historyType = 'ORDER_COMMENTED'; //Нужный тип можно посмотеть в классе \CSaleOrderChangeFormat в $operationTypes
$order = \Bitrix\Sale\Order::load($orderId);
\Bitrix\Sale\OrderHistory::addAction(
$historyEntityType,
$order->getId(),
$historyType,
$order->getId(),
$order,
['COMMENTS' => 'Новый комментарий']
);
$order->save();
\Bitrix\Main\Loader::includeModule('sale');
$date = new \Bitrix\Main\Type\Date();
$date->add('-2 year');
$userDataByOrders = \Bitrix\Sale\Order::getList([
'filter' => ['>DATE_INSERT' => $date->toString()],
'select' => ['USER_ID', 'USER_INFO_' => 'USER'],
'group' => ['USER_ID']
]);
$userData = $userDataByOrders->fetchAll();
Весь проект сейчас размещается в двух датацентрах.
...
База в каждом ДЦ является мастером относительно слейва во втором ДЦ и одновременно слейвом — относительно мастера.
Важные настройки в MySQL для реализации этого механизма — auto_increment_increment и
auto_increment_offset. Они задают смещения значений для полей auto_increment — для того, чтобы избежать дублирования записей. Грубо говоря, в одном мастере — только четные ID, в другом — только нечетные.
element = document.querySelector('.child');
element.onclick = function(event)
{
event.stopPropagation();
};
Bitrix\Main\EventManager::getInstance()->addEventHandler(
'main',
'OnBeforeEventSend',
['TemplateModifier', 'onBeforeEventSend']
);
class TemplateModifier {
function onBeforeEventSend(&$fields, &$templateData)
{
$message = $templateData["MESSAGE"];
if(strpos($message,'#CUSTOM_VARIABLE#') !== false)
{
$fields['CUSTOM_VARIABLE'] = "значение своей переменной";
}
}
}
$orderData = \Bitrix\Sale\Order::getList([
'select' => ['ID'],
'filter' => ['=USER_ID' => $USER->GetID()],
'order' => ['ID' => 'DESC'],
'limit' => 1
]);
if ($order = $orderData->fetch())
{
$lastOrderId = $order['ID'];
}