Skip to content

Commit 86f6a6a

Browse files
committed
Simplification in writing ZUGFeRD 2.2 files
Additional comment from #263
1 parent 442632a commit 86f6a6a

File tree

1 file changed

+29
-32
lines changed

1 file changed

+29
-32
lines changed

ZUGFeRD/InvoiceDescriptor22Writer.cs

+29-32
Original file line numberDiff line numberDiff line change
@@ -828,47 +828,44 @@ public override void Save(InvoiceDescriptor descriptor, Stream stream)
828828

829829
// 13. SpecifiedTradeAllowanceCharge (optional)
830830
IList<TradeAllowanceCharge> _allowanceCharges = this.Descriptor.GetTradeAllowanceCharges();
831-
if (_allowanceCharges?.Count > 0)
831+
foreach (TradeAllowanceCharge tradeAllowanceCharge in _allowanceCharges)
832832
{
833-
foreach (TradeAllowanceCharge tradeAllowanceCharge in _allowanceCharges)
834-
{
835-
Writer.WriteStartElement("ram:SpecifiedTradeAllowanceCharge");
836-
Writer.WriteStartElement("ram:ChargeIndicator");
837-
Writer.WriteElementString("udt:Indicator", tradeAllowanceCharge.ChargeIndicator ? "true" : "false");
838-
Writer.WriteEndElement(); // !ram:ChargeIndicator
833+
Writer.WriteStartElement("ram:SpecifiedTradeAllowanceCharge");
834+
Writer.WriteStartElement("ram:ChargeIndicator");
835+
Writer.WriteElementString("udt:Indicator", tradeAllowanceCharge.ChargeIndicator ? "true" : "false");
836+
Writer.WriteEndElement(); // !ram:ChargeIndicator
839837

840-
if (tradeAllowanceCharge.ChargePercentage.HasValue)
841-
{
842-
Writer.WriteStartElement("ram:CalculationPercent", profile: Profile.Extended | Profile.XRechnung1 | Profile.XRechnung);
843-
Writer.WriteValue(_formatDecimal(tradeAllowanceCharge.ChargePercentage.Value));
844-
Writer.WriteEndElement();
845-
}
846-
847-
if (tradeAllowanceCharge.BasisAmount.HasValue)
848-
{
849-
Writer.WriteStartElement("ram:BasisAmount", profile: Profile.Comfort | Profile.Extended | Profile.XRechnung1 | Profile.XRechnung);
850-
Writer.WriteValue(_formatDecimal(tradeAllowanceCharge.BasisAmount.Value));
851-
Writer.WriteEndElement();
852-
}
838+
if (tradeAllowanceCharge.ChargePercentage.HasValue)
839+
{
840+
Writer.WriteStartElement("ram:CalculationPercent", profile: Profile.Extended | Profile.XRechnung1 | Profile.XRechnung);
841+
Writer.WriteValue(_formatDecimal(tradeAllowanceCharge.ChargePercentage.Value));
842+
Writer.WriteEndElement();
843+
}
853844

854-
Writer.WriteStartElement("ram:ActualAmount");
855-
Writer.WriteValue(_formatDecimal(tradeAllowanceCharge.ActualAmount, 2));
845+
if (tradeAllowanceCharge.BasisAmount.HasValue)
846+
{
847+
Writer.WriteStartElement("ram:BasisAmount", profile: Profile.Comfort | Profile.Extended | Profile.XRechnung1 | Profile.XRechnung);
848+
Writer.WriteValue(_formatDecimal(tradeAllowanceCharge.BasisAmount.Value));
856849
Writer.WriteEndElement();
850+
}
857851

852+
Writer.WriteStartElement("ram:ActualAmount");
853+
Writer.WriteValue(_formatDecimal(tradeAllowanceCharge.ActualAmount, 2));
854+
Writer.WriteEndElement();
858855

859-
Writer.WriteOptionalElementString("ram:Reason", tradeAllowanceCharge.Reason);
860856

861-
if (tradeAllowanceCharge.Tax != null)
862-
{
863-
Writer.WriteStartElement("ram:CategoryTradeTax");
864-
Writer.WriteElementString("ram:TypeCode", tradeAllowanceCharge.Tax.TypeCode.EnumToString());
865-
if (tradeAllowanceCharge.Tax.CategoryCode.HasValue)
866-
Writer.WriteElementString("ram:CategoryCode", tradeAllowanceCharge.Tax.CategoryCode?.EnumToString());
867-
Writer.WriteElementString("ram:RateApplicablePercent", _formatDecimal(tradeAllowanceCharge.Tax.Percent));
868-
Writer.WriteEndElement();
869-
}
857+
Writer.WriteOptionalElementString("ram:Reason", tradeAllowanceCharge.Reason);
858+
859+
if (tradeAllowanceCharge.Tax != null)
860+
{
861+
Writer.WriteStartElement("ram:CategoryTradeTax");
862+
Writer.WriteElementString("ram:TypeCode", tradeAllowanceCharge.Tax.TypeCode.EnumToString());
863+
if (tradeAllowanceCharge.Tax.CategoryCode.HasValue)
864+
Writer.WriteElementString("ram:CategoryCode", tradeAllowanceCharge.Tax.CategoryCode?.EnumToString());
865+
Writer.WriteElementString("ram:RateApplicablePercent", _formatDecimal(tradeAllowanceCharge.Tax.Percent));
870866
Writer.WriteEndElement();
871867
}
868+
Writer.WriteEndElement();
872869
}
873870

874871
// 14. SpecifiedLogisticsServiceCharge (optional)

0 commit comments

Comments
 (0)