3#include <eosio/eosio.hpp>
4#include <eosio/asset.hpp>
5#include <eosio/crypto.hpp>
6#include "../lib/index.hpp"
119 eosio::checksum256
by_hash()
const {
return proposal_hash; }
121 uint64_t
by_status()
const {
return static_cast<uint64_t
>(status); }
124 (
id)(coopname)(proposal_hash)(username)(source_wallet)(status)
125 (items)(total_planned)(total_actual)(callback)(statement_doc)(decision_doc)
126 (created_at)(updated_at))
130 eosio::indexed_by<
"byhash"_n, eosio::const_mem_fun<proposal, eosio::checksum256, &proposal::by_hash>>,
131 eosio::indexed_by<
"byusername"_n, eosio::const_mem_fun<proposal, uint64_t, &proposal::by_username>>,
132 eosio::indexed_by<
"bystatus"_n, eosio::const_mem_fun<proposal, uint64_t, &proposal::by_status>>
161 void createexp(name coopname, name username,
162 checksum256 proposal_hash,
164 std::vector<ExpenseDomain::item> items,
184 void declexp(name coopname, checksum256 proposal_hash, std::string reason);
195 void payexp(name coopname, checksum256 proposal_hash, checksum256 item_hash,
196 asset actual_amount);
205 void reportexp(name coopname, checksum256 proposal_hash, checksum256 item_hash);
212 void closeexp(name coopname, checksum256 proposal_hash);
221 void returnexp(name coopname, checksum256 proposal_hash, checksum256 item_hash,
222 asset return_amount);
231 void overspendexp(name coopname, checksum256 proposal_hash, checksum256 item_hash,
232 asset overspend_amount);
Шасси расходов — 8 actions, MVP только Благорост.
Definition: expense.hpp:141
contract
Definition: eosio.msig_tests.cpp:977
Definition: expense.hpp:26
ItemStatus
Definition: expense.hpp:59
@ RETURNED
Зарезервировано, не используется: returnexp уменьшает actual_amount, статус остаётся PAID до отчёта.
@ REPORTED
Закрыт отчётом (чек приложен). DIRECT-item получает его сразу при payexp.
@ OVERSPENT
Зарезервировано, не используется: overspendexp увеличивает actual_amount, статус остаётся PAID до отч...
Mechanics
Способ оплаты item-а в СЗ. ADVANCE — пайщик-получатель оплачивает, затем приносит чек....
Definition: expense.hpp:33
RecipientType
Получатель платежа в item-е. SELF — сам создатель СЗ. MEMBER — другой пайщик. ORG — внешняя организац...
Definition: expense.hpp:44
ProposalStatus
Definition: expense.hpp:50
@ CLOSED
СЗ-отчёт авторизован — расход закрыт.
@ PARTIALLY_PAID
Часть item-ов оплачена.
@ REPORT_SUBMITTED
Отчёт о расходе подан, ждёт авторизации совета.
eosio::multi_index<"proposals"_n, proposal, eosio::indexed_by<"byhash"_n, eosio::const_mem_fun< proposal, eosio::checksum256, &proposal::by_hash > >, eosio::indexed_by<"byusername"_n, eosio::const_mem_fun< proposal, uint64_t, &proposal::by_username > >, eosio::indexed_by<"bystatus"_n, eosio::const_mem_fun< proposal, uint64_t, &proposal::by_status > > > proposals_index
Definition: expense.hpp:133
Definition: eosio.msig.hpp:34
action(permission_level{ _gateway, "active"_n}, _gateway, "adduser"_n, std::make_tuple(coopname, deposit->username, to_spread, to_circulation, eosio::current_time_point(), true)).send()
Callback на финализацию — устанавливается при createexp как переменная.
Definition: expense.hpp:76
eosio::name contract
Definition: expense.hpp:77
eosio::name action
Definition: expense.hpp:78
std::vector< char > data
Definition: expense.hpp:79
Item — одна строка СЗ-расхода.
Definition: expense.hpp:86
std::string description
Definition: expense.hpp:91
eosio::name recipient
username (для SELF/MEMBER), либо name-идентификатор (для ORG)
Definition: expense.hpp:90
uint8_t mechanics
Mechanics.
Definition: expense.hpp:88
uint8_t status
ItemStatus.
Definition: expense.hpp:94
eosio::asset actual_amount
0 пока не оплачено / не отчиталось
Definition: expense.hpp:93
eosio::checksum256 item_hash
Definition: expense.hpp:87
eosio::asset planned_amount
Definition: expense.hpp:92
uint8_t recipient_type
RecipientType.
Definition: expense.hpp:89
Таблица СЗ-расходов. Scope = coopname.
Definition: expense.hpp:102
eosio::name source_wallet
семантически — из какого ЦПП/фонда (w.cap.blago, w.sov.expns, …)
Definition: expense.hpp:107
eosio::checksum256 proposal_hash
Definition: expense.hpp:105
std::vector< item > items
Definition: expense.hpp:109
eosio::checksum256 by_hash() const
Definition: expense.hpp:119
uint64_t id
Definition: expense.hpp:103
eosio::name username
создатель
Definition: expense.hpp:106
uint64_t by_username() const
Definition: expense.hpp:120
eosio::asset total_planned
Definition: expense.hpp:110
document2 statement_doc
type=2010, signact1 создателя
Definition: expense.hpp:113
callback_handler callback
опционально; contract.value == 0 = нет callback
Definition: expense.hpp:112
document2 decision_doc
type=2011, signact2 совета
Definition: expense.hpp:114
eosio::asset total_actual
Definition: expense.hpp:111
uint8_t status
ProposalStatus.
Definition: expense.hpp:108
eosio::time_point_sec updated_at
Definition: expense.hpp:116
uint64_t by_status() const
Definition: expense.hpp:121
eosio::name coopname
кооператив (= scope таблицы; дублируем полем по канону)
Definition: expense.hpp:104
uint64_t primary_key() const
Definition: expense.hpp:118
eosio::time_point_sec created_at
Definition: expense.hpp:115
Definition: table_soviet_decisions.hpp:20
Definition: document_core.hpp:27