From 65d73a356783da12c9a8fc59418ccc615309e1ee Mon Sep 17 00:00:00 2001
From: Jaap Jansma <jaap.jansma@civicoop.org>
Date: Tue, 7 Aug 2018 16:51:33 +0200
Subject: [PATCH] Added denormalize value for default data

---
 Civi/FormProcessor/API/FormProcessorDefaults.php |  6 +++++-
 Civi/FormProcessor/Type/AbstractType.php         | 11 +++++++++++
 Civi/FormProcessor/Type/DateType.php             | 15 +++++++++++++++
 3 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/Civi/FormProcessor/API/FormProcessorDefaults.php b/Civi/FormProcessor/API/FormProcessorDefaults.php
index 225a29d..f4cba0f 100644
--- a/Civi/FormProcessor/API/FormProcessorDefaults.php
+++ b/Civi/FormProcessor/API/FormProcessorDefaults.php
@@ -184,7 +184,11 @@
 		
 		$return = array();
 		foreach($formProcessor['default_data_output_configuration'] as $field => $alias) {
-			$return[$field] = $dataBag->getDataByAlias($alias);
+      foreach($formProcessor['inputs'] as $input) {
+        if ($input['name'] == $field) {
+          $return[$field] = $input['type']->denormalizeValue($dataBag->getDataByAlias($alias));
+        }
+      }
 		}
 		return $return;
   }
diff --git a/Civi/FormProcessor/Type/AbstractType.php b/Civi/FormProcessor/Type/AbstractType.php
index 5611a83..88c2ba2 100644
--- a/Civi/FormProcessor/Type/AbstractType.php
+++ b/Civi/FormProcessor/Type/AbstractType.php
@@ -134,6 +134,17 @@
   public function normalizeValue($value) {
     return $value;
   }
+
+   /**
+    * Denormalize the input value.
+    *
+    * @param $value
+    *
+    * @return mixed
+    */
+   public function denormalizeValue($value) {
+     return $value;
+   }
 	
 	/**
 	 * @param ConfigurationBag $configuration
diff --git a/Civi/FormProcessor/Type/DateType.php b/Civi/FormProcessor/Type/DateType.php
index 02a09d2..16e4f7a 100644
--- a/Civi/FormProcessor/Type/DateType.php
+++ b/Civi/FormProcessor/Type/DateType.php
@@ -73,6 +73,21 @@
      }
      return $value;
    }
+
+   /**
+    * Denormalize the input value.
+    *
+    * @param $value
+    *
+    * @return mixed
+    */
+   public function denormalizeValue($value) {
+     if ($value) {
+       $date = new \DateTime($value);
+       return $date->format($this->configuration->get('format'));
+     }
+     return $value;
+   }
  	
 	/**
 	 * Validate the value
-- 
GitLab