diff --git a/src/main/java/org/mustangproject/ZUGFeRD/XMPSchemaZugferd.java b/src/main/java/org/mustangproject/ZUGFeRD/XMPSchemaZugferd.java
index ea2ba18b..2d2ee44f 100644
--- a/src/main/java/org/mustangproject/ZUGFeRD/XMPSchemaZugferd.java
+++ b/src/main/java/org/mustangproject/ZUGFeRD/XMPSchemaZugferd.java
@@ -20,7 +20,11 @@ public class XMPSchemaZugferd extends XMPSchema {
setAboutAsSimple("");
- setTextPropertyValue("ConformanceLevel", conformanceLevel.name());
+ String conformanceLevelValue=conformanceLevel.name();
+ if (conformanceLevelValue.equals("BASICWL")) {
+ conformanceLevelValue="BASIC WL";
+ }
+ setTextPropertyValue("ConformanceLevel", conformanceLevelValue);
setTextPropertyValue("DocumentType", "INVOICE");
setTextPropertyValue("DocumentFileName", filename);
setTextPropertyValue("Version", "1.0");
diff --git a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
index 0ea17a40..b854b8e8 100644
--- a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
+++ b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
@@ -181,6 +181,8 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
+ "\n";
}
+
+
String xml= "\n" //$NON-NLS-1$
@@ -191,7 +193,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
+ " \n" //$NON-NLS-1$
+ " "+testBooleanStr+"\n" //$NON-NLS-1$
+ " \n" //$NON-NLS-1$
- + " urn:ferd:CrossIndustryDocument:invoice:1p0:comfort\n" //$NON-NLS-1$
+ + " urn:cen.eu:en16931:2017:compliant:factur-x.eu:1p0:extended\n" //$NON-NLS-1$
+ " \n" //$NON-NLS-1$
+ " \n" //$NON-NLS-1$
+ " \n" //$NON-NLS-1$
diff --git a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDConformanceLevel.java b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDConformanceLevel.java
index 2f2c7fd3..24acf263 100644
--- a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDConformanceLevel.java
+++ b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDConformanceLevel.java
@@ -1,5 +1,6 @@
package org.mustangproject.ZUGFeRD;
public enum ZUGFeRDConformanceLevel {
- BASIC, COMFORT, EXTENDED;
+ BASIC, COMFORT, EXTENDED, EN16931/*=Comfort*/, MINIMUM, BASICWL /*basic without lines, less than basic*/, CIUS
+ ;
}
diff --git a/src/main/java/org/mustangproject/ZUGFeRD/model/DocumentContextParameterTypeConstants.java b/src/main/java/org/mustangproject/ZUGFeRD/model/DocumentContextParameterTypeConstants.java
deleted file mode 100644
index c90ccb99..00000000
--- a/src/main/java/org/mustangproject/ZUGFeRD/model/DocumentContextParameterTypeConstants.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.mustangproject.ZUGFeRD.model;
-
-public class DocumentContextParameterTypeConstants {
- public static final String COMFORT = "urn:ferd:CrossIndustryDocument:invoice:1p0:comfort";
- public static final String EXTENDED = "urn:ferd:CrossIndustryDocument:invoice:1p0:extended";
-}
diff --git a/src/main/java/org/mustangproject/toecount/Toecount.java b/src/main/java/org/mustangproject/toecount/Toecount.java
index cda35c58..fa2422b0 100755
--- a/src/main/java/org/mustangproject/toecount/Toecount.java
+++ b/src/main/java/org/mustangproject/toecount/Toecount.java
@@ -13,6 +13,7 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import org.mustangproject.ZUGFeRD.ZUGFeRDConformanceLevel;
import org.mustangproject.ZUGFeRD.ZUGFeRDExporter;
import org.mustangproject.ZUGFeRD.ZUGFeRDExporterFromA1Factory;
import org.mustangproject.ZUGFeRD.ZUGFeRDExporterFromA3Factory;
@@ -273,18 +274,62 @@ public class Toecount {
outName = getFilenameFromUser("Ouput PDF", "invoice.ZUGFeRD.pdf", "pdf", false, true);
String versionInput = "";
try {
- versionInput = getStringFromUser("ZUGFeRD version", "1", "1|2");
+ versionInput = getStringFromUser("ZUGFeRD version (1 or 2)", "1", "1|2");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- // get version
- // get profile
+
+ String profileInput = "";
+ int zfIntVersion=Integer.valueOf(versionInput);
+ ZUGFeRDConformanceLevel profile=ZUGFeRDConformanceLevel.EXTENDED;
+ if (zfIntVersion==1) {
+ try {
+ profileInput = getStringFromUser("ZUGFeRD profile b)asic, c)omfort or e)xtended", "e", "B|b|C|c|E|e").toLowerCase();
+
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ if (profileInput.equals("b")) {
+ profile=ZUGFeRDConformanceLevel.BASIC;
+ } else if (profileInput.equals("c")) {
+ profile=ZUGFeRDConformanceLevel.COMFORT;
+ } else if (profileInput.equals("e")) {
+ profile=ZUGFeRDConformanceLevel.EXTENDED;
+
+ }
+
+ } else if (zfIntVersion==2) {
+ try {
+ profileInput = getStringFromUser("ZUGFeRD profile [M]INIMUM, BASIC [W]L, [B]ASIC,\n" +
+ "[C]IUS, [E]N16931, E[X]TENDED", "E", "M|m|W|w|B|b|C|c|E|e|X|x|").toLowerCase();
+
+ } catch (Exception e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ if (profileInput.equals("m")) {
+ profile=ZUGFeRDConformanceLevel.MINIMUM;
+ } else if (profileInput.equals("w")) {
+ profile=ZUGFeRDConformanceLevel.BASICWL;
+ } else if (profileInput.equals("b")) {
+ profile=ZUGFeRDConformanceLevel.BASIC;
+ } else if (profileInput.equals("c")) {
+ profile=ZUGFeRDConformanceLevel.CIUS;
+ } else if (profileInput.equals("e")) {
+ profile=ZUGFeRDConformanceLevel.EN16931;
+ } else if (profileInput.equals("x")) {
+ profile=ZUGFeRDConformanceLevel.EXTENDED;
+ }
+
+ }
+
ZUGFeRDExporter ze = new ZUGFeRDExporterFromA3Factory().setProducer("Toecount")
- .setCreator(System.getProperty("user.name")).load(pdfName);
- ze.setZUGFeRDVersion(Integer.valueOf(versionInput));
+ .setCreator(System.getProperty("user.name")).setZUGFeRDConformanceLevel(profile).load(pdfName);
+ ze.setZUGFeRDVersion(zfIntVersion);
ze.setZUGFeRDXMLData(Files.readAllBytes(Paths.get(xmlName)));
diff --git a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java
index 4960de8e..d42f5ba2 100644
--- a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java
+++ b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java
@@ -51,13 +51,14 @@ public class MustangReaderWriterCustomXMLTest extends TestCase {
InputStream SOURCE_PDF = this.getClass()
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
- ZUGFeRDExporter zea1 = new ZUGFeRDExporterFromA1Factory().setProducer("My Application").setCreator("Test")
+ ZUGFeRDExporter zea1 = new ZUGFeRDExporterFromA1Factory().setProducer("My Application").setCreator("Test").setZUGFeRDConformanceLevel(ZUGFeRDConformanceLevel.BASIC)
.load(SOURCE_PDF);
+ /* we have much more information than just in the basic profile (comfort or extended) but it's perfectly valid to provide more information, just not less. */
String ownZUGFeRDXML = "\n"
+ "\n" + "\n"
+ "false\n" + "\n"
+ "\n" + "\n"
- + "urn:ferd:CrossIndustryDocument:invoice:1p0:extended\n" + "\n"
+ + "urn:ferd:CrossIndustryDocument:invoice:1p0:basic\n" + "\n"
+ "\n"
+ "\n" + "\n"
+ "RE-20170509/505\n" + "RECHNUNG\n"
diff --git a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterTest.java b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterTest.java
index 9121edc1..da1c5f59 100644
--- a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterTest.java
+++ b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterTest.java
@@ -366,7 +366,7 @@ public class MustangReaderWriterTest extends TestCase implements IZUGFeRDExporta
try (InputStream SOURCE_PDF = this.getClass()
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20171118_506blanko.pdf");
- ZUGFeRDExporter ze = new ZUGFeRDExporterFromA1Factory().load(SOURCE_PDF)) {
+ ZUGFeRDExporter ze = new ZUGFeRDExporterFromA1Factory().load(SOURCE_PDF)) {
ze.setZUGFeRDVersion(2);
ze.PDFattachZugferdFile(this);
@@ -379,6 +379,7 @@ public class MustangReaderWriterTest extends TestCase implements IZUGFeRDExporta
String pdfContent = baos.toString("UTF-8");
assertFalse(pdfContent.indexOf("(via mustangproject.org") == -1);
+ assertFalse(pdfContent.indexOf("urn:cen.eu:en16931:2017:compliant:factur-x.eu:1p0:extended")==-1);
}
// now check the contents (like MustangReaderTest)