diff --git a/library/src/main/java/org/mustangproject/Allowance.java b/library/src/main/java/org/mustangproject/Allowance.java
index 14befb7d..3ad5b8d1 100644
--- a/library/src/main/java/org/mustangproject/Allowance.java
+++ b/library/src/main/java/org/mustangproject/Allowance.java
@@ -9,8 +9,8 @@ public class Allowance extends Charge implements IZUGFeRDAllowanceCharge {
public Allowance() {
}
- public Allowance(BigDecimal totalAmount, BigDecimal taxPercent, String reason, String categoryCode) {
- super(totalAmount, taxPercent, reason, categoryCode);
+ public Allowance(BigDecimal totalAmount) {
+ super(totalAmount);
}
diff --git a/library/src/main/java/org/mustangproject/Charge.java b/library/src/main/java/org/mustangproject/Charge.java
index e6ca1ab5..ccc4606f 100644
--- a/library/src/main/java/org/mustangproject/Charge.java
+++ b/library/src/main/java/org/mustangproject/Charge.java
@@ -1,6 +1,7 @@
package org.mustangproject;
import org.mustangproject.ZUGFeRD.IZUGFeRDAllowanceCharge;
+import org.mustangproject.ZUGFeRD.IZUGFeRDExportableItem;
import java.math.BigDecimal;
@@ -16,11 +17,12 @@ public class Charge implements IZUGFeRDAllowanceCharge {
}
- public Charge(BigDecimal totalAmount, BigDecimal taxPercent, String reason, String categoryCode) {
+ /***
+ * creates a item level or invoice level charge
+ * @param totalAmount (the absolute amount)
+ */
+ public Charge(BigDecimal totalAmount) {
this.totalAmount = totalAmount;
- this.taxPercent = taxPercent;
- this.reason = reason;
- this.categoryCode = categoryCode;
}
@@ -52,11 +54,21 @@ public class Charge implements IZUGFeRDAllowanceCharge {
@Override
- public BigDecimal getTotalAmount() {
- return totalAmount;
+ public BigDecimal getTotalAmount(IZUGFeRDExportableItem currentItem) {
+ if (totalAmount!=null) {
+ return totalAmount;
+ } else if (percent!=null) {
+ return currentItem.getPrice().multiply(getPercent().divide(new BigDecimal(100)));
+ } else {
+ throw new RuntimeException("Either totalAmount or percent must be set");
+ }
}
+ public BigDecimal getPercent() {
+ return percent;
+ }
+
@Override
public BigDecimal getTaxPercent() {
return taxPercent;
diff --git a/library/src/main/java/org/mustangproject/Contact.java b/library/src/main/java/org/mustangproject/Contact.java
index 55889a25..74f92669 100644
--- a/library/src/main/java/org/mustangproject/Contact.java
+++ b/library/src/main/java/org/mustangproject/Contact.java
@@ -6,6 +6,12 @@ public class Contact implements IZUGFeRDExportableContact {
protected String name,phone,email,zip,street,location,country;
+ public Contact(String name, String phone, String email) {
+ this.name = name;
+ this.phone = phone;
+ this.email = email;
+
+ }
public Contact(String name, String phone, String email, String street, String zip, String location, String country) {
this.name = name;
this.phone = phone;
diff --git a/library/src/main/java/org/mustangproject/Invoice.java b/library/src/main/java/org/mustangproject/Invoice.java
index 5a3bada0..c0473b94 100644
--- a/library/src/main/java/org/mustangproject/Invoice.java
+++ b/library/src/main/java/org/mustangproject/Invoice.java
@@ -196,6 +196,11 @@ public class Invoice implements IExportableTransaction {
return getSender().getTaxID();
}
+
+ @Deprecated
+ /***
+ * @deprecated use TradeParty::addTaxID instead
+ */
public Invoice setOwnTaxID(String ownTaxID) {
sender.addTaxID(ownTaxID);
return this;
@@ -206,6 +211,10 @@ public class Invoice implements IExportableTransaction {
return getSender().getVATID();
}
+ @Deprecated
+ /***
+ * @deprecated use TradeParty::addVATID instead
+ */
public Invoice setOwnVATID(String ownVATID) {
sender.addVATID(ownVATID);
return this;
diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDAllowanceCharge.java b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDAllowanceCharge.java
index 6e8ec8f6..bcca7aec 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDAllowanceCharge.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDAllowanceCharge.java
@@ -24,7 +24,7 @@ import java.math.BigDecimal;
*/
public interface IZUGFeRDAllowanceCharge {
- BigDecimal getTotalAmount();
+ BigDecimal getTotalAmount(IZUGFeRDExportableItem currentItem);
String getReason();
diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/LineCalc.java b/library/src/main/java/org/mustangproject/ZUGFeRD/LineCalc.java
index cd75c7ac..39511cb0 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/LineCalc.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/LineCalc.java
@@ -8,19 +8,25 @@ public class LineCalc {
private BigDecimal priceGross;
private BigDecimal itemTotalNetAmount;
private BigDecimal itemTotalVATAmount;
- private BigDecimal allowance=new BigDecimal(0);
+ private BigDecimal allowance = new BigDecimal(0);
+ private BigDecimal charge = new BigDecimal(0);
public LineCalc(IZUGFeRDExportableItem currentItem) {
- if (currentItem.getItemAllowances()!=null && currentItem.getItemAllowances().length>0) {
- for (IZUGFeRDAllowanceCharge allowance:currentItem.getItemAllowances()) {
- addAllowance(allowance.getTotalAmount());
+ if (currentItem.getItemAllowances() != null && currentItem.getItemAllowances().length > 0) {
+ for (IZUGFeRDAllowanceCharge allowance : currentItem.getItemAllowances()) {
+ addAllowance(allowance.getTotalAmount(currentItem));
+ }
+ }
+ if (currentItem.getItemCharges() != null && currentItem.getItemCharges().length > 0) {
+ for (IZUGFeRDAllowanceCharge charge : currentItem.getItemCharges()) {
+ addCharge(charge.getTotalAmount(currentItem));
}
}
BigDecimal multiplicator = currentItem.getProduct().getVATPercent().divide(new BigDecimal(100))
.add(new BigDecimal(1));
priceGross = currentItem.getPrice(); // see https://github.com/ZUGFeRD/mustangproject/issues/159
- price = priceGross.subtract(allowance);
+ price = priceGross.subtract(allowance).add(charge);
totalGross = currentItem.getQuantity().multiply(getPrice()).divide(currentItem.getBasisQuantity())
.multiply(multiplicator);
itemTotalNetAmount = currentItem.getQuantity().multiply(getPrice()).divide(currentItem.getBasisQuantity())
@@ -49,9 +55,13 @@ public class LineCalc {
public BigDecimal getPriceGross() {
return priceGross;
}
- public void addAllowance(BigDecimal b) {
- allowance=b;
+ public void addAllowance(BigDecimal b) {
+ allowance = allowance.add(b);
+ }
+
+ public void addCharge(BigDecimal b) {
+ charge = charge.add(b);
}
diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
index 242b3f2a..dbcdbc86 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
@@ -1,21 +1,23 @@
-/** **********************************************************************
- *
+/**
+ * *********************************************************************
+ *
* Copyright 2018 Jochen Staerk
- *
+ *
* Use is subject to license terms.
- *
+ *
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at http://www.apache.org/licenses/LICENSE-2.0.
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *
+ *
* See the License for the specific language governing permissions and
* limitations under the License.
- *
- *********************************************************************** */
+ *
+ * **********************************************************************
+ */
package org.mustangproject.ZUGFeRD;
import java.io.IOException;
@@ -33,7 +35,6 @@ import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
-import org.mustangproject.Charge;
import org.mustangproject.XMLTools;
public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
@@ -160,7 +161,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
protected String getTradePartyAsXML(IZUGFeRDExportableTradeParty contact) {
String xml = "";
- // According EN16931 either GlobalID or seller assigned ID might be present for BuyerTradeParty
+ // According EN16931 either GlobalID or seller assigned ID might be present for BuyerTradeParty
// and ShipToTradeParty, but not both. Prefer seller assigned ID for now.
if (contact.getID()!=null) {
xml += " " + XMLTools.encodeXML(contact.getID()) + "\n";
@@ -201,19 +202,19 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
public void generateXML(IExportableTransaction trans) {
this.trans = trans;
- boolean hasDueDate=false;
- String taxCategoryCode="";
+ boolean hasDueDate = false;
+ String taxCategoryCode = "";
SimpleDateFormat germanDateFormat = new SimpleDateFormat("dd.MM.yyyy");
- String exemptionReason="";
+ String exemptionReason = "";
- if (trans.getPaymentTermDescription()!=null) {
- paymentTermsDescription=trans.getPaymentTermDescription();
+ if (trans.getPaymentTermDescription() != null) {
+ paymentTermsDescription = trans.getPaymentTermDescription();
}
- if (paymentTermsDescription==null) {
- paymentTermsDescription= "Zahlbar ohne Abzug bis " + germanDateFormat.format(trans.getDueDate());
-
+ if (paymentTermsDescription == null) {
+ paymentTermsDescription = "Zahlbar ohne Abzug bis " + germanDateFormat.format(trans.getDueDate());
+
}
String senderReg = "";
@@ -232,15 +233,15 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
}
String subjectNote = "";
- if (trans.getSubjectNote()!=null) {
+ if (trans.getSubjectNote() != null) {
subjectNote = "\n" + " "
- + XMLTools.encodeXML(trans.getSubjectNote())+ "\n"
+ + XMLTools.encodeXML(trans.getSubjectNote()) + "\n"
+ "\n";
}
- String typecode="380";
- if (trans.getDocumentCode()!=null) {
- typecode=trans.getDocumentCode();
+ String typecode = "380";
+ if (trans.getDocumentCode() != null) {
+ typecode = trans.getDocumentCode();
}
String xml = "\n"
@@ -265,9 +266,9 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
+ " " + typecode + "\n"
+ " "
+ zugferdDateFormat.format(trans.getIssueDate()) + "\n" // date
- // format
- // was
- // 20130605
+ // format
+ // was
+ // 20130605
+ subjectNote
+ rebateAgreement
+ senderReg
@@ -277,36 +278,35 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
int lineID = 0;
for (IZUGFeRDExportableItem currentItem : trans.getZFItems()) {
lineID++;
- taxCategoryCode=currentItem.getProduct().getTaxCategoryCode();
- if (currentItem.getProduct().getTaxExemptionReason() != null) {
- exemptionReason="" + XMLTools.encodeXML(currentItem.getProduct().getTaxExemptionReason()) + "";
+ taxCategoryCode = currentItem.getProduct().getTaxCategoryCode();
+ if (currentItem.getProduct().getTaxExemptionReason() != null) {
+ exemptionReason = "" + XMLTools.encodeXML(currentItem.getProduct().getTaxExemptionReason()) + "";
}
-
+
LineCalc lc = new LineCalc(currentItem);
xml = xml + " \n" +
" \n"
+ " " + lineID + "\n" //$NON-NLS-2$
+ " \n"
+ " \n";
- // + " 4012345001235\n"
+ // + " 4012345001235\n"
if (currentItem.getProduct().getSellerAssignedID() != null) {
- xml = xml + " "
- + XMLTools.encodeXML(currentItem.getProduct().getSellerAssignedID()) + "\n";
+ xml = xml + " "
+ + XMLTools.encodeXML(currentItem.getProduct().getSellerAssignedID()) + "\n";
}
if (currentItem.getProduct().getBuyerAssignedID() != null) {
- xml = xml + " "
- + XMLTools.encodeXML(currentItem.getProduct().getBuyerAssignedID()) + "\n";
+ xml = xml + " "
+ + XMLTools.encodeXML(currentItem.getProduct().getBuyerAssignedID()) + "\n";
}
-
- String allowanceStr=" " + quantityFormat(currentItem.getBasisQuantity()) +"\n";
- if (currentItem.getItemAllowances()!=null && currentItem.getItemAllowances().length>0) {
- for (IZUGFeRDAllowanceCharge allowance:currentItem.getItemAllowances()) {
- if (allowance.isCharge()) {
- throw new RuntimeException("Item level charges are not yet implemented");
- } else {
- allowanceStr= "false"+priceFormat(allowance.getTotalAmount())+"";
- }
+ String allowanceChargeStr = "";
+ if (currentItem.getItemAllowances() != null && currentItem.getItemAllowances().length > 0) {
+ for (IZUGFeRDAllowanceCharge allowance : currentItem.getItemAllowances()) {
+ allowanceChargeStr = "false" + priceFormat(allowance.getTotalAmount(currentItem)) + "";
+ }
+ }
+ if (currentItem.getItemCharges() != null && currentItem.getItemCharges().length > 0) {
+ for (IZUGFeRDAllowanceCharge charge : currentItem.getItemCharges()) {
+ allowanceChargeStr += "true" + priceFormat(charge.getTotalAmount(currentItem)) + "";
}
}
@@ -319,18 +319,20 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
+ " \n"
+ " " + priceFormat(lc.getPriceGross())
+ "\n" //currencyID=\"EUR\"
- + allowanceStr
- // + " \n"
- // + " false\n"
- // + " 0.6667\n"
- // + " Rabatt\n"
- // + " \n"
- + " \n"
+ + allowanceChargeStr +
+ "" + quantityFormat(currentItem.getBasisQuantity()) + "\n"
+ // + " \n"
+ // + " false\n"
+ // + " 0.6667\n"
+ // + " Rabatt\n"
+ // + " \n"
+ +" \n"
+ " \n"
+ " " + priceFormat(lc.getPrice())
+ "\n" // currencyID=\"EUR\"
+ " " + quantityFormat(currentItem.getBasisQuantity()) +"\n"
+ + "\">" + quantityFormat(currentItem.getBasisQuantity()) + "\n"
+ " \n"
+ " \n"
@@ -342,8 +344,8 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
+ " \n"
+ " VAT\n"
+ exemptionReason
- + " "+currentItem.getProduct().getTaxCategoryCode()+"\n"
-
+ + " " + currentItem.getProduct().getTaxCategoryCode() + "\n"
+
+ " "
+ vatFormat(currentItem.getProduct().getVATPercent()) + "\n"
+ " \n"
@@ -351,11 +353,11 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
+ " " + currencyFormat(lc.getItemTotalNetAmount())
+ "\n" // currencyID=\"EUR\"
+ " \n";
- if (currentItem.getAdditionalReferencedDocumentID()!=null) {
- xml=xml + " "+currentItem.getAdditionalReferencedDocumentID()+"130\n";
-
- }
- xml=xml + " \n"
+ if (currentItem.getAdditionalReferencedDocumentID() != null) {
+ xml = xml + " " + currentItem.getAdditionalReferencedDocumentID() + "130\n";
+
+ }
+ xml = xml + " \n"
+ " \n";
}
@@ -366,18 +368,18 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
}
xml = xml + " \n";
- if (trans.getOwnForeignOrganisationID()!=null) {
+ if (trans.getOwnForeignOrganisationID() != null) {
xml = xml + " " + XMLTools.encodeXML(trans.getOwnForeignOrganisationID()) + "\n";
}
-
- if ((trans.getSender()!=null)&&(trans.getSender().getGlobalID()!=null)&&(trans.getSender().getGlobalIDScheme()!=null)) {
+
+ if ((trans.getSender() != null) && (trans.getSender().getGlobalID() != null) && (trans.getSender().getGlobalIDScheme() != null)) {
xml = xml + " "
- + XMLTools.encodeXML(trans.getSender().getGlobalID()) + "\n";
+ + XMLTools.encodeXML(trans.getSender().getGlobalID()) + "\n";
}
xml = xml + " " + XMLTools.encodeXML(trans.getSender().getName()) + "\n"; //$NON-NLS-2$
- if ((trans.getOwnVATID()!=null)&&(trans.getOwnOrganisationName()!=null)) {
-
+ if ((trans.getOwnVATID() != null) && (trans.getOwnOrganisationName() != null)) {
+
xml = xml + " \n" + " "
+ XMLTools.encodeXML(trans.getOwnVATID()) + "\n" + " "
+ XMLTools.encodeXML(trans.getOwnOrganisationName()) + "\n"
@@ -416,24 +418,27 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
+ " \n"
+ " \n"
+ " \n";
+ // + " GE2020211\n"
+ // + " 4000001987658\n"
+
xml+=getTradePartyAsXML(trans.getRecipient());
xml += " \n";
- if (trans.getBuyerOrderReferencedDocumentID()!=null) {
+ if (trans.getBuyerOrderReferencedDocumentID() != null) {
xml = xml + " \n"
- + " "
- + XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + "\n"
- + " \n";
+ + " "
+ + XMLTools.encodeXML(trans.getBuyerOrderReferencedDocumentID()) + "\n"
+ + " \n";
}
- xml = xml + " \n"
- + " \n" ;
- if (this.trans.getDeliveryAddress()!=null) {
- xml += ""+
- getTradePartyAsXML(this.trans.getDeliveryAddress())+
- "";
+ xml = xml + " \n"
+ + " \n";
+ if (this.trans.getDeliveryAddress() != null) {
+ xml += "" +
+ getTradePartyAsXML(this.trans.getDeliveryAddress()) +
+ "";
}
-
- xml+= " \n"
+
+ xml += " \n"
+ " ";
if (trans.getDeliveryDate() != null) {
@@ -454,21 +459,21 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
+ " " + XMLTools.encodeXML(trans.getNumber()) + "\n" //$NON-NLS-2$
+ " " + trans.getCurrency() + "\n";
- if (trans.getTradeSettlementPayment()!=null) {
+ if (trans.getTradeSettlementPayment() != null) {
for (IZUGFeRDTradeSettlementPayment payment : trans.getTradeSettlementPayment()) {
- if(payment!=null) {
- hasDueDate=true;
- xml+=payment.getSettlementXML();
+ if (payment != null) {
+ hasDueDate = true;
+ xml += payment.getSettlementXML();
}
}
}
- if (trans.getTradeSettlement()!=null) {
+ if (trans.getTradeSettlement() != null) {
for (IZUGFeRDTradeSettlement payment : trans.getTradeSettlement()) {
- if(payment!=null) {
+ if (payment != null) {
if (payment instanceof IZUGFeRDTradeSettlementPayment) {
- hasDueDate=true;
+ hasDueDate = true;
}
- xml+=payment.getSettlementXML();
+ xml += payment.getSettlementXML();
}
}
}
@@ -483,7 +488,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
+ " VAT\n"
+ exemptionReason
+ " " + currencyFormat(amount.getBasis()) + "\n" // currencyID=\"EUR\"
- + " "+taxCategoryCode+"\n"
+ + " " + taxCategoryCode + "\n"
+ " " + vatFormat(currentTaxPercent)
+ "\n" + " \n"; //$NON-NLS-2$
@@ -502,7 +507,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
}
}
- if (hasDueDate && (trans.getDueDate()!=null)) {
+ if (hasDueDate && (trans.getDueDate() != null)) {
xml = xml + " " // $NON-NLS-2$
+ zugferdDateFormat.format(trans.getDueDate())
+ "\n";// 20130704
@@ -515,24 +520,24 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
xml = xml + " \n"
+ " " + currencyFormat(getTotal()) + "\n" //$NON-NLS-2$
- // currencyID=\"EUR\"
+ // currencyID=\"EUR\"
+ " 0.00\n"
+ " 0.00\n" //
- // currencyID=\"EUR\"
+ // currencyID=\"EUR\"
// + " 5.80\n"
// + " 14.73\n"
+ " " + currencyFormat(getTotal()) + "\n" //$NON-NLS-2$
- // //
- // currencyID=\"EUR\"
+ // //
+ // currencyID=\"EUR\"
+ " "
+ currencyFormat(getTotalGross().subtract(getTotal())) + "\n"
+ " " + currencyFormat(getTotalGross()) + "\n" //$NON-NLS-2$
- // //
- // currencyID=\"EUR\"
+ // //
+ // currencyID=\"EUR\"
+ " " + currencyFormat(getTotalPrepaid()) + "\n"
+ " " + currencyFormat(getTotalGross().subtract(getTotalPrepaid())) + "\n" //$NON-NLS-2$
- // //
- // currencyID=\"EUR\"
+ // //
+ // currencyID=\"EUR\"
+ " \n"
+ " \n";
// + " \n"
@@ -594,7 +599,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider, IProfileProvider {
paymentTermsXml += "";
paymentTermsXml += "" + zugferdDateFormat.format(baseDate) + "";
paymentTermsXml += "";
-
+
paymentTermsXml += ""
+ discountTerms.getBasePeriodMeasure() + "";
}
diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/IZUGFeRDAllowanceChargeImpl.java b/library/src/test/java/org/mustangproject/ZUGFeRD/IZUGFeRDAllowanceChargeImpl.java
index 041cb557..23203647 100644
--- a/library/src/test/java/org/mustangproject/ZUGFeRD/IZUGFeRDAllowanceChargeImpl.java
+++ b/library/src/test/java/org/mustangproject/ZUGFeRD/IZUGFeRDAllowanceChargeImpl.java
@@ -27,7 +27,7 @@ public class IZUGFeRDAllowanceChargeImpl implements IZUGFeRDAllowanceCharge {
boolean isCharge=true;
@Override
- public BigDecimal getTotalAmount() {
+ public BigDecimal getTotalAmount(IZUGFeRDExportableItem currentItem) {
return totalAmount;
}
diff --git a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java
index 7f959ff5..4450f9f8 100644
--- a/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java
+++ b/library/src/test/java/org/mustangproject/ZUGFeRD/ZF2PushTest.java
@@ -35,6 +35,7 @@ import junit.framework.TestCase;
public class ZF2PushTest extends TestCase {
final String TARGET_PDF = "./target/testout-ZF2Push.pdf";
final String TARGET_CORRECTIONPDF = "./target/testout-ZF2PushCorrection.pdf";
+ final String TARGET_ITEMCHARGESALLOWANCESPDF = "./target/testout-ZF2PushItemChargesAllowances.pdf";
final String TARGET_CHARGESALLOWANCESPDF = "./target/testout-ZF2PushChargesAllowances.pdf";
public void testPushExport() {
@@ -134,27 +135,32 @@ public class ZF2PushTest extends TestCase {
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1().setProducer("My Application")
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).ignorePDFAErrors()
.load(SOURCE_PDF)) {
-
ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname,"teststr", "55232","teststadt","DE")).setOwnTaxID("4711").setOwnVATID("DE0815").setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number)
- .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)).addAllowance(new Allowance(new BigDecimal(0.1),new BigDecimal(0), "","K")))
- .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)))
- .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)))
+ .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)).addAllowance(new Allowance().setPercent(new BigDecimal(50)))));
+
+ /*
+ ze.setTransaction(new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty(orgname,"teststr", "55232","teststadt","DE")).setOwnTaxID("4711").setOwnVATID("DE0815").setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number)
+ .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)).addAllowance(new Allowance(new BigDecimal("0.1"))))
+ .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)).addAllowance(new Allowance().setPercent(new BigDecimal(50))))
+ .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(2.0)).addCharge(new Charge(new BigDecimal(1))))
+ .addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(19)), amount, new BigDecimal(1.0)).addCharge(new Charge(new BigDecimal(1))).addAllowance(new Allowance(new BigDecimal("1"))))
);
+ */
String theXML = new String(ze.getProvider().getXML());
assertTrue(theXML.contains("