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..4c1e2142a292fa2ef6fa38dbe2e458d9628af21f 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("$this.value"))
+{
+    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/Offer_entity/entityfields/offerdate/valueProcess.js b/entity/Offer_entity/entityfields/offerdate/valueProcess.js
index 09c66d00cc0e8b740a0b3c68c2b7d16947027795..6b67243627ceda867da63df21c0600d67442cbbf 100644
--- a/entity/Offer_entity/entityfields/offerdate/valueProcess.js
+++ b/entity/Offer_entity/entityfields/offerdate/valueProcess.js
@@ -3,7 +3,7 @@ import("system.result");
 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/Order_entity/entityfields/salesorderdate/valueProcess.js b/entity/Order_entity/entityfields/salesorderdate/valueProcess.js
index 09c66d00cc0e8b740a0b3c68c2b7d16947027795..6b67243627ceda867da63df21c0600d67442cbbf 100644
--- a/entity/Order_entity/entityfields/salesorderdate/valueProcess.js
+++ b/entity/Order_entity/entityfields/salesorderdate/valueProcess.js
@@ -3,7 +3,7 @@ import("system.result");
 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/Orderitem_entity/entityfields/quantity/valueProcess.js b/entity/Orderitem_entity/entityfields/quantity/valueProcess.js
index f6173830c1313bf8a59babc8c9f76ba54df6069a..51d655d5bff03c5552b7f5aabbb9b271a1db5e03 100644
--- a/entity/Orderitem_entity/entityfields/quantity/valueProcess.js
+++ b/entity/Orderitem_entity/entityfields/quantity/valueProcess.js
@@ -2,7 +2,7 @@ import("system.vars");
 import("system.result");
 import("system.neon");
 
-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("1");
 }
diff --git a/entity/Organisation_entity/entityfields/status/valueProcess.js b/entity/Organisation_entity/entityfields/status/valueProcess.js
index 13218c16514d81765c7e5dfd47c099996adfe063..ab590b059440372f55b8c6d73d0c47eae06ca396 100644
--- a/entity/Organisation_entity/entityfields/status/valueProcess.js
+++ b/entity/Organisation_entity/entityfields/status/valueProcess.js
@@ -3,5 +3,5 @@ import("system.result");
 import("system.neon");
 import("KeywordRegistry_basic");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null)
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
     result.string($KeywordRegistry.contactStatus$active());
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/buysell/valueProcess.js b/entity/Productprice_entity/entityfields/buysell/valueProcess.js
index 33aba856e9b608b1f09c8c04181e1082b0229a95..f8481bc40d44f280c10a48148b53c71f1b5d0247 100644
--- a/entity/Productprice_entity/entityfields/buysell/valueProcess.js
+++ b/entity/Productprice_entity/entityfields/buysell/valueProcess.js
@@ -2,5 +2,5 @@ import("system.vars");
 import("system.result");
 import("system.neon");
 
-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("SP");
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js b/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js
index b2204ba4adb39c57f8f5dd011cf2560d92034c07..b659c0bc4d1a64ec7a7e22a2132763523003f5e9 100644
--- a/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js
+++ b/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js
@@ -2,7 +2,7 @@ import("system.vars");
 import("system.result");
 import("system.neon");
 
-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("1");
 else
     result.string(vars.get("$this.value"));
\ No newline at end of file
diff --git a/entity/Productprice_entity/entityfields/price/valueProcess.js b/entity/Productprice_entity/entityfields/price/valueProcess.js
index 723d0252aa9b87eb839318b7e5e63d7d7dfc567f..79b1b6752e24ab20067845ce191ee075eab584f2 100644
--- a/entity/Productprice_entity/entityfields/price/valueProcess.js
+++ b/entity/Productprice_entity/entityfields/price/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
-import("system.result");
-import("system.neon");
-
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "")
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
     result.string("0");
\ 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/Productprice_entity/entityfields/vat/valueProcess.js b/entity/Productprice_entity/entityfields/vat/valueProcess.js
index 723d0252aa9b87eb839318b7e5e63d7d7dfc567f..79b1b6752e24ab20067845ce191ee075eab584f2 100644
--- a/entity/Productprice_entity/entityfields/vat/valueProcess.js
+++ b/entity/Productprice_entity/entityfields/vat/valueProcess.js
@@ -1,6 +1,6 @@
-import("system.vars");
-import("system.result");
-import("system.neon");
-
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "")
+import("system.vars");
+import("system.result");
+import("system.neon");
+
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value"))
     result.string("0");
