#### Weitere Info ###
zu Problem 1:
habe ich eine Lösung gefunden:
in mytemplate/html/com_virtuemart/category/default.php
####################
if (empty($product->prices['salesPrice']) and VmConfig::get ('askprice', 1) and !$product->images[0]->file_is_downloadable) {
echo JText::_ ('COM_VIRTUEMART_PRODUCT_ASKPRICE');
}
//todo add config settings
if ($this->showBasePrice) {
echo $this->currency->createPriceDiv ('basePrice', 'COM_VIRTUEMART_PRODUCT_BASEPRICE', $product->prices);
echo $this->currency->createPriceDiv ('basePriceVariant', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_VARIANT', $product->prices);
}
echo $this->currency->createPriceDiv ('variantModification', 'COM_VIRTUEMART_PRODUCT_VARIANT_MOD', $product->prices);
if (round($product->prices['basePriceWithTax'],VmConfig::get('salesPriceRounding')) != $product->prices['salesPrice']) {
echo '' . $this->currency->createPriceDiv ('basePriceWithTax', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_WITHTAX', $product->prices) . "";
}
if (round($product->prices['salesPriceWithDiscount'],VmConfig::get('salesPriceRounding')) != $product->prices['salesPrice']) {
echo $this->currency->createPriceDiv ('salesPriceWithDiscount', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITH_DISCOUNT', $product->prices);
}
echo $this->currency->createPriceDiv ('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $product->prices);
echo $this->currency->createPriceDiv ('priceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $product->prices);
echo $this->currency->createPriceDiv ('discountAmount', 'COM_VIRTUEMART_PRODUCT_DISCOUNT_AMOUNT', $product->prices);
echo $this->currency->createPriceDiv ('taxAmount', 'COM_VIRTUEMART_PRODUCT_TAX_AMOUNT', $product->prices);
## hier eingebaut und via sprachoveride den Linkaufruf eingebaut ##
//display shipping info tetro
echo '<div class="PricetaxAmount vm-display vm-price-value"><span class="vm-price-desc">'
.JText::_('COM_VIRTUEMART_PRODUCT_SHIPPING_DISPLAY').
'</span><span class="PricetaxAmount"></span></div>';
//display shipping info tetro
## hier eingebaut und via sprachoveride den Linkaufruf eingebaut ##
$unitPriceDescription = JText::sprintf ('COM_VIRTUEMART_PRODUCT_UNITPRICE', $product->product_unit);
echo $this->currency->createPriceDiv ('unitPrice', $unitPriceDescription, $product->prices);
####################
Falls das jemand für rechtsgültien Shop brauchen könnte
#### Weitere Info ###
zu Problem 2:
Wenn man in den Preisangaben (VM Konfiguration) 5 Dezimaleinstellungen einstellt, dann verschwindet der der Fehler (siehe Problemstellung 2. oben) und "Regulärer Preis" wird nicht mehr angezeigt?
Anscheinend ist dort irgendwo der Grund für das Phänomen?
Hatte auch 4 Dezimaleinstellungen getestet dort wird der Preis bis auf die letzte Kommastelle richtig angezeigt. Dies lässt vermuten, dass die 5 Kommastelle irgendein Vergleichsproblem hat und da wahrscheinlich einen anderen Wert vermittelt bekommt wenn 4 oder weniger Dezimalstellen eingestellt ist.
Soweit ich die Funktion verstanden hab wird der alte Preis nur angezeigt wenn dieser einen anderen Wert hat.
Nun habe ich zusätzlich die Option "Rundung nur auf die Anzeige anwenden" deaktiviert und siehe da er zeigt wieder alles richtig an. Das würde bedeuten das hier ein Problem auftaucht.
Die Option "Rundung nur auf die Anzeige anwenden" habe ich bzgl. der Genauigkeit der Mehrwertsteuer-Berechnung aktiviert, welches dann Berechnungsfehler (Aufrundungsfehler durch das zusammenzählen mehrere Produkt-Mehrwertsteuern) bei mehreren Produkten im Warenkorb behoben hat.
Bei dieser Option "Rundung nur auf die Anzeige anwenden" wird die Aufrundungsproblematik dadurch behoben indem mit mehr Kommastellen eine höhere Genauigkeit beim Zusammenzählen der Mehrwertsteuerbeträge gerechnet wird.
Wenn ich zwei Kommastellen (bei den Preisen wie üblich) einstelle, so erhalte ich folgendes Beispiel:
Produkt A:
( 3 Kommastellen) 8,344 € = 8,34 (aufgerundet auf zwei Kommastellen)
plus
Produkt B:
( 3 Kommastellen) 5,264 € = 5,26 (aufgerundet auf zwei Kommastellen)
Ergebnis (Produkt A) + (Produkt B):
( 3 Kommastellen) 13,608 € = 13,61 (aufgerundet auf zwei Kommastellen) siehe oben Berechnung mit den bereits aufgerundeten Beträgen "(Produkt A / 8,34) + (Produkt B / 5,26) = 13,60"
Wenn also durch "(Produkt A) + (Produkt B)" mit 2 Kommastellen aufgerundet und die Mehrwertssteuerbeträge zusammenzählt wird, ergibt sich dadurch ein andere Mehrwersteuer Gesamtbetrag.
Um diesen Fehler zu vermeiden ist die Einstellung "Rundung nur auf die Anzeige anwenden" eigentlich unbedingt zu aktivieren. Vor allem wenn man mit einer genaueren Warenwirtschaft (z.B. Lexware etc.) arbeitet und von dort die Rechnungststellung auch betreibt.
Dennoch verursacht sie eine Fehlerberechnung.
VM vergleicht hier anscheinend aufgerundete Beträge mit tatsächlich hinterlegten Beträgen. Ähnliches zeigt sich auch wenn ich bei einem Produkt ganz normal mit 19% MwSt. folgendes bei den Preisen eines Produktes eintrage.
Endpreis
5.89643
daraus berechnet (19% MwSt.) sich ein
Selbstkostenpreis
4.95498
Auch bei dieser Variante wird die Anzeige "Regulärer Preis" dargestellt mit dem gleichen Preis wie der Verkaufspreis?
Daraus folgt meiner Meinung nach das er den angezeigten und aufgerundeten Endpreis Betrag (5.90 / 2 Kommastellen / Preisangaben) mit dem hinterlegten vergleicht und dort einen anderen Wert (5.89643) vorfindet jedoch dan wieder zur Anzeige aufrundet - als eben zuerst aufzurunden und dann zu vergleichen.
Nun habe ich auch noch den Endpreis testweise auf 5.901 gestellt zwecks der Kommastelle aber auch hier die unbeliebte Anzeige.
Das funktioniert nur dann wenn wie oben schon beschrieben fünf Stellen nach dem Komma eingestellt werden. Also im Prinzip die Rundung der Beträge vermeidet.
Also bleibt mir derzeit nichts anderes übrig als zwischen dem Übel der Fehlberechnung der addierten Mehrwertsteuer (Rundung nur auf die Anzeige anwenden - deaktivieren) oder einer Fehlfunktion bei nicht EU Ländern (also ohne MwSt.) und mit der Anzeige "Regulärer Preis" als doppelte Preisangabe wählen zu müssen.
Ist das nur bei mir so?
Aber im Prinzip ist das auch so ein Fehler der bei den Kalkulationen auftaucht im Zusammenspiel mit (Basispreis inklusive MwSt., aber ohne Preisnachlässe).
Daher meine ich müsste um dies zu vermeiden einfach die Möglichkeit bestehen das man Nullstellen bei den Produkten mitspeichern kann. Was ja nicht möglich ist.
Aber eigentlich tappe ich immer noch im Dunkeln?
Würde mich über Hilfe freuen.
Gruß Ralf