35 $sCacheId = $oUser->
getId() .
'_' . $oUser->oxuser__oxcountryid->value;
38 if (array_key_exists($sCacheId, self::$_aUserVatCache) &&
39 self::$_aUserVatCache[$sCacheId] !== null
41 return self::$_aUserVatCache[$sCacheId];
50 $oCountry =
oxNew(
'oxcountry');
51 if (!$oCountry->load($sCountryId)) {
52 throw oxNew(
"oxObjectException");
54 if ($oCountry->isForeignCountry()) {
59 self::$_aUserVatCache[$sCacheId] = $ret;
75 if ($oUser->oxuser__oxustid->value) {
95 $sCatT = getViewName(
'oxcategories');
97 if ($this->_blCatVatSet === null) {
98 $sSelect =
"SELECT oxid FROM $sCatT WHERE oxvat IS NOT NULL LIMIT 1";
102 $this->_blCatVatSet = (bool) $oDb->getOne($sSelect);
105 if (!$this->_blCatVatSet) {
109 $sO2C = getViewName(
'oxobject2category');
110 $sSql =
"SELECT c.oxvat
111 FROM $sCatT AS c, $sO2C AS o2c
112 WHERE c.oxid=o2c.oxcatnid AND
113 o2c.oxobjectid = " . $oDb->quote($oArticle->
getId()) .
" AND
115 ORDER BY o2c.oxtime ";
117 $fVat = $oDb->getOne($sSql);
118 if ($fVat !==
false && $fVat !== null) {
134 startProfile(
"_assignPriceInternal");
137 if (($dArticleVat = $oArticle->
getCustomVAT()) !== null) {
138 stopProfile(
"_assignPriceInternal");
143 stopProfile(
"_assignPriceInternal");
148 stopProfile(
"_assignPriceInternal");
150 return $this->
getConfig()->getConfigParam(
'dDefaultVAT');
195 $blUseShippingCountry = $this->
getConfig()->getConfigParam(
"blShippingCountryVat");
197 if ($blUseShippingCountry) {
201 if (isset($aAddresses[$sSelectedAddress])) {
202 return $aAddresses[$sSelectedAddress]->oxaddress__oxcountryid->value;
206 return $oUser->oxuser__oxcountryid->value;