- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/recurring/entity/item/invoiceexist.php
- Класс: Bitrix\Crm\Recurring\Entity\Item\InvoiceExist
- Вызов: InvoiceExist::addExposingInvoice
protected function addExposingInvoice($fields, array $options = [])
{
$result = new Main\ORM\Data\AddResult();
$invoiceController = $this->getControllerInstance();
$reCalculateInvoice = false;
try
{
$newInvoiceId = $invoiceController->Add($fields, $reCalculateInvoice, $this->templateFields['LID']);
}
catch (Main\SystemException $exception)
{
$result->addError(new Main\Error($exception->getMessage(), $exception->getCode()));
return $result;
}
if ($newInvoiceId)
{
$responsibleId = (int)$fields['RESPONSIBLE_ID'];
if ($responsibleId > 0 && $options['RESET_HISTORY_CREATOR_ID'])
{
$notificationRaw = InvoiceChangeTable::getList([
'filter' => [
'ORDER_ID' => $newInvoiceId,
'TYPE' => 'ORDER_ADDED'
],
'select' => ['ID'],
'limit' => 1
]);
if ($notification = $notificationRaw->fetch())
{
InvoiceChangeTable::update($notification['ID'], ['USER_ID' => $responsibleId]);
}
}
$result->setId($newInvoiceId);
if (!empty($this->templateFields['REQUISITES']))
{
$requisiteInvoice = $this->templateFields['REQUISITES'];
EntityLink::register(
\CCrmOwnerType::Invoice,
$newInvoiceId,
$requisiteInvoice['REQUISITE_ID'],
$requisiteInvoice['BANK_DETAIL_ID'],
$requisiteInvoice['MC_REQUISITE_ID'],
$requisiteInvoice['MC_BANK_DETAIL_ID']
);
}
}
else
{
$result->addError(new Main\Error($invoiceController->LAST_ERROR));
}
return $result;
}