COOPENOMICS  v1
Кооперативная Экономика
table_branch_branchstat.hpp
См. документацию.
1#pragma once
2
3#include <eosio/eosio.hpp>
4
5#include "../consts.hpp"
6
12struct [[eosio::table, eosio::contract(BRANCH)]] branchstat {
13 eosio::name coopname;
14 uint64_t count;
15
16 uint64_t primary_key() const { return coopname.value; }
17};
18
19typedef eosio::multi_index<"branchstat"_n, branchstat> branchstat_index;
20
21uint64_t add_branch_count(eosio::name coopname) {
22 branchstat_index stat(_branch, _branch.value);
23 auto st = stat.find(coopname.value);
24
25 uint64_t new_count = 0;
26
27 if (st == stat.end()) {
28 new_count = 1;
29 stat.emplace(coopname, [&](auto &s) {
30 s.coopname = coopname;
31 s.count = new_count;
32 });
33 } else {
34 new_count = st->count + 1;
35 stat.modify(st, coopname, [&](auto &s) { s.count += 1; });
36 }
37
38 return new_count;
39}
40
41uint64_t sub_branch_count(eosio::name coopname) {
42 branchstat_index stat(_branch, _branch.value);
43 auto st = stat.find(coopname.value);
44 uint64_t new_count = 0;
45
46 eosio::check(st != stat.end(), "Нет кооперативных участков");
47 eosio::check(st->count > 0, "Системная ошибка");
48
49 new_count = st->count - 1;
50
51 stat.modify(st, coopname, [&](auto &s) { s.count -= 1; });
52
53 return new_count;
54}
static constexpr eosio::name _branch
Definition: consts.hpp:160
contract
Definition: eosio.msig_tests.cpp:977
Definition: eosio.msig.hpp:34
Definition: table_branch_branchstat.hpp:12
uint64_t count
Definition: table_branch_branchstat.hpp:14
uint64_t primary_key() const
Definition: table_branch_branchstat.hpp:16
eosio::name coopname
Definition: table_branch_branchstat.hpp:13
eosio::multi_index<"branchstat"_n, branchstat > branchstat_index
Definition: table_branch_branchstat.hpp:19
uint64_t add_branch_count(eosio::name coopname)
Definition: table_branch_branchstat.hpp:21
uint64_t sub_branch_count(eosio::name coopname)
Definition: table_branch_branchstat.hpp:41