Пример #1
0
 protected function _beforeSave(Mage_Core_Model_Abstract $object)
 {
     $object->validate();
     $object->setUpdatedAt(Mage::getSingleton('core/date')->gmtDate());
     if ($object->getAttributes() && is_array($object->getAttributes())) {
         $object->setAttributesSerialized(serialize($object->getAttributes()));
     }
     if ($object->getProperties() && is_array($object->getProperties())) {
         $object->setPropertiesSerialized(serialize($object->getProperties()));
     }
     if ($object->getData('attributes_serialized') != $object->getOrigData('attributes_serialized')) {
         $object->setStatus(2);
     }
     if ($object->getData('properties_serialized') != $object->getOrigData('properties_serialized')) {
         $object->setStatus(2);
     }
     if (!$object->getId() && !$object->getIndexInstance()->isAllowMultiInstance()) {
         //check if this index already exists
         $collection = Mage::getModel('searchindex/index')->getCollection()->addFieldToFilter('index_code', $object->getIndexCode());
         if ($collection->count() > 0) {
             Mage::throwException('The index for current content type already exists');
         }
     }
     return parent::_beforeSave($object);
 }
Пример #2
0
 protected function _beforeSave(Mage_Core_Model_Abstract $object)
 {
     $currentTimestamp = Mage::helper('M2ePro')->getCurrentGmtDate();
     if (is_null($object->getOrigData())) {
         $object->setData('create_date', $currentTimestamp);
         $object->setData('synch_date', $currentTimestamp);
     }
     $object->setData('update_date', $currentTimestamp);
     if ($object->getOrigData('synch_date') != $object->getData('synch_date') && $object->getData('synch_date') == $object->getOrigData('update_date')) {
         $object->setData('synch_date', $object->getData('update_date'));
     }
     return $this;
 }
Пример #3
0
 protected function _beforeSave(Mage_Core_Model_Abstract $object)
 {
     if (is_null($object->getOrigData())) {
         $object->setData('create_date', Mage::helper('M2ePro')->getCurrentGmtDate());
     }
     return $this;
 }
Пример #4
0
 protected function _afterSave(Mage_Core_Model_Abstract $object)
 {
     if ($object->getOrigData('magento_order_id') != $object->getData('magento_order_id') && !is_null($object->getData('magento_order_id'))) {
         $this->_getWriteAdapter()->update(Mage::getResourceModel('M2ePro/Order_Item')->getMainTable(), array('state' => Ess_M2ePro_Model_Order_Item::STATE_NORMAL), array('order_id = ?' => $object->getId()));
     }
     return parent::_afterSave($object);
 }
Пример #5
0
 protected function _beforeSave(Mage_Core_Model_Abstract $object)
 {
     $origData = $object->getOrigData();
     if (empty($origData)) {
         $object->setData('create_date', Mage::helper('M2ePro')->getCurrentGmtDate());
     }
     $object->setData('update_date', Mage::helper('M2ePro')->getCurrentGmtDate());
     return $this;
 }
Пример #6
0
 /**
  * Clear useless attribute values
  *
  * @param  Mage_Core_Model_Abstract $object
  * @return Mage_Catalog_Model_Resource_Attribute
  */
 protected function _clearUselessAttributeValues(Mage_Core_Model_Abstract $object)
 {
     $origData = $object->getOrigData();
     if ($object->isScopeGlobal() && isset($origData['is_global']) && Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL != $origData['is_global']) {
         $attributeStoreIds = array_keys(Mage::app()->getStores());
         if (!empty($attributeStoreIds)) {
             $delCondition = array('entity_type_id=?' => $object->getEntityTypeId(), 'attribute_id = ?' => $object->getId(), 'store_id IN(?)' => $attributeStoreIds);
             $this->_getWriteAdapter()->delete($object->getBackendTable(), $delCondition);
         }
     }
     return $this;
 }
 protected function _beforeSave(Mage_Core_Model_Abstract $object)
 {
     $origData = $object->getOrigData();
     if (empty($origData)) {
         $object->setData('create_date', Mage::helper('M2ePro')->getCurrentGmtDate());
     }
     $object->setData('update_date', Mage::helper('M2ePro')->getCurrentGmtDate());
     $result = parent::_beforeSave($object);
     // fix for Varien_Db_Adapter_Pdo_Mysql::prepareColumnValue
     // an empty string cannot be saved -> NULL is saved instead
     // for Magento version > 1.6.x.x
     foreach ($object->getData() as $key => $value) {
         $value === '' && $object->setData($key, new Zend_Db_Expr("''"));
     }
     return $result;
 }
