Skip to content
Snippets Groups Projects
onDBInsert.js 1.85 KiB
import("Sql_lib");
import("DocumentTemplate_lib");
import("system.result");
import("system.vars");
import("system.entities");
import("system.db");
import("system.util");
import("Document_lib");
import("Bulkmail_lib");

if (vars.get("$context.currentTemplateType") != DocumentTemplate.types.EML)
    var content = vars.get("$field.content");

var bindata = vars.get("$field.bindata");
var rowdata = vars.get("$local.rowdata");
var bulkMailId = rowdata["BULKMAIL.BULKMAILID"];
var templateId = rowdata["BULKMAIL.DOCUMENTTEMPLATE_ID"];
var bulkMailName = rowdata["BULKMAIL.NAME"];

var template = DocumentTemplate.getSelectedTemplate(templateId, new FileUpload(bindata), content, DocumentTemplate.types.HTML);

if (template.content)
{
    if (!template.filename)
        template.filename = bulkMailName + ".html";
    db.insertBinary("BULKMAIL", "DOCUMENT", bulkMailId, 
        "", template.content, template.filename, "", "", SqlUtils.getBinariesAlias());
}

var contactIds = [];

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) 
    {
        return pRecipient["CONTACT_ID"];
    });
}

if (vars.getString("$param.PresetRecipients_param"))
    contactIds = contactIds.concat(JSON.parse(vars.getString("$param.PresetRecipients_param")));

if (contactIds && contactIds.length > 0)
    BulkMailUtils.addRecipients(bulkMailId, BulkMailUtils.filterNewRecipients(bulkMailId, contactIds));