import React from 'react'; import { Dialog, DialogTitle, DialogContent, DialogActions, Button, Typography, Box, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Paper } from '@mui/material'; import { useTranslation } from 'react-i18next'; const OrderDetailsDialog = ({ open, onClose, order }) => { const { t } = useTranslation(); if (!order) { return null; } const currencyFormatter = new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }); // Helper function to translate payment methods const getPaymentMethodDisplay = (paymentMethod) => { if (!paymentMethod) return t('orders.details.notSpecified'); switch (paymentMethod.toLowerCase()) { case 'wire': return t('payment.methods.bankTransfer'); default: return paymentMethod; } }; const handleCancelOrder = () => { // Implement order cancellation logic here console.log(`Cancel order: ${order.orderId}`); onClose(); // Close the dialog after action }; const total = order.items.reduce((acc, item) => acc + item.price * item.quantity_ordered, 0); // Calculate VAT breakdown similar to CartDropdown const vatCalculations = order.items.reduce((acc, item) => { const totalItemPrice = item.price * item.quantity_ordered; const netPrice = totalItemPrice / (1 + item.vat / 100); const vatAmount = totalItemPrice - netPrice; acc.totalGross += totalItemPrice; acc.totalNet += netPrice; if (item.vat === 7) { acc.vat7 += vatAmount; } else if (item.vat === 19) { acc.vat19 += vatAmount; } return acc; }, { totalGross: 0, totalNet: 0, vat7: 0, vat19: 0 }); return ( {t('orders.details.title', { orderId: order.orderId })} {t('orders.details.deliveryAddress')} {order.shipping_address_name} {order.shipping_address_street} {order.shipping_address_house_number} {order.shipping_address_postal_code} {order.shipping_address_city} {order.shipping_address_country} {t('orders.details.invoiceAddress')} {order.invoice_address_name} {order.invoice_address_street} {order.invoice_address_house_number} {order.invoice_address_postal_code} {order.invoice_address_city} {order.invoice_address_country} {/* Order Details Section */} {t('orders.details.orderDetails')} {t('orders.details.deliveryMethod')} {order.deliveryMethod || order.delivery_method || t('orders.details.notSpecified')} {t('orders.details.paymentMethod')} {getPaymentMethodDisplay(order.paymentMethod || order.payment_method)} {t('orders.details.orderedItems')} {t('orders.details.item')} {t('orders.details.quantity')} {t('orders.details.price')} {t('product.vatShort')} {t('orders.details.total')} {order.items.map((item) => ( {item.name} {item.quantity_ordered} {currencyFormatter.format(item.price)} {item.vat}% {currencyFormatter.format(item.price * item.quantity_ordered)} ))} {t ? t('tax.totalNet') : 'Gesamtnettopreis'} {currencyFormatter.format(vatCalculations.totalNet)} {vatCalculations.vat7 > 0 && ( {t ? t('tax.vat7') : '7% Mehrwertsteuer'} {currencyFormatter.format(vatCalculations.vat7)} )} {vatCalculations.vat19 > 0 && ( {t ? t('tax.vat19') : '19% Mehrwertsteuer'} {currencyFormatter.format(vatCalculations.vat19)} )} {t ? t('cart.summary.total') : 'Gesamtsumme'} {currencyFormatter.format(total)}
{order.status === 'new' && ( )}
); }; export default OrderDetailsDialog;