invoiceimporter to parse quantities
This commit is contained in:
@@ -45,6 +45,7 @@ switch
|
|||||||
- delivery period,
|
- delivery period,
|
||||||
- corrected invoices,
|
- corrected invoices,
|
||||||
- contacts also for recipients
|
- contacts also for recipients
|
||||||
|
- absolute and relative allowances and charges on item and document level,
|
||||||
|
|
||||||
### 2.0 still todo
|
### 2.0 still todo
|
||||||
- dont show empty tax number field
|
- dont show empty tax number field
|
||||||
@@ -57,7 +58,6 @@ switch
|
|||||||
- confirm correct generation from pdf/a3 files zf2edgetest
|
- confirm correct generation from pdf/a3 files zf2edgetest
|
||||||
- *correctiontest exports zf1+zf2?
|
- *correctiontest exports zf1+zf2?
|
||||||
- *USt 0% wird aus invoice-klasse noch nicht sauber abgefangen
|
- *USt 0% wird aus invoice-klasse noch nicht sauber abgefangen
|
||||||
- absolute and relative allowances and charges on item and document level,
|
|
||||||
- finalize invoiceimporter
|
- finalize invoiceimporter
|
||||||
Alpha2 2020-09-15
|
Alpha2 2020-09-15
|
||||||
Alpha1 2020-08-06
|
Alpha1 2020-08-06
|
||||||
|
|||||||
@@ -12,10 +12,15 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
|
|||||||
public ZUGFeRDInvoiceImporter(String filename) {
|
public ZUGFeRDInvoiceImporter(String filename) {
|
||||||
super(filename);
|
super(filename);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Invoice extractInvoice() {
|
public Invoice extractInvoice() {
|
||||||
|
|
||||||
String number="AB123";
|
String number = "AB123";
|
||||||
Invoice zpp=new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty("company","teststr","55232","teststadt","DE")).setOwnTaxID("4711").setOwnVATID("0815").setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number);
|
/**
|
||||||
|
* dummywerte sind derzeit noch setDueDate setIssueDate setDeliveryDate setSender setRecipient setnumber
|
||||||
|
* bspw. due date //ExchangedDocument//IssueDateTime//DateTimeString : due date optional
|
||||||
|
*/
|
||||||
|
Invoice zpp = new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date()).setSender(new TradeParty("company", "teststr", "55232", "teststadt", "DE")).setOwnTaxID("4711").setOwnVATID("0815").setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE")).setNumber(number);
|
||||||
//.addItem(new Item(new Product("Testprodukt","","C62",new BigDecimal(0)),amount,new BigDecimal(1.0)))
|
//.addItem(new Item(new Product("Testprodukt","","C62",new BigDecimal(0)),amount,new BigDecimal(1.0)))
|
||||||
zpp.setOwnOrganisationName(extractString("//SellerTradeParty/Name"));
|
zpp.setOwnOrganisationName(extractString("//SellerTradeParty/Name"));
|
||||||
|
|
||||||
@@ -27,36 +32,45 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
|
|||||||
"//*[local-name()=\"IncludedSupplyChainTradeLineItem\"]");
|
"//*[local-name()=\"IncludedSupplyChainTradeLineItem\"]");
|
||||||
NodeList nodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);
|
NodeList nodes = (NodeList) xpr.evaluate(getDocument(), XPathConstants.NODESET);
|
||||||
|
|
||||||
if (nodes.getLength() == 0) {
|
if (nodes.getLength() == 0) {
|
||||||
} else {
|
} else {
|
||||||
for (int i = 0; i < nodes.getLength(); i++) {
|
for (int i = 0; i < nodes.getLength(); i++) {
|
||||||
//nodes.item(i).getTextContent())) {
|
//nodes.item(i).getTextContent())) {
|
||||||
Node currentItemNode=nodes.item(i);
|
Node currentItemNode = nodes.item(i);
|
||||||
NodeList itemChilds=currentItemNode.getChildNodes();
|
NodeList itemChilds = currentItemNode.getChildNodes();
|
||||||
String price="0";
|
String price = "0";
|
||||||
for (int itemChildIndex = 0; itemChildIndex < itemChilds.getLength(); itemChildIndex++) {
|
String quantity = "0";
|
||||||
if (itemChilds.item(itemChildIndex).getNodeName().equals("ram:SpecifiedLineTradeAgreement")) {
|
for (int itemChildIndex = 0; itemChildIndex < itemChilds.getLength(); itemChildIndex++) {
|
||||||
NodeList tradeLineChilds = itemChilds.item(itemChildIndex).getChildNodes();
|
if (itemChilds.item(itemChildIndex).getNodeName().equals("ram:SpecifiedLineTradeAgreement")) {
|
||||||
for (int tradeLineChildIndex = 0; tradeLineChildIndex < tradeLineChilds.getLength(); tradeLineChildIndex++) {
|
NodeList tradeLineChilds = itemChilds.item(itemChildIndex).getChildNodes();
|
||||||
if (tradeLineChilds.item(tradeLineChildIndex).getNodeName().equals("ram:NetPriceProductTradePrice")) {
|
for (int tradeLineChildIndex = 0; tradeLineChildIndex < tradeLineChilds.getLength(); tradeLineChildIndex++) {
|
||||||
NodeList netChilds = tradeLineChilds.item(tradeLineChildIndex).getChildNodes();
|
if (tradeLineChilds.item(tradeLineChildIndex).getNodeName().equals("ram:NetPriceProductTradePrice")) {
|
||||||
for (int netIndex = 0; netIndex < netChilds.getLength(); netIndex++) {
|
NodeList netChilds = tradeLineChilds.item(tradeLineChildIndex).getChildNodes();
|
||||||
if (netChilds.item(netIndex).getNodeName().equals("ram:ChargeAmount")) {
|
for (int netIndex = 0; netIndex < netChilds.getLength(); netIndex++) {
|
||||||
price = netChilds.item(netIndex).getTextContent();//ram:ChargeAmount
|
if (netChilds.item(netIndex).getNodeName().equals("ram:ChargeAmount")) {
|
||||||
|
price = netChilds.item(netIndex).getTextContent();//ram:ChargeAmount
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (itemChilds.item(itemChildIndex).getNodeName().equals("ram:SpecifiedLineTradeDelivery")) {
|
||||||
|
NodeList tradeLineChilds = itemChilds.item(itemChildIndex).getChildNodes();
|
||||||
|
for (int tradeLineChildIndex = 0; tradeLineChildIndex < tradeLineChilds.getLength(); tradeLineChildIndex++) {
|
||||||
|
if (tradeLineChilds.item(tradeLineChildIndex).getNodeName().equals("ram:BilledQuantity")) {
|
||||||
|
quantity = tradeLineChilds.item(tradeLineChildIndex).getTextContent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
// Logger.getLogger(ZUGFeRDInvoiceImporter.class.getName()).log(Level.INFO, "deb "+price);
|
// Logger.getLogger(ZUGFeRDInvoiceImporter.class.getName()).log(Level.INFO, "deb "+price);
|
||||||
|
// dummywerte sind derzeit noch produkname, beschreibung, unit, VAT percent, menge
|
||||||
|
zpp.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), new BigDecimal(price), new BigDecimal(quantity)));
|
||||||
|
}
|
||||||
|
|
||||||
zpp.addItem(new Item(new Product("Testprodukt","","C62",new BigDecimal(0)),new BigDecimal(price),new BigDecimal(1.0)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
} catch (XPathExpressionException e) {
|
} catch (XPathExpressionException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ import java.util.List;
|
|||||||
|
|
||||||
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
|
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
|
||||||
public class UXTest extends TestCase {
|
public class UXTest extends TestCase {
|
||||||
final String TARGET_PDF = "./target/testout-ZF2new.pdf";
|
final String TARGET_PDF = "./target/testout-UX.pdf";
|
||||||
public void testShortExport() {
|
public void testShortExport() {
|
||||||
|
|
||||||
// the writing part
|
// the writing part
|
||||||
|
|||||||
@@ -260,7 +260,7 @@ public class ZF2EdgeTest extends MustangReaderTestCase implements IExportableTra
|
|||||||
// the writing part
|
// the writing part
|
||||||
|
|
||||||
try (InputStream SOURCE_PDF = this.getClass()
|
try (InputStream SOURCE_PDF = this.getClass()
|
||||||
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505.pdf");
|
.getResourceAsStream("/MustangGnuaccountingBeispielRE-20170509_505blanko.pdf");
|
||||||
|
|
||||||
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1().setProducer("My Application")
|
ZUGFeRDExporterFromA1 ze = new ZUGFeRDExporterFromA1().setProducer("My Application")
|
||||||
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).ignorePDFAErrors()
|
.setCreator(System.getProperty("user.name")).setZUGFeRDVersion(2).ignorePDFAErrors()
|
||||||
|
|||||||
@@ -43,8 +43,9 @@ public class ZF2ZInvoiceImporterTest extends TestCase {
|
|||||||
// Reading ZUGFeRD
|
// Reading ZUGFeRD
|
||||||
assertEquals("Bei Spiel GmbH", invoice.getOwnOrganisationName());
|
assertEquals("Bei Spiel GmbH", invoice.getOwnOrganisationName());
|
||||||
assertEquals(3, invoice.getZFItems().length);
|
assertEquals(3, invoice.getZFItems().length);
|
||||||
/* assertEquals("160.0000", invoice.getZFItems()[0].getPrice().toString());
|
|
||||||
assertEquals("400.0000", invoice.getZFItems()[1].getQuantity().toString());
|
assertEquals("400.0000", invoice.getZFItems()[1].getQuantity().toString());
|
||||||
|
|
||||||
|
/* assertEquals("160.0000", invoice.getZFItems()[0].getPrice().toString());
|
||||||
assertEquals("Heiße Luft pro Liter", invoice.getZFItems()[2].getProduct().getName());
|
assertEquals("Heiße Luft pro Liter", invoice.getZFItems()[2].getProduct().getName());
|
||||||
assertEquals("7", invoice.getZFItems()[0].getProduct().getVATPercent().toString());
|
assertEquals("7", invoice.getZFItems()[0].getProduct().getVATPercent().toString());
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user