diff --git a/entity/CampaignStep_entity/entityfields/date_end/onValidation.js b/entity/CampaignStep_entity/entityfields/date_end/onValidation.js
index 746e1031c03918a3d99596bfcc05227fddca074e..64e94f87c19545092b85dd400847f342bf7aac70 100644
--- a/entity/CampaignStep_entity/entityfields/date_end/onValidation.js
+++ b/entity/CampaignStep_entity/entityfields/date_end/onValidation.js
@@ -1,21 +1,14 @@
-import("system.logging");
+import("system.neon");
 import("system.result");
+import("system.vars");
 import("Date_lib");
 import("Entity_lib");
-import("system.vars");
-import("system.neon");
 
-var dateStart = vars.get("$field.DATE_START");
-var dateEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.DATE_END"));
+var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.DATE_END"));
 
-logging.log("DATE_END onValidation -> dateStart: " + dateStart);
-logging.log("DATE_END onValidation -> dateEnd:" + dateEnd);
-logging.log("is dateStart > dateEnd? -> " + (dateStart > dateEnd));
-if (dateStart > dateEnd)
+if (DateUtils.validateBeginnBeforeEnd(vars.get("$field.DATE_START"), cEnd) === false)
     result.string(DateUtils.getValidationFailString());
 else
     {
-        logging.log("jetzt wird date_start refresht -> ");
         neon.refresh(["$field.DATE_START"]);
-        
     }
\ No newline at end of file
diff --git a/entity/CampaignStep_entity/entityfields/date_end/valueProcess.js b/entity/CampaignStep_entity/entityfields/date_end/valueProcess.js
index 575359740ee89ca6d4d8a8d1a17cbb2b450a3294..bf2e43999c9b27b5744089cb8d88ec10e1c5feed 100644
--- a/entity/CampaignStep_entity/entityfields/date_end/valueProcess.js
+++ b/entity/CampaignStep_entity/entityfields/date_end/valueProcess.js
@@ -6,5 +6,5 @@ import("system.datetime");
 var threeWeeks = datetime.ONE_WEEK * 3;
 var inThreeWeeks = datetime.date() + threeWeeks;
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
     result.string(inThreeWeeks);
\ No newline at end of file
diff --git a/entity/CampaignStep_entity/entityfields/date_start/onValidation.js b/entity/CampaignStep_entity/entityfields/date_start/onValidation.js
index 7c937ac09f52cb28fff5ba2384a79bd6ef7f3aac..83a6fd0a8f608b725d4f9118179bf7e5c571635a 100644
--- a/entity/CampaignStep_entity/entityfields/date_start/onValidation.js
+++ b/entity/CampaignStep_entity/entityfields/date_start/onValidation.js
@@ -1,14 +1,14 @@
-import("system.logging");
+import("system.neon");
 import("system.result");
+import("system.vars");
 import("Date_lib");
 import("Entity_lib");
-import("system.vars");
 
-var dateStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.DATE_START"));
-var dateEnd = vars.get("$field.DATE_END");
+var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.DATE_START"));
 
