コード例 #1
0
 function getPercentCouponDiscount($code, $subscription_id)
 {
     global $JLMS_DB;
     $step3 = true;
     if (!$subscription_id) {
         return false;
     }
     $code = JString::strtoupper($code);
     $groups_id = JLMS_DISCOUNTS::getUserGroups();
     $query = "SELECT * FROM #__lms_discount_coupons \n\t\t\t\t\tWHERE enabled = 1 AND discount_type = 0 AND removed = 0\n\t\t\t\t\tAND\t( \n\t\t\t\t\t\t\t( start_date = '0000-00-00' AND end_date = '0000-00-00' ) OR\n\t\t\t\t\t\t\t( start_date < CURDATE() AND end_date = '0000-00-00' ) OR\n\t\t\t\t\t\t\t( start_date = '0000-00-00' AND end_date > CURDATE() ) OR\n\t\t\t\t\t\t\t( CURDATE() = start_date AND CURDATE() = end_date ) OR\n\t\t\t\t\t\t\t( CURDATE() BETWEEN start_date AND end_date ) \n\t\t\t\t\t\t)\n\t\t\t\t\tAND code = " . $JLMS_DB->quote($code) . " LIMIT 1";
     $JLMS_DB->setQuery($query);
     $coupon = $JLMS_DB->loadObject();
     if (is_object($coupon) && isset($coupon->code)) {
         if ($coupon->coupon_type == 1) {
             $query = "SELECT count(*) FROM lms_disc_c_usage_stats WHERE coupon_id = " . $coupon->id;
             $JLMS_DB->setQuery($query);
             if ($JLMS_DB->loadResult()) {
                 return 0;
             }
         }
         $step1 = true;
         $step2 = true;
         $step3 = true;
         if ($coupon->subscriptions && !in_array($subscription_id, explode(',', $coupon->subscriptions))) {
             $step1 = false;
         }
         $step2 = $coupon->usergroups ? false : true;
         for ($j = 0; $j < count($groups_id); $j++) {
             $group_id = $groups_id[$j];
             if ($coupon->usergroups && in_array($group_id, explode(',', $coupon->usergroups))) {
                 $step2 = true;
             }
         }
         if ($coupon->users && !in_array($my->id, explode(',', $coupon->users))) {
             $step3 = false;
         }
         if ($step1 && $step2 && $step3) {
             return $coupon->value;
         } else {
             return 0;
         }
     }
     return 0;
 }