솔루션 홈
FBL1N · 채무관리

SAP 현금할인 실현율 분석 — 놓친 할인은 얼마인가

지급조건별 현금할인 가능액과 실제 실현액을 비교해, 할인 기한을 넘겨 사라진 금액과 실현율을 계산하는 화면입니다.

현금할인은 놓쳐도 아무 일이 일어나지 않습니다. 전표에 오류가 뜨지도 않고 결산이 막히지도 않습니다. 그저 받을 수 있었던 돈이 조용히 사라질 뿐입니다.

그래서 이 금액은 따로 세어 보지 않으면 보이지 않습니다. SAP 표준 지급조건 구조를 그대로 이어받아 할인 가능액과 실제 실현액을 비교해 상실액과 실현율로 보여 주도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 2종을 함께 공개합니다.

SAP 표준 기능을 그대로 이어받은 부분

  • 지급조건 — 조건 코드(ZtermCode)와 텍스트, 할인율(DiscRatePct)
  • 할인 기한 — 할인 마감일(SkontoFristD)과 순지급기일(FaelD)
  • 할인 기준액 — 할인 대상 금액(Skfbt)
  • 실현액 — 실제로 적용된 할인액(Wskto)과 반제일(Augdt)
  • 벤더 · 전표 — 공급업체 코드·명칭과 전표번호·회계연도·전기일
항목내용
기반 T-codeFBL1N (공급업체 개별항목)
업무 영역재무회계(FI-AP) · 지급 효율 관리
Namespacezui5.cashdisc
셸 구조조회조건 영역(우측 조회·초기화) + 할인 분석 테이블
화면 수조회 화면 1개
데이터할인 분석 169건 · 지급조건 5건
성격조회형(Read-Only) — 지급과 반제는 표준 트랜잭션이 담당
UI 테마sap_horizon 단일 적용

실제 화면 2종 둘러보기

회사코드·벤더·지급조건으로 조회하면 전표별 할인 가능액과 실현액이 나옵니다 → 상실액이 큰 건과 조건을 추려 보고 → 실현율로 지급 프로세스가 제때 돌고 있는지 판단합니다.

아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.

FBL1N — Main.view.xml
초기 진입 화면 — 조회조건과 안내 메시지
초기 진입 화면 — 조회조건과 안내 메시지 — 회사코드·벤더·지급조건·기간을 고르는 화면입니다. 조회·초기화 버튼은 조회조건 영역 오른쪽 끝에 있습니다.
FBL1N — 할인 분석
메인화면 — 가능액·실현액·상실액
메인화면 — 가능액·실현액·상실액 — 벤더·전표·지급조건·할인율과 함께 할인 마감일·순지급기일·반제일이 놓이고, 할인 가능액과 실현액, 그 차이인 상실액이 이어집니다. 상실액이 있는 줄은 상태 색으로 구분됩니다.

조작 방법

  1. 회사코드와 조회 기간을 넣습니다.
  2. 벤더지급조건으로 좁힙니다. 조건별로 실현율이 크게 갈리는 경우가 많습니다.
  3. 조회조건 입력필드에서 값을 바꾸거나 Enter 를 누르면 즉시 조회됩니다.
  4. 상실액이 있는 건을 먼저 봅니다. 할인 기한과 반제일을 비교하면 며칠 늦었는지 드러납니다.
  5. 실현율로 전체 상황을 봅니다. 낮으면 지급 프로세스 자체를 점검할 시점입니다.
  6. 결과는 CSV 다운로드로 내려받습니다.

실현율과 상실액 산식

세 숫자로 정리됩니다. 받을 수 있었던 것, 실제로 받은 것, 그 차이입니다.

할인 가능액(DiscAvail) = 할인 기준액(Skfbt) × 할인율(DiscRatePct)
실현액(Wskto)          = 실제 적용된 할인액
상실액                  = 할인 가능액 − 실현액
실현율                  = 실현액 ÷ 할인 가능액 × 100

반제일(Augdt) ≤ 할인 마감일(SkontoFristD)  →  실현
반제일 > 할인 마감일 또는 미반제              →  상실

상실액을 금액으로 환산하는 이유

"할인 기한을 자주 놓친다" 는 말로는 개선이 시작되지 않습니다. 3% 할인 조건에서 며칠 늦어 놓친 금액을 합산하면 연간 수천만 원이 되기도 합니다. 금액으로 보이면 지급 승인 일정을 앞당기는 논의가 구체적으로 됩니다.

할인을 놓치는 세 가지 경로

경로상황개선 방향
송장 등록 지연송장이 늦게 들어와 할인 기한이 이미 지남구매·검수 리드타임 단축
승인 지연지급 승인이 기한 안에 끝나지 않음승인 일정을 할인 기한에 맞춤
지급 주기 불일치지급 실행일이 주 1회라 기한을 넘김할인 건은 별도 지급 회차로

조회조건

필드필수설명
회사코드 Bukrs필수대상 회사코드
기간 Budat필수전기일 From~To
벤더 Lifnr선택공급업체 코드·명칭
지급조건 ZtermCode선택ZB01 즉시현금 · ZB04 10일 3% / 45일 순지급 등
상태선택전체 / 실현 / 상실

결과 컬럼

컬럼의미 · 표시
벤더 Lifnr · LifnrName코드와 명칭
전표번호 Belnr · 연도 Gjahr대상 전표
전기일 Budat채무 인식일
지급조건 ZtermCode · ZtermText조건 코드와 설명
할인율 DiscRatePct조건에 정의된 할인율
할인 마감일 SkontoFristD이 날까지 지급해야 할인 적용
순지급기일 FaelD할인 없이 지급해야 하는 기한
금액 Wrbtr · 할인기준액 Skfbt전표 금액과 할인 대상액
할인 가능액 DiscAvail기준액 × 할인율
실현액 Wskto실제 적용된 할인
상실액가능액 − 실현액. 0이 아니면 경고 색
반제일 Augdt · 상태 Status지급 완료일과 처리 상태

