- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/exchange/entity/orderimport.php
- Класс: BitrixSaleExchangeEntityOrderImport
- Вызов: OrderImport::fillTax
private function fillTax(Order $order, array $fields, $modifyTaxList)
{
if(isset($modifyTaxList))
{
/** @var SaleTax $tax */
$tax = $order->getTax();
$tax->resetTaxList();
/** @var SaleBasket $basket */
$basket = $order->getBasket();
$productVatData = static::getProductsVatRate($basket);
/** @var SaleBasketItem $basketItem */
foreach($basket as $basketItem)
{
$code = $basketItem->getBasketCode();
if(isset($modifyTaxList[$code]))
{
/*if($basketItem->getId()>0)
{
$this->setCollisions(EntityCollisionType::OrderBasketItemTaxValueError, $this->getEntity(), $basketItem->getField('NAME'));
}
else
{*/
$productVatFields = $productVatData[$basketItem->getBasketCode()];
if(!empty($productVatFields))
{
if($productVatFields['VAT_RATE'] <> $modifyTaxList[$code]['VAT_RATE'])
{
$this->setCollisions(EntityCollisionType::OrderBasketItemTaxValueError, $order, $basketItem->getField('NAME'));
}
}
//}
$basketItem->setField('VAT_RATE', $modifyTaxList[$code]['VAT_RATE']);
$basketItem->setField('VAT_INCLUDED', $modifyTaxList[$code]['VAT_INCLUDED']);
}
}
$tax->initTaxList($this->prepareFieldsTax($fields));
$order->refreshVat();
}
}