SAP 누적 유급휴가 부채 점검 — IAS 19, 넘겨 쓸 수 있는 휴가만큼은 이미 진 빚이다
기말에 남은 연차를 가득·비가득·비누적으로 나눠 이월 한도와 사용률을 반영한 부채를 제대로 잡았는지 근태·급여·원장 데이터로 먼저 확인해 둡니다
연차를 다 쓰지 못한 채 해가 바뀌면 회사는 그 휴가만큼 앞으로 임금을 주거나 보상할 의무를 집니다. IAS 19 종업원급여(K-IFRS 제1019호)는 다음 기간으로 넘겨 쓸 수 있는 누적 유급휴가라면 권리가 쌓일 때 그 예상 원가를 부채로 인식하도록 합니다. 퇴사 때 보상하는 가득 휴가는 전액, 보상 없이 소멸하는 비가득 휴가는 실제로 쓸 것으로 예상되는 만큼만 잡고, 이월되지 않는 비누적 휴가는 쓸 때 비용으로 처리합니다.
비누적 휴가까지 부채로 잡거나, 비가득 휴가에 사용률을 반영하지 않거나, 이월 한도를 넘는 일수까지 잡는 일이 생깁니다. 표준 근태 한도와 급여 구조를 그대로 이어받아 부서·직급군별로 기준 부채를 계산해 장부와 나란히 놓는 과정을 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 6종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 근태 — 근태 한도(
PA2006)의 발생·사용 일수와 실제 휴가(PA2001)를 그대로 사용 - 급여 — 기본급 정보(
PA0008)로 일 통상임금을 산정 - 표준 화면 — 근태 한도 조회(PT50) · 인사 마스터(PA20) · G/L 잔액(FS10N) · G/L 개별항목(FAGLL03)
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 종업원급여 |
| 관련 기준서 | IAS 19 종업원급여(K-IFRS 제1019호) — 단기종업원급여: 누적 유급휴가는 근무 제공으로 권리가 늘어날 때 예상 원가를 인식(가득·비가득 모두), 비가득은 권리 소멸 가능성 반영, 비누적 유급휴가는 휴가를 쓸 때 인식 |
| Namespace | zui5.paidleave |
| 셸 구조 | 조회조건 영역(우측 조회) + 유급휴가 부채 대사 요약 + 유급휴가 부채 명세·휴가 유형별·부서별·직급군별·점검 예외 5개 탭, 상세 Dialog |
| 화면 수 | 조회 화면 1개 + 상세 다이얼로그 |
| SAP 표준 T-code | PT50 · PA20 · PC00_M99_CIPE · FS10N · FAGLL03(§7 참고) |
| 데이터 연동 방식 | OData V2 — 화면 블록마다 엔티티셋에 직접 바인딩 |
| 성격 | 조회·대사·점검형 — 휴가 부채 설정·환입 전표 기표는 화면 밖 프로세스 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 6종 둘러보기
회사코드·회계연도를 넣고 조회하면 유급휴가 부채 대사 요약과 명세가 한 화면에 뜹니다 → 탭을 옮겨 휴가 유형별·부서별·직급군별 집계를 보고 → 점검 예외에서 확인이 필요한 건만 추려 봅니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
사용 방법
- 회사코드와 회계연도를 넣습니다. 휴가 유형·부서코드·판정 상태는 비워 두면 전체가 조회됩니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 입력 필드에서 Enter 키를 눌러도 같은 조회가 실행됩니다.
- 유급휴가 부채 대사 요약에서 대상 인원·미사용 일수·이월 인정 일수와 기준·장부 부채, 부채 차이를 먼저 확인합니다.
- 탭을 옮겨 가며 유급휴가 부채 명세 → 휴가 유형별 → 부서별 → 직급군별 → 점검 예외 순으로 좁혀 봅니다.
- 행을 누르면 이월 한도·예상/실적 사용률과 기준·장부 부채가 상세 다이얼로그로 열립니다.
- 유급휴가 부채 명세와 점검 예외 탭에서는 CSV 내려받기(UTF-8 BOM)로 결과를 저장할 수 있습니다.
넘겨 쓸 수 있는 휴가만 — 유형별 부채 규칙
넘겨 쓸 수 있는 휴가만 부채가 됩니다. 퇴사 때 보상하면 전액, 보상하지 않으면 실제로 쓸 몫만큼입니다.
| 판정 조건 | 결과 상태 | 사용자 조치 |
|---|---|---|
| 누적·가득(퇴사 시 보상) | 전액 부채 | 이월 인정 일수 × 일 통상임금을 부채로 잡습니다. |
| 누적·비가득(퇴사 시 소멸) | 사용 예상분 부채 | 이월 인정 일수 × 일 통상임금 × 예상 사용률을 부채로 잡습니다. |
| 비누적(이월 불가) | 부채 없음 | 휴가를 쓸 때 비용을 인식합니다. |
| 비누적 휴가에 부채 계상 | 점검 필요 | 부채를 환입합니다. |
| 비가득 휴가에 사용률 미반영 | 점검 필요 | 예상 사용률을 반영해 다시 측정합니다. |
| 가득 휴가 부채 미계상 | 점검 필요 | 부채 설정 누락을 확인합니다. |
| 이월 한도 초과분까지 계상 | 점검 필요 | 한도를 넘는 일수를 뺍니다. |
| 비가득 예상 사용률이 실적과 15%p 이상 차이 | 확인 필요 | 사용률 추정을 다시 검토합니다. |
이 화면이 대신 정하지 않는 것
판정 결과는 확인 대상을 알리는 표시이며, 기준서 충족 여부를 단정하지 않습니다. 가득 여부와 이월 한도는 취업규칙과 법령에 따르고, 예상 사용률은 과거 실적으로 회사가 추정합니다. 화면은 사회보험료 등 부대비용을 제외한 참고 계산이며, 15%p 기준은 확인 대상을 고르는 참고값입니다. 최종 판단은 기준서 원문에 따라 회사와 감사인이 합니다.
미사용 일수에서 부채 대사까지 5단계 산출
| 단계 | 내용 |
|---|---|
| 1단계 | 휴가 유형을 나눈다 — 누적·가득 / 누적·비가득 / 비누적 |
| 2단계 | 이월 인정 일수를 구한다 — 이월 인정 일수 = min(미사용 일수, 이월 한도) — 비누적은 0 |
| 3단계 | 가득 휴가 부채를 계산한다 — 부채 = 이월 인정 일수 × 일 통상임금 |
| 4단계 | 비가득 휴가 부채를 계산한다 — 부채 = 이월 인정 일수 × 일 통상임금 × 예상 사용률 |
| 5단계 | 장부와 대사한다 — 부채 차이 = 장부 부채 − 기준 부채 |
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회사코드 | 필수 | 대사 요약 단건 조회의 키로도 씁니다. |
| 회계연도 | 필수 | 대사 요약 단건 조회의 키로도 씁니다. |
| 휴가 유형 | 선택 | 전체 / 누적·가득 / 누적·비가득 / 비누적 |
| 부서코드 | 선택 | D1 영업본부 · D2 생산본부 · D3 연구소 · D4 경영지원실 |
| 판정 상태 | 선택 | 전체 / 정상 / 점검 필요 / 확인 필요 |
결과 컬럼
| 영역 | 컬럼 · 표시 |
|---|---|
| 유급휴가 부채 대사 요약 | 집계 단위 수 · 대상 인원 · 미사용 일수 · 이월 인정 일수 · 기준/장부 부채 · 부채 차이 · 예외 건수 |
| 유급휴가 부채 명세 | 부서 · 직급군 · 휴가 유형 · 인원 · 미사용 일수 · 이월 한도 · 이월 인정 일수 · 일 통상임금 · 예상 사용률 · 기준/장부 부채 · 판정 |
| 휴가 유형별 · 부서별 · 직급군별 집계 | 구분 · 단위 수 · 인원 · 미사용 일수 · 이월 인정 일수 · 기준/장부 부채 |
| 점검 예외 | 예외번호 · 부서 · 예외 유형 · 내용 · 차이 · 중요도 |
SAP 표준 기능 매핑
표준 실행은 SAP 표준 T-code 가 담당하고, 이 화면은 그 데이터에 유급휴가 부채 관점의 조회·검증을 더해 확장합니다.
| 표준 T-code | 표준 기능 | 이 화면이 더한 것 |
|---|---|---|
PT50 | 근태 한도 조회 | 직원별 휴가 발생·사용·잔여 일수를 가져옵니다 |
PA20 | 인사 마스터 조회 | 부서·직급과 통상임금 기준을 확인합니다 |
PC00_M99_CIPE | 급여 결과 전기 | 미지급 휴가 비용 전표를 확인합니다 |
FS10N | G/L 계정 잔액 조회 | 미지급 휴가 부채 계정 잔액을 기준과 대사합니다 |
FAGLL03 | G/L 개별항목 조회 | 휴가 부채 설정·환입 전표를 건별로 확인합니다 |
IFRS 요구사항 매핑표
| 기준서 | 요구사항 | 이 화면의 대응 기능 | 원천 데이터 | 비고 |
|---|---|---|---|---|
| IAS 19 (K-IFRS 제1019호) | 누적 유급휴가는 근무로 권리가 늘어날 때 예상 원가를 인식 | 누적 휴가 기준 부채 산출과 미계상 검출 | PA2006 | 누적 여부는 취업규칙에 따릅니다. |
| IAS 19 (K-IFRS 제1019호) | 비가득 휴가는 권리 소멸 가능성을 반영해 측정 | 예상 사용률 반영과 전액 계상 검출 | PA2006 · PA2001 | 사용률 추정은 회사 몫입니다. |
| IAS 19 (K-IFRS 제1019호) | 측정 = 미사용 권리로 지급할 것으로 예상되는 추가 금액 | 이월 한도 적용과 초과분 계상 검출 | PA2006 · PA0008 | 통상임금 산정은 법령에 따릅니다. |
| IAS 19 (K-IFRS 제1019호) | 비누적 유급휴가는 휴가를 쓸 때 인식 | 비누적 기준 부채 0 과 계상 검출 | ACDOCA | 기말 부채 대상이 아닙니다. |
참고 CDS 뷰
| 원천 테이블 | 주요 필드 | 쓰임 |
|---|---|---|
PA2006 | PERNR · KTART · ANZHL · KVERB · DESTA · DEEND | 휴가 한도 발생·사용 일수 |
PA2001 | PERNR · AWART · BEGDA · ABWTG | 실제 휴가 사용(실적 사용률) |
PA0001 | PERNR · ORGEH · PERSK | 부서·직급 |
PA0008 | PERNR · LGA01 · BET01 | 통상임금 산정 기준 |
ACDOCA | RBUKRS · GJAHR · RACCT · HSL | 미지급 휴가 부채 전표 |
define view entity ZC_PaidLeaveLiabItem
as select from ZI_LeaveQuotaBalance as lq
inner join ZI_OrgAssignment as oa on oa.PersonnelNumber = lq.PersonnelNumber
{
key oa.OrgUnit as DeptCode,
key oa.EmployeeSubgroup as Grade,
key lq.QuotaType as LeaveType,
count(*) as Headcount,
sum(lq.RemainingDays) as UnusedDays,
sum(lq.CarryForwardCap) as CarryCap
}
group by oa.OrgUnit, oa.EmployeeSubgroup, lq.QuotaType
표준 CDS 뷰 이름과 필드는 시스템 릴리스에 따라 다를 수 있으므로, 도입 시 실제 시스템에서 확인해 확정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 · 구성 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 패널 · 대사 요약 패널 · sap.m.IconTabBar 5개 탭 |
| 데이터 연동 | manifest.json dataSources.mainService(OData V2, 상대 경로) — 화면 블록마다 엔티티셋에 직접 바인딩합니다. 모델 설정은 useBatch:false · defaultBindingMode:"OneWay" · defaultCountMode:"Inline" |
| 조회조건 | sap.m.Input · sap.m.ComboBox — 우측 끝에 조회·초기화 버튼, Enter 키로 즉시 재조회, sap/ui/model/Filter로 조회조건을 조립합니다. "전체"를 고른 조건은 필터를 만들지 않습니다 |
| 정렬 · 페이징 | sap/ui/model/Sorter와 모델의 페이징 기능으로 처리 — 전체를 받아 화면에서 걸러내지 않습니다 |
| 명세·예외 표 | sap.ui.table.Table — 행 클릭 시 상세 다이얼로그 |
| 집계 표 | sap.m.Table — sap.m.ObjectStatus로 판정 상태를 표준 ValueState 로만 표시 |
| 공통 처리 | CSV 다운로드 공통 컨트롤러(UTF-8 BOM), 전역 오류 처리기 — 메타데이터 로드 실패·요청 실패·빈 응답을 구분해 안내 |
파일 구성
| 경로 | 역할 |
|---|---|
index.html | OpenUI5 부트스트랩 — sap_horizon · lodash · moment, OData 서비스에 연결 |
Component.js | 화면 상태·조회조건 모델 초기화, 전역 오류 처리기 연결 |
manifest.json | 앱 디스크립터 — zui5.paidleave · ko 로케일, OData 서비스와 모델 선언 |
view/Main.view.xml | 조회조건 · 대사 요약 · 5개 탭 |
view/DetailDialog.fragment.xml | 상세 내역 다이얼로그 |
controller/Main.controller.js | 조회조건 조립 · 바인딩 · 다이얼로그 · CSV 다운로드 |
controller/BaseController.js | CSV 다운로드 공통 처리 |
model/ErrorHandler.js | 전역 오류 처리 |
model/formatter.js | 금액 · 비율 · 상태 표시 서식 |
i18n/i18n_ko.properties | ko 로케일 리소스 |
운영 데이터는 OData 서비스가 제공하며, 검증용 샘플 데이터는 화면과 완전히 분리해 별도로 둡니다. 화면과 판정 로직은 그대로 씁니다.
검증 결과
화면 구성에 쓴 검증용 샘플 데이터는 부서·직급군 12개 단위를 기준으로 이월 인정 일수와 기준 부채가 원(KRW) 단위로 맞물리도록 구성했습니다.
| 검증 항목 | 결과 |
|---|---|
| 이월 인정 일수 = min(미사용 일수, 이월 한도) — 비누적은 0 | 통과(차이 0) |
| 기준 부채 = 가득: 이월 일수 × 일 통상임금 / 비가득: × 예상 사용률 / 비누적: 0 | 통과(차이 0) |
| 비누적 휴가 기준 부채 = 0 | 통과(차이 0) |
| 이월 인정 일수 ≤ 미사용 일수 | 통과(차이 0) |
| 장부 부채 = 기준 | 통과(의도적 예외 제외 차이 0) |
| 휴가 유형별 집계 = 명세 집계 | 통과(차이 0) |
| 부서별 집계 = 명세 집계 | 통과(차이 0) |
| 직급군별 집계 = 명세 집계 | 통과(차이 0) |
| 대사 요약행 = 실제 집계 결과 | 통과(차이 0) |
| 금액 차이 건 = 예외 등록 건 | 통과(의도적 예외 제외 차이 0) |
| 확인 대상 건 안내 | 비누적 계상 1건 · 사용률 미반영 1건 · 가득 미계상 1건 · 이월 한도 초과 1건 · 사용률 추정 차이 1건(의도적으로 구성한 케이스) |
| 조회 조건 전달 — 12건 → 5건 필터 · top 3 · 내림차순 정렬 · __count 12 확인 | 확인 |
| 표시 금지 검사 — 커스텀 프로그램ID·앱 식별자·출처 표현 검출 | 0건 |
| 화면 렌더링 — 실브라우저에서 조회 → 탭 이동 → 행 클릭 상세까지 실동작 후 캡처 | 6/6 |
조회 버튼 위치 · sap_horizon 테마 · Enter 키 조회 · 서비스 미연결 시 오류 안내 | 확인 |
모든 데이터는 검증용으로 구성한 가상 데이터입니다.
자주 묻는 질문
이 화면의 판정이 곧 기준서 충족 여부인가요?
아닙니다. 이 화면은 누적 유급휴가 부채의 측정 결과를 집계·대사해 확인이 필요한 건을 가려내는 점검 도구입니다. 최종 판단은 기준서 원문에 따라 회사와 감사인이 합니다.
적용 시기와 범위는 어떻게 되나요?
IAS 19 종업원급여(K-IFRS 제1019호)는 이미 시행 중인 기준서입니다. 이 화면은 연차 등 유급휴가 가운데 기말에 쓰지 않고 남은 일수를 다룹니다. 휴가는 매달 발생하고 쓰이므로 결산마다 점검할 대상입니다.
비가득 휴가도 왜 부채가 되나요?
퇴사할 때 보상하지 않더라도, 이월된 휴가를 다음 해에 쓰면 회사는 그 날 일하지 않은 직원에게 임금을 줍니다. 그래서 권리가 쌓인 시점에 부채로 인식합니다. 다만 쓰기 전에 퇴사해 사라질 몫은 빼야 하므로, 실제로 쓸 것으로 예상되는 비율을 곱해 측정합니다.
이월되지 않는 휴가는 왜 부채가 없나요?
기간이 끝나면 사라지는 휴가는 다음 기간으로 넘어가는 의무가 없기 때문입니다. 이런 휴가는 직원이 실제로 쉴 때 그날 임금으로 비용이 인식되므로, 기말에 따로 부채를 잡지 않습니다.