# 법인·영업점 외부정산 개발계 QA

- Status: PASS
- Workflow Status: QA 검증 완료 / Redmine 신규
- Subject: [BL] 법인·영업점 부서 정산방식 외부 추가
- Generated: 2026-10-26T11:51:28.665125+09:00
- Roles: ADMIN
- Redmine: https://itsm.bix.bz/issues/4368
- 요청자: 주홍석
- QA Redmine: [#4386](https://itsm.bix.bz/issues/4386)
- 원본 Redmine: [#4368](https://itsm.bix.bz/issues/4368)

**집계 대상8건 / 통과8건 / 실패0건 / 확인 불가0건 / 미실행0건. 사용자 요청으로 제외한 원본4·5번(업로드) 및11번(권한) 총3개 항목은 집계에 포함하지 않는다.**

ADMIN에서 확인한 외부정산 UI·연결·준비된 거래·정산은 요청 기준과 일치했다. 사용자 요청으로 역할별 권한 검증을 제외한 최종8개 항목은 모두 통과했다. 제외한 역할 검증을 통과로 바꾸거나 집계에 더하지 않았다.

## 항목별 결과

|원본 번호|검증 항목|판정|실제 결과·증거|
|---|---|---|---|
|1|법인 신규·수정 외부정산 유지|PASS|전용 QA 법인 BP100689 외부·즉시 신규 저장/재진입, BP100687 수동→외부 수정 후 목록·재진입 유지 확인. 증거07,08. [07-corporation-ui-created-detail.jpg](artifacts/screenshots/07-corporation-ui-created-detail.jpg) · [07-corporation-ui-created-detail.txt](artifacts/logs/07-corporation-ui-created-detail.txt)|
|2|영업점 신규·수정 외부정산 유지|PASS|BP100690 외부정산 UI 신규 등록 후 분→즉시 수정/재진입 유지. 증거09,10. [09-branch-ui-created-reopened.jpg](artifacts/screenshots/09-branch-ui-created-reopened.jpg) · [09-branch-ui-created-reopened.txt](artifacts/logs/09-branch-ui-created-reopened.txt)|
|3|법인·영업점 엑셀 외부정산 선택목록|PASS|법인 N, 영업점 S 선택목록 외부정산 포함. 다운로드 값은 법인/영업점 EXTERNAL, 가맹점 외부정산. 두 코드가 외부정산을 표현함을 UI 외부 값과 대조. 재업로드 수용 여부는 범위 제외. [corporation-export-updated.xlsx](artifacts/files/corporation-export-updated.xlsx)|
|6|가맹점 외부정산 회귀|PASS|전용 가맹점 BP100696 외부정산 UI 신규/수정 및 재진입 유지 확인(20,21). 다운로드 U2 외부정산 유지. 업로드 하위 검증은 범위 제외. [20-vendor-ui-created-detail.jpg](artifacts/screenshots/20-vendor-ui-created-detail.jpg) · [20-vendor-ui-created-detail.txt](artifacts/logs/20-vendor-ui-created-detail.txt)|
|7|계약·MID·영업라인 연결|PASS|영업라인 상세에서 코페이 계약 QA4368_코페이_외부정산_1026 / MID QA43681026 / 법인 BP100683 2% → 영업점 BP100684 3% → 가맹점 BP100685 4% 정상 연결. 증거18,19. [18-vendor-external-and-binding-list.jpg](artifacts/screenshots/18-vendor-external-and-binding-list.jpg) · [18-vendor-external-and-binding-list.txt](artifacts/logs/18-vendor-external-and-binding-list.txt)|
|8|승인·취소 상쇄 및 순거래1004원|PASS|MID QA43681026 필터에서3건: 승인101004원/취소100000원/순1004원. QA4368SMALL20261026091606 및 원승인/취소 QA4368EXT20261026091457 연결, BP100685·코페이 계약 확인. 증거23~26. [23-trade-1004-net-summary.jpg](artifacts/screenshots/23-trade-1004-net-summary.jpg) · [23-trade-1004-net-summary.txt](artifacts/logs/23-trade-1004-net-summary.txt)|
|9|외부정산 완료·시도X·완료O|PASS|외부 필터 8건 모두 완료, 시도X·완료O. 증거01~03. [27-settlement-final-qa-department-filter.jpg](artifacts/screenshots/27-settlement-final-qa-department-filter.jpg) · [27-settlement-final-qa-department-filter.txt](artifacts/logs/27-settlement-final-qa-department-filter.txt)|
|10|정산액10/10/963·순983원|PASS|법인10원, 영업점10원, 가맹점 -95037+96000=963원, 전체983원. 증거01~03. [29-settlement-final-net-983.jpg](artifacts/screenshots/29-settlement-final-net-983.jpg) · [29-settlement-final-net-983.txt](artifacts/logs/29-settlement-final-net-983.txt)|

## 준비 거래와 정산 검증

- 코페이 계약 `QA4368_코페이_외부정산_1026`, MID `QA43681026`, 법인 `BP100683` → 영업점 `BP100684` → 가맹점 `BP100685`; 영업라인 수수료2%/3%/4% 확인.
- 09:16:06 승인 `QA4368SMALL20261026091606` 1004원. 이전 승인 `QA4368EXT20261026091457` 100000원은09:15:55 취소 반영으로 상쇄됐다. MID 필터 전체3건, 결제101004원−취소100000원=순1004원.
- 법인10원·영업점10원·가맹점963원=순983원. 가맹점은09:15의96000원과09:20의-95037원을 합산해야963원이다.09:20 한 행만 보고 실패로 판정하지 않았다.
- QA 부서명 `QA4368_외부정산_`와 외부정산 필터로8건 모두 완료/정산시도X/정산완료O, 대기·실패0건을 최종 재확인했다. 공유 개발계에 추가된 다른 부서의 외부정산은 QA 결과에서 제외했다.
- 이번 독립 QA에서는 추가 결제/취소 통보, 실제 PG 카드 승인, 송금을 실행하지 않았다. 개발자가 미리 만든 거래를 UI로 검증했다.

## 엑셀 양식·다운로드

- 법인 N열, 영업점 S열 선택목록에 `자동,수동,지갑,외부정산`이 있다.
- 재다운로드 파일의 법인N2/영업점S2는 `EXTERNAL`, 가맹점U2는 `외부정산`이다. 법인·영업점 UI의 `외부`와 해당 코드의 정산방식이 유지되는 것을 대조했다. 한글 표시 형식의 차이는 관찰로 남기며, 업로드 수용 여부를 이번 판정 기준으로 사용하지 않는다.
- [법인 파일](artifacts/files/corporation-export-updated.xlsx) · [영업점 파일](artifacts/files/branch-export-updated.xlsx) · [가맹점 파일](artifacts/files/vendor-export-original.xlsx) · [선택목록·셀 값](artifacts/files/download-observations.json)

## 사용자 요청에 따른 범위 제외

원본4번(엑셀 신규·일괄수정·재업로드)과5번(기존 정산값·잘못된 값 업로드), 가맹점6번의 업로드 하위 검증을 제외했다. 후속 요청으로 원본11번 권한 검증도 추가 제외하여 최종 집계는8건이다. 이후 새 업로드는 수행하지 않았다. 범위 변경 시점 전에 제출된 가맹점 파일의 처리 결과는 읽어서 보존만 했다.

법인·영업점의 `EXTERNAL` 재업로드가 목록값 오류로 거절된 기록은 범위 밖 관찰이다. 이 기록으로 실패 판정을 내리거나 이번 집계의 실패 수를 올리지 않는다. [범위 변경 기록](artifacts/files/scope-exclusions.json), [기수행 업로드 기록](artifacts/files/excluded-upload-observations/17-branch-export-value-reupload-rejected.txt)을 분리했다. 즉시정산 엑셀 등록 제한·안내 및 제품 코드는 변경하지 않았다.

## 사용자 요청으로 제외한 권한 검증

ADMIN 세션으로 법인/영업점/가맹점/거래/정산과 엑셀 다운로드 메뉴를 확인했다. 테스트 부서와 연결된 TA·CO·BO·VE 자격정보가 준비되지 않아 다른 역할로 로그인하거나 자기 부서만 노출되는지 검증하지 못했다. 해당 원본11번은 최초 확인 불가였으나, 후속 사용자 지시로 최종 범위에서 제외했다. 최종 성공/실패/확인 불가 집계에 포함하지 않으며 기존 전제조건 기록은 보존한다. [전제조건 기록](artifacts/logs/role-prerequisites.md)

## Redmine 실제 상태

QA #4386에 결과 댓글과 게시 링크는 등록했다. 상태·진척도 변경 요청은 재조회에서 반영되지 않았고, 현재 계정의 편집 화면은 댓글 입력만 제공한다. 실제 Redmine 상태는 신규·진척도0%이며, 사용자 요청 범위에서 완료한 QA 판정 PASS와 구분한다. 상태 변경이 적용됐다고 간주하거나 작업완료로 표시하지 않았다.

## 생성한 QA 데이터와 검증 한계

- 화면 전용: BP100689 법인, BP100690 영업점, BP100696 가맹점. 외부정산 등록/수정 재진입 확인. 기존 준비 거래 부서의 정산방식·수수료·영업라인을 변경하지 않았다.
- 범위 변경 전 업로드로 생성된 QA 부서는 BP100686~BP100688(법인), BP100691~BP100693(영업점), BP100694(자동 영업점), BP100695(자동 법인), 가맹점 엑셀 신규1건(식별번호 미대조)이다. 자동정산 부서는 미연결 테스트 부서이며 가상계좌 문구를 썼다. 이 QA에서 계좌조회/송금은 실행하지 않았다.
- 개발자 제공 단위 테스트37건과 사전 준비 결과를 독립 QA 통과 건수로 더하지 않았다. 실제 서버 배포 커밋은 확인하지 못했다.
- 요청자는 주홍석이다. 초기 웹훅 중단 지시 후, 사용자가 최종 완료 문구의 개발계1회 전송(주홍석만 멘션)을 명시적으로 재승인했다. 배포 집계 확인 후 해당 범위에서 완료 알림을 전송한다. 씨드페이먼츠 이전 결과는 이 QA에 포함하지 않는다.

![QA 대상 외부정산 최종 순983원](artifacts/screenshots/29-settlement-final-net-983.jpg)
