summaryrefslogtreecommitdiff
path: root/lib/rfq-last
diff options
context:
space:
mode:
authorjoonhoekim <26rote@gmail.com>2025-10-14 09:55:28 +0900
committerjoonhoekim <26rote@gmail.com>2025-10-14 09:55:28 +0900
commit6d3752d34dfdf2c3870b9f6ffe431cfa98e302c9 (patch)
tree6e08fd23f745fc95a8b31fc6d73dbdd75ffcea5c /lib/rfq-last
parentb7069eccf7d54a9bb51c244207110c75a1d55f33 (diff)
(김준회) 일반견적 생성 다이얼로그에 자재그룹선택기 통합
Diffstat (limited to 'lib/rfq-last')
-rw-r--r--lib/rfq-last/table/create-general-rfq-dialog.tsx76
1 files changed, 34 insertions, 42 deletions
diff --git a/lib/rfq-last/table/create-general-rfq-dialog.tsx b/lib/rfq-last/table/create-general-rfq-dialog.tsx
index 7263f20f..4ad21695 100644
--- a/lib/rfq-last/table/create-general-rfq-dialog.tsx
+++ b/lib/rfq-last/table/create-general-rfq-dialog.tsx
@@ -48,6 +48,8 @@ import { toast } from "sonner"
import { ScrollArea } from "@/components/ui/scroll-area"
import { Separator } from "@/components/ui/separator"
import { createGeneralRfqAction, previewGeneralRfqCode } from "../service"
+import { MaterialGroupSelectorDialogSingle } from "@/components/common/material/material-group-selector-dialog-single"
+import { MaterialSearchItem } from "@/lib/material/material-group-service" // 단순 타입 임포트 목적
import { ProjectSelector } from "@/components/ProjectSelector"
import {
PurchaseGroupCodeSingleSelector,
@@ -539,49 +541,39 @@ export function CreateGeneralRfqDialog({ onSuccess }: CreateGeneralRfqDialogProp
)}
</div>
- <div className="grid grid-cols-4 gap-3">
- {/* 자재코드 */}
- <FormField
- control={form.control}
- name={`items.${index}.itemCode`}
- render={({ field }) => (
- <FormItem>
- <FormLabel className="text-xs">
- 자재코드
- </FormLabel>
- <FormControl>
- <Input
- placeholder="MAT-001"
- className="h-8 text-sm"
- {...field}
- />
- </FormControl>
- <FormMessage />
- </FormItem>
- )}
- />
-
- {/* 자재명 */}
- <FormField
- control={form.control}
- name={`items.${index}.itemName`}
- render={({ field }) => (
- <FormItem>
- <FormLabel className="text-xs">
- 자재그룹(자재그룹명) <span className="text-red-500">*</span>
- </FormLabel>
- <FormControl>
- <Input
- placeholder="A4 용지"
- className="h-8 text-sm"
- {...field}
- />
- </FormControl>
- <FormMessage />
- </FormItem>
- )}
- />
+ {/* 자재 선택 - 그리드 외부 */}
+ <div className="mb-3">
+ <FormLabel className="text-xs">
+ 자재그룹(자재그룹명) <span className="text-red-500">*</span>
+ </FormLabel>
+ <div className="mt-1">
+ <MaterialGroupSelectorDialogSingle
+ triggerLabel="자재 선택"
+ selectedMaterial={(() => {
+ const itemCode = form.watch(`items.${index}.itemCode`);
+ const itemName = form.watch(`items.${index}.itemName`);
+ if (itemCode && itemName) {
+ return {
+ materialGroupCode: itemCode,
+ materialGroupDescription: itemName,
+ displayText: `${itemCode} - ${itemName}`
+ } as MaterialSearchItem;
+ }
+ return null;
+ })()}
+ onMaterialSelect={(material) => {
+ form.setValue(`items.${index}.itemCode`, material?.materialGroupCode || '');
+ form.setValue(`items.${index}.itemName`, material?.materialGroupDescription || '');
+ }}
+ placeholder="자재를 검색하세요..."
+ title="자재 선택"
+ description="원하는 자재를 검색하고 선택해주세요."
+ triggerVariant="outline"
+ />
+ </div>
+ </div>
+ <div className="grid grid-cols-2 gap-3">
{/* 수량 */}
<FormField
control={form.control}