'use client'; import { useState, useEffect, useMemo } from 'react'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { faCircleInfo } from '@fortawesome/free-solid-svg-icons'; import { fetchApi } from '@/lib/utils/client'; import type { WithholdingTaxSummaryResponse } from '@/types/response/settlement/tax'; import { MONTH_NAMES, TAX_GUIDE_ITEMS } from '../constants'; import Loading from '@/app/component/Loading'; export default function SettlementTaxPage() { const currentYear = new Date().getFullYear(); const [loading, setLoading] = useState(true); const [year, setYear] = useState(currentYear); const [data, setData] = useState(null); const yearOptions = useMemo(() => { const years: number[] = []; for (let y = currentYear; y >= currentYear - 4; y--) { years.push(y); } return years; }, [currentYear]); useEffect(() => { setLoading(true); fetchApi(`/api/studio/settlement/tax?year=${year}`) .then(res => { if (res.data) { setData(res.data); } }) .catch(() => {}) .finally(() => setLoading(false)); }, [year]); return (

원천징수 내역

{/* 연도 선택 */}
{loading && } {!loading && data && ( <> {/* 연간 요약 카드 */}
총 지급액
{data.annualSummary.totalGrossAmount.toLocaleString()}원
소득세 (3%)
-{data.annualSummary.totalIncomeTax.toLocaleString()}원
지방소득세 (0.3%)
-{data.annualSummary.totalLocalTax.toLocaleString()}원
실수령액
{data.annualSummary.totalNetAmount.toLocaleString()}원
{/* 월별 상세 */}

월별 상세

{data.monthlyList.length > 0 ? ( data.monthlyList.map(row => ( )) ) : ( )}
지급액 소득세 지방소득세 실수령액 건수
{MONTH_NAMES[row.month - 1]} {row.grossAmount.toLocaleString()}원 -{row.incomeTax.toLocaleString()}원 -{row.localTax.toLocaleString()}원 {row.netAmount.toLocaleString()}원 {row.paymentCount}건
해당 연도의 원천징수 내역이 없습니다.
{/* 종합소득세 신고 안내 */}
종합소득세 신고 안내
    {TAX_GUIDE_ITEMS.map((item, i) => (
  • {item}
  • ))}
)}
); }