diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-10-15 12:52:11 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-10-15 12:52:11 +0000 |
| commit | b54f6f03150dd78d86db62201b6386bf14b72394 (patch) | |
| tree | b3092bb34805fdc65eee5282e86a9fb90ba20d6e /lib/rfq-last/table/rfq-table-toolbar-actions.tsx | |
| parent | c1bd1a2f499ee2f0742170021b37dab410983ab7 (diff) | |
(대표님) 커버, 데이터룸, 파일매니저, 담당자할당 등
Diffstat (limited to 'lib/rfq-last/table/rfq-table-toolbar-actions.tsx')
| -rw-r--r-- | lib/rfq-last/table/rfq-table-toolbar-actions.tsx | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/lib/rfq-last/table/rfq-table-toolbar-actions.tsx b/lib/rfq-last/table/rfq-table-toolbar-actions.tsx index 7d48f5a4..00c41402 100644 --- a/lib/rfq-last/table/rfq-table-toolbar-actions.tsx +++ b/lib/rfq-last/table/rfq-table-toolbar-actions.tsx @@ -36,17 +36,27 @@ export function RfqTableToolbarActions<TData>({ // 선택된 RFQ의 ID와 코드 추출 const selectedRfqData = React.useMemo(() => { const rows = selectedRows.map(row => row.original as RfqsLastView); + const assignableRows = rows.filter(row => + row.rfqCode?.startsWith("I") && + (row.status === "RFQ 생성" || row.status === "구매담당지정") + ); + return { ids: rows.map(row => row.id), codes: rows.map(row => row.rfqCode || ""), + statuses: rows.map(row => row.status || ""), // "I"로 시작하는 ITB만 필터링 itbCount: rows.filter(row => row.rfqCode?.startsWith("I")).length, - totalCount: rows.length + totalCount: rows.length, + // 담당자 지정 가능한 ITB (상태가 "RFQ 생성" 또는 "구매담당지정"인 ITB) + assignableItbCount: assignableRows.length, + assignableIds: assignableRows.map(row => row.id), + assignableCodes: assignableRows.map(row => row.rfqCode || "") }; }, [selectedRows]); - // 담당자 지정 가능 여부 체크 ("I"로 시작하는 항목이 있는지) - const canAssignPic = selectedRfqData.itbCount > 0; + // 담당자 지정 가능 여부 체크 (상태가 "RFQ 생성" 또는 "구매담당지정"인 ITB가 있는지) + const canAssignPic = selectedRfqData.assignableItbCount > 0; const handleAssignSuccess = () => { // 테이블 선택 초기화 @@ -76,15 +86,15 @@ export function RfqTableToolbarActions<TData>({ <Users className="h-4 w-4" /> 담당자 지정 <Badge variant="secondary" className="ml-1"> - {selectedRfqData.itbCount}건 + {selectedRfqData.assignableItbCount}건 </Badge> </Button> </TooltipTrigger> <TooltipContent> <p>선택한 ITB에 구매 담당자를 지정합니다</p> - {selectedRfqData.itbCount !== selectedRfqData.totalCount && ( + {selectedRfqData.assignableItbCount !== selectedRfqData.itbCount && ( <p className="text-xs text-muted-foreground mt-1"> - 전체 {selectedRfqData.totalCount}건 중 ITB {selectedRfqData.itbCount}건만 지정됩니다 + 전체 ITB {selectedRfqData.itbCount}건 중 {selectedRfqData.assignableItbCount}건만 지정 가능합니다 </p> )} </TooltipContent> @@ -103,7 +113,7 @@ export function RfqTableToolbarActions<TData>({ </Badge> {selectedRfqData.totalCount !== selectedRfqData.itbCount && ( <Badge variant="outline" className="text-xs"> - ITB {selectedRfqData.itbCount}건 + ITB {selectedRfqData.itbCount}건 (지정가능 {selectedRfqData.assignableItbCount}건) </Badge> )} </div> @@ -139,8 +149,8 @@ export function RfqTableToolbarActions<TData>({ <RfqAssignPicDialog open={showAssignDialog} onOpenChange={setShowAssignDialog} - selectedRfqIds={selectedRfqData.ids} - selectedRfqCodes={selectedRfqData.codes} + selectedRfqIds={selectedRfqData.assignableIds} + selectedRfqCodes={selectedRfqData.assignableCodes} onSuccess={handleAssignSuccess} /> </> |
