Commit Graph

105 Commits

Author SHA1 Message Date
유병철
4d79b178e3 refactor(WEB): 공통 훅(useDeleteDialog, useStatsLoader) 및 CRUD 서비스 추출
- useDeleteDialog 훅 추출로 삭제 다이얼로그 로직 공통화
- useStatsLoader 훅 추출로 통계 로딩 패턴 공통화
- create-crud-service 유틸 추가
- 차량관리/견적/출고/검사 등 리스트 컴포넌트 간소화
- RankManagement actions 정리
- 프로덕션 로거 불필요 출력 제거

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 20:42:05 +09:00
유병철
c2ed71540f feat(WEB): DatePicker 공통화 및 공정관리/작업자화면 대폭 개선
DatePicker 공통화:
- date-picker.tsx 공통 컴포넌트 신규 추가
- 전체 폼 컴포넌트 DatePicker 통일 적용 (50+ 파일)
- DateRangeSelector 개선

공정관리:
- RuleModal 대폭 리팩토링 (-592줄 → 간소화)
- ProcessForm, StepForm 개선
- ProcessDetail 수정, actions 확장

작업자화면:
- WorkerScreen 기능 대폭 확장 (+543줄)
- WorkItemCard 개선
- types 확장

회계/인사/영업/품질:
- BadDebtDetail, BillDetail, DepositDetail, SalesDetail 등 DatePicker 적용
- EmployeeForm, VacationDialog 등 DatePicker 적용
- OrderRegistration, QuoteRegistration DatePicker 적용
- InspectionCreate, InspectionDetail DatePicker 적용

공사관리/CEO대시보드:
- BiddingDetail, ContractDetail, HandoverReport 등 DatePicker 적용
- ScheduleDetailModal, TodayIssueSection 개선

기타:
- WorkOrderCreate/Edit/Detail/List 개선
- ShipmentCreate/Edit, ReceivingDetail 개선
- calendar, calendarEvents 수정
- datepicker 마이그레이션 체크리스트 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-06 15:48:00 +09:00
유병철
32d6e3bbbd feat(WEB): 공사관리 리스트 공통화 및 캘린더/포맷터 기능 개선
공사관리 리스트 공통화:
- 입찰/계약/견적/인수인계/이슈/품목/노무/현장/파트너/단가/기성/현장브리핑/구조검토/유틸리티/작업자현황 리스트 공통 포맷터 적용
- 중복 포맷팅 로직 제거 (-530줄)

캘린더 기능 개선:
- CEODashboard CalendarSection 기능 확장
- ScheduleCalendar DayCell/MonthView/WeekView 개선
- ui/calendar 컴포넌트 기능 추가

유틸리티 개선:
- date.ts 날짜 유틸 함수 추가
- formatAmount.ts 금액 포맷 함수 추가

신규 추가:
- useListHandlers 훅 추가
- src/constants/ 디렉토리 추가
- 포맷터 공통화 계획 문서 추가
- SAM ERP/MES 정체성 분석 문서 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 17:38:38 +09:00
유병철
2639724f9f feat(WEB): 상태 뱃지 공통화 및 상세 페이지 훅 시스템 추가
공통화:
- status-config.ts 신규 추가 (상태 설정 중앙 관리)
- StatusBadge 컴포넌트 개선
- 뱃지 공통화 가이드 문서 추가

상세 페이지 훅 시스템:
- useDetailData, useDetailPageState, useDetailPermissions, useCRUDHandlers 훅 신규 추가
- hooks/index.ts 진입점 추가
- BillDetailV2 신규 컴포넌트 추가

리팩토링:
- 회계(매입/어음/거래처), 품목, 단가, 견적, 주문 상태 뱃지 공통화 적용
- 생산(작업지시서/대시보드/작업자화면), 품질(검사관리) 상태 뱃지 적용
- 공사관리(칸반/프로젝트카드) 상태 뱃지 적용
- 고객센터(문의관리), 인사(직원CSV업로드) 개선
- 리스트 페이지 공통화 현황 분석 문서 추가

