/** * Return total list * * @param Mage_Sales_Model_Abstract $source * @return array */ protected function _getTotalsList($source) { $nodeName = Mage::helper('zab_billing')->getTotalConfigPath($source->getTipo()); $totals = Mage::getConfig()->getNode($nodeName)->asArray(); usort($totals, array($this, '_sortTotalsList')); $totalModels = array(); foreach ($totals as $index => $totalInfo) { if (!empty($totalInfo['model'])) { $totalModel = Mage::getModel($totalInfo['model']); if ($totalModel instanceof Mage_Sales_Model_Order_Pdf_Total_Default) { $totalInfo['model'] = $totalModel; } else { Mage::throwException(Mage::helper('sales')->__('PDF total model should extend Mage_Sales_Model_Order_Pdf_Total_Default')); } } else { $totalModel = Mage::getModel($this->_defaultTotalModel); } $totalModel->setData($totalInfo); $totalModels[] = $totalModel; } return $totalModels; }