Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Loop vermeiden bei Warenverschiebungen (https://www.delphipraxis.net/189243-loop-vermeiden-bei-warenverschiebungen.html)

MyRealName 20. Mai 2016 21:10

Datenbank: Firebird • Version: 2.5 • Zugriff über: UniDAC

Loop vermeiden bei Warenverschiebungen
 
Hallo Delphianer,

weiss nicht, ob es hier reinpasst, aber es ist ja im Endeffekt ein DB Problem :

In einem Warenwirtschaftssystem habe ich Produkte und Lager. Jedes Lager hat für "seine" Produkte eigene Kostenrechnungen (Fleich zum bsp. ist billiger im Rinderanbaugebiet als in der Hauptstadt hier). Ich nutze monatlich bereinigte Mittelkosten, also alle Wareneingänge dividiert durch die Anzahl des gekauften produkts. Es wird der Saldo des vorhergehenden Monats mit einbezogen.

Das Problem, welche sich habe ist das Folgende :


Wenn ich eine Ware von Lager 1 nach Lager 2 verschiebe, dann geschieht das zu den Kosten des Herkunftslagers. Also wenn es dort 1 euro kostet, dann kommt es in Lager 2 mit einem Wert von 1 Euro, auch wenn dort die Ware im Schnitt vllt. 2 Euro kostet.
Habe ich also im Lager 2 10 einheiten zu 2 Euro und sende 10 einheiten zu 1 euro, habe ich 20 Einheiten zu 30 euro, macht 1.50 pro Einheit.
Sende ich allerdings im gleichen Monat 5 einheiten von lager 2 zum Lager 1, dann kommen die dort mit einem Wert von 1.50 an und verändern dort den Durchschnittspreis des monats, was dann natürlich die erste Transaktion verändert und dann kommen die 10 Einheiten in lager 2 nicht mehr zu 1 Euro, sondern 1.10 und sie werden dann wird wieder die 2. transaktion verändert und kostet dann 1.55...
und schon hat man einen schönen Loop bis der Unterschied nur noch in der 3. dezimalstelle sichtbar ist.

Wie macht ihr das in euren Warenwirtschaftsanwendungen ? Oder wie würdet ihr es machen, so dass der loop garnicht erst zustande kommt ?

Danke im vorraus,
Helge

Sir Rufo 20. Mai 2016 21:32

AW: Loop vermeiden bei Warenverschiebungen
 
Das ist keine DB Frage sondern eine buchhaltärische :stupid:

So als Info http://www.myfactory.com/inside/Cust...wertung_1.docx

MyRealName 20. Mai 2016 22:37

AW: Loop vermeiden bei Warenverschiebungen
 
Wenn ich das Dokument richtig verstehe, wollen die keinen MEK (Mittleren Wert), sondern irgendwas mit durchnittlichem lagerbestand und durchschnittlichen Einkauf, was alles eigentlich auch ein mittlerer Wert ist. UNd beides verursacht das gleiche von mir beschriebene Problem.

Anderew Lösungen oder Ideen ?

Sir Rufo 20. Mai 2016 23:43

AW: Loop vermeiden bei Warenverschiebungen
 
Es gibt nicht den einen Wert beim Lager sondern eben mehrere (siehe Dokument). Diese haben alle ihre Berechtigung und zeigen unterschiedliche Sichtweisen.

Egal welche Buchungen man dort macht, rückwirkend auf historische Buchungen wirkt sich da nichts aus. Wenn, dann gibt es zu einer neuen Buchung eine weitere Korrekturbuchung, die dann eine reine Wertbuchung (ohne Menge) ist.

MyRealName 21. Mai 2016 00:20

AW: Loop vermeiden bei Warenverschiebungen
 
Was wir versuchen ist den Kostenwert eines produkts zu stabilisieren, da er permanent schwankt in Kolumbien.
Was ich da dann gemacht habe ich einen Durchschnittswert von dem ganzen Monat zu berechnen und somit Schwankungen, die dann zu Preisanpassungen führen würden, zu eliminieren. Das geht alle auch ganz sanft, bis auf die Loop-Geschichte.
Und selbst wenn ich dann eine Kostenanpassung machen würde statt der Anpassung des Dokuments, würde das problem das gleiche sein.

p80286 21. Mai 2016 22:23

AW: Loop vermeiden bei Warenverschiebungen
 
Du kennst https://de.wikipedia.org/wiki/Achill...hildkr%C3%B6te ?
Wenn Waren zwischen zwei Lagern hin und hergeschoben werden und das wiederum Einfluß auf den Warenwert hat, dann ist das kreative Buchführung. Will man von vorneherein einen Mittelwert haben, so kann man diesen auch gleich berechnen. Die Statistik bietet da vielfältige Möglichkeiten.

Gruß
K-H

hstreicher 22. Mai 2016 07:37

AW: Loop vermeiden bei Warenverschiebungen
 
wie wäre es sich von dem Konzept "Ein Lager" zu verabschieden und stattdessen die Waren nach Lieferungen/Chargen zu führen ,
also eine Tabelle Lieferungen
mit den Feldern: Lagerplatz , Warenkennung, Wareneingangsdatum, Gelieferte Menge, PreisproEinheit, Restbestand (und evtl andere)

und dann hier die Verkäufe FiFo abzubuchen,
wenn Ware in eine andere Region umgelagert wird einfach den Lagerplatz ändern , oder eben splitten
Damit bleiben alle Informationen unverändert erhalten

mfg Hannes

MyRealName 22. Mai 2016 14:29

AW: Loop vermeiden bei Warenverschiebungen
 
Zitat:

Zitat von hstreicher (Beitrag 1338653)
wie wäre es sich von dem Konzept "Ein Lager" zu verabschieden und stattdessen die Waren nach Lieferungen/Chargen zu führen ,
also eine Tabelle Lieferungen
mit den Feldern: Lagerplatz , Warenkennung, Wareneingangsdatum, Gelieferte Menge, PreisproEinheit, Restbestand (und evtl andere)

und dann hier die Verkäufe FiFo abzubuchen,
wenn Ware in eine andere Region umgelagert wird einfach den Lagerplatz ändern , oder eben splitten
Damit bleiben alle Informationen unverändert erhalten

mfg Hannes

Weil das ja den Effekt herausnimmt, dass ich Kosten pro Lager habe. Stell es dir mal so vor :
Ich lebe ja in Kolumbien, da wird alles mit LKW innerhalb des Landes transportiert und jeder Zwischenhändler erwartet auch recht grosse Gewinnspannen. Wenn Du Fleisch in Rindergebiet (Los Llanos) kaufst, dann ist das spottbillig dort. Lokale Fleischer nehmen die spottbilligen kosten und schlagen dann ihre Gewinnmargen drauf. Habe ich aber neben meinen Läden dort auch noch Läden in der Hauptstadt zum Bsp., dann steigen die Einkaufskosten auf sagen wir das doppelte. Da schlage ich dann auf diese Kosten die Gewinnmarge draufund alles ist gut, weil der VK-Preis immer über lokale Kosten berechnet wird.

In dem moment wo ich das zusammen mixe, kommt das folgende raus :

Kaufe 100 kg Fleisch zu 1500 COP in Los Llanos = 150.000 COP
Kaufe 100 kg Fleisch zu 3000 COP in Bogotá = 300.000 COP

Durchschnittspreis 2.250 COP pro kilo
Gewinnmarge drauf von 50%m bin ich bei 3.375 COP
In Bogotá bite ich es zu billig an und arbeite nicht wirtschaftlich, dort musste ich 4.500 COP nehmen
In Los Llanos nehme ich zuviel und werde die Ware nicht los, da emine Mitbewerber ihren VK-Preis mit 1.500 COP berechnen, ich aber 2.250 COP.


Und genau wegen diesem problem hatte ich meinen Chef davon überzeugt, dass wir umbauen müssen.

Danke trotzdem :)

