560 lines
48 KiB
JSON
560 lines
48 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"id": "SGF-MODULE-FLOW-PREPARATION-v1",
|
|
"status": "preparation_only",
|
|
"date": "2026-11-02",
|
|
"modules": ["commercial", "purchasing", "stock", "workshop", "finance", "accounting"],
|
|
"first_increment": "SGF-STOCK-READ-SIM-v1",
|
|
"evidence_contract": {
|
|
"required": ["tenant_id", "company_id", "unit_scope", "actor_id", "source_system", "source_kind", "source_id", "source_version", "source_hash", "effect_kind", "decision_id", "decided_at", "reason", "idempotency_key", "correlation_id", "permission_scope", "before", "after"],
|
|
"optional_by_effect": ["warehouse_id", "stock_item_id", "quantity_milli", "quantity_unit", "currency", "amount_exact", "rounding_policy", "verified_by", "evidence_references", "due_date", "pending_reason"],
|
|
"source_evidence_required": true,
|
|
"runtime_implemented": false,
|
|
"unknown_is_zero": false,
|
|
"automatic_dependency_association": false,
|
|
"new_global_event_bus": false
|
|
},
|
|
"stages": [
|
|
{"id":"requisition_order","owner":"purchasing","effect":"approved_procurement_origin","state":"partial_synthetic","source_ids":["requisitions_delivery","requisition_core","requisition_qa_composition","sgf_order_controller","native_order_workflow","sgf_order_screen","sgf_sourcing_controller","sgf_sourcing_screen","native_quotation_controller","native_proposal_comparison","sgf_supplier_controller","sgf_supplier_access","sgf_supplier_screen","sgf_request_controller","sgf_request_access","sgf_request_screen","sgf_purchasing_workspace","sgf_purchasing_navigation","sgf_supplier_picker","sgf_supplier_search_ui","sgf_dossier_controller","sgf_dossier_screen","sgf_dossier_ui","sgf_supplier_documents","sgf_supplier_document_storage","sgf_supplier_document_ui","sgf_process_navigation","sgf_purchasing_focus","sgf_stage_history","sgf_request_history_ui","sgf_request_workspace_ui","sgf_purchasing_entry","sgf_purchasing_board","sgf_purchasing_presenter","sgf_purchasing_exit_guard"],"requires":[],"exit_evidence":["approved_origin_version","budget_receipt_when_applicable"],"gap":"New SGF requests now start as drafts, submit/reserve once, receive distinct native approval and continue with the same request ID to sourcing, award, order/commitment and receipt in demo8068. Host budget entries stay unchanged. Supplier registry/review remains delivered in QA. Conversion of legacy host-reserved ir_requests requires its own responsibility/recovery protocol and is not delivered. Technical catalogues, formal regimes, later corrections and general deployment remain pending. Superseding the earlier separate-fixture limitation for Purchasing: demo8072 now starts before the first main request and completes request, sourcing, award, order, receipt, invoice and explicit payable recognition in one native book, with shared permission-aware navigation. Supplier registry and geography are mounted in the same host. This does not unify all six ERP modules or validate deployment, payments or accounting of this origin. The earlier100-supplier selection cap is resolved in demo8073: literal name/NUIT search and server pages25/100, explicit selection, stale-response protection and supplier fingerprint revalidation before a new quotation. Existing rights and native rules are reused; no deployment or sustained-load capacity conclusion. A GET-only dossier now correlates the actual request through independently authorised downstream evidence in demo8074, with independent25-row pages and filtered history. Read proof reuses the completed canonical regression book without repeating financial commands; all142 tables and sequences remain unchanged. This is not a universal task queue, readiness decision or deployment validation. Supplier binary evidence is now delivered in demo8076 through the original native upload/download and review invalidation, with private storage, content/context/version conference, idempotent command provenance and bounded metadata pages15. Pending evidence excludes the supplier from sourcing until a distinct current-version review. Other attachment types, authenticity requirements, crash-orphan reconciliation, retention, sustained load and deployment remain separate. Contextual read navigation is delivered in demo8078: authorised dossier cards open exact source ids across seven workspaces, including receipt evidence and invoice-specific obligation consultation. Strict parameter parsing, destination authority, parent matching and stale startup cancellation avoid first-page dependence and automatic fallback. The completed canonical QA book is reused without command replay;142 tables and sequences are unchanged. This does not decide readiness, execute a next stage, grant access, validate visual rendering, sustained load or deployment. A subsequent scope fix filters request/sourcing audit events in SQL before limits/counts/pages, closing an alternate downstream financial-history exposure without changing original audit or writers. Empty initial supplier searches now survive middleware normalisation while closed-award and permission guards remain. Completed canonical history book is reused read-only with142 tables/sequences intact. Demo8080 removes the direct request-history25-event cap using bounded cursor pages25/100, own-stage SQL filtering and encrypted request/actor/context/size-bound cursors with600-second lifetime. Initial page is reused; history refresh does not reset unsaved request fields.127 original event ids traverse once despite a new head note; refresh includes128. Audit-volume fixtures are not operational request revisions. An inherited100MZN order setup was preserved and removed from future history harness runs. This is not a persistent MVCC snapshot, visual acceptance, sustained-load or deployment validation. On04/11 the agreed local acquisition-to-payable journey was completed through actual UI modules and HTTP in the existing8085 installation, including a new reviewed supplier and distinct decisions. One entry /compras, document retention, readable previews and exit protection; no new database, port, isolated demo or business-engine copy. This does not validate real deployment, payments/accounting of this origin or visual acceptance.","evidence":[{"file":"docs/proofs/internal-requisitions-sgf.json","checks":[{"pointer":"/passed","equals":true}]},{"file":"docs/proofs/requisition-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":50}]},{"file":"docs/proofs/receipt-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":68}]},{"file":"docs/proofs/order-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":49}]},{"file":"docs/proofs/sourcing-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":74}]},{"file":"docs/proofs/supplier-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":64}]},{"file":"docs/proofs/request-to-receipt-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":103}]},{"file":"docs/proofs/purchasing-integrated-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":68}]},{"file":"docs/proofs/supplier-search-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":51}]},{"file":"docs/proofs/purchasing-dossier-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":49}]},{"file":"docs/proofs/supplier-documents-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":52}]},{"file":"docs/proofs/purchasing-focus-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":77}]},{"file":"docs/proofs/purchasing-continuity-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":55}]},{"file":"docs/proofs/request-history-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":36}]},{"file":"docs/proofs/purchasing-completion-final-20261104-r2.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/criteria/C10/passed","equals":true}]}]},
|
|
{"id":"accepted_receipt","owner":"purchasing","effect":"accepted_physical_receipt","state":"partial_synthetic","source_ids":["receipt_workflow","receipt_writer","receipt_movement_adapter","sgf_receipt_runtime","sgf_receipt_controller","sgf_receipt_screen","sgf_receipt_catalogue","sgf_receipt_workspace_ui","sgf_receipt_documents","sgf_composed_stock_read","sgf_stock_receipt_trace","sgf_stock_receipt_transition","sgf_stock_receipt_focus","sgf_purchasing_entry","sgf_purchasing_board","sgf_purchasing_presenter","sgf_purchasing_exit_guard"],"requires":["requisition_order"],"exit_evidence":["receipt_id_version","accepted_quantities","quality_decision","warehouse_mapping"],"gap":"SGF source-to-receipt selected path is delivered in QA: three proposals, six evaluations, one approved award, one order/100MZN commitment and one receipt/physical movement, with canonical history and original workflows. Demo8066 starts before these individual decisions;8064/8065 preserved. General installation, catalogue search, sustained load and deployment remain pending; SGF internal requisition handoff remains separate. Demo8075 now provides per-line article search/pages25/100 beyond the earlier100 cap and navigable receipt history beyond25, with explicit choice and article fingerprint revalidation before a new physical confirmation. Existing unit/binding rules and writer remain authoritative;27 partial receipts total exactly1UN in regression, with25 native-writer history fixtures. Catalogue requests are deferred until a line is selected. No new valuation, payment, visual, sustained-load or deployment claim. Receipt delivery/quality/other binary evidence is delivered in demo8077 through the pinned native attachment service and private download, with bounded pages15 and dossier events. Individual reason, current source/context/revision/bytes, idempotent keys, content reuse within receipt/type and verified rollback compensation are proven. One HTTP-created document and15 native volume fixtures preserve one1000milli physical movement. Attachment is not a new acceptance/quality decision or authenticity certification. Orphan reconciliation, retention/quotas, other origins, visual review, sustained load and deployment remain separate. Contextual read navigation is delivered in demo8078: authorised dossier cards open exact source ids across seven workspaces, including receipt evidence and invoice-specific obligation consultation. Strict parameter parsing, destination authority, parent matching and stale startup cancellation avoid first-page dependence and automatic fallback. The completed canonical QA book is reused without command replay;142 tables and sequences are unchanged. This does not decide readiness, execute a next stage, grant access, validate visual rendering, sustained load or deployment. Demo8079 fixes the actual form-to-picker binding and blank initial article search. DOM-to-real-HTTP proof selects an article, transmits its revision, previews, confirms1UN and recovers a deliberately lost response with201/200, one receipt/movement. This is not browser visual acceptance or a new concurrency/load trial. Inline receipt/invoice/obligation source links now preserve ids and follow the currently presented menu; destination APIs remain authoritative. No new financial effect, permission, deployment or operational-readiness claim. On04/11 the agreed local acquisition-to-payable journey was completed through actual UI modules and HTTP in the existing8085 installation, including a new reviewed supplier and distinct decisions. One entry /compras, document retention, readable previews and exit protection; no new database, port, isolated demo or business-engine copy. This does not validate real deployment, payments/accounting of this origin or visual acceptance.","evidence":[{"file":"docs/proofs/stock-receipt-link-20261102.json","checks":[{"pointer":"/tests/native_link/failures","equals":0},{"pointer":"/tests/native_link/errors","equals":0},{"pointer":"/same_native_movement_observed_by_sgf","equals":true}]},{"file":"docs/proofs/receipt-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":68}]},{"file":"docs/proofs/order-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":49}]},{"file":"docs/proofs/sourcing-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":74}]},{"file":"docs/proofs/receipt-workspace-completion-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":41}]},{"file":"docs/proofs/receipt-documents-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":58}]},{"file":"docs/proofs/purchasing-focus-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":77}]},{"file":"docs/proofs/purchasing-continuity-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":55}]},{"file":"docs/proofs/stock-composed-source-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":41}]},{"file":"docs/proofs/stock-receipt-trace-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":46}]},{"file":"docs/proofs/purchasing-completion-final-20261104-r2.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/criteria/C10/passed","equals":true}]}]},
|
|
{"id":"physical_stock","owner":"stock","effect":"physical_movement_once","state":"partial_synthetic","source_ids":["stock_workflow","stock_controller","inventory_lots","inventory_counts","inventory_dispositions","inventory_reversals","warehouse_reservations","stock_menu","inventory_reader","stock_read_adapter","stock_valuation_core","stock_valuation_observer","sgf_composed_stock_read","sgf_stock_receipt_trace","sgf_stock_receipt_transition","sgf_stock_receipt_focus","sgf_stock_period_projection","sgf_stock_period_ui","sgf_stock_period_request"],"requires":["accepted_receipt"],"exit_evidence":["movement_origin","quantity_unit","ledger_revision","receipt_or_compensation"],"gap":"Common physical readers/writers and selected stock valuation are delivered in isolated QA: receipt2UN/100, issue1UN/50, return0.5UN/25, net1.5UN/75. Same canonical physical/valuation book, with SELECT-only SGF observation and explicit rate/review/dependencies. Operational bindings/installation, real valuation method and hybrid integration with already posted direct/industrial materials remain pending. The integrated Purchasing QA host now observes the same physical book through a SELECT-only Stock role, explicit warehouse mapping and existing React reader (demo8083). Operational installation and real bindings remain pending; no additional valuation or availability is supplied. Demo8084 adds explicit Stock-to-Purchasing receipt evidence navigation for current receipt_in movements. The server resolves actual parent ids, current rights and scope; no inferred historical origin, business command or wider Stock reader grants. Existing Purchasing runtime locks remain; no new load/deployment claim. Demo8085 delivers a UTC-registration-period physical quantity report with opening/incoming/outgoing/closing per article/warehouse, exact numeric/text quantities, explicit dates and25/100 SQL pages. Five projection SELECTs at either page size;105 pairs are SQL fixtures, not workflow operations. No cross-unit total, valuation, availability, full export, sustained-load or deployment claim.","evidence":[{"file":"docs/proofs/stock-read-summary-20261102.json","checks":[{"pointer":"/tests/final_functional/failures","equals":0},{"pointer":"/tests/final_functional/errors","equals":0}]},{"file":"docs/proofs/stock-receipt-link-20261102.json","checks":[{"pointer":"/same_native_movement_observed_by_sgf","equals":true}]},{"file":"docs/proofs/common-ledger-stock-valuation-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/tests/workflow/result/stock_minor","equals":7500},{"pointer":"/tests/workflow/result/physical_quantity_milli","equals":1500}]},{"file":"docs/proofs/stock-prefix-stream-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":48}]},{"file":"docs/proofs/stock-period-batches-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":33}]},{"file":"docs/proofs/receipt-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":68}]},{"file":"docs/proofs/stock-composed-source-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":41}]},{"file":"docs/proofs/stock-receipt-trace-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":46}]},{"file":"docs/proofs/stock-period-report-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":52}]}]},
|
|
{"id":"supplier_invoice","owner":"purchasing","effect":"verified_supplier_document","state":"partial_synthetic","source_ids":["invoice_workflow","supplier_adapter","sgf_supplier_invoice_controller","sgf_supplier_invoice_screen","sgf_invoice_workspace_ui","sgf_invoice_matching_progress","sgf_invoice_matching_ui","sgf_purchasing_entry","sgf_purchasing_board","sgf_purchasing_presenter","sgf_purchasing_exit_guard"],"requires":["requisition_order"],"exit_evidence":["invoice_snapshot","independent_review","accepted_receipt_references_when_required"],"gap":"SGF now registers pending supplier invoices and performs distinct exact matching through the original pinned workflow after actual SGF order/receipt. Two partial documents40+60 consume the original100MZN commitment once; conflicting pending70 is preserved and refused. Demo8070 starts before main issuance/receipt/invoice. The earlier common-payable11600MZN scenario retains its own proof; these new invoices are not automatically recognised as a payable. Correction/credit notes, binary attachments, real fiscal policy and general deployment remain separate. Superseding the earlier separate-fixture limitation for Purchasing: demo8072 now starts before the first main request and completes request, sourcing, award, order, receipt, invoice and explicit payable recognition in one native book, with shared permission-aware navigation. Supplier registry and geography are mounted in the same host. This does not unify all six ERP modules or validate deployment, payments or accounting of this origin. Contextual read navigation is delivered in demo8078: authorised dossier cards open exact source ids across seven workspaces, including receipt evidence and invoice-specific obligation consultation. Strict parameter parsing, destination authority, parent matching and stale startup cancellation avoid first-page dependence and automatic fallback. The completed canonical QA book is reused without command replay;142 tables and sequences are unchanged. This does not decide readiness, execute a next stage, grant access, validate visual rendering, sustained load or deployment. Inline receipt/invoice/obligation source links now preserve ids and follow the currently presented menu; destination APIs remain authoritative. No new financial effect, permission, deployment or operational-readiness claim. Demo8081 exposes per-line ordered/accepted/returned/reversed/validated/pending/remaining quantities using two aggregate fact queries and original correction values. Pending documents do not reserve quantity; overlap is a read warning, not a replacement for native validation. Two completed QA books are reused read-only with all tables/sequences unchanged. The display revision uses one original state observation before capability decoration; mutation/state definitions are unchanged. Full dependency materialisation, large invoice-history scaling, visual review, sustained load and deployment remain pending. On04/11 the agreed local acquisition-to-payable journey was completed through actual UI modules and HTTP in the existing8085 installation, including a new reviewed supplier and distinct decisions. One entry /compras, document retention, readable previews and exit protection; no new database, port, isolated demo or business-engine copy. This does not validate real deployment, payments/accounting of this origin or visual acceptance.","evidence":[{"file":"docs/proofs/payables-http.json","checks":[{"pointer":"/passed","equals":true}]},{"file":"docs/proofs/supplier-invoice-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":77}]},{"file":"docs/proofs/purchasing-integrated-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":68}]},{"file":"docs/proofs/purchasing-dossier-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":49}]},{"file":"docs/proofs/purchasing-focus-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":77}]},{"file":"docs/proofs/purchasing-continuity-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":55}]},{"file":"docs/proofs/invoice-matching-progress-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":47}]},{"file":"docs/proofs/purchasing-completion-final-20261104-r2.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/criteria/C10/passed","equals":true}]}]},
|
|
{"id":"supplier_payable","owner":"finance","effect":"supplier_obligation_once","state":"partial_synthetic","source_ids":["payables","supplier_adapter","sgf_obligation_controller","sgf_obligation_screen","sgf_obligation_workspace_ui","sgf_obligation_evidence_ui","sgf_purchasing_entry","sgf_purchasing_board","sgf_purchasing_presenter","sgf_purchasing_exit_guard"],"requires":["supplier_invoice"],"exit_evidence":["obligation_receipt","principal_currency","history_responsibility","due_date_or_pending_reason"],"gap":"Explicit SGF invoice preparation and distinct recognition now use the same original native supplier-payable adapter and canonical book in demo8071. One100MZN principal, bounded lists/evidence, current-source replay checks and atomic SGF provenance are proven in new QA fixtures. No automatic recognition, duplicate host debt, payment, accounting or imported-history cutover. Unknown maturity remains visible. Combining all earlier demos in one installation, correction/attachments, visual review, sustained load and general deployment remain pending. Superseding the earlier separate-fixture limitation for Purchasing: demo8072 now starts before the first main request and completes request, sourcing, award, order, receipt, invoice and explicit payable recognition in one native book, with shared permission-aware navigation. Supplier registry and geography are mounted in the same host. This does not unify all six ERP modules or validate deployment, payments or accounting of this origin. Contextual read navigation is delivered in demo8078: authorised dossier cards open exact source ids across seven workspaces, including receipt evidence and invoice-specific obligation consultation. Strict parameter parsing, destination authority, parent matching and stale startup cancellation avoid first-page dependence and automatic fallback. The completed canonical QA book is reused without command replay;142 tables and sequences are unchanged. This does not decide readiness, execute a next stage, grant access, validate visual rendering, sustained load or deployment. Inline receipt/invoice/obligation source links now preserve ids and follow the currently presented menu; destination APIs remain authoritative. No new financial effect, permission, deployment or operational-readiness claim. Demo8082 separates evidence browsing from an explicitly selected proposal decision. Reason and preview survive pagination; changed observed source/actor/permissions invalidate old forms, and late reads/previews cannot reactivate them. Temporary read failure preserves the form; in-flight operations prevent selection changes.26 new simulated-UI/demo checks reuse72 native authority checks without repetition. Controller/runtime/kernel and legacy evidence branch are unchanged. No new real confirmation, financial writer, backend pagination protocol, visual/load or deployment validation. On04/11 the agreed local acquisition-to-payable journey was completed through actual UI modules and HTTP in the existing8085 installation, including a new reviewed supplier and distinct decisions. One entry /compras, document retention, readable previews and exit protection; no new database, port, isolated demo or business-engine copy. This does not validate real deployment, payments/accounting of this origin or visual acceptance.","evidence":[{"file":"docs/proofs/payables-http.json","checks":[{"pointer":"/passed","equals":true}]},{"file":"docs/proofs/supplier-obligation-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":72}]},{"file":"docs/proofs/purchasing-integrated-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":68}]},{"file":"docs/proofs/purchasing-dossier-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":49}]},{"file":"docs/proofs/purchasing-focus-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":77}]},{"file":"docs/proofs/purchasing-continuity-composition-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":55}]},{"file":"docs/proofs/obligation-evidence-workspace-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":26}]},{"file":"docs/proofs/purchasing-completion-final-20261104-r2.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/criteria/C10/passed","equals":true}]}]},
|
|
{"id":"supplier_settlement","owner":"finance","effect":"confirmed_allocation_once","state":"partial_synthetic","source_ids":["settlements","settlement_delivery"],"requires":["supplier_payable"],"exit_evidence":["confirmed_payment_evidence","distinct_confirmation","allocation_receipt","remaining_balance"],"gap":"QA confirmation/allocation/reversal and scoped receipt lookup exist; no bank execution, real reconciliation or live historical SGF cutover is delivered.","evidence":[{"file":"docs/proofs/supplier-settlements.json","checks":[{"pointer":"/hosts/0/passed","equals":true},{"pointer":"/hosts/1/passed","equals":true}]}]},
|
|
{"id":"workshop_execution","owner":"workshop","effect":"verified_work_record","state":"partial_synthetic","source_ids":["workshop_workflow"],"requires":[],"exit_evidence":["authorised_order","verified_time_material_versions","ownership_of_material"],"gap":"Verified observations exist; no automatic physical stock movement.","evidence":[{"file":"docs/proofs/workshop-tests.json","checks":[{"pointer":"/failures","equals":0},{"pointer":"/errors","equals":0}]}]},
|
|
{"id":"workshop_stock_consumption","owner":"stock","effect":"company_material_consumption_once","state":"partial_synthetic","source_ids":["stock_workflow","workshop_workflow","workshop_stock_bridge","workshop_stock_controller"],"requires":["physical_stock","workshop_execution"],"exit_evidence":["explicit_item_warehouse_mapping","movement_receipt","consumption_origin_version"],"gap":"QA issue, existing delivery link, partial allocations, returns and proposal withdrawal/rejection are implemented with explicit review and no duplicate movement. Native warehouse return and SGF observation have separate proof. Operational item/warehouse mappings and installed composition remain pending.","evidence":[{"file":"docs/proofs/workshop-stock-closure-20261102.json","selected_junit":true}]},
|
|
{"id":"verified_cost","owner":"finance","effect":"validated_cost_version","state":"partial_synthetic","source_ids":["direct_costs","industrial_costs"],"requires":[],"exit_evidence":["verified_source_versions","approved_rate_versions","complete_or_explicitly_incomplete"],"gap":"Current costs are synthetic; physical movement linkage is future and absence of rate stays visible.","evidence":[{"file":"docs/proofs/direct-cost-tests.json","checks":[{"pointer":"/failures","equals":0},{"pointer":"/errors","equals":0}]},{"file":"docs/proofs/industrial-cost-tests.json","checks":[{"pointer":"/failures","equals":0},{"pointer":"/errors","equals":0}]}],"origin_paths":[{"id":"direct_workshop","requires":["workshop_execution"]},{"id":"industrial_inputs","requires":[]}]},
|
|
{"id":"sales_draft","owner":"commercial","effect":"commercial_draft_from_unique_origins","state":"partial_synthetic","source_ids":["workshop_billing"],"requires":[],"exit_evidence":["billable_source_versions","commercial_price_version","distinct_commercial_review"],"gap":"Draft integration exists; cost is not sale price and draft does not decrement stock.","evidence":[{"file":"docs/proofs/workshop-billing-tests.json","checks":[{"pointer":"/final_targeted_after_guard/failures","equals":0},{"pointer":"/final_targeted_after_guard/errors","equals":0}]}],"origin_paths":[{"id":"workshop_billing","requires":["workshop_execution"]},{"id":"direct_service","requires":[]}]},
|
|
{"id":"sales_invoice","owner":"commercial","effect":"issued_sales_document","state":"partial_synthetic","source_ids":["service_invoicing"],"requires":["sales_draft"],"exit_evidence":["document_snapshot","series_rule_version","applicable_fiscal_decisions"],"gap":"Actual test issuance and QA accounting recognition are proved. Real fiscal issuance/compliance remains guarded.","evidence":[{"file":"docs/proofs/invoice-test-results.json","checks":[{"pointer":"/passed","equals":true}]}]},
|
|
{"id":"customer_receivable","owner":"finance","effect":"customer_receipt_allocation_once","state":"partial_synthetic","source_ids":["service_receivables"],"requires":["sales_invoice"],"exit_evidence":["receivable_origin","payment_evidence","distinct_confirmation","allocation_history"],"gap":"QA opening, confirmed receipts/allocations400+600, reversal400 and accounting integration are proved. Real money, fiscal receipts and bank reconciliation are excluded.","evidence":[{"file":"docs/proofs/receivables-tests.json","checks":[{"pointer":"/failures","equals":0},{"pointer":"/errors","equals":0}]}]},
|
|
{"id":"general_ledger","owner":"accounting","effect":"balanced_journal_once","state":"partial_synthetic","source_ids":["catalogue_accounting","accounting_menu","general_ledger_core","general_ledger_adapter","general_ledger_delivery","ledger_cycle_core","ledger_native_adapter","ledger_cycle_delivery","industrial_ledger_source","industrial_ledger_workspace","industrial_ledger_delivery","industrial_correction_delivery","receipt_recovery_workspace","stock_valuation_schema","stock_valuation_composition","stock_valuation_adapter"],"requires":[],"exit_evidence":["approved_source_effect","dated_account_mapping","balanced_debit_credit","open_accounting_period","posting_receipt"],"gap":"One QA writer covers supplier, sales/receivables, direct/industrial costs and their approved corrections; joint11 journals/23 lines gross8725 remains its own proof. A separate authorised physical-stock book adds entry100/issue50/return25, three journals/six lines gross175, stock75 and period close. No duplicated material cost: hybrid direct/industrial-stock composition remains excluded. SGF observes the canonical stock book; stock confirmations run in its native QA composition. Real chart/tax/valuation/payroll policy, further corrections, reopening, operational cutover and deployment remain pending.","evidence":[{"file":"docs/proofs/common-ledger-industrial-correction-20261103.json","checks":[{"pointer":"/tests/joint_final/passed","equals":true},{"pointer":"/tests/concurrency/passed","equals":true}]},{"file":"docs/proofs/financial-receipt-recovery-20261103.json","checks":[{"pointer":"/checks","equals":43}]},{"file":"docs/proofs/common-ledger-stock-valuation-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/tests/workflow/result/stock_minor","equals":7500},{"pointer":"/tests/workflow/result/physical_quantity_milli","equals":1500}]},{"file":"docs/proofs/stock-prefix-stream-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":48}]},{"file":"docs/proofs/stock-period-batches-20261103.json","checks":[{"pointer":"/passed","equals":true},{"pointer":"/checks","equals":33}]},{"file":"docs/proofs/ledger-receipt-recovery-20261103.json","checks":[{"pointer":"/checks","equals":29}]},{"file":"docs/proofs/receipt-selection-race-manifest-20261103.json","checks":[{"pointer":"/passed","equals":true}]}]}
|
|
],
|
|
"event_consumers": [
|
|
{"source": "supplier_payable", "target": "general_ledger", "status": "planned", "synthetic_delivery": "COMMON-LEDGER-COMPLETE-CYCLE-SIM-v1", "rule": "Authorised QA recognition is implemented once in both compositions through the canonical ledger core. Operational recognition remains planned; never book the same invoice through a competing writer."},
|
|
{"source": "supplier_settlement", "target": "general_ledger", "status": "planned", "synthetic_delivery": "COMMON-LEDGER-COMPLETE-CYCLE-SIM-v1", "rule": "Confirmed QA allocation20 and its confirmed reversal are separate reviewed accounting effects. They never recognise principal again or deduct the financial balance twice; operational integration remains planned."},
|
|
{"source":"sales_invoice","target":"general_ledger","status":"planned","synthetic_delivery":"COMMON-LEDGER-SALES-RECEIVABLE-SIM-v1","rule":"Sales recognition and applicable tax rules require explicit scope; draft is insufficient."},
|
|
{"source":"customer_receivable","target":"general_ledger","status":"planned","synthetic_delivery":"COMMON-LEDGER-SALES-RECEIVABLE-SIM-v1","rule":"Receipt/allocation is distinct from revenue recognition."},
|
|
{"source": "verified_cost", "target": "general_ledger", "status": "planned", "synthetic_delivery": "COMMON-LEDGER-INDUSTRIAL-CORRECTION-SIM-v1", "rule": "Explicit QA direct and industrial source effects use stable typed origins and distinct review. Industrial1800 and its reviewed atomic replacement1820 are selected with residual300 separate; no double origin, inventory valuation or automatic outbox posting. Operational integration remains planned."},
|
|
{"source":"physical_stock","target":"general_ledger","status":"planned","rule":"Quantity alone is not valuation or an approved accounting entry.","synthetic_delivery":"COMMON-LEDGER-STOCK-VALUATION-SIM-v1"}
|
|
],
|
|
"shared_references": {
|
|
"geography": {
|
|
"state": "synthetic_functional_delivery",
|
|
"proof": "docs/proofs/geography-composition-20261103.json",
|
|
"checks": 83,
|
|
"source_version": "70996d9a9133785a848de90bedb4bf685e24d8f823cd153c0adc43eac642a292",
|
|
"purpose": "segmentation_only",
|
|
"financial_effects": 0,
|
|
"visual_review_pending": true,
|
|
"deployment_capacity_validated": false
|
|
}
|
|
},
|
|
"sources": [
|
|
{
|
|
"id": "requisitions_delivery",
|
|
"repository": "sgf",
|
|
"path": "docs/SGF_REQUISITIONS_8039_DELIVERY.md"
|
|
},
|
|
{
|
|
"id": "receipt_workflow",
|
|
"repository": "compras",
|
|
"path": "app/Services/ReceiptWorkflow.php"
|
|
},
|
|
{
|
|
"id": "stock_workflow",
|
|
"repository": "compras",
|
|
"path": "app/Services/StockWorkflow.php"
|
|
},
|
|
{
|
|
"id": "stock_controller",
|
|
"repository": "compras",
|
|
"path": "app/Http/Controllers/StockController.php"
|
|
},
|
|
{
|
|
"id": "inventory_lots",
|
|
"repository": "compras",
|
|
"path": "app/Services/InventoryLots.php"
|
|
},
|
|
{
|
|
"id": "inventory_counts",
|
|
"repository": "compras",
|
|
"path": "app/Services/InventoryCounts.php"
|
|
},
|
|
{
|
|
"id": "inventory_dispositions",
|
|
"repository": "compras",
|
|
"path": "app/Services/InventoryDispositions.php"
|
|
},
|
|
{
|
|
"id": "inventory_reversals",
|
|
"repository": "compras",
|
|
"path": "app/Services/InventoryReversals.php"
|
|
},
|
|
{
|
|
"id": "warehouse_reservations",
|
|
"repository": "compras",
|
|
"path": "app/Services/WarehouseReservations.php"
|
|
},
|
|
{
|
|
"id": "stock_menu",
|
|
"repository": "sgf",
|
|
"path": "resources/js/stock-menu.js"
|
|
},
|
|
{
|
|
"id": "invoice_workflow",
|
|
"repository": "compras",
|
|
"path": "app/Services/InvoiceWorkflow.php"
|
|
},
|
|
{
|
|
"id": "supplier_adapter",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/SupplierPayables.php"
|
|
},
|
|
{
|
|
"id": "payables",
|
|
"repository": "sgf",
|
|
"path": "packages/payables/src/Payables.php"
|
|
},
|
|
{
|
|
"id": "settlements",
|
|
"repository": "sgf",
|
|
"path": "packages/payables/src/SupplierSettlements.php"
|
|
},
|
|
{
|
|
"id": "settlement_delivery",
|
|
"repository": "sgf",
|
|
"path": "docs/SUPPLIER_SETTLEMENT_DELIVERY.md"
|
|
},
|
|
{
|
|
"id": "workshop_workflow",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Workshop/WorkshopWorkflow.php"
|
|
},
|
|
{
|
|
"id": "direct_costs",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Workshop/DirectCosts.php"
|
|
},
|
|
{
|
|
"id": "industrial_costs",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Industry/IndustrialCosts.php"
|
|
},
|
|
{
|
|
"id": "workshop_billing",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Workshop/WorkshopBilling.php"
|
|
},
|
|
{
|
|
"id": "service_invoicing",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Services/ServiceInvoicing.php"
|
|
},
|
|
{
|
|
"id": "service_receivables",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Services/ServiceReceivables.php"
|
|
},
|
|
{
|
|
"id": "catalogue_accounting",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Services/CatalogueAccounting.php"
|
|
},
|
|
{
|
|
"id": "accounting_menu",
|
|
"repository": "sgf",
|
|
"path": "docs/ACCOUNTING_MENU_DELIVERY.md"
|
|
},
|
|
{
|
|
"id": "general_ledger_core",
|
|
"repository": "sgf",
|
|
"path": "packages/general-ledger/src/PayableJournal.php"
|
|
},
|
|
{
|
|
"id": "general_ledger_adapter",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Accounting/GeneralLedger.php"
|
|
},
|
|
{
|
|
"id": "general_ledger_delivery",
|
|
"repository": "sgf",
|
|
"path": "docs/GENERAL_LEDGER_DELIVERY.md"
|
|
},
|
|
{
|
|
"id": "ledger_cycle_core",
|
|
"repository": "sgf",
|
|
"path": "packages/general-ledger/src/LedgerCycle.php"
|
|
},
|
|
{
|
|
"id": "ledger_native_adapter",
|
|
"repository": "compras",
|
|
"path": "app/Services/GeneralLedger.php"
|
|
},
|
|
{
|
|
"id": "ledger_cycle_delivery",
|
|
"repository": "sgf",
|
|
"path": "docs/GENERAL_LEDGER_COMPLETE_CYCLE_DELIVERY.md"
|
|
},
|
|
{
|
|
"id": "industrial_ledger_source",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Accounting/IndustrialLedgerSource.php"
|
|
},
|
|
{
|
|
"id": "industrial_ledger_workspace",
|
|
"repository": "sgf",
|
|
"path": "resources/views/accounting/industrial-ledger.blade.php"
|
|
},
|
|
{
|
|
"id": "industrial_ledger_delivery",
|
|
"repository": "sgf",
|
|
"path": "docs/GENERAL_LEDGER_INDUSTRIAL_DELIVERY.md"
|
|
},
|
|
{
|
|
"id": "industrial_correction_delivery",
|
|
"repository": "sgf",
|
|
"path": "docs/GENERAL_LEDGER_INDUSTRIAL_CORRECTION_DELIVERY.md"
|
|
},
|
|
{
|
|
"id": "receipt_writer",
|
|
"repository": "sgf",
|
|
"path": "packages/inventory-write/src/ReceiptMovementWriter.php"
|
|
},
|
|
{
|
|
"id": "receipt_movement_adapter",
|
|
"repository": "compras",
|
|
"path": "app/Services/ReceiptStockMovement.php"
|
|
},
|
|
{
|
|
"id": "inventory_reader",
|
|
"repository": "sgf",
|
|
"path": "packages/inventory-read/src/InventoryReader.php"
|
|
},
|
|
{
|
|
"id": "stock_read_adapter",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Inventory/StockReadController.php"
|
|
},
|
|
{
|
|
"id": "workshop_stock_bridge",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Workshop/WorkshopStock.php"
|
|
},
|
|
{
|
|
"id": "workshop_stock_controller",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Workshop/Http/WorkshopStockController.php"
|
|
},
|
|
{
|
|
"id": "receipt_recovery_workspace",
|
|
"repository": "sgf",
|
|
"path": "resources/views/accounting/receipt-recovery.blade.php"
|
|
},
|
|
{
|
|
"id": "requisition_core",
|
|
"repository": "compras",
|
|
"path": "packages/purchasing/src/InternalRequisitions.php"
|
|
},
|
|
{
|
|
"id": "requisition_qa_composition",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/InternalRequisitionQa.php"
|
|
},
|
|
{
|
|
"id": "stock_valuation_core",
|
|
"repository": "sgf",
|
|
"path": "packages/general-ledger/src/StockValuation.php"
|
|
},
|
|
{
|
|
"id": "stock_valuation_observer",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Accounting/StockValuationRead.php"
|
|
},
|
|
{
|
|
"id": "stock_valuation_schema",
|
|
"repository": "sgf",
|
|
"path": "packages/general-ledger/src/StockSchema.php"
|
|
},
|
|
{
|
|
"id": "stock_valuation_composition",
|
|
"repository": "sgf",
|
|
"path": "packages/general-ledger/src/StockComposition.php"
|
|
},
|
|
{
|
|
"id": "stock_valuation_adapter",
|
|
"repository": "sgf",
|
|
"path": "integrations/purchasing/StockValuationAdapter.php"
|
|
},
|
|
{
|
|
"id": "sgf_receipt_runtime",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/ReceiptRuntime.php"
|
|
},
|
|
{
|
|
"id": "sgf_receipt_controller",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/ReceiptController.php"
|
|
},
|
|
{
|
|
"id": "sgf_receipt_screen",
|
|
"repository": "sgf",
|
|
"path": "resources/views/receipt-workspace.blade.php"
|
|
},
|
|
{
|
|
"id": "sgf_order_controller",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/OrderController.php"
|
|
},
|
|
{
|
|
"id": "native_order_workflow",
|
|
"repository": "compras",
|
|
"path": "app/Services/PurchaseWorkflow.php"
|
|
},
|
|
{
|
|
"id": "sgf_order_screen",
|
|
"repository": "sgf",
|
|
"path": "resources/views/order-workspace.blade.php"
|
|
},
|
|
{
|
|
"id": "sgf_sourcing_controller",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/SourcingController.php"
|
|
},
|
|
{
|
|
"id": "sgf_sourcing_screen",
|
|
"repository": "sgf",
|
|
"path": "resources/views/sourcing-workspace.blade.php"
|
|
},
|
|
{
|
|
"id": "native_quotation_controller",
|
|
"repository": "compras",
|
|
"path": "app/Http/Controllers/QuotationController.php"
|
|
},
|
|
{
|
|
"id": "native_proposal_comparison",
|
|
"repository": "compras",
|
|
"path": "app/Services/ProposalComparison.php"
|
|
},
|
|
{
|
|
"id": "sgf_supplier_controller",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/SupplierController.php"
|
|
},
|
|
{
|
|
"id": "sgf_supplier_access",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/SupplierAccess.php"
|
|
},
|
|
{
|
|
"id": "sgf_supplier_screen",
|
|
"repository": "sgf",
|
|
"path": "resources/views/supplier-workspace.blade.php"
|
|
},
|
|
{
|
|
"id": "sgf_request_controller",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/RequestController.php"
|
|
},
|
|
{
|
|
"id": "sgf_request_access",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/RequisitionAccess.php"
|
|
},
|
|
{
|
|
"id": "sgf_request_screen",
|
|
"repository": "sgf",
|
|
"path": "resources/views/request-workspace.blade.php"
|
|
},
|
|
{
|
|
"id": "sgf_supplier_invoice_controller",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/InvoiceController.php"
|
|
},
|
|
{
|
|
"id": "sgf_supplier_invoice_screen",
|
|
"repository": "sgf",
|
|
"path": "resources/views/supplier-invoice-workspace.blade.php"
|
|
},
|
|
{
|
|
"id": "sgf_obligation_controller",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/ObligationController.php"
|
|
},
|
|
{
|
|
"id": "sgf_obligation_screen",
|
|
"repository": "sgf",
|
|
"path": "resources/views/supplier-obligation-workspace.blade.php"
|
|
},
|
|
{
|
|
"id": "sgf_purchasing_workspace",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/WorkspaceNavigation.php"
|
|
},
|
|
{
|
|
"id": "sgf_purchasing_navigation",
|
|
"repository": "sgf",
|
|
"path": "resources/views/partials/purchasing-navigation.blade.php"
|
|
},
|
|
{
|
|
"id": "sgf_supplier_picker",
|
|
"repository": "sgf",
|
|
"path": "public/supplier-picker-model.mjs"
|
|
},
|
|
{
|
|
"id": "sgf_supplier_search_ui",
|
|
"repository": "sgf",
|
|
"path": "public/sourcing-workspace.mjs"
|
|
},
|
|
{
|
|
"id": "sgf_dossier_controller",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/DossierController.php"
|
|
},
|
|
{
|
|
"id": "sgf_dossier_screen",
|
|
"repository": "sgf",
|
|
"path": "resources/views/purchasing-dossier.blade.php"
|
|
},
|
|
{
|
|
"id": "sgf_dossier_ui",
|
|
"repository": "sgf",
|
|
"path": "public/purchasing-dossier.mjs"
|
|
},
|
|
{
|
|
"id": "sgf_receipt_catalogue",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/ReceiptCatalogue.php"
|
|
},
|
|
{
|
|
"id": "sgf_receipt_workspace_ui",
|
|
"repository": "sgf",
|
|
"path": "public/receipt-workspace.mjs"
|
|
},
|
|
{
|
|
"id": "sgf_supplier_documents",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/SupplierDocumentsController.php"
|
|
},
|
|
{
|
|
"id": "sgf_supplier_document_storage",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/SupplierDocumentFiles.php"
|
|
},
|
|
{
|
|
"id": "sgf_supplier_document_ui",
|
|
"repository": "sgf",
|
|
"path": "public/supplier-documents.mjs"
|
|
},
|
|
{
|
|
"id": "sgf_receipt_documents",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/ReceiptDocumentsController.php"
|
|
},
|
|
{
|
|
"id": "sgf_process_navigation",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/ProcessNavigation.php"
|
|
},
|
|
{
|
|
"id": "sgf_purchasing_focus",
|
|
"repository": "sgf",
|
|
"path": "public/purchasing-focus.mjs"
|
|
},
|
|
{
|
|
"id": "sgf_stage_history",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/ProcessHistory.php"
|
|
},
|
|
{
|
|
"id": "sgf_invoice_workspace_ui",
|
|
"repository": "sgf",
|
|
"path": "public/supplier-invoice-workspace.mjs"
|
|
},
|
|
{
|
|
"id": "sgf_obligation_workspace_ui",
|
|
"repository": "sgf",
|
|
"path": "public/supplier-obligation-workspace.mjs"
|
|
},
|
|
{
|
|
"id": "sgf_request_history_ui",
|
|
"repository": "sgf",
|
|
"path": "public/request-history.mjs"
|
|
},
|
|
{
|
|
"id": "sgf_request_workspace_ui",
|
|
"repository": "sgf",
|
|
"path": "public/request-workspace.mjs"
|
|
},
|
|
{
|
|
"id": "sgf_invoice_matching_progress",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/InvoiceMatchingProgress.php"
|
|
},
|
|
{
|
|
"id": "sgf_invoice_matching_ui",
|
|
"repository": "sgf",
|
|
"path": "public/invoice-matching.mjs"
|
|
},
|
|
{
|
|
"id": "sgf_obligation_evidence_ui",
|
|
"repository": "sgf",
|
|
"path": "public/obligation-evidence.mjs"
|
|
},
|
|
{
|
|
"id": "sgf_composed_stock_read",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Inventory/CompositionStockRead.php"
|
|
},
|
|
{
|
|
"id": "sgf_stock_receipt_trace",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/StockReceiptTraceController.php"
|
|
},
|
|
{
|
|
"id": "sgf_stock_receipt_transition",
|
|
"repository": "sgf",
|
|
"path": "resources/js/stock-receipt-trace.js"
|
|
},
|
|
{
|
|
"id": "sgf_stock_receipt_focus",
|
|
"repository": "sgf",
|
|
"path": "public/stock-receipt-focus.mjs"
|
|
},
|
|
{
|
|
"id": "sgf_stock_period_projection",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Inventory/StockPeriodReport.php"
|
|
},
|
|
{
|
|
"id": "sgf_stock_period_ui",
|
|
"repository": "sgf",
|
|
"path": "resources/js/StockPeriodReportWorkspace.jsx"
|
|
},
|
|
{
|
|
"id": "sgf_stock_period_request",
|
|
"repository": "sgf",
|
|
"path": "resources/js/stock-period-request.js"
|
|
},
|
|
{
|
|
"id": "sgf_purchasing_entry",
|
|
"repository": "sgf",
|
|
"path": "app/Modules/Purchasing/PurchasingEntry.php"
|
|
},
|
|
{
|
|
"id": "sgf_purchasing_board",
|
|
"repository": "sgf",
|
|
"path": "public/purchasing-board.mjs"
|
|
},
|
|
{
|
|
"id": "sgf_purchasing_presenter",
|
|
"repository": "sgf",
|
|
"path": "public/purchasing-presenter.mjs"
|
|
},
|
|
{
|
|
"id": "sgf_purchasing_exit_guard",
|
|
"repository": "sgf",
|
|
"path": "public/purchasing-exit.mjs"
|
|
}
|
|
]
|
|
}
|