'use client' import React from 'react' import { Card, CardHeader, CardContent, Typography, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Box, Button, IconButton } from '@mui/material' import Grid from '@mui/material/Grid2' import { PurchaseOrder } from '@/types/services/purchaseOrder' interface Props { data?: PurchaseOrder } const PurchaseDetailInformation = ({ data }: Props) => { const purchaseOrder = data // Helper functions const formatDate = (dateString: string): string => { const date = new Date(dateString) return date.toLocaleDateString('id-ID', { day: '2-digit', month: '2-digit', year: 'numeric' }) } const formatCurrency = (amount: number): string => { return new Intl.NumberFormat('id-ID').format(amount) } const getStatusLabel = (status: string): string => { const statusMap: Record = { draft: 'Draft', sent: 'Dikirim', approved: 'Disetujui', received: 'Diterima', cancelled: 'Dibatalkan' } return statusMap[status] || status } const getStatusColor = (status: string): 'error' | 'success' | 'warning' | 'info' | 'default' => { const colorMap: Record = { draft: 'default', sent: 'warning', approved: 'success', received: 'info', cancelled: 'error' } return colorMap[status] || 'info' } // Calculations const totalQuantity = (purchaseOrder?.items ?? []).reduce((sum, item) => sum + (item?.quantity ?? 0), 0) const total = (purchaseOrder?.items ?? []).reduce((sum, item) => sum + (item?.amount ?? 0) * item?.quantity, 0) return ( {getStatusLabel(purchaseOrder?.status ?? '')} } /> {/* Purchase Information */} Vendor {purchaseOrder?.vendor?.name ?? ''} Tgl. Transaksi {formatDate(purchaseOrder?.transaction_date ?? '')} Nomor {purchaseOrder?.po_number} Tgl. Jatuh Tempo {formatDate(purchaseOrder?.due_date ?? '')} {/* Products Table */} Produk Deskripsi Kuantitas Satuan Harga Jumlah {(purchaseOrder?.items ?? []).map((item, index) => { return ( {item.ingredient.name} {item.description} {item.quantity} {item.unit.name} {formatCurrency(item.amount)} {formatCurrency(item.amount * item.quantity)} ) })} {/* Total Quantity Row */} Total Kuantitas {totalQuantity}
{/* Summary Section */} {/* Empty space for left side */} Total {formatCurrency(total)}
) } export default PurchaseDetailInformation