stephanstapel/ZUGFeRD-csharp

X-Rechnung 3.1 UBL for Deutsche Bahn - net unit price rounding

Closed this issue · 2 comments

broken down from #254, submitted by @goedo

InvoiceDescriptor22Writer.cs, 340

                    //_writeOptionalAmount(Writer, "ram:ChargeAmount", tradeLineItem.NetUnitPrice, 4);
                    _writeOptionalAmount(Writer, "ram:ChargeAmount", tradeLineItem.NetUnitPrice, 2);//roger
(I had to group by VAT, otherwise I had one VAT line per allowance on the invoice...)

InvoiceDescriptor22Writer.cs, later

                    //_writeOptionalAmount(Writer, "ram:ChargeAmount", tradeLineItem.NetUnitPrice, 4);
                    _writeOptionalAmount(Writer, "ram:ChargeAmount", tradeLineItem.NetUnitPrice, 2);//roger

InvoiceDescriptor22Writer.cs, later

                //roger
                if (tradeLineItem.LineTotalAmount.HasValue)
                {
                    Writer.WriteStartElement("ram:BasisAmount", profile: Profile.Extended); // not in XRechnung, according to CII-SR-123
                    Writer.WriteValue(_formatDecimal(tradeLineItem.LineTotalAmount.Value, 2));
                    Writer.WriteEndElement();
                }

rounding rules from EN16931
#131

ZUGFeRD:
grafik

See #255

                //_writeOptionalAmount(Writer, "ram:ChargeAmount", tradeLineItem.NetUnitPrice, 4); //roger
                _writeOptionalAmount(Writer, "ram:ChargeAmount", tradeLineItem.NetUnitPrice, 2);//roger