{
  "base_url": "http://127.0.0.1:8094",
  "counts": {
    "blocked": 0,
    "executed": 19,
    "fail": 0,
    "pass": 19,
    "skip": 0
  },
  "database": "scola_t6b2_audit_20260817T094947Z",
  "identity": {
    "backend_application_tree_hash": "e890d376cd5340f4c492c9e8dd71f0c67d03cb7485b1d5106bedfd8273f8399d",
    "backend_git_commit_sha": "5e6be85291fd9c2827d92e964957c76634956e2b",
    "harness_worktree_git_commit_sha": "b2cabfbe914a50f50efdc43cd43631b979948f23",
    "base_url": "http://127.0.0.1:8094",
    "database_name": "scola_t6b2_audit_20260817T094947Z",
    "database_uuid": "2bf5fd27-9390-11f1-9617-28e8d4be73f5",
    "frontend_application_commit_sha": "5589e5834562aa6f22a3007f979ab49dc7d1352d",
    "frontend_application_tree_hash": "d830aebc506ae187269548f190a2f138b22fd1ba31cb6660dd975f8aa7b2e7c2",
    "frontend_build_checksum": "8da7405ec9b05f7613a552f75ebe637c75767a6ea4bde377ecf952eb3cc452ec",
    "frontend_git_commit_sha": "5589e5834562aa6f22a3007f979ab49dc7d1352d",
    "golden_fixture_checksum": "40bc6c2762d27692e7947b6e41b1446c890e833c76728ba0fe640916a2deec96",
    "golden_fixture_version": "gt-core-b1.1",
    "runtime_application_tree_hash": "e890d376cd5340f4c492c9e8dd71f0c67d03cb7485b1d5106bedfd8273f8399d",
    "served_frontend_identity": {
      "build_run_id": "fe-build-5bebc1b475dd-mtdstizd",
      "builtAt": "2026-08-29T03:07:15.954Z",
      "frontend_git_commit_sha": "5bebc1b475ddd088b4ee29f3d59aae83a135b67a",
      "version": "5bebc1b475dd+mtdstizd"
    }
  },
  "modules": {
    "scola_account": "uninstalled",
    "scola_admission": "installed",
    "scola_admission_fees_bridge": "installed",
    "scola_bundle_admission": "installed",
    "scola_bundle_fees": "installed",
    "scola_core": "installed",
    "scola_fees": "installed"
  },
  "overlay_id": "32cd2546-0c0d-4448-ac8b-842d917c343f",
  "results": [
    {
      "case": "RT-T6B2-POS-01",
      "evidence": {
        "billed": {
          "data": {
            "amount": 125000.0,
            "bill_id": 37,
            "state": "billed"
          },
          "success": true
        },
        "bills": [
          {
            "amount": 125000.0,
            "id": 37,
            "source_ref": "adm-fees-handoff:29:200:377",
            "state": "billed",
            "verified_amount": 0.0
          }
        ],
        "enroll": {
          "data": {
            "admission": {
              "id": 200,
              "w03_state": "enrolled"
            },
            "message": "Transisi W03 berhasil",
            "w03_state": "enrolled"
          },
          "success": true
        },
        "enrollments": [
          {
            "amount": 125000.0,
            "company_id": 29,
            "creator_id": 1,
            "id": 73,
            "source_ref": "adm-fees-handoff:29:200:377",
            "state": "pending"
          }
        ],
        "handoff": {
          "attempts": 1,
          "error": false,
          "id": 86,
          "lines": [
            {
              "enrollment_id": 73,
              "key": "adm-fees:29:200:377:40:1",
              "state": "processed"
            }
          ],
          "processor_uid": 1,
          "source_actor": "t6b2.enroller",
          "source_role": "enrollment_officer",
          "state": "processed"
        }
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-NEG-01",
      "evidence": {
        "enroller_bill": {
          "capability": "finance.billing.manage",
          "error": "capability_denied",
          "message": "Insufficient permissions for this API route.",
          "path": "/api/v1/fees/w10/enrollments/transition",
          "success": false
        },
        "enroller_rule": {
          "capability": "finance.billing.configure",
          "error": "capability_denied",
          "message": "Insufficient permissions for this API route.",
          "path": "/api/v1/fees/w10/rules/save",
          "success": false
        },
        "viewer_enroll": {
          "capability": [
            "admissions.application.verify",
            "admissions.application.approve",
            "admissions.application.enroll",
            "admissions.application.reopen",
            "admissions.registration.edit"
          ],
          "error": "capability_denied",
          "message": "Insufficient permissions for this API route.",
          "path": "/api/SPMB/admissions/200/transition",
          "success": false
        }
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-SCP-01",
      "evidence": {
        "parent_list_ok": true,
        "student_list_ok": true,
        "unlinked": {
          "error": "not_found",
          "message": "Data tidak ditemukan.",
          "success": false,
          "timestamp": "2026-08-29T13:43:56+00:00"
        }
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-TEN-01",
      "evidence": {
        "attach": {
          "after": [
            40
          ],
          "before": [
            40
          ],
          "error": "Template biaya tidak ditemukan.",
          "ok": false
        },
        "handoff_count": 1,
        "update": {
          "error": "Access denied",
          "success": false
        }
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-VAL-01",
      "evidence": {
        "cfg": {
          "account_moves": 0,
          "admission_id": 201,
          "admission_state": "done",
          "bills": [],
          "enrollments": [],
          "handoff": {
            "attempts": 0,
            "error": "configuration_required",
            "id": 87,
            "lines": [],
            "processor_uid": 0,
            "source_actor": "t6b2.enroller",
            "source_role": "enrollment_officer",
            "state": "configuration_required"
          },
          "handoff_count": 1,
          "payments": [],
          "student_company": 29,
          "student_id": 378,
          "w03_state": "enrolled"
        },
        "inactive_attach": {
          "after": [],
          "before": [],
          "error": "Template biaya harus aktif dan berlaku.",
          "ok": false
        },
        "inactive_create": {
          "data": {
            "id": 41,
            "w10_state": "draft"
          },
          "success": true
        },
        "inactive_id": 41,
        "inactive_update": {
          "error": "Access denied",
          "success": false
        }
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-STA-01",
      "evidence": {
        "accepted_to_enrolled": "enrolled",
        "billed": "billed",
        "pending": "pending"
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-IDM-01",
      "evidence": {
        "denied_count": 1,
        "process": [
          {
            "attempts": 1,
            "enrollments": [
              74
            ],
            "id": 88,
            "ok": true,
            "state": "processed"
          },
          {
            "attempts": 1,
            "enrollments": [
              74
            ],
            "id": 88,
            "ok": true,
            "state": "processed"
          }
        ],
        "snap": {
          "account_moves": 0,
          "admission_id": 202,
          "admission_state": "done",
          "bills": [],
          "enrollments": [
            {
              "amount": 125000.0,
              "company_id": 29,
              "creator_id": 1,
              "id": 74,
              "source_ref": "adm-fees-handoff:29:202:379",
              "state": "pending"
            }
          ],
          "handoff": {
            "attempts": 1,
            "error": false,
            "id": 88,
            "lines": [
              {
                "enrollment_id": 74,
                "key": "adm-fees:29:202:379:40:1",
                "state": "processed"
              }
            ],
            "processor_uid": 1,
            "source_actor": "t6b2.enroller",
            "source_role": "enrollment_officer",
            "state": "processed"
          },
          "handoff_count": 1,
          "payments": [],
          "student_company": 29,
          "student_id": 379,
          "w03_state": "enrolled"
        },
        "success_count": 1,
        "transitions": [
          {
            "data": {
              "admission": {
                "id": 202,
                "w03_state": "enrolled"
              },
              "message": "Transisi W03 berhasil",
              "w03_state": "enrolled"
            },
            "success": true
          },
          {
            "data": {
              "message": "Permintaan bersamaan ditolak. Ulangi dengan Idempotency-Key yang sama."
            },
            "error": "conflict",
            "success": false
          }
        ]
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-REC-01",
      "evidence": {
        "forced": {
          "id": 89,
          "ok": true,
          "state": "recovery_required"
        },
        "retry": {
          "attempts": 2,
          "enrollments": [
            75
          ],
          "id": 89,
          "ok": true,
          "state": "processed"
        },
        "snap": {
          "account_moves": 0,
          "admission_id": 203,
          "admission_state": "done",
          "bills": [],
          "enrollments": [
            {
              "amount": 125000.0,
              "company_id": 29,
              "creator_id": 1,
              "id": 75,
              "source_ref": "adm-fees-handoff:29:203:380",
              "state": "pending"
            }
          ],
          "handoff": {
            "attempts": 2,
            "error": false,
            "id": 89,
            "lines": [
              {
                "enrollment_id": 75,
                "key": "adm-fees:29:203:380:40:1",
                "state": "processed"
              }
            ],
            "processor_uid": 1,
            "source_actor": "t6b2.enroller",
            "source_role": "enrollment_officer",
            "state": "processed"
          },
          "handoff_count": 1,
          "payments": [],
          "student_company": 29,
          "student_id": 380,
          "w03_state": "enrolled"
        }
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-XRP-01",
      "evidence": {
        "fees_copied": false,
        "handoff_projection": null,
        "w10_list": true
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-XMD-01",
      "evidence": {
        "account_moves": 0,
        "accounting": {
          "error": "accounting_excluded",
          "message": "Posting akuntansi bukan bagian SC-FEES V1.",
          "success": false
        },
        "callback": {
          "error": "gateway_excluded",
          "message": "Pembayaran gateway bukan bagian T6B.1.",
          "success": false
        },
        "dataset": {
          "error": {
            "code": 200,
            "data": {
              "arguments": [
                "/web/dataset mutations are out of scope for Scola product actors; use registered /api routes."
              ],
              "context": {},
              "debug": "Traceback (most recent call last):\n  File \"/home/scola/odoo/odoo/http.py\", line 1764, in _serve_db\n    return service_model.retrying(self._serve_ir_http, self.env)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/home/scola/odoo/odoo/service/model.py\", line 133, in retrying\n    result = func()\n             ^^^^^^\n  File \"/home/scola/odoo/odoo/http.py\", line 1791, in _serve_ir_http\n    response = self.dispatcher.dispatch(rule.endpoint, args)\n               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/home/scola/odoo/odoo/http.py\", line 1995, in dispatch\n    result = self.request.registry['ir.http']._dispatch(endpoint)\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/home/scola/odoo/releases/backend/5e6be85291fd9c2827d92e964957c76634956e2b/gcgscola/scola_core/models/ir_http.py\", line 534, in _dispatch\n    return cls._build_capability_gate_response(\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/home/scola/odoo/releases/backend/5e6be85291fd9c2827d92e964957c76634956e2b/gcgscola/scola_core/models/ir_http.py\", line 242, in _build_capability_gate_response\n    raise AccessError(\nodoo.exceptions.AccessError: /web/dataset mutations are out of scope for Scola product actors; use registered /api routes.\n",
              "message": "/web/dataset mutations are out of scope for Scola product actors; use registered /api routes.",
              "name": "odoo.exceptions.AccessError"
            },
            "message": "Odoo Server Error"
          },
          "id": 8,
          "jsonrpc": "2.0"
        },
        "gateway": {
          "error": "gateway_excluded",
          "message": "Pembayaran gateway bukan bagian T6B.1.",
          "success": false
        },
        "spmb_invoice": {
          "error": "accounting_excluded",
          "message": "Tagihan pra-enrollment bukan bagian SC-ADM. Gunakan penagihan kanonis W10 setelah siswa aktif.",
          "success": false
        },
        "spmb_pay": {
          "error": "accounting_excluded",
          "message": "Tagihan pra-enrollment bukan bagian SC-ADM. Gunakan penagihan kanonis W10 setelah siswa aktif.",
          "success": false
        }
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-UIA-01",
      "evidence": {
        "off_enroll": {
          "data": {
            "admission": {
              "id": 205,
              "w03_state": "enrolled"
            },
            "message": "Transisi W03 berhasil",
            "w03_state": "enrolled"
          },
          "success": true
        },
        "prep_ok": true,
        "session_off": {
          "error": "feature_disabled",
          "feature_flag": "scola_fees",
          "message": "Feature is disabled for the current tenant.",
          "path": "/api/v1/fees/w10/enrollments/transition",
          "success": false
        },
        "snap": {
          "account_moves": 0,
          "admission_id": 205,
          "admission_state": "done",
          "bills": [],
          "enrollments": [],
          "handoff": null,
          "handoff_count": 0,
          "payments": [],
          "student_company": 29,
          "student_id": 381,
          "w03_state": "enrolled"
        }
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-XINT-A",
      "evidence": {
        "account_moves": 0,
        "admission_id": 205,
        "admission_state": "done",
        "bills": [],
        "enrollments": [],
        "handoff": null,
        "handoff_count": 0,
        "payments": [],
        "student_company": 29,
        "student_id": 381,
        "w03_state": "enrolled"
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-XINT-B",
      "evidence": {
        "account_moves": 0,
        "admission_id": 202,
        "admission_state": "done",
        "bills": [],
        "enrollments": [
          {
            "amount": 125000.0,
            "company_id": 29,
            "creator_id": 1,
            "id": 74,
            "source_ref": "adm-fees-handoff:29:202:379",
            "state": "pending"
          }
        ],
        "handoff": {
          "attempts": 1,
          "error": false,
          "id": 88,
          "lines": [
            {
              "enrollment_id": 74,
              "key": "adm-fees:29:202:379:40:1",
              "state": "processed"
            }
          ],
          "processor_uid": 1,
          "source_actor": "t6b2.enroller",
          "source_role": "enrollment_officer",
          "state": "processed"
        },
        "handoff_count": 1,
        "payments": [],
        "student_company": 29,
        "student_id": 379,
        "w03_state": "enrolled"
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-XINT-C",
      "evidence": {
        "attach": {
          "after": [
            40
          ],
          "before": [
            40
          ],
          "error": "Template biaya tidak ditemukan.",
          "ok": false
        },
        "update": {
          "error": "Access denied",
          "success": false
        }
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-XINT-D",
      "evidence": {
        "bill": {
          "capability": "finance.billing.manage",
          "error": "capability_denied",
          "message": "Insufficient permissions for this API route.",
          "path": "/api/v1/fees/w10/enrollments/transition",
          "success": false
        },
        "rule": {
          "capability": "finance.billing.configure",
          "error": "capability_denied",
          "message": "Insufficient permissions for this API route.",
          "path": "/api/v1/fees/w10/rules/save",
          "success": false
        }
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-XINT-E",
      "evidence": {
        "error": "feature_disabled",
        "feature_flag": "scola_fees",
        "message": "Feature is disabled for the current tenant.",
        "path": "/api/v1/fees/w10/enrollments/transition",
        "success": false
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-XINT-F",
      "evidence": {
        "account_moves": 0,
        "admission_id": 203,
        "admission_state": "done",
        "bills": [],
        "enrollments": [
          {
            "amount": 125000.0,
            "company_id": 29,
            "creator_id": 1,
            "id": 75,
            "source_ref": "adm-fees-handoff:29:203:380",
            "state": "pending"
          }
        ],
        "handoff": {
          "attempts": 2,
          "error": false,
          "id": 89,
          "lines": [
            {
              "enrollment_id": 75,
              "key": "adm-fees:29:203:380:40:1",
              "state": "processed"
            }
          ],
          "processor_uid": 1,
          "source_actor": "t6b2.enroller",
          "source_role": "enrollment_officer",
          "state": "processed"
        },
        "handoff_count": 1,
        "payments": [],
        "student_company": 29,
        "student_id": 380,
        "w03_state": "enrolled"
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-XINT-G",
      "evidence": {
        "billed": {
          "data": {
            "amount": 125000.0,
            "bill_id": 38,
            "state": "billed"
          },
          "success": true
        },
        "cancel": {
          "error": "payment_exists",
          "ok": false,
          "state": "recovery_required"
        },
        "payments": [
          {
            "amount": 125000.0,
            "id": 23,
            "state": "verified"
          }
        ],
        "reverse": {
          "error": "Anda tidak memiliki wewenang untuk aksi ini.",
          "success": false
        },
        "submit": {
          "data": {
            "payment_id": 23,
            "remaining": 125000.0,
            "state": "submitted"
          },
          "success": true
        },
        "submit_retried": false,
        "verify": {
          "data": {
            "bill_state": "paid",
            "payment_id": 23,
            "receipt_id": 23,
            "remaining": 0.0,
            "state": "verified"
          },
          "success": true
        },
        "w03": "enrolled"
      },
      "result": "PASS"
    },
    {
      "case": "RT-T6B2-XINT-H",
      "evidence": {
        "account_moves": 0,
        "spmb_invoice": {
          "error": "accounting_excluded",
          "message": "Tagihan pra-enrollment bukan bagian SC-ADM. Gunakan penagihan kanonis W10 setelah siswa aktif.",
          "success": false
        },
        "spmb_pay": {
          "error": "accounting_excluded",
          "message": "Tagihan pra-enrollment bukan bagian SC-ADM. Gunakan penagihan kanonis W10 setelah siswa aktif.",
          "success": false
        }
      },
      "result": "PASS"
    }
  ],
  "run_code": "503648",
  "snapshot": [
    {
      "account_moves": 0,
      "admission_id": 200,
      "admission_state": "done",
      "bills": [
        {
          "amount": 125000.0,
          "id": 37,
          "source_ref": "adm-fees-handoff:29:200:377",
          "state": "billed",
          "verified_amount": 0.0
        }
      ],
      "enrollments": [
        {
          "amount": 125000.0,
          "company_id": 29,
          "creator_id": 1,
          "id": 73,
          "source_ref": "adm-fees-handoff:29:200:377",
          "state": "billed"
        }
      ],
      "handoff": {
        "attempts": 1,
        "error": false,
        "id": 86,
        "lines": [
          {
            "enrollment_id": 73,
            "key": "adm-fees:29:200:377:40:1",
            "state": "processed"
          }
        ],
        "processor_uid": 1,
        "source_actor": "t6b2.enroller",
        "source_role": "enrollment_officer",
        "state": "processed"
      },
      "handoff_count": 1,
      "payments": [],
      "student_company": 29,
      "student_id": 377,
      "w03_state": "enrolled"
    },
    {
      "account_moves": 0,
      "admission_id": 201,
      "admission_state": "done",
      "bills": [],
      "enrollments": [],
      "handoff": {
        "attempts": 0,
        "error": "configuration_required",
        "id": 87,
        "lines": [],
        "processor_uid": 0,
        "source_actor": "t6b2.enroller",
        "source_role": "enrollment_officer",
        "state": "configuration_required"
      },
      "handoff_count": 1,
      "payments": [],
      "student_company": 29,
      "student_id": 378,
      "w03_state": "enrolled"
    },
    {
      "account_moves": 0,
      "admission_id": 202,
      "admission_state": "done",
      "bills": [],
      "enrollments": [
        {
          "amount": 125000.0,
          "company_id": 29,
          "creator_id": 1,
          "id": 74,
          "source_ref": "adm-fees-handoff:29:202:379",
          "state": "pending"
        }
      ],
      "handoff": {
        "attempts": 1,
        "error": false,
        "id": 88,
        "lines": [
          {
            "enrollment_id": 74,
            "key": "adm-fees:29:202:379:40:1",
            "state": "processed"
          }
        ],
        "processor_uid": 1,
        "source_actor": "t6b2.enroller",
        "source_role": "enrollment_officer",
        "state": "processed"
      },
      "handoff_count": 1,
      "payments": [],
      "student_company": 29,
      "student_id": 379,
      "w03_state": "enrolled"
    },
    {
      "account_moves": 0,
      "admission_id": 203,
      "admission_state": "done",
      "bills": [],
      "enrollments": [
        {
          "amount": 125000.0,
          "company_id": 29,
          "creator_id": 1,
          "id": 75,
          "source_ref": "adm-fees-handoff:29:203:380",
          "state": "pending"
        }
      ],
      "handoff": {
        "attempts": 2,
        "error": false,
        "id": 89,
        "lines": [
          {
            "enrollment_id": 75,
            "key": "adm-fees:29:203:380:40:1",
            "state": "processed"
          }
        ],
        "processor_uid": 1,
        "source_actor": "t6b2.enroller",
        "source_role": "enrollment_officer",
        "state": "processed"
      },
      "handoff_count": 1,
      "payments": [],
      "student_company": 29,
      "student_id": 380,
      "w03_state": "enrolled"
    },
    {
      "account_moves": 0,
      "admission_id": 204,
      "admission_state": "done",
      "bills": [
        {
          "amount": 125000.0,
          "id": 38,
          "source_ref": "adm-fees-handoff:29:204:382",
          "state": "paid",
          "verified_amount": 125000.0
        }
      ],
      "enrollments": [
        {
          "amount": 125000.0,
          "company_id": 29,
          "creator_id": 1,
          "id": 76,
          "source_ref": "adm-fees-handoff:29:204:382",
          "state": "billed"
        }
      ],
      "handoff": {
        "attempts": 1,
        "error": "payment_exists",
        "id": 90,
        "lines": [
          {
            "enrollment_id": 76,
            "key": "adm-fees:29:204:382:40:1",
            "state": "processed"
          }
        ],
        "processor_uid": 1,
        "source_actor": "t6b2.enroller",
        "source_role": "enrollment_officer",
        "state": "recovery_required"
      },
      "handoff_count": 1,
      "payments": [
        {
          "amount": 125000.0,
          "id": 23,
          "state": "verified"
        }
      ],
      "student_company": 29,
      "student_id": 382,
      "w03_state": "enrolled"
    },
    {
      "account_moves": 0,
      "admission_id": 205,
      "admission_state": "done",
      "bills": [],
      "enrollments": [],
      "handoff": null,
      "handoff_count": 0,
      "payments": [],
      "student_company": 29,
      "student_id": 381,
      "w03_state": "enrolled"
    }
  ],
  "suite": "PKG-ADM-FEES-BRIDGE"
}