- 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 래핑)
- buildApiUrl / executePaginatedAction 패턴으로 전환 (40+ actions 파일)
- 직접 URLSearchParams 조립 → buildApiUrl 유틸 사용
- 수동 페이지네이션 메타 변환 → executePaginatedAction 자동 처리
- HandoverReportDocumentModal, OrderDocumentModal 개선
- 급여관리 SalaryManagement 코드 개선
- CLAUDE.md Server Action 공통 유틸 규칙 정리
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- TemplateInspectionContent: 정규화 형식(section_id/column_id/field_key) 저장/조회 지원
- InspectionReportModal: 문서 데이터 조회 연동
- actions: getMaterialInputLots API 호출 추가
- types: MaterialInputLot 타입 추가
- WorkLogModal: workLogTemplateId/Name prop 추가, 공정관리 매핑 기반 콘텐츠 분기
- WorkerScreen: activeProcessSettings에 workLogTemplateId/Name 추가
- ScreenWorkLogContent: 내화실 LOT 하드코딩 → materialLots item_name별 동적 그룹핑
- SlatWorkLogContent/BendingWorkLogContent: 소규모 수정
- V2 컴포넌트를 원본에 통합 후 V2 파일 삭제 (InspectionModal, BillDetail, ContractDocumentModal, LaborDetailClient, PricingDetailClient, QuoteRegistration)
- store → stores 디렉토리 이동 및 favoritesStore 추가
- dashboard_type3~5 추가 및 기존 대시보드 차트/훅 분리
- Sidebar 리팩토링 및 HeaderFavoritesBar 추가
- DashboardSwitcher 컴포넌트 추가
- 백업 파일(.v1-backup) 및 불필요 코드 정리
- InspectionPreviewModal 레이아웃 개선
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Process 타입에 documentTemplateId, needsWorkLog 필드 추가 (ProcessStep에서 이동)
- ProcessForm에 중간검사 양식/작업일지 설정 UI 추가
- StepForm에서 해당 UI 제거
- WorkerScreen 하단 버튼 조건부 렌더링: needsWorkLog/documentTemplateId 기반
- 검사 템플릿 타입(InspectionTemplateData 등)을 WorkerScreen/types.ts로 분리
- use server 파일에서 export type 제거 (Turbopack 모듈 평가 시 값으로 처리되는 문제)
- 모든 타입 import를 types.ts 직접 참조로 변경
- SearchableSelectionModal<T> 제네릭 컴포넌트 추출 (organisms)
- 검색 모달 5개 리팩토링: SupplierSearch, QuotationSelect, SalesOrderSelect, OrderSelect, ItemSearch
- shared-lookups API 유틸 추가 (거래처/품목/수주 등 공통 조회)
- create-crud-service 확장 (lookup, search 메서드)
- actions.ts 20+개 파일 lookup 패턴 통일
- 공통 페이지 패턴 가이드 문서 추가
- CLAUDE.md Common Component Usage Rules 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- ProcessStep 타입에 documentTemplateId/documentTemplateName 추가
- 공정관리 actions.ts: document_template_id 매핑 + getDocumentTemplates 서버 액션
- StepForm: 검사여부 사용 시 문서양식 선택 드롭다운 추가
- WorkerScreen actions.ts: getInspectionTemplate, saveInspectionDocument 서버 액션 추가
- InspectionInputModal: tolerance 기반 자동 판정 + 동적 폼(DynamicInspectionForm) 추가
- evaluateTolerance: symmetric/asymmetric/range 3가지 tolerance 판정
- 기존 공정별 하드코딩은 템플릿 없을 때 레거시 모드로 유지
- InspectionReportModal: 템플릿 모드 동적 렌더링 (기준서/DATA/결재라인)
- WorkerScreen index: handleInspectionComplete에서 Document 저장 호출 추가
- InspectionInputModal: 공정별(screen/slat/bending) 자동 판정 계산 로직
- JudgmentToggle → JudgmentDisplay로 변경 (수동 → 자동 판정)
- computeJudgment: 검사 항목 상태 기반 적합/부적합 자동 산출
- index.tsx: 관련 타입/로직 보강
- Phase 4.1: InspectionReportModal API 연동 (getInspectionReport 서버 액션)
- Phase 4.2: 5개 InspectionContent 공통 코드 추출 (inspection-shared.tsx)
- 공통 컴포넌트: InspectionLayout, CheckStatusCell, JudgmentCell, InspectionFooter
- 공통 유틸: convertToCheckStatus, calculateOverallResult, getOrderInfo
- 총 코드량 2,376줄 → 1,583줄 (33% 감소)
- InspectionInputModal 기본값 null로 수정 (적합 버튼 미선택 상태 시작)
- executeServerAction 공통 유틸 도입으로 actions.ts 대폭 간소화 (50+개 파일)
- sanitize 유틸 추가 (XSS 방지)
- middleware CSP 헤더 추가 및 Open Redirect 방지
- 프록시 라우트 로깅 개발환경 한정으로 변경
- 프로덕션 불필요 console.log 제거
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- puppeteer → puppeteer-core + @sparticuz/chromium 전환 (Vercel 서버리스 호환)
- PDF 생성 API 로컬/Vercel 환경 분기 처리
- next.config.ts: ignoreBuildErrors false로 전환
- WorkOrder items에 orderNodeId/orderNodeName 필드 추가
- 결재선 데이터에 name/dept 필드 추가
- OrderSalesDetailView 타입 캐스팅 안전하게 수정
- vercel.json 설정 추가
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- WorkerScreen/actions.ts에 saveItemInspection, getWorkOrderInspectionData 서버 액션 추가
- handleInspectionComplete에서 POST /items/{itemId}/inspection API 호출 연동
- 작업지시 선택 시 GET /inspection-data로 기존 검사 데이터 자동 로드
- InspectionInputModal에 initialData prop 추가 (재클릭 시 저장된 값 표시)
- WorkItemData에 apiItemId, workOrderId 필드 추가 (실제 DB ID 보존)
- 기존 saveInspectionData deprecated 처리
- MaterialForInput 타입: stockLotId, lotNo, lotAvailableQty 추가
- 로트번호 컬럼에 실제 입고 로트번호(lot_no) 표시
- 수량 컬럼을 가용수량(lotAvailableQty)으로 변경
- 가용수량 초과 검증 추가
- registerMaterialInput: stock_lot_id+qty 로트별 투입 방식으로 변경
- 견적확정 시 업체명/현장명/담당자/연락처 프론트 밸리데이션 추가
- 견적확정 후 수주등록 버튼 동적 전환
- 수주등록 품목 개소별(floor+code) 그룹핑 수정
- 작업지시 상세 quantity 문자열→숫자 변환 (formatQuantity)
- 작업지시 탭 카운트 초기 로딩 시 전체 표시 (by_process 활용)
- 작업지시 상세 개소별/품목별 합산 테이블 추가
- 작업자 화면 API 연동 및 목업 데이터 분리
- 입고관리 완료건 수정, 재고현황 개선