*/ class Mage_Sales_Model_Resource_Recurring_Profile extends Mage_Sales_Model_Resource_Abstract { /** * Initialize main table and column * */ protected function _construct() { $this->_init('sales/recurring_profile', 'profile_id'); $this->_serializableFields = array( 'profile_vendor_info' => array(null, array()), 'additional_info' => array(null, array()), 'order_info' => array(null, array()), 'order_item_info' => array(null, array()), 'billing_address_info' => array(null, array()), 'shipping_address_info' => array(null, array()) ); } /** * Unserialize Varien_Object field in an object * * @param Mage_Core_Model_Abstract $object * @param string $field * @param mixed $defaultValue */ protected function _unserializeField(Varien_Object $object, $field, $defaultValue = null) { if ($field != 'additional_info') { return parent::_unserializeField($object, $field, $defaultValue); } $value = $object->getData($field); if (empty($value)) { $object->setData($field, $defaultValue); } elseif (!is_array($value) && !is_object($value)) { $unserializedValue = false; try { $unserializedValue = Mage::helper('core/unserializeArray') ->unserialize($value); } catch (Exception $e) { Mage::logException($e); } $object->setData($field, $unserializedValue); } } /** * Return recurring profile child Orders Ids * * * @param Varien_Object $object * @return array */ public function getChildOrderIds($object) { $adapter = $this->_getReadAdapter(); $bind = array(':profile_id' => $object->getId()); $select = $adapter->select() ->from( array('main_table' => $this->getTable('sales/recurring_profile_order')), array('order_id')) ->where('profile_id=:profile_id'); return $adapter->fetchCol($select, $bind); } /** * Add order relation to recurring profile * * @param int $recurringProfileId * @param int $orderId * @return Mage_Sales_Model_Resource_Recurring_Profile */ public function addOrderRelation($recurringProfileId, $orderId) { $this->_getWriteAdapter()->insert( $this->getTable('sales/recurring_profile_order'), array( 'profile_id' => $recurringProfileId, 'order_id' => $orderId ) ); return $this; } }