/**
  * Add price details to xml object
  *
  * @param Mage_XmlConnect_Model_Simplexml_Element $xmlObj
  * @param Mage_Sales_Model_Quote_Address_Rate $rate
  * @return Mage_XmlConnect_Block_Cart_Paypal_Mecl_Shippingmethods
  */
 protected function _addPriceToXmlObj($xmlObj, $rate)
 {
     $price = $this->_getShippingPrice($rate->getPrice(), $this->helper('tax')->displayShippingPriceIncludingTax());
     $incl = $this->_getShippingPrice($rate->getPrice(), true);
     $renderedInclTax = '';
     if ($incl != $price && $this->helper('tax')->displayShippingBothPrices()) {
         $inclTaxFormat = ' (%s %s)';
         $renderedInclTax = sprintf($inclTaxFormat, Mage::helper('tax')->__('Incl. Tax'), $incl);
     }
     $price .= $renderedInclTax;
     $xmlObj->addAttribute('price', $rate->getPrice() * 1);
     $xmlObj->addAttribute('formatted_price', $xmlObj->escapeXml($price));
     return $this;
 }
Esempio n. 2
0
 protected function sortRates(Mage_Sales_Model_Quote_Address_Rate $a, Mage_Sales_Model_Quote_Address_Rate $b)
 {
     // Sort by price (lowest first)
     // This is a crappy solution and should be rewritten
     $aSort = intval(round(floatval($a->getPrice()) * 10000));
     $bSort = intval(round(floatval($b->getPrice()) * 10000));
     if ($aSort < $bSort) {
         return -1;
     } elseif ($aSort > $bSort) {
         return 1;
     }
     // Sory by carrier order (lowest first)
     $aSort = $a->getCarrierInstance()->getSortOrder();
     $bSort = $b->getCarrierInstance()->getSortOrder();
     if ($aSort < $bSort) {
         return -1;
     } elseif ($aSort > $bSort) {
         return 1;
     }
     // Sort my method order (lowest first)
     $aSort = intval($a->getSortOrder());
     $bSort = intval($b->getSortOrder());
     if ($aSort < $bSort) {
         return -1;
     } elseif ($aSort > $bSort) {
         return 1;
     }
     return 0;
 }