17 const eosio::name
ACT1 =
"act1"_n;
18 const eosio::name
ACT2 =
"act2"_n;
42 time_point_sec created_at = current_time_point();
53 checksum256
by_hash()
const {
return result_hash; }
61typedef eosio::multi_index<
"results"_n, result,
62 indexed_by<
"byusername"_n, const_mem_fun<result, uint64_t, &result::by_username>>,
63 indexed_by<
"byhash"_n, const_mem_fun<result, checksum256, &result::by_hash>>,
64 indexed_by<
"byprojecthash"_n, const_mem_fun<result, checksum256, &result::by_project_hash>>,
65 indexed_by<
"byprojuser"_n, const_mem_fun<result, uint128_t, &result::by_project_user>>
71inline std::optional<result>
get_result(eosio::name coopname,
const checksum256 &result_hash) {
73 auto idx = results.get_index<
"byhash"_n>();
75 auto it = idx.find(result_hash);
76 if (it == idx.end()) {
84 auto idx = results.get_index<
"byprojuser"_n>();
87 auto it = idx.find(rkey);
88 if (it == idx.end()) {
96 eosio::check(c.has_value(), msg);
104 eosio::name username,
const checksum256 &result_hash,
105 eosio::asset segment_cost, eosio::asset debt_amount,
const document2 &statement) {
108 results.emplace(
_capital, [&](
auto &r) {
110 r.project_hash = project_hash;
111 r.result_hash = result_hash;
112 r.coopname = coopname;
113 r.username = username;
115 r.total_amount = segment_cost;
116 r.debt_amount = debt_amount;
117 r.statement = statement;
118 r.created_at = current_time_point();
128 auto result = results.find(result_id);
129 eosio::check(
result != results.end(),
"Объект результата не найден");
139 auto result = results.find(result_id);
140 eosio::check(
result != results.end(),
"Объект результата не найден");
143 r.status = new_status;
152 auto result = results.find(result_id);
153 eosio::check(
result != results.end(),
"Объект результата не найден");
156 r.authorization = authorization;
165 auto result = results.find(result_id);
166 eosio::check(
result != results.end(),
"Объект результата не найден");
169 r.statement = approved_statement;
178 auto result = results.find(result_id);
179 eosio::check(
result != results.end(),
"Объект результата не найден");
181 results.modify(
result, coopname, [&](
auto &r){
191 auto result = results.find(result_id);
192 eosio::check(
result != results.end(),
"Объект результата не найден");
194 results.modify(
result, coopname, [&](
auto &r){
static constexpr eosio::name _capital
Definition: consts.hpp:150
static constexpr eosio::symbol _root_govern_symbol
Definition: consts.hpp:209
contract
Definition: eosio.msig_tests.cpp:977
action act
Definition: eosio.msig_tests.cpp:974
const eosio::name ACT2
Акт приёма подписан
Definition: results.hpp:18
const eosio::name ACT1
Акт передачи подписан
Definition: results.hpp:17
const eosio::name CREATED
Заявление подано
Definition: results.hpp:14
const eosio::name AUTHORIZED
Авторизовано советом
Definition: results.hpp:16
const eosio::name APPROVED
Одобрено председателем
Definition: results.hpp:15
const eosio::name DECLINED
Отклонено советом
Definition: results.hpp:19
Definition: results.hpp:6
result get_result_by_project_and_username_or_fail(eosio::name coopname, const checksum256 &project_hash, eosio::name username, const char *msg)
Definition: results.hpp:94
std::optional< result > get_result(eosio::name coopname, const checksum256 &result_hash)
Definition: results.hpp:71
void send_result_for_approval(eosio::name coopname, eosio::name username, const checksum256 &result_hash, const document2 &statement)
Отправляет результат на одобрение председателем
Definition: results.hpp:220
void set_result_act1(eosio::name coopname, uint64_t result_id, const document2 &act)
Устанавливает первый акт результата
Definition: results.hpp:176
std::optional< result > get_result_by_project_and_username(eosio::name coopname, const checksum256 &project_hash, eosio::name username)
Definition: results.hpp:82
void send_result_to_soviet(eosio::name coopname, eosio::name username, const checksum256 &result_hash, const document2 &approved_statement)
Отправляет результат на рассмотрение в совет
Definition: results.hpp:202
void set_result_approved_statement(eosio::name coopname, uint64_t result_id, const document2 &approved_statement)
Устанавливает одобренное заявление результата
Definition: results.hpp:163
void create_result_for_participant(eosio::name coopname, const checksum256 &project_hash, eosio::name username, const checksum256 &result_hash, eosio::asset segment_cost, eosio::asset debt_amount, const document2 &statement)
Создает результат для конкретного участника
Definition: results.hpp:103
void set_result_authorization(eosio::name coopname, uint64_t result_id, const document2 &authorization)
Устанавливает документ авторизации результата
Definition: results.hpp:150
void delete_result(eosio::name coopname, uint64_t result_id)
Удаляет объект результата
Definition: results.hpp:126
void update_result_status(eosio::name coopname, uint64_t result_id, eosio::name new_status)
Обновляет статус результата
Definition: results.hpp:137
void set_result_act2(eosio::name coopname, uint64_t result_id, const document2 &act)
Устанавливает второй акт результата
Definition: results.hpp:189
Definition: balances.cpp:6
eosio::multi_index<"results"_n, result, indexed_by<"byusername"_n, const_mem_fun< result, uint64_t, &result::by_username > >, indexed_by<"byhash"_n, const_mem_fun< result, checksum256, &result::by_hash > >, indexed_by<"byprojecthash"_n, const_mem_fun< result, checksum256, &result::by_project_hash > >, indexed_by<"byprojuser"_n, const_mem_fun< result, uint128_t, &result::by_project_user > > > result_index
Definition: results.hpp:66
constexpr eosio::name AUTHORIZE_RESULT
Definition: names.hpp:60
constexpr eosio::name DECLINE_RESULT
Definition: names.hpp:61
constexpr eosio::name CREATE_RESULT
Definition: names.hpp:122
constexpr eosio::name APPROVE_RESULT
Definition: names.hpp:62
constexpr eosio::name CREATE_RESULT
Definition: names.hpp:94
void create_agenda(name calling_contract, CREATEAGENDA_SIGNATURE)
Definition: soviet.hpp:54
void create_approval(name calling_contract, CREATEAPPRV_SIGNATURE)
Definition: soviet.hpp:60
Definition: eosio.msig.hpp:34
Таблица результатов хранит данные о результатах участников проектов.
Definition: results.hpp:33
eosio::name username
Имя пользователя
Definition: results.hpp:39
uint64_t primary_key() const
Первичный ключ (1)
Definition: results.hpp:51
checksum256 by_project_hash() const
Индекс по хэшу проекта (4)
Definition: results.hpp:54
document2 authorization
Решение совета
Definition: results.hpp:48
uint128_t by_project_user() const
Definition: results.hpp:56
document2 act
Акт
Definition: results.hpp:49
uint64_t id
ID результата (внутренний ключ)
Definition: results.hpp:34
eosio::name coopname
Имя кооператива
Definition: results.hpp:38
checksum256 result_hash
Хэш результата
Definition: results.hpp:36
uint64_t by_username() const
Индекс по имени пользователя (2)
Definition: results.hpp:52
checksum256 project_hash
Хэш проекта
Definition: results.hpp:35
document2 statement
Заявление
Definition: results.hpp:47
checksum256 by_hash() const
Индекс по хэшу результата (3)
Definition: results.hpp:53
Definition: document_core.hpp:27
uint64_t get_global_id_in_scope(eosio::name _me, eosio::name scope, eosio::name key)
Definition: table_counts.hpp:58
static uint128_t combine_checksum_ids(const checksum256 &hash, eosio::name username)
Definition: utils.hpp:11