import { Fragment } from 'react'; import { ImagePreviewButton } from '@/components/dialogs'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@/components/ui/table'; import { formatNumber } from '@/lib/format'; import { formatCurrency } from '@/lib/utils'; import type { Restock } from './columns'; export function RestockItemSubRow({ restock }: { restock: Restock }) { const items = restock.restock_items ?? []; const groupedByProduct = items.reduce( (acc, item) => { const name = item.product_variant?.product?.name ?? 'Tanpa Produk'; if (!acc[name]) { acc[name] = []; } acc[name].push(item); return acc; }, {} as Record, ); let counter = 0; return (
No Foto Varian Harga Modal Qty Subtotal {items.length === 0 ? ( Tidak ada item. ) : ( Object.entries(groupedByProduct).map( ([productName, groupItems]) => { const totalQty = groupItems.reduce( (sum, item) => sum + (item.quantity ?? 0), 0, ); const totalSubtotal = groupItems.reduce( (sum, item) => sum + (item.subtotal ?? 0), 0, ); return ( {productName} {formatNumber(totalQty)} {formatCurrency(totalSubtotal)} {groupItems.map((item) => { counter++; return ( {counter} {item.product_variant ?.photo_url ? ( ) : (
N/A
)}
{item.product_variant ?.name ?? '-'} {formatCurrency( item.unit_price, )} {formatNumber( item.quantity, )} {formatCurrency( item.subtotal, )}
); })}
); }, ) )}
); }