/**

@defgroup public_capital_withdraw_from_program_process Возврат паевого взноса из программы
@ingroup public_capital_processes

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

## Диаграмма процесса

\htmlonly
<div class="mermaid">
sequenceDiagram
    participant P as Участник
    participant C as Capital Contract
    participant S as Soviet Contract
    participant W as Wallet Contract

    P->>C: 1. Подача заявления на возврат средств
    Note over C: Резервирование суммы к возврату<br/>Списание с доступного капитала
    C->>S: 2. Создание запроса на одобрение

    S->>C: 3. Принятие решения председателем
    Note over S: Рассмотрение заявления<br/>Подготовка протокола
    C->>S: 4. Постановка вопроса на повестку совета

    alt Одобрение советом
        S->>C: 5. Авторизация возврата
        Note over C: Подтверждение операции
        C->>W: 6. Перевод средств в главный кошелёкёк
        Note over W: Средства становятся<br/>доступны участнику
    else Отклонение советом
        S->>C: 5. Отклонение заявления
        Note over C: Возврат зарезервированной<br/>суммы в кошелек участника
    end
</div>
\endhtmlonly

## Подача заявления участником

Участник указывает сумму для возврата из программы благороста. Система проверяет достаточность накопленных средств в программе. При успешной проверке запрашиваемая сумма резервируется (блокируется) в кошельке участника в программе.

## Рассмотрение председателем

Заявление поступает на предварительное рассмотрение председателю или доверенному администратору. Председатель анализирует обоснованность запроса и принимает решение о передаче вопроса в совет.

## Решение совета

Вопрос выносится на повестку заседания совета. Совет принимает коллегиальное решение об одобрении или отклонении заявления.

## Исполнение решения

При одобрении средства переводятся в главный кошелёкек участника. При отклонении зарезервированная сумма возвращается в кошелек участника в программе благороста.

## Создание заявления на возврат из программы
@ref capital::createwthd3 "Создание заявления на возврат из программы"

Участник подаёт заявление на возврат части накопленных членских взносов из программы благороста:

@pre <b>Входящий документ:</b> Заявление на возврат части паевого взноса из программы "Благорост"
@pre <b>Предварительные условия:</b>
- Участник имеет положительный баланс доступных средств в программе
- Запрашиваемая сумма не превышает доступный баланс

<b>Механика возврата:</b>
- Выполняется обновление информации о накоплениях в программе
- Проверяется достаточность доступных средств
- Сумма резервируется для возврата, что уменьшает доступный баланс в кошельке программы

<b>Результат:</b> Заявление создано, средства зарезервированы для возврата. После применения возврата доступная сумма к возврату уменьшается, так как уменьшается сумма на кошельке участника в программе.

## Авторизация возврата из программы
@ref capital::capauthwthd3 "Авторизация возврата из программы"

После одобрения председателем и авторизации советом выполняется возврат:

@post Уменьшение заблокированного баланса кошелька программа
@post Увеличение доступного баланса главного кошелька

## Отклонение возврата из программы
@ref capital::capdeclwthd3 "Отклонение возврата из программы"

При отклонении заявления:
- Сумма возвращается в кошелек участника в программе благороста
- Заявление удаляется из системы

## Эффекты процесса
@include{doc} createwthd3-effect.dox

## Связанные процессы

- @ref public_capital_fundprog_process "Регистрация членских взносов в программу"
- @ref public_capital_refresh_program_process "Обновление кошелька программы"

*/