diff --git a/eu_einvoice/european_e_invoice/custom/sales_invoice.py b/eu_einvoice/european_e_invoice/custom/sales_invoice.py
index da4ba878..e57ef6e3 100644
--- a/eu_einvoice/european_e_invoice/custom/sales_invoice.py
+++ b/eu_einvoice/european_e_invoice/custom/sales_invoice.py
@@ -127,6 +127,7 @@ def __init__(
self.doc = None
self.item_tax_rates = set()
self.delivery_dates = []
+ self.vat_exemption_reason_text = ""
def get_einvoice(self) -> Document | None:
"""Return the einvoice document as a Python object."""
@@ -135,6 +136,9 @@ def get_einvoice(self) -> Document | None:
def create_einvoice(self):
"""Create the einvoice document as a Python object."""
self.doc = Document()
+ self.vat_exemption_reason_text = str(
+ frappe.db.get_single_value("E Invoice Settings", "vat_exemption_reason_text") or ""
+ ).strip()
self._set_context()
self._set_header()
@@ -273,7 +277,10 @@ def _set_seller(self):
self._set_seller_address()
def _set_seller_id(self):
- for row in self.customer.supplier_numbers:
+ supplier_numbers = getattr(self.customer, "supplier_numbers", None)
+ if not supplier_numbers:
+ return
+ for row in supplier_numbers:
if row.company == self.invoice.company and row.supplier_number:
self.doc.trade.agreement.seller.id = row.supplier_number
break
@@ -486,6 +493,7 @@ def _add_line_item(self, item: SalesInvoiceItem):
("Sales Taxes and Charges Template", self.invoice.taxes_and_charges),
]
).upper()
+ self._set_optional_vat_exemption_reason_text(li.settlement.trade_tax)
li.settlement.monetary_summation.total_amount = flt(item.net_amount, item.precision("net_amount"))
self.doc.trade.items.add(li)
@@ -614,8 +622,13 @@ def _add_empty_tax(self):
("Sales Taxes and Charges Template", self.invoice.taxes_and_charges),
]
).upper()
+ self._set_optional_vat_exemption_reason_text(trade_tax)
self.doc.trade.settlement.trade_tax.add(trade_tax)
+ def _set_optional_vat_exemption_reason_text(self, trade_tax: ApplicableTradeTax) -> None:
+ if self.vat_exemption_reason_text:
+ trade_tax.exemption_reason = self.vat_exemption_reason_text
+
def _add_delivery_date(self):
if self.delivery_dates:
delivery_date = sorted(self.delivery_dates)[-1]
diff --git a/eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py b/eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py
index 2a402a74..903c9a73 100644
--- a/eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py
+++ b/eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py
@@ -1,6 +1,7 @@
# Copyright (c) 2024, ALYF GmbH and contributors
# For license information, please see license.txt
+from __future__ import annotations
from pathlib import Path
from typing import TYPE_CHECKING
@@ -223,7 +224,7 @@ def _validate_schematron(self, xml_bytes):
if any(validation_warnings):
self.validation_warnings += "\n".join(validation_warnings)
- def parse_seller(self, seller: "TradeParty"):
+ def parse_seller(self, seller: TradeParty):
self.seller_name = str(seller.name)
self.seller_tax_id = (
seller.tax_registrations.children[0].id._text if seller.tax_registrations.children else None
@@ -232,13 +233,13 @@ def parse_seller(self, seller: "TradeParty"):
self.seller_electronic_address_scheme = str(seller.electronic_address.uri_ID._scheme_id)
self.parse_address(seller.address, "seller")
- def parse_buyer(self, buyer: "TradeParty"):
+ def parse_buyer(self, buyer: TradeParty):
self.buyer_name = str(buyer.name)
self.buyer_electronic_address = str(buyer.electronic_address.uri_ID._text)
self.buyer_electronic_address_scheme = str(buyer.electronic_address.uri_ID._scheme_id)
self.parse_address(buyer.address, "buyer")
- def parse_address(self, address: "PostalTradeAddress", prefix: str) -> _dict:
+ def parse_address(self, address: PostalTradeAddress, prefix: str) -> _dict:
country = frappe.db.get_value("Country", {"code": str(address.country_id).lower()}, "name")
self.set(f"{prefix}_city", str(address.city_name))
@@ -247,7 +248,7 @@ def parse_address(self, address: "PostalTradeAddress", prefix: str) -> _dict:
self.set(f"{prefix}_postcode", str(address.postcode))
self.set(f"{prefix}_country", str(country))
- def parse_line_item(self, li: "LineItem"):
+ def parse_line_item(self, li: LineItem):
item = self.append("items")
net_rate = float(li.agreement.net.amount._value)
@@ -274,13 +275,15 @@ def parse_line_item(self, li: "LineItem"):
item.tax_rate = flt_or_none(li.settlement.trade_tax.rate_applicable_percent._value)
item.total_amount = flt_or_none(li.settlement.monetary_summation.total_amount._value)
- def parse_tax(self, tax: "ApplicableTradeTax"):
+ def parse_tax(self, tax: ApplicableTradeTax):
t = self.append("taxes")
t.basis_amount = flt_or_none(tax.basis_amount._value)
t.rate_applicable_percent = flt_or_none(tax.rate_applicable_percent._value)
t.calculated_amount = flt_or_none(tax.calculated_amount._value)
+ reason_text = tax.exemption_reason._text
+ t.vat_exemption_reason_text = str(reason_text).strip() if reason_text else None
- def parse_payment_term(self, term: "PaymentTerms"):
+ def parse_payment_term(self, term: PaymentTerms):
if not term.partial_amount.children:
self.due_date = term.due._value
return
@@ -309,7 +312,7 @@ def parse_payment_term(self, term: "PaymentTerms"):
if term.discount_terms.actual_amount._value:
t.discount_actual_amount = float(term.discount_terms.actual_amount._value)
- def parse_monetary_summation(self, summation: "MonetarySummation"):
+ def parse_monetary_summation(self, summation: MonetarySummation):
self.line_total = flt_or_none(summation.line_total._value)
self.allowance_total = flt_or_none(summation.allowance_total._value)
self.charge_total = flt_or_none(summation.charge_total._value)
@@ -322,14 +325,14 @@ def parse_monetary_summation(self, summation: "MonetarySummation"):
self.total_prepaid = flt_or_none(summation.prepaid_total._value)
self.due_payable = flt_or_none(summation.due_amount._value)
- def parse_bank_details(self, payment_means: "PaymentMeans"):
+ def parse_bank_details(self, payment_means: PaymentMeans):
self.payee_iban = payment_means.payee_account.iban._text or None
if EInvoiceProfile(self.profile) >= EInvoiceProfile.EN16931:
self.payee_account_name = payment_means.payee_account.account_name._text or None
self.payee_bic = payment_means.payee_institution.bic._text or None
- def parse_billing_period(self, period: "BillingSpecifiedPeriod"):
+ def parse_billing_period(self, period: BillingSpecifiedPeriod):
self.billing_period_start = period.start._value
self.billing_period_end = period.end._value
@@ -466,8 +469,8 @@ def relative_url_to_path(url: str) -> Path:
@frappe.whitelist()
-def create_purchase_invoice(source_name, target_doc=None):
- def post_process(source, target: "PurchaseInvoice"):
+def create_purchase_invoice(source_name: str, target_doc: Document | None = None):
+ def post_process(source, target: PurchaseInvoice):
target.set_missing_values()
def process_item_row(source, target, source_parent) -> None:
diff --git a/eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json b/eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
index 9b5f467f..1a69a724 100644
--- a/eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
+++ b/eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
@@ -12,6 +12,8 @@
"error_action_on_save",
"error_action_on_submit",
"sales_invoice_number_field",
+ "section_break_bt120",
+ "vat_exemption_reason_text",
"section_break_yldr",
"auto_attach_xml",
"attach_field_for_xml_file"
@@ -74,13 +76,24 @@
"fieldname": "sales_invoice_number_field",
"fieldtype": "Autocomplete",
"label": "Sales Invoice Number Field"
+ },
+ {
+ "fieldname": "section_break_bt120",
+ "fieldtype": "Section Break",
+ "label": "VAT exemption (e-invoice)"
+ },
+ {
+ "description": "If set, written to BT-120 (ram:ExemptionReason) on VAT breakdowns where an exemption reason code is emitted. Left unset in the XML when empty.",
+ "fieldname": "vat_exemption_reason_text",
+ "fieldtype": "Small Text",
+ "label": "Default VAT exemption reason"
}
],
"grid_page_length": 50,
"index_web_pages_for_search": 1,
"issingle": 1,
"links": [],
- "modified": "2026-02-06 17:52:09.990716",
+ "modified": "2026-06-08 13:02:59.672943",
"modified_by": "Administrator",
"module": "European e-Invoice",
"name": "E Invoice Settings",
diff --git a/eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.py b/eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.py
index f61bdfcf..48197706 100644
--- a/eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.py
+++ b/eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.py
@@ -23,6 +23,7 @@ class EInvoiceSettings(Document):
sales_invoice_number_field: DF.Autocomplete | None
validate_sales_invoice_on_save: DF.Check
validate_sales_invoice_on_submit: DF.Check
+ vat_exemption_reason_text: DF.SmallText | None
# end: auto-generated types
def before_validate(self):
diff --git a/eu_einvoice/european_e_invoice/doctype/e_invoice_trade_tax/e_invoice_trade_tax.json b/eu_einvoice/european_e_invoice/doctype/e_invoice_trade_tax/e_invoice_trade_tax.json
index 8a631c44..f0fbc8ff 100644
--- a/eu_einvoice/european_e_invoice/doctype/e_invoice_trade_tax/e_invoice_trade_tax.json
+++ b/eu_einvoice/european_e_invoice/doctype/e_invoice_trade_tax/e_invoice_trade_tax.json
@@ -9,6 +9,7 @@
"basis_amount",
"rate_applicable_percent",
"calculated_amount",
+ "vat_exemption_reason_text",
"tax_account"
],
"fields": [
@@ -35,6 +36,12 @@
"options": "currency",
"read_only": 1
},
+ {
+ "fieldname": "vat_exemption_reason_text",
+ "fieldtype": "Small Text",
+ "label": "VAT exemption reason",
+ "read_only": 1
+ },
{
"fieldname": "tax_account",
"fieldtype": "Link",
@@ -45,12 +52,13 @@
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
- "modified": "2024-09-26 21:18:13.837830",
+ "modified": "2026-06-08 13:04:01.003993",
"modified_by": "Administrator",
"module": "European e-Invoice",
"name": "E Invoice Trade Tax",
"owner": "Administrator",
"permissions": [],
+ "row_format": "Dynamic",
"sort_field": "creation",
"sort_order": "DESC",
"states": []
diff --git a/eu_einvoice/european_e_invoice/doctype/e_invoice_trade_tax/e_invoice_trade_tax.py b/eu_einvoice/european_e_invoice/doctype/e_invoice_trade_tax/e_invoice_trade_tax.py
index c63ad54f..76032038 100644
--- a/eu_einvoice/european_e_invoice/doctype/e_invoice_trade_tax/e_invoice_trade_tax.py
+++ b/eu_einvoice/european_e_invoice/doctype/e_invoice_trade_tax/e_invoice_trade_tax.py
@@ -21,6 +21,7 @@ class EInvoiceTradeTax(Document):
parenttype: DF.Data
rate_applicable_percent: DF.Percent
tax_account: DF.Link | None
+ vat_exemption_reason_text: DF.SmallText | None
# end: auto-generated types
pass
diff --git a/eu_einvoice/locale/de.po b/eu_einvoice/locale/de.po
index b7c75151..91c2a2ee 100644
--- a/eu_einvoice/locale/de.po
+++ b/eu_einvoice/locale/de.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: European e-Invoice VERSION\n"
"Report-Msgid-Bugs-To: hallo@alyf.de\n"
-"POT-Creation-Date: 2026-05-12 20:40+0053\n"
+"POT-Creation-Date: 2026-06-05 10:01+0053\n"
"PO-Revision-Date: 2026-02-05 11:13+0100\n"
"Last-Translator: hallo@alyf.de\n"
"Language: de\n"
@@ -18,10 +18,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.13.1\n"
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:790
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:803
msgid "A document level discount is currently not supported in the e-invoice."
msgstr "Ein Rabatt auf der Dokumentebene wird in der E-Rechnung derzeit nicht unterstützt."
+#. Label of a Data field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Account Name"
+msgstr "Kontoname"
+
#. Label of a Select field in DocType 'E Invoice Settings'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
msgid "Action on Validation Error during Save"
@@ -51,7 +56,7 @@ msgstr "Vereinbarung"
msgid "Allowance Total"
msgstr "Abschläge gesamt"
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:105
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:106
msgid "An E Invoice Import with the same Invoice ID and Supplier already exists."
msgstr "Eine E-Rechnung mit der gleichen Rechnungs-ID und Lieferanten existiert bereits."
@@ -160,11 +165,11 @@ msgstr "Berechneter Betrag"
msgid "Calculation Percent"
msgstr "Berechnung Prozentsatz"
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:821
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:834
msgid "Cannot create E Invoice."
msgstr "E-Rechnung konnte nicht erstellt werden."
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:835
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:848
msgid "Cannot validate E Invoice schematron."
msgstr "E-Rechnung konnte nicht validiert werden."
@@ -173,18 +178,28 @@ msgstr "E-Rechnung konnte nicht validiert werden."
msgid "Charge Total"
msgstr "Zuschläge gesamt"
+#. Label of a Link in the E-Invoicing Workspace
+#: eu_einvoice/european_e_invoice/workspace/e_invoicing/e_invoicing.json
+msgid "Code List"
+msgstr "Code List"
+
#. Description of a Card Break in the E-Invoicing Workspace
#: eu_einvoice/european_e_invoice/workspace/e_invoicing/e_invoicing.json
msgid "Code Lists are typically public lists of common codes used in data interchange between third parties"
msgstr "Code-Listen sind in der Regel öffentliche Listen von häufig verwendeten Codes, die in der Datenübertragung zwischen Drittanbietern verwendet werden."
+#. Label of a Link in the E-Invoicing Workspace
+#: eu_einvoice/european_e_invoice/workspace/e_invoicing/e_invoicing.json
+msgid "Common Code"
+msgstr "Common Code"
+
#. Description of the 'Sales Invoice Number Field' (Autocomplete) field in
#. DocType 'E Invoice Settings'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
msgid "Configure this if you are storing custom invoice numbers in a field other than name."
msgstr "Konfigurieren Sie dies, wenn Sie benutzerdefinierte Rechnungsnummern in einem anderen Feld als name speichern."
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:211
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:212
msgid "Could not validate E Invoice schematron. See Error Log for details."
msgstr "E-Rechnung konnte nicht validiert werden. Details im Fehlerlog."
@@ -194,7 +209,7 @@ msgid "Create Item"
msgstr "Artikel erstellen"
#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.js:93
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:434
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:437
msgid "Create Purchase Invoice"
msgstr "Eingangsrechnung erstellen"
@@ -222,6 +237,28 @@ msgstr "Kundennummer beim Lieferanten"
msgid "Customer numbers assigned by the supplier"
msgstr "Vom Lieferanten zugewiesene Kundennummern"
+#. Label of a Small Text field in DocType 'E Invoice Settings'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
+msgid "Default VAT exemption reason"
+msgstr "Standard Grund für die Umsatzsteuerbefreiung"
+
+#. Label of a Tab Break field in DocType 'E Invoice Import'
+#. Label of a Section Break field in DocType 'E Invoice Item'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
+msgid "Delivery"
+msgstr "Lieferung"
+
+#. Label of a Section Break field in DocType 'E Invoice Payment Term'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_payment_term/e_invoice_payment_term.json
+msgid "Discount"
+msgstr "Rabatt"
+
+#. Label of a shortcut in the E-Invoicing Workspace
+#: eu_einvoice/european_e_invoice/workspace/e_invoicing/e_invoicing.json
+msgid "Documentation"
+msgstr "Dokumentation"
+
#: eu_einvoice/european_e_invoice/custom/sales_invoice.js:16
msgid "Download eInvoice"
msgstr "E-Rechnung herunterladen"
@@ -243,7 +280,7 @@ msgstr "Fälliger Betrag"
msgid "E Invoice Import"
msgstr "E-Rechnungs-Import"
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:650
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:653
msgid "E Invoice Import {0} does not exist"
msgstr "E-Rechnungs-Import {0} existiert nicht"
@@ -279,7 +316,7 @@ msgstr "E-Rechnungs-Einstellungen"
msgid "E Invoice Trade Tax"
msgstr "E-Rechnungs-Steuer"
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:803
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:816
msgid "E Invoice is not correct"
msgstr "E-Rechnung ist nicht korrekt"
@@ -312,11 +349,11 @@ msgstr "Schema der elektronischen Adresse"
msgid "Embedded Document"
msgstr "Eingebettetes Dokument"
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.py:50
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.py:51
msgid "Field '{0}' does not exist on Sales Invoice doctype"
msgstr "Feld '{0}' existiert nicht im DocType 'Sales Invoice'"
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.py:58
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.py:59
msgid "Field '{0}' must be of type 'Attach'. Current type: {1}"
msgstr "Feld '{0}' muss vom Typ 'Anhängen' sein. Aktueller Typ: {1}"
@@ -325,6 +362,43 @@ msgstr "Feld '{0}' muss vom Typ 'Anhängen' sein. Aktueller Typ: {1}"
msgid "File Section"
msgstr "Datei-Abschnitt"
+#. Label of a Currency field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Grand Total"
+msgstr "Gesamtbetrag"
+
+#. Label of a Data field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "IBAN"
+msgstr "IBAN"
+
+#. Description of the 'Default VAT exemption reason' (Small Text) field in
+#. DocType 'E Invoice Settings'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
+msgid "If set, written to BT-120 (ram:ExemptionReason) on VAT breakdowns where an exemption reason code is emitted. Left unset in the XML when empty."
+msgstr "Wenn ausgefüllt, wird der Text als BT-120 (ram:ExemptionReason) in der Steueraufschlüsselung geschrieben, sobald ein Befreiungsgrundcode ausgegeben wird. Bleibt das Feld leer, wird BT-120 im XML nicht gesetzt."
+
+#. Label of a Data field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Invoice ID"
+msgstr "Rechnungs-ID"
+
+#. Label of a Date field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Issue Date"
+msgstr "Ausstellungsdatum"
+
+#. Label of a Link field in DocType 'E Invoice Item'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
+msgid "Item"
+msgstr "Artikel"
+
+#. Label of a Table field in DocType 'E Invoice Import'
+#. Label of a Tab Break field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Items"
+msgstr "Positionen"
+
#. Label of a Currency field in DocType 'E Invoice Import'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
msgid "Line Total"
@@ -339,16 +413,26 @@ msgstr "Mit {0} verknüpfen"
msgid "Monetary Summation"
msgstr "Gesamtbeträge"
+#. Label of a Currency field in DocType 'E Invoice Item'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
+msgid "Net Rate"
+msgstr "Nettopreis"
+
#. Label of a shortcut in the E-Invoicing Workspace
#: eu_einvoice/european_e_invoice/workspace/e_invoicing/e_invoicing.json
msgid "New E Invoice Import"
msgstr "Neuer E-Rechnungs-Import"
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:443
+#. Label of a shortcut in the E-Invoicing Workspace
+#: eu_einvoice/european_e_invoice/workspace/e_invoicing/e_invoicing.json
+msgid "New Sales Invoice"
+msgstr "Neue Ausgangsrechnung"
+
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:446
msgid "No machine-readable data was found in the PDF file. You can create a regular Purchase Invoice manually instead."
msgstr "In der PDF-Datei wurden keine maschinenlesbaren Daten gefunden. Sie können stattdessen eine reguläre Eingangsrechnung manuell erstellen."
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:446
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:449
msgid "Not an E-Invoice"
msgstr "Keine E-Rechnung"
@@ -368,11 +452,16 @@ msgstr "Teilbetrag"
msgid "Payment Means"
msgstr "Zahlungsmittel"
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:119
+#. Label of a Table field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Payment Terms"
+msgstr "Zahlungsbedingungen"
+
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:120
msgid "Please create or select a supplier before submitting"
msgstr "Bitte vor dem Buchen einen Lieferanten auswählen oder erstellen."
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:125
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:126
msgid "Please map all invoice lines to an item before submitting"
msgstr "Bitte vor dem Buchen alle Positionen einem Artikel zuordnen."
@@ -380,10 +469,15 @@ msgstr "Bitte vor dem Buchen alle Positionen einem Artikel zuordnen."
msgid "Please note the validation errors of the e-invoice."
msgstr "Bitte beachten Sie die Validierungsfehler der E-Rechnung."
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:122
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:123
msgid "Please select a company before submitting"
msgstr "Bitte vor dem Buchen ein Unternehmen auswählen."
+#. Label of a Section Break field in DocType 'E Invoice Item'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
+msgid "Product"
+msgstr "Produkt"
+
#. Label of a Small Text field in DocType 'E Invoice Item'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
msgid "Product Description"
@@ -394,10 +488,20 @@ msgstr "Produktbeschreibung"
msgid "Product Name"
msgstr "Produktname"
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:644
+#. Linked DocType in E Invoice Import's connections
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Purchase Invoice"
+msgstr "Eingangsrechnung"
+
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:647
msgid "Purchase Invoice {0} is already linked to E Invoice Import {1}"
msgstr "Eingangsrechnung {0} ist bereits mit E-Rechnungs-Import {1} verknüpft"
+#. Label of a Link field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Purchase Order"
+msgstr "Lieferantenauftrag"
+
#. Label of a Link field in DocType 'E Invoice Item'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
msgid "Purchase Order Row"
@@ -408,6 +512,11 @@ msgstr "Bestellposition"
msgid "Rate Applicable Percent"
msgstr "Anwendbarer Prozentsatz"
+#. Label of a Section Break field in DocType 'E Invoice Settings'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
+msgid "Sales Invoice"
+msgstr "Ausgangsrechnung"
+
#. Label of a Autocomplete field in DocType 'E Invoice Settings'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
msgid "Sales Invoice Number Field"
@@ -475,6 +584,16 @@ msgstr "Verkäufer-Steuer-ID"
msgid "Settlement"
msgstr "Ausgleich"
+#. Label of a Link field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Supplier"
+msgstr "Lieferant"
+
+#. Label of a Link field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Supplier Address"
+msgstr "Lieferanten-Adresse"
+
#: eu_einvoice/custom_fields.py:28
msgid "Supplier Invoice File"
msgstr "Lieferantenrechnungsdatei"
@@ -497,30 +616,60 @@ msgstr "Lieferantennummern"
msgid "Supplier numbers assigned by the customer"
msgstr "Vom Kunden zugewiesene Lieferantennummern"
+#. Label of a Link field in DocType 'E Invoice Trade Tax'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_trade_tax/e_invoice_trade_tax.json
+msgid "Tax Account"
+msgstr "Steuer-Konto"
+
#. Label of a Currency field in DocType 'E Invoice Import'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
msgid "Tax Basis Total"
msgstr "Steuerbasis gesamt"
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:453
+#. Label of a Percent field in DocType 'E Invoice Item'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
+msgid "Tax Rate"
+msgstr "Steuersatz"
+
+#. Label of a Currency field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Tax Total"
+msgstr "Steuer gesamt"
+
+#. Label of a Table field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Taxes"
+msgstr "Steuern"
+
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:456
msgid "The format of the uploaded file ({0}) is not supported for E-Invoices. Please upload a valid E-Invoice file or create a regular Purchase Invoice manually instead."
msgstr "Das Format der hochgeladenen Datei ({0}) wird für E-Rechnungen nicht unterstützt. Bitte laden Sie eine gültige E-Rechnungsdatei hoch oder erstellen Sie stattdessen eine reguläre Eingangsrechnung manuell."
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:160
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:161
msgid "The uploaded file does not contain valid XML data."
msgstr "Die hochgeladene Datei enthält keine gültige XML-Daten."
+#. Label of a Currency field in DocType 'E Invoice Item'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
+msgid "Total Amount"
+msgstr "Gesamtbetrag"
+
#. Label of a Currency field in DocType 'E Invoice Import'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
msgid "Total Prepaid"
msgstr "Vorausbezahlt"
+#. Label of a Link field in DocType 'E Invoice Item'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
+msgid "UOM"
+msgstr "Einheit"
+
#. Label of a Data field in DocType 'E Invoice Item'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
msgid "Unit Code"
msgstr "Einheits-Code"
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:456
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:459
msgid "Unsupported file format"
msgstr "Nicht unterstütztes Dateiformat"
@@ -529,6 +678,16 @@ msgstr "Nicht unterstütztes Dateiformat"
msgid "Upload the .xml or .pdf file provided by your supplier."
msgstr "Laden Sie die von Ihrem Lieferanten bereitgestellte .xml- oder .pdf-Datei hoch."
+#. Label of a Section Break field in DocType 'E Invoice Settings'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
+msgid "VAT exemption (e-invoice)"
+msgstr "Umsatzsteuerbefreiung (E-Rechnung)"
+
+#. Label of a Small Text field in DocType 'E Invoice Trade Tax'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_trade_tax/e_invoice_trade_tax.json
+msgid "VAT exemption reason"
+msgstr "Grund für Umsatzsteuerbefreiung"
+
#. Label of a Check field in DocType 'E Invoice Settings'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
msgid "Validate Sales Invoice on Save"
@@ -563,19 +722,19 @@ msgstr "Validierungswarnungen"
msgid "Warning Message"
msgstr "Warnung"
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:769
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:782
msgid "{0} row #{1}: Discount Date should be after Posting Date"
msgstr "{0} Zeile {1}: Rabatt-Datum sollte nach Buchungsdatum liegen"
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:758
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:771
msgid "{0} row #{1}: The charge type 'Actual' is only supported in the eInvoice profiles 'EXTENDED' and 'XRECHNUNG'."
msgstr "Die Gebührenart 'Tatsächlich' wird nur in den E-Rechnungs-Profilen 'EXTENDED' und 'XRECHNUNG' unterstützt."
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:746
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:759
msgid "{0} row #{1}: Type '{2}' is not supported in e-invoice"
msgstr "{0} Zeile #{1}: Typ '{2}' wird in der E-Rechnung nicht unterstützt"
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:781
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:794
msgid "{0}: Only one mode of payment will be considered in the e-invoice."
msgstr "{0}: Nur eine Zahlungsart wird in der E-Rechnung berücksichtigt."
diff --git a/eu_einvoice/locale/main.pot b/eu_einvoice/locale/main.pot
index 879bcab9..c60088c0 100644
--- a/eu_einvoice/locale/main.pot
+++ b/eu_einvoice/locale/main.pot
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: European e-Invoice VERSION\n"
"Report-Msgid-Bugs-To: hallo@alyf.de\n"
-"POT-Creation-Date: 2026-05-12 20:40+0053\n"
-"PO-Revision-Date: 2026-05-12 20:40+0053\n"
+"POT-Creation-Date: 2026-06-05 10:01+0053\n"
+"PO-Revision-Date: 2026-06-05 10:01+0053\n"
"Last-Translator: hallo@alyf.de\n"
"Language-Team: hallo@alyf.de\n"
"MIME-Version: 1.0\n"
@@ -16,10 +16,15 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.13.1\n"
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:790
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:803
msgid "A document level discount is currently not supported in the e-invoice."
msgstr ""
+#. Label of a Data field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Account Name"
+msgstr ""
+
#. Label of a Select field in DocType 'E Invoice Settings'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
msgid "Action on Validation Error during Save"
@@ -49,7 +54,7 @@ msgstr ""
msgid "Allowance Total"
msgstr ""
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:105
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:106
msgid "An E Invoice Import with the same Invoice ID and Supplier already exists."
msgstr ""
@@ -158,11 +163,11 @@ msgstr ""
msgid "Calculation Percent"
msgstr ""
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:821
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:834
msgid "Cannot create E Invoice."
msgstr ""
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:835
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:848
msgid "Cannot validate E Invoice schematron."
msgstr ""
@@ -171,18 +176,28 @@ msgstr ""
msgid "Charge Total"
msgstr ""
+#. Label of a Link in the E-Invoicing Workspace
+#: eu_einvoice/european_e_invoice/workspace/e_invoicing/e_invoicing.json
+msgid "Code List"
+msgstr ""
+
#. Description of a Card Break in the E-Invoicing Workspace
#: eu_einvoice/european_e_invoice/workspace/e_invoicing/e_invoicing.json
msgid "Code Lists are typically public lists of common codes used in data interchange between third parties"
msgstr ""
+#. Label of a Link in the E-Invoicing Workspace
+#: eu_einvoice/european_e_invoice/workspace/e_invoicing/e_invoicing.json
+msgid "Common Code"
+msgstr ""
+
#. Description of the 'Sales Invoice Number Field' (Autocomplete) field in
#. DocType 'E Invoice Settings'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
msgid "Configure this if you are storing custom invoice numbers in a field other than name."
msgstr ""
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:211
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:212
msgid "Could not validate E Invoice schematron. See Error Log for details."
msgstr ""
@@ -192,7 +207,7 @@ msgid "Create Item"
msgstr ""
#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.js:93
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:434
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:437
msgid "Create Purchase Invoice"
msgstr ""
@@ -220,6 +235,28 @@ msgstr ""
msgid "Customer numbers assigned by the supplier"
msgstr ""
+#. Label of a Small Text field in DocType 'E Invoice Settings'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
+msgid "Default VAT exemption reason"
+msgstr ""
+
+#. Label of a Tab Break field in DocType 'E Invoice Import'
+#. Label of a Section Break field in DocType 'E Invoice Item'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
+msgid "Delivery"
+msgstr ""
+
+#. Label of a Section Break field in DocType 'E Invoice Payment Term'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_payment_term/e_invoice_payment_term.json
+msgid "Discount"
+msgstr ""
+
+#. Label of a shortcut in the E-Invoicing Workspace
+#: eu_einvoice/european_e_invoice/workspace/e_invoicing/e_invoicing.json
+msgid "Documentation"
+msgstr ""
+
#: eu_einvoice/european_e_invoice/custom/sales_invoice.js:16
msgid "Download eInvoice"
msgstr ""
@@ -241,7 +278,7 @@ msgstr ""
msgid "E Invoice Import"
msgstr ""
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:650
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:653
msgid "E Invoice Import {0} does not exist"
msgstr ""
@@ -277,7 +314,7 @@ msgstr ""
msgid "E Invoice Trade Tax"
msgstr ""
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:803
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:816
msgid "E Invoice is not correct"
msgstr ""
@@ -310,11 +347,11 @@ msgstr ""
msgid "Embedded Document"
msgstr ""
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.py:50
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.py:51
msgid "Field '{0}' does not exist on Sales Invoice doctype"
msgstr ""
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.py:58
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.py:59
msgid "Field '{0}' must be of type 'Attach'. Current type: {1}"
msgstr ""
@@ -323,6 +360,43 @@ msgstr ""
msgid "File Section"
msgstr ""
+#. Label of a Currency field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Grand Total"
+msgstr ""
+
+#. Label of a Data field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "IBAN"
+msgstr ""
+
+#. Description of the 'Default VAT exemption reason' (Small Text) field in
+#. DocType 'E Invoice Settings'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
+msgid "If set, written to BT-120 (ram:ExemptionReason) on VAT breakdowns where an exemption reason code is emitted. Left unset in the XML when empty."
+msgstr ""
+
+#. Label of a Data field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Invoice ID"
+msgstr ""
+
+#. Label of a Date field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Issue Date"
+msgstr ""
+
+#. Label of a Link field in DocType 'E Invoice Item'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
+msgid "Item"
+msgstr ""
+
+#. Label of a Table field in DocType 'E Invoice Import'
+#. Label of a Tab Break field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Items"
+msgstr ""
+
#. Label of a Currency field in DocType 'E Invoice Import'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
msgid "Line Total"
@@ -337,16 +411,26 @@ msgstr ""
msgid "Monetary Summation"
msgstr ""
+#. Label of a Currency field in DocType 'E Invoice Item'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
+msgid "Net Rate"
+msgstr ""
+
#. Label of a shortcut in the E-Invoicing Workspace
#: eu_einvoice/european_e_invoice/workspace/e_invoicing/e_invoicing.json
msgid "New E Invoice Import"
msgstr ""
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:443
-msgid "No machine-readable data was found in the PDF file. You can create a regular Purchase Invoice manually instead."
+#. Label of a shortcut in the E-Invoicing Workspace
+#: eu_einvoice/european_e_invoice/workspace/e_invoicing/e_invoicing.json
+msgid "New Sales Invoice"
msgstr ""
#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:446
+msgid "No machine-readable data was found in the PDF file. You can create a regular Purchase Invoice manually instead."
+msgstr ""
+
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:449
msgid "Not an E-Invoice"
msgstr ""
@@ -366,11 +450,16 @@ msgstr ""
msgid "Payment Means"
msgstr ""
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:119
+#. Label of a Table field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Payment Terms"
+msgstr ""
+
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:120
msgid "Please create or select a supplier before submitting"
msgstr ""
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:125
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:126
msgid "Please map all invoice lines to an item before submitting"
msgstr ""
@@ -378,10 +467,15 @@ msgstr ""
msgid "Please note the validation errors of the e-invoice."
msgstr ""
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:122
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:123
msgid "Please select a company before submitting"
msgstr ""
+#. Label of a Section Break field in DocType 'E Invoice Item'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
+msgid "Product"
+msgstr ""
+
#. Label of a Small Text field in DocType 'E Invoice Item'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
msgid "Product Description"
@@ -392,10 +486,20 @@ msgstr ""
msgid "Product Name"
msgstr ""
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:644
+#. Linked DocType in E Invoice Import's connections
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Purchase Invoice"
+msgstr ""
+
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:647
msgid "Purchase Invoice {0} is already linked to E Invoice Import {1}"
msgstr ""
+#. Label of a Link field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Purchase Order"
+msgstr ""
+
#. Label of a Link field in DocType 'E Invoice Item'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
msgid "Purchase Order Row"
@@ -406,6 +510,11 @@ msgstr ""
msgid "Rate Applicable Percent"
msgstr ""
+#. Label of a Section Break field in DocType 'E Invoice Settings'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
+msgid "Sales Invoice"
+msgstr ""
+
#. Label of a Autocomplete field in DocType 'E Invoice Settings'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
msgid "Sales Invoice Number Field"
@@ -473,6 +582,16 @@ msgstr ""
msgid "Settlement"
msgstr ""
+#. Label of a Link field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Supplier"
+msgstr ""
+
+#. Label of a Link field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Supplier Address"
+msgstr ""
+
#: eu_einvoice/custom_fields.py:28
msgid "Supplier Invoice File"
msgstr ""
@@ -495,30 +614,60 @@ msgstr ""
msgid "Supplier numbers assigned by the customer"
msgstr ""
+#. Label of a Link field in DocType 'E Invoice Trade Tax'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_trade_tax/e_invoice_trade_tax.json
+msgid "Tax Account"
+msgstr ""
+
#. Label of a Currency field in DocType 'E Invoice Import'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
msgid "Tax Basis Total"
msgstr ""
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:453
+#. Label of a Percent field in DocType 'E Invoice Item'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
+msgid "Tax Rate"
+msgstr ""
+
+#. Label of a Currency field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Tax Total"
+msgstr ""
+
+#. Label of a Table field in DocType 'E Invoice Import'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
+msgid "Taxes"
+msgstr ""
+
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:456
msgid "The format of the uploaded file ({0}) is not supported for E-Invoices. Please upload a valid E-Invoice file or create a regular Purchase Invoice manually instead."
msgstr ""
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:160
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:161
msgid "The uploaded file does not contain valid XML data."
msgstr ""
+#. Label of a Currency field in DocType 'E Invoice Item'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
+msgid "Total Amount"
+msgstr ""
+
#. Label of a Currency field in DocType 'E Invoice Import'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.json
msgid "Total Prepaid"
msgstr ""
+#. Label of a Link field in DocType 'E Invoice Item'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
+msgid "UOM"
+msgstr ""
+
#. Label of a Data field in DocType 'E Invoice Item'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_item/e_invoice_item.json
msgid "Unit Code"
msgstr ""
-#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:456
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_import/e_invoice_import.py:459
msgid "Unsupported file format"
msgstr ""
@@ -527,6 +676,16 @@ msgstr ""
msgid "Upload the .xml or .pdf file provided by your supplier."
msgstr ""
+#. Label of a Section Break field in DocType 'E Invoice Settings'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
+msgid "VAT exemption (e-invoice)"
+msgstr ""
+
+#. Label of a Small Text field in DocType 'E Invoice Trade Tax'
+#: eu_einvoice/european_e_invoice/doctype/e_invoice_trade_tax/e_invoice_trade_tax.json
+msgid "VAT exemption reason"
+msgstr ""
+
#. Label of a Check field in DocType 'E Invoice Settings'
#: eu_einvoice/european_e_invoice/doctype/e_invoice_settings/e_invoice_settings.json
msgid "Validate Sales Invoice on Save"
@@ -562,19 +721,19 @@ msgstr ""
msgid "Warning Message"
msgstr ""
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:769
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:782
msgid "{0} row #{1}: Discount Date should be after Posting Date"
msgstr ""
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:758
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:771
msgid "{0} row #{1}: The charge type 'Actual' is only supported in the eInvoice profiles 'EXTENDED' and 'XRECHNUNG'."
msgstr ""
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:746
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:759
msgid "{0} row #{1}: Type '{2}' is not supported in e-invoice"
msgstr ""
-#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:781
+#: eu_einvoice/european_e_invoice/custom/sales_invoice.py:794
msgid "{0}: Only one mode of payment will be considered in the e-invoice."
msgstr ""