Grundpreis - Vorschlag zur richtigen Berechnung

[QUOTE=ChristophH;42417]Vielleicht erstellt er auch Preisschilder über die Wawi, auf denen die Angabe zwingend drauf sein muss.[/QUOTE]

Genau! Ich bin stationärer Einzelhändler (und daher auch häufig nicht in der Lage, schnell zu antworten - Pardon für die Verspätung!). Und wir erhalten unsere Daten per Industrie-Standart von den Herstellern und Großhändlern (per standartisierter csv-Datei) - und da liegen die Daten so wie von mir beschrieben vor. Für mich und ich weiß nicht wieviel 10000 Kolleginnen und Kollegen ist das eine Selbstverständlichkeit, daher hab ichs nicht explizit erwähnt und habe die Einwände auch überhaupt nicht begriffen!
Aus dieser Sicht jedenfalls kann von einem falschen Export aus der Wawi sicher nicht die Rede sein.

Tschö

Ralf

…und nu versuch ich, mich in den Factory-Vorschlag einzuarbeiten

Nochmal Hi Markus,

das Factory-Dings ist klasse (um das ganze updatesicher zu machen, richtig?) - schonmal vielen Dank hierfür.

Dein Code ist extrem klever verwurschtelt - da beiss ich noch drann und habs noch nicht ans Laufen gekriegt. Ich hab erstmal ad ovo angefangen und ein schlichtes Modul angemeldet, das funzt sogar :slight_smile: Demnächst mehr…

Tschö

Ralf

Mache es nicht komplexer als es ist… mit Updates hat nur die myUnit Klasse zu tun… und das ist unabhängig von der Fabrik.
GGf. muss diese dann angepasst werden.
Also kannst auch Deine Logik nutzen.

… in meinen Beispiel geht es sich im Prinzip nur darum, dass die Umrechnung ausgelagert ist, damit man mittels Untermodulen die verschiedensten Einheiten unabhängig behandeln bzw. erweitern kann…
Bei der Umrechnung von kg wird einfach die g Klasse erweitert und die Eingabe mal 1000 genommen. Wenn Du alles in g eingibts, brauchst Du die kg Klasse nicht…
Wenn nun eine Meter Klasse erstellt werden soll, kann man wieder die g Klasse so erweitern, dass bei setName immer von m ausgegangen wird, die Berechnung bleibt gleich. So gibt es bloß einen Punkt wo die Berechnung Fehler haben kann und gepflegt werden muss.

In Deinen Beispiel machst Du recht viele Abfragen (switch). Diese könnte man auch mit ein wenig Mathematik umsetzen.
Wenn Du nun Meter, Gramm uvm. hast, und diese auch auf milli, mikro, kilo , mega usw. umrechnet, währe diese Switch-Abfrage wesentlich länger. Wenn dann noch ein Fehler in der Berechnung ist, muss man an mehreren Stellen fixen.
Generell, für eine saubere Umzusetzung (milli, mikro, kilo, mega usw. => alles mal 1000) würde ich eine abstrakte Basisklasse machen, welche nur rechnet und alle anderen Klassen darauf erweitern (mit anderen Vorgabewerten).
Weiterhin kann man auch die aktuelle Sprache zur Berechnung hinzuziehen und cm nach Zoll umrechnen. Dies währe dann der Moment, wo Deine Version komplett unübersichtlich und unwartbar wird.
Aktuell ist die Fabrik “mit Kanonen auf Spatzen schießen”.

Mehr zur Factory:


Das was bei meinen Beispiel mit file_exists passiert, ist hier mit switch umgesetzt.

Ach ja, das was Oxid mit den Modulen macht ist recht ähnlich, nur das keine autonome Objekte erzeugt werden, sondern vorhandene Klassen erweitert werden (geht hier aber auch anders :wink: ).

Ein weiteres Beispiel währe wie AdoDb den DB-Treiber nachlädt… dies kommt meiner Version (Dateisystembasierend) am nächsten.


function &ADONewConnection( $dbtype = 'mysql', $modules = '' ){
  ...
  include_once ADODB_DIR . '/adodbSQL_drivers/' . $dbtype . '/' . $dbtype . '_driver.inc';
  $last_module = $dbtype . '_' . 'driver';
  ...
  $extention = $last_module . '_ADOConnection';
  $object = new $extention();
  ...
  return $object;
}

