diff --git a/History.md b/History.md index b00ad79e..ffd3d011 100644 --- a/History.md +++ b/History.md @@ -51,7 +51,7 @@ switch - *use validator in tests of library - *USt 0% wird aus invoice-klasse noch nicht sauber abgefangen - *ownContact sollte in einen Contact schreiben -- new features additional docs, contract id, periods, corrected invoices, discounts +- new features additional docs, contract id, periods, corrected invoices, discounts, occurrence dates and periods Mustangproject 1.7.8 ===== diff --git a/library/src/main/java/org/mustangproject/Invoice.java b/library/src/main/java/org/mustangproject/Invoice.java index 22edf6b0..87720bc1 100644 --- a/library/src/main/java/org/mustangproject/Invoice.java +++ b/library/src/main/java/org/mustangproject/Invoice.java @@ -35,6 +35,9 @@ public class Invoice implements IExportableTransaction { protected ArrayList ZFItems = null; protected String contractReferencedDocument = null; + protected Date occurrenceDateFrom = null; + protected Date occurrenceDateTo = null; + protected ArrayList Allowances = new ArrayList(), Charges = new ArrayList(), LogisticsServiceCharges = new ArrayList(); protected IZUGFeRDTradeSettlement[] getTradeSettlement = null; @@ -433,4 +436,41 @@ public class Invoice implements IExportableTransaction { contractReferencedDocument=s; return this; } + + public Invoice setOccurrenceDate(Date occur) { + occurrenceDateFrom=occur; + occurrenceDateTo=null; + + return this; + } + + public Invoice setOccurrencePeriod(Date start, Date end) { + occurrenceDateFrom=start; + occurrenceDateTo=end; + + return this; + } + + @Override + public Date getOccurrenceDate() { + + return occurrenceDateFrom; + } + + @Override + public Date getOccurrencePeriodFrom() { + if (occurrenceDateTo!=null) { + return occurrenceDateFrom; + } else { + return null; + } + } + @Override + public Date getOccurrencePeriodTo() { + if (occurrenceDateTo!=null) { + return occurrenceDateTo; + } else { + return null; + } + } } diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java b/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java index 37b3970e..0d23f191 100644 --- a/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java +++ b/library/src/main/java/org/mustangproject/ZUGFeRD/IExportableTransaction.java @@ -393,4 +393,15 @@ public interface IExportableTransaction { default IZUGFeRDExportableContact getDeliveryAddress() { return null; } + + default Date getOccurrenceDate() { + return null; + } + + default Date getOccurrencePeriodFrom() { + return null; + } + default Date getOccurrencePeriodTo() { + return null; + } } diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java index 1163bb3e..6d247848 100644 --- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java +++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java @@ -178,7 +178,7 @@ public class ZF2PushTest extends TestCase { .setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).ignorePDFAErrors() .load(SOURCE_PDF)) { - ze.setTransaction(new Invoice().setCurrency("CHF").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) + ze.setTransaction(new Invoice().setCurrency("CHF").setDueDate(new Date()).setOccurrenceDate(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))) .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0))) .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), amount, new BigDecimal(1.0))) @@ -226,7 +226,7 @@ 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()).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) + ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setOccurrencePeriod(new Date(),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)), price, amount)) .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), price, amount)) .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), price, amount))