Example #1
0
 /**
  * update students subscription status in the passed instance to
  * either SUBSCRIBED or TERMINATED as appropriate, checking if
  * $duration_subscription + student subscription date is in the past or not
  * 
  * @param number $instance_id
  * @param number $duration_subscription
  * 
  * @author giorgio 02/apr/2015
  */
 private function _update_students_subscription_after_course_instance_set($instance_id, $duration_subscription)
 {
     require_once ROOT_DIR . '/switcher/include/Subscription.inc.php';
     $subscriptions = Subscription::findSubscriptionsToClassRoom($instance_id);
     if (!AMA_DB::isError($subscriptions) && is_array($subscriptions) && count($subscriptions) > 0) {
         foreach ($subscriptions as $subscription) {
             $updateSubscription = false;
             $subscritionEndDate = $this->add_number_of_days($duration_subscription, intval($subscription->getSubscriptionDate()));
             if ($subscription->getSubscriptionStatus() == ADA_STATUS_SUBSCRIBED && $subscritionEndDate <= time()) {
                 $subscription->setSubscriptionStatus(ADA_STATUS_TERMINATED);
                 $updateSubscription = true;
             } else {
                 if ($subscription->getSubscriptionStatus() == ADA_STATUS_TERMINATED && $subscritionEndDate > time()) {
                     $subscription->setSubscriptionStatus(ADA_STATUS_SUBSCRIBED);
                     $updateSubscription = true;
                 }
             }
             if ($updateSubscription) {
                 $subscription->setStartStudentLevel(null);
                 // null means no level update
                 subscription::updateSubscription($subscription);
             }
         }
     }
 }