# 회계관리 (슬라이드 60-91)

## 1. 개요

회계관리 모듈은 거래처, 매출, 매입, 입금, 출금, 어음, 거래처원장, 미수금 현황, 입출금 계좌 조회 등을 관리합니다.

## 2. 회계관리 플로우차트 (슬라이드 61)

### 2.1 매출 플로우
```
거래처 선택 → 매출 등록 → 세금계산서 발행
```

### 2.2 입금 플로우
```
입금 등록 → 전액 입금? → 어음 수취?
                ↓           ↓
            입출금 계좌 조회  어음관리
```

### 2.3 매입 플로우
```
거래처 선택 → 매입 등록 → 세금계산서 수취
```

### 2.4 출금 플로우
```
출금 등록 → 전액 출금? → 어음 발행?
                ↓           ↓
            입출금 계좌 조회  어음관리
```

### 2.5 추심 플로우
```
미수금 현황 → 연체? → 악성주심? → 악성 추심
                            ↓
                       미지급 알림
```

### 2.6 조회
- 입출금 계좌 조회
- 카드 내역 조회

### 2.7 장부/보고서
- 거래처원장
- 지출 예상 내역서
- 일일 일보

## 3. 거래처관리 (슬라이드 62-65)

### 3.1 현황 카드
| 항목 | 설명 |
|------|------|
| 전체 거래처 | |
| 매출 거래처 | |
| 매입 거래처 | |

### 3.2 삭제 버튼
- 관리 권한이 없을 경우 숨김
- 클릭: "선택한 거래처 N개를 삭제하시겠습니까?" 확인 Alert 표시
- 확인 선택 시 삭제

### 3.3 구분 필터 셀렉트 박스
- 종류: 전체, 매출, 매입, 매입매출
- 디폴트: 전체

### 3.4 신용등급 필터 셀렉트 박스
- 종류: 전체, AAA, AA, A, BBB, BB, B, CCC, CC, C, D
- 디폴트: 전체

### 3.5 거래등급 필터 셀렉트 박스
- 종류: 전체, A(우수), B(양호), C(보통), D(주의), E(위험)
- 디폴트: 전체

### 3.6 약정체결 필터 셀렉트 박스
- 종류: 전체, 약정체결, 정상
- 디폴트: 전체

### 3.7 정렬 셀렉트 박스
- 종류: 최신순, 등록순, 거래처명 오름차순, 거래처명 내림차순, 미수금 높은순, 미수금 낮은순
- 디폴트: 최신순

## 4. 거래처 상세 (슬라이드 63-65)

### 4.1 기본 정보
| 필드명 | 필수 | 설명 |
|--------|------|------|
| 사업자등록번호 | Y | |
| 거래처 코드 | N | |
| 거래처명 | Y | |
| 대표자명 | Y | |
| 거래처 유형 | Y | 매출매입 선택 |
| 업태 | N | |
| 업종 | N | |

### 4.2 연락처 정보
| 필드명 | 필수 | 설명 |
|--------|------|------|
| 주소 | N | 우편번호 찾기 + 상세주소 |
| 전화번호 | N | |
| 모바일 | N | |
| 팩스 | N | |
| 이메일 | N | |

### 4.3 담당자 정보
| 필드명 | 필수 | 설명 |
|--------|------|------|
| 담당자명 | N | |
| 담당자 전화 | N | |

### 4.4 시스템 관리자
| 필드명 | 필수 | 설명 |
|--------|------|------|
| 관리자명 | N | |

### 4.5 회사 정보
| 필드명 | 필수 | 설명 |
|--------|------|------|
| 회사 로고 | N | 750x250px, 10MB 이하 PNG, JPEG, GIF |

### 4.6 결제 정보
| 필드명 | 필수 | 설명 |
|--------|------|------|
| 매입 결제일 | N | 종류: 1일~31일, 말일. 디폴트: 10일. 거래처 유형이 '매입' 또는 '매입매출'일 경우 해당 |
| 매출 결제일 | N | 종류: 1일~31일, 말일. 디폴트: 15일. 거래처 유형이 '매출' 또는 '매입매출'일 경우 표시 |

### 4.7 신용 정보
| 필드명 | 필수 | 설명 |
|--------|------|------|
| 신용등급 | N | 외부 신용평가 등급 표시. 예: AAA, AA, A, BBB, BB, B, CCC, CC, C, D |
| 거래등급 | N | 종류: A(우수), B(양호), C(보통), D(주의), E(위험). 디폴트: A(우수). 자사 기준 거래처 평가 등급 |

### 4.8 계좌 정보
| 필드명 | 필수 | 설명 |
|--------|------|------|
| 세금계산서 이메일 | N | |
| 입금계좌 은행 | N | 은행 선택 |
| 계좌 | N | |
| 예금주 | N | |

