feat: [material] 부적합관리 API Phase 1-A 구현

- Migration: nonconforming_reports, nonconforming_report_items 테이블
- Model: NonconformingReport, NonconformingReportItem (관계, cast, scope)
- FormRequest: Store/Update 검증 (items 배열 포함)
- Service: CRUD + 채번(NC-YYYYMMDD-NNN) + 비용 자동 계산 + 상태 전이
- Controller: REST 7개 엔드포인트 (목록/통계/상세/등록/수정/삭제/상태변경)
- Route: /api/v1/material/nonconforming-reports
- i18n: 부적합관리 에러 메시지 (ko)
This commit is contained in:
김보곤
2026-03-19 08:36:45 +09:00
parent d8a57f71c6
commit 847c60b03d
9 changed files with 826 additions and 0 deletions

View File

@@ -529,6 +529,17 @@
],
'tenant_access_denied' => '해당 테넌트에 대한 접근 권한이 없습니다.',
// 부적합관리 관련
'nonconforming' => [
'nc_type_required' => '부적합 유형은 필수입니다.',
'nc_type_invalid' => '유효하지 않은 부적합 유형입니다.',
'occurred_at_required' => '발생일은 필수입니다.',
'closed_cannot_edit' => '종결된 부적합 보고서는 수정할 수 없습니다.',
'closed_cannot_delete' => '종결된 부적합 보고서는 삭제할 수 없습니다.',
'invalid_status_transition' => "상태를 ':from'에서 ':to'(으)로 변경할 수 없습니다.",
'analysis_required' => '조치완료로 변경하려면 원인 분석과 처리 방안을 먼저 입력해야 합니다.',
],
// 데모 테넌트 관련
'demo_tenant' => [
'not_found' => '데모 테넌트를 찾을 수 없습니다.',