Skip to content
Snippets Groups Projects
Commit effb122d authored by Martin Groppe's avatar Martin Groppe
Browse files

Merge branch 'marketing_1083564_copybulkmail' into '2021.1'

Marketing 1083564 copybulkmail

See merge request xrm/basic!1141
parents c357d8fb 32edb5eb
No related branches found
No related tags found
No related merge requests found
import("KeywordRegistry_basic");
import("Communication_lib");
import("Workflow_lib");
import("Binary_lib");
import("Sql_lib");
......@@ -28,28 +30,61 @@ if (template && template.content && BulkMailUtils.isValidTemplateType(template.t
SingleBinaryUtils.insert("BULKMAIL", "DOCUMENT", bulkMailId, template.content, template.filename);
}
var contactIds = [];
// CopyBulkMail Recipients
if (vars.get("$param.CopyBulkMailId_param")){
var BulkMailParam = vars.get("$param.CopyBulkMailId_param");
if (vars.get("$param.CopyBulkMailId_param"))
{
var config = entities.createConfigForLoadingRows()
.entity("BulkMailRecipient_entity")
.provider("BulkMailRecipients")
.addParameter("BulkMailId_param", vars.get("$param.CopyBulkMailId_param"))
.fields(["CONTACT_ID"]);
var copiedRecipients = entities.getRows(config);
contactIds = copiedRecipients.map(function(pRecipient)
var copiedRecipients = newSelect("CONTACT_ID, EMAIL_ADDRESS, IS_TEST_RECIPIENT")
.from("BULKMAILRECIPIENT")
.join("CONTACT", "BULKMAILRECIPIENT.CONTACT_ID = CONTACT.CONTACTID")
.where("BULKMAILRECIPIENT.BULKMAIL_ID", BulkMailParam)
// check if there's a commrestriction
.and(new CommunicationSettingsCondition()
.emails(CommUtil.getStandardSubSqlMail())
.rejected()
.existNoSettings()
.buildCondition())
.table()
var sqlBuilder = new SqlBuilder();
var inserts = copiedRecipients.map(function([contactId, email, test])
{
return pRecipient["CONTACT_ID"];
return sqlBuilder.buildInsertStatement({
"BULKMAIL_ID": bulkMailId,
"CONTACT_ID": contactId,
"STATUS": $KeywordRegistry.bulkMailRecipientStatus$pending(),
"EMAIL_ADDRESS": email,
"IS_TEST_RECIPIENT": test
}, "BULKMAILRECIPIENT", "BULKMAILRECIPIENTID");
});
}
db.inserts(inserts);
//CopyBulkMail TestRecipients
if (vars.getString("$param.PresetRecipients_param"))
contactIds = contactIds.concat(JSON.parse(vars.getString("$param.PresetRecipients_param")));
copiedRecipients = newSelect("CONTACT_ID, EMAIL_ADDRESS")
.from("BULKMAILTESTRECIPIENT")
.join("CONTACT", "BULKMAILTESTRECIPIENT.CONTACT_ID = CONTACT.CONTACTID")
.where("BULKMAILTESTRECIPIENT.BULKMAIL_ID", BulkMailParam)
// check if there's a commrestriction
.and(new CommunicationSettingsCondition()
.emails(CommUtil.getStandardSubSqlMail())
.rejected()
.existNoSettings()
.buildCondition())
.table()
if (contactIds && contactIds.length > 0)
BulkMailUtils.addRecipients(bulkMailId, BulkMailUtils.filterNewRecipients(bulkMailId, contactIds));
sqlBuilder = new SqlBuilder();
inserts = copiedRecipients.map(function([contactId, email])
{
return sqlBuilder.buildInsertStatement({
"BULKMAIL_ID": bulkMailId,
"CONTACT_ID": contactId,
"EMAIL_ADDRESS": email
}, "BULKMAILTESTRECIPIENT", "BULKMAILTESTRECIPIENTID");
});
db.inserts(inserts);
}
WorkflowSignalSender.inserted();
\ No newline at end of file
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