{
  "issueId": "3352",
  "environment": "dev",
  "source": "local checklist",
  "sourceText": "김경주님의 QA 요청입니다\\n조지민 프로님 안녕하세요, 비스킷 링크 개발계 QA 요청드립니다\\n[1] QA 요청 배경\\n- https://itsm.bix.bz/issues/3352\\n- 매출집계 화면과 엑셀 다운로드에서 TA 조회 범위, 0% 계정과목 미표기, 합계/평균 계산 방식이 변경되어 개발계 확인이 필요합니다.\\n[2] 사전 데이터\\n- 2026-04 기준 매출집계 데이터가 있는 테넌트/법인/계약 준비\\n- ADMIN 계정에서 조회 가능한 테넌트/법인 데이터 준비\\n- TA 계정에서 조회 가능한 법인과 조회되면 안 되는 다른 TA 법인 데이터 준비\\n- 같은 테넌트/법인/계약/월 조건의 거래내역에서 전체 합계와 수수료율 평균을 계산해 비교 기준으로 사용\\n[3] 사전 작업\\n- 개발계 어드민 화면에 로그인 가능한 ADMIN 계정과 TA 계정 준비\\n- 각 계정에서 매출집계 메뉴 접근 가능 여부 확인\\n- 엑셀 다운로드가 가능한 브라우저 환경 확인\\n[4] 권한별 테스트\\n- admin\\n- ta\\n[5] 검증 대상\\n- 어드민 매출집계 화면\\n- TA 권한 매출집계 화면\\n- 매출집계 엑셀 다운로드 파일\\n- 같은 조건의 거래내역 화면\\n[6] 체크리스트\\n- ADMIN 계정으로 매출집계 화면에서 2026-04 기준 월을 조회했을 때 접근 가능한 테넌트/법인/계약 데이터가 기존 범위대로 보이는지 확인\\n- TA 계정으로 매출집계 화면을 조회했을 때 다른 TA의 법인/계약 데이터가 목록과 엑셀에 포함되지 않는지 확인\\n- 매출집계 화면에서 수수료율 평균이 0인 계정과목이 표시되지 않는지 확인\\n- 매출집계 화면의 합계/평균 값과 같은 조건의 거래내역 기반 계산값이 일치하는지 확인\\n- 다운로드한 엑셀의 합계/평균 값이 매출집계 화면 및 거래내역 기반 계산값과 일치하는지 확인\\n- 다운로드한 엑셀에서 합계/평균 셀을 선택했을 때 수식이 아니라 값으로 표시되는지 확인\\n- 2026-04 조회 시 엑셀 일자 헤더가 2026-04-01부터 2026-04-30까지 표시되는지 확인",
  "scope": "dev ADMIN/TA 계정으로 2026-04 매출집계 화면, 엑셀 다운로드, 거래내역 기반 합계/평균 계산값을 비교 검증",
  "scenario": "sales-aggregate-scope",
  "checklist": [
    "ADMIN 계정으로 매출집계 화면에서 2026-04 기준 월을 조회했을 때 접근 가능한 테넌트/법인/계약 데이터가 기존 범위대로 보이는지 확인",
    "TA 계정으로 매출집계 화면을 조회했을 때 다른 TA의 법인/계약 데이터가 목록과 엑셀에 포함되지 않는지 확인",
    "매출집계 화면에서 수수료율 평균이 0인 계정과목이 표시되지 않는지 확인",
    "매출집계 화면의 합계/평균 값과 같은 조건의 거래내역 기반 계산값이 일치하는지 확인",
    "다운로드한 엑셀의 합계/평균 값이 매출집계 화면 및 거래내역 기반 계산값과 일치하는지 확인",
    "다운로드한 엑셀에서 합계/평균 셀을 선택했을 때 수식이 아니라 값으로 표시되는지 확인",
    "2026-04 조회 시 엑셀 일자 헤더가 2026-04-01부터 2026-04-30까지 표시되는지 확인"
  ],
  "roles": [
    "TA"
  ],
  "routeCandidates": "../../../../qa-results/issues/3352/dev/route-candidates.json",
  "setupSteps": [
    {
      "name": "2026-04 매출집계 기준 데이터 확인",
      "kind": "manual-precondition",
      "role": "ADMIN",
      "application": "admin",
      "description": "2026-04 기준 매출집계 데이터와 거래내역 비교 기준 데이터가 개발계에 준비되어 있어야 한다.",
      "required": true,
      "mutation": "none"
    },
    {
      "name": "TA 조회 범위 기준값 설정",
      "kind": "manual-precondition",
      "role": "TA",
      "application": "admin",
      "description": "다른 TA 법인/계약으로 보면 안 되는 명칭은 QA_3352_FORBIDDEN_TA_TEXTS에 콤마 구분으로 설정하면 화면/엑셀에서 미노출을 함께 검증한다.",
      "required": false,
      "mutation": "none"
    }
  ],
  "pages": [
    {
      "name": "매출집계",
      "application": "admin",
      "path": "/admin/sales-history",
      "tenantParam": "tenantId",
      "roles": [
        "TA"
      ],
      "searchButtonSelector": "button:has-text('검색'), button:has-text('조회'), [data-testid='search-button']",
      "monthSelector": "input[type='month'], input[placeholder*='월'], input[aria-label*='월'], [data-testid*='month' i]",
      "dataRequestUrlPattern": "sales|daily-sales-aggregate|aggregate-by-contract|sales-history",
      "excelRequestButtonSelector": "button:has-text('엑셀'), button:has-text('다운로드'), button:has-text('Excel'), a:has-text('엑셀'), a:has-text('다운로드')",
      "excelRequestUrlPattern": "excel|xlsx|download|export|daily-sales-aggregate|sales"
    },
    {
      "name": "거래내역",
      "application": "admin",
      "path": "/trade-history-v2",
      "tenantParam": "tenantId",
      "roles": [
        "TA"
      ],
      "searchButtonSelector": "button:has-text('검색'), button:has-text('조회'), [data-testid='search-button']",
      "monthSelector": "input[type='month'], input[type='date'], input[placeholder*='기간'], [data-testid*='date' i]",
      "dataRequestUrlPattern": "transaction|trade|history|payment"
    }
  ]
}
