- ImportInspectionInputModal: 입력폼 캡처 → 오프스크린 성적서 문서 렌더링으로 변경
- InspectionReportModal: readOnly 자동 캡처 useEffect 제거 (불필요 PUT 방지)
- capture-rendered-html.tsx: 오프스크린 렌더링 유틸리티 신규 추가
- InspectionReportModal: readOnly 모드에서도 콘텐츠 로드 후 자동 캡처
- ImportInspectionInputModal: 수입검사 저장 시 폼 HTML 캡처 전송
- ReceivingManagement/actions: saveInspectionData에 rendered_html 파라미터 추가
- InspectionReportModal: contentWrapperRef로 DOM 캡처, handleSave에서 rendered_html 포함
- WorkLogModal: contentWrapperRef로 DOM 캡처, handleSave에서 rendered_html 포함
- saveInspectionDocument/saveWorkLog 타입에 rendered_html 추가
- MNG에서 스냅샷 기반 문서 출력을 위한 프론트 파이프라인 완성
- types.ts: API/프론트 타입 정의 (ProductionOrder, Detail, BOM 타입)
- actions.ts: Server Actions (getProductionOrders, getProductionOrderStats, getProductionOrderDetail)
- executePaginatedAction + buildApiUrl 패턴 적용
- snake_case → camelCase 변환 함수
- 목록 page.tsx: 샘플데이터 → API 연동
- 서버사이드 페이지네이션 (clientSideFiltering: false)
- stats API로 탭 카운트 동적 반영
- ProgressSteps 동적화 (statusCode 기반)
- 생산지시번호 → 수주번호로 변경 (별도 PO 번호 없음)
- 상세 page.tsx: 샘플데이터 → API 연동
- getProductionOrderDetail() API 호출
- createProductionOrder() orders/actions.ts에서 재사용
- BOM null 처리 (빈 상태 표시)
- WorkOrder 상태 배지 확장 (6종: unassigned~shipped)
- HeaderFavoritesBar 대폭 개선
- Sidebar/AuthenticatedLayout 소폭 수정
- ShipmentCreate, VehicleDispatch 출하 관련 개선
- WorkOrderCreate/Edit, WorkerScreen 생산 관련 개선
- InspectionCreate 자재 입고검사 개선
- DailyReport, VendorDetail 회계 수정
- CEO 대시보드: CardManagement/DailyProduction/DailyAttendance 섹션 개선
- useCEODashboard, expense transformer 정비
- DocumentViewer, PDF generate route 소폭 수정
- bill-prototype 개발 페이지 추가
- mockData 불필요 데이터 제거
- InspectionInputModal: 이전 형식 데이터(products 배열 없음) 로드 시 judgment 기반 제품별 상태 추론
- InspectionInputModal: skipAutoJudgmentRef로 이전 형식 로드 시 auto-judgment 덮어쓰기 방지
- BendingInspectionContent: products/bendingStatus 없을 때 judgment 기반 fallback 추가
- 로드 경로: 절곡 공정 시 어떤 item이든 inspection_data 있으면 모든 개소에 공유
- 저장 경로: 절곡 검사 완료 시 inspectionDataMap에 모든 workItem 동기화
- TemplateInspectionContent: products 배열 우선 복원 (EAV 문서 데이터보다 우선)
- workOrderId prop 추가 (절곡 gap_points API 동적 로딩)
- InspectionInputModal: 절곡 전용 7개 제품별 입력 폼 (절곡상태/길이/너비/간격)
- TemplateInspectionContent: products 배열 → bending cellValues 자동 매핑
- 제품 ID 3단계 매칭 (정규화→키워드→인덱스 폴백)
- 절곡 작업지시서 bending 섹션 개선
- getLotKey에 groupKey 포함하여 그룹별 LOT 선택/배정 독립 처리
- physicalUsed 맵으로 물리LOT 교차그룹 가용량 추적
- handleAutoFill FIFO 자동입력 (교차그룹 가용량 고려)
- handleSubmit 그룹별 개별 엔트리 전송 (bom_group_key 포함, replace 모드)
- 기투입 LOT 자동 선택 및 배지 표시, 수량 수동 편집 input
- allGroupsFulfilled 조건으로 투입 버튼 활성화 제어
- actions.ts: lotInputtedQty 필드 + bom_group_key/replace 파라미터 추가
- 결재함에서 work_order 연결 문서 클릭 시 InspectionReportModal(readOnly)로 표시
- 기존 LinkedDocumentContent(key-value)가 아닌 템플릿 기반 검사성적서 형태로 표시
- getDocumentApprovalById에서 document.linkable_type/linkable_id로 workOrderId 추출
- field_value 컬럼명 매칭 수정 (d.value → d.field_value ?? d.value)
- InspectionReportModal에 결재 상신 버튼 추가 (DRAFT 상태에서만 표시)
- submitDocumentForApproval 서버 액션 추가
- LinkedDocumentContent 컴포넌트 신규 (일반 문서용 폴백)
- DocumentType에 'document' 타입 추가, LinkedDocumentData 인터페이스 신규
- getInspectionConfig Server Action 추가
- InspectionConfigData/Item/GapPoint 타입 정의
- TemplateInspectionContent API 연동
- inspectionConfig state + useEffect로 API 호출
- bendingProducts: API 우선 → buildBendingProducts fallback
- bending_info에서 dimension 보조 데이터 추출
- isBending이지만 bendingProducts가 없는 경우에도 기존 개소별 저장 동작하도록 조건 변경
- Before: if (!isBending) → 절곡이면 무조건 skip
- After: if (!isBending || bendingProducts.length === 0) → 구성품 없으면 개소별 fallback
- resolveInspectionDocument API 호출 추가 (Promise.all 병렬 로딩)
- existing_document.data에서 document_data EAV 레코드 추출
- documentRecords state 관리 (모달 닫힐 때 초기화)
- TemplateInspectionContent에 documentRecords prop 전달
- MobileCard 접기/펼치기(collapsible) 기능 추가 및 반응형 레이아웃 개선
- DatePicker 공휴일/세무일정 색상 코딩 통합, DateTimePicker 신규 추가
- useCalendarScheduleInit 훅으로 전역 공휴일/일정 데이터 캐싱
- 전 도메인 날짜 필드 DatePicker 표준화
- 생산대시보드/작업지시/견적서/주문관리 모바일 호환성 강화
- 회계 모듈 기능 개선 (매입상세 결재연동, 미수금현황 조회조건 등)
- 달력 일정 관리 API 연동 및 대량 등록 다이얼로그 개선
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 영업: 수주관리, 견적관리 페이지 개선
- 건설: 계약, 기성 폼 개선
- 체크리스트: 상세/폼 개선 (ItemForm 대폭 개선)
- 차량관리: 차량/지게차/운행일지 UI 개선
- 가격배분: 상세 페이지 통합, edit 페이지 제거
- 회계/공정/생산/거래처/고객센터 UI 개선
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- claudedocs 폴더 구조 재정리: archive/sessions, guides/migration·mobile·universal-list, refactoring 분류
- 오래된 세션 컨텍스트/체크리스트 문서 정리 (아카이브 이동 또는 삭제)
- AuthContext → authStore(Zustand) 전환 시작, RootProvider 간소화
- GenericCRUDDialog 공통 다이얼로그 컴포넌트 추가
- PermissionDialog 삭제 → GenericCRUDDialog로 대체
- RankDialog/TitleDialog GenericCRUDDialog 기반으로 리팩토링
- toast-utils.ts 삭제 (미사용)
- fileDownload.ts 개선, excel-download.ts 정리
- menuStore/themeStore Zustand 셀렉터 최적화
- useColumnSettings/useTableColumnStore 기능 보강
- 세금계산서/견적/작업자화면/결재 등 소규모 개선
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 회계 모듈 탭 UI 복원 (대손/은행거래/청구/입금/예상경비/상품권/매입/매출/세금계산서/거래처원장/거래처/출금)
- HR 모듈 탭 복원 (근태/급여/휴가)
- 대시보드 type2/3/4 페이지 개선
- CEO 대시보드 섹션 로딩 최적화
- 품목 마스터데이터 관리 탭 기능 강화
- 생산 작업자화면/작업지시 개선
- 품질 검사 생성/상세 화면 보완
- 건설 견적/현장관리 상세 개선
- UniversalListPage 기능 확장
- E2E 잔여 버그 핸드오프 문서 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- InspectionReportModal에 전달되던 stale templateData prop 제거
- 모달이 workOrderId 기반으로 해당 공정의 문서 템플릿을 항상 자체 로딩
- 원인: inspectionTemplateData가 탭 전환 시 초기화되지 않아 이전 공정 템플릿이 재사용됨
- workOrderItemIds prop 추가 (절곡 등 복수 item 공정 대응)
- Promise.all로 복수 item 자재 병렬 조회 후 합치기
- 각 자재에 소스 workOrderItemId 태깅 (submit 시 올바른 item에 등록)
- 기존 단일 workOrderItemId 호환 유지
- 검사 데이터가 있는 첫 번째 workItem 탐색 (workItems[0] 의존 제거)
- 저장된 products 배열 전체 복원 (bendingStatus, 측정값, 갭 포인트)
- 부적합 내용(inadequateContent) 복원 추가
- 개소별 bendingStatus 로드 폴백 유지
- actions.ts: MaterialForInput에 workOrderItemId/lotPrefix/partType/category 필드 추가
- MaterialInputModal: dynamic_bom 세부품목 단위 그룹핑 + category 배지 표시
- 작업일지 4개 섹션 lotNoMap prop 추가 (GuideRail/BottomBar/ShutterBox/SmokeBarrier)
- WorkLogModal: materialLots에서 BD-* 필터링 → lotNoMap 빌드 후 전달
- utils.ts: lengthToCode() 래퍼 함수 추가
- TemplateInspectionContent에 bending DATA 렌더링 추가
- 제품별(가이드레일/하단마감재/케이스/연기차단재) 다중 POINT 행 확장
- 간격 외 컬럼(분류, 타입, 절곡상태, 길이, 너비, 판정) rowSpan 병합
- DEFAULT_GAP_PROFILES 상수로 제품별 간격 도면치수 정의
- bending_info JSON에서 제품 목록 동적 생성 (buildBendingProducts)
- InspectionReportModal에서 node_groups 기반 개소 단위 변환 추가
- buildFromReportData()로 node_groups → WorkItemData[] 매핑
- 다단계 헤더(group_name "/" 구분자), check 라벨, POINT sub_label 지원
- WorkOrderCreate: 수동 모드 품목 검색/추가/수량 관리 UI 구현
- WorkOrders/actions: items 파라미터 추가, searchItemsForWorkOrder 함수 추가
- StockStatusList: 품목분류(BENDING/SCREEN/STEEL/ALUMINUM) 필터 추가
- StockStatus/actions: itemCategory 파라미터 지원
- WorkerScreen/actions.ts: 그룹핑 키를 floor_code/symbol_code → order_node_id 우선으로 변경
- WorkOrderDetail.tsx: 개소 그룹핑을 orderNodeId 기반으로 단순화
- WorkerScreen/index.tsx: 검사 step name 하드코딩('중간검사') 제거, 동적 step name 사용
- InspectionReportModal.tsx: inspectionDataMap 빈 Map 허용 수정
- bending_info 저장 위치: work_order_items → work_orders.options으로 변경
- types.ts: WorkOrderApi에 options 필드 추가, 변환 함수에서 order 레벨 bendingInfo 매핑
- BendingWorkLogContent: items 탐색 대신 order.bendingInfo 직접 참조
- utils.ts: getMaterialMapping에 KSS01/KSS02 SUS 제품 지원 추가
- 4개 섹션 컴포넌트: text-[10px]/text-[8px] → text-xs로 통일 (가독성 개선)
- 절곡 작업일지: PHP viewBendingWork_slat.php 기준 4개 카테고리 섹션 구현
(가이드레일/하단마감재/셔터박스/연기차단재) + SUS/EGI 무게 계산
- 슬랫 작업일지: 입고 LOT NO가 모든 행에 동일하게 표시되던 버그 수정
→ items.materialInputs.stockLot 데이터 활용하여 개소별 LOT 표시
- types.ts: WorkOrderItemApi에 material_inputs 필드 추가,
WorkOrderItem에 bendingInfo/materialInputLots 필드 추가 및 transform 매핑
- 작업일지(스크린/슬랫/절곡): 담당자→수주담당자, 연락처→담당자연락처, 생산담당자 분리 표시
- SlatWorkLogContent: 방화유리 수량을 slatInfo.glassQty에서 표시
- SlatInfo 타입에 glassQty 추가 (WorkOrders/types, WorkerScreen/types)
- WorkerScreen: salesManager/managerPhone API 연동
- slat_info 변환 로직에 glass_qty 매핑 추가
- transformApiToFrontend: options.manager_name 우선 참조 (폴백: client.manager_name)
- transformFrontendToApi: options에 manager_name 전송 추가
- 작업지시 상세: salesOrderWriter에 options.manager_name 우선 표시
- 회계 모듈 전면 개선: 청구/입금/출금/매입/매출/세금계산서/일반전표/거래처원장 등
- 견적 모듈 금액 포맷/할인/수식/미리보기 등 코드 정리
- 설정 모듈: 계정관리/직급/직책/권한 상세 간소화
- 생산 모듈: 작업지시서/작업자화면/검수 문서 코드 정리
- UniversalListPage 엑셀 다운로드 및 필터 기능 확장
- 대시보드/게시판/수주 등 날짜 유틸 공통화 적용
- claudedocs 문서 인덱스 업데이트
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 미사용 코드 삭제: ThemeContext, itemStore, utils/date.ts, utils/formatAmount.ts
- 유틸리티 이동: date, formatAmount → src/lib/utils/ (중앙 집중화)
- 다수 page.tsx 클라이언트 컴포넌트 패턴 통일
- DateRangeSelector 리팩토링 및 date-range-picker UI 컴포넌트 추가
- ThemeSelect/themeStore Zustand 직접 연동으로 전환
- 건설/회계/영업/품목/출하 등 전반적 컴포넌트 개선
- UniversalListPage, IntegratedListTemplateV2 타입 확장
- 프론트엔드 종합 리뷰 문서 및 개선 체크리스트 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 작업자 화면 작업정보 부서: 하드코딩 → 테넌트 부서 목록 동적 로드 (getDepartments API)
- 작업자 화면 작업정보 생산담당자: 선택된 부서별 사용자 목록 연동 (getDepartmentUsers API)
- 작업자 화면 작업정보 생산일자: scheduled_date 필드 조회 연동
- 작업지시 선택 시 공정 담당부서(process.department) 기반 부서 자동 세팅
- 사이드바 자동 선택 시 API 작업지시 우선 선택 (목업보다 우선)
- 사원관리 초기 진입 시 날짜 필터 기본값 제거 (전체 기간 조회)
- stepProgressMap: 작업지시별 단계 진행 데이터 캐시 및 API 로드
- 개소별 step 완료 상태를 서버 데이터 기반으로 표시
- WorkItemCard: 이전 단계 완료 후 다음 단계 활성화 (순차 진행 잠금)
- click_complete 타입 단계 클릭 시 서버 토글 API 호출
- 검사 데이터 로드 타이밍을 workItems 의존성으로 보장
- InspectionInputModal: nonConformingContent 초기값 보정
- 자재 투입 후 전체 새로고침 제거, 로컬 오버라이드로 현재 수주 선택 유지
- 자동선택 useEffect에 현재 선택 유효 가드 추가
- API remainingRequiredQty 활용하여 이미 충족된 품목 추가 선택 차단
- 기투입 수량 표시 및 '투입 완료' 뱃지 표시
- 체크박스 → 버튼 형태(선택/선택됨)로 변경
- 수량 소수점 불필요 자릿수 제거 (parseFloat 래핑)