• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/cashbox/cashboxcheckbox.php
  • Класс: BitrixSaleCashboxCashboxCheckbox
  • Вызов: CashboxCheckbox::buildCheckQuery
public function buildCheckQuery(Check $check)
{
	$checkData = $check->getDataForCheck();

	$isReturn = self::isCheckReturn($check);

	$goods = [];
	foreach ($checkData['items'] as $item)
	{
		$goodEntry = [];

		$itemId = $item['entity']->getField('PRODUCT_ID');
		$code = $item['properties']['ARTNUMBER'];
		if (!$code)
		{
			$code = $itemId;
		}
		if (!$code)
		{
			$code = 'delivery' . $item['entity']->getField('ID');
		}

		$vat = $this->getValueFromSettings('VAT', $item['vat']);
		$goodEntry['good'] = [
			'code' => mb_substr($code, 0, static::MAX_CODE_LENGTH),
			'name' => mb_substr($item['name'], 0, static::MAX_NAME_LENGTH),
			'price' => PriceMaths::roundPrecision($item['price'] * static::PRICE_MULTIPLIER),
		];

		if ($vat && $vat !== static::CODE_NO_VAT)
		{
			$goodEntry['good']['tax'] = [$vat];
		}

		if ($item['barcode'])
		{
			$goodEntry['good']['barcode'] = $item['barcode'];
		}

		$goodEntry['quantity'] = $item['quantity'] * static::QUANTITY_MULTIPLIER;
		$goodEntry['is_return'] = $isReturn;
		$goods[] = $goodEntry;
	}

	$delivery = [];

	if ($checkData['client_email'])
	{
		$delivery['email'] = $checkData['client_email'];
	}

	$payments = [];
	foreach ($checkData['payments'] as $payment)
	{
		$paymentType = $payment['type'] === Check::PAYMENT_TYPE_CASH ? 'CASH' : 'CARD';
		$paymentEntry = [
			'type' => $paymentType,
			'value' => PriceMaths::roundPrecision($payment['sum'] * static::PRICE_MULTIPLIER),
		];
		$payments[] = $paymentEntry;
	}

	$result = [
		'goods' => $goods,
		'delivery' => $delivery,
		'payments' => $payments,
	];

	return $result;
}