Optimierung der automatischen Lager-Durchschnittspreis-Ermittlung

Optimierung der Module der Warenwirtschaft ( WAWI ) des ERP-Systems easyWinArt.

Die am 30.10.2011 freigegebene automatische Lager-Durchschnittspreis-Ermittlung wurde weiter verbessert und erweitert. Die dort beschriebenen Abläufe und Logiken haben noch einige Nachteile, die mit der aktuellen Version behoben wurden.

In der alten Version erfolgte jeder Lagerabgang immer mit dem Buchungspreis = jeweils aktueller Lager-Durchschnittspreis und jeder Lagerzugang mit dem Buchungspreis = jeweils gültiger Artikelpreis.

Der neue Lager-Durchschnittspreis errechnete sich dabei über die nach wie vor gültige Formel:

Neuer Durchschnittspreis  =  ( Alter Durchschnittspreis * Alter Lagerbestand  +  Buchungsmenge * Buchungspreis ) / ( Alter Lagerbestand + Buchungsmenge )

Diese Vorgehensweise ist prinzipiell richtig und einleuchtend, hat jedoch im Falle von über die Mandanten-Konfiguration aktivierten automatischen Lagerbuchungen, z.B. bei Warenlieferungen (Einkaufs-Lieferungen), einen nicht gewollten Nebeneffekt:

Ändert man z.B. die Positions-Menge einer Position einer Einkaufs-Lieferung mehrfach hintereinander so, dass abschließend wieder die Ursprungsmenge erreicht wird, so hat man danach üblicherweise nicht mehr den ursprünglichen Lager-Durchschnittspreis, da jede Zubuchung mit den Buchungspreis und jede Abbuchung mit dem jeweiligen neuen Durchschnittspreis erfolgt. Das Problem wurde praxisnah, wie nachfolgend beschrieben, gelöst. 

Die automatische Lager-Durchschnittspreis-Ermittlung ermöglicht nun eine verfeinerte permanente Bewertung aller aktuellen Lagerbestände. Alle Einzelbuchungen können mit Buchungspreis und jeweiligem Lager-Durchschnittspreis im Lagerjournal nachvollzogen werden. Für eventuelle Fehlbuchungen kann nachträglich der Buchungspreis im Lagerjournal korrigiert werden. Auch resultierende Lager-Durchschnittspreise können im Bedarfsfalle in der Artikelverwaltung manuell überschrieben werden.

Zur Aktivierung der automatischen Lager-Durchschnittspreis-Ermittlung und -Protokollierung muss nach wie vor der neue Mandanten-Konfigurations-Schalter ‘Lager-Durchschnittspreis automatisch aktualisieren‘ im Register ‘Lager’ gesetzt werden.

Bei gesetztem Schalter wird der Lager-Durchschnittspreis aller Artikel im Register ‘Lager-Daten’ der Artikel-Verwaltung bei jeder manuellen und jeder automatischen Lagerbuchung neu errechnet und sowohl im Artikelstamm als auch im Lagerjournal abgespeichert.

Zum Verständnis der neuen automatischen Lager-Durchschnittspreis-Ermittlung ist es wichtig, zwischen zwei Typen von automatischen Lagerbuchungen aus Beleg-Positions-Veränderungen zu unterscheiden: Natürliche automatische Lagerbuchungen und korrektive automatische Lagerbuchungen.

Natürliche automatische Lagerbuchungen sind:

  • Lager-Zugänge aus Einkaufs-Lieferungen
  • Lager-Zugänge aus Verkaufs-Rücklieferungen
  • Lager-Abgänge aus Verkaufs-Lieferungen
  • Lager-Abgänge aus Einkaufs-Rücklieferungen

Nicht natürliche, d.h. korrektive automatische Lagerbuchungen sind:

  • Lager-Zugänge aus Verkaufs-Lieferungen
  • Lager-Zugänge aus Einkaufs-Rücklieferungen
  • Lager-Abgänge aus Einkaufs-Lieferungen
  • Lager-Abgänge aus Verkaufs-Rücklieferungen

