From 5bd0b288a7aa31fe304f621763c281a4534cb8fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Fri, 6 Feb 2026 09:44:18 +0900 Subject: [PATCH] =?UTF-8?q?feat:=EB=B6=80=EA=B0=80=EC=84=B8=20=EC=9A=94?= =?UTF-8?q?=EC=95=BD=20=ED=85=8C=EC=9D=B4=EB=B8=94=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 매출 → 매출(세금계산서) 명칭 변경 - 계산서(면세) 행 추가 - 홈택스 면세 데이터 집계 - 면세는 세액 없으므로 공급가액만 표시 Co-Authored-By: Claude Opus 4.5 --- .../Finance/VatRecordController.php | 20 +++++++++++++++---- resources/views/finance/vat.blade.php | 10 ++++++++-- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Finance/VatRecordController.php b/app/Http/Controllers/Finance/VatRecordController.php index 9c65c7cc..72e27dd4 100644 --- a/app/Http/Controllers/Finance/VatRecordController.php +++ b/app/Http/Controllers/Finance/VatRecordController.php @@ -195,10 +195,21 @@ public function index(Request $request): JsonResponse ->concat($manualRecords) ->values(); - $hometaxSalesSupply = $hometaxSalesRecords->sum('supplyAmount'); - $hometaxSalesVat = $hometaxSalesRecords->sum('vatAmount'); - $hometaxPurchaseSupply = $hometaxPurchaseRecords->sum('supplyAmount'); - $hometaxPurchaseVat = $hometaxPurchaseRecords->sum('vatAmount'); + // 홈택스 매출 (과세 + 영세만, 면세 제외) + $hometaxSalesTaxable = $hometaxSalesRecords->whereIn('taxType', ['taxable', 'zero_rated']); + $hometaxSalesSupply = $hometaxSalesTaxable->sum('supplyAmount'); + $hometaxSalesVat = $hometaxSalesTaxable->sum('vatAmount'); + + // 홈택스 매입 세금계산서 (과세 + 영세만, 면세 제외) + $hometaxPurchaseTaxable = $hometaxPurchaseRecords->whereIn('taxType', ['taxable', 'zero_rated']); + $hometaxPurchaseSupply = $hometaxPurchaseTaxable->sum('supplyAmount'); + $hometaxPurchaseVat = $hometaxPurchaseTaxable->sum('vatAmount'); + + // 홈택스 면세 계산서 (매입 + 매출 모두) + $exemptSalesSupply = $hometaxSalesRecords->where('taxType', 'exempt')->sum('supplyAmount'); + $exemptPurchaseSupply = $hometaxPurchaseRecords->where('taxType', 'exempt')->sum('supplyAmount'); + $exemptSupply = $exemptSalesSupply + $exemptPurchaseSupply; + $cardPurchaseSupply = $cardRecords->sum('supplyAmount'); $cardPurchaseVat = $cardRecords->sum('vatAmount'); $manualSalesSupply = $manualRecords->where('type', 'sales')->sum('supplyAmount'); @@ -213,6 +224,7 @@ public function index(Request $request): JsonResponse 'purchaseVat' => $hometaxPurchaseVat + $cardPurchaseVat + $manualPurchaseVat, 'hometaxPurchaseSupply' => $hometaxPurchaseSupply, 'hometaxPurchaseVat' => $hometaxPurchaseVat, + 'exemptSupply' => $exemptSupply, // 면세 계산서 공급가액 'cardPurchaseSupply' => $cardPurchaseSupply, 'cardPurchaseVat' => $cardPurchaseVat, 'total' => $allRecords->count(), diff --git a/resources/views/finance/vat.blade.php b/resources/views/finance/vat.blade.php index 117801fa..fd3e3420 100644 --- a/resources/views/finance/vat.blade.php +++ b/resources/views/finance/vat.blade.php @@ -49,7 +49,7 @@ function VatManagement() { const [vatRecords, setVatRecords] = useState([]); - const [stats, setStats] = useState({ salesSupply: 0, salesVat: 0, purchaseSupply: 0, purchaseVat: 0, hometaxPurchaseSupply: 0, hometaxPurchaseVat: 0, cardPurchaseSupply: 0, cardPurchaseVat: 0, total: 0 }); + const [stats, setStats] = useState({ salesSupply: 0, salesVat: 0, purchaseSupply: 0, purchaseVat: 0, hometaxPurchaseSupply: 0, hometaxPurchaseVat: 0, exemptSupply: 0, cardPurchaseSupply: 0, cardPurchaseVat: 0, total: 0 }); const [periods, setPeriods] = useState([]); const [loading, setLoading] = useState(true); const [saving, setSaving] = useState(false); @@ -170,6 +170,7 @@ function VatManagement() { const purchaseSupply = stats.purchaseSupply || 0; const hometaxPurchaseSupply = stats.hometaxPurchaseSupply || 0; const hometaxPurchaseVat = stats.hometaxPurchaseVat || 0; + const exemptSupply = stats.exemptSupply || 0; const cardPurchaseSupply = stats.cardPurchaseSupply || 0; const cardPurchaseVat = stats.cardPurchaseVat || 0; const netVat = salesVat - purchaseVat; @@ -363,7 +364,7 @@ function VatManagement() { - 매출 + 매출(세금계산서) {formatCurrency(salesSupply)}원 {formatCurrency(salesVat)}원 @@ -372,6 +373,11 @@ function VatManagement() { {formatCurrency(hometaxPurchaseSupply)}원 ({formatCurrency(hometaxPurchaseVat)}원) + + 계산서(면세) + {formatCurrency(exemptSupply)}원 + - + 매입(카드) {formatCurrency(cardPurchaseSupply)}원