### 4.9 추가 정보
| 필드명 | 설명 |
|--------|------|
| 미수금 | 해당 거래처의 현재 미수금 잠게 표시. 읽기 전용 |
| 연체 | - ON: 연체 상태로 표시, 연체일수 표시 |
|       | - OFF: 정상 상태 |
|       | - 거래처 상세에서 연체 설정과 연동 |
|       | - (4-1) 연체 등록 이후부터 경과일 표시 |
| 미지급 | 해당 거래처에 대한 미지급금 잠게 표시. 읽기 전용 |
| 악성채권 | - ON: 악성채권으로 등록, 악성채권 추심관리 목록에 표시 |
|          | - OFF: 정상 상태 |
|          | - 디폴트: OFF |
| 메모 | 추가 버튼 클릭 시 목록 최상단에 추가 |

## 5. 매출관리 (슬라이드 66-71)

### 5.1 매출 유형
- 필드 매출 시 매출 직접 등록 (삭제 가능)
- 필드 매출: 용역 매출, 공사 매출, 임대 수익, 기타 매출

### 5.2 매출 상세
| 필드명 | 필수 | 설명 |
|--------|------|------|
| 매출번호 | - | 자동 채번 |
| 매출일 | Y | |
| 거래처명 | Y | 거래처 선택 |
| 매출 유형 | Y | 선택 |

### 5.3 품목 정보
| 필드명 | 필수 | 설명 |
|--------|------|------|
| 품목명 | Y | |
| 수량 | Y | |
| 단가 | Y | |
| 공급가액 | - | 자동 계산 |
| 부가세 | - | 자동 계산 |
| 적요 | N | |

### 5.4 세금계산서
| 필드명 | 설명 |
|--------|------|
| 세금계산서 발행 | 토글 |

### 5.5 거래명세서
| 필드명 | 설명 |
|--------|------|
| 거래명세서 | 토글 |

## 6. 입금관리 (슬라이드 74-76)

### 6.1 입금 유형
- 종류: 매출대금, 선수금, 가수금, 입대수익, 미자수익, 보증금 반환, 차입금, 자본금, 부가세 환급, 기타, 미상정

### 6.2 입금 상세
| 필드명 | 필수 | 설명 |
|--------|------|------|
| 입금일 | Y | |
| 입금계좌 | Y | 국민은행 1234 (계좌명) |
| 입금자명 | Y | |
| 입금금액 | Y | |
| 적요 | N | |
| 거래처 | N | 선택 |
| 입금 유형 | Y | |

## 7. 출금관리 (슬라이드 77-79)

### 7.1 출금 유형
- 종류: 매입대금, 선급금, 가지급금, 임대비용, 보증금 지급, 차입금 상환, 배당금 지급, 세금, 공과금, 경비, 4대보험, 급여

### 7.2 출금 상세
| 필드명 | 필수 | 설명 |
|--------|------|------|
| 출금일 | Y | |
| 출금계좌 | Y | |
| 받는 분 | Y | |
| 출금금액 | Y | |
| 적요 | N | |
| 거래처 | N | |
| 출금 유형 | Y | |

## 8. 거래처원장 (슬라이드 80)

### 8.1 현황 카드
| 항목 | 설명 |
|------|------|
| 전기 이월 | |
| 매출 | |
| 수금 | |
| 잔액 | |

### 8.2 거래처원장 목록
- 거래처별 기간별 합계 금액 표시
- 클릭: 거래처원장 상세 화면으로 이동

### 8.3 엑셀 다운로드 버튼
- 클릭: 엑셀 파일 다운로드

## 9. 미수금 현황 (슬라이드 85)

### 9.1 미수금 현황 목록
- 거래처별 월별 미수금 현황 (매출, 입금, 어음, 미수금, 메모)

### 9.2 수취 어음 등록 시 표시
- 회계에는 미반영

### 9.3 연체 표시
- ON: 연체 상태로 표시, 연체일수 표시
- OFF: 정상 상태
- 거래처 상세에서 연체 설정과 연동

### 9.4 엑셀 다운로드 버튼

### 9.5 저장 버튼

## 10. 입출금 계좌 조회 (슬라이드 90)

### 10.1 설명
- 기준 정보 > 계좌 관리에 등록된 계좌의 자동 입출금 내역 수집

### 10.2 새로고침 버튼
- 클릭: 은행 계좌 입출금 내역 최신 데이터 조회
- 바로빌 API 연동 시 실시간 조회

### 10.3 구분 필터 셀렉트 박스
- 종류: 전체, 출금, 입금
- 디폴트: 전체

### 10.4 계정과목 필터 셀렉트 박스, 검색&다중 선택
- (2) 선택에 따른 계정과목 목록 표시
- 입금 종류: 전체, 매출대금, 선수금, 가수금, 임대수익, 이자수익, 보증금 반환, 차입금, 자본금, 부가세 환급, 기타, 미상정
- 출금 종류: 전체, 매입대금, 선급금, 가지급금, 임대비용, 이자비용, 보증금 지급, 차입금 상환, 배당금 지급, 세금, 공과금, 경비, 4대보험, 급여
- 디폴트: 전체

