From 93958e873d1a712dddb1f46693e6d80a52ff2c0e Mon Sep 17 00:00:00 2001
From: Henning Leutz <leutz@pcsg.de>
Date: Mon, 12 Aug 2019 10:38:32 +0200
Subject: [PATCH] feat: set shipping address

---
 src/QUI/ERP/Shipping/EventHandler.php          | 10 +++++++---
 src/QUI/ERP/Shipping/Order/ShippingAddress.php |  7 ++++---
 src/QUI/ERP/Shipping/Shipping.php              | 11 ++++-------
 3 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/src/QUI/ERP/Shipping/EventHandler.php b/src/QUI/ERP/Shipping/EventHandler.php
index 97d062b..d1f6380 100644
--- a/src/QUI/ERP/Shipping/EventHandler.php
+++ b/src/QUI/ERP/Shipping/EventHandler.php
@@ -210,8 +210,12 @@ public static function onQuiqqerOrderCustomerDataSave(
             return;
         }
 
-        $Order->setData('shipping-address', $Address->getAttributes());
-        $Order->setData('shipping-address-id', $Address->getId());
+
+        $ErpAddress = new QUI\ERP\Address(
+            \array_merge($Address->getAttributes(), ['id' => $Address->getId()])
+        );
+
+        $Order->setDeliveryAddress($ErpAddress);
         $Order->save();
     }
 
@@ -293,7 +297,7 @@ public static function onOrderConfirmationEnd(
                 $Engine->fetch(dirname(__FILE__).'/Mails/orderConfirmation.html')
             );
         } catch (QUI\Exception $Exception) {
-            QUI\System\Log::writeDebugException($Exception);;
+            QUI\System\Log::writeDebugException($Exception);
         }
     }
 }
diff --git a/src/QUI/ERP/Shipping/Order/ShippingAddress.php b/src/QUI/ERP/Shipping/Order/ShippingAddress.php
index 2c05049..f085670 100644
--- a/src/QUI/ERP/Shipping/Order/ShippingAddress.php
+++ b/src/QUI/ERP/Shipping/Order/ShippingAddress.php
@@ -73,10 +73,11 @@ public function getBody()
 
         // current address
         $currentAddress  = '';
-        $shippingAddress = $Order->getDataEntry('shipping-address-id');
+        $Shipping        = QUI\ERP\Shipping\Shipping::getInstance()->getShippingByObject($Order);
+        $ShippingAddress = $Shipping->getAddress();
 
-        if (!empty($shippingAddress)) {
-            $currentAddress = $shippingAddress;
+        if ($ShippingAddress) {
+            $currentAddress = $ShippingAddress->getId();
         } elseif ($User->getAttribute('quiqqer.delivery.address')) {
             $currentAddress = $User->getAttribute('quiqqer.delivery.address');
         }
diff --git a/src/QUI/ERP/Shipping/Shipping.php b/src/QUI/ERP/Shipping/Shipping.php
index 8301a8d..5c51416 100644
--- a/src/QUI/ERP/Shipping/Shipping.php
+++ b/src/QUI/ERP/Shipping/Shipping.php
@@ -307,16 +307,13 @@ public function getShippingByObject($Object)
             return null;
         }
 
-        $Shipping    = $Object->getShipping();
-        $addressData = $Object->getDataEntry('shipping-address');
+        $Shipping = $Object->getShipping();
+        $Delivery = $Object->getDeliveryAddress();
 
-        if ($addressData) {
-            $Shipping->setAddress(
-                new QUI\ERP\Address($addressData)
-            );
+        if ($Delivery) {
+            $Shipping->setAddress($Delivery);
         }
 
-
         return $Shipping;
     }
 
-- 
GitLab