Skip to content

Commit 8331733

Browse files
committed
decimal code optimization for ZUGFeRD 2.0
1 parent 632b768 commit 8331733

File tree

2 files changed

+6
-13
lines changed

2 files changed

+6
-13
lines changed

ZUGFeRD/IInvoiceDescriptorReader.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ protected XmlNamespaceManager _GenerateNamespaceManagerFromNode(XmlNode node)
8080

8181
protected bool _IsReadableByThisReaderVersion(Stream stream, IList<string> validURIs)
8282
{
83-
long _oldStreamPosition = stream.Position;
83+
long oldStreamPosition = stream.Position;
8484
stream.Position = 0;
8585
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8, true, 1024, true))
8686
{
@@ -89,14 +89,14 @@ protected bool _IsReadableByThisReaderVersion(Stream stream, IList<string> valid
8989
{
9090
if (data.IndexOf(String.Format(">{0}<", validURI), StringComparison.OrdinalIgnoreCase) >= 0)
9191
{
92-
stream.Position = _oldStreamPosition;
92+
stream.Position = oldStreamPosition;
9393
return true;
9494
}
9595
}
9696
}
9797

98-
stream.Position = _oldStreamPosition;
98+
stream.Position = oldStreamPosition;
9999
return false;
100100
} // !_IsReadableByThisReaderVersion()
101101
}
102-
}
102+
}

ZUGFeRD/InvoiceDescriptor20Writer.cs

+2-9
Original file line numberDiff line numberDiff line change
@@ -299,15 +299,8 @@ public override void Save(InvoiceDescriptor descriptor, Stream stream, ZUGFeRDFo
299299
Writer.WriteElementString("udt", "Indicator", tradeAllowanceCharge.ChargeIndicator ? "true" : "false");
300300
Writer.WriteEndElement(); // !ram:ChargeIndicator
301301

302-
if (tradeAllowanceCharge.BasisAmount.HasValue)
303-
{
304-
Writer.WriteStartElement("ram", "BasisAmount");
305-
Writer.WriteValue(_formatDecimal(tradeAllowanceCharge.BasisAmount.Value, 4)); // BT-X-35
306-
Writer.WriteEndElement();
307-
}
308-
Writer.WriteStartElement("ram", "ActualAmount");
309-
Writer.WriteValue(_formatDecimal(tradeAllowanceCharge.ActualAmount, 4)); // BT-147
310-
Writer.WriteEndElement();
302+
_writeOptionalAdaptiveAmount(Writer, "ram", "BasisAmount", tradeAllowanceCharge.BasisAmount, 2, 4, forceCurrency: false); // BT-X-35
303+
_writeOptionalAdaptiveAmount(Writer, "ram", "ActualAmount", tradeAllowanceCharge.ActualAmount, 2, 4, forceCurrency: false); // BT-147
311304

312305
Writer.WriteOptionalElementString("ram", "Reason", tradeAllowanceCharge.Reason, Profile.Comfort | Profile.Extended);
313306
// "ReasonCode" nicht im 2.0 Standard!

0 commit comments

Comments
 (0)