{
  "base_url": "http://127.0.0.1:8107",
  "cases": [
    {
      "case_id": "W09-POS-COMPUTE-TO-CONFIRM",
      "detail": {
        "confirm": {
          "error": null,
          "http_status": 200,
          "result": {
            "data": {
              "absence_days": 21.0,
              "attendance_days": 0.0,
              "attendance_percentage": 0.0,
              "company_id": [
                11,
                "GT-T1 W09 0831T131228Z"
              ],
              "contract_id": [
                19,
                "W09 Contract 0831T131228Z"
              ],
              "credit_note": false,
              "date_from": "2026-08-01",
              "date_to": "2026-08-31",
              "employee_id": [
                192,
                "W09 Employee 0831T131228Z"
              ],
              "expected_work_days": 21.0,
              "id": 7,
              "input_lines": [],
              "late_count": 0,
              "name": "",
              "note": false,
              "number": false,
              "paid": false,
              "paid_leave_days": 0.0,
              "payslip_run_id": false,
              "performance_percentage": 0.0,
              "permission_days": 0.0,
              "pkg_score": 0.0,
              "salary_lines": [
                {
                  "amount": 5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    1,
                    "Basic"
                  ],
                  "code": "BASIC",
                  "id": 8,
                  "name": "Basic Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    1,
                    "Basic Salary"
                  ],
                  "sequence": 1,
                  "total": 5000000.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "TJAB",
                  "id": 9,
                  "name": "Tunjangan Jabatan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    10,
                    "Tunjangan Jabatan"
                  ],
                  "sequence": 25,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "MAKAN",
                  "id": 10,
                  "name": "Uang Makan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    12,
                    "Uang Makan"
                  ],
                  "sequence": 30,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "TRSP",
                  "id": 11,
                  "name": "Tunjangan Transport",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    13,
                    "Tunjangan Transport"
                  ],
                  "sequence": 31,
                  "total": 0.0
                },
                {
                  "amount": 5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    3,
                    "Gross"
                  ],
                  "code": "GROSS",
                  "id": 12,
                  "name": "Gross",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    2,
                    "Gross"
                  ],
                  "sequence": 100,
                  "total": 5000000.0
                },
                {
                  "amount": -5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    4,
                    "Deduction"
                  ],
                  "code": "POT_ALFA",
                  "id": 13,
                  "name": "Potongan Alfa",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    24,
                    "Potongan Alfa"
                  ],
                  "sequence": 116,
                  "total": -5000000.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    5,
                    "Net"
                  ],
                  "code": "NET",
                  "id": 14,
                  "name": "Net Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    8,
                    "Net Salary"
                  ],
                  "sequence": 200,
                  "total": 0.0
                }
              ],
              "sick_leave_days": 0.0,
              "state": "done",
              "struct_id": [
                4,
                "Gaji Staff Non-Guru"
              ],
              "worked_days": [
                {
                  "code": "HADIR",
                  "contract_id": [
                    19,
                    "W09 Contract 0831T131228Z"
                  ],
                  "id": 5,
                  "name": "Hari Hadir (dari Attendance)",
                  "number_of_days": 0.0,
                  "number_of_hours": 0.0,
                  "sequence": 2
                },
                {
                  "code": "ALFA",
                  "contract_id": [
                    19,
                    "W09 Contract 0831T131228Z"
                  ],
                  "id": 6,
                  "name": "Alfa (Tanpa Keterangan)",
                  "number_of_days": -21.0,
                  "number_of_hours": -168.0,
                  "sequence": 6
                }
              ]
            },
            "success": true
          }
        },
        "employee_list_count": 1,
        "save": {
          "error": null,
          "http_status": 200,
          "result": {
            "data": {
              "absence_days": 21.0,
              "attendance_days": 0.0,
              "attendance_percentage": 0.0,
              "company_id": [
                11,
                "GT-T1 W09 0831T131228Z"
              ],
              "contract_id": [
                19,
                "W09 Contract 0831T131228Z"
              ],
              "credit_note": false,
              "date_from": "2026-08-01",
              "date_to": "2026-08-31",
              "employee_id": [
                192,
                "W09 Employee 0831T131228Z"
              ],
              "expected_work_days": 21.0,
              "id": 7,
              "input_lines": [],
              "late_count": 0,
              "name": "",
              "note": false,
              "number": false,
              "paid": false,
              "paid_leave_days": 0.0,
              "payslip_run_id": false,
              "performance_percentage": 0.0,
              "permission_days": 0.0,
              "pkg_score": 0.0,
              "salary_lines": [
                {
                  "amount": 5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    1,
                    "Basic"
                  ],
                  "code": "BASIC",
                  "id": 1,
                  "name": "Basic Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    1,
                    "Basic Salary"
                  ],
                  "sequence": 1,
                  "total": 5000000.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "TJAB",
                  "id": 2,
                  "name": "Tunjangan Jabatan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    10,
                    "Tunjangan Jabatan"
                  ],
                  "sequence": 25,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "MAKAN",
                  "id": 3,
                  "name": "Uang Makan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    12,
                    "Uang Makan"
                  ],
                  "sequence": 30,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "TRSP",
                  "id": 4,
                  "name": "Tunjangan Transport",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    13,
                    "Tunjangan Transport"
                  ],
                  "sequence": 31,
                  "total": 0.0
                },
                {
                  "amount": 5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    3,
                    "Gross"
                  ],
                  "code": "GROSS",
                  "id": 5,
                  "name": "Gross",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    2,
                    "Gross"
                  ],
                  "sequence": 100,
                  "total": 5000000.0
                },
                {
                  "amount": -5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    4,
                    "Deduction"
                  ],
                  "code": "POT_ALFA",
                  "id": 6,
                  "name": "Potongan Alfa",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    24,
                    "Potongan Alfa"
                  ],
                  "sequence": 116,
                  "total": -5000000.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    5,
                    "Net"
                  ],
                  "code": "NET",
                  "id": 7,
                  "name": "Net Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    8,
                    "Net Salary"
                  ],
                  "sequence": 200,
                  "total": 0.0
                }
              ],
              "sick_leave_days": 0.0,
              "state": "draft",
              "struct_id": [
                4,
                "Gaji Staff Non-Guru"
              ],
              "worked_days": [
                {
                  "code": "HADIR",
                  "contract_id": [
                    19,
                    "W09 Contract 0831T131228Z"
                  ],
                  "id": 5,
                  "name": "Hari Hadir (dari Attendance)",
                  "number_of_days": 0.0,
                  "number_of_hours": 0.0,
                  "sequence": 2
                },
                {
                  "code": "ALFA",
                  "contract_id": [
                    19,
                    "W09 Contract 0831T131228Z"
                  ],
                  "id": 6,
                  "name": "Alfa (Tanpa Keterangan)",
                  "number_of_days": -21.0,
                  "number_of_hours": -168.0,
                  "sequence": 6
                }
              ]
            },
            "success": true
          }
        },
        "snapshot": {
          "employee_id": 192,
          "id": 7,
          "last_operator_uid": 1164,
          "state": "done"
        }
      },
      "matrix_id": "RT-W09-POS-01",
      "status": "PASS"
    },
    {
      "case_id": "W09-IDM-DUPLICATE-PERIOD",
      "detail": {
        "payslip_count": 1,
        "second_save": {
          "error": null,
          "http_status": 200,
          "result": {
            "error": "validation_error",
            "message": "Slip gaji untuk karyawan dan periode yang sama sudah ada.",
            "success": false
          }
        }
      },
      "matrix_id": "RT-W09-IDM-01",
      "status": "PASS"
    },
    {
      "case_id": "W09-STA-RECONFIRM-DENIED",
      "detail": {
        "reconfirm": {
          "error": null,
          "http_status": 200,
          "result": {
            "error": "validation_error",
            "message": "Operator tidak boleh mengonfirmasi slip gaji yang dibuat atau dihitung sendiri.",
            "success": false
          }
        },
        "snapshot": {
          "employee_id": 192,
          "id": 7,
          "last_operator_uid": 1164,
          "state": "done"
        }
      },
      "matrix_id": "RT-W09-STA-01",
      "status": "PASS"
    },
    {
      "case_id": "W09-REC-CANCEL-DRAFT-RESUME",
      "detail": {
        "cancel": {
          "error": null,
          "http_status": 200,
          "result": {
            "data": {
              "absence_days": 21.0,
              "attendance_days": 0.0,
              "attendance_percentage": 0.0,
              "company_id": [
                11,
                "GT-T1 W09 0831T131228Z"
              ],
              "contract_id": [
                19,
                "W09 Contract 0831T131228Z"
              ],
              "credit_note": false,
              "date_from": "2026-08-01",
              "date_to": "2026-08-31",
              "employee_id": [
                192,
                "W09 Employee 0831T131228Z"
              ],
              "expected_work_days": 21.0,
              "id": 7,
              "input_lines": [],
              "late_count": 0,
              "name": "",
              "note": false,
              "number": false,
              "paid": false,
              "paid_leave_days": 0.0,
              "payslip_run_id": false,
              "performance_percentage": 0.0,
              "permission_days": 0.0,
              "pkg_score": 0.0,
              "salary_lines": [
                {
                  "amount": 5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    1,
                    "Basic"
                  ],
                  "code": "BASIC",
                  "id": 8,
                  "name": "Basic Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    1,
                    "Basic Salary"
                  ],
                  "sequence": 1,
                  "total": 5000000.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "TJAB",
                  "id": 9,
                  "name": "Tunjangan Jabatan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    10,
                    "Tunjangan Jabatan"
                  ],
                  "sequence": 25,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "MAKAN",
                  "id": 10,
                  "name": "Uang Makan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    12,
                    "Uang Makan"
                  ],
                  "sequence": 30,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "TRSP",
                  "id": 11,
                  "name": "Tunjangan Transport",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    13,
                    "Tunjangan Transport"
                  ],
                  "sequence": 31,
                  "total": 0.0
                },
                {
                  "amount": 5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    3,
                    "Gross"
                  ],
                  "code": "GROSS",
                  "id": 12,
                  "name": "Gross",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    2,
                    "Gross"
                  ],
                  "sequence": 100,
                  "total": 5000000.0
                },
                {
                  "amount": -5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    4,
                    "Deduction"
                  ],
                  "code": "POT_ALFA",
                  "id": 13,
                  "name": "Potongan Alfa",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    24,
                    "Potongan Alfa"
                  ],
                  "sequence": 116,
                  "total": -5000000.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    5,
                    "Net"
                  ],
                  "code": "NET",
                  "id": 14,
                  "name": "Net Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    8,
                    "Net Salary"
                  ],
                  "sequence": 200,
                  "total": 0.0
                }
              ],
              "sick_leave_days": 0.0,
              "state": "cancel",
              "struct_id": [
                4,
                "Gaji Staff Non-Guru"
              ],
              "worked_days": [
                {
                  "code": "HADIR",
                  "contract_id": [
                    19,
                    "W09 Contract 0831T131228Z"
                  ],
                  "id": 5,
                  "name": "Hari Hadir (dari Attendance)",
                  "number_of_days": 0.0,
                  "number_of_hours": 0.0,
                  "sequence": 2
                },
                {
                  "code": "ALFA",
                  "contract_id": [
                    19,
                    "W09 Contract 0831T131228Z"
                  ],
                  "id": 6,
                  "name": "Alfa (Tanpa Keterangan)",
                  "number_of_days": -21.0,
                  "number_of_hours": -168.0,
                  "sequence": 6
                }
              ]
            },
            "success": true
          }
        },
        "compute": {
          "error": null,
          "http_status": 200,
          "result": {
            "data": {
              "absence_days": 21.0,
              "attendance_days": 0.0,
              "attendance_percentage": 0.0,
              "company_id": [
                11,
                "GT-T1 W09 0831T131228Z"
              ],
              "contract_id": [
                19,
                "W09 Contract 0831T131228Z"
              ],
              "credit_note": false,
              "date_from": "2026-08-01",
              "date_to": "2026-08-31",
              "employee_id": [
                192,
                "W09 Employee 0831T131228Z"
              ],
              "expected_work_days": 21.0,
              "id": 7,
              "input_lines": [],
              "late_count": 0,
              "name": "",
              "note": false,
              "number": false,
              "paid": false,
              "paid_leave_days": 0.0,
              "payslip_run_id": false,
              "performance_percentage": 0.0,
              "permission_days": 0.0,
              "pkg_score": 0.0,
              "salary_lines": [
                {
                  "amount": 5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    1,
                    "Basic"
                  ],
                  "code": "BASIC",
                  "id": 15,
                  "name": "Basic Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    1,
                    "Basic Salary"
                  ],
                  "sequence": 1,
                  "total": 5000000.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "TJAB",
                  "id": 16,
                  "name": "Tunjangan Jabatan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    10,
                    "Tunjangan Jabatan"
                  ],
                  "sequence": 25,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "MAKAN",
                  "id": 17,
                  "name": "Uang Makan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    12,
                    "Uang Makan"
                  ],
                  "sequence": 30,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "TRSP",
                  "id": 18,
                  "name": "Tunjangan Transport",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    13,
                    "Tunjangan Transport"
                  ],
                  "sequence": 31,
                  "total": 0.0
                },
                {
                  "amount": 5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    3,
                    "Gross"
                  ],
                  "code": "GROSS",
                  "id": 19,
                  "name": "Gross",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    2,
                    "Gross"
                  ],
                  "sequence": 100,
                  "total": 5000000.0
                },
                {
                  "amount": -5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    4,
                    "Deduction"
                  ],
                  "code": "POT_ALFA",
                  "id": 20,
                  "name": "Potongan Alfa",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    24,
                    "Potongan Alfa"
                  ],
                  "sequence": 116,
                  "total": -5000000.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    5,
                    "Net"
                  ],
                  "code": "NET",
                  "id": 21,
                  "name": "Net Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    8,
                    "Net Salary"
                  ],
                  "sequence": 200,
                  "total": 0.0
                }
              ],
              "sick_leave_days": 0.0,
              "state": "draft",
              "struct_id": [
                4,
                "Gaji Staff Non-Guru"
              ],
              "worked_days": [
                {
                  "code": "HADIR",
                  "contract_id": [
                    19,
                    "W09 Contract 0831T131228Z"
                  ],
                  "id": 5,
                  "name": "Hari Hadir (dari Attendance)",
                  "number_of_days": 0.0,
                  "number_of_hours": 0.0,
                  "sequence": 2
                },
                {
                  "code": "ALFA",
                  "contract_id": [
                    19,
                    "W09 Contract 0831T131228Z"
                  ],
                  "id": 6,
                  "name": "Alfa (Tanpa Keterangan)",
                  "number_of_days": -21.0,
                  "number_of_hours": -168.0,
                  "sequence": 6
                }
              ]
            },
            "success": true
          }
        },
        "confirm": {
          "error": null,
          "http_status": 200,
          "result": {
            "data": {
              "absence_days": 21.0,
              "attendance_days": 0.0,
              "attendance_percentage": 0.0,
              "company_id": [
                11,
                "GT-T1 W09 0831T131228Z"
              ],
              "contract_id": [
                19,
                "W09 Contract 0831T131228Z"
              ],
              "credit_note": false,
              "date_from": "2026-08-01",
              "date_to": "2026-08-31",
              "employee_id": [
                192,
                "W09 Employee 0831T131228Z"
              ],
              "expected_work_days": 21.0,
              "id": 7,
              "input_lines": [],
              "late_count": 0,
              "name": "",
              "note": false,
              "number": false,
              "paid": false,
              "paid_leave_days": 0.0,
              "payslip_run_id": false,
              "performance_percentage": 0.0,
              "permission_days": 0.0,
              "pkg_score": 0.0,
              "salary_lines": [
                {
                  "amount": 5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    1,
                    "Basic"
                  ],
                  "code": "BASIC",
                  "id": 22,
                  "name": "Basic Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    1,
                    "Basic Salary"
                  ],
                  "sequence": 1,
                  "total": 5000000.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "TJAB",
                  "id": 23,
                  "name": "Tunjangan Jabatan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    10,
                    "Tunjangan Jabatan"
                  ],
                  "sequence": 25,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "MAKAN",
                  "id": 24,
                  "name": "Uang Makan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    12,
                    "Uang Makan"
                  ],
                  "sequence": 30,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "TRSP",
                  "id": 25,
                  "name": "Tunjangan Transport",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    13,
                    "Tunjangan Transport"
                  ],
                  "sequence": 31,
                  "total": 0.0
                },
                {
                  "amount": 5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    3,
                    "Gross"
                  ],
                  "code": "GROSS",
                  "id": 26,
                  "name": "Gross",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    2,
                    "Gross"
                  ],
                  "sequence": 100,
                  "total": 5000000.0
                },
                {
                  "amount": -5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    4,
                    "Deduction"
                  ],
                  "code": "POT_ALFA",
                  "id": 27,
                  "name": "Potongan Alfa",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    24,
                    "Potongan Alfa"
                  ],
                  "sequence": 116,
                  "total": -5000000.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    5,
                    "Net"
                  ],
                  "code": "NET",
                  "id": 28,
                  "name": "Net Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    8,
                    "Net Salary"
                  ],
                  "sequence": 200,
                  "total": 0.0
                }
              ],
              "sick_leave_days": 0.0,
              "state": "done",
              "struct_id": [
                4,
                "Gaji Staff Non-Guru"
              ],
              "worked_days": [
                {
                  "code": "HADIR",
                  "contract_id": [
                    19,
                    "W09 Contract 0831T131228Z"
                  ],
                  "id": 5,
                  "name": "Hari Hadir (dari Attendance)",
                  "number_of_days": 0.0,
                  "number_of_hours": 0.0,
                  "sequence": 2
                },
                {
                  "code": "ALFA",
                  "contract_id": [
                    19,
                    "W09 Contract 0831T131228Z"
                  ],
                  "id": 6,
                  "name": "Alfa (Tanpa Keterangan)",
                  "number_of_days": -21.0,
                  "number_of_hours": -168.0,
                  "sequence": 6
                }
              ]
            },
            "success": true
          }
        },
        "draft": {
          "error": null,
          "http_status": 200,
          "result": {
            "data": {
              "absence_days": 21.0,
              "attendance_days": 0.0,
              "attendance_percentage": 0.0,
              "company_id": [
                11,
                "GT-T1 W09 0831T131228Z"
              ],
              "contract_id": [
                19,
                "W09 Contract 0831T131228Z"
              ],
              "credit_note": false,
              "date_from": "2026-08-01",
              "date_to": "2026-08-31",
              "employee_id": [
                192,
                "W09 Employee 0831T131228Z"
              ],
              "expected_work_days": 21.0,
              "id": 7,
              "input_lines": [],
              "late_count": 0,
              "name": "",
              "note": false,
              "number": false,
              "paid": false,
              "paid_leave_days": 0.0,
              "payslip_run_id": false,
              "performance_percentage": 0.0,
              "permission_days": 0.0,
              "pkg_score": 0.0,
              "salary_lines": [
                {
                  "amount": 5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    1,
                    "Basic"
                  ],
                  "code": "BASIC",
                  "id": 8,
                  "name": "Basic Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    1,
                    "Basic Salary"
                  ],
                  "sequence": 1,
                  "total": 5000000.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "TJAB",
                  "id": 9,
                  "name": "Tunjangan Jabatan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    10,
                    "Tunjangan Jabatan"
                  ],
                  "sequence": 25,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "MAKAN",
                  "id": 10,
                  "name": "Uang Makan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    12,
                    "Uang Makan"
                  ],
                  "sequence": 30,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "TRSP",
                  "id": 11,
                  "name": "Tunjangan Transport",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    13,
                    "Tunjangan Transport"
                  ],
                  "sequence": 31,
                  "total": 0.0
                },
                {
                  "amount": 5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    3,
                    "Gross"
                  ],
                  "code": "GROSS",
                  "id": 12,
                  "name": "Gross",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    2,
                    "Gross"
                  ],
                  "sequence": 100,
                  "total": 5000000.0
                },
                {
                  "amount": -5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    4,
                    "Deduction"
                  ],
                  "code": "POT_ALFA",
                  "id": 13,
                  "name": "Potongan Alfa",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    24,
                    "Potongan Alfa"
                  ],
                  "sequence": 116,
                  "total": -5000000.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    5,
                    "Net"
                  ],
                  "code": "NET",
                  "id": 14,
                  "name": "Net Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    8,
                    "Net Salary"
                  ],
                  "sequence": 200,
                  "total": 0.0
                }
              ],
              "sick_leave_days": 0.0,
              "state": "draft",
              "struct_id": [
                4,
                "Gaji Staff Non-Guru"
              ],
              "worked_days": [
                {
                  "code": "HADIR",
                  "contract_id": [
                    19,
                    "W09 Contract 0831T131228Z"
                  ],
                  "id": 5,
                  "name": "Hari Hadir (dari Attendance)",
                  "number_of_days": 0.0,
                  "number_of_hours": 0.0,
                  "sequence": 2
                },
                {
                  "code": "ALFA",
                  "contract_id": [
                    19,
                    "W09 Contract 0831T131228Z"
                  ],
                  "id": 6,
                  "name": "Alfa (Tanpa Keterangan)",
                  "number_of_days": -21.0,
                  "number_of_hours": -168.0,
                  "sequence": 6
                }
              ]
            },
            "success": true
          }
        },
        "snapshot": {
          "employee_id": 192,
          "id": 7,
          "last_operator_uid": 1164,
          "state": "done"
        }
      },
      "matrix_id": "RT-W09-REC-01",
      "status": "PASS"
    },
    {
      "case_id": "W09-NEG-UNAUTHORIZED-MUTATION",
      "detail": {
        "employee_confirm": {
          "error": null,
          "http_status": 200,
          "result": {
            "error": "access_denied",
            "message": "Anda tidak memiliki akses untuk mengelola slip gaji.",
            "success": false
          }
        },
        "operator_self_confirm": {
          "error": null,
          "http_status": 200,
          "result": {
            "error": "validation_error",
            "message": "Operator tidak boleh mengonfirmasi slip gaji yang dibuat atau dihitung sendiri.",
            "success": false
          }
        },
        "operator_self_snapshot": {
          "employee_id": 192,
          "id": 8,
          "last_operator_uid": 1163,
          "state": "draft"
        },
        "viewer_confirm": {
          "error": null,
          "http_status": 200,
          "result": {
            "error": "access_denied",
            "message": "Anda tidak memiliki akses untuk mengelola slip gaji.",
            "success": false
          }
        },
        "viewer_save": {
          "error": null,
          "http_status": 200,
          "result": {
            "error": "access_denied",
            "message": "Anda tidak memiliki akses untuk mengelola slip gaji.",
            "success": false
          }
        }
      },
      "matrix_id": "RT-W09-NEG-01",
      "status": "PASS"
    },
    {
      "case_id": "W09-VAL-MISSING-CONTRACT",
      "detail": {
        "save": {
          "error": null,
          "http_status": 200,
          "result": {
            "error": "validation_error",
            "message": "Slip gaji untuk karyawan dan periode yang sama sudah ada.",
            "success": false
          }
        }
      },
      "matrix_id": "RT-W09-VAL-01",
      "status": "PASS"
    },
    {
      "case_id": "W09-SCP-SELF-AND-PEER-BOUNDARY",
      "detail": {
        "employee_detail": {
          "error": null,
          "http_status": 200,
          "result": {
            "data": {
              "date_from": "2026-08-01",
              "date_to": "2026-08-31",
              "employee_id": 192,
              "employee_name": "W09 Employee 0831T131228Z",
              "gross_salary": 0.0,
              "id": 7,
              "lines": [
                {
                  "amount": 5000000.0,
                  "category": "Basic",
                  "code": "BASIC",
                  "id": 22,
                  "name": "Basic Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "total": 5000000.0
                },
                {
                  "amount": 0.0,
                  "category": "Allowance",
                  "code": "TJAB",
                  "id": 23,
                  "name": "Tunjangan Jabatan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "category": "Allowance",
                  "code": "MAKAN",
                  "id": 24,
                  "name": "Uang Makan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "category": "Allowance",
                  "code": "TRSP",
                  "id": 25,
                  "name": "Tunjangan Transport",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "total": 0.0
                },
                {
                  "amount": 5000000.0,
                  "category": "Gross",
                  "code": "GROSS",
                  "id": 26,
                  "name": "Gross",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "total": 5000000.0
                },
                {
                  "amount": -5000000.0,
                  "category": "Deduction",
                  "code": "POT_ALFA",
                  "id": 27,
                  "name": "Potongan Alfa",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "total": -5000000.0
                },
                {
                  "amount": 0.0,
                  "category": "Net",
                  "code": "NET",
                  "id": 28,
                  "name": "Net Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "total": 0.0
                }
              ],
              "name": false,
              "net_salary": 0.0,
              "state": "done",
              "total_deductions": 0.0
            },
            "success": true
          }
        },
        "employee_my": {
          "error": null,
          "http_status": 200,
          "result": {
            "data": {
              "limit": 100,
              "offset": 0,
              "payslips": [
                {
                  "date_from": "2026-08-01",
                  "date_to": "2026-08-31",
                  "employee_id": 192,
                  "employee_name": "W09 Employee 0831T131228Z",
                  "gross_salary": 0.0,
                  "id": 7,
                  "name": false,
                  "net_salary": 0.0,
                  "state": "done",
                  "total_deductions": 0.0
                }
              ],
              "total": 1
            },
            "success": true
          }
        },
        "operator_detail": {
          "error": null,
          "http_status": 200,
          "result": {
            "data": {
              "absence_days": 21.0,
              "attendance_days": 0.0,
              "attendance_percentage": 0.0,
              "company_id": [
                11,
                "GT-T1 W09 0831T131228Z"
              ],
              "contract_id": [
                19,
                "W09 Contract 0831T131228Z"
              ],
              "credit_note": false,
              "date_from": "2026-08-01",
              "date_to": "2026-08-31",
              "employee_id": [
                192,
                "W09 Employee 0831T131228Z"
              ],
              "expected_work_days": 21.0,
              "id": 7,
              "input_lines": [],
              "late_count": 0,
              "name": "",
              "note": false,
              "number": false,
              "paid": false,
              "paid_leave_days": 0.0,
              "payslip_run_id": false,
              "performance_percentage": 0.0,
              "permission_days": 0.0,
              "pkg_score": 0.0,
              "salary_lines": [
                {
                  "amount": 5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    1,
                    "Basic"
                  ],
                  "code": "BASIC",
                  "id": 22,
                  "name": "Basic Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    1,
                    "Basic Salary"
                  ],
                  "sequence": 1,
                  "total": 5000000.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "TJAB",
                  "id": 23,
                  "name": "Tunjangan Jabatan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    10,
                    "Tunjangan Jabatan"
                  ],
                  "sequence": 25,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "MAKAN",
                  "id": 24,
                  "name": "Uang Makan",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    12,
                    "Uang Makan"
                  ],
                  "sequence": 30,
                  "total": 0.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    2,
                    "Allowance"
                  ],
                  "code": "TRSP",
                  "id": 25,
                  "name": "Tunjangan Transport",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    13,
                    "Tunjangan Transport"
                  ],
                  "sequence": 31,
                  "total": 0.0
                },
                {
                  "amount": 5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    3,
                    "Gross"
                  ],
                  "code": "GROSS",
                  "id": 26,
                  "name": "Gross",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    2,
                    "Gross"
                  ],
                  "sequence": 100,
                  "total": 5000000.0
                },
                {
                  "amount": -5000000.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    4,
                    "Deduction"
                  ],
                  "code": "POT_ALFA",
                  "id": 27,
                  "name": "Potongan Alfa",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    24,
                    "Potongan Alfa"
                  ],
                  "sequence": 116,
                  "total": -5000000.0
                },
                {
                  "amount": 0.0,
                  "appears_on_payslip": true,
                  "category_id": [
                    5,
                    "Net"
                  ],
                  "code": "NET",
                  "id": 28,
                  "name": "Net Salary",
                  "quantity": 1.0,
                  "rate": 100.0,
                  "salary_rule_id": [
                    8,
                    "Net Salary"
                  ],
                  "sequence": 200,
                  "total": 0.0
                }
              ],
              "sick_leave_days": 0.0,
              "state": "done",
              "struct_id": [
                4,
                "Gaji Staff Non-Guru"
              ],
              "worked_days": [
                {
                  "code": "HADIR",
                  "contract_id": [
                    19,
                    "W09 Contract 0831T131228Z"
                  ],
                  "id": 5,
                  "name": "Hari Hadir (dari Attendance)",
                  "number_of_days": 0.0,
                  "number_of_hours": 0.0,
                  "sequence": 2
                },
                {
                  "code": "ALFA",
                  "contract_id": [
                    19,
                    "W09 Contract 0831T131228Z"
                  ],
                  "id": 6,
                  "name": "Alfa (Tanpa Keterangan)",
                  "number_of_days": -21.0,
                  "number_of_hours": -168.0,
                  "sequence": 6
                }
              ]
            },
            "success": true
          }
        },
        "peer_detail": {
          "error": null,
          "http_status": 200,
          "result": {
            "error": "Access denied",
            "success": false
          }
        }
      },
      "matrix_id": "RT-W09-SCP-01",
      "status": "PASS"
    },
    {
      "case_id": "W09-TEN-CROSS-COMPANY",
      "detail": {
        "item_count": 2,
        "t2_leak": false
      },
      "matrix_id": "RT-W09-TEN-01",
      "status": "PASS"
    },
    {
      "case_id": "W09-XRP-EMPLOYEE-VISIBILITY",
      "detail": {
        "done_visible": true,
        "draft_id": 9,
        "draft_visible": false
      },
      "matrix_id": "RT-W09-XRP-01",
      "status": "PASS"
    },
    {
      "case_id": "W09-XMD-ENTITLEMENT-OFF",
      "detail": {
        "list_off": {
          "error": null,
          "http_status": 200,
          "result": {
            "error": "feature_disabled",
            "feature_flag": "scola_payroll",
            "message": "Feature is disabled for the current tenant.",
            "path": "/api/v1/payroll/admin/list",
            "success": false
          }
        }
      },
      "matrix_id": "RT-W09-XMD-01",
      "status": "PASS"
    },
    {
      "case_id": "W09-UIA-API-ALIGNMENT",
      "detail": {
        "route_meta": {
          "capability": "hr.payslip.view",
          "feature_flag": "scola_payroll",
          "module": null
        },
        "state_counts": {
          "error": null,
          "http_status": 200,
          "result": {
            "data": {
              "counts": {
                "all": 3,
                "cancel": 0,
                "done": 1,
                "draft": 2,
                "verify": 0
              }
            },
            "success": true
          }
        }
      },
      "matrix_id": "RT-W09-UIA-01",
      "status": "PASS"
    }
  ],
  "database": "scola_t6f_payroll_audit_20260831T131228Z",
  "executed_at": "2026-08-31T13:14:30.439043+00:00",
  "overlay_version": "gt-w09-1.0",
  "schema": "t6f-w09-runtime-v1",
  "summary": {
    "fail": 0,
    "pass": 11,
    "total": 11
  }
}
