diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java
index a3d89bbf..2a8b8eb4 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD1PullProvider.java
@@ -20,6 +20,7 @@
*/
package org.mustangproject.ZUGFeRD;
+import static org.mustangproject.ZUGFeRD.ZUGFeRDDateFormat.DATE;
import static org.mustangproject.ZUGFeRD.model.TaxCategoryCodeTypeConstants.CATEGORY_CODES_WITH_EXEMPTION_REASON;
import java.io.IOException;
@@ -46,8 +47,7 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
protected byte[] zugferdData;
private String paymentTermsDescription;
- SimpleDateFormat zugferdDateFormat = new SimpleDateFormat("yyyyMMdd");
- protected Profile profile = Profiles.getByName("COMFORT", 1);
+ protected Profile profile = Profiles.getByName("COMFORT", 1);
/**
@@ -169,8 +169,8 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
+ " " + XMLTools.encodeXML(trans.getNumber()) + "\n"
+ " RECHNUNG\n"
+ " " + typecode + "\n"
- + " "
- + zugferdDateFormat.format(trans.getIssueDate()) + "\n" // date
+ + " "
+ + DATE.udtFormat(trans.getIssueDate()) + "\n" // date
// format
// was
// 20130605
@@ -225,8 +225,7 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
+ " ";
if (trans.getDeliveryDate() != null) {
- xml += "" + zugferdDateFormat.format(trans.getDeliveryDate())
- + "";
+ xml += DATE.udtFormat(trans.getDeliveryDate());
} else {
throw new IllegalStateException("No delivery date provided");
}
@@ -292,9 +291,9 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
}
if (hasDueDate && (trans.getDueDate() != null)) {
- xml = xml + " " // $NON-NLS-2$
- + zugferdDateFormat.format(trans.getDueDate())
- + "\n";// 20130704
+ xml = xml + " " // $NON-NLS-2$
+ + DATE.udtFormat(trans.getDueDate())
+ + "\n";// 20130704
}
xml = xml + " \n";
@@ -440,8 +439,7 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
paymentTermsXml += "" + paymentTerms.getDescription() + "";
if (dueDate != null) {
paymentTermsXml += "";
- paymentTermsXml += ""
- + zugferdDateFormat.format(dueDate.getDate()) + "";
+ paymentTermsXml += DATE.udtFormat(dueDate) ;
paymentTermsXml += "";
}
@@ -456,7 +454,7 @@ public class ZUGFeRD1PullProvider extends ZUGFeRD2PullProvider implements IXMLPr
if (discountTerms.getBaseDate() != null) {
final Date baseDate = discountTerms.getBaseDate();
paymentTermsXml += "";
- paymentTermsXml += "" + zugferdDateFormat.format(baseDate) + "";
+ paymentTermsXml += DATE.udtFormat(baseDate) ;
paymentTermsXml += "";
paymentTermsXml += ""
diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
index 3a028126..dd07f767 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
@@ -20,6 +20,7 @@
*/
package org.mustangproject.ZUGFeRD;
+import static org.mustangproject.ZUGFeRD.ZUGFeRDDateFormat.DATE;
import static org.mustangproject.ZUGFeRD.model.DocumentCodeTypeConstants.CORRECTEDINVOICE;
import static org.mustangproject.ZUGFeRD.model.TaxCategoryCodeTypeConstants.CATEGORY_CODES_WITH_EXEMPTION_REASON;
@@ -44,9 +45,7 @@ import org.mustangproject.XMLTools;
public class ZUGFeRD2PullProvider implements IXMLProvider {
- //// MAIN CLASS
- protected SimpleDateFormat zugferdDateFormat = new SimpleDateFormat("yyyyMMdd");
- protected byte[] zugferdData;
+ protected byte[] zugferdData;
protected IExportableTransaction trans;
protected TransactionCalculator calc;
private String paymentTermsDescription;
@@ -292,8 +291,8 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
// + " RECHNUNG\n"
// + " 380\n"
+ " " + typecode + "\n"
- + " "
- + zugferdDateFormat.format(trans.getIssueDate()) + "\n" // date
+ + " "
+ + DATE.udtFormat(trans.getIssueDate()) + "\n" // date
+ notes
+ subjectNote
+ rebateAgreement
@@ -387,10 +386,10 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
if ((currentItem.getDetailedDeliveryPeriodFrom() != null) || (currentItem.getDetailedDeliveryPeriodTo() != null)) {
xml = xml + "";
if (currentItem.getDetailedDeliveryPeriodFrom() != null) {
- xml = xml + "" + zugferdDateFormat.format(currentItem.getDetailedDeliveryPeriodFrom()) + "";
+ xml = xml + ">" + DATE.udtFormat(currentItem.getDetailedDeliveryPeriodFrom()) + "";
}
if (currentItem.getDetailedDeliveryPeriodTo() != null) {
- xml = xml + "" + zugferdDateFormat.format(currentItem.getDetailedDeliveryPeriodTo()) + "";
+ xml = xml + "" + DATE.udtFormat(currentItem.getDetailedDeliveryPeriodTo()) + "";
}
xml = xml + "";
@@ -478,8 +477,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
+ " ";
if (trans.getDeliveryDate() != null) {
- xml += "" + zugferdDateFormat.format(trans.getDeliveryDate())
- + "";
+ xml += DATE.udtFormat(trans.getDeliveryDate());
} else {
throw new IllegalStateException("No delivery date provided");
}
@@ -537,10 +535,10 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
if ((trans.getDetailedDeliveryPeriodFrom() != null) || (trans.getDetailedDeliveryPeriodTo() != null)) {
xml = xml + "";
if (trans.getDetailedDeliveryPeriodFrom() != null) {
- xml = xml + "" + zugferdDateFormat.format(trans.getDetailedDeliveryPeriodFrom()) + "";
+ xml = xml + "" + DATE.udtFormat(trans.getDetailedDeliveryPeriodFrom()) + "";
}
if (trans.getDetailedDeliveryPeriodTo() != null) {
- xml = xml + "" + zugferdDateFormat.format(trans.getDetailedDeliveryPeriodTo()) + "";
+ xml = xml + "" + DATE.udtFormat(trans.getDetailedDeliveryPeriodTo()) + "";
}
xml = xml + "";
@@ -607,9 +605,9 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
}
if (hasDueDate && (trans.getDueDate() != null)) {
- xml = xml + " " // $NON-NLS-2$
- + zugferdDateFormat.format(trans.getDueDate())
- + "\n";// 20130704
+ xml = xml + " " // $NON-NLS-2$
+ + DATE.udtFormat(trans.getDueDate())
+ + "\n";// 20130704
}
xml = xml + " \n";
@@ -643,7 +641,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
+ XMLTools.encodeXML(trans.getInvoiceReferencedDocumentID()) + "\n";
if(trans.getInvoiceReferencedIssueDate()!= null){
xml += ""
- + zugferdDateFormat.format(trans.getInvoiceReferencedIssueDate())
+ + DATE.qdtFormat(trans.getInvoiceReferencedIssueDate())
+ "\n";
}
xml += " \n";
@@ -694,8 +692,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
paymentTermsXml += "" + paymentTerms.getDescription() + "";
if (dueDate != null) {
paymentTermsXml += "";
- paymentTermsXml += ""
- + zugferdDateFormat.format(dueDate) + "";
+ paymentTermsXml += DATE.udtFormat(dueDate) ;
paymentTermsXml += "";
}
@@ -710,7 +707,7 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
if (discountTerms.getBaseDate() != null) {
final Date baseDate = discountTerms.getBaseDate();
paymentTermsXml += "";
- paymentTermsXml += "" + zugferdDateFormat.format(baseDate) + "";
+ paymentTermsXml += DATE.udtFormat(baseDate);
paymentTermsXml += "";
paymentTermsXml += ""
diff --git a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDDateFormat.java b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDDateFormat.java
index 3457fe18..15ffe24a 100644
--- a/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDDateFormat.java
+++ b/library/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDDateFormat.java
@@ -1,6 +1,7 @@
package org.mustangproject.ZUGFeRD;
import java.text.SimpleDateFormat;
+import java.util.Date;
import org.mustangproject.ZUGFeRD.model.DateTimeTypeConstants;
@@ -12,6 +13,8 @@ public enum ZUGFeRDDateFormat {
private String dateTimeType;
private SimpleDateFormat formatter;
+ private static final String QDT_FORAMT = "%s";
+ private static final String UDT_FORAMT = "%s";
private ZUGFeRDDateFormat(String dateTimeType, SimpleDateFormat formatter) {
this.dateTimeType = dateTimeType;
@@ -25,4 +28,14 @@ public enum ZUGFeRDDateFormat {
public SimpleDateFormat getFormatter() {
return formatter;
}
+
+ public String simpleFormat(Date date){
+ return getFormatter().format(date);
+ }
+ public String qdtFormat(Date date){
+ return String.format(QDT_FORAMT, getDateTimeType(), getFormatter().format(date));
+ }
+ public String udtFormat(Date date){
+ return String.format(UDT_FORAMT, getDateTimeType(), getFormatter().format(date));
+ }
}