• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/recurring/entity/item/invoicenew.php
  • Класс: Bitrix\Crm\Recurring\Entity\Item\InvoiceNew
  • Вызов: InvoiceNew::save
public function save()
{
	$result = new Main\Result();
	if ((int)($this->templateId) <= 0 && empty($this->templateFields))
	{
		$result->addError(new Main\Error('Error saving. Template invoice ID is empty.'));
		return $result;
	}

	if (!empty($this->templateFields))
	{
		$r = $this->saveInvoiceTemplate();
		if (!$r->isSuccess())
		{
			return $r;
		}
	}

	$addResult = InvoiceRecurTable::add($this->recurringFields);
	if ($addResult->isSuccess())
	{
		$this->id = $addResult->getId();
		$result->setData([
			'ID' => $this->id,
			'INVOICE_ID' => $this->templateId,
		]);
		$eventFields = $this->recurringFields;
		$eventFields['ID'] = $this->id;

		Manager::initCheckAgent(Manager::INVOICE);

		$event = new Main\Event("crm", static::ON_INVOICE_RECURRING_ADD_EVENT, $eventFields);
		$event->send();

		$entityModifyFields = [
			'TYPE' => \CCrmOwnerType::InvoiceRecurringName,
			'ID' => $this->id,
			'FIELDS' => $eventFields
		];
		$event = new Main\Event("crm", static::ON_CRM_ENTITY_RECURRING_MODIFY, $entityModifyFields);
		$event->send();
	}

	return $result;
}