COOPENOMICS  v1
Кооперативная Экономика
Деаллокации программных инвестиций

Процесс, при котором кооператив деаллоцирует неиспользованные инвестиции из завершенного проекта и возвращает их обратно в кооперативный кошелек программы "Капитализация" для повторного использования в других проектах.

Предусловие
Обязательные условия:
  • Проект завершен со статусом COMPLETED
  • В проекте есть неиспользованные программные средства
  • Авторизация от имени кооператива

sequenceDiagram participant К as Кооператив participant Контракт as Capital Contract participant Пр as Проект participant П as Программа Капитализации К->>Контракт: 1. Запрос деаллокации средств Note over Контракт: Проверка статуса проекта Контракт->>Пр: 2. Получение данных проекта Note over Пр: Проверка наличия средств alt Коэффициент использования > 100% Контракт->>Контракт: 3. Расчет неиспользованных средств else Коэффициент использования <= 100% Note over Контракт: Все средства считаются неиспользованными end Контракт->>П: 4. Возврат средств в программу Note over П: Обновление баланса программы

Пошаговое описание процесса

Шаг 1: Инициация деаллокации средств

Действие: Деаллокация инвестиций

Кооператив инициирует процесс деаллокации неиспользованных средств из завершенного проекта. Это необходимо для возврата средств в программу "Капитализация" и повторного их использования.

Заметки
Авторизация требуется от аккаунта кооператива, подтверждая его право распоряжаться средствами программы капитализации

Шаг 2: Проверка статуса проекта

Действие: Валидация статуса проекта

Система проверяет, что проект завершен со статусом COMPLETED. Только завершенные проекты могут подвергаться деаллокации средств.

Постусловие
Projects::get_project_or_fail подтверждает существование и статус проекта

Шаг 3: Проверка наличия программных средств

Действие: Проверка баланса программных средств

Система проверяет, что в проекте есть неиспользованные программные средства. Проект должен иметь положительный баланс в fact.program_invest_pool.

Постусловие
Проверка project.fact.program_invest_pool.amount > 0

Шаг 4: Расчет неиспользованных средств

Действие: Определение суммы к возврату

Система рассчитывает сумму неиспользованных программных средств:

Постусловие
Capital::Core::Generation::calculate_investor_used_amount рассчитывает использованную сумму

Шаг 5: Возврат средств в программу

Действие: Деаллокация и возврат средств

Система возвращает неиспользованные программные средства в глобальный пул:

Постусловие
Capital::Core::deallocate_program_investment_from_project производит деаллокацию средств

Шаг 6: Завершение процесса

Действие: Финализация операции

После деаллокации средства становятся доступны для повторного использования:

Постусловие
После завершения процесса:
  1. Неиспользованные средства возвращены в программу капитализации
  2. Баланс программы капитализации увеличен
  3. Пул инвестиций проекта уменьшен
  4. Средства доступны для повторной аллокации