Update dependency com.helger.en16931-cii2ubl
v1.4.2 -> v1.4.10. Add CIIToUBL23Converter to CIIToUBL. Adjust test.
This commit is contained in:
@@ -102,7 +102,7 @@
|
||||
<dependency>
|
||||
<groupId>com.helger</groupId>
|
||||
<artifactId>en16931-cii2ubl</artifactId>
|
||||
<version>1.4.2</version>
|
||||
<version>1.4.10</version>
|
||||
</dependency>
|
||||
<!-- https://mvnrepository.com/artifact/org.glassfish.jaxb/jaxb-runtime -->
|
||||
<dependency>
|
||||
@@ -122,6 +122,7 @@
|
||||
<groupId>org.xmlunit</groupId>
|
||||
<artifactId>xmlunit-assertj</artifactId>
|
||||
<version>2.9.1</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- API -->
|
||||
<dependency>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
@@ -58,28 +58,39 @@
|
||||
<cac:Delivery>
|
||||
<cbc:ActualDeliveryDate>2020-11-10</cbc:ActualDeliveryDate>
|
||||
</cac:Delivery>
|
||||
<cac:PaymentMeans>
|
||||
<cbc:PaymentMeansCode name="Bank transfer">42</cbc:PaymentMeansCode>
|
||||
<cbc:PaymentID>RE-20201121/508</cbc:PaymentID>
|
||||
<cac:PayeeFinancialAccount>
|
||||
<cbc:ID>DE88200800000970375700</cbc:ID>
|
||||
<cbc:Name>Max Mustermann</cbc:Name>
|
||||
<cac:FinancialInstitutionBranch>
|
||||
<cbc:ID>COBADEFFXXX</cbc:ID>
|
||||
</cac:FinancialInstitutionBranch>
|
||||
</cac:PayeeFinancialAccount>
|
||||
</cac:PaymentMeans>
|
||||
<cac:PaymentTerms>
|
||||
<cbc:Note>Zahlbar ohne Abzug bis 12.12.2020</cbc:Note>
|
||||
</cac:PaymentTerms>
|
||||
<cac:TaxTotal>
|
||||
<cbc:TaxAmount currencyID="EUR">75.04</cbc:TaxAmount>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">160.00</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">11.20</cbc:TaxAmount>
|
||||
<cbc:TaxableAmount currencyID="EUR">160</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">11.2</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7.00</cbc:Percent>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:TaxCategory>
|
||||
</cac:TaxSubtotal>
|
||||
<cac:TaxSubtotal>
|
||||
<cbc:TaxableAmount currencyID="EUR">336.00</cbc:TaxableAmount>
|
||||
<cbc:TaxableAmount currencyID="EUR">336</cbc:TaxableAmount>
|
||||
<cbc:TaxAmount currencyID="EUR">63.84</cbc:TaxAmount>
|
||||
<cac:TaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>19.00</cbc:Percent>
|
||||
<cbc:Percent>19</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
@@ -87,72 +98,71 @@
|
||||
</cac:TaxSubtotal>
|
||||
</cac:TaxTotal>
|
||||
<cac:LegalMonetaryTotal>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">496.00</cbc:LineExtensionAmount>
|
||||
<cbc:TaxExclusiveAmount currencyID="EUR">496.00</cbc:TaxExclusiveAmount>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">496</cbc:LineExtensionAmount>
|
||||
<cbc:TaxExclusiveAmount currencyID="EUR">496</cbc:TaxExclusiveAmount>
|
||||
<cbc:TaxInclusiveAmount currencyID="EUR">571.04</cbc:TaxInclusiveAmount>
|
||||
<cbc:AllowanceTotalAmount currencyID="EUR">0.00</cbc:AllowanceTotalAmount>
|
||||
<cbc:ChargeTotalAmount currencyID="EUR">0.00</cbc:ChargeTotalAmount>
|
||||
<cbc:PrepaidAmount currencyID="EUR">0.00</cbc:PrepaidAmount>
|
||||
<cbc:AllowanceTotalAmount currencyID="EUR">0</cbc:AllowanceTotalAmount>
|
||||
<cbc:ChargeTotalAmount currencyID="EUR">0</cbc:ChargeTotalAmount>
|
||||
<cbc:PrepaidAmount currencyID="EUR">0</cbc:PrepaidAmount>
|
||||
<cbc:PayableAmount currencyID="EUR">571.04</cbc:PayableAmount>
|
||||
</cac:LegalMonetaryTotal>
|
||||
<cac:InvoiceLine>
|
||||
<cbc:ID>1</cbc:ID>
|
||||
<cbc:InvoicedQuantity unitCode="HUR">1.0000</cbc:InvoicedQuantity>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">160.00</cbc:LineExtensionAmount>
|
||||
<cbc:InvoicedQuantity unitCode="HUR">1</cbc:InvoicedQuantity>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">160</cbc:LineExtensionAmount>
|
||||
<cac:Item>
|
||||
<cbc:Description>Of a sample invoice</cbc:Description>
|
||||
<cbc:Name>Design (hours)</cbc:Name>
|
||||
<cac:ClassifiedTaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>7.00</cbc:Percent>
|
||||
<cbc:Percent>7</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:ClassifiedTaxCategory>
|
||||
</cac:Item>
|
||||
<cac:Price>
|
||||
<cbc:PriceAmount currencyID="EUR">160.0000</cbc:PriceAmount>
|
||||
<cbc:BaseQuantity unitCode="HUR">1.0000</cbc:BaseQuantity>
|
||||
<cbc:PriceAmount currencyID="EUR">160</cbc:PriceAmount>
|
||||
<cbc:BaseQuantity unitCode="HUR">1</cbc:BaseQuantity>
|
||||
</cac:Price>
|
||||
</cac:InvoiceLine>
|
||||
<cac:InvoiceLine>
|
||||
<cbc:ID>2</cbc:ID>
|
||||
<cbc:InvoicedQuantity unitCode="H87">400.0000</cbc:InvoicedQuantity>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">316.00</cbc:LineExtensionAmount>
|
||||
<cbc:InvoicedQuantity unitCode="H87">400</cbc:InvoicedQuantity>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">316</cbc:LineExtensionAmount>
|
||||
<cac:Item>
|
||||
<cbc:Description>various colors, ~2000ml</cbc:Description>
|
||||
<cbc:Name>Ballons</cbc:Name>
|
||||
<cac:ClassifiedTaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>19.00</cbc:Percent>
|
||||
<cbc:Percent>19</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:ClassifiedTaxCategory>
|
||||
</cac:Item>
|
||||
<cac:Price>
|
||||
<cbc:PriceAmount currencyID="EUR">0.7900</cbc:PriceAmount>
|
||||
<cbc:BaseQuantity unitCode="H87">1.0000</cbc:BaseQuantity>
|
||||
<cbc:PriceAmount currencyID="EUR">0.79</cbc:PriceAmount>
|
||||
<cbc:BaseQuantity unitCode="H87">1</cbc:BaseQuantity>
|
||||
</cac:Price>
|
||||
</cac:InvoiceLine>
|
||||
<cac:InvoiceLine>
|
||||
<cbc:ID>3</cbc:ID>
|
||||
<cbc:InvoicedQuantity unitCode="LTR">800.0000</cbc:InvoicedQuantity>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">20.00</cbc:LineExtensionAmount>
|
||||
<cbc:InvoicedQuantity unitCode="LTR">800</cbc:InvoicedQuantity>
|
||||
<cbc:LineExtensionAmount currencyID="EUR">20</cbc:LineExtensionAmount>
|
||||
<cac:Item>
|
||||
<cbc:Description></cbc:Description>
|
||||
<cbc:Name>Hot air „heiße Luft“ (litres)</cbc:Name>
|
||||
<cac:ClassifiedTaxCategory>
|
||||
<cbc:ID>S</cbc:ID>
|
||||
<cbc:Percent>19.00</cbc:Percent>
|
||||
<cbc:Percent>19</cbc:Percent>
|
||||
<cac:TaxScheme>
|
||||
<cbc:ID>VAT</cbc:ID>
|
||||
</cac:TaxScheme>
|
||||
</cac:ClassifiedTaxCategory>
|
||||
</cac:Item>
|
||||
<cac:Price>
|
||||
<cbc:PriceAmount currencyID="EUR">0.0250</cbc:PriceAmount>
|
||||
<cbc:BaseQuantity unitCode="LTR">1.0000</cbc:BaseQuantity>
|
||||
<cbc:PriceAmount currencyID="EUR">0.025</cbc:PriceAmount>
|
||||
<cbc:BaseQuantity unitCode="LTR">1</cbc:BaseQuantity>
|
||||
</cac:Price>
|
||||
</cac:InvoiceLine>
|
||||
</Invoice>
|
||||
Reference in New Issue
Block a user