import { useState } from 'react'; import { ImagePreviewModal } from '@/components/image-preview-modal'; import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@/components/ui/table'; import type { Purchase } from './columns'; function formatCurrency(amount: number): string { return new Intl.NumberFormat('id-ID', { style: 'currency', currency: 'IDR', minimumFractionDigits: 0, }).format(amount); } function formatNumber(num: number): string { return new Intl.NumberFormat('id-ID', { maximumFractionDigits: 4, }).format(num); } function formatDateTime(dateString: string): string { const date = new Date(dateString); return date.toLocaleDateString('id-ID', { day: '2-digit', month: 'short', year: 'numeric', hour: '2-digit', minute: '2-digit', }); } function VariantPhotoPreview({ url, title }: { url: string; title: string }) { const [open, setOpen] = useState(false); return ( <> ); } export function PurchaseItemSubRow({ purchase, }: { purchase: Purchase; }) { const items = purchase.purchase_items ?? []; const unit = items[0]?.raw_material_price?.raw_material?.unit ?? ''; return (
No Foto Varian Harga Qty Subtotal {items.length === 0 ? ( Tidak ada item. ) : ( items.map((item, index) => ( {index + 1} {item.raw_material_price?.photo_url ? ( ) : (
N/A
)}
{item.raw_material_price?.variant ?? '-'} {formatCurrency(item.unit_price)} {formatNumber(item.quantity)} {unit} {formatCurrency(item.subtotal)}
)) )}
); }