- Модуль: 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;
}