diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/DAPullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/DAPullProvider.java index 5a050c7c..93ae5b37 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/DAPullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/DAPullProvider.java @@ -27,11 +27,14 @@ import static org.mustangproject.ZUGFeRD.model.TaxCategoryCodeTypeConstants.CATE import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Base64; import java.util.Date; +import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.stream.Collectors; import org.mustangproject.*; @@ -84,18 +87,11 @@ public class DAPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider if (currentItem.getProduct().getTaxExemptionReason() != null) { // exemptionReason = "" + XMLTools.encodeXML(currentItem.getProduct().getTaxExemptionReason()) + ""; } - String notes = ""; - if (currentItem.getNotes() != null) { - for (final String currentNote : currentItem.getNotes()) { - notes = notes + "" + XMLTools.encodeXML(currentNote) + ""; - - } - } - final LineCalculator lc = new LineCalculator(currentItem); + final LineCalculator lc = new LineCalculator(currentItem); xml += "" + "" + "" + lineID + "" - + notes + + buildItemNotes(currentItem) + "" + ""; diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java index 1394e2b0..9ea90e19 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/OXPullProvider.java @@ -27,14 +27,18 @@ import static org.mustangproject.ZUGFeRD.model.TaxCategoryCodeTypeConstants.CATE import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Base64; import java.util.Date; +import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.stream.Collectors; import org.mustangproject.EStandard; import org.mustangproject.FileAttachment; +import org.mustangproject.IncludedNote; import org.mustangproject.XMLTools; public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider { @@ -108,18 +112,12 @@ public class OXPullProvider extends ZUGFeRD2PullProvider implements IXMLProvider if (currentItem.getProduct().getTaxExemptionReason() != null) { // exemptionReason = "" + XMLTools.encodeXML(currentItem.getProduct().getTaxExemptionReason()) + ""; } - String notes = ""; - if (currentItem.getNotes() != null) { - for (final String currentNote : currentItem.getNotes()) { - notes = notes + "" + XMLTools.encodeXML(currentNote) + ""; - - } - } + final LineCalculator lc = new LineCalculator(currentItem); xml += "" + "" + "" + lineID + "" - + notes + + buildItemNotes(currentItem) + "" + ""; diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java index d79d6042..753a43de 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java @@ -30,6 +30,7 @@ import java.math.BigDecimal; import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Base64; import java.util.Date; import java.util.List; @@ -299,7 +300,6 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { if (trans.getDocumentCode() != null) { typecode = trans.getDocumentCode(); } - String notes; String xml = "" + ""; } - notes = ""; - if (currentItem.getNotes() != null) { - for (final String currentNote : currentItem.getNotes()) { - notes = notes + "" + XMLTools.encodeXML(currentNote) + ""; - } - } final LineCalculator lc = new LineCalculator(currentItem); - if ((getProfile() != Profiles.getByName("Minimum")) && (getProfile() != Profiles.getByName("BasicWL"))) { - - xml += "" + + if ((getProfile() != Profiles.getByName("Minimum")) && (getProfile() != Profiles.getByName("BasicWL"))) { + xml += "" + "" + "" + lineID + "" - + notes + + buildItemNotes(currentItem) + "" + ""; @@ -395,16 +388,12 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { "" + XMLTools.encodeXML(currentReferencedDocument.getTypeCode()) + "" + "" + XMLTools.encodeXML(currentReferencedDocument.getReferenceTypeCode()) + "" + ""; - - } - } if (currentItem.getBuyerOrderReferencedDocumentLineID() != null) { xml += " " + "" + XMLTools.encodeXML(currentItem.getBuyerOrderReferencedDocumentLineID()) + "" + ""; - } xml += "" + "" + priceFormat(lc.getPriceGross()) @@ -747,6 +736,16 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { } } + protected String buildItemNotes(IZUGFeRDExportableItem currentItem) { + if (currentItem.getNotes() == null) { + return ""; + } + return Arrays.stream(currentItem.getNotes()) + .map(IncludedNote::unspecifiedNote) + .map(IncludedNote::toCiiXml) + .collect(Collectors.joining()); + } + protected String buildNotes(IExportableTransaction exportableTransaction) { final List includedNotes = Optional.ofNullable(exportableTransaction.getNotesWithSubjectCode()) .orElse(new ArrayList<>());