move invoice item contact and product out of zugferd namespace

This commit is contained in:
Jochen Stärk
2020-07-26 11:23:51 +02:00
parent 3b706724fb
commit 67bddba154
11 changed files with 121 additions and 127 deletions

View File

@@ -1,4 +1,6 @@
package org.mustangproject.ZUGFeRD;
package library.src.main.java.org.mustangproject;
import org.mustangproject.ZUGFeRD.IZUGFeRDExportableContact;
public class Contact implements IZUGFeRDExportableContact {

View File

@@ -18,13 +18,15 @@
* <p>
* **********************************************************************
*/
package org.mustangproject.ZUGFeRD;
package library.src.main.java.org.mustangproject;
import org.mustangproject.ZUGFeRD.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
public class Invoice implements IZUGFeRDExportableTransaction {
protected String documentName = null, documentCode = null, number = null, ownOrganisationFullPlaintextInfo = null, referenceNumber = null, shipToOrganisationID = null, shipToOrganisationName = null, shipToStreet = null, shipToZIP = null, shipToLocation = null, shipToCountry = null, buyerOrderReferencedDocumentID = null, buyerOrderReferencedDocumentIssueDateTime = null, ownTaxID = null, ownVATID = null, ownForeignOrganisationID = null, ownOrganisationName = null, ownStreet = null, ownZIP = null, ownLocation = null, ownCountry = null, currency = null, paymentTermDescription = null;
protected Date issueDate = null, dueDate = null, deliveryDate = null;
@@ -37,7 +39,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
protected IZUGFeRDPaymentTerms paymentTerms = null;
public ZUGFeRD2PushProvider() {
public Invoice() {
ZFItems = new ArrayList<IZUGFeRDExportableItem>();
}
@@ -46,7 +48,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return documentName;
}
public ZUGFeRD2PushProvider setDocumentName(String documentName) {
public Invoice setDocumentName(String documentName) {
this.documentName = documentName;
return this;
}
@@ -56,7 +58,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return documentCode;
}
public ZUGFeRD2PushProvider setDocumentCode(String documentCode) {
public Invoice setDocumentCode(String documentCode) {
this.documentCode = documentCode;
return this;
}
@@ -66,7 +68,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return number;
}
public ZUGFeRD2PushProvider setNumber(String number) {
public Invoice setNumber(String number) {
this.number = number;
return this;
}
@@ -76,7 +78,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return ownOrganisationFullPlaintextInfo;
}
public ZUGFeRD2PushProvider setOwnOrganisationFullPlaintextInfo(String ownOrganisationFullPlaintextInfo) {
public Invoice setOwnOrganisationFullPlaintextInfo(String ownOrganisationFullPlaintextInfo) {
this.ownOrganisationFullPlaintextInfo = ownOrganisationFullPlaintextInfo;
return this;
}
@@ -86,7 +88,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return referenceNumber;
}
public ZUGFeRD2PushProvider setReferenceNumber(String referenceNumber) {
public Invoice setReferenceNumber(String referenceNumber) {
this.referenceNumber = referenceNumber;
return this;
}
@@ -96,7 +98,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return shipToOrganisationID;
}
public ZUGFeRD2PushProvider setShipToOrganisationID(String shipToOrganisationID) {
public Invoice setShipToOrganisationID(String shipToOrganisationID) {
this.shipToOrganisationID = shipToOrganisationID;
return this;
}
@@ -106,7 +108,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return shipToOrganisationName;
}
public ZUGFeRD2PushProvider setShipToOrganisationName(String shipToOrganisationName) {
public Invoice setShipToOrganisationName(String shipToOrganisationName) {
this.shipToOrganisationName = shipToOrganisationName;
return this;
}
@@ -116,7 +118,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return shipToStreet;
}
public ZUGFeRD2PushProvider setShipToStreet(String shipToStreet) {
public Invoice setShipToStreet(String shipToStreet) {
this.shipToStreet = shipToStreet;
return this;
}
@@ -126,7 +128,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return shipToZIP;
}
public ZUGFeRD2PushProvider setShipToZIP(String shipToZIP) {
public Invoice setShipToZIP(String shipToZIP) {
this.shipToZIP = shipToZIP;
return this;
}
@@ -136,7 +138,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return shipToLocation;
}
public ZUGFeRD2PushProvider setShipToLocation(String shipToLocation) {
public Invoice setShipToLocation(String shipToLocation) {
this.shipToLocation = shipToLocation;
return this;
}
@@ -146,7 +148,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return shipToCountry;
}
public ZUGFeRD2PushProvider setShipToCountry(String shipToCountry) {
public Invoice setShipToCountry(String shipToCountry) {
this.shipToCountry = shipToCountry;
return this;
}
@@ -156,7 +158,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return buyerOrderReferencedDocumentID;
}
public ZUGFeRD2PushProvider setBuyerOrderReferencedDocumentID(String buyerOrderReferencedDocumentID) {
public Invoice setBuyerOrderReferencedDocumentID(String buyerOrderReferencedDocumentID) {
this.buyerOrderReferencedDocumentID = buyerOrderReferencedDocumentID;
return this;
}
@@ -166,7 +168,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return buyerOrderReferencedDocumentIssueDateTime;
}
public ZUGFeRD2PushProvider setBuyerOrderReferencedDocumentIssueDateTime(String buyerOrderReferencedDocumentIssueDateTime) {
public Invoice setBuyerOrderReferencedDocumentIssueDateTime(String buyerOrderReferencedDocumentIssueDateTime) {
this.buyerOrderReferencedDocumentIssueDateTime = buyerOrderReferencedDocumentIssueDateTime;
return this;
}
@@ -176,7 +178,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return ownTaxID;
}
public ZUGFeRD2PushProvider setOwnTaxID(String ownTaxID) {
public Invoice setOwnTaxID(String ownTaxID) {
this.ownTaxID = ownTaxID;
return this;
}
@@ -186,7 +188,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return ownVATID;
}
public ZUGFeRD2PushProvider setOwnVATID(String ownVATID) {
public Invoice setOwnVATID(String ownVATID) {
this.ownVATID = ownVATID;
return this;
}
@@ -196,7 +198,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return ownForeignOrganisationID;
}
public ZUGFeRD2PushProvider setOwnForeignOrganisationID(String ownForeignOrganisationID) {
public Invoice setOwnForeignOrganisationID(String ownForeignOrganisationID) {
this.ownForeignOrganisationID = ownForeignOrganisationID;
return this;
}
@@ -206,7 +208,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return ownOrganisationName;
}
public ZUGFeRD2PushProvider setOwnOrganisationName(String ownOrganisationName) {
public Invoice setOwnOrganisationName(String ownOrganisationName) {
this.ownOrganisationName = ownOrganisationName;
return this;
}
@@ -216,7 +218,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return ownStreet;
}
public ZUGFeRD2PushProvider setOwnStreet(String ownStreet) {
public Invoice setOwnStreet(String ownStreet) {
this.ownStreet = ownStreet;
return this;
}
@@ -226,7 +228,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return ownZIP;
}
public ZUGFeRD2PushProvider setOwnZIP(String ownZIP) {
public Invoice setOwnZIP(String ownZIP) {
this.ownZIP = ownZIP;
return this;
}
@@ -235,7 +237,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return ownLocation;
}
public ZUGFeRD2PushProvider setOwnLocation(String getOwnLocation) {
public Invoice setOwnLocation(String getOwnLocation) {
this.ownLocation = getOwnLocation;
return this;
}
@@ -244,7 +246,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return ownCountry;
}
public ZUGFeRD2PushProvider setOwnCountry(String getOwnCountry) {
public Invoice setOwnCountry(String getOwnCountry) {
this.ownCountry = getOwnCountry;
return this;
}
@@ -254,7 +256,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return currency;
}
public ZUGFeRD2PushProvider setCurrency(String currency) {
public Invoice setCurrency(String currency) {
this.currency = currency;
return this;
}
@@ -264,7 +266,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return paymentTermDescription;
}
public ZUGFeRD2PushProvider setPaymentTermDescription(String paymentTermDescription) {
public Invoice setPaymentTermDescription(String paymentTermDescription) {
this.paymentTermDescription = paymentTermDescription;
return this;
}
@@ -274,7 +276,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return issueDate;
}
public ZUGFeRD2PushProvider setIssueDate(Date issueDate) {
public Invoice setIssueDate(Date issueDate) {
this.issueDate = issueDate;
return this;
}
@@ -284,7 +286,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return dueDate;
}
public ZUGFeRD2PushProvider setDueDate(Date dueDate) {
public Invoice setDueDate(Date dueDate) {
this.dueDate = dueDate;
return this;
}
@@ -294,7 +296,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return deliveryDate;
}
public ZUGFeRD2PushProvider setDeliveryDate(Date deliveryDate) {
public Invoice setDeliveryDate(Date deliveryDate) {
this.deliveryDate = deliveryDate;
return this;
}
@@ -304,7 +306,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return totalPrepaidAmount;
}
public ZUGFeRD2PushProvider setTotalPrepaidAmount(BigDecimal totalPrepaidAmount) {
public Invoice setTotalPrepaidAmount(BigDecimal totalPrepaidAmount) {
this.totalPrepaidAmount = totalPrepaidAmount;
return this;
}
@@ -314,7 +316,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return ownContact;
}
public ZUGFeRD2PushProvider setOwnContact(IZUGFeRDExportableContact ownContact) {
public Invoice setOwnContact(IZUGFeRDExportableContact ownContact) {
this.ownContact = ownContact;
return this;
}
@@ -324,7 +326,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return recipient;
}
public ZUGFeRD2PushProvider setRecipient(IZUGFeRDExportableContact recipient) {
public Invoice setRecipient(IZUGFeRDExportableContact recipient) {
this.recipient = recipient;
return this;
}
@@ -334,7 +336,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return ZFAllowances;
}
public ZUGFeRD2PushProvider setZFAllowances(IZUGFeRDAllowanceCharge[] ZFAllowances) {
public Invoice setZFAllowances(IZUGFeRDAllowanceCharge[] ZFAllowances) {
this.ZFAllowances = ZFAllowances;
return this;
}
@@ -344,7 +346,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return ZFCharges;
}
public ZUGFeRD2PushProvider setZFCharges(IZUGFeRDAllowanceCharge[] ZFCharges) {
public Invoice setZFCharges(IZUGFeRDAllowanceCharge[] ZFCharges) {
this.ZFCharges = ZFCharges;
return this;
}
@@ -354,7 +356,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return ZFLogisticsServiceCharges;
}
public ZUGFeRD2PushProvider setZFLogisticsServiceCharges(IZUGFeRDAllowanceCharge[] ZFLogisticsServiceCharges) {
public Invoice setZFLogisticsServiceCharges(IZUGFeRDAllowanceCharge[] ZFLogisticsServiceCharges) {
this.ZFLogisticsServiceCharges = ZFLogisticsServiceCharges;
return this;
}
@@ -363,7 +365,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return getTradeSettlement;
}
public ZUGFeRD2PushProvider setGetTradeSettlement(IZUGFeRDTradeSettlement[] getTradeSettlement) {
public Invoice setGetTradeSettlement(IZUGFeRDTradeSettlement[] getTradeSettlement) {
this.getTradeSettlement = getTradeSettlement;
return this;
}
@@ -373,7 +375,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return paymentTerms;
}
public ZUGFeRD2PushProvider setPaymentTerms(IZUGFeRDPaymentTerms paymentTerms) {
public Invoice setPaymentTerms(IZUGFeRDPaymentTerms paymentTerms) {
this.paymentTerms = paymentTerms;
return this;
}
@@ -383,7 +385,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return deliveryAddress;
}
public ZUGFeRD2PushProvider setDeliveryAddress(IZUGFeRDExportableContact deliveryAddress) {
public Invoice setDeliveryAddress(IZUGFeRDExportableContact deliveryAddress) {
this.deliveryAddress = deliveryAddress;
return this;
}
@@ -393,7 +395,7 @@ public class ZUGFeRD2PushProvider implements IZUGFeRDExportableTransaction {
return ZFItems.toArray(new IZUGFeRDExportableItem[0]);
}
public ZUGFeRD2PushProvider addItem(IZUGFeRDExportableItem item) {
public Invoice addItem(IZUGFeRDExportableItem item) {
ZFItems.add(item);
return this;
}

View File

@@ -1,8 +1,7 @@
package org.mustangproject.ZUGFeRD;
package library.src.main.java.org.mustangproject;
import org.mustangproject.ZUGFeRD.IZUGFeRDAllowanceCharge;
import org.mustangproject.ZUGFeRD.IZUGFeRDExportableItem;
import org.mustangproject.ZUGFeRD.IZUGFeRDExportableProduct;
import java.math.BigDecimal;

View File

@@ -1,4 +1,4 @@
package org.mustangproject.ZUGFeRD;
package library.src.main.java.org.mustangproject;
import org.mustangproject.ZUGFeRD.IZUGFeRDExportableProduct;

View File

@@ -30,6 +30,8 @@ import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.*;
import library.src.main.java.org.mustangproject.Item;
import library.src.main.java.org.mustangproject.Product;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDDocumentNameDictionary;
import org.apache.pdfbox.pdmodel.PDEmbeddedFilesNameTreeNode;
@@ -809,13 +811,13 @@ public class ZUGFeRDImporter {
* returns a list of LineItems
* @return a List of LineItem instances
*/
public List<Item> getLineItemList() {
public List<library.src.main.java.org.mustangproject.Item> getLineItemList() {
List<Node> nodeList = getLineItemNodes();
List<Item> lineItemList = new ArrayList<>();
List<library.src.main.java.org.mustangproject.Item> lineItemList = new ArrayList<>();
for (Node n: nodeList
) {
Item lineItem = new Item(null, null, null);
library.src.main.java.org.mustangproject.Item lineItem = new Item(null, null, null);
lineItem.setProduct(new Product(null,null,null,null));
NodeList nl = n.getChildNodes();
@@ -848,16 +850,16 @@ public class ZUGFeRDImporter {
case "ram:SpecifiedTradeProduct":
node = getNodeByName(nn.getChildNodes(), "ram:SellerAssignedID");
lineItem.product.setSellerAssignedID(getNodeValue(node));
lineItem.getProduct().setSellerAssignedID(getNodeValue(node));
node = getNodeByName(nn.getChildNodes(), "ram:BuyerAssignedID");
lineItem.product.setBuyerAssignedID(getNodeValue(node));
lineItem.getProduct().setBuyerAssignedID(getNodeValue(node));
node = getNodeByName(nn.getChildNodes(), "ram:Name");
lineItem.product.setName(getNodeValue(node));
lineItem.getProduct().setName(getNodeValue(node));
node = getNodeByName(nn.getChildNodes(), "ram:Description");
lineItem.product.setDescription(getNodeValue(node));
lineItem.getProduct().setDescription(getNodeValue(node));
break;
case "ram:SpecifiedLineTradeDelivery":
@@ -871,7 +873,7 @@ public class ZUGFeRDImporter {
node = getNodeByName(nn.getChildNodes(), "ram:ApplicableTradeTax");
if (node != null) {
node = getNodeByName(node.getChildNodes(), "ram:RateApplicablePercent");
lineItem.product.setVATPercent(tryBigDecimal(getNodeValue(node)));
lineItem.getProduct().setVATPercent(tryBigDecimal(getNodeValue(node)));
}
node = getNodeByName(nn.getChildNodes(), "ram:ApplicableTradeTax");
@@ -892,7 +894,7 @@ public class ZUGFeRDImporter {
node = getNodeByName(nn.getChildNodes(), "ram:ApplicableTradeTax");
if (node != null) {
node = getNodeByName(node.getChildNodes(), "ram:ApplicablePercent");
lineItem.product.setVATPercent(tryBigDecimal(getNodeValue(node)));
lineItem.getProduct().setVATPercent(tryBigDecimal(getNodeValue(node)));
}
node = getNodeByName(nn.getChildNodes(), "ram:ApplicableTradeTax");

View File

@@ -1,23 +1,24 @@
package org.mustangproject.ZUGFeRD;
import org.w3c.dom.Document;
import library.src.main.java.org.mustangproject.Contact;
import library.src.main.java.org.mustangproject.Invoice;
import library.src.main.java.org.mustangproject.Item;
import library.src.main.java.org.mustangproject.Product;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.xpath.*;
import java.math.BigDecimal;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
public ZUGFeRDInvoiceImporter(String filename) {
super(filename);
}
public ZUGFeRD2PushProvider extractInvoice() {
public Invoice extractInvoice() {
String number="AB123";
ZUGFeRD2PushProvider zpp=new ZUGFeRD2PushProvider().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setOwnStreet("teststr").setOwnZIP("55232").setOwnLocation("teststadt").setOwnCountry("DE").setOwnTaxID("4711").setOwnVATID("0815").setRecipient(new Contact("Franz Müller", "0177123456", "fmueller@test.com", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number);
Invoice zpp=new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setOwnStreet("teststr").setOwnZIP("55232").setOwnLocation("teststadt").setOwnCountry("DE").setOwnTaxID("4711").setOwnVATID("0815").setRecipient(new Contact("Franz Müller", "0177123456", "fmueller@test.com", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number);
//.addItem(new Item(new Product("Testprodukt","","C62",new BigDecimal(0)),amount,new BigDecimal(1.0)))
zpp.setOwnOrganisationName(extractString("//SellerTradeParty/Name"));

View File

@@ -1,83 +1,80 @@
/** **********************************************************************
*
/**
* *********************************************************************
* <p>
* Copyright 2019 Jochen Staerk
*
* <p>
* Use is subject to license terms.
*
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at http://www.apache.org/licenses/LICENSE-2.0.
*
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*
* <p>
* See the License for the specific language governing permissions and
* limitations under the License.
*
*********************************************************************** */
package org.mustangproject.ZUGFeRD;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.util.Date;
* <p>
* **********************************************************************
*/
package library.src.test.java.org.mustangproject.ZUGFeRD;
import junit.framework.TestCase;
import library.src.main.java.org.mustangproject.Contact;
import library.src.main.java.org.mustangproject.Invoice;
import library.src.main.java.org.mustangproject.Item;
import library.src.main.java.org.mustangproject.Product;
import org.junit.FixMethodOrder;
import org.junit.runners.MethodSorters;
import org.mustangproject.ZUGFeRD.ZUGFeRD2PullProvider;
import org.mustangproject.ZUGFeRD.ZUGFeRDExporter;
import org.mustangproject.ZUGFeRD.ZUGFeRDExporterFromA3Factory;
import org.mustangproject.ZUGFeRD.ZUGFeRDImporter;
import junit.framework.TestCase;
import junit.framework.Test;
import junit.framework.TestSuite;
import org.xmlunit.builder.Input;
import org.xmlunit.xpath.JAXPXPathEngine;
import org.xmlunit.xpath.XPathEngine;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.util.Date;
import static org.xmlunit.assertj.XmlAssert.assertThat;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class ZF2PushTest extends TestCase {
final String TARGET_PDF = "./target/testout-ZF2Push.pdf";
public class XRTest extends TestCase {
public void testPushExport() {
// the writing part
String orgname="Test company";
String number="123";
String amountStr="1.00";
BigDecimal amount=new BigDecimal(amountStr);
try (InputStream SOURCE_PDF = this.getClass()
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505PDFA3.pdf");
String orgname = "Test company";
String number = "123";
String amountStr = "1.00";
BigDecimal amount = new BigDecimal(amountStr);
ZUGFeRDExporter ze = new ZUGFeRDExporterFromA3Factory().setProducer("My Application")
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).ignorePDFAErrors()
.load(SOURCE_PDF)) {
Invoice i = new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setOwnOrganisationName(orgname).setOwnStreet("teststr").setOwnZIP("55232").setOwnLocation("teststadt").setOwnCountry("DE").setOwnTaxID("4711").setOwnVATID("0815").setRecipient(new Contact("Franz Müller", "0177123456", "fmueller@test.com", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number).addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0)));
ze.PDFattachZugferdFile(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setOwnOrganisationName(orgname).setOwnStreet("teststr").setOwnZIP("55232").setOwnLocation("teststadt").setOwnCountry("DE").setOwnTaxID("4711").setOwnVATID("0815").setRecipient(new Contact("Franz Müller", "0177123456", "fmueller@test.com", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number).addItem(new Item(new Product("Testprodukt","","C62",new BigDecimal(0)),amount,new BigDecimal(1.0))));
String theXML = new String(ze.getProvider().getXML());
ZUGFeRD2PullProvider zf2p = new ZUGFeRD2PullProvider();
zf2p.generateXML(i);
String theXML = new String(zf2p.getXML());
assertTrue(theXML.contains("<rsm:CrossIndustryInvoice"));
ze.export(TARGET_PDF);
} catch (IOException e) {
fail("IOException should not be raised in testEdgeExport");
}
assertThat(theXML).valueByXPath("count(//*[local-name()='IncludedSupplyChainTradeLineItem'])")
.asInt()
.isEqualTo(1); //2 errors are OK because there is a known bug
// now check the contents (like MustangReaderTest)
ZUGFeRDImporter zi = new ZUGFeRDImporter(TARGET_PDF);
assertFalse(zi.getUTF8().contains("EUR"));
assertThat(theXML).valueByXPath("//*[local-name()='DuePayableAmount']")
.asDouble()
.isEqualTo(1);
// Reading ZUGFeRD
assertEquals(amountStr, zi.getAmount());
assertEquals(zi.getHolder(), orgname);
assertEquals(zi.getForeignReference(), number);
try {
assertEquals(zi.getVersion(), 2);
} catch (Exception e) {
e.printStackTrace();
}
}

View File

@@ -19,15 +19,15 @@
*********************************************************************** */
package org.mustangproject.ZUGFeRD;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import library.src.main.java.org.mustangproject.Contact;
import library.src.main.java.org.mustangproject.Invoice;
import library.src.main.java.org.mustangproject.Item;
import library.src.main.java.org.mustangproject.Product;
import org.junit.FixMethodOrder;
import org.junit.runners.MethodSorters;
@@ -56,7 +56,7 @@ public class ZF2PushTest extends TestCase {
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).ignorePDFAErrors()
.load(SOURCE_PDF)) {
ze.PDFattachZugferdFile(new ZUGFeRD2PushProvider().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setOwnOrganisationName(orgname).setOwnStreet("teststr").setOwnZIP("55232").setOwnLocation("teststadt").setOwnCountry("DE").setOwnTaxID("4711").setOwnVATID("0815").setRecipient(new Contact("Franz Müller", "0177123456", "fmueller@test.com", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number).addItem(new Item(new Product("Testprodukt","","C62",new BigDecimal(0)),amount,new BigDecimal(1.0))));
ze.PDFattachZugferdFile(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setOwnOrganisationName(orgname).setOwnStreet("teststr").setOwnZIP("55232").setOwnLocation("teststadt").setOwnCountry("DE").setOwnTaxID("4711").setOwnVATID("0815").setRecipient(new Contact("Franz Müller", "0177123456", "fmueller@test.com", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number).addItem(new Item(new Product("Testprodukt","","C62",new BigDecimal(0)),amount,new BigDecimal(1.0))));
String theXML = new String(ze.getProvider().getXML());
assertTrue(theXML.contains("<rsm:CrossIndustryInvoice"));
ze.export(TARGET_PDF);

View File

@@ -24,7 +24,6 @@ import junit.framework.TestSuite;
import org.junit.FixMethodOrder;
import org.junit.runners.MethodSorters;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
@@ -248,16 +247,16 @@ public class ZF2Test extends MustangReaderTestCase {
assertEquals(zi.getSellerTradePartyAddress().getCountryID(), "DE");
assertEquals(zi.getSellerTradePartyAddress().getCityName(), "Stadthausen");
List<org.mustangproject.ZUGFeRD.Item> li = zi.getLineItemList();
List<library.src.main.java.org.mustangproject.Item> li = zi.getLineItemList();
assertEquals(zi.getLineItemList().get(0).getId().toString(), "1");
assertEquals(zi.getLineItemList().get(0).product.getBuyerAssignedID(), "");
assertEquals(zi.getLineItemList().get(0).product.getSellerAssignedID(), "");
assertEquals(zi.getLineItemList().get(0).getProduct().getBuyerAssignedID(), "");
assertEquals(zi.getLineItemList().get(0).getProduct().getSellerAssignedID(), "");
assertEquals(zi.getLineItemList().get(0).getLineTotalAmount().toString(), "160.00");
assertEquals(zi.getLineItemList().get(0).getQuantity().toString(), "1.0000");
assertEquals(zi.getLineItemList().get(0).getGrossPrice().toString(), "160.0000");
assertEquals(zi.getLineItemList().get(0).product.getVATPercent().toString(), "7.00");
assertEquals(zi.getLineItemList().get(0).product.getName(), "Künstlerische Gestaltung (Stunde): Einer Beispielrechnung");
assertEquals(zi.getLineItemList().get(0).product.getDescription(), "");
assertEquals(zi.getLineItemList().get(0).getProduct().getVATPercent().toString(), "7.00");
assertEquals(zi.getLineItemList().get(0).getProduct().getName(), "Künstlerische Gestaltung (Stunde): Einer Beispielrechnung");
assertEquals(zi.getLineItemList().get(0).getProduct().getDescription(), "");
try {
assertEquals(zi.getVersion(), 2);

View File

@@ -19,15 +19,7 @@
*********************************************************************** */
package org.mustangproject.ZUGFeRD;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import library.src.main.java.org.mustangproject.Invoice;
import org.junit.FixMethodOrder;
import org.junit.runners.MethodSorters;
@@ -47,7 +39,7 @@ public class ZF2ZInvoiceImporterTest extends TestCase {
ZUGFeRDInvoiceImporter zii=new ZUGFeRDInvoiceImporter(TARGET_PDF);
ZUGFeRD2PushProvider invoice=zii.extractInvoice();
Invoice invoice=zii.extractInvoice();
// Reading ZUGFeRD
assertEquals("Bei Spiel GmbH", invoice.getOwnOrganisationName());
assertEquals(3, invoice.getZFItems().length);

View File

@@ -285,7 +285,7 @@ public class XMLValidator extends Validator {
context.addCustomXML("<info><version>" + ((context.getVersion() != null) ? context.getVersion() : "invalid")
+ "</version><profile>" + ((context.getProfile() != null) ? context.getProfile() : "invalid") +
"</profile><validator version=\"" + Main.class.getPackage().getImplementationVersion() + "\"></validator><rules><fired>" + firedRules + "</fired><failed>" + failedRules + "</failed></rules>" + "<duration unit='ms'>" + (endTime - startXMLTime) + "</duration></info>");
"</profile><validator version=\"" + XMLValidator.class.getPackage().getImplementationVersion() + "\"></validator><rules><fired>" + firedRules + "</fired><failed>" + failedRules + "</failed></rules>" + "<duration unit='ms'>" + (endTime - startXMLTime) + "</duration></info>");
}