예제 #1
0
 /**
  * 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();
 }
예제 #2
0
 /**
  * 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;
 }