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_Sales
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: /**
29: * Flat sales order status history collection
30: *
31: * @category Mage
32: * @package Mage_Sales
33: * @author Magento Core Team <core@magentocommerce.com>
34: */
35: class Mage_Sales_Model_Resource_Order_Status_History_Collection
36: extends Mage_Sales_Model_Resource_Order_Collection_Abstract
37: {
38: /**
39: * Event prefix
40: *
41: * @var string
42: */
43: protected $_eventPrefix = 'sales_order_status_history_collection';
44:
45: /**
46: * Event object
47: *
48: * @var string
49: */
50: protected $_eventObject = 'order_status_history_collection';
51:
52: /**
53: * Model initialization
54: *
55: */
56: protected function _construct()
57: {
58: $this->_init('sales/order_status_history');
59: }
60:
61: /**
62: * Get history object collection for specified instance (order, shipment, invoice or credit memo)
63: * Parameter instance may be one of the following types: Mage_Sales_Model_Order,
64: * Mage_Sales_Model_Order_Creditmemo, Mage_Sales_Model_Order_Invoice, Mage_Sales_Model_Order_Shipment
65: *
66: * @param mixed $instance
67: * @param string $historyEntityName
68: *
69: * @return Mage_Sales_Model_Order_Status_History|null
70: */
71: public function getUnnotifiedForInstance($instance, $historyEntityName=Mage_Sales_Model_Order::HISTORY_ENTITY_NAME)
72: {
73: if(!$instance instanceof Mage_Sales_Model_Order) {
74: $instance = $instance->getOrder();
75: }
76: $this->setOrderFilter($instance)->setOrder('created_at', 'desc')
77: ->addFieldToFilter('entity_name', $historyEntityName)
78: ->addFieldToFilter('is_customer_notified', 0)->setPageSize(1);
79: foreach($this as $historyItem) {
80: return $historyItem;
81: }
82: return null;
83: }
84:
85: }
86: