InvoiceExist::addExposingInvoice

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. InvoiceExist
  4. addExposingInvoice
  • Модуль: 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;
}

Добавить комментарий