From 44480f67cfdb7aa0ad5168f4bb880d464b2c50d1 Mon Sep 17 00:00:00 2001 From: Andrey Date: Mon, 27 May 2024 11:13:41 +0300 Subject: [PATCH] add new schemes --- .../free-rest.puml | 64 ++--- .../reserve-rest.puml | 46 ++-- .../journals/order-journal/filters.puml | 52 ++++ .../journals/order-journal/search.puml | 29 ++ .../personal-cabinet/change note.puml | 44 +-- .../personal-cabinet/favorites.puml | 44 +-- .../personal-cabinet/get-info-order.puml | 32 +-- .../personal-cabinet/get-note.puml | 30 +-- .../personal-cabinet/personal-cabinet.puml | 0 oms/interface-arm/products/add-promotion.puml | 58 ++++ oms/order mongoDB.puml | 251 ++++++++++++++++++ ordering.puml => oms/process/ordering.puml | 0 shipment.puml | 32 --- 13 files changed, 520 insertions(+), 162 deletions(-) rename oms/{ => interface-arm}/free-rest-and-reserve-journal/free-rest.puml (96%) rename oms/{ => interface-arm}/free-rest-and-reserve-journal/reserve-rest.puml (97%) create mode 100644 oms/interface-arm/journals/order-journal/filters.puml create mode 100644 oms/interface-arm/journals/order-journal/search.puml rename oms/{ => interface-arm}/personal-cabinet/change note.puml (97%) rename oms/{ => interface-arm}/personal-cabinet/favorites.puml (97%) rename oms/{ => interface-arm}/personal-cabinet/get-info-order.puml (97%) rename oms/{ => interface-arm}/personal-cabinet/get-note.puml (97%) rename personal-cabinet.puml => oms/interface-arm/personal-cabinet/personal-cabinet.puml (100%) create mode 100644 oms/interface-arm/products/add-promotion.puml create mode 100644 oms/order mongoDB.puml rename ordering.puml => oms/process/ordering.puml (100%) delete mode 100644 shipment.puml diff --git a/oms/free-rest-and-reserve-journal/free-rest.puml b/oms/interface-arm/free-rest-and-reserve-journal/free-rest.puml similarity index 96% rename from oms/free-rest-and-reserve-journal/free-rest.puml rename to oms/interface-arm/free-rest-and-reserve-journal/free-rest.puml index 7768dbf..5c19e88 100644 --- a/oms/free-rest-and-reserve-journal/free-rest.puml +++ b/oms/interface-arm/free-rest-and-reserve-journal/free-rest.puml @@ -1,33 +1,33 @@ -@startuml -scale 1200*1200 -mainframe Получение свободных остатков -actor Пользователь as user -participant ARM as ARM -participant OMS as OMS -collections Cache as cache -participant Shcat as Shcat -participant Susanin as Susanin -autonumber - -user -> ARM: Нажимает на остатки товара\nв товарной строке заказа -ARM -> OMS: API GET /quantity-list-by-office -activate OMS -OMS -> OMS: валидирует запрос - -OMS -> cache: Забрать все офисы из кэша -activate cache -return answer - -OMS -> Shcat: POST method rests.get -activate Shcat -return answer API POST - -OMS -> Susanin: POST method get_logistic_chains_with_priority -activate Susanin -return answer API POST - -OMS -> OMS: Формирует два массива:\n1. По лог.цепям\n2. Прочие склады - -return answer API GET -ARM --> user: Рендерит данные в модальном окне +@startuml +scale 1200*1200 +mainframe Получение свободных остатков +actor Пользователь as user +participant ARM as ARM +participant OMS as OMS +collections Cache as cache +participant Shcat as Shcat +participant Susanin as Susanin +autonumber + +user -> ARM: Нажимает на остатки товара\nв товарной строке заказа +ARM -> OMS: API GET /quantity-list-by-office +activate OMS +OMS -> OMS: валидирует запрос + +OMS -> cache: Забрать все офисы из кэша +activate cache +return answer + +OMS -> Shcat: POST method rests.get +activate Shcat +return answer API POST + +OMS -> Susanin: POST method get_logistic_chains_with_priority +activate Susanin +return answer API POST + +OMS -> OMS: Формирует два массива:\n1. По лог.цепям\n2. Прочие склады + +return answer API GET +ARM --> user: Рендерит данные в модальном окне @enduml \ No newline at end of file diff --git a/oms/free-rest-and-reserve-journal/reserve-rest.puml b/oms/interface-arm/free-rest-and-reserve-journal/reserve-rest.puml similarity index 97% rename from oms/free-rest-and-reserve-journal/reserve-rest.puml rename to oms/interface-arm/free-rest-and-reserve-journal/reserve-rest.puml index 274a52b..d104df6 100644 --- a/oms/free-rest-and-reserve-journal/reserve-rest.puml +++ b/oms/interface-arm/free-rest-and-reserve-journal/reserve-rest.puml @@ -1,24 +1,24 @@ -@startuml -scale 1200*1200 -mainframe Получение остатков под резервом -actor Пользователь as user -participant ARM as ARM -participant OMS as OMS -participant Susanin as Susanin -autonumber - -user -> ARM: Нажимает на остатки товара\nв товарной строке заказа -ARM -> OMS: API GET /quantity-list-by-office -activate OMS -OMS -> OMS: валидирует запрос - -OMS -> Susanin: POST method get_logistic_chains_with_priority -activate Susanin -return answer API POST - -OMS -> OMS: запрос в mongodb Order с фильтрами по товару -OMS -> OMS: Формирует два массива:\n1. По лог.цепям\n2. Прочие склады - -return answer API GET -ARM --> user: Рендерит данные в модальном окне +@startuml +scale 1200*1200 +mainframe Получение остатков под резервом +actor Пользователь as user +participant ARM as ARM +participant OMS as OMS +participant Susanin as Susanin +autonumber + +user -> ARM: Нажимает на остатки товара\nв товарной строке заказа +ARM -> OMS: API GET /quantity-list-by-office +activate OMS +OMS -> OMS: валидирует запрос + +OMS -> Susanin: POST method get_logistic_chains_with_priority +activate Susanin +return answer API POST + +OMS -> OMS: запрос в mongodb Order с фильтрами по товару +OMS -> OMS: Формирует два массива:\n1. По лог.цепям\n2. Прочие склады + +return answer API GET +ARM --> user: Рендерит данные в модальном окне @enduml \ No newline at end of file diff --git a/oms/interface-arm/journals/order-journal/filters.puml b/oms/interface-arm/journals/order-journal/filters.puml new file mode 100644 index 0000000..aaa7aac --- /dev/null +++ b/oms/interface-arm/journals/order-journal/filters.puml @@ -0,0 +1,52 @@ +@startuml +mainframe Получение заказов для отображения фильтров +autonumber +actor user +participant ARM +participant OMS +collections Redis +participant MSKB +database Database + +user -> ARM: Устанавливает фильтры +alt устанавливает фильтр по ПВЗ +user -> ARM: Начинает вводить наименование ПВЗ +ARM -> OMS: Запрашивает список подходящих ПВЗ +OMS -> Redis: Запрашивает список ПВЗ +Redis --> OMS: Возвращает список ПВЗ +OMS --> ARM: Возвращает список ПВЗ +user -> ARM: Выбирает необходимый ПВЗ +ARM -> ARM: Запоминает идентификатор ПВЗ +else устанавливает фильтр по менеджеру +user -> ARM: Начинает вводить ФИО менеджера +ARM -> OMS: Запрашивает список подходящих менеджеров +OMS -> Redis: Запрашивает список менеджеров +Redis --> OMS: Возвращает список менеджеров +OMS --> ARM: Возвращает список менеджеров +user -> ARM: Выбирает необходимого менеджера +ARM -> ARM: Запоминает идентификатор менеджера +else устанавливает фильтр по КА +user -> ARM: Нажимает на фильтр по КА +ARM --> user: Открывает модальное окно "Поиск КА" +user -> ARM: Ищет необходимого КА +ARM -> OMS: Запрашивает список подходящих КА +OMS -> MSKB: Запрашивает список КА +MSKB --> OMS: Возвращает список КА +OMS --> ARM: Возвращает список КА +user -> ARM: Выбирает необходимого КА +ARM -> ARM: Запоминает идентификатор КА +end + +alt Необходимы сортировки +user -> ARM: Выбирает необходимую сортировку +ARM -> ARM: Запоминает выбор пользователя +else Не устанавливаются сортировки +end +user -> ARM: Нажимает кнопку Enter или "Обновить" +ARM -> ARM: Формирует запрос на bf +ARM -> OMS: Отправляет запрос +OMS -> Database: Запрашивает список заказов\nс установленными фильтрами +Database --> OMS: Ответ +OMS --> ARM: Ответ +ARM --> user: Отображает журнал заказов +@enduml \ No newline at end of file diff --git a/oms/interface-arm/journals/order-journal/search.puml b/oms/interface-arm/journals/order-journal/search.puml new file mode 100644 index 0000000..6fe782d --- /dev/null +++ b/oms/interface-arm/journals/order-journal/search.puml @@ -0,0 +1,29 @@ +@startuml +mainframe Получение заказов для отображения фильтров +autonumber +actor user +participant ARM +participant OMS +database Database + +user -> ARM: Вводит один или несколько номеров заказов +ARM -> ARM: Делит строку по пробелам +alt Необходимы сортировки +user -> ARM: Выбирает необходимую сортировку +ARM -> ARM: Запоминает выбор пользователя +else Не устанавливаются сортировки +end +user -> ARM: Нажимает кнопку Enter или "Обновить" +ARM -> ARM: Формирует запрос +ARM -> OMS: Отправляет запрос на bf +OMS -> OMS: Проверяет есть ли объекты длиной 5 символов +alt Если такие объекты есть +OMS -> OMS: Формирует запрос с регулярным выражением,\nгде поиск осуществляется\nпо последним 5 символам строки +else Если таких объектов нет +OMS -> OMS: Формирует стандартный запрос в БД +end +OMS -> Database: Запрашивает список заказов по выбранным параметрам +Database --> OMS: Ответ +OMS --> ARM: Ответ +ARM --> user: Отображает журнал заказов +@enduml \ No newline at end of file diff --git a/oms/personal-cabinet/change note.puml b/oms/interface-arm/personal-cabinet/change note.puml similarity index 97% rename from oms/personal-cabinet/change note.puml rename to oms/interface-arm/personal-cabinet/change note.puml index 1ba5caf..23fb7d4 100644 --- a/oms/personal-cabinet/change note.puml +++ b/oms/interface-arm/personal-cabinet/change note.puml @@ -1,23 +1,23 @@ - @startuml -mainframe Добавление/удаление заметки пользователя в ЛК -scale 1500x1500 -actor user as user -participant ARM -participant Gateway -participant personalCabinet - -autonumber -user -> ARM: Нажимает кнопку "Главная" -alt Пользователь ввел текст и снял фокус с поля -ARM -> Gateway: Отправляет запрос на\nPUT personal-cabinet/v1/note -else Пользователь нажал кнопку "Очистить" -ARM -> Gateway: Отправляет запрос на\nDELETE personal-cabinet/v1/note -end - - -ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/note -Gateway -> personalCabinet: Вызывает методы для\nизменения заметок по пользователю -personalCabinet --> Gateway: answer -Gateway --> ARM: answer -ARM --> user: answer + @startuml +mainframe Добавление/удаление заметки пользователя в ЛК +scale 1500x1500 +actor user as user +participant ARM +participant Gateway +participant personalCabinet + +autonumber +user -> ARM: Нажимает кнопку "Главная" +alt Пользователь ввел текст и снял фокус с поля +ARM -> Gateway: Отправляет запрос на\nPUT personal-cabinet/v1/note +else Пользователь нажал кнопку "Очистить" +ARM -> Gateway: Отправляет запрос на\nDELETE personal-cabinet/v1/note +end + + +ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/note +Gateway -> personalCabinet: Вызывает методы для\nизменения заметок по пользователю +personalCabinet --> Gateway: answer +Gateway --> ARM: answer +ARM --> user: answer @enduml \ No newline at end of file diff --git a/oms/personal-cabinet/favorites.puml b/oms/interface-arm/personal-cabinet/favorites.puml similarity index 97% rename from oms/personal-cabinet/favorites.puml rename to oms/interface-arm/personal-cabinet/favorites.puml index a307f74..c023c14 100644 --- a/oms/personal-cabinet/favorites.puml +++ b/oms/interface-arm/personal-cabinet/favorites.puml @@ -1,23 +1,23 @@ -@startuml -mainframe Взаимодействие с избранным -scale 1500x1500 -actor user as user -participant ARM -participant Gateway -participant Order - -autonumber -user -> ARM: Нажимает иконку\nсердечка в любом заказе - -alt Поле было предварительно выделено (активное состояние) -ARM -> Gateway: Отправляет запрос на\nDELETE orders/v1/{orderID}/favorite -else Поле было предварительно не выделено (не активное состояние) -ARM -> Gateway: Отправляет запрос на\nPOST orders/v1/{orderID}/favorite -end - -Gateway -> Order: Вызывает метод\nвзаимодействия с заказом -Order -> Order: Обновляет модель order\n(Либо добавляет uuid юзера\nлибо удаляет) -Order --> Gateway: answer -Gateway --> ARM: answer -ARM --> user: answer +@startuml +mainframe Взаимодействие с избранным +scale 1500x1500 +actor user as user +participant ARM +participant Gateway +participant Order + +autonumber +user -> ARM: Нажимает иконку\nсердечка в любом заказе + +alt Поле было предварительно выделено (активное состояние) +ARM -> Gateway: Отправляет запрос на\nDELETE orders/v1/{orderID}/favorite +else Поле было предварительно не выделено (не активное состояние) +ARM -> Gateway: Отправляет запрос на\nPOST orders/v1/{orderID}/favorite +end + +Gateway -> Order: Вызывает метод\nвзаимодействия с заказом +Order -> Order: Обновляет модель order\n(Либо добавляет uuid юзера\nлибо удаляет) +Order --> Gateway: answer +Gateway --> ARM: answer +ARM --> user: answer @enduml \ No newline at end of file diff --git a/oms/personal-cabinet/get-info-order.puml b/oms/interface-arm/personal-cabinet/get-info-order.puml similarity index 97% rename from oms/personal-cabinet/get-info-order.puml rename to oms/interface-arm/personal-cabinet/get-info-order.puml index 93ea10f..912326f 100644 --- a/oms/personal-cabinet/get-info-order.puml +++ b/oms/interface-arm/personal-cabinet/get-info-order.puml @@ -1,17 +1,17 @@ -@startuml -mainframe Получение данных о заказах для ЛК пользователя -scale 1500x1500 -actor user as user -participant ARM -participant Gateway -participant Order - -autonumber -user -> ARM: Нажимает кнопку "Главная" -user -> ARM: Нажимает кнопку "Статистика по заказам" -ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/stats -Gateway -> Order: Вызывает методы для получения всех необходимых срезов по заказам -Order --> Gateway: answer -Gateway --> ARM: answer -ARM --> user: Рендерит информационные блоки +@startuml +mainframe Получение данных о заказах для ЛК пользователя +scale 1500x1500 +actor user as user +participant ARM +participant Gateway +participant Order + +autonumber +user -> ARM: Нажимает кнопку "Главная" +user -> ARM: Нажимает кнопку "Статистика по заказам" +ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/stats +Gateway -> Order: Вызывает методы для получения всех необходимых срезов по заказам +Order --> Gateway: answer +Gateway --> ARM: answer +ARM --> user: Рендерит информационные блоки @enduml \ No newline at end of file diff --git a/oms/personal-cabinet/get-note.puml b/oms/interface-arm/personal-cabinet/get-note.puml similarity index 97% rename from oms/personal-cabinet/get-note.puml rename to oms/interface-arm/personal-cabinet/get-note.puml index 48297a8..a2ac929 100644 --- a/oms/personal-cabinet/get-note.puml +++ b/oms/interface-arm/personal-cabinet/get-note.puml @@ -1,16 +1,16 @@ - @startuml -mainframe Получение заметки пользователя для ЛК -scale 1500x1500 -actor user as user -participant ARM -participant Gateway -participant personalCabinet - -autonumber -user -> ARM: Нажимает кнопку "Главная" -ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/note -Gateway -> personalCabinet: Вызывает методы для получения заметок по пользователю -personalCabinet --> Gateway: answer -Gateway --> ARM: answer -ARM --> user: Рендерит текст в блоке заметок + @startuml +mainframe Получение заметки пользователя для ЛК +scale 1500x1500 +actor user as user +participant ARM +participant Gateway +participant personalCabinet + +autonumber +user -> ARM: Нажимает кнопку "Главная" +ARM -> Gateway: Отправляет запрос на GET personal-cabinet/v1/note +Gateway -> personalCabinet: Вызывает методы для получения заметок по пользователю +personalCabinet --> Gateway: answer +Gateway --> ARM: answer +ARM --> user: Рендерит текст в блоке заметок @enduml \ No newline at end of file diff --git a/personal-cabinet.puml b/oms/interface-arm/personal-cabinet/personal-cabinet.puml similarity index 100% rename from personal-cabinet.puml rename to oms/interface-arm/personal-cabinet/personal-cabinet.puml diff --git a/oms/interface-arm/products/add-promotion.puml b/oms/interface-arm/products/add-promotion.puml new file mode 100644 index 0000000..34a5299 --- /dev/null +++ b/oms/interface-arm/products/add-promotion.puml @@ -0,0 +1,58 @@ +@startuml +mainframe TO BE применение акций и скидок в заказе B2C +scale 1500x1500 +actor user as user +participant ARM +participant Sherlock +participant Gateway +participant Order +participant PDM +participant Druz +participant SCROOGE +participant Promo + +autonumber +user -> ARM: Нажимает кнопку "Применить скидки" +ARM -> ARM: Рендерит модальное окно +ARM -> ARM: Акции сайта - чекбокс активен +ARM -> ARM: Скидки, выбрано: Без скидки +autonumber 5.1 +alt Выбирает только скидки уровня ОПТ + user -> ARM: Выбирает тип ОПТа для клиента + user -> ARM: Снимает чекбокс "Акции сайта" + user -> ARM: Нажимает кнопку "Применить" + ARM -> Gateway: Передает запрос + Gateway -> Gateway: Получает название региона из кэша + Gateway -> SCROOGE: Запрашивает цены из SCROOGE согласно уровню ОПТа + SCROOGE --> Gateway: answer +autonumber 6.1 +else Выбирает только акции сайта + user -> ARM: Оставляет чекбокс "Акции сайта" + user -> ARM: Оставляет скидку с типом "Без скидки" + user -> ARM: Нажимает кнопку "Применить" + ARM -> Gateway: Передает запрос + Gateway -> Gateway: Получает название региона из кэша + Gateway -> Gateway: Готовит запрос в promo + Gateway -> Promo: Запрашивает акции и цены по товарам из Promo + Promo --> Gateway: answer +autonumber 7.1 +else Выбирает акции и скидки ОПТ + user -> ARM: Выбирает тип ОПТа для клиента + user -> ARM: Оставляет чекбокс "Акции сайта" + user -> ARM: Нажимает кнопку "Применить" + ARM -> Gateway: Передает запрос + Gateway -> Gateway: Получает название региона из кэша + Gateway -> Gateway: Готовит запрос в promo + Gateway -> Promo: Запрашивает акции и цены по товарам из Promo + Promo --> Gateway: answer + Gateway -> SCROOGE: Запрашивает цены из SCROOGE согласно уровню ОПТа + SCROOGE --> Gateway: answer + Gateway -> Gateway: Применяет наименьшие цены\nк каждому из товаров +end +autonumber 8 +Gateway -> Order: Записывает изменения в модель +Order --> Gateway: Изменения успешно применены +Gateway -> Gateway: Собирает ответ для frontend +Gateway --> ARM: Answer +ARM -> user: Отображает примененные акции +@enduml \ No newline at end of file diff --git a/oms/order mongoDB.puml b/oms/order mongoDB.puml new file mode 100644 index 0000000..ed15c4b --- /dev/null +++ b/oms/order mongoDB.puml @@ -0,0 +1,251 @@ +@startjson + + + +' Здесь указываем какие атрибуты нужно подсвечивать в схеме +#highlight "order" / "Recipient" / "ID" <> +#highlight "order" / "Recipient" / "RecipientAddress" <> +#highlight "order" / "Recipient" / "RecipientPhone" <> +#highlight "order" / "Recipient" / "RecipientName" <> + +{ + "order": { + "orderID": "uuid || Номер заказа", + "managerInfo": { + "CreatedBy": "uuid || Идентификатор автора заказа из AD", + "CreatedFullName": "string || ФИО автора заказа", + "UpdatedBy": "uuid || Идентификатор последнего обновлявшего заказ", + "UpdatedFullName": "string || ФИО последнего обновлявшего заказ", + "ManagerGroup": "int || Идентификатор группы менеджера", + "ManagerPhoneNumber": "string || Номер телефона менеджера", + "ManagerExtensionNumber": "string || Добавочный номер телефона менеджера" + }, + "RootOrder": "uuid || UUID корневого заказа", + "Number": "string || Номер заказа в формате ****-******-*****", + "OrderStatus": "int || Идентификатор статуса заказа (от 0 до 7)", + "Contractor": { + "Type": "int || Тип контрагента.", + "B2CContractor": { + "Person": { + "ID": "uuid || Идентификатор (UUID) контрагента", + "FullName": "string || Полное ФИО КА", + "Phone": "string || Номер телефона КА", + "Email": "string || Email адрес КА" + } + }, + "B2BContractor": { + "ID": "uuid || Идентификатор (UUID) контрагента", + "Name": "string || Полное наименование КА", + "TIN": "string || Номер ИНН", + "ContactPersons (array)": { + "Person": { + "ID": "uuid || Идентификатор (UUID) контрагента", + "FullName": "string || Полное ФИО КА", + "Phone": "string || Номер телефона КА", + "Email": "string || Email адрес КА" + }, + "SmsPhoneNumber": "string || Номер телефона для СМС" + }, + "CurrentContactPersonID": "uuid || ID выбранного КЛ для заказа", + "Curator": { + "ID": "uuid || Идентификатор куратора", + "FullName": "string || ФИО куратора" + }, + "Contract": { + "ID": "uuid || Идентификатор договора", + "Number": "string || Номер договора", + "Kind": "int || Тип договора" + }, + "BaseDocumentSettings": { + "GovernmentContractID": "string || Идентификатор государственного контракта", + "InvoiceTransferBasis": "string || Основание передачи в счете на оплату", + "ShippingDocuments": { + "TransferBasisDocument": "string || документ-основание передачи(сдачи)/получения(приемки)", + "TransferBasisAdditionalDetails": "string || Дополнительные сведения основания передачи", + "OtherInformation": "string || Иные сведения" + } + } + } + }, + "Recipient": { + "ID": "uuid || Идентификатор (UUID) грузополучателя", + "RecipientName": "string || Имя грузополучателя заказа", + "RecipientPhone": "string || Номер телефона грузополучателя", + "RecipientAddress": "string || Адрес грузополучателя" + }, + "Properties": { + "BasicTimestamps": { + "CreatedAt": "date-time || Дата и время создания заказа", + "UpdatedAt": "date-time || Дата и время последнего обновления заказа" + }, + "OriginID": "int || Идентификатор источника заказа", + "SiteOrderDate": "date-time || Дата и время заказа выбранное на сайте", + "OrderComment": "string || Комментарий к заказу. Во wtis: primSklad", + "TtnNumber": "string || Номер ТТН", + "TtnDate": "string || Дата ТТН", + "IsPartialShipmentFromSite": "bool || Признак ЧО с сайта", + "PaymentAmount": "float || Сумма внесенной оплаты", + "BookingEndDates": "array || Массив с датами истечения бронирования заказа", + "IsPrepaymentRequired": "bool || Признак Необходима предоплата", + "RegionGUID": "uuid || Идентификатор (UUID) региона", + "RegionName": "string || Наименование региона", + "TypeOrderFromSite": "string || Тип заказа с сайта. normal / fast", + "Firma": "GUID фирмы отгружающей товар." + }, + "Artifacts": { + "PartialShipment": "bool || Признак Частичная отгрузка", + "OrderMasterSystem": "string || Признак мастер-система по заказу", + "KkmDate": "string || Дата ККМ", + "KkmAmount": "float || Сумма оплаты через ККМ", + "PaymentKkm": "bool || Признак оплата через ККМ", + "PaymentCb": "bool || Признак оплата по счету", + "PaymentCard": "bool || Признак картой", + "IsEwalletPayment": "bool || Признак оплата с сайта", + "OrderStateWtis": "int || Состояние заказа из WTIS", + "AttbOplata": "int || Статус оплаты (0 - Не оплачено, 1 - Частичная оплата, 2 - Оплачено). || deprecated", + "OrderStatusWtis": "int || Статус заказа из WTIS", + "IsPromoEnabled": "bool || Признак, что сайт взаимодействует с МС Promo и берет распродажную инфу оттуда.", + "IsYandexEnabled": "bool || Признак, что адрес передается в новом формате для курьерки." + }, + "Supplies (array)": { + "ID": "uuid || Идентификатор поставки", + "ShipmentID": "uuid || Идентификатор шипмента", + "ProductID": "uuid || Идентификатор номенклатуры", + "SourceOffice": "uuid || Идентификатор склада на котором находится товар", + "ReserveTo": "date-time || Дата резерв до", + "PurchaseIDs": "array || Массив идентификаторов закупки", + "UnreserveDate": "date-time || Дата фактического снятия с резерва товара", + "Quantity": "int || Количество товара в доставке. Суммарное количество должно быть равно quantity в items", + "StatusItem": "int || Идентификатор статуса товара", + "Artifacts": { + "StatusItemWtis": "int || Клиентский статус товара из WTIS", + "Attb": "Состоние товара из WTIS", + "FlagReturn": "bool || Признак Возврат товара. 1 - товар с вкладки Возвраты, 0 - для товаров с вкладки Товары.", + "FlagReturnedToSklad": "bool || Принят на склад", + "AppendUser": "uuid || ID пользователя кто добавил поставку", + "ChangeUser": "uuid || ID пользователя кто последний изменил поставку" + }, + "DateCanDeliver": "date-time || Дата 'Сможем доставить'.", + "CreatedAt": "date-time || Дата создания поставки", + "UpdatedAt": "date-time || Дата последнего обновления поставки", + "Prices": { + "DiscountPrice": "float || Сумма скидки", + "DiscountCategory": "string || Категория скидки", + "DiscountReason": "string || Причина скидки", + "InitialPrice": "float || Начальная цена", + "PurchasePrice": "float || Цена закупки", + "Price": "float || Цена товара", + "Discount": "float || Процент скидки", + "ClearanceSaleID": "uuid || Идентификатор распродажи", + "IsPromoCodeUsed": "bool || Флаг использования промокода", + "PromotionID": "int || Идентификатор акции из МС Promo", + "ExtraCost": "float || Цена доставки на единицу товара" + }, + "IsRestored": "bool || Признак восстановления поставки.", + "DeliveryDate": "date-time || Дата доставки" + }, + "Shipment": { + "Meta": { + "ID": "uuid || Идентификатор shipment", + "OrderID": "uuid || Идентификатор заказа", + "MethodID": "int || Идентификатор шипмента", + "Status": "int || Статус доставки", + "DeliveryDate": "date-time || Дата доставки", + "Services": { + "Settings": { + "SpreadExtraCost": "bool || Размазать стоимость доставки по товарам связанным с доставкой" + } + }, + "CreatedAt": "date-time || Дата создания доставки", + "UpdatedAt": "date-time || Дата последнего обновления доставки" + }, + "ShipmentPickup": { + "OfficeGUID": "uuid || Идентификатор офиса" + }, + "ShipmentCourier": { + "FactDeliveryBoy": "uuid || Идентификатор курьера который отдал заказ", + "FreeReason": "int || Причина бесплатной доставки", + "FiasID": "uuid || FIAS идентификатор адреса доставки", + "IntervalGUID": "uuid || Идентификатор интервала курьерской доставки", + "DeliveryAregGUID": "uuid || Идентификатор AREG адреса доставки", + "AddressTail": { + "AddressTailID": "uuid || Идентификатор хвоста адреса", + "Flat": "int || Номер квартиры", + "Entrance": "int || Подъезд", + "Floor": "int || Этаж", + "AddressComment": "string || Комментарий к адресу", + "ContactNumber": "string || Контактный номер в адресе доставки" + }, + "IntervalValue": "string || Значение интервала доставки", + "Latitude": "string || Широта адреса доставки", + "Longitude": "string || Долгота адреса доставки", + "CourierGUID": "uuid || Идентификатор курьера в заказе", + "DeliveryBoyName": "string || ФИО курьера в заказе", + "AddrDostav": "string || Адрес доставки", + "CourierDeliveryCost": "int || Стоимость доставки", + "CourierComment": "string || Комментарий для курьера" + }, + "ShipmentTKPickup": { + "TransportCompanyID": "uuid || Идентификатор транспортной компании", + "TransportCompanyCityID": "uuid || Идентификатор города ТК", + "TransportCompanyCityName": "string || Название города ТК", + "TransportCompanyExternalCode": "string || Внешний код офиса ТК в системе CDEK", + "TransportCompanyTariffID": "uuid || Идентификатор тарифа ТК", + "TransportCompanyTariffName": "string || Наименование тарифа", + "CourierDeliveryCost": "int || Стоимость доставки", + "CourierComment": "string || Комментарий для курьера" + }, + "shipmentTKCourier": { + "TransportCompanyID": "uuid || Идентификатор транспортной компании", + "TransportCompanyCityID": "uuid || Идентификатор города ТК", + "TransportCompanyCityName": "string || Название города ТК", + "TransportCompanyExternalCode": "string || Внешний код офиса ТК в системе CDEK", + "TransportCompanyTariffID": "uuid || Идентификатор тарифа ТК", + "TransportCompanyTariffName": "string || Наименование тарифа", + "IntervalValue": "string || Значение интервала доставки", + "Latitude": "string || Широта адреса доставки", + "Longitude": "string || Долгота адреса доставки", + "AddrDostav": "string || Адрес доставки", + "FiasID": "uuid || FIAS идентификатор адреса доставки", + "IntervalGUID": "uuid || Идентификатор интервала курьерской доставки", + "DeliveryAregGUID": "uuid || Идентификатор AREG адреса доставки", + "AddressTail": { + "AddressTailID": "uuid || Идентификатор хвоста адреса", + "Flat": "int || Номер квартиры", + "Entrance": "int || Подъезд", + "Floor": "int || Этаж", + "AddressComment": "string || Комментарий к адресу", + "ContactNumber": "string || Контактный номер в адресе доставки" + }, + "CourierDeliveryCost": "int || Стоимость доставки", + "DeliveryWay": "int || Тип доставки, через транспортную компанию", + "CourierComment": "string || Комментарий для курьера" + } + } + } +} +@endjson \ No newline at end of file diff --git a/ordering.puml b/oms/process/ordering.puml similarity index 100% rename from ordering.puml rename to oms/process/ordering.puml diff --git a/shipment.puml b/shipment.puml deleted file mode 100644 index b2edf9b..0000000 --- a/shipment.puml +++ /dev/null @@ -1,32 +0,0 @@ -@startjson -{ - "ShipmentDoc":{ - "ShipmentMeta":{ - "id":"uuid || Идентификатор доставки", - "OrderID":"uuid || Идентификатор заказа", - "MethodId":"int(enum) || Способы доставки", - "DeliveryDate":"datetime || Дата доставки", - "Services":{ - "Settings":{ - "SpreadExtraCost":"bool || Размазать стоимость доставки по товарам связанным с доставкой" - } - }, - "CreatedAt":"datetime || Дата создания доставки", - "UpdatedAt":"datetime || Дата обновления доставки", - "Artifact": { - "DeliveryWith":"string || Начальный временной промежуток курьерской доставки", - "TrackingNumberId":"int || Удалить, бесполезное поле", - "PartnerDeliverTo":"string || ??? ", - "DestinationOfficeID":"int || Идентификатор офиса, откуда везем товар", - "DeliveryOn":"string || Верхняя граница часов доставки ", - "DeliveryType":"bool || - обычная доставка 1 - доставка строительных материалов", - "DeliveryZone":"int || id зоны доставки строительных материалов из таблицы wtis_ref_town_zone ", - "VeerouteExportDate":"datetime || Дата выгрузки в Veeroute ", - "AddressID":"int || Идентификатор адреса доставки (внутренний от WTIS) " - } - }, - "": { - } - } - } -@endjson \ No newline at end of file