MyRealName 22. Mai 2016 14:36

AW: Loop vermeiden bei Warenverschiebungen
 
Zitat:

Zitat von p80286 (Beitrag 1338649)
Du kennst https://de.wikipedia.org/wiki/Achill...hildkr%C3%B6te ?
Wenn Waren zwischen zwei Lagern hin und hergeschoben werden und das wiederum Einfluß auf den Warenwert hat, dann ist das kreative Buchführung. Will man von vorneherein einen Mittelwert haben, so kann man diesen auch gleich berechnen. Die Statistik bietet da vielfältige Möglichkeiten.

Gruß
K-H

Ja, das Problem ist mir bekannt und genau deswegen brauch ich ja Ideen.
Ich kann nicht einen Preis festlegen beim Erstellen des Dokuments, und dann nicht mehr anrühren. Die Leute hier sind auch sehr kreativ mit ihren Buchführungen. Ich habe letztens eine Kunden-DB mit diesem problem gesehen. Durchschnittspreis war bei 4500 COP, die Warenverschiebung noch mit 27.000 COP gemeldet. Da gingen natürlich im Ziellager alle Kosten hoch.

Was ich bisher an Ideen hatte dazu war zum Bsp. dass ich die Kosten immer aus dem Vormonat nehme. Also im Februar versende ich die Ware zum Preis des Januars und verändere den Durchschnittspreis im Ziel mit diesem. Im Falle des Zurücksendens im Febrar würde das wieder mit dem Januar-Preis passieren. das ändert aber im Ziel nicht den Januar-Preis und deswegen tritt das problem dann nicht mehr auf.

