Skip to content
Snippets Groups Projects
conditionProcess.js 1.29 KiB
import("KeywordRegistry_basic");
import("system.vars");
import("Util_lib");
import("system.db");
import("system.result");
import("Sql_lib");
import("MarketingCondition_lib");

var excludeWithCommunicationRejection = Utils.toBoolean(vars.get("$param.ExcludeCommunicationRejecting_param"));
var excludeBlacklisted = Utils.toBoolean(vars.get("$param.ExcludeBlacklisted_param"));
var excludedStatus = Utils.parseJSON(vars.get("$param.ExcludedStatus_param"));
var isTestMail = Utils.toBoolean(vars.get("$param.IsTestMail_param"));

var condition = newWhere("BULKMAILRECIPIENT.BULKMAIL_ID", "$param.BulkMailId_param");
if (isTestMail)
{
    condition.and("BULKMAILRECIPIENT.TEST_RECIPIENT", 1);
}
else
{
    if (excludeWithCommunicationRejection)
    {
        condition.and(new CommunicationSettingsCondition()
            .medium($KeywordRegistry.communicationMediumCampaign$mail(), "BULKMAILRECIPIENT.EMAIL_ADDRESS")
            .rejected()
            .buildNotExistsCondition());
    }
    if (excludeBlacklisted)
    {
        condition.and("not (" + CommunicationBlacklist.getMailRecipientBlacklist().buildCondition() + ")");
    }
    if (!Utils.isNullOrEmpty(excludedStatus))
    {
        condition.and("BULKMAILRECIPIENT.STATUS", excludedStatus, SqlBuilder.NOT_IN());
    }
}

result.string(condition.toSource());