summaryrefslogtreecommitdiff
path: root/lib/vendor-document-list/ship/enhanced-documents-table.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'lib/vendor-document-list/ship/enhanced-documents-table.tsx')
-rw-r--r--lib/vendor-document-list/ship/enhanced-documents-table.tsx32
1 files changed, 26 insertions, 6 deletions
diff --git a/lib/vendor-document-list/ship/enhanced-documents-table.tsx b/lib/vendor-document-list/ship/enhanced-documents-table.tsx
index 5b3b392d..13f8f8d4 100644
--- a/lib/vendor-document-list/ship/enhanced-documents-table.tsx
+++ b/lib/vendor-document-list/ship/enhanced-documents-table.tsx
@@ -69,7 +69,7 @@ export function SimplifiedDocumentsTable({
const statsData = React.useMemo(() => statsResult as Awaited<ReturnType<typeof getUserVendorDocumentStats>>, [statsResult])
const { data, pageCount, drawingKind } = documentData
- const { primaryDrawingKind, b4Stats: serverB4Stats, projectCodeStats: serverProjectCodeStats } = statsData
+ const { primaryDrawingKind, projectCodeStats: serverProjectCodeStats, projectB4Stats: serverProjectB4Stats } = statsData
// ๐Ÿ”ฅ URL searchParams๋ฅผ ํ†ตํ•œ ํ•„ํ„ฐ ์ƒํƒœ ๊ด€๋ฆฌ
const [{ b4FilterType, projectCode, page }, setQueryStates] = useQueryStates(
@@ -282,11 +282,31 @@ export function SimplifiedDocumentsTable({
return activeDrawingKind ? DRAWING_KIND_INFO[activeDrawingKind] : null
}, [activeDrawingKind])
- // ๐Ÿ”ฅ B4 ๋ฌธ์„œ ํ†ต๊ณ„ - ์„œ๋ฒ„์—์„œ ๋ฐ›์•„์˜จ ์ „์ฒด ํ†ต๊ณ„ ์‚ฌ์šฉ
+ // ๐Ÿ”ฅ B4 ๋ฌธ์„œ ํ†ต๊ณ„ - ํ”„๋กœ์ ํŠธ ํ•„ํ„ฐ๋ง์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ๊ณ„์‚ฐ (์„œ๋ฒ„์—์„œ ๋ฐ›์•„์˜จ ์ „์ฒด ํ†ต๊ณ„ ๊ธฐ๋ฐ˜)
const b4Stats = React.useMemo(() => {
- if (!hasB4Documents || !serverB4Stats) return null
- return serverB4Stats
- }, [hasB4Documents, serverB4Stats])
+ if (!hasB4Documents || !serverProjectB4Stats) return null
+
+ // ์„ ํƒ๋œ ํ”„๋กœ์ ํŠธ์— ๋”ฐ๋ผ B4 ํ†ต๊ณ„ ๊ณ„์‚ฐ
+ if (projectCode === 'all') {
+ // ์ „์ฒด ํ”„๋กœ์ ํŠธ์˜ B4 ํ†ต๊ณ„
+ const totalGttDeliverable = serverProjectB4Stats.reduce((sum, stat) => sum + stat.gttDeliverableCount, 0)
+ const totalShiInput = serverProjectB4Stats.reduce((sum, stat) => sum + stat.shiInputCount, 0)
+ return {
+ gttDeliverableCount: totalGttDeliverable,
+ shiInputCount: totalShiInput,
+ }
+ } else {
+ // ํŠน์ • ํ”„๋กœ์ ํŠธ์˜ B4 ํ†ต๊ณ„
+ const projectStats = serverProjectB4Stats.find(stat => stat.code === projectCode)
+ return projectStats ? {
+ gttDeliverableCount: projectStats.gttDeliverableCount,
+ shiInputCount: projectStats.shiInputCount,
+ } : {
+ gttDeliverableCount: 0,
+ shiInputCount: 0,
+ }
+ }
+ }, [hasB4Documents, serverProjectB4Stats, projectCode])
return (
<div className="w-full space-y-4">
@@ -325,7 +345,7 @@ export function SimplifiedDocumentsTable({
<span>All Projects</span>
</div>
</SelectItem>
- {projectCodeStats.filter(({ code }) => code !== 'Unknown').map(({ code, count }) => (
+ {projectCodeStats.filter(({ code }) => code !== 'Unknown').map(({ code }) => (
<SelectItem key={code} value={code}>
<div className="flex items-center justify-between w-full">
<span className="font-mono">{code}</span>