/**
 * @defgroup public_capital_project_opening_process Открытие проекта для инвестиций
 * @ingroup public_capital_processes
 * 
 * Процесс перевода запланированного проекта в статус открытого
 * для привлечения инвестиций от участников кооператива.
 * 
 * ## Назначение процесса
 * 
 * Открытие проекта для инвестиций обеспечивает:
 * - Переход от фазы планирования к фазе привлечения средств
 * - Активацию возможности инвестирования для участников
 * - Начало формирования финансовой базы проекта
 * - Подготовку к активной фазе реализации
 * 
 * \htmlonly
 * <div class="mermaid">
 * sequenceDiagram
 *     participant К as Кооператив
 *     participant ПК as Контракт Capital
 *     participant П as Проект
 *     
 *     К->>ПК: 1. Инициация открытия проекта
 *     Note over ПК: Проверка готовности проекта
 *     ПК->>П: 2. Проверка статуса и плана
 *     alt Проект готов к открытию
 *         П->>ПК: 3. Подтверждение готовности
 *         ПК->>П: 4. Открытие проекта для инвестиций
 *         П->>К: 5. Проект открыт для инвестиций
 *     else Проект не готов
 *         ПК->>К: Ошибка: проект не готов к открытию
 *     end
 * </div>
 * \endhtmlonly
 * 
 * ## Пошаговое описание процесса
 * 
 * ### Шаг 1: Инициация открытия проекта
 * <b>Действие:</b> @ref capital::openproject "Открытие проекта"
 * 
 * Кооператив инициирует открытие проекта для инвестиций после
 * завершения фазы планирования и подготовки всех необходимых
 * параметров проекта.
 * 
 * ### Шаг 2: Проверка готовности проекта
 * <b>Действие:</b> Валидация предварительных условий
 * 
 * Система проверяет готовность проекта к открытию:
 * - Проект должен быть в статусе запланированного (is_planed = true)
 * - Проект не должен быть уже открыт (is_opened = false)
 * - План проекта должен быть установлен
 * 
 * @post Подтверждены все предварительные условия
 * 
 * ### Шаг 3: Открытие проекта
 * <b>Действие:</b> Активация инвестиционной фазы
 * 
 * Система переводит проект в статус открытого для инвестиций:
 * - Устанавливает флаг is_opened = true
 * - Копирует план расходов в фактические данные (target_expense_pool)
 * - Активирует возможность операций инвестирования
 * 
 * @post Проект открыт для приема инвестиций
 * @post Флаг is_opened установлен в true
 * @post target_expense_pool скопирован в fact.target_expense_pool
 * 
 * ## Условия для открытия
 * 
 * <b>Обязательные требования:</b>
 * - Проект должен быть запланирован (is_planed = true)
 * - Проект не должен быть уже открыт (is_opened = false)
 * - Должен быть установлен план проекта через setplan
 * - Должен быть назначен мастер проекта
 * 
 * <b>Результат открытия:</b>
 * - Флаг is_opened устанавливается в true
 * - plan.target_expense_pool копируется в fact.target_expense_pool
 * - Разрешаются операции инвестирования
 * 
 * ## Результат процесса
 * 
 * После завершения процесса:
 * 1. Проект переведен в статус открытого для инвестиций
 * 2. Активированы механизмы привлечения средств
 * 3. Создана финансовая основа для реализации проекта
 * 4. Подготовлен переход к активной фазе работы
 * 
 * ## Связанные процессы
 * 
 * - @ref public_capital_planning_process "Планирование проекта" - предшествующий этап
 * - @ref public_capital_project_investment_process "Инвестирование в проект" - следующий этап
 * - @ref public_capital_project_start_process "Запуск генерации проекта" - переход к активной фазе генерации
 * 
 * @see capital::openproject
 * @see Capital::Projects::open_project
 * @see Capital::Projects::get_project_or_fail
 */