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<>());