SAP 표준 기능 매핑

표준역할이 화면에서의 확장
FBL1N공급업체 개별항목 조회할인 가능액·실현액·상실액을 계산해 열로 추가
OBB8지급조건 설정조건별 할인율과 기한을 읽어 가능액 산출
F110자동 지급지급 실행 결과가 실현 여부로 반영
BSIK · BSAK공급업체 미결 · 반제 항목분석 원천
LFA1공급업체 마스터벤더 명칭

도입 시 확인이 필요한 부분

할인 기준액이 총액인지 순액인지가 회사마다 다릅니다. 세액을 제외한 공급가액 기준으로 계산하는 곳이 많고, 이 설정에 따라 가능액이 달라집니다. 또 다단계 할인 조건(10일 3% · 20일 2% · 45일 순지급)을 쓰면 어느 단계를 기준으로 상실을 판정할지 정해야 합니다.

참고 CDS 뷰

@AbapCatalog.sqlViewName: 'ZCCASHDISC'
@EndUserText.label: '현금할인 실현 분석 (Z)'
define view Z_C_CASH_DISCOUNT
  as select from bsak as Item
    inner join      lfa1  as Vendor on Item.lifnr = Vendor.lifnr
    left outer join t052  as Terms  on Item.zterm = Terms.zterm
{
  key Item.bukrs, key Item.belnr, key Item.gjahr, key Item.buzei,
      Item.lifnr, Vendor.name1 as LifnrName,
      Item.budat,
      Item.zterm             as ZtermCode,
      Terms.zprz1            as DiscRatePct,
      Item.skfbt             as Skfbt,
      Item.wrbtr             as Wrbtr,
      Item.wskto             as Wskto,
      Item.augdt             as Augdt,
      // 할인 가능액 = 할인 기준액 × 할인율
      cast( Item.skfbt * Terms.zprz1 / 100 as abap.curr(15,2) ) as DiscAvail,
      // 상실액 = 가능액 − 실현액 (소비 뷰에서 계산)
      Item.zbd1t             as DiscDays
}

매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.m.Page + 조회조건 영역 · 할인 분석 테이블
조회조건sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화
이벤트모든 버튼이 onPAI 단일 진입점, fcCode 로 분기
분석 테이블sap.m.Table — 금액 우측정렬, popin 반응형
상태 표시sap.m.ObjectStatus — 실현 / 상실
요약실현율과 상실액 합계를 상단에 표시

기한과 반제일을 인접 배치한 이유

상실 여부는 두 날짜의 비교입니다. 할인 마감일과 반제일이 멀리 떨어져 있으면 왜 상실됐는지 확인하려고 눈이 오갑니다. 붙여 두면 "3일 늦었다" 가 한눈에 보이고, 며칠만 앞당기면 되는지도 바로 나옵니다.

파일 구성

경로역할
manifest.json앱 디스크립터 — 앱 ID(zui5.cashdisc) · ko 로케일
view/Main.view.xml조회조건과 할인 분석 테이블
controller/Main.controller.js조회 · 가능액·실현율 계산 · CSV
model/ModelMock.jslocaldata JSON 읽기(Promise)
js/formatter.js금액 · 일자 · 비율 · 상태 색 포맷터
localdata/cashdiscdata.json할인 분석 169건
localdata/termsdata.json지급조건 5건

검증 결과

검증 항목결과
할인 가능액 = 할인 기준액 × 할인율 (전 건)통과
상실액 = 가능액 − 실현액통과
실현율 = 실현액 ÷ 가능액 × 100통과
반제일 ≤ 할인 마감일인 건만 실현으로 판정통과
지급조건 코드와 할인율·기한 정합통과
XML · JSON 전체 파싱오류 0건
화면 렌더링 — 실브라우저 조회 후 캡처2/2
테마 런타임 확인sap_horizon

자주 묻는 질문

할인 기준액은 총액인가요 공급가액인가요?

설정에 따라 다릅니다. 세액을 제외한 공급가액 기준이 일반적이며, 이 설정이 가능액 계산을 좌우하므로 도입 시 먼저 확인해야 합니다.

다단계 할인 조건은 어떻게 처리하나요?

10일 3% · 20일 2% 처럼 여러 단계가 있으면 지급 시점에 해당하는 단계가 적용됩니다. 상실 판정은 최상위 단계(가장 높은 할인율)를 기준으로 볼지, 실제 적용 가능했던 단계로 볼지 정해야 합니다.

실현율이 낮으면 무엇을 봐야 하나요?

송장이 늦게 들어오는지, 승인이 늦는지, 지급 주기가 기한과 안 맞는지 세 가지를 순서대로 봅니다. 대개 하나가 병목이고, 그 지점만 며칠 당겨도 실현율이 크게 올라갑니다.

SAP 표준 기능과 어떻게 이어지나요?

지급조건과 할인은 표준 설정에 정의돼 있고 실현 여부는 반제 결과로 남습니다. 이 화면은 두 정보를 맞춰 받을 수 있었던 금액과 실제 받은 금액의 차이를 금액으로 보여 주는 확장입니다.

현금할인 실현율, 지금 쓰는 SAP 위에서 확장해 보세요

놓친 할인은 소리 없이 사라집니다. 금액으로 보이면 지급 일정을 며칠 당기는 일이 설득됩니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

현금할인스콘토Skonto지급조건실현율매입채무조기지급OpenUI5