From 4977e0371e0e37046556167976f4817622f5b057 Mon Sep 17 00:00:00 2001
From: Maria Hofmann <m.hofmann@adito.de>
Date: Fri, 26 Apr 2019 10:58:04 +0200
Subject: [PATCH] [Projekt: Entwicklung - Neon][TicketNr.: 1037399][Validierung
 der  Felder mit Datumsangaben]

---
 .../entityfields/date_end/onValidation.js      | 15 ++++-----------
 .../entityfields/date_end/valueProcess.js      |  2 +-
 .../entityfields/date_start/onValidation.js    | 18 +++++++++---------
 .../entityfields/date_start/valueProcess.js    | 13 +++++++------
 entity/Contract_entity/Contract_entity.aod     |  1 +
 .../entityfields/contractend/onValidation.js   |  1 -
 .../entityfields/contractstart/onValidation.js |  2 --
 .../entityfields/contractstart/valueProcess.js | 11 +++++++++++
 .../entityfields/valid_from/onValidation.js    |  1 -
 .../entityfields/valid_from/valueProcess.js    |  2 +-
 .../entityfields/valid_to/onValidation.js      |  1 -
 .../SalesprojectForecast_entity.aod            |  1 +
 .../entityfields/date_start/valueProcess.js    | 11 +++++++++++
 .../entityfields/maturity_date/onValidation.js |  1 -
 .../entityfields/maturity_date/valueProcess.js |  3 +--
 .../entityfields/start_date/valueProcess.js    |  3 +--
 16 files changed, 48 insertions(+), 38 deletions(-)
 create mode 100644 entity/Contract_entity/entityfields/contractstart/valueProcess.js
 create mode 100644 entity/SalesprojectForecast_entity/entityfields/date_start/valueProcess.js

diff --git a/entity/CampaignStep_entity/entityfields/date_end/onValidation.js b/entity/CampaignStep_entity/entityfields/date_end/onValidation.js
index 746e1031c0..64e94f87c1 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 575359740e..bf2e43999c 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 7c937ac09f..83a6fd0a8f 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 ddb9ac943c..6c4d90c554 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 5d170ecd64..fcac2f5cbf 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 c2b570b757..9cfd6fc2f8 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 f7e82b3fd8..81cb960ca1 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 0000000000..7f859f9433
--- /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 5ebbf1a7dc..6d142999da 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 4a5ac41f63..7f859f9433 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 3ada2dd1e7..28693efe69 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 bb39731c04..d9be296864 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 0000000000..7f859f9433
--- /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 56fc2f5936..c9150833ab 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 033144177b..080e7e81c2 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 0b43b2859a..5b098ba003 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) 
-- 
GitLab