# Сценарий приёмочной проверки графика заказов и рекламаций Дата подготовки: **04.09.2026**. Статус: **проверено и принято пользователем 08.09.2026**. Связанные документы: - [ТЗ: График заказов](tz-order-schedule.md) - [Ответы заказчика по графику заказов](tz-order-schedule-answers.md) - [ТЗ: Модуль «Графики»](tz-schedules.md) - [ТЗ: Рекламации](tz-reclamations.md) - [План рефакторинга](plan.md) ## 1. Область проверки Проверяется ручной контур этапов 9 и 10: - список и карточка производственных заказов; - позиции МАФ из общего каталога; - статусы, фильтры и права на поля; - доставки и монтажи; - документы, фотографии, паспорта МАФ и чат; - экспорт и формирование документов; - уведомления и журнал действий; - создание рекламации типа `Прочее` по выбранным МАФ. В эту проверку **не входят** импорт XLS, обмен с 1С и перенос истории из старого Manager. Формат XLS уже согласован, но сам импорт ещё не реализован; для 1С и переноса истории остаются отдельные интеграционные вопросы. ## 2. Что подготовить - Пользователя с ролью `Администратор`. - Пользователей с ролями `Помощник руководителя`, `Менеджер`, `Водитель` и `Бригадир`. - В общем каталоге — минимум две позиции МАФ: - у первой есть картинка и технические документы; для проверки документов ДКР можно использовать артикул `1112` или `5001`; - у второй нет картинки либо нет технических документов — для проверки пустых состояний. - Небольшой файл PDF или DOCX, фотографию JPG/PNG/WebP и скан паспорта МАФ. - Работающий обработчик очереди. Экспорт и пакеты документов выполняются в фоне и после постановки задачи могут появиться не сразу. Для тестовых данных удобно использовать номер с префиксом `TEST`, например `TEST-0904.26`, и даты ближайшей недели. После проверки такой заказ можно удалить администратором. ## 3. Быстрая критическая проверка Если времени мало, сначала выполнить пункты 3.1–3.7. Они покрывают основной пользовательский путь. ### 3.1. Открытие раздела 1. Войти администратором. 2. Открыть меню `Графики → График заказов`. Ожидаемый результат: - страница открывается без ошибки 403; - видны таблица, кнопки `Экспорт` и `Добавить заказ`; - в таблице есть колонки с датами доставки и монтажа; - `Дата отгрузки по заявке` видна администратору. ### 3.2. Создание заказа 1. Нажать `Добавить заказ`. 2. Заполнить обязательные поля: - номер и год заказа; - заказчик; - адрес объекта; - менеджер; - статус; - тип исполнения; - номер счёта; - дату оплаты; - срок поставки в рабочих днях. 3. В блоке `Оборудование` ввести не менее двух символов артикула или наименования. 4. Выбрать позицию общего каталога, указать количество `2` и добавить её. 5. Добавить вторую позицию каталога количеством `1`. 6. Для строк заполнить разные номера заказа МАФ. 7. Нажать `Сохранить`. Ожидаемый результат: - заказ сохраняется и открывается его карточка; - слева расположены поля заказа, справа — оборудование; - одинаковая позиция количеством `2` представлена двумя отдельными строками; - всего в заказе три экземпляра МАФ; - у позиции с картинкой показана миниатюра, по нажатию открывается просмотр; - рассчитана `Дата отгрузки по договору`: дата оплаты плюс срок поставки по производственному календарю; - введённые значения сохраняются после обновления страницы. ### 3.3. Доставка и монтаж 1. В карточке нажать `Перенести в график доставок`. 2. В блоке новой доставки выбрать дату текущей или следующей недели, время и водителя. 3. Раскрыть `Данные заявки и перевозки`, заполнить несколько дополнительных полей. 4. Сохранить доставку. 5. Аналогично нажать `Перенести в график монтажей`, выбрать дату, число дней и бригадира, затем сохранить. 6. Добавить по второй доставке и второму монтажу с другими датами. Ожидаемый результат: - у одного заказа сохраняется несколько доставок и монтажей; - все записи отображаются отдельными блоками в карточке; - в списке заказов показаны все даты доставки и монтажа; - в журнале действий появились записи о назначении доставки и монтажа с датой, исполнителем и автором изменения. ### 3.4. Проверка графиков 1. Открыть `Графики → График доставок`. 2. Перейти на неделю созданной доставки с помощью даты или стрелок. 3. Нажать номер заказа в строке доставки. 4. Открыть действующий `График монтажей` и найти созданный монтаж. Ожидаемый результат: - доставка находится в нужном дне недели; - показаны время, номер заказа, заказчик, адрес, водитель, перевозчик и примечание; - номер заказа ведёт обратно в его карточку; - монтаж отображается в существующем графике монтажей и ведёт к тому же производственному заказу. ### 3.5. Файлы и документы 1. Загрузить в `Документы` PDF или DOCX. 2. Загрузить в `Фотографии` изображение. 3. Загрузить скан паспорта в одной строке МАФ. 4. Нажать `Экспорт МАФ`. 5. Для доставки нажать `Документы для доставки`. 6. Для монтажа нажать `Документы для монтажа`. 7. Выбрать один или несколько МАФ чекбоксами и нажать `Скачать техдокументацию`. 8. Дождаться обработки очереди и открыть сформированные файлы из уведомления или списка доступных файлов. Ожидаемый результат: - у обычного документа показана иконка его MIME-типа и ссылка на скачивание; - фотография отображается миниатюрой и открывается в просмотрщике; - в строке МАФ паспорт меняется с отсутствующего на загруженный и доступен для скачивания; - экспорт МАФ содержит реквизиты заказа и отдельную строку для каждого экземпляра; - заявка на доставку сформирована из шаблона для выбранной доставки; - монтажный пакет и архив техдокументации создаются без ошибки; - техдокументация собирается только для отмеченных МАФ. - в архив попадают схемы ДКР из `public/images/tech-docs/{артикул}` и дополнительные документы общего каталога; файлы с одинаковым именем не дублируются. ### 3.6. Создание рекламации 1. В таблице оборудования отметить два МАФ. 2. Нажать `Создать рекламацию`. Ожидаемый результат: - без выбора МАФ форма не отправляется и просит выбрать хотя бы одну позицию; - с выбранными МАФ создаётся рекламация и открывается её карточка; - тип рекламации — `Прочее`; - в поле площадки/заказа есть ссылка с заказчиком и адресом, ведущая в карточку производственного заказа; - в оборудовании рекламации отображаются только выбранные МАФ с картинкой, артикулом, номером заказа МАФ, заводским номером и датой производства; - действия для платёжной документации и документы ДКР отсутствуют; - остальные возможности рекламации — детали, запчасти, фотографии, акты и чат — остаются доступны согласно правам пользователя. ### 3.7. Вкладки рекламаций 1. Открыть `Рекламации → Все` и найти созданную рекламацию. 2. Открыть вкладку `ДКР`. Ожидаемый результат: - рекламация типа `Прочее` присутствует во вкладке `Все`; - во вкладке `ДКР` её нет; - существующие рекламации ДКР продолжают отображаться и работать как раньше. ## 4. Полная проверка списка заказов ### 4.1. Колонки и сортировка Проверьте наличие колонок: - ID; - номер заказа; - заказчик; - адрес объекта; - номер счёта; - дата оплаты; - срок поставки; - дата отгрузки по договору; - дата отгрузки по заявке — только для администратора по умолчанию; - статус; - даты доставки; - даты монтажа; - менеджер; - примечание. Ожидаемый результат: - при первом открытии новые заказы находятся выше старых; - переход в карточку и кнопка `Назад` возвращают к прежнему списку с фильтрами; - выбранный в основном интерфейсе год не скрывает заказы графика: модуль использует собственный год заказа. ### 4.2. Фильтры и поиск 1. Последовательно проверить фильтр по номеру, заказчику, статусу и менеджеру. 2. Проверить фильтры дат доставки и монтажа. 3. У заказа с несколькими датами выбрать каждую дату по очереди. 4. Проверить поиск по номеру, заказчику и адресу. 5. Сбросить фильтры. Ожидаемый результат: - каждый фильтр оставляет только совпадающие заказы; - фильтры доставки и монтажа предлагают выбор существующих значений, а не диапазон дат; - заказ находится по любой связанной дате доставки или монтажа; - сброс возвращает полный список. ### 4.3. Цвета и просрочка 1. По очереди менять статус тестового заказа и возвращаться в список. 2. Установить статус `Закрыт`. 3. Для отдельной проверки создать или изменить незакрытый заказ так, чтобы дата отгрузки по договору оказалась в прошлом. Ожидаемый результат: - цветом статуса подсвечивается вся строка заказа; - закрытая строка отображается полупрозрачной; - у незакрытого просроченного заказа номер визуально выделен красным; - закрытый заказ не помечается как просроченный. ### 4.4. Экспорт отфильтрованного списка 1. Установить фильтр, оставляющий только тестовый заказ. 2. Нажать `Экспорт`. 3. Дождаться обработки фоновой задачи и открыть XLSX. Ожидаемый результат: - в файле находятся только записи, соответствующие текущим фильтрам и поиску; - один заказ занимает одну строку; - оборудование заказа агрегировано в одной колонке; - реквизиты и даты заказа соответствуют карточке. ## 5. Полная проверка карточки ### 5.1. Редактирование оборудования 1. Добавить ещё один МАФ из общего каталога. 2. Изменить номер заказа МАФ, заводской номер и дату производства. 3. Удалить одну ещё не использованную в рекламации позицию. 4. Сохранить и обновить страницу. Ожидаемый результат: - добавление одной позиции создаёт одну новую строку; - изменения сохраняются у правильного экземпляра; - удалённая строка исчезает, остальные не меняются; - миниатюра всегда относится к выбранной позиции общего каталога. ### 5.2. Изменение статуса и аудит 1. Запомнить число записей журнала. 2. Изменить обычное поле, например примечание, и сохранить. 3. Изменить статус и сохранить. Ожидаемый результат: - изменение примечания не создаёт запись журнала; - изменение статуса создаёт ровно одну новую значимую запись с автором и временем; - добавление доставок и монтажей также фиксируется в журнале. ### 5.3. Редактирование и удаление планов 1. Изменить дату или исполнителя существующей доставки. 2. Изменить параметры монтажа. 3. Проверить новые значения в соответствующих графиках. 4. Удалить одну доставку и один монтаж. Ожидаемый результат: - изменения сразу отражаются в карточке и графиках; - удалённые записи исчезают, остальные доставки и монтажи сохраняются; - нельзя случайно изменить запись, принадлежащую другому заказу. ### 5.4. Чат 1. Отправить обычное сообщение. 2. Если интерфейс позволяет, адресовать сообщение конкретному пользователю. 3. Обновить страницу. Ожидаемый результат: - сообщение остаётся в чате этого заказа; - отображаются автор и время; - чат другого заказа не содержит это сообщение. ## 6. Проверка прав Права могут быть изменены администратором индивидуально. Ниже указаны ожидаемые права ролей по умолчанию после применения миграций. ### 6.1. Администратор Ожидаемый результат: - доступны создание, полное редактирование и удаление заказа; - доступны управление МАФ, доставками, монтажами и файлами; - доступны экспорт и генерация документов; - видна и редактируется `Дата отгрузки по заявке`. ### 6.2. Помощник руководителя 1. Войти помощником и открыть тестовый заказ. 2. Попробовать изменить адрес, примечание, заводской номер и дату производства. 3. Проверить доставки, монтажи, документы, фотографии, паспорта и чат. Ожидаемый результат: - разрешены адрес, примечание, заводской номер и дата производства; - доступны управление доставками, монтажами, документами, фотографиями и паспортами; - недоступны административные поля и `Дата отгрузки по заявке`; - нельзя добавлять или удалять состав заказа, если отдельное право не выдано администратором. ### 6.3. Менеджер Ожидаемый результат по умолчанию: - список и карточка доступны для чтения; - административные поля и `Дата отгрузки по заявке` не видны либо недоступны для изменения; - редактирование производственного заказа, доставок и монтажей недоступно; - доступен чат; - при наличии стандартного права создания рекламаций доступно создание рекламации по выбранным МАФ. ### 6.4. Водитель и бригадир Ожидаемый результат по умолчанию: - график заказов доступен для чтения; - водитель присутствует в списке выбора водителя, бригадир — в списке выбора бригадира; - управление заказом без отдельно выданных прав недоступно; - назначенные пользовательские уведомления приходят только при включённых событиях и каналах. ### 6.5. Индивидуальная настройка прав 1. Администратором открыть карточку пользователя. 2. Выдать или запретить одно действие либо просмотр/редактирование одного поля графика заказов. 3. Перезайти этим пользователем и проверить карточку. Ожидаемый результат: - изменение применяется только к выбранному праву; - запрет роли или пользователя имеет приоритет над разрешением; - скрытое поле отсутствует и в карточке, и в списке; - отсутствие права на действие скрывает кнопку и запрещает прямой запрос к маршруту. ## 7. Проверка уведомлений 1. В карточке получателя включить в разделе `График заказов` браузерный канал для событий: - создан заказ; - изменён статус; - добавлена доставка; - добавлена дата монтажа; - добавлена рекламация. 2. Выполнить каждое событие другим пользователем. 3. Проверить уведомления менеджера заказа, назначенного водителя и бригадира. 4. Отключить одно событие и повторить его. Ожидаемый результат: - уведомления получают только связанные с заказом пользователи; - текст содержит номер заказа, событие и автора изменения; - ссылка открывает нужный заказ; - после отключения события новое уведомление по нему не создаётся; - изменение обычного поля заказа не создаёт отдельного уведомления. ## 8. Негативные проверки - Попытаться сохранить второй заказ с тем же номером и годом — ожидается ошибка уникальности. - Использовать тот же номер в другом году — сохранение должно быть разрешено. - Нажать `Создать рекламацию` без выбранных МАФ — ожидается предупреждение, рекламация не создаётся. - Попытаться сформировать техдокументацию без выбранных МАФ — ожидается предупреждение. - Открыть карточку или действие без необходимого права прямой ссылкой — ожидается 403, а не выполнение действия. - Указать в запросе рекламации МАФ другого заказа — рекламация не должна создаваться. - Открыть сгенерированный файл другим обычным пользователем — ожидается запрет; файл доступен инициатору и администратору. - Удалить доставку или монтаж и обновить график — удалённая запись не должна вернуться. ## 9. Что прислать разработчику при ошибке Для каждого несоответствия желательно указать: 1. роль и имя пользователя; 2. раздел и номер заказа; 3. выполненные действия; 4. что ожидалось и что получилось; 5. скриншот; 6. примерное время ошибки; 7. текст ошибки из интерфейса, если он есть. Шаблон: ```text Роль: Заказ: Раздел: Шаги: Ожидалось: Получилось: Время: ``` ## 10. Итоговый чек-лист приёмки - [x] Заказ создаётся и повторно открывается без потери данных. - [x] Одинаковые МАФ хранятся отдельными экземплярами. - [x] Картинки каталога отображаются и открываются. - [x] Договорная дата рассчитывается по рабочим дням. - [x] Строки списка окрашены по статусу, закрытые полупрозрачны, просрочка заметна. - [x] Все фильтры работают; даты доставки и монтажа выбираются из значений. - [x] У одного заказа работают несколько доставок и монтажей. - [x] Доставка видна в недельном графике, монтаж — в графике монтажей. - [x] Документы, фотографии и паспорта загружаются и открываются корректно. - [x] Экспорт и все пакеты документов формируются. - [x] Журнал содержит только согласованные значимые действия. - [x] Чат работает внутри конкретного заказа. - [x] Уведомления учитывают настройки событий и каналов. - [x] Права администратора, помощника, менеджера, водителя и бригадира соответствуют ожиданиям. - [x] Рекламация создаётся только по выбранным МАФ и получает тип `Прочее`. - [x] Рекламация видна в `Все`, отсутствует в `ДКР`, платёжные документы недоступны. - [x] Существующие площадки, график монтажей и рекламации ДКР продолжают работать. Итог проверки: **принято**.