Shopware: Steuerfreiheit und USt-IdNr

Wer sich schon mal bei Shopware damit auseinander setzen musste, wie die Einstellung "Deaktiviere Steuern wenn eine USt-IdNr. angegeben wurde" funktioniert, ist sicher schnell im Checkout-Controller und in der Methode isTaxFreeDelivery($userData) gelandet.
Leider ist diese Methode in einem Stil geschrieben, der sie meiner Meinung nach extrem schwer lesbar macht. Die wieder negierten emptys und vielen return sorgen dafür, dass man den dahinter steckten logischen Ausdruck nur schwer erkennt, wobei der an sich ziemlich einfach ist.
Alles ist wie man man erwartet nur das bei fehlender VatID in der Shipping-Address auch die Billing-Address "einspringen" kann, muss man sich mehrmals durch den Kopf gehen lassen.

Ich habe die Methode noch mal in für mich besser lesbarer Form nieder geschrieben:


$shippingCountryTaxFree = !empty($userData['additional']['countryShipping']['taxfree']);
$shippingCountryTaxFreeVatID = !empty($userData['additional']['countryShipping']['taxfree_ustid']);
$billingCountryTaxFreeVatID = !empty($userData['additional']['country']['taxfree_ustid']);

$shippingVatID = !empty($userData['shippingaddress']['ustid'];
$billingVatID = !empty($userData['billingaddress']['ustid'];

return $shippingCountryTaxFree
||
($shippingCountryTaxFreeVatID &&
(
(!$shippingVatID && billingVatID && billingCountryTaxFreeVatID)
||
$shippingVatID
)
);


Die Logik stammt aus der Version 5.3.5
User annonyme 2018-01-26 21:18

write comment:
Two + = 11

Möchtest Du AdSense-Werbung erlauben und mir damit helfen die laufenden Kosten des Blogs tragen zu können?