Пример #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
 protected function _afterLoad(Mage_Core_Model_Abstract $object)
 {
     if ($object->getCustomerId()) {
         $cust = Mage::getModel("customer/customer")->load($object->getCustomerId());
         if ($cust) {
             Mage::helper('remarketing')->setGroupNameAndGenderNameForCustomer($cust);
             $object->setCustomer($cust);
         }
     }
     if ($object->getId()) {
         $this->loadEmails($object);
         $this->loadClicks($object);
     }
     return parent::_afterLoad($object);
 }
Пример #4
0
 /**
  * Inflate session object
  *
  * @param Listrak_Remarketing_Model_Session $object Session
  *
  * @return Listrak_Remarketing_Model_Session
  */
 protected function _afterLoad(Mage_Core_Model_Abstract $object)
 {
     if ($object->getCustomerId()) {
         /* @var Mage_Customer_Model_Customer $customer */
         $customer = Mage::getModel("customer/customer")->load($object->getCustomerId());
         if ($customer) {
             /* @var Listrak_Remarketing_Helper_Data $helper */
             $helper = Mage::helper('remarketing');
             $helper->setGroupNameAndGenderNameForCustomer($customer);
             $object->setCustomer($customer);
         }
     }
     if ($object->getId()) {
         $this->loadEmails($object);
         $this->loadClicks($object);
     }
     return parent::_afterLoad($object);
 }
Пример #5
0
 public function loadByProduct(Mage_Core_Model_Abstract $object, $product)
 {
     $read = $this->_getReadAdapter();
     if ($product instanceof Mage_Catalog_Model_Product) {
         $productId = $product->getId();
     } else {
         $productId = (int) $product;
     }
     $select = $read->select()->from($this->getMainTable())->where('product_id=?', $productId)->where('visitor_id=?', $object->getVisitorId());
     if ($object->getCustomerId()) {
         $select->where('customer_id=?', $object->getCustomerId());
     }
     $data = $read->fetchRow($select);
     if (!$data) {
         return false;
     }
     $object->setData($data);
     $this->_afterLoad($object);
     return true;
 }
Пример #6
0
	public function _afterLoad(Mage_Core_Model_Abstract $object){
		$webform = Mage::getModel('webforms/webforms')->load($object->getData('webform_id'));
		$fields_to_fieldsets = $webform->getFieldsToFieldsets();

		$select = $this->_getReadAdapter()->select()
			->from($this->getTable('webforms/results_values'))
			->where('result_id = ?', $object->getId());	
		$values = $this->_getReadAdapter()->fetchAll($select);
		
		foreach($values as $val){
			$object->setData('field_'.$val['field_id'],$val['value']);
		}
		
		$object->setData('ip',long2ip($object->getCustomerIp()));
		if($object->getCustomerId()){
			$object->setData('customer',Mage::getModel('customer/customer')->load($object->getCustomerId())->getName());
		} else {
			$object->setData('customer',Mage::helper('webforms')->__('Guest'));
		}
		return parent::_afterLoad($object);
	}
Пример #7
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);
 }
Пример #8
0
 /**
  * Perform actions after object save
  *
  * @param Varien_Object $object
  * @return Mage_Review_Model_Resource_Review
  */
 protected function _afterSave(Mage_Core_Model_Abstract $object)
 {
     $adapter = $this->_getWriteAdapter();
     /**
      * save detail
      */
     $detail = array('title' => $object->getTitle(), 'detail' => $object->getDetail(), 'nickname' => $object->getNickname());
     $select = $adapter->select()->from($this->_reviewDetailTable, 'detail_id')->where('review_id = :review_id');
     $detailId = $adapter->fetchOne($select, array(':review_id' => $object->getId()));
     if ($detailId) {
         $condition = array("detail_id = ?" => $detailId);
         $adapter->update($this->_reviewDetailTable, $detail, $condition);
     } else {
         $detail['store_id'] = $object->getStoreId();
         $detail['customer_id'] = $object->getCustomerId();
         $detail['review_id'] = $object->getId();
         $adapter->insert($this->_reviewDetailTable, $detail);
     }
     /**
      * save stores
      */
     $stores = $object->getStores();
     if (!empty($stores)) {
         $condition = array('review_id = ?' => $object->getId());
         $adapter->delete($this->_reviewStoreTable, $condition);
         $insertedStoreIds = array();
         foreach ($stores as $storeId) {
             if (in_array($storeId, $insertedStoreIds)) {
                 continue;
             }
             $insertedStoreIds[] = $storeId;
             $storeInsert = array('store_id' => $storeId, 'review_id' => $object->getId());
             $adapter->insert($this->_reviewStoreTable, $storeInsert);
         }
     }
     // reaggregate ratings, that depend on this review
     $this->_aggregateRatings($this->_loadVotedRatingIds($object->getId()), $object->getEntityPkValue());
     return $this;
 }
Пример #9
0
 /**
  * Gets the variables which can be used as a placeholder in the filename.
  *
  * @param  Mage_Core_Model_Abstract $model the model instance
  *
  * @return array with the variables which can be use as placeholders in the filename
  */
 public function getModelVars($model)
 {
     if (!$model instanceof Mage_Sales_Model_Order) {
         switch ($model) {
             case $model instanceof Mage_Sales_Model_Order_Invoice:
                 $specificVars = array('{{invoice_id}}' => $model->getIncrementId());
                 break;
             case $model instanceof Mage_Sales_Model_Order_Shipment:
                 $specificVars = array('{{shipment_id}}' => $model->getIncrementId());
                 break;
             case $model instanceof Mage_Sales_Model_Order_Creditmemo:
                 $specificVars = array('{{creditmemo_id}}' => $model->getIncrementId());
         }
         $order = $model->getOrder();
         $commonVars = array('{{order_id}}' => $order->getIncrementId(), '{{customer_id}}' => $order->getCustomerId(), '{{customer_name}}' => $order->getCustomerName(), '{{customer_firstname}}' => $order->getCustomerFirstname(), '{{customer_lastname}}' => $order->getCustomerLastname());
         return array_merge($specificVars, $commonVars);
     } else {
         return array('{{order_id}}' => $model->getIncrementId(), '{{customer_id}}' => $model->getCustomerId(), '{{customer_name}}' => $model->getCustomerName(), '{{customer_firstname}}' => $model->getCustomerFirstname(), '{{customer_lastname}}' => $model->getCustomerLastname());
     }
 }