Пример #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;
 }
 protected function _changeWebsite(Mage_Core_Model_Abstract $model)
 {
     if ($model->getOriginalWebsiteId() && $model->getWebsiteId() != $model->getOriginalWebsiteId()) {
         $write = $this->_getWriteAdapter();
         $groupId = $write->fetchOne($write->select()->from($this->getTable('core/website'), 'default_group_id')->where($write->quoteInto('website_id=?', $model->getOriginalWebsiteId())), 'default_group_id');
         if ($groupId == $model->getId()) {
             $write->update($this->getTable('core/website'), array('default_group_id' => 0), $write->quoteInto('website_id=?', $model->getOriginalWebsiteId()));
         }
     }
     return $this;
 }
Пример #4
0
 /**
  * Change store group website
  *
  * @param Mage_Core_Model_Abstract $model
  * @return Mage_Core_Model_Resource_Store_Group
  */
 protected function _changeWebsite(Mage_Core_Model_Abstract $model)
 {
     if ($model->getOriginalWebsiteId() && $model->getWebsiteId() != $model->getOriginalWebsiteId()) {
         $select = $this->_getWriteAdapter()->select()->from($this->getTable('core_website'), 'default_group_id')->where('website_id = :website_id');
         $groupId = $this->_getWriteAdapter()->fetchOne($select, array('website_id' => $model->getOriginalWebsiteId()));
         if ($groupId == $model->getId()) {
             $bind = array('default_group_id' => 0);
             $where = array('website_id = ?' => $model->getOriginalWebsiteId());
             $this->_getWriteAdapter()->update($this->getTable('core_website'), $bind, $where);
         }
     }
     return $this;
 }
Пример #5
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);
 }
Пример #6
0
 /**
  * Remove core configuration data after delete website
  *
  * @param Mage_Core_Model_Abstract $model
  * @return Mage_Core_Model_Resource_Website
  */
 protected function _afterDelete(Mage_Core_Model_Abstract $model)
 {
     $where = array('scope = ?' => 'websites', 'scope_id = ?' => $model->getWebsiteId());
     $this->_getWriteAdapter()->delete($this->getTable('core/config_data'), $where);
     return $this;
 }
Пример #7
0
 protected function _afterDelete(Mage_Core_Model_Abstract $model)
 {
     $this->_getWriteAdapter()->delete($this->getTable('core/config_data'), $this->_getWriteAdapter()->quoteInto("scope = 'websites' AND scope_id = ?", $model->getWebsiteId()));
     return $this;
 }