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