From 8ee3080ff0122c325de77a2dd13283154bd9a0c8 Mon Sep 17 00:00:00 2001
From: "v.broens" <v.broens@VBROENS.aditosoftware.local>
Date: Thu, 8 Jul 2021 14:10:50 +0200
Subject: [PATCH] [Projekt: xRM-Marketing][TicketNr.: 1083938][Div. Fehler in
 Interessensgebieten]

---
 .../InterestLink_entity.aod                   |  3 ++
 .../entityfields/interest_id/onValidation.js  | 17 +++++++
 entity/Interest_entity/Interest_entity.aod    |  2 +
 .../recordcontainers/db/orderClauseProcess.js |  4 ++
 .../_____LANGUAGE_EXTRA.aod                   | 51 +++++++++++++++++++
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     |  6 +++
 .../_____LANGUAGE_en/_____LANGUAGE_en.aod     | 25 +++++++++
 7 files changed, 108 insertions(+)
 create mode 100644 entity/InterestLink_entity/entityfields/interest_id/onValidation.js
 create mode 100644 entity/Interest_entity/recordcontainers/db/orderClauseProcess.js

diff --git a/entity/InterestLink_entity/InterestLink_entity.aod b/entity/InterestLink_entity/InterestLink_entity.aod
index 6b13ef837b..0110d444a8 100644
--- a/entity/InterestLink_entity/InterestLink_entity.aod
+++ b/entity/InterestLink_entity/InterestLink_entity.aod
@@ -18,6 +18,7 @@
       <title>Interest</title>
       <consumer>Interests</consumer>
       <displayValueProcess>%aditoprj%/entity/InterestLink_entity/entityfields/interest_id/displayValueProcess.js</displayValueProcess>
+      <onValidation>%aditoprj%/entity/InterestLink_entity/entityfields/interest_id/onValidation.js</onValidation>
     </entityField>
     <entityField>
       <name>INTERESTLINKID</name>
@@ -87,10 +88,12 @@
         <dbRecordFieldMapping>
           <name>INTEREST_ID.value</name>
           <recordfield>INTERESTLINK.INTEREST_ID</recordfield>
+          <expression>%aditoprj%/entity/InterestLink_entity/recordcontainers/db/recordfieldmappings/interest_id.value/expression.js</expression>
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>INTERESTLINKID.value</name>
           <recordfield>INTERESTLINK.INTERESTLINKID</recordfield>
+          <expression>%aditoprj%/entity/InterestLink_entity/recordcontainers/db/recordfieldmappings/interestlinkid.value/expression.js</expression>
         </dbRecordFieldMapping>
         <dbRecordFieldMapping>
           <name>STATUS.value</name>
diff --git a/entity/InterestLink_entity/entityfields/interest_id/onValidation.js b/entity/InterestLink_entity/entityfields/interest_id/onValidation.js
new file mode 100644
index 0000000000..834f73d133
--- /dev/null
+++ b/entity/InterestLink_entity/entityfields/interest_id/onValidation.js
@@ -0,0 +1,17 @@
+import("system.translate");
+import("system.result");
+import("system.neon");
+import("system.vars");
+import("Sql_lib");
+
+if (vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW && vars.get("$local.value") && vars.get("$field.CONTACT_ID"))
+{
+    var isParticipant= newSelect(["INTEREST_ID"])
+                        .from("INTERESTLINK")
+                        .where("INTERESTLINK.INTEREST_ID", vars.get("$field.INTEREST_ID"))
+                        .and("INTERESTLINK.CONTACT_ID",vars.get("$field.CONTACT_ID"))
+                        .cell();
+    if (isParticipant){
+        result.string(translate.text("Interest already assign to contact"));
+    }
+}
\ No newline at end of file
diff --git a/entity/Interest_entity/Interest_entity.aod b/entity/Interest_entity/Interest_entity.aod
index 4dbed8e6bf..dc9842429d 100644
--- a/entity/Interest_entity/Interest_entity.aod
+++ b/entity/Interest_entity/Interest_entity.aod
@@ -60,6 +60,8 @@
   <recordContainers>
     <dbRecordContainer>
       <name>db</name>
