6#include "../consts.hpp"
18 print(
"program_id: ", program_id);
19 auto program_itr = programs.find(program_id);
20 eosio::check(program_itr != programs.end(),
"Программа не найдена");
28 auto wallets_by_username_and_program = progwallets.template get_index<
"byuserprog"_n>();
29 auto username_and_program_index =
combine_ids(username.value, program_id);
30 auto wallet = wallets_by_username_and_program.find(username_and_program_index);
32 if (
wallet == wallets_by_username_and_program.end())
38 auto agreement_row = agreements.find(
wallet->agreement_id);
40 if (agreement_row->status ==
"declined"_n)
47 eosio::name program_type) {
52 auto coagreement_row = coagreements.find(program_type.value);
54 if (coagreement_row == coagreements.end())
57 auto exist = programs.find(coagreement_row->program_id);
59 if (exist == programs.end())
62 auto wallets_by_username_and_program = progwallets.template get_index<
"byuserprog"_n>();
63 auto username_and_program_index =
combine_ids(username.value, exist->id);
64 auto wallet = wallets_by_username_and_program.find(username_and_program_index);
66 if (
wallet == wallets_by_username_and_program.end())
70 auto agreement_row = agreements.find(
wallet->agreement_id);
72 if (agreement_row->status ==
"declined"_n)
83static const std::map<eosio::name, ProgramInfo>
program_map = {
95 eosio::check(it !=
program_map.end(),
"Недопустимый тип программы");
96 return it->second.program_id;
101 eosio::check(it !=
program_map.end(),
"Недопустимый тип программы");
102 return it->second.draft_id;
105std::optional<progwallet>
get_program_wallet(eosio::name coopname, eosio::name username, eosio::name type) {
110 auto balances_by_username_and_program = progwallets.template get_index<
"byuserprog"_n>();
111 auto username_and_program_index =
combine_ids(username.value, program_id);
112 auto wallet = balances_by_username_and_program.find(username_and_program_index);
114 if (
wallet == balances_by_username_and_program.end()) {
Контракт Wallet управляет взносами и возвратами взносов по ЦПП "Цифровой Кошелёк".
Definition: wallet.hpp:16
static constexpr eosio::name _wallet_program
Главный Кошелёк
Definition: consts.hpp:79
static constexpr eosio::name _source_program
Кошелёк для генерации по договору УХД
Definition: consts.hpp:82
static constexpr eosio::name _capital_program
Кошелёк программы "Благорост".
Definition: consts.hpp:83
static constexpr eosio::name _marketplace_program
Кошелёк программы "Маркетплейс".
Definition: consts.hpp:80
static constexpr eosio::name _soviet
Definition: consts.hpp:156
Definition: eosio.msig.hpp:34
bool is_valid_participant_of_program_by_type(eosio::name coopname, eosio::name username, eosio::name program_type)
Definition: programs.hpp:46
uint64_t get_draft_id(const eosio::name &type)
Definition: programs.hpp:99
program get_program_or_fail(eosio::name coopname, uint64_t program_id)
Definition: programs.hpp:16
bool is_participant_of_cpp_by_program_id(eosio::name coopname, eosio::name username, uint64_t program_id)
Definition: programs.hpp:25
void check_valid_program(const eosio::name &type)
Definition: programs.hpp:89
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
static const std::map< eosio::name, ProgramInfo > program_map
Definition: programs.hpp:83
Definition: programs.hpp:78
uint64_t draft_id
Definition: programs.hpp:80
uint64_t program_id
Definition: programs.hpp:79
Definition: table_soviet_programs.hpp:15
eosio::multi_index< "agreements3"_n, agreement2, eosio::indexed_by<"byusername"_n, eosio::const_mem_fun< agreement2, uint64_t, &agreement2::by_username > >, eosio::indexed_by<"bystatus"_n, eosio::const_mem_fun< agreement2, uint64_t, &agreement2::by_status > >, eosio::indexed_by<"bydraft"_n, eosio::const_mem_fun< agreement2, uint64_t, &agreement2::by_draft > >, eosio::indexed_by<"byuserdraft"_n, eosio::const_mem_fun< agreement2, uint128_t, &agreement2::by_user_and_draft > > > agreements2_index
Definition: table_soviet_agreements3.hpp:40
eosio::multi_index<"coagreements"_n, coagreement > coagreements_index
Definition: table_soviet_coagreements.hpp:21
eosio::multi_index< "programs"_n, program, eosio::indexed_by<"programtype"_n, eosio::const_mem_fun< program, uint64_t, &program::by_program_type > >, eosio::indexed_by<"bydraft"_n, eosio::const_mem_fun< program, uint64_t, &program::by_draft > > > programs_index
Definition: table_soviet_programs.hpp:54
eosio::multi_index< "progwallets"_n, progwallet, eosio::indexed_by<"byusername"_n, eosio::const_mem_fun< progwallet, uint64_t, &progwallet::by_username > >, eosio::indexed_by<"byprogram"_n, eosio::const_mem_fun< progwallet, uint64_t, &progwallet::by_program > >, eosio::indexed_by<"byuserprog"_n, eosio::const_mem_fun< progwallet, uint128_t, &progwallet::by_username_and_program > >, eosio::indexed_by<"byagreement"_n, eosio::const_mem_fun< progwallet, uint64_t, &progwallet::by_agreement > > > progwallets_index
Definition: table_soviet_progwallets.hpp:42
static uint128_t combine_ids(const uint64_t &x, const uint64_t &y)
Definition: utils.hpp:7