441 lines
18 KiB
JSON
441 lines
18 KiB
JSON
{
|
|
"date": "2026-11-04",
|
|
"increment": "SGF-PURCHASING-SINGLE-INSTALLATION-COMPLETE-v1",
|
|
"passed": true,
|
|
"checks": 60,
|
|
"criteria": {
|
|
"C01": {
|
|
"passed": true,
|
|
"definition": "docs/PURCHASING_COMPLETION.md"
|
|
},
|
|
"C02": {
|
|
"passed": true,
|
|
"definition": "docs/PURCHASING_COMPLETION.md"
|
|
},
|
|
"C03": {
|
|
"passed": true,
|
|
"definition": "docs/PURCHASING_COMPLETION.md"
|
|
},
|
|
"C04": {
|
|
"passed": true,
|
|
"definition": "docs/PURCHASING_COMPLETION.md"
|
|
},
|
|
"C05": {
|
|
"passed": true,
|
|
"definition": "docs/PURCHASING_COMPLETION.md"
|
|
},
|
|
"C06": {
|
|
"passed": true,
|
|
"definition": "docs/PURCHASING_COMPLETION.md",
|
|
"stock_observation": true
|
|
},
|
|
"C07": {
|
|
"passed": true,
|
|
"definition": "docs/PURCHASING_COMPLETION.md"
|
|
},
|
|
"C08": {
|
|
"passed": true,
|
|
"definition": "docs/PURCHASING_COMPLETION.md"
|
|
},
|
|
"C09": {
|
|
"passed": true,
|
|
"definition": "docs/PURCHASING_COMPLETION.md"
|
|
},
|
|
"C10": {
|
|
"passed": true,
|
|
"definition": "docs/PURCHASING_COMPLETION.md"
|
|
}
|
|
},
|
|
"installation": {
|
|
"id": "cc50a276c10c",
|
|
"entry": "http://127.0.0.1:8085/compras",
|
|
"port": 8085,
|
|
"reuses_existing_application_and_books": true,
|
|
"new_database": false,
|
|
"new_role": false,
|
|
"new_port": false,
|
|
"new_demonstration": false
|
|
},
|
|
"tests": {
|
|
"flow": {
|
|
"file": "private/receipt-composition-cc50a276c10c/completion-flow-result.json",
|
|
"sha256": "d7a5f7d0067b319f410fefbca0317bb733327868d0a2d70359010c2ceb552332",
|
|
"checks": 13,
|
|
"result": {
|
|
"passed": true,
|
|
"installation": "cc50a276c10c",
|
|
"port": 8085,
|
|
"checks": [
|
|
"C02 fornecedor novo criado pelo formulário real",
|
|
"C02 revisão distinta activa o fornecedor na mesma instalação",
|
|
"C03 necessidade criada pelo formulário sem preparar outra demonstração",
|
|
"C03 submissão e aprovação pela chefia usam a mesma necessidade",
|
|
"C04 três propostas incluem o fornecedor criado e revisto nesta instalação",
|
|
"C04 seis avaliações individuais por duas identidades no mesmo processo",
|
|
"C05 adjudicação fundamentada recebe aprovação distinta",
|
|
"C05 ordem emitida pelo botão real a partir da adjudicação aprovada",
|
|
"C06 recepção pelo formulário cria um movimento e recupera resposta perdida sem duplicar",
|
|
"C07 documento recebido registado e validado por outra identidade",
|
|
"C08 obrigação reconhecida por revisão distinta na mesma instalação",
|
|
"C08 documento reconhecido deixa de oferecer nova preparação",
|
|
"C08 vencimento ausente fica explícito sem data inventada"
|
|
],
|
|
"source_ids": {
|
|
"supplier": 8,
|
|
"request": 3,
|
|
"award": 2,
|
|
"order": 1,
|
|
"receipt": 1,
|
|
"movement": 1,
|
|
"invoice": 2,
|
|
"proposal": 2,
|
|
"obligation": 2
|
|
},
|
|
"actual_workspace_modules": true,
|
|
"real_http": true,
|
|
"dom_simulation": true,
|
|
"new_database": false,
|
|
"new_server": false,
|
|
"new_demonstration": false,
|
|
"payments_created": 0,
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"reads": {
|
|
"file": "private/receipt-composition-cc50a276c10c/completion-read-result.json",
|
|
"sha256": "02d237debb2e87714fd69d443001a4f03861ddf9af81cc9a1bc3d2b203513446",
|
|
"checks": 22,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"C09 suppliers conserva o documento exacto para trocar de função",
|
|
"C09 suppliers abre o documento real da mesma compra",
|
|
"C09 requests conserva o documento exacto para trocar de função",
|
|
"C09 requests abre o documento real da mesma compra",
|
|
"C09 sourcing conserva o documento exacto para trocar de função",
|
|
"C09 sourcing abre o documento real da mesma compra",
|
|
"C09 orders conserva o documento exacto para trocar de função",
|
|
"C09 orders abre o documento real da mesma compra",
|
|
"C09 receipts conserva o documento exacto para trocar de função",
|
|
"C09 receipts abre o documento real da mesma compra",
|
|
"C09 invoices conserva o documento exacto para trocar de função",
|
|
"C09 invoices abre o documento real da mesma compra",
|
|
"C09 obligations conserva o documento exacto para trocar de função",
|
|
"C09 obligations abre o documento real da mesma compra",
|
|
"C08 principal e saldo100MZN com origem coerente e vencimento desconhecido",
|
|
"C01 entrada recusa função inexistente",
|
|
"C01 entrada recusa etapa sem direito",
|
|
"C01 entrada recusa destino externo",
|
|
"C01 entrada recusa origem ambígua",
|
|
"C01 entrada recusa origens misturadas",
|
|
"C01 escolha de função exige CSRF",
|
|
"C09 painel único consulta documentos autorizados existentes"
|
|
],
|
|
"principal_minor": 10000,
|
|
"balance_minor": 10000,
|
|
"source_conflict": false,
|
|
"new_business_commands": 0,
|
|
"role_selection_posts": true,
|
|
"real_http": true,
|
|
"dom_simulation": true,
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"client": {
|
|
"file": "private/receipt-composition-cc50a276c10c/completion-client-result.json",
|
|
"sha256": "0f58fda6de5e5c0755641a2a68d04876167f699d5f5b10bafc2693f232d386fc",
|
|
"checks": 10,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"C09 prévia legível conserva montantes quantidades estado e pendências",
|
|
"C09 dados recebidos são texto e não instruções HTML",
|
|
"C09 designações não são confundidas com propriedades de objectos",
|
|
"C09 carregamento automático de selectores não marca formulários vazios como alterados",
|
|
"C09 cancelar a saída conserva campos por confirmar",
|
|
"C09 descarte só ocorre após escolha explícita",
|
|
"C09 operação em curso impede mudar função e editar a confirmação",
|
|
"C09 confirmação íntegra liberta navegação e restaura controlos",
|
|
"C09 resposta incerta mantém campos para recuperação manual",
|
|
"C09 fechar a página avisa de campos ainda por confirmar"
|
|
],
|
|
"dom_simulation": true,
|
|
"business_commands": 0,
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"canonical": {
|
|
"file": "private/receipt-composition-cc50a276c10c/completion-data-result.json",
|
|
"sha256": "335fc6f7a66be092fd6543aec92933cba76afd4296fcf7d0c5984ac710cf520b",
|
|
"checks": 12,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"C10 requisição adjudicação e ordem pertencem ao mesmo processo nativo",
|
|
"C10 três propostas e seis avaliações permanecem gravadas",
|
|
"C10 proposta 4 tem dois avaliadores distintos",
|
|
"C10 proposta 6 tem dois avaliadores distintos",
|
|
"C10 proposta 2 tem dois avaliadores distintos",
|
|
"C10 reserva compromisso e consumo100MZN únicos no orçamento nativo",
|
|
"C10 uma recepção por identidade distinta do emissor",
|
|
"C10 um único movimento físico1UN depois da recuperação da resposta",
|
|
"C10 uma factura validada por identidade distinta",
|
|
"C10 principal100MZN único e reconhecimento por identidade distinta",
|
|
"C10 nenhum pagamento criado no percurso",
|
|
"C10 decisões e avaliações mantêm auditoria dos comandos originais"
|
|
],
|
|
"facts": {
|
|
"request_number": "REQ-2026-000003",
|
|
"order_number": "OC-2026-000001",
|
|
"invoice_number": "FACT-COMPRA-COMPLETA-20261104",
|
|
"principal_minor": 10000,
|
|
"physical_milli": 1000
|
|
},
|
|
"source_ids": {
|
|
"supplier": 8,
|
|
"request": 3,
|
|
"award": 2,
|
|
"order": 1,
|
|
"receipt": 1,
|
|
"movement": 1,
|
|
"invoice": 2,
|
|
"proposal": 2,
|
|
"obligation": 2
|
|
},
|
|
"read_only_verification": true,
|
|
"new_database": false,
|
|
"new_rights": false,
|
|
"visual_review": false
|
|
}
|
|
},
|
|
"preservation": {
|
|
"file": "private/receipt-composition-cc50a276c10c/completion-preservation-result.json",
|
|
"sha256": "7d4cc9b6ba9c249fdd192ba997a3c1129259cf394062aafb39f54cc4af875635",
|
|
"checks": 2,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"C10 nenhuma concessão alterada durante a conclusão",
|
|
"C10 orçamento do host intacto sem autoridade concorrente"
|
|
],
|
|
"tables": {
|
|
"permission_grants": {
|
|
"rows": 65,
|
|
"before_sha256": "4299820077d92fc6e9d0d52380bca6e6131aba387f9cf79dbffb58cbacee3f12",
|
|
"after_sha256": "4299820077d92fc6e9d0d52380bca6e6131aba387f9cf79dbffb58cbacee3f12"
|
|
},
|
|
"cb_budget_entries": {
|
|
"rows": 0,
|
|
"before_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
"after_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
|
|
}
|
|
},
|
|
"baseline": "private pre-flow backup",
|
|
"database_writes": false,
|
|
"restored_database": false,
|
|
"new_database": false
|
|
}
|
|
},
|
|
"stock": {
|
|
"file": "private/receipt-composition-cc50a276c10c/completion-stock-result.json",
|
|
"sha256": "b9cabd84f5cdc40b04e04bcbe3bcf2aad9a0bc86f25b1ef6b2118cdce45ed8b6",
|
|
"checks": 1,
|
|
"result": {
|
|
"passed": true,
|
|
"checks": [
|
|
"C06 Stock consulta na mesma instalação o movimento1UN criado pela recepção do percurso completo"
|
|
],
|
|
"movement_id": 1,
|
|
"physical_milli": "1000",
|
|
"new_business_commands": 0,
|
|
"same_installation": true,
|
|
"visual_review": false
|
|
}
|
|
}
|
|
},
|
|
"sources": [
|
|
{
|
|
"file": "app/Modules/Purchasing/PurchasingEntry.php",
|
|
"sha256": "a02d47be1a6970a2903d1cb33b16a2fd75e89b81908bda7a1bdeae9592dd8c25"
|
|
},
|
|
{
|
|
"file": "resources/views/purchasing-entry.blade.php",
|
|
"sha256": "4b65deb9b17af7eb7e512bf64117fb99ea14fb2ebc5b49b2d425fcbad13e3291"
|
|
},
|
|
{
|
|
"file": "resources/views/purchasing-workspace.blade.php",
|
|
"sha256": "23bf96eeb90e006df58d260eee70494441d3954c0c390aa9ae043c8bdcff1115"
|
|
},
|
|
{
|
|
"file": "resources/views/partials/purchasing-navigation.blade.php",
|
|
"sha256": "b1b4e8a4aed0c2fc4020a34f430ebe76a6e3a13e137cd6179c6c6cd872f272c2"
|
|
},
|
|
{
|
|
"file": "resources/views/supplier-workspace.blade.php",
|
|
"sha256": "7931bd3cde587a021fbc260186702f701098080e3c61296efd48d1855c745355"
|
|
},
|
|
{
|
|
"file": "resources/js/PurchasingHome.jsx",
|
|
"sha256": "8021d78e6188ce2586bb0d48d50e2b42cc210dff862a307106b065803951ffe6"
|
|
},
|
|
{
|
|
"file": "public/purchasing-exit.mjs",
|
|
"sha256": "73c312bf6ff45af3a1a58fb5b48d312573eda1e0cc975c2a2b8f48e942f783d4"
|
|
},
|
|
{
|
|
"file": "public/purchasing-board.mjs",
|
|
"sha256": "dca255bf504d90fb74e7de9e4ce647f28e17ced470850c0fd2d74bf404b83971"
|
|
},
|
|
{
|
|
"file": "public/purchasing-presenter.mjs",
|
|
"sha256": "2d20354ff573ec05ac4acc9e64d4ba3f10e9554f84e11afb502127649c84c389"
|
|
},
|
|
{
|
|
"file": "public/purchasing-focus.mjs",
|
|
"sha256": "804854fbcf066be1688f2d4f15dc13c986dcb44ab30f9fbcbc56d6428c60d21c"
|
|
},
|
|
{
|
|
"file": "public/request-workspace.mjs",
|
|
"sha256": "35875cff6b4cdba1be080896c986a799b59a08fd5e8f956d0b587e11731dbbb7"
|
|
},
|
|
{
|
|
"file": "public/sourcing-workspace.mjs",
|
|
"sha256": "a39889528688affa974f48d3e74994339d0692ea478264a7ab79520db9c8fcd5"
|
|
},
|
|
{
|
|
"file": "public/order-workspace.mjs",
|
|
"sha256": "7658d7b55180e634a71998dad44ba707e0def3c06471a5e1cae1b29381d650f4"
|
|
},
|
|
{
|
|
"file": "public/receipt-workspace.mjs",
|
|
"sha256": "c8e06b575d66a4e160516eff151fd4bc2d901fa68da6e120dbd6673f06f8e18a"
|
|
},
|
|
{
|
|
"file": "public/supplier-workspace.mjs",
|
|
"sha256": "0b0e5e4ccc6f7fe1232c7129045063890e493c56431899e7590ebb5872155516"
|
|
},
|
|
{
|
|
"file": "public/supplier-invoice-workspace.mjs",
|
|
"sha256": "cd84dc3d40546f18f4e091fbe94473405f658fe7cdbafc4e44aee9a9460ddf32"
|
|
},
|
|
{
|
|
"file": "public/supplier-obligation-workspace.mjs",
|
|
"sha256": "d33c2e8426885036b63cd8ce9a6001ae17aab42b775d6a7930eedf721d539bda"
|
|
},
|
|
{
|
|
"file": "public/obligation-evidence.mjs",
|
|
"sha256": "4d9aeac1b404275accf15a3a6ef0d392175cd7afbc02a4e891f19a6a1131f4b3"
|
|
}
|
|
],
|
|
"unchanged_business_authority": [
|
|
{
|
|
"file": "app/Modules/Purchasing/ReceiptRuntime.php",
|
|
"sha256": "9b426476b2805094fb317cc753385ef43882fb4964883e880eac287eed89d9e0"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/RequestController.php",
|
|
"sha256": "c5c2b78866be7f0e1c8ba09c1af538cefcfbafbea81197833b50821bba0fcbca"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/SupplierController.php",
|
|
"sha256": "30d4ef72e079a63b470c952727aaa7c42a45302a58b50d085a53a57737a99048"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/SourcingController.php",
|
|
"sha256": "84d807fe841a47335836e281677813157d78ed28c4e46cf1a4267121b7aedf17"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/OrderController.php",
|
|
"sha256": "4ebab47ecb008f3c31f970f399e8c19df7e860d7b6482227a800fb61dd28dd48"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/ReceiptController.php",
|
|
"sha256": "0226b354db20a0eab19598ff35dbb35e0fa7f117de0c477e0b870159024d49df"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/InvoiceController.php",
|
|
"sha256": "85eb46ca7e65c60bed190e592a134eb48db5762c0a90b8cd4c9d6fbd81198ba4"
|
|
},
|
|
{
|
|
"file": "app/Modules/Purchasing/ObligationController.php",
|
|
"sha256": "347e629306d6c1f4873afac547d13fae8ade7b268906d1312a64e7eb6998e701"
|
|
},
|
|
{
|
|
"file": "packages/payables/src/Payables.php",
|
|
"sha256": "ed853f3eb48ebcf91f51a8fe9ed8e49b0e1bc30cce4852cc9394d51cff28c74d"
|
|
},
|
|
{
|
|
"file": "resources/js/context-transition.js",
|
|
"sha256": "3d76e21eca185ae97c1a6a6f5965ab33c242a28391c8c50f5af30dfc0a4a3c6a"
|
|
},
|
|
{
|
|
"file": "app/Shared/Context/ModuleNavigation.php",
|
|
"sha256": "397d7a4af7d16547ff60ea20a6733aa994d98a6ecf0cbca4b1437da14c3c55a1"
|
|
}
|
|
],
|
|
"pinned_native_manifests": {
|
|
"bundle": "7709a3d447d54c17d2fb4be4f9a0f70455c4a38c34e4bb8c643f6b5169071556",
|
|
"economic": "8b2d3aa61054e0edc54fcd818467eb2bacb5e1178f903b12ab44119e0f2e8d2e",
|
|
"internal": "2343af71f72259dd705f4cc3a3b163c90edf331a5b6ebe173531aeb341649e1b"
|
|
},
|
|
"pre_navigation_flow_sources": {
|
|
"captured_after_success_before_navigation_changes": true,
|
|
"files": {
|
|
"public/request-workspace.mjs": "1190836eb4397d3dbdd6d655e22d80bf32564bcf579f46b3d7066d3aa211eec7",
|
|
"public/supplier-workspace.mjs": "179d2d41d764262d952f67cf5ddec3f5001a5aedb3f876fd427d8f16893bb4d7",
|
|
"public/sourcing-workspace.mjs": "a8cb7f90453a914cf1419267197919d51ca57b4d2f0e70400c18df0272039295",
|
|
"public/order-workspace.mjs": "3b0192130b600f891e9f9bbd00fe60ee24e8cde5a82d4f79cd9065b2c279334b",
|
|
"public/receipt-workspace.mjs": "c99e668d1b55bf233531e2dd90898b21a890bd0b8653cc3fcc7d23de1ee13a0e",
|
|
"public/supplier-invoice-workspace.mjs": "4b7868ab73d4da67e161ca8d8565e7e4d5e5c15a81b1c2acc62626428609fc4c",
|
|
"public/supplier-obligation-workspace.mjs": "19d5b7778e904e5e6d80aeccd06406472414c29737868c3826370fd35f19dcc0"
|
|
}
|
|
},
|
|
"build": {
|
|
"manifest_sha256": "398b42a158488d42c64e74bc76e59053d19d15089ad7d4f36c1efe4c25c512c5",
|
|
"entry_sha256": "1a12c21ebd42d09624e2af87e0132ea0e73c4343193636be10e6548a2ea5decb"
|
|
},
|
|
"prior_proofs_preserved": [
|
|
{
|
|
"file": "docs/proofs/stock-period-report-20261103.json",
|
|
"sha256": "0ab25af6ffbff7d8ecb651df833771b082bf92d52f97eca4278fcac3fd5ea53b"
|
|
},
|
|
{
|
|
"file": "docs/proofs/purchasing-integrated-composition-20261103.json",
|
|
"sha256": "10e8a7862a5a96cac6ec03dece68743605fd0ca98313c38070797fe40fcd2396"
|
|
},
|
|
{
|
|
"file": "docs/proofs/module-association-consolidation-summary-20261102.json",
|
|
"sha256": "8f693f39763ee21a22ebd3929d95ba1480f339eca18742fa53055c69eb5219ef"
|
|
}
|
|
],
|
|
"preservation": {
|
|
"installed_purchasing_sha256": "81899e531e9eec449717e694d8bdc106a9e220a828f5491ce918c1d2dc612787",
|
|
"protected_six_records_changed": false,
|
|
"blocked_cache_cleared": false,
|
|
"other_demo_instances_changed": false,
|
|
"target_database_connected": false,
|
|
"new_public_or_real_rights": false,
|
|
"permission_grants_unchanged": true,
|
|
"host_budget_unchanged": true,
|
|
"activation_of_candidates": false,
|
|
"publication": false,
|
|
"checkpoint": false
|
|
},
|
|
"functional_scope": "Existing local synthetic purchasing acquisition from new supplier and requisition through independently recognised payable. One persistent installation, normal native workflows and UI modules, no replay of completed commands.",
|
|
"limits": [
|
|
"The main path uses actual workspace modules/forms and HTTP on8085 with a simulated DOM, not a browser visual/accessibility acceptance.",
|
|
"After the successful business flow, document-retention navigation and exit guards were improved;22 read/entry checks and10 client checks cover those changes without repeating the business operations.",
|
|
"The final SQL check is READ ONLY and checks canonical state, distinct identities, unique effects and audit. An initial verifier used the wrong evaluation-table name; corrected to the existing proposal_evaluations without replaying any command.",
|
|
"The initial host/native database dumps and code-update backups are private and excluded from the repository. Backup extraction comparison proves permissions and host-budget rows unchanged; no restore was executed.",
|
|
"8085 is now the continuing working installation with a completed100MZN example, superseding its earlier empty-demo state. Other demos and their historical proofs are preserved.",
|
|
"Real operations, payments, accounting of this new origin, fiscal issuance, historical responsibility migration, deployment and publication remain outside this completion.",
|
|
"Visual review, sustained load, deployment capability and full operating-system restart have not been validated. The start command was checked against the already running installation and does not provision a new one."
|
|
],
|
|
"acceptance_presumed": false,
|
|
"initial_summary_preserved": {
|
|
"file": "docs/proofs/purchasing-completion-20261104.json",
|
|
"sha256": "60b73e7691fd7a7dc6fd222658390d15c0c7020193b03bc3ab8ad22ba8b1eded"
|
|
},
|
|
"final_summary": true
|
|
}
|