+      <conditionProcess>%aditoprj%/entity/Interest_entity/recordcontainers/db/conditionProcess.js</conditionProcess>
+      <orderClauseProcess>%aditoprj%/entity/Interest_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess>
       <alias>Data_alias</alias>
       <recordFieldMappings>
         <dbRecordFieldMapping>
diff --git a/entity/Interest_entity/recordcontainers/db/orderClauseProcess.js b/entity/Interest_entity/recordcontainers/db/orderClauseProcess.js
new file mode 100644
index 0000000000..8c6362877e
--- /dev/null
+++ b/entity/Interest_entity/recordcontainers/db/orderClauseProcess.js
@@ -0,0 +1,4 @@
+import("system.result");
+import("system.db");
+
+result.object({"INTEREST.TITLE": db.ASCENDING});
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 767f6addc3..9b3fdee94a 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -9037,6 +9037,57 @@
     <entry>
       <key>Turnover and Forecast</key>
     </entry>
+    <entry>
+      <key>The chosen attributes were successfully set for %0 %1</key>
+    </entry>
+    <entry>
+      <key>SerialLetter</key>
+    </entry>
+    <entry>
+      <key>Bulkmail</key>
+    </entry>
+    <entry>
+      <key>%0 recipient will be added to the serial letter.</key>
+    </entry>
+    <entry>
+      <key>The attribute \"%0\" couldn't be set for %1 %2, because %3.</key>
+    </entry>
+    <entry>
+      <key>the max amount of this attribute has been reached</key>
+    </entry>
+    <entry>
+      <key>set attribute (use filter result)</key>
+    </entry>
+    <entry>
+      <key>The chosen attribute was successfully set for %0 %1</key>
+    </entry>
+    <entry>
+      <key>Volume (Euro)</key>
+    </entry>
+    <entry>
+      <key>add Attributes</key>
+    </entry>
+    <entry>
+      <key>%0 recipient will be added to the bulk mail.</key>
+    </entry>
+    <entry>
+      <key>Attribute \"%0\" can only be inserted once with the same value.</key>
+    </entry>
+    <entry>
+      <key>Set attribute (use filter result)</key>
+    </entry>
+    <entry>
+      <key>set attribute (selected data)</key>
+    </entry>
+    <entry>
+      <key>affected rows:</key>
+    </entry>
+    <entry>
+      <key>this attribute with the same value exists already</key>
+    </entry>
+    <entry>
+      <key>Interest already asign to contact</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
   <sqlModels>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 33eb0f9dde..b4ccac2916 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -6017,6 +6017,9 @@
       <key>Privacy agreement</key>
       <value>Datenschutzabkommen</value>
     </entry>
+    <entry>
+      <key>Interest already asign to contact</key>
+    </entry>
     <entry>
       <key>Newsfeed (Preview)</key>
       <value>Newsfeed (Vorschau)</value>
@@ -11889,6 +11892,9 @@ Bitte Datumseingabe prüfen</value>
     <entry>
       <key>Shows the organisations turnover and forecast</key>
     </entry>
+    <entry>
+      <key>set attribute (use filter result)</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index 743dd7e941..904f7bccbc 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -4086,6 +4086,10 @@
     <entry>
       <key>[%0]it was necessary to create a file from a blob-field but no lob-file-path was specified.</key>
     </entry>
+    <entry>
+      <key>Interest already assign to contact</key>
+      <value>Interesse bereits mit Kontakt verknüpft</value>
+    </entry>
     <entry>
       <key>SqlUtils.getSqlInStatement: if pAsPrepared is true, pPreparedDbType has to be filld with the correct db type</key>
     </entry>
@@ -9149,6 +9153,27 @@
     <entry>
       <key>Turnover and Forecast</key>
     </entry>
+    <entry>
+      <key>SerialLetter</key>
+    </entry>
+    <entry>
+      <key>Bulkmail</key>
+    </entry>
+    <entry>
+      <key>%0 recipient will be added to the serial letter.</key>
+    </entry>
+    <entry>
+      <key>Volume (Euro)</key>
+    </entry>
+    <entry>
+      <key>%0 recipient will be added to the bulk mail.</key>
+    </entry>
+    <entry>
+      <key>Attribute \"%0\" can only be inserted once with the same value.</key>
+    </entry>
+    <entry>
+      <key>Set attribute (use filter result)</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
-- 
GitLab