From 5f32f9be7a5d39e5c4fd997be5ee9c385b38d6b8 Mon Sep 17 00:00:00 2001
From: "S.Listl" <S.Listl@SLISTL.aditosoftware.local>
Date: Mon, 13 May 2019 10:22:56 +0200
Subject: [PATCH] $AttributeRegistry added

---
 .../entityfields/deliveryterms/valueProcess.js    |  5 +++--
 .../entityfields/paymentterms/valueProcess.js     |  5 +++--
 .../entityfields/product_id/onValueChange.js      |  3 ++-
 .../entityfields/quantity/onValueChange.js        |  3 ++-
 .../AttributeRegistry_basic.aod                   |  9 +++++++++
 process/AttributeRegistry_basic/process.js        | 15 +++++++++++++++
 6 files changed, 34 insertions(+), 6 deletions(-)
 create mode 100644 process/AttributeRegistry_basic/AttributeRegistry_basic.aod
 create mode 100644 process/AttributeRegistry_basic/process.js

diff --git a/entity/Offer_entity/entityfields/deliveryterms/valueProcess.js b/entity/Offer_entity/entityfields/deliveryterms/valueProcess.js
index c3d8c920eea..0ae20dad6e0 100644
--- a/entity/Offer_entity/entityfields/deliveryterms/valueProcess.js
+++ b/entity/Offer_entity/entityfields/deliveryterms/valueProcess.js
@@ -1,3 +1,4 @@
+import("AttributeRegistry_basic");
 import("system.neon");
 import("system.result");
 import("system.vars");
@@ -11,7 +12,7 @@ else if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
 {
     var contactId = vars.getString("$field.CONTACT_ID");
     if (contactId)
-    {                                         // Lieferkondition
-        result.string(AttributeRelationUtils.getAttribute("3a6e11fc-b00a-4cf3-975a-a5e8b60fc5cb", contactId));
+    { 
+        result.string(AttributeRelationUtils.getAttribute($AttributeRegistry.deliveryTerm(), contactId));
     }
 }
\ No newline at end of file
diff --git a/entity/Offer_entity/entityfields/paymentterms/valueProcess.js b/entity/Offer_entity/entityfields/paymentterms/valueProcess.js
index 35d02f62cad..e75c10c9751 100644
--- a/entity/Offer_entity/entityfields/paymentterms/valueProcess.js
+++ b/entity/Offer_entity/entityfields/paymentterms/valueProcess.js
@@ -1,3 +1,4 @@
+import("AttributeRegistry_basic");
 import("system.neon");
 import("system.result");
 import("system.vars");
@@ -11,7 +12,7 @@ else if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)
 {
     var contactId = vars.getString("$field.CONTACT_ID");
     if (contactId)
-    {                                         // Zahlungskondition
-        result.string(AttributeRelationUtils.getAttribute("292fae38-6557-466d-8843-3b1b4a1f6599", contactId));
+    {
+        result.string(AttributeRelationUtils.getAttribute($AttributeRegistry.paymentTerm(), contactId));
     }
 }
\ 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 fc9994c4e51..85a18b53383 100644
--- a/entity/Offeritem_entity/entityfields/product_id/onValueChange.js
+++ b/entity/Offeritem_entity/entityfields/product_id/onValueChange.js
@@ -1,3 +1,4 @@
+import("AttributeRegistry_basic");
 import("system.vars");
 import("system.neon");
 import("Product_lib");
@@ -10,7 +11,7 @@ if(pid != "")
 {
     var currency = vars.exists("$param.Currency_param") ? vars.get("$param.Currency_param") : "";
     var contactid = vars.exists("$param.ContactId_param") ? vars.get("$param.ContactId_param") : "";
-    var pricelist = AttributeRelationUtils.getAttribute("97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec", contactid) || "";
+    var pricelist = AttributeRelationUtils.getAttribute($AttributeRegistry.pricelist(), contactid) || "";
     
     var PriceListFilter = { currency: currency, quantity: vars.get("$field.QUANTITY"), relationId: contactid, priceList: pricelist };
     
diff --git a/entity/Offeritem_entity/entityfields/quantity/onValueChange.js b/entity/Offeritem_entity/entityfields/quantity/onValueChange.js
index 5076a258429..d2920a90531 100644
--- a/entity/Offeritem_entity/entityfields/quantity/onValueChange.js
+++ b/entity/Offeritem_entity/entityfields/quantity/onValueChange.js
@@ -1,3 +1,4 @@
+import("AttributeRegistry_basic");
 import("system.vars");
 import("system.neon");
 import("Product_lib");
@@ -11,7 +12,7 @@ if(pid != "" && newQuantity != "")
 {
     var curr = vars.exists("$param.Currency_param") ? vars.get("$param.Currency_param") : "";
     var contactid = vars.exists("$param.ContactId_param") ? vars.get("$param.ContactId_param") : "";
-    var pricelist = AttributeRelationUtils.getAttribute("97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec", contactid) || "";
+    var pricelist = AttributeRelationUtils.getAttribute($AttributeRegistry.pricelist(), contactid) || "";
     
     var PriceListFilter = { currency: curr, quantity: newQuantity, relationId: contactid, priceList: pricelist };
     
diff --git a/process/AttributeRegistry_basic/AttributeRegistry_basic.aod b/process/AttributeRegistry_basic/AttributeRegistry_basic.aod
new file mode 100644
index 00000000000..d4917ea14ea
--- /dev/null
+++ b/process/AttributeRegistry_basic/AttributeRegistry_basic.aod
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1">
+  <name>AttributeRegistry_basic</name>
+  <majorModelMode>DISTRIBUTED</majorModelMode>
+  <process>%aditoprj%/process/AttributeRegistry_basic/process.js</process>
+  <variants>
+    <element>LIBRARY</element>
+  </variants>
+</process>
diff --git a/process/AttributeRegistry_basic/process.js b/process/AttributeRegistry_basic/process.js
new file mode 100644
index 00000000000..a132602bb79
--- /dev/null
+++ b/process/AttributeRegistry_basic/process.js
@@ -0,0 +1,15 @@
+/**
+ * provides static functionality for a registry of attribute ids
+ * The reason for this is a convenient usage within jdito-code (autocomplete)
+ * and better readability
+ * 
+ * @class
+ * 
+ * @example
+ * $AttributeRegistry.pricelist()
+ */
+function $AttributeRegistry(){}
+
+$AttributeRegistry.pricelist = function(){return "97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec";};
+$AttributeRegistry.paymentTerm = function(){return "292fae38-6557-466d-8843-3b1b4a1f6599";};
+$AttributeRegistry.deliveryTerm = function(){return "3a6e11fc-b00a-4cf3-975a-a5e8b60fc5cb";};
\ No newline at end of file
-- 
GitLab