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)
 
std::vector< segment > Capital::Segments::get_project_authors (eosio::name coopname, const checksum256 &project_hash)
 Получает всех авторов проекта. Подробнее...
 
std::vector< segment > Capital::Segments::get_project_creators (eosio::name coopname, const checksum256 &project_hash)
 Получает всех создателей проекта. Подробнее...
 
std::vector< segment > Capital::Segments::get_project_coordinators (eosio::name coopname, const checksum256 &project_hash)
 Получает всех координаторов проекта. Подробнее...
 
std::vector< segment > Capital::Segments::get_project_investors (eosio::name coopname, const checksum256 &project_hash)
 Получает всех инвесторов проекта. Подробнее...
 
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_segment_updated (eosio::name coopname, const checksum256 &project_hash, eosio::name username)
 Проверяет является ли сегмент обновленным (CRPS актуален и инвестиции синхронизированы) Подробнее...
 
void Capital::Segments::check_segment_is_updated (eosio::name coopname, const checksum256 &project_hash, eosio::name username, const char *msg="Сегмент не обновлен. Необходимо выполнить rfrshsegment")
 Проверяет является ли сегмент обновленным или падает с ошибкой Подробнее...
 
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)
 Рассчитывает бонусную стоимость сегмента Подробнее...
 
eosio::asset Capital::Segments::calculate_total_segment_cost (const segment &seg, const Capital::project &project)
 Рассчитывает общую стоимость сегмента Подробнее...
 
void Capital::Segments::update_segment_total_cost (eosio::name coopname, const checksum256 &project_hash, eosio::name username)
 Обновляет все стоимости сегмента (базовые, бонусные и общую) Подробнее...
 
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))
 Объединенная функция: обновляет сегмент после принятия результата и пересчитывает доли участника Оптимизированная версия для избежания двойного обновления одной записи Подробнее...
 
void Capital::Segments::update_segment_voting_results (eosio::name coopname, const checksum256 &project_hash, 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, const checksum256 &project_hash, eosio::name username)
 Удаляет сегмент участника Подробнее...
 
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::CONTRIBUTED = "contributed"_n
 Результат внесён, долг погашен, готов к конвертации Подробнее...
 
const eosio::name Capital::Segments::Status::ACCEPTED = "accepted"_n
 Результат принят советом Подробнее...
 
const eosio::name Capital::Segments::Status::COMPLETED = "completed"_n
 Сконвертирован Подробнее...