diff --git a/src/components/manifest/ManifestFormLine.jsx b/src/components/manifest/ManifestFormLine.jsx index caf8704..04e4ee3 100644 --- a/src/components/manifest/ManifestFormLine.jsx +++ b/src/components/manifest/ManifestFormLine.jsx @@ -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 */} + 0 && effectiveMarge != null ? ` ยท Nach ${rebate}% Rabatt: ${effectiveMarge.toFixed(1).replace('.', ',')}%` : ''}` + : 'Kein EK- oder VK-Preis hinterlegt' + } + > + + Marge: {marge != null ? `${Math.floor(marge)}%` : 'โ€”'} + + + {/* EK Netto */} 0 && priceNet != null && Number.isFinite(priceNetNum) + ? ((vkNettoNum - priceNetNum) / vkNettoNum) * 100 + : null; + return ( + {/* Marge */} + {margeDelivery != null && ( + + + Marge: {Math.floor(margeDelivery)}% + + + )} + {priceNet != null && (