|
|
#1 |
|
Участник
|
Баг в корректировке пошлины по разделу ГТД. DAX 2009
Наткнулся на ошибку в алгоритме распределения таможенной пошлины по строкам раздела в функции "Корректировать пошлину по разделу".
\Classes\CustomJournalCalc_RU\correctDutyPartition Код: remainDutyAmount -= customJournalTrans.InvoiceDuty;
if (remainDutyAmount <= Currency::find(customCurrencyCode).RoundOffAmount)
{
customJournalTrans.InvoiceDuty += remainDutyAmount;
}Если строк в разделе много, то в декрементируемой переменной remainDutyAmount может остаться значение, превышающее настройку округления для валюты. Соответственно, этот остаток не будет распределен по строкам и попросту потеряется... Вместо этого блока после цикла по строкам вставил такой кусок: Код: if (remainDutyAmount != 0)
{
select firstonly forupdate customJournalTrans
where customJournalTrans.CustomJournalId == _customJournalTrans.CustomJournalId &&
customJournalTrans.CustomPartition == _customJournalTrans.CustomPartition;
customJournalTrans.InvoiceDuty += remainDutyAmount;
customJournalTrans.update();
} |
|
|
|
|
|