Ejemplo n.º 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);
             }
         }
     }
 }
Ejemplo n.º 2
0
/*
 * 1. ottieni gli studenti iscritti a questa istanza
 * 2. ottieni gli studenti preiscritti a questa istanza
 */
if (!$courseObj instanceof Course || !$courseObj->isFull()) {
    $data = new CText(translateFN('Corso non trovato'));
    $data = $data->getHtml();
} else {
    if (!$courseInstanceObj instanceof Course_instance || !$courseInstanceObj->isFull()) {
        $data = new CText(translateFN('Istanza corso non trovata'));
        $data = $data->getHtml();
    } else {
        $courseId = $courseObj->getId();
        $instanceId = $courseInstanceObj->getId();
        $presubscriptions = Subscription::findPresubscriptionsToClassRoom($instanceId);
        $subscriptions = Subscription::findSubscriptionsToClassRoom($instanceId);
        if (count($presubscriptions) == 0 && count($subscriptions) == 0) {
            $thead_data = array(translateFN('Notifica'));
            $dataAr = array();
            $result_table = BaseHtmlLib::tableElement('id:course_instance_Table', $thead_data, $dataAr);
            $table = $result_table->getHtml();
        } else {
            //first: make associative arrays by ID of presubscription
            $ids_student = array();
            $tmp_presubscriptions = $presubscriptions;
            $presubscriptions = array();
            foreach ($tmp_presubscriptions as $k => $v) {
                $ids_student[] = $v->getSubscriberId();
                $presubscriptions[$v->getSubscriberId()] = $v;
            }
            //second: retrieve data for presubscription