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>
This commit is contained in:
유병철
2026-01-30 10:07:58 +09:00
parent 8a5cbde5ef
commit a1f4c82cec
154 changed files with 832 additions and 536 deletions

View File

@@ -219,6 +219,7 @@ export interface PurchaseApprovalFormData {
approvalLine: ApprovalPerson[];
references: ApprovalPerson[];
proposalData: {
vendorId: string;
vendor: string;
vendorPaymentDate: string;
title: string;

View File

@@ -5,7 +5,7 @@
import { getLocalDateString } from '@/utils/date';
// 랜덤 선택
export function randomPick<T>(arr: T[]): T {
export function randomPick<T>(arr: readonly T[]): T {
return arr[Math.floor(Math.random() * arr.length)];
}

View File

@@ -16,7 +16,7 @@ import {
tempId,
} from './index';
import type { QuoteFormData, QuoteItem } from '@/components/quotes/QuoteRegistration';
import type { Vendor } from '@/components/accounting/VendorManagement';
import type { Vendor } from '@/components/accounting/VendorManagement/types';
import type { FinishedGoods } from '@/components/quotes/actions';
// 제품 카테고리

View File

@@ -11,9 +11,9 @@ import type {
ShipmentCreateFormData,
ShipmentPriority,
DeliveryMethod,
VehicleTonnageOption,
LotOption,
LogisticsOption,
VehicleTonnageOption,
} from '@/components/outbound/ShipmentManagement/types';
// 우선순위
@@ -26,8 +26,8 @@ const DELIVERY_METHODS: DeliveryMethod[] = ['pickup', 'direct', 'logistics'];
* 출하 폼 데이터 생성
*/
export interface GenerateShipmentDataOptions {
lotOptions?: LotOption[]; // 로트 목록
logisticsOptions?: LogisticsOption[]; // 물류사 목록
lotOptions?: LotOption[]; // 로트 목록
logisticsOptions?: LogisticsOption[]; // 물류사 목록
tonnageOptions?: VehicleTonnageOption[]; // 차량 톤수 목록
lotNo?: string; // 지정 로트번호 (플로우에서 전달)
}
@@ -45,7 +45,7 @@ export function generateShipmentData(
// 로트 선택
let selectedLotNo = lotNo || '';
if (!selectedLotNo && lotOptions.length > 0) {
selectedLotNo = randomPick(lotOptions).lotNo;
selectedLotNo = randomPick(lotOptions).value;
}
// 배송방식
@@ -54,7 +54,7 @@ export function generateShipmentData(
// 물류사 (물류사 배송일 때만)
let logisticsCompany = '';
if (deliveryMethod === 'logistics' && logisticsOptions.length > 0) {
logisticsCompany = randomPick(logisticsOptions).name;
logisticsCompany = randomPick(logisticsOptions).label;
}
// 차량 톤수