Закупка состоит из несколько строк (~10). На все строчки вычисляется НДС (18%). Цену и конечная сумма в `EUR`-валюте. Валюта компании - `LVL` (то есть разные).
При постинге - в LedgerTrans на 0.01 сумма-MST (транзакция типа `TAX`) отличается от общей суммы TaxTrans-MST.
Как я понял, постинг проишодит по CUR, а MST идет рядом, как перечисленная от своей строчки. - в общем некрасиво получается -
отчеты не правильныe ;(
Да и при постинги самого PurchInvoice бидно в предварителном НДС просмотре - что суммы совсем разные - из одной суммы нельзя вычислить другую по курсу валюты (из CUR->MST, и MST->CUR)... где-то что-то округляется некрасиво :|
Может кто-то уже решал эту проблему?
Спасибо!
EXAMPLE:
Код:
static void Job2(Args _args)
{
Voucher v = '400002874';
TaxTrans taxTrans;
AmountMST aSeparate, aCurrentMST, aTotalCur;
CurrencyCode cc;
TransDate td;
;
while select taxTrans
where taxTrans.Voucher == v
&& taxTrans.TaxCode == "P_EU1"
{
aTotalCur += taxTrans.SourceTaxAmountCur;
aCurrentMST = Currency::amountCur2MST(taxTrans.SourceTaxAmountCur, taxTrans.SourceCurrencyCode, 0, taxTrans.TransDate);
aSeparate += aCurrentMST;
cc = taxTrans.SourceCurrencyCode;
td = taxTrans.TransDate;
trace( "Cur = %1 Mst %2", taxTrans.SourceTaxAmountCur, aCurrentMST );
}
trace( "Separate converting (CUR->MST)= %1", aSeparate );
trace( "Converting Totals (CUR->MST) = %1", Currency::amountCur2MST(aTotalCur, cc, 0, td) );
}
RESULT:
Код:
Info Cur = 82,01 Mst 57,64
Info Cur = 47,21 Mst 33,18
Info Cur = 54,43 Mst 38,25
Info Cur = 16,47 Mst 11,58
Info Cur = 66,37 Mst 46,65
Info Cur = 45,86 Mst 32,23
Info Cur = 150,68 Mst 105,90
Info Cur = 101,78 Mst 71,53
Info Separate converting (CUR->MST)= 396,96
Info Converting Totals (CUR->MST) = 396,95
Вот в этом-то и вся проблема - один отчет (LedgerAccountStatement) и другой отчет (EUSalesTaxList) исползуют разний подход в подсчете...
В LedgerTrans хранится одно число (396.96) на все НДС, а в TaxTrans - несколько транзакций...