import React from 'react'; import Box from '@mui/material/Box'; import Typography from '@mui/material/Typography'; import Table from '@mui/material/Table'; import TableBody from '@mui/material/TableBody'; import TableCell from '@mui/material/TableCell'; import TableRow from '@mui/material/TableRow'; import { useTranslation } from 'react-i18next'; const OrderSummary = ({ deliveryCost, cartItems = [] }) => { const { t } = useTranslation(); const currencyFormatter = new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }); // Calculate VAT breakdown for cart items (similar to CartDropdown) const cartVatCalculations = cartItems.reduce((acc, item) => { const totalItemPrice = item.price * item.quantity; 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 }); // Calculate shipping VAT (19% VAT for shipping costs) - only if there are shipping costs const shippingNetPrice = deliveryCost > 0 ? deliveryCost / (1 + 19 / 100) : 0; const shippingVat = deliveryCost > 0 ? deliveryCost - shippingNetPrice : 0; // Combine totals - add shipping VAT to the 19% VAT total const totalVat7 = cartVatCalculations.vat7; const totalVat19 = cartVatCalculations.vat19 + shippingVat; const totalGross = cartVatCalculations.totalGross + deliveryCost; return ( {t ? t('cart.summary.title') : 'Bestellübersicht'} {t ? t('cart.summary.goodsNet') : 'Waren (netto):'} {currencyFormatter.format(cartVatCalculations.totalNet)} {deliveryCost > 0 && ( {t ? t('cart.summary.shippingNet') : 'Versandkosten (netto):'} {currencyFormatter.format(shippingNetPrice)} )} {totalVat7 > 0 && ( {t ? t('tax.vat7') : '7% Mehrwertsteuer'}: {currencyFormatter.format(totalVat7)} )} {totalVat19 > 0 && ( {t ? t('tax.vat19WithShipping') : '19% Mehrwertsteuer (inkl. Versand)'}: {currencyFormatter.format(totalVat19)} )} {t ? t('cart.summary.totalGoods') : 'Gesamtsumme Waren:'} {currencyFormatter.format(cartVatCalculations.totalGross)} {t ? t('cart.summary.shippingCosts') : 'Versandkosten:'} {deliveryCost === 0 && cartVatCalculations.totalGross < 100 && ( {t ? t('cart.summary.freeFrom100') : '(kostenlos ab 100€)'} )} {deliveryCost === 0 ? ( {t ? t('cart.summary.free') : 'kostenlos'} ) : ( currencyFormatter.format(deliveryCost) )} {t ? t('cart.summary.total') : 'Gesamtsumme:'} {currencyFormatter.format(totalGross)}
); }; export default OrderSummary;