From ad5d62ea071392fb6625dd26a4697b064b746064 Mon Sep 17 00:00:00 2001 From: GA Pro Date: Tue, 12 May 2026 23:51:57 +0900 Subject: [PATCH] =?UTF-8?q?feat(db):=20V23=20=EC=84=B8=EB=AC=B4=EC=B2=98?= =?UTF-8?q?=EB=A6=AC=20=EC=8A=A4=ED=82=A4=EB=A7=88=20+=20=ED=91=9C?= =?UTF-8?q?=EC=A4=80=20=EC=84=B8=EC=9C=A8=20system=5Fconfig=20(=EB=8F=84?= =?UTF-8?q?=EB=A9=94=EC=9D=B8=20P0-1-a)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 도메인 누락 P0 첫 항목 — 세무 처리. 본 커밋은 DB 스키마/데이터만. 다음 sub-step에서 ga-core VO/Enum, 그 다음 ga-api Service 통합. agent 컬럼 추가: - tax_type VARCHAR(20) DEFAULT 'BUSINESS_INCOME' (BUSINESS_INCOME 사업소득 3.3% / OTHER_INCOME 기타소득 8.8%) - business_no VARCHAR(20) (사업자등록번호) - vat_type VARCHAR(20) DEFAULT 'NONE' (NONE / EXEMPT 면세 / TAXABLE 일반과세) - 두 컬럼 모두 CHECK 제약 payment 컬럼 추가: - income_tax_amount (원천소득세) - local_tax_amount (지방소득세) - vat_amount (부가세) - net_amount (차감 후 실지급액) system_config 표준 세율(2024 기준, 외부화 가능): - TAX_RATE_BUSINESS_INCOME = 3.3 - TAX_RATE_OTHER_INCOME = 8.8 - TAX_RATE_LOCAL_INCOME = 10.0 - TAX_RATE_VAT = 10.0 common_code 코드그룹 추가: TAX_TYPE, VAT_TYPE 모든 INSERT는 ON CONFLICT DO NOTHING으로 재실행 안전. --- .../resources/db/migration/V23__세무처리.sql | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 ga-common/src/main/resources/db/migration/V23__세무처리.sql diff --git a/ga-common/src/main/resources/db/migration/V23__세무처리.sql b/ga-common/src/main/resources/db/migration/V23__세무처리.sql new file mode 100644 index 0000000..d48bcb7 --- /dev/null +++ b/ga-common/src/main/resources/db/migration/V23__세무처리.sql @@ -0,0 +1,54 @@ +-- V23: 세무 처리 스키마 확장 + 세율 설정 + 공통코드 + +-- ============================================================ +-- 1. agent 테이블 세무 컬럼 추가 +-- ============================================================ + +ALTER TABLE agent + ADD COLUMN tax_type VARCHAR(20) NOT NULL DEFAULT 'BUSINESS_INCOME', + ADD COLUMN business_no VARCHAR(20), + ADD COLUMN vat_type VARCHAR(20) NOT NULL DEFAULT 'NONE'; + +ALTER TABLE agent + ADD CONSTRAINT chk_agent_tax_type + CHECK (tax_type IN ('BUSINESS_INCOME', 'OTHER_INCOME')), + ADD CONSTRAINT chk_agent_vat_type + CHECK (vat_type IN ('NONE', 'EXEMPT', 'TAXABLE')); + +-- ============================================================ +-- 2. payment 테이블 세무 컬럼 추가 +-- ============================================================ + +ALTER TABLE payment + ADD COLUMN income_tax_amount NUMERIC(15,2) NOT NULL DEFAULT 0, + ADD COLUMN local_tax_amount NUMERIC(15,2) NOT NULL DEFAULT 0, + ADD COLUMN vat_amount NUMERIC(15,2) NOT NULL DEFAULT 0, + ADD COLUMN net_amount NUMERIC(15,2); + +-- ============================================================ +-- 3. 표준 세율 system_config 추가 +-- ============================================================ + +INSERT INTO system_config (config_key, config_value, config_group, value_type, description) VALUES + ('TAX_RATE_BUSINESS_INCOME', '3.3', 'TAX', 'NUMBER', '사업소득 원천징수율(%) — 2024년 기준'), + ('TAX_RATE_OTHER_INCOME', '8.8', 'TAX', 'NUMBER', '기타소득 원천징수율(%) — 2024년 기준'), + ('TAX_RATE_LOCAL_INCOME', '10.0', 'TAX', 'NUMBER', '지방소득세율(%) — 원천세 기준'), + ('TAX_RATE_VAT', '10.0', 'TAX', 'NUMBER', '부가세율(%) — 일반과세자 적용') +ON CONFLICT (config_key) DO NOTHING; + +-- ============================================================ +-- 4. 공통코드 그룹 TAX_TYPE / VAT_TYPE 추가 +-- ============================================================ + +INSERT INTO common_code_group (group_code, group_name, description, is_system, sort_order) VALUES + ('TAX_TYPE', '소득세유형', 'BUSINESS_INCOME(사업소득) / OTHER_INCOME(기타소득)', 'Y', 190), + ('VAT_TYPE', '부가세유형', 'NONE / EXEMPT(면세) / TAXABLE(일반과세)', 'Y', 200) +ON CONFLICT (group_code) DO NOTHING; + +INSERT INTO common_code (group_code, code, code_name, code_desc, sort_order) VALUES + ('TAX_TYPE', 'BUSINESS_INCOME', '사업소득', '원천징수 3.3% 적용', 10), + ('TAX_TYPE', 'OTHER_INCOME', '기타소득', '원천징수 8.8% 적용', 20), + ('VAT_TYPE', 'NONE', '미지정', '부가세 처리 없음', 10), + ('VAT_TYPE', 'EXEMPT', '면세사업자','부가세 면세 — 계산서 발행', 20), + ('VAT_TYPE', 'TAXABLE', '일반과세자','부가세 10% — 세금계산서', 30) +ON CONFLICT (group_code, code) DO NOTHING;