From 1f3e7df56d2298b10cc61e6e4037d2f3dd92a94c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maximilian=20Schr=C3=B6ger?= <m.schroeger@adito.de>
Date: Wed, 21 Nov 2018 13:19:11 +0100
Subject: [PATCH] Validation OFFERNUMBER/PROJECTNUMBER

---
 .../entityfields/offercode/onValidation.js             |  5 +++--
 entity/Salesproject_entity/Salesproject_entity.aod     |  7 +++++--
 .../entityfields/projectcode/onValidation.js           |  5 +++--
 .../entityfields/projectcode/onValueChange.js          | 10 ----------
 process/OfferOrder_lib/process.js                      |  2 +-
 5 files changed, 12 insertions(+), 17 deletions(-)

diff --git a/entity/Offer_entity/entityfields/offercode/onValidation.js b/entity/Offer_entity/entityfields/offercode/onValidation.js
index bd2b194002..8880dadb94 100644
--- a/entity/Offer_entity/entityfields/offercode/onValidation.js
+++ b/entity/Offer_entity/entityfields/offercode/onValidation.js
@@ -6,7 +6,8 @@ import("Util_lib");
 
 var OfferUtils = new OfferUtils();
 
-if( !OfferUtils.validateOfferNumber(ProcessHandlingUtil.getOnValidationValue(vars.get("$field.OFFERCODE"))) )
+if( vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW
+    && !OfferUtils.validateOfferNumber(ProcessHandlingUtil.getOnValidationValue(vars.get("$field.OFFERCODE"))) )
 {
-    result.string(OfferUtils.getOfferNumberValidationFailString());
+    vars.set( "$field.PROJECTCODE", SalesprojectUtils.getNextOfferNumber().toString() );
 }
\ No newline at end of file
diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod
index f81960ed2b..ff6b7122fd 100644
--- a/entity/Salesproject_entity/Salesproject_entity.aod
+++ b/entity/Salesproject_entity/Salesproject_entity.aod
@@ -3,10 +3,13 @@
   <name>Salesproject_entity</name>
   <title>Salesproject</title>
   <majorModelMode>DISTRIBUTED</majorModelMode>
-  <alias>Data_alias</alias>
   <recordContainerType>DB</recordContainerType>
   <caption>Salesproject</caption>
+  <onValidation>%aditoprj%/entity/Salesproject_entity/onValidation.js</onValidation>
+  <afterOperatingState>%aditoprj%/entity/Salesproject_entity/afterOperatingState.js</afterOperatingState>
   <iconId>VAADIN:FILTER</iconId>
+  <alias>Data_alias</alias>
+  <onDBInsert>%aditoprj%/entity/Salesproject_entity/onDBInsert.js</onDBInsert>
   <entityFields>
     <entityIncomingField>
       <name>#INCOMING</name>
@@ -65,7 +68,7 @@
       <tableName>SALESPROJECT</tableName>
       <columnName>PROJECTCODE</columnName>
       <caption>Project number</caption>
-      <state>READONLY</state>
+      <state>AUTO</state>
       <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/projectcode/valueProcess.js</valueProcess>
       <onValidation>%aditoprj%/entity/Salesproject_entity/entityfields/projectcode/onValidation.js</onValidation>
       <onValueChange>%aditoprj%/entity/Salesproject_entity/entityfields/projectcode/onValueChange.js</onValueChange>
diff --git a/entity/Salesproject_entity/entityfields/projectcode/onValidation.js b/entity/Salesproject_entity/entityfields/projectcode/onValidation.js
index 1df10f8951..b880f9dc7f 100644
--- a/entity/Salesproject_entity/entityfields/projectcode/onValidation.js
+++ b/entity/Salesproject_entity/entityfields/projectcode/onValidation.js
@@ -6,7 +6,8 @@ import("Util_lib");
 
 var SalesprojectUtils = new SalesprojectUtils();
 
-if( !SalesprojectUtils.validateProjectNumber(ProcessHandlingUtil.getOnValidationValue(vars.get("$field.PROJECTCODE"))) )
+if( vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW
+    && !SalesprojectUtils.validateProjectNumber(ProcessHandlingUtil.getOnValidationValue(vars.get("$field.PROJECTCODE"))) )
 {
-    result.string(SalesprojectUtils.getProjectNumberValidationFailString());
+    vars.set( "$field.PROJECTCODE", SalesprojectUtils.getNextProjectNumber().toString() );
 }
\ No newline at end of file
diff --git a/entity/Salesproject_entity/entityfields/projectcode/onValueChange.js b/entity/Salesproject_entity/entityfields/projectcode/onValueChange.js
index 289a0b56e8..e69de29bb2 100644
--- a/entity/Salesproject_entity/entityfields/projectcode/onValueChange.js
+++ b/entity/Salesproject_entity/entityfields/projectcode/onValueChange.js
@@ -1,10 +0,0 @@
-import("system.vars");
-import("system.result");
-import("Salesproject_lib");
-import("Util_lib");
-
-var SalesprojectUtils = new SalesprojectUtils();
-if( !SalesprojectUtils.validateProjectNumber(ProcessHandlingUtil.getOnValidationValue(vars.get("$field.PROJECTCODE"))) )
-{
-    vars.set("$field.PROJECTCODE", SalesprojectUtils.getNextProjectNumber());
-}
diff --git a/process/OfferOrder_lib/process.js b/process/OfferOrder_lib/process.js
index 67d8e8a9df..0bae4843e3 100644
--- a/process/OfferOrder_lib/process.js
+++ b/process/OfferOrder_lib/process.js
@@ -73,7 +73,7 @@ function OfferUtils()
 /**OfferItemUtils
  *
  * Instance class that provides methods for dealing with offer / order items.
- * Inherits method from abstract class ItemUtils.
+ * Inherits methods from abstract class ItemUtils.
  * For documentation, see class ItemUtils.
  *
  ******************************************************************************/
-- 
GitLab