1.1.0 in development, importer seems to work now w/ ZUGFeRD 1.0, added importer test, reset mustang-1.0.jar to original
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
<groupId>org.mustangproject.ZUGFeRD</groupId>
|
||||
<artifactId>mustang</artifactId>
|
||||
<version>1.0.2</version>
|
||||
<version>1.1.0.alpha</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>mustang</name>
|
||||
|
||||
@@ -28,6 +28,8 @@ import org.w3c.dom.Node;
|
||||
import org.w3c.dom.NodeList;
|
||||
import org.xml.sax.SAXException;
|
||||
|
||||
//root.setNamespace(Namespace.getNamespace("http://www.energystar.gov/manageBldgs/req"));
|
||||
|
||||
public class ZUGFeRDImporter {
|
||||
/*
|
||||
call extract(importFilename).
|
||||
@@ -110,6 +112,7 @@ public class ZUGFeRDImporter {
|
||||
Document document = null;
|
||||
|
||||
factory = DocumentBuilderFactory.newInstance();
|
||||
factory.setNamespaceAware(true); //otherwise we can not act namespace independend, i.e. use document.getElementsByTagNameNS("*",...
|
||||
try {
|
||||
builder = factory.newDocumentBuilder();
|
||||
} catch (ParserConfigurationException ex3) {
|
||||
@@ -125,10 +128,13 @@ public class ZUGFeRDImporter {
|
||||
} catch (IOException ex2) {
|
||||
ex2.printStackTrace();
|
||||
}
|
||||
NodeList ndList ;
|
||||
|
||||
// rootNode = document.getDocumentElement();
|
||||
// ApplicableSupplyChainTradeSettlement
|
||||
NodeList ndList = document
|
||||
.getElementsByTagName("PaymentReference"); //$NON-NLS-1$
|
||||
ndList = document.getDocumentElement()
|
||||
.getElementsByTagNameNS("*","PaymentReference"); //$NON-NLS-1$
|
||||
|
||||
for (int bookingIndex = 0; bookingIndex < ndList
|
||||
.getLength(); bookingIndex++) {
|
||||
Node booking = ndList.item(bookingIndex);
|
||||
@@ -158,26 +164,38 @@ public class ZUGFeRDImporter {
|
||||
setIBAN(booking.getTextContent());
|
||||
|
||||
}
|
||||
<ram:PayeePartyCreditorFinancialAccount>
|
||||
<ram:IBANID>DE1234</ram:IBANID>
|
||||
</ram:PayeePartyCreditorFinancialAccount>
|
||||
<ram:PayeeSpecifiedCreditorFinancialInstitution>
|
||||
<ram:BICID>DE5656565</ram:BICID>
|
||||
<ram:Name>Commerzbank</ram:Name>
|
||||
</ram:PayeeSpecifiedCreditorFinancialInstitution>
|
||||
|
||||
*/
|
||||
ndList = document.getElementsByTagName("PayeePartyCreditorFinancialAccount"); //$NON-NLS-1$
|
||||
ndList = document.getElementsByTagNameNS("*","PayeePartyCreditorFinancialAccount"); //$NON-NLS-1$
|
||||
|
||||
for (int bookingIndex = 0; bookingIndex < ndList
|
||||
.getLength(); bookingIndex++) {
|
||||
|
||||
Node booking = ndList.item(bookingIndex);
|
||||
// there are many "name" elements, so get the one below
|
||||
// SellerTradeParty
|
||||
NodeList bookingDetails = booking.getChildNodes();
|
||||
|
||||
|
||||
for (int detailIndex = 0; detailIndex < bookingDetails
|
||||
.getLength(); detailIndex++) {
|
||||
Node detail = bookingDetails.item(detailIndex);
|
||||
if (detail.getNodeName().equals("IBANID")) { //$NON-NLS-1$
|
||||
if ((detail.getLocalName()!=null)&&(detail.getLocalName().equals("IBANID"))) { //$NON-NLS-1$
|
||||
setIBAN(detail.getTextContent());
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ndList = document.getElementsByTagName("PayeeSpecifiedCreditorFinancialInstitution"); //$NON-NLS-1$
|
||||
ndList = document.getElementsByTagNameNS("*","PayeeSpecifiedCreditorFinancialInstitution"); //$NON-NLS-1$
|
||||
|
||||
for (int bookingIndex = 0; bookingIndex < ndList
|
||||
.getLength(); bookingIndex++) {
|
||||
@@ -188,10 +206,10 @@ public class ZUGFeRDImporter {
|
||||
for (int detailIndex = 0; detailIndex < bookingDetails
|
||||
.getLength(); detailIndex++) {
|
||||
Node detail = bookingDetails.item(detailIndex);
|
||||
if (detail.getNodeName().equals("BICID")) { //$NON-NLS-1$
|
||||
if ((detail.getLocalName()!=null)&&(detail.getLocalName().equals("BICID"))) { //$NON-NLS-1$
|
||||
setBIC(detail.getTextContent());
|
||||
}
|
||||
if (detail.getNodeName().equals("Name")) { //$NON-NLS-1$
|
||||
if ((detail.getLocalName()!=null)&&(detail.getLocalName().equals("Name"))) { //$NON-NLS-1$
|
||||
setBankName(detail.getTextContent());
|
||||
}
|
||||
}
|
||||
@@ -199,7 +217,7 @@ public class ZUGFeRDImporter {
|
||||
}
|
||||
|
||||
//
|
||||
ndList = document.getElementsByTagName("SellerTradeParty"); //$NON-NLS-1$
|
||||
ndList = document.getElementsByTagNameNS("*","SellerTradeParty"); //$NON-NLS-1$
|
||||
|
||||
for (int bookingIndex = 0; bookingIndex < ndList
|
||||
.getLength(); bookingIndex++) {
|
||||
@@ -210,14 +228,14 @@ public class ZUGFeRDImporter {
|
||||
for (int detailIndex = 0; detailIndex < bookingDetails
|
||||
.getLength(); detailIndex++) {
|
||||
Node detail = bookingDetails.item(detailIndex);
|
||||
if (detail.getNodeName().equals("Name")) { //$NON-NLS-1$
|
||||
if ((detail.getLocalName()!=null)&&(detail.getLocalName().equals("Name"))) { //$NON-NLS-1$
|
||||
setHolder(detail.getTextContent());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ndList = document.getElementsByTagName("DuePayableAmount"); //$NON-NLS-1$
|
||||
ndList = document.getElementsByTagNameNS("*","DuePayableAmount"); //$NON-NLS-1$
|
||||
|
||||
for (int bookingIndex = 0; bookingIndex < ndList
|
||||
.getLength(); bookingIndex++) {
|
||||
@@ -233,7 +251,7 @@ public class ZUGFeRDImporter {
|
||||
/* there is apparently no requirement to mention DuePayableAmount,,
|
||||
* if it's not there, check for GrandTotalAmount
|
||||
*/
|
||||
ndList = document.getElementsByTagName("GrandTotalAmount"); //$NON-NLS-1$
|
||||
ndList = document.getElementsByTagNameNS("*","GrandTotalAmount"); //$NON-NLS-1$
|
||||
for (int bookingIndex = 0; bookingIndex < ndList
|
||||
.getLength(); bookingIndex++) {
|
||||
Node booking = ndList.item(bookingIndex);
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
package org.mustangproject.ZUGFeRD;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestCase;
|
||||
import junit.framework.TestSuite;
|
||||
@@ -7,32 +9,54 @@ import junit.framework.TestSuite;
|
||||
/**
|
||||
* Unit test for simple App.
|
||||
*/
|
||||
public class AppTest
|
||||
extends TestCase
|
||||
{
|
||||
public class AppTest extends TestCase {
|
||||
/**
|
||||
* Create the test case
|
||||
*
|
||||
* @param testName name of the test case
|
||||
* @param testName
|
||||
* name of the test case
|
||||
*/
|
||||
public AppTest( String testName )
|
||||
{
|
||||
public AppTest(String testName) {
|
||||
super(testName);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the suite of tests being tested
|
||||
*/
|
||||
public static Test suite()
|
||||
{
|
||||
public static Test suite() {
|
||||
return new TestSuite(AppTest.class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Rigourous Test :-)
|
||||
*/
|
||||
public void testApp()
|
||||
{
|
||||
assertTrue( true );
|
||||
public void testImport() {
|
||||
ZUGFeRDImporter zi = new ZUGFeRDImporter();
|
||||
zi.extract("./src/test/java/org/mustangproject/ZUGFeRD/RE-20140628_9.pdf");
|
||||
// Reading ZUGFeRD
|
||||
|
||||
String amount=null;
|
||||
String bic=null;
|
||||
String iban=null;
|
||||
String holder=null;
|
||||
String ref=null;
|
||||
|
||||
if (zi.canParse()) {
|
||||
zi.parse();
|
||||
amount=zi.getAmount();
|
||||
bic=zi.getBIC();
|
||||
iban=zi.getIBAN();
|
||||
holder=zi.getHolder();
|
||||
ref=zi.getForeignReference();
|
||||
}
|
||||
|
||||
|
||||
assertEquals(amount, "1.19");
|
||||
assertEquals(bic, "DE5656565");
|
||||
assertEquals(iban, "DE1234");
|
||||
assertEquals(holder, "usegroup");
|
||||
assertEquals(ref, "RE-20140628/9");
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Binary file not shown.
BIN
mustang/target/mustang-1.1.0.alpha.jar
Normal file
BIN
mustang/target/mustang-1.1.0.alpha.jar
Normal file
Binary file not shown.
Reference in New Issue
Block a user