diff --git a/History.md b/History.md
index fe57a7ee..92550031 100644
--- a/History.md
+++ b/History.md
@@ -1,5 +1,12 @@
+1.7.7
+=====
+
+- Refactored comparison operator for ChargeIndicator https://github.com/ZUGFeRD/mustangproject/pull/153
+- #148 support additional documents for items
+
1.7.6
=====
+2020-02-06
- support different ship to address
- allow for diffent namespace prefixes #140
diff --git a/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java b/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java
index 85b0577d..a4dfcc80 100644
--- a/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java
+++ b/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableItem.java
@@ -56,5 +56,9 @@ public interface IZUGFeRDExportableItem {
default String getCategoryCode() {
return TaxCategoryCodeTypeConstants.STANDARDRATE;
}
+
+ default String getAdditionalReferencedDocumentID() {
+ return null;
+ }
}
diff --git a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
index 8724edf8..af357eb0 100644
--- a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
+++ b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
@@ -357,16 +357,21 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
+ " \n" //$NON-NLS-1$
+ " \n" //$NON-NLS-1$
+ " VAT\n" //$NON-NLS-1$
- + " "+currentItem.getProduct().getTaxCategoryCode()+"\n" //$NON-NLS-1$
+ exemptionReason
+ + " "+currentItem.getProduct().getTaxCategoryCode()+"\n" //$NON-NLS-1$
+
+ " " //$NON-NLS-1$
+ vatFormat(currentItem.getProduct().getVATPercent()) + "\n" //$NON-NLS-1$
+ " \n" //$NON-NLS-1$
+ " \n" //$NON-NLS-1$
+ " " + currencyFormat(lc.getItemTotalNetAmount()) //$NON-NLS-1$
+ "\n" //$NON-NLS-1$ // currencyID=\"EUR\"
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
+ + " \n"; //$NON-NLS-1$
+ if (currentItem.getAdditionalReferencedDocumentID()!=null) {
+ xml=xml + " "+currentItem.getAdditionalReferencedDocumentID()+"130\n"; //$NON-NLS-1$
+
+ }
+ xml=xml + " \n" //$NON-NLS-1$
+ " \n"; //$NON-NLS-1$
}
@@ -490,9 +495,9 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
+ " " + currencyFormat(amount.getCalculated()) //$NON-NLS-1$
+ "\n" //$NON-NLS-1$ //currencyID=\"EUR\"
+ " VAT\n" //$NON-NLS-1$
+ + exemptionReason
+ " " + currencyFormat(amount.getBasis()) + "\n" // currencyID=\"EUR\"
+ " "+taxCategoryCode+"\n" //$NON-NLS-1$
- + exemptionReason
+ " " + vatFormat(currentTaxPercent) //$NON-NLS-1$
+ "\n" + " \n"; //$NON-NLS-2$
diff --git a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderTestCase.java b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderTestCase.java
index 099a70f5..4252e2cb 100644
--- a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderTestCase.java
+++ b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderTestCase.java
@@ -22,6 +22,8 @@ import junit.framework.TestCase;
import java.math.BigDecimal;
+import org.mustangproject.ZUGFeRD.MustangReaderTestCase.Item;
+
public abstract class MustangReaderTestCase extends TestCase implements IZUGFeRDExportableTransaction {
public MustangReaderTestCase(String testName) {
@@ -134,6 +136,11 @@ public abstract class MustangReaderTestCase extends TestCase implements IZUGFeRD
private BigDecimal price, quantity;
private IZUGFeRDExportableProduct product;
+ private String addReference=null;
+
+ public String getAdditionalReferencedDocumentID() {
+ return addReference;
+ }
@Override
public BigDecimal getPrice() {
@@ -172,6 +179,15 @@ public abstract class MustangReaderTestCase extends TestCase implements IZUGFeRD
return null;
}
+ public String getAddReference() {
+ return addReference;
+ }
+
+ public void setAddReference(String addReference) {
+ this.addReference = addReference;
+ }
+
+
}
protected class Product implements IZUGFeRDExportableProduct {
diff --git a/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java b/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java
index 1ec05af1..ef52b2a2 100644
--- a/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java
+++ b/src/test/java/org/mustangproject/ZUGFeRD/ZF2EdgeTest.java
@@ -30,6 +30,7 @@ import java.util.GregorianCalendar;
import org.junit.FixMethodOrder;
import org.junit.runners.MethodSorters;
+import org.mustangproject.ZUGFeRD.MustangReaderTestCase.Item;
import junit.framework.Test;
import junit.framework.TestSuite;
@@ -202,7 +203,9 @@ public class ZF2EdgeTest extends MustangReaderTestCase implements IZUGFeRDExport
// 103
EdgeProduct airProduct = new EdgeProduct("", "Heiße Luft pro Liter", "LTR");
- allItems[0] = new Item(new BigDecimal("160"), new BigDecimal("1"), designProduct);
+ Item design=new Item(new BigDecimal("160"), new BigDecimal("1"), designProduct);
+ design.setAddReference("1825");
+ allItems[0] = design;
allItems[1] = new Item(new BigDecimal("0.79"), new BigDecimal("400"), balloonProduct);
allItems[2] = new Item(new BigDecimal("0.10"), new BigDecimal("200"), airProduct);
return allItems;