116 lines
7.1 KiB
Markdown
116 lines
7.1 KiB
Markdown
# Журнал выдачи СИЗ
|
||
|
||
## Тип решения
|
||
Учёт и трекеры — приложение на Node без внешних зависимостей, данные в файле data.json на сервере. Для прототипа, который показывают в Telegram-группе, **в качестве предпочтения выбран постоянный вариант со статикой и демо-данными в коде**, но по типу задачи это всё равно решение класса учёта; если платформа не примет статический вариант для хранения журнала, нужен серверный вариант с временной ссылкой.
|
||
|
||
## Задача
|
||
Сделать журнал выдачи спецодежды и СИЗ на складе: фиксировать, **что выдали, кому, сколько, когда вернуть, кто выдал**.
|
||
|
||
## Кто пользуется
|
||
Складской сотрудник / кладовщик, который ведёт журнал выдачи СИЗ и спецодежды.
|
||
|
||
## Что делает прототип (по экранам и кнопкам)
|
||
### Экран 1. Журнал выдачи
|
||
На экране видна таблица всех записей журнала с колонками:
|
||
- дата выдачи;
|
||
- что выдали;
|
||
- кому выдали;
|
||
- количество;
|
||
- когда вернуть;
|
||
- кто выдал;
|
||
- статус.
|
||
|
||
Сверху размещены:
|
||
- строка поиска по всем полям;
|
||
- счётчики: всего, выдано, возвращено, просрочено;
|
||
- фильтр кнопками-чипсами по статусу: Все, Выдано, Возвращено, Просрочено;
|
||
- кнопка **Добавить запись**;
|
||
- кнопка **Выгрузить в Excel (CSV)**.
|
||
|
||
Действия на экране:
|
||
- поиск фильтрует таблицу по введённому тексту;
|
||
- нажатие на чип статуса показывает только записи выбранного статуса;
|
||
- нажатие **Добавить запись** открывает форму добавления;
|
||
- нажатие на строку записи открывает ту же форму в режиме редактирования;
|
||
- нажатие **Удалить** в строке открывает подтверждение удаления;
|
||
- при удалении запись исчезает из таблицы и добавляется в журнал изменений с полями «когда, что, кто».
|
||
|
||
### Экран 2. Форма добавления / редактирования записи
|
||
Открывается в модальном окне или отдельной панели.
|
||
Поля формы:
|
||
- дата выдачи;
|
||
- что выдали;
|
||
- кому выдали;
|
||
- количество;
|
||
- когда вернуть;
|
||
- кто выдал;
|
||
- статус.
|
||
|
||
Кнопки:
|
||
- **Сохранить**;
|
||
- **Отмена**.
|
||
|
||
Поведение:
|
||
- форма одинаковая для добавления и редактирования;
|
||
- обязательные поля проверяются перед сохранением;
|
||
- даты отображаются в формате ДД.ММ.ГГГГ;
|
||
- после сохранения таблица и счётчики обновляются сразу.
|
||
|
||
### Экран 3. Подтверждение удаления
|
||
Появляется диалог с текстом подтверждения удаления записи.
|
||
Кнопки:
|
||
- **Удалить**;
|
||
- **Отмена**.
|
||
|
||
После подтверждения:
|
||
- запись удаляется;
|
||
- событие попадает в журнал изменений: когда удалено, что удалено, кто удалил.
|
||
|
||
### Экран 4. Журнал изменений
|
||
Отдельный блок или вкладка внутри прототипа.
|
||
Показывает историю действий по записям:
|
||
- когда;
|
||
- что;
|
||
- кто;
|
||
- действие (добавление, изменение, удаление).
|
||
|
||
### Экран 5. Выгрузка
|
||
Кнопка **Выгрузить в Excel (CSV)** формирует файл со всеми текущими записями таблицы с учётом активного поиска и фильтра.
|
||
|
||
## Демо-данные
|
||
Заложить **12 записей** журнала.
|
||
Реалистичный казахстанский контекст:
|
||
- сотрудники: Айдос Нурланов, Гульмира Сейсембаева, Данияр Ермеков, Алина Касенова, Ерлан Тлеубаев;
|
||
- места/подразделения можно указывать кратко: склад Алматы, участок Астана, сервисная бригада Шымкент.
|
||
|
||
Статусы в демо:
|
||
- 6 записей — Выдано;
|
||
- 4 записи — Возвращено;
|
||
- 2 записи — Просрочено.
|
||
|
||
Даты выдачи и возврата:
|
||
- в диапазоне последних 2–3 месяцев;
|
||
- формат на экране строго ДД.ММ.ГГГГ.
|
||
|
||
Примеры наименований:
|
||
- куртка зимняя;
|
||
- костюм летний;
|
||
- ботинки защитные;
|
||
- перчатки диэлектрические;
|
||
- каска защитная;
|
||
- жилет сигнальный.
|
||
|
||
## Допущения
|
||
- Считаем, что журнал ведётся одним складским пользователем без авторизации и личного кабинета.
|
||
- Считаем, что статус записи определяется вручную или по дате возврата в прототипе.
|
||
- Считаем, что CSV-выгрузка достаточна как форма «Excel» для прототипа.
|
||
- Считаем, что журнал изменений хранится внутри прототипа и виден в отдельном блоке.
|
||
- Если платформа потребует серверный режим для сохранения данных, можно перевести прототип на Node-реализацию с временной ссылкой, но это уже будет не постоянная ссылка.
|
||
|
||
## Чего пока нет
|
||
- Авторизации и разграничения прав.
|
||
- Интеграции с 1С, CRM, корпоративными складами и внешними базами.
|
||
- Печати накладных, сканов, штрихкодов и QR-кодов.
|
||
- Автоматического расчёта норм выдачи и складских остатков.
|
||
- Уведомлений о приближении даты возврата.
|
||
- Мобильного приложения и офлайн-синхронизации. |