Расписание меню столовых на 4 недели.
Наименование: Расписание меню столовых на 4 недели.
Цель доработки (какую проблему решаем?): Убрать необходимость ежедневно переставлять раскладки в расписании, на будущую неделю.
Предлагаемый нами вариант решения:
Общее описание новой схемы работы:
- Меню разбивается по неделям (1ая, 2ая, 3ая, 4ая и т.п.), по дням недели (Понедельник, Вторник и т.п.), и разделам (Салаты, Напитки и т.п.)
- Меню у всех столовых одинаковое
- Для всех столовых назначается общая "Основная раскладка"
- "Основная раскладка" должна быть пустой
- На каждую неделю, день недели, заводится свой набор раскладок
- Пример набора раскладок (на 2 недели, на 2 дня, с 2мя разделами меню):
- "Основное меню, Понедельник 1"
- "Салаты, Понедельник 1"
- "Напитки, Понедельник 1"
- "Основное меню, Вторник 1"
- "Салаты, Вторник 1"
- "Напитки, Вторник 1"
- "Основное меню, Понедельник 2"
- "Салаты, Понедельник 2"
- "Напитки, Понедельник 2"
- "Основное меню, Вторник 2"
- "Салаты, Вторник 2"
- "Напитки, Вторник 2"
- "Основное меню, Понедельник 1"
- Для "Основной раскладки" задается "Расписание замен"
- В "Расписании замен" указывается
- Дата начала замены (дата начала 1ой недели, для расчета номера текущей недели)
- Номер недели
- День недели
- "Основная раскладка дня"
- Таким образом, вместо пустой "Основной раскладки", на кассе будет отображаться "Основная раскладка дня" подходящая по параметрам Расписания замен
Описание доработок для реализации предлагаемой схемы работы:
- В "Расписание замен" добавить новый параметр "Номер недели"
- Доступен только если задана "Дата начала замены"
- Необязательный
- При определении раскладки по "Расписанию замен" учитывать "Номер недели" (если он задан)
-
Для того чтобы узнать номер текущей недели, нужно:
-
Вычислить кол-во недель в периодичности расписания
-
Найти строку замен с наибольшим "Номером недели"
-
-
Вычислить кол-во дней в периодичности расписания
-
Вычислить кол-во дней, прошедших с "Даты начала замены" до текущей даты
-
Разделить это кол-во на кол-во дней в периодичности расписания
-
Номер текущей недели будет равен остатку от деления кол-ва недель на кол-во недель в периодичности расписания, увеличенному на 1
-
-
Пример:
-
"Даты начала замены" - это 1.03.2023, текущая дата 26.04.2023
-
Кол-во недель в периодичности расписания: 4
-
Кол-во дней в периодичности расписания: 28 дней (4 * 7 = 28 дней)
- Кол-во дней, прошедших с "Даты начала замены" до текущей даты: 56 дней (26.04.2023 - 1.03.2023 = 56 дней)
-
Разделить это кол-во на кол-во дней в периодичности расписания: 56 / 28 = 2 полных недели
-
Номер текущей недели будет равен остатку от деления 2 на 4, увеличенному на 1: 2 % 4 + 1 = 3
-
Таким образом, в данном примере номер текущей недели будет равен третьей неделе
-
-
Важные изменения в логике работы программы/функционале: В расписании раскладок появиться возможность указать расписание на 4 недели, которые будут меняться по циклу.
Время составления ТЗ: 1,5 ч.
Время работы программиста: 2 ч.
Время внедрения: 30 мин.
Время тестирования: 1 ч.
Стоимость: 12 500 руб.
Система JUPITER www.jupiter.systems (с) 2024г.
Нет комментариев