Denkt ihr, buchhalterisch wäre das eine akzeptable Lösung ?

vagtler 22. Mai 2016 17:51

AW: Loop vermeiden bei Warenverschiebungen
 
Buchhalterisch in meinen Augen akzeptabel wäre es, wenn Du den Lagerwert nicht an den Verkaufspreis koppelst. Die einzig richtige Bezugsgröße wäre hier der Einstandspreis (gerne gemittelt bei Lagerbewegungen, aber das hat dann nur Auswirkungen in eine Richtung). Verkaufspreiskalkulation ist hingegen eine ganz andere Baustelle und hat mit den Lagerwerten eher weniger zu tun - nur mit den Bezugskosten.

BUG 22. Mai 2016 18:28

AW: Loop vermeiden bei Warenverschiebungen
 
Zitat:

Zitat von MyRealName (Beitrag 1338664)
Denkt ihr, buchhalterisch wäre das eine akzeptable Lösung ?

Habt ihr keinen BWLer, der für euer Lager zu wissen hat? Zu irgendwas müssen die ja gut sein :wink:
Disclaimer: nicht ganz ernst gemeint


Intuitiv würde ich Aufzeichnungen der beiden Lager so führen, als ob die getrennt handeln würden. Also Lager eins verkauft die Dinger an Lager zwei, usw... aber keine Ahnung wie das buchhalterisch richtig gemacht wird.

MyRealName 22. Mai 2016 19:56

AW: Loop vermeiden bei Warenverschiebungen
 
Zitat:

Zitat von vagtler (Beitrag 1338665)
Buchhalterisch in meinen Augen akzeptabel wäre es, wenn Du den Lagerwert nicht an den Verkaufspreis koppelst. Die einzig richtige Bezugsgröße wäre hier der Einstandspreis (gerne gemittelt bei Lagerbewegungen, aber das hat dann nur Auswirkungen in eine Richtung). Verkaufspreiskalkulation ist hingegen eine ganz andere Baustelle und hat mit den Lagerwerten eher weniger zu tun - nur mit den Bezugskosten.

Im Lager liegt nicht die Ware zum Preis, sondern der Preis wird aus Kosten errechnet. Wenn mit ein produkt 1 Euro gekostet hat, dann will ich es nciht unter einem Euro verkaufen. Ich will eine Gewinnmarge. Das Beispiel hatte nu aufgezeigt, wie ein einheitlicher Lagerpreis deine regionale Preisrechnung zerstört.

MyRealName 22. Mai 2016 19:58

AW: Loop vermeiden bei Warenverschiebungen
 
Zitat:

Zitat von BUG (Beitrag 1338667)
Zitat:

Zitat von MyRealName (Beitrag 1338664)
Denkt ihr, buchhalterisch wäre das eine akzeptable Lösung ?

