sfShoppingCart i podatek
31 lipca 2007
Sprawa jest tak banalna, aż dziwie się że nie ma tego wbudowanego. Chodzi mi wyświetlenie ceny produktu wraz z podatkiem.
Jako, że obiekt sfShoppingCartItem nie przechowuje informacji o podatku trzeba będzie ją pobrać z koszyka i zwrócić wynik pomnożony przez 1 + $tax:
Bierzemy się do pracy.
Mamy metodę $item->getPrice() więc tak jak jest to zrobione dla total dodajemy do plugins/sfShoppingCart/lib/sfSHoppingCartItem.class.php metodę
getPriceWithTax()
Jako, że obiekt sfShoppingCartItem nie przechowuje informacji o podatku trzeba będzie ją pobrać z koszyka i zwrócić wynik pomnożony przez 1 + $tax:
public function getPriceWithTax() { $tax = $this->getShoppingCart()->getTax(); return $this->price * (1 + $tax / 100); }
Odpalamy i widzimy... error mówiący mniej więcej tyle, że właściwość shopping_cart jest undefined.
Podstawowe pytanie - dlaczego?
Pewnie dlatego, że nie została zdefiniowana! (odkrycie no nie?)
Przejdźmy do rzeczy, otwieramy sfShoppingCart.class.php (z tego samego folderu co poprzednia klasa), i idziemy do metody addItem($item).
Na samym końcu zaraz przed return dodajemy:
$item->setShoppingCart($this);
Od teraz możemy się cieszyć łatwością obsługi cen z podatkiem :)