-logging.log("DATE_START onValidation -> dateStart: " + dateStart);
-logging.log("DATE_START onValidation -> dateEnd:" + dateEnd);
-logging.log("is dateStart > dateEnd? -> " + (dateStart > dateEnd));
-if (dateStart > dateEnd)
-    result.string(DateUtils.getValidationFailString());
\ No newline at end of file
+if (DateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.DATE_END")) === false)
+    result.string(DateUtils.getValidationFailString());
+else
+    {
+        neon.refresh(["$field.DATE_END"]);
+    }
\ No newline at end of file
diff --git a/entity/CampaignStep_entity/entityfields/date_start/valueProcess.js b/entity/CampaignStep_entity/entityfields/date_start/valueProcess.js
index ddb9ac943c20abaad01aefa4f01676f92e7aa312..6c4d90c5547a2a1e3e3fd37eb7492535b79edacd 100644
--- a/entity/CampaignStep_entity/entityfields/date_start/valueProcess.js
+++ b/entity/CampaignStep_entity/entityfields/date_start/valueProcess.js
@@ -1,10 +1,11 @@
-import("system.logging");
+import("Date_lib");
 import("system.neon");
 import("system.vars");
 import("system.result");
     
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$field.DATE_START") == "")
-    {
-        logging.log("DATE_START valueProcess -> neues Datum wird gesetzt");
-        result.string(vars.get("$sys.date"));
-    }
\ No newline at end of file
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$field.DATE_START"))
+{
+    result.string(DateUtils.getTodayUTC());
+}
+else
+    result.string(vars.get("$this.value"));
\ No newline at end of file
diff --git a/entity/Contract_entity/Contract_entity.aod b/entity/Contract_entity/Contract_entity.aod
index 5d170ecd647436e671773ec53533b4155c18ccca..fcac2f5cbf4f5775864bc6845a0244bee4d86ea1 100644
--- a/entity/Contract_entity/Contract_entity.aod
+++ b/entity/Contract_entity/Contract_entity.aod
@@ -49,6 +49,7 @@
       <contentType>DATE</contentType>
       <resolution>DAY</resolution>
       <outputFormat>dd.MM.yyyy</outputFormat>
+      <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractstart/valueProcess.js</valueProcess>
       <onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractstart/onValidation.js</onValidation>
       <onValueChange>%aditoprj%/entity/Contract_entity/entityfields/contractstart/onValueChange.js</onValueChange>
     </entityField>
diff --git a/entity/Contract_entity/entityfields/contractend/onValidation.js b/entity/Contract_entity/entityfields/contractend/onValidation.js
index c2b570b75775ae1f669ba1a8e7ad9b716e17f2eb..9cfd6fc2f89a9472d2f9822573964a58640e6966 100644
--- a/entity/Contract_entity/entityfields/contractend/onValidation.js
+++ b/entity/Contract_entity/entityfields/contractend/onValidation.js
@@ -1,7 +1,6 @@
 import("system.result");
 import("system.vars");
 import("Date_lib");
-import("Util_lib");
 import("Entity_lib");
 
 var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTRACTEND"));
diff --git a/entity/Contract_entity/entityfields/contractstart/onValidation.js b/entity/Contract_entity/entityfields/contractstart/onValidation.js
index f7e82b3fd8a66a24591a7fb75a849799a3755ad4..81cb960ca17d5f47cafe286002b0e4c4b381aba7 100644
--- a/entity/Contract_entity/entityfields/contractstart/onValidation.js
+++ b/entity/Contract_entity/entityfields/contractstart/onValidation.js
@@ -1,8 +1,6 @@
-import("system.neon");
 import("system.result");
 import("system.vars");
 import("Date_lib");
-import("Util_lib");
 import("Entity_lib");
 
 var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTRACTSTART"));
diff --git a/entity/Contract_entity/entityfields/contractstart/valueProcess.js b/entity/Contract_entity/entityfields/contractstart/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7f859f943373ed46e60a1e4786e51216a6a00126
--- /dev/null
+++ b/entity/Contract_entity/entityfields/contractstart/valueProcess.js
@@ -0,0 +1,11 @@
+import("system.result");
+import("system.vars");
+import("system.neon");
+import("Date_lib");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
+{
+    result.string(DateUtils.getTodayUTC());
+}
+else
+    result.string(vars.get("$this.value"));
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/valid_from/onValidation.js b/entity/Productprice_entity/entityfields/valid_from/onValidation.js
index 5ebbf1a7dccee4b0a58c46b478596bf326697184..6d142999dafedcbed0a2eeca9725a0d82f3ba72f 100644
--- a/entity/Productprice_entity/entityfields/valid_from/onValidation.js
+++ b/entity/Productprice_entity/entityfields/valid_from/onValidation.js
@@ -1,7 +1,6 @@
 import("system.result");
 import("system.vars");
 import("Date_lib");
-import("Util_lib");
 import("Entity_lib");
 
 var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.VALID_FROM"));
diff --git a/entity/Productprice_entity/entityfields/valid_from/valueProcess.js b/entity/Productprice_entity/entityfields/valid_from/valueProcess.js
index 4a5ac41f637617745a3985ec17bd66594133db52..7f859f943373ed46e60a1e4786e51216a6a00126 100644
--- a/entity/Productprice_entity/entityfields/valid_from/valueProcess.js
+++ b/entity/Productprice_entity/entityfields/valid_from/valueProcess.js
@@ -3,7 +3,7 @@ import("system.vars");
 import("system.neon");
 import("Date_lib");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "")
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
 {
     result.string(DateUtils.getTodayUTC());
 }
