Сохранять баллы для ведомостей в новой таблице, список ведомостей тоже
Преподаватели создают ведомости в разделе "сессия" рядом с кнопками для скачивания xls
У деканата появляется таблица со списком всех ведомостей и фильтрами по курсу, группе, плану, форме обучения, этапу и т.п.
Деканат может выгружать ведомости в 1С, отслеживается история этих действий и нельзя выгрузить ведомость следующего этапа для зачетки до выгрузки предыдущего.
контролировать этапы группы или дисциплины нет смысла
можно контролировать не при выгрузке, а при создании ведомости.
Этапы дисциплин переделать так, чтобы каждая группа (или студент) была на своем этапе
значит, у каждой зачетки появляется этап в дисциплине (или в предмете РУП)
не позволять добавлять зачетку в ведомость, если у него еще нет оценки в ведомости за предыдущие этапы
можно проверять с учетом выгрузки в 1С.
можно не делать таблицу этапов, а добавить представление, в котором вычислять текущий этап по оценкам и по оценкам в ведомости (есть ли ведомость, выгружена ли она)
Переход группы на следующий этап делается только после создания (подписания) ведомости.
можно не делать этапы групп
Подписываются ведомости, сделать это может тот, кто их создает.
подписями считать добавление студентов в ведомость
создание ведомости означает ее отправку в деканат
аннулирование ведомости или ее выгрузка снимает блокировку выставления оценок
Деканат может поменять этап группы в дисциплине в том же разделе "сессия"
Ведомость можно открыть и отредактировать: пометить студента для удаления, добавить отметку о продленной сессии, дату экзамена. После этого ведомость можно подписать.
редактировать только отдельные параметры, не оценки
Деканат может выгружать только подписанные ведомости.
Для межфакультетских дисциплин работает старая таблица, только в ней нет других дисциплин
или можно позволить деканату создавать ведомости для межфакультетских дисциплин и сразу их отправлять
В новом запросе для выгрузки ведомости можно указывать номера курсы, группы, направление подготовки, форму обучения и т.п. на всякий случай
Пометку "удалить" в сессии можно использовать, чтобы не добавлять студентов в создаваемую ведомость