Beispiel #1
0
 /**
  * Initialization coupon manager.
  *
  * @param int $mode				Discount manager mode.
  * @param array $params			Initial params (userId, orderId).
  * @param bool $clearStorage	Clear coupon session storage.
  * @return void
  */
 public static function init($mode = self::MODE_CLIENT, $params = array(), $clearStorage = false)
 {
     self::$couponTypes = Internals\DiscountCouponTable::getCouponTypes(true);
     self::clearErrors();
     self::initUseDiscount();
     self::initUseMode($mode, $params);
     unset($params, $mode);
     if (!self::isSuccess()) {
         return;
     }
     if (self::$useMode != self::MODE_SYSTEM) {
         self::clear($clearStorage);
         $couponsList = array();
         switch (self::$useMode) {
             case self::MODE_CLIENT:
                 if (!empty($_SESSION[self::STORAGE_CLIENT_COUPONS]) && is_array($_SESSION[self::STORAGE_CLIENT_COUPONS])) {
                     $couponsList = $_SESSION[self::STORAGE_CLIENT_COUPONS];
                 }
                 break;
             case self::MODE_MANAGER:
             case self::MODE_ORDER:
                 if (!empty($_SESSION[self::STORAGE_MANAGER_COUPONS]) && !empty($_SESSION[self::STORAGE_MANAGER_COUPONS][self::$userId]) && is_array($_SESSION[self::STORAGE_MANAGER_COUPONS][self::$userId])) {
                     $couponsList = $_SESSION[self::STORAGE_MANAGER_COUPONS][self::$userId];
                 }
                 break;
         }
         if (!empty($couponsList)) {
             foreach ($couponsList as &$oneCoupon) {
                 $couponData = self::getData($oneCoupon);
                 if ($couponData === false) {
                     continue;
                 }
                 if (!isset(self::$coupons[$couponData['COUPON']])) {
                     $couponData['SORT'] = self::$couponIndex;
                     self::createApplyFields($couponData);
                     self::$coupons[$couponData['COUPON']] = $couponData;
                     self::$couponIndex++;
                 }
             }
             unset($couponData, $oneCoupon);
         }
         unset($couponsList);
         if (self::$useMode == self::MODE_ORDER) {
             self::load();
         }
     }
     self::$init = true;
 }
Beispiel #2
0
 /**
  * Unconditional reinitialization coupon manager.
  *
  * @param int $mode				Discount manager mode.
  * @param array $params			Initial params (userId, orderId).
  * @param bool $clearStorage	Clear coupon session storage.
  * @return void
  */
 public static function reInit($mode = self::MODE_CLIENT, $params = array(), $clearStorage = false)
 {
     self::$init = false;
     self::init($mode, $params, $clearStorage);
 }