diff --git a/entity/Productprice_entity/entityfields/valid_to/onValidation.js b/entity/Productprice_entity/entityfields/valid_to/onValidation.js
index 3ada2dd1e76e6dceb2b4c1dbf169bf91e0125579..28693efe69f97ec8a33fddd928127117866f264a 100644
--- a/entity/Productprice_entity/entityfields/valid_to/onValidation.js
+++ b/entity/Productprice_entity/entityfields/valid_to/onValidation.js
@@ -1,7 +1,6 @@
 import("system.result");
 import("system.vars");
 import("Date_lib");
-import("Util_lib");
 import("Entity_lib");
 
 var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.VALID_TO"));
diff --git a/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod b/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod
index bb39731c041d0e54d2244e0b183af5da512ca5cb..d9be296864922536d3a0d0bd8bab65084c0dde05 100644
--- a/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod
+++ b/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod
@@ -14,6 +14,7 @@
       <contentType>DATE</contentType>
       <resolution>DAY</resolution>
       <outputFormat>dd.MM.yyyy</outputFormat>
+      <valueProcess>%aditoprj%/entity/SalesprojectForecast_entity/entityfields/date_start/valueProcess.js</valueProcess>
     </entityField>
     <entityField>
       <name>GROUPCODE</name>
diff --git a/entity/SalesprojectForecast_entity/entityfields/date_start/valueProcess.js b/entity/SalesprojectForecast_entity/entityfields/date_start/valueProcess.js
new file mode 100644
index 0000000000000000000000000000000000000000..7f859f943373ed46e60a1e4786e51216a6a00126
--- /dev/null
+++ b/entity/SalesprojectForecast_entity/entityfields/date_start/valueProcess.js
@@ -0,0 +1,11 @@
+import("system.result");
+import("system.vars");
+import("system.neon");
+import("Date_lib");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
+{
+    result.string(DateUtils.getTodayUTC());
+}
+else
+    result.string(vars.get("$this.value"));
\ No newline at end of file
diff --git a/entity/Task_entity/entityfields/maturity_date/onValidation.js b/entity/Task_entity/entityfields/maturity_date/onValidation.js
index 56fc2f5936649b8552f5c1860d8990951ece319c..c9150833ab7afe40eb4f700569d03ad1e0ba8706 100644
--- a/entity/Task_entity/entityfields/maturity_date/onValidation.js
+++ b/entity/Task_entity/entityfields/maturity_date/onValidation.js
@@ -1,7 +1,6 @@
 import("system.result");
 import("system.vars");
 import("Date_lib");
-import("Util_lib");
 import("Entity_lib");
 
 var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.MATURITY_DATE"));
diff --git a/entity/Task_entity/entityfields/maturity_date/valueProcess.js b/entity/Task_entity/entityfields/maturity_date/valueProcess.js
index 033144177b08bda5223b19f104b5fdbebf1a7569..080e7e81c25ffad28875eee2a0525bfc2a7f768d 100644
--- a/entity/Task_entity/entityfields/maturity_date/valueProcess.js
+++ b/entity/Task_entity/entityfields/maturity_date/valueProcess.js
@@ -1,11 +1,10 @@
 import("system.eMath");
 import("system.datetime");
-import("system.util");
 import("system.result");
 import("system.neon");
 import("system.vars");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
 {
     var startDate = vars.get("$field.START_DATE");
     var presetVal = eMath.addInt(startDate, datetime.ONE_WEEK);
diff --git a/entity/Task_entity/entityfields/start_date/valueProcess.js b/entity/Task_entity/entityfields/start_date/valueProcess.js
index 0b43b2859aece42dabb0f256e8058c6e811677a4..5b098ba003d06ee9125c54f3f53559b2155ea8e3 100644
--- a/entity/Task_entity/entityfields/start_date/valueProcess.js
+++ b/entity/Task_entity/entityfields/start_date/valueProcess.js
@@ -1,10 +1,9 @@
 import("system.datetime");
-import("system.util");
 import("system.result");
 import("system.neon");
 import("system.vars");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
 {
     var presetVal = datetime.date();
     //TODO: depending on what happens in #1032274 we need to manually set the resolution to MINUTES or not (which means we've to set everything smaller than MINUTES (Seconds, etc.) to zero)