/** * 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); }
/** * 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; }
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(); }