# Журнал выдачи СИЗ ## Тип решения Учёт и трекеры — приложение на 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-кодов. - Автоматического расчёта норм выдачи и складских остатков. - Уведомлений о приближении даты возврата. - Мобильного приложения и офлайн-синхронизации.