diff --git a/library/src/main/java/org/mustangproject/Invoice.java b/library/src/main/java/org/mustangproject/Invoice.java index f879aad6..5a3bada0 100644 --- a/library/src/main/java/org/mustangproject/Invoice.java +++ b/library/src/main/java/org/mustangproject/Invoice.java @@ -28,7 +28,7 @@ import java.util.Date; public class Invoice implements IExportableTransaction { - 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, currency = null, paymentTermDescription = null; + 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, ownForeignOrganisationID = null, ownOrganisationName = null, currency = null, paymentTermDescription = null; protected Date issueDate = null, dueDate = null, deliveryDate = null; protected BigDecimal totalPrepaidAmount = null; protected TradeParty sender=null, recipient = null, deliveryAddress = null; @@ -81,6 +81,16 @@ public class Invoice implements IExportableTransaction { return this; } + /*** + * switch type to invoice correction and refer to document number + * @param number + * @return + */ + public Invoice setCorrection(String number) { + + return this; + } + @Override public String getOwnOrganisationFullPlaintextInfo() { return ownOrganisationFullPlaintextInfo; @@ -183,21 +193,21 @@ public class Invoice implements IExportableTransaction { @Override public String getOwnTaxID() { - return ownTaxID; + return getSender().getTaxID(); } public Invoice setOwnTaxID(String ownTaxID) { - this.ownTaxID = ownTaxID; + sender.addTaxID(ownTaxID); return this; } @Override public String getOwnVATID() { - return ownVATID; + return getSender().getVATID(); } public Invoice setOwnVATID(String ownVATID) { - this.ownVATID = ownVATID; + sender.addVATID(ownVATID); return this; } @@ -401,7 +411,7 @@ public class Invoice implements IExportableTransaction { * @return */ public boolean isValid() { - return (dueDate != null) && (sender != null) && (ownTaxID != null) && (ownVATID != null) && (recipient != null); + return (dueDate != null) && (sender != null) && (sender.getTaxID() != null) && (sender.getVATID() != null) && (recipient != null); //contact // this.phone = phone; // this.email = email; diff --git a/library/src/main/java/org/mustangproject/InvoiceCorrection.java b/library/src/main/java/org/mustangproject/InvoiceCorrection.java deleted file mode 100644 index 3a39fa4f..00000000 --- a/library/src/main/java/org/mustangproject/InvoiceCorrection.java +++ /dev/null @@ -1,31 +0,0 @@ -/** - * ********************************************************************* - *
- * Copyright 2018 Jochen Staerk - *
- * Use is subject to license terms. - *
- * 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. - *
- * 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. - *
- * See the License for the specific language governing permissions and - * limitations under the License. - *
- * **********************************************************************
- */
-package org.mustangproject;
-
-import org.mustangproject.ZUGFeRD.*;
-
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-
-public class InvoiceCorrection extends Invoice {
-
-}
diff --git a/library/src/main/java/org/mustangproject/TradeParty.java b/library/src/main/java/org/mustangproject/TradeParty.java
index 625dc08f..3311fbf5 100644
--- a/library/src/main/java/org/mustangproject/TradeParty.java
+++ b/library/src/main/java/org/mustangproject/TradeParty.java
@@ -6,6 +6,7 @@ import org.mustangproject.ZUGFeRD.IZUGFeRDExportableTradeParty;
public class TradeParty implements IZUGFeRDExportableTradeParty {
protected String name,zip,street,location,country;
+ protected String taxID=null, vatID=null;
protected Contact contact=null;
public TradeParty(String name, String street, String zip, String location, String country) {
@@ -22,6 +23,26 @@ public class TradeParty implements IZUGFeRDExportableTradeParty {
return this;
}
+ public TradeParty addTaxID(String taxID) {
+ this.taxID=taxID;
+ return this;
+ }
+
+ public TradeParty addVATID(String vatID) {
+ this.vatID=vatID;
+ return this;
+ }
+
+ @Override
+ public String getVATID() {
+ return vatID;
+ }
+
+ @Override
+ public String getTaxID() {
+ return taxID;
+ }
+
public String getName() {
return name;
}
diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java b/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java
index fdaf66a4..66653bcc 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java
@@ -165,7 +165,11 @@ public interface IExportableTransaction {
* @return Tax ID (not VAT ID) of the sender
*/
default String getOwnTaxID() {
- return null;
+ if (getSender()!=null) {
+ return getSender().getTaxID();
+ } else {
+ return null;
+ }
}
@@ -175,7 +179,11 @@ public interface IExportableTransaction {
* @return VAT ID (Umsatzsteueridentifikationsnummer) of the sender
*/
default String getOwnVATID() {
- return null;
+ if (getSender()!=null) {
+ return getSender().getVATID();
+ } else {
+ return null;
+ }
}
diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTradeParty.java b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTradeParty.java
index e5d7ba7b..62fc0f8b 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTradeParty.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTradeParty.java
@@ -18,12 +18,14 @@
*********************************************************************** */
package org.mustangproject.ZUGFeRD;
+import org.mustangproject.TradeParty;
+
/**
* Mustangproject's ZUGFeRD implementation neccessary interface for ZUGFeRD exporter Licensed under the APLv2
*
* @author jstaerk
- * @version 1.2.0
- * dated 2014-05-10
+ * @version 2.0.0
+ * dated 2020-09-12
*/
@@ -127,4 +129,14 @@ public interface IZUGFeRDExportableTradeParty {
return null;
}
+
+ /***
+ * obligatory for sender but not for recipient
+ * @return
+ */
+ default String getTaxID() {
+ return null;
+ }
+
+
}
diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderTestCase.java b/library/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderTestCase.java
index df3cb918..c0947bfc 100644
--- a/library/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderTestCase.java
+++ b/library/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderTestCase.java
@@ -109,7 +109,7 @@ public abstract class MustangReaderTestCase extends TestCase implements IExporta
}
protected class SenderTradeParty implements IZUGFeRDExportableTradeParty {
-
+
@Override
public String getName() {
@@ -136,6 +136,11 @@ public abstract class MustangReaderTestCase extends TestCase implements IExporta
return "Ecke 12";
}
+ @Override
+ public String getTaxID() {
+ return "0815";
+ }
+
}
protected class Item implements IZUGFeRDExportableItem {
diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java
index 8b755f5a..8f99ca82 100644
--- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java
+++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java
@@ -77,47 +77,6 @@ public class ZF2PushTest extends TestCase {
}
-
- public void testInvoiceCorrectionExport() {
-
- // 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_505.pdf");
-
- ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1().setProducer("My Application")
- .setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).ignorePDFAErrors()
- .load(SOURCE_PDF)) {
-
- ze.setTransaction(new InvoiceCorrection().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setContractReferencedDocument("0815").setSender(new TradeParty(orgname, "teststr","55232","teststadt","DE")).setOwnTaxID("4711").setOwnVATID("DE19990815").setRecipient(new TradeParty("Franz Müller", "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("