Merge branch 'f-factur-x-und-xrechnung'
authorMoritz Bunkus <m.bunkus@linet.de>
Thu, 10 Dec 2020 14:58:08 +0000 (15:58 +0100)
committerMoritz Bunkus <m.bunkus@linet.de>
Thu, 10 Dec 2020 14:58:08 +0000 (15:58 +0100)
1  2 
SL/DB/Helper/FlattenToForm.pm
bin/mozilla/io.pl
locale/de/all

@@@ -15,7 -15,7 +15,7 @@@ sub flatten_to_form 
    _copy($self, $form, '', '', 0, qw(id type taxzone_id ordnumber quonumber invnumber donumber cusordnumber taxincluded shippingpoint shipvia notes intnotes cp_id
                                      employee_id salesman_id closed department_id language_id payment_id delivery_customer_id delivery_vendor_id shipto_id proforma
                                      globalproject_id delivered transaction_description container_type accepted_by_customer invoice storno storno_id dunning_config_id
 -                                    orddate quodate reqdate gldate duedate deliverydate datepaid transdate delivery_term_id));
 +                                    orddate quodate reqdate gldate duedate deliverydate datepaid transdate tax_point delivery_term_id));
    $form->{currency} = $form->{curr} = $self->currency_id ? $self->currency->name || '' : '';
  
    if ( $vc eq 'customer' ) {
@@@ -39,7 -39,7 +39,7 @@@
                                 department_1 department_2 discount email fax gln greeting homepage iban language name
                                 natural_person phone street taxnumber ustid zipcode),
                              "${vc}number",
-                             ($vc eq 'customer')? 'c_vendor_id': 'v_customer_id');
+                             ($vc eq 'customer')? qw(c_vendor_id c_vendor_routing_id): 'v_customer_id');
    my @vc_prefixed_fields = qw(email fax notes number phone);
  
    _copy($self,                          $form, '',              '', 1, qw(amount netamount marge_total marge_percent container_remaining_weight container_remaining_volume paid exchangerate));
diff --combined bin/mozilla/io.pl
@@@ -328,7 -328,7 +328,7 @@@ sub display_row 
        $ship_qty          /= ( $all_units->{$form->{"unit_$i"}}->{factor} || 1 );
  
        $column_data{ship}  = $form->format_amount(\%myconfig, $form->round_amount($ship_qty, 2) * 1) . ' ' . $form->{"unit_$i"}
 -      . $cgi->hidden(-name => "ship_$i", -value => $form->format_amount(\%myconfig, $form->{"ship_$i"}, $qty_dec));
 +      . $cgi->hidden(-name => "ship_$i", -value => $form->{"ship_$i"}, $qty_dec);
  
        my $ship_missing_qty    = $form->{"qty_$i"} - $ship_qty;
        my $ship_missing_amount = $form->round_amount($ship_missing_qty * $form->{"sellprice_$i"} * (100 - $form->{"discount_$i"}) / 100 / $price_factor, 2);
