From cd3b5eaac30c0de786167da1452a3107a9a30358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9C=A0=EB=B3=91=EC=B2=A0?= Date: Thu, 19 Mar 2026 16:53:09 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EA=B2=BD=EC=A1=B0=EC=82=AC=EB=B9=84=20?= =?UTF-8?q?=E2=86=94=20=EB=8C=80=EC=8B=9C=EB=B3=B4=EB=93=9C=20=EA=B0=80?= =?UTF-8?q?=EC=A7=80=EA=B8=89=EA=B8=88=20=EC=97=B0=EB=8F=99=20=EC=A0=95?= =?UTF-8?q?=EC=B1=85=20=EC=9A=94=EC=B2=AD=EC=84=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 현재 loans vs condolence_expenses 테이블 분리 현황 정리 - 4가지 방안 (합산/별도항목/자동연동/현행유지) 제시 - 백엔드 정책 결정 요청 Co-Authored-By: Claude Opus 4.6 (1M context) --- ...e-expense-dashboard-integration-request.md | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 dev/dev_plans/condolence-expense-dashboard-integration-request.md diff --git a/dev/dev_plans/condolence-expense-dashboard-integration-request.md b/dev/dev_plans/condolence-expense-dashboard-integration-request.md new file mode 100644 index 0000000..7491a35 --- /dev/null +++ b/dev/dev_plans/condolence-expense-dashboard-integration-request.md @@ -0,0 +1,108 @@ +# 경조사비 ↔ 대시보드 가지급금 연동 요청 + +> **작성일**: 2026-03-19 +> **요청자**: FE 개발팀 +> **대상**: 백엔드 개발팀 +> **우선순위**: 정책 확인 후 결정 + +--- + +## 1. 현황 + +### 현재 구조 + +경조사비 관련 데이터가 **2개의 별도 테이블**에서 관리되고 있으며, 대시보드와 경조사비 관리 페이지가 서로 다른 데이터를 조회합니다. + +| 구분 | 대시보드 가지급금 "경조사" | 경조사비 관리 페이지 | +|------|----------------------|-----------------| +| **테이블** | `loans` (category = `congratulatory`) | `condolence_expenses` | +| **API** | `GET /api/v1/loans/dashboard` | `GET /api/v1/condolence-expenses` | +| **개념** | 경조사 관련 가지급금 (선지급 → 정산) | 경조사비 직접 지출 기록 | +| **날짜 기준** | `loan_date` (대출일) | `event_date` (경조사일) | +| **금액 의미** | `amount - settlement_amount` (미정산 잔액) | `cash_amount + gift_amount` (지출 총액) | +| **FE 페이지** | 대시보드 > 가지급금 현황 카드 | 회계관리 > 경조사비 | + +### 발생 이슈 + +1. 경조사비 관리 페이지에서 등록한 데이터가 대시보드 가지급금 "경조사" 항목에 반영되지 않음 +2. 사용자 관점에서 "경조사비를 등록했는데 대시보드에 안 보인다"는 혼란 발생 가능 +3. 두 시스템의 "경조사" 데이터가 별개로 존재하여 일관성 부족 + +--- + +## 2. 정책 결정 필요 사항 + +아래 3가지 방안 중 선택이 필요합니다. + +### 방안 A: 대시보드에 `condolence_expenses` 합산 + +``` +대시보드 가지급금 "경조사" = loans(congratulatory) + condolence_expenses 합산 +``` + +- **장점**: 사용자가 등록한 경조사비가 즉시 대시보드에 반영 +- **단점**: 가지급금(미정산)과 지출(확정)이 혼합되어 금액 의미가 모호해짐 +- **수정 범위**: `LoanService::getCategoryBreakdown()` 수정 + +### 방안 B: 대시보드에 별도 항목 추가 + +``` +가지급금 현황: + 카드 1,150만 + 경조사 30만 ← loans 테이블 (기존) + 경조사비 10만 ← condolence_expenses 테이블 (신규) + 상품권 50만 + 접대비 45만 +``` + +- **장점**: 데이터 출처가 명확, 이중 집계 없음 +- **단점**: 카드가 5→6개로 증가, UI 조정 필요 +- **수정 범위**: `LoanService::dashboard()` + FE `CardManagementSection` 수정 + +### 방안 C: `condolence_expenses` 등록 시 `loans` 자동 생성 + +``` +경조사비 등록 → loans 테이블에 category=congratulatory로 자동 삽입 +``` + +- **장점**: 단일 데이터 소스, 대시보드 자동 반영 +- **단점**: 서비스 간 결합도 증가, 양쪽 삭제/수정 시 동기화 복잡 +- **수정 범위**: `CondolenceExpenseService::store/update/destroy()` + `LoanService` 연동 + +### 방안 D: 현행 유지 (별개 관리) + +- **장점**: 수정 없음, 각 시스템 독립 운영 +- **단점**: 사용자 혼란 지속 +- **수정 범위**: 없음 (문서/가이드로 안내) + +--- + +## 3. 참고: 현재 코드 위치 + +### 백엔드 (sam-api) + +| 파일 | 역할 | +|------|------| +| `app/Services/LoanService.php` 라인 524-660 | `dashboard()`, `getCategoryBreakdown()` | +| `app/Models/Tenants/Loan.php` 라인 52-78 | 카테고리 상수 (CATEGORY_CONGRATULATORY) | +| `app/Services/CondolenceExpenseService.php` | 경조사비 CRUD + summary | + +### 프론트엔드 (sam-react) + +| 파일 | 역할 | +|------|------| +| `src/hooks/useCEODashboard.ts` 라인 118-134 | 가지급금 데이터 fetch (`/loans/dashboard`) | +| `src/lib/api/dashboard/transformers/expense.ts` 라인 203-211 | cm2(경조사) 카드 변환 | +| `src/components/business/CEODashboard/sections/CardManagementSection.tsx` | 가지급금 UI | + +--- + +## 4. 요청 사항 + +1. **방안 A~D 중 선택** 후 FE팀에 전달 +2. 선택된 방안에 따라 **API 수정 범위** 확정 +3. 수정 완료 후 FE 연동 작업 진행 + +--- + +**최종 업데이트**: 2026-03-19 \ No newline at end of file