# ТЗ: График заказов от 20.08.2026 Источник: `ТЗ 20.08 График заказов.docx`. Статус: **получено и проанализировано; перед проектированием обмена с 1С и графиков доставок/монтажей требуются уточнения**. Связанные документы: - [План реорганизации](plan.md) - [ТЗ: Модуль Графики](tz-schedules.md) - [ТЗ: Каталог общий](tz-catalog-common.md) - [ТЗ: Рекламации](tz-reclamations.md) - [ТЗ: Документация](tz-documents.md) ## 1. Поля заказа | № | Поле | Источник и правила | |---:|---|---| | 1 | ID | Формируется базой данных. | | 2 | Номер заказа | Передаётся из 1С; администратор может редактировать. | | 3 | Заказчик | Передаётся из 1С; администратор может редактировать. | | 4 | Адрес объекта | Передаётся из 1С; поле может редактироваться. Роль для редактирования в исходном ТЗ не уточнена. | | 5 | № счёта | Передаётся из 1С; администратор может редактировать. | | 6 | № договора | Передаётся из 1С; администратор может редактировать. | | 7 | Дата оплаты | Передаётся из 1С; администратор может редактировать. | | 8 | Срок поставки | Передаётся из 1С; администратор может редактировать. | | 9 | Плановая дата отгрузки | Рассчитывается автоматически: дата оплаты + срок поставки в рабочих днях. | | 10 | Дата отгрузки с фабрики | Передаётся из 1С; видна и редактируется администратором. | | 11 | Статус заказа | Выбирается из фиксированного списка статусов. | | 12 | Тип | Выбирается вручную из фиксированного списка типов исполнения. | | 13 | Менеджер | Передаётся из 1С; администратор может выбрать пользователя с ролью `Менеджер`. | | 14 | Примечание | Свободный текст. | | 15 | Дата доставки | Плановая дата, после заполнения которой заказ может быть перенесён в график доставок. | | 16 | Водитель | Выбирается среди пользователей с ролями `Водитель` и `Бригадир`. | | 17 | Дата выхода на монтаж | Плановая дата, после заполнения которой заказ может быть перенесён в график монтажей. | | 18 | Дней на монтаж | Плановая продолжительность монтажа в днях. | | 19 | Бригадир | Выбирается среди пользователей с ролью `Бригадир`. | ### 1.1. Статусы заказа - `Размещен`; - `Готов на фабрике`; - `В пути`; - `Частичное поступление`; - `На складе`; - `Закрыт`. ### 1.2. Типы исполнения заказа - `Самовывоз`; - `Доставка`; - `Монтаж`; - `Доставка + Монтаж`; - `Доставка + Шеф-монтаж`; - `Шеф-монтаж`. ## 2. Главная страница Главная страница имеет табличный вид. Для каждой колонки нужен фильтр. По умолчанию заказы сортируются по дате добавления от новых к старым, если пользователь не выбрал другую сортировку. Колонки списка: 1. ID. 2. Номер заказа. 3. Заказчик. 4. Адрес объекта. 5. № счёта. 6. Дата оплаты. 7. Срок поставки. 8. Дата отгрузки. 9. Дата отгрузки по заявке — видна администратору. 10. Статус заказа. 11. Дата доставки. 12. Дата монтажа. 13. Менеджер. 14. Примечание. ## 3. Карточка заказа Карточка строится по образцу карточки площадки ДКР: - слева — поля заказа из раздела 1; - справа — список оборудования; - отдельные блоки `Документы`, `Фотографии` и `Чат площадки`. Каждая единица оборудования хранится и отображается отдельной строкой. Если заказано несколько одинаковых изделий, строка создаётся для каждого экземпляра, а не одна строка с количеством. ![Референс карточки площадки ДКР](tz-order-schedule-card.png) ### 3.1. Таблица оборудования | Колонка | Правило | |---|---| | Чекбокс | Используется для удаления, переноса, создания рекламации и других групповых действий. | | Картинка | Подгружается из общего каталога. | | Номер заказа МАФ | При ручном создании вводится пользователем, при загрузке передаётся из 1С; администратор может редактировать. | | Заводской номер | Изначально пустой, заполняется вручную. | | Дата производства | Изначально пустая, заполняется вручную. | | Паспорт | Галочка или крестик; к каждой позиции можно прикрепить скан паспорта. | ### 3.2. Действия карточки - `Редактировать` — доступ определяется ролевой моделью; позволяет добавлять и удалять оборудование. - `Экспорт МАФ` — выгружает таблицу оборудования заказа; в шапке указываются заказчик, адрес, № счёта и № заказа. - `Документы для монтажа` — формирует архив по аналогии с площадкой ДКР: заполненная заявка на монтаж и документация по каждому МАФ. - `Документы для доставки` — формирует заявку на доставку оборудования. Шаблон будет предоставлен отдельным файлом. - `Перенести в график монтажей` — доступно при заполненных бригадире, дате монтажа и количестве дней монтажа. - `Перенести в график доставок` — доступно при заполненных водителе и дате доставки. - `Назад` — возвращает к общему списку. Действия под таблицей оборудования: - `Создать рекламацию` — создаёт рекламацию по выбранным МАФ; - `Скачать техдокументацию` — формирует архив из технической документации выбранных МАФ по аналогии с карточкой площадки ДКР. ## 4. Создание заказа ### 4.1. Ручное создание Обязательные исходные данные: 1. Номер заказа. 2. Заказчик. 3. Адрес объекта. 4. № счёта. 5. Дата оплаты. 6. Срок поставки. 7. Статус заказа. 8. Тип. 9. Менеджер. 10. Позиции из общего каталога с количеством и номером заказа для каждой единицы МАФ. ### 4.2. Создание из 1С В 1С используется действие `Перенести в график`. CRM должна создать или обновить заказ на основании переданных данных. Точный протокол, состав payload и правила повторной передачи в исходном ТЗ не описаны. ## 5. Импорт и экспорт Нужны импорт и экспорт полного списка заказов. Формат должен соответствовать табличному представлению графика заказов. ## 6. Уведомления Нужны настраиваемые уведомления пользователя о событиях от создания заказа до изменения статусов по аналогии с площадками ДКР. ## 7. Визуальное отображение статусов - строки заказов подсвечиваются разными цветами в зависимости от статуса; - закрытый заказ отображается полупрозрачным. ## 8. История действий В карточке заказа отображается журнал действий только по этому заказу, в том числе: - кто и когда изменил статус; - кто и когда добавил заказ в график доставок; - кто и когда добавил заказ в график монтажей; - другие значимые действия с карточкой. ## 9. Рекламации из графика заказов Рекламация создаётся по выбранным экземплярам МАФ и получает тип `Прочее`: - отображается в подразделе рекламаций `Все`; - не относится к ДКР и не участвует в отчётах ДКР; - сохраняет основной функционал рекламации ДКР: детали и запчасти, списание запчастей, акты, фотографии проблемы и результата, чат; - поле площадки отображает ссылку с наименованием заказчика и адресом поставки. Таблица оборудования рекламации: 1. Картинка. 2. МАФ (артикул). 3. Номер заказа МАФ. 4. Заводской номер. 5. Дата производства. ## 10. Сопоставление с текущим планом и кодовой базой ### 10.1. Что подтверждено - Заказ, экземпляры оборудования, доставки, монтажи и загрузки 1С нельзя объединять в одну таблицу старого формата `graf1`. - Оборудование должно ссылаться на `common_catalog_items`, а не на каталог ДКР. - Повторяющийся артикул представлен отдельными экземплярами МАФ. Это подтверждает необходимость отдельной сущности позиции/экземпляра, а не поля `quantity` как единственного представления состава заказа. - Данные 1С и ручные плановые данные должны быть разделены, чтобы повторная синхронизация не уничтожала дату доставки, водителя, монтаж, комментарии и ручные идентификаторы МАФ. - Создание рекламации типа `Прочее` по выбранным МАФ соответствует выделенному этапу 10 плана. ### 10.2. Что добавлено новым ТЗ - ручное создание и редактирование заказа наряду с загрузкой из 1С; - фиксированные справочники статусов и типов исполнения; - автоматический расчёт плановой даты отгрузки в рабочих днях; - карточка заказа по образцу площадки ДКР; - документы, фотографии и чат заказа; - паспорт для каждого экземпляра МАФ; - экспорт оборудования одного заказа и импорт/экспорт общего списка; - пакеты документов для монтажа и доставки; - скачивание технической документации выбранных МАФ; - настраиваемые уведомления; - цветовая индикация статусов; - журнал действий по заказу; - роли водителя, менеджера и бригадира в планировании; - явные действия переноса в графики доставок и монтажей. ### 10.3. Что можно переиспользовать - общий каталог, изображения и документы `CommonCatalogItem`; - механизм файлов, превью и приватных сгенерированных архивов; - генерацию монтажного пакета ДКР после адаптации под новый тип заказа; - чат площадки и рекламации после добавления связи с новым заказом; - пользовательские уведомления по браузеру, push и email; - ролевую модель и управление доступом к отдельным полям; - текущую форму и бизнес-логику рекламаций; - очередь импорта, экспорта и формирования документов. ### 10.4. Что нельзя переиспользовать без изменения модели - `orders` — это площадки ДКР с обязательными округом, районом и типом объекта, а не производственные заказы из нового ТЗ; - `products_sku` связан с каталогом ДКР `products`, тогда как новое ТЗ требует общий каталог; - `schedules` содержит сериализованное поле `mafs` и обязательные реквизиты ДКР, поэтому новую связь с производственным заказом нужно вводить явно; - `reclamations.order_id` сейчас обязательно ссылается на площадку ДКР, поэтому для рекламаций типа `Прочее` нужна отдельная нормализованная связь с новым заказом без создания фиктивной площадки ДКР; - в ролевой модели есть `Менеджер` и `Бригадир`, но отдельной роли `Водитель` сейчас нет. ## 11. Предлагаемая модель Точные имена фиксируются на этапе проектирования. Минимально необходимы: - производственный заказ; - экземпляр МАФ заказа со ссылкой на `common_catalog_items`; - справочник или enum статусов заказа; - справочник или enum типов исполнения; - отдельные плановые записи доставки и монтажа; - журнал загрузок 1С с исходным payload и результатами сопоставления; - история значимых изменений заказа; - связи заказа и экземпляров МАФ с файлами, чатом и рекламациями. Даже если интерфейс первого релиза показывает одну дату доставки и одну дату монтажа, модель доставок и монтажей не должна фиксировать лимит в одну запись: в старом Manager уже существовало до трёх доставок по одному заказу. ## 12. Вопросы для согласования ### Блокирующие проектирование и обмен с 1С 1. Какой стабильный GUID заказа передаёт 1С? Уникален ли номер заказа без года? 2. Передаёт ли 1С артикул общего каталога и стабильный идентификатор каждого экземпляра/строки МАФ? 3. Какие поля 1С являются первичными, а какие локальные изменения администратора должны сохраняться при повторной синхронизации? 4. Что должна делать повторная команда `Перенести в график`: создать новую версию, обновить существующий заказ или отклонить конфликт? 5. Как определяется календарь рабочих дней для расчёта плановой отгрузки: только понедельник–пятница или производственный календарь с праздниками и переносами? ### Требуют уточнения до соответствующей части реализации 6. `Дата отгрузки`, `Дата отгрузки по заявке`, `Плановая дата отгрузки` и `Дата отгрузки с фабрики` — какие именно даты соответствуют друг другу в карточке и списке? 7. Допускаются ли несколько доставок и несколько монтажных этапов по одному заказу? Можно ли переносить только выбранные МАФ? 8. Нужен ли новый системный тип пользователя/роль `Водитель`, или водитель — должность/признак пользователя, независимый от роли доступа? 9. Кто, кроме администратора, может редактировать адрес, примечание, доставку, монтаж, заводской номер и дату производства? 10. Какие события, получатели и каналы должны быть доступны в настройках уведомлений? 11. Какие действия обязательно входят в аудит помимо статуса и переноса в графики? Требуется ли показывать старое и новое значения? 12. Как выглядит XLSX для импорта/экспорта: только строки заказов или отдельный лист с экземплярами МАФ? 13. Должен ли ручной импорт XLSX обновлять заказы, и по какому ключу выполняется сопоставление? 14. Требуется ли отдельный шаблон паспорта или в строку МАФ загружается готовый скан? 15. Необходимо предоставить шаблон заявки на доставку. 16. Что означает «5 функциональных кнопок» в исходном ТЗ, если в перечне указано семь верхних действий? 17. Подтвердить, что рекламации типа `Прочее` не участвуют только в отчётах ДКР, но могут иметь собственную отчётность. ## 13. Рекомендуемая последовательность реализации 1. Согласовать открытые вопросы по идентификаторам 1С, принадлежности полей и календарю рабочих дней. 2. Спроектировать нормализованные таблицы заказов, экземпляров МАФ, доставок, монтажей, загрузок и аудита. 3. Реализовать справочники, права и базовую карточку с ручным созданием заказа. 4. Реализовать идемпотентный API обмена с 1С и журнал загрузок. 5. Добавить документы, фотографии, чат, паспорт МАФ и техническую документацию. 6. Реализовать экспорт/импорт, уведомления и аудит. 7. Связать заказ с графиками доставок и монтажей. 8. Реализовать рекламации типа `Прочее` по выбранным экземплярам МАФ.