docs(API): 견적 BOM 산출 작업 현황 및 Item 모델 주석 추가
- Item 모델 item_category 필드 주석 추가 - CURRENT_WORKS.md 견적 자동산출 작업 현황 업데이트 - LOGICAL_RELATIONSHIPS.md 관계 문서 업데이트 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,89 @@
|
||||
# SAM API 작업 현황
|
||||
|
||||
## 2026-01-02 (목) - 채권현황 동적월 지원 및 버그 수정
|
||||
|
||||
### 작업 목표
|
||||
- "최근 1년" 필터 선택 시 동적 월 기간(최근 12개월) 지원
|
||||
- year=0 파라미터 처리 버그 수정
|
||||
- 거래처별 연체 상태 및 메모 관리 기능 추가
|
||||
|
||||
### 수정된 파일
|
||||
| 파일명 | 설명 |
|
||||
|--------|------|
|
||||
| `app/Http/Controllers/Api/V1/ReceivablesController.php` | boolean 유효성 검사 수정, 디버깅 로그 추가 |
|
||||
| `app/Services/ReceivablesService.php` | 동적 월 기간 지원, 이월잔액 계산 추가 |
|
||||
| `app/Models/Orders/Client.php` | is_overdue, memo 필드 추가 |
|
||||
| `routes/api.php` | 채권현황 라우트 추가 |
|
||||
|
||||
### 생성된 파일
|
||||
| 파일명 | 설명 |
|
||||
|--------|------|
|
||||
| `database/migrations/2026_01_02_113722_add_is_overdue_to_clients_table.php` | clients 테이블 is_overdue 컬럼 추가 |
|
||||
|
||||
### 주요 변경 내용
|
||||
1. **Boolean 유효성 검사 수정**: `'nullable|boolean'` → `'nullable|string|in:true,false,1,0'`
|
||||
- 쿼리 문자열의 `"true"` 문자열을 올바르게 처리
|
||||
2. **동적 월 기간 지원**: `recent_year=true` 시 최근 12개월 동적 계산
|
||||
3. **월별 레이블 동적 생성**: 예: `['25.02', '25.03', ...]`
|
||||
4. **이월잔액(carry_forward_balance) 계산**: 선택 기간 이전의 누적 미수금
|
||||
|
||||
### Git 커밋
|
||||
- `4fa38e3` feat(API): 채권현황 동적월 지원 및 year=0 파라미터 버그 수정
|
||||
|
||||
### 남은 작업
|
||||
- [ ] 디버깅 로그 제거 (테스트 완료 후)
|
||||
- [ ] 추가 UI 개선사항 확인
|
||||
|
||||
---
|
||||
|
||||
## 2026-01-02 (목) - Phase 1.2 다건 BOM 기반 자동산출 API 구현
|
||||
|
||||
### 작업 목표
|
||||
- React 견적등록 화면에서 여러 품목의 자동산출을 일괄 요청할 수 있는 API 구현
|
||||
- React QuoteFormItem 인터페이스 필드명(camelCase)과 API 변수명(약어) 모두 지원
|
||||
|
||||
### 생성된 파일
|
||||
| 파일명 | 설명 |
|
||||
|--------|------|
|
||||
| `app/Http/Requests/Quote/QuoteBomBulkCalculateRequest.php` | 다건 BOM 산출 FormRequest (필드 변환 포함) |
|
||||
| `docs/changes/20260102_1300_quote_bom_bulk_calculation.md` | 변경 내용 문서 |
|
||||
|
||||
### 수정된 파일
|
||||
| 파일명 | 설명 |
|
||||
|--------|------|
|
||||
| `app/Services/Quote/QuoteCalculationService.php` | calculateBomBulk() 메서드 추가 |
|
||||
| `app/Http/Controllers/Api/V1/QuoteController.php` | calculateBomBulk 액션 추가 |
|
||||
| `routes/api.php` | /calculate/bom/bulk 라우트 추가 |
|
||||
| `app/Swagger/v1/QuoteApi.php` | 스키마 3개 + 엔드포인트 추가 |
|
||||
|
||||
### 주요 변경 내용
|
||||
1. **다건 BOM 기반 자동산출 API**: `POST /api/v1/quotes/calculate/bom/bulk`
|
||||
2. **필드 매핑 지원**: React camelCase (openWidth, openHeight) ↔ API 약어 (W0, H0)
|
||||
3. **일괄 처리**: 여러 품목 동시 계산, 성공/실패 요약 제공
|
||||
4. **Swagger 문서화**: QuoteBomBulkCalculateRequest, QuoteBomBulkItemInput, QuoteBomBulkCalculationResult
|
||||
|
||||
### 필드 매핑 테이블
|
||||
| React 필드 | API 변수 | 설명 |
|
||||
|-----------|---------|------|
|
||||
| openWidth | W0 | 개구부 폭 |
|
||||
| openHeight | H0 | 개구부 높이 |
|
||||
| quantity | QTY | 수량 |
|
||||
| productCategory | PC | 제품 카테고리 |
|
||||
| guideRailType | GT | 가이드레일 타입 |
|
||||
| motorPower | MP | 모터 출력 |
|
||||
| controller | CT | 제어반 |
|
||||
| wingSize | WS | 날개 크기 |
|
||||
| inspectionFee | INSP | 검사비 |
|
||||
|
||||
### Git 커밋
|
||||
- `4e59bbf` feat: Phase 1.2 - 다건 BOM 기반 자동산출 API 구현
|
||||
|
||||
### 관련 문서
|
||||
- 계획 문서: `docs/plans/quote-calculation-api-plan.md`
|
||||
- Phase 1.1: `docs/changes/20260102_quote_bom_calculation_api.md`
|
||||
|
||||
---
|
||||
|
||||
## 2026-01-02 (목) - Phase 1.1 견적 산출 API 엔드포인트 구현
|
||||
|
||||
### 작업 목표
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 논리적 데이터베이스 관계 문서
|
||||
|
||||
> **자동 생성**: 2025-12-30 16:08:45
|
||||
> **자동 생성**: 2026-01-02 11:42:39
|
||||
> **소스**: Eloquent 모델 관계 분석
|
||||
|
||||
## 📊 모델별 관계 현황
|
||||
@@ -60,6 +60,11 @@ ### post_custom_field_values
|
||||
- **post()**: belongsTo → `posts`
|
||||
- **field()**: belongsTo → `board_settings`
|
||||
|
||||
### category_groups
|
||||
**모델**: `App\Models\CategoryGroup`
|
||||
|
||||
- **tenant()**: belongsTo → `tenants`
|
||||
|
||||
### categorys
|
||||
**모델**: `App\Models\Commons\Category`
|
||||
|
||||
@@ -335,6 +340,8 @@ ### roles
|
||||
- **tenant()**: belongsTo → `tenants`
|
||||
- **menuPermissions()**: hasMany → `role_menu_permissions`
|
||||
- **userRoles()**: hasMany → `user_roles`
|
||||
- **users()**: belongsToMany → `users`
|
||||
- **permissions()**: belongsToMany → `permissions`
|
||||
|
||||
### role_menu_permissions
|
||||
**모델**: `App\Models\Permissions\RoleMenuPermission`
|
||||
|
||||
@@ -23,6 +23,7 @@ class Item extends Model
|
||||
protected $fillable = [
|
||||
'tenant_id',
|
||||
'item_type',
|
||||
'item_category', // 품목 카테고리 (SCREEN, STEEL, BENDING, ALUMINUM 등)
|
||||
'code',
|
||||
'name',
|
||||
'unit',
|
||||
|
||||
Reference in New Issue
Block a user