Habt ihr keinen BWLer, der für euer Lager zu wissen hat? Zu irgendwas müssen die ja gut sein :wink:
Disclaimer: nicht ganz ernst gemeint


Intuitiv würde ich Aufzeichnungen der beiden Lager so führen, als ob die getrennt handeln würden. Also Lager eins verkauft die Dinger an Lager zwei, usw... aber keine Ahnung wie das buchhalterisch richtig gemacht wird.

Ist doch nicht Deutschland. :P
HIer gibt es auch keine Zertifixierungsstelle für deine "Elster"-Schnittelle, ich programmier die Ausgabe so, wir mein Buchhalter mir das erklärt und wenn ein kunde mir einen Fehler aufzeigt, weil meiner doof war, dann korrigier ich den dann :p

Jasocul 23. Mai 2016 06:56

AW: Loop vermeiden bei Warenverschiebungen
 
Zitat:

Zitat von MyRealName (Beitrag 1338669)
ich programmier die Ausgabe so, wir mein Buchhalter mir das erklärt und wenn ein kunde mir einen Fehler aufzeigt, weil meiner doof war, dann korrigier ich den dann :p

Mitdenken als Entwickler ist aber nicht verboten. Zumal nur du die Konsequenzen für die DB beurteilen kannst.

Habe ich das jetzt richtig verstanden, dass bei der Warenverschiebung nur noch der Mischpreis zur Verfügung steht? Falls ja, hast du ein Problem. Wenn du nicht alle Verschiebungen protokolliert hast, gibt es keine Möglichkeit, den ursprünglichen Preis festzustellen, um die Fehlberechnung zu kompensieren.
Allerdings hoffe ich, dass du den Einstandspreis jeder Charge irgendwo gespeichert hast. Mal ganz abgesehen davon, dass es bei Lebensmitteln (und nicht nur da) aus vielen Gründen durchaus sinnvoll ist, chargengenau zu arbeiten.
Wenn du also den Einstandspreis kennst, ist deine Mittelwertberechnung doch eigentlich kein Problem. Du darfst bei der Warenverschiebung eben nicht den zuletzt ermittelten Durchschnittswert, sondern den Einstandspreis.

Oder habe ich da irgendwas völlig falsch verstanden?

Blup 23. Mai 2016 08:27

AW: Loop vermeiden bei Warenverschiebungen
 
Man könnte zwei kalkulatorischen EK-Preise unterscheiden:
1. alle Einkäufe ohne Lagerbewegung
2. alle Einkäufe mit Lagerbewegung

Der 1.Preis dient zur Berechnung der Kosten für Lagerbewegungen.
Der 2.Preis ist die Grundlage für den VK-Preis.

MyRealName 23. Mai 2016 13:48

AW: Loop vermeiden bei Warenverschiebungen
 
Zitat:

Zitat von Jasocul (Beitrag 1338674)
Zitat:

Zitat von MyRealName (Beitrag 1338669)
ich programmier die Ausgabe so, wir mein Buchhalter mir das erklärt und wenn ein kunde mir einen Fehler aufzeigt, weil meiner doof war, dann korrigier ich den dann :p

Mitdenken als Entwickler ist aber nicht verboten. Zumal nur du die Konsequenzen für die DB beurteilen kannst.

Habe ich das jetzt richtig verstanden, dass bei der Warenverschiebung nur noch der Mischpreis zur Verfügung steht? Falls ja, hast du ein Problem. Wenn du nicht alle Verschiebungen protokolliert hast, gibt es keine Möglichkeit, den ursprünglichen Preis festzustellen, um die Fehlberechnung zu kompensieren.
Allerdings hoffe ich, dass du den Einstandspreis jeder Charge irgendwo gespeichert hast. Mal ganz abgesehen davon, dass es bei Lebensmitteln (und nicht nur da) aus vielen Gründen durchaus sinnvoll ist, chargengenau zu arbeiten.
Wenn du also den Einstandspreis kennst, ist deine Mittelwertberechnung doch eigentlich kein Problem. Du darfst bei der Warenverschiebung eben nicht den zuletzt ermittelten Durchschnittswert, sondern den Einstandspreis.

