From 57468dd129516524d76845f1f1cf0fc48ea9f73a Mon Sep 17 00:00:00 2001 From: Johannes Hoermann <j.hoermann@adito.de> Date: Fri, 26 Jul 2019 11:59:26 +0200 Subject: [PATCH] Campaign steps: filter previous --- entity/CampaignStep_entity/CampaignStep_entity.aod | 9 ++++++++- .../children/maxsort_param/valueProcess.js | 4 ++++ .../recordcontainers/db/conditionProcess.js | 13 +++++++++---- .../recordcontainers/db/onDBInsert.js | 12 +++++++----- process/Campaign_lib/process.js | 8 +++++--- process/Sql_lib/process.js | 2 +- 6 files changed, 34 insertions(+), 14 deletions(-) create mode 100644 entity/CampaignStep_entity/entityfields/campaignstepsconsumer/children/maxsort_param/valueProcess.js diff --git a/entity/CampaignStep_entity/CampaignStep_entity.aod b/entity/CampaignStep_entity/CampaignStep_entity.aod index 99df1396f1f..2aeb6248fe3 100644 --- a/entity/CampaignStep_entity/CampaignStep_entity.aod +++ b/entity/CampaignStep_entity/CampaignStep_entity.aod @@ -338,9 +338,12 @@ <entityParameter> <name>campaignId_param</name> <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/campaignstepsconsumer/children/campaignid_param/valueProcess.js</valueProcess> - <expose v="true" /> <mandatory v="true" /> </entityParameter> + <entityParameter> + <name>maxSort_param</name> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/campaignstepsconsumer/children/maxsort_param/valueProcess.js</valueProcess> + </entityParameter> </children> </entityConsumer> <entityField> @@ -379,6 +382,10 @@ <onActionProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/newbulkmail/onActionProcess.js</onActionProcess> <iconId>VAADIN:AT</iconId> </entityActionField> + <entityParameter> + <name>maxSort_param</name> + <expose v="true" /> + </entityParameter> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/CampaignStep_entity/entityfields/campaignstepsconsumer/children/maxsort_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignstepsconsumer/children/maxsort_param/valueProcess.js new file mode 100644 index 00000000000..00062fc7612 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/campaignstepsconsumer/children/maxsort_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(parseInt(vars.get("$field.SORTING")) - 1); \ No newline at end of file diff --git a/entity/CampaignStep_entity/recordcontainers/db/conditionProcess.js b/entity/CampaignStep_entity/recordcontainers/db/conditionProcess.js index c693832d8e3..1049e6cdec0 100644 --- a/entity/CampaignStep_entity/recordcontainers/db/conditionProcess.js +++ b/entity/CampaignStep_entity/recordcontainers/db/conditionProcess.js @@ -1,7 +1,12 @@ +import("system.db"); +import("Sql_lib"); import("system.vars"); import("system.result"); -if(vars.exists("$param.campaignId_param") && vars.get("$param.campaignId_param")) -{ - result.string("CAMPAIGN_ID = '" + vars.getString("$param.campaignId_param") + "'"); -} +var cond = SqlCondition.begin() + .andPrepareVars("CAMPAIGNSTEP.CAMPAIGN_ID", "$param.campaignId_param"); + +cond.andPrepareIfSet("CAMPAIGNSTEP.SORTING", vars.getString("$param.maxSort_param"), "# <= ?"); + + +result.string(db.translateCondition(cond.build("1=1"))); \ No newline at end of file diff --git a/entity/Campaign_entity/recordcontainers/db/onDBInsert.js b/entity/Campaign_entity/recordcontainers/db/onDBInsert.js index 3e50c24a9be..6d2693518fe 100644 --- a/entity/Campaign_entity/recordcontainers/db/onDBInsert.js +++ b/entity/Campaign_entity/recordcontainers/db/onDBInsert.js @@ -1,3 +1,4 @@ +import("system.neon"); import("Employee_lib"); import("system.translate"); import("KeywordRegistry_basic"); @@ -7,16 +8,17 @@ import("system.db"); import("system.datetime"); import("Campaign_lib"); -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.originalCampaignIdCopy_param")) - CampaignUtils.copyCampaignSteps(vars.getString("$param.originalCampaignIdCopy_param"), vars.get("$field.CAMPAIGNID")); +var rowdata = vars.get("$local.rowdata"); +var campaignId = vars.get("$local.uid"); + +if (vars.get("$param.originalCampaignIdCopy_param")) + CampaignUtils.copyCampaignSteps(vars.getString("$param.originalCampaignIdCopy_param"), campaignId); else { - var rowdata = vars.get("$local.rowdata"); - var threeWeeks = datetime.ONE_WEEK * 3; var inThreeWeeks = datetime.date() + threeWeeks; - var campaignId = vars.get("$local.uid"); + var campaignStepId = util.getNewUUID(); var campaignStepName = translate.text("Added"); diff --git a/process/Campaign_lib/process.js b/process/Campaign_lib/process.js index f9e374f70b9..4557361ebd0 100644 --- a/process/Campaign_lib/process.js +++ b/process/Campaign_lib/process.js @@ -420,14 +420,16 @@ CampaignUtils.copyCampaign = function(pCampaignid, pDescription, pEmplContactId, /** * copies all campaign steps from one campaign to another * - * @param {String} pSourceOfferId - * @param {String} pTargetOfferId + * @param {String} pSourceCampaignId + * @param {String} pTargetCampaignId */ CampaignUtils.copyCampaignSteps = function(pSourceCampaignId, pTargetCampaignId) { var InputMapping = { "CAMPAIGNSTEP": { - condition: "CAMPAIGN_ID = '" + pSourceCampaignId + "' order by SORTING", + condition: db.translateCondition(SqlCondition().begin() + .andPrepare("CAMPAIGN.CAMPAIGN_ID", pSourceCampaignId) + .buildSql("", "1=2", "order by SORTING", false)), ValueMapping: { "CAMPAIGN_ID" : pTargetCampaignId } diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js index 96fad8157da..e94147d3228 100644 --- a/process/Sql_lib/process.js +++ b/process/Sql_lib/process.js @@ -393,7 +393,7 @@ SqlCondition.prototype.orIn = function(field, values, fieldType, not) { * @return {SqlCondition} current SqlCondition-object */ SqlCondition.prototype._in = function(field, values, fieldType, not) { - if (values.length > 0) + if (values && values.length > 0) { if (fieldType == undefined) fieldType = SqlUtils.getSingleColumnType(field, undefined, this.alias); -- GitLab