本文整理汇总了PHP中Mage_SalesRule_Model_Rule::getId方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_SalesRule_Model_Rule::getId方法的具体用法?PHP Mage_SalesRule_Model_Rule::getId怎么用?PHP Mage_SalesRule_Model_Rule::getId使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_SalesRule_Model_Rule
的用法示例。
在下文中一共展示了Mage_SalesRule_Model_Rule::getId方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _beforeSave
/**
* Processing object before save data
*
* @return Mage_Core_Model_Abstract
*/
protected function _beforeSave()
{
if (!$this->getRuleId() && $this->_rule instanceof Mage_SalesRule_Model_Rule) {
$this->setRuleId($this->_rule->getId());
}
return parent::_beforeSave();
}
示例2: updateSpecificCoupons
/**
* Update auto generated Specific Coupon if it's rule changed
*
* @param Mage_SalesRule_Model_Rule $rule
* @return Mage_SalesRule_Model_Resource_Coupon
*/
public function updateSpecificCoupons(Mage_SalesRule_Model_Rule $rule)
{
if (!$rule || !$rule->getId() || !$rule->hasDataChanges()) {
return $this;
}
$updateArray = array();
if ($rule->dataHasChangedFor('uses_per_coupon')) {
$updateArray['usage_limit'] = $rule->getUsesPerCoupon();
}
if ($rule->dataHasChangedFor('uses_per_customer')) {
$updateArray['usage_per_customer'] = $rule->getUsesPerCustomer();
}
$ruleNewDate = new Zend_Date($rule->getToDate());
$ruleOldDate = new Zend_Date($rule->getOrigData('to_date'));
if ($ruleNewDate->compare($ruleOldDate)) {
$updateArray['expiration_date'] = $rule->getToDate();
}
if (!empty($updateArray)) {
$this->_getWriteAdapter()->update($this->getTable('salesrule/coupon'), $updateArray, array('rule_id = ?' => $rule->getId(), 'generated_by_dotmailer is null'));
}
//update coupons added by dotmailer. not to change expiration date
$dotmailerUpdateArray = $updateArray;
unset($dotmailerUpdateArray['expiration_date']);
if (!empty($dotmailerUpdateArray)) {
$this->_getWriteAdapter()->update($this->getTable('salesrule/coupon'), $dotmailerUpdateArray, array('rule_id = ?' => $rule->getId(), 'generated_by_dotmailer is 1'));
}
return $this;
}
示例3: addRuleToFilter
/**
* Add rule to filter
*
* @param Mage_SalesRule_Model_Rule|int $rule
*
* @return Mage_SalesRule_Model_Resource_Coupon_Collection
*/
public function addRuleToFilter($rule)
{
if ($rule instanceof Mage_SalesRule_Model_Rule) {
$ruleId = $rule->getId();
} else {
$ruleId = (int) $rule;
}
$this->addFieldToFilter('rule_id', $ruleId);
return $this;
}
示例4: updateRuleProductData
public function updateRuleProductData(Mage_SalesRule_Model_Rule $rule)
{
// foreach ($rule->getActions()->getActions() as $action) {
// break;
// }
$ruleId = $rule->getId();
$read = $this->_getReadAdapter();
$write = $this->_getWriteAdapter();
$write->delete($this->getTable('salesrule/rule_product'), $write->quoteInto('rule_id=?', $ruleId));
if (!$rule->getIsActive()) {
return $this;
}
if ($rule->getUsesPerCoupon() > 0) {
$usedPerCoupon = $read->fetchOne('select count(*) from ' . $this->getTable('salesrule/rule_customer') . ' where rule_id=?', $ruleId);
if ($usedPerCoupon >= $rule->getUsesPerCoupon()) {
return $this;
}
}
$productIds = explode(',', $rule->getProductIds());
$websiteIds = explode(',', $rule->getWebsiteIds());
$customerGroupIds = explode(',', $rule->getCustomerGroupIds());
$fromTime = strtotime($rule->getFromDate());
$toTime = strtotime($rule->getToDate());
if ($toTime) {
$toTime += 86400;
}
$couponCode = $rule->getCouponCode() ? "'" . $rule->getCouponCode() . "'" : 'NULL';
$sortOrder = (int) $rule->getSortOrder();
$rows = array();
$header = 'replace into ' . $this->getTable('salesrule/rule_product') . ' (rule_id, from_time, to_time, website_id, customer_group_id, product_id, coupon_code, sort_order) values ';
try {
$write->beginTransaction();
foreach ($productIds as $productId) {
foreach ($websiteIds as $websiteId) {
foreach ($customerGroupIds as $customerGroupId) {
$rows[] = "('{$ruleId}', '{$fromTime}', '{$toTime}', '{$websiteId}', '{$customerGroupId}', '{$productId}', {$couponCode}, '{$sortOrder}')";
if (sizeof($rows) == 100) {
$sql = $header . join(',', $rows);
$write->query($sql);
$rows = array();
}
}
}
}
if (!empty($rows)) {
$sql = $header . join(',', $rows);
$write->query($sql);
}
$write->commit();
} catch (Exception $e) {
$write->rollback();
throw $e;
}
return $this;
}
示例5: _addDiscountDescription
/**
* Add rule discount description label to address object
*
* @param Mage_Sales_Model_Quote_Address $address
* @param Mage_SalesRule_Model_Rule $rule
* @return Mage_SalesRule_Model_Validator
*/
protected function _addDiscountDescription($address, $rule)
{
$description = $address->getDiscountDescriptionArray();
$ruleLabel = $rule->getStoreLabel($address->getQuote()->getStore());
$label = '';
if ($ruleLabel) {
$label = $ruleLabel;
} else {
if (strlen($address->getCouponCode())) {
$label = $address->getCouponCode();
}
}
if (strlen($label)) {
$description[$rule->getId()] = $label;
}
$address->setDiscountDescriptionArray($description);
return $this;
}
示例6: setActualProductAttributes
/**
* Save product attributes currently used in conditions and actions of rule
*
* @param Mage_SalesRule_Model_Rule $rule
* @param mixed $attributes
* @return Mage_SalesRule_Model_Resource_Rule
*/
public function setActualProductAttributes($rule, $attributes)
{
$write = $this->_getWriteAdapter();
$write->delete($this->getTable('salesrule_product_attribute'), array('rule_id=?' => $rule->getId()));
//Getting attribute IDs for attribute codes
$attributeIds = array();
$select = $this->_getReadAdapter()->select()->from(array('a' => $this->getTable('eav_attribute')), array('a.attribute_id'))->where('a.attribute_code IN (?)', array($attributes));
$attributesFound = $this->_getReadAdapter()->fetchAll($select);
if ($attributesFound) {
foreach ($attributesFound as $attribute) {
$attributeIds[] = $attribute['attribute_id'];
}
$data = array();
foreach ($rule->getCustomerGroupIds() as $customerGroupId) {
foreach ($rule->getWebsiteIds() as $websiteId) {
foreach ($attributeIds as $attribute) {
$data[] = array('rule_id' => $rule->getId(), 'website_id' => $websiteId, 'customer_group_id' => $customerGroupId, 'attribute_id' => $attribute);
}
}
}
$write->insertMultiple($this->getTable('salesrule_product_attribute'), $data);
}
return $this;
}
示例7: isValidRuleUsageForAddress
/**
* Validate the rule usage for given address
* @param Mage_SalesRule_Model_Rule
* @param Mage_Sales_Model_Quote_Address
* @return bool
*/
protected function isValidRuleUsageForAddress(Mage_SalesRule_Model_Rule $rule, Mage_Sales_Model_Quote_Address $address)
{
$ruleId = $rule->getId();
$customerId = $address->getQuote()->getCustomerId();
$ruleCustomer = $this->getRuleCustomerModel();
$ruleCustomer->loadByCustomerRule($customerId, $ruleId);
if ($ruleCustomer->getId() && $ruleCustomer->getTimesUsed() >= $rule->getUsesPerCustomer()) {
return false;
}
return true;
}
示例8: updateSpecificCoupons
/**
* Update auto generated Specific Coupon if it's rule changed
*
* @param Mage_SalesRule_Model_Rule $rule
* @return Mage_SalesRule_Model_Resource_Coupon
*/
public function updateSpecificCoupons(Mage_SalesRule_Model_Rule $rule)
{
if (!$rule || !$rule->getId() || !$rule->hasDataChanges()) {
return $this;
}
$updateArray = array();
if ($rule->dataHasChangedFor('uses_per_coupon')) {
$updateArray['usage_limit'] = $rule->getUsesPerCoupon();
}
if ($rule->dataHasChangedFor('uses_per_customer')) {
$updateArray['usage_per_customer'] = $rule->getUsesPerCustomer();
}
$ruleNewDate = new Zend_Date($rule->getToDate());
$ruleOldDate = new Zend_Date($rule->getOrigData('to_date'));
if ($ruleNewDate->compare($ruleOldDate)) {
$updateArray['expiration_date'] = $rule->getToDate();
}
if (!empty($updateArray)) {
$this->_getWriteAdapter()->update($this->getTable('salesrule_coupon'), $updateArray, array('rule_id = ?' => $rule->getId()));
}
return $this;
}
示例9: getCustomerRuleUseCount
/**
* Look up how many times a rule was used by a customer
*
* @param int $customerId
* @param Mage_SalesRule_Model_Rule $rule
*
* @return int
*/
public function getCustomerRuleUseCount($customerId, Mage_SalesRule_Model_Rule $rule)
{
/** @var Mage_SalesRule_Model_Rule_Customer $ruleCustomer */
$ruleCustomer = Mage::getModel('salesrule/rule_customer');
$ruleCustomer->loadByCustomerRule($customerId, $rule->getId());
return intval($ruleCustomer->getTimesUsed());
}
示例10: addRuleDescription
/**
* Add the rule label to the address for later usage
*
* @param Mage_Sales_Model_Quote_Address $address
* @param Mage_SalesRule_Model_Rule $rule
*
* @return $this
*/
protected function addRuleDescription(Mage_Sales_Model_Quote_Address $address, Mage_SalesRule_Model_Rule $rule)
{
$descriptions = $address->getDiscountDescriptionArray();
$label = trim($rule->getStoreLabel($address->getQuote()->getStore()));
if (empty($label) && strlen($address->getCouponCode())) {
$label = $address->getCouponCode();
}
if (!empty($label)) {
$descriptions[$rule->getId()] = $label;
}
$address->setDiscountDescriptionArray($descriptions);
return $this;
}
示例11: _getConditions
/**
* Unserialize the conditions from the rule.
*
* @param Mage_SalesRule_Model_Rule $rule
* @return Array of rule conditions
*/
protected function _getConditions($rule)
{
if (count($this->_conditions) == 0) {
if ($rule->getId()) {
$data = unserialize($rule->getData('conditions_serialized'));
if (isset($data['conditions'])) {
$this->_conditions = $data['conditions'];
}
}
}
return $this->_conditions;
}
示例12: wrap
/**
* Loads in a salesrule and returns a points salesrule
*
* @param Mage_SalesRule_Model_Rule $salesrule
* @return TBT_Rewards_Model_Salesrule_Rule
*/
public static function wrap(Mage_SalesRule_Model_Rule $salesrule)
{
$pointsrule = Mage::getModel('rewards/salesrule_rule')->setData($salesrule->getData())->setId($salesrule->getId());
return $pointsrule;
}