Fabrik ist aber kein Allheilmittel, da das Testen komplexer ist und eine IDE nicht wirklich an die Dokumentation kommt… mittlerweile geht dies (halbwegs) dank des Interfaces (für die generelle Funktion sind die Interfaces egal, nur halt sicherer… deshalb sieht man sie so wenig).

auch das muss ich mir nochmal in Ruhe durch den Kopf gehen lassen :slight_smile:
Aber ich lerne - vielen Dank!

Tschö

Ralf

Hallo,
also ich verstehe muwi`s ursprüngliches Problem und komme grad auch überhaupt nicht mit der Grundpreiseinstellung zurecht.

Allerdings verstehe ich irgendwie grad nicht, wo es hängt… bzw. bin nach dem Suchen und Lesen hier im Forum noch viel verwirrter!!

Kann mir vielleicht kurz jemand das System verständlich erklären, an Hand eines Beispiels?

Ich habe ein Produkt mit 40ml Inhalt. Die Flasche kostet 9,40 EUR.
Was muss ich nun wo eingeben, damit auf der Artikelseite erscheint:

9,40 € inkl. MwSt. zzgl Versandkosten.
(23,50 €/100ml)

Wenn ich bei Menge 0,4 eingebe und Einheit 100ml funktioniert es, aber wo ist die Logik hinter dem ganzen?

Kann es sein, das in jedem Fall einfach nur der Preis durch die Menge dividiert wird?

[QUOTE=J.Engels;48023]
Wenn ich bei Menge 0,4 eingebe und Einheit 100ml funktioniert es, aber wo ist die Logik hinter dem ganzen?[/QUOTE]

Die Logik ist, dass sich in Deiner Verkaufseinheit das 0,4-fache der Bezugsgröße 100ml befinden.

[QUOTE=muwi;42360]…und das mach ich bei 4000 Artikeln, die ich aus der Warenwirtschaft importiert habe.[/QUOTE]
Alternativvorschlag zur Lösung Deines Problems:

Da Du die Grundpreise bereits perfekt in der Warenwirtschaft gespeichert hast, kannst Du den Mechanismus, den Oxid für die Grundpreisberechnung vorsieht und der Dir nicht gefällt, sehr simpel umgehen:

  • Du definierst ein paar eigene zusätzliche Datenbankfelder, in die Du die Grundpreisinfos aus der Wawi exportierst

  • Du ersetzt in den Templates die Teile mit den Grundpreisinformationen durch diese neuen Felder.

Fertig. Kein Modul notwendig, minimale Änderung vom Export (nur die neuen Felder), Unabhängigkeit von jeglicher Shoplogik. Exakt so mache ich das hier seit ein paar Jahren (Wawi = Navision/Dynamic NAV).

Die anderen bislang beschriebenen Wege mögen auch funktionieren, aber dieser hier ist einfacher, da er nichts mit Programmierung zu tun hat und vor allem nicht von der Shoplogik abhängig ist.

[QUOTE=laramarco;42401]mal ganz abgesehen von “falschen ex/importen” - wozu brauch man in einer Wawi den Grundpreis ??
schreibt etwa irgendwer auf ne Rechnung den Grundpreis drauf ??[/QUOTE]
Ich kann mir vorstellen, dass es Unternehmen gibt, die ihre Kalkulationen oder Deckungsbeitragsrechnungen auf internen Grundpreisen ihrer Produkte aufbauen. Ich glaube, ich kenne sogar eines… Möglicherweise sind das dann zwar nicht die Grundpreise aus der PAngV, sondern irgendwelche internen Basiseinheiten, aber die Logik, die diese Preise berechnet, ist in der WaWi verankert, und diese kann man sich auch zu Nutze machen, um die gesetzlichen Grundpreise richtig zu berechnen.

Hallo Marcus
kann du mir ev. sagen was ich ändern soll damit man die UnitPreise Netto (PricePerUnit) anzeigen könnte? und wie man die Staffelpreise als Netto Preise anzeigen könnte.
Beste Grüsse