diff --git a/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java b/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java
index a6972a51..da6ebed3 100644
--- a/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java
+++ b/src/main/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransaction.java
@@ -101,7 +101,13 @@ public interface IZUGFeRDExportableTransaction {
*/
String getOwnIBAN();
- /**
+ /**
+ * IBAN of the sender
+ * @return the Account Number of the invoice sender's bank account
+ */
+ String getOwnKto();
+
+ /**
* Tax ID (not VAT ID) of the sender
* @return Tax ID (not VAT ID) of the sender
*/
diff --git a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
index 58407e7b..dfac61cc 100644
--- a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
+++ b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRD2PullProvider.java
@@ -344,9 +344,11 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
+ " Überweisung\n" //$NON-NLS-1$
+ " \n" //$NON-NLS-1$
+ " "+trans.getOwnIBAN()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ + " "+trans.getOwnKto()+"\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.getOwnBLZ()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
// + " "+trans.getOwnBankName()+"\n" //$NON-NLS-1$ //$NON-NLS-2$
+ " \n" //$NON-NLS-1$
+ " \n"; //$NON-NLS-1$
diff --git a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java
index bd2a2678..bac9e128 100644
--- a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java
+++ b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDImporter.java
@@ -66,6 +66,7 @@ public class ZUGFeRDImporter {
private String BLZ;
private String BIC;
private String IBAN;
+ private String KTO;
private String holder;
private String amount;
private String dueDate;
@@ -284,9 +285,12 @@ public class ZUGFeRDImporter {
Node detail = bookingDetails.item(detailIndex);
if ((detail.getLocalName() != null) && (detail.getLocalName().equals("IBANID"))) { //$NON-NLS-1$
setIBAN(detail.getTextContent());
-
}
- }
+ if ((detail.getLocalName() != null) && (detail.getLocalName().equals("ProprietaryID"))) { //$NON-NLS-1$
+ setKTO(detail.getTextContent());
+
+ }
+ }
}
ndList = document.getElementsByTagNameNS("*", "PayeeSpecifiedCreditorFinancialInstitution");// ZF1 //$NON-NLS-1$
@@ -455,7 +459,21 @@ public class ZUGFeRDImporter {
return IBAN;
}
- /**
+ /**
+ *
+ * @return the sender's KTO
+ */
+ public String getKTO() {
+ if (!parsed) {
+ throw new RuntimeException("use extract() before requesting a value");
+ }
+ if (KTO==null) {
+ parse();
+ }
+ return KTO;
+ }
+
+ /**
*
* @return the sender's bank name
*/
@@ -473,7 +491,11 @@ public class ZUGFeRDImporter {
this.IBAN = IBAN;
}
- /**
+ private void setKTO(String KTO) {
+ this.KTO = KTO;
+ }
+
+ /**
*
* @return the name of the owner of the sender's bank account
*/
diff --git a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDTransactionModelConverter.java b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDTransactionModelConverter.java
index ebe3ea98..ff9fd022 100644
--- a/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDTransactionModelConverter.java
+++ b/src/main/java/org/mustangproject/ZUGFeRD/ZUGFeRDTransactionModelConverter.java
@@ -363,6 +363,9 @@ class ZUGFeRDTransactionModelConverter {
IDType iban = xmlFactory.createIDType();
iban.setValue(trans.getOwnIBAN());
bankAccount.setIBANID(iban);
+ IDType kto = xmlFactory.createIDType();
+ kto.setValue(trans.getOwnKto());
+ bankAccount.setProprietaryID(kto);
paymentData.setPayeePartyCreditorFinancialAccount(bankAccount);
CreditorFinancialInstitutionType bankData = xmlFactory
diff --git a/src/test/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransactionImpl.java b/src/test/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransactionImpl.java
index a4225289..2ac05c96 100644
--- a/src/test/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransactionImpl.java
+++ b/src/test/java/org/mustangproject/ZUGFeRD/IZUGFeRDExportableTransactionImpl.java
@@ -30,6 +30,7 @@ public class IZUGFeRDExportableTransactionImpl implements IZUGFeRDExportableTran
private IZUGFeRDAllowanceCharge[] zFLogisticsServiceCharges;
private IZUGFeRDExportableItem[] zFItems;
private IZUGFeRDExportableContact recipient;
+ private String ownKto;
private String ownBLZ;
private String ownBIC;
private String ownBankName;
@@ -92,6 +93,11 @@ public class IZUGFeRDExportableTransactionImpl implements IZUGFeRDExportableTran
return recipient;
}
+ @Override
+ public String getOwnKto() {
+ return ownKto;
+ }
+
@Override
public String getOwnBLZ() {
return ownBLZ;
@@ -232,6 +238,11 @@ public class IZUGFeRDExportableTransactionImpl implements IZUGFeRDExportableTran
return this;
}
+ public IZUGFeRDExportableTransactionImpl setOwnKto(String ownKto) {
+ this.ownKto = ownKto;
+ return this;
+ }
+
public IZUGFeRDExportableTransactionImpl setOwnIBAN(String ownIBAN) {
this.ownIBAN = ownIBAN;
return this;
diff --git a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java
index b7cbd95c..2245a3dc 100644
--- a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java
+++ b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterCustomXMLTest.java
@@ -216,8 +216,9 @@ public class MustangReaderWriterCustomXMLTest extends TestCase {
" 42\n" +
" Überweisung\n" +
" \n" +
- " DE88 2008 0000 0970 3757 00\n" +
- " \n" +
+ " DE88 2008 0000 0970 3757 00\n" +
+ " 44421800\n" +
+ " \n" +
" \n" +
" COBADEFFXXX\n" +
" 41441604\n" +
@@ -279,6 +280,7 @@ public class MustangReaderWriterCustomXMLTest extends TestCase {
String bic = null;
String blz = null;
String iban = null;
+ String kto = null;
String holder = null;
String ref = null;
@@ -288,6 +290,7 @@ public class MustangReaderWriterCustomXMLTest extends TestCase {
blz = zi.getBLZ();
bic = zi.getBIC();
iban = zi.getIBAN();
+ kto = zi.getKTO();
holder = zi.getHolder();
ref = zi.getForeignReference();
}
@@ -296,6 +299,7 @@ public class MustangReaderWriterCustomXMLTest extends TestCase {
assertEquals(blz, "41441604");
assertEquals(bic, "COBADEFFXXX");
assertEquals(iban, "DE88 2008 0000 0970 3757 00");
+ assertEquals(kto, "44421800");
assertEquals(holder, "Bei Spiel GmbH");
assertEquals(ref, "RE-20171118/506");
}
@@ -354,6 +358,7 @@ public class MustangReaderWriterCustomXMLTest extends TestCase {
+ "\n" + "42\n"
+ "Überweisung\n" + "\n"
+ "DE88 2008 0000 0970 3757 00\n"
+ + "44421800\n"
+ "\n"
+ "\n"
+ "COBADEFFXXX\n"
@@ -476,6 +481,7 @@ public class MustangReaderWriterCustomXMLTest extends TestCase {
String bic = null;
String blz = null;
String iban = null;
+ String kto = null;
String holder = null;
String ref = null;
@@ -485,6 +491,7 @@ public class MustangReaderWriterCustomXMLTest extends TestCase {
bic = zi.getBIC();
blz = zi.getBLZ();
iban = zi.getIBAN();
+ kto = zi.getKTO();
holder = zi.getHolder();
ref = zi.getForeignReference();
}
@@ -493,6 +500,7 @@ public class MustangReaderWriterCustomXMLTest extends TestCase {
assertEquals(bic, "COBADEFFXXX");
assertEquals(blz, "41441604");
assertEquals(iban, "DE88 2008 0000 0970 3757 00");
+ assertEquals(kto, "44421800");
assertEquals(holder, "Bei Spiel GmbH");
assertEquals(ref, "RE-20170509/505");
}
diff --git a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterEdgeTest.java b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterEdgeTest.java
index e61a1d33..1efe4b58 100644
--- a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterEdgeTest.java
+++ b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterEdgeTest.java
@@ -60,6 +60,12 @@ public class MustangReaderWriterEdgeTest extends TestCase implements IZUGFeRDExp
}
@Override
+ public String getOwnKto()
+ {
+ return "44421800";
+ }
+
+ @Override
public String getOwnBLZ()
{
return "41441604";
@@ -370,7 +376,7 @@ public class MustangReaderWriterEdgeTest extends TestCase implements IZUGFeRDExp
// //////// TESTS //////////////////////////////////////////////////////////////////////////////////////////
/**
- * The importer test imports from ./src/test/MustangGnuaccountingBeispielRE-20151008_504.pdf to check the values.
+ * The importer test imports from ./src/test/MustangGnuaccountingBeispielRE-20170509_505.pdf to check the values.
* --> as only Name Ascending is supported for Test Unit sequence, I renamed the this test-A-Export to run before
* testZExport
*
@@ -387,6 +393,7 @@ public class MustangReaderWriterEdgeTest extends TestCase implements IZUGFeRDExp
String bic = null;
String blz = null;
String iban = null;
+ String kto = null;
String holder = null;
String ref = null;
String dueDate = null;
@@ -398,6 +405,7 @@ public class MustangReaderWriterEdgeTest extends TestCase implements IZUGFeRDExp
bic = zi.getBIC();
blz = zi.getBLZ();
iban = zi.getIBAN();
+ kto = zi.getKTO();
holder = zi.getHolder();
dueDate = zi.getDueDate();
ref = zi.getForeignReference();
@@ -407,6 +415,7 @@ public class MustangReaderWriterEdgeTest extends TestCase implements IZUGFeRDExp
assertEquals(bic, getOwnBIC());
assertEquals(blz, getOwnBLZ());
assertEquals(iban, getOwnIBAN());
+ assertEquals(kto, getOwnKto());
assertEquals(holder, getOwnOrganisationName());
assertEquals(dueDate, "20170530");
@@ -450,6 +459,7 @@ public class MustangReaderWriterEdgeTest extends TestCase implements IZUGFeRDExp
String bic = null;
String blz = null;
String iban = null;
+ String kto = null;
String holder = null;
String ref = null;
@@ -460,6 +470,7 @@ public class MustangReaderWriterEdgeTest extends TestCase implements IZUGFeRDExp
bic = zi.getBIC();
blz = zi.getBLZ();
iban = zi.getIBAN();
+ kto = zi.getKTO();
holder = zi.getHolder();
ref = zi.getForeignReference();
}
@@ -468,6 +479,7 @@ public class MustangReaderWriterEdgeTest extends TestCase implements IZUGFeRDExp
assertEquals(bic, getOwnBIC());
assertEquals(blz, getOwnBLZ());
assertEquals(iban, getOwnIBAN());
+ assertEquals(kto, getOwnKto());
assertEquals(holder, getOwnOrganisationName());
assertEquals(ref, getNumber());
diff --git a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterTest.java b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterTest.java
index ee4b5d2d..621fb874 100644
--- a/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterTest.java
+++ b/src/test/java/org/mustangproject/ZUGFeRD/MustangReaderWriterTest.java
@@ -56,6 +56,11 @@ public class MustangReaderWriterTest extends TestCase implements IZUGFeRDExporta
return "RE-20171118/506";
}
+ @Override
+ public String getOwnKto() {
+ return "44421800";
+ }
+
@Override
public String getOwnBLZ() {
return "41441604";
@@ -353,6 +358,7 @@ public class MustangReaderWriterTest extends TestCase implements IZUGFeRDExporta
String blz = null;
String bic = null;
String iban = null;
+ String kto = null;
String holder = null;
String ref = null;
@@ -362,6 +368,7 @@ public class MustangReaderWriterTest extends TestCase implements IZUGFeRDExporta
blz = zi.getBLZ();
bic = zi.getBIC();
iban = zi.getIBAN();
+ kto = zi.getKTO();
holder = zi.getHolder();
ref = zi.getForeignReference();
}
@@ -370,6 +377,7 @@ public class MustangReaderWriterTest extends TestCase implements IZUGFeRDExporta
assertEquals(blz, "41441604");
assertEquals(bic, "COBADEFFXXX");
assertEquals(iban, "DE88 2008 0000 0970 3757 00");
+ assertEquals(kto, "44421800");
assertEquals(holder, "Bei Spiel GmbH");
assertEquals(ref, "RE-20170509/505");
@@ -522,6 +530,7 @@ public class MustangReaderWriterTest extends TestCase implements IZUGFeRDExporta
String amount = null;
String bic = null;
String iban = null;
+ String kto = null;
String holder = null;
String ref = null;
if (zi.canParse()) {
@@ -529,6 +538,7 @@ public class MustangReaderWriterTest extends TestCase implements IZUGFeRDExporta
amount = zi.getAmount();
bic = zi.getBIC();
iban = zi.getIBAN();
+ kto = zi.getKTO();
holder = zi.getHolder();
ref = zi.getForeignReference();
}
@@ -536,6 +546,7 @@ public class MustangReaderWriterTest extends TestCase implements IZUGFeRDExporta
assertEquals(amount, "571.04");
assertEquals(bic, getOwnBIC());
assertEquals(iban, getOwnIBAN());
+ assertEquals(kto, getOwnKto());
assertEquals(holder, getOwnOrganisationName());
assertEquals(ref, getNumber());
diff --git a/src/test/resources/MustangGnuaccountingBeispielRE-20170509_505.pdf b/src/test/resources/MustangGnuaccountingBeispielRE-20170509_505.pdf
index 07a14203..d2bcf218 100644
Binary files a/src/test/resources/MustangGnuaccountingBeispielRE-20170509_505.pdf and b/src/test/resources/MustangGnuaccountingBeispielRE-20170509_505.pdf differ
diff --git a/src/test/resources/migration/input/ZUGFeRD1-invoice-adjusted.xml b/src/test/resources/migration/input/ZUGFeRD1-invoice-adjusted.xml
index 9667d4b5..70db824b 100644
--- a/src/test/resources/migration/input/ZUGFeRD1-invoice-adjusted.xml
+++ b/src/test/resources/migration/input/ZUGFeRD1-invoice-adjusted.xml
@@ -77,6 +77,7 @@
Überweisung
DE88 2008 0000 0970 3757 00
+ 44421800
COBADEFFXXX
diff --git a/src/test/resources/migration/input/ZUGFeRD1-invoice.xml b/src/test/resources/migration/input/ZUGFeRD1-invoice.xml
index a0948cb2..4b3ddba2 100644
--- a/src/test/resources/migration/input/ZUGFeRD1-invoice.xml
+++ b/src/test/resources/migration/input/ZUGFeRD1-invoice.xml
@@ -77,6 +77,7 @@
Überweisung
DE88 2008 0000 0970 3757 00
+ 44421800
COBADEFFXXX
diff --git a/src/test/resources/migration/reference/ZUGFeRD2-invoice.xml b/src/test/resources/migration/reference/ZUGFeRD2-invoice.xml
index 5eb5637c..12043217 100644
--- a/src/test/resources/migration/reference/ZUGFeRD2-invoice.xml
+++ b/src/test/resources/migration/reference/ZUGFeRD2-invoice.xml
@@ -177,6 +177,7 @@ Migrated by Mustangproject XSLT
Überweisung
DE88 2008 0000 0970 3757 00
+ 44421800
COBADEFFXXX