From a5e29f8ef56a82f0000b30c017e95df0d0435963 Mon Sep 17 00:00:00 2001
From: Johannes Hoermann <j.hoermann@adito.de>
Date: Wed, 17 Apr 2019 13:26:28 +0200
Subject: [PATCH] Sql-Fehler, wenn value undefined

---
 .../_____LANGUAGE_EXTRA.aod                   | 18 ++++++++++++++++++
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     | 19 +++++++++++++++++++
 .../_____LANGUAGE_en/_____LANGUAGE_en.aod     | 19 +++++++++++++++++++
 process/PostalAddress_lib/process.js          | 13 +++++++++----
 process/Sql_lib/process.js                    |  5 +++++
 5 files changed, 70 insertions(+), 4 deletions(-)

diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index 1379306379..fd1ca6e258 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -2895,6 +2895,24 @@
     <entry>
       <key>Imminent appointments for today</key>
     </entry>
+    <entry>
+      <key>Analyses</key>
+    </entry>
+    <entry>
+      <key>Imminent appointments for today </key>
+    </entry>
+    <entry>
+      <key>To-Do</key>
+    </entry>
+    <entry>
+      <key>My Tasks</key>
+    </entry>
+    <entry>
+      <key>Calendar</key>
+    </entry>
+    <entry>
+      <key>${SQL_LIB_UNDEFINED_VALUE} field: %0</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 d3dbd1c345..1b96d56ae4 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -3712,6 +3712,25 @@
       <key>Responsible</key>
       <value>Verantwortlich</value>
     </entry>
+    <entry>
+      <key>Analyses</key>
+    </entry>
+    <entry>
+      <key>Imminent appointments for today </key>
+    </entry>
+    <entry>
+      <key>To-Do</key>
+    </entry>
+    <entry>
+      <key>My Tasks</key>
+    </entry>
+    <entry>
+      <key>Calendar</key>
+    </entry>
+    <entry>
+      <key>${SQL_LIB_UNDEFINED_VALUE} field: %0</key>
+      <value>Der Wert für das Feld %0 ist undefined.</value>
+    </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 44623ac133..da13cfb7df 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -2926,6 +2926,25 @@
     <entry>
       <key>Imminent appointments for today</key>
     </entry>
+    <entry>
+      <key>Analyses</key>
+    </entry>
+    <entry>
+      <key>Imminent appointments for today </key>
+    </entry>
+    <entry>
+      <key>To-Do</key>
+    </entry>
+    <entry>
+      <key>My Tasks</key>
+    </entry>
+    <entry>
+      <key>Calendar</key>
+    </entry>
+    <entry>
+      <key>${SQL_LIB_UNDEFINED_VALUE} field: %0</key>
+      <value>The value for the field %0 is undefined.</value>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/process/PostalAddress_lib/process.js b/process/PostalAddress_lib/process.js
index bee94a606c..71de1bb3d7 100644
--- a/process/PostalAddress_lib/process.js
+++ b/process/PostalAddress_lib/process.js
@@ -118,12 +118,17 @@ AddressUtils.getAddressById = function(pAddressId) {
         
     }
     var type = ContactUtils.getContactTypeByContactId(address[0]);   
-
-    var names = db.array(db.ROW, SqlCondition.begin()
+    
+    if (address[0])
+    {
+        var names = db.array(db.ROW, SqlCondition.begin()
                                              .andPrepare("CONTACT.CONTACTID", address[0])
-                                             .buildSql("select ORGANISATION.NAME, FIRSTNAME, LASTNAME, TITLE from CONTACT left join PERSON on PERSONID = PERSON_ID left join ORGANISATION on ORGANISATIONID = ORGANISATION_ID"
+                                             .buildSql("select ORGANISATION.NAME, FIRSTNAME, LASTNAME, TITLE from CONTACT left join PERSON on                                                           PERSONID = PERSON_ID left join ORGANISATION on ORGANISATIONID = ORGANISATION_ID"
                                                             , "1=0"));
-    return AddressUtils.formatAddress(type, address[1], address[2], address[3], address[4], names[0], names[1], names[2], names[3]);
+        return AddressUtils.formatAddress(type, address[1], address[2], address[3], address[4], names[0], names[1], names[2], names[3]);
+    }
+    
+    return "";
 }
 
 /**
diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js
index 4c68f069fb..082ba83b99 100644
--- a/process/Sql_lib/process.js
+++ b/process/Sql_lib/process.js
@@ -376,6 +376,11 @@ SqlCondition.prototype._checkVars = function(variable) {
  * @ignore
  */
 SqlCondition.prototype._prepare = function(field, value, cond, fieldType) {
+    if (value == undefined)
+    {
+        throw new Error(translate.withArguments("${SQL_LIB_UNDEFINED_VALUE} field: %0", [field]));
+    }
+    
     if (cond == undefined) {
         cond = "# = ?"
     }
-- 
GitLab