*/ 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('
', $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() || !$this->getOrder()->getCustomerId()) { 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 '' . $label . ''; } /** * Whether Customer IP address should be displayed on sales documents * @return bool */ public function shouldDisplayCustomerIp() { return !Mage::getStoreConfigFlag('sales/general/hide_customer_ip', $this->getOrder()->getStoreId()); } }