/**

@defgroup public_capital_refresh_program_process Обновление кошелька программы
@ingroup public_capital_processes

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

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

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

    P->>C: 1. Обновление кошелька программы
    Note over C: Проверка баланса в программе
    Note over C: Расчёт delta_crps
    Note over C: Расчёт новых начислений
    Note over C: Обновление кошелька программы
    Note over C: Сохранение нового слепка CRPS
</div>
\endhtmlonly
 
@pre Участник имеет баланс в программе благороста

## Пошаговое описание

### Шаг 1: Обновление кошелька программы
@ref capital::refreshprog "Обновление кошелька программы"

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

Механика расчёта:
- доля участника равна сумме заблокированных средств и доступных средств в кошельке программы
- delta_crps равна разности кумулятивного показателя программы и персонального слепка участника  
- новые начисления равны произведению delta_crps на долю участника

Участник получает начисления пропорционально своей доле в программе.
Алгоритм CRPS обеспечивает справедливое распределение с учётом времени
вхождения в программу и исключает начисления задним числом.

@note Математический пример:
Участник с долей 100000 рублей при кумулятивном показателе программы равном 0.15
и персональном слепке участника равном 0.05 получит: (0.15 - 0.05) * 100000 = 10000 рублей.

@post доступные средства в кошельке программы увеличиваются на сумму новых начислений
@post персональный слепок CRPS устанавливается равным кумулятивному показателю программы


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

- @ref public_capital_fundprog_process "Регистрация членских взносов в программу"
- @ref public_capital_withdraw_from_program_process "Возврат паевого взноса из программы"

*/