updates from the weekend

This commit is contained in:
jstaerk
2024-05-13 10:13:48 +02:00
parent 4107e3e4cf
commit 7f7adeab5a
4 changed files with 44 additions and 31 deletions

View File

@@ -290,11 +290,21 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
paymentTermsDescription = XMLTools.encodeXML(trans.getPaymentTermDescription());
}
if ((paymentTermsDescription == null) && (trans.getDocumentCode() != DocumentCodeTypeConstants.CORRECTEDINVOICE) && (trans.getDocumentCode() != DocumentCodeTypeConstants.CREDITNOTE)) {
paymentTermsDescription = "Zahlbar ohne Abzug bis " + germanDateFormat.format(trans.getDueDate());
if ((profile == Profiles.getByName("XRechnung")) && (trans.getCashDiscounts() != null) && (trans.getCashDiscounts().length > 0)) {
for (IZUGFeRDCashDiscount discount : trans.getCashDiscounts()
) {
if (paymentTermsDescription == null) {
paymentTermsDescription = "";
}
paymentTermsDescription += discount.getAsXRechnung();
}
} else if ((paymentTermsDescription == null) && (trans.getDocumentCode() != DocumentCodeTypeConstants.CORRECTEDINVOICE) && (trans.getDocumentCode() != DocumentCodeTypeConstants.CREDITNOTE)) {
paymentTermsDescription = "Please remit until " + germanDateFormat.format(trans.getDueDate());
}
String typecode = "380";
if (trans.getDocumentCode() != null) {
typecode = trans.getDocumentCode();
@@ -689,8 +699,8 @@ public class ZUGFeRD2PullProvider implements IXMLProvider {
} else {
xml += buildPaymentTermsXml();
}
if ((profile == Profiles.getByName("Extended"))&&(trans.getCashDiscounts()!=null)&&(trans.getCashDiscounts().length>0)) {
for (IZUGFeRDCashDiscount discount:trans.getCashDiscounts()
if ((profile == Profiles.getByName("Extended")) && (trans.getCashDiscounts() != null) && (trans.getCashDiscounts().length > 0)) {
for (IZUGFeRDCashDiscount discount : trans.getCashDiscounts()
) {
xml += discount.getAsCII();
}

View File

@@ -124,32 +124,34 @@ public class UBLTest extends ResourceCase {
}
public void testInvoiceImportOtherUBL() {
/* public void testInvoiceImportOtherUBL() {
File UBLinputFile = getResourceAsFile("EN16931_2_Teilrechnung.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_AbweichenderZahlungsempf.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_Betriebskostenabrechnung.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_Einfach.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_Einfach_DueDate.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_Einfach_negativePaymentDue.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_Elektron.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_ElektronischeAdresse.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_Gutschrift.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_Haftpflichtversicherung_Versicherungssteuer.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_Innergemeinschaftliche_Lieferungen.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_Kraftfahrversicherung_Bruttopreise.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_Miete.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_OEPNV.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_Physiotherapeut.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_Rabatte.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_Rechnungskorrektur.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_RechnungsUebertragung.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_Reisekostenabrechnung.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_Sachversicherung_berechneter_Steuersatz.ubl.xml");
File UBLinputFile = getResourceAsFile("EN16931_SEPA_Prenotification.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_1_Teilrechnung.ubl.xml");
// File UBLinputFile = getResourceAsFile("ubl/EN16931_2_Teilrechnung.ubl.xml");
/* File UBLinputFile = getResourceAsFile("ubl/EN16931_AbweichenderZahlungsempf.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_Betriebskostenabrechnung.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_Einfach.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_Einfach_DueDate.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_Einfach_negativePaymentDue.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_Elektron.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_ElektronischeAdresse.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_Gutschrift.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_Haftpflichtversicherung_Versicherungssteuer.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_Innergemeinschaftliche_Lieferungen.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_Kraftfahrversicherung_Bruttopreise.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_Miete.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_OEPNV.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_Physiotherapeut.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_Rabatte.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_Rechnungskorrektur.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_RechnungsUebertragung.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_Reisekostenabrechnung.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_Sachversicherung_berechneter_Steuersatz.ubl.xml");
File UBLinputFile = getResourceAsFile("ubl/EN16931_SEPA_Prenotification.ubl.xml");
boolean hasExceptions = false;
ZUGFeRDInvoiceImporter zii = null;
@@ -168,5 +170,5 @@ public class UBLTest extends ResourceCase {
assertEquals("12345", invoice.getRecipient().getZIP());
assertEquals("DE75512108001245126199", invoice.getSender().getBankDetails().get(0).getIBAN());
}
}*/
}

View File

@@ -88,10 +88,11 @@ public class XRTest extends TestCase {
Invoice i = new Invoice().setDueDate(new Date()).setIssueDate(new Date()).setDeliveryDate(new Date())
.setSender(new TradeParty(orgname,"teststr","55232","teststadt","DE").setEmail("sender@example.com").addTaxID("DE4711").addVATID("DE0815").setContact(new Contact("Hans Test","+49123456789","test@example.org")).addBankDetails(new BankDetails("DE12500105170648489890","COBADEFXXX")))
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").setEmail("recipient@sample.org"))
.addCashDiscount(new CashDiscount(new BigDecimal(2),7))
.addCashDiscount(new CashDiscount(new BigDecimal(3),14))
.setReferenceNumber("991-01484-64")//leitweg-id
// not using any VAT, this is also a test of zero-rated goods:
.setNumber(number).setPaymentTermDescription("#SKONTO#TAGE=14#PROZENT=2.25#\n" +
"#SKONTO#TAGE=28#PROZENT=1.00#\n").addItem(new Item(new Product("Testprodukt", "", "C62", BigDecimal.ZERO), amount, new BigDecimal(1.0)))
.setNumber(number).addItem(new Item(new Product("Testprodukt", "", "C62", BigDecimal.ZERO), amount, new BigDecimal(1.0)))
.embedFileInXML(fe1);
@@ -101,6 +102,7 @@ public class XRTest extends TestCase {
zf2p.generateXML(i);
String theXML = new String(zf2p.getXML(), StandardCharsets.UTF_8);
assertTrue(theXML.contains("<rsm:CrossIndustryInvoice"));
assertTrue(theXML.contains("#SKONTO#"));
assertThat(theXML).valueByXPath("count(//*[local-name()='IncludedSupplyChainTradeLineItem'])")
.asInt()
.isEqualTo(1); //2 errors are OK because there is a known bug

View File

@@ -234,7 +234,6 @@ public class ZF2Test extends MustangReaderTestCase {
assertEquals(zi.getLineItemList().get(0).getProduct().getSellerAssignedID(), "");
assertEquals(zi.getLineItemList().get(0).getLineTotalAmount().toString(), "160.00");
assertEquals(zi.getLineItemList().get(0).getQuantity().toString(), "1.0000");
assertEquals(zi.getLineItemList().get(0).getGrossPrice().toString(), "160.0000");
assertEquals(zi.getLineItemList().get(0).getProduct().getVATPercent().toString(), "7.00");
assertEquals(zi.getLineItemList().get(0).getProduct().getName(), "Künstlerische Gestaltung (Stunde): Einer Beispielrechnung");
assertEquals(zi.getLineItemList().get(0).getProduct().getDescription(), "");