Эпик 9 «Склад и отчётность кооператива» MVP Стола заказов (598-12) (#400)
Publish Docs / build-and-publish-docs (push) Failing after 11m38s
Publish Docs / build-and-publish-docs (push) Failing after 11m38s
* [598-12][@ant] chore: process-hash-locator Phase B готов к активации marketplace Эпик 9 / Story 9.3: обновлён комментарий к ключам p.mkt.supply / p.mkt.return / p.mkt.wroff. Phase A через OPERATION_CODE_TO_PROCESS_TYPE уже связывает все o.mkt.* с тремя process_type из cooptypes; Phase B ждёт появления entity- таблицы marketplace::requests с полем request_hash (Locked Decision L10). Заглушка [] остаётся корректной — Phase B наполняется одной правкой при готовности C++. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * [598-12][@ant] feat: operator-стол «Склад моего КУ» — Story 9.1 Лента marketplace_inventory отфильтрована по braname текущего КУ; per-row статусы (LABELED / ISSUED / RETURNED / WRITTEN_OFF) через mp-status-chip, фильтры по статусу/orderer, summary count by status (activeOnly + writtenOff). Сортировка по labeled_at DESC по умолчанию. Backend-доступ ограничивается guard'ом Warehouse: ['read:own-KU'] — оператор видит только свой участок. Real-time подписки AR37 SDK платформы подключаются отдельным шагом эпика (на MVP — refresh кнопкой). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * [598-12][@ant] feat: admin-стол «Сводный склад» через WarehouseSummaryGrid — Story 9.2 Две вкладки admin-стола (UX-DR16 + DR31, mp-role-admin): - «Сводный склад» — агрегация marketplace_inventory по ku × sku через canon-виджет WarehouseSummaryGrid (incoming = LABELED + RETURNED, outgoing = ISSUED, balance — транзитный остаток без ISSUED); - «Поток заказов и поставок» — sums маркировок / выдач / возвратов / списаний + топ-10 SKU по обороту. Графики динамики (orders_per_day, supplies_per_day, writeoffs_per_month) подключаются по AR37 SDK- подпискам платформы отдельным шагом. Backend-доступ Warehouse: ['read:all'] (chairman + member). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * [598-12][@ant] feat: SDK обёртки processes + страница «История операций» — Story 9.5 SDK: - selectors/processes/processViewSelector + processSummarySelector (полное покрытие ProcessView / ProcessSummary / Pagination) - queries/processes/getProcess + listProcesses - queries/index.ts: export * as Processes Desktop pages/Marketplace/OperationsHistory: - лента всех процессов с фильтрами по coopname / processType / username; - разворот через стандартный core processRegistry.getProcess(process_hash) показывает actions, delta_history и связанные documents; - кнопка «Скачать JSON» для аудиторской выгрузки конкретного процесса (AR36, L13 pull-модель). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * [598-12][@ant] feat: UI-stub «Экосистема кооперативов» — Story 9.4 Раздел admin-стола под межкооперативную торговлю Phase 2 (NFR-Sc2 / AR18). На MVP — заглушка с информацией о текущем кооперативе и явным сообщением что список других controller'ов с marketplace появится после подключения платформенного ecosystem_registry. Backend-регистрация controller через core-API в отдельном Эпике 9 + техдолге platform (см. issue эпика). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * [598-12][@ant] feat: маршруты market workspace под Эпик 9 Регистрирует 4 новые страницы Эпика 9 в desktop/extensions/market/install: - market-pvz/warehouse — Story 9.1 «Склад моего КУ» (operator-стол КУ); - market/warehouse-summary — Story 9.2 «Сводный склад» (admin-стол); - market/history — Story 9.5 «История операций» (admin-стол); - market/ecosystem — Story 9.4 «Экосистема» (admin-стол, MVP-stub). Доступы соответствуют access-matrix marketplace: warehouse-стол КУ — только chairman; сводный склад / история / экосистема — chairman + member (board_readonly). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * [598-12][@ant] chore: регенерация schema.gql / zeus / SDK Zeus + fix DTO writeoff Source-of-truth GraphQL-схема была устаревшая после Эпика 8 — DTO `MarketplaceWriteoffProposalItemDTO` использовал `?: string | null` без explicit-`@Field(() => String)`, и Nest GraphQL падал при `generate-schema` ⇒ Zeus в SDK не получил writeoff queries и Processes из Story 9.5. - DTO: пять nullable string-полей writeoff'а получили `@Field(() => String, { nullable: true })`. - schema.gql регенерирован (`pnpm run generate-schema`). - zeus обновлён в controller/zeus и sdk/src/zeus (`pnpm run generate-client`). - В Zeus теперь видны: ProcessView / ProcessSummary / ProcessesFilter, MarketplaceWriteoffProposal / PaginatedMarketplaceWriteoffProposals и т.п. После этого `cd components/sdk && pnpm run build` собирается без ошибок; desktop потребители (AdminWriteoffs API + новая страница OperationsHistory) получают типизированный доступ к Zeus. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * [598-12][@ant] fix: enum-значения статусов + убрать as const в bucket аккумуляторе После регенерации Zeus `MarketplaceInventoryStatus` стал nominal enum вместо string-literal union — статусы передаются через `Zeus.MarketplaceInventoryStatus.LABELED|ISSUED|RETURNED|WRITTEN_OFF`, а не голыми строками. В `AdminWarehouseSummaryPage.warehouseRows` убран лишний `as const` на дефолтном bucket'е — он делал поля `in/out/balance` readonly и ломал накопление через `b.in += qty`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * [598-12][@ant] feat: Phase B locator p.mkt.* — реальные ссылки на marketplace::orders/retrequests/wroffprops Story 9.3. Контракт marketplace опубликован в Эпике 11; все три marketplace-процесса (supply / return / writeoff) уже имеют свои entity-таблицы с одноимённым checksum256-полем `hash`. Pre-existing заглушка `[]` с упоминанием Locked Decision L10 снята: теперь Phase B end-to-end отдаёт текущий снэпшот процесса из blockchain_deltas. - p.mkt.supply -> marketplace::orders.hash - p.mkt.return -> marketplace::retrequests.hash - p.mkt.wroff -> marketplace::wroffprops.hash Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * [598-12][@ant] refactor: убрать дубль «Истории операций marketplace» — стол бухгалтера единая точка Старая страница `pages/Marketplace/OperationsHistory` повторяла стол бухгалтера (`extensions/reports`) — actions / delta_history / documents видны там в общем реестре операций. По ревью к PR #400 удаляем полностью; вместо неё marketplace будет инжектировать бизнес-описание процесса в стол бухгалтера через фабрику (см. следующие коммиты). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * [598-12][@ant] feat: фабрика processInfoFactory и три marketplace info-widget'а — слот в стол бухгалтера Аналог DecisionFactory, но для бизнес-описания процесса в реестре операций стола бухгалтера. Каждое расширение регистрирует свой компонент по `process_type`; стол бухгалтера рендерит его в развёрнутой строке после проводок и движений по кошелькам. Дубля «истории» больше нет. - shared/lib/process-info-factory + types: реестр + getInfoComponent - widgets/Marketplace/ProcessSupplyInfoWidget — заказчик, поставщик, КУ, состояние, единицы; deep-link «открыть заказ на столе ПВЗ» - widgets/Marketplace/ProcessReturnInfoWidget — заказчик, состояние, исходный заказ, причина; deep-link «открыть заявление на столе ПВЗ» - widgets/Marketplace/ProcessWriteoffInfoWidget — источник проекта (cron/manual), состояние, цикл, сумма; deep-link «открыть проект на столе списания» - extensions/market/app/extensions.ts — регистрация по `LEDGER2_PROCESS_REGISTRY.name` (SUPPLY/RETURN/WRITEOFF), без string-литералов в коде - extensions/reports/pages/OperationsPage — слот «Содержание процесса» в развороте Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * [598-12][@ant] style: страницы Эпика 9 на <template lang="pug"> + русские лейблы — снять техжаргон из UI Привожу страницы к канону стола заказов: PUG-шаблоны, бизнес-словарь в подписях/фильтрах (Состояние / Кооперативный участок / Заказчик), никаких `p.mkt.*` или raw-имён enum-значений в видимой части. Внутри — строгая типизация через `Zeus.MarketplaceInventoryStatus`, switch на status-полях больше не сравнивается со строками. - OperatorOwnWarehouse (Story 9.1) — PUG, enum-fix, человеческие лейблы - AdminWarehouseSummary (Story 9.2) — PUG, enum-fix, человеческие лейблы - EcosystemRegistry (Story 9.4) — PUG Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * [598-12][@ant] refactor: вынести запрос процесса в entities/Process + чистая типизация в info-widget'ах По канону Ledger2: api/store/types. Widget'ы больше не вызывают client.Query и не делают cast'ов вида `as Record<string, unknown>` — снэпшот приходит строго типизированным `IProcessSnapshot` из SDK через `useProcessStore`. - entities/Process/types — IProcessView / IProcessSnapshot / IProcessDelta выведены из Queries.Processes.GetProcess.IOutput - entities/Process/api — getProcess + pickLatestSnapshot (единственная точка приведения JSON-скаляра) - entities/Process/model — Pinia store с loadProcess / loadLatestSnapshot - widgets/Marketplace/Process{Supply,Return,Writeoff}InfoWidget — используют processStore, типы из entities/Process Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * [598-12][@ant] style: убрать пользовательский техжаргон со сводного склада и экосистемы - AdminWarehouseSummary: удалить сноску про SDK-подписки и формулу остатка — пользователю кооператива это не нужно - EcosystemRegistry: оставить короткую фразу «включится позже», без режима просмотра и упоминаний платформенного реестра Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * [598-12][@ant] docs: зафиксировать паттерн фабрик инжекции в стол совета и стол бухгалтера Новый документ `components/desktop/docs/extension-factories.md`: - общий принцип «общие столы единственная точка просмотра, расширения инжектируют бизнес-описание» - DecisionFactory: контракт, пример регистрации (capital → стол совета) - ProcessInfoFactory: контракт, пример регистрации (market → стол бухгалтера) с использованием LEDGER2_PROCESS_REGISTRY вместо строковых литералов - чек-лист для нового расширения (виджет/PUG → app/extensions.ts → install.ts → реестр в cooptypes) - что делать НЕЛЬЗЯ: повторять у себя реестры операций/проводок/повестки и пихать техжаргон в infoComponent В README desktop — ссылка из раздела «Система расширений». Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: ant <ant@noreply.local> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7588,6 +7588,12 @@ type MarketplaceCreateShipmentResult {
|
||||
shipments: [MarketplaceShipment!]!
|
||||
}
|
||||
|
||||
input MarketplaceCreateWriteoffDraftInput {
|
||||
"""Начало расчётного цикла, если отличается от текущего момента."""
|
||||
cycle_started_at: String
|
||||
items: [MarketplaceWriteoffItemInput!]!
|
||||
}
|
||||
|
||||
type MarketplaceCurrentMember {
|
||||
core_roles: [String!]!
|
||||
marketplace_roles: [String!]!
|
||||
@@ -8032,6 +8038,10 @@ input MarketplaceListShipmentsInput {
|
||||
statuses: [MarketplaceShipmentStatus!]
|
||||
}
|
||||
|
||||
input MarketplaceListWriteoffProposalsInput {
|
||||
statuses: [MarketplaceWriteoffProposalStatus!]
|
||||
}
|
||||
|
||||
type MarketplaceMemberWallet {
|
||||
coopname: String!
|
||||
username: String!
|
||||
@@ -9078,6 +9088,15 @@ input MarketplaceSignAplReceptionInput {
|
||||
signed_documents: [MarketplaceAplReceptionSignedDocumentInput!]!
|
||||
}
|
||||
|
||||
input MarketplaceSubmitWriteoffDraftInput {
|
||||
draft_id: String!
|
||||
|
||||
"""
|
||||
Подписанное председателем Заявление о списании скоропорта (registry_id=1106).
|
||||
"""
|
||||
signed_statement: SignedDigitalDocumentInput!
|
||||
}
|
||||
|
||||
"""Результат индивидуального приёма или отклонения заказа поставщиком."""
|
||||
type MarketplaceSupplierOrderActionResult {
|
||||
"""Заказ после изменения статуса."""
|
||||
@@ -9113,6 +9132,11 @@ input MarketplaceUpdateOfferInput {
|
||||
warranty_days: Int
|
||||
}
|
||||
|
||||
input MarketplaceUpdateWriteoffDraftInput {
|
||||
id: String!
|
||||
items: [MarketplaceWriteoffItemInput!]!
|
||||
}
|
||||
|
||||
type MarketplaceVitrine {
|
||||
"""eosio::name кооператива-владельца витрины"""
|
||||
coopname: String!
|
||||
@@ -9179,6 +9203,105 @@ input MarketplaceWithdrawOfferInput {
|
||||
id: String!
|
||||
}
|
||||
|
||||
type MarketplaceWriteoffDecisionEntry {
|
||||
action: String!
|
||||
actor: String!
|
||||
at: String!
|
||||
}
|
||||
|
||||
input MarketplaceWriteoffItemInput {
|
||||
"""Сумма списания в формате числа с 4 знаками после запятой."""
|
||||
amount: String!
|
||||
asset_title: String!
|
||||
braname: String!
|
||||
inventory_id: String
|
||||
quantity: String!
|
||||
reason: String!
|
||||
}
|
||||
|
||||
type MarketplaceWriteoffProposal {
|
||||
authorized_at: String
|
||||
coopname: String!
|
||||
created_at: String!
|
||||
cycle_started_at: String!
|
||||
|
||||
"""Аккаунт, принявший финальное решение."""
|
||||
decided_by_account: String
|
||||
decision_id: Int
|
||||
decision_log: [MarketplaceWriteoffDecisionEntry!]!
|
||||
executed_at: String
|
||||
|
||||
"""Идентификатор проекта в системе кооператива."""
|
||||
id: String!
|
||||
items: [MarketplaceWriteoffProposalItem!]!
|
||||
|
||||
"""
|
||||
Канонический хеш проекта, используется как process_hash on-chain (wroffprops, soviet.decisions).
|
||||
"""
|
||||
proposal_hash: String!
|
||||
|
||||
"""Аккаунт инициатора проекта (председатель / админ)."""
|
||||
proposed_by_account: String
|
||||
|
||||
"""Причина отказа совета (если REJECTED)."""
|
||||
reject_reason: String
|
||||
rejected_at: String
|
||||
status: MarketplaceWriteoffProposalStatus!
|
||||
submitted_at: String
|
||||
|
||||
"""Σ сумм всех позиций (форматированный asset, 4 знака)."""
|
||||
total_amount: String!
|
||||
trigger: MarketplaceWriteoffProposalTrigger!
|
||||
updated_at: String!
|
||||
}
|
||||
|
||||
type MarketplaceWriteoffProposalItem {
|
||||
"""Сумма списания (4 знака после запятой, валюта кооператива)."""
|
||||
amount: String!
|
||||
|
||||
"""Наименование позиции или артикул из карточки имущества."""
|
||||
asset_title: String!
|
||||
|
||||
"""Кооперативный участок (склад) — источник позиции к списанию."""
|
||||
braname: String!
|
||||
|
||||
"""Признак того, что позиция уже исполнена через execwroff."""
|
||||
executed: Boolean!
|
||||
|
||||
"""Идентификатор инвентарной позиции, если известна."""
|
||||
inventory_id: String
|
||||
|
||||
"""Количество единиц к списанию."""
|
||||
quantity: String!
|
||||
|
||||
"""Причина списания (срок годности, повреждение и т.п.)."""
|
||||
reason: String!
|
||||
}
|
||||
|
||||
"""
|
||||
Состояние проекта решения совета о списании скоропорта на пути от черновика до итогового списания.
|
||||
"""
|
||||
enum MarketplaceWriteoffProposalStatus {
|
||||
AUTHORIZED
|
||||
DRAFT
|
||||
EXECUTED
|
||||
EXECUTING
|
||||
ON_AGENDA
|
||||
REJECTED
|
||||
}
|
||||
|
||||
"""
|
||||
Источник проекта списания: автоматический ежемесячный крон или ручное создание.
|
||||
"""
|
||||
enum MarketplaceWriteoffProposalTrigger {
|
||||
CRON
|
||||
MANUAL
|
||||
}
|
||||
|
||||
input MarketplaceWriteoffStatementSignablePayloadInput {
|
||||
draft_id: String!
|
||||
}
|
||||
|
||||
type MatrixAccountStatusResponseDTO {
|
||||
hasAccount: Boolean!
|
||||
iframeUrl: String
|
||||
@@ -10444,6 +10567,9 @@ type Mutation {
|
||||
"""
|
||||
marketplaceCancelOrder(input: MarketplaceCancelOrderInput!): MarketplaceCancelOrderResult!
|
||||
|
||||
"""Удалить черновик. Доступно только пока проект в статусе DRAFT."""
|
||||
marketplaceCancelWriteoffDraft(id: String!): Boolean!
|
||||
|
||||
"""
|
||||
Очистить все доступные категории (сделать доступными все)
|
||||
|
||||
@@ -10479,6 +10605,11 @@ type Mutation {
|
||||
"""
|
||||
marketplaceCreateShipment(data: MarketplaceCreateShipmentInput!): MarketplaceCreateShipmentResult!
|
||||
|
||||
"""
|
||||
Создаёт ручной черновик проекта списания. На кооператив может быть только один открытый черновик и один проект, отправленный в совет.
|
||||
"""
|
||||
marketplaceCreateWriteoffDraft(data: MarketplaceCreateWriteoffDraftInput!): MarketplaceWriteoffProposal!
|
||||
|
||||
"""
|
||||
Поставщик отклоняет сводную заявку — все заказы пакета отменяются, средства разблокируются.
|
||||
"""
|
||||
@@ -10577,6 +10708,11 @@ type Mutation {
|
||||
"""
|
||||
marketplaceSignAplReceptionAsSupplier(data: MarketplaceSignAplReceptionInput!): MarketplaceAplReceptionResult!
|
||||
|
||||
"""
|
||||
Отправить черновик в совет. Принимает подписанное председателем Заявление 1106. После успешного приёма выполняются propwroff и soviet::createagenda(mktwroff).
|
||||
"""
|
||||
marketplaceSubmitWriteoffDraft(data: MarketplaceSubmitWriteoffDraftInput!): MarketplaceWriteoffProposal!
|
||||
|
||||
"""
|
||||
Поставщик запускает поставку по предложению с открытой подпиской: формируется сводная заявка, заказы в её пуле принимаются.
|
||||
"""
|
||||
@@ -10585,6 +10721,9 @@ type Mutation {
|
||||
"""Поставщик правит свой Offer — статус сбрасывается в PENDING_MODERATION"""
|
||||
marketplaceUpdateOffer(input: MarketplaceUpdateOfferInput!): MarketplaceOffer!
|
||||
|
||||
"""Изменить состав черновика — добавить, удалить или поправить позиции."""
|
||||
marketplaceUpdateWriteoffDraft(data: MarketplaceUpdateWriteoffDraftInput!): MarketplaceWriteoffProposal!
|
||||
|
||||
"""Поставщик снимает свой Offer (статус → WITHDRAWN)"""
|
||||
marketplaceWithdrawOffer(input: MarketplaceWithdrawOfferInput!): MarketplaceOffer!
|
||||
|
||||
@@ -11263,6 +11402,20 @@ type PaginatedGatewayPaymentsPaginationResult {
|
||||
totalPages: Int!
|
||||
}
|
||||
|
||||
type PaginatedMarketplaceWriteoffProposals {
|
||||
"""Текущая страница"""
|
||||
currentPage: Int!
|
||||
|
||||
"""Элементы текущей страницы"""
|
||||
items: [MarketplaceWriteoffProposal!]!
|
||||
|
||||
"""Общее количество элементов"""
|
||||
totalCount: Int!
|
||||
|
||||
"""Общее количество страниц"""
|
||||
totalPages: Int!
|
||||
}
|
||||
|
||||
input PaginationInput {
|
||||
"""Количество элементов на странице"""
|
||||
limit: Int! = 10
|
||||
@@ -13033,6 +13186,9 @@ type Query {
|
||||
"""Список пайщиков-поставщиков, допущенных к публикации оферт"""
|
||||
marketplaceListWhitelist: [MarketplaceWhitelistEntry!]!
|
||||
|
||||
"""Лента всех проектов списания кооператива с фильтром по статусу."""
|
||||
marketplaceListWriteoffProposals(data: MarketplaceListWriteoffProposalsInput!, options: PaginationInput): PaginatedMarketplaceWriteoffProposals!
|
||||
|
||||
"""
|
||||
Кошельки пайщика, релевантные столу заказов: w.wal.share, w.wal.member, w.mkt.member
|
||||
"""
|
||||
@@ -13043,6 +13199,9 @@ type Query {
|
||||
"""
|
||||
marketplaceOnboardingState: MarketplaceOnboardingState!
|
||||
|
||||
"""Открытый черновик проекта списания (если есть). Один на кооператив."""
|
||||
marketplaceOpenWriteoffDraft: MarketplaceWriteoffProposal
|
||||
|
||||
"""
|
||||
Статус видимости оферты Стола заказов в core registration-flow (платформенный AgreementRegistry)
|
||||
"""
|
||||
@@ -13074,6 +13233,14 @@ type Query {
|
||||
"""Контекст пайщика для Стола заказов: core_roles + marketplace_roles"""
|
||||
marketplaceWhoAmI: MarketplaceCurrentMember!
|
||||
|
||||
"""Детали одного проекта списания: items, decision_log, протокол."""
|
||||
marketplaceWriteoffProposal(id: String!): MarketplaceWriteoffProposal!
|
||||
|
||||
"""
|
||||
Превью Заявления о списании скоропорта (registry 1106) для подписания председателем.
|
||||
"""
|
||||
marketplaceWriteoffStatementSignablePayload(data: MarketplaceWriteoffStatementSignablePayloadInput!): GeneratedDocument!
|
||||
|
||||
"""
|
||||
Получение документов кооператива для синхронизации с 1С. Требует секретный ключ в заголовке x-onecoop-secret-key.
|
||||
"""
|
||||
|
||||
@@ -112,24 +112,18 @@ export const PROCESS_HASH_LOCATOR: Readonly<Record<string, HashLocation[]>> = Ob
|
||||
// Сущностная таблица — `capital::prgwithdraws.withdraw_hash`.
|
||||
'p.cap.wthcap': [{ code: 'capital', table: 'prgwithdraws', field: 'withdraw_hash' }],
|
||||
|
||||
// marketplace — членская модель «Стола заказов» (refactor 2026-05-11).
|
||||
// Старый p.mkt.reqst (клиринговая модель, таблица marketplace::requests)
|
||||
// удалён вместе с o.mkt.supply/recv. Новые три процесса (p.mkt.supply /
|
||||
// p.mkt.return / p.mkt.wroff) пока без entity-таблиц: реализация
|
||||
// контракта marketplace под членскую модель ещё не написана, в C++ нет
|
||||
// соответствующих вызовов ledger2::apply. Заглушка [] корректна для
|
||||
// текущего состояния (контроллер не получит operation_codes, требующие
|
||||
// этих locator'ов).
|
||||
//
|
||||
// Status (Story 1.1, 2026-05-14): расширение `market` устанавливается из
|
||||
// Каталога приложений; ключи `p.mkt.*` в Phase B готовы к активации.
|
||||
// Реальные `{code, table, field}` подставляются в Story 4.1 при создании
|
||||
// backend-таблицы консолидированных заявок (Locked Decision L10) — поле
|
||||
// `request_hash` (а не `order_hash`, чтобы не путать с `offer_hash` в
|
||||
// orderoffer-actions).
|
||||
'p.mkt.supply': [],
|
||||
'p.mkt.return': [],
|
||||
'p.mkt.wroff': [],
|
||||
// marketplace — членская модель «Стола заказов». Три entity-таблицы из
|
||||
// contracts/cpp/lib/domain/table_marketplace_*.hpp хранят сами процессы:
|
||||
// - `orders.hash` — поставка имущества (заказ через каталог).
|
||||
// - `retrequests.hash` — гарантийный возврат имущества.
|
||||
// - `wroffprops.hash` — проект решения совета о списании скоропорта.
|
||||
// Имя поля — `hash` (а не `order_hash`/`request_hash`); все три таблицы
|
||||
// используют один и тот же `checksum256 hash` как первичный
|
||||
// process-якорь. Через них Phase B resolution в blockchain_deltas
|
||||
// отдаёт current state процесса вместе с Phase-A экшенами.
|
||||
'p.mkt.supply': [{ code: 'marketplace', table: 'orders', field: 'hash' }],
|
||||
'p.mkt.return': [{ code: 'marketplace', table: 'retrequests', field: 'hash' }],
|
||||
'p.mkt.wroff': [{ code: 'marketplace', table: 'wroffprops', field: 'hash' }],
|
||||
|
||||
// p.sov.axncnv — одноактовый процесс: данные из blockchain_actions +
|
||||
// документ statement (DocumentFieldDetector).
|
||||
|
||||
+20
-8
@@ -41,7 +41,10 @@ export class MarketplaceWriteoffProposalItemDTO {
|
||||
amount!: string;
|
||||
@Field({ description: 'Причина списания (срок годности, повреждение и т.п.).' })
|
||||
reason!: string;
|
||||
@Field({ nullable: true, description: 'Идентификатор инвентарной позиции, если известна.' })
|
||||
@Field(() => String, {
|
||||
nullable: true,
|
||||
description: 'Идентификатор инвентарной позиции, если известна.',
|
||||
})
|
||||
inventory_id?: string | null;
|
||||
@Field({ description: 'Признак того, что позиция уже исполнена через execwroff.' })
|
||||
executed!: boolean;
|
||||
@@ -76,25 +79,34 @@ export class MarketplaceWriteoffProposalDTO {
|
||||
proposal_hash!: string;
|
||||
@Field(() => Int, { nullable: true })
|
||||
decision_id?: number | null;
|
||||
@Field({ nullable: true, description: 'Аккаунт инициатора проекта (председатель / админ).' })
|
||||
@Field(() => String, {
|
||||
nullable: true,
|
||||
description: 'Аккаунт инициатора проекта (председатель / админ).',
|
||||
})
|
||||
proposed_by_account?: string | null;
|
||||
@Field({ nullable: true, description: 'Аккаунт, принявший финальное решение.' })
|
||||
@Field(() => String, {
|
||||
nullable: true,
|
||||
description: 'Аккаунт, принявший финальное решение.',
|
||||
})
|
||||
decided_by_account?: string | null;
|
||||
@Field(() => [MarketplaceWriteoffProposalItemDTO])
|
||||
items!: MarketplaceWriteoffProposalItemDTO[];
|
||||
@Field({ description: 'Σ сумм всех позиций (форматированный asset, 4 знака).' })
|
||||
total_amount!: string;
|
||||
@Field({ nullable: true, description: 'Причина отказа совета (если REJECTED).' })
|
||||
@Field(() => String, {
|
||||
nullable: true,
|
||||
description: 'Причина отказа совета (если REJECTED).',
|
||||
})
|
||||
reject_reason?: string | null;
|
||||
@Field(() => [MarketplaceWriteoffDecisionEntryDTO])
|
||||
decision_log!: MarketplaceWriteoffDecisionEntryDTO[];
|
||||
@Field({ nullable: true })
|
||||
@Field(() => String, { nullable: true })
|
||||
submitted_at?: string | null;
|
||||
@Field({ nullable: true })
|
||||
@Field(() => String, { nullable: true })
|
||||
authorized_at?: string | null;
|
||||
@Field({ nullable: true })
|
||||
@Field(() => String, { nullable: true })
|
||||
executed_at?: string | null;
|
||||
@Field({ nullable: true })
|
||||
@Field(() => String, { nullable: true })
|
||||
rejected_at?: string | null;
|
||||
@Field()
|
||||
created_at!: string;
|
||||
|
||||
@@ -686,6 +686,9 @@ export const AllTypesProps: Record<string,any> = {
|
||||
MarketplaceCreateShipmentInput:{
|
||||
groups:"MarketplaceShipmentGroupInput"
|
||||
},
|
||||
MarketplaceCreateWriteoffDraftInput:{
|
||||
items:"MarketplaceWriteoffItemInput"
|
||||
},
|
||||
MarketplaceDeclineConsolidatedRequestInput:{
|
||||
|
||||
},
|
||||
@@ -752,6 +755,9 @@ export const AllTypesProps: Record<string,any> = {
|
||||
MarketplaceListShipmentsInput:{
|
||||
statuses:"MarketplaceShipmentStatus"
|
||||
},
|
||||
MarketplaceListWriteoffProposalsInput:{
|
||||
statuses:"MarketplaceWriteoffProposalStatus"
|
||||
},
|
||||
MarketplaceOpenIssuanceInput:{
|
||||
signed_document:"MarketplaceIssueActSignedDocumentInput"
|
||||
},
|
||||
@@ -803,14 +809,28 @@ export const AllTypesProps: Record<string,any> = {
|
||||
MarketplaceSignAplReceptionInput:{
|
||||
signed_documents:"MarketplaceAplReceptionSignedDocumentInput"
|
||||
},
|
||||
MarketplaceSubmitWriteoffDraftInput:{
|
||||
signed_statement:"SignedDigitalDocumentInput"
|
||||
},
|
||||
MarketplaceTriggerOpenSubscriptionInput:{
|
||||
|
||||
},
|
||||
MarketplaceUpdateOfferInput:{
|
||||
barcode_strategy:"MarketplaceBarcodeStrategy"
|
||||
},
|
||||
MarketplaceUpdateWriteoffDraftInput:{
|
||||
items:"MarketplaceWriteoffItemInput"
|
||||
},
|
||||
MarketplaceWithdrawOfferInput:{
|
||||
|
||||
},
|
||||
MarketplaceWriteoffItemInput:{
|
||||
|
||||
},
|
||||
MarketplaceWriteoffProposalStatus: "enum" as const,
|
||||
MarketplaceWriteoffProposalTrigger: "enum" as const,
|
||||
MarketplaceWriteoffStatementSignablePayloadInput:{
|
||||
|
||||
},
|
||||
MoveCapitalIssueToComponentInput:{
|
||||
|
||||
@@ -1294,6 +1314,9 @@ export const AllTypesProps: Record<string,any> = {
|
||||
},
|
||||
marketplaceCancelOrder:{
|
||||
input:"MarketplaceCancelOrderInput"
|
||||
},
|
||||
marketplaceCancelWriteoffDraft:{
|
||||
|
||||
},
|
||||
marketplaceCreateAplReception:{
|
||||
data:"MarketplaceCreateAplReceptionInput"
|
||||
@@ -1313,6 +1336,9 @@ export const AllTypesProps: Record<string,any> = {
|
||||
marketplaceCreateShipment:{
|
||||
data:"MarketplaceCreateShipmentInput"
|
||||
},
|
||||
marketplaceCreateWriteoffDraft:{
|
||||
data:"MarketplaceCreateWriteoffDraftInput"
|
||||
},
|
||||
marketplaceDeclineConsolidatedRequest:{
|
||||
input:"MarketplaceDeclineConsolidatedRequestInput"
|
||||
},
|
||||
@@ -1367,12 +1393,18 @@ export const AllTypesProps: Record<string,any> = {
|
||||
marketplaceSignAplReceptionAsSupplier:{
|
||||
data:"MarketplaceSignAplReceptionInput"
|
||||
},
|
||||
marketplaceSubmitWriteoffDraft:{
|
||||
data:"MarketplaceSubmitWriteoffDraftInput"
|
||||
},
|
||||
marketplaceTriggerOpenSubscription:{
|
||||
input:"MarketplaceTriggerOpenSubscriptionInput"
|
||||
},
|
||||
marketplaceUpdateOffer:{
|
||||
input:"MarketplaceUpdateOfferInput"
|
||||
},
|
||||
marketplaceUpdateWriteoffDraft:{
|
||||
data:"MarketplaceUpdateWriteoffDraftInput"
|
||||
},
|
||||
marketplaceWithdrawOffer:{
|
||||
input:"MarketplaceWithdrawOfferInput"
|
||||
},
|
||||
@@ -1951,6 +1983,10 @@ export const AllTypesProps: Record<string,any> = {
|
||||
input:"MarketplaceListOrdersInput",
|
||||
options:"PaginationInput"
|
||||
},
|
||||
marketplaceListWriteoffProposals:{
|
||||
data:"MarketplaceListWriteoffProposalsInput",
|
||||
options:"PaginationInput"
|
||||
},
|
||||
marketplaceRequiredAttributes:{
|
||||
data:"GetRequiredAttributesInput"
|
||||
},
|
||||
@@ -1972,6 +2008,12 @@ export const AllTypesProps: Record<string,any> = {
|
||||
marketplaceValidateAttributeValues:{
|
||||
input:"ValidateAttributeValuesInput"
|
||||
},
|
||||
marketplaceWriteoffProposal:{
|
||||
|
||||
},
|
||||
marketplaceWriteoffStatementSignablePayload:{
|
||||
data:"MarketplaceWriteoffStatementSignablePayloadInput"
|
||||
},
|
||||
onecoopGetDocuments:{
|
||||
data:"GetOneCoopDocumentsInput"
|
||||
},
|
||||
@@ -4337,6 +4379,41 @@ export const ReturnTypes: Record<string,any> = {
|
||||
member_account:"String",
|
||||
role:"String"
|
||||
},
|
||||
MarketplaceWriteoffDecisionEntry:{
|
||||
action:"String",
|
||||
actor:"String",
|
||||
at:"String"
|
||||
},
|
||||
MarketplaceWriteoffProposal:{
|
||||
authorized_at:"String",
|
||||
coopname:"String",
|
||||
created_at:"String",
|
||||
cycle_started_at:"String",
|
||||
decided_by_account:"String",
|
||||
decision_id:"Int",
|
||||
decision_log:"MarketplaceWriteoffDecisionEntry",
|
||||
executed_at:"String",
|
||||
id:"String",
|
||||
items:"MarketplaceWriteoffProposalItem",
|
||||
proposal_hash:"String",
|
||||
proposed_by_account:"String",
|
||||
reject_reason:"String",
|
||||
rejected_at:"String",
|
||||
status:"MarketplaceWriteoffProposalStatus",
|
||||
submitted_at:"String",
|
||||
total_amount:"String",
|
||||
trigger:"MarketplaceWriteoffProposalTrigger",
|
||||
updated_at:"String"
|
||||
},
|
||||
MarketplaceWriteoffProposalItem:{
|
||||
amount:"String",
|
||||
asset_title:"String",
|
||||
braname:"String",
|
||||
executed:"Boolean",
|
||||
inventory_id:"String",
|
||||
quantity:"String",
|
||||
reason:"String"
|
||||
},
|
||||
MatrixAccountStatusResponseDTO:{
|
||||
hasAccount:"Boolean",
|
||||
iframeUrl:"String",
|
||||
@@ -4592,6 +4669,7 @@ export const ReturnTypes: Record<string,any> = {
|
||||
marketplaceApproveOffer:"MarketplaceOffer",
|
||||
marketplaceApproveReturnVisit:"MarketplaceReturnClaimResult",
|
||||
marketplaceCancelOrder:"MarketplaceCancelOrderResult",
|
||||
marketplaceCancelWriteoffDraft:"Boolean",
|
||||
marketplaceClearAvailableCategories:"Boolean",
|
||||
marketplaceCreateAplReception:"MarketplaceAplReceptionResult",
|
||||
marketplaceCreateOffer:"MarketplaceOffer",
|
||||
@@ -4599,6 +4677,7 @@ export const ReturnTypes: Record<string,any> = {
|
||||
marketplaceCreateRequest:"MarketplaceRequest",
|
||||
marketplaceCreateReturnClaim:"MarketplaceReturnClaimResult",
|
||||
marketplaceCreateShipment:"MarketplaceCreateShipmentResult",
|
||||
marketplaceCreateWriteoffDraft:"MarketplaceWriteoffProposal",
|
||||
marketplaceDeclineConsolidatedRequest:"MarketplaceConsolidatedRequestActionResult",
|
||||
marketplaceDeclineIndividualOrder:"MarketplaceSupplierOrderActionResult",
|
||||
marketplaceDeclineOrderFromOpenPool:"MarketplaceSupplierOrderActionResult",
|
||||
@@ -4617,8 +4696,10 @@ export const ReturnTypes: Record<string,any> = {
|
||||
marketplaceSetKUStatus:"MarketplaceKUDetails",
|
||||
marketplaceSignAplReceptionAsChairman:"MarketplaceAplReceptionResult",
|
||||
marketplaceSignAplReceptionAsSupplier:"MarketplaceAplReceptionResult",
|
||||
marketplaceSubmitWriteoffDraft:"MarketplaceWriteoffProposal",
|
||||
marketplaceTriggerOpenSubscription:"MarketplaceConsolidatedRequest",
|
||||
marketplaceUpdateOffer:"MarketplaceOffer",
|
||||
marketplaceUpdateWriteoffDraft:"MarketplaceWriteoffProposal",
|
||||
marketplaceWithdrawOffer:"MarketplaceOffer",
|
||||
notifyOnAnnualGeneralMeet:"MeetAggregate",
|
||||
processConvertToAxonStatement:"Boolean",
|
||||
@@ -4844,6 +4925,12 @@ export const ReturnTypes: Record<string,any> = {
|
||||
totalCount:"Int",
|
||||
totalPages:"Int"
|
||||
},
|
||||
PaginatedMarketplaceWriteoffProposals:{
|
||||
currentPage:"Int",
|
||||
items:"MarketplaceWriteoffProposal",
|
||||
totalCount:"Int",
|
||||
totalPages:"Int"
|
||||
},
|
||||
ParticipantAccount:{
|
||||
braname:"String",
|
||||
created_at:"DateTime",
|
||||
@@ -5246,8 +5333,10 @@ export const ReturnTypes: Record<string,any> = {
|
||||
marketplaceListShipments:"MarketplaceShipment",
|
||||
marketplaceListSupplierOrders:"MarketplaceOrderPaginationResult",
|
||||
marketplaceListWhitelist:"MarketplaceWhitelistEntry",
|
||||
marketplaceListWriteoffProposals:"PaginatedMarketplaceWriteoffProposals",
|
||||
marketplaceMemberWallet:"MarketplaceMemberWallet",
|
||||
marketplaceOnboardingState:"MarketplaceOnboardingState",
|
||||
marketplaceOpenWriteoffDraft:"MarketplaceWriteoffProposal",
|
||||
marketplaceRegistrationOfferStatus:"MarketplaceRegistrationOfferStatus",
|
||||
marketplaceRequiredAttributes:"MarketplaceAttribute",
|
||||
marketplaceReturnClaim:"MarketplaceReturnClaim",
|
||||
@@ -5257,6 +5346,8 @@ export const ReturnTypes: Record<string,any> = {
|
||||
marketplaceSearchRequests:"MarketplaceRequest",
|
||||
marketplaceValidateAttributeValues:"MarketplaceAttributeValidation",
|
||||
marketplaceWhoAmI:"MarketplaceCurrentMember",
|
||||
marketplaceWriteoffProposal:"MarketplaceWriteoffProposal",
|
||||
marketplaceWriteoffStatementSignablePayload:"GeneratedDocument",
|
||||
onecoopGetDocuments:"OneCoopDocumentsResponse",
|
||||
process:"ProcessView",
|
||||
processes:"ProcessSummaryPaginationResult",
|
||||
|
||||
@@ -6525,6 +6525,11 @@ export type ValueTypes = {
|
||||
__typename?: boolean | `@${string}`,
|
||||
['...on MarketplaceCreateShipmentResult']?: Omit<ValueTypes["MarketplaceCreateShipmentResult"], "...on MarketplaceCreateShipmentResult">
|
||||
}>;
|
||||
["MarketplaceCreateWriteoffDraftInput"]: {
|
||||
/** Начало расчётного цикла, если отличается от текущего момента. */
|
||||
cycle_started_at?: string | undefined | null | Variable<any, string>,
|
||||
items: Array<ValueTypes["MarketplaceWriteoffItemInput"]> | Variable<any, string>
|
||||
};
|
||||
["MarketplaceCurrentMember"]: AliasType<{
|
||||
core_roles?:boolean | `@${string}`,
|
||||
marketplace_roles?:boolean | `@${string}`,
|
||||
@@ -6839,6 +6844,9 @@ export type ValueTypes = {
|
||||
cycle_id?: ValueTypes["ID"] | undefined | null | Variable<any, string>,
|
||||
/** Фильтр по статусам партий. */
|
||||
statuses?: Array<ValueTypes["MarketplaceShipmentStatus"]> | undefined | null | Variable<any, string>
|
||||
};
|
||||
["MarketplaceListWriteoffProposalsInput"]: {
|
||||
statuses?: Array<ValueTypes["MarketplaceWriteoffProposalStatus"]> | undefined | null | Variable<any, string>
|
||||
};
|
||||
["MarketplaceMemberWallet"]: AliasType<{
|
||||
coopname?:boolean | `@${string}`,
|
||||
@@ -7561,6 +7569,11 @@ export type ValueTypes = {
|
||||
apl_reception_id: ValueTypes["ID"] | Variable<any, string>,
|
||||
/** Подписанные клиентом акты приёмки — один документ на каждый Order группы. Backend верифицирует подпись и отправляет on-chain signsupp/signchair с этим документом. */
|
||||
signed_documents: Array<ValueTypes["MarketplaceAplReceptionSignedDocumentInput"]> | Variable<any, string>
|
||||
};
|
||||
["MarketplaceSubmitWriteoffDraftInput"]: {
|
||||
draft_id: string | Variable<any, string>,
|
||||
/** Подписанное председателем Заявление о списании скоропорта (registry_id=1106). */
|
||||
signed_statement: ValueTypes["SignedDigitalDocumentInput"] | Variable<any, string>
|
||||
};
|
||||
/** Результат индивидуального приёма или отклонения заказа поставщиком. */
|
||||
["MarketplaceSupplierOrderActionResult"]: AliasType<{
|
||||
@@ -7592,6 +7605,10 @@ export type ValueTypes = {
|
||||
unit_of_measure?: string | undefined | null | Variable<any, string>,
|
||||
unlimited_flag?: boolean | undefined | null | Variable<any, string>,
|
||||
warranty_days?: number | undefined | null | Variable<any, string>
|
||||
};
|
||||
["MarketplaceUpdateWriteoffDraftInput"]: {
|
||||
id: string | Variable<any, string>,
|
||||
items: Array<ValueTypes["MarketplaceWriteoffItemInput"]> | Variable<any, string>
|
||||
};
|
||||
["MarketplaceVitrine"]: AliasType<{
|
||||
/** eosio::name кооператива-владельца витрины */
|
||||
@@ -7642,6 +7659,76 @@ export type ValueTypes = {
|
||||
}>;
|
||||
["MarketplaceWithdrawOfferInput"]: {
|
||||
id: string | Variable<any, string>
|
||||
};
|
||||
["MarketplaceWriteoffDecisionEntry"]: AliasType<{
|
||||
action?:boolean | `@${string}`,
|
||||
actor?:boolean | `@${string}`,
|
||||
at?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`,
|
||||
['...on MarketplaceWriteoffDecisionEntry']?: Omit<ValueTypes["MarketplaceWriteoffDecisionEntry"], "...on MarketplaceWriteoffDecisionEntry">
|
||||
}>;
|
||||
["MarketplaceWriteoffItemInput"]: {
|
||||
/** Сумма списания в формате числа с 4 знаками после запятой. */
|
||||
amount: string | Variable<any, string>,
|
||||
asset_title: string | Variable<any, string>,
|
||||
braname: string | Variable<any, string>,
|
||||
inventory_id?: string | undefined | null | Variable<any, string>,
|
||||
quantity: string | Variable<any, string>,
|
||||
reason: string | Variable<any, string>
|
||||
};
|
||||
["MarketplaceWriteoffProposal"]: AliasType<{
|
||||
authorized_at?:boolean | `@${string}`,
|
||||
coopname?:boolean | `@${string}`,
|
||||
created_at?:boolean | `@${string}`,
|
||||
cycle_started_at?:boolean | `@${string}`,
|
||||
/** Аккаунт, принявший финальное решение. */
|
||||
decided_by_account?:boolean | `@${string}`,
|
||||
decision_id?:boolean | `@${string}`,
|
||||
decision_log?:ValueTypes["MarketplaceWriteoffDecisionEntry"],
|
||||
executed_at?:boolean | `@${string}`,
|
||||
/** Идентификатор проекта в системе кооператива. */
|
||||
id?:boolean | `@${string}`,
|
||||
items?:ValueTypes["MarketplaceWriteoffProposalItem"],
|
||||
/** Канонический хеш проекта, используется как process_hash on-chain (wroffprops, soviet.decisions). */
|
||||
proposal_hash?:boolean | `@${string}`,
|
||||
/** Аккаунт инициатора проекта (председатель / админ). */
|
||||
proposed_by_account?:boolean | `@${string}`,
|
||||
/** Причина отказа совета (если REJECTED). */
|
||||
reject_reason?:boolean | `@${string}`,
|
||||
rejected_at?:boolean | `@${string}`,
|
||||
status?:boolean | `@${string}`,
|
||||
submitted_at?:boolean | `@${string}`,
|
||||
/** Σ сумм всех позиций (форматированный asset, 4 знака). */
|
||||
total_amount?:boolean | `@${string}`,
|
||||
trigger?:boolean | `@${string}`,
|
||||
updated_at?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`,
|
||||
['...on MarketplaceWriteoffProposal']?: Omit<ValueTypes["MarketplaceWriteoffProposal"], "...on MarketplaceWriteoffProposal">
|
||||
}>;
|
||||
["MarketplaceWriteoffProposalItem"]: AliasType<{
|
||||
/** Сумма списания (4 знака после запятой, валюта кооператива). */
|
||||
amount?:boolean | `@${string}`,
|
||||
/** Наименование позиции или артикул из карточки имущества. */
|
||||
asset_title?:boolean | `@${string}`,
|
||||
/** Кооперативный участок (склад) — источник позиции к списанию. */
|
||||
braname?:boolean | `@${string}`,
|
||||
/** Признак того, что позиция уже исполнена через execwroff. */
|
||||
executed?:boolean | `@${string}`,
|
||||
/** Идентификатор инвентарной позиции, если известна. */
|
||||
inventory_id?:boolean | `@${string}`,
|
||||
/** Количество единиц к списанию. */
|
||||
quantity?:boolean | `@${string}`,
|
||||
/** Причина списания (срок годности, повреждение и т.п.). */
|
||||
reason?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`,
|
||||
['...on MarketplaceWriteoffProposalItem']?: Omit<ValueTypes["MarketplaceWriteoffProposalItem"], "...on MarketplaceWriteoffProposalItem">
|
||||
}>;
|
||||
/** Состояние проекта решения совета о списании скоропорта на пути от черновика до итогового списания. */
|
||||
["MarketplaceWriteoffProposalStatus"]:MarketplaceWriteoffProposalStatus;
|
||||
/** Источник проекта списания: автоматический ежемесячный крон или ручное создание. */
|
||||
["MarketplaceWriteoffProposalTrigger"]:MarketplaceWriteoffProposalTrigger;
|
||||
["MarketplaceWriteoffStatementSignablePayloadInput"]: {
|
||||
draft_id: string | Variable<any, string>
|
||||
};
|
||||
["MatrixAccountStatusResponseDTO"]: AliasType<{
|
||||
hasAccount?:boolean | `@${string}`,
|
||||
@@ -8013,6 +8100,7 @@ marketplaceAddToWhitelist?: [{ input: ValueTypes["MarketplaceAddToWhitelistInput
|
||||
marketplaceApproveOffer?: [{ input: ValueTypes["MarketplaceApproveOfferInput"] | Variable<any, string>},ValueTypes["MarketplaceOffer"]],
|
||||
marketplaceApproveReturnVisit?: [{ data: ValueTypes["MarketplaceApproveReturnVisitInput"] | Variable<any, string>},ValueTypes["MarketplaceReturnClaimResult"]],
|
||||
marketplaceCancelOrder?: [{ input: ValueTypes["MarketplaceCancelOrderInput"] | Variable<any, string>},ValueTypes["MarketplaceCancelOrderResult"]],
|
||||
marketplaceCancelWriteoffDraft?: [{ id: string | Variable<any, string>},boolean | `@${string}`],
|
||||
/** Очистить все доступные категории (сделать доступными все)
|
||||
|
||||
Требуемые роли: chairman. */
|
||||
@@ -8023,6 +8111,7 @@ marketplaceCreateOrder?: [{ input: ValueTypes["MarketplaceCreateOrderInput"] | V
|
||||
marketplaceCreateRequest?: [{ data: ValueTypes["CreateRequestInput"] | Variable<any, string>},ValueTypes["MarketplaceRequest"]],
|
||||
marketplaceCreateReturnClaim?: [{ data: ValueTypes["MarketplaceCreateReturnClaimInput"] | Variable<any, string>},ValueTypes["MarketplaceReturnClaimResult"]],
|
||||
marketplaceCreateShipment?: [{ data: ValueTypes["MarketplaceCreateShipmentInput"] | Variable<any, string>},ValueTypes["MarketplaceCreateShipmentResult"]],
|
||||
marketplaceCreateWriteoffDraft?: [{ data: ValueTypes["MarketplaceCreateWriteoffDraftInput"] | Variable<any, string>},ValueTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceDeclineConsolidatedRequest?: [{ input: ValueTypes["MarketplaceDeclineConsolidatedRequestInput"] | Variable<any, string>},ValueTypes["MarketplaceConsolidatedRequestActionResult"]],
|
||||
marketplaceDeclineIndividualOrder?: [{ input: ValueTypes["MarketplaceDeclineIndividualOrderInput"] | Variable<any, string>},ValueTypes["MarketplaceSupplierOrderActionResult"]],
|
||||
marketplaceDeclineOrderFromOpenPool?: [{ input: ValueTypes["MarketplaceDeclineOrderFromOpenPoolInput"] | Variable<any, string>},ValueTypes["MarketplaceSupplierOrderActionResult"]],
|
||||
@@ -8041,8 +8130,10 @@ marketplaceRetryKUGeocode?: [{ coopname: string | Variable<any, string>, coreBra
|
||||
marketplaceSetKUStatus?: [{ data: ValueTypes["MarketplaceSetKUStatusInput"] | Variable<any, string>},ValueTypes["MarketplaceKUDetails"]],
|
||||
marketplaceSignAplReceptionAsChairman?: [{ data: ValueTypes["MarketplaceSignAplReceptionInput"] | Variable<any, string>},ValueTypes["MarketplaceAplReceptionResult"]],
|
||||
marketplaceSignAplReceptionAsSupplier?: [{ data: ValueTypes["MarketplaceSignAplReceptionInput"] | Variable<any, string>},ValueTypes["MarketplaceAplReceptionResult"]],
|
||||
marketplaceSubmitWriteoffDraft?: [{ data: ValueTypes["MarketplaceSubmitWriteoffDraftInput"] | Variable<any, string>},ValueTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceTriggerOpenSubscription?: [{ input: ValueTypes["MarketplaceTriggerOpenSubscriptionInput"] | Variable<any, string>},ValueTypes["MarketplaceConsolidatedRequest"]],
|
||||
marketplaceUpdateOffer?: [{ input: ValueTypes["MarketplaceUpdateOfferInput"] | Variable<any, string>},ValueTypes["MarketplaceOffer"]],
|
||||
marketplaceUpdateWriteoffDraft?: [{ data: ValueTypes["MarketplaceUpdateWriteoffDraftInput"] | Variable<any, string>},ValueTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceWithdrawOffer?: [{ input: ValueTypes["MarketplaceWithdrawOfferInput"] | Variable<any, string>},ValueTypes["MarketplaceOffer"]],
|
||||
notifyOnAnnualGeneralMeet?: [{ data: ValueTypes["NotifyOnAnnualGeneralMeetInput"] | Variable<any, string>},ValueTypes["MeetAggregate"]],
|
||||
processConvertToAxonStatement?: [{ data: ValueTypes["ProcessConvertToAxonStatementInput"] | Variable<any, string>},boolean | `@${string}`],
|
||||
@@ -8486,6 +8577,18 @@ walmoveWallets?: [{ input: ValueTypes["WalmoveInput"] | Variable<any, string>},V
|
||||
totalPages?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`,
|
||||
['...on PaginatedGatewayPaymentsPaginationResult']?: Omit<ValueTypes["PaginatedGatewayPaymentsPaginationResult"], "...on PaginatedGatewayPaymentsPaginationResult">
|
||||
}>;
|
||||
["PaginatedMarketplaceWriteoffProposals"]: AliasType<{
|
||||
/** Текущая страница */
|
||||
currentPage?:boolean | `@${string}`,
|
||||
/** Элементы текущей страницы */
|
||||
items?:ValueTypes["MarketplaceWriteoffProposal"],
|
||||
/** Общее количество элементов */
|
||||
totalCount?:boolean | `@${string}`,
|
||||
/** Общее количество страниц */
|
||||
totalPages?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`,
|
||||
['...on PaginatedMarketplaceWriteoffProposals']?: Omit<ValueTypes["PaginatedMarketplaceWriteoffProposals"], "...on PaginatedMarketplaceWriteoffProposals">
|
||||
}>;
|
||||
["PaginationInput"]: {
|
||||
/** Количество элементов на странице */
|
||||
@@ -9448,10 +9551,13 @@ marketplaceListShipments?: [{ data?: ValueTypes["MarketplaceListShipmentsInput"]
|
||||
marketplaceListSupplierOrders?: [{ input?: ValueTypes["MarketplaceListOrdersInput"] | undefined | null | Variable<any, string>, options?: ValueTypes["PaginationInput"] | undefined | null | Variable<any, string>},ValueTypes["MarketplaceOrderPaginationResult"]],
|
||||
/** Список пайщиков-поставщиков, допущенных к публикации оферт */
|
||||
marketplaceListWhitelist?:ValueTypes["MarketplaceWhitelistEntry"],
|
||||
marketplaceListWriteoffProposals?: [{ data: ValueTypes["MarketplaceListWriteoffProposalsInput"] | Variable<any, string>, options?: ValueTypes["PaginationInput"] | undefined | null | Variable<any, string>},ValueTypes["PaginatedMarketplaceWriteoffProposals"]],
|
||||
/** Кошельки пайщика, релевантные столу заказов: w.wal.share, w.wal.member, w.mkt.member */
|
||||
marketplaceMemberWallet?:ValueTypes["MarketplaceMemberWallet"],
|
||||
/** Состояние онбординга пайщика в Столе заказов: показывать ли gate или пропускать на стол */
|
||||
marketplaceOnboardingState?:ValueTypes["MarketplaceOnboardingState"],
|
||||
/** Открытый черновик проекта списания (если есть). Один на кооператив. */
|
||||
marketplaceOpenWriteoffDraft?:ValueTypes["MarketplaceWriteoffProposal"],
|
||||
/** Статус видимости оферты Стола заказов в core registration-flow (платформенный AgreementRegistry) */
|
||||
marketplaceRegistrationOfferStatus?:ValueTypes["MarketplaceRegistrationOfferStatus"],
|
||||
marketplaceRequiredAttributes?: [{ data: ValueTypes["GetRequiredAttributesInput"] | Variable<any, string>},ValueTypes["MarketplaceAttribute"]],
|
||||
@@ -9463,6 +9569,8 @@ marketplaceSearchRequests?: [{ data: ValueTypes["SearchRequestsInput"] | Variabl
|
||||
marketplaceValidateAttributeValues?: [{ input: ValueTypes["ValidateAttributeValuesInput"] | Variable<any, string>},ValueTypes["MarketplaceAttributeValidation"]],
|
||||
/** Контекст пайщика для Стола заказов: core_roles + marketplace_roles */
|
||||
marketplaceWhoAmI?:ValueTypes["MarketplaceCurrentMember"],
|
||||
marketplaceWriteoffProposal?: [{ id: string | Variable<any, string>},ValueTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceWriteoffStatementSignablePayload?: [{ data: ValueTypes["MarketplaceWriteoffStatementSignablePayloadInput"] | Variable<any, string>},ValueTypes["GeneratedDocument"]],
|
||||
onecoopGetDocuments?: [{ data: ValueTypes["GetOneCoopDocumentsInput"] | Variable<any, string>},ValueTypes["OneCoopDocumentsResponse"]],
|
||||
process?: [{ coopname: string | Variable<any, string>, hash: string | Variable<any, string>},ValueTypes["ProcessView"]],
|
||||
processes?: [{ filter: ValueTypes["ProcessesFilter"] | Variable<any, string>, pagination: ValueTypes["PaginationInput"] | Variable<any, string>},ValueTypes["ProcessSummaryPaginationResult"]],
|
||||
@@ -16325,6 +16433,11 @@ export type ResolverInputTypes = {
|
||||
shipments?:ResolverInputTypes["MarketplaceShipment"],
|
||||
__typename?: boolean | `@${string}`
|
||||
}>;
|
||||
["MarketplaceCreateWriteoffDraftInput"]: {
|
||||
/** Начало расчётного цикла, если отличается от текущего момента. */
|
||||
cycle_started_at?: string | undefined | null,
|
||||
items: Array<ResolverInputTypes["MarketplaceWriteoffItemInput"]>
|
||||
};
|
||||
["MarketplaceCurrentMember"]: AliasType<{
|
||||
core_roles?:boolean | `@${string}`,
|
||||
marketplace_roles?:boolean | `@${string}`,
|
||||
@@ -16632,6 +16745,9 @@ export type ResolverInputTypes = {
|
||||
cycle_id?: ResolverInputTypes["ID"] | undefined | null,
|
||||
/** Фильтр по статусам партий. */
|
||||
statuses?: Array<ResolverInputTypes["MarketplaceShipmentStatus"]> | undefined | null
|
||||
};
|
||||
["MarketplaceListWriteoffProposalsInput"]: {
|
||||
statuses?: Array<ResolverInputTypes["MarketplaceWriteoffProposalStatus"]> | undefined | null
|
||||
};
|
||||
["MarketplaceMemberWallet"]: AliasType<{
|
||||
coopname?:boolean | `@${string}`,
|
||||
@@ -17330,6 +17446,11 @@ export type ResolverInputTypes = {
|
||||
apl_reception_id: ResolverInputTypes["ID"],
|
||||
/** Подписанные клиентом акты приёмки — один документ на каждый Order группы. Backend верифицирует подпись и отправляет on-chain signsupp/signchair с этим документом. */
|
||||
signed_documents: Array<ResolverInputTypes["MarketplaceAplReceptionSignedDocumentInput"]>
|
||||
};
|
||||
["MarketplaceSubmitWriteoffDraftInput"]: {
|
||||
draft_id: string,
|
||||
/** Подписанное председателем Заявление о списании скоропорта (registry_id=1106). */
|
||||
signed_statement: ResolverInputTypes["SignedDigitalDocumentInput"]
|
||||
};
|
||||
/** Результат индивидуального приёма или отклонения заказа поставщиком. */
|
||||
["MarketplaceSupplierOrderActionResult"]: AliasType<{
|
||||
@@ -17360,6 +17481,10 @@ export type ResolverInputTypes = {
|
||||
unit_of_measure?: string | undefined | null,
|
||||
unlimited_flag?: boolean | undefined | null,
|
||||
warranty_days?: number | undefined | null
|
||||
};
|
||||
["MarketplaceUpdateWriteoffDraftInput"]: {
|
||||
id: string,
|
||||
items: Array<ResolverInputTypes["MarketplaceWriteoffItemInput"]>
|
||||
};
|
||||
["MarketplaceVitrine"]: AliasType<{
|
||||
/** eosio::name кооператива-владельца витрины */
|
||||
@@ -17407,6 +17532,73 @@ export type ResolverInputTypes = {
|
||||
}>;
|
||||
["MarketplaceWithdrawOfferInput"]: {
|
||||
id: string
|
||||
};
|
||||
["MarketplaceWriteoffDecisionEntry"]: AliasType<{
|
||||
action?:boolean | `@${string}`,
|
||||
actor?:boolean | `@${string}`,
|
||||
at?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`
|
||||
}>;
|
||||
["MarketplaceWriteoffItemInput"]: {
|
||||
/** Сумма списания в формате числа с 4 знаками после запятой. */
|
||||
amount: string,
|
||||
asset_title: string,
|
||||
braname: string,
|
||||
inventory_id?: string | undefined | null,
|
||||
quantity: string,
|
||||
reason: string
|
||||
};
|
||||
["MarketplaceWriteoffProposal"]: AliasType<{
|
||||
authorized_at?:boolean | `@${string}`,
|
||||
coopname?:boolean | `@${string}`,
|
||||
created_at?:boolean | `@${string}`,
|
||||
cycle_started_at?:boolean | `@${string}`,
|
||||
/** Аккаунт, принявший финальное решение. */
|
||||
decided_by_account?:boolean | `@${string}`,
|
||||
decision_id?:boolean | `@${string}`,
|
||||
decision_log?:ResolverInputTypes["MarketplaceWriteoffDecisionEntry"],
|
||||
executed_at?:boolean | `@${string}`,
|
||||
/** Идентификатор проекта в системе кооператива. */
|
||||
id?:boolean | `@${string}`,
|
||||
items?:ResolverInputTypes["MarketplaceWriteoffProposalItem"],
|
||||
/** Канонический хеш проекта, используется как process_hash on-chain (wroffprops, soviet.decisions). */
|
||||
proposal_hash?:boolean | `@${string}`,
|
||||
/** Аккаунт инициатора проекта (председатель / админ). */
|
||||
proposed_by_account?:boolean | `@${string}`,
|
||||
/** Причина отказа совета (если REJECTED). */
|
||||
reject_reason?:boolean | `@${string}`,
|
||||
rejected_at?:boolean | `@${string}`,
|
||||
status?:boolean | `@${string}`,
|
||||
submitted_at?:boolean | `@${string}`,
|
||||
/** Σ сумм всех позиций (форматированный asset, 4 знака). */
|
||||
total_amount?:boolean | `@${string}`,
|
||||
trigger?:boolean | `@${string}`,
|
||||
updated_at?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`
|
||||
}>;
|
||||
["MarketplaceWriteoffProposalItem"]: AliasType<{
|
||||
/** Сумма списания (4 знака после запятой, валюта кооператива). */
|
||||
amount?:boolean | `@${string}`,
|
||||
/** Наименование позиции или артикул из карточки имущества. */
|
||||
asset_title?:boolean | `@${string}`,
|
||||
/** Кооперативный участок (склад) — источник позиции к списанию. */
|
||||
braname?:boolean | `@${string}`,
|
||||
/** Признак того, что позиция уже исполнена через execwroff. */
|
||||
executed?:boolean | `@${string}`,
|
||||
/** Идентификатор инвентарной позиции, если известна. */
|
||||
inventory_id?:boolean | `@${string}`,
|
||||
/** Количество единиц к списанию. */
|
||||
quantity?:boolean | `@${string}`,
|
||||
/** Причина списания (срок годности, повреждение и т.п.). */
|
||||
reason?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`
|
||||
}>;
|
||||
/** Состояние проекта решения совета о списании скоропорта на пути от черновика до итогового списания. */
|
||||
["MarketplaceWriteoffProposalStatus"]:MarketplaceWriteoffProposalStatus;
|
||||
/** Источник проекта списания: автоматический ежемесячный крон или ручное создание. */
|
||||
["MarketplaceWriteoffProposalTrigger"]:MarketplaceWriteoffProposalTrigger;
|
||||
["MarketplaceWriteoffStatementSignablePayloadInput"]: {
|
||||
draft_id: string
|
||||
};
|
||||
["MatrixAccountStatusResponseDTO"]: AliasType<{
|
||||
hasAccount?:boolean | `@${string}`,
|
||||
@@ -17769,6 +17961,7 @@ marketplaceAddToWhitelist?: [{ input: ResolverInputTypes["MarketplaceAddToWhitel
|
||||
marketplaceApproveOffer?: [{ input: ResolverInputTypes["MarketplaceApproveOfferInput"]},ResolverInputTypes["MarketplaceOffer"]],
|
||||
marketplaceApproveReturnVisit?: [{ data: ResolverInputTypes["MarketplaceApproveReturnVisitInput"]},ResolverInputTypes["MarketplaceReturnClaimResult"]],
|
||||
marketplaceCancelOrder?: [{ input: ResolverInputTypes["MarketplaceCancelOrderInput"]},ResolverInputTypes["MarketplaceCancelOrderResult"]],
|
||||
marketplaceCancelWriteoffDraft?: [{ id: string},boolean | `@${string}`],
|
||||
/** Очистить все доступные категории (сделать доступными все)
|
||||
|
||||
Требуемые роли: chairman. */
|
||||
@@ -17779,6 +17972,7 @@ marketplaceCreateOrder?: [{ input: ResolverInputTypes["MarketplaceCreateOrderInp
|
||||
marketplaceCreateRequest?: [{ data: ResolverInputTypes["CreateRequestInput"]},ResolverInputTypes["MarketplaceRequest"]],
|
||||
marketplaceCreateReturnClaim?: [{ data: ResolverInputTypes["MarketplaceCreateReturnClaimInput"]},ResolverInputTypes["MarketplaceReturnClaimResult"]],
|
||||
marketplaceCreateShipment?: [{ data: ResolverInputTypes["MarketplaceCreateShipmentInput"]},ResolverInputTypes["MarketplaceCreateShipmentResult"]],
|
||||
marketplaceCreateWriteoffDraft?: [{ data: ResolverInputTypes["MarketplaceCreateWriteoffDraftInput"]},ResolverInputTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceDeclineConsolidatedRequest?: [{ input: ResolverInputTypes["MarketplaceDeclineConsolidatedRequestInput"]},ResolverInputTypes["MarketplaceConsolidatedRequestActionResult"]],
|
||||
marketplaceDeclineIndividualOrder?: [{ input: ResolverInputTypes["MarketplaceDeclineIndividualOrderInput"]},ResolverInputTypes["MarketplaceSupplierOrderActionResult"]],
|
||||
marketplaceDeclineOrderFromOpenPool?: [{ input: ResolverInputTypes["MarketplaceDeclineOrderFromOpenPoolInput"]},ResolverInputTypes["MarketplaceSupplierOrderActionResult"]],
|
||||
@@ -17797,8 +17991,10 @@ marketplaceRetryKUGeocode?: [{ coopname: string, coreBraname: string},ResolverIn
|
||||
marketplaceSetKUStatus?: [{ data: ResolverInputTypes["MarketplaceSetKUStatusInput"]},ResolverInputTypes["MarketplaceKUDetails"]],
|
||||
marketplaceSignAplReceptionAsChairman?: [{ data: ResolverInputTypes["MarketplaceSignAplReceptionInput"]},ResolverInputTypes["MarketplaceAplReceptionResult"]],
|
||||
marketplaceSignAplReceptionAsSupplier?: [{ data: ResolverInputTypes["MarketplaceSignAplReceptionInput"]},ResolverInputTypes["MarketplaceAplReceptionResult"]],
|
||||
marketplaceSubmitWriteoffDraft?: [{ data: ResolverInputTypes["MarketplaceSubmitWriteoffDraftInput"]},ResolverInputTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceTriggerOpenSubscription?: [{ input: ResolverInputTypes["MarketplaceTriggerOpenSubscriptionInput"]},ResolverInputTypes["MarketplaceConsolidatedRequest"]],
|
||||
marketplaceUpdateOffer?: [{ input: ResolverInputTypes["MarketplaceUpdateOfferInput"]},ResolverInputTypes["MarketplaceOffer"]],
|
||||
marketplaceUpdateWriteoffDraft?: [{ data: ResolverInputTypes["MarketplaceUpdateWriteoffDraftInput"]},ResolverInputTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceWithdrawOffer?: [{ input: ResolverInputTypes["MarketplaceWithdrawOfferInput"]},ResolverInputTypes["MarketplaceOffer"]],
|
||||
notifyOnAnnualGeneralMeet?: [{ data: ResolverInputTypes["NotifyOnAnnualGeneralMeetInput"]},ResolverInputTypes["MeetAggregate"]],
|
||||
processConvertToAxonStatement?: [{ data: ResolverInputTypes["ProcessConvertToAxonStatementInput"]},boolean | `@${string}`],
|
||||
@@ -18212,6 +18408,17 @@ walmoveWallets?: [{ input: ResolverInputTypes["WalmoveInput"]},ResolverInputType
|
||||
/** Общее количество страниц */
|
||||
totalPages?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`
|
||||
}>;
|
||||
["PaginatedMarketplaceWriteoffProposals"]: AliasType<{
|
||||
/** Текущая страница */
|
||||
currentPage?:boolean | `@${string}`,
|
||||
/** Элементы текущей страницы */
|
||||
items?:ResolverInputTypes["MarketplaceWriteoffProposal"],
|
||||
/** Общее количество элементов */
|
||||
totalCount?:boolean | `@${string}`,
|
||||
/** Общее количество страниц */
|
||||
totalPages?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`
|
||||
}>;
|
||||
["PaginationInput"]: {
|
||||
/** Количество элементов на странице */
|
||||
@@ -19148,10 +19355,13 @@ marketplaceListShipments?: [{ data?: ResolverInputTypes["MarketplaceListShipment
|
||||
marketplaceListSupplierOrders?: [{ input?: ResolverInputTypes["MarketplaceListOrdersInput"] | undefined | null, options?: ResolverInputTypes["PaginationInput"] | undefined | null},ResolverInputTypes["MarketplaceOrderPaginationResult"]],
|
||||
/** Список пайщиков-поставщиков, допущенных к публикации оферт */
|
||||
marketplaceListWhitelist?:ResolverInputTypes["MarketplaceWhitelistEntry"],
|
||||
marketplaceListWriteoffProposals?: [{ data: ResolverInputTypes["MarketplaceListWriteoffProposalsInput"], options?: ResolverInputTypes["PaginationInput"] | undefined | null},ResolverInputTypes["PaginatedMarketplaceWriteoffProposals"]],
|
||||
/** Кошельки пайщика, релевантные столу заказов: w.wal.share, w.wal.member, w.mkt.member */
|
||||
marketplaceMemberWallet?:ResolverInputTypes["MarketplaceMemberWallet"],
|
||||
/** Состояние онбординга пайщика в Столе заказов: показывать ли gate или пропускать на стол */
|
||||
marketplaceOnboardingState?:ResolverInputTypes["MarketplaceOnboardingState"],
|
||||
/** Открытый черновик проекта списания (если есть). Один на кооператив. */
|
||||
marketplaceOpenWriteoffDraft?:ResolverInputTypes["MarketplaceWriteoffProposal"],
|
||||
/** Статус видимости оферты Стола заказов в core registration-flow (платформенный AgreementRegistry) */
|
||||
marketplaceRegistrationOfferStatus?:ResolverInputTypes["MarketplaceRegistrationOfferStatus"],
|
||||
marketplaceRequiredAttributes?: [{ data: ResolverInputTypes["GetRequiredAttributesInput"]},ResolverInputTypes["MarketplaceAttribute"]],
|
||||
@@ -19163,6 +19373,8 @@ marketplaceSearchRequests?: [{ data: ResolverInputTypes["SearchRequestsInput"]},
|
||||
marketplaceValidateAttributeValues?: [{ input: ResolverInputTypes["ValidateAttributeValuesInput"]},ResolverInputTypes["MarketplaceAttributeValidation"]],
|
||||
/** Контекст пайщика для Стола заказов: core_roles + marketplace_roles */
|
||||
marketplaceWhoAmI?:ResolverInputTypes["MarketplaceCurrentMember"],
|
||||
marketplaceWriteoffProposal?: [{ id: string},ResolverInputTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceWriteoffStatementSignablePayload?: [{ data: ResolverInputTypes["MarketplaceWriteoffStatementSignablePayloadInput"]},ResolverInputTypes["GeneratedDocument"]],
|
||||
onecoopGetDocuments?: [{ data: ResolverInputTypes["GetOneCoopDocumentsInput"]},ResolverInputTypes["OneCoopDocumentsResponse"]],
|
||||
process?: [{ coopname: string, hash: string},ResolverInputTypes["ProcessView"]],
|
||||
processes?: [{ filter: ResolverInputTypes["ProcessesFilter"], pagination: ResolverInputTypes["PaginationInput"]},ResolverInputTypes["ProcessSummaryPaginationResult"]],
|
||||
@@ -25809,6 +26021,11 @@ export type ModelTypes = {
|
||||
["MarketplaceCreateShipmentResult"]: {
|
||||
/** Созданные партии — по одной на каждый КУ заявки. */
|
||||
shipments: Array<ModelTypes["MarketplaceShipment"]>
|
||||
};
|
||||
["MarketplaceCreateWriteoffDraftInput"]: {
|
||||
/** Начало расчётного цикла, если отличается от текущего момента. */
|
||||
cycle_started_at?: string | undefined | null,
|
||||
items: Array<ModelTypes["MarketplaceWriteoffItemInput"]>
|
||||
};
|
||||
["MarketplaceCurrentMember"]: {
|
||||
core_roles: Array<string>,
|
||||
@@ -26109,6 +26326,9 @@ export type ModelTypes = {
|
||||
cycle_id?: ModelTypes["ID"] | undefined | null,
|
||||
/** Фильтр по статусам партий. */
|
||||
statuses?: Array<ModelTypes["MarketplaceShipmentStatus"]> | undefined | null
|
||||
};
|
||||
["MarketplaceListWriteoffProposalsInput"]: {
|
||||
statuses?: Array<ModelTypes["MarketplaceWriteoffProposalStatus"]> | undefined | null
|
||||
};
|
||||
["MarketplaceMemberWallet"]: {
|
||||
coopname: string,
|
||||
@@ -26774,6 +26994,11 @@ export type ModelTypes = {
|
||||
apl_reception_id: ModelTypes["ID"],
|
||||
/** Подписанные клиентом акты приёмки — один документ на каждый Order группы. Backend верифицирует подпись и отправляет on-chain signsupp/signchair с этим документом. */
|
||||
signed_documents: Array<ModelTypes["MarketplaceAplReceptionSignedDocumentInput"]>
|
||||
};
|
||||
["MarketplaceSubmitWriteoffDraftInput"]: {
|
||||
draft_id: string,
|
||||
/** Подписанное председателем Заявление о списании скоропорта (registry_id=1106). */
|
||||
signed_statement: ModelTypes["SignedDigitalDocumentInput"]
|
||||
};
|
||||
/** Результат индивидуального приёма или отклонения заказа поставщиком. */
|
||||
["MarketplaceSupplierOrderActionResult"]: {
|
||||
@@ -26803,6 +27028,10 @@ export type ModelTypes = {
|
||||
unit_of_measure?: string | undefined | null,
|
||||
unlimited_flag?: boolean | undefined | null,
|
||||
warranty_days?: number | undefined | null
|
||||
};
|
||||
["MarketplaceUpdateWriteoffDraftInput"]: {
|
||||
id: string,
|
||||
items: Array<ModelTypes["MarketplaceWriteoffItemInput"]>
|
||||
};
|
||||
["MarketplaceVitrine"]: {
|
||||
/** eosio::name кооператива-владельца витрины */
|
||||
@@ -26847,6 +27076,68 @@ export type ModelTypes = {
|
||||
};
|
||||
["MarketplaceWithdrawOfferInput"]: {
|
||||
id: string
|
||||
};
|
||||
["MarketplaceWriteoffDecisionEntry"]: {
|
||||
action: string,
|
||||
actor: string,
|
||||
at: string
|
||||
};
|
||||
["MarketplaceWriteoffItemInput"]: {
|
||||
/** Сумма списания в формате числа с 4 знаками после запятой. */
|
||||
amount: string,
|
||||
asset_title: string,
|
||||
braname: string,
|
||||
inventory_id?: string | undefined | null,
|
||||
quantity: string,
|
||||
reason: string
|
||||
};
|
||||
["MarketplaceWriteoffProposal"]: {
|
||||
authorized_at?: string | undefined | null,
|
||||
coopname: string,
|
||||
created_at: string,
|
||||
cycle_started_at: string,
|
||||
/** Аккаунт, принявший финальное решение. */
|
||||
decided_by_account?: string | undefined | null,
|
||||
decision_id?: number | undefined | null,
|
||||
decision_log: Array<ModelTypes["MarketplaceWriteoffDecisionEntry"]>,
|
||||
executed_at?: string | undefined | null,
|
||||
/** Идентификатор проекта в системе кооператива. */
|
||||
id: string,
|
||||
items: Array<ModelTypes["MarketplaceWriteoffProposalItem"]>,
|
||||
/** Канонический хеш проекта, используется как process_hash on-chain (wroffprops, soviet.decisions). */
|
||||
proposal_hash: string,
|
||||
/** Аккаунт инициатора проекта (председатель / админ). */
|
||||
proposed_by_account?: string | undefined | null,
|
||||
/** Причина отказа совета (если REJECTED). */
|
||||
reject_reason?: string | undefined | null,
|
||||
rejected_at?: string | undefined | null,
|
||||
status: ModelTypes["MarketplaceWriteoffProposalStatus"],
|
||||
submitted_at?: string | undefined | null,
|
||||
/** Σ сумм всех позиций (форматированный asset, 4 знака). */
|
||||
total_amount: string,
|
||||
trigger: ModelTypes["MarketplaceWriteoffProposalTrigger"],
|
||||
updated_at: string
|
||||
};
|
||||
["MarketplaceWriteoffProposalItem"]: {
|
||||
/** Сумма списания (4 знака после запятой, валюта кооператива). */
|
||||
amount: string,
|
||||
/** Наименование позиции или артикул из карточки имущества. */
|
||||
asset_title: string,
|
||||
/** Кооперативный участок (склад) — источник позиции к списанию. */
|
||||
braname: string,
|
||||
/** Признак того, что позиция уже исполнена через execwroff. */
|
||||
executed: boolean,
|
||||
/** Идентификатор инвентарной позиции, если известна. */
|
||||
inventory_id?: string | undefined | null,
|
||||
/** Количество единиц к списанию. */
|
||||
quantity: string,
|
||||
/** Причина списания (срок годности, повреждение и т.п.). */
|
||||
reason: string
|
||||
};
|
||||
["MarketplaceWriteoffProposalStatus"]:MarketplaceWriteoffProposalStatus;
|
||||
["MarketplaceWriteoffProposalTrigger"]:MarketplaceWriteoffProposalTrigger;
|
||||
["MarketplaceWriteoffStatementSignablePayloadInput"]: {
|
||||
draft_id: string
|
||||
};
|
||||
["MatrixAccountStatusResponseDTO"]: {
|
||||
hasAccount: boolean,
|
||||
@@ -27604,6 +27895,8 @@ export type ModelTypes = {
|
||||
marketplaceApproveReturnVisit: ModelTypes["MarketplaceReturnClaimResult"],
|
||||
/** Отменить свой заказ до его приёма поставщиком; средства разблокируются. */
|
||||
marketplaceCancelOrder: ModelTypes["MarketplaceCancelOrderResult"],
|
||||
/** Удалить черновик. Доступно только пока проект в статусе DRAFT. */
|
||||
marketplaceCancelWriteoffDraft: boolean,
|
||||
/** Очистить все доступные категории (сделать доступными все)
|
||||
|
||||
Требуемые роли: chairman. */
|
||||
@@ -27622,6 +27915,8 @@ export type ModelTypes = {
|
||||
marketplaceCreateReturnClaim: ModelTypes["MarketplaceReturnClaimResult"],
|
||||
/** Сформировать партии поставки из акцептованной заявки: одна группа на каждый КУ-получатель. */
|
||||
marketplaceCreateShipment: ModelTypes["MarketplaceCreateShipmentResult"],
|
||||
/** Создаёт ручной черновик проекта списания. На кооператив может быть только один открытый черновик и один проект, отправленный в совет. */
|
||||
marketplaceCreateWriteoffDraft: ModelTypes["MarketplaceWriteoffProposal"],
|
||||
/** Поставщик отклоняет сводную заявку — все заказы пакета отменяются, средства разблокируются. */
|
||||
marketplaceDeclineConsolidatedRequest: ModelTypes["MarketplaceConsolidatedRequestActionResult"],
|
||||
/** Поставщик отказывается от одного индивидуального заказа; средства разблокируются. */
|
||||
@@ -27670,10 +27965,14 @@ export type ModelTypes = {
|
||||
marketplaceSignAplReceptionAsChairman: ModelTypes["MarketplaceAplReceptionResult"],
|
||||
/** Поставщик ставит первую подпись на акте приёмки (лично — Вариант А; асинхронно через push — Вариант Б). */
|
||||
marketplaceSignAplReceptionAsSupplier: ModelTypes["MarketplaceAplReceptionResult"],
|
||||
/** Отправить черновик в совет. Принимает подписанное председателем Заявление 1106. После успешного приёма выполняются propwroff и soviet::createagenda(mktwroff). */
|
||||
marketplaceSubmitWriteoffDraft: ModelTypes["MarketplaceWriteoffProposal"],
|
||||
/** Поставщик запускает поставку по предложению с открытой подпиской: формируется сводная заявка, заказы в её пуле принимаются. */
|
||||
marketplaceTriggerOpenSubscription: ModelTypes["MarketplaceConsolidatedRequest"],
|
||||
/** Поставщик правит свой Offer — статус сбрасывается в PENDING_MODERATION */
|
||||
marketplaceUpdateOffer: ModelTypes["MarketplaceOffer"],
|
||||
/** Изменить состав черновика — добавить, удалить или поправить позиции. */
|
||||
marketplaceUpdateWriteoffDraft: ModelTypes["MarketplaceWriteoffProposal"],
|
||||
/** Поставщик снимает свой Offer (статус → WITHDRAWN) */
|
||||
marketplaceWithdrawOffer: ModelTypes["MarketplaceOffer"],
|
||||
/** Уведомление о проведении общего собрания пайщиков
|
||||
@@ -28126,6 +28425,16 @@ export type ModelTypes = {
|
||||
totalCount: number,
|
||||
/** Общее количество страниц */
|
||||
totalPages: number
|
||||
};
|
||||
["PaginatedMarketplaceWriteoffProposals"]: {
|
||||
/** Текущая страница */
|
||||
currentPage: number,
|
||||
/** Элементы текущей страницы */
|
||||
items: Array<ModelTypes["MarketplaceWriteoffProposal"]>,
|
||||
/** Общее количество элементов */
|
||||
totalCount: number,
|
||||
/** Общее количество страниц */
|
||||
totalPages: number
|
||||
};
|
||||
["PaginationInput"]: {
|
||||
/** Количество элементов на странице */
|
||||
@@ -29249,10 +29558,14 @@ export type ModelTypes = {
|
||||
marketplaceListSupplierOrders: ModelTypes["MarketplaceOrderPaginationResult"],
|
||||
/** Список пайщиков-поставщиков, допущенных к публикации оферт */
|
||||
marketplaceListWhitelist: Array<ModelTypes["MarketplaceWhitelistEntry"]>,
|
||||
/** Лента всех проектов списания кооператива с фильтром по статусу. */
|
||||
marketplaceListWriteoffProposals: ModelTypes["PaginatedMarketplaceWriteoffProposals"],
|
||||
/** Кошельки пайщика, релевантные столу заказов: w.wal.share, w.wal.member, w.mkt.member */
|
||||
marketplaceMemberWallet: ModelTypes["MarketplaceMemberWallet"],
|
||||
/** Состояние онбординга пайщика в Столе заказов: показывать ли gate или пропускать на стол */
|
||||
marketplaceOnboardingState: ModelTypes["MarketplaceOnboardingState"],
|
||||
/** Открытый черновик проекта списания (если есть). Один на кооператив. */
|
||||
marketplaceOpenWriteoffDraft?: ModelTypes["MarketplaceWriteoffProposal"] | undefined | null,
|
||||
/** Статус видимости оферты Стола заказов в core registration-flow (платформенный AgreementRegistry) */
|
||||
marketplaceRegistrationOfferStatus: ModelTypes["MarketplaceRegistrationOfferStatus"],
|
||||
/** Получить обязательные атрибуты для категории и типа товара marketplace */
|
||||
@@ -29271,6 +29584,10 @@ export type ModelTypes = {
|
||||
marketplaceValidateAttributeValues: ModelTypes["MarketplaceAttributeValidation"],
|
||||
/** Контекст пайщика для Стола заказов: core_roles + marketplace_roles */
|
||||
marketplaceWhoAmI: ModelTypes["MarketplaceCurrentMember"],
|
||||
/** Детали одного проекта списания: items, decision_log, протокол. */
|
||||
marketplaceWriteoffProposal: ModelTypes["MarketplaceWriteoffProposal"],
|
||||
/** Превью Заявления о списании скоропорта (registry 1106) для подписания председателем. */
|
||||
marketplaceWriteoffStatementSignablePayload: ModelTypes["GeneratedDocument"],
|
||||
/** Получение документов кооператива для синхронизации с 1С. Требует секретный ключ в заголовке x-onecoop-secret-key. */
|
||||
onecoopGetDocuments: ModelTypes["OneCoopDocumentsResponse"],
|
||||
/** Получить полную картину процесса ledger2 по process_hash
|
||||
@@ -36186,6 +36503,11 @@ export type GraphQLTypes = {
|
||||
/** Созданные партии — по одной на каждый КУ заявки. */
|
||||
shipments: Array<GraphQLTypes["MarketplaceShipment"]>,
|
||||
['...on MarketplaceCreateShipmentResult']: Omit<GraphQLTypes["MarketplaceCreateShipmentResult"], "...on MarketplaceCreateShipmentResult">
|
||||
};
|
||||
["MarketplaceCreateWriteoffDraftInput"]: {
|
||||
/** Начало расчётного цикла, если отличается от текущего момента. */
|
||||
cycle_started_at?: string | undefined | null,
|
||||
items: Array<GraphQLTypes["MarketplaceWriteoffItemInput"]>
|
||||
};
|
||||
["MarketplaceCurrentMember"]: {
|
||||
__typename: "MarketplaceCurrentMember",
|
||||
@@ -36501,6 +36823,9 @@ export type GraphQLTypes = {
|
||||
cycle_id?: GraphQLTypes["ID"] | undefined | null,
|
||||
/** Фильтр по статусам партий. */
|
||||
statuses?: Array<GraphQLTypes["MarketplaceShipmentStatus"]> | undefined | null
|
||||
};
|
||||
["MarketplaceListWriteoffProposalsInput"]: {
|
||||
statuses?: Array<GraphQLTypes["MarketplaceWriteoffProposalStatus"]> | undefined | null
|
||||
};
|
||||
["MarketplaceMemberWallet"]: {
|
||||
__typename: "MarketplaceMemberWallet",
|
||||
@@ -37223,6 +37548,11 @@ export type GraphQLTypes = {
|
||||
apl_reception_id: GraphQLTypes["ID"],
|
||||
/** Подписанные клиентом акты приёмки — один документ на каждый Order группы. Backend верифицирует подпись и отправляет on-chain signsupp/signchair с этим документом. */
|
||||
signed_documents: Array<GraphQLTypes["MarketplaceAplReceptionSignedDocumentInput"]>
|
||||
};
|
||||
["MarketplaceSubmitWriteoffDraftInput"]: {
|
||||
draft_id: string,
|
||||
/** Подписанное председателем Заявление о списании скоропорта (registry_id=1106). */
|
||||
signed_statement: GraphQLTypes["SignedDigitalDocumentInput"]
|
||||
};
|
||||
/** Результат индивидуального приёма или отклонения заказа поставщиком. */
|
||||
["MarketplaceSupplierOrderActionResult"]: {
|
||||
@@ -37254,6 +37584,10 @@ export type GraphQLTypes = {
|
||||
unit_of_measure?: string | undefined | null,
|
||||
unlimited_flag?: boolean | undefined | null,
|
||||
warranty_days?: number | undefined | null
|
||||
};
|
||||
["MarketplaceUpdateWriteoffDraftInput"]: {
|
||||
id: string,
|
||||
items: Array<GraphQLTypes["MarketplaceWriteoffItemInput"]>
|
||||
};
|
||||
["MarketplaceVitrine"]: {
|
||||
__typename: "MarketplaceVitrine",
|
||||
@@ -37304,6 +37638,76 @@ export type GraphQLTypes = {
|
||||
};
|
||||
["MarketplaceWithdrawOfferInput"]: {
|
||||
id: string
|
||||
};
|
||||
["MarketplaceWriteoffDecisionEntry"]: {
|
||||
__typename: "MarketplaceWriteoffDecisionEntry",
|
||||
action: string,
|
||||
actor: string,
|
||||
at: string,
|
||||
['...on MarketplaceWriteoffDecisionEntry']: Omit<GraphQLTypes["MarketplaceWriteoffDecisionEntry"], "...on MarketplaceWriteoffDecisionEntry">
|
||||
};
|
||||
["MarketplaceWriteoffItemInput"]: {
|
||||
/** Сумма списания в формате числа с 4 знаками после запятой. */
|
||||
amount: string,
|
||||
asset_title: string,
|
||||
braname: string,
|
||||
inventory_id?: string | undefined | null,
|
||||
quantity: string,
|
||||
reason: string
|
||||
};
|
||||
["MarketplaceWriteoffProposal"]: {
|
||||
__typename: "MarketplaceWriteoffProposal",
|
||||
authorized_at?: string | undefined | null,
|
||||
coopname: string,
|
||||
created_at: string,
|
||||
cycle_started_at: string,
|
||||
/** Аккаунт, принявший финальное решение. */
|
||||
decided_by_account?: string | undefined | null,
|
||||
decision_id?: number | undefined | null,
|
||||
decision_log: Array<GraphQLTypes["MarketplaceWriteoffDecisionEntry"]>,
|
||||
executed_at?: string | undefined | null,
|
||||
/** Идентификатор проекта в системе кооператива. */
|
||||
id: string,
|
||||
items: Array<GraphQLTypes["MarketplaceWriteoffProposalItem"]>,
|
||||
/** Канонический хеш проекта, используется как process_hash on-chain (wroffprops, soviet.decisions). */
|
||||
proposal_hash: string,
|
||||
/** Аккаунт инициатора проекта (председатель / админ). */
|
||||
proposed_by_account?: string | undefined | null,
|
||||
/** Причина отказа совета (если REJECTED). */
|
||||
reject_reason?: string | undefined | null,
|
||||
rejected_at?: string | undefined | null,
|
||||
status: GraphQLTypes["MarketplaceWriteoffProposalStatus"],
|
||||
submitted_at?: string | undefined | null,
|
||||
/** Σ сумм всех позиций (форматированный asset, 4 знака). */
|
||||
total_amount: string,
|
||||
trigger: GraphQLTypes["MarketplaceWriteoffProposalTrigger"],
|
||||
updated_at: string,
|
||||
['...on MarketplaceWriteoffProposal']: Omit<GraphQLTypes["MarketplaceWriteoffProposal"], "...on MarketplaceWriteoffProposal">
|
||||
};
|
||||
["MarketplaceWriteoffProposalItem"]: {
|
||||
__typename: "MarketplaceWriteoffProposalItem",
|
||||
/** Сумма списания (4 знака после запятой, валюта кооператива). */
|
||||
amount: string,
|
||||
/** Наименование позиции или артикул из карточки имущества. */
|
||||
asset_title: string,
|
||||
/** Кооперативный участок (склад) — источник позиции к списанию. */
|
||||
braname: string,
|
||||
/** Признак того, что позиция уже исполнена через execwroff. */
|
||||
executed: boolean,
|
||||
/** Идентификатор инвентарной позиции, если известна. */
|
||||
inventory_id?: string | undefined | null,
|
||||
/** Количество единиц к списанию. */
|
||||
quantity: string,
|
||||
/** Причина списания (срок годности, повреждение и т.п.). */
|
||||
reason: string,
|
||||
['...on MarketplaceWriteoffProposalItem']: Omit<GraphQLTypes["MarketplaceWriteoffProposalItem"], "...on MarketplaceWriteoffProposalItem">
|
||||
};
|
||||
/** Состояние проекта решения совета о списании скоропорта на пути от черновика до итогового списания. */
|
||||
["MarketplaceWriteoffProposalStatus"]: MarketplaceWriteoffProposalStatus;
|
||||
/** Источник проекта списания: автоматический ежемесячный крон или ручное создание. */
|
||||
["MarketplaceWriteoffProposalTrigger"]: MarketplaceWriteoffProposalTrigger;
|
||||
["MarketplaceWriteoffStatementSignablePayloadInput"]: {
|
||||
draft_id: string
|
||||
};
|
||||
["MatrixAccountStatusResponseDTO"]: {
|
||||
__typename: "MatrixAccountStatusResponseDTO",
|
||||
@@ -38080,6 +38484,8 @@ export type GraphQLTypes = {
|
||||
marketplaceApproveReturnVisit: GraphQLTypes["MarketplaceReturnClaimResult"],
|
||||
/** Отменить свой заказ до его приёма поставщиком; средства разблокируются. */
|
||||
marketplaceCancelOrder: GraphQLTypes["MarketplaceCancelOrderResult"],
|
||||
/** Удалить черновик. Доступно только пока проект в статусе DRAFT. */
|
||||
marketplaceCancelWriteoffDraft: boolean,
|
||||
/** Очистить все доступные категории (сделать доступными все)
|
||||
|
||||
Требуемые роли: chairman. */
|
||||
@@ -38098,6 +38504,8 @@ export type GraphQLTypes = {
|
||||
marketplaceCreateReturnClaim: GraphQLTypes["MarketplaceReturnClaimResult"],
|
||||
/** Сформировать партии поставки из акцептованной заявки: одна группа на каждый КУ-получатель. */
|
||||
marketplaceCreateShipment: GraphQLTypes["MarketplaceCreateShipmentResult"],
|
||||
/** Создаёт ручной черновик проекта списания. На кооператив может быть только один открытый черновик и один проект, отправленный в совет. */
|
||||
marketplaceCreateWriteoffDraft: GraphQLTypes["MarketplaceWriteoffProposal"],
|
||||
/** Поставщик отклоняет сводную заявку — все заказы пакета отменяются, средства разблокируются. */
|
||||
marketplaceDeclineConsolidatedRequest: GraphQLTypes["MarketplaceConsolidatedRequestActionResult"],
|
||||
/** Поставщик отказывается от одного индивидуального заказа; средства разблокируются. */
|
||||
@@ -38146,10 +38554,14 @@ export type GraphQLTypes = {
|
||||
marketplaceSignAplReceptionAsChairman: GraphQLTypes["MarketplaceAplReceptionResult"],
|
||||
/** Поставщик ставит первую подпись на акте приёмки (лично — Вариант А; асинхронно через push — Вариант Б). */
|
||||
marketplaceSignAplReceptionAsSupplier: GraphQLTypes["MarketplaceAplReceptionResult"],
|
||||
/** Отправить черновик в совет. Принимает подписанное председателем Заявление 1106. После успешного приёма выполняются propwroff и soviet::createagenda(mktwroff). */
|
||||
marketplaceSubmitWriteoffDraft: GraphQLTypes["MarketplaceWriteoffProposal"],
|
||||
/** Поставщик запускает поставку по предложению с открытой подпиской: формируется сводная заявка, заказы в её пуле принимаются. */
|
||||
marketplaceTriggerOpenSubscription: GraphQLTypes["MarketplaceConsolidatedRequest"],
|
||||
/** Поставщик правит свой Offer — статус сбрасывается в PENDING_MODERATION */
|
||||
marketplaceUpdateOffer: GraphQLTypes["MarketplaceOffer"],
|
||||
/** Изменить состав черновика — добавить, удалить или поправить позиции. */
|
||||
marketplaceUpdateWriteoffDraft: GraphQLTypes["MarketplaceWriteoffProposal"],
|
||||
/** Поставщик снимает свой Offer (статус → WITHDRAWN) */
|
||||
marketplaceWithdrawOffer: GraphQLTypes["MarketplaceOffer"],
|
||||
/** Уведомление о проведении общего собрания пайщиков
|
||||
@@ -38662,6 +39074,18 @@ export type GraphQLTypes = {
|
||||
/** Общее количество страниц */
|
||||
totalPages: number,
|
||||
['...on PaginatedGatewayPaymentsPaginationResult']: Omit<GraphQLTypes["PaginatedGatewayPaymentsPaginationResult"], "...on PaginatedGatewayPaymentsPaginationResult">
|
||||
};
|
||||
["PaginatedMarketplaceWriteoffProposals"]: {
|
||||
__typename: "PaginatedMarketplaceWriteoffProposals",
|
||||
/** Текущая страница */
|
||||
currentPage: number,
|
||||
/** Элементы текущей страницы */
|
||||
items: Array<GraphQLTypes["MarketplaceWriteoffProposal"]>,
|
||||
/** Общее количество элементов */
|
||||
totalCount: number,
|
||||
/** Общее количество страниц */
|
||||
totalPages: number,
|
||||
['...on PaginatedMarketplaceWriteoffProposals']: Omit<GraphQLTypes["PaginatedMarketplaceWriteoffProposals"], "...on PaginatedMarketplaceWriteoffProposals">
|
||||
};
|
||||
["PaginationInput"]: {
|
||||
/** Количество элементов на странице */
|
||||
@@ -39857,10 +40281,14 @@ export type GraphQLTypes = {
|
||||
marketplaceListSupplierOrders: GraphQLTypes["MarketplaceOrderPaginationResult"],
|
||||
/** Список пайщиков-поставщиков, допущенных к публикации оферт */
|
||||
marketplaceListWhitelist: Array<GraphQLTypes["MarketplaceWhitelistEntry"]>,
|
||||
/** Лента всех проектов списания кооператива с фильтром по статусу. */
|
||||
marketplaceListWriteoffProposals: GraphQLTypes["PaginatedMarketplaceWriteoffProposals"],
|
||||
/** Кошельки пайщика, релевантные столу заказов: w.wal.share, w.wal.member, w.mkt.member */
|
||||
marketplaceMemberWallet: GraphQLTypes["MarketplaceMemberWallet"],
|
||||
/** Состояние онбординга пайщика в Столе заказов: показывать ли gate или пропускать на стол */
|
||||
marketplaceOnboardingState: GraphQLTypes["MarketplaceOnboardingState"],
|
||||
/** Открытый черновик проекта списания (если есть). Один на кооператив. */
|
||||
marketplaceOpenWriteoffDraft?: GraphQLTypes["MarketplaceWriteoffProposal"] | undefined | null,
|
||||
/** Статус видимости оферты Стола заказов в core registration-flow (платформенный AgreementRegistry) */
|
||||
marketplaceRegistrationOfferStatus: GraphQLTypes["MarketplaceRegistrationOfferStatus"],
|
||||
/** Получить обязательные атрибуты для категории и типа товара marketplace */
|
||||
@@ -39879,6 +40307,10 @@ export type GraphQLTypes = {
|
||||
marketplaceValidateAttributeValues: GraphQLTypes["MarketplaceAttributeValidation"],
|
||||
/** Контекст пайщика для Стола заказов: core_roles + marketplace_roles */
|
||||
marketplaceWhoAmI: GraphQLTypes["MarketplaceCurrentMember"],
|
||||
/** Детали одного проекта списания: items, decision_log, протокол. */
|
||||
marketplaceWriteoffProposal: GraphQLTypes["MarketplaceWriteoffProposal"],
|
||||
/** Превью Заявления о списании скоропорта (registry 1106) для подписания председателем. */
|
||||
marketplaceWriteoffStatementSignablePayload: GraphQLTypes["GeneratedDocument"],
|
||||
/** Получение документов кооператива для синхронизации с 1С. Требует секретный ключ в заголовке x-onecoop-secret-key. */
|
||||
onecoopGetDocuments: GraphQLTypes["OneCoopDocumentsResponse"],
|
||||
/** Получить полную картину процесса ledger2 по process_hash
|
||||
@@ -41822,6 +42254,20 @@ export enum MarketplaceShipmentStatus {
|
||||
RECEPTION_IN_PROGRESS = "RECEPTION_IN_PROGRESS",
|
||||
SUPPLY_PREPARED = "SUPPLY_PREPARED"
|
||||
}
|
||||
/** Состояние проекта решения совета о списании скоропорта на пути от черновика до итогового списания. */
|
||||
export enum MarketplaceWriteoffProposalStatus {
|
||||
AUTHORIZED = "AUTHORIZED",
|
||||
DRAFT = "DRAFT",
|
||||
EXECUTED = "EXECUTED",
|
||||
EXECUTING = "EXECUTING",
|
||||
ON_AGENDA = "ON_AGENDA",
|
||||
REJECTED = "REJECTED"
|
||||
}
|
||||
/** Источник проекта списания: автоматический ежемесячный крон или ручное создание. */
|
||||
export enum MarketplaceWriteoffProposalTrigger {
|
||||
CRON = "CRON",
|
||||
MANUAL = "MANUAL"
|
||||
}
|
||||
/** Тип юридического лица */
|
||||
export enum OrganizationType {
|
||||
AO = "AO",
|
||||
@@ -42263,6 +42709,7 @@ type ZEUS_VARIABLES = {
|
||||
["MarketplaceCreateOrderInput"]: ValueTypes["MarketplaceCreateOrderInput"];
|
||||
["MarketplaceCreateReturnClaimInput"]: ValueTypes["MarketplaceCreateReturnClaimInput"];
|
||||
["MarketplaceCreateShipmentInput"]: ValueTypes["MarketplaceCreateShipmentInput"];
|
||||
["MarketplaceCreateWriteoffDraftInput"]: ValueTypes["MarketplaceCreateWriteoffDraftInput"];
|
||||
["MarketplaceDeclineConsolidatedRequestInput"]: ValueTypes["MarketplaceDeclineConsolidatedRequestInput"];
|
||||
["MarketplaceDeclineIndividualOrderInput"]: ValueTypes["MarketplaceDeclineIndividualOrderInput"];
|
||||
["MarketplaceDeclineOrderFromOpenPoolInput"]: ValueTypes["MarketplaceDeclineOrderFromOpenPoolInput"];
|
||||
@@ -42285,6 +42732,7 @@ type ZEUS_VARIABLES = {
|
||||
["MarketplaceListPendingOffersInput"]: ValueTypes["MarketplaceListPendingOffersInput"];
|
||||
["MarketplaceListReturnClaimsByBranameInput"]: ValueTypes["MarketplaceListReturnClaimsByBranameInput"];
|
||||
["MarketplaceListShipmentsInput"]: ValueTypes["MarketplaceListShipmentsInput"];
|
||||
["MarketplaceListWriteoffProposalsInput"]: ValueTypes["MarketplaceListWriteoffProposalsInput"];
|
||||
["MarketplaceOpenIssuanceInput"]: ValueTypes["MarketplaceOpenIssuanceInput"];
|
||||
["MarketplaceOrderCycleType"]: ValueTypes["MarketplaceOrderCycleType"];
|
||||
["MarketplaceOrderIssuanceFactDiffState"]: ValueTypes["MarketplaceOrderIssuanceFactDiffState"];
|
||||
@@ -42307,9 +42755,15 @@ type ZEUS_VARIABLES = {
|
||||
["MarketplaceShipmentStatus"]: ValueTypes["MarketplaceShipmentStatus"];
|
||||
["MarketplaceShipmentTTNDataInput"]: ValueTypes["MarketplaceShipmentTTNDataInput"];
|
||||
["MarketplaceSignAplReceptionInput"]: ValueTypes["MarketplaceSignAplReceptionInput"];
|
||||
["MarketplaceSubmitWriteoffDraftInput"]: ValueTypes["MarketplaceSubmitWriteoffDraftInput"];
|
||||
["MarketplaceTriggerOpenSubscriptionInput"]: ValueTypes["MarketplaceTriggerOpenSubscriptionInput"];
|
||||
["MarketplaceUpdateOfferInput"]: ValueTypes["MarketplaceUpdateOfferInput"];
|
||||
["MarketplaceUpdateWriteoffDraftInput"]: ValueTypes["MarketplaceUpdateWriteoffDraftInput"];
|
||||
["MarketplaceWithdrawOfferInput"]: ValueTypes["MarketplaceWithdrawOfferInput"];
|
||||
["MarketplaceWriteoffItemInput"]: ValueTypes["MarketplaceWriteoffItemInput"];
|
||||
["MarketplaceWriteoffProposalStatus"]: ValueTypes["MarketplaceWriteoffProposalStatus"];
|
||||
["MarketplaceWriteoffProposalTrigger"]: ValueTypes["MarketplaceWriteoffProposalTrigger"];
|
||||
["MarketplaceWriteoffStatementSignablePayloadInput"]: ValueTypes["MarketplaceWriteoffStatementSignablePayloadInput"];
|
||||
["MoveCapitalIssueToComponentInput"]: ValueTypes["MoveCapitalIssueToComponentInput"];
|
||||
["NotificationWorkflowRecipientInput"]: ValueTypes["NotificationWorkflowRecipientInput"];
|
||||
["NotifyOnAnnualGeneralMeetInput"]: ValueTypes["NotifyOnAnnualGeneralMeetInput"];
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
- Архитектура Feature Sliced Design (FSD)
|
||||
- SSR и SPA режимы (Quasar Framework)
|
||||
- Pug-шаблоны с Composition API
|
||||
- Система расширений (extensions) для модульного подключения функциональности
|
||||
- Система расширений (extensions) для модульного подключения функциональности (см. [docs/extension-factories.md](docs/extension-factories.md) о фабриках инжекции в стол совета и стол бухгалтера)
|
||||
- Интернационализация (Vue I18n)
|
||||
- Pinia для управления состоянием с персистентностью
|
||||
- Интеграция с блокчейном EOSIO через Wharfkit
|
||||
|
||||
@@ -0,0 +1,170 @@
|
||||
# Фабрики инжекции компонентов между расширениями
|
||||
|
||||
В desktop есть два «общих стола», на которые приходят данные из разных
|
||||
расширений: **стол совета** (`extensions/soviet`) и **стол бухгалтера**
|
||||
(`extensions/reports`). Они показывают единый поток того, чем живёт
|
||||
кооператив — повестка решений и реестр операций соответственно — и должны
|
||||
оставаться единственной точкой просмотра для пользователя.
|
||||
|
||||
Чтобы прикладные расширения (`capital`, `market`, `registrator`, …) могли
|
||||
показать на этих столах своё бизнес-описание, не дублируя интерфейс у себя
|
||||
и не размывая роль стола, используется паттерн **фабрик инжекции**.
|
||||
Расширение регистрирует Vue-компонент по идентификатору доменной сущности
|
||||
(тип решения / тип процесса), общий стол этот компонент рендерит в нужном
|
||||
слоте.
|
||||
|
||||
## Где какая фабрика
|
||||
|
||||
| Фабрика | Куда инжектирует | Чем индексируется | Источник правды по идентификатору |
|
||||
|---|---|---|---|
|
||||
| `decisionFactory` (`shared/lib/decision-factory`) | Стол совета — `widgets/Questions/QuestionsTable` (повестка) | `decisionType` (строка из `table.type`) | Реестр решений в backend / `cooptypes` |
|
||||
| `processInfoFactory` (`shared/lib/process-info-factory`) | Стол бухгалтера — `extensions/reports/pages/OperationsPage` (реестр операций) | `process_type` | `Ledger2.LEDGER2_PROCESS_REGISTRY` |
|
||||
|
||||
Обе фабрики устроены одинаково: singleton-реестр `Record<string, Handler>`
|
||||
+ методы `registerHandler / getInfoComponent / hasHandler`. Регистрация —
|
||||
side-effect при загрузке расширения; общий стол читает реестр на каждом
|
||||
ререндере строки.
|
||||
|
||||
## Когда что добавлять
|
||||
|
||||
- **Новый тип решения совета** (нужна подпись Протокола, голосование,
|
||||
отдельная заявка-инициатор) — `decisionFactory`. Помимо `infoComponent`
|
||||
здесь нужен `generateHandler`, генерирующий PDF-документ решения.
|
||||
|
||||
- **Новый тип процесса ledger2** (поставка, возврат, списание, выпуск
|
||||
займа и т. п.) — `processInfoFactory`. Достаточно одного
|
||||
`infoComponent`: проводки, движения по кошелькам и документы стол
|
||||
бухгалтера соберёт сам, расширение лишь даёт человекочитаемое
|
||||
«содержание процесса» в бизнес-словаре + deep-link на свой собственный
|
||||
стол.
|
||||
|
||||
## Что НЕ должно делать расширение
|
||||
|
||||
- **Не показывать у себя реестр операций / проводок / документов.** Эта
|
||||
информация уже есть на столе бухгалтера в общем виде по всем процессам.
|
||||
Дублирование = два «правильных» места + расхождения между ними.
|
||||
- **Не показывать у себя ленту решений совета.** Все решения по всем
|
||||
расширениям видны в одной повестке.
|
||||
- **Не пихать в `infoComponent` техничку**: `process_type` / `o.mkt.*` /
|
||||
block_num / event_id / raw enum-значения. Стол читают председатель,
|
||||
бухгалтер, ревизор — у них нет контекста разработчика. Только бизнес-
|
||||
поля и deep-link.
|
||||
|
||||
## DecisionFactory — стол совета
|
||||
|
||||
### Контракт
|
||||
|
||||
```ts
|
||||
// shared/lib/types/decision-factory.ts
|
||||
interface IDecisionHandler {
|
||||
generateHandler: (data: IGenerateDecisionData) => Promise<unknown>
|
||||
infoComponent?: Component<{ agenda: IAgenda }>
|
||||
}
|
||||
```
|
||||
|
||||
`infoComponent` получает `IAgenda` (строку повестки) и рендерит блок
|
||||
дополнительной информации справа от стандартных полей повестки.
|
||||
|
||||
### Пример регистрации (`extensions/capital`)
|
||||
|
||||
```ts
|
||||
// extensions/capital/app/extensions.ts
|
||||
import { decisionFactory } from 'src/shared/lib/decision-factory'
|
||||
import { CreateResultDecisionInfoWidget } from '../widgets/CreateResultDecisionInfoWidget'
|
||||
import { useGenerateResultContributionDecision } from '../features/Result/.../model'
|
||||
|
||||
export function registerCapitalDecisionHandlers() {
|
||||
decisionFactory.registerHandler('createresult', {
|
||||
generateHandler: async ({ decision_id, username, row }) => {
|
||||
const meta = JSON.parse(row.table.statement.meta) as { result_hash: string }
|
||||
const { generateResultContributionDecision } = useGenerateResultContributionDecision()
|
||||
return generateResultContributionDecision({ result_hash: meta.result_hash, decision_id, username })
|
||||
},
|
||||
infoComponent: CreateResultDecisionInfoWidget,
|
||||
})
|
||||
}
|
||||
```
|
||||
|
||||
Регистрация вызывается из `install.ts` расширения **до** `return` workspace-
|
||||
конфигурации, чтобы стол совета увидел handler раньше первого ренда.
|
||||
|
||||
## ProcessInfoFactory — стол бухгалтера
|
||||
|
||||
### Контракт
|
||||
|
||||
```ts
|
||||
// shared/lib/types/process-info-factory.ts
|
||||
interface IProcessInfoProps {
|
||||
processHash: string
|
||||
processType: string
|
||||
coopname: string
|
||||
}
|
||||
interface IProcessInfoHandler {
|
||||
infoComponent: Component<IProcessInfoProps>
|
||||
}
|
||||
```
|
||||
|
||||
`infoComponent` получает три props и должен:
|
||||
- сам подтянуть `IProcessSnapshot` через `useProcessStore().loadLatestSnapshot({ coopname, hash: processHash })`;
|
||||
- отрисовать бизнес-поля из снэпшота;
|
||||
- дать кнопку-deep-link на свой собственный стол расширения с
|
||||
`query: { process_hash: processHash }`.
|
||||
|
||||
### Пример регистрации (`extensions/market`)
|
||||
|
||||
```ts
|
||||
// extensions/market/app/extensions.ts
|
||||
import { Ledger2 } from 'cooptypes'
|
||||
import { processInfoFactory } from 'src/shared/lib/process-info-factory'
|
||||
import { ProcessSupplyInfoWidget } from 'src/widgets/Marketplace/ProcessSupplyInfoWidget'
|
||||
import { ProcessReturnInfoWidget } from 'src/widgets/Marketplace/ProcessReturnInfoWidget'
|
||||
import { ProcessWriteoffInfoWidget } from 'src/widgets/Marketplace/ProcessWriteoffInfoWidget'
|
||||
|
||||
function processTypeByName(name: string): string {
|
||||
const meta = Ledger2.LEDGER2_PROCESS_REGISTRY.find(
|
||||
(p) => p.contract === 'marketplace' && p.name === name,
|
||||
)
|
||||
if (!meta) throw new Error(`process_type marketplace::${name} отсутствует в LEDGER2_PROCESS_REGISTRY`)
|
||||
return meta.type
|
||||
}
|
||||
|
||||
export function registerMarketplaceProcessInfoHandlers(): void {
|
||||
processInfoFactory.registerHandler(processTypeByName('SUPPLY'), { infoComponent: ProcessSupplyInfoWidget })
|
||||
processInfoFactory.registerHandler(processTypeByName('RETURN'), { infoComponent: ProcessReturnInfoWidget })
|
||||
processInfoFactory.registerHandler(processTypeByName('WRITEOFF'), { infoComponent: ProcessWriteoffInfoWidget })
|
||||
}
|
||||
```
|
||||
|
||||
Ключ берётся из `Ledger2.LEDGER2_PROCESS_REGISTRY` через `name`-поле, а не
|
||||
строковым литералом — переименование `process_type` в cooptypes
|
||||
автоматически подцепится.
|
||||
|
||||
Вызов `registerMarketplaceProcessInfoHandlers()` стоит в `install.ts`
|
||||
расширения до `return`.
|
||||
|
||||
## Чек-лист для нового расширения
|
||||
|
||||
1. Завести виджет(ы) `widgets/.../<DomainName>InfoWidget` — `<template lang="pug">`,
|
||||
бизнес-поля + deep-link, никаких raw enum / process_type / hash в видимой части.
|
||||
2. Создать `extensions/<name>/app/extensions.ts` с функцией
|
||||
`register<Name>(Decision|ProcessInfo)Handlers()`.
|
||||
3. Импортировать и вызвать её в `extensions/<name>/install.ts` до `return`.
|
||||
4. Если новый `process_type` или `decision_type` — добавить запись в
|
||||
соответствующий реестр (`cooptypes` для процессов; backend-реестр для
|
||||
решений). Иначе фабрика правильно молчит, но строка в общем столе
|
||||
останется без бизнес-блока.
|
||||
5. На своём собственном столе расширения не пытаться повторить реестр
|
||||
операций / проводок / повестки. Если нужно «открыть процесс» — это
|
||||
deep-link в общий стол.
|
||||
|
||||
## Связанные файлы
|
||||
|
||||
- `components/desktop/src/shared/lib/decision-factory/index.ts`
|
||||
- `components/desktop/src/shared/lib/process-info-factory/index.ts`
|
||||
- `components/desktop/src/shared/lib/types/decision-factory.ts`
|
||||
- `components/desktop/src/shared/lib/types/process-info-factory.ts`
|
||||
- `components/desktop/src/widgets/Questions/QuestionsTable/QuestionsTable.vue` — рендер слота на столе совета
|
||||
- `components/desktop/extensions/reports/pages/OperationsPage/ui/OperationsPage.vue` — рендер слота на столе бухгалтера
|
||||
- `components/desktop/src/entities/Process` — api / store для `processInfoFactory`-виджетов
|
||||
- `components/desktop/extensions/capital/app/extensions.ts` — образец `decisionFactory`-регистрации
|
||||
- `components/desktop/extensions/market/app/extensions.ts` — образец `processInfoFactory`-регистрации
|
||||
@@ -0,0 +1,40 @@
|
||||
import { Ledger2 } from 'cooptypes'
|
||||
import { processInfoFactory } from 'src/shared/lib/process-info-factory'
|
||||
import { ProcessSupplyInfoWidget } from 'src/widgets/Marketplace/ProcessSupplyInfoWidget'
|
||||
import { ProcessReturnInfoWidget } from 'src/widgets/Marketplace/ProcessReturnInfoWidget'
|
||||
import { ProcessWriteoffInfoWidget } from 'src/widgets/Marketplace/ProcessWriteoffInfoWidget'
|
||||
|
||||
/**
|
||||
* Регистрация прикладных info-widget'ов «Содержание процесса» для стола
|
||||
* бухгалтера. Сами проводки/кошельки/документы остаются в `extensions/reports`
|
||||
* — здесь мы только описываем бизнес-смысл процессов marketplace, чтобы
|
||||
* председатель и бухгалтер видели заказчика, поставщика, КУ, ссылку на
|
||||
* соответствующий стол ПВЗ/админа.
|
||||
*
|
||||
* Идентификатор process_type берём из `Ledger2.LEDGER2_PROCESS_REGISTRY`
|
||||
* (источник правды), а не строкой — переименование процесса синхронно
|
||||
* подцепится по полю `name` (`SUPPLY` / `RETURN` / `WRITEOFF`).
|
||||
*/
|
||||
function processTypeByName(name: string): string {
|
||||
const meta = Ledger2.LEDGER2_PROCESS_REGISTRY.find(
|
||||
(p) => p.contract === 'marketplace' && p.name === name,
|
||||
)
|
||||
if (!meta) {
|
||||
throw new Error(
|
||||
`[market/extensions] process_type marketplace::${name} отсутствует в LEDGER2_PROCESS_REGISTRY`,
|
||||
)
|
||||
}
|
||||
return meta.type
|
||||
}
|
||||
|
||||
export function registerMarketplaceProcessInfoHandlers(): void {
|
||||
processInfoFactory.registerHandler(processTypeByName('SUPPLY'), {
|
||||
infoComponent: ProcessSupplyInfoWidget,
|
||||
})
|
||||
processInfoFactory.registerHandler(processTypeByName('RETURN'), {
|
||||
infoComponent: ProcessReturnInfoWidget,
|
||||
})
|
||||
processInfoFactory.registerHandler(processTypeByName('WRITEOFF'), {
|
||||
infoComponent: ProcessWriteoffInfoWidget,
|
||||
})
|
||||
}
|
||||
@@ -9,10 +9,15 @@ import { OrdererReadyToReceivePage } from 'src/pages/Marketplace/OrdererReadyToR
|
||||
import { OrdererReturnClaimsPage } from 'src/pages/Marketplace/OrdererReturnClaims'
|
||||
import { OperatorReturnClaimsPage } from 'src/pages/Marketplace/OperatorReturnClaims'
|
||||
import { AdminWriteoffsPage } from 'src/pages/Marketplace/AdminWriteoffs'
|
||||
import { OperatorOwnWarehousePage } from 'src/pages/Marketplace/OperatorOwnWarehouse'
|
||||
import { AdminWarehouseSummaryPage } from 'src/pages/Marketplace/AdminWarehouseSummary'
|
||||
import { EcosystemRegistryPage } from 'src/pages/Marketplace/EcosystemRegistry'
|
||||
import type { IWorkspaceConfig } from 'src/shared/lib/types/workspace'
|
||||
import { agreementsBase } from 'src/shared/lib/consts/workspaces'
|
||||
import { registerMarketplaceProcessInfoHandlers } from './app/extensions'
|
||||
|
||||
export default async function (): Promise<IWorkspaceConfig[]> {
|
||||
registerMarketplaceProcessInfoHandlers()
|
||||
return [{
|
||||
workspace: 'market',
|
||||
extension_name: 'market',
|
||||
@@ -116,6 +121,41 @@ export default async function (): Promise<IWorkspaceConfig[]> {
|
||||
agreements: agreementsBase,
|
||||
},
|
||||
},
|
||||
{
|
||||
// Эпик 9 / Story 9.2: admin-стол сводного склада кооператива.
|
||||
// Использует canon-виджет WarehouseSummaryGrid (UX-DR16) и поверх
|
||||
// marketplace_inventory агрегирует приход/расход/остаток по
|
||||
// ku × sku. Вторая вкладка — поток заказов/поставок (FR37/FR38),
|
||||
// на MVP — табличные итоги, графики динамики подключаются по
|
||||
// AR37 SDK-подписки платформы.
|
||||
path: 'warehouse-summary',
|
||||
name: 'marketplace-warehouse-summary',
|
||||
component: markRaw(AdminWarehouseSummaryPage),
|
||||
meta: {
|
||||
title: 'Сводный склад',
|
||||
icon: 'fa-solid fa-warehouse',
|
||||
roles: ['chairman', 'member'],
|
||||
requiresAuth: true,
|
||||
agreements: agreementsBase,
|
||||
},
|
||||
},
|
||||
{
|
||||
// Эпик 9 / Story 9.4: раздел экосистемы — список controller'ов
|
||||
// других кооперативов с расширением «Стол заказов». MVP — режим
|
||||
// read-only заглушки до подключения платформенного
|
||||
// `ecosystem_registry` (NFR-Sc2 / AR18). Полная активация —
|
||||
// вторая фаза (межкооперативная торговля).
|
||||
path: 'ecosystem',
|
||||
name: 'marketplace-ecosystem',
|
||||
component: markRaw(EcosystemRegistryPage),
|
||||
meta: {
|
||||
title: 'Экосистема',
|
||||
icon: 'fa-solid fa-network-wired',
|
||||
roles: ['chairman', 'member'],
|
||||
requiresAuth: true,
|
||||
agreements: agreementsBase,
|
||||
},
|
||||
},
|
||||
{
|
||||
// Витрина дизайн-системы (Эпик 10): открыта председателю и членам совета
|
||||
// для утверждения 13 custom-компонентов до их применения в эпиках 1-9.
|
||||
@@ -199,6 +239,25 @@ export default async function (): Promise<IWorkspaceConfig[]> {
|
||||
agreements: agreementsBase,
|
||||
},
|
||||
},
|
||||
{
|
||||
// Эпик 9 / Story 9.1: operator-стол «Склад моего КУ».
|
||||
// Таблица marketplace_inventory отфильтрована по braname; per-row
|
||||
// статусы (LABELED / ISSUED / RETURNED / WRITTEN_OFF), фильтры по
|
||||
// статусу/orderer, summary count by status. Backend-доступ —
|
||||
// `Warehouse: ['read:own-KU']` гарантирует, что оператор видит
|
||||
// только свой участок. Real-time через AR37 SDK-подписки
|
||||
// платформы (подключается отдельным шагом эпика).
|
||||
path: 'warehouse',
|
||||
name: 'marketplace-pvz-warehouse',
|
||||
component: markRaw(OperatorOwnWarehousePage),
|
||||
meta: {
|
||||
title: 'Склад моего КУ',
|
||||
icon: 'fa-solid fa-boxes-stacked',
|
||||
roles: ['chairman'],
|
||||
requiresAuth: true,
|
||||
agreements: agreementsBase,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
@@ -246,6 +246,21 @@ div.page-shell
|
||||
q-td.text-right(:props='cp') {{ formatAmount(cp.row.quantity) }}
|
||||
.text-caption.text-grey-6(v-else) Проводок нет
|
||||
|
||||
//- Слот расширения: содержание процесса в бизнес-терминах.
|
||||
//- Рисуется только если соответствующее расширение зарегистрировало
|
||||
//- свой info-widget через processInfoFactory.registerHandler.
|
||||
.q-mt-md(v-if='props.row.processHash && hasProcessInfo(props.row)')
|
||||
q-card(flat bordered)
|
||||
q-card-section.q-pb-none
|
||||
.text-subtitle2 Содержание процесса
|
||||
q-card-section.q-pt-sm
|
||||
component(
|
||||
:is='processInfoComponent(props.row)'
|
||||
:process-hash='props.row.processHash'
|
||||
:process-type='rowProcessType(props.row) || ""'
|
||||
:coopname='info.coopname'
|
||||
)
|
||||
|
||||
template(#item='props')
|
||||
.col-12
|
||||
q-card.q-pa-md.q-mb-sm
|
||||
@@ -291,6 +306,7 @@ import { useAccountStore } from 'src/entities/Account'
|
||||
import { formatAsset2Digits } from 'src/shared/lib/utils'
|
||||
import { DirectionCell, WalletIdCell, AccountIdCell } from '../../../shared/ui'
|
||||
import { Ledger2 } from 'cooptypes'
|
||||
import { processInfoFactory } from 'src/shared/lib/process-info-factory'
|
||||
|
||||
const { info } = useSystemStore()
|
||||
const { isMobile } = useWindowSize()
|
||||
@@ -323,6 +339,25 @@ function rowChipText(row: ILedger2Operation): string {
|
||||
return row.operationCode ?? (row.action === 'walmove' ? 'o.adj.walmove' : row.action === 'revert' ? 'o.adj.rev' : '—')
|
||||
}
|
||||
|
||||
/**
|
||||
* Слот «Содержание процесса» рисуют прикладные расширения (marketplace,
|
||||
* capital, …) через `processInfoFactory.registerHandler(process_type, …)`.
|
||||
* Сама страница остаётся неизменной — она лишь даёт расширению место,
|
||||
* чтобы показать заказчика, поставщика, состав заказа и deep-link на свой
|
||||
* собственный стол. Без зарегистрированного компонента блок не появляется.
|
||||
*/
|
||||
function rowProcessType(row: ILedger2Operation): string | undefined {
|
||||
return Ledger2.getOperationProcessType(row.operationCode)
|
||||
}
|
||||
function hasProcessInfo(row: ILedger2Operation): boolean {
|
||||
const pt = rowProcessType(row)
|
||||
return !!pt && processInfoFactory.hasHandler(pt)
|
||||
}
|
||||
function processInfoComponent(row: ILedger2Operation) {
|
||||
const pt = rowProcessType(row)
|
||||
return pt ? processInfoFactory.getInfoComponent(pt) : undefined
|
||||
}
|
||||
|
||||
// Цветовая схема по контракту-источнику operation_code — пастельный chip +
|
||||
// accent-полоска. operation_code имеет формат `o.<contract>.<verb>`, контракт
|
||||
// лежит во втором сегменте (parts[1]).
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
import { Queries } from '@coopenomics/sdk'
|
||||
import { client } from 'src/shared/api/client'
|
||||
import type { IProcessGetInput, IProcessSnapshot, IProcessView } from '../types'
|
||||
|
||||
async function getProcess(input: IProcessGetInput): Promise<IProcessView | undefined> {
|
||||
const { [Queries.Processes.GetProcess.name]: output } = await client.Query(
|
||||
Queries.Processes.GetProcess.query,
|
||||
{ variables: input },
|
||||
)
|
||||
return output
|
||||
}
|
||||
|
||||
/**
|
||||
* Текущий snapshot процесса = последний delta_history по block_num. На
|
||||
* stale-данных или fresh-процессе массив может быть пустым — возвращаем null,
|
||||
* чтобы прикладной слой не делал ни проверок длины, ни приведений.
|
||||
*/
|
||||
function pickLatestSnapshot(view: IProcessView | undefined): IProcessSnapshot | null {
|
||||
const deltas = view?.delta_history ?? []
|
||||
if (!deltas.length) return null
|
||||
const latest = [...deltas].sort((a, b) => a.block_num - b.block_num).at(-1)
|
||||
const raw = latest?.value
|
||||
return (raw && typeof raw === 'object' ? (raw as IProcessSnapshot) : null)
|
||||
}
|
||||
|
||||
export const processApi = {
|
||||
getProcess,
|
||||
pickLatestSnapshot,
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
export * from './types'
|
||||
export * from './model'
|
||||
@@ -0,0 +1 @@
|
||||
export * from './store'
|
||||
@@ -0,0 +1,38 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref, type Ref } from 'vue'
|
||||
import { processApi } from '../api'
|
||||
import type { IProcessGetInput, IProcessSnapshot, IProcessView } from '../types'
|
||||
|
||||
const namespace = 'processStore'
|
||||
|
||||
interface IProcessStore {
|
||||
loading: Ref<boolean>
|
||||
loadProcess: (input: IProcessGetInput) => Promise<IProcessView | undefined>
|
||||
loadLatestSnapshot: (input: IProcessGetInput) => Promise<IProcessSnapshot | null>
|
||||
}
|
||||
|
||||
export const useProcessStore = defineStore(namespace, (): IProcessStore => {
|
||||
const loading = ref(false)
|
||||
|
||||
async function loadProcess(input: IProcessGetInput): Promise<IProcessView | undefined> {
|
||||
loading.value = true
|
||||
try {
|
||||
return await processApi.getProcess(input)
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
async function loadLatestSnapshot(
|
||||
input: IProcessGetInput,
|
||||
): Promise<IProcessSnapshot | null> {
|
||||
const view = await loadProcess(input)
|
||||
return processApi.pickLatestSnapshot(view)
|
||||
}
|
||||
|
||||
return {
|
||||
loading,
|
||||
loadProcess,
|
||||
loadLatestSnapshot,
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,20 @@
|
||||
import type { Queries, Zeus } from '@coopenomics/sdk'
|
||||
|
||||
export type IProcessView =
|
||||
Queries.Processes.GetProcess.IOutput[typeof Queries.Processes.GetProcess.name]
|
||||
|
||||
export type IProcessGetInput = Queries.Processes.GetProcess.IInput
|
||||
|
||||
export type IProcessDelta = NonNullable<IProcessView>['delta_history'][number]
|
||||
|
||||
export type IProcessAction = NonNullable<IProcessView>['actions'][number]
|
||||
|
||||
export type IProcessDocument = NonNullable<IProcessView>['documents'][number]
|
||||
|
||||
/**
|
||||
* Текущий снэпшот процесса в bs-таблице расширения (marketplace::orders, …).
|
||||
* GraphQL-схема отдаёт `value: JSON`, поэтому строгое описание полей даёт
|
||||
* прикладной слой (см. info-widget'ы расширений). На уровне entity достаточно
|
||||
* generic-формы.
|
||||
*/
|
||||
export type IProcessSnapshot = Record<string, unknown>
|
||||
@@ -0,0 +1,17 @@
|
||||
import { Queries } from '@coopenomics/sdk';
|
||||
import { client } from 'src/shared/api/client';
|
||||
|
||||
export type MarketplaceInventoryItemView =
|
||||
Queries.Marketplace.ListInventory.IOutput['marketplaceListInventory'][number];
|
||||
|
||||
export type IListInventoryInput = Queries.Marketplace.ListInventory.IInput['data'];
|
||||
|
||||
export async function listAllInventory(
|
||||
data?: IListInventoryInput,
|
||||
): Promise<MarketplaceInventoryItemView[]> {
|
||||
const { [Queries.Marketplace.ListInventory.name]: result } = await client.Query(
|
||||
Queries.Marketplace.ListInventory.query,
|
||||
{ variables: { data: data ?? {} } },
|
||||
);
|
||||
return result;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export { AdminWarehouseSummaryPage } from './ui';
|
||||
+211
@@ -0,0 +1,211 @@
|
||||
<template lang="pug">
|
||||
q-page.mp-role-admin.q-pa-md
|
||||
.row.items-center.q-mb-md
|
||||
.text-h5.col Сводный склад кооператива
|
||||
q-btn(
|
||||
flat
|
||||
no-caps
|
||||
color='primary'
|
||||
icon='refresh'
|
||||
label='Обновить'
|
||||
:loading='loading'
|
||||
@click='load'
|
||||
)
|
||||
|
||||
q-tabs.text-grey-7(
|
||||
v-model='tab'
|
||||
dense
|
||||
align='left'
|
||||
active-color='primary'
|
||||
indicator-color='primary'
|
||||
narrow-indicator
|
||||
)
|
||||
q-tab(name='warehouse' label='Сводный склад')
|
||||
q-tab(name='flow' label='Поток заказов и поставок')
|
||||
|
||||
q-separator
|
||||
|
||||
q-tab-panels(v-model='tab' animated keep-alive)
|
||||
q-tab-panel.q-px-none(name='warehouse')
|
||||
.row.q-col-gutter-md.q-mb-md
|
||||
q-card.mp-card.col-12.col-sm-3
|
||||
q-card-section
|
||||
.text-caption.text-grey-7 Активных позиций
|
||||
.text-h6 {{ summary.totalActive }}
|
||||
q-card.mp-card.col-12.col-sm-3
|
||||
q-card-section
|
||||
.text-caption.text-grey-7 КУ с движением
|
||||
.text-h6 {{ summary.kuCount }}
|
||||
q-card.mp-card.col-12.col-sm-3
|
||||
q-card-section
|
||||
.text-caption.text-grey-7 Товарных позиций в обороте
|
||||
.text-h6 {{ summary.skuCount }}
|
||||
q-card.mp-card.col-12.col-sm-3
|
||||
q-card-section
|
||||
.text-caption.text-grey-7 Списано (накопительно)
|
||||
.text-h6 {{ summary.writtenOff }}
|
||||
|
||||
WarehouseSummaryGrid(:rows='warehouseRows')
|
||||
|
||||
q-tab-panel.q-px-none(name='flow')
|
||||
.row.q-col-gutter-md.q-mb-md
|
||||
q-card.mp-card.col-12.col-sm-3
|
||||
q-card-section
|
||||
.text-caption.text-grey-7 Маркировок за период
|
||||
.text-h6 {{ flow.labeled }}
|
||||
q-card.mp-card.col-12.col-sm-3
|
||||
q-card-section
|
||||
.text-caption.text-grey-7 Выдач пайщикам
|
||||
.text-h6 {{ flow.issued }}
|
||||
q-card.mp-card.col-12.col-sm-3
|
||||
q-card-section
|
||||
.text-caption.text-grey-7 Возвратов на склад
|
||||
.text-h6 {{ flow.returned }}
|
||||
q-card.mp-card.col-12.col-sm-3
|
||||
q-card-section
|
||||
.text-caption.text-grey-7 Списаний
|
||||
.text-h6 {{ flow.writtenOff }}
|
||||
|
||||
q-table.mp-card(
|
||||
:rows='topProducts'
|
||||
:columns='topColumns'
|
||||
row-key='sku'
|
||||
flat
|
||||
bordered
|
||||
dense
|
||||
:pagination='{ rowsPerPage: 10 }'
|
||||
:rows-per-page-options='[10, 25, 50]'
|
||||
binary-state-sort
|
||||
)
|
||||
template(#top)
|
||||
.text-subtitle1 Топ позиций по обороту
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed, onMounted, ref } from 'vue'
|
||||
import type { QTableProps } from 'quasar'
|
||||
import { Zeus } from '@coopenomics/sdk'
|
||||
import { FailAlert } from 'src/shared/api'
|
||||
import {
|
||||
WarehouseSummaryGrid,
|
||||
type WarehouseRow,
|
||||
} from 'src/widgets/Marketplace/WarehouseSummaryGrid'
|
||||
import { listAllInventory, type MarketplaceInventoryItemView } from '../api'
|
||||
|
||||
const tab = ref<'warehouse' | 'flow'>('warehouse')
|
||||
const items = ref<MarketplaceInventoryItemView[]>([])
|
||||
const loading = ref(false)
|
||||
|
||||
async function load(): Promise<void> {
|
||||
loading.value = true
|
||||
try {
|
||||
items.value = await listAllInventory({})
|
||||
} catch (e) {
|
||||
FailAlert(e, 'Не удалось загрузить сводный склад')
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
void load()
|
||||
})
|
||||
|
||||
interface BucketKey {
|
||||
ku: string
|
||||
sku: string
|
||||
title: string
|
||||
}
|
||||
|
||||
const summary = computed(() => {
|
||||
const kus = new Set<string>()
|
||||
const skus = new Set<string>()
|
||||
let active = 0
|
||||
let writtenOff = 0
|
||||
for (const row of items.value) {
|
||||
kus.add(row.braname)
|
||||
skus.add(row.product_name_snapshot)
|
||||
if (row.status === Zeus.MarketplaceInventoryStatus.WRITTEN_OFF) writtenOff += row.quantity_per_label
|
||||
else active += row.quantity_per_label
|
||||
}
|
||||
return {
|
||||
totalActive: active,
|
||||
writtenOff,
|
||||
kuCount: kus.size,
|
||||
skuCount: skus.size,
|
||||
}
|
||||
})
|
||||
|
||||
const warehouseRows = computed<WarehouseRow[]>(() => {
|
||||
const buckets = new Map<string, { key: BucketKey; in: number; out: number; balance: number }>()
|
||||
for (const row of items.value) {
|
||||
const k = `${row.braname}::${row.product_name_snapshot}`
|
||||
const b = buckets.get(k) ?? {
|
||||
key: { ku: row.braname, sku: row.product_name_snapshot, title: row.product_name_snapshot },
|
||||
in: 0,
|
||||
out: 0,
|
||||
balance: 0,
|
||||
}
|
||||
const qty = row.quantity_per_label
|
||||
if (
|
||||
row.status === Zeus.MarketplaceInventoryStatus.LABELED ||
|
||||
row.status === Zeus.MarketplaceInventoryStatus.RETURNED
|
||||
) {
|
||||
b.in += qty
|
||||
b.balance += qty
|
||||
} else if (row.status === Zeus.MarketplaceInventoryStatus.ISSUED) {
|
||||
b.out += qty
|
||||
} else if (row.status === Zeus.MarketplaceInventoryStatus.WRITTEN_OFF) {
|
||||
b.in += qty
|
||||
b.out += qty
|
||||
}
|
||||
buckets.set(k, b)
|
||||
}
|
||||
return [...buckets.values()].map((b) => ({
|
||||
sku: b.key.sku,
|
||||
title: b.key.title,
|
||||
pvz: b.key.ku,
|
||||
incoming: b.in,
|
||||
outgoing: b.out,
|
||||
balance: b.balance,
|
||||
unit: 'шт',
|
||||
}))
|
||||
})
|
||||
|
||||
const flow = computed(() => {
|
||||
let labeled = 0
|
||||
let issued = 0
|
||||
let returned = 0
|
||||
let writtenOff = 0
|
||||
for (const row of items.value) {
|
||||
const qty = row.quantity_per_label
|
||||
if (row.status === Zeus.MarketplaceInventoryStatus.LABELED) labeled += qty
|
||||
if (row.status === Zeus.MarketplaceInventoryStatus.ISSUED) issued += qty
|
||||
if (row.status === Zeus.MarketplaceInventoryStatus.RETURNED) returned += qty
|
||||
if (row.status === Zeus.MarketplaceInventoryStatus.WRITTEN_OFF) writtenOff += qty
|
||||
}
|
||||
return { labeled, issued, returned, writtenOff }
|
||||
})
|
||||
|
||||
const topProducts = computed(() => {
|
||||
const totals = new Map<string, { sku: string; turnover: number; ku: Set<string> }>()
|
||||
for (const row of items.value) {
|
||||
const entry =
|
||||
totals.get(row.product_name_snapshot) ??
|
||||
{ sku: row.product_name_snapshot, turnover: 0, ku: new Set<string>() }
|
||||
entry.turnover += row.quantity_per_label
|
||||
entry.ku.add(row.braname)
|
||||
totals.set(row.product_name_snapshot, entry)
|
||||
}
|
||||
return [...totals.values()]
|
||||
.map((e) => ({ sku: e.sku, turnover: e.turnover, ku_count: e.ku.size }))
|
||||
.sort((a, b) => b.turnover - a.turnover)
|
||||
.slice(0, 10)
|
||||
})
|
||||
|
||||
const topColumns: QTableProps['columns'] = [
|
||||
{ name: 'sku', label: 'Позиция', field: 'sku', align: 'left', sortable: true },
|
||||
{ name: 'turnover', label: 'Оборот, ед.', field: 'turnover', align: 'right', sortable: true },
|
||||
{ name: 'ku_count', label: 'КУ', field: 'ku_count', align: 'right', sortable: true },
|
||||
]
|
||||
</script>
|
||||
@@ -0,0 +1 @@
|
||||
export { default as AdminWarehouseSummaryPage } from './AdminWarehouseSummaryPage.vue';
|
||||
@@ -0,0 +1 @@
|
||||
export { EcosystemRegistryPage } from './ui';
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
<template lang="pug">
|
||||
q-page.mp-role-admin.q-pa-md
|
||||
.text-h5.q-mb-md Экосистема кооперативов
|
||||
|
||||
q-card.mp-card.q-mb-md
|
||||
q-card-section
|
||||
.text-subtitle1 Текущий кооператив
|
||||
.text-body2.text-grey-7.q-mt-xs
|
||||
| Кооператив
|
||||
strong {{ coopname || '—' }}
|
||||
| установил расширение «Стол заказов».
|
||||
|
||||
q-card.mp-card
|
||||
q-card-section
|
||||
.text-subtitle1 Другие кооперативы с расширением «Стол заказов»
|
||||
.row.items-center.q-pa-md.text-grey-7.q-gutter-sm
|
||||
q-icon(name='info' size='20px')
|
||||
.text-body2 Межкооперативная торговля включится позже.
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed } from 'vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
|
||||
const route = useRoute()
|
||||
const coopname = computed(() => String(route.params.coopname ?? ''))
|
||||
</script>
|
||||
@@ -0,0 +1 @@
|
||||
export { default as EcosystemRegistryPage } from './EcosystemRegistryPage.vue';
|
||||
@@ -0,0 +1,17 @@
|
||||
import { Queries } from '@coopenomics/sdk';
|
||||
import { client } from 'src/shared/api/client';
|
||||
|
||||
export type MarketplaceInventoryItemView =
|
||||
Queries.Marketplace.ListInventory.IOutput['marketplaceListInventory'][number];
|
||||
|
||||
export type IListInventoryInput = Queries.Marketplace.ListInventory.IInput['data'];
|
||||
|
||||
export async function listInventory(
|
||||
data: IListInventoryInput,
|
||||
): Promise<MarketplaceInventoryItemView[]> {
|
||||
const { [Queries.Marketplace.ListInventory.name]: result } = await client.Query(
|
||||
Queries.Marketplace.ListInventory.query,
|
||||
{ variables: { data } },
|
||||
);
|
||||
return result;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
export { OperatorOwnWarehousePage } from './ui';
|
||||
+201
@@ -0,0 +1,201 @@
|
||||
<template lang="pug">
|
||||
q-page.mp-role-operator.q-pa-md
|
||||
.text-h5.q-mb-md Склад моего КУ
|
||||
|
||||
q-card.mp-card.q-mb-md
|
||||
q-card-section.q-gutter-sm
|
||||
.row.q-col-gutter-sm.items-end
|
||||
q-input.col-12.col-sm-4(
|
||||
v-model='braname'
|
||||
label='Код кооперативного участка'
|
||||
dense
|
||||
outlined
|
||||
@keyup.enter='load'
|
||||
)
|
||||
q-select.col-12.col-sm-3(
|
||||
v-model='statusFilter'
|
||||
:options='statusOptions'
|
||||
label='Состояние'
|
||||
dense
|
||||
outlined
|
||||
multiple
|
||||
emit-value
|
||||
map-options
|
||||
)
|
||||
q-input.col-12.col-sm-3(
|
||||
v-model='ordererFilter'
|
||||
label='Заказчик'
|
||||
dense
|
||||
outlined
|
||||
)
|
||||
q-btn.col-12.col-sm-2(
|
||||
color='primary'
|
||||
label='Обновить'
|
||||
:loading='loading'
|
||||
@click='load'
|
||||
)
|
||||
|
||||
.row.q-col-gutter-md.q-mb-md(v-if='items.length')
|
||||
q-card.mp-card.col-12.col-sm-3
|
||||
q-card-section
|
||||
.text-caption.text-grey-7 Активных наклеек
|
||||
.text-h6 {{ summary.totalActive }}
|
||||
q-card.mp-card.col-12.col-sm-3(
|
||||
v-for='(count, status) in summary.byStatus'
|
||||
:key='status'
|
||||
)
|
||||
q-card-section
|
||||
.text-caption.text-grey-7 {{ humanStatus(status) }}
|
||||
.text-h6 {{ count }}
|
||||
|
||||
q-table.mp-card(
|
||||
:rows='filteredRows'
|
||||
:columns='columns'
|
||||
row-key='id'
|
||||
:loading='loading'
|
||||
:pagination='{ rowsPerPage: 25, sortBy: "labeled_at", descending: true }'
|
||||
:rows-per-page-options='[25, 50, 100, 0]'
|
||||
flat
|
||||
bordered
|
||||
binary-state-sort
|
||||
)
|
||||
template(#body-cell-status='props')
|
||||
q-td(:props='props')
|
||||
span.mp-status-chip(:class='statusChipClass(props.row.status)')
|
||||
| {{ humanStatus(props.row.status) }}
|
||||
|
||||
template(#body-cell-age='props')
|
||||
q-td(:props='props') {{ formatAge(props.row.labeled_at) }}
|
||||
|
||||
template(#body-cell-labeled_at='props')
|
||||
q-td(:props='props') {{ formatDateTime(props.row.labeled_at) }}
|
||||
|
||||
template(#no-data)
|
||||
.full-width.text-center.q-pa-md.text-grey-7
|
||||
| {{ braname
|
||||
| ? 'Наклеек по этому КУ нет — проверьте код или фильтры по состояниям.'
|
||||
| : 'Введите код КУ и нажмите «Обновить».' }}
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed, onMounted, ref } from 'vue'
|
||||
import type { QTableProps } from 'quasar'
|
||||
import { FailAlert } from 'src/shared/api'
|
||||
import { Zeus } from '@coopenomics/sdk'
|
||||
import { listInventory, type MarketplaceInventoryItemView } from '../api'
|
||||
|
||||
const braname = ref<string>('')
|
||||
const statusFilter = ref<MarketplaceInventoryItemView['status'][]>([])
|
||||
const ordererFilter = ref<string>('')
|
||||
const items = ref<MarketplaceInventoryItemView[]>([])
|
||||
const loading = ref(false)
|
||||
|
||||
type InventoryStatus = MarketplaceInventoryItemView['status']
|
||||
|
||||
const statusOptions: { label: string; value: InventoryStatus }[] = [
|
||||
{ label: 'На складе', value: Zeus.MarketplaceInventoryStatus.LABELED },
|
||||
{ label: 'Выдано пайщику', value: Zeus.MarketplaceInventoryStatus.ISSUED },
|
||||
{ label: 'Возврат на склад', value: Zeus.MarketplaceInventoryStatus.RETURNED },
|
||||
{ label: 'Списано', value: Zeus.MarketplaceInventoryStatus.WRITTEN_OFF },
|
||||
]
|
||||
|
||||
const columns: QTableProps['columns'] = [
|
||||
{ name: 'barcode_value', label: 'Штрих-код', field: 'barcode_value', align: 'left', sortable: true },
|
||||
{ name: 'product', label: 'Товар', field: 'product_name_snapshot', align: 'left', sortable: true },
|
||||
{ name: 'orderer', label: 'Заказчик', field: 'orderer_account_snapshot', align: 'left', sortable: true },
|
||||
{ name: 'quantity', label: 'Ед.', field: 'quantity_per_label', align: 'right', sortable: true },
|
||||
{ name: 'status', label: 'Состояние', field: 'status', align: 'left', sortable: true },
|
||||
{ name: 'age', label: 'Возраст', field: 'labeled_at', align: 'right' },
|
||||
{ name: 'labeled_at', label: 'Промаркировано', field: 'labeled_at', align: 'left', sortable: true },
|
||||
]
|
||||
|
||||
const filteredRows = computed(() => {
|
||||
const orderer = ordererFilter.value.trim().toLowerCase()
|
||||
return items.value.filter((row) => {
|
||||
if (statusFilter.value.length && !statusFilter.value.includes(row.status)) return false
|
||||
if (orderer && !row.orderer_account_snapshot.toLowerCase().includes(orderer)) return false
|
||||
return true
|
||||
})
|
||||
})
|
||||
|
||||
const summary = computed(() => {
|
||||
const byStatus: Record<string, number> = {}
|
||||
for (const row of items.value) {
|
||||
byStatus[row.status] = (byStatus[row.status] ?? 0) + 1
|
||||
}
|
||||
return {
|
||||
byStatus,
|
||||
totalActive:
|
||||
(byStatus[Zeus.MarketplaceInventoryStatus.LABELED] ?? 0) +
|
||||
(byStatus[Zeus.MarketplaceInventoryStatus.ISSUED] ?? 0) +
|
||||
(byStatus[Zeus.MarketplaceInventoryStatus.RETURNED] ?? 0),
|
||||
}
|
||||
})
|
||||
|
||||
async function load(): Promise<void> {
|
||||
if (!braname.value.trim()) {
|
||||
items.value = []
|
||||
return
|
||||
}
|
||||
loading.value = true
|
||||
try {
|
||||
items.value = await listInventory({ braname: braname.value.trim() })
|
||||
} catch (e) {
|
||||
FailAlert(e, 'Не удалось загрузить склад КУ')
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
void load()
|
||||
})
|
||||
|
||||
function humanStatus(status: string): string {
|
||||
switch (status) {
|
||||
case Zeus.MarketplaceInventoryStatus.LABELED:
|
||||
return 'На складе'
|
||||
case Zeus.MarketplaceInventoryStatus.ISSUED:
|
||||
return 'Выдано пайщику'
|
||||
case Zeus.MarketplaceInventoryStatus.RETURNED:
|
||||
return 'Возврат на склад'
|
||||
case Zeus.MarketplaceInventoryStatus.WRITTEN_OFF:
|
||||
return 'Списано'
|
||||
default:
|
||||
return status
|
||||
}
|
||||
}
|
||||
|
||||
function statusChipClass(status: string): string {
|
||||
switch (status) {
|
||||
case Zeus.MarketplaceInventoryStatus.LABELED:
|
||||
return 'mp-status-chip--info'
|
||||
case Zeus.MarketplaceInventoryStatus.ISSUED:
|
||||
return 'mp-status-chip--success'
|
||||
case Zeus.MarketplaceInventoryStatus.RETURNED:
|
||||
return 'mp-status-chip--warning'
|
||||
case Zeus.MarketplaceInventoryStatus.WRITTEN_OFF:
|
||||
return 'mp-status-chip--error'
|
||||
default:
|
||||
return 'mp-status-chip--neutral'
|
||||
}
|
||||
}
|
||||
|
||||
function formatAge(value: unknown): string {
|
||||
if (value === null || value === undefined) return '—'
|
||||
const parsed = new Date(String(value))
|
||||
if (Number.isNaN(parsed.getTime())) return '—'
|
||||
const days = Math.floor((Date.now() - parsed.getTime()) / 86_400_000)
|
||||
if (days <= 0) return 'сегодня'
|
||||
if (days === 1) return '1 день'
|
||||
if (days < 5) return `${days} дня`
|
||||
return `${days} дней`
|
||||
}
|
||||
|
||||
function formatDateTime(value: unknown): string {
|
||||
if (value === null || value === undefined) return '—'
|
||||
const parsed = new Date(String(value))
|
||||
if (Number.isNaN(parsed.getTime())) return '—'
|
||||
return parsed.toLocaleString('ru-RU')
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1 @@
|
||||
export { default as OperatorOwnWarehousePage } from './OperatorOwnWarehousePage.vue';
|
||||
@@ -0,0 +1,41 @@
|
||||
import type {
|
||||
IProcessInfoHandler,
|
||||
ProcessInfoComponent,
|
||||
ProcessInfoHandlersRegistry,
|
||||
} from '../types/process-info-factory'
|
||||
|
||||
/**
|
||||
* Фабрика расширений для столбца «Содержание процесса» на столе бухгалтера.
|
||||
* Каждое прикладное расширение (marketplace, capital, registrator, …)
|
||||
* регистрирует один Vue-компонент на каждый известный ему process_type.
|
||||
* Сам стол бухгалтера остаётся source-of-truth по проводкам, кошелькам и
|
||||
* документам — дополнительный widget показывает только бизнес-описание
|
||||
* операции (кто заказчик, кто поставщик, состав, deep-link на стол расширения).
|
||||
*/
|
||||
class ProcessInfoFactory {
|
||||
private handlers: ProcessInfoHandlersRegistry = {}
|
||||
|
||||
registerHandler(processType: string, handler: IProcessInfoHandler): void {
|
||||
this.handlers[processType] = handler
|
||||
}
|
||||
|
||||
getInfoComponent(processType: string): ProcessInfoComponent | undefined {
|
||||
return this.handlers[processType]?.infoComponent
|
||||
}
|
||||
|
||||
hasHandler(processType: string): boolean {
|
||||
return processType in this.handlers
|
||||
}
|
||||
|
||||
getRegisteredTypes(): string[] {
|
||||
return Object.keys(this.handlers)
|
||||
}
|
||||
}
|
||||
|
||||
export const processInfoFactory = new ProcessInfoFactory()
|
||||
export { ProcessInfoFactory }
|
||||
export type {
|
||||
IProcessInfoHandler,
|
||||
ProcessInfoComponent,
|
||||
ProcessInfoHandlersRegistry,
|
||||
} from '../types/process-info-factory'
|
||||
@@ -0,0 +1,15 @@
|
||||
import type { Component } from 'vue'
|
||||
|
||||
export interface IProcessInfoProps {
|
||||
processHash: string
|
||||
processType: string
|
||||
coopname: string
|
||||
}
|
||||
|
||||
export type ProcessInfoComponent = Component<IProcessInfoProps>
|
||||
|
||||
export interface IProcessInfoHandler {
|
||||
infoComponent: ProcessInfoComponent
|
||||
}
|
||||
|
||||
export type ProcessInfoHandlersRegistry = Record<string, IProcessInfoHandler>
|
||||
+87
@@ -0,0 +1,87 @@
|
||||
<template lang="pug">
|
||||
.process-return-info
|
||||
div(v-if='loading')
|
||||
q-spinner(size='sm')
|
||||
span.q-ml-sm.text-grey-7 Загрузка содержания заявления…
|
||||
div(v-else-if='snapshot')
|
||||
.row.q-col-gutter-md
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Тип процесса
|
||||
.text-body2.text-weight-medium Гарантийный возврат имущества
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Кооперативный участок (КУ)
|
||||
.text-body2 {{ field('braname') || '—' }}
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Заказчик
|
||||
.text-body2.font-monospace {{ field('orderer') || field('orderer_account') || '—' }}
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Состояние заявления
|
||||
.text-body2 {{ field('status') || '—' }}
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Исходный заказ
|
||||
.text-body2.font-monospace {{ shortHash(field('order_hash') || field('parent_order_hash')) }}
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Причина обращения
|
||||
.text-body2 {{ field('reason') || '—' }}
|
||||
.row.q-mt-md
|
||||
q-btn(
|
||||
flat
|
||||
no-caps
|
||||
color='primary'
|
||||
icon='fa-solid fa-up-right-from-square'
|
||||
label='Открыть заявление на столе ПВЗ'
|
||||
:to='deepLink'
|
||||
)
|
||||
div(v-else)
|
||||
.text-caption.text-grey-7 Содержание заявления ещё не доступно.
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed, onMounted, ref } from 'vue'
|
||||
import { useProcessStore, type IProcessSnapshot } from 'src/entities/Process'
|
||||
|
||||
interface Props {
|
||||
processHash: string
|
||||
processType: string
|
||||
coopname: string
|
||||
}
|
||||
const props = defineProps<Props>()
|
||||
|
||||
const processStore = useProcessStore()
|
||||
const loading = ref(true)
|
||||
const snapshot = ref<IProcessSnapshot | null>(null)
|
||||
|
||||
function field(name: string): string {
|
||||
const v = snapshot.value?.[name]
|
||||
return typeof v === 'string' ? v : v != null ? String(v) : ''
|
||||
}
|
||||
|
||||
function shortHash(v: string): string {
|
||||
if (!v) return '—'
|
||||
return v.length > 16 ? `${v.slice(0, 8)}…${v.slice(-4)}` : v
|
||||
}
|
||||
|
||||
const deepLink = computed(() => ({
|
||||
name: 'marketplace-pvz-returns',
|
||||
params: { coopname: props.coopname },
|
||||
query: { process_hash: props.processHash },
|
||||
}))
|
||||
|
||||
onMounted(async () => {
|
||||
try {
|
||||
snapshot.value = await processStore.loadLatestSnapshot({
|
||||
coopname: props.coopname,
|
||||
hash: props.processHash,
|
||||
})
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.font-monospace {
|
||||
font-family: 'JetBrains Mono', 'Courier New', monospace;
|
||||
letter-spacing: 0.03em;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1 @@
|
||||
export { default as ProcessReturnInfoWidget } from './ProcessReturnInfoWidget.vue'
|
||||
+82
@@ -0,0 +1,82 @@
|
||||
<template lang="pug">
|
||||
.process-supply-info
|
||||
div(v-if='loading')
|
||||
q-spinner(size='sm')
|
||||
span.q-ml-sm.text-grey-7 Загрузка содержания заказа…
|
||||
div(v-else-if='snapshot')
|
||||
.row.q-col-gutter-md
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Тип процесса
|
||||
.text-body2.text-weight-medium Поставка имущества кооперативу
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Кооперативный участок (КУ)
|
||||
.text-body2 {{ field('braname') || '—' }}
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Заказчик
|
||||
.text-body2.font-monospace {{ field('orderer') || field('orderer_account') || '—' }}
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Поставщик
|
||||
.text-body2.font-monospace {{ field('offerer') || field('offerer_account') || '—' }}
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Состояние заказа
|
||||
.text-body2 {{ field('status') || '—' }}
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Единиц в заказе
|
||||
.text-body2 {{ field('units_total') || field('units') || '—' }}
|
||||
.row.q-mt-md
|
||||
q-btn(
|
||||
flat
|
||||
no-caps
|
||||
color='primary'
|
||||
icon='fa-solid fa-up-right-from-square'
|
||||
label='Открыть заказ на столе ПВЗ'
|
||||
:to='deepLink'
|
||||
)
|
||||
div(v-else)
|
||||
.text-caption.text-grey-7 Содержание заказа ещё не доступно.
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed, onMounted, ref } from 'vue'
|
||||
import { useProcessStore, type IProcessSnapshot } from 'src/entities/Process'
|
||||
|
||||
interface Props {
|
||||
processHash: string
|
||||
processType: string
|
||||
coopname: string
|
||||
}
|
||||
const props = defineProps<Props>()
|
||||
|
||||
const processStore = useProcessStore()
|
||||
const loading = ref(true)
|
||||
const snapshot = ref<IProcessSnapshot | null>(null)
|
||||
|
||||
function field(name: string): string {
|
||||
const v = snapshot.value?.[name]
|
||||
return typeof v === 'string' ? v : v != null ? String(v) : ''
|
||||
}
|
||||
|
||||
const deepLink = computed(() => ({
|
||||
name: 'marketplace-pvz-issuance',
|
||||
params: { coopname: props.coopname },
|
||||
query: { process_hash: props.processHash },
|
||||
}))
|
||||
|
||||
onMounted(async () => {
|
||||
try {
|
||||
snapshot.value = await processStore.loadLatestSnapshot({
|
||||
coopname: props.coopname,
|
||||
hash: props.processHash,
|
||||
})
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.font-monospace {
|
||||
font-family: 'JetBrains Mono', 'Courier New', monospace;
|
||||
letter-spacing: 0.03em;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1 @@
|
||||
export { default as ProcessSupplyInfoWidget } from './ProcessSupplyInfoWidget.vue'
|
||||
+96
@@ -0,0 +1,96 @@
|
||||
<template lang="pug">
|
||||
.process-writeoff-info
|
||||
div(v-if='loading')
|
||||
q-spinner(size='sm')
|
||||
span.q-ml-sm.text-grey-7 Загрузка проекта решения…
|
||||
div(v-else-if='snapshot')
|
||||
.row.q-col-gutter-md
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Тип процесса
|
||||
.text-body2.text-weight-medium Списание скоропорта
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Источник проекта
|
||||
.text-body2 {{ triggerLabel }}
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Состояние решения
|
||||
.text-body2 {{ field('status') || '—' }}
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Расчётный цикл начат
|
||||
.text-body2 {{ formatDate(field('cycle_started_at')) }}
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Итоговая сумма
|
||||
.text-body2.font-monospace {{ field('total_amount') || '—' }}
|
||||
.col-12.col-sm-6
|
||||
.text-caption.text-grey-7 Решение совета
|
||||
.text-body2 {{ field('decision_id') || 'не зарегистрировано' }}
|
||||
.row.q-mt-md
|
||||
q-btn(
|
||||
flat
|
||||
no-caps
|
||||
color='primary'
|
||||
icon='fa-solid fa-up-right-from-square'
|
||||
label='Открыть проект на столе списания скоропорта'
|
||||
:to='deepLink'
|
||||
)
|
||||
div(v-else)
|
||||
.text-caption.text-grey-7 Содержание проекта ещё не доступно.
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed, onMounted, ref } from 'vue'
|
||||
import { useProcessStore, type IProcessSnapshot } from 'src/entities/Process'
|
||||
|
||||
interface Props {
|
||||
processHash: string
|
||||
processType: string
|
||||
coopname: string
|
||||
}
|
||||
const props = defineProps<Props>()
|
||||
|
||||
const processStore = useProcessStore()
|
||||
const loading = ref(true)
|
||||
const snapshot = ref<IProcessSnapshot | null>(null)
|
||||
|
||||
function field(name: string): string {
|
||||
const v = snapshot.value?.[name]
|
||||
return typeof v === 'string' ? v : v != null ? String(v) : ''
|
||||
}
|
||||
|
||||
const triggerLabel = computed(() => {
|
||||
const v = field('trigger')
|
||||
if (v === 'cron') return 'Автоматический (ежемесячный)'
|
||||
if (v === 'manual') return 'Ручной (по инициативе председателя)'
|
||||
return '—'
|
||||
})
|
||||
|
||||
function formatDate(value: string): string {
|
||||
if (!value) return '—'
|
||||
const d = new Date(value)
|
||||
if (Number.isNaN(d.getTime())) return value
|
||||
return d.toLocaleDateString('ru-RU')
|
||||
}
|
||||
|
||||
const deepLink = computed(() => ({
|
||||
name: 'marketplace-writeoffs',
|
||||
params: { coopname: props.coopname },
|
||||
query: { process_hash: props.processHash },
|
||||
}))
|
||||
|
||||
onMounted(async () => {
|
||||
try {
|
||||
snapshot.value = await processStore.loadLatestSnapshot({
|
||||
coopname: props.coopname,
|
||||
hash: props.processHash,
|
||||
})
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.font-monospace {
|
||||
font-family: 'JetBrains Mono', 'Courier New', monospace;
|
||||
letter-spacing: 0.03em;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1 @@
|
||||
export { default as ProcessWriteoffInfoWidget } from './ProcessWriteoffInfoWidget.vue'
|
||||
@@ -18,6 +18,7 @@ export * as Notification from './notification'
|
||||
export * as Onboarding from './onboarding'
|
||||
export * as OneCoop from './onecoop'
|
||||
export * as PaymentMethods from './paymentMethods'
|
||||
export * as Processes from './processes'
|
||||
export * as Registration from './registration'
|
||||
export * as Reports from './reports'
|
||||
export * as Search from './search'
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
import { processViewSelector } from '../../selectors/processes/processViewSelector'
|
||||
import { $, type GraphQLTypes, type InputType, Selector } from '../../zeus/index'
|
||||
|
||||
export const name = 'process'
|
||||
|
||||
export const query = Selector('Query')({
|
||||
[name]: [
|
||||
{ coopname: $('coopname', 'String!'), hash: $('hash', 'String!') },
|
||||
processViewSelector,
|
||||
],
|
||||
})
|
||||
|
||||
export interface IInput {
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
[key: string]: unknown
|
||||
|
||||
coopname: string
|
||||
hash: string
|
||||
}
|
||||
|
||||
export type IOutput = InputType<GraphQLTypes['Query'], typeof query>
|
||||
@@ -0,0 +1,4 @@
|
||||
/** Стандартный core ProcessRegistry: получение одного процесса по process_hash */
|
||||
export * as GetProcess from './getProcess'
|
||||
/** Стандартный core ProcessRegistry: листинг процессов с фильтрами и пагинацией */
|
||||
export * as ListProcesses from './listProcesses'
|
||||
@@ -0,0 +1,26 @@
|
||||
import { processSummaryPaginationSelector } from '../../selectors/processes/processSummarySelector'
|
||||
import { $, type GraphQLTypes, type InputType, type ModelTypes, Selector } from '../../zeus/index'
|
||||
|
||||
export const name = 'processes'
|
||||
|
||||
export const query = Selector('Query')({
|
||||
[name]: [
|
||||
{
|
||||
filter: $('filter', 'ProcessesFilter!'),
|
||||
pagination: $('pagination', 'PaginationInput!'),
|
||||
},
|
||||
processSummaryPaginationSelector,
|
||||
],
|
||||
})
|
||||
|
||||
export interface IInput {
|
||||
/**
|
||||
* @private
|
||||
*/
|
||||
[key: string]: unknown
|
||||
|
||||
filter: ModelTypes['ProcessesFilter']
|
||||
pagination: ModelTypes['PaginationInput']
|
||||
}
|
||||
|
||||
export type IOutput = InputType<GraphQLTypes['Query'], typeof query>
|
||||
@@ -0,0 +1,23 @@
|
||||
import { Selector, type ValueTypes } from '../../zeus/index'
|
||||
import type { MakeAllFieldsRequired } from '../../utils/MakeAllFieldsRequired'
|
||||
|
||||
const rawProcessSummarySelector = {
|
||||
coopname: true,
|
||||
firstSeenAt: true,
|
||||
lastSeenAt: true,
|
||||
processHash: true,
|
||||
processType: true,
|
||||
username: true,
|
||||
}
|
||||
|
||||
const _validateSummary: MakeAllFieldsRequired<ValueTypes['ProcessSummary']> =
|
||||
rawProcessSummarySelector
|
||||
|
||||
export const processSummarySelector = Selector('ProcessSummary')(rawProcessSummarySelector)
|
||||
|
||||
export const processSummaryPaginationSelector = Selector('ProcessSummaryPaginationResult')({
|
||||
currentPage: true,
|
||||
totalCount: true,
|
||||
totalPages: true,
|
||||
items: rawProcessSummarySelector,
|
||||
})
|
||||
@@ -0,0 +1,64 @@
|
||||
import { Selector, type ValueTypes } from '../../zeus/index'
|
||||
import type { MakeAllFieldsRequired } from '../../utils/MakeAllFieldsRequired'
|
||||
|
||||
const rawActionSelector = {
|
||||
id: true,
|
||||
account: true,
|
||||
name: true,
|
||||
data: true,
|
||||
block_num: true,
|
||||
block_id: true,
|
||||
global_sequence: true,
|
||||
transaction_id: true,
|
||||
created_at: true,
|
||||
}
|
||||
|
||||
const _validateAction: MakeAllFieldsRequired<ValueTypes['ProcessAction']> = rawActionSelector
|
||||
|
||||
const rawDeltaSelector = {
|
||||
id: true,
|
||||
code: true,
|
||||
scope: true,
|
||||
table: true,
|
||||
primary_key: true,
|
||||
present: true,
|
||||
value: true,
|
||||
block_num: true,
|
||||
created_at: true,
|
||||
}
|
||||
|
||||
const _validateDelta: MakeAllFieldsRequired<ValueTypes['ProcessDelta']> = rawDeltaSelector
|
||||
|
||||
const rawDocumentSourceSelector = {
|
||||
code: true,
|
||||
table: true,
|
||||
field: true,
|
||||
primary_key: true,
|
||||
}
|
||||
|
||||
const _validateDocSource: MakeAllFieldsRequired<ValueTypes['ProcessDocumentSource']> =
|
||||
rawDocumentSourceSelector
|
||||
|
||||
const rawDocumentSelector = {
|
||||
hash: true,
|
||||
source: rawDocumentSourceSelector,
|
||||
document: true,
|
||||
raw: true,
|
||||
}
|
||||
|
||||
const _validateDoc: MakeAllFieldsRequired<ValueTypes['ProcessDocument']> = rawDocumentSelector
|
||||
|
||||
const rawProcessViewSelector = {
|
||||
process_type: true,
|
||||
process_hash: true,
|
||||
coopname: true,
|
||||
first_seen_at: true,
|
||||
last_seen_at: true,
|
||||
actions: rawActionSelector,
|
||||
delta_history: rawDeltaSelector,
|
||||
documents: rawDocumentSelector,
|
||||
}
|
||||
|
||||
const _validateView: MakeAllFieldsRequired<ValueTypes['ProcessView']> = rawProcessViewSelector
|
||||
|
||||
export const processViewSelector = Selector('ProcessView')(rawProcessViewSelector)
|
||||
@@ -686,6 +686,9 @@ export const AllTypesProps: Record<string,any> = {
|
||||
MarketplaceCreateShipmentInput:{
|
||||
groups:"MarketplaceShipmentGroupInput"
|
||||
},
|
||||
MarketplaceCreateWriteoffDraftInput:{
|
||||
items:"MarketplaceWriteoffItemInput"
|
||||
},
|
||||
MarketplaceDeclineConsolidatedRequestInput:{
|
||||
|
||||
},
|
||||
@@ -752,6 +755,9 @@ export const AllTypesProps: Record<string,any> = {
|
||||
MarketplaceListShipmentsInput:{
|
||||
statuses:"MarketplaceShipmentStatus"
|
||||
},
|
||||
MarketplaceListWriteoffProposalsInput:{
|
||||
statuses:"MarketplaceWriteoffProposalStatus"
|
||||
},
|
||||
MarketplaceOpenIssuanceInput:{
|
||||
signed_document:"MarketplaceIssueActSignedDocumentInput"
|
||||
},
|
||||
@@ -803,14 +809,28 @@ export const AllTypesProps: Record<string,any> = {
|
||||
MarketplaceSignAplReceptionInput:{
|
||||
signed_documents:"MarketplaceAplReceptionSignedDocumentInput"
|
||||
},
|
||||
MarketplaceSubmitWriteoffDraftInput:{
|
||||
signed_statement:"SignedDigitalDocumentInput"
|
||||
},
|
||||
MarketplaceTriggerOpenSubscriptionInput:{
|
||||
|
||||
},
|
||||
MarketplaceUpdateOfferInput:{
|
||||
barcode_strategy:"MarketplaceBarcodeStrategy"
|
||||
},
|
||||
MarketplaceUpdateWriteoffDraftInput:{
|
||||
items:"MarketplaceWriteoffItemInput"
|
||||
},
|
||||
MarketplaceWithdrawOfferInput:{
|
||||
|
||||
},
|
||||
MarketplaceWriteoffItemInput:{
|
||||
|
||||
},
|
||||
MarketplaceWriteoffProposalStatus: "enum" as const,
|
||||
MarketplaceWriteoffProposalTrigger: "enum" as const,
|
||||
MarketplaceWriteoffStatementSignablePayloadInput:{
|
||||
|
||||
},
|
||||
MoveCapitalIssueToComponentInput:{
|
||||
|
||||
@@ -1294,6 +1314,9 @@ export const AllTypesProps: Record<string,any> = {
|
||||
},
|
||||
marketplaceCancelOrder:{
|
||||
input:"MarketplaceCancelOrderInput"
|
||||
},
|
||||
marketplaceCancelWriteoffDraft:{
|
||||
|
||||
},
|
||||
marketplaceCreateAplReception:{
|
||||
data:"MarketplaceCreateAplReceptionInput"
|
||||
@@ -1313,6 +1336,9 @@ export const AllTypesProps: Record<string,any> = {
|
||||
marketplaceCreateShipment:{
|
||||
data:"MarketplaceCreateShipmentInput"
|
||||
},
|
||||
marketplaceCreateWriteoffDraft:{
|
||||
data:"MarketplaceCreateWriteoffDraftInput"
|
||||
},
|
||||
marketplaceDeclineConsolidatedRequest:{
|
||||
input:"MarketplaceDeclineConsolidatedRequestInput"
|
||||
},
|
||||
@@ -1367,12 +1393,18 @@ export const AllTypesProps: Record<string,any> = {
|
||||
marketplaceSignAplReceptionAsSupplier:{
|
||||
data:"MarketplaceSignAplReceptionInput"
|
||||
},
|
||||
marketplaceSubmitWriteoffDraft:{
|
||||
data:"MarketplaceSubmitWriteoffDraftInput"
|
||||
},
|
||||
marketplaceTriggerOpenSubscription:{
|
||||
input:"MarketplaceTriggerOpenSubscriptionInput"
|
||||
},
|
||||
marketplaceUpdateOffer:{
|
||||
input:"MarketplaceUpdateOfferInput"
|
||||
},
|
||||
marketplaceUpdateWriteoffDraft:{
|
||||
data:"MarketplaceUpdateWriteoffDraftInput"
|
||||
},
|
||||
marketplaceWithdrawOffer:{
|
||||
input:"MarketplaceWithdrawOfferInput"
|
||||
},
|
||||
@@ -1951,6 +1983,10 @@ export const AllTypesProps: Record<string,any> = {
|
||||
input:"MarketplaceListOrdersInput",
|
||||
options:"PaginationInput"
|
||||
},
|
||||
marketplaceListWriteoffProposals:{
|
||||
data:"MarketplaceListWriteoffProposalsInput",
|
||||
options:"PaginationInput"
|
||||
},
|
||||
marketplaceRequiredAttributes:{
|
||||
data:"GetRequiredAttributesInput"
|
||||
},
|
||||
@@ -1972,6 +2008,12 @@ export const AllTypesProps: Record<string,any> = {
|
||||
marketplaceValidateAttributeValues:{
|
||||
input:"ValidateAttributeValuesInput"
|
||||
},
|
||||
marketplaceWriteoffProposal:{
|
||||
|
||||
},
|
||||
marketplaceWriteoffStatementSignablePayload:{
|
||||
data:"MarketplaceWriteoffStatementSignablePayloadInput"
|
||||
},
|
||||
onecoopGetDocuments:{
|
||||
data:"GetOneCoopDocumentsInput"
|
||||
},
|
||||
@@ -4337,6 +4379,41 @@ export const ReturnTypes: Record<string,any> = {
|
||||
member_account:"String",
|
||||
role:"String"
|
||||
},
|
||||
MarketplaceWriteoffDecisionEntry:{
|
||||
action:"String",
|
||||
actor:"String",
|
||||
at:"String"
|
||||
},
|
||||
MarketplaceWriteoffProposal:{
|
||||
authorized_at:"String",
|
||||
coopname:"String",
|
||||
created_at:"String",
|
||||
cycle_started_at:"String",
|
||||
decided_by_account:"String",
|
||||
decision_id:"Int",
|
||||
decision_log:"MarketplaceWriteoffDecisionEntry",
|
||||
executed_at:"String",
|
||||
id:"String",
|
||||
items:"MarketplaceWriteoffProposalItem",
|
||||
proposal_hash:"String",
|
||||
proposed_by_account:"String",
|
||||
reject_reason:"String",
|
||||
rejected_at:"String",
|
||||
status:"MarketplaceWriteoffProposalStatus",
|
||||
submitted_at:"String",
|
||||
total_amount:"String",
|
||||
trigger:"MarketplaceWriteoffProposalTrigger",
|
||||
updated_at:"String"
|
||||
},
|
||||
MarketplaceWriteoffProposalItem:{
|
||||
amount:"String",
|
||||
asset_title:"String",
|
||||
braname:"String",
|
||||
executed:"Boolean",
|
||||
inventory_id:"String",
|
||||
quantity:"String",
|
||||
reason:"String"
|
||||
},
|
||||
MatrixAccountStatusResponseDTO:{
|
||||
hasAccount:"Boolean",
|
||||
iframeUrl:"String",
|
||||
@@ -4592,6 +4669,7 @@ export const ReturnTypes: Record<string,any> = {
|
||||
marketplaceApproveOffer:"MarketplaceOffer",
|
||||
marketplaceApproveReturnVisit:"MarketplaceReturnClaimResult",
|
||||
marketplaceCancelOrder:"MarketplaceCancelOrderResult",
|
||||
marketplaceCancelWriteoffDraft:"Boolean",
|
||||
marketplaceClearAvailableCategories:"Boolean",
|
||||
marketplaceCreateAplReception:"MarketplaceAplReceptionResult",
|
||||
marketplaceCreateOffer:"MarketplaceOffer",
|
||||
@@ -4599,6 +4677,7 @@ export const ReturnTypes: Record<string,any> = {
|
||||
marketplaceCreateRequest:"MarketplaceRequest",
|
||||
marketplaceCreateReturnClaim:"MarketplaceReturnClaimResult",
|
||||
marketplaceCreateShipment:"MarketplaceCreateShipmentResult",
|
||||
marketplaceCreateWriteoffDraft:"MarketplaceWriteoffProposal",
|
||||
marketplaceDeclineConsolidatedRequest:"MarketplaceConsolidatedRequestActionResult",
|
||||
marketplaceDeclineIndividualOrder:"MarketplaceSupplierOrderActionResult",
|
||||
marketplaceDeclineOrderFromOpenPool:"MarketplaceSupplierOrderActionResult",
|
||||
@@ -4617,8 +4696,10 @@ export const ReturnTypes: Record<string,any> = {
|
||||
marketplaceSetKUStatus:"MarketplaceKUDetails",
|
||||
marketplaceSignAplReceptionAsChairman:"MarketplaceAplReceptionResult",
|
||||
marketplaceSignAplReceptionAsSupplier:"MarketplaceAplReceptionResult",
|
||||
marketplaceSubmitWriteoffDraft:"MarketplaceWriteoffProposal",
|
||||
marketplaceTriggerOpenSubscription:"MarketplaceConsolidatedRequest",
|
||||
marketplaceUpdateOffer:"MarketplaceOffer",
|
||||
marketplaceUpdateWriteoffDraft:"MarketplaceWriteoffProposal",
|
||||
marketplaceWithdrawOffer:"MarketplaceOffer",
|
||||
notifyOnAnnualGeneralMeet:"MeetAggregate",
|
||||
processConvertToAxonStatement:"Boolean",
|
||||
@@ -4844,6 +4925,12 @@ export const ReturnTypes: Record<string,any> = {
|
||||
totalCount:"Int",
|
||||
totalPages:"Int"
|
||||
},
|
||||
PaginatedMarketplaceWriteoffProposals:{
|
||||
currentPage:"Int",
|
||||
items:"MarketplaceWriteoffProposal",
|
||||
totalCount:"Int",
|
||||
totalPages:"Int"
|
||||
},
|
||||
ParticipantAccount:{
|
||||
braname:"String",
|
||||
created_at:"DateTime",
|
||||
@@ -5246,8 +5333,10 @@ export const ReturnTypes: Record<string,any> = {
|
||||
marketplaceListShipments:"MarketplaceShipment",
|
||||
marketplaceListSupplierOrders:"MarketplaceOrderPaginationResult",
|
||||
marketplaceListWhitelist:"MarketplaceWhitelistEntry",
|
||||
marketplaceListWriteoffProposals:"PaginatedMarketplaceWriteoffProposals",
|
||||
marketplaceMemberWallet:"MarketplaceMemberWallet",
|
||||
marketplaceOnboardingState:"MarketplaceOnboardingState",
|
||||
marketplaceOpenWriteoffDraft:"MarketplaceWriteoffProposal",
|
||||
marketplaceRegistrationOfferStatus:"MarketplaceRegistrationOfferStatus",
|
||||
marketplaceRequiredAttributes:"MarketplaceAttribute",
|
||||
marketplaceReturnClaim:"MarketplaceReturnClaim",
|
||||
@@ -5257,6 +5346,8 @@ export const ReturnTypes: Record<string,any> = {
|
||||
marketplaceSearchRequests:"MarketplaceRequest",
|
||||
marketplaceValidateAttributeValues:"MarketplaceAttributeValidation",
|
||||
marketplaceWhoAmI:"MarketplaceCurrentMember",
|
||||
marketplaceWriteoffProposal:"MarketplaceWriteoffProposal",
|
||||
marketplaceWriteoffStatementSignablePayload:"GeneratedDocument",
|
||||
onecoopGetDocuments:"OneCoopDocumentsResponse",
|
||||
process:"ProcessView",
|
||||
processes:"ProcessSummaryPaginationResult",
|
||||
|
||||
@@ -6525,6 +6525,11 @@ export type ValueTypes = {
|
||||
__typename?: boolean | `@${string}`,
|
||||
['...on MarketplaceCreateShipmentResult']?: Omit<ValueTypes["MarketplaceCreateShipmentResult"], "...on MarketplaceCreateShipmentResult">
|
||||
}>;
|
||||
["MarketplaceCreateWriteoffDraftInput"]: {
|
||||
/** Начало расчётного цикла, если отличается от текущего момента. */
|
||||
cycle_started_at?: string | undefined | null | Variable<any, string>,
|
||||
items: Array<ValueTypes["MarketplaceWriteoffItemInput"]> | Variable<any, string>
|
||||
};
|
||||
["MarketplaceCurrentMember"]: AliasType<{
|
||||
core_roles?:boolean | `@${string}`,
|
||||
marketplace_roles?:boolean | `@${string}`,
|
||||
@@ -6839,6 +6844,9 @@ export type ValueTypes = {
|
||||
cycle_id?: ValueTypes["ID"] | undefined | null | Variable<any, string>,
|
||||
/** Фильтр по статусам партий. */
|
||||
statuses?: Array<ValueTypes["MarketplaceShipmentStatus"]> | undefined | null | Variable<any, string>
|
||||
};
|
||||
["MarketplaceListWriteoffProposalsInput"]: {
|
||||
statuses?: Array<ValueTypes["MarketplaceWriteoffProposalStatus"]> | undefined | null | Variable<any, string>
|
||||
};
|
||||
["MarketplaceMemberWallet"]: AliasType<{
|
||||
coopname?:boolean | `@${string}`,
|
||||
@@ -7561,6 +7569,11 @@ export type ValueTypes = {
|
||||
apl_reception_id: ValueTypes["ID"] | Variable<any, string>,
|
||||
/** Подписанные клиентом акты приёмки — один документ на каждый Order группы. Backend верифицирует подпись и отправляет on-chain signsupp/signchair с этим документом. */
|
||||
signed_documents: Array<ValueTypes["MarketplaceAplReceptionSignedDocumentInput"]> | Variable<any, string>
|
||||
};
|
||||
["MarketplaceSubmitWriteoffDraftInput"]: {
|
||||
draft_id: string | Variable<any, string>,
|
||||
/** Подписанное председателем Заявление о списании скоропорта (registry_id=1106). */
|
||||
signed_statement: ValueTypes["SignedDigitalDocumentInput"] | Variable<any, string>
|
||||
};
|
||||
/** Результат индивидуального приёма или отклонения заказа поставщиком. */
|
||||
["MarketplaceSupplierOrderActionResult"]: AliasType<{
|
||||
@@ -7592,6 +7605,10 @@ export type ValueTypes = {
|
||||
unit_of_measure?: string | undefined | null | Variable<any, string>,
|
||||
unlimited_flag?: boolean | undefined | null | Variable<any, string>,
|
||||
warranty_days?: number | undefined | null | Variable<any, string>
|
||||
};
|
||||
["MarketplaceUpdateWriteoffDraftInput"]: {
|
||||
id: string | Variable<any, string>,
|
||||
items: Array<ValueTypes["MarketplaceWriteoffItemInput"]> | Variable<any, string>
|
||||
};
|
||||
["MarketplaceVitrine"]: AliasType<{
|
||||
/** eosio::name кооператива-владельца витрины */
|
||||
@@ -7642,6 +7659,76 @@ export type ValueTypes = {
|
||||
}>;
|
||||
["MarketplaceWithdrawOfferInput"]: {
|
||||
id: string | Variable<any, string>
|
||||
};
|
||||
["MarketplaceWriteoffDecisionEntry"]: AliasType<{
|
||||
action?:boolean | `@${string}`,
|
||||
actor?:boolean | `@${string}`,
|
||||
at?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`,
|
||||
['...on MarketplaceWriteoffDecisionEntry']?: Omit<ValueTypes["MarketplaceWriteoffDecisionEntry"], "...on MarketplaceWriteoffDecisionEntry">
|
||||
}>;
|
||||
["MarketplaceWriteoffItemInput"]: {
|
||||
/** Сумма списания в формате числа с 4 знаками после запятой. */
|
||||
amount: string | Variable<any, string>,
|
||||
asset_title: string | Variable<any, string>,
|
||||
braname: string | Variable<any, string>,
|
||||
inventory_id?: string | undefined | null | Variable<any, string>,
|
||||
quantity: string | Variable<any, string>,
|
||||
reason: string | Variable<any, string>
|
||||
};
|
||||
["MarketplaceWriteoffProposal"]: AliasType<{
|
||||
authorized_at?:boolean | `@${string}`,
|
||||
coopname?:boolean | `@${string}`,
|
||||
created_at?:boolean | `@${string}`,
|
||||
cycle_started_at?:boolean | `@${string}`,
|
||||
/** Аккаунт, принявший финальное решение. */
|
||||
decided_by_account?:boolean | `@${string}`,
|
||||
decision_id?:boolean | `@${string}`,
|
||||
decision_log?:ValueTypes["MarketplaceWriteoffDecisionEntry"],
|
||||
executed_at?:boolean | `@${string}`,
|
||||
/** Идентификатор проекта в системе кооператива. */
|
||||
id?:boolean | `@${string}`,
|
||||
items?:ValueTypes["MarketplaceWriteoffProposalItem"],
|
||||
/** Канонический хеш проекта, используется как process_hash on-chain (wroffprops, soviet.decisions). */
|
||||
proposal_hash?:boolean | `@${string}`,
|
||||
/** Аккаунт инициатора проекта (председатель / админ). */
|
||||
proposed_by_account?:boolean | `@${string}`,
|
||||
/** Причина отказа совета (если REJECTED). */
|
||||
reject_reason?:boolean | `@${string}`,
|
||||
rejected_at?:boolean | `@${string}`,
|
||||
status?:boolean | `@${string}`,
|
||||
submitted_at?:boolean | `@${string}`,
|
||||
/** Σ сумм всех позиций (форматированный asset, 4 знака). */
|
||||
total_amount?:boolean | `@${string}`,
|
||||
trigger?:boolean | `@${string}`,
|
||||
updated_at?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`,
|
||||
['...on MarketplaceWriteoffProposal']?: Omit<ValueTypes["MarketplaceWriteoffProposal"], "...on MarketplaceWriteoffProposal">
|
||||
}>;
|
||||
["MarketplaceWriteoffProposalItem"]: AliasType<{
|
||||
/** Сумма списания (4 знака после запятой, валюта кооператива). */
|
||||
amount?:boolean | `@${string}`,
|
||||
/** Наименование позиции или артикул из карточки имущества. */
|
||||
asset_title?:boolean | `@${string}`,
|
||||
/** Кооперативный участок (склад) — источник позиции к списанию. */
|
||||
braname?:boolean | `@${string}`,
|
||||
/** Признак того, что позиция уже исполнена через execwroff. */
|
||||
executed?:boolean | `@${string}`,
|
||||
/** Идентификатор инвентарной позиции, если известна. */
|
||||
inventory_id?:boolean | `@${string}`,
|
||||
/** Количество единиц к списанию. */
|
||||
quantity?:boolean | `@${string}`,
|
||||
/** Причина списания (срок годности, повреждение и т.п.). */
|
||||
reason?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`,
|
||||
['...on MarketplaceWriteoffProposalItem']?: Omit<ValueTypes["MarketplaceWriteoffProposalItem"], "...on MarketplaceWriteoffProposalItem">
|
||||
}>;
|
||||
/** Состояние проекта решения совета о списании скоропорта на пути от черновика до итогового списания. */
|
||||
["MarketplaceWriteoffProposalStatus"]:MarketplaceWriteoffProposalStatus;
|
||||
/** Источник проекта списания: автоматический ежемесячный крон или ручное создание. */
|
||||
["MarketplaceWriteoffProposalTrigger"]:MarketplaceWriteoffProposalTrigger;
|
||||
["MarketplaceWriteoffStatementSignablePayloadInput"]: {
|
||||
draft_id: string | Variable<any, string>
|
||||
};
|
||||
["MatrixAccountStatusResponseDTO"]: AliasType<{
|
||||
hasAccount?:boolean | `@${string}`,
|
||||
@@ -8013,6 +8100,7 @@ marketplaceAddToWhitelist?: [{ input: ValueTypes["MarketplaceAddToWhitelistInput
|
||||
marketplaceApproveOffer?: [{ input: ValueTypes["MarketplaceApproveOfferInput"] | Variable<any, string>},ValueTypes["MarketplaceOffer"]],
|
||||
marketplaceApproveReturnVisit?: [{ data: ValueTypes["MarketplaceApproveReturnVisitInput"] | Variable<any, string>},ValueTypes["MarketplaceReturnClaimResult"]],
|
||||
marketplaceCancelOrder?: [{ input: ValueTypes["MarketplaceCancelOrderInput"] | Variable<any, string>},ValueTypes["MarketplaceCancelOrderResult"]],
|
||||
marketplaceCancelWriteoffDraft?: [{ id: string | Variable<any, string>},boolean | `@${string}`],
|
||||
/** Очистить все доступные категории (сделать доступными все)
|
||||
|
||||
Требуемые роли: chairman. */
|
||||
@@ -8023,6 +8111,7 @@ marketplaceCreateOrder?: [{ input: ValueTypes["MarketplaceCreateOrderInput"] | V
|
||||
marketplaceCreateRequest?: [{ data: ValueTypes["CreateRequestInput"] | Variable<any, string>},ValueTypes["MarketplaceRequest"]],
|
||||
marketplaceCreateReturnClaim?: [{ data: ValueTypes["MarketplaceCreateReturnClaimInput"] | Variable<any, string>},ValueTypes["MarketplaceReturnClaimResult"]],
|
||||
marketplaceCreateShipment?: [{ data: ValueTypes["MarketplaceCreateShipmentInput"] | Variable<any, string>},ValueTypes["MarketplaceCreateShipmentResult"]],
|
||||
marketplaceCreateWriteoffDraft?: [{ data: ValueTypes["MarketplaceCreateWriteoffDraftInput"] | Variable<any, string>},ValueTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceDeclineConsolidatedRequest?: [{ input: ValueTypes["MarketplaceDeclineConsolidatedRequestInput"] | Variable<any, string>},ValueTypes["MarketplaceConsolidatedRequestActionResult"]],
|
||||
marketplaceDeclineIndividualOrder?: [{ input: ValueTypes["MarketplaceDeclineIndividualOrderInput"] | Variable<any, string>},ValueTypes["MarketplaceSupplierOrderActionResult"]],
|
||||
marketplaceDeclineOrderFromOpenPool?: [{ input: ValueTypes["MarketplaceDeclineOrderFromOpenPoolInput"] | Variable<any, string>},ValueTypes["MarketplaceSupplierOrderActionResult"]],
|
||||
@@ -8041,8 +8130,10 @@ marketplaceRetryKUGeocode?: [{ coopname: string | Variable<any, string>, coreBra
|
||||
marketplaceSetKUStatus?: [{ data: ValueTypes["MarketplaceSetKUStatusInput"] | Variable<any, string>},ValueTypes["MarketplaceKUDetails"]],
|
||||
marketplaceSignAplReceptionAsChairman?: [{ data: ValueTypes["MarketplaceSignAplReceptionInput"] | Variable<any, string>},ValueTypes["MarketplaceAplReceptionResult"]],
|
||||
marketplaceSignAplReceptionAsSupplier?: [{ data: ValueTypes["MarketplaceSignAplReceptionInput"] | Variable<any, string>},ValueTypes["MarketplaceAplReceptionResult"]],
|
||||
marketplaceSubmitWriteoffDraft?: [{ data: ValueTypes["MarketplaceSubmitWriteoffDraftInput"] | Variable<any, string>},ValueTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceTriggerOpenSubscription?: [{ input: ValueTypes["MarketplaceTriggerOpenSubscriptionInput"] | Variable<any, string>},ValueTypes["MarketplaceConsolidatedRequest"]],
|
||||
marketplaceUpdateOffer?: [{ input: ValueTypes["MarketplaceUpdateOfferInput"] | Variable<any, string>},ValueTypes["MarketplaceOffer"]],
|
||||
marketplaceUpdateWriteoffDraft?: [{ data: ValueTypes["MarketplaceUpdateWriteoffDraftInput"] | Variable<any, string>},ValueTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceWithdrawOffer?: [{ input: ValueTypes["MarketplaceWithdrawOfferInput"] | Variable<any, string>},ValueTypes["MarketplaceOffer"]],
|
||||
notifyOnAnnualGeneralMeet?: [{ data: ValueTypes["NotifyOnAnnualGeneralMeetInput"] | Variable<any, string>},ValueTypes["MeetAggregate"]],
|
||||
processConvertToAxonStatement?: [{ data: ValueTypes["ProcessConvertToAxonStatementInput"] | Variable<any, string>},boolean | `@${string}`],
|
||||
@@ -8486,6 +8577,18 @@ walmoveWallets?: [{ input: ValueTypes["WalmoveInput"] | Variable<any, string>},V
|
||||
totalPages?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`,
|
||||
['...on PaginatedGatewayPaymentsPaginationResult']?: Omit<ValueTypes["PaginatedGatewayPaymentsPaginationResult"], "...on PaginatedGatewayPaymentsPaginationResult">
|
||||
}>;
|
||||
["PaginatedMarketplaceWriteoffProposals"]: AliasType<{
|
||||
/** Текущая страница */
|
||||
currentPage?:boolean | `@${string}`,
|
||||
/** Элементы текущей страницы */
|
||||
items?:ValueTypes["MarketplaceWriteoffProposal"],
|
||||
/** Общее количество элементов */
|
||||
totalCount?:boolean | `@${string}`,
|
||||
/** Общее количество страниц */
|
||||
totalPages?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`,
|
||||
['...on PaginatedMarketplaceWriteoffProposals']?: Omit<ValueTypes["PaginatedMarketplaceWriteoffProposals"], "...on PaginatedMarketplaceWriteoffProposals">
|
||||
}>;
|
||||
["PaginationInput"]: {
|
||||
/** Количество элементов на странице */
|
||||
@@ -9448,10 +9551,13 @@ marketplaceListShipments?: [{ data?: ValueTypes["MarketplaceListShipmentsInput"]
|
||||
marketplaceListSupplierOrders?: [{ input?: ValueTypes["MarketplaceListOrdersInput"] | undefined | null | Variable<any, string>, options?: ValueTypes["PaginationInput"] | undefined | null | Variable<any, string>},ValueTypes["MarketplaceOrderPaginationResult"]],
|
||||
/** Список пайщиков-поставщиков, допущенных к публикации оферт */
|
||||
marketplaceListWhitelist?:ValueTypes["MarketplaceWhitelistEntry"],
|
||||
marketplaceListWriteoffProposals?: [{ data: ValueTypes["MarketplaceListWriteoffProposalsInput"] | Variable<any, string>, options?: ValueTypes["PaginationInput"] | undefined | null | Variable<any, string>},ValueTypes["PaginatedMarketplaceWriteoffProposals"]],
|
||||
/** Кошельки пайщика, релевантные столу заказов: w.wal.share, w.wal.member, w.mkt.member */
|
||||
marketplaceMemberWallet?:ValueTypes["MarketplaceMemberWallet"],
|
||||
/** Состояние онбординга пайщика в Столе заказов: показывать ли gate или пропускать на стол */
|
||||
marketplaceOnboardingState?:ValueTypes["MarketplaceOnboardingState"],
|
||||
/** Открытый черновик проекта списания (если есть). Один на кооператив. */
|
||||
marketplaceOpenWriteoffDraft?:ValueTypes["MarketplaceWriteoffProposal"],
|
||||
/** Статус видимости оферты Стола заказов в core registration-flow (платформенный AgreementRegistry) */
|
||||
marketplaceRegistrationOfferStatus?:ValueTypes["MarketplaceRegistrationOfferStatus"],
|
||||
marketplaceRequiredAttributes?: [{ data: ValueTypes["GetRequiredAttributesInput"] | Variable<any, string>},ValueTypes["MarketplaceAttribute"]],
|
||||
@@ -9463,6 +9569,8 @@ marketplaceSearchRequests?: [{ data: ValueTypes["SearchRequestsInput"] | Variabl
|
||||
marketplaceValidateAttributeValues?: [{ input: ValueTypes["ValidateAttributeValuesInput"] | Variable<any, string>},ValueTypes["MarketplaceAttributeValidation"]],
|
||||
/** Контекст пайщика для Стола заказов: core_roles + marketplace_roles */
|
||||
marketplaceWhoAmI?:ValueTypes["MarketplaceCurrentMember"],
|
||||
marketplaceWriteoffProposal?: [{ id: string | Variable<any, string>},ValueTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceWriteoffStatementSignablePayload?: [{ data: ValueTypes["MarketplaceWriteoffStatementSignablePayloadInput"] | Variable<any, string>},ValueTypes["GeneratedDocument"]],
|
||||
onecoopGetDocuments?: [{ data: ValueTypes["GetOneCoopDocumentsInput"] | Variable<any, string>},ValueTypes["OneCoopDocumentsResponse"]],
|
||||
process?: [{ coopname: string | Variable<any, string>, hash: string | Variable<any, string>},ValueTypes["ProcessView"]],
|
||||
processes?: [{ filter: ValueTypes["ProcessesFilter"] | Variable<any, string>, pagination: ValueTypes["PaginationInput"] | Variable<any, string>},ValueTypes["ProcessSummaryPaginationResult"]],
|
||||
@@ -16325,6 +16433,11 @@ export type ResolverInputTypes = {
|
||||
shipments?:ResolverInputTypes["MarketplaceShipment"],
|
||||
__typename?: boolean | `@${string}`
|
||||
}>;
|
||||
["MarketplaceCreateWriteoffDraftInput"]: {
|
||||
/** Начало расчётного цикла, если отличается от текущего момента. */
|
||||
cycle_started_at?: string | undefined | null,
|
||||
items: Array<ResolverInputTypes["MarketplaceWriteoffItemInput"]>
|
||||
};
|
||||
["MarketplaceCurrentMember"]: AliasType<{
|
||||
core_roles?:boolean | `@${string}`,
|
||||
marketplace_roles?:boolean | `@${string}`,
|
||||
@@ -16632,6 +16745,9 @@ export type ResolverInputTypes = {
|
||||
cycle_id?: ResolverInputTypes["ID"] | undefined | null,
|
||||
/** Фильтр по статусам партий. */
|
||||
statuses?: Array<ResolverInputTypes["MarketplaceShipmentStatus"]> | undefined | null
|
||||
};
|
||||
["MarketplaceListWriteoffProposalsInput"]: {
|
||||
statuses?: Array<ResolverInputTypes["MarketplaceWriteoffProposalStatus"]> | undefined | null
|
||||
};
|
||||
["MarketplaceMemberWallet"]: AliasType<{
|
||||
coopname?:boolean | `@${string}`,
|
||||
@@ -17330,6 +17446,11 @@ export type ResolverInputTypes = {
|
||||
apl_reception_id: ResolverInputTypes["ID"],
|
||||
/** Подписанные клиентом акты приёмки — один документ на каждый Order группы. Backend верифицирует подпись и отправляет on-chain signsupp/signchair с этим документом. */
|
||||
signed_documents: Array<ResolverInputTypes["MarketplaceAplReceptionSignedDocumentInput"]>
|
||||
};
|
||||
["MarketplaceSubmitWriteoffDraftInput"]: {
|
||||
draft_id: string,
|
||||
/** Подписанное председателем Заявление о списании скоропорта (registry_id=1106). */
|
||||
signed_statement: ResolverInputTypes["SignedDigitalDocumentInput"]
|
||||
};
|
||||
/** Результат индивидуального приёма или отклонения заказа поставщиком. */
|
||||
["MarketplaceSupplierOrderActionResult"]: AliasType<{
|
||||
@@ -17360,6 +17481,10 @@ export type ResolverInputTypes = {
|
||||
unit_of_measure?: string | undefined | null,
|
||||
unlimited_flag?: boolean | undefined | null,
|
||||
warranty_days?: number | undefined | null
|
||||
};
|
||||
["MarketplaceUpdateWriteoffDraftInput"]: {
|
||||
id: string,
|
||||
items: Array<ResolverInputTypes["MarketplaceWriteoffItemInput"]>
|
||||
};
|
||||
["MarketplaceVitrine"]: AliasType<{
|
||||
/** eosio::name кооператива-владельца витрины */
|
||||
@@ -17407,6 +17532,73 @@ export type ResolverInputTypes = {
|
||||
}>;
|
||||
["MarketplaceWithdrawOfferInput"]: {
|
||||
id: string
|
||||
};
|
||||
["MarketplaceWriteoffDecisionEntry"]: AliasType<{
|
||||
action?:boolean | `@${string}`,
|
||||
actor?:boolean | `@${string}`,
|
||||
at?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`
|
||||
}>;
|
||||
["MarketplaceWriteoffItemInput"]: {
|
||||
/** Сумма списания в формате числа с 4 знаками после запятой. */
|
||||
amount: string,
|
||||
asset_title: string,
|
||||
braname: string,
|
||||
inventory_id?: string | undefined | null,
|
||||
quantity: string,
|
||||
reason: string
|
||||
};
|
||||
["MarketplaceWriteoffProposal"]: AliasType<{
|
||||
authorized_at?:boolean | `@${string}`,
|
||||
coopname?:boolean | `@${string}`,
|
||||
created_at?:boolean | `@${string}`,
|
||||
cycle_started_at?:boolean | `@${string}`,
|
||||
/** Аккаунт, принявший финальное решение. */
|
||||
decided_by_account?:boolean | `@${string}`,
|
||||
decision_id?:boolean | `@${string}`,
|
||||
decision_log?:ResolverInputTypes["MarketplaceWriteoffDecisionEntry"],
|
||||
executed_at?:boolean | `@${string}`,
|
||||
/** Идентификатор проекта в системе кооператива. */
|
||||
id?:boolean | `@${string}`,
|
||||
items?:ResolverInputTypes["MarketplaceWriteoffProposalItem"],
|
||||
/** Канонический хеш проекта, используется как process_hash on-chain (wroffprops, soviet.decisions). */
|
||||
proposal_hash?:boolean | `@${string}`,
|
||||
/** Аккаунт инициатора проекта (председатель / админ). */
|
||||
proposed_by_account?:boolean | `@${string}`,
|
||||
/** Причина отказа совета (если REJECTED). */
|
||||
reject_reason?:boolean | `@${string}`,
|
||||
rejected_at?:boolean | `@${string}`,
|
||||
status?:boolean | `@${string}`,
|
||||
submitted_at?:boolean | `@${string}`,
|
||||
/** Σ сумм всех позиций (форматированный asset, 4 знака). */
|
||||
total_amount?:boolean | `@${string}`,
|
||||
trigger?:boolean | `@${string}`,
|
||||
updated_at?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`
|
||||
}>;
|
||||
["MarketplaceWriteoffProposalItem"]: AliasType<{
|
||||
/** Сумма списания (4 знака после запятой, валюта кооператива). */
|
||||
amount?:boolean | `@${string}`,
|
||||
/** Наименование позиции или артикул из карточки имущества. */
|
||||
asset_title?:boolean | `@${string}`,
|
||||
/** Кооперативный участок (склад) — источник позиции к списанию. */
|
||||
braname?:boolean | `@${string}`,
|
||||
/** Признак того, что позиция уже исполнена через execwroff. */
|
||||
executed?:boolean | `@${string}`,
|
||||
/** Идентификатор инвентарной позиции, если известна. */
|
||||
inventory_id?:boolean | `@${string}`,
|
||||
/** Количество единиц к списанию. */
|
||||
quantity?:boolean | `@${string}`,
|
||||
/** Причина списания (срок годности, повреждение и т.п.). */
|
||||
reason?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`
|
||||
}>;
|
||||
/** Состояние проекта решения совета о списании скоропорта на пути от черновика до итогового списания. */
|
||||
["MarketplaceWriteoffProposalStatus"]:MarketplaceWriteoffProposalStatus;
|
||||
/** Источник проекта списания: автоматический ежемесячный крон или ручное создание. */
|
||||
["MarketplaceWriteoffProposalTrigger"]:MarketplaceWriteoffProposalTrigger;
|
||||
["MarketplaceWriteoffStatementSignablePayloadInput"]: {
|
||||
draft_id: string
|
||||
};
|
||||
["MatrixAccountStatusResponseDTO"]: AliasType<{
|
||||
hasAccount?:boolean | `@${string}`,
|
||||
@@ -17769,6 +17961,7 @@ marketplaceAddToWhitelist?: [{ input: ResolverInputTypes["MarketplaceAddToWhitel
|
||||
marketplaceApproveOffer?: [{ input: ResolverInputTypes["MarketplaceApproveOfferInput"]},ResolverInputTypes["MarketplaceOffer"]],
|
||||
marketplaceApproveReturnVisit?: [{ data: ResolverInputTypes["MarketplaceApproveReturnVisitInput"]},ResolverInputTypes["MarketplaceReturnClaimResult"]],
|
||||
marketplaceCancelOrder?: [{ input: ResolverInputTypes["MarketplaceCancelOrderInput"]},ResolverInputTypes["MarketplaceCancelOrderResult"]],
|
||||
marketplaceCancelWriteoffDraft?: [{ id: string},boolean | `@${string}`],
|
||||
/** Очистить все доступные категории (сделать доступными все)
|
||||
|
||||
Требуемые роли: chairman. */
|
||||
@@ -17779,6 +17972,7 @@ marketplaceCreateOrder?: [{ input: ResolverInputTypes["MarketplaceCreateOrderInp
|
||||
marketplaceCreateRequest?: [{ data: ResolverInputTypes["CreateRequestInput"]},ResolverInputTypes["MarketplaceRequest"]],
|
||||
marketplaceCreateReturnClaim?: [{ data: ResolverInputTypes["MarketplaceCreateReturnClaimInput"]},ResolverInputTypes["MarketplaceReturnClaimResult"]],
|
||||
marketplaceCreateShipment?: [{ data: ResolverInputTypes["MarketplaceCreateShipmentInput"]},ResolverInputTypes["MarketplaceCreateShipmentResult"]],
|
||||
marketplaceCreateWriteoffDraft?: [{ data: ResolverInputTypes["MarketplaceCreateWriteoffDraftInput"]},ResolverInputTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceDeclineConsolidatedRequest?: [{ input: ResolverInputTypes["MarketplaceDeclineConsolidatedRequestInput"]},ResolverInputTypes["MarketplaceConsolidatedRequestActionResult"]],
|
||||
marketplaceDeclineIndividualOrder?: [{ input: ResolverInputTypes["MarketplaceDeclineIndividualOrderInput"]},ResolverInputTypes["MarketplaceSupplierOrderActionResult"]],
|
||||
marketplaceDeclineOrderFromOpenPool?: [{ input: ResolverInputTypes["MarketplaceDeclineOrderFromOpenPoolInput"]},ResolverInputTypes["MarketplaceSupplierOrderActionResult"]],
|
||||
@@ -17797,8 +17991,10 @@ marketplaceRetryKUGeocode?: [{ coopname: string, coreBraname: string},ResolverIn
|
||||
marketplaceSetKUStatus?: [{ data: ResolverInputTypes["MarketplaceSetKUStatusInput"]},ResolverInputTypes["MarketplaceKUDetails"]],
|
||||
marketplaceSignAplReceptionAsChairman?: [{ data: ResolverInputTypes["MarketplaceSignAplReceptionInput"]},ResolverInputTypes["MarketplaceAplReceptionResult"]],
|
||||
marketplaceSignAplReceptionAsSupplier?: [{ data: ResolverInputTypes["MarketplaceSignAplReceptionInput"]},ResolverInputTypes["MarketplaceAplReceptionResult"]],
|
||||
marketplaceSubmitWriteoffDraft?: [{ data: ResolverInputTypes["MarketplaceSubmitWriteoffDraftInput"]},ResolverInputTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceTriggerOpenSubscription?: [{ input: ResolverInputTypes["MarketplaceTriggerOpenSubscriptionInput"]},ResolverInputTypes["MarketplaceConsolidatedRequest"]],
|
||||
marketplaceUpdateOffer?: [{ input: ResolverInputTypes["MarketplaceUpdateOfferInput"]},ResolverInputTypes["MarketplaceOffer"]],
|
||||
marketplaceUpdateWriteoffDraft?: [{ data: ResolverInputTypes["MarketplaceUpdateWriteoffDraftInput"]},ResolverInputTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceWithdrawOffer?: [{ input: ResolverInputTypes["MarketplaceWithdrawOfferInput"]},ResolverInputTypes["MarketplaceOffer"]],
|
||||
notifyOnAnnualGeneralMeet?: [{ data: ResolverInputTypes["NotifyOnAnnualGeneralMeetInput"]},ResolverInputTypes["MeetAggregate"]],
|
||||
processConvertToAxonStatement?: [{ data: ResolverInputTypes["ProcessConvertToAxonStatementInput"]},boolean | `@${string}`],
|
||||
@@ -18212,6 +18408,17 @@ walmoveWallets?: [{ input: ResolverInputTypes["WalmoveInput"]},ResolverInputType
|
||||
/** Общее количество страниц */
|
||||
totalPages?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`
|
||||
}>;
|
||||
["PaginatedMarketplaceWriteoffProposals"]: AliasType<{
|
||||
/** Текущая страница */
|
||||
currentPage?:boolean | `@${string}`,
|
||||
/** Элементы текущей страницы */
|
||||
items?:ResolverInputTypes["MarketplaceWriteoffProposal"],
|
||||
/** Общее количество элементов */
|
||||
totalCount?:boolean | `@${string}`,
|
||||
/** Общее количество страниц */
|
||||
totalPages?:boolean | `@${string}`,
|
||||
__typename?: boolean | `@${string}`
|
||||
}>;
|
||||
["PaginationInput"]: {
|
||||
/** Количество элементов на странице */
|
||||
@@ -19148,10 +19355,13 @@ marketplaceListShipments?: [{ data?: ResolverInputTypes["MarketplaceListShipment
|
||||
marketplaceListSupplierOrders?: [{ input?: ResolverInputTypes["MarketplaceListOrdersInput"] | undefined | null, options?: ResolverInputTypes["PaginationInput"] | undefined | null},ResolverInputTypes["MarketplaceOrderPaginationResult"]],
|
||||
/** Список пайщиков-поставщиков, допущенных к публикации оферт */
|
||||
marketplaceListWhitelist?:ResolverInputTypes["MarketplaceWhitelistEntry"],
|
||||
marketplaceListWriteoffProposals?: [{ data: ResolverInputTypes["MarketplaceListWriteoffProposalsInput"], options?: ResolverInputTypes["PaginationInput"] | undefined | null},ResolverInputTypes["PaginatedMarketplaceWriteoffProposals"]],
|
||||
/** Кошельки пайщика, релевантные столу заказов: w.wal.share, w.wal.member, w.mkt.member */
|
||||
marketplaceMemberWallet?:ResolverInputTypes["MarketplaceMemberWallet"],
|
||||
/** Состояние онбординга пайщика в Столе заказов: показывать ли gate или пропускать на стол */
|
||||
marketplaceOnboardingState?:ResolverInputTypes["MarketplaceOnboardingState"],
|
||||
/** Открытый черновик проекта списания (если есть). Один на кооператив. */
|
||||
marketplaceOpenWriteoffDraft?:ResolverInputTypes["MarketplaceWriteoffProposal"],
|
||||
/** Статус видимости оферты Стола заказов в core registration-flow (платформенный AgreementRegistry) */
|
||||
marketplaceRegistrationOfferStatus?:ResolverInputTypes["MarketplaceRegistrationOfferStatus"],
|
||||
marketplaceRequiredAttributes?: [{ data: ResolverInputTypes["GetRequiredAttributesInput"]},ResolverInputTypes["MarketplaceAttribute"]],
|
||||
@@ -19163,6 +19373,8 @@ marketplaceSearchRequests?: [{ data: ResolverInputTypes["SearchRequestsInput"]},
|
||||
marketplaceValidateAttributeValues?: [{ input: ResolverInputTypes["ValidateAttributeValuesInput"]},ResolverInputTypes["MarketplaceAttributeValidation"]],
|
||||
/** Контекст пайщика для Стола заказов: core_roles + marketplace_roles */
|
||||
marketplaceWhoAmI?:ResolverInputTypes["MarketplaceCurrentMember"],
|
||||
marketplaceWriteoffProposal?: [{ id: string},ResolverInputTypes["MarketplaceWriteoffProposal"]],
|
||||
marketplaceWriteoffStatementSignablePayload?: [{ data: ResolverInputTypes["MarketplaceWriteoffStatementSignablePayloadInput"]},ResolverInputTypes["GeneratedDocument"]],
|
||||
onecoopGetDocuments?: [{ data: ResolverInputTypes["GetOneCoopDocumentsInput"]},ResolverInputTypes["OneCoopDocumentsResponse"]],
|
||||
process?: [{ coopname: string, hash: string},ResolverInputTypes["ProcessView"]],
|
||||
processes?: [{ filter: ResolverInputTypes["ProcessesFilter"], pagination: ResolverInputTypes["PaginationInput"]},ResolverInputTypes["ProcessSummaryPaginationResult"]],
|
||||
@@ -25809,6 +26021,11 @@ export type ModelTypes = {
|
||||
["MarketplaceCreateShipmentResult"]: {
|
||||
/** Созданные партии — по одной на каждый КУ заявки. */
|
||||
shipments: Array<ModelTypes["MarketplaceShipment"]>
|
||||
};
|
||||
["MarketplaceCreateWriteoffDraftInput"]: {
|
||||
/** Начало расчётного цикла, если отличается от текущего момента. */
|
||||
cycle_started_at?: string | undefined | null,
|
||||
items: Array<ModelTypes["MarketplaceWriteoffItemInput"]>
|
||||
};
|
||||
["MarketplaceCurrentMember"]: {
|
||||
core_roles: Array<string>,
|
||||
@@ -26109,6 +26326,9 @@ export type ModelTypes = {
|
||||
cycle_id?: ModelTypes["ID"] | undefined | null,
|
||||
/** Фильтр по статусам партий. */
|
||||
statuses?: Array<ModelTypes["MarketplaceShipmentStatus"]> | undefined | null
|
||||
};
|
||||
["MarketplaceListWriteoffProposalsInput"]: {
|
||||
statuses?: Array<ModelTypes["MarketplaceWriteoffProposalStatus"]> | undefined | null
|
||||
};
|
||||
["MarketplaceMemberWallet"]: {
|
||||
coopname: string,
|
||||
@@ -26774,6 +26994,11 @@ export type ModelTypes = {
|
||||
apl_reception_id: ModelTypes["ID"],
|
||||
/** Подписанные клиентом акты приёмки — один документ на каждый Order группы. Backend верифицирует подпись и отправляет on-chain signsupp/signchair с этим документом. */
|
||||
signed_documents: Array<ModelTypes["MarketplaceAplReceptionSignedDocumentInput"]>
|
||||
};
|
||||
["MarketplaceSubmitWriteoffDraftInput"]: {
|
||||
draft_id: string,
|
||||
/** Подписанное председателем Заявление о списании скоропорта (registry_id=1106). */
|
||||
signed_statement: ModelTypes["SignedDigitalDocumentInput"]
|
||||
};
|
||||
/** Результат индивидуального приёма или отклонения заказа поставщиком. */
|
||||
["MarketplaceSupplierOrderActionResult"]: {
|
||||
@@ -26803,6 +27028,10 @@ export type ModelTypes = {
|
||||
unit_of_measure?: string | undefined | null,
|
||||
unlimited_flag?: boolean | undefined | null,
|
||||
warranty_days?: number | undefined | null
|
||||
};
|
||||
["MarketplaceUpdateWriteoffDraftInput"]: {
|
||||
id: string,
|
||||
items: Array<ModelTypes["MarketplaceWriteoffItemInput"]>
|
||||
};
|
||||
["MarketplaceVitrine"]: {
|
||||
/** eosio::name кооператива-владельца витрины */
|
||||
@@ -26847,6 +27076,68 @@ export type ModelTypes = {
|
||||
};
|
||||
["MarketplaceWithdrawOfferInput"]: {
|
||||
id: string
|
||||
};
|
||||
["MarketplaceWriteoffDecisionEntry"]: {
|
||||
action: string,
|
||||
actor: string,
|
||||
at: string
|
||||
};
|
||||
["MarketplaceWriteoffItemInput"]: {
|
||||
/** Сумма списания в формате числа с 4 знаками после запятой. */
|
||||
amount: string,
|
||||
asset_title: string,
|
||||
braname: string,
|
||||
inventory_id?: string | undefined | null,
|
||||
quantity: string,
|
||||
reason: string
|
||||
};
|
||||
["MarketplaceWriteoffProposal"]: {
|
||||
authorized_at?: string | undefined | null,
|
||||
coopname: string,
|
||||
created_at: string,
|
||||
cycle_started_at: string,
|
||||
/** Аккаунт, принявший финальное решение. */
|
||||
decided_by_account?: string | undefined | null,
|
||||
decision_id?: number | undefined | null,
|
||||
decision_log: Array<ModelTypes["MarketplaceWriteoffDecisionEntry"]>,
|
||||
executed_at?: string | undefined | null,
|
||||
/** Идентификатор проекта в системе кооператива. */
|
||||
id: string,
|
||||
items: Array<ModelTypes["MarketplaceWriteoffProposalItem"]>,
|
||||
/** Канонический хеш проекта, используется как process_hash on-chain (wroffprops, soviet.decisions). */
|
||||
proposal_hash: string,
|
||||
/** Аккаунт инициатора проекта (председатель / админ). */
|
||||
proposed_by_account?: string | undefined | null,
|
||||
/** Причина отказа совета (если REJECTED). */
|
||||
reject_reason?: string | undefined | null,
|
||||
rejected_at?: string | undefined | null,
|
||||
status: ModelTypes["MarketplaceWriteoffProposalStatus"],
|
||||
submitted_at?: string | undefined | null,
|
||||
/** Σ сумм всех позиций (форматированный asset, 4 знака). */
|
||||
total_amount: string,
|
||||
trigger: ModelTypes["MarketplaceWriteoffProposalTrigger"],
|
||||
updated_at: string
|
||||
};
|
||||
["MarketplaceWriteoffProposalItem"]: {
|
||||
/** Сумма списания (4 знака после запятой, валюта кооператива). */
|
||||
amount: string,
|
||||
/** Наименование позиции или артикул из карточки имущества. */
|
||||
asset_title: string,
|
||||
/** Кооперативный участок (склад) — источник позиции к списанию. */
|
||||
braname: string,
|
||||
/** Признак того, что позиция уже исполнена через execwroff. */
|
||||
executed: boolean,
|
||||
/** Идентификатор инвентарной позиции, если известна. */
|
||||
inventory_id?: string | undefined | null,
|
||||
/** Количество единиц к списанию. */
|
||||
quantity: string,
|
||||
/** Причина списания (срок годности, повреждение и т.п.). */
|
||||
reason: string
|
||||
};
|
||||
["MarketplaceWriteoffProposalStatus"]:MarketplaceWriteoffProposalStatus;
|
||||
["MarketplaceWriteoffProposalTrigger"]:MarketplaceWriteoffProposalTrigger;
|
||||
["MarketplaceWriteoffStatementSignablePayloadInput"]: {
|
||||
draft_id: string
|
||||
};
|
||||
["MatrixAccountStatusResponseDTO"]: {
|
||||
hasAccount: boolean,
|
||||
@@ -27604,6 +27895,8 @@ export type ModelTypes = {
|
||||
marketplaceApproveReturnVisit: ModelTypes["MarketplaceReturnClaimResult"],
|
||||
/** Отменить свой заказ до его приёма поставщиком; средства разблокируются. */
|
||||
marketplaceCancelOrder: ModelTypes["MarketplaceCancelOrderResult"],
|
||||
/** Удалить черновик. Доступно только пока проект в статусе DRAFT. */
|
||||
marketplaceCancelWriteoffDraft: boolean,
|
||||
/** Очистить все доступные категории (сделать доступными все)
|
||||
|
||||
Требуемые роли: chairman. */
|
||||
@@ -27622,6 +27915,8 @@ export type ModelTypes = {
|
||||
marketplaceCreateReturnClaim: ModelTypes["MarketplaceReturnClaimResult"],
|
||||
/** Сформировать партии поставки из акцептованной заявки: одна группа на каждый КУ-получатель. */
|
||||
marketplaceCreateShipment: ModelTypes["MarketplaceCreateShipmentResult"],
|
||||
/** Создаёт ручной черновик проекта списания. На кооператив может быть только один открытый черновик и один проект, отправленный в совет. */
|
||||
marketplaceCreateWriteoffDraft: ModelTypes["MarketplaceWriteoffProposal"],
|
||||
/** Поставщик отклоняет сводную заявку — все заказы пакета отменяются, средства разблокируются. */
|
||||
marketplaceDeclineConsolidatedRequest: ModelTypes["MarketplaceConsolidatedRequestActionResult"],
|
||||
/** Поставщик отказывается от одного индивидуального заказа; средства разблокируются. */
|
||||
@@ -27670,10 +27965,14 @@ export type ModelTypes = {
|
||||
marketplaceSignAplReceptionAsChairman: ModelTypes["MarketplaceAplReceptionResult"],
|
||||
/** Поставщик ставит первую подпись на акте приёмки (лично — Вариант А; асинхронно через push — Вариант Б). */
|
||||
marketplaceSignAplReceptionAsSupplier: ModelTypes["MarketplaceAplReceptionResult"],
|
||||
/** Отправить черновик в совет. Принимает подписанное председателем Заявление 1106. После успешного приёма выполняются propwroff и soviet::createagenda(mktwroff). */
|
||||
marketplaceSubmitWriteoffDraft: ModelTypes["MarketplaceWriteoffProposal"],
|
||||
/** Поставщик запускает поставку по предложению с открытой подпиской: формируется сводная заявка, заказы в её пуле принимаются. */
|
||||
marketplaceTriggerOpenSubscription: ModelTypes["MarketplaceConsolidatedRequest"],
|
||||
/** Поставщик правит свой Offer — статус сбрасывается в PENDING_MODERATION */
|
||||
marketplaceUpdateOffer: ModelTypes["MarketplaceOffer"],
|
||||
/** Изменить состав черновика — добавить, удалить или поправить позиции. */
|
||||
marketplaceUpdateWriteoffDraft: ModelTypes["MarketplaceWriteoffProposal"],
|
||||
/** Поставщик снимает свой Offer (статус → WITHDRAWN) */
|
||||
marketplaceWithdrawOffer: ModelTypes["MarketplaceOffer"],
|
||||
/** Уведомление о проведении общего собрания пайщиков
|
||||
@@ -28126,6 +28425,16 @@ export type ModelTypes = {
|
||||
totalCount: number,
|
||||
/** Общее количество страниц */
|
||||
totalPages: number
|
||||
};
|
||||
["PaginatedMarketplaceWriteoffProposals"]: {
|
||||
/** Текущая страница */
|
||||
currentPage: number,
|
||||
/** Элементы текущей страницы */
|
||||
items: Array<ModelTypes["MarketplaceWriteoffProposal"]>,
|
||||
/** Общее количество элементов */
|
||||
totalCount: number,
|
||||
/** Общее количество страниц */
|
||||
totalPages: number
|
||||
};
|
||||
["PaginationInput"]: {
|
||||
/** Количество элементов на странице */
|
||||
@@ -29249,10 +29558,14 @@ export type ModelTypes = {
|
||||
marketplaceListSupplierOrders: ModelTypes["MarketplaceOrderPaginationResult"],
|
||||
/** Список пайщиков-поставщиков, допущенных к публикации оферт */
|
||||
marketplaceListWhitelist: Array<ModelTypes["MarketplaceWhitelistEntry"]>,
|
||||
/** Лента всех проектов списания кооператива с фильтром по статусу. */
|
||||
marketplaceListWriteoffProposals: ModelTypes["PaginatedMarketplaceWriteoffProposals"],
|
||||
/** Кошельки пайщика, релевантные столу заказов: w.wal.share, w.wal.member, w.mkt.member */
|
||||
marketplaceMemberWallet: ModelTypes["MarketplaceMemberWallet"],
|
||||
/** Состояние онбординга пайщика в Столе заказов: показывать ли gate или пропускать на стол */
|
||||
marketplaceOnboardingState: ModelTypes["MarketplaceOnboardingState"],
|
||||
/** Открытый черновик проекта списания (если есть). Один на кооператив. */
|
||||
marketplaceOpenWriteoffDraft?: ModelTypes["MarketplaceWriteoffProposal"] | undefined | null,
|
||||
/** Статус видимости оферты Стола заказов в core registration-flow (платформенный AgreementRegistry) */
|
||||
marketplaceRegistrationOfferStatus: ModelTypes["MarketplaceRegistrationOfferStatus"],
|
||||
/** Получить обязательные атрибуты для категории и типа товара marketplace */
|
||||
@@ -29271,6 +29584,10 @@ export type ModelTypes = {
|
||||
marketplaceValidateAttributeValues: ModelTypes["MarketplaceAttributeValidation"],
|
||||
/** Контекст пайщика для Стола заказов: core_roles + marketplace_roles */
|
||||
marketplaceWhoAmI: ModelTypes["MarketplaceCurrentMember"],
|
||||
/** Детали одного проекта списания: items, decision_log, протокол. */
|
||||
marketplaceWriteoffProposal: ModelTypes["MarketplaceWriteoffProposal"],
|
||||
/** Превью Заявления о списании скоропорта (registry 1106) для подписания председателем. */
|
||||
marketplaceWriteoffStatementSignablePayload: ModelTypes["GeneratedDocument"],
|
||||
/** Получение документов кооператива для синхронизации с 1С. Требует секретный ключ в заголовке x-onecoop-secret-key. */
|
||||
onecoopGetDocuments: ModelTypes["OneCoopDocumentsResponse"],
|
||||
/** Получить полную картину процесса ledger2 по process_hash
|
||||
@@ -36186,6 +36503,11 @@ export type GraphQLTypes = {
|
||||
/** Созданные партии — по одной на каждый КУ заявки. */
|
||||
shipments: Array<GraphQLTypes["MarketplaceShipment"]>,
|
||||
['...on MarketplaceCreateShipmentResult']: Omit<GraphQLTypes["MarketplaceCreateShipmentResult"], "...on MarketplaceCreateShipmentResult">
|
||||
};
|
||||
["MarketplaceCreateWriteoffDraftInput"]: {
|
||||
/** Начало расчётного цикла, если отличается от текущего момента. */
|
||||
cycle_started_at?: string | undefined | null,
|
||||
items: Array<GraphQLTypes["MarketplaceWriteoffItemInput"]>
|
||||
};
|
||||
["MarketplaceCurrentMember"]: {
|
||||
__typename: "MarketplaceCurrentMember",
|
||||
@@ -36501,6 +36823,9 @@ export type GraphQLTypes = {
|
||||
cycle_id?: GraphQLTypes["ID"] | undefined | null,
|
||||
/** Фильтр по статусам партий. */
|
||||
statuses?: Array<GraphQLTypes["MarketplaceShipmentStatus"]> | undefined | null
|
||||
};
|
||||
["MarketplaceListWriteoffProposalsInput"]: {
|
||||
statuses?: Array<GraphQLTypes["MarketplaceWriteoffProposalStatus"]> | undefined | null
|
||||
};
|
||||
["MarketplaceMemberWallet"]: {
|
||||
__typename: "MarketplaceMemberWallet",
|
||||
@@ -37223,6 +37548,11 @@ export type GraphQLTypes = {
|
||||
apl_reception_id: GraphQLTypes["ID"],
|
||||
/** Подписанные клиентом акты приёмки — один документ на каждый Order группы. Backend верифицирует подпись и отправляет on-chain signsupp/signchair с этим документом. */
|
||||
signed_documents: Array<GraphQLTypes["MarketplaceAplReceptionSignedDocumentInput"]>
|
||||
};
|
||||
["MarketplaceSubmitWriteoffDraftInput"]: {
|
||||
draft_id: string,
|
||||
/** Подписанное председателем Заявление о списании скоропорта (registry_id=1106). */
|
||||
signed_statement: GraphQLTypes["SignedDigitalDocumentInput"]
|
||||
};
|
||||
/** Результат индивидуального приёма или отклонения заказа поставщиком. */
|
||||
["MarketplaceSupplierOrderActionResult"]: {
|
||||
@@ -37254,6 +37584,10 @@ export type GraphQLTypes = {
|
||||
unit_of_measure?: string | undefined | null,
|
||||
unlimited_flag?: boolean | undefined | null,
|
||||
warranty_days?: number | undefined | null
|
||||
};
|
||||
["MarketplaceUpdateWriteoffDraftInput"]: {
|
||||
id: string,
|
||||
items: Array<GraphQLTypes["MarketplaceWriteoffItemInput"]>
|
||||
};
|
||||
["MarketplaceVitrine"]: {
|
||||
__typename: "MarketplaceVitrine",
|
||||
@@ -37304,6 +37638,76 @@ export type GraphQLTypes = {
|
||||
};
|
||||
["MarketplaceWithdrawOfferInput"]: {
|
||||
id: string
|
||||
};
|
||||
["MarketplaceWriteoffDecisionEntry"]: {
|
||||
__typename: "MarketplaceWriteoffDecisionEntry",
|
||||
action: string,
|
||||
actor: string,
|
||||
at: string,
|
||||
['...on MarketplaceWriteoffDecisionEntry']: Omit<GraphQLTypes["MarketplaceWriteoffDecisionEntry"], "...on MarketplaceWriteoffDecisionEntry">
|
||||
};
|
||||
["MarketplaceWriteoffItemInput"]: {
|
||||
/** Сумма списания в формате числа с 4 знаками после запятой. */
|
||||
amount: string,
|
||||
asset_title: string,
|
||||
braname: string,
|
||||
inventory_id?: string | undefined | null,
|
||||
quantity: string,
|
||||
reason: string
|
||||
};
|
||||
["MarketplaceWriteoffProposal"]: {
|
||||
__typename: "MarketplaceWriteoffProposal",
|
||||
authorized_at?: string | undefined | null,
|
||||
coopname: string,
|
||||
created_at: string,
|
||||
cycle_started_at: string,
|
||||
/** Аккаунт, принявший финальное решение. */
|
||||
decided_by_account?: string | undefined | null,
|
||||
decision_id?: number | undefined | null,
|
||||
decision_log: Array<GraphQLTypes["MarketplaceWriteoffDecisionEntry"]>,
|
||||
executed_at?: string | undefined | null,
|
||||
/** Идентификатор проекта в системе кооператива. */
|
||||
id: string,
|
||||
items: Array<GraphQLTypes["MarketplaceWriteoffProposalItem"]>,
|
||||
/** Канонический хеш проекта, используется как process_hash on-chain (wroffprops, soviet.decisions). */
|
||||
proposal_hash: string,
|
||||
/** Аккаунт инициатора проекта (председатель / админ). */
|
||||
proposed_by_account?: string | undefined | null,
|
||||
/** Причина отказа совета (если REJECTED). */
|
||||
reject_reason?: string | undefined | null,
|
||||
rejected_at?: string | undefined | null,
|
||||
status: GraphQLTypes["MarketplaceWriteoffProposalStatus"],
|
||||
submitted_at?: string | undefined | null,
|
||||
/** Σ сумм всех позиций (форматированный asset, 4 знака). */
|
||||
total_amount: string,
|
||||
trigger: GraphQLTypes["MarketplaceWriteoffProposalTrigger"],
|
||||
updated_at: string,
|
||||
['...on MarketplaceWriteoffProposal']: Omit<GraphQLTypes["MarketplaceWriteoffProposal"], "...on MarketplaceWriteoffProposal">
|
||||
};
|
||||
["MarketplaceWriteoffProposalItem"]: {
|
||||
__typename: "MarketplaceWriteoffProposalItem",
|
||||
/** Сумма списания (4 знака после запятой, валюта кооператива). */
|
||||
amount: string,
|
||||
/** Наименование позиции или артикул из карточки имущества. */
|
||||
asset_title: string,
|
||||
/** Кооперативный участок (склад) — источник позиции к списанию. */
|
||||
braname: string,
|
||||
/** Признак того, что позиция уже исполнена через execwroff. */
|
||||
executed: boolean,
|
||||
/** Идентификатор инвентарной позиции, если известна. */
|
||||
inventory_id?: string | undefined | null,
|
||||
/** Количество единиц к списанию. */
|
||||
quantity: string,
|
||||
/** Причина списания (срок годности, повреждение и т.п.). */
|
||||
reason: string,
|
||||
['...on MarketplaceWriteoffProposalItem']: Omit<GraphQLTypes["MarketplaceWriteoffProposalItem"], "...on MarketplaceWriteoffProposalItem">
|
||||
};
|
||||
/** Состояние проекта решения совета о списании скоропорта на пути от черновика до итогового списания. */
|
||||
["MarketplaceWriteoffProposalStatus"]: MarketplaceWriteoffProposalStatus;
|
||||
/** Источник проекта списания: автоматический ежемесячный крон или ручное создание. */
|
||||
["MarketplaceWriteoffProposalTrigger"]: MarketplaceWriteoffProposalTrigger;
|
||||
["MarketplaceWriteoffStatementSignablePayloadInput"]: {
|
||||
draft_id: string
|
||||
};
|
||||
["MatrixAccountStatusResponseDTO"]: {
|
||||
__typename: "MatrixAccountStatusResponseDTO",
|
||||
@@ -38080,6 +38484,8 @@ export type GraphQLTypes = {
|
||||
marketplaceApproveReturnVisit: GraphQLTypes["MarketplaceReturnClaimResult"],
|
||||
/** Отменить свой заказ до его приёма поставщиком; средства разблокируются. */
|
||||
marketplaceCancelOrder: GraphQLTypes["MarketplaceCancelOrderResult"],
|
||||
/** Удалить черновик. Доступно только пока проект в статусе DRAFT. */
|
||||
marketplaceCancelWriteoffDraft: boolean,
|
||||
/** Очистить все доступные категории (сделать доступными все)
|
||||
|
||||
Требуемые роли: chairman. */
|
||||
@@ -38098,6 +38504,8 @@ export type GraphQLTypes = {
|
||||
marketplaceCreateReturnClaim: GraphQLTypes["MarketplaceReturnClaimResult"],
|
||||
/** Сформировать партии поставки из акцептованной заявки: одна группа на каждый КУ-получатель. */
|
||||
marketplaceCreateShipment: GraphQLTypes["MarketplaceCreateShipmentResult"],
|
||||
/** Создаёт ручной черновик проекта списания. На кооператив может быть только один открытый черновик и один проект, отправленный в совет. */
|
||||
marketplaceCreateWriteoffDraft: GraphQLTypes["MarketplaceWriteoffProposal"],
|
||||
/** Поставщик отклоняет сводную заявку — все заказы пакета отменяются, средства разблокируются. */
|
||||
marketplaceDeclineConsolidatedRequest: GraphQLTypes["MarketplaceConsolidatedRequestActionResult"],
|
||||
/** Поставщик отказывается от одного индивидуального заказа; средства разблокируются. */
|
||||
@@ -38146,10 +38554,14 @@ export type GraphQLTypes = {
|
||||
marketplaceSignAplReceptionAsChairman: GraphQLTypes["MarketplaceAplReceptionResult"],
|
||||
/** Поставщик ставит первую подпись на акте приёмки (лично — Вариант А; асинхронно через push — Вариант Б). */
|
||||
marketplaceSignAplReceptionAsSupplier: GraphQLTypes["MarketplaceAplReceptionResult"],
|
||||
/** Отправить черновик в совет. Принимает подписанное председателем Заявление 1106. После успешного приёма выполняются propwroff и soviet::createagenda(mktwroff). */
|
||||
marketplaceSubmitWriteoffDraft: GraphQLTypes["MarketplaceWriteoffProposal"],
|
||||
/** Поставщик запускает поставку по предложению с открытой подпиской: формируется сводная заявка, заказы в её пуле принимаются. */
|
||||
marketplaceTriggerOpenSubscription: GraphQLTypes["MarketplaceConsolidatedRequest"],
|
||||
/** Поставщик правит свой Offer — статус сбрасывается в PENDING_MODERATION */
|
||||
marketplaceUpdateOffer: GraphQLTypes["MarketplaceOffer"],
|
||||
/** Изменить состав черновика — добавить, удалить или поправить позиции. */
|
||||
marketplaceUpdateWriteoffDraft: GraphQLTypes["MarketplaceWriteoffProposal"],
|
||||
/** Поставщик снимает свой Offer (статус → WITHDRAWN) */
|
||||
marketplaceWithdrawOffer: GraphQLTypes["MarketplaceOffer"],
|
||||
/** Уведомление о проведении общего собрания пайщиков
|
||||
@@ -38662,6 +39074,18 @@ export type GraphQLTypes = {
|
||||
/** Общее количество страниц */
|
||||
totalPages: number,
|
||||
['...on PaginatedGatewayPaymentsPaginationResult']: Omit<GraphQLTypes["PaginatedGatewayPaymentsPaginationResult"], "...on PaginatedGatewayPaymentsPaginationResult">
|
||||
};
|
||||
["PaginatedMarketplaceWriteoffProposals"]: {
|
||||
__typename: "PaginatedMarketplaceWriteoffProposals",
|
||||
/** Текущая страница */
|
||||
currentPage: number,
|
||||
/** Элементы текущей страницы */
|
||||
items: Array<GraphQLTypes["MarketplaceWriteoffProposal"]>,
|
||||
/** Общее количество элементов */
|
||||
totalCount: number,
|
||||
/** Общее количество страниц */
|
||||
totalPages: number,
|
||||
['...on PaginatedMarketplaceWriteoffProposals']: Omit<GraphQLTypes["PaginatedMarketplaceWriteoffProposals"], "...on PaginatedMarketplaceWriteoffProposals">
|
||||
};
|
||||
["PaginationInput"]: {
|
||||
/** Количество элементов на странице */
|
||||
@@ -39857,10 +40281,14 @@ export type GraphQLTypes = {
|
||||
marketplaceListSupplierOrders: GraphQLTypes["MarketplaceOrderPaginationResult"],
|
||||
/** Список пайщиков-поставщиков, допущенных к публикации оферт */
|
||||
marketplaceListWhitelist: Array<GraphQLTypes["MarketplaceWhitelistEntry"]>,
|
||||
/** Лента всех проектов списания кооператива с фильтром по статусу. */
|
||||
marketplaceListWriteoffProposals: GraphQLTypes["PaginatedMarketplaceWriteoffProposals"],
|
||||
/** Кошельки пайщика, релевантные столу заказов: w.wal.share, w.wal.member, w.mkt.member */
|
||||
marketplaceMemberWallet: GraphQLTypes["MarketplaceMemberWallet"],
|
||||
/** Состояние онбординга пайщика в Столе заказов: показывать ли gate или пропускать на стол */
|
||||
marketplaceOnboardingState: GraphQLTypes["MarketplaceOnboardingState"],
|
||||
/** Открытый черновик проекта списания (если есть). Один на кооператив. */
|
||||
marketplaceOpenWriteoffDraft?: GraphQLTypes["MarketplaceWriteoffProposal"] | undefined | null,
|
||||
/** Статус видимости оферты Стола заказов в core registration-flow (платформенный AgreementRegistry) */
|
||||
marketplaceRegistrationOfferStatus: GraphQLTypes["MarketplaceRegistrationOfferStatus"],
|
||||
/** Получить обязательные атрибуты для категории и типа товара marketplace */
|
||||
@@ -39879,6 +40307,10 @@ export type GraphQLTypes = {
|
||||
marketplaceValidateAttributeValues: GraphQLTypes["MarketplaceAttributeValidation"],
|
||||
/** Контекст пайщика для Стола заказов: core_roles + marketplace_roles */
|
||||
marketplaceWhoAmI: GraphQLTypes["MarketplaceCurrentMember"],
|
||||
/** Детали одного проекта списания: items, decision_log, протокол. */
|
||||
marketplaceWriteoffProposal: GraphQLTypes["MarketplaceWriteoffProposal"],
|
||||
/** Превью Заявления о списании скоропорта (registry 1106) для подписания председателем. */
|
||||
marketplaceWriteoffStatementSignablePayload: GraphQLTypes["GeneratedDocument"],
|
||||
/** Получение документов кооператива для синхронизации с 1С. Требует секретный ключ в заголовке x-onecoop-secret-key. */
|
||||
onecoopGetDocuments: GraphQLTypes["OneCoopDocumentsResponse"],
|
||||
/** Получить полную картину процесса ledger2 по process_hash
|
||||
@@ -41822,6 +42254,20 @@ export enum MarketplaceShipmentStatus {
|
||||
RECEPTION_IN_PROGRESS = "RECEPTION_IN_PROGRESS",
|
||||
SUPPLY_PREPARED = "SUPPLY_PREPARED"
|
||||
}
|
||||
/** Состояние проекта решения совета о списании скоропорта на пути от черновика до итогового списания. */
|
||||
export enum MarketplaceWriteoffProposalStatus {
|
||||
AUTHORIZED = "AUTHORIZED",
|
||||
DRAFT = "DRAFT",
|
||||
EXECUTED = "EXECUTED",
|
||||
EXECUTING = "EXECUTING",
|
||||
ON_AGENDA = "ON_AGENDA",
|
||||
REJECTED = "REJECTED"
|
||||
}
|
||||
/** Источник проекта списания: автоматический ежемесячный крон или ручное создание. */
|
||||
export enum MarketplaceWriteoffProposalTrigger {
|
||||
CRON = "CRON",
|
||||
MANUAL = "MANUAL"
|
||||
}
|
||||
/** Тип юридического лица */
|
||||
export enum OrganizationType {
|
||||
AO = "AO",
|
||||
@@ -42263,6 +42709,7 @@ type ZEUS_VARIABLES = {
|
||||
["MarketplaceCreateOrderInput"]: ValueTypes["MarketplaceCreateOrderInput"];
|
||||
["MarketplaceCreateReturnClaimInput"]: ValueTypes["MarketplaceCreateReturnClaimInput"];
|
||||
["MarketplaceCreateShipmentInput"]: ValueTypes["MarketplaceCreateShipmentInput"];
|
||||
["MarketplaceCreateWriteoffDraftInput"]: ValueTypes["MarketplaceCreateWriteoffDraftInput"];
|
||||
["MarketplaceDeclineConsolidatedRequestInput"]: ValueTypes["MarketplaceDeclineConsolidatedRequestInput"];
|
||||
["MarketplaceDeclineIndividualOrderInput"]: ValueTypes["MarketplaceDeclineIndividualOrderInput"];
|
||||
["MarketplaceDeclineOrderFromOpenPoolInput"]: ValueTypes["MarketplaceDeclineOrderFromOpenPoolInput"];
|
||||
@@ -42285,6 +42732,7 @@ type ZEUS_VARIABLES = {
|
||||
["MarketplaceListPendingOffersInput"]: ValueTypes["MarketplaceListPendingOffersInput"];
|
||||
["MarketplaceListReturnClaimsByBranameInput"]: ValueTypes["MarketplaceListReturnClaimsByBranameInput"];
|
||||
["MarketplaceListShipmentsInput"]: ValueTypes["MarketplaceListShipmentsInput"];
|
||||
["MarketplaceListWriteoffProposalsInput"]: ValueTypes["MarketplaceListWriteoffProposalsInput"];
|
||||
["MarketplaceOpenIssuanceInput"]: ValueTypes["MarketplaceOpenIssuanceInput"];
|
||||
["MarketplaceOrderCycleType"]: ValueTypes["MarketplaceOrderCycleType"];
|
||||
["MarketplaceOrderIssuanceFactDiffState"]: ValueTypes["MarketplaceOrderIssuanceFactDiffState"];
|
||||
@@ -42307,9 +42755,15 @@ type ZEUS_VARIABLES = {
|
||||
["MarketplaceShipmentStatus"]: ValueTypes["MarketplaceShipmentStatus"];
|
||||
["MarketplaceShipmentTTNDataInput"]: ValueTypes["MarketplaceShipmentTTNDataInput"];
|
||||
["MarketplaceSignAplReceptionInput"]: ValueTypes["MarketplaceSignAplReceptionInput"];
|
||||
["MarketplaceSubmitWriteoffDraftInput"]: ValueTypes["MarketplaceSubmitWriteoffDraftInput"];
|
||||
["MarketplaceTriggerOpenSubscriptionInput"]: ValueTypes["MarketplaceTriggerOpenSubscriptionInput"];
|
||||
["MarketplaceUpdateOfferInput"]: ValueTypes["MarketplaceUpdateOfferInput"];
|
||||
["MarketplaceUpdateWriteoffDraftInput"]: ValueTypes["MarketplaceUpdateWriteoffDraftInput"];
|
||||
["MarketplaceWithdrawOfferInput"]: ValueTypes["MarketplaceWithdrawOfferInput"];
|
||||
["MarketplaceWriteoffItemInput"]: ValueTypes["MarketplaceWriteoffItemInput"];
|
||||
["MarketplaceWriteoffProposalStatus"]: ValueTypes["MarketplaceWriteoffProposalStatus"];
|
||||
["MarketplaceWriteoffProposalTrigger"]: ValueTypes["MarketplaceWriteoffProposalTrigger"];
|
||||
["MarketplaceWriteoffStatementSignablePayloadInput"]: ValueTypes["MarketplaceWriteoffStatementSignablePayloadInput"];
|
||||
["MoveCapitalIssueToComponentInput"]: ValueTypes["MoveCapitalIssueToComponentInput"];
|
||||
["NotificationWorkflowRecipientInput"]: ValueTypes["NotificationWorkflowRecipientInput"];
|
||||
["NotifyOnAnnualGeneralMeetInput"]: ValueTypes["NotifyOnAnnualGeneralMeetInput"];
|
||||
|
||||
Reference in New Issue
Block a user