- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/timeline/storedocumentcontroller.php
- Класс: Bitrix\Crm\Timeline\StoreDocumentController
- Вызов: StoreDocumentController::onTotalModify
private function onTotalModify($documentId, $updatedFields, $oldFields, $bindings)
{
$historyEntryID = null;
if (!isset($updatedFields['TOTAL']) && !isset($updatedFields['CURRENCY']))
{
return;
}
$oldTotal = $oldFields['TOTAL'];
$newTotal = $updatedFields['TOTAL'];
$oldCurrency = $oldFields['CURRENCY'];
$newCurrency = $updatedFields['CURRENCY'];
if ((float)$oldTotal === (float)$newTotal && $oldCurrency === $newCurrency)
{
return;
}
if (!isset($newTotal, $newCurrency))
{
$documentInfo = StoreDocumentTable::getList(['select' => ['TOTAL', 'CURRENCY'], 'filter' => ['=ID' => $documentId], 'limit' => 1])->fetch();
if (!isset($newCurrency))
{
$newCurrency = $documentInfo['CURRENCY'];
}
if (!isset($newTotal))
{
$newTotal = $documentInfo['TOTAL'];
}
}
$authorID = self::resolveEditorID($updatedFields);
$historyEntryID = StoreDocumentEntry::create(
[
'TYPE_CATEGORY_ID' => TimelineType::MODIFICATION,
'ENTITY_TYPE_ID' => \CCrmOwnerType::StoreDocument,
'ENTITY_ID' => $documentId,
'AUTHOR_ID' => $authorID,
'SETTINGS' => [
'FIELD' => 'TOTAL',
'TOTAL' => $newTotal,
'CURRENCY' => $newCurrency,
],
'BINDINGS' => $bindings
]
);
foreach ($bindings as $binding)
{
$this->sendPullEventOnAdd(
new \Bitrix\Crm\ItemIdentifier($binding['ENTITY_TYPE_ID'], $binding['ENTITY_ID']),
$historyEntryID
);
}
}