# 13.03.2025

## Features

<details id="bkmrk-20898---%5Bp%5D-portieru"><summary>20898 - Portierung der SDB-Implementierung in den Standard</summary>

<canvas class="lt-highlighter__canvas" height="217" style="display: none; top: 18px !important; left: 43px !important;" width="704"></canvas>In der Chemiebranche müssen oft Sicherheitsdatenblätter (SDBs) an Kunden weitergereicht werden. Diese werden meist durch ein Drittprogramm erstellt und in einem bestimmten Verzeichnis abgelegt.

Mit Ticket #20687 wurde das Feature erweitert:

- Kundenspezifische SDBs als Textfeld in den Artikel-Stammdaten anlegen und den Inhalt speichern
- Die Namen von SDBs werden über ein bekanntes Muster aufgelöst, dieses Muster soll angegeben werden können
- z.Z. wird die Sprache in der SDB nicht beachtet. Sie soll ebenfalls erkannt werden. zum Versand von SDBs in Emails
- SDBs die Kundenspezifisch sind sollen beim Versand von Emails an den Kunden bevorzugt werden
- SDBs sollen gesammelt über eine einzelne Checkbox angehängt werden können

Dieses Feature soll nun auch in den Standard portiert werden.

</details><details id="bkmrk-21112---ein--und-aus"><summary>21112 - Ein- und Auslagerungen zum Lieferdatum</summary>

Im Moment ist es nicht möglich, einen Lieferschein zu einem bestimmten Tag ein- oder auszulagern (nur aktueller Tag möglich). Dies wird z. B. benötigt, um rückwirkend die tagesaktuellen Lagerbestände von einem Fremdlager abzubilden. Daher soll es möglich sein, die Ein-Auslagerungen über Lieferscheine zum Zeitpunkt des Lieferdatums durchzuführen.

1. Lager bekommen Checkbox "Fremdlager" mit Tooltipp "Lagerbewegung erfolgt zum Lieferdatum"
2. Zusätzlich zur Meldung das Ein-/Auslagerung im Lieferscheinen durchgeführt wurde auch die Info: "Lagerbewegung erfolgt zum Lieferdatum"
3. Prüfung: Lieferdatum muss in der Vergangenheit liegen und darf nicht leer sein
4. Prüfung: Auslagerung darf kein Negativbestand erzeugen (abhängig von Mandantenkonfiguration)

</details>## Verbesserungen

<details id="bkmrk-18727---sepa-lastsch"><summary>18727 - SEPA-Lastschriften mit Gläubiger-ID im Verwendungszweck</summary>

<canvas class="lt-highlighter__canvas" height="42" style="display: none; top: 18px !important; left: 446px !important;" width="203"></canvas>Bei Lastschriftmandaten wird im Verwendungszweck die Gläubiger-ID (Creditor-ID: DExxZZZxxxxxxxxxxx) angegeben.  
Diese Gläubiger-ID fehlt im Verwendungszweck bei Lastschriften aus dem odyn-erp und soll mit übergeben werden.

</details><details id="bkmrk-21234---lieferplan-n"><summary>21234 - Lieferplan nach Warengruppen filtern</summary>

Der Lieferplan (Verkauf/Berichte/Lieferplan) soll nach Warengruppen gefiltert werden.  
Aktuell kann im Filter ("In Bericht aufnehmen") nur die Warengruppe hinzugefügt werden, aber nicht darauf eingeschränkt.

</details><details id="bkmrk-21251---link-zur-wik"><summary>21251 - Link zur Wiki auf Startseite anpassen</summary>

<canvas class="lt-highlighter__canvas" height="43" style="display: none; top: 63px !important; left: 273px !important;" width="203"></canvas>Der Link zum Wiki auf der Startseite des ERP-Systems zeigt im Moment auf die FAQ-Seite des Wikis  
Dieser Link soll auf die folgende Seite angepasst werden: "https://wiki.opendynamic.de/".  
Dadurch wird der Benutzer automatisch auf die Startseite der Wiki weitergeleitet.  
Die Beschreibung soll von "Wiki und FAQs:" auf "Wiki Startseite:" angepasst werden

