From 642b22d1f2a0f75b02da5011ed6da1a66d1b5a17 Mon Sep 17 00:00:00 2001 From: jstaerk Date: Fri, 18 Oct 2024 13:08:02 +0200 Subject: [PATCH] hide empty elements --- .../src/main/java/org/mustangproject/Invoice.java | 2 ++ library/src/main/java/org/mustangproject/Item.java | 2 ++ .../src/main/java/org/mustangproject/Product.java | 3 +++ .../src/main/java/org/mustangproject/TradeParty.java | 12 ++++++++++++ 4 files changed, 19 insertions(+) diff --git a/library/src/main/java/org/mustangproject/Invoice.java b/library/src/main/java/org/mustangproject/Invoice.java index 8461e977..546f059c 100644 --- a/library/src/main/java/org/mustangproject/Invoice.java +++ b/library/src/main/java/org/mustangproject/Invoice.java @@ -26,6 +26,7 @@ import java.util.Collection; import java.util.Date; import java.util.List; +import com.fasterxml.jackson.annotation.JsonInclude; import org.mustangproject.ZUGFeRD.*; import org.mustangproject.ZUGFeRD.model.DocumentCodeTypeConstants; @@ -37,6 +38,7 @@ import com.fasterxml.jackson.databind.annotation.JsonDeserialize; * @see IExportableTransaction if you want to implement an interface instead */ @JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(JsonInclude.Include.NON_EMPTY) 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, invoiceReferencedDocumentID = null, buyerOrderReferencedDocumentIssueDateTime = null, ownForeignOrganisationID = null, ownOrganisationName = null, currency = null, paymentTermDescription = null; diff --git a/library/src/main/java/org/mustangproject/Item.java b/library/src/main/java/org/mustangproject/Item.java index e15d93e7..d726ed08 100644 --- a/library/src/main/java/org/mustangproject/Item.java +++ b/library/src/main/java/org/mustangproject/Item.java @@ -1,6 +1,7 @@ package org.mustangproject; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; import org.mustangproject.ZUGFeRD.IReferencedDocument; import org.mustangproject.ZUGFeRD.IZUGFeRDAllowanceCharge; import org.mustangproject.ZUGFeRD.IZUGFeRDExportableItem; @@ -18,6 +19,7 @@ import java.util.Date; */ @JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(JsonInclude.Include.NON_EMPTY) public class Item implements IZUGFeRDExportableItem { protected BigDecimal price = BigDecimal.ZERO; protected BigDecimal quantity; diff --git a/library/src/main/java/org/mustangproject/Product.java b/library/src/main/java/org/mustangproject/Product.java index 1da0292e..1263d593 100644 --- a/library/src/main/java/org/mustangproject/Product.java +++ b/library/src/main/java/org/mustangproject/Product.java @@ -1,6 +1,7 @@ package org.mustangproject; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; import org.mustangproject.ZUGFeRD.IDesignatedProductClassification; import org.mustangproject.ZUGFeRD.IZUGFeRDExportableProduct; import org.mustangproject.util.NodeMap; @@ -17,6 +18,8 @@ import java.util.Map; * describes a product, good or service used in an invoice item line */ @JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(JsonInclude.Include.NON_EMPTY) + public class Product implements IZUGFeRDExportableProduct { protected String unit, name, sellerAssignedID, buyerAssignedID; protected String description=""; diff --git a/library/src/main/java/org/mustangproject/TradeParty.java b/library/src/main/java/org/mustangproject/TradeParty.java index e67567e4..a5408146 100644 --- a/library/src/main/java/org/mustangproject/TradeParty.java +++ b/library/src/main/java/org/mustangproject/TradeParty.java @@ -5,6 +5,7 @@ import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; +import com.fasterxml.jackson.annotation.JsonInclude; import org.mustangproject.ZUGFeRD.IZUGFeRDExportableContact; import org.mustangproject.ZUGFeRD.IZUGFeRDExportableTradeParty; import org.mustangproject.ZUGFeRD.IZUGFeRDLegalOrganisation; @@ -19,6 +20,7 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; * A organisation, i.e. usually a company */ @JsonIgnoreProperties(ignoreUnknown = true) +@JsonInclude(JsonInclude.Include.NON_EMPTY) public class TradeParty implements IZUGFeRDExportableTradeParty { protected String name, zip, street, location, country; @@ -500,6 +502,7 @@ public class TradeParty implements IZUGFeRDExportableTradeParty { return this; } + /** * (optional) * @@ -511,6 +514,14 @@ public class TradeParty implements IZUGFeRDExportableTradeParty { return this; } + /** + * primarily for invoiceimporter and JSON + * @return the list of sepa mandates + */ + public List getDebitDetails() { + return debitDetails; + } + @Override public IZUGFeRDLegalOrganisation getLegalOrganisation() { return legalOrg; @@ -670,6 +681,7 @@ public class TradeParty implements IZUGFeRDExportableTradeParty { return contact; } + @JsonIgnore public IZUGFeRDTradeSettlement[] getAsTradeSettlement() { if (bankDetails.isEmpty() && debitDetails.isEmpty()) { return null;