COOPENOMICS  v1
Кооперативная Экономика
Файл segments.hpp
#include <eosio/eosio.hpp>
#include <eosio/asset.hpp>

См. исходные тексты.

Классы

struct  Capital::Segments::segment
 Таблица сегментов хранит данные о вкладах участника в проект. Подробнее...
 

Пространства имен

namespace  Capital
 
namespace  Capital::Segments
 
namespace  Capital::Segments::Status
 Константы статусов сегмента
 

Определения типов

typedef eosio::multi_index< "segments"_n, segment, indexed_by<"byproject"_n, const_mem_fun< segment, checksum256, &segment::by_project_hash > >, indexed_by<"byprojuser"_n, const_mem_fun< segment, uint128_t, &segment::by_project_user > > > Capital::Segments::segments_index
 

Функции

std::optional< segment > Capital::Segments::get_segment (eosio::name coopname, const checksum256 &project_hash, eosio::name username)
 
segment Capital::Segments::get_segment_or_fail (eosio::name coopname, const checksum256 &project_hash, eosio::name username, const char *msg)
 
segment Capital::Segments::get_segment_by_id_or_fail (eosio::name coopname, uint64_t segment_id, const char *msg="Сегмент не найден")
 
uint64_t Capital::Segments::count_project_authors (eosio::name coopname, const checksum256 &project_hash)
 Подсчитывает количество авторов в проекте. Подробнее...
 
bool Capital::Segments::is_voting_participant (eosio::name coopname, const checksum256 &project_hash, eosio::name username)
 Проверяет является ли пользователь участником голосования Подробнее...
 
bool Capital::Segments::is_pure_investor (const segment &seg)
 Проверяет является ли участник чистым инвестором (только инвестор, без других интеллектуальных ролей) Подробнее...
 
bool Capital::Segments::has_intellectual_contribution_roles (const segment &seg)
 Проверяет имеет ли участник роли, требующие внесения интеллектуального результата Подробнее...
 
eosio::asset Capital::Segments::calculate_non_investor_contribution (const segment &seg)
 Рассчитывает сумму неинвестиционных вкладов сегмента (для внесения результата) Подробнее...
 
eosio::asset Capital::Segments::calculate_segment_base_cost (const segment &seg)
 Рассчитывает базовую стоимость сегмента Подробнее...
 
eosio::asset Capital::Segments::calculate_segment_bonus_cost (const segment &seg, const Capital::project &project)
 Рассчитывает бонусную стоимость сегмента Подробнее...
 
void Capital::Segments::update_segment_total_cost (eosio::name coopname, uint64_t segment_id, const Capital::project &project)
 Обновляет все стоимости сегмента (базовые, бонусные и общую) Подробнее...
 
void Capital::Segments::update_segment_status (eosio::name coopname, const checksum256 &project_hash, eosio::name username, eosio::name new_status)
 Обновляет статус результата в сегменте Подробнее...
 
void Capital::Segments::update_segment_after_result_contribution (eosio::name coopname, const checksum256 &project_hash, eosio::name username, eosio::asset debt_settled_amount=asset(0, _root_govern_symbol))
 Объединенная функция: обновляет сегмент после принятия результата и пересчитывает доли участника Оптимизированная версия для избежания двойного обновления одной записи Подробнее...
 
uint64_t Capital::Segments::get_segment_id (eosio::name coopname)
 
void Capital::Segments::update_segment_voting_results (eosio::name coopname, const Capital::project &project, const segment &segment, eosio::name username, eosio::asset voting_amount, eosio::asset equal_author_amount, eosio::asset direct_creator_amount)
 Обновляет сегмент участника результатами голосования и премиями Подробнее...
 
void Capital::Segments::set_investor_base_amount_on_return_unused (eosio::name coopname, uint64_t segment_id, eosio::asset used_amount)
 
void Capital::Segments::increase_debt_amount (eosio::name coopname, uint64_t segment_id, eosio::asset amount)
 
void Capital::Segments::decrease_debt_amount (eosio::name coopname, uint64_t segment_id, eosio::asset amount)
 
void Capital::Segments::remove_segment (eosio::name coopname, uint64_t segment_id)
 Удаляет сегмент участника Подробнее...
 
void Capital::Segments::remove_all_project_segments (eosio::name coopname, const checksum256 &project_hash)
 Удаляет все сегменты участников проекта (по secondary index byproject) Подробнее...
 
void Capital::Segments::create_author_segment (eosio::name coopname, eosio::name username, const Capital::project &project)
 Создает сегмент автора для проекта Подробнее...
 
void Capital::Segments::update_segment_author_status (eosio::name coopname, uint64_t segment_id, const Capital::project &project)
 Обновляет сегмент, устанавливая статус автора Подробнее...
 
bool Capital::Segments::has_project_segments (eosio::name coopname, const checksum256 &project_hash)
 Проверяет наличие сегментов в проекте Подробнее...
 

Переменные

const eosio::name Capital::Segments::Status::GENERATION = "generation"_n
 На генерации результата Подробнее...
 
const eosio::name Capital::Segments::Status::READY = "ready"_n
 Проект завершен, ожидает внесения результата Подробнее...
 
const eosio::name Capital::Segments::Status::STATEMENT = "statement"_n
 Сегмент на стадии взноса результата (заявление подано) Подробнее...
 
const eosio::name Capital::Segments::Status::APPROVED = "approved"_n
 Результат одобрен председателем Подробнее...
 
const eosio::name Capital::Segments::Status::AUTHORIZED = "authorized"_n
 Результат авторизован советом Подробнее...
 
const eosio::name Capital::Segments::Status::ACT1 = "act1"_n
 Первый акт подписан участником Подробнее...
 
const eosio::name Capital::Segments::Status::CONTRIBUTED = "contributed"_n
 Результат внесён и принят (второй акт подписан) Подробнее...
 
const eosio::name Capital::Segments::Status::SKIPPED = "skipped"_n
 Внесение результата пропущено за отсутствием интеллектуальной части Подробнее...