Files
SGF/docs/proofs/invoice-matching-progress-20261103.json
2026-11-04 09:37:20 +02:00

246 lines
11 KiB
JSON

{
"date": "2026-11-03T19:01:41.018Z",
"increment": "SGF-INVOICE-MATCHING-PROGRESS-QA-v1",
"passed": true,
"functional_code": true,
"checks": 47,
"tests": {
"available": {
"file": "private/invoice-progress-read-e286efd6035f/invoice-progress-read-result.json",
"sha256": "617a558ebdb78d15631fc5b482af3c609ee6c949840fbb9cd667d785eba3cc6a",
"checks": 14,
"result": {
"passed": true,
"checks": [
"authorised order exposes one matching projection per original line",
"native source order and accepted physical quantity are preserved",
"accepted unbilled1UN is available without inventing invoice or reservation",
"procurement and warehouse cannot read economic matching projection",
"foreign or unknown order remains outside authorised origin",
"unmapped unit cannot reuse matching projection",
"obsolete context header cannot read matching projection",
"single observed state yields same original source revision before UI capability decoration",
"disabled projection preserves original revision and invoice display",
"pending70 does not reserve or consume remaining60 after validated40",
"remaining quantity cannot exceed frozen order even with extra accepted input",
"existing return and reversal facts reduce accepted matching capacity",
"read deficit is explicit and remaining quantity is not negative",
"all reused source tables and sequences unchanged by read projection"
],
"variant": "available",
"order_id": 1,
"quantities": {
"line_id": 1,
"description": "Material recepcao QA",
"unit": "UN",
"ordered_milli": 1000,
"accepted_milli": 1000,
"returned_milli": 0,
"reversed_milli": 0,
"accepted_net_milli": 1000,
"validated_milli": 0,
"pending_milli": 0,
"remaining_milli": 1000,
"deficit_milli": 0
},
"financial_commands_repeated": 0,
"before_sha256": "a1e492f62b0dabc990a39c512bbff1be3a235c52b1301eeef81ef15d2979a1d7",
"after_sha256": "a1e492f62b0dabc990a39c512bbff1be3a235c52b1301eeef81ef15d2979a1d7",
"tables_checked": 142,
"new_right_names": [],
"visual_review": false,
"deployment_capacity_validated": false
}
},
"partial": {
"file": "private/invoice-progress-read-34534a38acd7/invoice-progress-read-result.json",
"sha256": "c8a53a904bd88f0e081f8955f3d3591566f33dbc43b043c5b1d0b81340ffcc72",
"checks": 16,
"result": {
"passed": true,
"checks": [
"authorised order exposes one matching projection per original line",
"native source order and accepted physical quantity are preserved",
"validated40+60 exhaust1UN while incompatible pending70 remains separately visible",
"original pending document is neither hidden rewritten nor deducted as a reservation",
"read discrepancy does not replace original independent-review permission decision",
"procurement and warehouse cannot read economic matching projection",
"foreign or unknown order remains outside authorised origin",
"unmapped unit cannot reuse matching projection",
"obsolete context header cannot read matching projection",
"single observed state yields same original source revision before UI capability decoration",
"disabled projection preserves original revision and invoice display",
"pending70 does not reserve or consume remaining60 after validated40",
"remaining quantity cannot exceed frozen order even with extra accepted input",
"existing return and reversal facts reduce accepted matching capacity",
"read deficit is explicit and remaining quantity is not negative",
"all reused source tables and sequences unchanged by read projection"
],
"variant": "partial",
"order_id": 2,
"quantities": {
"line_id": 2,
"description": "Material QA MAIN",
"unit": "UN",
"ordered_milli": 1000,
"accepted_milli": 1000,
"returned_milli": 0,
"reversed_milli": 0,
"accepted_net_milli": 1000,
"validated_milli": 1000,
"pending_milli": 700,
"remaining_milli": 0,
"deficit_milli": 0
},
"financial_commands_repeated": 0,
"before_sha256": "507ce4a1388db703972b546aa74bbe563ad3e7e484546f5296f71d513471abc9",
"after_sha256": "507ce4a1388db703972b546aa74bbe563ad3e7e484546f5296f71d513471abc9",
"tables_checked": 127,
"new_right_names": [],
"visual_review": false,
"deployment_capacity_validated": false
}
},
"ui": {
"file": "private/invoice-progress-read-34534a38acd7/invoice-progress-ui.json",
"sha256": "03a349940a85b771617fefcd0f63bce4a6473b111d7cef56d11788cc6e9ffa5b",
"checks": 11,
"result": {
"passed": true,
"checks": [
"milli quantities render exact three decimals without floating rounding",
"unsafe or fractional milli quantities are refused in display",
"pending overlap warning compares original quantity with actual remaining quantity",
"validated invoice is not warned as a new pending claim",
"other pending documents do not reserve remaining quantity in UI",
"quantity deficit remains explicit without negative available value",
"real invoice module wires matching capacity next to explicit line choice",
"real invoice module shows overlap note without changing document state",
"remaining capacity does not prefill or choose invoice quantity",
"opening matching projection never registers validates or recognises a document",
"late invoice history response cannot overwrite latest requested page"
],
"dom_simulation": true,
"business_commands": 0,
"visual_review": false
}
},
"demo": {
"file": "private/receipt-composition-9ec0a8e493ea/invoice-progress-demo.json",
"sha256": "9171093f9b0b7815af155989f43331074018373f55d773443d9299009938197f",
"checks": 6,
"result": {
"passed": true,
"checks": [
"new demo contains no main requests or invoices",
"native-authorised finance workspace remains available",
"empty invoice workspace invents no matching source",
"served matching module matches supplier-invoice-workspace.mjs",
"served matching module matches invoice-matching.mjs",
"demo probes preserve request invoice audit and permission data"
],
"before": "253435d4c1d4231b4334eb3f66e200f15c93b7e85d0c61e74b882e552adae94c",
"after": "253435d4c1d4231b4334eb3f66e200f15c93b7e85d0c61e74b882e552adae94c",
"visual_review": false
}
}
},
"sources": [
{
"file": "app/Modules/Purchasing/InvoiceMatchingProgress.php",
"sha256": "111f279dae49475d2959327155fd6b8d12ba75c42b3a20d6f18ddc3004505c8e"
},
{
"file": "app/Modules/Purchasing/InvoiceController.php",
"sha256": "85eb46ca7e65c60bed190e592a134eb48db5762c0a90b8cd4c9d6fbd81198ba4"
},
{
"file": "config/receipt_qa.php",
"sha256": "37bbd9055f1fd289e69e7ab328b8be2b2f1d0a553678301788d4d8181464fbcc"
},
{
"file": "public/invoice-matching.mjs",
"sha256": "e575a82b6c8b5cf531cff0a4d9dfe6e05234e73573bd025811c4bdf85baaed7c"
},
{
"file": "public/supplier-invoice-workspace.mjs",
"sha256": "a05b4f56151b8bc9735a0ba2ce47b475e22623aabb8be99a98290860efd6ae9e"
}
],
"pinned_native_manifests": {
"bundle": "7709a3d447d54c17d2fb4be4f9a0f70455c4a38c34e4bb8c643f6b5169071556",
"economic": "8b2d3aa61054e0edc54fcd818467eb2bacb5e1178f903b12ab44119e0f2e8d2e",
"internal": "2343af71f72259dd705f4cc3a3b163c90edf331a5b6ebe173531aeb341649e1b"
},
"authority": {
"new_right_names": [],
"new_writers": 0,
"native_validation_unchanged": true,
"state_definition_and_preview_confirmation_unchanged": true,
"source_revision_equivalent": true,
"pending_quantities_reserved": false,
"automatic_quantity_selection": false,
"original_pending_document_preserved": true
},
"read_projection": {
"two_aggregate_queries_for_quantity_facts": true,
"physical_corrections_reused_from_original_state": true,
"display_state_observed_once": true,
"full_dependency_revision_still_materialises_source_state": true,
"invoice_history_latest_response_wins": true
},
"regression": {
"completed_books_reused": true,
"financial_commands_repeated": 0,
"available_milli": 1000,
"after_validated40_60_remaining_milli": 0,
"pending70_milli": 700,
"all_source_tables_and_sequences_unchanged": true
},
"demo": {
"port": 8081,
"entry": "http://127.0.0.1:8081/qa/enter/issuer?open=1",
"initial_main_requests": 0,
"initial_invoices": 0
},
"prior_proofs_preserved": [
{
"file": "docs/proofs/request-history-composition-20261103.json",
"sha256": "564e0fdbc6a7a1142e72dbf835a96dadf0363d3dc963fc4cdc0a40bd05b8c26e"
},
{
"file": "docs/proofs/supplier-invoice-composition-20261103.json",
"sha256": "70faa647b0dac43f6d1b0111124b5451851dfd730148b10864e7f432914eecec"
},
{
"file": "docs/proofs/purchasing-continuity-composition-20261103.json",
"sha256": "6135df7c6dca784297b3a5f70a571585dc6d6a0d401a491c1d17ab91b780ce35"
},
{
"file": "docs/proofs/module-association-consolidation-summary-20261102.json",
"sha256": "8f693f39763ee21a22ebd3929d95ba1480f339eca18742fa53055c69eb5219ef"
}
],
"preservation": {
"installed_purchasing_sha256": "81899e531e9eec449717e694d8bdc106a9e220a828f5491ce918c1d2dc612787",
"target_database_connected": false,
"protected_six_records_changed": false,
"blocked_cache_cleared": false,
"previous_demo_data_written": false,
"public_rights_changed": false,
"publication": false,
"checkpoint": false
},
"limitations": [
"The quantity projection is read-only. A review permission or warning is not a promise that native validation will succeed.",
"Pending document quantities are shown separately and do not reserve matching capacity. No rejection correction or credit note is introduced.",
"The full order dependency state remains materialised for its original revision. Removing a duplicate observation is not a load benchmark or complete pagination/memory optimisation.",
"Source books contain one order line and existing invoice cases. Larger order histories, query/time/memory benchmarks and indexes are not validated by this trial.",
"Return/reversal boundary arithmetic is checked without repeating physical correction commands; complete physical correction suites remain their own proof.",
"DOM tests are not browser rendering visual or accessibility review. The React/Vite build is unchanged; served static module hashes and syntax are checked.",
"Operational policy, deployment compatibility, sustained load and capacity remain pending."
],
"visual_review_pending": true,
"deployment_capacity_validated": false
}