\ No newline at end of file
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/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index 5a37d4e83b69ebb6159529f5788e08c630a62878..cf5b6fcfaf15f937f6732b64d3ae57535c33a3d6 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -33,6 +33,7 @@
       <resolution>DAY</resolution>
       <outputFormat>dd.MM.yyyy</outputFormat>
       <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/enddate/valueProcess.js</valueProcess>
+      <onValidation>%aditoprj%/entity/Salesproject_entity/entityfields/enddate/onValidation.js</onValidation>
     </entityField>
     <entityField>
       <name>INFO</name>
@@ -82,6 +83,7 @@
       <outputFormat>dd.MM.yyyy</outputFormat>
       <mandatory v="true" />
       <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/startdate/valueProcess.js</valueProcess>
+      <onValidation>%aditoprj%/entity/Salesproject_entity/entityfields/startdate/onValidation.js</onValidation>
     </entityField>
     <entityField>
       <name>STATE</name>
diff --git a/entity/Salesproject_entity/entityfields/enddate/onValidation.js b/entity/Salesproject_entity/entityfields/enddate/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..11c71f9e9c1f0bc9a2890ce460aafc7d5529a473
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/enddate/onValidation.js
@@ -0,0 +1,10 @@
+import("system.result");
+import("system.vars");
+import("Date_lib");
+import("Util_lib");
+import("Entity_lib");
+
+var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.ENDDATE"));
+
+if (DateUtils.validateBeginnBeforeEnd(vars.get("$field.STARTDATE"), cEnd) === false)
+    result.string(DateUtils.getValidationFailString());
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/enddate/valueProcess.js b/entity/Salesproject_entity/entityfields/enddate/valueProcess.js
index f6ff85ba891e77ab3a5435a936d573a67defce9a..9cd6d6bfeb34744525ad8934e0fb07ab27a742ec 100644
--- a/entity/Salesproject_entity/entityfields/enddate/valueProcess.js
+++ b/entity/Salesproject_entity/entityfields/enddate/valueProcess.js
@@ -3,7 +3,7 @@ import("system.result");
 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.getDateIncrementedByYears(DateUtils.getTodayUTC(), 1));
 }
diff --git a/entity/Salesproject_entity/entityfields/startdate/onValidation.js b/entity/Salesproject_entity/entityfields/startdate/onValidation.js
new file mode 100644
index 0000000000000000000000000000000000000000..4e0411453d761b4184537f5ee680cc214e5a74d6
--- /dev/null
+++ b/entity/Salesproject_entity/entityfields/startdate/onValidation.js
@@ -0,0 +1,11 @@
+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.STARTDATE"));
+
+if (DateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.ENDDATE")) === false)
+    result.string(DateUtils.getValidationFailString());
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/startdate/valueProcess.js b/entity/Salesproject_entity/entityfields/startdate/valueProcess.js
index 09c66d00cc0e8b740a0b3c68c2b7d16947027795..6b67243627ceda867da63df21c0600d67442cbbf 100644
--- a/entity/Salesproject_entity/entityfields/startdate/valueProcess.js
+++ b/entity/Salesproject_entity/entityfields/startdate/valueProcess.js
@@ -3,7 +3,7 @@ import("system.result");
 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/Task_entity/entityfields/maturity_date/onValidation.js b/entity/Task_entity/entityfields/maturity_date/onValidation.js
index bb062404491c5fdbd934a7e23caf370b5c250d6e..c9150833ab7afe40eb4f700569d03ad1e0ba8706 100644
--- a/entity/Task_entity/entityfields/maturity_date/onValidation.js
+++ b/entity/Task_entity/entityfields/maturity_date/onValidation.js
@@ -1 +1,9 @@
-//TODO: add validation for start-date and maturity-date
\ No newline at end of file
+import("system.result");
+import("system.vars");
+import("Date_lib");
+import("Entity_lib");
+
+var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.MATURITY_DATE"));
+
+if (DateUtils.validateBeginnBeforeEnd(vars.get("$field.START_DATE"), cEnd) === false)
+    result.string(DateUtils.getValidationFailString());
\ No newline at end of file
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/onValidation.js b/entity/Task_entity/entityfields/start_date/onValidation.js
index bb062404491c5fdbd934a7e23caf370b5c250d6e..4bad868ca52710b422022dd4583f0afde7b000bc 100644
--- a/entity/Task_entity/entityfields/start_date/onValidation.js
+++ b/entity/Task_entity/entityfields/start_date/onValidation.js
@@ -1 +1,11 @@
-//TODO: add validation for start-date and maturity-date
\ No newline at end of file
+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.START_DATE"));
+
+if (DateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.MATURITY_DATE")) === false)
+    result.string(DateUtils.getValidationFailString());
\ No newline at end of file
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)