Skip to content
Snippets Groups Projects
Commit 25527066 authored by Sebastian Listl's avatar Sebastian Listl :speech_balloon:
Browse files

Merge branch 'm_1080462_bulkmail_testrun_user_feedback' into '2021.1'

M 1080462 bulkmail testrun user feedback

See merge request xrm/basic!1148
parents 8a634527 e3923b61
No related branches found
No related tags found
No related merge requests found
import("Communication_lib");
import("system.translate");
import("Sql_lib");
import("system.entities");
import("system.vars");
import("Bulkmail_lib");
import("Employee_lib");
import("Contact_lib");
import("system.question");
var bulkMailId = vars.get("$field.BULKMAILID")
var recipientLoadConfig = entities.createConfigForLoadingRows()
.fields(["BULKMAILRECIPIENTID", "CONTACT_ID", "EMAIL_ADDRESS", "PERSON_ID", "ORGANISATION_ID"])
.entity("BulkmailRecipient_entity")
.provider("RecipientsToBeMailed")
.addParameter("BulkMailId_param", bulkMailId)
.addParameter("IsTestMail_param", "true");
var recipientCount = entities.getRowCount(recipientLoadConfig);
var testRecipientCount = new SqlBuilder().selectCount("BULKMAILTESTRECIPIENT.CONTACT_ID")
.from("BULKMAILTESTRECIPIENT")
.where("BULKMAILTESTRECIPIENT.BULKMAIL_ID", bulkMailId)
.cell();
if(testRecipientCount == 0 || recipientCount == 0)
{
var msg = translate.text("The test run is not properly configured.")
if (testRecipientCount == 0)
{
msg += "\n" + translate.text("There are no test recipients.")
}
if (recipientCount == 0)
{
msg += "\n" + translate.text("No recipient is marked for test run replacement.")
}
msg += "\n\n" + translate.text("Should a test email be sent to you instead?")
var sendToUserInstead = question.askYesNo(translate.text("Test Run"), msg, false);
if (sendToUserInstead)
{
BulkMailUtils.sendBulkMailOnServer(bulkMailId, true);
}
}
else
{
BulkMailUtils.sendBulkMailOnServer(bulkMailId, true);
}
BulkMailUtils.sendBulkMailOnServer(vars.get("$field.BULKMAILID"), true);
......@@ -94,6 +94,10 @@
<key>Turnover and Forecast</key>
<value>Umsatz und Forecast</value>
</entry>
<entry>
<key>The test run is not properly configured.</key>
<value>Der Testversand ist nicht richtig konfiguriert.</value>
</entry>
<entry>
<key>Turnover, Forecast and Planning</key>
<value>Umsatz, Forecast und Planung</value>
......@@ -6920,6 +6924,10 @@
<key>No contacts selected</key>
<value>Keine Kontakte ausgewählt</value>
</entry>
<entry>
<key>Should a test email be sent to you instead?</key>
<value>Soll stattdessen eine Testmail an sie selbst versendet werden?</value>
</entry>
<entry>
<key>My Campaigns</key>
<value>Meine Kampagnen</value>
......@@ -10852,6 +10860,10 @@ Bitte Datumseingabe prüfen</value>
<entry>
<key>LinkedIn (Organisation)</key>
</entry>
<entry>
<key>No recipient is marked for test run replacement.</key>
<value>Kein Empfänger ist für die Ersetzung zum Testversand markiert.</value>
</entry>
<entry>
<key>[TEST] UnitTest_lib</key>
</entry>
......@@ -10910,6 +10922,10 @@ Bitte Datumseingabe prüfen</value>
<entry>
<key>Kontext</key>
</entry>
<entry>
<key>There are no test recipients.</key>
<value>Es sind keine Testempfänger eingestellt.</value>
</entry>
<entry>
<key>Trait</key>
<value>Merkmal</value>
......
......@@ -25,7 +25,7 @@ import("system.notification");
import("Document_lib");
import("system.db");
import("system.workflow");
import("system.logging");
import("system.tools");
/**
* Functions for bulk mails.
......@@ -68,16 +68,18 @@ BulkMailUtils.sendBulkMailOnServer = function (pBulkMailId, pTestRun, pUser)
* Id of the bulk mail.<br>
* @param {Bool} pIsTestRun (optional) <p>
* True indicates a Testrun<br>
* @param {Bool} pUser (optional) <p>
* If there are no test recipients or no recipients marked for a test replacement in a test run
* we send an email to this user instead<br>
* @return {Object} <p>
* Count of sucessful and failed mails.<br>
*/
BulkMailUtils.sendBulkMail = function (pBulkMailId, pIsTestRun)
BulkMailUtils.sendBulkMail = function (pBulkMailId, pIsTestRun, pUser)
{
if (pIsTestRun == undefined)
{
pIsTestRun = false;
}
var sendUserTitle = project.getPreferenceValue("custom.bulkmail.user");
var [templateId, subject, emailSender, createActivity, bulkMailName, useTemplateAttachments] =
......@@ -109,6 +111,18 @@ BulkMailUtils.sendBulkMail = function (pBulkMailId, pIsTestRun)
.from("BULKMAILTESTRECIPIENT")
.where("BULKMAILTESTRECIPIENT.BULKMAIL_ID", pBulkMailId)
.table();
if (testRecipientData.length == 0 || recipientData.length == 0 && pUser)
{
var userData = tools.getUserByAttribute(tools.NAME,pUser,tools.PROFILE_DEFAULT);
if (userData)
{
testRecipientData = [userData[tools.PARAMS][tools.CONTACTID],userData[tools.PARAMS][tools.EMAIL]];
recipientData = [{"CONTACT_ID":userData[tools.PARAMS][tools.CONTACTID],"EMAIL":userData[tools.PARAMS][tools.EMAIL]}];
}
}
}
var mailrunId = util.getNewUUID();
......
......@@ -11,7 +11,7 @@ var startTime = datetime.date();
var bulkMailId = vars.get("$local.bulkMailId");
var user = vars.get("$local.user");
var testRun= vars.get("$local.testRun");
var res = BulkMailUtils.sendBulkMail(bulkMailId, testRun);
var res = BulkMailUtils.sendBulkMail(bulkMailId, testRun, user);
if (user && !testRun)
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment