/app/code/core/Mage/Adminhtml/Block/Sales/Order/View/Info.php
PHP | 164 lines | 94 code | 13 blank | 57 comment | 11 complexity | 7ae2812b7a2c76b90ab741d2ed60504a MD5 | raw file
- <?php
- /**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Open Software License (OSL 3.0)
- * that is bundled with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/osl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magentocommerce.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magentocommerce.com for more information.
- *
- * @category Mage
- * @package Mage_Adminhtml
- * @copyright Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
- * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
- */
- /**
- * Order history block
- *
- * @category Mage
- * @package Mage_Adminhtml
- * @author Magento Core Team <core@magentocommerce.com>
- */
- class Mage_Adminhtml_Block_Sales_Order_View_Info extends Mage_Adminhtml_Block_Sales_Order_Abstract
- {
- /**
- * Retrieve required options from parent
- */
- protected function _beforeToHtml()
- {
- if (!$this->getParentBlock()) {
- Mage::throwException(Mage::helper('adminhtml')->__('Invalid parent block for this block.'));
- }
- $this->setOrder($this->getParentBlock()->getOrder());
- foreach ($this->getParentBlock()->getOrderInfoData() as $k => $v) {
- $this->setDataUsingMethod($k, $v);
- }
- parent::_beforeToHtml();
- }
- public function getOrderStoreName()
- {
- if ($this->getOrder()) {
- $storeId = $this->getOrder()->getStoreId();
- if (is_null($storeId)) {
- $deleted = Mage::helper('adminhtml')->__(' [deleted]');
- return nl2br($this->getOrder()->getStoreName()) . $deleted;
- }
- $store = Mage::app()->getStore($storeId);
- $name = array(
- $store->getWebsite()->getName(),
- $store->getGroup()->getName(),
- $store->getName()
- );
- return implode('<br/>', $name);
- }
- return null;
- }
- public function getCustomerGroupName()
- {
- if ($this->getOrder()) {
- return Mage::getModel('customer/group')->load((int)$this->getOrder()->getCustomerGroupId())->getCode();
- }
- return null;
- }
- public function getCustomerViewUrl()
- {
- if ($this->getOrder()->getCustomerIsGuest()) {
- return false;
- }
- return $this->getUrl('*/customer/edit', array('id' => $this->getOrder()->getCustomerId()));
- }
- public function getViewUrl($orderId)
- {
- return $this->getUrl('*/sales_order/view', array('order_id'=>$orderId));
- }
- /**
- * Find sort order for account data
- * Sort Order used as array key
- *
- * @param array $data
- * @param int $sortOrder
- * @return int
- */
- protected function _prepareAccountDataSortOrder(array $data, $sortOrder)
- {
- if (isset($data[$sortOrder])) {
- return $this->_prepareAccountDataSortOrder($data, $sortOrder + 1);
- }
- return $sortOrder;
- }
- /**
- * Return array of additional account data
- * Value is option style array
- *
- * @return array
- */
- public function getCustomerAccountData()
- {
- $accountData = array();
- /* @var $config Mage_Eav_Model_Config */
- $config = Mage::getSingleton('eav/config');
- $entityType = 'customer';
- $customer = Mage::getModel('customer/customer');
- foreach ($config->getEntityAttributeCodes($entityType) as $attributeCode) {
- /* @var $attribute Mage_Customer_Model_Attribute */
- $attribute = $config->getAttribute($entityType, $attributeCode);
- if (!$attribute->getIsVisible() || $attribute->getIsSystem()) {
- continue;
- }
- $orderKey = sprintf('customer_%s', $attribute->getAttributeCode());
- $orderValue = $this->getOrder()->getData($orderKey);
- if ($orderValue != '') {
- $customer->setData($attribute->getAttributeCode(), $orderValue);
- $dataModel = Mage_Customer_Model_Attribute_Data::factory($attribute, $customer);
- $value = $dataModel->outputValue(Mage_Customer_Model_Attribute_Data::OUTPUT_FORMAT_HTML);
- $sortOrder = $attribute->getSortOrder() + $attribute->getIsUserDefined() ? 200 : 0;
- $sortOrder = $this->_prepareAccountDataSortOrder($accountData, $sortOrder);
- $accountData[$sortOrder] = array(
- 'label' => $attribute->getFrontendLabel(),
- 'value' => $this->escapeHtml($value, array('br'))
- );
- }
- }
- ksort($accountData, SORT_NUMERIC);
- return $accountData;
- }
- /**
- * Get link to edit order address page
- *
- * @param Mage_Sales_Model_Order_Address $address
- * @param string $label
- * @return string
- */
- public function getAddressEditLink($address, $label='')
- {
- if (empty($label)) {
- $label = $this->__('Edit');
- }
- $url = $this->getUrl('*/sales_order/address', array('address_id'=>$address->getId()));
- return '<a href="'.$url.'">' . $label . '</a>';
- }
- }