Exemplo n.º 1
0
 /**
  * Gets a PakjeGemak address for either a quote or an order object.
  *
  * @param Mage_Sales_Model_Quote|Mage_Sales_Model_Order $object
  *
  * @return false|Mage_Sales_Model_Order_Address|Mage_Sales_Model_Quote_Address|TIG_MyParcel2014_Model_Shipment
  */
 public function getPgAddress($object)
 {
     /**
      * Get all addresses for the specified object.
      */
     if ($object instanceof Mage_Sales_Model_Quote) {
         $addressCollection = $object->getAllAddresses();
     } elseif ($object instanceof Mage_Sales_Model_Order) {
         $addressCollection = $object->getAddressesCollection();
     } elseif ($object instanceof TIG_MyParcel2014_Model_Shipment) {
         $order = $object->getOrder();
         if (!$order) {
             return false;
         }
         $addressCollection = $order->getAddressesCollection();
     } else {
         return false;
     }
     /**
      * Go through each address and check if it's a PakjeGemak address.
      *
      * @var Mage_Sales_Model_Quote_Address|Mage_Sales_Model_Order_Address $address
      */
     $pgAddress = false;
     foreach ($addressCollection as $address) {
         if ($address->getAddressType() == self::PG_ADDRESS_TYPE) {
             $pgAddress = $address;
             break;
         }
     }
     /**
      * Return the PakjeGemak address or false if none was found.
      */
     return $pgAddress;
 }
Exemplo n.º 2
0
 /**
  * Determines if the object (quote, invoice, or credit memo) should use AvaTax services
  *
  * @param Mage_Sales_Model_Quote|Mage_Sales_Model_Order_Invoice|Mage_Sales_Model_Order_Creditmemo $object
  * @param Mage_Sales_Model_Quote_Address $shippingAddress
  * @return bool
  */
 public function isObjectActionable($object, $shippingAddress = null)
 {
     $storeId = $object->getStore()->getId();
     //is action enabled?
     $action = $object->getOrder() ? OnePica_AvaTax_Model_Config::ACTION_CALC_SUBMIT : OnePica_AvaTax_Model_Config::ACTION_CALC;
     if (Mage::getStoreConfig('tax/avatax/action', $storeId) < $action) {
         return false;
     }
     if (!$shippingAddress) {
         $shippingAddress = $object->getShippingAddress();
     }
     if (!$shippingAddress) {
         $shippingAddress = $object->getBillingAddress();
     }
     //is the region filtered?
     if (!$this->isAddressActionable($shippingAddress, $storeId, OnePica_AvaTax_Model_Config::REGIONFILTER_TAX)) {
         return false;
     }
     return true;
 }
Exemplo n.º 3
0
 /**
  * Gets all needed Informations for shopping-basket Block of the Request
  *
  * @param Mage_Sales_Model_Quote|Mage_Sales_Model_Order|Mage_Sales_Model_Order_Invoice|Mage_Sales_Model_Order_Creditmemo $object
  * @param float $amount
  * @param array $articleList
  * @return array
  */
 public function getRequestBasket($object, $amount = '', $articleList = '')
 {
     $basket = array();
     if ($object instanceof Mage_Sales_Model_Order) {
         $basket['currency'] = $object->getOrderCurrencyCode();
     } else {
         if ($object instanceof Mage_Sales_Model_Quote) {
             $basket['currency'] = $object->getQuoteCurrencyCode();
         } else {
             $basket['currency'] = $object->getOrder()->getOrderCurrencyCode();
         }
     }
     if ($articleList != '') {
         $basket['items'] = $articleList;
     } else {
         $basket['items'] = $this->getArticles($object);
     }
     // If no positiv item is remained in basket clear basket
     if (!$this->_anyPositiveItems($basket['items'])) {
         $basket['items'] = array();
     }
     if (is_numeric($amount)) {
         $basket['amount'] = $amount;
     } else {
         if ($object->getGrandTotal() > 0) {
             $basket['amount'] = $object->getGrandTotal();
         } elseif (count($basket['items']) == 0) {
             $basket['amount'] = 0;
         } else {
             $basket['amount'] = $this->getAmountByItems($basket['items']);
         }
     }
     // Ensure that the basket amount is never less than zero
     // In certain cases (i.e. in case of maloperation) the amount can become < 0
     if ($basket['amount'] < 0) {
         $basket['amount'] = 0;
     }
     return $basket;
 }