Files
plantUML/oms/interface-arm/docs/vat_change_invoice.puml
2026-02-14 01:03:15 +03:00

121 lines
4.1 KiB
Plaintext
Raw Permalink 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 Редактирование счета на оплату
!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