1: <?php
2: /**
3: * Magento
4: *
5: * NOTICE OF LICENSE
6: *
7: * This source file is subject to the Open Software License (OSL 3.0)
8: * that is bundled with this package in the file LICENSE.txt.
9: * It is also available through the world-wide-web at this URL:
10: * http://opensource.org/licenses/osl-3.0.php
11: * If you did not receive a copy of the license and are unable to
12: * obtain it through the world-wide-web, please send an email
13: * to license@magentocommerce.com so we can send you a copy immediately.
14: *
15: * DISCLAIMER
16: *
17: * Do not edit or add to this file if you wish to upgrade Magento to newer
18: * versions in the future. If you wish to customize Magento for your
19: * needs please refer to http://www.magentocommerce.com for more information.
20: *
21: * @category Mage
22: * @package Mage_Adminhtml
23: * @copyright Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
24: * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
25: */
26:
27: /**
28: * Adminhtml sales order create sidebar recently compared block
29: *
30: * @category Mage
31: * @package Mage_Adminhtml
32: * @author Magento Core Team <core@magentocommerce.com>
33: */
34:
35: class Mage_Adminhtml_Block_Sales_Order_Create_Sidebar_Pcompared extends Mage_Adminhtml_Block_Sales_Order_Create_Sidebar_Abstract
36: {
37: protected function _construct()
38: {
39: parent::_construct();
40: $this->setId('sales_order_create_sidebar_pcompared');
41: $this->setDataId('pcompared');
42: }
43:
44: public function getHeaderText()
45: {
46: return Mage::helper('sales')->__('Recently Compared Products');
47: }
48:
49: /**
50: * Retrieve item collection
51: *
52: * @return mixed
53: */
54: public function getItemCollection()
55: {
56: $productCollection = $this->getData('item_collection');
57: if (is_null($productCollection)) {
58: // get products to skip
59: $skipProducts = array();
60: if ($collection = $this->getCreateOrderModel()->getCustomerCompareList()) {
61: $collection = $collection->getItemCollection()
62: ->useProductItem(true)
63: ->setStoreId($this->getStoreId())
64: ->setCustomerId($this->getCustomerId())
65: ->load();
66: foreach ($collection as $_item) {
67: $skipProducts[] = $_item->getProductId();
68: }
69: }
70:
71: // prepare products collection and apply visitors log to it
72: $productCollection = Mage::getModel('catalog/product')->getCollection()
73: ->setStoreId($this->getQuote()->getStoreId())
74: ->addStoreFilter($this->getQuote()->getStoreId())
75: ->addAttributeToSelect('name')
76: ->addAttributeToSelect('price')
77: ->addAttributeToSelect('small_image');
78: Mage::getResourceSingleton('reports/event')->applyLogToCollection(
79: $productCollection, Mage_Reports_Model_Event::EVENT_PRODUCT_COMPARE, $this->getCustomerId(), 0, $skipProducts
80: );
81:
82: $productCollection->load();
83: $this->setData('item_collection', $productCollection);
84: }
85: return $productCollection;
86: }
87:
88: /**
89: * Retrieve availability removing items in block
90: *
91: * @return bool
92: */
93: public function canRemoveItems()
94: {
95: return false;
96: }
97:
98: /**
99: * Get product Id
100: *
101: * @param Mage_Catalog_Model_Product $item
102: * @return int
103: */
104: public function getIdentifierId($item)
105: {
106: return $item->getId();
107: }
108:
109: /**
110: * Retrieve product identifier of block item
111: *
112: * @param mixed $item
113: * @return int
114: */
115: public function getProductId($item) {
116: return $item->getId();
117: }
118: }
119: