This commit is contained in:
seb
2026-10-18 21:29:13 +02:00
parent abd40ff4fe
commit 0a9deac0da

View File

@@ -578,6 +578,23 @@ class ManifestFormLine extends PureComponent {
? Math.round((ekNetto * (1 + Number(ekTaxRate) / 100) + Number.EPSILON) * 100) / 100
: null;
const marge =
vkNetto > 0 && ekNetto != null
? ((vkNetto - ekNetto) / vkNetto) * 100
: vkBrutto > 0 && ekBrutto != null
? ((vkBrutto - ekBrutto) / vkBrutto) * 100
: null;
const rebate = parseNum(this.props.line?.rebate) ?? 0;
const effectiveNet =
vkNetto != null && Number.isFinite(vkNetto)
? vkNetto * (1 - rebate / 100)
: null;
const effectiveMarge =
effectiveNet != null && effectiveNet > 0 && ekNetto != null
? ((effectiveNet - ekNetto) / effectiveNet) * 100
: null;
const hasPriceInfo =
vkNetto != null || vkBrutto != null || ekNetto != null || ekBrutto != null || kind === 'quote' || kind === 'order';
@@ -697,6 +714,26 @@ class ManifestFormLine extends PureComponent {
whiteSpace: 'nowrap',
}}
>
{/* Marge */}
<Tooltip
title={
marge != null
? `Marge: ${marge.toFixed(1).replace('.', ',')}% (EK Netto ${formatPrice(ekNetto)} → VK Netto ${formatPrice(vkNetto)})${rebate > 0 && effectiveMarge != null ? ` · Nach ${rebate}% Rabatt: ${effectiveMarge.toFixed(1).replace('.', ',')}%` : ''}`
: 'Kein EK- oder VK-Preis hinterlegt'
}
>
<Typography
variant="caption"
fontWeight={600}
sx={{
color: marge != null ? (marge < 0 ? 'error.main' : 'text.secondary') : 'text.disabled',
fontSize: '0.72rem',
}}
>
Marge: {marge != null ? `${Math.floor(marge)}%` : '—'}
</Typography>
</Tooltip>
{/* EK Netto */}
<Tooltip
title={
@@ -867,6 +904,13 @@ class ManifestFormLine extends PureComponent {
: null)
: null;
const priceNetNum = Number(priceNet);
const vkNettoNum = Number(vkNetto);
const margeDelivery =
vkNettoNum > 0 && priceNet != null && Number.isFinite(priceNetNum)
? ((vkNettoNum - priceNetNum) / vkNettoNum) * 100
: null;
return (
<Box
sx={{
@@ -1007,6 +1051,24 @@ class ManifestFormLine extends PureComponent {
whiteSpace: 'nowrap',
}}
>
{/* Marge */}
{margeDelivery != null && (
<Tooltip
title={`Marge: ${margeDelivery.toFixed(1).replace('.', ',')}% (EK Netto ${formatPrice(priceNet)} → VK Netto ${formatPrice(vkNetto)})`}
>
<Typography
variant="caption"
fontWeight={600}
sx={{
color: margeDelivery < 0 ? 'error.main' : 'text.secondary',
fontSize: '0.72rem',
}}
>
Marge: {Math.floor(margeDelivery)}%
</Typography>
</Tooltip>
)}
{priceNet != null && (
<Typography
variant="caption"