当前位置: 首页>>代码示例>>PHP>>正文


PHP Mage_SalesRule_Model_Rule::getUsesPerCoupon方法代码示例

本文整理汇总了PHP中Mage_SalesRule_Model_Rule::getUsesPerCoupon方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_SalesRule_Model_Rule::getUsesPerCoupon方法的具体用法?PHP Mage_SalesRule_Model_Rule::getUsesPerCoupon怎么用?PHP Mage_SalesRule_Model_Rule::getUsesPerCoupon使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Mage_SalesRule_Model_Rule的用法示例。


在下文中一共展示了Mage_SalesRule_Model_Rule::getUsesPerCoupon方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: 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;
 }
开发者ID:arslbbt,项目名称:mangentovies,代码行数:55,代码来源:Rule.php

示例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;
 }
开发者ID:dotmailer,项目名称:dotmailer-magento-extension,代码行数:34,代码来源:Coupon.php

示例3: 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;
 }
开发者ID:nemphys,项目名称:magento2,代码行数:28,代码来源:Coupon.php

示例4: _canProcessRule

 /**
  * Check if rule can be applied for specific address/quote/customer
  *
  * @param   Mage_SalesRule_Model_Rule $rule
  * @param   Mage_Sales_Model_Quote_Address $address
  * @return  bool
  */
 protected function _canProcessRule($rule, $address)
 {
     if (!$rule->hasIsValid()) {
         /**
          * too many times used in general
          */
         if ($rule->getUsesPerCoupon() && $rule->getTimesUsed() >= $rule->getUsesPerCoupon()) {
             $rule->setIsValid(false);
             return false;
         }
         /**
          * too many times used for this customer
          */
         $ruleId = $rule->getId();
         if ($ruleId && $rule->getUsesPerCustomer()) {
             $customerId = $address->getQuote()->getCustomerId();
             $ruleCustomer = Mage::getModel('salesrule/rule_customer');
             $ruleCustomer->loadByCustomerRule($customerId, $ruleId);
             if ($ruleCustomer->getId()) {
                 if ($ruleCustomer->getTimesUsed() >= $rule->getUsesPerCustomer()) {
                     $rule->setIsValid(false);
                     return false;
                 }
             }
         }
         $rule->afterLoad();
         /**
          * quote does not meet rule's conditions
          */
         if (!$rule->validate($address)) {
             $rule->setIsValid(false);
             return false;
         }
         /**
          * passed all validations, remember to be valid
          */
         $rule->setIsValid(true);
     }
     return $rule->getIsValid();
 }
开发者ID:hunnybohara,项目名称:magento-chinese-localization,代码行数:47,代码来源:Validator.php


注:本文中的Mage_SalesRule_Model_Rule::getUsesPerCoupon方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。