15 double last_program_crps = 0.0;
22 typedef eosio::multi_index<
23 "capwallets"_n, capital_wallet,
24 indexed_by<
"byusername"_n, const_mem_fun<capital_wallet, uint64_t, &capital_wallet::by_username>>
50 auto idx = capital_wallets.get_index<
"byusername"_n>();
52 auto itr = idx.find(username.value);
53 if (itr == idx.end()) {
65 eosio::check(wallet_opt.has_value(), msg);
66 return wallet_opt.value();
74 int64_t last_program_crps,
75 eosio::asset capital_available) {
77 auto idx = capital_wallets.get_index<
"byusername"_n>();
79 auto itr = idx.find(username.value);
80 if (itr == idx.end()) {
82 capital_wallets.emplace(coopname, [&](
auto &w) {
84 w.coopname = coopname;
85 w.username = username;
86 w.last_program_crps = last_program_crps;
87 w.capital_available = capital_available;
91 idx.modify(itr, coopname, [&](
auto &w) {
92 if (last_program_crps != 0) w.last_program_crps = last_program_crps;
93 if (capital_available.amount != 0) w.capital_available += capital_available;
static constexpr eosio::name _capital
Definition: consts.hpp:150
static constexpr eosio::symbol _root_govern_symbol
Definition: consts.hpp:209
static constexpr eosio::name _capital_program
Кошелёк программы "Благорост".
Definition: consts.hpp:83
contract
Definition: eosio.msig_tests.cpp:977
void upsert_capital_wallet(eosio::name coopname, eosio::name username, int64_t last_program_crps, eosio::asset capital_available)
Создает или обновляет кошелек благороста
Definition: wallets.hpp:72
std::optional< progwallet > get_program_capital_wallet(eosio::name coopname, eosio::name username)
Definition: wallets.hpp:29
capital_wallet get_capital_wallet_or_fail(eosio::name coopname, eosio::name username, const char *msg="Кошелек благороста не найден")
Получает кошелек благороста или падает с ошибкой
Definition: wallets.hpp:63
std::optional< capital_wallet > get_capital_wallet_by_username(eosio::name coopname, eosio::name username)
Получает кошелек благороста по имени пользователя
Definition: wallets.hpp:48
Definition: balances.cpp:6
eosio::multi_index< "capwallets"_n, capital_wallet, indexed_by<"byusername"_n, const_mem_fun< capital_wallet, uint64_t, &capital_wallet::by_username > > > capital_wallets_index
Definition: wallets.hpp:25
Definition: eosio.msig.hpp:34
program get_program_or_fail(eosio::name coopname, uint64_t program_id)
Definition: programs.hpp:16
uint64_t get_program_id(const eosio::name &type)
Definition: programs.hpp:93
std::optional< progwallet > get_program_wallet(eosio::name coopname, eosio::name username, eosio::name type)
Definition: programs.hpp:105
Кошелек программы благороста для учёта CRPS и доступных средств от членских взносов
Definition: wallets.hpp:11
uint64_t primary_key() const
Первичный ключ (1)
Definition: wallets.hpp:18
uint64_t id
ID кошелька (внутренний ключ)
Definition: wallets.hpp:12
eosio::name username
Имя пользователя
Definition: wallets.hpp:14
eosio::name coopname
Имя кооператива
Definition: wallets.hpp:13
uint64_t by_username() const
Индекс по имени пользователя (2)
Definition: wallets.hpp:19
Definition: table_soviet_programs.hpp:15
uint64_t get_global_id_in_scope(eosio::name _me, eosio::name scope, eosio::name key)
Definition: table_counts.hpp:58