Пример #8
0
 protected function _beforeSave(Mage_Core_Model_Abstract $object)
 {
     if (is_array($object->getStoreIds())) {
         $object->setStoreIds(implode(',', $object->getStoreIds()));
     }
     $object->setCustomerGroups(implode(',', (array) $object->getCustomerGroups()));
     if (!$object->getId()) {
         $object->setDateAdded(Mage::getSingleton('core/date')->gmtDate());
     }
     $object->setDateModified(Mage::getSingleton('core/date')->gmtDate());
     $origData = $object->getOrigData();
     if (!isset($origData)) {
         Mage::getResourceSingleton('downloads/relation')->deleteFile($object->getId());
     }
     return parent::_beforeSave($object);
 }
 /**
  * Uploads single file and set the relative file path in the model
  *
  * @param Mage_Core_Model_Abstract $object
  * @param Jarlssen_UploaderComponent_Model_Config $config
  *
  * @throws Exception
  */
 public function processFile(Mage_Core_Model_Abstract $object, Jarlssen_UploaderComponent_Model_Config $config)
 {
     $inputName = $config->getInputName();
     $uploadPath = $config->getAbsoluteUploadPath();
     try {
         if ($result = $this->_upload($config, $uploadPath, $_FILES[$inputName]['name'])) {
             $fileName = $result['file'];
             $relativeFilePath = $config->getRelativeUploadPath() . DS . $fileName;
             $object->setData($inputName, $relativeFilePath);
         }
     } catch (Exception $e) {
         $object->setData($inputName, $object->getOrigData($inputName));
         Mage::logException($e);
         throw new Exception($e->getMessage(), $e->getCode(), $e);
     }
 }
Пример #10
0
 /**
  * Check that model data fields that can be saved
  * has really changed comparing with origData
  *
  * @param Mage_Core_Model_Abstract $object
  * @return boolean
  */
 public function hasDataChanged($object)
 {
     if (!$object->getOrigData()) {
         return true;
     }
     $fields = $this->_getWriteAdapter()->describeTable($this->getMainTable());
     foreach (array_keys($fields) as $field) {
         if ($object->getOrigData($field) != $object->getData($field)) {
             return true;
         }
     }
     return false;
 }
 /**
  * Retrieve the original content of the saved model
  *
  * @return array Data
  */
 public function getOrigContent()
 {
     $data = $this->_savedModel->getOrigData();
     return $this->_filterObligatoryFields($data);
 }
Пример #12
0
 /**
  * Check is model empty or not
  *
  * @param Mage_Core_Model_Abstract $model
  */
 protected function _assertEmpty($model)
 {
     $this->assertEquals(array(), $model->getData());
     $this->assertEquals(null, $model->getOrigData());
     $this->assertEquals(array(), $model->getCustomOptions());
     // impossible to test $_optionInstance
     $this->assertEquals(array(), $model->getOptions());
     $this->assertFalse($model->canAffectOptions());
     // impossible to test $_errors
 }
Пример #13
0
 /**
  * @param Mage_Core_Model_Abstract $model
  *
  * @return bool
  */
 protected function _isJustCreated(Mage_Core_Model_Abstract $model)
 {
     $oldId = (int) $model->getOrigData('entity_id');
     $currId = (int) $model->getId();
     /**
      * If Old ID and Current ID is equal then this object is not new so we can't proceed with the request.
      */
     if ($oldId || $oldId === $currId) {
         return false;
     }
     return true;
 }
Пример #14
0
 /**
  * Uploads a file and updates the corresponding model with new file location.
  *
  * @param   Mage_Core_Model_Abstract $model
  * @param   Ash_Uploads_Model_Config_Field $field
  * @param   string $filename
  * @return  void
  * @throws  Exception
  */
 public function processFile(Mage_Core_Model_Abstract $model, Ash_Uploads_Model_Config_Field $field, $filename)
 {
     /*
      * Upload and save the file. Then populate the model with the new
      * file's path for later retrieval.
      */
     try {
         $results = $this->_uploadFile($field, $filename);
         if (!empty($results)) {
             $uploadedFile = $field->getRelativeUploadPath() . DS . $results['file'];
             $model->setData($field->getName(), $uploadedFile);
         }
     } catch (Exception $e) {
         // reset to original data if failure
         $model->setData($field->getName(), $model->getOrigData($field->getName()));
         Mage::logException($e);
         throw new Exception('Failed to upload file: ' . $filename);
     }
 }
 /**
  * Check whether specified attribute has been changed for given entity
  *
  * @param Mage_Core_Model_Abstract $entity
  * @param string|array $key
  * @return bool
  */
 public function hasDataChangedFor(Mage_Core_Model_Abstract $entity, $key)
 {
     if (is_array($key)) {
         foreach ($key as $code) {
             if ($entity->getOrigData($code) !== $entity->getData($code)) {
                 return true;
             }
         }
         return false;
     }
     return $entity->getOrigData($key) !== $entity->getData($key);
 }