</details><details id="bkmrk-21299---aktualisieru"><summary>21299 - Aktualisierung/Protokollierung von Artikel-Stammdaten verbessern</summary>

<canvas class="lt-highlighter__canvas" height="87" style="display: none; top: 146px !important; left: 43px !important;" width="234"></canvas>Buchen von Einkaufs-RG aktualisiert Artikel-Stammdaten (je nach Einstellung in Mandantenkonfiguration):  
a) EK und Lieferanten-Preis von Artikel-Stammdaten  
b) Einträge in der Preishistorie

Bei diesem Vorgang müssen folgende Punkte angepasst werden:

1. Ein aktuellerer EK-Preise (mit neuerem Datum) als in der Historie vorhanden, soll übernommen werden. Aktuell wird der EK-Preis nicht aktualisiert, wenn ein aktuellerer Lieferanten-Preis vorhanden ist. Auch wenn es aktuellere Lieferanten-Preise gibt, soll der EK-Preis aktualisiert werden.
2. Wird ein Lieferantenpreis geändert ist die Spalte "zum Datum" zu aktualisieren (aktuelle erfolgt kein Eintrag)

</details><details id="bkmrk-21395---nachbesserun"><summary>21395 - Nachbesserung der E-Rechnungen</summary>

<canvas class="lt-highlighter__canvas" height="20" style="display: none; top: 124px !important; left: 91px !important;" width="297"></canvas>Folgende Dinge sind aufgefallen und sollten behoben werden:

1\. Bei einem Fehler (z.B. fehlende Steuerzone) kommt der Fehler pro Position. Bei vielen Positionen wird es dadurch sehr unübersichtlich. Deshalb sollten gleiche Fehler nur 1x ausgegeben werden.

2\. Der Fehler "Can't call method "iso" on an undefined value" sollte durch eine benutzerfreundlichere Fehlermeldung ersetzt werden

</details><details id="bkmrk-21430---datev-export"><summary>21430 - Datev-Export um Zusatzinformationen erweitern, auch bei Dialogbuchung</summary>

Für Kreditoren-/Debitorenbuchungen wurde der Datev-Export um die Bemerkungen erweitert.  
Diese Erweiterung soll auch für Dialogbuchungen umgesetzt werden.

</details>## Korrekturen

<details id="bkmrk-21327---fehlende-wer"><summary>21327 - Fehlende Werte beim Massendruck beheben</summary>

In Ticket #21324 wurden folgende Fehler behoben:

- Beim Massendruck von Rechnungen wird die primäre Rechnungsadresse nicht ausgegeben, sondern die Adresse aus den Basisdaten des Kunden.
- Zusätzlich werden die Preise nur mit zwei Nachkommastellen ausgegeben (definiert ist eine Ausgabe von vier Nachkommastellen).
- Außerdem werden bei der Massenerstellung Werte wie z.B. die Rechnungsadresse nicht korrekt übernommen, wenn diese im Lieferschein nicht vorhanden ist.

Diese wurden nun in den Standard portiert.

</details><details id="bkmrk-21333---reservierung"><summary>21333 - Reservierungen mit den gelöschten Auftrags-Position auflösen</summary>

<canvas class="lt-highlighter__canvas" height="42" style="display: none; top: 18px !important; left: 11px !important;" width="659"></canvas>Aktuell kann eine reservierte Positionen im Auftrag gelöscht wird und dessen Reservierung bleibt weiterhin bestehen. Implementierung erweitern um:  
a) Reservierungen mit den gelöschten Auftrags-Position auflösen (wie in Lieferscheinen).  
b) Falls Reservierungen ohne Auftrags-Position vorhanden sind, werden alle mit einem Datenbank-Upgrade aufgelöst.

</details><details id="bkmrk-21429---fehler-bei-e"><summary>21429 - Fehler bei ERP-Installation unter Ubuntu 24</summary>

