Commit Graph

256 Commits

Author SHA1 Message Date
유병철
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
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
0a133f7890 feat(WEB): 입금/출금 자동채우기 개선 - API 거래처 랜덤선택, 유형 미설정
- accountingData: depositType, withdrawalType을 'unset'(미설정)으로 고정
- DepositDetailClientV2: API에서 거래처 목록 가져와서 랜덤 선택
- WithdrawalDetailClientV2: API에서 거래처 목록 가져와서 랜덤 선택
2026-01-22 20:17:25 +09:00
fd951f81f2 fix(WEB): today-issue API에서 redirect 에러 전파 처리
- ServerApiClient가 401 시 /login으로 redirect하는데
  catch 블록에서 redirect 에러를 잡아버리는 문제 수정
- isNextRedirectError 체크하여 redirect는 전파하도록 변경
2026-01-22 19:56:06 +09:00
14186d98c0 fix(WEB): 알림 폴링 시 인증 에러 처리 및 토큰 자동 갱신
- ApiResponse 타입에 authError 플래그 추가
- today-issue.ts에 인증 에러 감지 로직 추가
- AuthenticatedLayout에서 authError 시 토큰 갱신 후 재시도
- 토큰 갱신 실패 시 폴링 중지하여 반복 에러 방지
2026-01-22 19:51:24 +09:00
390c1a8450 feat(WEB): 회계 폼 useDevFill 훅 추가 및 출금 필드 편집 가능하게 변경
- DepositDetailClientV2: 입금 폼 자동채우기 훅 추가
- WithdrawalDetailClientV2: 출금 폼 자동채우기 훅 추가
- withdrawalDetailConfig: 출금일, 출금계좌, 수취인명, 출금금액 편집 가능하게 변경
- DocumentCreate: 매입(지출결의서) 폼 자동채우기 훅 추가
2026-01-22 19:45:52 +09:00
92af11c787 feat(WEB): FCM 푸시 알림, 입금 등록, 견적 저장 개선
- 수주 상세 페이지에서 수주확정 시 FCM 푸시 알림 발송 추가
- FCM 프리셋 함수 추가: 계약완료, 발주완료 알림
- 입금 등록 시 입금일, 입금계좌, 입금자명, 입금금액 입력 가능
- 견적 저장 시 토스트 메시지 정상 표시 수정
- ShipmentCreate SelectItem key prop 경고 수정
- DevToolbar 문법 오류 수정
2026-01-22 19:31:19 +09:00
5a00828568 Merge remote-tracking branch 'origin/master' 2026-01-22 19:08:58 +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
d597a70df8 Merge remote-tracking branch 'origin/master' 2026-01-22 17:22:32 +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
98a96be657 feat(WEB): DevToolbar 페이지 이동 기능 추가 및 locale 처리 수정
- 비활성화 버튼 클릭 시 해당 페이지로 이동 기능 추가
- 활성화 버튼 클릭 시 폼 자동 채우기 (기존 동작 유지)
- locale 추출 로직 수정: 유효한 locale(ko, en)만 인식
- 잘못된 경로 생성 문제 해결 (/production/sales/... → /sales/...)
2026-01-22 16:06:03 +09:00
777dccc7bd Merge remote-tracking branch 'origin/master' 2026-01-22 15:10:56 +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
bae1672f42 fix(WEB): IntegratedDetailTemplate onSubmit/onDelete 방어적 코드 추가
- onSubmit 반환값이 undefined일 때 TypeError 방지
- optional chaining(?.) 적용으로 안정성 향상
2026-01-22 14:57:47 +09:00
6fa69d81f4 CEO 대시보드 API 전환 및 주문 관리 페이지 수정
- CEO 대시보드 mock 데이터 제거, 실제 API 연동
- 대시보드 transformers/types 추가
- 영업 주문 관리 페이지 수정
- 주문 actions 업데이트
2026-01-22 09:47:05 +09:00
81a4d6baf1 feat(WEB): 헤더 알림 드롭다운 TodayIssue API 연동
- TodayIssue 타입 정의 파일 생성 (src/types/today-issue.ts)
- TodayIssue API 서비스 함수 생성 (src/lib/api/today-issue.ts)
  - getUnreadTodayIssues: 읽지 않은 알림 목록 조회
  - markTodayIssueAsRead: 개별 읽음 처리
  - markAllTodayIssuesAsRead: 전체 읽음 처리
- AuthenticatedLayout 알림 드롭다운 API 연동
  - MOCK_NOTIFICATIONS 제거, 실제 API 연동
  - 30초 폴링으로 알림 데이터 갱신
  - 알림 클릭 시 읽음 처리 + 페이지 이동
  - 모두 읽음 버튼 기능 구현
  - 벨 애니메이션 (읽지 않은 알림 있을 때만)
2026-01-21 21:14:56 +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
e6ef80f17f Merge remote-tracking branch 'origin/master'
# Conflicts:
#	src/components/quotes/QuoteRegistration.tsx
2026-01-20 20:49:14 +09:00
유병철
cfa72fe19b refactor(WEB): 폼 템플릿 통합 및 미사용 컴포넌트 정리
- ResponsiveFormTemplate → IntegratedDetailTemplate 마이그레이션
  - ClientRegistration, OrderRegistration, QuoteRegistration 완료
  - QuoteRegistrationV2 미사용 import 정리
- 미사용 컴포넌트 삭제
  - ListPageTemplate.tsx
  - ResponsiveFormTemplate.tsx
  - common/DataTable 폴더 전체 (SearchFilter 누락 export 에러 해결)
- Config 파일 추가
  - clientConfig.ts, orderConfig.ts
  - quoteConfig.ts에 edit 모드 config 추가

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-20 20:41:45 +09:00
eae23d4457 feat(WEB): DevToolbar - 견적→수주→작업지시→출하 테스트 자동화 도구
- DevFillContext: 전역 상태 관리 (활성화/페이지 타입/폼 채우기 함수)
- DevToolbar: 플로팅 UI 컴포넌트 (토글/자동 채우기 버튼)
- useDevFill: 각 폼에서 자동 채우기 함수 등록 커스텀 훅
- 데이터 생성기: 견적/수주/작업지시/출하 샘플 데이터
- 환경변수 제어: NEXT_PUBLIC_DEV_TOOLBAR_ENABLED로 On/Off
- 통합: QuoteRegistration, OrderRegistration, WorkOrderCreate, ShipmentCreate
- Hydration 불일치 방지: useState 초기값 false + useEffect 패턴
2026-01-20 20:38:29 +09:00
c101b8bf7e Merge remote-tracking branch 'origin/master' 2026-01-20 19:48:21 +09:00
유병철
4a6149963d feat(WEB): 견적 등록 테스트 페이지 IntegratedDetailTemplate 마이그레이션
- test-new 페이지 IntegratedDetailTemplate 적용
- quoteCreateConfig 추가

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-20 19:47:24 +09:00
373e84248f Merge remote-tracking branch 'origin/master' 2026-01-20 19:38:09 +09:00