COOPENOMICS  v1
Кооперативная Экономика
Файл operations.hpp
#include <array>
#include <cstdint>
#include <string_view>
#include <eosio/eosio.hpp>
#include "accounts.hpp"
#include "processes.hpp"
#include "wallets.hpp"

См. исходные тексты.

Классы

struct  OperationRegistryEntry
 Описание одной именованной операции. Подробнее...
 
struct  OperationAdjustmentEntry
 
struct  ExpenseOperationSet
 

Пространства имен

namespace  operations
 Реестр именованных операций ledger2 (operation registry).
 
namespace  operations::registrator
 
namespace  operations::wallet
 
namespace  operations::capital
 
namespace  operations::marketplace
 
namespace  operations::branch
 
namespace  operations::soviet
 
namespace  operations::expense
 
namespace  operations::migration
 
namespace  operations::adjustment
 
namespace  ledger2_registry_detail
 
namespace  ledger2_expense_sets_detail
 

Перечисления

enum class  WalletOp : uint8_t { ISSUE = 0 , TRANSFER = 1 , BURN = 4 , NONE = 5 }
 Элементарные операции по кошелькам (ADR-003). Подробнее...
 

Функции

constexpr bool ledger2_registry_detail::operation_codes_unique ()
 
constexpr bool ledger2_registry_detail::zero_accounts_iff_both ()
 
constexpr bool ledger2_registry_detail::dr_ne_cr_when_posting ()
 
constexpr bool ledger2_registry_detail::transfer_wallet_from_ne_to ()
 
constexpr bool ledger2_registry_detail::burn_pattern_correct ()
 
constexpr bool ledger2_registry_detail::none_pattern_correct ()
 
constexpr bool ledger2_registry_detail::accounts_exist_in_map ()
 
constexpr bool ledger2_registry_detail::wallets_exist_in_registry ()
 
const OperationRegistryEntryfind_operation (eosio::name operation_code)
 Линейный поиск записи реестра по operation_code. Подробнее...
 
constexpr const OperationAdjustmentEntryfind_adjustment (eosio::name operation_code)
 
constexpr const OperationRegistryEntryledger2_expense_sets_detail::find_op (eosio::name code)
 
constexpr bool ledger2_expense_sets_detail::source_wallets_unique ()
 
constexpr bool ledger2_expense_sets_detail::sets_consistent ()
 
const ExpenseOperationSetfind_expense_operation_set (eosio::name source_wallet)
 Поиск набора операций шасси расходов по кошельку-источнику. Подробнее...
 

Переменные

constexpr eosio::name operations::registrator::PAY_ENTRANCE = "o.reg.payent"_n
 Оплата вступительного взноса (Dr 51 / Cr 86, ISSUE ENTRANCE_FEES). Одношаговый путь adduser (без совета). Подробнее...
 
constexpr eosio::name operations::registrator::PUT_MINSHARE = "o.reg.putmin"_n
 Внесение минимального паевого при регистрации (Dr 51 / Cr 80, ISSUE MIN_SHARE_FUND). Одношаговый путь adduser (без совета). Подробнее...
 
constexpr eosio::name operations::registrator::RECEIVE_PAYMENT = "o.reg.inpay"_n
 Приём регистрационного взноса кассой в ожидание решения совета (Dr 51 / Cr 76, ISSUE REGISTRATION_PENDING). Подробнее...
 
constexpr eosio::name operations::registrator::SETTLE_MINSHARE = "o.reg.setmin"_n
 Зачисление минимального паевого по решению совета (Dr 76 / Cr 80, TRANSFER REGISTRATION_PENDING → MIN_SHARE_FUND). Подробнее...
 
constexpr eosio::name operations::registrator::SETTLE_ENTRANCE = "o.reg.setent"_n
 Зачисление вступительного по решению совета (Dr 76 / Cr 86, TRANSFER REGISTRATION_PENDING → ENTRANCE_FEES). Подробнее...
 
constexpr eosio::name operations::registrator::REFUND = "o.reg.refund"_n
 Возврат регистрационного взноса при отказе совета (Dr 76 / Cr 51, BURN REGISTRATION_PENDING — деньги уходят из системы банковским переводом кандидату). Подробнее...
 
constexpr eosio::name operations::registrator::MOVE_MINSHARE = "o.reg.mvmin"_n
 Перенос минимального паевого на главный паевой при выходе из кооператива (TRANSFER MIN_SHARE_FUND → SHARE_FUND_PAY, без Dr/Cr — оба кошелька на счёте 80). Готовит полный паевой к возврату. Подробнее...
 
constexpr eosio::name operations::wallet::COMPLETE_DEPOSIT = "o.wal.depcpl"_n
 Завершение внесения паевого взноса (Dr 51 / Cr 80, ISSUE SHARE_FUND_PAY). Подробнее...
 
constexpr eosio::name operations::wallet::COMPLETE_WITHDRAW = "o.wal.wthcpl"_n
 Завершение возврата паевого взноса (Dr 80 / Cr 51, BURN с WITHDRAW_PENDING — деньги уходят из системы, без wallet_to). Подробнее...
 
constexpr eosio::name operations::wallet::REQUEST_WITHDRAW = "o.wal.wthreq"_n
 Запрос на возврат паевого: TRANSFER SHARE_FUND_PAY → WITHDRAW_PENDING (резерв, без Dr/Cr). Подробнее...
 
constexpr eosio::name operations::wallet::DECLINE_WITHDRAW = "o.wal.wthdec"_n
 Отклонение запроса на возврат: TRANSFER WITHDRAW_PENDING → SHARE_FUND_PAY (снятие резерва, без Dr/Cr). Подробнее...
 
constexpr eosio::name operations::wallet::CONVERT_TO_MEMBER = "o.wal.conv"_n
 Конвертация цифрового рубля в универсальный членский кошелёк (Dr 80 / Cr 86, TRANSFER SHARE_FUND_PAY → CK_MEMBER). Conditional-шаг серии createorder в «Столе заказов». Подробнее...
 
constexpr eosio::name operations::capital::IMPORT = "o.cap.import"_n
 Оффлайн-импорт пайщика Благорост (Dr 04 / Cr 80, ISSUE BLAGOROST_FUND). Только РИД-имущество — деньги через INVEST. Подробнее...
 
constexpr eosio::name operations::capital::INVEST = "o.cap.invest"_n
 Инвестиция в ЦПП Благорост (TRANSFER SHARE_FUND_PAY → BLAGOROST_FUND, без Dr/Cr). Подробнее...
 
constexpr eosio::name operations::capital::COMMIT_RID = "o.cap.commit"_n
 Коммит РИД (Dr 08 / Cr 80, ISSUE GENERATOR_FUND). Подробнее...
 
constexpr eosio::name operations::capital::ACCEPT_RID = "o.cap.accept"_n
 Приём РИД в НМА (Dr 04 / Cr 08, NONE — только бухпроводка, кошелёк остаётся на GENERATOR_FUND до конвертации сегмента). Подробнее...
 
constexpr eosio::name operations::capital::ACCEPT_PROPERTY = "o.cap.actprp"_n
 Акт-2 имущественный паевой взнос (Dr 04 / Cr 80, ISSUE BLAGOROST_FUND). Подробнее...
 
constexpr eosio::name operations::capital::PREIMP = "o.cap.preimp"_n
 Первичный учёт РИД-взноса до перехода на электронный учёт (Dr 04 / Cr 80, ISSUE PREIMP_FUND). Подробнее...
 
constexpr eosio::name operations::capital::DROP_PREIMP = "o.cap.drppre"_n
 Закрытие пред-импорт-учёта при переходе на электронный учёт (Dr 80 / Cr 04, BURN PREIMP_FUND). Вызывается из capital::importcontr перед o.cap.import. Подробнее...
 
constexpr eosio::name operations::capital::LEND = "o.cap.lend"_n
 Выдача беспроцентного займа пайщику (Dr 58 / Cr 51, ISSUE LOAN_ISSUED). Подробнее...
 
constexpr eosio::name operations::capital::REPAY = "o.cap.repay"_n
 Возврат займа пайщика по акту-2 (Dr 80 / Cr 58, TRANSFER LOAN_ISSUED → SHARE_FUND_PAY). Подробнее...
 
constexpr eosio::name operations::capital::WITHDRAW_FROM_CAPITAL = "o.cap.wthcap"_n
 Возврат паевого из ЦПП «Благорост» в кошелёк пайщика (TRANSFER BLAGOROST_FUND → SHARE_FUND_PAY, без Dr/Cr). Подробнее...
 
constexpr eosio::name operations::capital::CONVERT_TO_SHARE = "o.cap.cnvshr"_n
 Конвертация сегмента: РИД → главный кошелёк (TRANSFER GENERATOR_FUND → SHARE_FUND_PAY, без Dr/Cr — бухпроводка уже была сделана в ACCEPT_RID). Подробнее...
 
constexpr eosio::name operations::capital::CONVERT_TO_BLAGO = "o.cap.cnvbl"_n
 Конвертация сегмента: РИД → ЦПП «Благорост» (TRANSFER GENERATOR_FUND → BLAGOROST_FUND, без Dr/Cr — бухпроводка уже была сделана в ACCEPT_RID). Подробнее...
 
constexpr eosio::name operations::capital::PROGRAM_EXPENSE_TOPUP = "o.cap.pgtop"_n
 Пополнение пула программных расходов из инвестиций программы (ISSUE PROGRAM_EXPENSE_POOL, без Dr/Cr — деньги уже на 51, выделяется кооперативный резерв под расходы; паевые L3-кошельки пайщиков не трогаются). Подробнее...
 
constexpr eosio::name operations::marketplace::LOCK_ORDER = "o.mkt.lock"_n
 Резервирование средств заказчика под конкретный Order (TRANSFER w.wal.share → w.mkt.order, Dr 80 / Cr 86 — паевой переходит в целевое финансирование на резерв-кошелёк). Единственный обязательный шаг ledger2 при createorder. Подробнее...
 
constexpr eosio::name operations::marketplace::CONVERT_TO_MKT_MEMBER = "o.mkt.conv"_n
 Конвертация паевого взноса в членский кошелёк «Стола заказов» (TRANSFER w.wal.share → w.mkt.member, Dr 80 / Cr 86). ЕДИНСТВЕННЫЙ путь паевой→членский — только по Заявлению о конвертации (action convert). Автоматической конвертации на выдаче (signiss2) НЕТ: доплата/довзнос по факту берутся с уже внесённого членского (o.mkt.lockm/o.mkt.lockmf), при нехватке — отказ. Подробнее...
 
constexpr eosio::name operations::marketplace::LOCK_FROM_MEMBER = "o.mkt.lockm"_n
 Добор резерва заказа с членского «Стола заказов» (TRANSFER w.mkt.member → w.mkt.order, без Dr/Cr — оба кошелька на 86). Парный к o.mkt.conv шаг доплаты по факту: после конвертации добирает резерв под этот же Order. Подробнее...
 
constexpr eosio::name operations::marketplace::UNLOCK_ORDER = "o.mkt.unlock"_n
 Снятие резерва при отмене Order'а или недовыдаче (TRANSFER w.mkt.order → w.mkt.member, без Dr/Cr — оба кошелька на 86). Средства возвращаются на членский «Стола заказов» (не на универсальный членский) — остаются в программе и могут быть потрачены на следующие заказы. Подробнее...
 
constexpr eosio::name operations::marketplace::PURCHASE_FROM_SUPPLIER = "o.mkt.purch"_n
 Приёмка имущества кооперативом по АПП приёмки от поставщика (Dr 10 / Cr 86, NONE — только бухпроводка, кошельки не двигаются; имущество — аналитика по 10). Атомарно с PAY_SUPPLIER на закрывающей подписи председателя. Подробнее...
 
constexpr eosio::name operations::marketplace::PAY_SUPPLIER = "o.mkt.payout"_n
 Оплата поставщику с расчётного счёта по факту приёмки (Dr 86 / Cr 51, ISSUE ∅ → SUPPLIER_PAYMENTS). Атомарно с PURCHASE_FROM_SUPPLIER. Подробнее...
 
constexpr eosio::name operations::marketplace::CONSUME_BY_MEMBER = "o.mkt.consum"_n
 Выдача имущества пайщику по АПП выдачи (BURN с w.mkt.order, Dr 86 / Cr 10 — сжигание резерва заказа и выбытие имущества со склада через целевое финансирование). Подробнее...
 
constexpr eosio::name operations::marketplace::RETURN_BY_MEMBER = "o.mkt.return"_n
 Гарантийный возврат имущества пайщиком — compensating forward к CONSUME_BY_MEMBER (ISSUE ∅ → w.mkt.member, Dr 10 / Cr 86 — восстановление средств на членском «Стола заказов» заказчика и возврат имущества на склад). Реверты ledger2::revert в Столе заказов не используются. Подробнее...
 
constexpr eosio::name operations::marketplace::WRITE_OFF_PERISHABLE = "o.mkt.wroff"_n
 Утилизация скоропорта со склада (NONE Dr 86 / Cr 10). По протоколу совета. Подробнее...
 
constexpr eosio::name operations::marketplace::MARKDOWN_LOSS = "o.mkt.loss"_n
 Уценка при выдаче из остатка кооператива (NONE Dr 91 / Cr 10): разница между ценой прибытия и фактической ценой выдачи выбывает со склада в прочие расходы. Вместе с o.mkt.consum даёт выбытие по полной стоимости прибытия — на счёте 10 ничего не зависает. Накопленный расход на 91 погашается позже отдельным процессом (Dr 86 / Cr 91, аналогично списанию скоропорта через совет — пока не реализован, requirement 76 вопрос 4). Подробнее...
 
constexpr eosio::name operations::marketplace::MEMBERSHIP_FEE_LOCK = "o.mkt.fee"_n
 Блокировка членского взноса при создании заказа (TRANSFER w.wal.share → w.mkt.fee, Dr 80 / Cr 86 — как o.mkt.lock). Взнос считается от единой ставки кооператива и фиксируется явным полем Order.membership_fee; на signiss2 при факте больше заказа — дособирается этой же операцией. Подробнее...
 
constexpr eosio::name operations::marketplace::MEMBERSHIP_FEE_REFUND = "o.mkt.refund"_n
 Возврат неиспользованной части членского взноса (TRANSFER w.mkt.fee → w.mkt.member, без Dr/Cr — оба кошелька на 86). Срабатывает при отмене заказа (полностью) и при недовыдаче (пропорционально факту); симметричен o.mkt.unlock для резерва стоимости. Подробнее...
 
constexpr eosio::name operations::marketplace::LOCK_FEE_FROM_MEMBER = "o.mkt.lockmf"_n
 Блокировка членского взноса под заказ из уже внесённых членских средств пайщика (TRANSFER w.mkt.member → w.mkt.fee, без Dr/Cr — оба кошелька на 86). Парный по взносу к o.mkt.lockm (тот добирает тело заказа): stockorder фондируется из членского кошелька «Стола заказов» начисто, паевой сперва конвертируется отдельным действием (o.mkt.conv). Инверсия o.mkt.refund. Подробнее...
 
constexpr eosio::name operations::marketplace::REFUSAL_PENALTY = "o.mkt.penal"_n
 Удержание 50% при отказе пайщика от получения после акцепта поставщиком (TRANSFER w.mkt.order → w.mkt.fee, без Dr/Cr — оба кошелька на 86). Транзит: удержанная половина тела заказа кладётся в пул членских взносов, откуда вместе с удержанной половиной взноса единым o.brn.common (Branch::accrue) зачисляется в общий кошелёк КУ. Прямой TRANSFER w.mkt.order[пайщик] → w.brn.common[braname] невозможен — walletop держит один username на обе стороны. Имущество остаётся на складе КУ; вторая половина возвращается пайщику (o.mkt.unlock + o.mkt.refund). Подробнее...
 
constexpr eosio::name operations::branch::DISTRIBUTE_PERSONAL = "o.brn.person"_n
 Распределение доверенному/председателю КУ при ручном распределении председателем (TRANSFER w.brn.pool → w.brn.person, без Dr/Cr — внутри 86). Доля = вес/Σвесов из реестра весов branch::weights; вторая нога двухходовки после o.brn.release. Подробнее...
 
constexpr eosio::name operations::branch::DISTRIBUTE_COMMON = "o.brn.common"_n
 Зачисление 100% членского взноса в общий кошелёк КУ при финализации заказа (TRANSFER w.mkt.fee → w.brn.common, без Dr/Cr — внутри 86; username = braname КУ). Вызывается branch::accrue инлайн от контракта-источника. Подробнее...
 
constexpr eosio::name operations::branch::RETURN_FEE_FROM_COMMON = "o.brn.retfee"_n
 Возврат членского взноса из общего кошелька КУ при гарантийном возврате имущества (TRANSFER w.brn.common → w.mkt.fee, без Dr/Cr — внутри 86; username = braname КУ). Точная инверсия DISTRIBUTE_COMMON: взнос идёт обратно тем же путём, каким пришёл. Первая нога двухходовки возврата — вторая (w.mkt.fee → w.mkt.member заказчика) выполняется существующей MEMBERSHIP_FEE_REFUND. Прямой TRANSFER w.brn.common[braname] → w.mkt.member[пайщик] невозможен: walletop держит один username на обе стороны, поэтому транзит через COOPERATIVE-пул w.mkt.fee (тот же приём, что в REFUSAL_PENALTY и RELEASE_FROM_COMMON). Вызывается branch::retfee инлайн от контракта-источника. Подробнее...
 
constexpr eosio::name operations::branch::RELEASE_FROM_COMMON = "o.brn.release"_n
 Изъятие из общего кошелька КУ в транзитный пул ручного распределения (TRANSFER w.brn.common → w.brn.pool, без Dr/Cr — внутри 86; username = braname). Первая нога двухходовки распределения: один username на операцию — поэтому common→person идёт через COOPERATIVE-транзит w.brn.pool. Подробнее...
 
constexpr eosio::name operations::branch::SPEND_COMMON = "o.brn.spend"_n
 Прямая оплата расхода кооперативного участка по реквизитам получателя (BURN с w.brn.expns, Dr 86 / Cr 51 — выплата с расчётного счёта после подтверждения кассиром). Роль direct в наборе шасси расходов для КУ; средства попадают в пул расходов при создании служебной записки (o.brn.expfnd). Подробнее...
 
constexpr eosio::name operations::branch::EXPENSE_FUND = "o.brn.expfnd"_n
 Выделение средств участка под расход (TRANSFER w.brn.common → w.brn.expns, без Dr/Cr — внутри 86; username = braname). Выполняется при создании служебной записки: сумма расхода уходит из общего кошелька в пул расходов и перестаёт быть доступной распределению. Подробнее...
 
constexpr eosio::name operations::branch::EXPENSE_UNFUND = "o.brn.expunf"_n
 Возврат неизрасходованных средств из пула расходов в общий кошелёк участка (TRANSFER w.brn.expns → w.brn.common, без Dr/Cr — внутри 86; username = braname). Инверсия o.brn.expfnd: совет отклонил расход либо расход закрыт на сумму меньше запланированной. Подробнее...
 
constexpr eosio::name operations::branch::EXPENSE_ADVANCE = "o.brn.expadv"_n
 Выдача аванса под отчёт по расходу участка (TRANSFER w.brn.expns → w.exp.adv, Dr 86 / Cr 51 — деньги ушли с расчётного счёта получателю; username = получатель аванса). Роль advance в наборе шасси расходов для КУ. Подробнее...
 
constexpr eosio::name operations::branch::EXPENSE_REPORT = "o.brn.exprpt"_n
 Закрытие подотчёта по расходу участка отчётом с чеками (BURN с w.exp.adv, без Dr/Cr — проводка Dr 86 / Cr 51 уже сделана при выдаче аванса). Роль report в наборе шасси расходов для КУ. Подробнее...
 
constexpr eosio::name operations::branch::EXPENSE_RETURN = "o.brn.expret"_n
 Возврат неиспользованного аванса под отчёт в пул расходов участка (TRANSFER w.exp.adv → w.brn.expns, Dr 51 / Cr 86 — деньги вернулись на расчётный счёт). Роль refund в наборе шасси расходов для КУ. Подробнее...
 
constexpr eosio::name operations::branch::EXPENSE_OVERSPEND = "o.brn.expovr"_n
 Доплата сверх выданного аванса по расходу участка (TRANSFER w.brn.expns → w.exp.adv, Dr 86 / Cr 51). Роль overspend в наборе шасси расходов для КУ; сразу за ней шасси закрывает подотчёт отчётом. Подробнее...
 
constexpr eosio::name operations::branch::FINANCIAL_AID = "o.brn.aid"_n
 Материальная помощь доверенному КУ, сумма К ВЫПЛАТЕ за вычетом налога (BURN с w.brn.person, Dr 86 / Cr 51 — выплата с расчётного счёта по заявлению, после подтверждения кассиром). Парная операция удержания — FINANCIAL_AID_TAX, применяется той же транзакцией. Подробнее...
 
constexpr eosio::name operations::branch::FINANCIAL_AID_TAX = "o.brn.aidtax"_n
 Удержание НДФЛ из материальной помощи (TRANSFER w.brn.person → w.sov.ndfl, Dr 86 / Cr 68). Кооператив — налоговый агент: с кошелька получателя списывается вся сумма заявления, на руки уходит остаток. Деньги при этом с расчётного счёта не уходят — обязательство висит на 68 до платежа в бюджет (TAX_PAYMENT). Подробнее...
 
constexpr eosio::name operations::branch::CONVERT_TO_MKT = "o.brn.conv"_n
 Перевод персональных средств доверенного в членский кошелёк «Стола заказов» (TRANSFER w.brn.person → w.mkt.member, без Dr/Cr — внутри 86) для заказов как обычный пайщик. Подробнее...
 
constexpr eosio::name operations::soviet::CONVERT_AXN = "o.sov.axncnv"_n
 Трансляция паевого взноса в членский (Dr 80 / Cr 86, TRANSFER SHARE_FUND_PAY → DELEGATE_FEES). Подробнее...
 
constexpr eosio::name operations::soviet::TAX_PAYMENT = "o.sov.taxpay"_n
 Перечисление удержанного НДФЛ в бюджет единым налоговым платежом (BURN с w.sov.ndfl, Dr 68 / Cr 51). Инициирует бухгалтер, подтверждает кассир; сумма не может превышать остаток кошелька — перечислить больше удержанного налоговый агент не вправе. Префикс кооперативный, а не программы-источника: в один кошелёк стекаются удержания любой программы, выплатившей доход физлицу. Подробнее...
 
constexpr eosio::name operations::expense::BLAGO_ADVANCE = "o.exp.blgadv"_n
 Выдача подотчётных из пула расходов (TRANSFER PROGRAM_EXPENSE_POOL → ADVANCE_HOLD, Dr 08 / Cr 51). Подробнее...
 
constexpr eosio::name operations::expense::BLAGO_DIRECT = "o.exp.blgdir"_n
 Прямая оплата из пула расходов (BURN PROGRAM_EXPENSE_POOL, Dr 08 / Cr 51). Подробнее...
 
constexpr eosio::name operations::expense::ADVANCE_REPORT = "o.exp.advrpt"_n
 Закрытие подотчёта пайщика (BURN ADVANCE_HOLD, без бухпроводки — canal 08/51 уже сделан на blgadv). Подробнее...
 
constexpr eosio::name operations::expense::ADVANCE_RETURN = "o.exp.advret"_n
 Возврат неиспользованного подотчёта (TRANSFER ADVANCE_HOLD → PROGRAM_EXPENSE_POOL, Dr 51 / Cr 08). Подробнее...
 
constexpr eosio::name operations::expense::OVERSPEND = "o.exp.over"_n
 Доплата сверх подотчёта (TRANSFER PROGRAM_EXPENSE_POOL → ADVANCE_HOLD, Dr 08 / Cr 51); сразу за ней expense вызывает ADVANCE_REPORT. Подробнее...
 
constexpr eosio::name operations::migration::MIN_SHARE = "o.mig.minshr"_n
 Перенос: минимальный паевой взнос (Dr 51 / Cr 80, ISSUE MIN_SHARE_FUND). Подробнее...
 
constexpr eosio::name operations::migration::SHARE = "o.mig.share"_n
 Перенос: остаток паевых деньгами (Dr 51 / Cr 80, ISSUE SHARE_FUND_PAY). Подробнее...
 
constexpr eosio::name operations::migration::ENTRY = "o.mig.entry"_n
 Перенос: вступительные (Dr 51 / Cr 86, ISSUE ENTRANCE_FEES). Подробнее...
 
constexpr eosio::name operations::adjustment::WALMOVE = "o.adj.walmove"_n
 Перевод между кошельками внутри одного бух.счёта (без Dr/Cr). Подробнее...
 
constexpr eosio::name operations::adjustment::REVERSAL = "o.adj.rev"_n
 Откат операции: зеркальная проводка по operation_id. Подробнее...
 
static constexpr OperationRegistryEntry OPERATION_REGISTRY []
 Хардкод-реестр именованных операций. Подробнее...
 
static constexpr size_t OPERATION_REGISTRY_SIZE = sizeof(OPERATION_REGISTRY) / sizeof(OPERATION_REGISTRY[0])
 
constexpr std::array< OperationAdjustmentEntry, 2 > OPERATION_ADJUSTMENT_REGISTRY
 
static constexpr ExpenseOperationSet EXPENSE_OPERATION_SETS []
 
static constexpr size_t EXPENSE_OPERATION_SETS_SIZE
 

Перечисления

◆ WalletOp

enum class WalletOp : uint8_t
strong

Элементарные операции по кошелькам (ADR-003).

Семантика «без бухпроводок» — НЕ через отдельный walletop, а через пару (debit_account_id == 0, credit_account_id == 0) на уровне записи реестра. Compile-time правило (debit==0) ⇔ (credit==0) ловит смешанные пары.

Элементы перечислений
ISSUE 

первичный вход средств на кошелёк wallet_to (wallet_from = empty)

TRANSFER 

перемещение wallet_from → wallet_to (с Dr/Cr ИЛИ без — по парам account_id)

BURN 

изъятие amount с wallet_from->available, без wallet_to. Покрывает оба кейса: (a) штатное сжигание как бизнес-операция в OPERATION_REGISTRY; (b) зеркало ISSUE при ledger2::revert (различие — через operation_code: o.adj.rev для adjustment-mirror).

NONE 

только бухпроводка без перемещения средств (wallet_from = empty, wallet_to = empty, debit ≠ 0, credit ≠ 0). Покрывает кейсы внутрибалансовых проводок типа Dr 04 / Cr 08 (приём РИД в НМА), когда кошелёк уже на нужном программном фонде.

Функции

◆ find_adjustment()

constexpr const OperationAdjustmentEntry * find_adjustment ( eosio::name  operation_code)
inlineconstexpr

◆ find_expense_operation_set()

const ExpenseOperationSet * find_expense_operation_set ( eosio::name  source_wallet)
inline

Поиск набора операций шасси расходов по кошельку-источнику.

◆ find_operation()

const OperationRegistryEntry * find_operation ( eosio::name  operation_code)
inline

Линейный поиск записи реестра по operation_code.

Переменные

◆ EXPENSE_OPERATION_SETS

constexpr ExpenseOperationSet EXPENSE_OPERATION_SETS[]
staticconstexpr
Инициализатор
= {
}
constexpr eosio::name EXPENSE_RETURN
Возврат неиспользованного аванса под отчёт в пул расходов участка (TRANSFER w.exp....
Definition: operations.hpp:122
constexpr eosio::name SPEND_COMMON
Прямая оплата расхода кооперативного участка по реквизитам получателя (BURN с w.brn....
Definition: operations.hpp:117
constexpr eosio::name EXPENSE_ADVANCE
Выдача аванса под отчёт по расходу участка (TRANSFER w.brn.expns → w.exp.adv, Dr 86 / Cr 51 — деньги ...
Definition: operations.hpp:120
constexpr eosio::name EXPENSE_OVERSPEND
Доплата сверх выданного аванса по расходу участка (TRANSFER w.brn.expns → w.exp.adv,...
Definition: operations.hpp:123
constexpr eosio::name EXPENSE_REPORT
Закрытие подотчёта по расходу участка отчётом с чеками (BURN с w.exp.adv, без Dr/Cr — проводка Dr 86 ...
Definition: operations.hpp:121
constexpr eosio::name ADVANCE_REPORT
Закрытие подотчёта пайщика (BURN ADVANCE_HOLD, без бухпроводки — canal 08/51 уже сделан на blgadv).
Definition: operations.hpp:151
constexpr eosio::name OVERSPEND
Доплата сверх подотчёта (TRANSFER PROGRAM_EXPENSE_POOL → ADVANCE_HOLD, Dr 08 / Cr 51); сразу за ней e...
Definition: operations.hpp:153
constexpr eosio::name BLAGO_DIRECT
Прямая оплата из пула расходов (BURN PROGRAM_EXPENSE_POOL, Dr 08 / Cr 51).
Definition: operations.hpp:150
constexpr eosio::name BLAGO_ADVANCE
Выдача подотчётных из пула расходов (TRANSFER PROGRAM_EXPENSE_POOL → ADVANCE_HOLD,...
Definition: operations.hpp:149
constexpr eosio::name ADVANCE_RETURN
Возврат неиспользованного подотчёта (TRANSFER ADVANCE_HOLD → PROGRAM_EXPENSE_POOL,...
Definition: operations.hpp:152
static constexpr eosio::name PROGRAM_EXPENSE_POOL
Пул программных расходов ЦПП «Благорост» (COOPERATIVE) — кооперативный кошелёк, из которого шасси exp...
Definition: wallets.hpp:70
static constexpr eosio::name BRANCH_EXPENSE_POOL
Пул расходов кооперативного участка (COOPERATIVE) — источник средств шасси расходов для КУ....
Definition: wallets.hpp:82

◆ EXPENSE_OPERATION_SETS_SIZE

constexpr size_t EXPENSE_OPERATION_SETS_SIZE
staticconstexpr
Инициализатор
=
static constexpr ExpenseOperationSet EXPENSE_OPERATION_SETS[]
Definition: operations.hpp:944

◆ OPERATION_ADJUSTMENT_REGISTRY

constexpr std::array<OperationAdjustmentEntry, 2> OPERATION_ADJUSTMENT_REGISTRY
inlineconstexpr
Инициализатор
= {{
{ operations::adjustment::WALMOVE, processes::adjustment::CORRECTION, "Перевод между кошельками" },
}}
constexpr eosio::name REVERSAL
Откат операции: зеркальная проводка по operation_id.
Definition: operations.hpp:180
constexpr eosio::name WALMOVE
Перевод между кошельками внутри одного бух.счёта (без Dr/Cr).
Definition: operations.hpp:179
constexpr eosio::name CORRECTION
Ручная корректировка председателя (перевод между кошельками или откат операции).
Definition: processes.hpp:109

◆ OPERATION_REGISTRY

constexpr OperationRegistryEntry OPERATION_REGISTRY[]
staticconstexpr

Хардкод-реестр именованных операций.

Порядок записей не важен (линейный поиск в ledger2::apply).

◆ OPERATION_REGISTRY_SIZE

constexpr size_t OPERATION_REGISTRY_SIZE = sizeof(OPERATION_REGISTRY) / sizeof(OPERATION_REGISTRY[0])
staticconstexpr