importing first attribute (price) of invoice line items
This commit is contained in:
@@ -161,7 +161,7 @@ public class ZUGFeRDImporter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private Document getDocument() {
|
protected Document getDocument() {
|
||||||
return document;
|
return document;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -216,7 +216,7 @@ public class ZUGFeRDImporter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private String extractString(String xpathStr) {
|
protected String extractString(String xpathStr) {
|
||||||
if (!containsMeta) {
|
if (!containsMeta) {
|
||||||
throw new ZUGFeRDExportException("No suitable data/ZUGFeRD file could be found.");
|
throw new ZUGFeRDExportException("No suitable data/ZUGFeRD file could be found.");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
package org.mustangproject.ZUGFeRD;
|
||||||
|
|
||||||
|
import org.w3c.dom.Document;
|
||||||
|
import org.w3c.dom.Node;
|
||||||
|
import org.w3c.dom.NodeList;
|
||||||
|
|
||||||
|
import javax.xml.xpath.*;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
|
public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
|
||||||
|
public ZUGFeRDInvoiceImporter(String filename) {
|
||||||
|
super(filename);
|
||||||
|
}
|
||||||
|
public ZUGFeRD2PushProvider extractInvoice() {
|
||||||
|
|
||||||
|
String number="AB123";
|
||||||
|
ZUGFeRD2PushProvider zpp=new ZUGFeRD2PushProvider().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setOwnStreet("teststr").setOwnZIP("55232").setOwnLocation("teststadt").setOwnCountry("DE").setOwnTaxID("4711").setOwnVATID("0815").setRecipient(new Contact("Franz Müller", "0177123456", "fmueller@test.com", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number);
|
||||||
|
//.addItem(new Item(new Product("Testprodukt","","C62",new BigDecimal(0)),amount,new BigDecimal(1.0)))
|
||||||
|
zpp.setOwnOrganisationName(extractString("//SellerTradeParty/Name"));
|
||||||
|
|
||||||
|
XPathFactory xpathFact = XPathFactory.newInstance();
|
||||||
|
XPath xpath = xpathFact.newXPath();
|
||||||
|
try {
|
||||||
|
|
||||||
|
XPathExpression xpr = xpath.compile(
|
||||||
|
"//*[local-name()=\"IncludedSupplyChainTradeLineItem\"]");
|
||||||
|
NodeList nodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);
|
||||||
|
|
||||||
|
if (nodes.getLength() == 0) {
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < nodes.getLength(); i++) {
|
||||||
|
//nodes.item(i).getTextContent())) {
|
||||||
|
Node currentItemNode=nodes.item(i);
|
||||||
|
NodeList itemChilds=currentItemNode.getChildNodes();
|
||||||
|
String price="0";
|
||||||
|
for (int itemChildIndex = 0; itemChildIndex < itemChilds.getLength(); itemChildIndex++) {
|
||||||
|
if (itemChilds.item(itemChildIndex).getNodeName().equals("ram:SpecifiedLineTradeAgreement")) {
|
||||||
|
NodeList tradeLineChilds = itemChilds.item(itemChildIndex).getChildNodes();
|
||||||
|
for (int tradeLineChildIndex = 0; tradeLineChildIndex < tradeLineChilds.getLength(); tradeLineChildIndex++) {
|
||||||
|
if (tradeLineChilds.item(tradeLineChildIndex).getNodeName().equals("ram:NetPriceProductTradePrice")) {
|
||||||
|
NodeList netChilds = tradeLineChilds.item(tradeLineChildIndex).getChildNodes();
|
||||||
|
for (int netIndex = 0; netIndex < netChilds.getLength(); netIndex++) {
|
||||||
|
if (netChilds.item(netIndex).getNodeName().equals("ram:ChargeAmount")) {
|
||||||
|
price = netChilds.item(netIndex).getTextContent();//ram:ChargeAmount
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Logger.getLogger(ZUGFeRDInvoiceImporter.class.getName()).log(Level.INFO, "deb "+price);
|
||||||
|
|
||||||
|
zpp.addItem(new Item(new Product("Testprodukt","","C62",new BigDecimal(0)),new BigDecimal(price),new BigDecimal(1.0)));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} catch (XPathExpressionException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
return zpp;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,57 @@
|
|||||||
|
|
||||||
|
/** **********************************************************************
|
||||||
|
*
|
||||||
|
* Copyright 2019 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.ByteArrayOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.GregorianCalendar;
|
||||||
|
|
||||||
|
import org.junit.FixMethodOrder;
|
||||||
|
import org.junit.runners.MethodSorters;
|
||||||
|
|
||||||
|
import junit.framework.TestCase;
|
||||||
|
import junit.framework.Test;
|
||||||
|
import junit.framework.TestSuite;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
|
||||||
|
public class ZF2InvoiceImporterTest extends TestCase {
|
||||||
|
final String TARGET_PDF = "./target/testout-ZF2New.pdf";
|
||||||
|
|
||||||
|
public void testInvoiceImport() {
|
||||||
|
|
||||||
|
ZUGFeRDInvoiceImporter zii=new ZUGFeRDInvoiceImporter(TARGET_PDF);
|
||||||
|
|
||||||
|
|
||||||
|
// Reading ZUGFeRD
|
||||||
|
assertEquals("Bei Spiel GmbH", zii.extractInvoice().getOwnOrganisationName());
|
||||||
|
assertEquals(3, zii.extractInvoice().getZFItems().length);
|
||||||
|
assertEquals("160.0000", zii.extractInvoice().getZFItems()[0].getPrice().toString());
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user