Мне кажется обмен старый. Разгрёб исходники, как минимум вижу различия в методах. Пересчёт НДС в update не работал из-за того, что price был одинаков (сам VAT_RATE при этом разный). В новой версии смотрю переделано. И также не попадает в if($criterion->equals($fields)) , с этим ещё не разобрался. Плюс ещё есть метод add(), то попадает в него, то не попадает, пока логику не уловил, но по идее это добавление чего-то, fillTax() в нём тоже есть.
Код |
---|
// нерабочая версия (importcriterion.php)
public function equalsBasketItemTax(Sale\BasketItem $basketItem, array $fields)
{
if($fields['TAX']['VAT_RATE'] != $basketItem->getVatRate() &&
($fields['TAX']['VAT_INCLUDED']<>'Y' && $fields['PRICE']<>$basketItem->getPrice())
)
{
return true;
}
return false;
}
// взято с более новой версии
public function equalsBasketItemTax(Sale\BasketItem $basketItem, array $fields)
{
if($fields['TAX']['VAT_RATE'] != $basketItem->getVatRate()
|| $fields['TAX']['VAT_INCLUDED']<>$basketItem->getField('VAT_INCLUDED'))
{
return true;
}
return false;
}
|