protected function _checkSaleAmount($params, $source) { $parts = explode(AW_Followupemail_Model_Source_Rule_Saleamount::CONDITION_SEPARATOR, $this->getSaleAmount(), 2); if (count($parts) < 2) { return true; } list($condition, $value) = $parts; if (!$condition || !$value) { return true; } if (isset($params[$source])) { $saleAmount = $params[$source]->getGrandTotal(); $currencyModel = Mage::getModel('directory/currency'); $_baseCurrency = $currencyModel->getConfigBaseCurrencies(); if ($_baseCurrency && is_array($_baseCurrency)) { $_baseCurrency = $_baseCurrency[0]; $_currencyTo = $params[$source]->getData('order_currency_code'); if (is_null($_currencyTo)) { $_currencyTo = $params[$source]->getData('store_currency_code'); } $saleAmount = Mage::helper('followupemail')->convertPrice($saleAmount, $_currencyTo, $_baseCurrency); } } else { return 'No source for sale amount condition'; } if ($saleAmount === false) { return 'Order currency convertation error'; } switch (array_search($condition, AW_Followupemail_Model_Source_Rule_Saleamount::getConditions())) { case AW_Followupemail_Model_Source_Rule_Saleamount::CONDITION_EQ: $result = $saleAmount == $value; break; case AW_Followupemail_Model_Source_Rule_Saleamount::CONDITION_GT: $result = $saleAmount > $value; break; case AW_Followupemail_Model_Source_Rule_Saleamount::CONDITION_EGT: $result = $saleAmount >= $value; break; case AW_Followupemail_Model_Source_Rule_Saleamount::CONDITION_LT: $result = $saleAmount < $value; break; case AW_Followupemail_Model_Source_Rule_Saleamount::CONDITION_ELT: $result = $saleAmount <= $value; break; case AW_Followupemail_Model_Source_Rule_Saleamount::CONDITION_NE: $result = $saleAmount != $value; break; default: return 'Unknown condition'; } return true === $result ? true : 'Sale amount is not ' . $condition . ' ' . $value . ' (' . $saleAmount . ')'; }
public function editAction() { if (Mage::helper('followupemail')->checkVersion('1.4')) { $this->_title('Follow Up Rules Manager'); $this->_title('Rule Edit'); } $session = Mage::getSingleton('adminhtml/session'); $ruleId = $this->getRequest()->getParam('id'); $data = Mage::getModel('followupemail/rule')->load($ruleId)->getData(); if (!empty($data) || $ruleId == 0) { $sessionData = Mage::getSingleton('adminhtml/session')->getFollowupemailData(true); if (is_array($sessionData)) { $data = array_merge($data, $sessionData); } $session->setFollowupemailData(false); if (isset($data['cancel_events']) && !is_array($data['cancel_events'])) { $data['cancel_events'] = explode(',', $data['cancel_events']); } else { $data['cancel_events'] = array(); } if (!$ruleId) { $data['store_ids'] = array(0); } if (!isset($data['customer_groups']) || !$data['customer_groups'] || !count(is_array($data['customer_groups']) ? $data['customer_groups'] : ($data['customer_groups'] = explode(',', $data['customer_groups']))) || in_array(AW_Followupemail_Model_Source_Customer_Group::CUSTOMER_GROUP_ALL, $data['customer_groups']) && count($data['customer_groups']) > 1) { $data['customer_groups'] = array(AW_Followupemail_Model_Source_Customer_Group::CUSTOMER_GROUP_ALL); } if (Mage::helper('followupemail')->canUseAN()) { if (!isset($data['anl_segments']) || !$data['anl_segments'] || !count(is_array($data['anl_segments']) ? $data['anl_segments'] : ($data['anl_segments'] = explode(',', $data['anl_segments']))) || in_array(AW_Followupemail_Model_Mysql4_Rule::ADVANCED_NEWSLETTER_SEGMENTS_ALL, $data['anl_segments']) && count($data['anl_segments']) > 1) { $data['anl_segments'] = array(AW_Followupemail_Model_Mysql4_Rule::ADVANCED_NEWSLETTER_SEGMENTS_ALL); } } elseif (!isset($data['anl_segments'])) { $data['anl_segments'] = false; } if (!isset($data['chain'])) { $data['chain'] = array(); } elseif (!is_array($data['chain'])) { $data['chain'] = @unserialize($data['chain']); } if (!isset($data['product_type_ids']) || !$data['product_type_ids']) { $data['product_type_ids'] = array('all'); } elseif (is_string($data['product_type_ids'])) { $data['product_type_ids'] = explode(',', $data['product_type_ids']); } if (!isset($data['sale_amount_condition']) && !isset($data['sale_amount_value']) && isset($data['sale_amount']) && $data['sale_amount'] && is_array($saleAmount = explode(AW_Followupemail_Model_Source_Rule_Saleamount::CONDITION_SEPARATOR, $data['sale_amount'], 2)) && count($saleAmount) > 1) { $data['sale_amount_condition'] = array_search($saleAmount[0], AW_Followupemail_Model_Source_Rule_Saleamount::getConditions()); if (!$data['sale_amount_condition']) { $data['sale_amount_condition'] = '0'; } $data['sale_amount_value'] = $saleAmount[1]; } else { $data['sale_amount_condition'] = '0'; $data['sale_amount_value'] = ''; } if (!isset($data['test_objects'])) { $data['test'] = array(); } elseif (!isset($data['test'])) { $data['test'] = unserialize($data['test_objects']); } Mage::register('followupemail_data', $data); $this->loadLayout(); $this->_setActiveMenu('followupemail/items'); $this->getLayout()->getBlock('head')->setCanLoadExtJs(true); $this->_addContent($this->getLayout()->createBlock('followupemail/adminhtml_rule_edit'))->_addLeft($this->getLayout()->createBlock('followupemail/adminhtml_rule_edit_tabs')); $this->renderLayout(); } else { Mage::getSingleton('adminhtml/session')->addError($this->__('The rule does not exist')); $this->_redirect('*/*/'); } }