new scheme

This commit is contained in:
2025-12-19 12:45:15 +03:00
parent 7343edec51
commit 91ff1642dc
13 changed files with 1243 additions and 176 deletions

View File

@@ -0,0 +1,83 @@
@startuml
!theme plain
title Обработка товарных позиций при корректировке
start
:Получена корректировка заказа;
:Сравнить товары OMS и WTIS;
partition "Определить операции с товарами" {
:Товары для добавления;
note right: Есть в OMS, нет в WTIS
:Товары для удаления;
note right: Есть в WTIS, нет в OMS
:Товары для изменения;
note right: Есть в обоих, но с отличиями
}
partition "Обработать изменения товаров" {
if (Есть товары для изменения?) then (да)
:Для каждого товара проверить изменения;
if (Изменилось количество?) then (да)
if (Товар в резерве?) then (да)
:Создать копию с новым количеством;
:Удалить избыточную часть;
note right: Сложная логика split
else (нет)
:Изменить количество напрямую;
endif
endif
if (Изменилась цена?) then (да)
:Обновить цену и скидку;
endif
if (Изменился резерв?) then (да)
:Обновить дату резерва;
endif
endif
}
partition "Применить операции" {
if (Есть товары для добавления?) then (да)
:Создать новые товарные позиции;
endif
if (Есть товары для изменения?) then (да)
:Обновить существующие позиции;
endif
if (Есть товары для удаления?) then (да)
:Снять резерв с товаров;
:Установить статус "Удален";
:Удалить из заказа;
endif
}
partition "Обработать резервирование" {
if (Смена региона или ПВЗ?) then (да)
:Снять резерв со всех товаров;
note right: При смене региона/ПВЗ
endif
if (Есть товары для резервирования?) then (да)
:Зарезервировать товары;
note right: Из массива reserve
endif
if (Есть товары для снятия резерва?) then (да)
:Снять резерв с товаров;
note right: Из массива unreserve
endif
}
:Завершить обработку;
stop
@enduml