diff --git a/library/pom.xml b/library/pom.xml
index 9aaed089..f9c8f083 100644
--- a/library/pom.xml
+++ b/library/pom.xml
@@ -102,7 +102,7 @@
com.helger
en16931-cii2ubl
- 1.4.2
+ 1.4.10
@@ -122,6 +122,7 @@
org.xmlunit
xmlunit-assertj
2.9.1
+ test
diff --git a/library/src/main/java/org/mustangproject/CII/CIIToUBL.java b/library/src/main/java/org/mustangproject/CII/CIIToUBL.java
index 8034fe33..733006a1 100644
--- a/library/src/main/java/org/mustangproject/CII/CIIToUBL.java
+++ b/library/src/main/java/org/mustangproject/CII/CIIToUBL.java
@@ -1,12 +1,14 @@
package org.mustangproject.CII;
-import com.helger.commons.error.list.ErrorList;
-import com.helger.en16931.cii2ubl.CIIToUBL22Converter;
-import com.helger.ubl21.UBL21Writer;
-import com.helger.ubl22.UBL22Writer;
import java.io.File;
import java.io.Serializable;
+import com.helger.commons.error.list.ErrorList;
+import com.helger.en16931.cii2ubl.CIIToUBL23Converter;
+import com.helger.ubl21.UBL21Writer;
+import com.helger.ubl22.UBL22Writer;
+import com.helger.ubl23.UBL23Writer;
+
/***
* converts a Cross Industry Invoice XML file to a UBL XML file
* thanks to Philip Helger for his library
@@ -18,36 +20,45 @@ public class CIIToUBL {
* @param output the UBL file to write to
*/
public void convert(File input, File output) {
- ErrorList occurred=new ErrorList();
- CIIToUBL22Converter cc=new CIIToUBL22Converter();
- Serializable aUBL = cc.convertCIItoUBL(input, occurred);
+ final ErrorList occurred=new ErrorList();
+ final CIIToUBL23Converter cc=new CIIToUBL23Converter();
+ final Serializable aUBL = cc.convertCIItoUBL(input, occurred);
if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.invoice_21.InvoiceType)
{
UBL21Writer.invoice ()
.setFormattedOutput (true)
.write ((oasis.names.specification.ubl.schema.xsd.invoice_21.InvoiceType) aUBL, output);
}
- else
- if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.creditnote_21.CreditNoteType)
+ else if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.creditnote_21.CreditNoteType)
{
UBL21Writer.creditNote ()
.setFormattedOutput (true)
.write ((oasis.names.specification.ubl.schema.xsd.creditnote_21.CreditNoteType) aUBL, output);
}
- else
- if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.invoice_22.InvoiceType)
+ else if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.invoice_22.InvoiceType)
{
UBL22Writer.invoice ()
.setFormattedOutput (true)
.write ((oasis.names.specification.ubl.schema.xsd.invoice_22.InvoiceType) aUBL, output);
}
- else
- if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.creditnote_22.CreditNoteType)
+ else if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.creditnote_22.CreditNoteType)
{
UBL22Writer.creditNote ()
.setFormattedOutput (true)
.write ((oasis.names.specification.ubl.schema.xsd.creditnote_22.CreditNoteType) aUBL, output);
}
+ else if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.invoice_23.InvoiceType)
+ {
+ UBL23Writer.invoice ()
+ .setFormattedOutput (true)
+ .write ((oasis.names.specification.ubl.schema.xsd.invoice_23.InvoiceType) aUBL, output);
+ }
+ else if (aUBL instanceof oasis.names.specification.ubl.schema.xsd.creditnote_23.CreditNoteType)
+ {
+ UBL23Writer.creditNote ()
+ .setFormattedOutput (true)
+ .write ((oasis.names.specification.ubl.schema.xsd.creditnote_23.CreditNoteType) aUBL, output);
+ }
}
}
diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/UBLTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/UBLTest.java
index 13906407..12cfed97 100644
--- a/library/src/test/java/org/mustangproject/ZUGFeRD/UBLTest.java
+++ b/library/src/test/java/org/mustangproject/ZUGFeRD/UBLTest.java
@@ -61,8 +61,8 @@ public class UBLTest extends ResourceCase {
try {
final File tempFile = File.createTempFile("ZUGFeRD-UBL-", "-test");
c2u.convert(input, tempFile);
- expected = ResourceUtilities.readFile(StandardCharsets.UTF_8, expectedFile.getAbsolutePath());//.replaceAll("\r\n", "\n");
- result = ResourceUtilities.readFile(StandardCharsets.UTF_8, tempFile.getAbsolutePath());//.replaceAll("\r\n", "\n");
+ expected = ResourceUtilities.readFile(StandardCharsets.UTF_8, expectedFile.getAbsolutePath());
+ result = ResourceUtilities.readFile(StandardCharsets.UTF_8, tempFile.getAbsolutePath());
} catch (final IOException e) {
fail("Exception should not happen: " + e.getMessage());
}
diff --git a/library/src/test/resources/ubl-conv-ubl-output-factur-x.xml b/library/src/test/resources/ubl-conv-ubl-output-factur-x.xml
index 2a1fb4f8..269fbae7 100644
--- a/library/src/test/resources/ubl-conv-ubl-output-factur-x.xml
+++ b/library/src/test/resources/ubl-conv-ubl-output-factur-x.xml
@@ -58,28 +58,39 @@
2020-11-10
+
+ 42
+ RE-20201121/508
+
+ DE88200800000970375700
+ Max Mustermann
+
+ COBADEFFXXX
+
+
+
Zahlbar ohne Abzug bis 12.12.2020
75.04
- 160.00
- 11.20
+ 160
+ 11.2
S
- 7.00
+ 7
VAT
- 336.00
+ 336
63.84
S
- 19.00
+ 19
VAT
@@ -87,72 +98,71 @@
- 496.00
- 496.00
+ 496
+ 496
571.04
- 0.00
- 0.00
- 0.00
+ 0
+ 0
+ 0
571.04
1
- 1.0000
- 160.00
+ 1
+ 160
Of a sample invoice
Design (hours)
S
- 7.00
+ 7
VAT
- 160.0000
- 1.0000
+ 160
+ 1
2
- 400.0000
- 316.00
+ 400
+ 316
various colors, ~2000ml
Ballons
S
- 19.00
+ 19
VAT
- 0.7900
- 1.0000
+ 0.79
+ 1
3
- 800.0000
- 20.00
+ 800
+ 20
-
Hot air „heiße Luft“ (litres)
S
- 19.00
+ 19
VAT
- 0.0250
- 1.0000
+ 0.025
+ 1
\ No newline at end of file