- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/cashbox/check.php
- Класс: BitrixSaleCashboxCheck
- Вызов: Check::extractDataFromBasketItem
private function extractDataFromBasketItem(BasketItem $basketItem) : array
{
static $shopPrices = [];
$order = $basketItem->getBasket()->getOrder();
if ($order)
{
$discounts = $order->getDiscount();
if (!$shopPrices)
{
$shopPrices = $discounts->getShowPrices();
}
}
$basketCode = $basketItem->getBasketCode();
if (!empty($shopPrices['BASKET'][$basketCode]))
{
$basketItem->setFieldNoDemand('BASE_PRICE', $shopPrices['BASKET'][$basketCode]['SHOW_BASE_PRICE']);
$basketItem->setFieldNoDemand('PRICE', $shopPrices['BASKET'][$basketCode]['SHOW_PRICE']);
$basketItem->setFieldNoDemand('DISCOUNT_PRICE', $shopPrices['BASKET'][$basketCode]['SHOW_DISCOUNT']);
}
unset($basketCode);
$data = [
'ENTITY' => $basketItem,
'PRODUCT_ID' => $basketItem->getProductId(),
'NAME' => $basketItem->getField('NAME'),
'BASE_PRICE' => $basketItem->getBasePriceWithVat(),
'PRICE' => $basketItem->getPriceWithVat(),
'SUM' => $basketItem->getFinalPrice(),
'CURRENCY' => $basketItem->getCurrency(),
'QUANTITY' => (float)$basketItem->getQuantity(),
'MEASURE_CODE' => $basketItem->getField('MEASURE_CODE'),
'VAT' => $this->getProductVatId($basketItem),
'PAYMENT_OBJECT' => $this->getPaymentObject($basketItem),
];
if ($order)
{
$siteId = $order->getSiteId();
$propertiesCodes = ['ARTNUMBER'];
$itemProperties = self::getCatalogPropertiesForItem($basketItem->getProductId(), $propertiesCodes, $siteId);
$data['PROPERTIES'] = $itemProperties;
}
else
{
$data['PROPERTIES'] = [];
}
if ($basketItem->isCustomPrice())
{
$data['BASE_PRICE'] = $basketItem->getPriceWithVat();
}
else
{
if ((float)$basketItem->getDiscountPrice() != 0)
{
$data['DISCOUNT'] = [
'PRICE' => (float)$basketItem->getDiscountPrice(),
'TYPE' => 'C',
];
}
}
return $data;
}