Files
plantUML/oms/process/commodity-process-logic.puml
2025-12-19 12:45:15 +03:00

83 lines
2.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
@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