new scheme
This commit is contained in:
83
oms/process/commodity-process-logic.puml
Normal file
83
oms/process/commodity-process-logic.puml
Normal 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
|
||||
Reference in New Issue
Block a user