Commit Graph

280 Commits

Author SHA1 Message Date
유병철
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
유병철
bae36f6f43 chore: tsconfig.tsbuildinfo를 git 추적에서 제거
- 빌드 캐시 파일로 git 추적 불필요
- .gitignore에 이미 등록되어 있음

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 13:08:45 +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
a0343eec93 feat(WEB): 부실채권, 재고, 입고, 수주 UI 개선
- BadDebtCollection 액션/타입 리팩토링
- ReceivingProcessDialog 입고처리 개선
- StockStatusList 재고현황 UI 개선
- OrderSalesDetailView 수주 상세 수정
- UniversalListPage 범용 리스트 개선
- production-order 페이지 수정
2026-01-23 21:32:24 +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
750f50d953 fix(WEB): DevToolbar 초기 상태를 숨김으로 변경
- 처음 방문 시 Dev Mode 숨김 상태로 시작
- localStorage에 명시적으로 'true' 저장된 경우만 표시
2026-01-23 20:21:49 +09:00
4428ac860d Merge remote-tracking branch 'origin/master' 2026-01-23 18:14:58 +09:00
유병철
72f1accbe4 fix(WEB): 로그인/회원가입 페이지 로고를 sam-logo.png로 변경
- LoginPage.tsx: 하드코딩된 "S" 텍스트 → Image 컴포넌트로 변경
- SignupPage.tsx: 하드코딩된 "S" 텍스트 → Image 컴포넌트로 변경
- AuthenticatedLayout과 동일한 /sam-logo.png 사용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 18:13:50 +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
93c99105c0 feat(WEB): 앱 이름 SAM으로 변경 및 환경별 접두사 추가
- ERP System → SAM - 내 손안의 대시보드
- 환경별 접두사: [L] 로컬, [D] 개발, 없음 운영
- i18n appName 업데이트 (en/ko)
2026-01-23 16:46:31 +09:00
bdf2bf8beb feat(WEB): 수주 삭제 기능 추가 및 출하목록 데이터 수정
- 수주 상세 페이지에 삭제 기능 추가
  - 수주등록/취소 상태에서 삭제 버튼 표시
  - 삭제 확인 다이얼로그 구현
  - 삭제 후 목록 페이지로 이동

- 출하목록 데이터 누락 수정
  - 발주처/현장명 order_info 참조하도록 수정
  - 배송방식 라벨 API 응답값 사용

- 공통코드 API 함수 추가
  - getDeliveryMethodCodes, getDeliveryMethodOptions
  - getCodeLabel 유틸 함수
2026-01-23 16:29:55 +09:00
662a0cc4ac fix(react): 매출관리, 직원폼, 작업지시서 컴포넌트 수정
- SalesManagement actions 및 index 개선
- EmployeeForm 수정
- WorkOrder Detail/Edit/List 컴포넌트 업데이트
- IntegratedDetailTemplate types 수정
- dashboard types 업데이트
2026-01-23 15:38:32 +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
f4352ca8c1 fix: 매입관리 세금계산서 토글 오류 수정
- togglePurchaseTaxInvoice에서 redirect 에러 catch하여 페이지 이동 방지
- UniversalListPage의 onDataChange useEffect 무한 루프 수정
  - config.onDataChange를 dependency array에서 제거
2026-01-23 13:31:18 +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
82d21e9fe9 fix(WEB): 수주관리 - 이달 수주 금액 계산 오류 수정
- formatAmountManwon: null/NaN 처리 추가 (0만원 반환)
- 이달 수주 필터: 취소/수주등록 제외, 수주확정 이후만 포함
- amount 합산 시 Number() 변환 추가 (문자열 연결 → 숫자 덧셈)
2026-01-23 12:41:26 +09:00
c34bab591a feat(WEB): 거래처 상세 - 알람에서 신용분석 모달 자동 오픈
- page.tsx: modal 쿼리 파라미터 읽어서 VendorDetail에 전달
- VendorDetail: openModal prop 추가 및 useEffect로 모달 자동 오픈
- 사용: /accounting/vendors/{id}?modal=credit
2026-01-23 11:22:57 +09:00
1934126a18 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	src/components/accounting/DepositManagement/index.tsx
#	src/components/accounting/SalesManagement/index.tsx
#	src/components/accounting/WithdrawalManagement/index.tsx
#	src/components/hr/CardManagement/index.tsx
2026-01-23 11:17:32 +09:00
유병철
ad063a1f01 feat(WEB): 파비콘 변경 및 거래처 신용분석 모달 추가
- 파비콘: SVG 형식으로 변경 (white 로고 + 파란 배경)
- 헤더 로고: SAM 로고 이미지로 교체
- 거래처 상세: 신용분석 모달 컴포넌트 추가
  - 신용등급, 리스크 지표, 레이더 차트
  - 프린트 기능 지원

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-23 11:15:09 +09:00
유병철
af5fdcba88 fix(WEB): 등록 버튼 링크를 ?mode=new 방식으로 변경
- 입금관리: /new → ?mode=new
- 출금관리: /new → ?mode=new
- 매출관리: /new → ?mode=new
- 카드관리: /new → ?mode=new

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 11:15:09 +09:00
d7594d026a fix(WEB): 버튼 URL 및 DevToolbar ?mode=new 지원
- DepositManagement, WithdrawalManagement, SalesManagement, CardManagement
  버튼 URL을 /new에서 ?mode=new 방식으로 변경
