invoiceimporter to parse quantities

This commit is contained in:
Jochen Stärk
2020-10-13 17:52:31 +02:00
parent 2199a8e649
commit 0f351a2c3c
5 changed files with 41 additions and 26 deletions

View File

@@ -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

View File

@@ -12,9 +12,14 @@ 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";
/**
* 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); 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"));
@@ -34,6 +39,7 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
Node currentItemNode = nodes.item(i); Node currentItemNode = nodes.item(i);
NodeList itemChilds = currentItemNode.getChildNodes(); NodeList itemChilds = currentItemNode.getChildNodes();
String price = "0"; String price = "0";
String quantity = "0";
for (int itemChildIndex = 0; itemChildIndex < itemChilds.getLength(); itemChildIndex++) { for (int itemChildIndex = 0; itemChildIndex < itemChilds.getLength(); itemChildIndex++) {
if (itemChilds.item(itemChildIndex).getNodeName().equals("ram:SpecifiedLineTradeAgreement")) { if (itemChilds.item(itemChildIndex).getNodeName().equals("ram:SpecifiedLineTradeAgreement")) {
NodeList tradeLineChilds = itemChilds.item(itemChildIndex).getChildNodes(); NodeList tradeLineChilds = itemChilds.item(itemChildIndex).getChildNodes();
@@ -49,10 +55,18 @@ public class ZUGFeRDInvoiceImporter extends ZUGFeRDImporter {
} }
} }
} }
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(1.0))); zpp.addItem(new Item(new Product("Testprodukt", "", "C62", new BigDecimal(0)), new BigDecimal(price), new BigDecimal(quantity)));
} }
} }

View File

@@ -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

View File

@@ -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()

View File

@@ -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());