From dcb496e3f0bba88537f1af1fe08571cc9c12eb95 Mon Sep 17 00:00:00 2001
From: "j.goderbauer" <j.goderbauer@adito.de>
Date: Thu, 7 Mar 2019 14:40:18 +0100
Subject: [PATCH] [Projekt: Entwicklung - Neon][TicketNr.: 1034878][Bei Auswahl
 eines Angebotsposten soll nur der Artikel und die Menge, Preis und Rabatt
 eingegeben werden]

---
 entity/Offeritem_entity/Offeritem_entity.aod         |  5 +++--
 .../entityfields/info/valueProcess.js                | 12 ------------
 .../entityfields/optional/valueProcess.js            |  2 +-
 .../entityfields/product_id/onValueChange.js         |  4 +++-
 .../entityfields/unit/displayValueProcess.js         | 12 ++++++++++++
 language/_____LANGUAGE_de/_____LANGUAGE_de.aod       |  4 ++++
 6 files changed, 23 insertions(+), 16 deletions(-)
 delete mode 100644 entity/Offeritem_entity/entityfields/info/valueProcess.js
 create mode 100644 entity/Offeritem_entity/entityfields/unit/displayValueProcess.js

diff --git a/entity/Offeritem_entity/Offeritem_entity.aod b/entity/Offeritem_entity/Offeritem_entity.aod
index 7ff04b18aab..0c68684bd93 100644
--- a/entity/Offeritem_entity/Offeritem_entity.aod
+++ b/entity/Offeritem_entity/Offeritem_entity.aod
@@ -15,7 +15,7 @@
     </entityField>
     <entityField>
       <name>DISCOUNT</name>
-      <title>Discount</title>
+      <title>Discount %</title>
     </entityField>
     <entityField>
       <name>GROUPCODEID</name>
@@ -85,6 +85,7 @@
       <title>Unit</title>
       <consumer>KeywordQuantityUnits</consumer>
       <state>READONLY</state>
+      <displayValueProcess>%aditoprj%/entity/Offeritem_entity/entityfields/unit/displayValueProcess.js</displayValueProcess>
     </entityField>
     <entityField>
       <name>VAT</name>
@@ -166,7 +167,7 @@
       <documentation>%aditoprj%/entity/Offeritem_entity/entityfields/info/documentation.adoc</documentation>
       <title>Note</title>
       <contentType>LONG_TEXT</contentType>
-      <valueProcess>%aditoprj%/entity/Offeritem_entity/entityfields/info/valueProcess.js</valueProcess>
+      <state>READONLY</state>
     </entityField>
     <entityConsumer>
       <name>KeywordProductGroupcodes</name>
diff --git a/entity/Offeritem_entity/entityfields/info/valueProcess.js b/entity/Offeritem_entity/entityfields/info/valueProcess.js
deleted file mode 100644
index 199fc1e677e..00000000000
--- a/entity/Offeritem_entity/entityfields/info/valueProcess.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import("system.db");
-import("system.result");
-import("system.vars");
-import("system.neon");
-import("Sql_lib");
-
-if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
-{
-    // TODO: loading from db until loading from Consumer is possible.
-    var productId = vars.get("$field.PRODUCT_ID");
-    result.string(db.cell(SqlCondition.begin().andPrepareVars("PRODUCT.PRODUCTID", "$field.PRODUCT_ID").buildSql("select INFO from PRODUCT", "1=2")));
-}
\ No newline at end of file
diff --git a/entity/Offeritem_entity/entityfields/optional/valueProcess.js b/entity/Offeritem_entity/entityfields/optional/valueProcess.js
index 31b2531af1a..58162120400 100644
--- a/entity/Offeritem_entity/entityfields/optional/valueProcess.js
+++ b/entity/Offeritem_entity/entityfields/optional/valueProcess.js
@@ -2,5 +2,5 @@ import("system.vars");
 import("system.result");
 import("system.neon");
 
-if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
+if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && (vars.get("$this.value") == null || vars.get("$this.value") == ""))
     result.string("0");
\ No newline at end of file
diff --git a/entity/Offeritem_entity/entityfields/product_id/onValueChange.js b/entity/Offeritem_entity/entityfields/product_id/onValueChange.js
index 8397a374758..da456d1c469 100644
--- a/entity/Offeritem_entity/entityfields/product_id/onValueChange.js
+++ b/entity/Offeritem_entity/entityfields/product_id/onValueChange.js
@@ -12,13 +12,15 @@ if(pid != "")
     
     var PriceListFilter = { currency: curr, quantity: vars.get("$field.QUANTITY"), relationId: contactid };
     
-    var ProductDetails = ProductUtils.getProductDetails(pid, PriceListFilter);
+    //TODO: loading from db until loading from Consumer is possible.
+    var ProductDetails = ProductUtils.getProductDetails(pid, PriceListFilter, ["INFO"]);
     
     if(ProductDetails.productId != undefined)
     {
         neon.setFieldValue("$field.GROUPCODEID", ProductDetails.groupCode);
         neon.setFieldValue("$field.UNIT", ProductDetails.unit);
         neon.setFieldValue("$field.ITEMNAME", ProductDetails.productName);
+        neon.setFieldValue("$field.INFO", ProductDetails.INFO);
 
         if(ProductDetails.PriceListToUse != null)
         {
diff --git a/entity/Offeritem_entity/entityfields/unit/displayValueProcess.js b/entity/Offeritem_entity/entityfields/unit/displayValueProcess.js
new file mode 100644
index 00000000000..72cb60d083c
--- /dev/null
+++ b/entity/Offeritem_entity/entityfields/unit/displayValueProcess.js
@@ -0,0 +1,12 @@
+import("system.result");
+import("system.vars");
+import("Keyword_lib");
+import("KeywordRegistry_basic");
+
+var unit = vars.get("$field.UNIT");
+var viewValue = "";
+
+if (unit)
+    viewValue = KeywordUtils.getViewValue($KeywordRegistry.quantityUnit(), unit);
+
+result.string(viewValue);
\ No newline at end of file
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 03ef13d172c..84e7cd2b6dc 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -22,6 +22,10 @@
       <key>Days</key>
       <value>Tage</value>
     </entry>
+    <entry>
+      <key>Discount %</key>
+      <value>Rabatt %</value>
+    </entry>
     <entry>
       <key>E-Mail</key>
       <value>E-Mail</value>
-- 
GitLab