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); }
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; }
protected function _beforeSave(Mage_Core_Model_Abstract $object) { if (is_null($object->getOrigData())) { $object->setData('create_date', Mage::helper('M2ePro')->getCurrentGmtDate()); } return $this; }
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); }
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; }
/** * 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; }
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); } }
/** * 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); }
/** * 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 }
/** * @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; }
/** * 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); }