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:
@@ -483,9 +483,9 @@ export function LocationDetailPanel({
|
||||
<div>
|
||||
<span className="text-xs text-gray-500">제작사이즈</span>
|
||||
<p className="font-semibold">
|
||||
{location.bomResult?.variables?.W1 || location.manufactureWidth || "-"}
|
||||
{String(location.bomResult?.variables?.W1 ?? location.manufactureWidth ?? "-")}
|
||||
X
|
||||
{location.bomResult?.variables?.H1 || location.manufactureHeight || "-"}
|
||||
{String(location.bomResult?.variables?.H1 ?? location.manufactureHeight ?? "-")}
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
@@ -509,7 +509,7 @@ export function LocationDetailPanel({
|
||||
<QuantityInput
|
||||
value={location.quantity}
|
||||
onChange={(newQty) => {
|
||||
if (!location || disabled) return;
|
||||
if (!location || disabled || newQty === undefined) return;
|
||||
// 수량 변경 시 totalPrice 재계산
|
||||
const unitPrice = location.unitPrice || 0;
|
||||
onUpdateLocation(location.id, {
|
||||
@@ -620,7 +620,7 @@ export function LocationDetailPanel({
|
||||
<QuantityInput
|
||||
value={item.quantity}
|
||||
onChange={(newQty) => {
|
||||
if (!location || disabled) return;
|
||||
if (!location || disabled || newQty === undefined) return;
|
||||
const existingBomResult = location.bomResult;
|
||||
if (!existingBomResult) return;
|
||||
|
||||
|
||||
@@ -306,9 +306,10 @@ export function QuoteManagementClient({
|
||||
|
||||
// 제품분류 필터
|
||||
if (productCategoryFilter !== 'all') {
|
||||
if (productCategoryFilter === 'STEEL' && item.productCategory !== 'STEEL') return false;
|
||||
if (productCategoryFilter === 'SCREEN' && item.productCategory !== 'SCREEN') return false;
|
||||
if (productCategoryFilter === 'MIXED' && item.productCategory !== 'MIXED') return false;
|
||||
const category = item.productCategory as string;
|
||||
if (productCategoryFilter === 'STEEL' && category !== 'STEEL') return false;
|
||||
if (productCategoryFilter === 'SCREEN' && category !== 'SCREEN') return false;
|
||||
if (productCategoryFilter === 'MIXED' && category !== 'MIXED') return false;
|
||||
}
|
||||
|
||||
// 상태 필터
|
||||
|
||||
@@ -321,7 +321,7 @@ export function QuotePreviewContent({
|
||||
{/* 개소 헤더 */}
|
||||
<tr className="bg-blue-50 border-b border-gray-400">
|
||||
<td colSpan={7} className="px-2 py-1 font-semibold text-blue-800">
|
||||
[{locationSymbol}] {loc.floor} - {loc.name || loc.code} (수량: {loc.quantity}개)
|
||||
[{locationSymbol}] {loc.floor} - {loc.productName || loc.code} (수량: {loc.quantity}개)
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@@ -235,7 +235,7 @@ export function QuoteRegistration({
|
||||
const productsToUse = categoryProducts || finishedGoods;
|
||||
const sampleData = generateQuoteData({
|
||||
clients: clients.map(c => ({ id: c.id, name: c.vendorName })),
|
||||
products: productsToUse.map(p => ({ code: p.item_code, name: p.item_name, category: p.category })),
|
||||
products: productsToUse.map(p => ({ code: p.item_code, name: p.item_name, category: p.item_category })),
|
||||
category: selectedCategory,
|
||||
});
|
||||
|
||||
@@ -1263,8 +1263,6 @@ export function QuoteRegistration({
|
||||
config={config}
|
||||
mode={editingQuote ? "edit" : "create"}
|
||||
isLoading={isLoading}
|
||||
isSubmitting={isSaving}
|
||||
onBack={onBack}
|
||||
onCancel={onBack}
|
||||
onSubmit={handleSubmit}
|
||||
renderForm={renderFormContent}
|
||||
|
||||
@@ -266,14 +266,15 @@ export function QuoteRegistrationV2({
|
||||
}
|
||||
|
||||
const testData: QuoteFormDataV2 = {
|
||||
quoteNumber: "",
|
||||
registrationDate: getLocalDateString(new Date()),
|
||||
writer: writerName,
|
||||
clientId: clients[0]?.id?.toString() || "",
|
||||
clientName: clients[0]?.company_name || "테스트 거래처",
|
||||
clientName: clients[0]?.vendorName || "테스트 거래처",
|
||||
siteName: "테스트 현장",
|
||||
manager: "홍길동",
|
||||
contact: "010-1234-5678",
|
||||
dueDate: getDateAfterDays(7),
|
||||
vatType: "included",
|
||||
remarks: "[DevFill] 테스트 견적입니다.",
|
||||
status: "draft",
|
||||
locations: testLocations,
|
||||
|
||||
@@ -932,7 +932,6 @@ export interface BomCalculationResult {
|
||||
}>;
|
||||
subtotals: Record<string, { name?: string; count?: number; subtotal?: number; items?: unknown[] } | number>;
|
||||
grand_total: number;
|
||||
variables?: Record<string, unknown>; // 계산된 변수들
|
||||
debug_steps?: Array<{ step: number; name: string; data: Record<string, unknown> }>; // 10단계 계산 과정
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user