<canvas class="lt-highlighter__canvas" height="87" style="display: none; top: 60px !important; left: 11px !important;" width="794"></canvas>Bei der ERP-Installation unter Ubuntu 24 kommt es zu Fehlern im ERP:

1.) Beim Öffnen von Aufträgen/Angeboten kommt es zu folgendem Fehler: do*transaction() failed - DBD::Pg::st execute failed: ERROR: trailing junk after parameter at or near "$1O" LINE 35: …g ON (p.partsgroup*id = pg.id) WHERE o.trans\_id = $1ORDER BY… ^ at /opt/prod/odyn-erp/SL/DBUtils.pm line 148.  
2.) Beim Drucken von E-Rechnungen kommt es zu folgendem Fehler ! LaTeX Error: File `puenc-greek.def' not found.

</details><details id="bkmrk-21444---%5Bp%5D-%2321429-f"><summary>21444 - Fehler bei ERP-Installation unter Ubuntu 24</summary>

In Ticket #21429 wurden Fehler bei der ERP-Installation unter Ubuntu 24 behoben.  
Diese sollen nun in den Standard portiert werden.

</details><details id="bkmrk-21471---fehler-beim-"><summary>21471 - Fehler beim Drucken von Einkaufslieferscheinen</summary>

Beim Drucken von Einkaufslieferscheinen kommt folgende Fehlermeldung: DBD::Pg::st execute failed: ERROR: trailing junk after parameter at or near "$1AND" LINE 16: WHERE 1=1 AND v.id = $1AND v.vendornumber = $2 ^ at /opt/test/odyn-erp/SL/DBUtils.pm line 148.

Das PDF-Dokument wird trotzdem erstellt und unter dem Reiter "Dokumente" angezeigt.

Einkaufslieferscheine sollen ohne Fehlermeldung gedruckt werden können.

</details><details id="bkmrk-21486---ladecode-f%C3%BCr"><summary>21486 - Ländercode für Kosovo ändern von XK auf 1A</summary>

<canvas class="lt-highlighter__canvas" height="20" style="display: none; top: 18px !important; left: 246px !important;" width="19"></canvas>Aktuell ist der Ländercode für Kosovo XK und dieser führt bei der Validierung von E-Rechnungen zum Fehler. Die Mustang Validierung erwartet 1A für Kosovo und deshalb wird zukünftig diese genutzt.

</details><details id="bkmrk-21514---artikel-trot"><summary>21514 - Artikel trotz Artikelsperre im Auftrag hinzugefügt</summary>

Sobald ein Artikel kundenspezifischen Einträgen hat, wird bei der Abfrage nach gültigen/gesperrten Artikeln nicht mehr auf die Artikelsperre geachtet.

Die Prüfung soll angepasst werden.

</details><details id="bkmrk-21522---artikel-f%C3%BCr-"><summary>21522 - Artikel für Schadenersatz funktioniert in E-Rechnung nicht</summary>

Nicht steuerbarer Umsatz kann nicht wie bisher in Rechnungen gebucht werden. Für den Artikel Schadenersatz wurde eine Buchungsgruppe angelegt und richtiges Sachkonto/FiBu-Konto zugewiesen. Aktuell wird in der Steuerzone Inland der Standard Steuersatz erwartet und 0% führt zu einem Fehler.

Lösung:

1. Die E-Rechnung benötigt eine weitere Steuerzone für "Nicht steuerbarer Umsatz" (Punkt ist erledigt)
2. Bei dieser Steuerzone soll kein Steuersatz in die XML übermittelt werden (aktuell werden 0% übergeben und führt zu Fehlermeldung)

</details><details id="bkmrk-21523---verbesserung"><summary>21523 - Verbesserungen in E-Rechnungen</summary>

Folgende Verbesserungen werden für die E-Rechnung implementiert:

1. Für eine höhere Genauigkeit speichert das ERP-System den rabattierten Positionspreis mit mehr als zwei Nachkommastellen. Erst der Gesamtpreis der Position wird auf volle Cent gerundet. Da die E-Rechnung nur Preise mit zwei Nachkommastellen erlaubt, wird der Preis dort mithilfe eines Preisfaktors übermittelt. Der maximale Preisfaktor entspricht dem höchsten im ERP-System hinterlegten Preisfaktor. Beispiel: Ein rabattierter Einzelpreis von 2,442 wird mit einem Preisfaktor von 10 als 24,42 übermittelt.
2. Für das richtige Fälligkeitsdatum wird der Wert von BasisPeriodMeasure auf den Wert des "Zahlungsziel Netto" geändert.
3. Zukünftig werden die Werte, aus dem neuen Feld "Handelsregister" in der Firmierung, mit übergeben.

</details><details id="bkmrk-21534---positionen-m"><summary>21534 - Positionen mit Minusmenge werden beim Worklfow "Auftrag-Rechnung" entfernt</summary>

Wenn man aus einem Auftrag eine Rechnung erstellt, werden Positionen mit Minusmenge entfernt  
und nicht an die Rechnung übergeben. Dasselbe gilt auch für die Erstellung eines Lieferscheins.  
Positionen mit Minusmenge werden benötigt, damit in E-Rechnungen Nachlässe oder Rabatte verwendet werden können.

Beim Erstellen von Rechnungen und Lieferscheinen aus Aufträgen sollen Positionen mit Minusmengen nicht entfernt werden.

</details><details id="bkmrk-21550---e-rechnung-m"><summary>21550 - E-Rechnung mit Leerzeichen im PDF-Dateinamen können nicht Validiert werden</summary>

Hat der PDF-Dateinamen einer erhaltenen E-Rechnung ein Leerzeichen, dann schlägt die Validierung der E-Rechnungen fehl.  
E-Rechnungen mit Leerzeichen im PDF-Dateinamen sollen ohne Probleme validiert werden.

</details>## Kundenspezifisch

### HLR

<details id="bkmrk-21106---pr%C3%BCfung-des-"><summary>21106 - Prüfung des Dateinamens bei SDBs anpassen</summary>

<canvas class="lt-highlighter__canvas" height="20" style="display: none; top: 124px !important; left: 22px !important;" width="71"></canvas>Für den Upload der Sicherheitsdatenblätter muss die Prüfung des Dateinamens angepasst werden, da sonst der Upload nicht funktioniert.

Die Prüfung soll auf folgenden Dateinamen prüfen:

1 Prefix "SDS" | 2 Wert welcher im ERP eingetragen wird | 3 Versionsnummer ohne dem V (1, 2, …) | 4 Land (DE, GB, …).pdf  
Dabei ist "|" durch ein "\_" zu ersetzen.

Hinweis: Es kann vorkommen, dass es keine Versionsnummer gibt. Dann soll dies wie die Versionsnummer "1" behandelt werden.

</details>### GES

<details id="bkmrk-21273---edi-auftrags"><summary>21273 - EDI-Auftragsimport nicht durchführen wenn dieser gesperrte Artikel beinhaltet</summary>

Ein EDI-Auftragsimport kann nicht durchgeführt werden, wenn dieser ungültige Artikel enthält. Die gleiche Logik soll auch für gesperrte Artikel implementiert werden.

</details>### PEN

<details id="bkmrk-21327---%5Bp%5D-fehlende"><summary>21308 - Stornierung von Umlagerung berücksichtigt Mandantenkonfiguration nicht</summary>

Bei Lieferscheinen für Servicetechniker (Lieferscheine mit Kunde "Servicetechniker") kann es bei der Stornierung  
von Umlagerungen vorkommen, dass Lagerbestände von Artikeln in Minus gebucht werden.  
Hier wird nicht auf die Mandantenkonfiguration geprüft (Minusbestände erlaubt/nicht erlaubt).  
Dies betrifft auch manuelle Auslagerungen aus normalen Lieferscheinen.

Bei der Stornierung soll die Mandantenkonfiguration berücksichtigt werden und nur ins Minus gebucht werden,  
wenn dies erlaubt ist.

</details>