@startuml
[*] --> StateDraft
state "Проект" AS StateDraft
state "Согласован" AS StateApproved
state "Действующий" AS StateActive
State "Загружен в АРМ" AS StateInArm
State "Загружен в НССО" AS StateInNsso
State "Ручной ввод\nв АРМ" AS StateHandMade
State "Подготовка к аннулированию" AS StateToNullify
State "Аннулирован" AS StateNullify
State "Подготовка к расторжению" AS StateToTermination
State "Расторгнут" AS StateTermination
StateDraft -left-> StateApproved: Пройдена проверка ФЛК.\nЗапрошен номер договора.\nЗаполнены обяз.поля.\nНестандартные критерии согласованы.\n<b>Договор сохраняется.</b>
StateApproved --> StateActive : <b>Печать договора.</b>\nУспешная повторная проверка ФЛК.\nОтправлен в АРМ.
StateActive --> StateInArm : Проверить результат\nзагрузки в АРМ.
StateInArm -right-> StateInNsso: Проверить атрибут\nnssoStatus.
StateActive --> StateHandMade: При ошибках\nотправки в АРМ.
StateHandMade --> StateInArm : Поиск договора\nв АРМ.
StateInNsso --> [*]
StateInNsso --> StateToNullify: Аннулировать
StateToNullify --> StateNullify: Отправить в АРМ.\nПроверять\nсостояние документов
StateToNullify --> StateInNsso: При ошибках\nотправки в АРМ.
StateNullify --> [*]
StateInNsso --> StateToTermination: Расторгнуть
StateToTermination --> StateTermination: Отправить в АРМ.\nПроверять\nсостояние документов
StateToTermination --> StateInNsso: При ошибках\nотправки в АРМ.
StateTermination --> [*]
@enduml