Mehrwertsteuer für Warenkorb auslesen

OXID CE 4.7.6: Mehrwertsteuer für Warenkorb auslesen

Controller:
application/controllers/basket.php

Model:
application/models/oxbasketitem.php

Methode:

public function getVatPercent()
{
        return oxRegistry::getLang()->formatVat( $this->getPrice()->getVat() );
}

[I]$this->getPrice() [/I] gibt ein Objekt zurück, in meinem Fall:

Lokale Testumgebung: (dort wird die Mwst. richtig mit 19 % ausgewiesen)

object(oxPrice)#88 (5) {
  ["_dBrutto":protected]=>
  float(398)
  ["_dNetto":protected]=>
  float(0)
  ["_dVat":protected]=>
  float(19)
  ["_aDiscounts":protected]=>
  NULL
  ["_blNetPriceMode":protected]=>
  bool(false)
}

Online (Mwst. wird mit 0 % ausgewiesen):

object(oxPrice)#82 (5) { 
  ["_dBrutto":protected]=> 
  float(299) 
  ["_dNetto":protected]=> 
  float(0) 
  ["_dVat":protected]=> 
  float(0) 
  ["_aDiscounts":protected]=> 
  NULL 
  ["_blNetPriceMode":protected]=> 
  bool(false) 
}

Mit der Methode [I]->getVat()[/I] wird auf die Eigenschaft [I]_dVat[/I] zugegriffen. Die Eigenschaft [I]_dVat[/I] ist von der Sichtbarkeit protected und daher kann man nur mit einem Methoden-Aufruf die Eigenschaft auslesen. Aber suche ich nach der Methode getVar() finde ich diese 4x im OXID-Framework: oxselectlist.php, oxtsproduct.php, oxtsprotection.php und oxprice.php. Kann mir jemand sagen, welche der 4 Methoden im Warenkorb zum Einsatz kommt?

View:
application/views/theme/tpl/page/checkout/inc/basketcontents.tpl

Codestelle:

[{block name="checkout_basketcontents_basketitem_vat"}]
  [{* product VAT percent *}]
  <td class="vatPercent">
    [{ $basketitem->getVatPercent() }]%
  </td>
[{/block}]

Meine Mehrwertsteuer wird mit 0 % ausgewiesen, obwohl 19 % im Admin angegeben sind. Kann mir dort jemand einen Tipp geben oder helfen?
Woher kommt der Wert [B]_dVat => float(0)[/B]? Wird dieser aus der Datenbank ausgelesen? Wenn ja, wo kann ich diesen Wert im Admin setzen? Wie kann ich nachvollziehen, woher der Wert stammt?

Hi :slight_smile:

konnte mein Problem selbst lösen.

Die Methode [I]getArticleVat()[/I] in dem Model [I]oxvatselector.php[/I] ist dafür zuständig, welcher Mwst. Satz für den einzelnen Artikel genommen wird.

In meiner Online Umgebung war der Artikel Kategorie noch ein Spez. Mwst. Satz zugewiesen und dieser war 0 %.

Die Methode getArticleVat geht folgendermaßen vor:

[ol]
[li]Überprüfen ob der Artikel einen spez. Mwst. Satz besitzt -> Wenn ja liefere diesen zurück
[/li][li]Überprüfen ob die Artikel Kategorie einen spez. Mwst. Satz besitzt -> Wenn ja liefere diesen zurück
[/li][li]Default Mwst. Satz der Stammdaten berücksichtigen
[/li][/ol]

Die obere Aufzählung entspricht einer Wertigkeit, dass heißt ein spez. Mwst. Satz eines Artikels ist höher anzusehen als ein spez. Mwst. Satz der Kategorie eines Artikels.

Damit kann der Thread geschlossen werden :slight_smile: