COOPENOMICS  v1
Кооперативная Экономика
Класс marketplace

Класс marketplace предоставляет функционал кооперативного маркетплейса, позволяя пользователям создавать, обновлять, принимать и отменять заявки на обмен товаров и услуг. Этот контракт служит центральной точкой для всех операций обмена в рамках кооперативной экосистемы. Подробнее...

#include <marketplace.hpp>

Граф наследования:marketplace:

Классы

struct  balances
 
struct  counts
 

Открытые члены

 marketplace (eosio::name receiver, eosio::name code, eosio::datastream< const char * > ds)
 
void apply (uint64_t receiver, uint64_t code, uint64_t action)
 
void migrate ()
 
void orderoffer (eosio::name coopname, eosio::name receiver_braname, eosio::name username, checksum256 hash, uint64_t units, eosio::asset unit_cost, uint32_t product_lifecycle_secs, uint32_t warranty_period_secs, eosio::asset membership_fee_amount, eosio::asset cancellation_fee_amount, document2 convert_in, eosio::name delivery_type, eosio::name contribution_type, std::string meta)
 Создать заявку orderoffer — заказчик создаёт заявку на поставку товара. Подробнее...
 
void accept (eosio::name coopname, eosio::name supplier_braname, eosio::name username, checksum256 request_hash, document2 convert_out, document2 return_document)
 Подтверждение готовности выполнить заявку. Подробнее...
 
void authcontrib (eosio::name coopname, checksum256 request_hash, document2 authorization)
 Авторизация заявления на имущественный паевой взнос советом кооператива. Подробнее...
 
void authreturn (eosio::name coopname, checksum256 request_hash, document2 authorization)
 Авторизация заявления на возврат паевого взноса имуществом. Подробнее...
 
void declineacc (eosio::name coopname, checksum256 hash, std::string reason)
 Отклонение принятия заявки советом (declineacc). Подробнее...
 
void supply (eosio::name coopname, eosio::name username, checksum256 request_hash, document2 act)
 Поставка имущества в кооператив. Подробнее...
 
void supplcnf (eosio::name coopname, eosio::name username, checksum256 request_hash, document2 act)
 Подтверждение поставки председателем КУ. Подробнее...
 
void createship (eosio::name coopname, checksum256 hash, eosio::name driver_username, eosio::name source_braname, eosio::name destination_braname, std::vector< checksum256 > request_hashes, document2 transport_act_sender)
 Создание новой перевозки с массивом заявок. Подробнее...
 
void signbydriver (eosio::name coopname, checksum256 hash, document2 transport_act_driver)
 Подпись акта приёма-передачи водителем. Подробнее...
 
void arrived (eosio::name coopname, checksum256 hash, document2 transport_act_delivery)
 Перевозка прибыла в место назначения. Подробнее...
 
void receiveshipm (eosio::name coopname, checksum256 hash, document2 warehouse_receipt_act)
 Приём имущества на склад по накладной. Подробнее...
 
void retransport (eosio::name coopname, checksum256 completed_hash, eosio::name new_driver_username, eosio::name source_braname, eosio::name new_destination_braname, std::vector< checksum256 > request_hashes, document2 transport_act_sender)
 Промежуточная передача товаров между складами. Подробнее...
 
void createorder (eosio::name coopname, eosio::name receiver_braname, eosio::name username, checksum256 hash, uint64_t units, eosio::asset unit_cost, uint32_t product_lifecycle_secs, uint32_t warranty_period_secs, eosio::asset membership_fee_amount, eosio::asset cancellation_fee_amount, document2 convert_in, eosio::name delivery_type, std::string meta)
 Создать заказ — заказчик публикует запрос «поставьте мне». Подробнее...
 
void respondoffer (eosio::name coopname, eosio::name supplier_braname, eosio::name username, checksum256 order_hash, checksum256 offer_hash, uint64_t units, uint32_t product_lifecycle_secs, document2 contribution_statement, document2 convert_out)
 Поставщик откликается на заказ встречным предложением. Подробнее...
 
void coopstock (eosio::name coopname, eosio::name braname, checksum256 hash, uint64_t units, eosio::asset unit_cost, uint32_t product_lifecycle_secs, uint32_t warranty_period_secs, eosio::asset membership_fee_amount, std::string meta)
 Создать заявку на имущество из запасов кооператива. Подробнее...
 
void acceptstock (eosio::name coopname, eosio::name username, checksum256 request_hash, document2 convert_in, document2 return_statement)
 Заказчик принимает предложение из запасов кооператива. Подробнее...
 
void reqreturn (eosio::name coopname, eosio::name username, checksum256 request_hash, document2 return_statement)
 Запрос на возврат паевого взноса имуществом — перед получением. Подробнее...
 
void delivered (eosio::name coopname, eosio::name username, checksum256 request_hash)
 Перевод заявки в статус готово к выдаче. Подробнее...
 
void receive (eosio::name coopname, eosio::name username, checksum256 request_hash, document2 document)
 Получение товара заказчиком. Подробнее...
 
void receivecnf (eosio::name coopname, eosio::name username, checksum256 request_hash, document2 document)
 Подтверждение получения заказчиком. Подробнее...
 
void complete (eosio::name coopname, eosio::name username, checksum256 request_hash)
 Подписание акта о приёме-передаче имущества. Подробнее...
 
void decline (eosio::name coopname, eosio::name username, checksum256 request_hash, std::string meta)
 Отказ от предложения. Подробнее...
 
void cancel (eosio::name coopname, eosio::name username, checksum256 request_hash)
 Отмена заявки и возврат токенов. Подробнее...
 
void destroy (eosio::name coopname, checksum256 request_hash, document2 destruction_act)
 Уничтожение просроченного имущества. Подробнее...
 
void reoffer (eosio::name coopname, checksum256 request_hash, checksum256 new_hash, eosio::asset new_unit_cost, std::string new_meta)
 Перепредложение непринятого имущества по пути coopstock. Подробнее...
 
void dispute (eosio::name coopname, eosio::name username, checksum256 request_hash, document2 document)
 Открытие гарантийного спора по заявке. Подробнее...
 
void wauthorize (eosio::name coopname, checksum256 request_hash, uint64_t wreturn_decision_id, document2 wreturn_authorization, uint64_t wsupply_decision_id, document2 wsupply_authorization)
 Авторизация гарантийного возврата советом Подробнее...
 
void wreturn (eosio::name coopname, eosio::name username, checksum256 request_hash, document2 document)
 Возврат товара от заказчика в кооператив Подробнее...
 
void woffer (eosio::name coopname, eosio::name username, checksum256 request_hash, document2 document)
 Предложение товара поставщику в рамках гарантийного возврата Подробнее...
 
void waccept (eosio::name coopname, eosio::name username, checksum256 request_hash, bool accept, document2 document)
 Принятие или отказ поставщика от товара в рамках гарантийного возврата Подробнее...
 

Открытые статические члены

static void cancel_request (eosio::name coopname, eosio::name username, checksum256 request_hash)
 
static void decline_request (eosio::name coopname, const request &change)
 Статический метод для отклонения заявки (используется советом) Подробнее...
 

Подробное описание

Класс marketplace предоставляет функционал кооперативного маркетплейса, позволяя пользователям создавать, обновлять, принимать и отменять заявки на обмен товаров и услуг. Этот контракт служит центральной точкой для всех операций обмена в рамках кооперативной экосистемы.

Основные функции класса:

  • Создание и управление заявками типа orderoffer (заказчик → поставщик).
  • Операции обновления, принятия, отказа и завершения обменных операций.
  • Модерация и управление публикацией заявок на обмен.
  • Административные функции, такие как создание идентификаторов и авторизация операций.

Процесс поставки orderoffer:

  1. orderoffer - заказчик создает заявку с документами на возврат и конвертацию, средства блокируются
  2. accept - поставщик принимает заявку и предоставляет документы на взнос и конвертацию
  3. authcontrib/authreturn - совет авторизует оба заявления раздельно
  4. supplysupplcnf - поставка товара и подтверждение председателем КУ
  5. deliver1deliver2deliver3deliver4 - этапы транспортировки
  6. receivereceivecnf - получение товара заказчиком
  7. complete - завершение поставки после гарантийного периода

Документооборот:

Все документы сохраняются в векторе std::vector<document2> documents в заявке. Каждый этап процесса добавляет необходимые документы в этот вектор.

Заметки
Контракт маркетплейса является центральной точкой экономической активности на платформе.
Система упрощена для работы с одной заявкой вместо двух встречных.

Конструктор(ы)

◆ marketplace()

marketplace::marketplace ( eosio::name  receiver,
eosio::name  code,
eosio::datastream< const char * >  ds 
)
inline

Методы

◆ accept()

void marketplace::accept ( eosio::name  coopname,
eosio::name  supplier_braname,
eosio::name  username,
checksum256  request_hash,
document2  convert_out,
document2  product_contribution_statement 
)

Подтверждение готовности выполнить заявку.

Принятие заявки поставщиком.

Данный метод позволяет пользователю, который получил предложение по своей заявке, подтвердить свою готовность его принять и выполнить. При этом формируется пакет документов, который отправляется в совет на утверждение.

Аргументы
usernameИмя пользователя, подтверждающего готовность выполнить предложение.
exchange_idID предложения, которое следует подтвердить.
Заметки
Авторизация требуется от аккаунта: username

Поставщик принимает заявку orderoffer на поставку имущества. При принятии создаётся ОДНО заявление в совет — на имущественный паевой взнос. Заявление на возврат будет создано позже, перед получением имущества заказчиком.

Аргументы
coopnameИмя кооператива
supplier_branameИмя кооперативного участка поставщика
usernameИмя поставщика
request_hashХэш заявки
convert_outЗаявление на конвертацию в кошелек (сохраняется для будущего использования)
product_contribution_statementЗаявление на имущественный паевой взнос
Заметки
Авторизация требуется от аккаунта: coopname

◆ acceptstock()

void marketplace::acceptstock ( eosio::name  coopname,
eosio::name  username,
checksum256  request_hash,
document2  convert_in,
document2  return_statement 
)

Заказчик принимает предложение из запасов кооператива.

Заказчик блокирует средства и запрашивает возврат. Поскольку имущество уже на балансе — авторизация взноса не нужна, сразу создаётся заявление на возврат в совет.

Аргументы
coopnameИмя кооператива
usernameИмя заказчика
request_hashХэш заявки
convert_inЗаявление на конвертацию из кошелька
return_statementЗаявление на возврат паевого взноса имуществом
Заметки
Авторизация требуется от аккаунта: coopname

◆ apply()

void marketplace::apply ( uint64_t  receiver,
uint64_t  code,
uint64_t  action 
)

◆ arrived()

void marketplace::arrived ( eosio::name  coopname,
checksum256  hash,
document2  transport_act_delivery 
)

Перевозка прибыла в место назначения.

Перевозка переходит в статус arrived и ожидает подписи получателя.

Аргументы
coopnameИмя кооператива
hashИдентификатор перевозки
transport_act_deliveryАкт доставки подписанный водителем
Заметки
Авторизация требуется от аккаунта: coopname

◆ authcontrib()

void marketplace::authcontrib ( eosio::name  coopname,
checksum256  request_hash,
document2  authorization 
)

Авторизация заявления на имущественный паевой взнос советом кооператива.

Совет авторизует заявление поставщика на взнос имуществом. После авторизации заявка переходит в статус authorized — поставщик может начинать поставку. Заявление на возврат будет подано и авторизовано отдельно, перед выдачей заказчику.

Аргументы
coopnameИмя кооператива
request_hashХэш заявки
authorizationДокумент авторизации от совета
Заметки
Авторизация требуется от аккаунта: _soviet

◆ authreturn()

void marketplace::authreturn ( eosio::name  coopname,
checksum256  request_hash,
document2  authorization 
)

Авторизация заявления на возврат паевого взноса имуществом.

Совет авторизует заявление заказчика на возврат паевого взноса. Вызывается ПОСЛЕ подачи заявления заказчиком (requestreturn), когда имущество уже доставлено на КУ и готово к выдаче.

Аргументы
coopnameИмя кооператива
request_hashХэш заявки
authorizationДокумент авторизации от совета
Заметки
Авторизация требуется от аккаунта: _soviet

◆ cancel()

void marketplace::cancel ( eosio::name  coopname,
eosio::name  username,
checksum256  request_hash 
)

Отмена заявки и возврат токенов.

Отмена заявки пользователем.

Позволяет пользователю отменить родительскую или дочернюю заявку, а также обеспечивает возврат токенов владельцу (если применимо). При отмене проверяется наличие заявки и её текущий статус.

Аргументы
usernameИмя пользователя, инициировавшего отмену.
exchange_idИдентификатор заявки для отмены.
Заметки
Авторизация требуется от аккаунта: username

Пользователь может отменить свою заявку с учетом комиссии за отмену.

Аргументы
coopnameИмя кооператива
usernameИмя пользователя
request_hashХэш заявки
Заметки
Авторизация требуется от аккаунта: coopname

◆ cancel_request()

static void marketplace::cancel_request ( eosio::name  coopname,
eosio::name  username,
checksum256  request_hash 
)
static

◆ complete()

void marketplace::complete ( eosio::name  coopname,
eosio::name  username,
checksum256  request_hash 
)

Подписание акта о приёме-передаче имущества.

Завершение поставки.

После успешного получения товара, получатель подписывает акт о приёме-передаче, что свидетельствует о юридическом завершении сделки. Этот акт делает пакет документов по данной сделке полным. После проведения ряда проверок, обновляются статусы и количество объектов в основной заявке и предложении. Если все объекты основной заявки обработаны, заявка удаляется из публикации. В зависимости от типа предложения, может осуществляться перевод токенов.

Аргументы
usernameИмя пользователя-получателя товара.
exchange_idID предложения, под которым следует подписать акт.
Заметки
Авторизация требуется от аккаунта: username

После истечения гарантийной задержки происходит завершение поставки.

Аргументы
coopnameИмя кооператива
usernameИмя пользователя
request_hashХэш заявки
Заметки
Авторизация требуется от аккаунта: coopname

◆ coopstock()

void marketplace::coopstock ( eosio::name  coopname,
eosio::name  braname,
checksum256  hash,
uint64_t  units,
eosio::asset  unit_cost,
uint32_t  product_lifecycle_secs,
uint32_t  warranty_period_secs,
eosio::asset  membership_fee_amount,
std::string  meta 
)

Создать заявку на имущество из запасов кооператива.

Кооператив (представитель КУ) создаёт предложение на имущество, которое УЖЕ находится на балансе кооператива. В этом случае:

  • Не требуется внешний поставщик
  • Не требуется взнос имуществом (имущество уже на балансе)
  • Не требуется авторизация взноса советом
  • Требуется только авторизация возврата при получении заказчиком

Заявка создаётся со статусом supplied2 (имущество уже на складе КУ). Это упрощённый путь для реализации уценённого или перепредложенного имущества.

Аргументы
coopnameИмя кооператива
branameКУ, где хранится имущество
unitsКоличество единиц
unit_costСтоимость за единицу (может быть уценённой)
hashХэш заявки
product_lifecycle_secsСрок годности
warranty_period_secsГарантийный срок
membership_fee_amountЧленский взнос
metaМетаданные (описание, фото)
Заметки
Авторизация требуется от аккаунта: coopname

◆ createorder()

void marketplace::createorder ( eosio::name  coopname,
eosio::name  receiver_braname,
eosio::name  username,
checksum256  hash,
uint64_t  units,
eosio::asset  unit_cost,
uint32_t  product_lifecycle_secs,
uint32_t  warranty_period_secs,
eosio::asset  membership_fee_amount,
eosio::asset  cancellation_fee_amount,
document2  convert_in,
eosio::name  delivery_type,
std::string  meta 
)

Создать заказ — заказчик публикует запрос «поставьте мне».

Заказчик создаёт заказ типа order с указанием желаемого количества, стоимости, характеристик. Средства блокируются сразу. Поставщики могут откликнуться встречными предложениями (offer).

Аргументы
coopnameИмя кооператива
receiver_branameКУ заказчика
usernameИмя заказчика
hashХэш заказа
unitsЖелаемое количество
unit_costПредлагаемая цена за единицу
product_lifecycle_secsЖелаемый срок годности
warranty_period_secsЖелаемый гарантийный срок
membership_fee_amountЧленский взнос
cancellation_fee_amountШтраф за отмену
convert_inЗаявление на конвертацию
delivery_typeТип доставки: "internal" или "external"
metaМетаданные
Заметки
Авторизация: coopname

◆ createship()

void marketplace::createship ( eosio::name  coopname,
checksum256  hash,
eosio::name  driver_username,
eosio::name  source_braname,
eosio::name  destination_braname,
std::vector< checksum256 >  request_hashes,
document2  transport_act_sender 
)

Создание новой перевозки с массивом заявок.

Создает новую перевозку от одного КУ к другому с указанием водителя и массива заявок. Представитель КУ отправления подписывает первый акт приёма-передачи. Заявки остаются на складе до получения подписи от водителя.

Аргументы
coopnameИмя кооператива
hashВнешний идентификатор перевозки
driver_usernameИмя водителя-пайщика
source_branameКУ отправителя
destination_branameКУ назначения
request_hashesМассив хэшей заявок для перевозки
transport_act_senderАкт приёма-передачи от представителя КУ отправления
Заметки
Авторизация требуется от аккаунта: coopname

◆ decline()

void marketplace::decline ( eosio::name  coopname,
eosio::name  username,
checksum256  request_hash,
std::string  meta 
)

Отказ от предложения.

Отклонение заявки.

Этот метод позволяет пользователю отклонить предложение, представленное к его заявке. Выполняются следующие проверки:

  • Существование предложения с указанным ID.
  • Существование основной заявки.
  • Предложение находится в статусе "ожидание".

Если отклонено предложение к заявке типа "order", осуществляется возврат токенов пользователю, которому были заблокированы токены при создании предложения.

Аргументы
usernameИмя пользователя, отклоняющего предложение.
exchange_idID предложения, которое следует отклонить.
metaДополнительные метаданные, связанные с отказом.
Заметки
Авторизация требуется от аккаунта: username

Отклонение заявки с указанием причины.

Аргументы
coopnameИмя кооператива
usernameИмя пользователя
request_hashХэш заявки
metaПричина отклонения
Заметки
Авторизация требуется от аккаунта: coopname

◆ decline_request()

void marketplace::decline_request ( eosio::name  coopname,
const request &  change 
)
static

Статический метод для отклонения заявки (используется советом)

◆ declineacc()

void marketplace::declineacc ( eosio::name  coopname,
checksum256  request_hash,
std::string  reason 
)

Отклонение принятия заявки советом (declineacc).

Данный метод вызывается советом когда заявление на конвертацию, возврат или взнос отклоняется. После рефакторинга работаем только с одной заявкой orderoffer.

Аргументы
coopnameИмя кооператива
request_hashХэш заявки, которая должна быть отменена
reasonПричина отклонения
Заметки
Авторизация требуется от аккаунта: _soviet

◆ delivered()

void marketplace::delivered ( eosio::name  coopname,
eosio::name  username,
checksum256  request_hash 
)

Перевод заявки в статус готово к выдаче.

Председатель КУ переводит заявку в статус delivered независимо от транспортировки. Используется когда транспортировка между КУ не нужна или имущество уже находится на складе. Просто перевод статуса без дополнительных документов.

Аргументы
coopnameИмя кооператива
usernameИмя пользователя (может быть поставщиком или заказчиком)
request_hashХэш заявки
Заметки
Авторизация требуется от аккаунта: coopname

◆ destroy()

void marketplace::destroy ( eosio::name  coopname,
checksum256  request_hash,
document2  destruction_act 
)

Уничтожение просроченного имущества.

Если имущество не получено заказчиком в срок (deadline_for_receipt) и его срок годности истёк, кооператив может уничтожить его. Требуется комиссионный акт и видео/фото подтверждение.

При уничтожении:

  • Заблокированные средства заказчика разблокируются за вычетом cancellation_fee
  • cancellation_fee зачисляется в фонд членских взносов
  • Из фонда членских взносов поставщику выплачивается стоимость
Аргументы
coopnameИмя кооператива
request_hashХэш заявки
destruction_actАкт уничтожения имущества (с комиссией)
Заметки
Авторизация требуется от аккаунта: coopname

◆ dispute()

void marketplace::dispute ( eosio::name  coopname,
eosio::name  username,
checksum256  request_hash,
document2  document 
)

Открытие гарантийного спора по заявке.

Заказчик может открыть спор после получения товара, если есть проблемы с качеством или соответствием. Создается претензия, которая сохраняется в документах заявки.

Аргументы
coopnameИмя кооператива
usernameИмя заказчика, открывающего спор
request_hashХэш заявки, по которой открывается спор
documentДокумент с описанием претензии
Заметки
Авторизация требуется от аккаунта: coopname

◆ migrate()

void marketplace::migrate ( )

◆ orderoffer()

void marketplace::orderoffer ( eosio::name  coopname,
eosio::name  receiver_braname,
eosio::name  username,
checksum256  hash,
uint64_t  units,
eosio::asset  unit_cost,
uint32_t  product_lifecycle_secs,
uint32_t  warranty_period_secs,
eosio::asset  membership_fee_amount,
eosio::asset  cancellation_fee_amount,
document2  convert_in,
eosio::name  delivery_type,
eosio::name  contribution_type,
std::string  meta 
)

Создать заявку orderoffer — заказчик создаёт заявку на поставку товара.

Заказчик создаёт заявку на поставку. Средства блокируются сразу. Заявление на возврат НЕ подаётся на этом этапе — оно будет подано перед получением (requestreturn), когда известен точный вес/состав имущества.

Аргументы
coopnameИмя кооператива
receiver_branameКУ заказчика для получения товара
usernameИмя заказчика
hashХэш заявки
unitsКоличество единиц товара
unit_costЦена за единицу
product_lifecycle_secsСрок годности продукта
warranty_period_secsГарантийный срок
membership_fee_amountЧленский взнос
cancellation_fee_amountШтраф за отмену
convert_inЗаявление на конвертацию из кошелька в маркетплейс
metaМетаданные
Заметки
Авторизация требуется от аккаунта: coopname

◆ receive()

void marketplace::receive ( eosio::name  coopname,
eosio::name  username,
checksum256  request_hash,
document2  document 
)

Получение товара заказчиком.

Заказчик приходит на КУ для получения имущества. Председатель КУ подписывает акт и передаёт имущество заказчику. Получение возможно ТОЛЬКО после авторизации возврата советом (статус retauthorized).

Аргументы
coopnameИмя кооператива
usernameИмя заказчика (председатель КУ подписывает от лица кооператива)
request_hashХэш заявки
documentАкт получения имущества (подпись председателя КУ)
Заметки
Авторизация требуется от аккаунта: coopname

◆ receivecnf()

void marketplace::receivecnf ( eosio::name  coopname,
eosio::name  username,
checksum256  request_hash,
document2  document 
)

Подтверждение получения заказчиком.

Заказчик подтверждает факт получения имущества второй подписью акта приёма-передачи.

Аргументы
coopnameИмя кооператива
usernameИмя заказчика
request_hashХэш заявки
documentАкт подтверждения получения
Заметки
Авторизация требуется от аккаунта: coopname

◆ receiveshipm()

void marketplace::receiveshipm ( eosio::name  coopname,
checksum256  hash,
document2  warehouse_receipt_act 
)

Приём имущества на склад по накладной.

Представитель КУ получения принимает имущество на склад по накладной. Все заявки из перевозки переходят в статус delivered и ставятся на склад КУ получения. Объект перевозки удаляется.

Аргументы
coopnameИмя кооператива
hashИдентификатор перевозки
warehouse_receipt_actАкт приёма на склад подписанный получателем
Заметки
Авторизация требуется от аккаунта: coopname

◆ reoffer()

void marketplace::reoffer ( eosio::name  coopname,
checksum256  request_hash,
checksum256  new_hash,
eosio::asset  new_unit_cost,
std::string  new_meta 
)

Перепредложение непринятого имущества по пути coopstock.

Если заказчик не получил имущество в срок, но срок годности ещё не истёк, председатель КУ может перепредложить его другим пайщикам. Это создаёт новую заявку типа coopstock на основе текущей, с возможностью изменения цены.

Текущая заявка закрывается (средства возвращаются заказчику за вычетом штрафа), создаётся новая заявка coopstock.

Аргументы
coopnameИмя кооператива
request_hashХэш текущей заявки
new_hashХэш новой заявки
new_unit_costНовая цена за единицу (может быть уценена)
new_metaНовые метаданные
Заметки
Авторизация требуется от аккаунта: coopname

◆ reqreturn()

void marketplace::reqreturn ( eosio::name  coopname,
eosio::name  username,
checksum256  request_hash,
document2  return_statement 
)

Запрос на возврат паевого взноса имуществом — перед получением.

Заказчик подаёт заявление на возврат паевого взноса имуществом. Вызывается когда имущество доставлено на КУ получателя (статус delivered). Председатель КУ фиксирует факт выдачи и точные параметры имущества (вес, количество).

Создаёт пункт повестки для совета на авторизацию возврата.

Аргументы
coopnameИмя кооператива
usernameИмя заказчика
request_hashХэш заявки
return_statementЗаявление на возврат паевого взноса (обновлённое, с точным весом)
Заметки
Авторизация требуется от аккаунта: coopname

◆ respondoffer()

void marketplace::respondoffer ( eosio::name  coopname,
eosio::name  supplier_braname,
eosio::name  username,
checksum256  order_hash,
checksum256  offer_hash,
uint64_t  units,
uint32_t  product_lifecycle_secs,
document2  contribution_statement,
document2  convert_out 
)

Поставщик откликается на заказ встречным предложением.

Поставщик видит заказ и предлагает поставку. Создаёт встречную заявку типа offer, привязанную к order. Заявление на взнос имуществом отправляется в совет.

Аргументы
coopnameИмя кооператива
supplier_branameКУ поставщика
usernameИмя поставщика
order_hashХэш заказа
offer_hashХэш предложения
unitsКоличество предлагаемых единиц
product_lifecycle_secsСрок годности от поставщика
contribution_statementЗаявление на взнос имуществом
convert_outЗаявление на конвертацию
Заметки
Авторизация: coopname

◆ retransport()

void marketplace::retransport ( eosio::name  coopname,
checksum256  completed_hash,
eosio::name  new_driver_username,
eosio::name  source_braname,
eosio::name  new_destination_braname,
std::vector< checksum256 >  request_hashes,
document2  transport_act_sender 
)

Промежуточная передача товаров между складами.

Создает новую перевозку для доставленных заявок, позволяя передать все товары из текущего склада в другое место назначения с новым водителем.

Аргументы
coopnameИмя кооператива
completed_hashВнешний идентификатор новой перевозки
new_driver_usernameИмя нового водителя-пайщика
source_branameКУ с которого забираем товары
new_destination_branameНовый КУ назначения
request_hashesМассив хэшей заявок для переотправки
transport_act_senderАкт передачи от текущего склада
Заметки
Авторизация требуется от аккаунта: coopname

◆ signbydriver()

void marketplace::signbydriver ( eosio::name  coopname,
checksum256  hash,
document2  transport_act_driver 
)

Подпись акта приёма-передачи водителем.

Водитель подписывает акт приёма имущества на транспортировку. Все заявки снимаются со склада отправления. Перевозка переходит в статус transit.

Аргументы
coopnameИмя кооператива
hashИдентификатор перевозки
transport_act_driverАкт приёма-передачи подписанный водителем
Заметки
Авторизация требуется от аккаунта: coopname

◆ supplcnf()

void marketplace::supplcnf ( eosio::name  coopname,
eosio::name  username,
checksum256  request_hash,
document2  act 
)

Подтверждение поставки председателем КУ.

Председатель кооперативного участка или доверенное им лицо подтверждает факт поставки имущества.

Аргументы
coopnameИмя кооператива
usernameИмя представителя кооператива
request_hashХэш заявки
actАкт подтверждения поставки
Заметки
Авторизация требуется от аккаунта: coopname

◆ supply()

void marketplace::supply ( eosio::name  coopname,
eosio::name  username,
checksum256  request_hash,
document2  act 
)

Поставка имущества в кооператив.

Поставщик поставляет имущество на указанный кооперативный участок и предоставляет подписанный акт приёма-передачи.

Аргументы
coopnameИмя кооператива
usernameИмя поставщика
request_hashХэш заявки
actАкт поставки имущества
Заметки
Авторизация требуется от аккаунта: coopname

◆ waccept()

void marketplace::waccept ( eosio::name  coopname,
eosio::name  username,
checksum256  request_hash,
bool  accept,
document2  document 
)

Принятие или отказ поставщика от товара в рамках гарантийного возврата

Поставщик может принять товар (accept=true) или отказаться от него (accept=false). При принятии товар передается поставщику и диспут завершается. При отказе товар остается у кооператива и диспут завершается.

Аргументы
coopnameИмя кооператива
usernameИмя поставщика
request_hashХэш заявки с диспутом
acceptПринимает ли поставщик товар (true/false)
documentДокумент с решением поставщика
Заметки
Авторизация требуется от аккаунта: coopname

◆ wauthorize()

void marketplace::wauthorize ( eosio::name  coopname,
checksum256  request_hash,
uint64_t  wreturn_decision_id,
document2  wreturn_authorization,
uint64_t  wsupply_decision_id,
document2  wsupply_authorization 
)

Авторизация гарантийного возврата советом

Совет авторизует принятие товара от заказчика и его последующую выдачу поставщику

Аргументы
coopnameИмя кооператива
request_hashХэш заявки с диспутом
wreturn_decision_idИдентификатор решения по принятию товара
wreturn_authorizationДокумент авторизации принятия товара
wsupply_decision_idИдентификатор решения по выдаче товара поставщику
wsupply_authorizationДокумент авторизации выдачи товара
Заметки
Авторизация требуется от аккаунта: _soviet

◆ woffer()

void marketplace::woffer ( eosio::name  coopname,
eosio::name  username,
checksum256  request_hash,
document2  document 
)

Предложение товара поставщику в рамках гарантийного возврата

Кооператив предлагает поставщику забрать товар, возвращенный заказчиком. Создается предложение с актом передачи.

Аргументы
coopnameИмя кооператива
usernameИмя председателя, предлагающего товар
request_hashХэш заявки с диспутом
documentАкт передачи товара поставщику
Заметки
Авторизация требуется от аккаунта: coopname

◆ wreturn()

void marketplace::wreturn ( eosio::name  coopname,
eosio::name  username,
checksum256  request_hash,
document2  document 
)

Возврат товара от заказчика в кооператив

Заказчик возвращает товар в кооператив в рамках гарантийного возврата. Председатель принимает товар и подписывает акт приёма.

Аргументы
coopnameИмя кооператива
usernameИмя председателя, принимающего товар
request_hashХэш заявки с диспутом
documentАкт приёма товара от заказчика
Заметки
Авторизация требуется от аккаунта: coopname

Объявления и описания членов классов находятся в файлах: