/** * Load coupons for existing order. * * @return void */ public static function load() { if (self::$useMode != self::MODE_ORDER) { return; } self::$checkActivity = false; $couponsList = array(); $couponIterator = Internals\OrderCouponsTable::getList(array('select' => array('*', 'MODULE' => 'ORDER_DISCOUNT.MODULE_ID', 'DISCOUNT_ID' => 'ORDER_DISCOUNT.DISCOUNT_ID', 'DISCOUNT_NAME' => 'ORDER_DISCOUNT.NAME'), 'filter' => array('=ORDER_ID' => self::$orderId), 'order' => array('ID' => 'ASC'))); while ($coupon = $couponIterator->fetch()) { $couponData = $coupon['DATA']; $couponData['COUPON'] = $coupon['COUPON']; $couponData['STATUS'] = self::STATUS_ENTERED; $couponData['CHECK_CODE'] = self::COUPON_CHECK_OK; $couponData['MODULE'] = $coupon['MODULE']; $couponData['ID'] = $coupon['COUPON_ID']; $couponData['DISCOUNT_ID'] = $coupon['DISCOUNT_ID']; $couponData['DISCOUNT_NAME'] = (string) $coupon['DISCOUNT_NAME']; $couponData['DISCOUNT_ACTIVE'] = 'Y'; $couponData['TYPE'] = $coupon['TYPE']; $couponData['ACTIVE'] = 'Y'; $couponData['SAVED'] = 'Y'; foreach (self::$timeFields as $fieldName) { if (isset($couponData[$fieldName])) { $couponData[$fieldName] = Main\Type\DateTime::createFromTimestamp($couponData[$fieldName]); } } unset($fieldName); if (empty($couponData['USER_INFO']) && $couponData['MODE'] == self::COUPON_MODE_FULL) { $couponData['USER_INFO'] = array('USER_ID' => 0, 'MAX_USE' => 0, 'USE_COUNT' => 0, 'ACTIVE_FROM' => null, 'ACTIVE_TO' => null); } if (!empty($couponData['USER_INFO'])) { foreach (self::$timeFields as $fieldName) { if (isset($couponData['USER_INFO'][$fieldName])) { $couponData['USER_INFO'][$fieldName] = Main\Type\DateTime::createFromTimestamp($couponData['USER_INFO'][$fieldName]); } } unset($fieldName); foreach ($couponData['USER_INFO'] as $fieldName => $fieldValue) { $couponData[$fieldName] = $fieldValue; } } $couponsList[$couponData['COUPON']] = $couponData; } unset($coupon, $couponIterator); if (!empty($couponsList)) { self::setCoupons($couponsList, false); } self::$checkActivity = true; }
/** * Load coupons for existing order. * * @return void */ public static function load() { if (self::$useMode != self::MODE_ORDER) { return; } self::$checkActivity = false; self::$checkActivity = true; self::saveToStorage(); }