diff --git a/entity/CampaignCost_entitiy/CampaignCost_entitiy.aod b/entity/CampaignCost_entitiy/CampaignCost_entitiy.aod index a280adae7f0d34b12abf8c984b684e3b4e43e81a..3896ae9bcc651e8116b2d587e3b379e1ba273212 100644 --- a/entity/CampaignCost_entitiy/CampaignCost_entitiy.aod +++ b/entity/CampaignCost_entitiy/CampaignCost_entitiy.aod @@ -147,6 +147,10 @@ <name>ContainerName_param</name> <valueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/containername_param/valueProcess.js</valueProcess> </entityParameter> + <entityParameter> + <name>ExcludedKeyIdsSubquery_param</name> + <valueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/excludedkeyidssubquery_param/valueProcess.js</valueProcess> + </entityParameter> </children> </entityConsumer> <entityActionGroup> diff --git a/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/excludedkeyidssubquery_param/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/excludedkeyidssubquery_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f9fdcc7295ca3443a1ba782155d529cc5f8103a6 --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/excludedkeyidssubquery_param/valueProcess.js @@ -0,0 +1,18 @@ +import("system.neon"); +import("system.vars"); +import("system.db"); +import("Sql_lib"); +import("system.result"); + +var cond = SqlCondition.begin() + .andPrepareVars("CAMPAIGNCOST.CAMPAIGN_ID", "$field.CAMPAIGN_ID"); + +if (vars.get("$field.CAMPAIGNSTEP_ID")) + cond.andPrepareVars("CAMPAIGNCOST.CAMPAIGNSTEP_ID", "$field.CAMPAIGNSTEP_ID"); +else + cond.and("CAMPAIGNCOST.CAMPAIGNSTEP_ID is null") + +if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW) + cond.andPrepareVars("CAMPAIGNCOST.CAMPAIGNCOSTID", "$field.CAMPAIGNCOSTID", "# <> ?"); + +result.string(db.translateStatement(cond.buildSql("select CATEGORY from CAMPAIGNCOST", "1=2", "group by CATEGORY"))); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/netperparticipant/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/netperparticipant/valueProcess.js index 21c35016923a3ff94141e6d0d2e652764b35a41e..f3dedbcae4b8b310a011af1104b8706b3421998b 100644 --- a/entity/CampaignCost_entitiy/entityfields/netperparticipant/valueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/netperparticipant/valueProcess.js @@ -5,7 +5,7 @@ import("system.eMath"); var netto = parseFloat(vars.get("$field.NET")); var countParticipants = parseFloat(vars.get("$field.countParticipants")); -if (countParticipants > 0) +if (netto && countParticipants &&countParticipants > 0) result.string(eMath.roundDec(netto / countParticipants, 2, eMath.ROUND_HALF_UP)); else result.string(0); \ No newline at end of file diff --git a/entity/CampaignStep_entity/CampaignStep_entity.aod b/entity/CampaignStep_entity/CampaignStep_entity.aod index 96cb0aedca3baae8c49f540b87dd5a93294d2344..19cea84b44382052e07acf06cc8d93a57f082801 100644 --- a/entity/CampaignStep_entity/CampaignStep_entity.aod +++ b/entity/CampaignStep_entity/CampaignStep_entity.aod @@ -218,6 +218,12 @@ </entityParameter> </children> </entityConsumer> + <entityField> + <name>COST</name> + <title>Cost</title> + <contentType>NUMBER</contentType> + <outputFormat>#,##0.00</outputFormat> + </entityField> </entityFields> <recordContainers> <dbRecordContainer> @@ -295,6 +301,10 @@ <name>DESCRIPTION.value</name> <recordfield>CAMPAIGNSTEP.DESCRIPTION</recordfield> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>COST.value</name> + <expression>%aditoprj%/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/cost.value/expression.js</expression> + </dbRecordFieldMapping> </recordFieldMappings> </dbRecordContainer> </recordContainers> diff --git a/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/cost.value/expression.js b/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/cost.value/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..90244a5bfed8a35a3de7ea631a8414c3d9916c97 --- /dev/null +++ b/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/cost.value/expression.js @@ -0,0 +1,3 @@ +import("system.result"); + +result.string("(select sum(NET) from CAMPAIGNCOST where CAMPAIGNCOST.CAMPAIGN_ID = CAMPAIGNSTEP.CAMPAIGN_ID and CAMPAIGNCOST.CAMPAIGNSTEP_ID = CAMPAIGNSTEP.CAMPAIGNSTEPID)") \ No newline at end of file diff --git a/entity/KeywordEntry_entity/KeywordEntry_entity.aod b/entity/KeywordEntry_entity/KeywordEntry_entity.aod index 61a86af519a4843e588949be61697ff7c54e6bd1..6f3c591388a32dd3d3c1236061bd0ed30f21a18c 100644 --- a/entity/KeywordEntry_entity/KeywordEntry_entity.aod +++ b/entity/KeywordEntry_entity/KeywordEntry_entity.aod @@ -445,6 +445,12 @@ </entityParameter> </children> </entityConsumer> + <entityParameter> + <name>ExcludedKeyIdsSubquery_param</name> + <expose v="true" /> + <documentation>%aditoprj%/entity/KeywordEntry_entity/entityfields/excludedkeyidssubquery_param/documentation.adoc</documentation> + <description>PARAMETER</description> + </entityParameter> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/KeywordEntry_entity/entityfields/excludedkeyidssubquery_param/documentation.adoc b/entity/KeywordEntry_entity/entityfields/excludedkeyidssubquery_param/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..5eb6c62c6b9086cf2b3f9818d2ea97612d585d6f --- /dev/null +++ b/entity/KeywordEntry_entity/entityfields/excludedkeyidssubquery_param/documentation.adoc @@ -0,0 +1,2 @@ +Can be filled with a subquery-string, which delivers KeyIds to exclude. +The subquery is used insade a "KEYID not in(...)" \ No newline at end of file diff --git a/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js b/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js index 4fb1ef2f327547a69afb2fe8d5e65cfa2dc1de00..e027aee8210372b3f4626d5286fc48df714de49c 100644 --- a/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js +++ b/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js @@ -1,3 +1,4 @@ +import("system.logging"); import("system.vars"); import("system.db"); import("system.result"); @@ -10,5 +11,8 @@ if (vars.get("$param.OnlyActives_param") == "true") cond.andPrepare("AB_KEYWORD_ENTRY.ISACTIVE", "1"); } +if (vars.exists("$param.ExcludedKeyIdsSubquery_param") && vars.get("$param.ExcludedKeyIdsSubquery_param")) + cond.and("AB_KEYWORD_ENTRY.KEYID not in (" + vars.get("$param.ExcludedKeyIdsSubquery_param") + ")"); + var condStr = db.translateCondition(cond.build("1 = 1")); result.string(condStr); \ No newline at end of file diff --git a/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod b/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod index cbf63b52c35d2be87472f64fd3c3eb6c48593caa..d9ab350b2ee6df71af1690c6db3775aeac3a2f17 100644 --- a/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod +++ b/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod @@ -35,6 +35,10 @@ <name>88fbd366-0107-44b7-8d9c-f4fee89c0637</name> <entityField>CampaignStatus</entityField> </entityFieldLink> + <entityFieldLink> + <name>27558e2a-a377-4126-a29d-422d2d5a44b4</name> + <entityField>COST</entityField> + </entityFieldLink> </fields> </genericViewTemplate> </children>