From adc981d98cd9c55934c8428a909dbd59fde18fa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jochen=20Sta=CC=88rk?= Date: Tue, 6 Oct 2020 12:22:57 +0200 Subject: [PATCH] add document level billing period --- .../mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java | 12 ++++++++++++ .../java/org/mustangproject/ZUGFeRD/ZF2PushTest.java | 9 ++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java index f3709e01..a5f1ff17 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java @@ -516,6 +516,18 @@ public class ZUGFeRD2PullProvider implements IXMLProvider { + "\n" + " \n"; //$NON-NLS-2$ } + } + if ((trans.getOccurrencePeriodFrom()!=null) || (trans.getOccurrencePeriodTo()!=null)) { + xml=xml+""; + if (trans.getOccurrencePeriodFrom()!=null) { + xml=xml+""+zugferdDateFormat.format(trans.getOccurrencePeriodFrom())+""; + } + if (trans.getOccurrencePeriodTo()!=null) { + xml=xml+""+zugferdDateFormat.format(trans.getOccurrencePeriodTo())+""; + } + xml=xml+""; + + } if ((trans.getZFCharges()!=null)&&(trans.getZFCharges().length>0)) { diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java index c0bb2fce..44df2614 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java @@ -22,6 +22,8 @@ package org.mustangproject.ZUGFeRD; import java.io.IOException; import java.io.InputStream; import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.Date; import org.mustangproject.*; @@ -54,10 +56,15 @@ public class ZF2PushTest extends TestCase { .setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).ignorePDFAErrors() .load(SOURCE_PDF)) { - ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setContractReferencedDocument("0815").setSender(new TradeParty(orgname,"teststr", "55232","teststadt","DE").addBankDetails(new BankDetails("777666555","DE4321"))).setOwnTaxID("4711").setOwnVATID("DE19990815").setRecipient(new TradeParty("Franz Müller","teststr.12", "55232", "Entenhausen", "DE").setContact(new Contact("nameRep", "phoneRep", "emailRep@test.com"))).setNumber(number).addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)))); + try { + ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setOccurrencePeriod(new SimpleDateFormat("yyyy-MM-dd").parse("2020-10-01"), new SimpleDateFormat("yyyy-MM-dd").parse("2020-10-05")).setContractReferencedDocument("0815").setSender(new TradeParty(orgname, "teststr", "55232", "teststadt", "DE").addBankDetails(new BankDetails("777666555", "DE4321"))).setOwnTaxID("4711").setOwnVATID("DE19990815").setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").setContact(new Contact("nameRep", "phoneRep", "emailRep@test.com"))).setNumber(number).addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)))); + } catch (ParseException ex) { + throw new RuntimeException("Parse exception"); + } String theXML = new String(ze.getProvider().getXML()); assertTrue(theXML.contains("777666555")); //the iban assertTrue(theXML.contains("