Oder habe ich da irgendwas völlig falsch verstanden?

Keine Angst ich denke schon mit, nichts desto trotz bin ich kein Buchhalter und ich muss mir die gesetzlichen Vorgaben schon erklären lassen. Was ich damit eigentlich sagen wollte ist, dass es hier etwas lockerer ist, es gibt keine Zertifizierungen fur Schnittstellen zur Steuerbehörde etc.

Du hast es falsch verstanden mit dem Mischpreis.
Ich habe eine Tabelle für die Bewegungen, da wird jede Bewegung eines jeden Produkten in einem Dokument protokoliert. Welches Produkt in welchen Lager zu welchen Kosten wieviel. Auch chargen (Chargennummer und Verfallsdatum) sowie Grössen wie bei Kleidern sind da protokolliert. Aber es ist eine Bewegungstabelle und da kommen schonmal bei Kunden einige Millionen Datensätze zusammen.

Meine Lösung dort war eine Monatstabelle zu machen, alle Eingänge und Ausgänge des Monats eines Produktes in einem Lager in einem Datensatz zusammenzufassen. Da wird dann auch noch ein Einheits-Kosten-Wert errechnet.

Dann werden (falls er sich geändert hat), dieser errechnete Einheistpreis des Monats auf alle Ausgangsbewegungen angewandt.

Jasocul 24. Mai 2016 06:41

AW: Loop vermeiden bei Warenverschiebungen
 
Zurück auf die Ausgangsfrage
Zitat:

Zitat von MyRealName (Beitrag 1338579)
Wie macht ihr das in euren Warenwirtschaftsanwendungen ? Oder wie würdet ihr es machen, so dass der loop garnicht erst zustande kommt ?

Ich verwende den ursprünglichen Einstandspreis und keine zwischendurch ermittelte Mischkalkulation. Das hängt auch damit zusammen, dass ich für jede Charge andere Einstandspreise haben kann und der Verkaufspreis kaum etwas bis nichts mit dem Einstandspreis zu tun hat. Sonderfälle lasse ich jetzt mal außen vor.

Der Mischpreis (im Einkauf) bezieht sich doch auf das Produkt. Dieser ist der gewichtete Einstandspreis der Chargen dieses Produktes.
Die Warenverschiebungen müssen sicher auch chargengenau durchgeführt werden. Alles Andere wäre bei Lebensmitteln fatal. Somit steht dir der Einstandspreis immer zur Verfügung und du kannst den Mischpreis für das Produkt ermitteln.

Dass der Verkaufspreis dann in dem einen Gebiet ungünstiger ist, als im anderen Gebiet und umgekehrt ist doch eine andere Sache. Sollte die VK-Preiskalkulation auf Einstandspreisen beruhen, dann benötigst du vielleicht ein Kennzeichen an der Charge, ob diese bei der Kalkulation berücksichtigt werden darf oder nicht. Gebietsfremde Chargen dürfen dann eben nicht berücksichtigt werden. Erst bei der Gewinnermittlung müssen diese wieder eingerechnet werden.

Ich kann mir auch vorstellen, dass man am Produkt zwei Mischpreise führt. Einen auf Basis der nicht gebietsfremden Chargen, um den VK-Preis zu ermitteln und der zweite Mischpreis beinhaltet alle Chargen zum Produkt, um Gewinnspanne zu ermitteln.

Die Idee, über die Lagerbewegungen zu gehen, halte ich nicht für besonders gut und wäre für mich nur der allerletzte Ausweg, wenn es keine andere Möglichkeit gibt.

Vielleicht helfen die meine Ideen ja weiter.

MyRealName 29. Mai 2016 16:35

AW: Loop vermeiden bei Warenverschiebungen
 
Also für alle, die es interessiert und an der Diskussion teilgenommen haben, meine Lösung sieht nun wie folgt aus :

Solange der Loop nicht auftritt, werden warenverschiebungen weiterhin zu den Durchschnittskosten des jeweiligen Ausgangslagers gemacht.
Tritt der Loop auf, wird eine First-In/First-Out Methode angewandt.

Helge


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz