121 lines
4.1 KiB
Plaintext
121 lines
4.1 KiB
Plaintext
@startuml Редактирование счета на оплату
|
||
!pragma teoz true
|
||
|
||
title AS IS Редактирование счета на оплату (флоу из ТЗ COMPRO-3467)
|
||
|
||
actor "Пользователь (АРМ)" as User
|
||
participant "Frontend (АРМ)" as Front
|
||
participant "Gateway (Прокси)" as Gateway
|
||
participant "OMS-Documents (метаданные)" as Docs
|
||
participant "Хранилище (S3)" as S3
|
||
participant "OMS-Print (конвертация)" as Print
|
||
participant "Редактор (Tiptap)" as Editor
|
||
|
||
== 1. ИНИЦИАЦИЯ РЕДАКТИРОВАНИЯ (ПОЛУЧЕНИЕ HTML) ==
|
||
|
||
User -> Front: Клик "Редактировать счет" (актуальный)
|
||
activate Front
|
||
|
||
Front -> Gateway: GET /documents/v1/invoice/{id}/html
|
||
activate Gateway
|
||
|
||
Gateway -> Docs: Запрос docURL для invoiceID
|
||
activate Docs
|
||
Docs --> Gateway: docURL (ссылка на PDF в S3)
|
||
deactivate Docs
|
||
|
||
Gateway -> S3: Запрос PDF файла по docURL
|
||
activate S3
|
||
S3 --> Gateway: PDF файл счета
|
||
deactivate S3
|
||
|
||
Gateway -> Print: Конвертация PDF в HTML (вызов метода)
|
||
activate Print
|
||
Print --> Gateway: HTML файл счета
|
||
deactivate Print
|
||
|
||
Gateway --> Front: HTML файл (ответ 200)
|
||
deactivate Gateway
|
||
|
||
Front -> Editor: Инициализация редактора с HTML
|
||
activate Editor
|
||
Editor --> Front: Готово
|
||
deactivate Editor
|
||
|
||
Front --> User: Открыто окно редактора
|
||
deactivate Front
|
||
|
||
== 2. РЕДАКТИРОВАНИЕ И СОХРАНЕНИЕ НОВОЙ ВЕРСИИ ==
|
||
|
||
User -> Editor: Вносит изменения (текст, таблицы)
|
||
activate Editor
|
||
Editor --> User: Изменения отображены
|
||
User -> Editor: Клик "Сохранить"
|
||
Editor -> Front: Передача измененного HTML
|
||
deactivate Editor
|
||
activate Front
|
||
|
||
Front -> Gateway: POST /documents/v1/invoice/{id}/html\n{ "html": "..." }
|
||
activate Gateway
|
||
|
||
Gateway -> Print: Конвертация HTML в PDF
|
||
activate Print
|
||
Print --> Gateway: Новый PDF файл
|
||
deactivate Print
|
||
|
||
Gateway -> S3: Сохранение нового PDF файла
|
||
activate S3
|
||
S3 --> Gateway: newDocURL (ссылка на новый файл)
|
||
deactivate S3
|
||
|
||
Gateway -> Docs: Создание новой версии записи\n(новый docURL, isSend:false, обновленные Base/Details)
|
||
activate Docs
|
||
Docs --> Gateway: OK (новая версия создана)
|
||
deactivate Docs
|
||
|
||
Gateway --> Front: 204 No Content (Успех)
|
||
deactivate Gateway
|
||
|
||
== 3. ОБНОВЛЕНИЕ ИНТЕРФЕЙСА ==
|
||
|
||
Front -> User: 1. Закрывает редактор\n2. Уведомление "Счет изменен"
|
||
Front -> Gateway: Вызов getInvoiceLatest (перезапрос)
|
||
activate Gateway
|
||
Gateway -> Docs: Запрос последней версии счета
|
||
activate Docs
|
||
Docs --> Gateway: Данные обновленного счета (с newDocURL)
|
||
deactivate Docs
|
||
Gateway --> Front: Данные обновленного счета
|
||
deactivate Gateway
|
||
|
||
Front -> User: Обновляет отображение во вкладке "Счет на оплату"
|
||
deactivate Front
|
||
|
||
@enduml
|
||
|
||
@startuml
|
||
|
||
@enduml
|
||
|
||
|
||
|
||
@startuml
|
||
|
||
title TO BE Логика расчета НДС
|
||
|
||
actor "Триггер" as User
|
||
participant "OMS" as OMS
|
||
participant "NDS" as NDS
|
||
|
||
User -> OMS: Создание спеки / счета на оплату / триггер ПМП
|
||
OMS --> OMS: Заполнение необходимых данных (Блок КА, блок доставок,\nшапка документа и т.д. в зависимости от типа документа)
|
||
OMS -> NDS: Вызывает метод: nds/vat_calc в сервисе NDS
|
||
alt Если вернулся nds_calc = nds_reverse || nds_calc = nds_direct
|
||
OMS -> NDS: Запрашашивает НДС и производные
|
||
NDS --> OMS: answer
|
||
OMS --> OMS: Подставляет НДС и производные из ответа сервиса NDS
|
||
else Если вернулся nds_calc = self
|
||
OMS --> OMS: Рассчитывает НДС и производные по формуле (UnitPrice*20)/120\n(как и было)
|
||
end
|
||
OMS --> User: answer
|
||
@enduml |