- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/exchange/onec/documentbase.php
- Класс: BitrixSaleExchangeOneCDocumentBase
- Вызов: DocumentBase::fillItemsFields
static function fillItemsFields(array $fields)
{
$result = null;
$basketItems = array();
foreach($fields['ITEMS_FIELDS'] as $item)
{
$priceone = $item['PRICE_PER_UNIT'];
if (DoubleVal($priceone) <= 0)
$priceone = $item["PRICE_ONE"];
$discountPrice = "";
if (doubleval($item['QUANTITY']) > 0)
{
$price = PriceMaths::roundPrecision($item['SUMM'] / $item['QUANTITY']);
$priceone = PriceMaths::roundPrecision($priceone);
if(isset($item['DISCOUNTS']['SUMM']) && $item['DISCOUNTS']['SUMM']<>'')
{
if ($priceone != $price)
{
$discountPrice = DoubleVal($priceone - $price);
}
}
elseif ($priceone > 0)
{
$price = $priceone;
}
$vatRate = null;
if (!empty($item['TAXES']['TAX_VALUE']))
{
$taxValue = (float)$item['TAXES']['TAX_VALUE'];
$vatRate = $taxValue / 100;
}
$basketItems = Array(
'ID' => $item['ID'],
'NAME' => $item['NAME'],
'PRICE' => $price,
'PRICE_ONE' => $priceone,
'QUANTITY' => $item['QUANTITY'],
'TYPE' => $item['REK_VALUES']['ITEM_TYPE'],
'MEASURE_CODE' => !empty($item['ITEM_UNIT']) ? $item['ITEM_UNIT']['ITEM_UNIT_CODE']:null,
'MEASURE_NAME' => !empty($item['ITEM_UNIT']) ? $item['ITEM_UNIT']['ITEM_UNIT_NAME']:null,
'ATTRIBUTES' => !empty($item['REK_VALUES']['PROP_BASKET']) ? $item['REK_VALUES']['PROP_BASKET']:null,
'MARKING_GROUP' => !empty($item['MARKING_GROUP']['CODE']) ? $item['MARKING_GROUP']['CODE']:null,
'MARKINGS' => !empty($item['MARKINGS']) ? $item['MARKINGS']:null,
'TAX' => array(
'VAT_RATE' => $vatRate,
'VAT_INCLUDED' => !empty($item['TAXES']['IN_PRICE']) ? $item['TAXES']['IN_PRICE'] : 'Y'//if tax is null then always included by default
),
'DISCOUNT' => array(
'PRICE' => $discountPrice
)
);
}
$result[][$item['ID']] = $basketItems;
}
return $result;
}