예제 #1
0
/**
 * Modify an entry in the facetoface_sessions table
 */
function facetoface_update_session($session, $sessiondates)
{
    global $DB;
    $session->timemodified = time();
    $session = cleanup_session_data($session);
    $transaction = $DB->start_delegated_transaction();
    $DB->update_record('facetoface_sessions', $session);
    $DB->delete_records('facetoface_sessions_dates', array('sessionid' => $session->id));
    if (empty($sessiondates)) {
        // Insert a dummy date record.
        $date = new stdClass();
        $date->sessionid = $session->id;
        $date->timestart = 0;
        $date->timefinish = 0;
        $DB->insert_record('facetoface_sessions_dates', $date);
    } else {
        foreach ($sessiondates as $date) {
            $date->sessionid = $session->id;
            $DB->insert_record('facetoface_sessions_dates', $date);
        }
    }
    // Update any calendar entries.
    $session->sessiondates = $sessiondates;
    facetoface_update_calendar_entries($session);
    $transaction->allow_commit();
    return facetoface_update_attendees($session);
}
예제 #2
0
/**
 * Given an object containing all the necessary data, (defined by the
 * form in mod.html) this function will update an existing instance
 * with new data.
 */
function facetoface_update_instance($facetoface, $instanceflag = true) {
    global $DB, $USER;

    if ($instanceflag) {
        $facetoface->id = $facetoface->instance;
    }
    if (empty($facetoface->completionstatusrequired)) {
        $facetoface->completionstatusrequired = null;
    }

   facetoface_fix_settings($facetoface);
   if ($return = $DB->update_record('facetoface', $facetoface)) {
        facetoface_grade_item_update($facetoface);

        // Update any calendar entries
        if ($sessions = facetoface_get_sessions($facetoface->id)) {
            foreach ($sessions as $session) {
                facetoface_update_calendar_entries($session, $facetoface);
                // If manager changed from approval required to not
                if ($facetoface->approvalreqd == 0) {
                    // Check if we have the users who need approval
                    $attendees = facetoface_get_attendees($session->id, array(MDL_F2F_STATUS_REQUESTED));
                    if (count($attendees) > 0) {
                        // Update user status code from MDL_F2F_STATUS_REQUESTED to MDL_F2F_STATUS_BOOKED, otherwise these users will be hidden
                        foreach ($attendees as $i => $attendee) {
                            if (facetoface_update_signup_status($attendee->submissionid, MDL_F2F_STATUS_BOOKED, $USER->id, '', $attendee->grade)) {
                                // Send confirmation email that an user is booked and cc to user's manager if exists
                                facetoface_send_confirmation_notice($facetoface, $session, $attendee->id, 0, 0);
                            }
                        }
                    }
                }
            }
        }

    }
    return $return;
}
예제 #3
0
     if (!facetoface_save_customfield_value($field->id, $fromform->{$fieldname}, $sessionid, 'session')) {
         $transaction->force_transaction_rollback();
         print_error('error:couldnotsavecustomfield', 'facetoface', $returnurl);
     }
 }
 // Save trainer roles.
 if (isset($fromform->trainerrole)) {
     facetoface_update_trainers($sessionid, $fromform->trainerrole);
 }
 // Retrieve record that was just inserted/updated.
 if (!($session = facetoface_get_session($sessionid))) {
     $transaction->force_transaction_rollback();
     print_error('error:couldnotfindsession', 'facetoface', $returnurl);
 }
 // Update calendar entries.
 facetoface_update_calendar_entries($session, $facetoface);
 if ($update) {
     // Logging and events trigger.
     $params = array('context' => $modulecontext, 'objectid' => $session->id);
     $event = \mod_facetoface\event\update_session::create($params);
     $event->add_record_snapshot('facetoface_sessions', $session);
     $event->add_record_snapshot('facetoface', $facetoface);
     $event->trigger();
 } else {
     // Logging and events trigger.
     $params = array('context' => $modulecontext, 'objectid' => $session->id);
     $event = \mod_facetoface\event\add_session::create($params);
     $event->add_record_snapshot('facetoface_sessions', $session);
     $event->add_record_snapshot('facetoface', $facetoface);
     $event->trigger();
 }