diff --git a/mustang/doc/ZugferdDev.de.odt b/mustang/doc/ZugferdDev.de.odt
new file mode 100644
index 00000000..ed821325
Binary files /dev/null and b/mustang/doc/ZugferdDev.de.odt differ
diff --git a/mustang/doc/ZugferdDev.de.pdf b/mustang/doc/ZugferdDev.de.pdf
new file mode 100644
index 00000000..e88c15f9
Binary files /dev/null and b/mustang/doc/ZugferdDev.de.pdf differ
diff --git a/mustang/doc/ZugferdDev.en.odt b/mustang/doc/ZugferdDev.en.odt
new file mode 100644
index 00000000..42644c5f
Binary files /dev/null and b/mustang/doc/ZugferdDev.en.odt differ
diff --git a/mustang/doc/ZugferdDev.en.pdf b/mustang/doc/ZugferdDev.en.pdf
new file mode 100644
index 00000000..0b152f7a
Binary files /dev/null and b/mustang/doc/ZugferdDev.en.pdf differ
diff --git a/mustang/pom.xml b/mustang/pom.xml
index 1f6f1b7b..3cc2ecd4 100644
--- a/mustang/pom.xml
+++ b/mustang/pom.xml
@@ -4,7 +4,7 @@
org.mustangproject.ZUGFeRD
mustang
- 1.0
+ 1.0.2
jar
mustang
diff --git a/mustang/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java b/mustang/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java
index 257c1cc2..da74ee77 100644
--- a/mustang/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java
+++ b/mustang/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java
@@ -3,8 +3,8 @@ package org.mustangproject.ZUGFeRD;
* Mustangproject's ZUGFeRD implementation
* Neccessary interface for ZUGFeRD exporter
* Licensed under the APLv2
- * @date 2014-05-10
- * @version 1.0
+ * @date 2014-05-10 to 2014-06-25
+ * @version 1.0.2
* @author jstaerk
* */
@@ -90,13 +90,45 @@ public interface IZUGFeRDExportableTransaction {
*/
String getOwnOrganisationName();
+ /**
+ * own street address
+ * @return
+ */
+ String getOwnStreet();
+
+ /**
+ * own street postal code
+ * @return
+ */
+ String getOwnZIP();
+
+ /**
+ * own city
+ * @return
+ */
+ String getOwnLocation();
+
+ /**
+ * own two digit country code
+ * @return
+ */
+ String getOwnCountry();
+
+ /**
+ * get delivery date
+ * @return
+ */
+ Date getDeliveryDate();
+
+
+
/**
* which taxes have been used with which amounts in this transaction,
* empty for no taxes, or e.g. 19=>190 and 7=>14 if 1000 Eur were applicable
* to 19% VAT (=>190 EUR VAT) and 200 EUR were applicable to 7% (=>14 EUR VAT)
* 190 Eur
* @return
- */
+ *
HashMap getVATPercentAmountMap();
-
+ */
}
diff --git a/mustang/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.java b/mustang/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.java
index 0b6d2d63..41877efe 100644
--- a/mustang/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.java
+++ b/mustang/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.java
@@ -195,18 +195,22 @@ public class ZUGFeRDExporter {
private String getZugferdXMLForTransaction(IZUGFeRDExportableTransaction trans) {
SimpleDateFormat zugferdDateFormat = new SimpleDateFormat("yyyyMMdd"); //$NON-NLS-1$
String xml= "\n" //$NON-NLS-1$
- + "\n" //$NON-NLS-1$
+
+ + "\n" //$NON-NLS-1$
+ " \n" //$NON-NLS-1$
- + " false\n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " urn:ferd:invoice:rc:comfort\n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
+ + " false\n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " urn:ferd:invoice:rc:comfort\n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ " \n" //$NON-NLS-1$
+ " \n" //$NON-NLS-1$
- + " "+trans.getNumber()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " RECHNUNG\n" //$NON-NLS-1$
- + " 380\n" //$NON-NLS-1$
- + " "+zugferdDateFormat.format(trans.getIssueDate())+"\n" //date format was 20130605 //$NON-NLS-1$ //$NON-NLS-2$
+ + " "+trans.getNumber()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " RECHNUNG\n" //$NON-NLS-1$
+ + " 380\n" //$NON-NLS-1$
+ + " "+zugferdDateFormat.format(trans.getIssueDate())+"\n" //date format was 20130605 //$NON-NLS-1$ //$NON-NLS-2$
// + " \n"
// + " \n"
// + "Rechnung gemäß Bestellung Nr. 2013-471331 vom 01.03.2013.\n"
@@ -221,73 +225,73 @@ public class ZUGFeRDExporter {
// + " \n"
+ " \n" //$NON-NLS-1$
+ " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
// + " AB-312\n"
- + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
// + " 4000001123452\n"
- + " "+trans.getOwnOrganisationName()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
-/* + " \n"
- + " 80333\n"
- + " Lieferantenstraße 20\n"
- + " München\n"
- + " DE\n"
- + " \n"*/
- + " \n" //$NON-NLS-1$
- + " "+trans.getOwnTaxID()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " "+trans.getOwnVATID()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
+ + " "+trans.getOwnOrganisationName()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \n"
+ + " "+trans.getOwnZIP()+"\n"
+ + " "+trans.getOwnStreet()+"\n"
+ + " "+trans.getOwnLocation()+"\n"
+ + " "+trans.getOwnCountry()+"\n"
+ + " \n"
+ + " \n" //$NON-NLS-1$
+ + " "+trans.getOwnTaxID()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " "+trans.getOwnVATID()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
// + " GE2020211\n"
// + " 4000001987658\n"
- + " "+trans.getRecipient().getName()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " "+trans.getRecipient().getName()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
// + " \n"
// + " xxx\n"
// + " \n"
- + " \n" //$NON-NLS-1$
- + " "+trans.getRecipient().getZIP()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " "+trans.getRecipient().getStreet()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " "+trans.getRecipient().getLocation()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " "+trans.getRecipient().getCountry()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " "+trans.getRecipient().getVATID()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " "+trans.getRecipient().getZIP()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " "+trans.getRecipient().getStreet()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " "+trans.getRecipient().getLocation()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " "+trans.getRecipient().getCountry()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " "+trans.getRecipient().getVATID()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
// + " \n"
// + " 20130301\n"
// + " 2013-471331\n"
// + " \n"
- + " \n" //$NON-NLS-1$
-/* + " \n"
- + " \n"
- + " 20130603\n"
- + " \n"
+ + " \n" //$NON-NLS-1$
+ + " \n"
+ + " \n"
+ + " "+zugferdDateFormat.format(trans.getDeliveryDate())+"\n"
+ + " \n"
+ /*
+ " \n"
+ " 20130603\n"
+ " 2013-51112\n"
- + " \n"
- + " \n"*/
- + " \n" //$NON-NLS-1$
- // it's unclear if this is supposed to refer to the SEPA mandate or the transaction purpose
-// + " "+trans.getNumber()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " EUR\n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " 42\n" //$NON-NLS-1$
- + " Überweisung\n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " "+trans.getOwnIBAN()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " "+trans.getOwnBIC()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " "+trans.getOwnBankName()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " \n" //$NON-NLS-1$
- + " \n"; //$NON-NLS-1$
+ + " \n" */
+ + " \n"
+ + " \n" //$NON-NLS-1$
+ + " "+trans.getNumber()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " EUR\n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " 42\n" //$NON-NLS-1$
+ + " Überweisung\n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " "+trans.getOwnIBAN()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " "+trans.getOwnBIC()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " "+trans.getOwnBankName()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \n" //$NON-NLS-1$
+ + " \n"; //$NON-NLS-1$
-
+ /*
HashMap VATPercentAmountMap=trans.getVATPercentAmountMap();
for (BigDecimal currentTaxPercent : VATPercentAmountMap.keySet()) {
BigDecimal amount = VATPercentAmountMap.get(currentTaxPercent);
@@ -303,7 +307,7 @@ public class ZUGFeRDExporter {
}
- }
+ }*/
/* xml+= "
+ " \n"
+ " false\n"
@@ -337,21 +341,21 @@ public class ZUGFeRDExporter {
+ " \n"
+ " \n"*/
- xml=xml+ " \n" //$NON-NLS-1$
+ xml=xml+ " \n" //$NON-NLS-1$
// + " Zahlbar innerhalb 30 Tagen netto bis 04.07.2013, 3% Skonto innerhalb 10 Tagen bis 15.06.2013\n"
- + " "+zugferdDateFormat.format(trans.getDueDate())+"\n"//20130704 //$NON-NLS-1$ //$NON-NLS-2$
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " "+currencyFormat(trans.getTotal(), '.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " "+zugferdDateFormat.format(trans.getDueDate())+"\n"//20130704 //$NON-NLS-1$ //$NON-NLS-2$
+ + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " "+currencyFormat(trans.getTotal(), '.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
// + " 5.80\n"
// + " 14.73\n"
- + " "+currencyFormat(trans.getTotal(), '.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " "+currencyFormat(trans.getTotalGross().subtract(trans.getTotal()), '.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " "+currencyFormat(trans.getTotalGross(), '.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " "+currencyFormat(trans.getTotal(), '.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " "+currencyFormat(trans.getTotalGross().subtract(trans.getTotal()), '.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " "+currencyFormat(trans.getTotalGross(), '.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
// + " 0.00\n"
- + " "+currencyFormat(trans.getTotalGross(), '.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " \n" //$NON-NLS-1$
- + " \n"; //$NON-NLS-1$
+ + " "+currencyFormat(trans.getTotalGross(), '.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \n" //$NON-NLS-1$
+ + " \n"; //$NON-NLS-1$
// + " \n"
// + " \n"
// + " \n"
@@ -364,48 +368,48 @@ public class ZUGFeRDExporter {
int lineID=0;
for (IZUGFeRDExportableItem currentItem : trans.getZFItems()) {
lineID++;
- xml=xml+ " \n"+ //$NON-NLS-1$
- " \n" //$NON-NLS-1$
- + " "+lineID+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " \n" //$NON-NLS-1$
+ xml=xml+ " \n"+ //$NON-NLS-1$
+ " \n" //$NON-NLS-1$
+ + " "+lineID+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " "+currencyFormat(currentItem.getPriceGross(),'.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " 1\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " "+currencyFormat(currentItem.getPriceGross(),'.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " 1\n" //$NON-NLS-1$ //$NON-NLS-2$
// + " \n"
// + " false\n"
// + " 0.6667\n"
// + " Rabatt\n"
// + " \n"
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " "+currencyFormat(currentItem.getPrice(),'.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " 1\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " "+currencyFormat(currentItem.getPrice(),'.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " 1\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " "+currentItem.getQuantity()+"\n" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " VAT\n" //$NON-NLS-1$
- + " S\n" //$NON-NLS-1$
- + " "+currentItem.getProduct().getVATPercent()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " "+currencyFormat(currentItem.getTotalGross(),'.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
- + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " "+currentItem.getQuantity()+"\n" //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " VAT\n" //$NON-NLS-1$
+ + " S\n" //$NON-NLS-1$
+ + " "+currentItem.getProduct().getVATPercent()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " "+currencyFormat(currentItem.getTotalGross(),'.')+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
+ + " \n" //$NON-NLS-1$
// + " 4012345001235\n"
// + " KR3M\n"
// + " 55T01\n"
- + " "+currentItem.getProduct().getName()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " "+currentItem.getProduct().getDescription()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
- + " \n" //$NON-NLS-1$
- + " \n"; //$NON-NLS-1$
+ + " "+currentItem.getProduct().getName()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " "+currentItem.getProduct().getDescription()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " \n" //$NON-NLS-1$
+ + " \n"; //$NON-NLS-1$
@@ -413,7 +417,7 @@ public class ZUGFeRDExporter {
xml=xml + " \n" //$NON-NLS-1$
- + ""; //$NON-NLS-1$
+ + ""; //$NON-NLS-1$
return xml;
}
diff --git a/mustang/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java b/mustang/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java
index 7567049e..1556e6cb 100644
--- a/mustang/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java
+++ b/mustang/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java
@@ -3,8 +3,8 @@ package org.mustangproject.ZUGFeRD;
* Mustangproject's ZUGFeRD implementation
* ZUGFeRD importer
* Licensed under the APLv2
- * @date 2014-05-10
- * @version 1.0
+ * @date 2014-06-20
+ * @version 1.0.1
* @author jstaerk
* */
diff --git a/mustang/target/classes/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.class b/mustang/target/classes/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.class
index e7576bbc..68e2764e 100644
Binary files a/mustang/target/classes/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.class and b/mustang/target/classes/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.class differ
diff --git a/mustang/target/classes/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.class b/mustang/target/classes/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.class
index 4a31f66e..b5c652b2 100644
Binary files a/mustang/target/classes/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.class and b/mustang/target/classes/org/mustangproject/ZUGFeRD/ZUGFeRDExporter.class differ
diff --git a/mustang/target/maven-archiver/pom.properties b/mustang/target/maven-archiver/pom.properties
index 2726ce51..bc550303 100644
--- a/mustang/target/maven-archiver/pom.properties
+++ b/mustang/target/maven-archiver/pom.properties
@@ -1,5 +1,5 @@
#Generated by Maven
-#Mon May 26 19:06:40 CEST 2014
-version=1.0
+#Wed Jun 25 21:50:56 CEST 2014
+version=1.0.2
groupId=org.mustangproject.ZUGFeRD
artifactId=mustang
diff --git a/mustang/target/mustang-1.0.jar b/mustang/target/mustang-1.0.jar
index 210e520d..29d73aff 100644
Binary files a/mustang/target/mustang-1.0.jar and b/mustang/target/mustang-1.0.jar differ
diff --git a/mustang/target/surefire-reports/TEST-org.mustangproject.ZUGFeRD.AppTest.xml b/mustang/target/surefire-reports/TEST-org.mustangproject.ZUGFeRD.AppTest.xml
index e0e90a90..9f5b8358 100644
--- a/mustang/target/surefire-reports/TEST-org.mustangproject.ZUGFeRD.AppTest.xml
+++ b/mustang/target/surefire-reports/TEST-org.mustangproject.ZUGFeRD.AppTest.xml
@@ -1,5 +1,5 @@
-
+
@@ -13,7 +13,7 @@
-
+
@@ -29,7 +29,7 @@
-
+