/** * 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; }
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; }