00001 <?php
00002
00007 class oxSimpleVariant extends oxI18n
00008 {
00009
00015 protected $_blUseLazyLoading = true;
00016
00022 protected $_oPrice = null;
00023
00029 protected $_oParent = null;
00030
00035 public function __construct()
00036 {
00037 parent::__construct();
00038 $this->_sCacheKey = "simplevariants";
00039 $this->init( 'oxarticles' );
00040 }
00041
00048 public function getSelectLists()
00049 {
00050 return null;
00051 }
00052
00058 public function getPrice()
00059 {
00060 if (!is_null($this->_oPrice)) {
00061 return $this->_oPrice;
00062 }
00063
00064 $this->_oPrice = oxNew("oxPrice");
00065 $dPrice = $this->oxarticles__oxprice->value;
00066 if (!$dPrice) {
00067 $dPrice = $this->_getParentPrice();
00068 }
00069
00070 $this->_oPrice->setPrice($dPrice, $this->_dVat);
00071
00072 $this->_applyParentVat($this->_oPrice);
00073
00074 return $this->_oPrice;
00075 }
00076
00083 protected function _applyParentVat($oPrice)
00084 {
00085 $oParent = $this->getParent();
00086 if (!($oParent instanceof oxarticle)) {
00087 return;
00088 }
00089
00090 $oParent->applyVats($oPrice);
00091 }
00092
00100 public function setPrice($oPrice)
00101 {
00102 $this->_oPrice = $oPrice;
00103 }
00104
00110 public function getFPrice()
00111 {
00112 if ( $oPrice = $this->getPrice() ) {
00113 return oxLang::getInstance()->formatCurrency( $oPrice->getBruttoPrice() );
00114 } else {
00115 return null;
00116 }
00117 }
00118
00126 public function setParent($oParent)
00127 {
00128 $this->_oParent = $oParent;
00129 }
00130
00136 public function getParent()
00137 {
00138 return $this->_oParent;
00139 }
00140
00146 protected function _getParentPrice()
00147 {
00148
00149 if (isset($this->_oParent->oxarticles__oxprice->value)) {
00150 return $this->_oParent->oxarticles__oxprice->value;
00151 }
00152
00153 return 0;
00154 }
00155 }