diff --git a/locale.xml b/locale.xml index 9e2fc83ba356dbf33fecfcc41a7150df0f3ecbf8..12b2fb5f1dcb2e64405dbdf86a5d8e1931b15605 100644 --- a/locale.xml +++ b/locale.xml @@ -571,6 +571,11 @@ <de><![CDATA[Versendet]]></de> <en><![CDATA[Sent]]></en> </locale> + + <locale name="shipping.plus"> + <de><![CDATA[zzgl.]]></de> + <en><![CDATA[plus]]></en> + </locale> </groups> diff --git a/src/QUI/ERP/Shipping/Types/ShippingEntry.php b/src/QUI/ERP/Shipping/Types/ShippingEntry.php index cbd7e8aeed53a1b9885d05c9a32ddbf9c8a927cc..614b8f239bacc9d30c5e485bee57bc4cebfa014a 100644 --- a/src/QUI/ERP/Shipping/Types/ShippingEntry.php +++ b/src/QUI/ERP/Shipping/Types/ShippingEntry.php @@ -224,7 +224,32 @@ public function getPriceDisplay(): string $Price = new QUI\ERP\Money\Price($price, $DefaultCurrency); } - return '+' . $Price->getDisplayPrice(); + if (!$price) { + return ''; + } + + $numberAsString = strval($price); + $exploded = explode('.', $numberAsString); + $numberOfDecimalPlaces = isset($exploded[1]) ? strlen($exploded[1]) : 0; + + $priceStringTitle = ''; + $priceStringTitle .= QUI::getLocale()->get('quiqqer/shipping', 'shipping.plus'); + $priceStringTitle .= ' '; + $priceStringTitle .= $Price->getDisplayPrice(); + + $priceString = $priceStringTitle; + + if ($numberOfDecimalPlaces > 4) { + $priceRounded = round($price, 4); + $PriceDisplay = new QUI\ERP\Money\Price($priceRounded, $Price->getCurrency()); + + $priceString = ''; + $priceString .= QUI::getLocale()->get('quiqqer/shipping', 'shipping.plus'); + $priceString .= ' ~'; + $priceString .= $PriceDisplay->getDisplayPrice(); + } + + return '<span title="' . $priceStringTitle . '">' . $priceString . '</span>'; } /**