@@@ -1409,7 -1409,7 +1409,7 @@@ sub print_form 
  
    # Format dates.
    format_dates($output_dateformat, $output_longdates,
 -               qw(invdate orddate quodate pldate duedate reqdate transdate
 +               qw(invdate orddate quodate pldate duedate reqdate transdate tax_point
                    shippingdate deliverydate validitydate paymentdate
                    datepaid transdate_oe transdate_do transdate_quo deliverydate_oe dodate
                    employee_startdate employee_enddate
@@@ -2166,8 -2166,8 +2166,8 @@@ sub _maybe_attach_zugferd_data 
      $form->{TEMPLATE_DRIVER_OPTIONS}->{pdf_a}           = $record->create_pdf_a_print_options(zugferd_xmp_data => $record->create_zugferd_xmp_data);
      $form->{TEMPLATE_DRIVER_OPTIONS}->{pdf_attachments} = [
        { source       => $xmlfile,
-         name         => 'ZUGFeRD-invoice.xml',
-         description  => $::locale->text('ZUGFeRD invoice'),
+         name         => 'factur-x.xml',
+         description  => $::locale->text('Factur-X/ZUGFeRD invoice'),
          relationship => '/Alternative',
          mime_type    => 'text/xml',
        }
diff --combined locale/de/all
@@@ -263,8 -263,6 +263,8 @@@ $self->{texts} = 
    'All groups'                  => 'Alle Gruppen',
    'All modules'                 => 'Alle Module',
    'All partsgroups'             => 'Alle Warengruppen',
 +  'All payments have already been posted.' => 'Es wurden bereits alle Zahlungen verbucht.',
 +  'All payments must be posted before the payment list can be downloaded.' => 'Alle Zahlungen müssen verbucht werden, bevor die Zahlungsliste heruntergeladen werden kann.',
    'All price sources'           => 'Alle Preisquellen',
    'All reports'                 => 'Alle Berichte (Kontenübersicht, Summen- u. Saldenliste, Erfolgsrechnung, GuV, BWA, Bilanz, Projektbuchungen)',
    'All the other clients will start with an empty set of WebDAV folders.' => 'Alle anderen Mandanten werden mit einem leeren Satz von Dokumenten-Ordnern ausgestattet.',
    'All transactions'            => 'Alle Buchungen',
    'All units have either no or exactly one base unit of which they are multiples.' => 'Einheiten haben entweder keine oder genau eine Basiseinheit, von der sie ein Vielfaches sind.',
    'All users'                   => 'Alle BenutzerInnen',
 +  'Allocations didn\'t pass constraints' => 'Keine Verfügbarkeit wegen Lagereinschränkung',
    'Allow access'                => 'Zugriff erlauben',
    'Allow conversion from sales orders to sales invoices' => 'Umwandlung von Verkaufsaufträgen in Verkaufsrechnungen zulassen',
    'Allow conversion from sales quotations to sales invoices' => 'Umwandlung von Verkaufsangeboten in Verkaufsrechnungen zulassen',
    'Cancel Accounts Payables Transaction' => 'Kreditorenbuchung stornieren',
    'Cancel Accounts Receivables Transaction' => 'Debitorenbuchung stornieren',
    'Cancelling is disallowed. Either undo or balance the current payments until the open amount matches the invoice amount' => 'Storno verboten, da Zahlungen zum Beleg vorhanden sind. Entweder die Zahlungen löschen oder mit umgekehrten Vorzeichen ausbuchen, sodass der offene Betrag dem Rechnungsbetrag entspricht.',
 +  'Cannot allocate parts.'      => 'Es sind nicht genügend Artikel vorhanden',
    'Cannot change transaction in a closed period!' => 'In einem bereits abgeschlossenen Zeitraum kann keine Buchung verändert werden!',
    'Cannot check correct WebDAV folder' => 'Kann nicht den richtigen WebDAV Pfad überprüfen',
    'Cannot delete account!'      => 'Konto kann nicht gelöscht werden!',
    'Charge'                      => 'Berechnen',
    'Charge Number'               => 'Chargennummer',
    'Charge number'               => 'Chargennummer',
 +  'Chargenumbers'               => 'Chargennummern',
    'Charset'                     => 'Zeichensatz',
    'Chart'                       => 'Buchungskonto',
    'Chart Type'                  => 'Kontentyp',
    'Cost Center'                 => 'Kostenstelle',
    'Costs'                       => 'Kosten',
    'Could not create new project #1' => 'Neues Projekt #1 kann nicht angelegt werden',
-   'Could not extract ZUGFeRD data, data and error message:' => 'Konnte keine ZUGFeRD Daten extrahieren, folgende Fehlermeldung und das PDF:',
+   'Could not extract Factur-X/ZUGFeRD data, data and error message:' => 'Konnte keine Factur-X-/ZUGFeRD-Daten extrahieren, folgende Fehlermeldung und das PDF:',
    'Could not find an entry for this part in the pricegroup.' => 'Konnte keine Eintrag für diesen Artikel in der Preisgruppe finden.',
    'Could not load class #1 (#2): "#3"' => 'Konnte Klasse #1 (#2) nicht laden: "#3"',
    'Could not load class #1, #2' => 'Konnte Klasse #1 nicht laden: "#2"',
    'Create Date'                 => 'Erstelldatum',
    'Create HTML'                 => 'HTML erzeugen',
    'Create PDF'                  => 'PDF erzeugen',
-   'Create ZUGFeRD invoices'     => 'ZUGFeRD-Rechnungen erzeugen',
-   'Create ZUGFeRD invoices in test mode' => 'ZUGFeRD-Rechnungen im Testmodus erzeugen',
    'Create a new background job' => 'Einen neuen Hintergrund-Job anlegen',
    'Create a new client'         => 'Einen neuen Mandanten anlegen',
    'Create a new delivery term'  => 'Neue Lieferbedingungen anlegen',
    'Create new version'          => 'Neue Version anlegen',
    'Create one from the context menu by right-clicking on this text.' => 'Erstellen Sie einen aus dem Kontextmenü, indem Sie auf diesen Text rechtsklicken.',
    'Create order'                => 'Auftrag erstellen',
-   'Create sales invoices with ZUGFeRD data' => 'Verkaufsrechnungen mit ZUGFeRD-Daten erzeugen',
+   'Create sales invoices with Factur-X/ZUGFeRD data' => 'Verkaufsrechnungen mit Factur-X-/ZUGFeRD-Daten erzeugen',
    'Create tables'               => 'Tabellen anlegen',
+   'Create with profile \'Factur-X 1.0.05/ZUGFeRD 2.1.1 extended\'' => 'Mit Profil »Factur-X 1.0.05/ZUGFeRD 2.1.1 extended«',
+   'Create with profile \'Factur-X 1.0.05/ZUGFeRD 2.1.1 extended\' (test mode)' => 'Mit Profil »Factur-X 1.0.05/ZUGFeRD 2.1.1 extended« (Test-Modus)',
+   'Create with profile \'XRechnung 2.0.0\'' => 'Mit Profil »XRechnung 2.0.0«',
+   'Create with profile \'XRechnung 2.0.0\' (test mode)' => 'Mit Profil »XRechnung 2.0.0« (Test-Modus)',
    'Created by'                  => 'Erstellt von',
    'Created for'                 => 'Erstellt für',
    'Created on'                  => 'Erstellt am',
    'Displayable Name Preferences' => 'Einstellungen für Anzeigenamen',
    'Do not change the tax rate of taxkey 0.' => 'Ändern Sie nicht den Steuersatz vom Steuerschlüssel 0.',
    'Do not check for duplicates' => 'Nicht nach Dubletten suchen',
-   'Do not create ZUGFeRD invoices' => 'Keine ZUGFeRD-Rechnungen erzeugen',
+   'Do not create Factur-X/ZUGFeRD invoices' => 'Keine Factur-X-/ZUGFeRD-Rechnungen erzeugen',
    'Do not link to a project.'   => 'Nicht mit einem Projekt verknüpfen.',
    'Do not modify this position' => 'Diese Position nicht verändern',
    'Do not run the task server for this client' => 'Task-Server nicht für diesen Mandanten ausführen',
    'Edit Dunning'                => 'Mahnungen konfigurieren',
    'Edit Dunning Process Config' => 'Mahnwesenkonfiguration bearbeiten',
    'Edit Employee #1'            => 'Benutzer #1 bearbeiten',
+   'Edit Factur-X/ZUGFeRD notes' => 'Factur-X-/ZUGFeRD-Notizen bearbeiten',
    'Edit Follow-Up'              => 'Wiedervorlage bearbeiten',
    'Edit Follow-Up for #1'       => 'Wiedervorlage für #1 bearbeiten',
    'Edit General Ledger Transaction' => 'Buchung im Hauptbuch bearbeiten',
    'Edit Vendor'                 => 'Lieferant editieren',
    'Edit Vendor Invoice'         => 'Einkaufsrechnung bearbeiten',
    'Edit Warehouse'              => 'Lager bearbeiten',
-   'Edit ZUGFeRD notes'          => 'ZUGFeRD-Notizen bearbeiten',
    'Edit acceptance status'      => 'Abnahmestatus bearbeiten',
    'Edit additional articles'    => 'Zusätzliche Artikel bearbeiten',
    'Edit all drafts'             => 'Entwürfe von allen Benutzern bearbeiten',
    'Extended status'             => 'Erweiterter Status',
    'Extension Of Time'           => 'Dauerfristverlängerung',
    'Factor'                      => 'Faktor',
+   'Factur-X/ZUGFeRD import'     => 'Factur-X-/ZUGFeRD-Import',
+   'Factur-X/ZUGFeRD invoice'    => 'Factur-X-/ZUGFeRD-Rechnung',
+   'Factur-X/ZUGFeRD notes for each invoice' => 'Factur-X-/ZUGFeRD-Notizen für jede Rechnung',
+   'Factur-X/ZUGFeRD settings'   => 'Factur-X-/ZUGFeRD-Einstellungen',
    'Fax'                         => 'Fax',
    'Features'                    => 'Features',
    'Feb'                         => 'Feb',
    'If disabled purchase invoices can only be created by conversion from existing requests for quotations, purchase orders and purchase delivery orders.' => 'Falls deaktiviert, so können Einkaufsrechnungen nur durch Umwandlung aus bestehenden Preisanfragen, Lieferantenaufträgen und Einkaufslieferscheinen angelegt werden.',
    'If disabled sales orders cannot be converted into sales invoices directly.' => 'Falls deaktiviert, so können Verkaufsaufträge nicht direkt in Verkaufsrechnungen umgewandelt werden.',
    'If disabled sales quotations cannot be converted into sales invoices directly.' => 'Falls deaktiviert, so können Verkaufsangebote nicht direkt in Verkaufsrechnungen umgewandelt werden.',
-   'If enabled ZUGFeRD-conformant sales invoice PDFs will be created.' => 'Falls aktiviert, werden ZUGFeRD-konforme PDFs für Verkaufsrechnungen erzeugt.',
+   'If enabled Factur-X/ZUGFeRD conformant sales invoice PDFs will be created.' => 'Falls aktiviert, werden Factur-X-/ZUGFeRD-konforme PDFs für Verkaufsrechnungen erzeugt.',
    'If enabled a column will be shown in sales and purchase orders that lists both the amount and the value not shipped yet for each item.' => 'Falls eingeschaltet, wird für jede Position in Auftragsbestätigungen und Lieferantenaufträgen eine Spalte mit noch nicht gelieferter Menge und Wert angezeigt.',
    'If enabled a warning will be shown in purchase delivery orders on workflow to invoices if positions are not stocked in.' => 'Falls aktiviert, wird eine Warnung beim Workflow von Einkaufslieferscheinen zu Rechnungen ausgegeben, wenn die Positionen noch nicht eingelagert sind.',
    'If enabled a warning will be shown in sales and purchase orders if there are two or more positions of the same part (new controller only).' => 'Falls eingeschaltet, wird eine Warnung angezeigt, wenn der Auftrag mehrere gleiche Artikel enthält (nur neuer Controller).',
    'If the counted quantity differs more than this threshold from the quantity in the database, a warning will be shown. Set to 0 to switch of this feature.' => 'Wenn die gezählte Menge mehr als diesen Schwellenwert von der Menge in der Datenbank abweicht, wird eine Warnmeldung angezeigt. Setzen Sie den Schwellenwert auf 0, um dieses Feature abzuschalten.',
    'If the database user listed above does not have the right to create a database then enter the name and password of the superuser below:' => 'Falls der oben genannte Datenbankbenutzer nicht die Berechtigung zum Anlegen neuer Datenbanken hat, so können Sie hier den Namen und das Passwort des Datenbankadministratoraccounts angeben:',
    'If the default transfer out always succeed use this bin for negative stock quantity.' => 'Standardlagerplatz für Auslagern ohne Prüfung auf Bestand',
-   'If the test mode is enabled, the ZUGFeRD invoices will be flagged so that they\'re only fit to be used for testing purposes.' => 'Wenn der Testmodus aktiviert ist, werden ZUGFeRD-Rechnungen so markiert, dass sie nur für Testzwecke dienen dürfen.',
+   'If the test mode is enabled, the Factur-X/ZUGFeRD invoices will be flagged so that they\'re only fit to be used for testing purposes.' => 'Wenn der Testmodus aktiviert ist, werden Factur-X-/ZUGFeRD-Rechnungen so markiert, dass sie nur für Testzwecke dienen dürfen.',
    'If yes, delivery order positions are considered "delivered" only if they have been stocked out of the inventory. Otherwise saving the delivery order is considered delivered.' => 'Wenn diese Option aktiviert ist, gelten Lieferscheinpositionen nur dann als geliefert wenn sie im Lieferschein ausgelagert wurden, und die Ware aus dem Lager ausgebucht wurde. Andernfalls gilt das Speichern des Lieferscheins als Lieferung.',
    'If you enter values for the part number and / or part description then only those bins containing parts whose part number or part description match your input will be shown.' => 'Wenn Sie für die Artikelnummer und / oder die Beschreibung etwas eingeben, so werden nur die Lagerplätze angezeigt, in denen Waren eingelagert sind, die Ihre Suchbegriffe enthalten.',
    'If you have not chosen for example the category revenue for a tax and you choose an revenue account to create a transfer in the general ledger, this tax will not be displayed in the tax dropdown.' => 'Wenn Sie z.B. die Kategory Erlös für eine Steuer nicht gewählt haben und ein Erlöskonto beim Erstellen einer Dialogbuchung wählen, wird diese Steuer auch nicht im Dropdown-Menü für die Steuern angezeigt.',
    'Import AR from Scanner or Email' => 'Verkaufsbelege importieren vom Scanner oder von Email',
    'Import CSV'                  => 'CSV-Import',
    'Import Status'               => 'Import Status',
+   'Import a Factur-X/ZUGFeRD file:' => 'Eine Factur-X-/ZUGFeRD-Datei importieren',
    'Import a MT940 file:'        => 'Laden Sie eine MT940 Datei hoch:',
-   'Import a ZUGFeRD file:'      => 'Eine ZUGFeRD-Datei importieren',
    'Import all'                  => 'Importiere Alle',
    'Import documents from #1'    => 'Importiere Dateien von Quelle \'#1\'',
    'Import file'                 => 'Import-Datei',
    'No Journal'                  => 'Kein Journal',
    'No Shopdescription'          => 'Keine Shop-Artikelbeschreibung',
    'No Shopimages'               => 'Keine Shop-Bilder',
-   'No VAT Info for this ZUGFeRD invoice, please ask your vendor to add this for his ZUGFeRD data.' => 'Konnte keine UST-ID für diese ZUGFeRD Rechnungen finden, bitte fragen Sie bei Ihren Lieferanten nach, ob dieses Feld im ZUGFeRD Datensatz gesetzt wird.',
+   'No VAT Info for this Factur-X/ZUGFeRD invoice, please ask your vendor to add this for his Factur-X/ZUGFeRD data.' => 'Konnte keine UST-ID für diese Factur-X-/ZUGFeRD-Rechnungen finden, bitte fragen Sie bei Ihren Lieferanten nach, ob dieses Feld im Factur-X-/ZUGFeRD-Datensatz gesetzt wird.',
    'No Vendor was found matching the search parameters.' => 'Zu dem Suchbegriff wurde kein Händler gefunden',
    'No action defined.'          => 'Keine Aktion definiert.',
    'No article has been selected yet.' => 'Es wurde noch kein Artikel ausgewählt.',
    'No background job has been created yet.' => 'Es wurden noch keine Hintergrund-Jobs angelegt.',
    'No bank account chosen!'     => 'Kein Bankkonto ausgewählt!',
    'No bank account configured for bank code/BIC #1, account number/IBAN #2.' => 'Kein Bankkonto für BLZ/BIC #1, Kontonummer/IBAN #2 konfiguriert.',
-   'No bank account flagged for ZUGFeRD usage was found.' => 'Es wurde kein Bankkonto gefunden, das für Nutzung mit ZUGFeRD markiert ist.',
+   'No bank account flagged for Factur-X/ZUGFeRD usage was found.' => 'Es wurde kein Bankkonto gefunden, das für Nutzung mit Factur-X/ZUGFeRD markiert ist.',
    'No bank information has been entered in this customer\'s master data entry. You cannot create bank collections unless you enter bank information.' => 'Für diesen Kunden wurden in seinen Stammdaten keine Kontodaten hinterlegt. Solange dies nicht geschehen ist, können Sie keine Überweisungen für den Lieferanten anlegen.',
    'No bank information has been entered in this vendor\'s master data entry. You cannot create bank transfers unless you enter bank information.' => 'Für diesen Lieferanten wurden in seinen Stammdaten keine Kontodaten hinterlegt. Solange dies nicht geschehen ist, können Sie keine Überweisungen für den Lieferanten anlegen.',
    'No bins have been added to this warehouse yet.' => 'Es wurden zu diesem Lager noch keine Lagerplätze angelegt.',
    'Others'                      => 'Andere',
    'Otherwise the variable is only available for printing.' => 'Andernfalls steht die Variable nur beim Ausdruck zur Verfügung.',
    'Otherwise you can simply check create warehouse and bins and define a name for the warehouse (Bins will be created automatically) and then continue' => 'Andernfalls einfach <b>"Automatisches Zuweisen der Lagerplätze"</b>  anhaken und einen Namen für das Lager vergeben, bzw. per Auswahl auswählen (Lagerplätze werden dann automatisch hinzugefügt) danach auf weiter',
+   'Our routing id at customer'  => 'Unsere Leitweg-ID beim Kunden',
    'Out of balance transaction!' => 'Buchung ist nicht ausgeglichen!',
    'Out of balance!'             => 'Summen stimmen nicht überein!',
    'Output Number Format'        => 'Zahlenformat (Ausgabe)',
    'Pictures for search parts'   => 'Bilder für Warensuche',
    'Please Check the bank information for each customer:' => 'Bitte überprüfen Sie die Bankinformationen der Kunden:',
    'Please Check the bank information for each vendor:' => 'Bitte überprüfen Sie die Kontoinformationen der Lieferanten:',
-   'Please add a valid VAT-ID for this vendor: ' => 'Bitte prüfen Sie ob dieser Lieferant eine valide UST-ID (Großschreibungen und Leerzeichen beachten) besitzt:',
+   'Please add a valid VAT-ID for this vendor: #1' => 'Bitte fügen Sie für den folgenden Lieferanten eine gültige UStID-Nummer hinzu: #1',
    'Please ask your administrator to create warehouses and bins.' => 'Bitten Sie Ihren Administrator, dass er Lager und Lagerplätze anlegt.',
    'Please change the partnumber of the following parts and run the update again:' => 'Bitte ändern Sie daher die Artikelnummer folgender Artikel:',
    'Please choose a part.'       => 'Bitte wählen Sie einen Artikel aus.',
    'Tax deleted!'                => 'Steuer gelöscht!',
    'Tax number'                  => 'Steuernummer',
    'Tax paid'                    => 'Vorsteuer',
 +  'Tax point'                   => 'Leistungsdatum',
    'Tax rate'                    => 'Steuersatz',
    'Tax saved!'                  => 'Steuer gespeichert!',
    'Tax zone'                    => 'Steuerzone',
    'The AR transaction #1 has been deleted.' => 'Die Debitorenbuchung #1 wurde gelöscht.',
    'The Bins in Inventory were only a information text field.' => 'Die Lagerplätze unter Stammdaten/Waren sind nur ein informatives Textfeld.',
    'The Bins in master data were only a information text field.' => 'Die Lagerplätze unter Stammdaten/Waren sind nur ein informatives Textfeld.',
+   'The Factur-X/ZUGFeRD XML invoice was not found.' => 'Die Factur-X-/ZUGFeRD-XML-Rechnungsdaten wurden nicht gefunden.',
+   'The Factur-X/ZUGFeRD notes have been saved.' => 'Die Factur-X-/ZUGFeRD-Notizen wurden gespeichert.',
+   'The Factur-X/ZUGFeRD version used is not supported.' => 'Die verwendete Factur-X-/ZUGFeRD-Version wird nicht unterstützt.',
    'The GL transaction #1 has been deleted.' => 'Die Dialogbuchung #1 wurde gelöscht.',
    'The Geierlein path has not been set in the configuration.' => 'Der Geierlein-Pfad wurde in der Konfigurationsdatei nicht gesetzt.',
    'The IBAN \'#1\' is not valid as IBANs in #2 must be exactly #3 characters long.' => 'Die IBAN \'#1\' ist ungültig, da IBANs in #2 genau #3 Zeichen lang sein müssen.',
    'The VAT ID number in the client configuration is invalid.' => 'Die UStID-Nummer in der Mandantenkonfiguraiton ist ungültig.',
    'The VAT registration number is missing in the client configuration.' => 'Die Umsatzsteuer-ID-Nummer fehlt in der Mandantenkonfiguration.',
    'The WebDAV feature has been used.' => 'Das WebDAV-Feature wurde benutzt.',
-   'The XMP metadata does not declare the ZUGFeRD data.' => 'Die XMP-Metadaten enthalten keine ZUGFeRD-Deklaration.',
-   'The ZUGFeRD XML invoice was not found.' => 'Die ZUGFeRD-XML-Rechnungsdaten wurden nicht gefunden.',
+   'The XMP metadata does not declare the Factur-X/ZUGFeRD data.' => 'Die XMP-Metadaten enthalten keine Factur-X-/ZUGFeRD-Deklaration.',
    'The ZUGFeRD invoice data cannot be generated because the data validation failed.' => 'Die ZUGFeRD-Rechnungsdaten können nicht erzeugt werden, da die Validierung fehlschlug.',
-   'The ZUGFeRD notes have been saved.' => 'Die ZUGFeRD-Notizen wurden gespeichert.',
-   'The ZUGFeRD version used is not supported.' => 'Die verwendete ZUGFeRD-Version wird nicht unterstützt.',
    'The abbreviation is missing.' => 'Abkürzung fehlt',
    'The access rights a user has within a client instance is still governed by his group membership.' => 'Welche Zugriffsrechte ein Benutzer innerhalb eines Mandanten hat, wird weiterhin über Gruppenmitgliedschaften geregelt.',
    'The access rights have been saved.' => 'Die Zugriffsrechte wurden gespeichert.',
    'The user has been deleted.'  => 'Der Benutzer wurde gelöscht.',
    'The user has been saved.'    => 'Der Benutzer wurde gespeichert.',
    'The value \'#1\' is not a valid IBAN.' => 'Der Wert \'#1\' ist keine gültige IBAN.',
+   'The value \'our routing id at customer\' must be set in the customer\'s master data for profile #1.' => 'Der Wert »unsere Leitweg-ID beim Kunden« muss in den Kundenstammdaten gesetzt sein für Profil #1.',
    'The variable name must only consist of letters, numbers and underscores. It must begin with a letter. Example: send_christmas_present' => 'Der Variablenname darf nur aus Zeichen (keine Umlaute), Ziffern und Unterstrichen bestehen. Er muss mit einem Buchstaben beginnen. Beispiel: weihnachtsgruss_verschicken',
    'The vendor name is missing.' => 'Der Liefeantenname fehlt.',
    'The version number is missing.' => 'Die Versionsnummer fehlt.',
    'Use default warehouse for assembly transfer' => 'Zum Fertigen Standardlager des Bestandteils verwenden',
    'Use existing templates'      => 'Vorhandene Druckvorlagen verwenden',
    'Use fill up when calculating shipped quantities?' => 'Sollen nicht verlinkte Positionen abgeglichen werden?',
-   'Use for ZUGFeRD'             => 'Nutzung mit ZUGFeRD',
+   'Use for Factur-X/ZUGFeRD'    => 'Nutzung mit Factur-X/ZUGFeRD',
    'Use linked items'            => 'Verknüpfte Positionen verwenden',
    'Use master default bin for Default Transfer, if no default bin for the part is configured' => 'Standardlagerplatz für Ein- / Auslagern über Standard-Lagerplatz, falls für die Ware kein expliziter Lagerplatz konfiguriert ist',
    'Use settings from client configuration' => 'Einstellungen aus Mandantenkonfiguration folgen',
    'Your download does not exist anymore. Please re-run the DATEV export assistant.' => 'Ihr Download existiert nicht mehr. Bitte starten Sie den DATEV-Exportassistenten erneut.',
    'Your import is being processed.' => 'Ihr Import wird verarbeitet',
    'Your target quantity will be added to the stocked quantity.' => 'Ihre gezählte Zielmenge wird zum Lagerbestand hinzugezählt.',
-   'ZUGFeRD import'              => 'ZUGFeRD Import',
-   'ZUGFeRD invoice'             => 'ZUGFeRD-Rechnung',
-   'ZUGFeRD notes for each invoice' => 'ZUGFeRD-Notizen für jede Rechnung',
-   'ZUGFeRD settings'            => 'ZUGFeRD-Einstellungen',
    'Zeitraum'                    => 'Zeitraum',
    'Zero amount posting!'        => 'Buchung ohne Wert',
    'Zip'                         => 'PLZ',
    'Zip, City'                   => 'PLZ, Ort',
    'Zipcode'                     => 'PLZ',
    'Zipcode and city'            => 'PLZ und Stadt',
-   'ZugFeRD Import'              => 'ZUGFeRD Import',
    '[email]'                     => '[email]',
    'absolute'                    => 'absolut',
    'account_description'         => 'Beschreibung',
    'brutto'                      => 'brutto',
    'building data'               => 'Verarbeite Daten',
    'building report'             => 'Erstelle Bericht',
 +  'can not allocate #1 units of #2, missing #3 units' => 'Kann keine #1 Einheiten von #2 belegen, es fehlen #3 Einheiten',
    'can only parse a pdf file'   => 'Kann nur eine gültige PDF-Datei verwenden.',
    'cash'                        => 'Ist-Versteuerung',
    'chargenumber #1'             => 'Chargennummer #1',
    'our vendor number at customer' => 'Unsere Lieferanten-Nr. beim Kunden',
    'parsing csv'                 => 'Parse CSV Daten',
    'part'                        => 'Ware',
 +  'part \'#\'1 in bin \'#2\' only with qty #3 (need additional #4) and chargenumber \'#5\'.' => 'Artikel \'#1\' im \'#2\' nur mit der Menge #3 (noch #4 benötig) und Chargennummer \'#5\'.',
    'part_list'                   => 'Warenliste',
    'percental'                   => 'prozentual',
    'periodic'                    => 'Aufwandsmethode',