Skip to content

[ЛК] Реализовать историю изменений машиносмен в заказе #23

Description

@ikorspace

Предусловие:

На текущий момент после внесения или изменения объемов машиносмены в заказе пользователи видят только актуальное состояние данных.

Если между заказчиком, поставщиком или водителем возникают разногласия по объемам, невозможно самостоятельно определить:

  • кто и когда создал смену;
  • кто первоначально внес объемы;
  • какие значения изменялись;
  • кто подтвердил объемы;
  • изменялись ли данные после подтверждения;
  • кем была удалена смена.

Job story

Когда участники заказа создают, заполняют, изменяют, подтверждают или удаляют машиносмену, я хочу видеть хронологию действий и измененные значения, чтобы проверить корректность данных и разобраться в спорной ситуации.

Задачи

1. Добавить раздел «История изменений»
На странице заказа добавить раздел/вкладку «История изменений» согласно приложенным макетам.
Раздел представляет собой табличный каталог с журналированием событий, происходящих при изменении статуса или данных машиносмен.
Раздел предназначен только для просмотра информации. Редактирование или удаление записей машиносмен производится в соседней вкладке “Подтверждение объемов”.
Доступ к разделу предоставить пользователям, которым доступен просмотр карточки текущего заказа.

2. Отображать историю событий по машиносменам заказа
В разделе необходимость отображать таблицу со следующей информацией:
Дата и время — дата и время совершения действия.
Дата машиносмены — дата смены, с которой связано событие.
Событие — тип совершенного действия.
Автор — ФИО пользователя, совершившего действие.
Изменено — перечень измененных параметров.
Детали — переход к подробной информации о состоянии машиносмены на момент события.
Названия столбцов, расположение элементов и формат отображения информации реализовать согласно приложенным макетам.
Историю сортировать по дате и времени события: от новых записей к старым сверху вниз.

3. Фиксировать событие «Создание смены»
Если пользователь создал новую машиносмену, добавить в историю запись с событием:
«Создание смены».
Для события фиксировать:
дату и время создания;
дату созданной машиносмены;
автора действия.
В столбце «Изменено» отображать прочерк, поскольку при создании формируется новая смена, а не изменяются существующие значения.
В деталях отображать состояние машиносмены непосредственно после создания. Если создана незаполненная смена, отображать только доступные на этот момент данные.

4. Фиксировать событие «Внесение объемов»
Если пользователь впервые внес объемы в ранее созданную незаполненную машиносмену, добавить в историю запись с событием:
«Внесение объемов».
В столбце «Изменено» отображать прочерк, поскольку значения вносятся впервые и не имеют предыдущего значения.
В деталях отображать полный слепок машиносмены после внесения объемов.

5. Фиксировать событие «Изменение объемов»
Если пользователь изменил ранее внесенные, но еще не подтвержденные объемы машиносмены, добавить в историю запись с событием:
«Изменение объемов».
В столбце «Изменено» отображать все параметры, измененные в рамках одного сохранения:
наименование измененного параметра;
предыдущее значение;
новое значение.
Формат отображения:
Предыдущее значение → Новое значение.
Если за одно действие изменено несколько параметров, сформировать одну запись истории, а каждый измененный параметр вывести с новой строки.
В деталях отображать полный слепок машиносмены после сохранения изменений.

6. Фиксировать событие «Подтверждение объемов»
Если пользователь подтвердил объемы машиносмены, добавить в историю запись с событием:
«Подтверждение объемов».
Если при подтверждении пользователь не изменял значения, в столбце «Изменено» отображать прочерк.
Если при подтверждении пользователь одновременно скорректировал один или несколько параметров, в столбце «Изменено» отобразить предыдущие и новые значения по правилам события «Изменение объемов».
В деталях отображать полный слепок машиносмены после подтверждения.

7. Фиксировать событие «Изменение подтв. объемов»
Если пользователь изменил объемы ранее подтвержденной машиносмены, добавить в историю запись с событием:
«Изменение подтв. объемов».
В столбце «Изменено» отображать все измененные параметры с предыдущими и новыми значениями.
Если за одно действие изменено несколько параметров, сформировать одну запись истории и вывести каждое изменение с новой строки.
В деталях отображать полный слепок машиносмены после изменения подтвержденных объемов.

8. Фиксировать событие «Удаление смены»
Если пользователь удалил машиносмену, добавить в историю запись с событием:
«Удаление смены».
В столбце «Изменено» отображать прочерк.
В деталях отображать последний полный слепок машиносмены перед ее удалением.
Удаление машиносмены не должно приводить к удалению ранее сформированной истории по ней.
История должна сохранять внутреннюю связь с конкретной машиносменой, в том числе после удаления самой машиносмены.

9. Отображать информацию об авторе действия
Рядом с ФИО автора отображать информационную иконку согласно макету.
При взаимодействии с иконкой отображать всплывающее окно со следующими данными:

  • ФИО;
  • роль;
  • телефон.

Возможные роли автора:

  • представитель заказчика;
  • представитель поставщика;
  • водитель.

10. Отображать детали события
10.1. Слепок данных по каждому событию в полном объеме должен храниться на backend.
10.2. Одна пользовательская операция — одна запись истории.
10.3. Если пользователь за одно сохранение изменил несколько параметров, не создавать отдельную запись для каждого параметра.
10.4. Для определения последовательности действий использовать точную дату и время события.
10.5. В рамках MVP в интерфейсе отображать только дату машиносмены. Отдельный пользовательский номер или технический идентификатор смены не выводить.
10.6. Если смена была удалена и затем на ту же дату была создана новая смена, события отображать последовательно в общей хронологии:

  • удаление предыдущей смены;
  • создание новой смены;
  • последующие действия с новой сменой.

10.7. Существующие правила создания, редактирования, подтверждения и удаления машиносмен в рамках задачи не изменять.
10.8. Существующий фильтр по месяцу должен применяться к истории изменений. Отбор записей выполнять по дате машиносмены.

Wireframe интерфейса:
https://app.holst.so/share/b/ed539d3a-f6d6-4a92-8b20-db8959608ba4

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions