import React from 'react'; import { Dialog, DialogTitle, DialogContent, DialogActions, Button, Typography, Box, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Paper } from '@mui/material'; const OrderDetailsDialog = ({ open, onClose, order }) => { if (!order) { return null; } const currencyFormatter = new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }); const handleCancelOrder = () => { // Implement order cancellation logic here console.log(`Cancel order: ${order.orderId}`); onClose(); // Close the dialog after action }; const subtotal = order.items.reduce((acc, item) => acc + item.price * item.quantity_ordered, 0); const total = subtotal + order.delivery_cost; // 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 ( Bestelldetails: {order.orderId} Lieferadresse {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} Rechnungsadresse {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 */} Bestelldetails Lieferart: {order.deliveryMethod || order.delivery_method || 'Nicht angegeben'} Zahlungsart: {order.paymentMethod || order.payment_method || 'Nicht angegeben'} Bestellte Artikel Artikel Menge Preis Gesamt {order.items.map((item) => ( {item.name} {item.quantity_ordered} {currencyFormatter.format(item.price)} {currencyFormatter.format(item.price * item.quantity_ordered)} ))} Gesamtnettopreis {currencyFormatter.format(vatCalculations.totalNet)} {vatCalculations.vat7 > 0 && ( 7% Mehrwertsteuer {currencyFormatter.format(vatCalculations.vat7)} )} {vatCalculations.vat19 > 0 && ( 19% Mehrwertsteuer {currencyFormatter.format(vatCalculations.vat19)} )} Zwischensumme {currencyFormatter.format(subtotal)} Lieferkosten {currencyFormatter.format(order.delivery_cost)} Gesamtsumme {currencyFormatter.format(total)}
{order.status === 'new' && ( )}
); }; export default OrderDetailsDialog;