상수 정리:
- lib/constants/ 디렉토리 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 15:57:49 +09:00
8902cdcfd5 fix(WEB): 품목관리 규격 필드를 실제 스펙 텍스트로 표시하도록 수정
- Specification 타입: '인정'|'비인정' → string (실제 규격 텍스트)
- 데이터 소스: options.specification → attributes.spec으로 변경
- 상세 페이지: 규격 필드를 Select → Input(텍스트)으로 변경
- 저장 시 attributes.spec으로 저장하도록 변경
- 규격 필터 옵션에서 인정/비인정 제거
2026-02-04 20:30:01 +09:00
유병철
bb7e7a75e9 feat(WEB): 상세 페이지 권한 체계 통합 및 레이아웃/문서 기능 개선
권한 시스템 통합:
- BadDebtDetail, LaborDetail, PricingDetail 권한 로직 정리
- BoardDetail, ClientDetail, ItemDetail 권한 적용 개선
- ProcessDetail, StepDetail, PermissionDetail 권한 리팩토링
- ContractDetail, HandoverReport, ProgressBilling 권한 연동
- ReceivingDetail, ShipmentDetail, WorkOrderDetail 권한 적용
- InspectionDetail, OrderSalesDetail, QuoteFooterBar 권한 개선

기능 개선:
- AuthenticatedLayout 구조 리팩토링
- JointbarInspectionDocument 문서 레이아웃 개선
- PricingTableForm 폼 기능 보강
- DynamicItemForm, SectionsTab 개선
- 주문관리 상세/생산지시 페이지 개선
- VendorLedgerDetail 수정

설정:
- Claude hooks 추가 (빌드 차단, 파일 크기 체크, 미사용 import 체크)
- 품질감사 문서관리 계획 문서 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 20:26:27 +09:00
유병철
e111f7b362 feat(WEB): 권한 관리 시스템 구현 및 상세 페이지 권한 통합
- PermissionContext, usePermission 훅, PermissionGuard 컴포넌트 신규 추가
- AccessDenied 접근 거부 페이지 추가
- permissions lib (체커, 매퍼, 타입) 구현
- BadDebtDetail, BoardDetail, LaborDetail, PricingDetail 등 상세 페이지 권한 적용
- ProcessDetail, StepDetail, ItemDetail, PermissionDetail 권한 연동
- RootProvider에 PermissionProvider 통합
- protected layout 권한 체크 추가
- Claude 프로젝트 설정 파일 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 10:17:02 +09:00
e684c495ee feat(WEB): 대시보드 금액 한국식 축약 포맷 적용 (만/억 단위)
- formatKoreanAmount 유틸 함수 추가 (1만 미만: 원, 1만~1억: 만, 1억 이상: 억+만)
- CEO 대시보드 일일일보, 당월 지출, 금액카드에 적용
- 기존 formatBillion 로컬 함수 제거 후 공통 유틸로 통합
2026-02-02 08:49:04 +09:00
fc8d29e513 refactor(WEB): 공통코드 클라이언트 훅 전환 및 품목 탭 동적 생성
- common-codes.ts에서 'use server' 제거, 타입/유틸리티만 유지
- useCommonCodes 훅 생성 (클라이언트 /api/proxy/ 패턴, 5분 캐시)
- ItemListClient 탭/통계카드를 common_codes 기반 동적 생성으로 전환
- OrderSalesDetailEdit 서버액션 → useCommonCodes 훅 전환
- order-management actions.ts 서버액션 내 공통코드 직접 조회로 변경
2026-01-30 20:13:46 +09:00
유병철
9f7f55aeff feat(WEB): CEO 대시보드 오늘의 이슈 탭 및 이전 이슈 날짜 조회 기능 추가
- 오늘의 이슈 섹션에 "오늘" / "이전 이슈" 탭 추가
- 이전 이슈 탭에서 날짜 네비게이션(< >, date input) 지원
- usePastIssue 훅 추가 (date 파라미터로 과거 이슈 API 호출)
- 탭/날짜 전환 시 필터 및 상태 자동 리셋
- 로딩 중 그리드 높이 유지로 UI 들썩임 방지

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 15:23:35 +09:00
유병철
3ef9570f3b feat(WEB): API 인프라 리팩토링, CEO 대시보드 현황판 개선 및 문서 시스템 강화
- API: fetch-wrapper/proxy/refresh-token 리팩토링, authenticated-fetch 신규 추가
- CEO 대시보드: EnhancedSections 현황판 기능 개선, dashboard transformers/types 확장
- 문서 시스템: ApprovalLine/DocumentHeader/DocumentToolbar/DocumentViewer 개선
- 작업지시서: 검사보고서/작업일지 문서 컴포넌트 개선 (벤딩/스크린/슬랫)
- 레이아웃: Sidebar/AuthenticatedLayout 수정
- 작업자화면: WorkerScreen 수정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 14:16:17 +09:00
유병철
a1f4c82cec fix: 프로젝트 전체 TypeScript 타입에러 408개 수정 (tsc --noEmit 0 errors)
- 공통 템플릿 타입 수정 (IntegratedDetailTemplate, UniversalListPage)
- 페이지(app/[locale]) 타입 호환성 수정 (80개)
- 재고/자재 모듈 타입 수정 (StockStatus, ReceivingManagement)
- 생산 모듈 타입 수정 (WorkOrders, WorkerScreen, WorkResults)
- 주문/출고 모듈 타입 수정 (ShipmentManagement, Orders)
- 견적/단가 모듈 타입 수정 (Quotes, Pricing)
- 건설 모듈 타입 수정 (49개, 17개 하위 모듈)
- HR 모듈 타입 수정 (CardManagement, VacationManagement 등)
- 설정 모듈 타입 수정 (PermissionManagement, AccountManagement 등)
- 게시판 모듈 타입 수정 (BoardManagement, BoardList 등)
- 회계 모듈 타입 수정 (VendorManagement, BadDebtCollection 등)
- 기타 모듈 타입 수정 (CEODashboard, clients, vehicle 등)
- 유틸/훅/API 타입 수정 (hooks, contexts, lib)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 10:07:58 +09:00
유병철
a5578bf669 feat: UniversalListPage 검색 기능 개선 및 리렌더링 버그 수정
- UniversalListPage 템플릿에 searchFilter, useClientSearch 지원 추가
- 검색 입력 시 리렌더링(포커스 유실) 버그 수정
- 29개 리스트 페이지에 searchFilter 함수 추가
- SiteBriefingListClient 누락된 searchFilter 추가
- IntegratedListTemplateV2 검색 로직 정리
- 검색 기능 수정내역 가이드 문서 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:51:07 +09:00
유병철
381413a49c fix(WEB): 오늘의 이슈 badge 매핑 백엔드 동기화 및 fallback 추가
transformers.ts:
- NOTIFICATION_TYPE_TO_BADGE 백엔드 TodayIssue.php와 동기화
- BADGE_TO_NOTIFICATION_TYPE 역방향 매핑 추가 (fallback용)
- validateNotificationType에 badge 기반 추론 로직 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:58:27 +09:00
유병철
eb3288dab7 fix(WEB): 오늘의 이슈 notification_type 기반 변환 로직 개선
transformers.ts:
- notification_type 영문 코드 기반 변환 (sales_order, bad_debt 등)
- NOTIFICATION_TYPE_TO_BADGE 매핑 테이블 추가
- validateNotificationType 함수로 타입 안전성 확보

types.ts:
- TodayIssueNotificationType 타입 추가
- TodayIssueListItem에 notificationType 필드 추가

TodayIssueSection:
- notificationType 기반 색상 매핑 적용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:48:17 +09:00
유병철
e5f0f5da61 feat(WEB): 차량 관리 기능 추가 및 CEO 대시보드 Enhanced 섹션 적용
차량 관리 (신규):
- VehicleList/VehicleDetail: 차량 목록/상세
- ForkliftList/ForkliftDetail: 지게차 목록/상세
- VehicleLogList/VehicleLogDetail: 운행일지 목록/상세
- 관련 페이지 라우트 추가 (/vehicle-management/*)

CEO 대시보드:
- Enhanced 섹션 컴포넌트 적용 (아이콘 + 컬러 테마)
- EnhancedStatusBoardSection, EnhancedDailyReportSection, EnhancedMonthlyExpenseSection
- TodayIssueSection 개선

IntegratedDetailTemplate:
- FieldInput, FieldRenderer 기능 확장

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 14:53:20 +09:00
f532f1fb52 fix(WEB): 오늘의 이슈 뱃지 타입 API 모델과 동기화
- TodayIssueListBadgeType 업데이트 (수주등록, 추심이슈, 안전재고 등)
- BADGE_COLORS 및 FILTER_KEYS 새 타입으로 변경
- transformers.ts의 VALID_BADGE_TYPES 배열 동기화
- 입금/출금 뱃지 타입 추가
2026-01-27 22:38:55 +09:00
유병철
55e92bc7b4 fix(WEB): 모바일 반응형 UI 개선 및 개소 정보 수정 모달 추가
- CalendarHeader: 모바일에서 주/월 버튼 2줄 레이아웃으로 분리
- MobileCard: 제목 텍스트 overflow 시 truncate 적용
- DetailActions: 모바일 하단 sticky 버튼 바 overflow 수정
- OrderDetailForm: 모바일 하단 sticky 버튼 바 overflow 수정
- LocationDetailPanel: 오픈사이즈 옆 수정 버튼에 모달 연결
- LocationListPanel: 개소 목록에 수정/삭제 버튼 추가
- LocationEditModal: 개소 정보 수정 팝업 신규 생성

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 11:28:12 +09:00
6586db4996 Merge remote-tracking branch 'origin/master' 2026-01-26 22:12:41 +09:00
유병철
1f6b592b9f feat(WEB): 리스트 페이지 UI 레이아웃 표준화
- 공통 레이아웃 패턴 적용: [달력] → [프리셋] → [검색창] → [버튼들]
- beforeTableContent → headerActions + createButton 마이그레이션
- DateRangeSelector extraActions prop 활용하여 검색창 통합
- PricingListClient 테이블 행 클릭 → 상세 이동 기능 추가
- 회계 관련 페이지 (입금/출금/매입/매출/어음/카드/예상지출 등) 정리
- 건설 관련 페이지 검색 영역 정리
- 부모 메뉴 리다이렉트 컴포넌트 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 22:04:36 +09:00
f9dafbc02c fix(date): UTC 기반 날짜를 로컬 타임존으로 변경
- 공통 날짜 유틸리티 함수 추가 (src/utils/date.ts)
  - getLocalDateString(): 로컬 타임존 YYYY-MM-DD 포맷
  - getTodayString(): 오늘 날짜 반환
  - getDateAfterDays(): N일 후 날짜 계산
  - formatDateForInput(): API 응답 → input 포맷 변환

- toISOString().split('T')[0] 패턴을 공통 함수로 교체
  - 견적: QuoteRegistration, QuoteRegistrationV2, types
  - 건설: contract, site-briefings, estimates, bidding types
  - 건설: IssueDetailForm, ConstructionDetailClient, ProjectEndDialog
  - 자재: InspectionCreate, ReceivingReceiptContent, StockStatus/mockData
  - 품질: InspectionManagement/mockData
  - 기타: PricingFormClient, ShipmentCreate, PurchaseOrderDocument
  - 기타: MainDashboard, attendance/actions, dev/generators

문제: toISOString()은 UTC 기준이라 한국(UTC+9)에서 오전 9시 이전에
      전날 날짜가 표시되는 버그 발생
해결: 로컬 타임존 기반 날짜 포맷 함수로 통일
2026-01-26 17:15:22 +09:00
유병철
a15132d75d feat(WEB): 글로벌 검색, 토큰 갱신 개선, 템플릿 기능 확장
- CommandMenuSearch 컴포넌트 추가 (Cmd+K 글로벌 메뉴 검색)
- AuthenticatedLayout: 검색 통합, 모바일/데스크톱 스켈레톤 분리
- middleware: 토큰 갱신 후 리다이렉트 방식으로 변경 (race condition 방지)
- IntegratedDetailTemplate: stickyButtons 옵션 추가 (하단 고정 버튼)
- UniversalListPage: 컬럼 정렬 기능 추가 (sortBy, sortOrder)
- Sidebar: 축소 모드 패딩/간격 최적화
- 각종 컴포넌트 버그 수정 및 경로 정규화

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26 15:07:10 +09:00
cd060ec562 Merge remote-tracking branch 'origin/master' 2026-01-26 08:24:09 +09:00
유병철
0bad332c22 feat(WEB): 대시보드 네비게이션 경로 정규화 및 서버 설정 개선
- normalizePath 헬퍼 함수 추가 (/ko prefix, ?mode=view 자동 추가)
- 대시보드 detailButtonPath에 /ko prefix 적용
- start 스크립트에 -H 0.0.0.0 추가 (외부 접근 허용)
- start:local 스크립트 추가 (로컬 전용)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 15:05:24 +09:00
유병철
f6551c7e8b feat(WEB): 전체 페이지 ?mode= URL 네비게이션 패턴 적용
- 등록(?mode=new), 상세(?mode=view), 수정(?mode=edit) URL 패턴 일괄 적용
- 중복 패턴 제거: /edit?mode=edit → ?mode=edit (16개 파일)
- 제목 일관성: {기능} 등록/상세/수정 패턴 적용
- 검수 체크리스트 문서 추가 (79개 페이지)
- UniversalListPage, IntegratedDetailTemplate 공통 컴포넌트 개선

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 12:27:43 +09:00
9fb5c171eb fix(WEB): 견적 상세 페이지 상태 변경 및 견적완료일 표시 기능 추가
- 견적 상세 페이지에서 상태 변경 가능하도록 Select 컴포넌트 추가
- 견적완료일(completedDate) 필드를 FormData 타입에 추가
- 견적완료 상태일 때 완료일자 표시
- 저장 시 상태를 강제로 'completed'로 변경하던 로직 제거
- 목록 페이지에서 견적완료일이 표시되지 않던 문제 수정
  - updated_at을 완료 상태의 completedDate로 사용
- QuantityInput 컴포넌트 controlled component 에러 수정
  - defaultValue props 분리하여 spread 방지
2026-01-23 21:09:18 +09:00
307735df62 fix(WEB): 대시보드 가지급금 모달 텍스트 및 undefined 처리
- "미정정" → "미설정"으로 텍스트 수정
- pending_count undefined 시 0으로 기본값 처리
2026-01-23 17:55:20 +09:00
575bc5a5d3 fix(WEB): 대시보드 오늘의 이슈 카테고리명 오타 수정
- 주식 이슈 → 추심 이슈
- 직정 제고 → 적정 재고
2026-01-23 16:59:05 +09:00
e3043a3f0d feat: 신규거래처 알림에 신용등급 배지 추가
- TodayIssueListBadgeType에 '신규거래처' 타입 추가
- 신규거래처 뱃지 색상 추가 (emerald)
- 신용등급 배지 버튼 추가 (A~D 랜덤, 색상: A=녹색, B=노랑, C=주황, D=빨강)
- VALID_BADGE_TYPES에 '신규거래처' 추가
- 필터 옵션에 '신규거래처' 추가
2026-01-23 14:11:10 +09:00
e098fea558 fix(WEB): 대시보드 모달 데이터 연동 오류 수정
- transformers.ts: footer_summary destructuring 누락 수정
- cardManagementConfigTransformers.ts: items, by_user, monthly_trend 방어적 코드 추가
  - undefined 배열 접근 시 빈 배열 기본값 적용
  - 카드 사용 상세(cm1), 가지급금 상세(cm2) 모달 에러 해결
2026-01-23 13:31:44 +09:00
297c6b7ef6 fix(WEB): 대시보드 - 접대비 현황 모달 클릭 오류 수정
- API 카드 ID와 config ID 불일치 문제 해결
- et1~et4 → et_sales, et_limit, et_remaining, et_used로 변경
2026-01-23 13:12:20 +09:00
bf11b13aee feat(CEODashboard): Phase 3 - 카드/가지급금 관리 모달 API 연동
Phase 3: Modal Component Integration (cm1-cm4)

### 새 파일
- cardManagementConfigTransformers.ts: API 응답을 모달 설정으로 변환
  - transformCm1ModalConfig: 카드 사용액 상세
  - transformCm2ModalConfig: 가지급금 상세
  - transformCm3ModalConfig: 법인세 시뮬레이션
  - transformCm4ModalConfig: 종합소득세 시뮬레이션
  - 유틸리티: formatKoreanCurrency, calculateChangeRate, formatPercentage

### 수정 파일
- cardManagementConfigs.ts:
  - getCardManagementModalConfigWithData() 추가
  - API 데이터 우선, 없을 시 fallback 설정 사용

- useCardManagementModals.ts:
  - fetchModalData()가 데이터 직접 반환하도록 수정
  - CardManagementModalData 타입 추가

- CEODashboard.tsx:
  - useCardManagementModals 훅 연동
  - handleCardManagementCardClick에서 API 데이터 사용
2026-01-22 23:11:19 +09:00
f8d93e2851 feat: [대시보드] 복리후생비 현황 섹션 Phase 2 - 프론트엔드 API 연동
Phase 2 프론트엔드 연동 완료:
- WelfareDetailApiResponse 타입 정의 추가 (types.ts)
- useWelfareDetail hook 추가 (useCEODashboard.ts)
- transformWelfareDetailResponse 변환 함수 추가 (transformers.ts)
- CEODashboard에 API 연동 및 Mock fallback 구현

변경 파일:
- src/lib/api/dashboard/types.ts: 복리후생비 상세 API 응답 타입
- src/hooks/useCEODashboard.ts: useWelfareDetail hook
- src/lib/api/dashboard/transformers.ts: API → DetailModalConfig 변환
- src/components/business/CEODashboard/CEODashboard.tsx: 모달 API 연동
- src/components/business/CEODashboard/modalConfigs/welfareConfigs.ts: deprecation 문서화
2026-01-22 22:48:29 +09:00
유병철
19237be4aa refactor: UniversalListPage externalIsLoading 지원 및 스켈레톤 개선
- UniversalListPage에 externalIsLoading prop 추가
- CardTransactionDetailClient DevFill 자동입력 기능 추가
- 여러 컴포넌트 로딩 상태 처리 개선
- skeleton 컴포넌트 확장

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 20:54:16 +09:00
유병철
24b65bd6f5 feat: 카드 거래내역 등록/상세/수정 페이지 추가
- CardTransactionDetailClient 컴포넌트 생성
- cardTransactionDetailConfig 설정 파일 추가
- actions.ts에 CRUD API 함수 추가 (create, getById, update, delete, getCardList)
- 등록/상세/수정 페이지 생성 (new, [id], [id]/edit)
- 리스트에 "카드내역 등록" 버튼 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 19:08:30 +09:00
유병철
269b901e64 refactor: UI 컴포넌트 추상화 및 입금/출금 등록 버튼 추가
- 입금관리, 출금관리 리스트에 등록 버튼 추가
- skeleton, confirm-dialog, empty-state, status-badge UI 컴포넌트 추가
- document-system 컴포넌트 추상화 (ApprovalLine, DocumentHeader 등)
- 여러 페이지 컴포넌트 리팩토링 및 코드 정리

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 17:21:42 +09:00
유병철
9464a368ba refactor: 모달 Content 컴포넌트 분리 및 파일 입력 UI 공통화
- 모달 컴포넌트에서 Content 분리하여 재사용성 향상
  - EstimateDocumentContent, DirectConstructionContent 등
  - WorkLogContent, QuotePreviewContent, ReceivingReceiptContent
- 파일 입력 공통 UI 컴포넌트 추가
  - file-dropzone, file-input, file-list, image-upload
- 폼 컴포넌트 코드 정리 및 중복 제거 (-4,056줄)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 15:07:17 +09:00
6fa69d81f4 CEO 대시보드 API 전환 및 주문 관리 페이지 수정
- CEO 대시보드 mock 데이터 제거, 실제 API 연동
- 대시보드 transformers/types 추가
- 영업 주문 관리 페이지 수정
- 주문 actions 업데이트
2026-01-22 09:47:05 +09:00
유병철
f2b87ddf0a Merge branch 'master' of http://114.203.209.83:3000/SamProject/sam-react-prod 2026-01-21 20:56:38 +09:00
유병철
835c06ce94 feat(WEB): 입력 컴포넌트 공통화 및 UI 개선
- 숫자/통화/전화번호/사업자번호 등 특수 입력 컴포넌트 추가
- MobileCard 컴포넌트 통합 (ListMobileCard 제거)
- IntegratedListTemplateV2 페이지네이션 버그 수정 (NaN 이슈)
- IntegratedDetailTemplate 타이틀 중복 수정
- 문서 시스템 컴포넌트 추가
- 헤더 벨 아이콘 포커스 스타일 개선

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-21 20:56:17 +09:00
fb1d7bf241 feat(WEB): CEO 대시보드 Phase 2 API 연동 완료
- StatusBoard(현황판) API Hook 및 타입 추가
- TodayIssue(오늘의 이슈) API Hook 및 타입 추가
- Calendar(캘린더) API Hook 및 타입 추가
- Vat(부가세) API Hook 및 타입 추가
- Entertainment(접대비) API Hook 및 타입 추가
- Welfare(복리후생비) API Hook 및 타입 추가
- CEODashboard.tsx에 모든 Phase 2 Hook 통합
- API 응답 → Frontend 타입 변환 transformer 추가
- WelfareCalculationType 'percentage' → 'ratio' 타입 일치 수정
2026-01-21 10:38:09 +09:00
0e963c0f11 feat: CEO 대시보드 Phase 1 API 연동 (5개 섹션)
- DailyReport, Receivable, DebtCollection, MonthlyExpense, CardManagement API 연동
- useCEODashboard Hook 추가 (병렬 API 호출)
- API → Frontend 타입 변환 함수 및 CheckPoint 생성 로직 구현
- API 실패 시 mockData fallback 패턴 적용
2026-01-20 18:51:05 +09:00
d12e2e0b4c fix: API 응답 래퍼 패턴 수정 및 기능 개선
- construction actions.ts 파일들 API 응답 래퍼 패턴 수정
  - handover-report, order-management, site-management, structure-review
  - apiClient 반환값 { success, data } 구조에 맞게 수정
- ShipmentManagement 기능 개선
- WorkerScreen 컴포넌트 수정
- .gitignore에 package-lock.json, tsconfig.tsbuildinfo 추가
2026-01-20 17:04:32 +09:00
유병철
09b2c256fb refactor: IntegratedDetailTemplate 마이그레이션 (수주/견적)
- order-management-sales/[id]/page.tsx: PageLayout → IntegratedDetailTemplate (view)
- order-management-sales/[id]/edit/page.tsx: PageLayout → IntegratedDetailTemplate (edit)
- EstimateDetailForm.tsx: PageLayout → IntegratedDetailTemplate (view/edit)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 16:47:33 +09:00
29c257c9f8 fix: 계약관리 API 응답 파싱 오류 수정
- Laravel ApiResponse 래퍼 구조 반영 ({ success, data })
- getContractList: response.data.data로 페이지네이션 데이터 접근
- getContractStats: response.data로 통계 데이터 접근
- getContractStageCounts: response.data로 단계별 건수 접근
- getContract/getContractDetail: response.data로 단건 데이터 접근
- createContract/updateContract: response.data로 생성/수정 결과 접근
2026-01-20 16:15:53 +09:00
8c8d76b6c3 feat: 견적 → 입찰 전환 기능 구현
- 견적 상세에서 입찰 등록 버튼 및 확인 다이얼로그 추가
- createBiddingFromEstimate 액션 연동
- 입찰 등록 후 리다이렉트 URL 수정 (/biddings → /bidding)
- getUserOptions API 경로 수정 (/users → /users/index)
- per_page 파라미터명 수정 (size → per_page)
2026-01-20 16:15:40 +09:00
d12618f320 fix(WEB): 수주 페이지 필드 매핑 및 제품-부품 트리 구조 개선
- ApiClient 인터페이스: representative → manager_name, contact_person 변경
- transformApiToFrontend: client.representative → client.manager_name 수정
- ApiOrderItem에 floor_code, symbol_code 필드 추가 (제품-부품 매핑)
- ApiOrder에 options 타입 정의 추가
- ApiQuote에 calculation_inputs 타입 정의 추가
- 수주 상세 페이지 제품-부품 트리 구조 UI 개선
2026-01-20 16:14:45 +09:00
dac1d9bc2b feat: 견적서 모달 회사정보 API 연동
- getCompanyInfo() API 함수 추가 (GET /api/v1/tenants)
- EstimateDocumentModal에 회사정보 API 연동
- 하드코딩된 회사명/주소/연락처 제거
- 결재란 견적자명 동적 표시
- constants.ts 모듈 유효성 수정
2026-01-20 16:10:27 +09:00
2465d739fe feat: 견적서 목업 데이터 → API 연동 전환
- EstimateDetailTableSection: 하드코딩된 셀렉트 옵션 → API 데이터 연동
  - 재료/도장/모터/제어기/시공비: getCommonCodeOptions() 사용
  - 공과 품목: getExpenseItemOptions() 사용
- EstimateListClient: 거래처/견적자 필터 API 연동
  - MOCK_PARTNERS → getClientOptions()
  - MOCK_ESTIMATORS → getUserOptions()
- actions.ts: 공통코드/거래처/사용자/공과품목 API 함수 추가
- constants.ts: MOCK_MATERIALS 제거
- EstimateDetailForm: MOCK_MATERIALS import 제거
2026-01-20 16:10:23 +09:00
유병철
61e3a0ed60 feat(WEB): Phase 6 IntegratedDetailTemplate 마이그레이션 완료
Phase 6 마이그레이션 (41개 컴포넌트 완료):
- 건설/시공: 협력업체, 시공관리, 기성관리, 발주관리, 계약관리 등
- 영업: 견적관리(V2), 고객관리(V2), 수주관리
- 회계: 청구관리, 매입관리, 매출관리, 거래처관리, 악성채권 등
- 생산: 작업지시, 검수관리
- 출고: 출하관리
- 자재: 입고관리, 재고현황
- 고객센터: 문의관리, 이벤트관리, 공지관리
- 인사: 직원관리
- 설정: 권한관리

주요 변경사항:
- 34개 xxxConfig.ts 파일 생성 (설정 기반 페이지 구성)
- PageLayout/PageHeader → IntegratedDetailTemplate 통합
- 일관된 타이틀/버튼 영역 (목록, 상세, 수정, 삭제)
- 1112줄 코드 감소 (중복 제거)

프로젝트 공통화 현황 분석 문서 추가:
- 상세 페이지 62%, 목록 페이지 82% 공통화 달성
- 추가 공통화 기회 및 로드맵 정리

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 15:51:02 +09:00