From 73143d6e63e1ab7543c3e2fd541292602a3b1754 Mon Sep 17 00:00:00 2001
From: Benjamin Ulrich <b.ulrich@adito.de>
Date: Fri, 15 Jan 2021 12:50:08 +0000
Subject: [PATCH] [Projekt: Entwicklung - xRM][TicketNr.: 1067831][Leadimport -
 Daten transferieren - Button "Daten transferieren" aktiv, obwohl Transfer
 schon erfolgt ist]

---
 .../transferdata/onActionProcess.js           | 86 +++++++++++--------
 .../_____LANGUAGE_EXTRA.aod                   |  3 +
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     |  8 ++
 .../_____LANGUAGE_en/_____LANGUAGE_en.aod     |  3 +
 4 files changed, 64 insertions(+), 36 deletions(-)

diff --git a/entity/Leadimport_entity/entityfields/transferdata/onActionProcess.js b/entity/Leadimport_entity/entityfields/transferdata/onActionProcess.js
index 030b5064fd..39d636748f 100644
--- a/entity/Leadimport_entity/entityfields/transferdata/onActionProcess.js
+++ b/entity/Leadimport_entity/entityfields/transferdata/onActionProcess.js
@@ -1,3 +1,4 @@
+import("system.translate");
 import("ExportTemplate_lib");
 import("Leadimport_lib");
 import("system.question");
@@ -10,44 +11,57 @@ import("system.db");
 import("system.vars");
 import("system.neon");
 
-var binMetadatas = db.getBinaryMetadata("LEADIMPORT", "IMPORTFILE", vars.get("$field.LEADIMPORTID"), false, SqlUtils.getBinariesAlias(), "");
-
-if (binMetadatas.length > 0)
+var execute = true;
+var logCount = newSelect("count(*)")
+                        .from("LEADLOG")
+                        .where("LEADLOG.LEADIMPORT_ID", vars.get("$field.LEADIMPORTID"))
+                        .cell();
+if(logCount > 0)
+{
+    execute = question.askYesNo("Leadimport", translate.text("The data of this Leadimport has already been transfered. Do you want to transfer it again?"), false);
+}
+if(execute)
 {
-    var binId = binMetadatas[0].id;
-    
-    var assignmentRowId = vars.get("$field.LEADIMPORTID");
-    var name = vars.get("$field.NAME");
-    var user = vars.get("$sys.user");
-    
-    var fieldSep = ExportTemplateUtils.getFieldSeparator(vars.get("$field.FIELDSEPARATOR"));
-    var fieldLimit = ExportTemplateUtils.getFieldDeLimiter(vars.get("$field.FIELDDELIMITERS"));
-    var recordSep = ExportTemplateUtils.getSentenceSeparator(vars.get("$field.SENTENCESEPARATOR"));
-    var currDate = vars.get("$sys.date");
+    var binMetadatas = db.getBinaryMetadata("LEADIMPORT", "IMPORTFILE", vars.get("$field.LEADIMPORTID"), false, SqlUtils.getBinariesAlias(), "");
 
-    var params = 
+    if (binMetadatas.length > 0)
     {
-        importdefid: vars.get("$field.LEADIMPORTID"),
-        assignmentRowId: assignmentRowId,
-        binId: binId,
-        recordSep: recordSep,
-        fieldSep: fieldSep, 
-        fieldLimit: fieldLimit,
-        user: user,
-        source: vars.getString("$field.IMPORTSOURCE"),
-        currDate:  currDate,
-        userId: EmployeeUtils.getCurrentUserId(),
-        importName: name
-    }
+        var binId = binMetadatas[0].id;
+
+        var assignmentRowId = vars.get("$field.LEADIMPORTID");
+        var name = vars.get("$field.NAME");
+        var user = vars.get("$sys.user");
 
-    //process.execute("importLead_serverProcess", params);
-    var processConfig = process.createStartAsyncConfig().setName("importLead_serverProcess")
-                                                        .setLocalVariables(params)
-                                                        .setShowErrorDialog(false)
-                                                        .setUser(user)
-                                                        .setThreadPriority(process.THREADPRIORITY_LOW)
-                                                        .setTimerType(process.TIMERTYPE_SERVER);
-    process.startAsync(processConfig);
-} else {
-    question.showMessage("Error: The Importfile could not be found anymore.");
+        var fieldSep = ExportTemplateUtils.getFieldSeparator(vars.get("$field.FIELDSEPARATOR"));
+        var fieldLimit = ExportTemplateUtils.getFieldDeLimiter(vars.get("$field.FIELDDELIMITERS"));
+        var recordSep = ExportTemplateUtils.getSentenceSeparator(vars.get("$field.SENTENCESEPARATOR"));
+        var currDate = vars.get("$sys.date");
+
+        var params = 
+        {
+            importdefid: vars.get("$field.LEADIMPORTID"),
+            assignmentRowId: assignmentRowId,
+            binId: binId,
+            recordSep: recordSep,
+            fieldSep: fieldSep, 
+            fieldLimit: fieldLimit,
+            user: user,
+            source: vars.getString("$field.IMPORTSOURCE"),
+            currDate:  currDate,
+            userId: user,
+            importName: name
+        }
+
+        //process.execute("importLead_serverProcess", params);
+        var processConfig = process.createStartAsyncConfig().setName("importLead_serverProcess")
+                                                            .setLocalVariables(params)
+                                                            .setShowErrorDialog(false)
+                                                            .setUser(user)
+                                                            .setThreadPriority(process.THREADPRIORITY_LOW)
+                                                            .setTimerType(process.TIMERTYPE_SERVER);
+        process.startAsync(processConfig);
+    } else
+    {
+        question.showMessage(translate.text("Error: The Importfile could not be found anymore."));
+    }
 }
\ No newline at end of file
diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index d3a73acb59..632eefce7c 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -7698,6 +7698,9 @@
     <entry>
       <key>was set to</key>
     </entry>
+    <entry>
+      <key>The data of this Leadimport has already been transfered. Do you want to transfer it again?</key>
+    </entry>
     <entry>
       <key>Observe ID</key>
     </entry>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 3209039e43..bb47b0cdfa 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -98,6 +98,10 @@
       <key>Variables</key>
       <value>Variablen</value>
     </entry>
+    <entry>
+      <key>The data of this Leadimport has already been transfered. Do you want to transfer it again?</key>
+      <value>Die Daten dieses Leadimports wurden schon transferiert. Wollen Sie diese nochmal transferien?</value>
+    </entry>
     <entry>
       <key>Finished</key>
       <value>Fertig</value>
@@ -10225,6 +10229,10 @@ Bitte Datumseingabe prüfen</value>
     <entry>
       <key>Import Documents</key>
     </entry>
+    <entry>
+      <key>Error: The Importfile could not be found anymore.</key>
+      <value>Fehler: Die Importdatei konnte nicht mehr gefunden werden.</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 083c42b3ca..585caf0c3e 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -7779,6 +7779,9 @@
     <entry>
       <key>was set to</key>
     </entry>
+    <entry>
+      <key>The data of this Leadimport has already been transfered. Do you want to transfer it again?</key>
+    </entry>
     <entry>
       <key>Observe ID</key>
     </entry>
-- 
GitLab