• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/exchange/importonecpackagesale.php
  • Класс: BitrixSaleExchangeImportOneCPackageSale
  • Вызов: ImportOneCPackageSale::UpdateCashBoxChecks
protected function UpdateCashBoxChecks(OrderImport $orderImport, array $items)
{
	$result = new Result();
	$bCheckUpdated = false;

	$order = $orderImport->getEntity();

	foreach ($items as $item)
	{
		/** @var PaymentImport $item */

		if($item->getOwnerTypeId() == static::getPaymentCashEntityTypeId() ||
			$item->getOwnerTypeId() == static::getPaymentCashLessEntityTypeId() ||
			$item->getOwnerTypeId() == static::getPaymentCardEntityTypeId()
		)
		{
			/** @var  $params */
			$params = $item->getFieldValues();
			static::load($item, $params['TRAITS'], $order);

			if($item->getEntityId()>0)
			{
				$entity = $item->getEntity();

				if(isset($params['CASH_BOX_CHECKS']))
				{
					$fields = $params['CASH_BOX_CHECKS'];

					if($fields['ID']>0)
					{
						$res = CashboxCheckTable::getById($fields['ID']);
						if ($data = $res->fetch())
						{
							if($data['STATUS']<>'Y')
							{
								$applyResult = Cashbox1C::applyCheckResult($params['CASH_BOX_CHECKS']);
								$bCheckUpdated = $applyResult->isSuccess();
							}
						}
						else
						{
							$item->setCollisions(EntityCollisionType::PaymentCashBoxCheckNotFound, $entity);
						}
					}
				}
			}
		}
	}

	/** @var OneCCollisionOrder $collision */
	$collision = $orderImport->getCurrentCollision(EntityType::ORDER);
	$collisionTypes = $collision->getCollision($orderImport);

	if(count($collisionTypes)>0 && $bCheckUpdated)
	{
		return $result;
	}
	else
	{
		$result->addError(new Error('', 'CASH_BOX_CHECK_IGNORE'));
	}

	return $result;
}