/** * Loads any saved rates in session */ protected function _construct() { $rates = Mage::getSingleton('avatax/session')->getRates(); if (is_array($rates)) { foreach ($rates as $key => $rate) { if ($rate['timestamp'] < $this->_getDateModel()->timestamp('-' . self::CACHE_TTL . ' minutes')) { unset($rates[$key]); } } $this->_rates = $rates; } return parent::_construct(); }
/** * Sends a request to the Avatax server * * @param int $storeId * @return mixed */ protected function _send($storeId) { /** @var OnePica_AvaTax_Model_Config $config */ $config = Mage::getSingleton('avatax/config')->init($storeId); $connection = $config->getTaxConnection(); $result = null; $message = null; try { $result = $connection->getTax($this->_request); } catch (Exception $exception) { $message = new Message(); $message->setSummary($exception->getMessage()); } if (!isset($result) || !is_object($result) || !$result->getResultCode()) { $actualResult = $result; $result = new Varien_Object(); $result->setResultCode(SeverityLevel::$Exception)->setActualResult($actualResult)->setMessages(array($message)); } $this->_log(OnePica_AvaTax_Model_Source_Logtype::GET_TAX, $this->_request, $result, $storeId, $config->getParams()); if ($result->getResultCode() != SeverityLevel::$Success) { self::$_hasError = true; if (Mage::helper('avatax')->fullStopOnError($storeId)) { Mage::helper('avatax')->addErrorMessage($storeId); } } else { Mage::helper('avatax')->removeErrorMessage(); } return $result; }