From 37700d01171bcecb448f00eaacea1c4d5d626672 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Patrick=20M=C3=BCller?= <p.mueller@pcsg.de>
Date: Wed, 18 Sep 2019 15:46:15 +0200
Subject: [PATCH] fix: ShippingTimePeriod->cleanup quiqqer/shipping#18

---
 .../Products/Fields/ShippingTimePeriod.php       | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/QUI/ERP/Shipping/Products/Fields/ShippingTimePeriod.php b/src/QUI/ERP/Shipping/Products/Fields/ShippingTimePeriod.php
index 952f886..f13b9ae 100644
--- a/src/QUI/ERP/Shipping/Products/Fields/ShippingTimePeriod.php
+++ b/src/QUI/ERP/Shipping/Products/Fields/ShippingTimePeriod.php
@@ -66,13 +66,27 @@ public function validate($value)
      */
     public function cleanup($value)
     {
-        $value        = parent::cleanup($value);
         $defaultValue = $this->getDefaultValueFromConfig();
 
         if (empty($value)) {
             return $defaultValue;
         }
 
+        if (!\is_string($value) && !\is_array($value)) {
+            return $defaultValue;
+        }
+
+        if (\is_string($value)) {
+            $value = \json_decode($value, true);
+
+            if (\json_last_error() !== \JSON_ERROR_NONE) {
+                return $defaultValue;
+            }
+        }
+
+        $value['from'] = (int)$value['from'];
+        $value['to']   = (int)$value['to'];
+
         switch ($value['option']) {
             case self::OPTION_TIMEPERIOD:
             case self::OPTION_UNAVAILABLE:
-- 
GitLab