Я использую профиль «XRechnung». Это работает нормально.
Но есть неточности в округлении:
mustanglib вычисляет НДС и суммирует себя.
Теперь проблема в следующем:
У нас есть цена с учетом НДС, например 120 евро.
Мы рассчитываем 7,85 как НДС.
Когда у нас большое количество, например 250, мы получаем проблему:
Нам нравится иметь ровно 7,85 * 250 в качестве НДС и ровно 120 * 250 в качестве общей суммы.
Но на выходе мы получаем на несколько центов больше:
GrandTotal в xml равен 30000,13
Похоже, что он суммирует цену без НДС, а затем снова рассчитывает цену с НДС.
Поэтому я попытался установить значение суммы явно, используя CalculatedInvoice. Я попробовал:
.
Код: Выделить всё
void fillSums(CalculatedInvoice xInvoice, InputData invoiceData) {
xInvoice.calculate();
xInvoice.setLineTotalAmount(euroPriceOfCents(invoiceData.getInvoiceTotal()));
xInvoice.setGrandTotal(euroPriceOfCents(invoiceData.getInvoiceTotal()));
xInvoice.setTaxBasis(euroPriceOfCents(invoiceData.getInvoiceTaxValue()));
xInvoice.setDuePayable(euroPriceOfCents(invoiceData.getInvoiceTotal());
}