if ($doRecalculate) {
            // Reset peding recalc, if set
            if ($register->pendingrecalc) {
                attendanceregister_set_pending_recalc($register, false);
            }
            // Turn off time limit: recalculation can be slow
            set_time_limit(0);
            // Cleanup all online Sessions & Aggregates before recalculating [issue #14]
            attendanceregister_delete_all_users_online_sessions_and_aggregates($register);
            // Reload tracked Users list before Recalculating [issue #14]
            $newTrackedUsers = attendanceregister_get_tracked_users($register);
            // Iterate each user and recalculate Sessions
            foreach ($newTrackedUsers as $user) {
                // Recalculate Session for one User
                $progressbar = new progress_bar('recalcbar_' . $user->id, 500, true);
                attendanceregister_force_recalc_user_sessions($register, $user->id, $progressbar, false);
                // No delete needed, having done before [issue #14]
            }
            // Reload All Users Sessions
            $trackedUsers = new attendanceregister_tracked_users($register, $userCapabilities);
        }
    }
    // Notification & Continue button
    if ($doRecalculate || $doScheduleRecalc) {
        $notificationStr = get_string($doRecalculate ? 'recalc_complete' : 'recalc_scheduled', 'attendanceregister');
        echo $OUTPUT->notification($notificationStr, 'notifysuccess');
    }
    echo $OUTPUT->continue_button(attendanceregister_makeUrl($register, $userId));
    $doShowContents = false;
} else {
    if ($doShowContents && $doDeleteOfflineSession) {
Ejemplo n.º 2
0
/**
 * Force Recalculating all User's Sessions
 * Executes quietly (no Progress Bar)
 * (called after Restore and by Cron)
 * @param object $register
 */
function attendanceregister_force_recalc_all($register)
{
    $users = attendanceregister_get_tracked_users($register);
    // Iterate each user and recalculate Sessions
    foreach ($users as $user) {
        attendanceregister_force_recalc_user_sessions($register, $user->id);
    }
}