3#include <eosio/eosio.hpp>
4#include <eosio/asset.hpp>
17 constexpr eosio::name
CREATED =
"created"_n;
48typedef eosio::multi_index<
49 "pjproperties"_n, property,
50 indexed_by<
"byusername"_n, const_mem_fun<property, uint64_t, &property::by_username>>,
51 indexed_by<
"byhash"_n, const_mem_fun<property, checksum256, &property::by_property_hash>>,
52 indexed_by<
"byprojhash"_n, const_mem_fun<property, checksum256, &property::by_project_hash>>
61 inline std::optional<property>
get_property(eosio::name coopname,
const checksum256 &hash) {
63 auto property_hash_index = properties.get_index<
"byhash"_n>();
65 auto itr = property_hash_index.find(hash);
66 if (itr == property_hash_index.end()) {
81 eosio::check(
property.has_value(),
"Предложение по имущественному взносу не найдено");
83 return property.value();
93 auto property_hash_index = properties.get_index<
"byhash"_n>();
95 auto itr = property_hash_index.find(hash);
96 eosio::check(itr != property_hash_index.end(),
"Предложение по имущественному взносу не найдено");
98 properties.erase(*itr);
111 eosio::name coopname,
112 eosio::name username,
113 checksum256 project_hash,
114 checksum256 property_hash,
115 const eosio::asset &property_amount,
116 const std::string &property_description
123 properties.emplace(coopname, [&](
auto &p) {
126 p.coopname = coopname;
127 p.username = username;
128 p.project_hash = project_hash;
129 p.property_hash = property_hash;
130 p.property_amount = property_amount;
131 p.property_description = property_description;
132 p.created_at = current_time_point();
static constexpr eosio::name _capital
Definition: consts.hpp:150
contract
Definition: eosio.msig_tests.cpp:977
uint64_t get_global_id_in_scope(eosio::name _me, eosio::name scope, eosio::name key)
Definition: counts.hpp:61
constexpr eosio::name CREATED
Имущественный взнос создан
Definition: project_properties.hpp:17
Definition: project_properties.hpp:9
eosio::multi_index< "pjproperties"_n, property, indexed_by<"byusername"_n, const_mem_fun< property, uint64_t, &property::by_username > >, indexed_by<"byhash"_n, const_mem_fun< property, checksum256, &property::by_property_hash > >, indexed_by<"byprojhash"_n, const_mem_fun< property, checksum256, &property::by_project_hash > > > property_index
Definition: project_properties.hpp:53
std::optional< property > get_property(eosio::name coopname, const checksum256 &hash)
Получает предложение по хэшу.
Definition: project_properties.hpp:61
property get_property_or_fail(eosio::name coopname, const checksum256 &hash)
Получает предложение по хэшу или падает с ошибкой.
Definition: project_properties.hpp:79
void create_property_with_approve(eosio::name coopname, eosio::name username, checksum256 project_hash, checksum256 property_hash, const eosio::asset &property_amount, const std::string &property_description)
Создает предложение по имущественному взносу и отправляет его на утверждение.
Definition: project_properties.hpp:110
void delete_property(eosio::name coopname, const checksum256 &hash)
Удаляет предложение по хэшу.
Definition: project_properties.hpp:91
constexpr eosio::name DECLINE_PROPERTY
Definition: shared_names.hpp:21
constexpr eosio::name APPROVE_PROPERTY
Definition: shared_names.hpp:20
constexpr eosio::name CREATE_PROPERTY
Definition: shared_names.hpp:105
void create_approval(name calling_contract, CREATEAPPRV_SIGNATURE)
Создаёт аппрув в совете
Definition: shared_soviet.hpp:73
Definition: eosio.msig.hpp:34
Таблица имущественных взносов хранит данные о предложениях по имущественным взносам в проекты.
Definition: project_properties.hpp:31
uint64_t by_username() const
Индекс по имени пользователя (2)
Definition: project_properties.hpp:43
name status
Статус предложения (created)
Definition: project_properties.hpp:35
name coopname
Имя кооператива
Definition: project_properties.hpp:33
checksum256 project_hash
Хэш проекта, связанного с предложением
Definition: project_properties.hpp:36
checksum256 by_project_hash() const
Индекс по хэшу проекта (4)
Definition: project_properties.hpp:45
uint64_t primary_key() const
Первичный ключ (1)
Definition: project_properties.hpp:42
checksum256 property_hash
Хэш предложения
Definition: project_properties.hpp:37
uint64_t id
ID имущественного взноса (внутренний ключ)
Definition: project_properties.hpp:32
eosio::asset property_amount
Оценочная стоимость имущества
Definition: project_properties.hpp:38
std::string property_description
Описание имущества
Definition: project_properties.hpp:39
checksum256 by_property_hash() const
Индекс по хэшу предложения (3)
Definition: project_properties.hpp:44
time_point_sec created_at
Время создания предложения
Definition: project_properties.hpp:40
name username
Имя пользователя, подающего предложение
Definition: project_properties.hpp:34
Definition: drafts.hpp:28