Nicht natürliche automatische Lagerbuchungen entstehen z.B. durch automatische Lagerbuchungen bei Beleg-Positionen infolge einer Reduzierung der jeweiligen Positions-Menge. Aus diesem Grunde werden sie korrektive Lagerbuchungen genannt. Korrektive Lagerbuchungen entstehen also immer dann, wenn bei aktivierten automatischen Lagerbuchungen in einer Beleg-Position die Position-Menge nachträglich verringert wird, oder wenn die Position komplett gelöscht wird.

Buchungspreis-Findung:

  • Bei natürlichen Lager-Zugängen über Einkaufs-Lieferungen wird der Buchungspreis gleich dem effektiven Positions-Preis gesetzt.
  • Bei natürlichen Lager-Zugängen über Verkaufs-Rücklieferungen wird der Buchungspreis über die neutralen Artikel-Preise gezogen.
  • Bei natürlichen Lager-Abgängen über Verkaufs-Lieferungen wird der Buchungspreis gleich dem jeweiligen Lager-Durchschnittspreis gesetzt.
  • Bei natürlichen Lager-Abgängen über Einkaufs-Rücklieferungen wird der Buchungspreis gleich dem jeweiligen Lager-Durchschnittspreis gesetzt.

Bei allen korrektiven Lagerbuchungen muss es vorher für dieselbe Position schon eine natürliche Lagerbuchung gegeben haben. Diese natürliche Lagerbuchung hat dann auch einen Lagerjournal-Eintrag mit einem ‘natürlichen’ Buchungspreis.
Bei allen nicht natürlichen, korrektiven Lagerbuchungen wird der Buchungspreis gleich dem Buchungspreis des nächstgelegenen zurückliegenden Lagerjournal-Eintrages gesetzt. Auf diese Weise wird die ursprüngliche natürliche Lagerbuchung also mit dem ursprünglichen Buchungspreis korrigiert und der oben beschriebene ungewollte Nebeneffekt tritt nicht mehr auf. Die Korrektur einer Lagerbuchung erfolgt somit immer mit dem ursprünglichen Buchungspreis.

Der Buchungspreis kann bei allen manuellen Lagerbuchungen auch direkt eingegeben werden. Das Erfassungs-Formular für manuelle Lagerbuchungen wurde entsprechend erweitert.

Bei allen manuellen Lager-Umbuchungen und allen manuellen Bestands-Korrekturen wird der Buchungspreis immer gleich dem jeweiligen Lager-Durchschnittspreis gesetzt.

Bei automatischen Lagerbuchungen wird der Buchungspreis entsprechend nachfolgender Prioritäten-Reihenfolge automatisch ermittelt:

  • 1. Priorität: Bei Beleg-Positions-Veränderungen wird der Buchungspreis gemäß obiger Preisfindung gewählt.
    Im Falle eines Lagerzuganges über eine Warenlieferung (Einkaufs-Lieferung) wird z.B. der effektive Einkaufspreis als Buchungspreis gewählt. Dabei werden Rabatte, Preisfaktoren und Fremdwährungen berücksichtigt.
  • 2. Priorität: Wenn vorhanden, wird der manuell verwaltete Lager-Buchungspreis am Artikel gewählt.
  • 3. Priorität: Der neutrale Artikel-Einkaufspreis wird gewählt. Auch hier werden Rabatte, Preisfaktoren und Fremdwährungen berücksichtigt.

Falsche Buchungspreise, d.h. Fehlbuchungen, können auch nachträglich im Lagerjournal korrigiert werden. Dazu wird der Lager-Buchungspreis im Lagerjournal manuell geändert. Eine solche Änderung löst automatisch eine Neuberechnung des jeweiligen Lager-Durchschnittspreises aller nachfolgenden Lagerjournal-Einträge desselben Artikels aus. Der neue Lager-Durchschnittspreis des letzten Lagerjournal-Eintrages wird automatisch im Artikelstamm abgespeichert. Dabei werden manuelle Lager-Durchschnittspreis-Änderungen im Artikelstamm sinngemäß berücksichtigt.

Wichtig: Die nachträgliche Buchungspreis-Korrektur im Lagerjournal liefert dasselbe Ergebnis, als wenn die ursprüngliche automatische Buchung direkt mit einem richtigen Buchungspreis durchgeführt worden wäre.