diff --git a/dev/changes/20260316_stock_production_order.md b/dev/changes/20260316_stock_production_order.md index 7a72b1f..be34261 100644 --- a/dev/changes/20260316_stock_production_order.md +++ b/dev/changes/20260316_stock_production_order.md @@ -115,16 +115,50 @@ if ($status === Order::STATUS_CONFIRMED --- +## 버그 수정 (2026-03-17) + +### 커밋 3: `fix: [production] 생산지시 생성 시 $isStock 미정의 오류 및 수량 정수 변환` + +| 파일 | 변경 내용 | +|------|----------| +| `app/Services/OrderService.php` | `DB::transaction` 클로저 `use`절에 `$isStock` 변수 추가 | +| `app/Services/OrderService.php` | `work_order_items.quantity`를 `(int)` 캐스팅하여 정수로 저장 | + +**원인**: `$isStock`가 line 1242에서 정의되지만, `DB::transaction` 클로저의 `use`절에 포함되지 않아 클로저 내부에서 참조 불가 → 500 에러 발생 + +### 커밋 4: `fix: [production] 생산지시 생성 시 $process 미정의 오류 수정` + +| 파일 | 변경 내용 | +|------|----------| +| `app/Services/OrderService.php` | `$process = null;` 초기화 추가 (if 블록 밖에서도 참조 가능하도록) | + +**원인**: `$process`가 `if ($processId)` 블록 안에서만 정의되지만, 블록 밖 line 1420에서 team_id 결정 시 참조 → 공정 없는 품목 처리 시 500 에러 발생 + +### 커밋 5 (React): `fix: [stocks] 재고생산 수량을 정수로 표시` + +| 파일 | 변경 내용 | +|------|----------| +| `src/components/stocks/actions.ts` | `transformItemApiToFrontend`에서 `Math.floor(Number())` 적용 | +| `src/components/stocks/actions.ts` | 금액 필드도 `Number()`로 안전한 형변환 적용 | + +**원인**: API의 Eloquent `decimal:4` 캐스트가 수량을 `"1.0000"` 문자열로 반환하여 프론트엔드에서 소수점 그대로 표시 + +--- + ## 테스트 체크리스트 - [x] STOCK 수주 생성 → `order_no` STK 접두사 확인 - [x] STOCK 수주 생성 → `site_name='재고생산'` 자동 설정 확인 - [ ] STOCK 수주 확정 → 매출 자동 생성 안 됨 확인 -- [ ] STOCK 생산지시 생성 → 절곡 공정 자동 선택 확인 -- [ ] STOCK 생산지시 생성 → `project_name='재고생산'` 확인 -- [ ] STOCK 생산지시 생성 → `scheduled_date=today` 확인 +- [x] STOCK 생산지시 생성 → 절곡 공정 자동 선택 확인 +- [x] STOCK 생산지시 생성 → `project_name='재고생산'` 확인 +- [x] STOCK 생산지시 생성 → `scheduled_date=today` 확인 - [ ] 기존 ORDER 수주 생산지시 → 기존 BOM 매칭 정상 동작 확인 - [ ] 생산지시 목록에서 STOCK 건 표시 확인 +- [x] 생산지시 생성 시 `$isStock` 미정의 오류 수정 확인 +- [x] 생산지시 생성 시 `$process` 미정의 오류 수정 확인 +- [x] `work_order_items.quantity` 정수 저장 확인 +- [x] 프론트엔드 수량 정수 표시 확인 --- @@ -136,4 +170,4 @@ if ($status === Order::STATUS_CONFIRMED --- -**최종 업데이트**: 2026-03-16 +**최종 업데이트**: 2026-03-17