### 10.5 정렬 셀렉트 박스
- 종류: 최신순, 등록순, 금액순
- 디폴트: 최신순

### 10.6 수정 버튼
- 클릭: 해당 입금/출금 상세 화면으로 이동

---

## 데이터 모델

### Vendor (거래처)
```
- id: bigint
- tenant_id: bigint (FK)
- business_number: string
- vendor_code: string
- name: string
- representative: string
- type: enum('sales', 'purchase', 'both')
- business_type: string
- business_category: string
- address: string
- phone: string
- mobile: string
- fax: string
- email: string
- manager_name: string
- manager_phone: string
- logo: string
- purchase_payment_day: int
- sales_payment_day: int
- credit_rating: enum('AAA', 'AA', 'A', 'BBB', 'BB', 'B', 'CCC', 'CC', 'C', 'D')
- trade_rating: enum('A', 'B', 'C', 'D', 'E')
- tax_invoice_email: string
- bank_code: string
- account_number: string
- account_holder: string
- is_overdue: boolean
- overdue_start_date: date
- is_bad_debt: boolean
- notes: json
- created_at: timestamp
```

### Sales (매출)
```
- id: bigint
- tenant_id: bigint (FK)
- vendor_id: bigint (FK)
- sales_number: string
- sales_date: date
- sales_type: enum('product', 'service', 'construction', 'rental', 'other')
- total_amount: decimal
- tax_amount: decimal
- is_tax_invoice_issued: boolean
- is_statement_issued: boolean
- created_at: timestamp
```

### SalesItem (매출 품목)
```
- id: bigint
- sales_id: bigint (FK)
- item_name: string
- quantity: int
- unit_price: decimal
- supply_amount: decimal
- tax_amount: decimal
- description: string
```

### Deposit (입금)
```
- id: bigint
- tenant_id: bigint (FK)
- vendor_id: bigint (FK, nullable)
- account_id: bigint (FK)
- deposit_date: date
- depositor_name: string
- amount: decimal
- description: string
- deposit_type: enum('sales', 'advance', 'suspense', 'rental', 'interest', 'deposit_return', 'loan', 'capital', 'vat_refund', 'other', 'unidentified')
- created_at: timestamp
```

### Withdrawal (출금)
```
- id: bigint
- tenant_id: bigint (FK)
- vendor_id: bigint (FK, nullable)
- account_id: bigint (FK)
- withdrawal_date: date
- recipient_name: string
- amount: decimal
- description: string
- withdrawal_type: enum('purchase', 'advance', 'suspense', 'rental', 'interest', 'deposit', 'loan_repayment', 'dividend', 'tax', 'utility', 'expense', 'insurance', 'salary')
- created_at: timestamp
```

---

## API 도출

### 거래처 API
```
GET    /api/vendors                      # 거래처 목록
POST   /api/vendors                      # 거래처 등록
GET    /api/vendors/{id}                 # 거래처 상세
PUT    /api/vendors/{id}                 # 거래처 수정
DELETE /api/vendors/{id}                 # 거래처 삭제
DELETE /api/vendors/bulk                 # 거래처 일괄 삭제
GET    /api/vendors/summary              # 거래처 현황
```

### 매출 API
```
GET    /api/sales                        # 매출 목록
POST   /api/sales                        # 매출 등록
GET    /api/sales/{id}                   # 매출 상세
PUT    /api/sales/{id}                   # 매출 수정
DELETE /api/sales/{id}                   # 매출 삭제
POST   /api/sales/{id}/tax-invoice       # 세금계산서 발행
GET    /api/sales/summary                # 매출 현황
```

### 입금 API
```
GET    /api/deposits                     # 입금 목록
POST   /api/deposits                     # 입금 등록
GET    /api/deposits/{id}                # 입금 상세
PUT    /api/deposits/{id}                # 입금 수정
DELETE /api/deposits/{id}                # 입금 삭제
```

### 출금 API
```
GET    /api/withdrawals                  # 출금 목록
POST   /api/withdrawals                  # 출금 등록
GET    /api/withdrawals/{id}             # 출금 상세
PUT    /api/withdrawals/{id}             # 출금 수정
DELETE /api/withdrawals/{id}             # 출금 삭제
```

### 장부/보고서 API
```
GET    /api/ledger/vendor                # 거래처원장
GET    /api/ledger/vendor/{vendor_id}    # 거래처원장 상세
GET    /api/ledger/vendor/export         # 거래처원장 엑셀 다운로드
GET    /api/receivables                  # 미수금 현황
GET    /api/receivables/export           # 미수금 현황 엑셀 다운로드
GET    /api/bank-transactions            # 입출금 계좌 조회
POST   /api/bank-transactions/sync       # 입출금 내역 동기화
```