Пример #1
0
 protected function _getAlertRow(Mage_Core_Model_Abstract $object)
 {
     if ($object->getCustomerId() && $object->getProductId() && $object->getWebsiteId()) {
         $sql = $this->_getWriteAdapter()->select()->from($this->getMainTable())->where('customer_id=?', $object->getCustomerId())->where('product_id=?', $object->getProductId())->where('website_id=?', $object->getWebsiteId());
         return $this->_getWriteAdapter()->fetchRow($sql);
     }
     return false;
 }
Пример #2
0
 /**
  * Retrieve alert row by object parameters
  *
  * @param Mage_Core_Model_Abstract $object
  * @return array|bool
  */
 protected function _getAlertRow(Mage_Core_Model_Abstract $object)
 {
     $adapter = $this->_getReadAdapter();
     if ($object->getCustomerId() && $object->getProductId() && $object->getWebsiteId()) {
         $select = $adapter->select()->from($this->getMainTable())->where('customer_id = :customer_id')->where('product_id  = :product_id')->where('website_id  = :website_id');
         $bind = array(':customer_id' => $object->getCustomerId(), ':product_id' => $object->getProductId(), ':website_id' => $object->getWebsiteId());
         return $adapter->fetchRow($select, $bind);
     }
     return false;
 }
Пример #3
0
 /**
  * Before save action
  *
  * @param Mage_Core_Model_Abstract $object
  * @return Mage_Core_Model_Resource_Db_Abstract
  */
 protected function _beforeSave(Mage_Core_Model_Abstract $object)
 {
     if (is_null($object->getId()) && $object->getCustomerId() && $object->getProductId() && $object->getWebsiteId()) {
         if ($row = $this->_getAlertRow($object)) {
             $object->addData($row);
             $object->setStatus(0);
         }
     }
     if (is_null($object->getAddDate())) {
         $object->setAddDate(Mage::getModel('core/date')->gmtDate());
         $object->setStatus(0);
     }
     return parent::_beforeSave($object);
 }
Пример #4
0
 /**
  * Assign page to store views
  *
  * @param Mage_Core_Model_Abstract $object
  * @return Mage_Cms_Model_Resource_Page
  */
 protected function _afterSave(Mage_Core_Model_Abstract $object)
 {
     if ($object->hasProductId()) {
         $oldProducts = $this->getProductIds($object->getId());
         $newProducts = (array) $object->getProductId();
         $table = $this->getTable('cmsproducts/cms_page_product');
         $insert = array_diff($newProducts, $oldProducts);
         $delete = array_diff($oldProducts, $newProducts);
         if ($delete) {
             $where = array('page_id = ?' => (int) $object->getId(), 'product_id IN (?)' => $delete);
             $this->_getWriteAdapter()->delete($table, $where);
         }
         if ($insert) {
             $data = array();
             foreach ($insert as $productId) {
                 $data[] = array('page_id' => (int) $object->getId(), 'product_id' => (int) $productId);
             }
             $this->_getWriteAdapter()->insertMultiple($table, $data);
         }
     }
     return parent::_afterSave($object);
 }
 /**
  * Get current and parent product SKU from the quote item.
  *
  * @param  Mage_Core_Model_Abstract
  * @return array
  */
 protected function getAllParentSkuFromItem(Mage_Core_Model_Abstract $item)
 {
     $skus = [$item->getSku()];
     /** @var Mage_Sales_Model_Quote_Item */
     $parentItem = $item->getParentItem();
     if ($parentItem) {
         if ($item->getProductId() !== $parentItem->getProductId()) {
             $skus[] = $parentItem->getSku();
         }
     }
     return $skus;
 }