SAP 부가세 신고자료 조회·수정 — 집계된 자료를 신고 전에 손보기
집계 프로그램이 만들어 둔 신고자료를 조회해 세목·공급가액·거래처 정보를 직접 고치고, 업로드와 전표 연계까지 한 화면에서 처리합니다.
부가세 신고자료는 집계 프로그램이 전표에서 뽑아 줍니다. 그런데 뽑힌 그대로 신고할 수 있는 경우는 많지 않습니다.
거래처 상호가 옛날 이름으로 남아 있거나, 세목이 잘못 붙었거나, 품목이 비어 있습니다. 이걸 고치려고 원 전표를 손대면 회계가 흔들립니다. 신고자료만 따로 손보도록 OpenUI5 화면으로 확장한 것이 이 앱입니다. 실제 구동 화면 3종을 함께 공개합니다.
SAP 표준 기능을 그대로 이어받은 부분
- 신고자료 — 집계 테이블(
ZTFIE0010)의 전표번호·항목 - 전표 속성 — 증빙일자 · 전기일자 · 전표유형
- 세금 정보 — 세목 · 과세구분 · 공급가액 · 세액
- 거래처 — 상호 · 사업자번호 · 대표자 · 품목
- 조직 — 사업장과 사업영역
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) · 일반회계 · 세무 |
| Namespace | zui5.vatedit |
| 셸 구조 | 조회조건 영역(우측 조회) + 신고자료 테이블 + 수정 모드 |
| 데이터 | 신고 라인 88건 (매출 52 · 매입 36) |
| 성격 | 조회·수정형 — 저장·삭제·업로드는 시뮬레이션 |
| UI 테마 | sap_horizon 단일 적용 |
실제 화면 3종 둘러보기
회계연도·증빙일자로 신고자료를 조회하고 → 수정 모드에서 열린 필드만 고친 뒤 → 저장하면 세액과 요약이 다시 계산됩니다.
아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.
조작 방법
- 회사코드는 사양서에 따라 변경 불가입니다.
- 회계연도와 증빙일자를 넣습니다. 기본값은 전월 연도와 전월 1일~말일입니다.
- 전기일자·전표번호·전표유형·사업영역·세목·사업장·고객·거래처로 조건을 더할 수 있습니다.
- 조회 버튼은 조회조건 영역 오른쪽 끝에 있고, 입력필드에서 Enter 로도 조회됩니다.
- 수정 모드를 켜면 고칠 수 있는 필드만 열립니다.
- 저장하면 사업자번호 형식과 공급가액을 검증한 뒤 반영합니다.
- 업로드로 CSV 를 읽어 반영할 수 있습니다. 형식이 틀린 행은 행 번호로 알려 줍니다.
- 전표 클릭으로 회계전표 조회(FB03)로 이어집니다.
세액 계산
과세구분에 따라 세액이 갈립니다.
과세 · 불공제 : 세액 = 공급가액 × 세율
영세 · 면세 : 세액 = 0
합계 = 공급가액 + 세액
납부세액 = 매출세액 − 매입세액
세목이나 공급가액을 고치면 세액·합계·상단 요약이 즉시 재계산
업로드 시 세목으로 세율·과세구분·세액을 채움
원 전표가 아니라 신고자료를 고치는 이유
상호가 바뀌었거나 품목이 비었다고 회계 전표를 고치면 이미 마감된 기간이 흔들립니다. 신고자료는 집계 결과를 담은 별도 테이블이라, 여기서 고치면 회계는 그대로 두고 신고 서류만 정확해집니다.
기능별 동작
| 기능 | 동작 | 결과 |
|---|---|---|
| 수정 | 세목·공급가액·상호·사업자번호·품목·비고만 열림 | 나머지는 잠김 |
| 저장 | 사업자번호 형식·공급가액 검증 후 반영 | 변경 라인 표시 |
| 삭제 | 선택 라인 확인 후 삭제 | 목록에서 제외 |
| 업로드 | 다운로드와 같은 양식 CSV 반영 | 오류 행은 행 번호 안내 |
| 다운로드 | 화면 자료를 CSV 로 | UTF-8 BOM |
| 전표 클릭 | 회사코드·연도·전표번호 전달 | FB03 연계 |
본 앱의 저장·삭제·업로드는 화면에 반영해 보여 주는 시뮬레이션이며, 실제 테이블 반영은 표준 업데이트가 담당합니다.
조회조건
| 필드 | 필수 | 설명 |
|---|---|---|
| 회사코드 | 필수 | 사양서에 따라 변경 불가(읽기 전용) |
| 회계연도 | 필수 | 기본값 전월 연도 |
| 증빙일자 | 필수 | 기본값 전월 1일 ~ 전월 말일 |
| 전기일자 · 전표번호 · 전표유형 | 선택 | 추가 조건 |
| 사업영역 · 세목 · 사업장 | 선택 | 추가 조건 |
| 고객 · 거래처 | 선택 | 거래 상대 |
결과 컬럼
| 컬럼 | 의미 · 표시 |
|---|---|
| 전표번호 · 항목 | 신고 라인 식별 |
| 매출/매입 구분 | 거래 방향 |
| 증빙일자 · 전기일자 | 날짜 정보 |
| 전표유형 | 전표 성격 |
| 세목 · 과세구분 | 세액 계산 기준 |
| 공급가액 · 세액 · 합계 | 금액 |
| 상호 · 사업자번호 · 대표자 | 거래처 정보 |
| 품목 | 거래 내용 |
| 사업장 · 사업영역 | 조직 정보 |
| 전자세금계산서 승인번호 | DTI 연계 |
| 비고 | 수정 사유 등 |
SAP 표준 기능 매핑
| 표준 | 역할 | 이 화면에서의 확장 |
|---|---|---|
ZTFIE0010 | 부가세 신고 자료 테이블 | 조회·수정 대상 |
FB03 | 전표 조회 | 전표 클릭 연계 |
BSET | 전표 세금 라인 | 집계 원천 |
T007A | 세금코드 설정 | 세목과 세율 |
| DTI 테이블 | 전자세금계산서 | 승인번호 |
도입 시 확인이 필요한 부분
수정 이력을 남길지 정해야 합니다. 신고자료를 고친 뒤 세무조사에서 왜 전표와 다른지 묻는다면 근거가 필요합니다. 비고 필드만으로는 부족하고, 변경 전후 값과 변경자를 기록하는 별도 로그가 있으면 안전합니다.
참고 CDS 뷰
@AbapCatalog.sqlViewName: 'ZCVATEDIT'
@EndUserText.label: '부가세 신고자료 조회·수정 (Z)'
define view Z_C_VAT_DATA_EDIT
as select from ztfie0010 as VatData
left outer join t007s as TaxText on VatData.mwskz = TaxText.mwskz
and TaxText.spras = 'K'
{
key VatData.bukrs,
key VatData.gjahr,
key VatData.belnr,
key VatData.buzei,
VatData.shkzg as SalesPurchase,
VatData.bldat, VatData.budat, VatData.blart,
VatData.mwskz as TaxCode,
TaxText.text1 as TaxCodeText,
VatData.fwbas as SupplyAmount,
VatData.fwste as TaxAmount,
VatData.name1 as PartnerName,
VatData.stcd1 as BizRegNo,
VatData.bupla, VatData.gsber,
VatData.dtinum as EtaxApprovalNo
// 합계 = 공급가액 + 세액, 납부세액 = 매출세액 − 매입세액
}
매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 운영 환경 설정과 릴리즈에 맞춰 조정합니다.
OpenUI5 구성
| 기능 | 사용 컨트롤 |
|---|---|
| 화면 골격 | sap.m.Page + 조회조건 영역 · 신고자료 테이블 |
| 조회조건 | sap.m.Select · sap.m.DatePicker · sap.m.Input — 우측 끝에 조회·초기화 |
| 이벤트 | 모든 버튼이 onPAI 단일 진입점, fcCode 로 분기 |
| 신고자료 테이블 | sap.ui.table.Table — 인라인 편집 |
| 수정 모드 | 열린 필드만 편집 가능, 나머지는 읽기 전용 |
| 전표 링크 | sap.m.Link — 회계전표 조회 연계 |
수정 가능 필드를 제한하는 이유
전표번호나 전기일자까지 열어 두면 신고자료와 회계 전표의 연결이 끊깁니다. 나중에 어느 전표에서 온 자료인지 추적할 수 없게 됩니다. 거래처 정보와 금액처럼 신고 서류에만 영향을 주는 필드만 열면 연결은 유지됩니다.
파일 구성
| 경로 | 역할 |
|---|---|
manifest.json | 앱 디스크립터 — 앱 ID(zui5.vatedit) · ko 로케일 |
view/Main.view.xml | 조회조건과 신고자료 테이블 |
controller/Main.controller.js | 조회 · 수정 · 세액 재계산 · 업로드 |
model/ModelMock.js | localdata JSON 읽기(Promise) |
js/formatter.js | 금액 · 사업자번호 · 상태 포맷터 |
localdata/vatedit.json | 신고 라인 88건 |
검증 결과
| 검증 항목 | 결과 |
|---|---|
| 과세·불공제 세액 = 공급가액 × 세율 · 영세·면세 세액 0 | 통과 |
| 합계 = 공급가액 + 세액 · 세목은 코드 목록과 일치 | 통과 |
| 매출은 고객·매출전표, 매입은 거래처·매입전표 | 통과 |
| 사업자번호·전자세금계산서 승인번호 형식 | 통과 |
| 증빙일자 전월 1일~말일 · 전기일자 ≥ 증빙일자 | 통과 |
| 거래처별 사업자번호·대표자·주소 일관 · 전표+항목 중복 없음 | 통과 |
| 화면 렌더링 — 실브라우저 조회 → 수정 실동작 후 캡처 | 3/3 |
| 테마 런타임 확인 | sap_horizon |
자주 묻는 질문
신고자료를 고치면 회계와 달라지지 않나요?
달라집니다. 다만 신고 서류에만 쓰는 항목(상호·품목 등)이라 회계 금액에는 영향이 없습니다. 공급가액을 고칠 때는 사유를 남겨 두는 것이 안전합니다.
업로드 양식이 다운로드와 같은가요?
같습니다. 화면 자료를 내려받아 엑셀에서 수정한 뒤 그대로 올리는 흐름을 전제로 합니다. 열 구성이 바뀌면 파싱이 실패합니다.
집계를 다시 돌리면 수정분이 사라지나요?
집계 방식에 따라 다릅니다. 덮어쓰기면 수정분이 지워지므로, 재집계 후에는 수정 이력을 보고 다시 반영해야 합니다.
SAP 표준 기능과 어떻게 이어지나요?
집계는 선행 프로그램이, 전표는 표준 FI 가 담당합니다. 이 화면은 그 사이에서 신고자료만 안전하게 손보게 하는 확장입니다.