Merge branch 'master' of github.com:ZUGFeRD/mustangproject

This commit is contained in:
jstaerk
2025-04-08 08:43:00 +02:00
21 changed files with 216 additions and 92 deletions

View File

@@ -178,6 +178,36 @@ public class XRTest extends TestCase {
}
}
public void testTaxExemptionReasonIssue() {
String orgname = "Test company";
String number = "123";
String amountStr = "1.00";
BigDecimal amount = new BigDecimal(amountStr);
byte[] b = {12, 13};
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").setAccountName("kontoInhaber")))
.setRecipient(new TradeParty("Franz Müller", "teststr.12", "55232", "Entenhausen", "DE").setEmail("recipient@sample.org"))
.setReferenceNumber("991-01484-64")//leitweg-id
// not using any VAT, this is also a test of zero-rated goods:
.setNumber(number)
.addItem(new Item(new Product("Testprodukt", "", "C62", BigDecimal.ZERO).setTaxCategoryCode("E").setTaxExemptionReason("Kleinunternehmer"), amount, new BigDecimal(1.0)))
.addItem(new Item(new Product("Testprodukt2", "", "C62", BigDecimal.ZERO).setTaxCategoryCode("S"), amount, new BigDecimal(1.0)))
.setPayee( new TradeParty().setName("VR Factoring GmbH").setID("DE813838785").setLegalOrganisation(new LegalOrganisation("391200LDDFJDMIPPMZ54", "0199")));
ZUGFeRD2PullProvider zf2p = new ZUGFeRD2PullProvider();
zf2p.setProfile(Profiles.getByName("XRechnung"));
zf2p.generateXML(i);
String theXML = new String(zf2p.getXML(), StandardCharsets.UTF_8);
assertThat(theXML).valueByXPath("count(//*[local-name()='ExemptionReason'])")
.asInt()
.isEqualTo(1);
}
private org.mustangproject.Invoice createInvoice(TradeParty recipient) {
String orgname = "Test company";

View File

@@ -585,4 +585,16 @@ public class ZF2ZInvoiceImporterTest extends ResourceCase {
assertEquals("0", zii.importedInvoice.getDuePayable().toPlainString());
}
@Test
public void test() throws FileNotFoundException, XPathExpressionException, ParseException {
File inputFile = getResourceAsFile("ORDER-X_EX01_ORDER_FULL_DATA-COMFORTorder-x.xml");
ZUGFeRDInvoiceImporter zii = new ZUGFeRDInvoiceImporter();
zii.doIgnoreCalculationErrors();
zii.setInputStream(new FileInputStream(inputFile));
Invoice invoice = zii.extractInvoice();
assertEquals(3, invoice.getZFItems().length);
assertEquals("BUYER_ACCOUNTING_REF", invoice.getZFItems()[0].getAccountingReference());
}
}

View File

@@ -762,7 +762,7 @@
<div id="BT-50" title="BT-50" class="boxdaten wert">KUNDENWEG 88</div>
</div>
<div class="boxzeile">
<div class="boxdaten legende">Postfach:</div>
<div class="boxdaten legende">Adresszusatz:</div>
<div id="BT-51" title="BT-51" class="boxdaten wert"></div>
</div>
<div class="boxzeile">
@@ -826,7 +826,7 @@
<div id="BT-35" title="BT-35" class="boxdaten wert">BAHNHOFSTRASSE 99</div>
</div>
<div class="boxzeile">
<div class="boxdaten legende">Postfach:</div>
<div class="boxdaten legende">Adresszusatz:</div>
<div id="BT-36" title="BT-36" class="boxdaten wert"></div>
</div>
<div class="boxzeile">
@@ -2203,7 +2203,7 @@
<div id="BT-75" title="BT-75" class="boxdaten wert">HAUPTSTRASSE 44</div>
</div>
<div class="boxzeile">
<div class="boxdaten legende">Postfach:</div>
<div class="boxdaten legende">Adresszusatz:</div>
<div id="BT-76" title="BT-76" class="boxdaten wert"></div>
</div>
<div class="boxzeile">