- DevToolbar에 MODE_NEW_PAGES 상수 추가하여 ?mode=new 페이지 감지
- useSearchParams 활용하여 mode 파라미터 확인 후 채우기 버튼 활성화
2026-01-23 11:13:18 +09:00
1195fc1fa5 fix: useMonthlyExpenseDetail API 경로 수정
- /api/v1/ → /api/proxy/ 프록시 경로로 변경
- 당월 예상 지출 상세 모달 404 에러 해결
2026-01-23 10:46:50 +09:00
cde86c1c92 Merge remote-tracking branch 'origin/master' 2026-01-23 10:22:40 +09:00
유병철
e44b3cd6cc refactor(WEB): /new 페이지를 ?mode=new 방식으로 통합
- 출퇴근 관리: 우림블루나인비즈니스센터 좌표 수정 (37.5572518, 126.864441)
- 입금/출금/매출/카드 등록: /new 폴더 삭제 및 ?mode=new 쿼리 파라미터 방식으로 통합
- 매출 등록 페이지 제목 "등록 등록" 중복 수정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 10:20:12 +09:00
9cfd10a265 feat(CEODashboard): Phase 4 - 카드/가지급금 관리 섹션 카드 API 연동
카드/가지급금 관리 섹션의 4개 카드(cm1~cm4)를 실제 API 데이터로 연동:

- cm1: 카드 사용액 - CardTransaction API (기존)
- cm2: 가지급금 - LoanDashboard API (신규 연동)
- cm3: 법인세 예상 가중 - TaxSimulation API (신규 연동)
- cm4: 대표자 종합세 예상 가중 - TaxSimulation API (신규 연동)

변경 사항:
- transformCardManagementResponse: LoanDashboard, TaxSimulation 파라미터 추가
- useCEODashboard: 3개 API 병렬 호출 (Promise.all)
- useCardManagement: 동일하게 다중 API 호출 적용
- 각 API 실패 시 fallback 데이터 사용 (graceful degradation)
2026-01-23 09:04:56 +09:00
유병철
1a0b1c4c48 fix(WEB): 모바일 인피니티 스크롤 중복 key 에러 수정
- 데이터 누적 시 getItemId로 중복 항목 필터링
- 페이지 전환 시 동일 데이터 중복 추가 방지

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-22 23:22:09 +09:00
ffb09a8c72 chore(WEB): DevToolbar 환경변수 추가
- NEXT_PUBLIC_DEV_TOOLBAR_ENABLED 설정
2026-01-22 23:20:28 +09:00
e7fb3b1f96 fix(WEB): 기타 버그 수정 및 개선
- CardTransactionInquiry: account_code 'unset' 처리 개선
- WorkOrderCreate: DevFill 공정 옵션 로딩 타이밍 수정
- accountingData: 생성기 개선
- api/errors: 에러 처리 개선
2026-01-22 23:19:54 +09:00
c8890c1a85 feat(WEB): 결재함 문서 상세 모달 데이터 연동 개선
- ApprovalBox: 문서 클릭 시 API 데이터 로드하여 모달에 표시
- DocumentCreate: 품의서 폼 개선 및 actions 수정
- 결재자 정보 (직책, 부서) 표시 개선
2026-01-22 23:19:37 +09:00
2d3a7064e3 feat(WEB): 입금/출금 관리 계좌 선택 및 데이터 변환 개선
- 입금/출금 상세에 계좌 선택 기능 추가 (bankAccountId 필드)
- API 변환 로직 개선 (계좌명 포맷, depositType 처리)
- getBankAccounts 액션 추가
- payment_method 기본값 설정
2026-01-22 23:19:30 +09:00
f1183d0a3d Merge remote-tracking branch 'origin/master' 2026-01-22 23:17:39 +09:00
유병철
e48b4df1c6 fix(WEB): 페이지네이션 개선 및 거래처관리 페이지 수정
- IntegratedListTemplateV2: 1페이지여도 페이지네이션 영역 항상 표시
- 거래처관리: externalPagination 추가로 서버 페이지네이션 정보 전달
- 거래처관리: handlePageChange Hooks 순서 에러 수정

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-22 23:17:02 +09:00
d824c913e8 fix: 당월 예상 지출 모달 API 통합
- 모든 카드(me1~me4)가 expected-expenses/dashboard-detail API 사용
- transaction_type 파라미터로 필터링 (me1=purchase, me2=card, me3=bill)
- cardId별 모달 제목 동적 설정 추가
- 불필요한 import 정리
2026-01-22 23:16:56 +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
1ba0561ee9 feat(WEB): 거래처 DevFill 자동 채우기 기능 추가
- 거래처 샘플 데이터 생성기 추가 (clientData.ts)
- DevFillContext에 'client' 페이지 타입 추가
- DevToolbar에 기준정보 섹션 (녹색 테마) 추가
- IntegratedDetailTemplate forwardRef 지원으로 외부 폼 데이터 조작 가능
- ClientDetailClientV2에서 DevFill 등록 로직 구현
2026-01-22 23:03:45 +09:00
2e9aa74b72 Merge remote-tracking branch 'origin/master' 2026-01-22 23:01:54 +09:00
fe845227df feat: Phase 2 프론트엔드 타입 및 API 연동
- API 타입 정의 추가 (LoanDashboard, TaxSimulation)
- API 엔드포인트 함수 추가 (endpoints.ts)
- 모달 데이터 훅 생성 (useCardManagementModals.ts)

관련: docs/plans/card-management-section-plan.md
2026-01-22 23:01:22 +09:00
유병철
3b328204a2 feat(WEB): 범용 스켈레톤 시스템 구축
- GenericPageSkeleton 범용 컴포넌트 추가 (커스텀 페이지용)
- AuthenticatedLayout 스피너 → 스켈레톤으로 변경
- (protected)/loading.tsx GenericPageSkeleton 적용
- subscription, account-info 페이지 개별 스켈레톤 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 23:01:20 +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
b1e444930b feat: 매입관리 품의서/지출결의서 연동 UI 구현
- PurchaseRecord 타입에 approvalId 필드 추가
- API 응답에서 approval 데이터를 sourceDocument로 변환
- 매입 목록에 '연결문서' 컬럼 추가 (품의서/지출결의서 표시)
- 모바일 카드 뷰에 연결문서 정보 표시
2026-01-22 22:47:31 +09:00
유병철
1575f9e680 feat(WEB): 스켈레톤 구조 개선 및 달력 UI 개선
스켈레톤 시스템:
- 타이틀은 항상 표시, 나머지 영역만 스켈레톤 처리
- 헤더 액션, 검색, 테이블 영역 개별 스켈레톤 적용

달력 UI:
- 경계선 색상 border-gray-200으로 통일
- 지난 일자 배경색 bg-gray-300으로 더 어둡게
- 선택/오늘 날짜 색상 보라색으로 변경 (이벤트 바와 구분)
- 날짜-이벤트 바 간격 8px 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 22:31:40 +09:00
유병철
208f4d08e5 feat(WEB): 리스트 페이지 헤더 영역 스켈레톤 추가
- ListPageSkeleton에 showDateRange, showCreateButton props 추가
- 페이지 타이틀, 날짜 범위 선택기, 프리셋 버튼, 등록 버튼 스켈레톤 구현
- Skeleton 컴포넌트 대신 직접 div 사용하여 색상 가시성 개선
- IntegratedListTemplateV2에서 새 props 전달

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 22:08:10 +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
207520e1d6 feat(WEB): 카드 거래 DevFill 자동 입력 기능 추가
- DevToolbar: 카드 버튼 경로 /new로 변경, fillEnabled 활성화
- CardTransactionDetailClient: useDevFill 훅 연동
- cardTransactionDetailConfig: transformInitialData에서 cardId 처리 수정
- accountingData: generateCardTransactionData 함수 추가
2026-01-22 20:49:22 +09:00
cbdafbd4b7 fix(WEB): 수주 DevFill - 기본정보 제외, 배송정보만 채우기
- generateOrderDataFull → generateOrderData로 변경
- 기본정보(거래처, 현장명, 담당자, 품목)는 견적 불러오기에서 채움
- 배송정보(출하예정일, 납품요청일, 배송방식, 주소 등)만 자동 채우기
2026-01-22 20:47:31 +09:00
0dd00d17f3 feat(WEB): 회계 DevFill 개선 - 유형 검증 제거, 매입 결재선/참조 자동설정
- 입금/출금: depositType/withdrawalType 'unset' 검증 제거 (미설정 상태로 등록 가능)
- 매입(지출결의서):
  - 문서번호 자동 생성 (DEV-YYYYMMDD-HHMM-XXX)
  - 결재선: localStorage에서 현재 사용자 이름 매칭, 없으면 랜덤 선택
  - 참조: 경리/회계/재무 부서 직원 중 랜덤 1명 선택
2026-01-22 20:38:03 +09:00