From 56484ae5244b105fc2b4951c06dfae4bcf5d4292 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jochen=20Sta=CC=88rk?= Date: Sun, 16 Feb 2020 18:41:10 +0100 Subject: [PATCH] closes #148 --- History.md | 7 +++++++ .../ZUGFeRD/IZUGFeRDExportableItem.java | 4 ++++ .../ZUGFeRD/ZUGFeRD2PullProvider.java | 13 +++++++++---- .../ZUGFeRD/MustangReaderTestCase.java | 16 ++++++++++++++++ .../org/mustangproject/ZUGFeRD/ZF2EdgeTest.java | 5 ++++- 5 files changed, 40 insertions(+), 5 deletions(-) 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;