diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000000000000000000000000000000000000..4b4cb0e41a13b48bacb75b77b3e9ab50b0a32a67 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ +<component name="InspectionProjectProfileManager"> + <profile version="1.0"> + <option name="myName" value="Project Default" /> + <inspection_tool class="LossyEncoding" enabled="false" level="WARNING" enabled_by_default="false" /> + </profile> +</component> \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000000000000000000000000000000000000..94a25f7f4cb416c083d265558da75d457237d671 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/AditoBasic/ActivityDirectionKeyword_add_icon_attr.xml b/.liquibase/Data_alias/basic/2019.2/AditoBasic/ActivityDirectionKeyword_add_icon_attr.xml new file mode 100644 index 0000000000000000000000000000000000000000..eb2fe92e77c66f859c14fee4050918d3edc4f492 --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.2/AditoBasic/ActivityDirectionKeyword_add_icon_attr.xml @@ -0,0 +1,30 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="j-hoermann" id="1599ef6a-6293-40e3-8d6c-6ddfe1028e5e"> + <insert tableName="AB_KEYWORD_ATTRIBUTE"> + <column name="AB_KEYWORD_ATTRIBUTEID" value="e187a585-9ab1-4dd4-a2e9-2db14d4cc3a7"/> + + <column name="NAME" value="icon"/> + <column name="CONTAINER" value="ActivityDirection"/> + <column name="TYPE" value="CHAR_VALUE"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="7770bafa-22f0-4a74-a2cf-5001b620a4b2"/> + <column name="AB_KEYWORD_ENTRY_ID" value="c564719a-18ef-4b9e-b130-dde8b2b518ad"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="e187a585-9ab1-4dd4-a2e9-2db14d4cc3a7"/> + <column name="CHAR_VALUE" value="VAADIN:ARROW_BACKWARD"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="d2ad222a-7a5f-4d4d-ae8c-578ad3359d24"/> + <column name="AB_KEYWORD_ENTRY_ID" value="6f4c6e49-36ca-4b91-ba83-c507203e1eac"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="e187a585-9ab1-4dd4-a2e9-2db14d4cc3a7"/> + <column name="CHAR_VALUE" value="VAADIN:ARROW_FORWARD"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="e82923a6-5245-4d42-871b-91df297bc2ee"/> + <column name="AB_KEYWORD_ENTRY_ID" value="bb386131-ee36-4835-b458-6751f137a941"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="e187a585-9ab1-4dd4-a2e9-2db14d4cc3a7"/> + <column name="CHAR_VALUE" value="VAADIN:SHOP"/> + </insert> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AttributeType.xml b/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AttributeType.xml index 93ebb8ff36a275392160f83e2038deba91ac4d51..afce4587bceb283ab111c963a2d16390135a3240 100644 --- a/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AttributeType.xml +++ b/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AttributeType.xml @@ -34,6 +34,72 @@ <column name="SORTING" valueNumeric="9"/> <column name="ISACTIVE" valueNumeric="1"/> <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTE"> + <column name="AB_KEYWORD_ATTRIBUTEID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="NAME" value="defaultAvatarRepresentation"/> + <column name="CONTAINER" value="AttributeType"/> + <column name="TYPE" value="CHAR_VALUE"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="0c537ea0-6ba2-4d9a-a27c-7c6a6920e303"/> + <column name="AB_KEYWORD_ENTRY_ID" value="972e5eb1-a457-4b75-b966-1183896dac2c"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:INPUT"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="8ada9b1e-2f23-4e07-bbd6-16a3b76c5b62"/> + <column name="AB_KEYWORD_ENTRY_ID" value="cb7ecaea-b4e6-460e-9006-4a3d059b9857"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:DATE_INPUT"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="2ef73c53-30b4-47f9-94fb-87825e14743a"/> + <column name="AB_KEYWORD_ENTRY_ID" value="14de196a-aaa6-41b9-b503-3df1d45acc1e"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:CALC"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="c4cdd0dc-fc7e-443c-9c2f-c3d400ce3a1b"/> + <column name="AB_KEYWORD_ENTRY_ID" value="8a9791c1-655f-4340-91b4-cfdf6372fc75"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:CHECK_SQUARE_O"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="5afb11f5-e0eb-45f2-8018-cdf85078a236"/> + <column name="AB_KEYWORD_ENTRY_ID" value="1390813c-6b94-4336-9986-9bcaddab69ac"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:COMBOBOX"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="0954628d-e40e-45e0-a808-3194594b431e"/> + <column name="AB_KEYWORD_ENTRY_ID" value="2c188a17-2961-45df-bd68-34b55352375c"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:FILE_TREE"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="1516db79-6f15-4683-9314-cddebb29f995"/> + <column name="AB_KEYWORD_ENTRY_ID" value="75a67526-6b7c-400d-b958-e1f8f45466aa"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:DOT_CIRCLE"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="091bf881-e599-4baf-915a-e756ae75c52e"/> + <column name="AB_KEYWORD_ENTRY_ID" value="9d2f9605-1a5e-47d3-8920-168f5637e37f"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:KEY"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="a85fd75f-7346-41d0-b7fe-6c677bd3f392"/> + <column name="AB_KEYWORD_ENTRY_ID" value="ee893a1c-d007-46fe-a190-727124c4467b"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:TEXT_INPUT"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="a35c73d5-2719-422b-872b-1c6c1e0707a0"/> + <column name="AB_KEYWORD_ENTRY_ID" value="191d7293-3b3f-4dc7-bbe2-9da1a897f7df"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:TAG"/> </insert> <rollback> <delete tableName="AB_KEYWORD_ENTRY"> @@ -54,6 +120,27 @@ <param value="191d7293-3b3f-4dc7-bbe2-9da1a897f7df"/> </whereParams> </delete> + <delete tableName="AB_KEYWORD_ATTRIBUTE"> + <where>AB_KEYWORD_ATTRIBUTEID = ?</where> + <whereParams> + <param value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <where>AB_KEYWORD_ATTRIBUTERELATIONID in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)</where> + <whereParams> + <param value="0c537ea0-6ba2-4d9a-a27c-7c6a6920e303"/> + <param value="8ada9b1e-2f23-4e07-bbd6-16a3b76c5b62"/> + <param value="2ef73c53-30b4-47f9-94fb-87825e14743a"/> + <param value="c4cdd0dc-fc7e-443c-9c2f-c3d400ce3a1b"/> + <param value="5afb11f5-e0eb-45f2-8018-cdf85078a236"/> + <param value="0954628d-e40e-45e0-a808-3194594b431e"/> + <param value="1516db79-6f15-4683-9314-cddebb29f995"/> + <param value="091bf881-e599-4baf-915a-e756ae75c52e"/> + <param value="a85fd75f-7346-41d0-b7fe-6c677bd3f392"/> + <param value="a35c73d5-2719-422b-872b-1c6c1e0707a0"/> + </whereParams> + </delete> </rollback> </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaign.xml b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaign.xml new file mode 100644 index 0000000000000000000000000000000000000000..54404f2efe3b9073b0fe44e34f8176c728ac236e --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaign.xml @@ -0,0 +1,28 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="d.lechner" id="campaign_001"> + <createTable tableName="CAMPAIGN"> + <column name="CAMPAIGNID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_CAMPAIGN_CAMPAIGNID"/> + </column> + <column name="NAME" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="EMPLOYEE_CONTACT_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="DESCRIPTION" type="NVARCHAR(500)" /> + <column name="USER_NEW" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="DATE_NEW" type="DATE"> + <constraints nullable="false"/> + </column> + <column name="USER_EDIT" type="NVARCHAR(50)" /> + <column name="DATE_EDIT" type="DATE" /> + <column name="STATE" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + </createTable> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignCost.xml b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignCost.xml new file mode 100644 index 0000000000000000000000000000000000000000..19d63878df285f730940e4578eda5d7793c99194 --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignCost.xml @@ -0,0 +1,27 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="j.hoermann" id="ca18b650-d221-43bf-988d-7e47101e02be"> + <createTable tableName="CAMPAIGNCOST"> + <column name="CAMPAIGNCOSTID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_CAMPAIGNCOST_CAMPAIGNCOSTID"/> + </column> + <column name="CAMPAIGN_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="CAMPAIGNSTEP_ID" type="CHAR(36)"/> + <column name="CATEGORY" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="NET" type="NUMERIC(14,2)"/> + + <column name="USER_NEW" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="DATE_NEW" type="DATE"> + <constraints nullable="false"/> + </column> + <column name="USER_EDIT" type="NVARCHAR(50)" /> + <column name="DATE_EDIT" type="DATE"/> + </createTable> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignCostCategory.xml b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignCostCategory.xml new file mode 100644 index 0000000000000000000000000000000000000000..cce303ee3c6e5cd61f3707199c572e452cb9ab84 --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignCostCategory.xml @@ -0,0 +1,32 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="j.hoermann" id="17b2f361-6d08-4cd7-80da-53ebf84d06fe"> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="62cb479d-70b2-4cb4-91f5-5d1352f2131b"/> + <column name="KEYID" value="74aabda2-fb1f-4ed3-adcc-9509c533b52c"/> + <column name="TITLE" value="Printing costs"/> + <column name="CONTAINER" value="CampaignManagementCostCategory"/> + <column name="SORTING" valueNumeric="1"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="73b34a7c-5921-461c-8cf5-17e3aba01bd0"/> + <column name="KEYID" value="3c28d838-8bca-4b2d-82af-335f8a48984f"/> + <column name="TITLE" value="Shipping costs"/> + <column name="CONTAINER" value="CampaignManagementCostCategory"/> + <column name="SORTING" valueNumeric="2"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="7ef45db6-9151-45da-adb9-8e7759390ecd"/> + <column name="KEYID" value="94e04ba5-3cd4-42c2-85d7-6488dba75cf2"/> + <column name="TITLE" value="Layout costs"/> + <column name="CONTAINER" value="CampaignManagementCostCategory"/> + <column name="SORTING" valueNumeric="3"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignParticipant.xml b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignParticipant.xml new file mode 100644 index 0000000000000000000000000000000000000000..2977ad8355fe6e72bc0571a4ef8e89bac7e131fe --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignParticipant.xml @@ -0,0 +1,27 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="d.lechner" id="campaign_003"> + <createTable tableName="CAMPAIGNPARTICIPANT"> + <column name="CAMPAIGNPARTICIPANTID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_CAMPAIGNPARTICIPANT_CAMPAIGNPARTICIPANTID"/> + </column> + <column name="CONTACT_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="CAMPAIGN_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="CAMPAIGNSTEP_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="USER_NEW" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="DATE_NEW" type="DATE"> + <constraints nullable="false"/> + </column> + <column name="USER_EDIT" type="NVARCHAR(50)" /> + <column name="DATE_EDIT" type="DATE" /> + </createTable> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignParticipantLog.xml b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignParticipantLog.xml new file mode 100644 index 0000000000000000000000000000000000000000..9aecc0e95b24a922d05c9c724087a8a6a3d18236 --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignParticipantLog.xml @@ -0,0 +1,27 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="d.lechner" id="campaign_004"> + <createTable tableName="CAMPAIGNPARTICIPANTLOG"> + <column name="CAMPAIGNPARTICIPANTLOGID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_CAMPAIGNPARTICIPANTLOG_CAMPAIGNPARTICIPANTLOGID"/> + </column> + <column name="CAMPAIGNPARTICIPANT_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="CAMPAIGN_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="CAMPAIGNSTEP_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="USER_NEW" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="DATE_NEW" type="DATE"> + <constraints nullable="false"/> + </column> + <column name="USER_EDIT" type="NVARCHAR(50)" /> + <column name="DATE_EDIT" type="DATE" /> + </createTable> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignState.xml b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignState.xml new file mode 100644 index 0000000000000000000000000000000000000000..ead502807aa3d421af1242ce059178ce8c2085ac --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignState.xml @@ -0,0 +1,35 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="d.buechler" id="a3212838-7473-4e9d-bbf4-49dec0c1c399"> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="8d95cad1-3ab2-4b6c-9b38-064cb914216d"/> + + <column name="KEYID" value="e04c9c59-0590-463c-a10e-e25c583e9cf2"/> + <column name="TITLE" value="In planning"/> + <column name="CONTAINER" value="CampaignManagementStates"/> + <column name="SORTING" valueNumeric="1"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="3e5036a1-43a1-4bb1-ad56-ed42df7c9538"/> + + <column name="KEYID" value="42e1ee2b-0108-4ccf-ab43-29cbcb0377bf"/> + <column name="TITLE" value="Approved"/> + <column name="CONTAINER" value="CampaignManagementStates"/> + <column name="SORTING" valueNumeric="2"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="0759da45-5a5b-4163-a3a1-6a19f5a196c5"/> + + <column name="KEYID" value="db1f6e61-07ed-4185-abdb-f9103e5ee3e6"/> + <column name="TITLE" value="Completed"/> + <column name="CONTAINER" value="CampaignManagementStates"/> + <column name="SORTING" valueNumeric="3"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignStep.xml b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignStep.xml new file mode 100644 index 0000000000000000000000000000000000000000..377cb13f6c1cf81663d3d3da7ebbd6a9ffb99b24 --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignStep.xml @@ -0,0 +1,43 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="d.lechner" id="campaign_002"> + <createTable tableName="CAMPAIGNSTEP"> + <column name="CAMPAIGNSTEPID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_CAMPAIGNSTEP_CAMPAIGNSTEPID"/> + </column> + <column name="CAMPAIGN_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="EMPLOYEE_CONTACT_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="NAME" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="DESCRIPTION" type="NVARCHAR(500)" /> + <column name="DATE_START" type="DATE"> + <constraints nullable="false"/> + </column> + <column name="DATE_END" type="DATE"> + <constraints nullable="false"/> + </column> + <column name="STATE" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="SORTING" type="INTEGER"> + <constraints nullable="false"/> + </column> + <column name="MAXPARTICIPANTS" type="INTEGER"> + <constraints nullable="false"/> + </column> + <column name="USER_NEW" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="DATE_NEW" type="DATE"> + <constraints nullable="false"/> + </column> + <column name="USER_EDIT" type="NVARCHAR(50)" /> + <column name="DATE_EDIT" type="DATE" /> + </createTable> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignStepState.xml b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignStepState.xml new file mode 100644 index 0000000000000000000000000000000000000000..c7560f94c6359a13bcad0a3982955f6a4a49cc2f --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignStepState.xml @@ -0,0 +1,35 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="d.buechler" id="d5e7a9a5-d4a9-4425-a930-39ea2574ca47"> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="0dc9b27b-56d8-4650-92ee-bf85a3c67cb3"/> + + <column name="KEYID" value="bbf69673-2ec6-46f8-b231-684a31be9fbd"/> + <column name="TITLE" value="Open"/> + <column name="CONTAINER" value="CampaignManagementStepStates"/> + <column name="SORTING" valueNumeric="1"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="b1f5ea38-1b8c-47a8-a8ad-4c6ed9c26cda"/> + + <column name="KEYID" value="1df0f89b-836d-4242-99cb-334764a7abac"/> + <column name="TITLE" value="Active"/> + <column name="CONTAINER" value="CampaignManagementStepStates"/> + <column name="SORTING" valueNumeric="2"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="98f4cab1-74b8-4a23-a99a-c3624711beab"/> + + <column name="KEYID" value="2b9904ad-41d0-411c-8c3a-6f31d8e742b3"/> + <column name="TITLE" value="Completed"/> + <column name="CONTAINER" value="CampaignManagementStepStates"/> + <column name="SORTING" valueNumeric="3"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/alter_activityLink_Derby.xml b/.liquibase/Data_alias/basic/2019.2/alter_activityLink.xml similarity index 72% rename from .liquibase/Data_alias/basic/2019.2/alter_activityLink_Derby.xml rename to .liquibase/Data_alias/basic/2019.2/alter_activityLink.xml index 42dad5d1fe1233018439f983730dda81cbaf8f26..108c30fec50d07609f1fc73f106092a0724349ff 100644 --- a/.liquibase/Data_alias/basic/2019.2/alter_activityLink_Derby.xml +++ b/.liquibase/Data_alias/basic/2019.2/alter_activityLink.xml @@ -8,4 +8,14 @@ RENAME COLUMN ACTIVITYLINK.ACTIVITY_ID_NEW TO ACTIVITY_ID; </sql> </changeSet> + + <changeSet author="j.hoermann" id="9a86323f-a299-42a5-937a-f5e37d0db507"> + <preConditions onFail="CONTINUE"> + <not> + <dbms type="derby" /> + </not> + </preConditions> + + <modifyDataType tableName="ACTIVITYLINK" columnName="ACTIVITY_ID" newDataType="CHAR(36)"/> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/alter_activityLink_notDerby.xml b/.liquibase/Data_alias/basic/2019.2/alter_activityLink_notDerby.xml deleted file mode 100644 index 1f3a0b842f009417b8ed199eb918f583bf670807..0000000000000000000000000000000000000000 --- a/.liquibase/Data_alias/basic/2019.2/alter_activityLink_notDerby.xml +++ /dev/null @@ -1,6 +0,0 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet dbms="!derby" author="j.hoermann" id="634590d7-8bcc-40f9-9615-9de7cd91e586"> - <modifyDataType tableName="ACTIVITYLINK" columnName="ACTIVITY_ID" newDataType="CHAR(36)"/> - </changeSet> -</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic_Derby.xml b/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic.xml similarity index 72% rename from .liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic_Derby.xml rename to .liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic.xml index fa2c3652ee188650237957106649b056346a3c5c..6eee124a8c12c2870b013401622c68324bc8f065 100644 --- a/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic_Derby.xml +++ b/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic.xml @@ -13,4 +13,15 @@ RENAME COLUMN SALESPROJECT_MILESTONE.VALUE_NEW TO VALUE; </sql> </changeSet> + + <changeSet author="j.hoermann" id="f5074961-4aa0-4cd8-8541-7381ddfb0b71"> + <preConditions onFail="CONTINUE"> + <not> + <dbms type="derby" /> + </not> + </preConditions> + + <modifyDataType tableName="SALESPROJECT_MILESTONE" columnName="TYPE" newDataType="NVARCHAR(80)"/> + <modifyDataType tableName="SALESPROJECT_MILESTONE" columnName="VALUE" newDataType="CHAR(36)"/> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic_notDerby.xml b/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic_notDerby.xml deleted file mode 100644 index 41fdab8d76669d6e338ccad579c2745d9f1efb61..0000000000000000000000000000000000000000 --- a/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic_notDerby.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet dbms="!derby" author="j.hoermann" id="f5074961-4aa0-4cd8-8541-7381ddfb0b71"> - <modifyDataType tableName="SALESPROJECT_MILESTONE" columnName="TYPE" newDataType="NVARCHAR(80)"/> - <modifyDataType tableName="SALESPROJECT_MILESTONE" columnName="VALUE" newDataType="CHAR(36)"/> - </changeSet> -</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/changelog.xml b/.liquibase/Data_alias/basic/2019.2/changelog.xml index 071191bde2bf36e39cf9e1c9b04664b67e389d56..8dd34b786f956712f56e4ea679dd6f83064fce90 100644 --- a/.liquibase/Data_alias/basic/2019.2/changelog.xml +++ b/.liquibase/Data_alias/basic/2019.2/changelog.xml @@ -133,21 +133,28 @@ <include relativeToChangelogFile="true" file="update_Keyword_Essentials.xml" /> <include relativeToChangelogFile="true" file="Contactmanagement_added_ImageBlobs.xml" /> - <!-- Derby needs special handling --> - <include relativeToChangelogFile="true" file="alter_activityLink_notDerby.xml" /> - <include relativeToChangelogFile="true" file="alter_activityLink_Derby.xml" /> + <include relativeToChangelogFile="true" file="alter_activityLink.xml" /> <include relativeToChangelogFile="true" file="renameCycle_to_Milestone.xml" /> - <!-- Derby needs special handling --> - <include relativeToChangelogFile="true" file="change_Milestone_datatype_to_new_Keyword_logic_notDerby.xml" /> - <include relativeToChangelogFile="true" file="change_Milestone_datatype_to_new_Keyword_logic_Derby.xml" /> + <include relativeToChangelogFile="true" file="change_Milestone_datatype_to_new_Keyword_logic.xml" /> <include relativeToChangelogFile="true" file="update_Milestone_to_new_Keyword.xml" /> - + <include relativeToChangelogFile="true" file="data/example_person/PERSON_admin.xml" context="example"/> - <include relativeToChangelogFile="true" file="addDefaultAddresses.xml" context="example"/> + <include relativeToChangelogFile="true" file="addDefaultAddresses.xml" context="example"/> <include relativeToChangelogFile="true" file="AditoBasic/create_ab_loghistory.xml"/> <include relativeToChangelogFile="true" file="activity_rename_Creator_to_Responsible.xml" /> <include relativeToChangelogFile="true" file="miscellaneous/Contact_additionalColumns.xml" /> + + <include relativeToChangelogFile="true" file="CampaignManagement/create_campaign.xml"/> + <include relativeToChangelogFile="true" file="CampaignManagement/create_campaignStep.xml"/> + <include relativeToChangelogFile="true" file="CampaignManagement/create_campaignParticipant.xml"/> + <include relativeToChangelogFile="true" file="CampaignManagement/create_campaignParticipantLog.xml"/> + <include relativeToChangelogFile="true" file="CampaignManagement/create_campaignState.xml"/> + <include relativeToChangelogFile="true" file="CampaignManagement/create_campaignStepState.xml"/> + <include relativeToChangelogFile="true" file="CampaignManagement/create_campaignCost.xml"/> + <include relativeToChangelogFile="true" file="CampaignManagement/create_campaignCostCategory.xml"/> + + <include relativeToChangelogFile="true" file="AditoBasic/ActivityDirectionKeyword_add_icon_attr.xml"/> </databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2019.2/data/example_attribute/AttributeUsage.xml b/.liquibase/Data_alias/basic/2019.2/data/example_attribute/AttributeUsage.xml index e0c81c2dcf1939e780d8eb0a77cfa261780b7998..2de20c7371737c9e63d9328dec98a22efbd74568 100644 --- a/.liquibase/Data_alias/basic/2019.2/data/example_attribute/AttributeUsage.xml +++ b/.liquibase/Data_alias/basic/2019.2/data/example_attribute/AttributeUsage.xml @@ -4,336 +4,409 @@ <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="48e9320b-b2b4-4523-bb34-e68749fe1465"/> <column name="AB_ATTRIBUTE_ID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> + <column name="MAX_COUNT" valueNumeric="1"/> + <column name="OBJECT_TYPE" value="Activity"/> +</insert> +<insert tableName="AB_ATTRIBUTEUSAGE"> + <column name="AB_ATTRIBUTEUSAGEID" value="1d34b5e6-44ca-4577-925e-5b93e96be40a"/> + <column name="AB_ATTRIBUTE_ID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="b70e6047-c8d9-4be0-99a9-e8a6b4a07c9b"/> <column name="AB_ATTRIBUTE_ID" value="bfc5c9d3-274e-49e9-b8ab-8a4c24987026"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="6fb3f5c0-177e-41ad-88c1-44d096ead1de"/> <column name="AB_ATTRIBUTE_ID" value="ae04f4ba-0ddb-4188-9ec1-b9ce2d9b11d8"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="022f3b98-f716-47ca-aaa1-7db53f86b821"/> <column name="AB_ATTRIBUTE_ID" value="43a913ce-d73c-48a6-aa4b-ad050e1f1b26"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="aeb00c8d-dbee-4657-b5da-4e7aaa494120"/> <column name="AB_ATTRIBUTE_ID" value="96fc2fe2-8424-4ff2-8eb5-0d054e26af9b"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="3ea3348e-bffa-47d9-ac58-cfb9fb7c21e7"/> <column name="AB_ATTRIBUTE_ID" value="746bbd1d-344b-487e-adb5-d232aba57c0e"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="570f695f-5fd1-4f5a-b21d-62ab721db1ef"/> <column name="AB_ATTRIBUTE_ID" value="40bbf16f-566d-442c-8423-64be0ae40c81"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="c6bb63b2-afdb-4dde-a22a-0022926425d8"/> <column name="AB_ATTRIBUTE_ID" value="b8179c49-8ef0-4d8e-bcb2-762f9d05563b"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="924782ab-fc54-432e-aa19-d04a986fb3da"/> <column name="AB_ATTRIBUTE_ID" value="4c71d1da-9fff-43fc-b6fd-6fc24696c4bf"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="247a2d0b-dd07-4799-89fc-e85d3ef10947"/> <column name="AB_ATTRIBUTE_ID" value="3587a98c-03e4-4acc-af89-13b26ce4d956"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="d890f5d6-0330-457a-8650-9261f494fe9c"/> <column name="AB_ATTRIBUTE_ID" value="ddd06ec5-b0f8-4c12-8753-e7333fcf87cf"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="440250fb-033a-4db2-84ec-1f05e90b5d1d"/> <column name="AB_ATTRIBUTE_ID" value="4bb88e18-f160-4bf3-b9b2-d1a413dcecf5"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="b405df7f-07e3-43c6-b067-c29a083489db"/> <column name="AB_ATTRIBUTE_ID" value="e144b3f5-3074-4d92-a645-2b7aa601564c"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="85d90ab9-8b2c-4759-b730-14bdc21bdf0c"/> <column name="AB_ATTRIBUTE_ID" value="90578c72-fd3a-4b09-8116-31a017b6c623"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="d1c81512-9e0c-45ae-bf58-7fc025ecbe12"/> <column name="AB_ATTRIBUTE_ID" value="de6702e0-9253-4d7a-ab20-b8efb963ee63"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="b327f51d-1d52-4db0-96e1-3b1a02af603d"/> <column name="AB_ATTRIBUTE_ID" value="2d66c8b6-cf6e-44b2-b663-488f3f4d6647"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="745b9d55-4402-4b0d-95c1-60cc86d753c0"/> <column name="AB_ATTRIBUTE_ID" value="620a0903-6fde-4751-aefa-c398d64c13cc"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="fb175158-9a11-49df-9d2d-c5149826db0f"/> <column name="AB_ATTRIBUTE_ID" value="6e162c86-3b07-4817-8570-ef5598b4f455"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="a4c52b1c-2a9d-480f-9ed2-266ef94102f2"/> <column name="AB_ATTRIBUTE_ID" value="ee8c2bff-92c9-456a-a665-c7ccc3960f8d"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="b358d1b5-e3be-4b81-8f68-8b8bfe6084c2"/> <column name="AB_ATTRIBUTE_ID" value="33937757-d170-4c4f-bca7-2a687b0c3a8a"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="7aece23a-c0d2-432c-86da-f6b766752062"/> <column name="AB_ATTRIBUTE_ID" value="bae6db6b-259a-4f36-9112-4516b7f8cfeb"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="0a32ee8c-3fc7-4412-ab4a-e17668396954"/> <column name="AB_ATTRIBUTE_ID" value="ffeeca2a-2349-40dc-9b0c-4a8b3447d3df"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="79133e7e-fd63-4d71-90a2-96a487e5ab42"/> <column name="AB_ATTRIBUTE_ID" value="10d2cbd3-9c58-4e9d-9259-d556aba6cf6c"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="fdd04439-6302-41ec-bbf1-5b63e2142cbc"/> <column name="AB_ATTRIBUTE_ID" value="6537b5ae-9bfd-455e-8b48-183895b9b461"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="5f8563c1-5467-4655-a42f-72dcf43d184b"/> <column name="AB_ATTRIBUTE_ID" value="f5e7449a-f61e-4022-aa93-6b3916ddbed7"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="24f74162-380a-4f9e-bf71-1e8a51275118"/> <column name="AB_ATTRIBUTE_ID" value="f7aad2b0-021e-48dd-8286-a364d0ac9fca"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="ddee95f8-21f9-4b6b-850f-79e9f12d3c4c"/> <column name="AB_ATTRIBUTE_ID" value="61436f5e-b85a-477e-af8b-5369d12ad742"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="4704a3a1-7762-4863-8dca-6e3ce8b4ba9f"/> <column name="AB_ATTRIBUTE_ID" value="913457fc-361c-4af6-ab5a-85a0ad8640e5"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="c37d0b13-468b-4018-802e-a290ccd239b7"/> <column name="AB_ATTRIBUTE_ID" value="eaa9aea2-73f3-48f4-909d-81de5e09a75f"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="b1df815f-535f-46c6-9df5-0c43bbcc8c47"/> <column name="AB_ATTRIBUTE_ID" value="7a4282b8-8461-4486-9362-bc72ceb7b5df"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="f049d2f7-bacf-4b57-b40a-779111a0b944"/> <column name="AB_ATTRIBUTE_ID" value="0c86b9ad-1635-46b4-8ac7-3d9b00bc2b01"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="33b8e55d-227c-4a5c-8e92-89e429dc1157"/> <column name="AB_ATTRIBUTE_ID" value="14b71577-42d6-40c0-a377-a11df03aa324"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="2057fae3-bea6-4a90-8dcc-b795f677c7ac"/> <column name="AB_ATTRIBUTE_ID" value="d3f2348b-fad2-4e4c-9ff6-cb22b0a0cd93"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="c43230d6-984b-4b47-8c39-3fceb126641b"/> <column name="AB_ATTRIBUTE_ID" value="fb01b321-ec75-486b-a0ef-3adfe99a33b2"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="b3f6e18e-8bdc-4679-aaa5-895c08430532"/> <column name="AB_ATTRIBUTE_ID" value="149c1c4c-3742-46b5-9a31-7afe22965df7"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="b78f182a-bade-428a-9b12-fd40f52414a9"/> <column name="AB_ATTRIBUTE_ID" value="b49852b7-901d-4d6b-b5d8-b20d75678d4b"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="27a518a0-0456-4494-8d9e-a62afb70fd68"/> <column name="AB_ATTRIBUTE_ID" value="542ca620-3ad0-49cc-acf9-e31f4542f302"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="3c0a29b2-e98f-4aae-902d-e5ae691537f5"/> <column name="AB_ATTRIBUTE_ID" value="3eb8a90f-c17b-441e-9aa8-acde31e4544c"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="7593fe50-00be-42fc-9e75-8eae49fb2b25"/> <column name="AB_ATTRIBUTE_ID" value="9d0949b5-7c87-4663-9229-897057e03192"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="202789a8-4d69-43b2-ab38-708938081d68"/> <column name="AB_ATTRIBUTE_ID" value="a689a561-d30f-4215-8faa-97b8df3e5b68"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="642ee10a-b516-4fa3-95fc-f402992a0158"/> <column name="AB_ATTRIBUTE_ID" value="d0d78243-cc6e-4602-b77c-b3e669da2f01"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="6c6651b6-a8a5-4f89-82a1-3f1c22a8d9b6"/> <column name="AB_ATTRIBUTE_ID" value="ec874d78-6231-45d6-a4c2-193756587981"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="b55dd353-cb6b-48a1-8cad-c3e90f63a8b0"/> <column name="AB_ATTRIBUTE_ID" value="6d4dd325-7f30-4098-a391-ebae4f27988e"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="d546bc42-e452-4446-a85e-557f6c0bc88b"/> <column name="AB_ATTRIBUTE_ID" value="f8d8d58e-9381-4e44-aeae-284116ca3613"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="504487e9-86f8-4ff1-91a2-b364829fa86b"/> <column name="AB_ATTRIBUTE_ID" value="d0ae40d2-1a7f-45f6-bb0c-20ce6ae7efe2"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="33d64ce6-e8b4-4acf-ac75-0d99d0092c6c"/> <column name="AB_ATTRIBUTE_ID" value="956622a7-03b3-42a4-a7ef-f8936d92cff9"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="07704049-9ae8-4d07-86e3-1042ed104035"/> <column name="AB_ATTRIBUTE_ID" value="f0f0b150-ea60-46e5-ba4f-727c78c993d0"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="4757e926-3059-4969-b07a-f04479f6d723"/> <column name="AB_ATTRIBUTE_ID" value="c5f8b5f7-ddc0-4c88-bebd-be96fd37bb9c"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="22a31ed9-be4d-45db-ad2a-5777e9a785bf"/> <column name="AB_ATTRIBUTE_ID" value="262a8fbe-d6ef-4949-87ce-6202967136d7"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="d8352147-7866-40c2-8f1a-063ccc4b0c04"/> <column name="AB_ATTRIBUTE_ID" value="67edd12f-93cc-45d4-b86a-b59d19936442"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="55879930-2f90-44ec-a9b6-fdfe2226a7b0"/> <column name="AB_ATTRIBUTE_ID" value="78343572-20fa-454d-ab26-0e1ac0dccc9e"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="cc03ab69-248a-4ee0-9219-120fcc8c69da"/> <column name="AB_ATTRIBUTE_ID" value="9b2dd256-fe8e-4edd-9f1e-0a841103a41a"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="925a2fe7-2d7d-425b-b55d-71c3d6cfe554"/> <column name="AB_ATTRIBUTE_ID" value="f001e3a8-b888-49a8-89e1-96ecc503e936"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="55eed1d2-086c-4e25-a59e-ec3d1e8c3283"/> <column name="AB_ATTRIBUTE_ID" value="9c64aefe-23c0-4e64-ada5-02db5f4bcb85"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="c0f1778b-595f-4e76-831e-0df4b323f711"/> <column name="AB_ATTRIBUTE_ID" value="c31d3ee4-3e08-4a3e-acdb-5f5d236e01de"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="a22a9765-637e-4ca4-818a-e3acb8306776"/> <column name="AB_ATTRIBUTE_ID" value="15810377-58c8-4e22-8dd1-ed341f7baf0a"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="7e5726f4-16f4-4b18-ae95-a6ad24e49d40"/> <column name="AB_ATTRIBUTE_ID" value="3a0843a4-0d43-4b97-9fe5-4d4049ec79d3"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="1310d547-f5d2-4e30-8e30-0deeba7de746"/> <column name="AB_ATTRIBUTE_ID" value="685a771b-86d9-4493-80f1-de65fc613ea3"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="6462a324-535a-4978-86f2-e439f581571a"/> <column name="AB_ATTRIBUTE_ID" value="c2eb5976-39d0-4098-8e1f-1fff0c910faf"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="8c380566-bab2-4397-a7f7-a88f2c728388"/> <column name="AB_ATTRIBUTE_ID" value="fd8cd4b8-a284-4e1d-accd-310b85577c98"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="f6d3a5f3-04bd-4cf1-8057-11a1af4352a4"/> <column name="AB_ATTRIBUTE_ID" value="941a02f8-577f-40a9-8e43-0ea4d695f254"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="607b45dc-2a97-4005-9d38-488640665aa1"/> <column name="AB_ATTRIBUTE_ID" value="593bd38f-704a-480a-add3-22e0af9e2460"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="63801bc2-a0a2-4a3c-a531-1949ff3041a6"/> <column name="AB_ATTRIBUTE_ID" value="8a9ee08c-da32-40b0-93a3-3a388158dd3c"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="5bdf8396-30bb-4fbc-bdbe-304fa7d73fb2"/> <column name="AB_ATTRIBUTE_ID" value="a559f36c-768b-4fc4-b4f2-7dfd25fadb4a"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="f71f995d-0022-4144-95a9-88e33468b835"/> <column name="AB_ATTRIBUTE_ID" value="5929874c-ab20-4d18-9d75-083e39f8d576"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="d6982ee5-616a-4eb9-adf9-e571658851ea"/> <column name="AB_ATTRIBUTE_ID" value="0adcd251-d3d1-4bed-a299-39373c098cad"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="717abaf4-3ed3-4754-ba01-3192677ac399"/> <column name="AB_ATTRIBUTE_ID" value="786d0154-acec-4281-8ddc-52772d5ea1ea"/> + <column name="MAX_COUNT" valueNumeric="1"/> <column name="OBJECT_TYPE" value="Activity"/> </insert> <insert tableName="AB_ATTRIBUTEUSAGE"> @@ -463,7 +536,6 @@ <insert tableName="AB_ATTRIBUTEUSAGE"> <column name="AB_ATTRIBUTEUSAGEID" value="05576033-1bee-4547-ab82-fdfcdd039642"/> <column name="AB_ATTRIBUTE_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> - <column name="MAX_COUNT" valueNumeric="0"/> <column name="MIN_COUNT" valueNumeric="2"/> <column name="OBJECT_TYPE" value="Organisation"/> </insert> diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod index 0e53b6a7cd819fe6cff7e88e0bd0ec4e35367329..81b8e1987ede5b81ebbeea7f26683686a47b1585 100644 --- a/aliasDefinition/Data_alias/Data_alias.aod +++ b/aliasDefinition/Data_alias/Data_alias.aod @@ -500,6 +500,20 @@ <title>Creation user</title> <description></description> </entityFieldDb> + <entityFieldDb> + <name>LETTERSALUTATION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="200" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -7462,7 +7476,7 @@ <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> - <size v="50" /> + <size v="200" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -7581,7 +7595,7 @@ <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> - <size v="50" /> + <size v="200" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -8374,6 +8388,778 @@ </entityFieldDb> </entityFields> </entityDb> + <entityDb> + <name>CAMPAIGNPARTICIPANT</name> + <dbName></dbName> + <idColumn>CAMPAIGNPARTICIPANTID</idColumn> + <idGeneratorType v="0" /> + <idGeneratorInterval v="1" /> + <documentation></documentation> + <title></title> + <description></description> + <auditSyncConfig> + <name>auditSyncConfig</name> + <auditMode v="0" /> + <syncActive v="false" /> + <syncComplete v="true" /> + <syncDirection v="1" /> + <syncIds></syncIds> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>CAMPAIGN_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CAMPAIGNPARTICIPANTID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="91" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CONTACT_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="91" /> + <size v="10" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CAMPAIGNSTEP_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>CAMPAIGN</name> + <dbName></dbName> + <idColumn>CAMPAIGNID</idColumn> + <idGeneratorType v="0" /> + <idGeneratorInterval v="1" /> + <documentation></documentation> + <title></title> + <description></description> + <auditSyncConfig> + <name>auditSyncConfig</name> + <auditMode v="0" /> + <syncActive v="false" /> + <syncComplete v="true" /> + <syncDirection v="1" /> + <syncIds></syncIds> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="91" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DESCRIPTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="500" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>EMPLOYEE_CONTACT_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="91" /> + <size v="10" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CAMPAIGNID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>NAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>STATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>CAMPAIGNSTEP</name> + <dbName></dbName> + <idColumn>CAMPAIGNSTEPID</idColumn> + <idGeneratorType v="0" /> + <idGeneratorInterval v="1" /> + <documentation></documentation> + <title></title> + <description></description> + <auditSyncConfig> + <name>auditSyncConfig</name> + <auditMode v="0" /> + <syncActive v="false" /> + <syncComplete v="true" /> + <syncDirection v="1" /> + <syncIds></syncIds> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>CAMPAIGN_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="91" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_START</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="91" /> + <size v="10" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>EMPLOYEE_CONTACT_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>STATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SORTING</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CAMPAIGNSTEPID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="91" /> + <size v="10" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_END</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="91" /> + <size v="10" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>NAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MAXPARTICIPANTS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DESCRIPTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="500" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>CAMPAIGNPARTICIPANTLOG</name> + <dbName></dbName> + <idColumn>CAMPAIGNPARTICIPANTLOGID</idColumn> + <idGeneratorType v="0" /> + <idGeneratorInterval v="1" /> + <documentation></documentation> + <title></title> + <description></description> + <auditSyncConfig> + <name>auditSyncConfig</name> + <auditMode v="0" /> + <syncActive v="false" /> + <syncComplete v="true" /> + <syncDirection v="1" /> + <syncIds></syncIds> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>CAMPAIGN_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="91" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="91" /> + <size v="10" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CAMPAIGNPARTICIPANTLOGID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CAMPAIGNSTEP_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CAMPAIGNPARTICIPANT_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>CAMPAIGNCOST</name> + <dbName></dbName> + <idColumn>CAMPAIGNCOSTID</idColumn> + <idGeneratorType v="0" /> + <idGeneratorInterval v="1" /> + <documentation></documentation> + <title></title> + <description></description> + <auditSyncConfig> + <name>auditSyncConfig</name> + <auditMode v="0" /> + <syncActive v="false" /> + <syncComplete v="true" /> + <syncDirection v="1" /> + <syncIds></syncIds> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>CAMPAIGN_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="91" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CAMPAIGNCOSTID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CATEGORY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="91" /> + <size v="10" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>NET</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2" /> + <size v="14" /> + <scale v="2" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CAMPAIGNSTEP_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> </entities> </entityGroup> </aliasDefDb> diff --git a/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js b/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js index edc6c63a6391c12b33b79fee916d3ecd17515e15..55757887e4fe36f49983380be08686380f9d2e35 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js @@ -19,7 +19,7 @@ sqlHelper = new SqlMaskingUtils(); sqlQuery = "select OFFERID, " + sqlHelper.concat([sqlHelper.cast("OFFERCODE", SQLTYPES.CHAR, 10), KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.offerStatus(), "OFFER.STATUS")], " | ") + " as TITLECOLUMN, " - + sqlHelper.concat(["ORGANISATION.NAME"], " | ") // "'" + translate.text("Description") + ":'", sqlHelper.castLob("OFFER.INFO", 256) + + sqlHelper.concat(["ORGANISATION.NAME", "'| " + translate.text("Description") + ":'", sqlHelper.castLob("OFFER.INFO", 250)]) + " as DESCCOLUMN, OFFERCODE, ORGANISATION.NAME, CUSTOMERCODE " + " from OFFER " + " join CONTACT on OFFER.CONTACT_ID = CONTACTID " diff --git a/aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod b/aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod index c080c506aab66b4417c3d9ca26f3515a37afc35b..a78014b1d0cd10eb39a6f9667ad3a8347db650d0 100644 --- a/aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod +++ b/aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod @@ -2969,6 +2969,208 @@ </entityFieldDb> </entityFields> </entityDb> + <entityDb> + <name>ASYS_NOTIFICATIONCONTENTS</name> + <dbName></dbName> + <idColumn>CONTENTID</idColumn> + <idGeneratorType v="0" /> + <idGeneratorInterval v="1" /> + <documentation></documentation> + <title></title> + <description></description> + <auditSyncConfig> + <name>auditSyncConfig</name> + <auditMode v="0" /> + <syncActive v="false" /> + <syncComplete v="true" /> + <syncDirection v="1" /> + <syncIds></syncIds> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>CONTENTID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>FORCEDPRIORITY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ICON_INFO</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CREATIONDATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-5" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LIFETIME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-5" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DESCRIPTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LINK_INFO</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>VERSION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>RECIPIENTUSERIDS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="2147483647" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TYPECODE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>BACKPACK</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="2147483647" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CAPTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="512" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ORIGINATORNAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> </entities> </entityGroup> </aliasDefDb> diff --git a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod index 2d715c6e5a0360e97f68cafd23bfc6179425aca6..0737745e3dea53481ecc16cf6c385f09692501c6 100644 --- a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod +++ b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod @@ -26,9 +26,17 @@ <node name="INTERNAL_ADMINISTRATOR" kind="159" /> </node> </node> + <node name="Marketing" kind="123" title="Marketing"> + <icon>VAADIN:GROUP</icon> + <node name="Group4" kind="123" title=""> + <node name="Campaign" kind="10077" /> + <node name="INTERNAL_ADMINISTRATOR" kind="159" /> + </node> + </node> <node name="ADMINISTRATION" kind="123" title="Administration"> <icon>VAADIN:CONTROLLER</icon> <node name="Group3" kind="123" title=""> + <node name="Notification" kind="10077" /> <node name="Attribute" kind="10077" /> <node name="KeywordEntry" kind="10077" /> <node name="KeywordAttribute" kind="10077" /> diff --git a/entity/360Degree_entity/360Degree_entity.aod b/entity/360Degree_entity/360Degree_entity.aod index 027a6d9ee787bd05106a36d93a7f8fe993f530ad..8684c41b4dc28464f39b2cf582c98b4ab0db3e4a 100644 --- a/entity/360Degree_entity/360Degree_entity.aod +++ b/entity/360Degree_entity/360Degree_entity.aod @@ -122,6 +122,15 @@ <iconIdProcess>%aditoprj%/entity/360Degree_entity/entityfields/newmodule/children/newcontract/iconIdProcess.js</iconIdProcess> <stateProcess>%aditoprj%/entity/360Degree_entity/entityfields/newmodule/children/newcontract/stateProcess.js</stateProcess> </entityActionField> + <entityActionField> + <name>newCampaignParticipant</name> + <fieldType>ACTION</fieldType> + <title>Add to Campaign</title> + <onActionProcess>%aditoprj%/entity/360Degree_entity/entityfields/newmodule/children/newcampaignparticipant/onActionProcess.js</onActionProcess> + <iconId>NEON:GROUP_APPOINTMENT</iconId> + <stateProcess>%aditoprj%/entity/360Degree_entity/entityfields/newmodule/children/newcampaignparticipant/stateProcess.js</stateProcess> + <tooltip>Choose a campaign and a step to add the contact to a campaign</tooltip> + </entityActionField> </children> </entityActionGroup> <entityField> diff --git a/entity/360Degree_entity/entityfields/context_name/valueProcess.js b/entity/360Degree_entity/entityfields/context_name/valueProcess.js index 618f59f467b2f706dfca685c1e93818af1dbf3de..8c43c3b5ddb6ec03c7926371e2cecce626eb8410 100644 --- a/entity/360Degree_entity/entityfields/context_name/valueProcess.js +++ b/entity/360Degree_entity/entityfields/context_name/valueProcess.js @@ -1,5 +1,6 @@ +import("system.logging"); import("system.translate"); import("system.vars"); import("system.result"); - +logging.log(" -> " + vars.getString("$field.TARGET_CONTEXT")); result.string(translate.text(vars.getString("$field.TARGET_CONTEXT"))); \ No newline at end of file diff --git a/entity/360Degree_entity/entityfields/icon/valueProcess.js b/entity/360Degree_entity/entityfields/icon/valueProcess.js index 6b0bb83e3c5e90e1fd2f90c044fb085ac09d4a35..53cfb3d009757a5271e3c4583befe083d22ea745 100644 --- a/entity/360Degree_entity/entityfields/icon/valueProcess.js +++ b/entity/360Degree_entity/entityfields/icon/valueProcess.js @@ -14,4 +14,7 @@ switch (context) case "Contract": result.string("VAADIN:FILE_TEXT"); break; + case "Campaign": + result.string("NEON:GROUP_APPOINTMENT"); + break; } \ No newline at end of file diff --git a/entity/360Degree_entity/entityfields/newmodule/children/newcampaignparticipant/onActionProcess.js b/entity/360Degree_entity/entityfields/newmodule/children/newcampaignparticipant/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..b4e2d8936bab62bc9dd4fabb953c89196553d6bf --- /dev/null +++ b/entity/360Degree_entity/entityfields/newmodule/children/newcampaignparticipant/onActionProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("Campaign_lib"); + +CampaignUtils.addParticipant(vars.getString("$param.ObjectRowId_param")); \ No newline at end of file diff --git a/entity/360Degree_entity/entityfields/newmodule/children/newcampaignparticipant/stateProcess.js b/entity/360Degree_entity/entityfields/newmodule/children/newcampaignparticipant/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..da6fd5283abd2daf5d3b8c08591f3bc87cde12e1 --- /dev/null +++ b/entity/360Degree_entity/entityfields/newmodule/children/newcampaignparticipant/stateProcess.js @@ -0,0 +1,15 @@ +import("system.vars"); +import("system.neon"); +import("system.result"); + +var contextList = JSON.parse(vars.getString("$param.ObjectType_param")); +var found = false; +contextList.forEach(function (context) +{ + if(context == "Campaign") + found = true; +}); +if(found) + result.string(neon.COMPONENTSTATE_AUTO); +else + result.string(neon.COMPONENTSTATE_INVISIBLE); \ No newline at end of file diff --git a/entity/360Degree_entity/entityfields/organisationobjects/children/objecttype_param/valueProcess.js b/entity/360Degree_entity/entityfields/organisationobjects/children/objecttype_param/valueProcess.js index bb07a1ee2ed5f16932e450be46af31e10e5ec7ee..4c08b444ed989e17cfafc0ba94739f06c17d5538 100644 --- a/entity/360Degree_entity/entityfields/organisationobjects/children/objecttype_param/valueProcess.js +++ b/entity/360Degree_entity/entityfields/organisationobjects/children/objecttype_param/valueProcess.js @@ -1,4 +1,4 @@ import("system.vars"); import("system.result"); -result.object(["Salesproject", "Offer", "Contract"]); \ No newline at end of file +result.object(["Salesproject", "Offer", "Contract", "Campaign"]); \ No newline at end of file diff --git a/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js b/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js index 15de0e1ae47eb721911420272e0952a8d0aab01c..05350e2675ad54b2bb8422803c3951e3c7af1b1c 100644 --- a/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js +++ b/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js @@ -1,4 +1,4 @@ import("system.vars"); import("system.result"); -result.object(["Offer", "Contract"]); \ No newline at end of file +result.object(["Offer", "Contract", "Campaign"]); \ No newline at end of file diff --git a/entity/Activity_entity/Activity_entity.aod b/entity/Activity_entity/Activity_entity.aod index ed7f41f79ce2b5ec3267c56e0da9d45cee271ecc..9d47a294f6041c0368594d5d8224488b77e894b9 100644 --- a/entity/Activity_entity/Activity_entity.aod +++ b/entity/Activity_entity/Activity_entity.aod @@ -6,6 +6,7 @@ <documentation>%aditoprj%/entity/Activity_entity/documentation.adoc</documentation> <afterUiInit>%aditoprj%/entity/Activity_entity/afterUiInit.js</afterUiInit> <iconId>NEON:HISTORY</iconId> + <image>VAADIN:SHOP</image> <imageProcess>%aditoprj%/entity/Activity_entity/imageProcess.js</imageProcess> <recordContainer>db</recordContainer> <entityFields> diff --git a/entity/Activity_entity/afterUiInit.js b/entity/Activity_entity/afterUiInit.js index 0f3cf2b05300e9e6aeafee314f1d17de5ab2fc20..952cd632d70758bac2e56f8a47ff41c38f5eff1a 100644 --- a/entity/Activity_entity/afterUiInit.js +++ b/entity/Activity_entity/afterUiInit.js @@ -1,3 +1,5 @@ +import("Context_lib"); +import("Attribute_lib"); import("system.neon"); import("system.vars"); import("ActivityTask_lib"); @@ -5,4 +7,5 @@ import("ActivityTask_lib"); if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) { ActivityUtils.addLinkRecords("$param.ObjectId_param", "$param.RowId_param", "$param.PresetLinks_param", "$field.PARENT_CONTEXT", "$field.PARENT_ID"); + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); } \ No newline at end of file diff --git a/entity/Activity_entity/entityfields/direction_icon/valueProcess.js b/entity/Activity_entity/entityfields/direction_icon/valueProcess.js index ce60c7e40748a7e42e76f0762efb600701d2ffcb..5f9400b7f7159921ac01da7022222d4724785e07 100644 --- a/entity/Activity_entity/entityfields/direction_icon/valueProcess.js +++ b/entity/Activity_entity/entityfields/direction_icon/valueProcess.js @@ -2,20 +2,30 @@ import("system.vars"); import("system.result"); import("system.neon"); import("KeywordRegistry_basic"); +import("Keyword_lib"); var direction = vars.getString("$field.DIRECTION"); -var res; -switch (direction) + +if (direction) { - case $KeywordRegistry.activityDirection$incoming(): - res = "VAADIN:ARROW_BACKWARD"; - break; - case $KeywordRegistry.activityDirection$outgoing(): - res = "VAADIN:ARROW_FORWARD"; - break; - default: - res = ""; - break; -} + // cache to prevent multiple loading of the same icon-names + if (vars.exists("$context.cache_activity_dir-icon_" + direction) && vars.get("$context.cache_activity_dir-icon_" + direction)) + { + result.string(vars.get("$context.cache_activity_dir-icon_" + direction)); + } + else + { + var res = KeywordUtils.getAttributeRelationsByKey(direction, $KeywordRegistry.activityDirection())["icon"]; -result.string(res); + if (res) + { + result.string(res); + vars.set("$context.cache_activity_dir-icon_" + direction, res); + } + else + { + result.string(""); + vars.set("$context.cache_activity_dir-icon_" + direction, ""); + } + } +} \ No newline at end of file diff --git a/entity/Address_entity/Address_entity.aod b/entity/Address_entity/Address_entity.aod index 6d9770c1885149fa0c4a5aa85ec295b36eee439f..511c4edff31012fcec97a4d870b8b658e9f0a586 100644 --- a/entity/Address_entity/Address_entity.aod +++ b/entity/Address_entity/Address_entity.aod @@ -337,6 +337,12 @@ </entityParameter> </children> </entityConsumer> + <entityParameter> + <name>ReloadWorkaround_param</name> + <expose v="true" /> + <triggerRecalculation v="true" /> + <description>PARAMETER</description> + </entityParameter> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/AnyContact_entity/AnyContact_entity.aod b/entity/AnyContact_entity/AnyContact_entity.aod index c6813cc5c955aca10865035712c6177c8a95928d..bb167ee03350083aef1ea9caba4749f1347fc951 100644 --- a/entity/AnyContact_entity/AnyContact_entity.aod +++ b/entity/AnyContact_entity/AnyContact_entity.aod @@ -26,6 +26,12 @@ <fieldName>Relations</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>336fdc6b-05f8-40bc-89ba-d4ab98bd6948</name> + <entityName>CampaignParticipant_entity</entityName> + <fieldName>AnyContacts</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> </entityProvider> <entityField> diff --git a/entity/AttributeRelationTree_entity/AttributeRelationTree_entity.aod b/entity/AttributeRelationTree_entity/AttributeRelationTree_entity.aod index 0ec44e9eb92c6afa692b644fbbaacb5270166c64..b0c1cc1dc3b026692007e5bac012f544d0906f30 100644 --- a/entity/AttributeRelationTree_entity/AttributeRelationTree_entity.aod +++ b/entity/AttributeRelationTree_entity/AttributeRelationTree_entity.aod @@ -69,6 +69,18 @@ <fieldName>AttributeTree</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>148faad1-78f6-4ff2-a4d5-9607d919adb9</name> + <entityName>Salesproject_entity</entityName> + <fieldName>AttributeTree</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>8ed8bae6-c69e-45ce-9fc9-5fb43587a47b</name> + <entityName>Order_entity</entityName> + <fieldName>AttributeTree</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> </entityProvider> <entityField> @@ -100,6 +112,10 @@ <valueProcess>%aditoprj%/entity/AttributeRelationTree_entity/entityfields/specificattribute/children/objecttype_param/valueProcess.js</valueProcess> <triggerRecalculation v="true" /> </entityParameter> + <entityParameter> + <name>AttributeCount_param</name> + <valueProcess>%aditoprj%/entity/AttributeRelationTree_entity/entityfields/specificattribute/children/attributecount_param/valueProcess.js</valueProcess> + </entityParameter> </children> </entityConsumer> <entityActionGroup> diff --git a/entity/AttributeRelationTree_entity/entityfields/specificattribute/children/attributecount_param/valueProcess.js b/entity/AttributeRelationTree_entity/entityfields/specificattribute/children/attributecount_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..feab7983edde4183300888452e1f30a7cbf7050a --- /dev/null +++ b/entity/AttributeRelationTree_entity/entityfields/specificattribute/children/attributecount_param/valueProcess.js @@ -0,0 +1,25 @@ +import("system.result"); +import("system.db"); +import("Sql_lib"); +import("system.vars"); + +var objectType = vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param"); +var rowId = vars.exists("$param.ObjectRowId_param") && vars.get("$param.ObjectRowId_param"); +if (rowId) +{ + var condition = SqlCondition.begin() + .andPrepare("AB_ATTRIBUTERELATION.OBJECT_ROWID", rowId); + if (objectType) + condition.andPrepare("AB_ATTRIBUTERELATION.OBJECT_TYPE", objectType); + var relationCounts = db.table(condition.buildSql( + "select AB_ATTRIBUTE_ID, count(AB_ATTRIBUTE_ID) from AB_ATTRIBUTERELATION", + "1=2", + "group by AB_ATTRIBUTE_ID" + )); + var countObj = {}; + relationCounts.forEach(function (row) + { + this[row[0]] = row[1]; + }, countObj); + result.object(countObj); +} \ No newline at end of file diff --git a/entity/AttributeRelationTree_entity/entityfields/value/mandatoryProcess.js b/entity/AttributeRelationTree_entity/entityfields/value/mandatoryProcess.js index 564b24d9e769f678a1da3de8776adf941e94217e..e60d633a87eef5815501eb3cef2e8d7f69c71c04 100644 --- a/entity/AttributeRelationTree_entity/entityfields/value/mandatoryProcess.js +++ b/entity/AttributeRelationTree_entity/entityfields/value/mandatoryProcess.js @@ -3,4 +3,5 @@ import("system.result"); import("Attribute_lib"); var attributeType = AttributeUtil.getAttributeType(vars.get("$field.AB_ATTRIBUTE_ID")); -result.string(AttributeTypeUtil.getContentType(attributeType) != null); \ No newline at end of file +var contentType = AttributeTypeUtil.getContentType(attributeType); +result.string(contentType != null && contentType != "BOOLEAN"); \ No newline at end of file diff --git a/entity/AttributeRelation_entity/AttributeRelation_entity.aod b/entity/AttributeRelation_entity/AttributeRelation_entity.aod index 5a73fc1c19bdd491565c792edab9272448535580..e2b4e1f9aa68d6e3178dfbdf44c333179530499d 100644 --- a/entity/AttributeRelation_entity/AttributeRelation_entity.aod +++ b/entity/AttributeRelation_entity/AttributeRelation_entity.aod @@ -106,6 +106,18 @@ <fieldName>Attributes</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>6e01a982-198c-40ab-ae1b-7f5683d33f07</name> + <entityName>Salesproject_entity</entityName> + <fieldName>Attributes</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>1d33f00a-203d-4119-9178-c7dc0d087353</name> + <entityName>Order_entity</entityName> + <fieldName>Attributes</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> </entityProvider> <entityParameter> @@ -141,18 +153,6 @@ <name>ID_VALUE</name> <searchable v="false" /> </entityField> - <entityField> - <name>ATTRIBUTE_PARENT_ID</name> - <title>Superordinate Attribute</title> - <dropDownProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/attribute_parent_id/dropDownProcess.js</dropDownProcess> - <searchable v="false" /> - <displayValueProcess>%aditoprj%/entity/AttributeRelation_entity/entityfields/attribute_parent_id/displayValueProcess.js</displayValueProcess> - <onValueChangeTypes> - <element>MASK</element> - <element>PROCESS</element> - <element>PROCESS_SETVALUE</element> - </onValueChangeTypes> - </entityField> <entityConsumer> <name>Keywords</name> <fieldType>DEPENDENCY_OUT</fieldType> @@ -227,24 +227,15 @@ <dbRecordContainer> <name>db</name> <alias>Data_alias</alias> - <fromClauseProcess>%aditoprj%/entity/AttributeRelation_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess> <conditionProcess>%aditoprj%/entity/AttributeRelation_entity/recordcontainers/db/conditionProcess.js</conditionProcess> - <orderClauseProcess>%aditoprj%/entity/AttributeRelation_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess> <linkInformation> <linkInformation> - <name>14697123-47ee-4ff0-8ab2-2b8d1217f637</name> + <name>9565b2b1-ace7-4464-ae76-c71bd8f5f676</name> <tableName>AB_ATTRIBUTERELATION</tableName> <primaryKey>AB_ATTRIBUTERELATIONID</primaryKey> <isUIDTable v="true" /> <readonly v="false" /> </linkInformation> - <linkInformation> - <name>a988b754-86b1-4d27-8406-08712d12766c</name> - <tableName>AB_ATTRIBUTE</tableName> - <primaryKey>AB_ATTRIBUTEID</primaryKey> - <isUIDTable v="false" /> - <readonly v="false" /> - </linkInformation> </linkInformation> <recordFieldMappings> <dbRecordFieldMapping> @@ -279,10 +270,6 @@ <name>ID_VALUE.value</name> <recordfield>AB_ATTRIBUTERELATION.ID_VALUE</recordfield> </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>ATTRIBUTE_PARENT_ID.value</name> - <recordfield>AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID</recordfield> - </dbRecordFieldMapping> <dbRecordFieldMapping> <name>USER_NEW.value</name> <recordfield>AB_ATTRIBUTERELATION.USER_NEW</recordfield> diff --git a/entity/AttributeRelation_entity/entityfields/attribute_parent_id/displayValueProcess.js b/entity/AttributeRelation_entity/entityfields/attribute_parent_id/displayValueProcess.js deleted file mode 100644 index b85310336652c14dc00b557287404299142e85c5..0000000000000000000000000000000000000000 --- a/entity/AttributeRelation_entity/entityfields/attribute_parent_id/displayValueProcess.js +++ /dev/null @@ -1,5 +0,0 @@ -import("system.vars"); -import("system.result"); -import("Attribute_lib"); - -result.string(AttributeUtil.getFullAttributeName(vars.get("$field.ATTRIBUTE_PARENT_ID"))); \ No newline at end of file diff --git a/entity/AttributeRelation_entity/entityfields/attribute_parent_id/dropDownProcess.js b/entity/AttributeRelation_entity/entityfields/attribute_parent_id/dropDownProcess.js deleted file mode 100644 index 816f528b0cb03b2f412293c272955a49bfae48eb..0000000000000000000000000000000000000000 --- a/entity/AttributeRelation_entity/entityfields/attribute_parent_id/dropDownProcess.js +++ /dev/null @@ -1,5 +0,0 @@ -import("system.vars"); -import("system.result"); -import("Attribute_lib"); - -result.object(AttributeUtil.getPossibleAttributes(vars.get("$param.ObjectType_param"), true)); diff --git a/entity/AttributeRelation_entity/entityfields/valueproxy/mandatoryProcess.js b/entity/AttributeRelation_entity/entityfields/valueproxy/mandatoryProcess.js index 564b24d9e769f678a1da3de8776adf941e94217e..e60d633a87eef5815501eb3cef2e8d7f69c71c04 100644 --- a/entity/AttributeRelation_entity/entityfields/valueproxy/mandatoryProcess.js +++ b/entity/AttributeRelation_entity/entityfields/valueproxy/mandatoryProcess.js @@ -3,4 +3,5 @@ import("system.result"); import("Attribute_lib"); var attributeType = AttributeUtil.getAttributeType(vars.get("$field.AB_ATTRIBUTE_ID")); -result.string(AttributeTypeUtil.getContentType(attributeType) != null); \ No newline at end of file +var contentType = AttributeTypeUtil.getContentType(attributeType); +result.string(contentType != null && contentType != "BOOLEAN"); \ No newline at end of file diff --git a/entity/AttributeRelation_entity/recordcontainers/db/conditionProcess.js b/entity/AttributeRelation_entity/recordcontainers/db/conditionProcess.js index d2b666631967c44d632fcdd249414629786e0219..89514328ab3734a6cd8f89dc637b90aa7effc275 100644 --- a/entity/AttributeRelation_entity/recordcontainers/db/conditionProcess.js +++ b/entity/AttributeRelation_entity/recordcontainers/db/conditionProcess.js @@ -4,7 +4,8 @@ import("system.result"); import("Sql_lib"); var cond = SqlCondition.begin() - .andPrepareVars("AB_ATTRIBUTERELATION.OBJECT_ROWID", "$param.ObjectRowId_param"); + .andPrepareVars("AB_ATTRIBUTERELATION.OBJECT_ROWID", "$param.ObjectRowId_param") + .andPrepareVars("AB_ATTRIBUTERELATION.OBJECT_TYPE", "$param.ObjectType_param"); if (vars.exists("$param.ObjectRowId_param") && vars.get("$param.ObjectRowId_param") && vars.exists("$param.FilteredAttributeIds_param") && vars.get("$param.FilteredAttributeIds_param")) diff --git a/entity/AttributeRelation_entity/recordcontainers/db/fromClauseProcess.js b/entity/AttributeRelation_entity/recordcontainers/db/fromClauseProcess.js deleted file mode 100644 index db1937db74e473532997b9f4b6d8307c24518500..0000000000000000000000000000000000000000 --- a/entity/AttributeRelation_entity/recordcontainers/db/fromClauseProcess.js +++ /dev/null @@ -1,3 +0,0 @@ -import("system.result"); - -result.string("AB_ATTRIBUTERELATION join AB_ATTRIBUTE on (AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID = AB_ATTRIBUTE.AB_ATTRIBUTEID)"); \ No newline at end of file diff --git a/entity/AttributeRelation_entity/recordcontainers/db/orderClauseProcess.js b/entity/AttributeRelation_entity/recordcontainers/db/orderClauseProcess.js deleted file mode 100644 index b70300ec1e67e5492b07d3d47dfc5d47a061581f..0000000000000000000000000000000000000000 --- a/entity/AttributeRelation_entity/recordcontainers/db/orderClauseProcess.js +++ /dev/null @@ -1,5 +0,0 @@ -import("system.db"); -import("system.result"); -result.object({ - "AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID" : db.ASCENDING -}); \ No newline at end of file diff --git a/entity/AttributeUsage_entity/AttributeUsage_entity.aod b/entity/AttributeUsage_entity/AttributeUsage_entity.aod index f341a9ea3218507bb38815ce8309fd40799c9882..dadfdcc4831c9ce6bf665693711aeccc74bcc678 100644 --- a/entity/AttributeUsage_entity/AttributeUsage_entity.aod +++ b/entity/AttributeUsage_entity/AttributeUsage_entity.aod @@ -4,6 +4,7 @@ <title>Attribute Usage</title> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/AttributeUsage_entity/documentation.adoc</documentation> + <onValidation>%aditoprj%/entity/AttributeUsage_entity/onValidation.js</onValidation> <recordContainer>db</recordContainer> <entityFields> <entityProvider> @@ -53,6 +54,8 @@ <title>Minimal Count</title> <contentType>NUMBER</contentType> <searchable v="false" /> + <stateProcess>%aditoprj%/entity/AttributeUsage_entity/entityfields/min_count/stateProcess.js</stateProcess> + <valueProcess>%aditoprj%/entity/AttributeUsage_entity/entityfields/min_count/valueProcess.js</valueProcess> <onValidation>%aditoprj%/entity/AttributeUsage_entity/entityfields/min_count/onValidation.js</onValidation> </entityField> <entityField> @@ -60,6 +63,8 @@ <title>Maximal Count</title> <contentType>NUMBER</contentType> <searchable v="false" /> + <stateProcess>%aditoprj%/entity/AttributeUsage_entity/entityfields/max_count/stateProcess.js</stateProcess> + <valueProcess>%aditoprj%/entity/AttributeUsage_entity/entityfields/max_count/valueProcess.js</valueProcess> <onValidation>%aditoprj%/entity/AttributeUsage_entity/entityfields/max_count/onValidation.js</onValidation> </entityField> <entityConsumer> @@ -85,6 +90,17 @@ </entityParameter> </children> </entityConsumer> + <entityParameter> + <name>SingleSelection_param</name> + <expose v="true" /> + <triggerRecalculation v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityParameter> + <name>DisableMinCount_param</name> + <expose v="true" /> + <description>PARAMETER</description> + </entityParameter> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/AttributeUsage_entity/entityfields/context/children/exclusivecontexts_param/valueProcess.js b/entity/AttributeUsage_entity/entityfields/context/children/exclusivecontexts_param/valueProcess.js index 9ccd8c87e5829b0b4895728bee6a2d184aaa0424..5a8e7eb9fe21be6d537ba769a61622d42f95087b 100644 --- a/entity/AttributeUsage_entity/entityfields/context/children/exclusivecontexts_param/valueProcess.js +++ b/entity/AttributeUsage_entity/entityfields/context/children/exclusivecontexts_param/valueProcess.js @@ -7,6 +7,7 @@ result.object([ "Product", "Activity", "Offer", + "Order", "Employee", "Salesproject" ]); \ No newline at end of file diff --git a/entity/AttributeUsage_entity/entityfields/max_count/stateProcess.js b/entity/AttributeUsage_entity/entityfields/max_count/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8afb53a33287d435fbe60cf73251c6892d7a4e4a --- /dev/null +++ b/entity/AttributeUsage_entity/entityfields/max_count/stateProcess.js @@ -0,0 +1,8 @@ +import("system.neon"); +import("system.result"); +import("system.vars"); + +if (vars.exists("$param.SingleSelection_param") && vars.get("$param.SingleSelection_param") == "true") + result.string(neon.COMPONENTSTATE_READONLY); +else + result.string(neon.COMPONENTSTATE_EDITABLE); \ No newline at end of file diff --git a/entity/AttributeUsage_entity/entityfields/max_count/valueProcess.js b/entity/AttributeUsage_entity/entityfields/max_count/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..420c9cb7132ffc0dd8eb048ab2e922ce7d7beb77 --- /dev/null +++ b/entity/AttributeUsage_entity/entityfields/max_count/valueProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("system.vars"); + +if (vars.exists("$param.SingleSelection_param") && vars.get("$param.SingleSelection_param") == "true") + result.string("1"); \ No newline at end of file diff --git a/entity/AttributeUsage_entity/entityfields/min_count/stateProcess.js b/entity/AttributeUsage_entity/entityfields/min_count/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d140eb741f4bc42de2674499e7ef5d6220db0599 --- /dev/null +++ b/entity/AttributeUsage_entity/entityfields/min_count/stateProcess.js @@ -0,0 +1,8 @@ +import("system.neon"); +import("system.result"); +import("system.vars"); + +if (vars.exists("$param.DisableMinCount_param") && vars.get("$param.DisableMinCount_param") == "true") + result.string(neon.COMPONENTSTATE_READONLY); +else + result.string(neon.COMPONENTSTATE_EDITABLE); \ No newline at end of file diff --git a/entity/AttributeUsage_entity/entityfields/min_count/valueProcess.js b/entity/AttributeUsage_entity/entityfields/min_count/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..99e89c3d9b5a6d200ccc22a464b30e06d04cab0c --- /dev/null +++ b/entity/AttributeUsage_entity/entityfields/min_count/valueProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("system.vars"); + +if (vars.exists("$param.DisableMinCount_param") && vars.get("$param.DisableMinCount_param") == "true") + result.string(""); \ No newline at end of file diff --git a/entity/AttributeUsage_entity/onValidation.js b/entity/AttributeUsage_entity/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..5e0442557341d0d0707a84065fb5246e035f9b73 --- /dev/null +++ b/entity/AttributeUsage_entity/onValidation.js @@ -0,0 +1,8 @@ +import("system.translate"); +import("system.vars"); +import("system.result"); + +var minCount = vars.getString("$field.MIN_COUNT"); +var maxCount = vars.getString("$field.MAX_COUNT"); +if (minCount != "" && maxCount != "" && minCount > maxCount) + result.string(translate.text("The minimal count can't be larger than the maximal count!")); \ No newline at end of file diff --git a/entity/Attribute_entity/Attribute_entity.aod b/entity/Attribute_entity/Attribute_entity.aod index 687bb7a6d0d036983aabefb881c779fc33b56ceb..439e57fdab5644ce83742eec4e8980692f8b69a6 100644 --- a/entity/Attribute_entity/Attribute_entity.aod +++ b/entity/Attribute_entity/Attribute_entity.aod @@ -95,6 +95,10 @@ <name>AttrParentId_param</name> <expose v="true" /> </entityParameter> + <entityParameter> + <name>AttributeCount_param</name> + <expose v="false" /> + </entityParameter> </children> </entityProvider> <entityParameter> @@ -118,6 +122,14 @@ <expose v="false" /> <triggerRecalculation v="true" /> </entityParameter> + <entityParameter> + <name>SingleSelection_param</name> + <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attributeusages/children/singleselection_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>DisableMinCount_param</name> + <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/attributeusages/children/disablemincount_param/valueProcess.js</valueProcess> + </entityParameter> </children> </entityConsumer> <entityField> @@ -150,7 +162,6 @@ <title>Keyword</title> <dropDownProcess>%aditoprj%/entity/Attribute_entity/entityfields/keyword_container/dropDownProcess.js</dropDownProcess> <searchable v="false" /> - <state>AUTO</state> <stateProcess>%aditoprj%/entity/Attribute_entity/entityfields/keyword_container/stateProcess.js</stateProcess> </entityField> <entityParameter> @@ -249,7 +260,6 @@ <name>USAGELIST</name> <title>Usage</title> <state>READONLY</state> - <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/usagelist/valueProcess.js</valueProcess> </entityField> <entityProvider> <name>AttributeGroups</name> @@ -264,6 +274,10 @@ <name>AttrParentId_param</name> <expose v="true" /> </entityParameter> + <entityParameter> + <name>AttributeCount_param</name> + <expose v="false" /> + </entityParameter> </children> </entityProvider> <entityConsumer> @@ -282,8 +296,9 @@ </children> </entityConsumer> <entityField> - <name>IMAGE</name> + <name>ICON</name> <contentType>IMAGE</contentType> + <valueProcess>%aditoprj%/entity/Attribute_entity/entityfields/icon/valueProcess.js</valueProcess> </entityField> <entityField> <name>UID</name> @@ -294,6 +309,11 @@ <title>Sorting</title> <searchable v="false" /> </entityField> + <entityParameter> + <name>AttributeCount_param</name> + <expose v="true" /> + <description>PARAMETER</description> + </entityParameter> </entityFields> <recordContainers> <jDitoRecordContainer> @@ -313,6 +333,8 @@ <element>ATTRIBUTE_TYPE.displayValue</element> <element>KEYWORD_CONTAINER.value</element> <element>SORTING.value</element> + <element>USAGELIST.value</element> + <element>FULL_ATTRIBUTE_NAME.value</element> </recordFields> </jDitoRecordContainer> </recordContainers> diff --git a/entity/Attribute_entity/entityfields/attributeusages/children/disablemincount_param/valueProcess.js b/entity/Attribute_entity/entityfields/attributeusages/children/disablemincount_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..0a2e8963712038f5f0e3d895d6a5909ed39704af --- /dev/null +++ b/entity/Attribute_entity/entityfields/attributeusages/children/disablemincount_param/valueProcess.js @@ -0,0 +1,6 @@ +import("system.vars"); +import("system.result"); +import("Attribute_lib") + +var type = vars.get("$field.ATTRIBUTE_TYPE").trim(); +result.string(type == $AttributeTypes.VOID); \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/attributeusages/children/singleselection_param/valueProcess.js b/entity/Attribute_entity/entityfields/attributeusages/children/singleselection_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..64160d194837e0d77754fff0f7aed6fe33eac1a8 --- /dev/null +++ b/entity/Attribute_entity/entityfields/attributeusages/children/singleselection_param/valueProcess.js @@ -0,0 +1,6 @@ +import("system.vars"); +import("system.result"); +import("Attribute_lib") + +var type = vars.get("$field.ATTRIBUTE_TYPE").trim(); +result.string(type == $AttributeTypes.VOID || type == $AttributeTypes.BOOLEAN); //using a boolean/void attribute twice wouldn't make sense \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/icon/valueProcess.js b/entity/Attribute_entity/entityfields/icon/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..74e82fd764df16389820a48f02f00e9390f54b40 --- /dev/null +++ b/entity/Attribute_entity/entityfields/icon/valueProcess.js @@ -0,0 +1,11 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var type = vars.getString("$field.ATTRIBUTE_TYPE"); +var keywordAttributes = KeywordUtils.getAttributeRelationsByKey(type, $KeywordRegistry.attributeType()) +var icon = keywordAttributes.defaultAvatarRepresentation; + +result.string(icon); diff --git a/entity/Attribute_entity/entityfields/keyword_container/stateProcess.js b/entity/Attribute_entity/entityfields/keyword_container/stateProcess.js index b72e57d775c59b92691cda3fa4bdf03454c8e77c..1ba0d0dfaee10f1e1c0bb83e38c6ec45fe054138 100644 --- a/entity/Attribute_entity/entityfields/keyword_container/stateProcess.js +++ b/entity/Attribute_entity/entityfields/keyword_container/stateProcess.js @@ -6,6 +6,8 @@ import("Attribute_lib"); var fieldState; if (vars.get("$field.ATTRIBUTE_TYPE").trim() == $AttributeTypes.KEYWORD && !AttributeUtil.hasRelations(vars.get("$field.UID"))) fieldState = neon.COMPONENTSTATE_EDITABLE; +else if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW) + fieldState = neon.COMPONENTSTATE_INVISIBLE; else fieldState = neon.COMPONENTSTATE_READONLY; diff --git a/entity/Attribute_entity/entityfields/usagelist/valueProcess.js b/entity/Attribute_entity/entityfields/usagelist/valueProcess.js deleted file mode 100644 index 130b4cc5a16fb171b4613faf46c3a3734725750f..0000000000000000000000000000000000000000 --- a/entity/Attribute_entity/entityfields/usagelist/valueProcess.js +++ /dev/null @@ -1,18 +0,0 @@ -import("system.translate"); -import("system.result"); -import("system.db"); -import("system.vars"); -import("Sql_lib"); -import("Attribute_lib"); - -var retStr = "\u00A0"; // \u00A0 -> space character that doesn't get trimmed -if (vars.get("$field.ATTRIBUTE_TYPE").trim() != $AttributeTypes.COMBOVALUE) -{ - var usages = db.array(db.COLUMN, SqlCondition.begin() - .andPrepareVars("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", "$field.UID") - .buildSql("select OBJECT_TYPE from AB_ATTRIBUTEUSAGE")); - if (usages.length) - retStr = usages.join(", "); -} - -result.string(retStr); \ No newline at end of file diff --git a/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js b/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js index 925c8d353f8aade0cc25efe331689cb0bee7376a..773ea99f554003603ead5facc50c33de5a303066 100644 --- a/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js @@ -1,4 +1,3 @@ -import("system.datetime"); import("JditoFilter_lib"); import("KeywordRegistry_basic"); import("Keyword_lib"); @@ -8,33 +7,35 @@ import("system.result"); import("Sql_lib"); import("Attribute_lib"); -var sqlSelect = "select AB_ATTRIBUTEID, ATTRIBUTE_ACTIVE, " - + "ATTRIBUTE_NAME, ATTRIBUTE_PARENT_ID, ATTRIBUTE_TYPE, " - + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.attributeType(), "ATTRIBUTE_TYPE") - + ", KEYWORD_CONTAINER, SORTING from AB_ATTRIBUTE"; +var sqlSelect = "select A.AB_ATTRIBUTEID, A.ATTRIBUTE_ACTIVE, A.ATTRIBUTE_NAME, A.ATTRIBUTE_PARENT_ID, A.ATTRIBUTE_TYPE, " + + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.attributeType(), "A.ATTRIBUTE_TYPE") + + ", A.KEYWORD_CONTAINER, A.SORTING, P.ATTRIBUTE_PARENT_ID, P.ATTRIBUTE_NAME " + + "from AB_ATTRIBUTE A " + + "left join AB_ATTRIBUTE P on A.ATTRIBUTE_PARENT_ID = P.AB_ATTRIBUTEID"; -var sqlOrder = " order by ATTRIBUTE_PARENT_ID asc, SORTING asc"; +var sqlOrder = " order by A.ATTRIBUTE_PARENT_ID asc, A.SORTING asc"; -var condition = new SqlCondition(); +var condition = SqlCondition.begin(); var getGroups = vars.exists("$param.GetGroups_param") && vars.get("$param.GetGroups_param"); var objectType = vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param"); if (vars.exists("$local.idvalues") && vars.get("$local.idvalues")) - condition.and("AB_ATTRIBUTEID in ('" + vars.get("$local.idvalues").join("','") + "')"); + condition.and("A.AB_ATTRIBUTEID in ('" + vars.get("$local.idvalues").join("','") + "')"); else if (getGroups) { //this is for the selection of the superordinate attribute, this condition //filters out the own id and the children to prevent loops - var isGroupCondition = new SqlCondition(); + var isGroupCondition = SqlCondition.begin(); for (let type in $AttributeTypes) if ($AttributeTypes[type].isGroup && $AttributeTypes[type] != $AttributeTypes.COMBO) - isGroupCondition.orPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes[type]); + isGroupCondition.orPrepare(["AB_ATTRIBUTE", "ATTRIBUTE_TYPE", "A"], $AttributeTypes[type]); + condition.andSqlCondition(SqlCondition.begin() .andSqlCondition(isGroupCondition) - .andPrepareVars("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$param.AttrParentId_param", "# != ?") - .and("AB_ATTRIBUTE.AB_ATTRIBUTEID not in ('" + AttributeUtil.getAllChildren(vars.getString("$param.AttrParentId_param")).join("','") + "')") + .andPrepareVars(["AB_ATTRIBUTE", "AB_ATTRIBUTEID", "A"], "$param.AttrParentId_param", "# != ?") + .and("A.AB_ATTRIBUTEID not in ('" + AttributeUtil.getAllChildren(vars.getString("$param.AttrParentId_param")).join("','") + "')") ); } else if (objectType) //if there's an objectType, it comes from the AttributeRelation entity @@ -42,20 +43,22 @@ else if (objectType) //if there's an objectType, it comes from the AttributeRel var filteredAttributes = []; if (vars.exists("$param.FilteredAttributeIds_param") && vars.get("$param.FilteredAttributeIds_param")) filteredAttributes = JSON.parse(vars.get("$param.FilteredAttributeIds_param")); - - var ids = AttributeUtil.getPossibleAttributes(objectType, false, filteredAttributes); - condition.and("AB_ATTRIBUTE.AB_ATTRIBUTEID in ('" + ids.join("','") + "')"); + var attributeCount; + if (vars.exists("$param.AttributeCount_param") && vars.get("$param.AttributeCount_param")) + attributeCount = JSON.parse(vars.get("$param.AttributeCount_param")); + var ids = AttributeUtil.getPossibleAttributes(objectType, false, filteredAttributes, attributeCount); + condition.and("A.AB_ATTRIBUTEID in ('" + ids.join("','") + "')"); } else { - var type = vars.exists("$param.AttrParentType_param") && vars.get("$param.AttrParentType_param"); - if (AttributeTypeUtil.isGroupType(type)) + var parentType = vars.exists("$param.AttrParentType_param") && vars.get("$param.AttrParentType_param"); + if (AttributeTypeUtil.isGroupType(parentType)) { var parentId = vars.exists("$param.AttrParentId_param") && vars.get("$param.AttrParentId_param"); if (parentId) - condition.and("AB_ATTRIBUTE.AB_ATTRIBUTEID in ('" + AttributeUtil.getAllChildren(vars.getString("$param.AttrParentId_param")).join("','") + "')"); + condition.and("A.AB_ATTRIBUTEID in ('" + AttributeUtil.getAllChildren(vars.getString("$param.AttrParentId_param")).join("','") + "')"); } - else if (type) + else if (parentType) condition.and("1=2"); } @@ -63,45 +66,79 @@ else if (vars.exists("$local.filter") && vars.get("$local.filter")) { var filter = vars.get("$local.filter"); - condition.andSqlCondition(JditoFilterUtils.getSqlCondition(filter, "AB_ATTRIBUTE")); + condition.andSqlCondition(JditoFilterUtils.getSqlCondition(filter, "AB_ATTRIBUTE", "A")); } var attributes = db.table(condition.buildSql(sqlSelect, "1=1", sqlOrder)); -if (attributes.length > 1) - attributes = _sortArrayForTree(attributes); +var usageIdType = SqlUtils.getSingleColumnType("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID"); +var attributeIdType = SqlUtils.getSingleColumnType("AB_ATTRIBUTE.AB_ATTRIBUTEID"); + +attributes = _buildAttributeTable(attributes); result.object(attributes); -//sorts the records in a way that a tree can be built -function _sortArrayForTree (pArray) + +//sorts the records in a way that a tree can be built and adds values +function _buildAttributeTable (pAttributes) { var rows = {}; var allIds = {}; - var idIndex = 0; - var parentIdIndex = 3; - pArray.forEach(function (row) {allIds[row[idIndex]] = true;}); + //fills the allIds object, the object is used for checking if a parent exists in the array + pAttributes.forEach(function (row) {allIds[row[0]] = true;}); - var index = 0; + var arrayIndex = 0; - for (let itemsAdded = true; itemsAdded; itemsAdded = oldIndex != index) + //stops the loop when no new items were added so that recursive relations between attributes don't cause an infinite loop + for (let itemsAdded = true; itemsAdded; itemsAdded = oldIndex != arrayIndex) { - var oldIndex = index; - pArray.forEach(function (row) - { + var oldIndex = arrayIndex; + pAttributes.forEach(function (row) + { //item will be added if the id is not already in the object and //the parent is already added (or the parent is not in the array) - if (!(row[idIndex] in this) && (row[parentIdIndex] in this || !allIds[row[parentIdIndex]])) - this[row[idIndex]] = { + if (!(row[0] in this) && (row[3] in this || !allIds[row[3]])) + this[row[0]] = { data : row, - index : index++ + index : arrayIndex++ }; }, rows); } var sortedArray = new Array(Object.keys(rows).length); for (let i in rows) - sortedArray[rows[i].index] = rows[i].data; + { + let rowData = rows[i].data; + if (!(vars.exists("$param.DisplaySimpleName_param") && vars.get("$param.DisplaySimpleName_param"))) + rowData[9] = _getFullName(rowData[2], rowData[9], rowData[8]); + else + rowData[9] = rowData[2]; + if (rowData[4].trim() != $AttributeTypes.COMBOVALUE) + { + let usages = db.array(db.COLUMN, SqlCondition.begin() + .andPrepare("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", rowData[0], null, usageIdType) + .buildSql("select OBJECT_TYPE from AB_ATTRIBUTEUSAGE") + ); + if (usages.length) + rowData[8] = usages.join(", "); + } + else + rowData[8] = ""; + sortedArray[rows[i].index] = rowData; + } return sortedArray; +} + +function _getFullName (pAttributeName, pParentName, pGrandParentId) +{ + if (pParentName) + pAttributeName = pParentName + " / " + pAttributeName; + if (pGrandParentId) + { + var grandParentName = AttributeUtil.getFullAttributeName(pGrandParentId, null, attributeIdType); + if (grandParentName) + pAttributeName = grandParentName + " / " + pAttributeName; + } + return pAttributeName; } \ No newline at end of file diff --git a/entity/Attribute_entity/titleProcess.js b/entity/Attribute_entity/titleProcess.js index e55588aa4fb9dea4ee26b065951ab47b1ad43256..0eb44535e0b26ca7b387f2ba0cd5634f519ce0c1 100644 --- a/entity/Attribute_entity/titleProcess.js +++ b/entity/Attribute_entity/titleProcess.js @@ -1,4 +1,5 @@ +import("Context_lib"); import("system.vars"); import("system.result"); -result.string(vars.get("$field.FULL_ATTRIBUTE_NAME")); \ No newline at end of file +result.string(ContextUtils.prefixWithCurrentContextTitle(vars.get("$field.FULL_ATTRIBUTE_NAME"))); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/CampaignAddParticipants_entity.aod b/entity/CampaignAddParticipants_entity/CampaignAddParticipants_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..af54d522f5456756c0fe42a572fb5e15991bcb95 --- /dev/null +++ b/entity/CampaignAddParticipants_entity/CampaignAddParticipants_entity.aod @@ -0,0 +1,138 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.2"> + <name>CampaignAddParticipants_entity</name> + <title>Add participants to Campaign</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <afterOperatingState>%aditoprj%/entity/CampaignAddParticipants_entity/afterOperatingState.js</afterOperatingState> + <recordContainer>jdito</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>CAMPAIGN_ID</name> + <title>Campaign</title> + <consumer>CampaignConsumer</consumer> + <mandatory v="true" /> + <state>AUTO</state> + <valueProcess>%aditoprj%/entity/CampaignAddParticipants_entity/entityfields/campaign_id/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/CampaignAddParticipants_entity/entityfields/campaign_id/displayValueProcess.js</displayValueProcess> + <onValidation>%aditoprj%/entity/CampaignAddParticipants_entity/entityfields/campaign_id/onValidation.js</onValidation> + <onValueChange>%aditoprj%/entity/CampaignAddParticipants_entity/entityfields/campaign_id/onValueChange.js</onValueChange> + <onValueChangeTypes> + <element>MASK</element> + <element>PROCESS</element> + <element>PROCESS_SETVALUE</element> + <element>RECORD</element> + </onValueChangeTypes> + </entityField> + <entityField> + <name>CAMPAIGNSTEP_ID</name> + <title>Campaign Step</title> + <consumer>CampaignStepConsumer</consumer> + <mandatory v="true" /> + <state>EDITABLE</state> + <displayValueProcess>%aditoprj%/entity/CampaignAddParticipants_entity/entityfields/campaignstep_id/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>campaignParticipantMessage</name> + <state>READONLY</state> + <valueProcess>%aditoprj%/entity/CampaignAddParticipants_entity/entityfields/campaignparticipantmessage/valueProcess.js</valueProcess> + </entityField> + <entityParameter> + <name>campaignParticipants_param</name> + <expose v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityConsumer> + <name>CampaignConsumer</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Campaign_entity</entityName> + <fieldName>CampaignProvider</fieldName> + </dependency> + </entityConsumer> + <entityConsumer> + <name>CampaignStepConsumer</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>CampaignStep_entity</entityName> + <fieldName>CampaignSteps</fieldName> + </dependency> + <children> + <entityParameter> + <name>campaignId_param</name> + <valueProcess>%aditoprj%/entity/CampaignAddParticipants_entity/entityfields/campaignstepconsumer/children/campaignid_param/valueProcess.js</valueProcess> + <expose v="true" /> + <triggerRecalculation v="true" /> + </entityParameter> + </children> + </entityConsumer> + <entityField> + <name>UID</name> + </entityField> + <entityParameter> + <name>currentCampaignId_param</name> + <expose v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityParameter> + <name>currentCampaignStepId_param</name> + <expose v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityParameter> + <name>isUpdate_param</name> + <expose v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityConsumer> + <name>CampaignAnalyses</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>CampaignAnalysis_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + <children> + <entityParameter> + <name>campaignParticipants_param</name> + <valueProcess>%aditoprj%/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignparticipants_param/valueProcess.js</valueProcess> + <triggerRecalculation v="true" /> + </entityParameter> + <entityParameter> + <name>campaignStepId_param</name> + <valueProcess>%aditoprj%/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignstepid_param/valueProcess.js</valueProcess> + <triggerRecalculation v="true" /> + </entityParameter> + </children> + </entityConsumer> + <entityField> + <name>campaignStepCurrentParticipantCount</name> + <title>Current participants</title> + <displayValueProcess>%aditoprj%/entity/CampaignAddParticipants_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>campaignStepMaxParticipantCount</name> + <title>Max participants</title> + <displayValueProcess>%aditoprj%/entity/CampaignAddParticipants_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>isUpdate</name> + <valueProcess>%aditoprj%/entity/CampaignAddParticipants_entity/entityfields/isupdate/valueProcess.js</valueProcess> + </entityField> + </entityFields> + <recordContainers> + <jDitoRecordContainer> + <name>jdito</name> + <jDitoRecordAlias>Data_alias</jDitoRecordAlias> + <contentProcess>%aditoprj%/entity/CampaignAddParticipants_entity/recordcontainers/jdito/contentProcess.js</contentProcess> + <onInsert>%aditoprj%/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js</onInsert> + <recordFields> + <element>UID.value</element> + </recordFields> + </jDitoRecordContainer> + </recordContainers> +</entity> diff --git a/entity/CampaignAddParticipants_entity/afterOperatingState.js b/entity/CampaignAddParticipants_entity/afterOperatingState.js new file mode 100644 index 0000000000000000000000000000000000000000..0265fbd4f36bc81aea602c4cc6f51140f1c03a7e --- /dev/null +++ b/entity/CampaignAddParticipants_entity/afterOperatingState.js @@ -0,0 +1,2 @@ +import("system.logging"); +logging.log("hallo"); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaign_id/displayValueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaign_id/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c00610e87398affa17633bef42ef19a0e8b2b067 --- /dev/null +++ b/entity/CampaignAddParticipants_entity/entityfields/campaign_id/displayValueProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("system.db"); +import("system.vars"); +import("Campaign_lib"); + +var campaignId = vars.get("$field.CAMPAIGN_ID"); +var campaignName = CampaignUtils.getCampaignNameById(campaignId); +result.string(campaignName); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaign_id/onValidation.js b/entity/CampaignAddParticipants_entity/entityfields/campaign_id/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaign_id/onValueChange.js b/entity/CampaignAddParticipants_entity/entityfields/campaign_id/onValueChange.js new file mode 100644 index 0000000000000000000000000000000000000000..a8754300a5ed02b50adf50695d4eef4f5b43aab8 --- /dev/null +++ b/entity/CampaignAddParticipants_entity/entityfields/campaign_id/onValueChange.js @@ -0,0 +1,9 @@ +import("system.logging"); +import("system.vars"); +import("system.neon"); +import("Campaign_lib"); + +var stepId; +CampaignUtils.getDefaultCampaignStep(vars.get("$field.CAMPAIGN_ID")); + +neon.setFieldValue("$field.CAMPAIGNSTEP_ID", stepId); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaign_id/valueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaign_id/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..5deb886b88ee09a8de4bd50ba7167e0a0d4b86fa --- /dev/null +++ b/entity/CampaignAddParticipants_entity/entityfields/campaign_id/valueProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.exists("$param.currentCampaignId_param") && vars.get("$param.currentCampaignId_param")) +{ + result.string(vars.get("$param.currentCampaignId_param")); +} \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignparticipants_param/valueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignparticipants_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..bc239826083563dbc100924e8cdc0689f2b3335b --- /dev/null +++ b/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignparticipants_param/valueProcess.js @@ -0,0 +1,3 @@ +import("system.vars"); +import("system.result"); +result.string(vars.get("$param.campaignParticipants_param")); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignstepid_param/valueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignstepid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..1ad18e3c6c373a202e9d9bafb9748d57338dc5ec --- /dev/null +++ b/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignstepid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.CAMPAIGNSTEP_ID")); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaignparticipantmessage/valueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaignparticipantmessage/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e29b9d1da9e56ec1b5c63265147f2d586161cfa6 --- /dev/null +++ b/entity/CampaignAddParticipants_entity/entityfields/campaignparticipantmessage/valueProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("system.translate"); +import("system.vars"); + +var campaignParticipantsAmount = JSON.parse(vars.get("$param.campaignParticipants_param")).length; +var informationText = translate.text("participants will be added to the selected campaign step"); + +result.string(campaignParticipantsAmount + " " + informationText); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaignstep_id/displayValueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaignstep_id/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..649caa2bc64329ecde4daf38beb3d1d35fe666b8 --- /dev/null +++ b/entity/CampaignAddParticipants_entity/entityfields/campaignstep_id/displayValueProcess.js @@ -0,0 +1,8 @@ +import("system.logging"); +import("system.vars"); +import("Campaign_lib"); +import("system.result"); + +var campaignStepId = vars.get("$field.CAMPAIGNSTEP_ID"); +var campaignStepName = CampaignUtils.getCampaignStepNameById(campaignStepId); +result.string(campaignStepName); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaignstepconsumer/children/campaignid_param/valueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaignstepconsumer/children/campaignid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..0b9f6e82c776f901fe0acc30083d718ab0198e8c --- /dev/null +++ b/entity/CampaignAddParticipants_entity/entityfields/campaignstepconsumer/children/campaignid_param/valueProcess.js @@ -0,0 +1,5 @@ +import("system.logging"); +import("system.vars"); +import("system.result"); +logging.log("parameter campaignid -> " + vars.getString("$field.CAMPAIGN_ID")); +result.string(vars.getString("$field.CAMPAIGN_ID")); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d001f813402438ca1481d4c2fd03c94b4b341de6 --- /dev/null +++ b/entity/CampaignAddParticipants_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +result.string(CampaignUtils.getParticipantCountForStep(vars.get("$field.CAMPAIGNSTEP_ID"))); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..cc8e454b27deee27b34ccb9e12c08f4e767c065f --- /dev/null +++ b/entity/CampaignAddParticipants_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +result.string(CampaignUtils.getMaxParticipantCountForStep(vars.get("$field.CAMPAIGNSTEP_ID"))); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/isupdate/valueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/isupdate/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..9d4383e75f361c325a98a53f6338210b5af50468 --- /dev/null +++ b/entity/CampaignAddParticipants_entity/entityfields/isupdate/valueProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("system.vars"); + +var isUpdate = "false"; +if(vars.exists("$param.isUpdate_param") && vars.get("$param.isUpdate_param") != null) + isUpdate = vars.get("$param.isUpdate_param"); +result.string(isUpdate); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/recordcontainers/jdito/contentProcess.js b/entity/CampaignAddParticipants_entity/recordcontainers/jdito/contentProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js b/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js new file mode 100644 index 0000000000000000000000000000000000000000..cadda267735d1e2481992b20d9addead9611895c --- /dev/null +++ b/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js @@ -0,0 +1,78 @@ +import("system.logging"); +import("system.vars"); +import("system.db"); +import("system.util"); +import("Campaign_lib"); + + +logging.log("CampaignAddPs jdito oninsert -> "); + +var campaignId = vars.getString("$field.CAMPAIGN_ID"); +var newCampaignStepId = vars.getString("$field.CAMPAIGNSTEP_ID"); +var participants = JSON.parse(vars.getString("$param.campaignParticipants_param")); + +var isUpdate = vars.get("$field.isUpdate"); +logging.log("onInsert isUpdate -> " + isUpdate); +var colNamesCampaignParticipantLog = CampaignUtils.getParticipantLogInsertColumnNames(); + +var cols = []; + +if(isUpdate == "true") +{ + cols = [ "CAMPAIGNSTEP_ID", + "USER_EDIT", + "DATE_EDIT" + ]; +} +else +{ + cols = [ "CAMPAIGNPARTICIPANTID" + ,"CONTACT_ID" + ,"CAMPAIGN_ID" + ,"CAMPAIGNSTEP_ID" + ,"USER_NEW" + ,"DATE_NEW" + ]; +} + +var statementArray = []; +logging.log("isUpdate -> " + isUpdate); +for (participant in participants) +{ + var campaignParticipantLogId = util.getNewUUID(); + if(isUpdate == "true") + { + let updatedValues = [newCampaignStepId, + vars.get("$sys.user"), + vars.get("$sys.date")]; + + let condition = "CAMPAIGNPARTICIPANTID = '" + participants[participant] + "'"; + logging.log("condition -> " + condition); + let valsCampaignParticipantLog = new Array(participants[participant], campaignId, newCampaignStepId, campaignParticipantLogId, vars.get("$sys.user"), vars.get("$sys.date")); + + statementArray.push(["CAMPAIGNPARTICIPANT", cols, null, updatedValues, condition]); + statementArray.push(["CAMPAIGNPARTICIPANTLOG", colNamesCampaignParticipantLog, null, valsCampaignParticipantLog]); + } + else + { + let campaignParticipantId = util.getNewUUID(); + + var valsCampaignParticipant = [ campaignParticipantId + , participants[participant] + , campaignId + , newCampaignStepId + , vars.get("$sys.user") + , vars.get("$sys.date") + ]; + + let valsCampaignParticipantLog = new Array(campaignParticipantId, campaignId, newCampaignStepId, campaignParticipantLogId, vars.get("$sys.user"), vars.get("$sys.date")); + + statementArray.push(["CAMPAIGNPARTICIPANT", cols, null, valsCampaignParticipant]); + statementArray.push(["CAMPAIGNPARTICIPANTLOG", colNamesCampaignParticipantLog, null, valsCampaignParticipantLog]); + } +} + +if(isUpdate == "true") + db.updates(statementArray) +else + db.inserts(statementArray); diff --git a/entity/CampaignAnalysis_entity/CampaignAnalysis_entity.aod b/entity/CampaignAnalysis_entity/CampaignAnalysis_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..ce2bfa04290f59e0d85687af903279bb0a397069 --- /dev/null +++ b/entity/CampaignAnalysis_entity/CampaignAnalysis_entity.aod @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.2"> + <name>CampaignAnalysis_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <recordContainer>jdito</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + <dependencies> + <entityDependency> + <name>afaa52b1-6e5b-46be-adef-e50f1394fcf8</name> + <entityName>CampaignAddParticipants_entity</entityName> + <fieldName>CampaignAnalyses</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + <entityField> + <name>UID</name> + </entityField> + <entityField> + <name>LABEL</name> + <title>Count</title> + </entityField> + <entityField> + <name>COUNT</name> + </entityField> + <entityField> + <name>SORTING</name> + </entityField> + <entityProvider> + <name>CampaignAnalysisProvider</name> + <fieldType>DEPENDENCY_IN</fieldType> + <children> + <entityParameter> + <name>campaignParticipants_param</name> + <triggerRecalculation v="true" /> + </entityParameter> + <entityParameter> + <name>campaignStepId_param</name> + <triggerRecalculation v="true" /> + </entityParameter> + </children> + </entityProvider> + <entityParameter> + <name>campaignStepId_param</name> + <expose v="true" /> + <triggerRecalculation v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityParameter> + <name>campaignParticipants_param</name> + <expose v="true" /> + <description>PARAMETER</description> + </entityParameter> + </entityFields> + <recordContainers> + <jDitoRecordContainer> + <name>jdito</name> + <jDitoRecordAlias>Data_alias</jDitoRecordAlias> + <contentProcess>%aditoprj%/entity/CampaignAnalysis_entity/recordcontainers/jdito/contentProcess.js</contentProcess> + <recordFields> + <element>UID.value</element> + <element>LABEL.value</element> + <element>COUNT.value</element> + <element>SORTING.value</element> + </recordFields> + </jDitoRecordContainer> + </recordContainers> +</entity> diff --git a/entity/CampaignAnalysis_entity/recordcontainers/jdito/contentProcess.js b/entity/CampaignAnalysis_entity/recordcontainers/jdito/contentProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6508822e59a180b10df2af32d7fb49dbdf3fdc9d --- /dev/null +++ b/entity/CampaignAnalysis_entity/recordcontainers/jdito/contentProcess.js @@ -0,0 +1,29 @@ +import("system.vars"); +import("system.logging"); +import("system.result"); +import("system.util"); +import("system.db"); + +logging.log("CampaignAnalysis_RecordContainer"); +var ret = []; + +var campaignstepid = "b80588dd-4287-4fd7-85c1-7b86118ac4ff";//TODO: Refresh problem - vars.get("$param.campaignStepId_param"); +var newParticipants = JSON.parse(vars.get("$param.campaignParticipants_param")).length; + +var query = "select MAXPARTICIPANTS, count(CAMPAIGNPARTICIPANTID) from CAMPAIGNSTEP " + + "join CAMPAIGNPARTICIPANT on CAMPAIGNPARTICIPANT.CAMPAIGNSTEP_ID = CAMPAIGNSTEP.CAMPAIGNSTEPID " + + "where CAMPAIGNSTEP_ID = '" + campaignstepid + "' " + + "group by CAMPAIGNPARTICIPANT.CAMPAIGNSTEP_ID, MAXPARTICIPANTS"; + +var maxCurrentParticipants = db.table(query); + +if(maxCurrentParticipants.length > 0) +{ + logging.log("hallo2"); + ret[0] = [util.getNewUUID(), "Current participants", maxCurrentParticipants[0][1], 0]; + ret[1] = [util.getNewUUID(), "New participants", newParticipants, 1]; + logging.log(maxCurrentParticipants[0][0]); + ret[2] = [util.getNewUUID(), "Free participant slots", Number(maxCurrentParticipants[0][0]) - (Number(maxCurrentParticipants[0][1]) + Number(newParticipants)), 2]; +} + +result.object(ret); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/CampaignCost_entitiy.aod b/entity/CampaignCost_entitiy/CampaignCost_entitiy.aod new file mode 100644 index 0000000000000000000000000000000000000000..7d3ad07314968cf32cb6a677ac342433b6bd3883 --- /dev/null +++ b/entity/CampaignCost_entitiy/CampaignCost_entitiy.aod @@ -0,0 +1,301 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.2"> + <name>CampaignCost_entitiy</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <afterOperatingState>%aditoprj%/entity/CampaignCost_entitiy/afterOperatingState.js</afterOperatingState> + <recordContainer>db</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>CAMPAIGNCOSTID</name> + <mandatory v="true" /> + <searchable v="false" /> + <valueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/campaigncostid/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>CAMPAIGN_ID</name> + <title>Campaign</title> + <consumer>Campaigns</consumer> + <mandatory v="true" /> + <groupable v="true" /> + <valueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/campaign_id/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/campaign_id/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>CAMPAIGNSTEP_ID</name> + <title>Campaign Step</title> + <consumer>CampaignSteps</consumer> + <mandatoryProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/campaignstep_id/mandatoryProcess.js</mandatoryProcess> + <groupable v="true" /> + <stateProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/campaignstep_id/stateProcess.js</stateProcess> + <valueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/campaignstep_id/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/campaignstep_id/displayValueProcess.js</displayValueProcess> + <onValueChange>%aditoprj%/entity/CampaignCost_entitiy/entityfields/campaignstep_id/onValueChange.js</onValueChange> + <onValueChangeTypes> + <element>MASK</element> + </onValueChangeTypes> + </entityField> + <entityField> + <name>CATEGORY</name> + <title>Category</title> + <consumer>KeywordCampaignManagementCostCategory</consumer> + <mandatory v="true" /> + <groupable v="true" /> + <displayValueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/category/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>NET</name> + <title>Cost</title> + <contentType>NUMBER</contentType> + <outputFormat>#,##0.00</outputFormat> + <mandatory v="true" /> + </entityField> + <entityField> + <name>USER_NEW</name> + <mandatory v="true" /> + <searchable v="false" /> + <valueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/user_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>DATE_NEW</name> + <mandatory v="true" /> + <searchable v="false" /> + <valueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/date_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>USER_EDIT</name> + <searchable v="false" /> + <valueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/user_edit/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>DATE_EDIT</name> + <searchable v="false" /> + <valueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/date_edit/valueProcess.js</valueProcess> + </entityField> + <entityProvider> + <name>CampaignCosts</name> + <fieldType>DEPENDENCY_IN</fieldType> + <dependencies> + <entityDependency> + <name>7131288b-af5c-4914-96f5-c5d70217fc23</name> + <entityName>Campaign_entity</entityName> + <fieldName>CampaignCosts</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + <children> + <entityParameter> + <name>CampaignStepId_param</name> + <expose v="false" /> + </entityParameter> + <entityParameter> + <name>Uid_param</name> + <expose v="false" /> + </entityParameter> + <entityParameter> + <name>CampaignId_param</name> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>CampaignSteps_param</name> + <valueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/campaigncosts/children/campaignsteps_param/valueProcess.js</valueProcess> + <expose v="false" /> + </entityParameter> + </children> + </entityProvider> + <entityProvider> + <name>StepCosts</name> + <fieldType>DEPENDENCY_IN</fieldType> + <dependencies> + <entityDependency> + <name>af147f3e-a1bd-4eb0-9ac8-325dbdaba17d</name> + <entityName>CampaignStep_entity</entityName> + <fieldName>CampaignStepCosts</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>2a92b738-c0bb-4c14-9915-aff9e18effaf</name> + <entityName>Campaign_entity</entityName> + <fieldName>CampaignStepCosts</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + <children> + <entityParameter> + <name>CampaignStepId_param</name> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>Uid_param</name> + <expose v="false" /> + </entityParameter> + <entityParameter> + <name>CampaignId_param</name> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>CampaignSteps_param</name> + <valueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/stepcosts/children/campaignsteps_param/valueProcess.js</valueProcess> + <expose v="false" /> + </entityParameter> + </children> + </entityProvider> + <entityConsumer> + <name>Campaigns</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Campaign_entity</entityName> + <fieldName>CampaignProvider</fieldName> + </dependency> + </entityConsumer> + <entityConsumer> + <name>CampaignSteps</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>CampaignStep_entity</entityName> + <fieldName>CampaignSteps</fieldName> + </dependency> + </entityConsumer> + <entityConsumer> + <name>KeywordCampaignManagementCostCategory</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <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> + <name>alter</name> + <children> + <entityActionField> + <name>edit</name> + <fieldType>ACTION</fieldType> + <onActionProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/alter/children/edit/onActionProcess.js</onActionProcess> + <isSelectionAction v="true" /> + <iconId>NEON:PENCIL</iconId> + </entityActionField> + </children> + </entityActionGroup> + <entityParameter> + <name>CampaignId_param</name> + <expose v="true" /> + <mandatory v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityParameter> + <name>CampaignStepId_param</name> + <expose v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityParameter> + <name>Uid_param</name> + <expose v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityField> + <name>netPerParticipant</name> + <contentType>NUMBER</contentType> + <outputFormat>#,##0.00</outputFormat> + <state>READONLY</state> + <titleProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/netperparticipant/titleProcess.js</titleProcess> + <valueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/netperparticipant/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>countParticipants</name> + <title>Participants</title> + <contentType>NUMBER</contentType> + <outputFormat>#0</outputFormat> + <state>READONLY</state> + <valueProcess>%aditoprj%/entity/CampaignCost_entitiy/entityfields/countparticipants/valueProcess.js</valueProcess> + </entityField> + <entityParameter> + <name>CampaignSteps_param</name> + <title></title> + <expose v="true" /> + <documentation>%aditoprj%/entity/CampaignCost_entitiy/entityfields/campaignsteps_param/documentation.adoc</documentation> + <description>PARAMETER</description> + </entityParameter> + </entityFields> + <recordContainers> + <dbRecordContainer> + <name>db</name> + <alias>Data_alias</alias> + <fromClauseProcess>%aditoprj%/entity/CampaignCost_entitiy/recordcontainers/db/fromClauseProcess.js</fromClauseProcess> + <conditionProcess>%aditoprj%/entity/CampaignCost_entitiy/recordcontainers/db/conditionProcess.js</conditionProcess> + <orderClauseProcess>%aditoprj%/entity/CampaignCost_entitiy/recordcontainers/db/orderClauseProcess.js</orderClauseProcess> + <linkInformation> + <linkInformation> + <name>70c2db20-0695-4189-92cb-7da585bff401</name> + <tableName>CAMPAIGNCOST</tableName> + <primaryKey>CAMPAIGNCOSTID</primaryKey> + <isUIDTable v="true" /> + <readonly v="false" /> + </linkInformation> + <linkInformation> + <name>b97b7f67-86ea-4d0a-8303-abc05863ed66</name> + <tableName>CAMPAIGNSTEP</tableName> + <primaryKey>CAMPAIGNSTEPID</primaryKey> + <isUIDTable v="false" /> + <readonly v="true" /> + </linkInformation> + </linkInformation> + <recordFieldMappings> + <dbRecordFieldMapping> + <name>CAMPAIGN_ID.value</name> + <recordfield>CAMPAIGNCOST.CAMPAIGN_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CAMPAIGNCOSTID.value</name> + <recordfield>CAMPAIGNCOST.CAMPAIGNCOSTID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CAMPAIGNSTEP_ID.value</name> + <recordfield>CAMPAIGNCOST.CAMPAIGNSTEP_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CATEGORY.value</name> + <recordfield>CAMPAIGNCOST.CATEGORY</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DATE_EDIT.value</name> + <recordfield>CAMPAIGNCOST.DATE_EDIT</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DATE_NEW.value</name> + <recordfield>CAMPAIGNCOST.DATE_NEW</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>NET.value</name> + <recordfield>CAMPAIGNCOST.NET</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>USER_EDIT.value</name> + <recordfield>CAMPAIGNCOST.USER_EDIT</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>USER_NEW.value</name> + <recordfield>CAMPAIGNCOST.USER_NEW</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CATEGORY.displayValue</name> + <expression>%aditoprj%/entity/CampaignCost_entitiy/recordcontainers/db/recordfieldmappings/category.displayvalue/expression.js</expression> + </dbRecordFieldMapping> + </recordFieldMappings> + </dbRecordContainer> + </recordContainers> +</entity> diff --git a/entity/CampaignCost_entitiy/afterOperatingState.js b/entity/CampaignCost_entitiy/afterOperatingState.js new file mode 100644 index 0000000000000000000000000000000000000000..d39336402371a7d3f5db536a2e8ca261fa4e7fe3 --- /dev/null +++ b/entity/CampaignCost_entitiy/afterOperatingState.js @@ -0,0 +1,7 @@ +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW) +{ + neon.refreshAll(); +} \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/alter/children/edit/onActionProcess.js b/entity/CampaignCost_entitiy/entityfields/alter/children/edit/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2f19601f3e8f533982bac2823f085588c6f8dd7e --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/alter/children/edit/onActionProcess.js @@ -0,0 +1,7 @@ +import("system.neon"); +import("system.vars"); + +var params = { + "Uid_param" : vars.get("$sys.uid") +} +neon.openContext("CampaignCost", "CampaignCostEdit_view", null, neon.OPERATINGSTATE_EDIT, params); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaign_id/displayValueProcess.js b/entity/CampaignCost_entitiy/entityfields/campaign_id/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..12ea2ba316a5f6370d042673bc2c79c8019841f4 --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/campaign_id/displayValueProcess.js @@ -0,0 +1,9 @@ +import("system.result"); +import("system.db"); +import("system.vars"); +import("Campaign_lib"); + +var campaignId = vars.get("$field.CAMPAIGN_ID"); +var campaignName = CampaignUtils.getCampaignNameById(campaignId); + +result.string(campaignName); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaign_id/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/campaign_id/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..aae29913f6603e7e01072a210fe275d8112fabe2 --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/campaign_id/valueProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.CampaignId_param") && vars.get("$param.CampaignId_param")) +{ + result.string(vars.get("$param.CampaignId_param")); +} \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaigncostid/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/campaigncostid/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f6b9da922bcaccb0006690f599c1d3cee4d00c55 --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/campaigncostid/valueProcess.js @@ -0,0 +1,7 @@ +import("system.neon"); +import("system.util"); +import("system.vars"); +import("system.result"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaigncosts/children/campaignsteps_param/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/campaigncosts/children/campaignsteps_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..742074b164130b0dced0dc645104ededc1501e96 --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/campaigncosts/children/campaignsteps_param/valueProcess.js @@ -0,0 +1,2 @@ +import("system.result"); +result.string(0) \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaignstep_id/displayValueProcess.js b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..ee615b672f09af762e082d55eb0dfae53be9a87d --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/displayValueProcess.js @@ -0,0 +1,20 @@ +import("system.neon"); +import("system.translate"); +import("system.result"); +import("system.db"); +import("system.vars"); +import("Campaign_lib"); + +if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW) +{ + var campaignStepId = vars.get("$field.CAMPAIGNSTEP_ID"); + if (campaignStepId) + { + var campaignStepName = CampaignUtils.getCampaignStepNameById(campaignStepId); + result.string(translate.text("Step") + ": " + campaignStepName); + } + else + { + result.string(translate.text("Fix cost")); + } +} \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaignstep_id/mandatoryProcess.js b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/mandatoryProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..39c2cd139e0d469ba5a2445c0bb53004299c8632 --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/mandatoryProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); + +result.object((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && + vars.exists("$param.CampaignSteps_param") && vars.get("$param.CampaignSteps_param") == "1" && + vars.exists("$param.CampaignStepId_param") && !vars.get("$param.CampaignStepId_param"))); diff --git a/entity/CampaignCost_entitiy/entityfields/campaignstep_id/onValueChange.js b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/onValueChange.js new file mode 100644 index 0000000000000000000000000000000000000000..a7827c48e458d541031e9d65941ade4fc7e0ff16 --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/onValueChange.js @@ -0,0 +1,3 @@ +import("system.neon"); + +neon.setFieldValue("$field.CATEGORY", ""); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaignstep_id/stateProcess.js b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..93d98b6e6e5e4d2e03ce31e3971571940efccc64 --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/stateProcess.js @@ -0,0 +1,13 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && + vars.exists("$param.CampaignSteps_param") && vars.get("$param.CampaignSteps_param") == "1" && + vars.exists("$param.CampaignStepId_param") && !vars.get("$param.CampaignStepId_param")) +{ + result.string(neon.COMPONENTSTATE_AUTO); +} +else +{ + result.string(neon.COMPONENTSTATE_INVISIBLE); +} \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaignstep_id/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f4a91495ca4454e2b82cb84d6a7b46761f19c88e --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/valueProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.CampaignStepId_param") && vars.get("$param.CampaignStepId_param")) +{ + result.string(vars.get("$param.CampaignStepId_param")); +} \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaignsteps_param/documentation.adoc b/entity/CampaignCost_entitiy/entityfields/campaignsteps_param/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..e7434a04e7650f378d9e46cc04b5b0d7518234d3 --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/campaignsteps_param/documentation.adoc @@ -0,0 +1,2 @@ +if 0: show only fix costs +if 1: show only campaign steps \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/category/displayValueProcess.js b/entity/CampaignCost_entitiy/entityfields/category/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..96536279ef0b858b99687c397622da45f831fa14 --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/category/displayValueProcess.js @@ -0,0 +1,6 @@ +import("system.result"); +import("system.vars"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string(KeywordUtils.getViewValue($KeywordRegistry.campaignStepCostCategory(), vars.get("$this.value"))); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/countparticipants/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/countparticipants/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6952bc19fb1c4532ee3588b899bb4be228e0dc60 --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/countparticipants/valueProcess.js @@ -0,0 +1,12 @@ +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +if (vars.get("$field.CAMPAIGNSTEP_ID")) +{ + result.string(CampaignUtils.getParticipantCountForStep(vars.get("$field.CAMPAIGNSTEP_ID"))); +} +else +{ + result.string(CampaignUtils.getParticipantCount(vars.get("$field.CAMPAIGN_ID"))); +} \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/date_edit/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/date_edit/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..5e6ef059738e0c724a468685333a5e257ac228ce --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/date_edit/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) + result.string(vars.get("$sys.date")); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/date_new/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/date_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..a72892783bf2bd04fe353c47f1be0cb570bbb323 --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/date_new/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(vars.get("$sys.date")); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/containername_param/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/containername_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..7a66c852983ef1afe350b0b1637c9859a85e2421 --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/containername_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("KeywordRegistry_basic"); + +result.string($KeywordRegistry.campaignStepCostCategory()); \ No newline at end of file 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/titleProcess.js b/entity/CampaignCost_entitiy/entityfields/netperparticipant/titleProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..fc36199cca341dd1e3923ebb223ab28f3efa5ccf --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/netperparticipant/titleProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("Cost") + " " + translate.text("per") + " " + translate.text("Participant")); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/netperparticipant/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/netperparticipant/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f3dedbcae4b8b310a011af1104b8706b3421998b --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/netperparticipant/valueProcess.js @@ -0,0 +1,11 @@ +import("system.vars"); +import("system.result"); +import("system.eMath"); + +var netto = parseFloat(vars.get("$field.NET")); +var countParticipants = parseFloat(vars.get("$field.countParticipants")); + +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/CampaignCost_entitiy/entityfields/stepcosts/children/campaignsteps_param/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/stepcosts/children/campaignsteps_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..0488a23572b30f97174720a23726a09b8b266381 --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/stepcosts/children/campaignsteps_param/valueProcess.js @@ -0,0 +1,3 @@ +import("system.result"); + +result.string(1); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/user_edit/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/user_edit/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6af880ae3e0e2b89b4eee8327ed49f1eefe458af --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/user_edit/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) + result.string(vars.get("$sys.user")); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/user_new/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/user_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e518bc75a9494e53a83613dedd943106e74fc00a --- /dev/null +++ b/entity/CampaignCost_entitiy/entityfields/user_new/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(vars.get("$sys.user")); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/recordcontainers/db/conditionProcess.js b/entity/CampaignCost_entitiy/recordcontainers/db/conditionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..ff7f94167b0fbafce7189b2facf299ae60849832 --- /dev/null +++ b/entity/CampaignCost_entitiy/recordcontainers/db/conditionProcess.js @@ -0,0 +1,22 @@ +import("system.vars"); +import("system.db"); +import("system.result"); +import("Sql_lib"); + +var cond = SqlCondition.begin() + .andPrepareVars("CAMPAIGNCOST.CAMPAIGNCOSTID", "$param.Uid_param") + .andPrepareVars("CAMPAIGNCOST.CAMPAIGN_ID", "$param.CampaignId_param") + .andPrepareVars("CAMPAIGNCOST.CAMPAIGNSTEP_ID", "$param.CampaignStepId_param"); + +if (vars.exists("$param.CampaignSteps_param") && vars.get("$param.CampaignSteps_param") == "1") +{ + // only step costs + cond.and("CAMPAIGNCOST.CAMPAIGNSTEP_ID is not null"); +} +else +{ + // only fix costs + cond.and("CAMPAIGNCOST.CAMPAIGNSTEP_ID is null"); +} + +result.string(db.translateCondition(cond.build("1=2"))); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/recordcontainers/db/fromClauseProcess.js b/entity/CampaignCost_entitiy/recordcontainers/db/fromClauseProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4d95079d7cb044ddab9f1e475e6921ec8dcfb2f9 --- /dev/null +++ b/entity/CampaignCost_entitiy/recordcontainers/db/fromClauseProcess.js @@ -0,0 +1,3 @@ +import("system.result"); + +result.string("CAMPAIGNCOST left join CAMPAIGNSTEP on CAMPAIGNCOST.CAMPAIGNSTEP_ID = CAMPAIGNSTEP.CAMPAIGNSTEPID") \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/recordcontainers/db/orderClauseProcess.js b/entity/CampaignCost_entitiy/recordcontainers/db/orderClauseProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8538a702d13027d9d9739d9b6652105b87725638 --- /dev/null +++ b/entity/CampaignCost_entitiy/recordcontainers/db/orderClauseProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.db"); + +result.object({"CAMPAIGNSTEP.SORTING": db.ASCENDING}); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/recordcontainers/db/recordfieldmappings/category.displayvalue/expression.js b/entity/CampaignCost_entitiy/recordcontainers/db/recordfieldmappings/category.displayvalue/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..3aa7368fd41339c1bd48a4951acb4ff54b12ef58 --- /dev/null +++ b/entity/CampaignCost_entitiy/recordcontainers/db/recordfieldmappings/category.displayvalue/expression.js @@ -0,0 +1,6 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.campaignStepCostCategory(), "CAMPAIGNCOST.CATEGORY"); +result.string(sql); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/CampaignParticipant_entity.aod b/entity/CampaignParticipant_entity/CampaignParticipant_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..6615e8ac0eb58972ef9024c123fd54bc4662382a --- /dev/null +++ b/entity/CampaignParticipant_entity/CampaignParticipant_entity.aod @@ -0,0 +1,244 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.2"> + <name>CampaignParticipant_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <afterOperatingState>%aditoprj%/entity/CampaignParticipant_entity/afterOperatingState.js</afterOperatingState> + <recordContainer>ParticipantsDbRecordContainer</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityProvider> + <name>CampaignParticipantsProvider</name> + <fieldType>DEPENDENCY_IN</fieldType> + <targetContextField>CONTACTCONTEXT</targetContextField> + <targetIdField>CONTACT_ID</targetIdField> + <dependencies> + <entityDependency> + <name>f28945cd-4613-4dfa-91f7-a7d9d64cef58</name> + <entityName>Campaign_entity</entityName> + <fieldName>CampaignParticipants</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>7ad08378-b36f-4512-8891-db727c6ddcd7</name> + <entityName>CampaignStep_entity</entityName> + <fieldName>CampaignParticipantsConsumer</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + <children> + <entityParameter> + <name>ContactId_param</name> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>CampaignId_param</name> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>CampaignStepId_param</name> + <valueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaignparticipantsprovider/children/campaignstepid_param/valueProcess.js</valueProcess> + <expose v="true" /> + </entityParameter> + </children> + </entityProvider> + <entityParameter> + <name>CampaignStepId_param</name> + <expose v="true" /> + <triggerRecalculation v="true" /> + <mandatory v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityParameter> + <name>CampaignId_param</name> + <expose v="true" /> + <triggerRecalculation v="true" /> + <mandatory v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityField> + <name>CAMPAIGNPARTICIPANTID</name> + <valueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaignparticipantid/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>CAMPAIGN_ID</name> + <title>Campaign</title> + <consumer>CampaignsConsumer</consumer> + <mandatory v="true" /> + <state>EDITABLE</state> + <stateProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaign_id/stateProcess.js</stateProcess> + <valueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaign_id/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaign_id/displayValueProcess.js</displayValueProcess> + <onValueChange>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js</onValueChange> + <onValueChangeTypes> + <element>MASK</element> + <element>PROCESS</element> + </onValueChangeTypes> + </entityField> + <entityField> + <name>CAMPAIGNSTEP_ID</name> + <title>Campaign Step</title> + <consumer>CampaignSteps</consumer> + <mandatory v="true" /> + <state>EDITABLE</state> + <displayValueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaignstep_id/displayValueProcess.js</displayValueProcess> + <onValueChange>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaignstep_id/onValueChange.js</onValueChange> + <onValueChangeTypes> + <element>MASK</element> + <element>PROCESS</element> + <element>PROCESS_SETVALUE</element> + </onValueChangeTypes> + </entityField> + <entityConsumer> + <name>CampaignsConsumer</name> + <title>Campaign</title> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Campaign_entity</entityName> + <fieldName>CampaignProvider</fieldName> + </dependency> + </entityConsumer> + <entityParameter> + <name>ContactId_param</name> + <expose v="true" /> + <triggerRecalculation v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityField> + <name>CONTACT_ID</name> + <title>Participant</title> + <consumer>AnyContacts</consumer> + <linkedContextProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/contact_id/linkedContextProcess.js</linkedContextProcess> + <mandatory v="true" /> + <state>READONLY</state> + <stateProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/contact_id/stateProcess.js</stateProcess> + <valueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/contact_id/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>DATE_NEW</name> + <valueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/date_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>USER_NEW</name> + <valueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/user_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>DATE_EDIT</name> + </entityField> + <entityField> + <name>USER_EDIT</name> + </entityField> + <entityConsumer> + <name>AnyContacts</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>AnyContact_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + </entityConsumer> + <entityConsumer> + <name>CampaignSteps</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>CampaignStep_entity</entityName> + <fieldName>CampaignSteps</fieldName> + </dependency> + <children> + <entityParameter> + <name>campaignId_param</name> + <valueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js</valueProcess> + <expose v="true" /> + <triggerRecalculation v="true" /> + </entityParameter> + </children> + </entityConsumer> + <entityField> + <name>CONTACTCONTEXT</name> + <valueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/contactcontext/valueProcess.js</valueProcess> + </entityField> + <entityActionGroup> + <name>FilterViewActionGroup</name> + <children> + <entityActionField> + <name>SetStepToParticipantSelection</name> + <fieldType>ACTION</fieldType> + <title>Set campaign step</title> + <onActionProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/filterviewactiongroup/children/setsteptoparticipantselection/onActionProcess.js</onActionProcess> + <isObjectAction v="false" /> + <isSelectionAction v="true" /> + <iconId>NEON:GROUP_APPOINTMENT</iconId> + </entityActionField> + </children> + </entityActionGroup> + <entityField> + <name>campaignStepCurrentParticipantCount</name> + <title>Current participants</title> + <displayValueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>campaignStepMaxParticipantCount</name> + <title>Max participants</title> + <displayValueProcess>%aditoprj%/entity/CampaignParticipant_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js</displayValueProcess> + </entityField> + </entityFields> + <recordContainers> + <dbRecordContainer> + <name>ParticipantsDbRecordContainer</name> + <alias>Data_alias</alias> + <conditionProcess>%aditoprj%/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/conditionProcess.js</conditionProcess> + <onDBInsert>%aditoprj%/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/onDBInsert.js</onDBInsert> + <linkInformation> + <linkInformation> + <name>12b5bf2e-e376-4c40-9799-fb07961a455d</name> + <tableName>CAMPAIGNPARTICIPANT</tableName> + <primaryKey>CAMPAIGNPARTICIPANTID</primaryKey> + <isUIDTable v="true" /> + <readonly v="false" /> + </linkInformation> + </linkInformation> + <recordFieldMappings> + <dbRecordFieldMapping> + <name>CAMPAIGNPARTICIPANT_ID.value</name> + <recordfield>CAMPAIGNPARTICIPANT.CAMPAIGNPARTICIPANTID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CAMPAIGN_ID.value</name> + <recordfield>CAMPAIGNPARTICIPANT.CAMPAIGN_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CAMPAIGNPARTICIPANTID.value</name> + <recordfield>CAMPAIGNPARTICIPANT.CAMPAIGNPARTICIPANTID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CAMPAIGNSTEP_ID.value</name> + <recordfield>CAMPAIGNPARTICIPANT.CAMPAIGNSTEP_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CONTACT_ID.value</name> + <recordfield>CAMPAIGNPARTICIPANT.CONTACT_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DATE_EDIT.value</name> + <recordfield>CAMPAIGNPARTICIPANT.DATE_EDIT</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DATE_NEW.value</name> + <recordfield>CAMPAIGNPARTICIPANT.DATE_NEW</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>USER_EDIT.value</name> + <recordfield>CAMPAIGNPARTICIPANT.USER_EDIT</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>USER_NEW.value</name> + <recordfield>CAMPAIGNPARTICIPANT.USER_NEW</recordfield> + </dbRecordFieldMapping> + </recordFieldMappings> + </dbRecordContainer> + </recordContainers> +</entity> diff --git a/entity/CampaignParticipant_entity/afterOperatingState.js b/entity/CampaignParticipant_entity/afterOperatingState.js new file mode 100644 index 0000000000000000000000000000000000000000..d39336402371a7d3f5db536a2e8ca261fa4e7fe3 --- /dev/null +++ b/entity/CampaignParticipant_entity/afterOperatingState.js @@ -0,0 +1,7 @@ +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW) +{ + neon.refreshAll(); +} \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaign_id/displayValueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaign_id/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..12ea2ba316a5f6370d042673bc2c79c8019841f4 --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/campaign_id/displayValueProcess.js @@ -0,0 +1,9 @@ +import("system.result"); +import("system.db"); +import("system.vars"); +import("Campaign_lib"); + +var campaignId = vars.get("$field.CAMPAIGN_ID"); +var campaignName = CampaignUtils.getCampaignNameById(campaignId); + +result.string(campaignName); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js b/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js new file mode 100644 index 0000000000000000000000000000000000000000..914e1ea09b29d039e3c94536843f6c2d6186c4a2 --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js @@ -0,0 +1,7 @@ +import("system.neon"); +import("system.logging"); +import("Campaign_lib"); +import("system.vars"); + +var stepId = CampaignUtils.getDefaultCampaignStep(vars.get("$field.CAMPAIGN_ID")); +neon.setFieldValue("$field.CAMPAIGNSTEP_ID", stepId); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaign_id/stateProcess.js b/entity/CampaignParticipant_entity/entityfields/campaign_id/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..08bb8ede9acc54fa91f0ae1b22db90a5f61cea36 --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/campaign_id/stateProcess.js @@ -0,0 +1,9 @@ +import("system.neon"); +import("system.result"); +import("system.vars"); +import("system.logging"); + +if(vars.exists("$param.CampaignId_param") && vars.get("$param.CampaignId_param") != "") + result.string(neon.COMPONENTSTATE_READONLY); +else + result.string(neon.COMPONENTSTATE_EDITABLE); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaign_id/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaign_id/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..619a4eb3879036407125c0a0f51cf0419a54b1fc --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/campaign_id/valueProcess.js @@ -0,0 +1,9 @@ +import("system.neon"); +import("system.result"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && + vars.exists("$param.CampaignId_param") && vars.get("$param.CampaignId_param")) + { + result.string(vars.get("$param.CampaignId_param")); + } \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaignparticipantid/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaignparticipantid/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f6b9da922bcaccb0006690f599c1d3cee4d00c55 --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/campaignparticipantid/valueProcess.js @@ -0,0 +1,7 @@ +import("system.neon"); +import("system.util"); +import("system.vars"); +import("system.result"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaignparticipantsprovider/children/campaignstepid_param/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaignparticipantsprovider/children/campaignstepid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/entity/CampaignParticipant_entity/entityfields/campaignstep_id/displayValueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaignstep_id/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e99107695ed42802fee2490b171383bdc2de6ea6 --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/campaignstep_id/displayValueProcess.js @@ -0,0 +1,7 @@ +import("system.logging"); +import("system.vars"); +import("system.db"); +import("system.result"); + +logging.log("campaignstep_idim displayvalue -> " + vars.get("$field.CAMPAIGNSTEP_ID")); +result.string(db.cell("select NAME from CAMPAIGNSTEP where CAMPAIGNSTEPID = '" + vars.get("$field.CAMPAIGNSTEP_ID") + "'")); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaignstep_id/onValueChange.js b/entity/CampaignParticipant_entity/entityfields/campaignstep_id/onValueChange.js new file mode 100644 index 0000000000000000000000000000000000000000..786b3ee87f36dd8cee13c107c0ba28bc76dc008c --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/campaignstep_id/onValueChange.js @@ -0,0 +1,3 @@ +import("system.vars"); +import("system.logging"); +logging.log("campaignstep_id im onValueChange -> " + vars.get("$field.CAMPAIGNSTEP_ID")); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d001f813402438ca1481d4c2fd03c94b4b341de6 --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +result.string(CampaignUtils.getParticipantCountForStep(vars.get("$field.CAMPAIGNSTEP_ID"))); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..cc8e454b27deee27b34ccb9e12c08f4e767c065f --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +result.string(CampaignUtils.getMaxParticipantCountForStep(vars.get("$field.CAMPAIGNSTEP_ID"))); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c05a7b59b563a7c1fd3b5cd7f7905c60ee7cbe09 --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js @@ -0,0 +1,3 @@ +import("system.vars"); +import("system.result"); +result.string(vars.get("$field.CAMPAIGN_ID")); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/contact_id/displayValueProcess.js b/entity/CampaignParticipant_entity/entityfields/contact_id/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c79f958b803960d5ec825a4f567d82d44c9a20e4 --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/contact_id/displayValueProcess.js @@ -0,0 +1,16 @@ +import("system.logging"); +import("system.result"); +import("system.vars"); +import("Contact_lib"); +import("system.neon"); + +logging.log("contactid displayvalueValueProcess -> " + vars.getString("$field.CONTACT_ID")); + + +let contactId = vars.getString("$field.CONTACT_ID"); +let displayValue = ""; + +if(contactId != "") + displayValue = ContactUtils.getFullTitleByContactId(contactId); + +result.string(displayValue); diff --git a/entity/CampaignParticipant_entity/entityfields/contact_id/linkedContextProcess.js b/entity/CampaignParticipant_entity/entityfields/contact_id/linkedContextProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6e599325755a49424ba25051c71e5367e50c3be9 --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/contact_id/linkedContextProcess.js @@ -0,0 +1,6 @@ +import("system.logging"); +import("system.vars"); +import("system.result"); +import("Contact_lib"); + +result.string(ContactUtils.getContextByContactId(vars.getString("$field.CONTACT_ID"))); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/contact_id/stateProcess.js b/entity/CampaignParticipant_entity/entityfields/contact_id/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..5b6862597686b505239e46fb2e47034e558fa50c --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/contact_id/stateProcess.js @@ -0,0 +1,12 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param")) + //A contact has been provided. Show it in readonly. + fieldState = neon.COMPONENTSTATE_READONLY; +else + //No contact has been provided, therefore let the user select one. + fieldState = neon.COMPONENTSTATE_EDITABLE; + +result.string(fieldState); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..a84578985ef42c5c0b1b7f9aef780bc586864a38 --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js @@ -0,0 +1,7 @@ +import("system.logging"); +import("system.result"); +import("system.vars"); + +logging.log("$param.ContactId_param -> " + vars.get("$param.ContactId_param")); +if(vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param")) + result.string(vars.get("$param.ContactId_param")); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/contactcontext/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/contactcontext/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2e504d63e3b5a3f71b54b072798b3ad09c50984b --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/contactcontext/valueProcess.js @@ -0,0 +1,5 @@ +import("system.vars"); +import("system.result"); +import("Contact_lib"); + +result.string(ContactUtils.getContextByContactId(vars.getString("$field.CONTACT_ID"))); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/date_new/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/date_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..a72892783bf2bd04fe353c47f1be0cb570bbb323 --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/date_new/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(vars.get("$sys.date")); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/filterviewactiongroup/children/setsteptoparticipantselection/onActionProcess.js b/entity/CampaignParticipant_entity/entityfields/filterviewactiongroup/children/setsteptoparticipantselection/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4e09ec798a27900e7e2ffeb2cb819458feb470a4 --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/filterviewactiongroup/children/setsteptoparticipantselection/onActionProcess.js @@ -0,0 +1,14 @@ +import("system.logging"); +import("system.vars"); +import("system.neon"); +import("Campaign_lib"); +logging.log("inOnAction -> "); + logging.log("sys selection -> " + vars.get("$sys.selection")); +if(vars.exists("$sys.selection")) //selektierte IDs als Array +{ + logging.log("campaignid -> " + vars.get("$field.CAMPAIGN_ID")); + logging.log("campaignstepid -> " + vars.get("$field.CAMPAIGNSTEP_ID")); + logging.log("contact id -> " + vars.get("$field.CONTACT_ID")); + logging.log("sys selection -> " + vars.get("$sys.selection")); + CampaignUtils.openSetCampaignStepView(vars.get("$sys.selection"), vars.get("$field.CAMPAIGN_ID"), vars.get("$field.CAMPAIGNSTEP_ID")); +} \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/selectedcampaign/onValueChange.js b/entity/CampaignParticipant_entity/entityfields/selectedcampaign/onValueChange.js new file mode 100644 index 0000000000000000000000000000000000000000..42ea3ef828ff969d88c3c4752232117c7f7e7e89 --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/selectedcampaign/onValueChange.js @@ -0,0 +1,4 @@ +import("system.neon"); + + +neon.setFieldValue("$field.SYSTEMTEMPLATE", templateId); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/user_new/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/user_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e518bc75a9494e53a83613dedd943106e74fc00a --- /dev/null +++ b/entity/CampaignParticipant_entity/entityfields/user_new/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(vars.get("$sys.user")); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/conditionProcess.js b/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/conditionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..db030eee9a91a5eae552c5cb328e8d26cfdb4eb5 --- /dev/null +++ b/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/conditionProcess.js @@ -0,0 +1,19 @@ +import("system.logging"); +import("system.result"); +import("system.vars"); + +var resultValue; +if(vars.get("$param.CampaignId_param") != null && vars.get("$param.CampaignId_param") != "") +{ + resultValue = "CAMPAIGN_ID = '" + vars.get("$param.CampaignId_param") + "'"; + + if(vars.get("$param.CampaignStepId_param") != null && vars.get("$param.CampaignStepId_param") != "") + resultValue += " AND CAMPAIGNSTEP_ID = '" + vars.get("$param.CampaignStepId_param") + "'"; + + result.string(resultValue); +} +else if(vars.get("$param.CampaignStepId_param") != null && vars.get("$param.CampaignStepId_param") != "") + { + resultValue = "CAMPAIGNSTEP_ID = '" + vars.get("$param.CampaignStepId_param") + "'"; + result.string(resultValue); + } \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/onDBInsert.js b/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/onDBInsert.js new file mode 100644 index 0000000000000000000000000000000000000000..c6903032cc3a3689f688dba12ac13a56c5da533c --- /dev/null +++ b/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/onDBInsert.js @@ -0,0 +1,9 @@ +import("system.vars"); +import("Campaign_lib"); + +var campaignId = vars.get("$field.CAMPAIGN_ID"); +var campaignStepId = vars.get("$field.CAMPAIGNSTEP_ID"); +var contactId = vars.get("$field.CONTACT_ID"); +var campaignParticipantId = vars.get("$field.CAMPAIGNPARTICIPANTID"); + +CampaignUtils.createLogEntry(campaignId, campaignStepId, contactId, campaignParticipantId); \ No newline at end of file diff --git a/entity/CampaignStep_entity/CampaignStep_entity.aod b/entity/CampaignStep_entity/CampaignStep_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..e26c5f83d6da803c7737f361b6e46536217fa0d6 --- /dev/null +++ b/entity/CampaignStep_entity/CampaignStep_entity.aod @@ -0,0 +1,324 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.2"> + <name>CampaignStep_entity</name> + <title>Campaign Step</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>NEON:GROUP_APPOINTMENT</icon> + <titleProcess>%aditoprj%/entity/CampaignStep_entity/titleProcess.js</titleProcess> + <recordContainer>db</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>CAMPAIGNSTEPID</name> + <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/campaignstepid/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>CAMPAIGN_ID</name> + <title>Campaign</title> + <consumer>CampaignConsumer</consumer> + <linkedContext>Campaign</linkedContext> + <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/campaign_id/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>EMPLOYEE_CONTACT_ID</name> + <title>Zuständiger</title> + <consumer>Employees</consumer> + <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/employee_contact_id/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/employee_contact_id/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>NAME</name> + <title>Name</title> + <mandatory v="true" /> + </entityField> + <entityField> + <name>DATE_START</name> + <title>Beginn</title> + <contentType>DATE</contentType> + <resolution>DAY</resolution> + <outputFormat>dd.MM.yyyy</outputFormat> + <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/date_start/valueProcess.js</valueProcess> + <onValidation>%aditoprj%/entity/CampaignStep_entity/entityfields/date_start/onValidation.js</onValidation> + <onValueChange>%aditoprj%/entity/CampaignStep_entity/entityfields/date_start/onValueChange.js</onValueChange> + </entityField> + <entityField> + <name>DATE_END</name> + <title>Ende</title> + <contentType>DATE</contentType> + <resolution>DAY</resolution> + <outputFormat>dd.MM.yyyy</outputFormat> + <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/date_end/valueProcess.js</valueProcess> + <onValidation>%aditoprj%/entity/CampaignStep_entity/entityfields/date_end/onValidation.js</onValidation> + </entityField> + <entityField> + <name>STATE</name> + <title>Status</title> + <consumer>KeywordStates</consumer> + <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/state/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/state/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>SORTING</name> + <title>Reihenfolge</title> + <contentType>NUMBER</contentType> + <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/sorting/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>USER_NEW</name> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/user_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>DATE_NEW</name> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/date_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>USER_EDIT</name> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/user_edit/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>DATE_EDIT</name> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/date_edit/valueProcess.js</valueProcess> + </entityField> + <entityProvider> + <name>CampaignSteps</name> + <fieldType>DEPENDENCY_IN</fieldType> + <recordContainer>db</recordContainer> + <dependencies> + <entityDependency> + <name>421e6cc2-f874-4834-b022-fe1b253d50af</name> + <entityName>Campaign_entity</entityName> + <fieldName>CampaignSteps</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>7f1c046b-0e8f-429e-a0a6-3322382c61d4</name> + <entityName>CampaignParticipant_entity</entityName> + <fieldName>CampaignSteps</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>eedc7b17-af98-4ffb-b527-97835cf8f903</name> + <entityName>CampaignAddParticipants_entity</entityName> + <fieldName>CampaignStepConsumer</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>ad4ee503-95b9-4add-a0ef-e833db008349</name> + <entityName>CampaignCost_entitiy</entityName> + <fieldName>CampaignSteps</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + <children> + <entityParameter> + <name>campaignId_param</name> + <expose v="true" /> + <triggerRecalculation v="false" /> + <mandatory v="true" /> + </entityParameter> + </children> + </entityProvider> + <entityParameter> + <name>campaignId_param</name> + <expose v="true" /> + <triggerRecalculation v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityConsumer> + <name>KeywordStates</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContainerName_param</name> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/keywordstates/children/containername_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityField> + <name>MAXPARTICIPANTS</name> + <title>Max participants</title> + <contentType>NUMBER</contentType> + <mandatory v="true" /> + </entityField> + <entityConsumer> + <name>CampaignParticipantsConsumer</name> + <title>Participants</title> + <fieldType>DEPENDENCY_OUT</fieldType> + <selectionMode>MULTI</selectionMode> + <dependency> + <name>dependency</name> + <entityName>CampaignParticipant_entity</entityName> + <fieldName>CampaignParticipantsProvider</fieldName> + </dependency> + <children> + <entityParameter> + <name>CampaignId_param</name> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>CampaignStepId_param</name> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityField> + <name>CurrentMaxParticipantsInfo</name> + <title>Participants</title> + <state>READONLY</state> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/currentmaxparticipantsinfo/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>CampaignStatus</name> + <title>Campaign status</title> + <state>READONLY</state> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/campaignstatus/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>DESCRIPTION</name> + <title>Description</title> + <contentType>LONG_TEXT</contentType> + </entityField> + <entityConsumer> + <name>Employees</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Employee_entity</entityName> + <fieldName>Employees</fieldName> + </dependency> + </entityConsumer> + <entityConsumer> + <name>CampaignStepCosts</name> + <title>Cost</title> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>CampaignCost_entitiy</entityName> + <fieldName>StepCosts</fieldName> + </dependency> + <children> + <entityParameter> + <name>CampaignId_param</name> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>CampaignStepId_param</name> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignstepid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityField> + <name>COST</name> + <title>Cost</title> + <contentType>NUMBER</contentType> + <outputFormat>#,##0.00</outputFormat> + </entityField> + <entityConsumer> + <name>CampaignConsumer</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Campaign_entity</entityName> + <fieldName>CampaignProvider</fieldName> + </dependency> + </entityConsumer> + </entityFields> + <recordContainers> + <dbRecordContainer> + <name>db</name> + <alias>Data_alias</alias> + <conditionProcess>%aditoprj%/entity/CampaignStep_entity/recordcontainers/db/conditionProcess.js</conditionProcess> + <orderClauseProcess>%aditoprj%/entity/CampaignStep_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess> + <linkInformation> + <linkInformation> + <name>b1b09ce7-82a2-41fd-9b20-1fd5235f8f30</name> + <tableName>CAMPAIGNSTEP</tableName> + <primaryKey>CAMPAIGNSTEPID</primaryKey> + <isUIDTable v="true" /> + <readonly v="false" /> + </linkInformation> + </linkInformation> + <recordFieldMappings> + <dbRecordFieldMapping> + <name>CAMPAIGN_ID.value</name> + <recordfield>CAMPAIGNSTEP.CAMPAIGN_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DATE_EDIT.value</name> + <recordfield>CAMPAIGNSTEP.DATE_EDIT</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DATE_END.value</name> + <recordfield>CAMPAIGNSTEP.DATE_END</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DATE_NEW.value</name> + <recordfield>CAMPAIGNSTEP.DATE_NEW</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DATE_START.value</name> + <recordfield>CAMPAIGNSTEP.DATE_START</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>EMPLOYEE_CONTACT_ID.value</name> + <recordfield>CAMPAIGNSTEP.EMPLOYEE_CONTACT_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>NAME.value</name> + <recordfield>CAMPAIGNSTEP.NAME</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>SORTING.value</name> + <recordfield>CAMPAIGNSTEP.SORTING</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>STATE.value</name> + <recordfield>CAMPAIGNSTEP.STATE</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>USER_EDIT.value</name> + <recordfield>CAMPAIGNSTEP.USER_EDIT</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>USER_NEW.value</name> + <recordfield>CAMPAIGNSTEP.USER_NEW</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>STATE.displayValue</name> + <expression>%aditoprj%/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js</expression> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>MAXPARTICIPANTS.value</name> + <recordfield>CAMPAIGNSTEP.MAXPARTICIPANTS</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CAMPAIGNSTEPID.value</name> + <recordfield>CAMPAIGNSTEP.CAMPAIGNSTEPID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <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> +</entity> diff --git a/entity/CampaignStep_entity/entityfields/campaign_id/displayValueProcess.js b/entity/CampaignStep_entity/entityfields/campaign_id/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d31669f144542cf6a53139722e3ae27f91156a19 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/campaign_id/displayValueProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +var campaignId = vars.get("$this.value"); +var campaignName = CampaignUtils.getCampaignNameById(campaignId) +result.string(campaignName); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..9e7628a2cbd9b8acde9cf67636e0fdeb5843bf83 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js @@ -0,0 +1,8 @@ +import("system.neon"); +import("system.logging"); +import("system.result"); +import("system.vars"); + +//For creation of new Step in CampaignMainView +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.campaignId_param") && vars.get("$param.campaignId_param")) + result.string(vars.get("$param.campaignId_param")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..9dd7e44f4ea3fc9d60c8a5dcbb9d208feb770fab --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.vars"); + +result.string(vars.get("$field.CAMPAIGN_ID")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..737745c8c91d70a5a56cb216a4586749ea411dda --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js @@ -0,0 +1,6 @@ +import("system.logging"); +import("system.result"); +import("system.vars"); + +logging.log("CS_entity_CPCOnsumer_CSId_param: field.CAMPAIGNSTEPID ->" + vars.getString("$field.CAMPAIGNSTEPID")); +result.string(vars.getString("$field.CAMPAIGNSTEPID")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaignstatus/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignstatus/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..b1c6ea17f2c0d193d665398c40a5f8d80722dfae --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/campaignstatus/valueProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +let campaignId = vars.get("$field.CAMPAIGN_ID"); + +result.string(CampaignUtils.getCampaignStatusByCampaignId(campaignId)) \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..b2482a5e35fe9e1a55eb568ff5a3798b696dbfbf --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.CAMPAIGN_ID")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignstepid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignstepid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..533f8ec837ea2f9b588ddf05545ac47cdda23d18 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignstepid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$sys.uid")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaignstepid/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignstepid/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4af99287f59a86e98d9b4c552c010fe13c106cc7 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/campaignstepid/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/currentmaxparticipantsinfo/valueProcess.js b/entity/CampaignStep_entity/entityfields/currentmaxparticipantsinfo/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f3447d7251ccdd3bc5fdb2115c62be33268ab094 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/currentmaxparticipantsinfo/valueProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +let currentParticipantsCount = CampaignUtils.getParticipantCountForStep(vars.get("$field.CAMPAIGNSTEPID")); +let maxParticipantsStepCount = vars.get("$field.MAXPARTICIPANTS"); +result.string(currentParticipantsCount + "/" + maxParticipantsStepCount); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/date_edit/valueProcess.js b/entity/CampaignStep_entity/entityfields/date_edit/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..5e6ef059738e0c724a468685333a5e257ac228ce --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/date_edit/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) + result.string(vars.get("$sys.date")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/date_end/onValidation.js b/entity/CampaignStep_entity/entityfields/date_end/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..64e94f87c19545092b85dd400847f342bf7aac70 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/date_end/onValidation.js @@ -0,0 +1,14 @@ +import("system.neon"); +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Entity_lib"); + +var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.DATE_END")); + +if (DateUtils.validateBeginnBeforeEnd(vars.get("$field.DATE_START"), cEnd) === false) + result.string(DateUtils.getValidationFailString()); +else + { + neon.refresh(["$field.DATE_START"]); + } \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/date_end/valueProcess.js b/entity/CampaignStep_entity/entityfields/date_end/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..bf2e43999c9b27b5744089cb8d88ec10e1c5feed --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/date_end/valueProcess.js @@ -0,0 +1,10 @@ +import("system.neon"); +import("system.vars"); +import("system.result"); +import("system.datetime"); + +var threeWeeks = datetime.ONE_WEEK * 3; +var inThreeWeeks = datetime.date() + threeWeeks; + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) + result.string(inThreeWeeks); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/date_new/valueProcess.js b/entity/CampaignStep_entity/entityfields/date_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..a72892783bf2bd04fe353c47f1be0cb570bbb323 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/date_new/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(vars.get("$sys.date")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/date_start/onValidation.js b/entity/CampaignStep_entity/entityfields/date_start/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..83a6fd0a8f608b725d4f9118179bf7e5c571635a --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/date_start/onValidation.js @@ -0,0 +1,14 @@ +import("system.neon"); +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Entity_lib"); + +var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.DATE_START")); + +if (DateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.DATE_END")) === false) + result.string(DateUtils.getValidationFailString()); +else + { + neon.refresh(["$field.DATE_END"]); + } \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/date_start/onValueChange.js b/entity/CampaignStep_entity/entityfields/date_start/onValueChange.js new file mode 100644 index 0000000000000000000000000000000000000000..8f389856a99f98af690f9391efb4cbba0581c5a5 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/date_start/onValueChange.js @@ -0,0 +1,2 @@ +import("system.logging"); +logging.log("date start on value change -> "); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/date_start/valueProcess.js b/entity/CampaignStep_entity/entityfields/date_start/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4c1e2142a292fa2ef6fa38dbe2e458d9628af21f --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/date_start/valueProcess.js @@ -0,0 +1,11 @@ +import("Date_lib"); +import("system.neon"); +import("system.vars"); +import("system.result"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + result.string(DateUtils.getTodayUTC()); +} +else + result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/employee_contact_id/displayValueProcess.js b/entity/CampaignStep_entity/entityfields/employee_contact_id/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..037d5e264baf41f4e2b0ebcfce8103d365ee7e13 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/employee_contact_id/displayValueProcess.js @@ -0,0 +1,5 @@ +import("system.vars"); +import("system.result"); +import("Contact_lib"); + +result.string(ContactUtils.getTitleByContactId(vars.get("$field.EMPLOYEE_CONTACT_ID"))); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/employee_contact_id/valueProcess.js b/entity/CampaignStep_entity/entityfields/employee_contact_id/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..1e62e7551ccb20b0b0d7aca34f64b6e448b5dda7 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/employee_contact_id/valueProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); +import("Employee_lib"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(EmployeeUtils.getCurrentContactId()); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/keywordstates/children/containername_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/keywordstates/children/containername_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..ebd6eccbcbcd1f6e73a292b82a107c78f8b91325 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/keywordstates/children/containername_param/valueProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string($KeywordRegistry.campaignStepState()); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/sorting/valueProcess.js b/entity/CampaignStep_entity/entityfields/sorting/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8be188bfa5837c38651100b49d7163c0cf745fb9 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/sorting/valueProcess.js @@ -0,0 +1,14 @@ +import("system.db"); +import("system.neon"); +import("system.vars"); +import("system.util"); +import("system.result"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + var campaignId = vars.get("$field.CAMPAIGN_ID"); + var latestSortingQuery = "select COUNT(CAMPAIGNSTEPID) from CAMPAIGNSTEP " + + "where CAMPAIGN_ID = '" + campaignId + "'"; + var stepCount = db.cell(latestSortingQuery); + result.string(parseInt(stepCount) + 1); +} \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/state/displayValueProcess.js b/entity/CampaignStep_entity/entityfields/state/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..076a4dc046a745c33652aebad5ffa9c38125f9ef --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/state/displayValueProcess.js @@ -0,0 +1,6 @@ +import("system.result"); +import("system.vars"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string(KeywordUtils.getViewValue($KeywordRegistry.campaignStepState(), vars.get("$this.value"))); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/state/valueProcess.js b/entity/CampaignStep_entity/entityfields/state/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..9524152a718ff70b850fa270593399e3fdc5f5bd --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/state/valueProcess.js @@ -0,0 +1,7 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); +import("KeywordRegistry_basic"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) + result.string($KeywordRegistry.campaignStepState$open()); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/user_edit/valueProcess.js b/entity/CampaignStep_entity/entityfields/user_edit/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6af880ae3e0e2b89b4eee8327ed49f1eefe458af --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/user_edit/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) + result.string(vars.get("$sys.user")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/user_new/valueProcess.js b/entity/CampaignStep_entity/entityfields/user_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e518bc75a9494e53a83613dedd943106e74fc00a --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/user_new/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(vars.get("$sys.user")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/recordcontainers/db/conditionProcess.js b/entity/CampaignStep_entity/recordcontainers/db/conditionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..b64ace9707df0605c82aba6306dd622fbc9a2a30 --- /dev/null +++ b/entity/CampaignStep_entity/recordcontainers/db/conditionProcess.js @@ -0,0 +1,9 @@ +import("system.logging"); +import("system.vars"); +import("system.result"); + +if(vars.exists("$param.campaignId_param") && vars.get("$param.campaignId_param")) +{ + logging.log("CampaignStepDBRC_conditionProcess: campaignId_param -> " + vars.get("$param.campaignId_param")); + result.string("CAMPAIGN_ID = '" + vars.getString("$param.campaignId_param") + "'"); +} diff --git a/entity/CampaignStep_entity/recordcontainers/db/orderClauseProcess.js b/entity/CampaignStep_entity/recordcontainers/db/orderClauseProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8538a702d13027d9d9739d9b6652105b87725638 --- /dev/null +++ b/entity/CampaignStep_entity/recordcontainers/db/orderClauseProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.db"); + +result.object({"CAMPAIGNSTEP.SORTING": db.ASCENDING}); \ No newline at end of file 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/CampaignStep_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js b/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..8b0d07b793542a03718b3ba98c1afd793aa5a345 --- /dev/null +++ b/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js @@ -0,0 +1,6 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.campaignStepState(), "CAMPAIGNSTEP.STATE"); +result.string(sql); \ No newline at end of file diff --git a/entity/CampaignStep_entity/titleProcess.js b/entity/CampaignStep_entity/titleProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..429260276f9d30b111be834373ee1613df1f7084 --- /dev/null +++ b/entity/CampaignStep_entity/titleProcess.js @@ -0,0 +1,5 @@ +import("Context_lib"); +import("system.result"); +import("system.vars"); + +result.string(ContextUtils.prefixWithCurrentContextTitle(vars.getString("$field.NAME"))); \ No newline at end of file diff --git a/entity/Campaign_entity/Campaign_entity.aod b/entity/Campaign_entity/Campaign_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..1b94e9210769af76e7e2c9bba236bdac858268c4 --- /dev/null +++ b/entity/Campaign_entity/Campaign_entity.aod @@ -0,0 +1,295 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.2"> + <name>Campaign_entity</name> + <title>Campaign</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:GROUP</icon> + <titleProcess>%aditoprj%/entity/Campaign_entity/titleProcess.js</titleProcess> + <recordContainer>db</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>CAMPAIGNID</name> + <searchable v="false" /> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaignid/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>NAME</name> + <title>Name</title> + <mandatory v="true" /> + </entityField> + <entityField> + <name>DATE_START</name> + <title>Beginn</title> + <contentType>DATE</contentType> + <resolution>DAY</resolution> + <outputFormat>dd.MM.YYYY</outputFormat> + <state>READONLY</state> + <displayValueProcess>%aditoprj%/entity/Campaign_entity/entityfields/date_start/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>DATE_END</name> + <title>Ende</title> + <contentType>DATE</contentType> + <resolution>DAY</resolution> + <outputFormat>dd.MM.YYYY</outputFormat> + <state>READONLY</state> + <displayValueProcess>%aditoprj%/entity/Campaign_entity/entityfields/date_end/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>EMPLOYEE_CONTACT_ID</name> + <title>Hauptverantw.</title> + <consumer>Employee</consumer> + <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/employee_contact_id/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/Campaign_entity/entityfields/employee_contact_id/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>DESCRIPTION</name> + <title>Description</title> + <contentType>LONG_TEXT</contentType> + </entityField> + <entityField> + <name>USER_NEW</name> + <searchable v="false" /> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/user_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>DATE_NEW</name> + <contentType>DATE</contentType> + <searchable v="false" /> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/date_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>USER_EDIT</name> + <searchable v="false" /> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/user_edit/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>DATE_EDIT</name> + <contentType>DATE</contentType> + <searchable v="false" /> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/date_edit/valueProcess.js</valueProcess> + </entityField> + <entityConsumer> + <name>CampaignSteps</name> + <title>Steps</title> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>CampaignStep_entity</entityName> + <fieldName>CampaignSteps</fieldName> + </dependency> + <children> + <entityParameter> + <name>campaignId_param</name> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js</valueProcess> + <expose v="true" /> + <triggerRecalculation v="false" /> + <mandatory v="true" /> + </entityParameter> + </children> + </entityConsumer> + <entityField> + <name>STATE</name> + <title>Status</title> + <consumer>KeywordStates</consumer> + <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/state/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/Campaign_entity/entityfields/state/displayValueProcess.js</displayValueProcess> + </entityField> + <entityConsumer> + <name>KeywordStates</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContainerName_param</name> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/keywordstates/children/containername_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityProvider> + <name>CampaignProvider</name> + <fieldType>DEPENDENCY_IN</fieldType> + <recordContainer>db</recordContainer> + <dependencies> + <entityDependency> + <name>7cb37ad1-a0a9-41bc-9a9e-7207317cd812</name> + <entityName>CampaignParticipant_entity</entityName> + <fieldName>CampaignsConsumer</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>918b744c-4bd5-4ae0-9a09-5ecf1927b8f6</name> + <entityName>CampaignAddParticipants_entity</entityName> + <fieldName>CampaignConsumer</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>d238b02c-75e7-4cf4-b90c-bb36d41ae90f</name> + <entityName>CampaignCost_entitiy</entityName> + <fieldName>Campaigns</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>92ec68f6-2ff5-4f15-9001-6297a6d5790d</name> + <entityName>CampaignStep_entity</entityName> + <fieldName>CampaignConsumer</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + <entityConsumer> + <name>CampaignParticipants</name> + <title>Participants</title> + <fieldType>DEPENDENCY_OUT</fieldType> + <selectionMode>MULTI</selectionMode> + <dependency> + <name>dependency</name> + <entityName>CampaignParticipant_entity</entityName> + <fieldName>CampaignParticipantsProvider</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContactId_param</name> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>CampaignStepId_param</name> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>CampaignId_param</name> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaignparticipants/children/campaignid_param/valueProcess.js</valueProcess> + <expose v="true" /> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>Employee</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Employee_entity</entityName> + <fieldName>Employees</fieldName> + </dependency> + </entityConsumer> + <entityConsumer> + <name>CampaignCosts</name> + <title>Costs</title> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>CampaignCost_entitiy</entityName> + <fieldName>CampaignCosts</fieldName> + </dependency> + <children> + <entityParameter> + <name>CampaignId_param</name> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaigncosts/children/campaignid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityField> + <name>COST</name> + <title>Cost</title> + <contentType>NUMBER</contentType> + <outputFormat>#,##0.00</outputFormat> + </entityField> + <entityConsumer> + <name>CampaignStepCosts</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>CampaignCost_entitiy</entityName> + <fieldName>StepCosts</fieldName> + </dependency> + <children> + <entityParameter> + <name>CampaignId_param</name> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityField> + <name>stepCount</name> + <title>Steps</title> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/stepcount/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>participantCount</name> + <title>Participants</title> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/participantcount/valueProcess.js</valueProcess> + </entityField> + </entityFields> + <recordContainers> + <dbRecordContainer> + <name>db</name> + <alias>Data_alias</alias> + <onDBInsert>%aditoprj%/entity/Campaign_entity/recordcontainers/db/onDBInsert.js</onDBInsert> + <onDBDelete>%aditoprj%/entity/Campaign_entity/recordcontainers/db/onDBDelete.js</onDBDelete> + <linkInformation> + <linkInformation> + <name>f3893829-3af2-4e55-ae85-c3a24411a8b8</name> + <tableName>CAMPAIGN</tableName> + <primaryKey>CAMPAIGNID</primaryKey> + <isUIDTable v="true" /> + <readonly v="false" /> + </linkInformation> + </linkInformation> + <recordFieldMappings> + <dbRecordFieldMapping> + <name>DATE_EDIT.value</name> + <recordfield>CAMPAIGN.DATE_EDIT</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DATE_NEW.value</name> + <recordfield>CAMPAIGN.DATE_NEW</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DESCRIPTION.value</name> + <recordfield>CAMPAIGN.DESCRIPTION</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>EMPLOYEE_CONTACT_ID.value</name> + <recordfield>CAMPAIGN.EMPLOYEE_CONTACT_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>NAME.value</name> + <recordfield>CAMPAIGN.NAME</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>USER_EDIT.value</name> + <recordfield>CAMPAIGN.USER_EDIT</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>USER_NEW.value</name> + <recordfield>CAMPAIGN.USER_NEW</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>STATE.value</name> + <recordfield>CAMPAIGN.STATE</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>STATE.displayValue</name> + <expression>%aditoprj%/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js</expression> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CAMPAIGNID.value</name> + <recordfield>CAMPAIGN.CAMPAIGNID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>COST.value</name> + <expression>%aditoprj%/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/cost.value/expression.js</expression> + </dbRecordFieldMapping> + </recordFieldMappings> + </dbRecordContainer> + </recordContainers> +</entity> diff --git a/entity/Campaign_entity/entityfields/campaigncosts/children/campaignid_param/valueProcess.js b/entity/Campaign_entity/entityfields/campaigncosts/children/campaignid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c95f5ea0c85673d6f68abfdbef56f55fb63597c1 --- /dev/null +++ b/entity/Campaign_entity/entityfields/campaigncosts/children/campaignid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.vars"); + +result.string(vars.get("$sys.uid")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/campaignid/valueProcess.js b/entity/Campaign_entity/entityfields/campaignid/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4af99287f59a86e98d9b4c552c010fe13c106cc7 --- /dev/null +++ b/entity/Campaign_entity/entityfields/campaignid/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/campaignparticipants/children/campaignid_param/valueProcess.js b/entity/Campaign_entity/entityfields/campaignparticipants/children/campaignid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..3814648f507bd77edb266f38a807c1669e8c5f1e --- /dev/null +++ b/entity/Campaign_entity/entityfields/campaignparticipants/children/campaignid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.CAMPAIGNID")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js b/entity/Campaign_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c95f5ea0c85673d6f68abfdbef56f55fb63597c1 --- /dev/null +++ b/entity/Campaign_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.vars"); + +result.string(vars.get("$sys.uid")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js b/entity/Campaign_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..ea290bfda9377cc69f8b4c727ccbe2cf83f493de --- /dev/null +++ b/entity/Campaign_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js @@ -0,0 +1,5 @@ +import("system.logging"); +import("system.result"); +import("system.vars"); + +result.string(vars.getString("$field.CAMPAIGNID")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/date_edit/valueProcess.js b/entity/Campaign_entity/entityfields/date_edit/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..5e6ef059738e0c724a468685333a5e257ac228ce --- /dev/null +++ b/entity/Campaign_entity/entityfields/date_edit/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) + result.string(vars.get("$sys.date")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/date_end/displayValueProcess.js b/entity/Campaign_entity/entityfields/date_end/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..af009bc99321959dee737e4dd3c6bea039862e1c --- /dev/null +++ b/entity/Campaign_entity/entityfields/date_end/displayValueProcess.js @@ -0,0 +1,12 @@ +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +if(vars.exists("$field.CAMPAIGNID") && + vars.get("$field.CAMPAIGNID") != "" && vars.get("$field.CAMPAIGNID") != null) +{ + var capmaignId = vars.get("$field.CAMPAIGNID"); + var campaignStepEndDate = CampaignUtils.getCampaignEndDate(capmaignId); + + result.string(campaignStepEndDate); +} \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/date_new/valueProcess.js b/entity/Campaign_entity/entityfields/date_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..a72892783bf2bd04fe353c47f1be0cb570bbb323 --- /dev/null +++ b/entity/Campaign_entity/entityfields/date_new/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(vars.get("$sys.date")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/date_start/displayValueProcess.js b/entity/Campaign_entity/entityfields/date_start/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..fd8b8586af122186de41ee63ab69db1c255434eb --- /dev/null +++ b/entity/Campaign_entity/entityfields/date_start/displayValueProcess.js @@ -0,0 +1,12 @@ +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +if(vars.exists("$field.CAMPAIGNID") && + vars.get("$field.CAMPAIGNID") != "" && vars.get("$field.CAMPAIGNID") != null) +{ + var capmaignId = vars.get("$field.CAMPAIGNID"); + var campaignStepStartDate = CampaignUtils.getCampaignStartDate(capmaignId); + + result.string(campaignStepStartDate); +} \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/employee_contact_id/displayValueProcess.js b/entity/Campaign_entity/entityfields/employee_contact_id/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..037d5e264baf41f4e2b0ebcfce8103d365ee7e13 --- /dev/null +++ b/entity/Campaign_entity/entityfields/employee_contact_id/displayValueProcess.js @@ -0,0 +1,5 @@ +import("system.vars"); +import("system.result"); +import("Contact_lib"); + +result.string(ContactUtils.getTitleByContactId(vars.get("$field.EMPLOYEE_CONTACT_ID"))); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/employee_contact_id/valueProcess.js b/entity/Campaign_entity/entityfields/employee_contact_id/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..1e62e7551ccb20b0b0d7aca34f64b6e448b5dda7 --- /dev/null +++ b/entity/Campaign_entity/entityfields/employee_contact_id/valueProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); +import("Employee_lib"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(EmployeeUtils.getCurrentContactId()); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/keywordstates/children/containername_param/valueProcess.js b/entity/Campaign_entity/entityfields/keywordstates/children/containername_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c4b797e74cbaf5fc02fee2f06791e7bd30cda404 --- /dev/null +++ b/entity/Campaign_entity/entityfields/keywordstates/children/containername_param/valueProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string($KeywordRegistry.campaignState()); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/participantcount/valueProcess.js b/entity/Campaign_entity/entityfields/participantcount/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..184e4e80abbaceb98e2b8ecc3dc62ff8111b0d0d --- /dev/null +++ b/entity/Campaign_entity/entityfields/participantcount/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.vars"); +import("Campaign_lib"); +result.string(CampaignUtils.getParticipantCount(vars.get("$field.CAMPAIGNID"))); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/state/displayValueProcess.js b/entity/Campaign_entity/entityfields/state/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..53f6f8c77cfe099cd4ca554a7b67cb0d9c904aef --- /dev/null +++ b/entity/Campaign_entity/entityfields/state/displayValueProcess.js @@ -0,0 +1,6 @@ +import("system.result"); +import("system.vars"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string(KeywordUtils.getViewValue($KeywordRegistry.campaignState(), vars.get("$field.STATE"))); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/state/valueProcess.js b/entity/Campaign_entity/entityfields/state/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..24a86c10cb9eef3178aa13268f2a7106785b9d07 --- /dev/null +++ b/entity/Campaign_entity/entityfields/state/valueProcess.js @@ -0,0 +1,7 @@ +import("system.neon"); +import("system.vars"); +import("system.result"); +import("KeywordRegistry_basic"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) + result.string($KeywordRegistry.campaignState$planning()); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/stepcount/valueProcess.js b/entity/Campaign_entity/entityfields/stepcount/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f92f5f8867f499e35d14e6502ce910830cd224ed --- /dev/null +++ b/entity/Campaign_entity/entityfields/stepcount/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.vars"); +import("Campaign_lib"); +result.string(CampaignUtils.getStepCount(vars.get("$field.CAMPAIGNID"))); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/user_edit/valueProcess.js b/entity/Campaign_entity/entityfields/user_edit/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6af880ae3e0e2b89b4eee8327ed49f1eefe458af --- /dev/null +++ b/entity/Campaign_entity/entityfields/user_edit/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) + result.string(vars.get("$sys.user")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/user_new/valueProcess.js b/entity/Campaign_entity/entityfields/user_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e518bc75a9494e53a83613dedd943106e74fc00a --- /dev/null +++ b/entity/Campaign_entity/entityfields/user_new/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string(vars.get("$sys.user")); \ No newline at end of file diff --git a/entity/Campaign_entity/recordcontainers/db/onDBDelete.js b/entity/Campaign_entity/recordcontainers/db/onDBDelete.js new file mode 100644 index 0000000000000000000000000000000000000000..fe6d290a0d7833058d4503ef92c6a787bee31f28 --- /dev/null +++ b/entity/Campaign_entity/recordcontainers/db/onDBDelete.js @@ -0,0 +1,22 @@ +import("system.db"); +import("system.vars"); +import("Sql_lib"); + +var currentId = vars.getString("$field.SALESPROJECTID"); + +if (currentId) +{ + var toDelete = [ + "CAMPAIGNCOST", + "CAMPAIGNPARTICIPANT", + "CAMPAIGNPARTICIPANTLOG", + "CAMPAIGNSTEP", + ]; + + toDelete = toDelete.map(function(pTable) + { + return [pTable, SqlCondition.equals(pTable + ".CAMPAIGN_ID", currentId, "1=2")] + }); + + db.deletes(toDelete); +} \ No newline at end of file diff --git a/entity/Campaign_entity/recordcontainers/db/onDBInsert.js b/entity/Campaign_entity/recordcontainers/db/onDBInsert.js new file mode 100644 index 0000000000000000000000000000000000000000..1792051b832d740de4c08365b71dd39d2e5a0873 --- /dev/null +++ b/entity/Campaign_entity/recordcontainers/db/onDBInsert.js @@ -0,0 +1,35 @@ +import("Employee_lib"); +import("system.translate"); +import("KeywordRegistry_basic"); +import("system.util"); +import("system.vars"); +import("system.logging"); +import("system.db"); +import("system.datetime"); + +var threeWeeks = datetime.ONE_WEEK * 3; +var inThreeWeeks = datetime.date() + threeWeeks; + +var campaignId = vars.get("$field.CAMPAIGNID"); +var campaignStepId = util.getNewUUID(); +var campaignStepName = translate.text("Added"); + +var dateNew = vars.get("$sys.date"); +var userNew = vars.get("$sys.user"); + +var dateStart = dateNew; +var dateEnd = inThreeWeeks; + +var description = ""; +var maxParticipants = 100; +var state = $KeywordRegistry.campaignStepState$open(); +var sorting = 1; +var employeeContactId = vars.get("$field.EMPLOYEE_CONTACT_ID"); + + +var columns = ["CAMPAIGN_ID", "CAMPAIGNSTEPID", "NAME", "DATE_NEW", "USER_NEW", + "DATE_START", "DATE_END", "DESCRIPTION", "MAXPARTICIPANTS", "STATE", "SORTING", "EMPLOYEE_CONTACT_ID"]; +var values = [campaignId, campaignStepId, campaignStepName, dateNew, userNew, + dateStart, dateEnd, description, maxParticipants, state, sorting, employeeContactId]; + +db.insertData("CAMPAIGNSTEP", columns, null, values); \ No newline at end of file diff --git a/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/cost.value/expression.js b/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/cost.value/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..cecf6e4f7c03f399083118f9c9b3413277c9204b --- /dev/null +++ b/entity/Campaign_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 = CAMPAIGN.CAMPAIGNID)") \ No newline at end of file diff --git a/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js b/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..95d0ac1d4c1893934b7541d57a1f514ae3a95d7c --- /dev/null +++ b/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js @@ -0,0 +1,6 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.campaignState(), "CAMPAIGN.STATE"); +result.string(sql); \ No newline at end of file diff --git a/entity/Campaign_entity/titleProcess.js b/entity/Campaign_entity/titleProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..429260276f9d30b111be834373ee1613df1f7084 --- /dev/null +++ b/entity/Campaign_entity/titleProcess.js @@ -0,0 +1,5 @@ +import("Context_lib"); +import("system.result"); +import("system.vars"); + +result.string(ContextUtils.prefixWithCurrentContextTitle(vars.getString("$field.NAME"))); \ No newline at end of file diff --git a/entity/Contact_entity/Contact_entity.aod b/entity/Contact_entity/Contact_entity.aod index 47279e3e9047039685e03cb35436713de26e56ef..d70d8d0861ddb402b8eb3e22bedb8a9045f04bdf 100644 --- a/entity/Contact_entity/Contact_entity.aod +++ b/entity/Contact_entity/Contact_entity.aod @@ -2,6 +2,7 @@ <entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.2"> <name>Contact_entity</name> <title>Contact</title> + <description></description> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/Contact_entity/documentation.adoc</documentation> <onValidation>%aditoprj%/entity/Contact_entity/onValidation.js</onValidation> @@ -27,7 +28,6 @@ <title>Company</title> <consumer>Organisations</consumer> <mandatory v="false" /> - <displayValueProcess>%aditoprj%/entity/Contact_entity/entityfields/organisation_id/displayValueProcess.js</displayValueProcess> <onValidation>%aditoprj%/entity/Contact_entity/entityfields/organisation_id/onValidation.js</onValidation> </entityField> <entityField> @@ -299,10 +299,6 @@ <name>DATE_EDIT.value</name> <recordfield>CONTACT.DATE_EDIT</recordfield> </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>ORGANISATION_ID.displayValue</name> - <recordfield>ORGANISATION.NAME</recordfield> - </dbRecordFieldMapping> </recordFieldMappings> </dbRecordContainer> </recordContainers> diff --git a/entity/Contact_entity/entityfields/organisation_id/displayValueProcess.js b/entity/Contact_entity/entityfields/organisation_id/displayValueProcess.js deleted file mode 100644 index 460b39849d5d34bac95e4b987d28a665b732e860..0000000000000000000000000000000000000000 --- a/entity/Contact_entity/entityfields/organisation_id/displayValueProcess.js +++ /dev/null @@ -1,9 +0,0 @@ -import("system.result"); -import("system.db"); -import("system.vars"); -import("Contact_lib"); - -var organisationId = vars.get("$field.ORGANISATION_ID"); -var res = OrganisationUtils.getNameByOrganisationId(organisationId); - -result.string(res); \ No newline at end of file diff --git a/entity/Contract_entity/Contract_entity.aod b/entity/Contract_entity/Contract_entity.aod index 9b98cff5472e6ba4055a3df13cf89c01c73b2ce4..fcac2f5cbf4f5775864bc6845a0244bee4d86ea1 100644 --- a/entity/Contract_entity/Contract_entity.aod +++ b/entity/Contract_entity/Contract_entity.aod @@ -4,6 +4,7 @@ <title>Contract</title> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/Contract_entity/documentation.adoc</documentation> + <afterUiInit>%aditoprj%/entity/Contract_entity/afterUiInit.js</afterUiInit> <iconId>VAADIN:FILE_TEXT</iconId> <titleProcess>%aditoprj%/entity/Contract_entity/titleProcess.js</titleProcess> <recordContainer>db</recordContainer> @@ -48,6 +49,7 @@ <contentType>DATE</contentType> <resolution>DAY</resolution> <outputFormat>dd.MM.yyyy</outputFormat> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractstart/valueProcess.js</valueProcess> <onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractstart/onValidation.js</onValidation> <onValueChange>%aditoprj%/entity/Contract_entity/entityfields/contractstart/onValueChange.js</onValueChange> </entityField> diff --git a/entity/Contract_entity/afterUiInit.js b/entity/Contract_entity/afterUiInit.js new file mode 100644 index 0000000000000000000000000000000000000000..031b635db2bf916a03eda91e8db23dc6c8bb5d35 --- /dev/null +++ b/entity/Contract_entity/afterUiInit.js @@ -0,0 +1,9 @@ +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Contract_entity/entityfields/contractend/onValidation.js b/entity/Contract_entity/entityfields/contractend/onValidation.js index c2b570b75775ae1f669ba1a8e7ad9b716e17f2eb..9cfd6fc2f89a9472d2f9822573964a58640e6966 100644 --- a/entity/Contract_entity/entityfields/contractend/onValidation.js +++ b/entity/Contract_entity/entityfields/contractend/onValidation.js @@ -1,7 +1,6 @@ import("system.result"); import("system.vars"); import("Date_lib"); -import("Util_lib"); import("Entity_lib"); var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTRACTEND")); diff --git a/entity/Contract_entity/entityfields/contractstart/onValidation.js b/entity/Contract_entity/entityfields/contractstart/onValidation.js index f7e82b3fd8a66a24591a7fb75a849799a3755ad4..81cb960ca17d5f47cafe286002b0e4c4b381aba7 100644 --- a/entity/Contract_entity/entityfields/contractstart/onValidation.js +++ b/entity/Contract_entity/entityfields/contractstart/onValidation.js @@ -1,8 +1,6 @@ -import("system.neon"); import("system.result"); import("system.vars"); import("Date_lib"); -import("Util_lib"); import("Entity_lib"); var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTRACTSTART")); diff --git a/entity/Contract_entity/entityfields/contractstart/valueProcess.js b/entity/Contract_entity/entityfields/contractstart/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..7f859f943373ed46e60a1e4786e51216a6a00126 --- /dev/null +++ b/entity/Contract_entity/entityfields/contractstart/valueProcess.js @@ -0,0 +1,11 @@ +import("system.result"); +import("system.vars"); +import("system.neon"); +import("Date_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + result.string(DateUtils.getTodayUTC()); +} +else + result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/Contract_entity/titleProcess.js b/entity/Contract_entity/titleProcess.js index 46f60176775fe07563734ff5f62aa714afa71e45..3432c05f4a705f9e680c966699b8250a10f8fe53 100644 --- a/entity/Contract_entity/titleProcess.js +++ b/entity/Contract_entity/titleProcess.js @@ -1,4 +1,5 @@ +import("Context_lib"); import("system.vars"); import("system.result"); -result.string(vars.get("$field.CONTRACTCODE_DISPLAY_fieldGroup")); \ No newline at end of file +result.string(ContextUtils.prefixWithCurrentContextTitle(vars.get("$field.CONTRACTCODE_DISPLAY_fieldGroup"))); \ No newline at end of file diff --git a/entity/Countries_Entity/titleProcess.js b/entity/Countries_Entity/titleProcess.js index 6a1357835421f5c8fe5231388b03ee15dd29f58b..27c78a47f571add3d25469cb7eaa9b3662cb62b3 100644 --- a/entity/Countries_Entity/titleProcess.js +++ b/entity/Countries_Entity/titleProcess.js @@ -1,3 +1,4 @@ +import("Context_lib"); import("system.result"); import("system.vars"); -result.string(vars.get("$field.NAME_TRANSLATED")); \ No newline at end of file +result.string(ContextUtils.prefixWithCurrentContextTitle(vars.get("$field.NAME_TRANSLATED"))); \ No newline at end of file diff --git a/entity/Employee_entity/Employee_entity.aod b/entity/Employee_entity/Employee_entity.aod index c84f9b00fa9ce83dbdce9561ed10264ad7891f00..69043649be78f514ad6f86dfae1e39232d60c6b8 100644 --- a/entity/Employee_entity/Employee_entity.aod +++ b/entity/Employee_entity/Employee_entity.aod @@ -3,6 +3,7 @@ <name>Employee_entity</name> <title>Employee</title> <majorModelMode>DISTRIBUTED</majorModelMode> + <afterUiInit>%aditoprj%/entity/Employee_entity/afterUiInit.js</afterUiInit> <onValidation>%aditoprj%/entity/Employee_entity/onValidation.js</onValidation> <afterOperatingState>%aditoprj%/entity/Employee_entity/afterOperatingState.js</afterOperatingState> <iconId>VAADIN:GROUP</iconId> @@ -235,6 +236,18 @@ <fieldName>Employees</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>02bacafb-433c-497d-8561-96c426da61e9</name> + <entityName>Campaign_entity</entityName> + <fieldName>Employee</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>fefc05d2-6087-4600-bc77-80804654809e</name> + <entityName>CampaignStep_entity</entityName> + <fieldName>Employees</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> <children> <entityParameter> @@ -243,10 +256,6 @@ </entityParameter> </children> </entityProvider> - <entityField> - <name>TITLE_ORIGINAL</name> - <searchable v="false" /> - </entityField> <entityConsumer> <name>Departments</name> <fieldType>DEPENDENCY_OUT</fieldType> @@ -266,6 +275,12 @@ </entityParameter> </children> </entityConsumer> + <entityField> + <name>USERID</name> + </entityField> + <entityField> + <name>USERID_SMALL</name> + </entityField> </entityFields> <recordContainers> <jDitoRecordContainer> @@ -278,7 +293,6 @@ <recordFields> <element>UID.value</element> <element>TITLE.value</element> - <element>TITLE_ORIGINAL.value</element> <element>ISACTIVE.value</element> <element>FIRSTNAME.value</element> <element>LASTNAME.value</element> @@ -288,6 +302,8 @@ <element>CONTACT_ID.value</element> <element>CONTACT_ID.displayValue</element> <element>DEPARTMENT.value</element> + <element>USERID.value</element> + <element>USERID_SMALL.value</element> </recordFields> </jDitoRecordContainer> </recordContainers> diff --git a/entity/Employee_entity/afterUiInit.js b/entity/Employee_entity/afterUiInit.js new file mode 100644 index 0000000000000000000000000000000000000000..031b635db2bf916a03eda91e8db23dc6c8bb5d35 --- /dev/null +++ b/entity/Employee_entity/afterUiInit.js @@ -0,0 +1,9 @@ +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Employee_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/Employee_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js index 16c85500b5355a72548030867e3d300661e9d4aa..4efd08e3fe4c862d5eef9eda053cb9ddf4720b0c 100644 --- a/entity/Employee_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js +++ b/entity/Employee_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js @@ -1,4 +1,4 @@ import("system.vars"); import("system.result"); -result.string(vars.get("$field.UID")); \ No newline at end of file +result.string(vars.get("$field.USERID_SMALL")); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js b/entity/Employee_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js index 16c85500b5355a72548030867e3d300661e9d4aa..4efd08e3fe4c862d5eef9eda053cb9ddf4720b0c 100644 --- a/entity/Employee_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js +++ b/entity/Employee_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js @@ -1,4 +1,4 @@ import("system.vars"); import("system.result"); -result.string(vars.get("$field.UID")); \ No newline at end of file +result.string(vars.get("$field.USERID_SMALL")); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/contact_id/onValidation.js b/entity/Employee_entity/entityfields/contact_id/onValidation.js index 35de5d935eb3755ddc0c4e9a345da60098433df2..46842576f46eab3aff937175ea2fd26972a66880 100644 --- a/entity/Employee_entity/entityfields/contact_id/onValidation.js +++ b/entity/Employee_entity/entityfields/contact_id/onValidation.js @@ -1,12 +1,12 @@ -import("system.result"); -import("system.vars"); -import("system.tools"); -import("system.translate"); - -var contactId = vars.get("$field.CONTACT_ID"); -var isTaken = tools.getUserByAttribute(tools.CONTACTID, [contactId]); -isTaken = isTaken - ? isTaken[tools.TITLE] != vars.get("$field.TITLE_ORIGINAL") - : false; -if (contactId && isTaken) +import("system.result"); +import("system.vars"); +import("system.tools"); +import("system.translate"); + +var contactId = vars.get("$field.CONTACT_ID"); +var isTaken = tools.getUserByAttribute(tools.CONTACTID, [contactId]); +isTaken = isTaken + ? isTaken[tools.NAME] != vars.get("$field.USERID") + : false; +if (contactId && isTaken) result.string(translate.text("The person is already associated with another employee!")); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js b/entity/Employee_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js index 16c85500b5355a72548030867e3d300661e9d4aa..4efd08e3fe4c862d5eef9eda053cb9ddf4720b0c 100644 --- a/entity/Employee_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js +++ b/entity/Employee_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js @@ -1,4 +1,4 @@ import("system.vars"); import("system.result"); -result.string(vars.get("$field.UID")); \ No newline at end of file +result.string(vars.get("$field.USERID_SMALL")); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/email_address/onValidation.js b/entity/Employee_entity/entityfields/email_address/onValidation.js index 35d65102d1e956f09fd9c6298ae86f754c985a83..9525ada052cc9ef5885522ecb5cd6e36b5739c74 100644 --- a/entity/Employee_entity/entityfields/email_address/onValidation.js +++ b/entity/Employee_entity/entityfields/email_address/onValidation.js @@ -1,13 +1,13 @@ -import("Entity_lib"); -import("system.result"); -import("system.vars"); -import("system.tools"); -import("system.translate"); - -var email = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.EMAIL_ADDRESS")); -var isTaken = tools.getUserByAttribute(tools.EMAIL, [email]); -isTaken = isTaken - ? isTaken[tools.TITLE] != vars.get("$field.TITLE_ORIGINAL") - : false; -if (email && isTaken) +import("Entity_lib"); +import("system.result"); +import("system.vars"); +import("system.tools"); +import("system.translate"); + +var email = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.EMAIL_ADDRESS")); +var isTaken = tools.getUserByAttribute(tools.EMAIL, [email]); +isTaken = isTaken + ? isTaken[tools.NAME] != vars.get("$field.USERID") + : false; +if (email && isTaken) result.string(translate.text("Email must be unique!")); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/title/onValidation.js b/entity/Employee_entity/entityfields/title/onValidation.js index b7a2177b025698809ddcc9f2d4adb5ea62cdd6e6..9c3a98b9d7a71864c1c5e687bf2a35e30cb10bbd 100644 --- a/entity/Employee_entity/entityfields/title/onValidation.js +++ b/entity/Employee_entity/entityfields/title/onValidation.js @@ -1,11 +1,13 @@ -import("system.translate"); -import("system.neon"); -import("system.result"); -import("system.vars"); -import("system.tools"); -import("Entity_lib"); - -var title = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.TITLE")); -if (!(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && title == vars.get("$field.TITLE_ORIGINAL")) - && title != "" && tools.existUsers(title)) +import("system.translate"); +import("system.neon"); +import("system.result"); +import("system.vars"); +import("system.tools"); +import("Entity_lib"); + +var title = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.TITLE")); +var oldTitle = tools.getUserByAttribute(tools.NAME, vars.get("$field.USERID"), tools.PROFILE_TITLE); +oldTitle = oldTitle && oldTitle[tools.TITLE]; +if (!(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && title == oldTitle) + && title != "" && tools.existUsers(title)) result.string(translate.text("Username already exists!")); \ No newline at end of file diff --git a/entity/Employee_entity/recordcontainers/jdito/contentProcess.js b/entity/Employee_entity/recordcontainers/jdito/contentProcess.js index ecccde702a88fb72646dd5d94ffd3917a22bec48..95997876508b87928228b38db353af6ebd4022c1 100644 --- a/entity/Employee_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Employee_entity/recordcontainers/jdito/contentProcess.js @@ -5,6 +5,8 @@ import("system.tools"); import("Util_lib"); import("Contact_lib"); import("JditoFilter_lib"); +import("Employee_lib"); + var users; if (vars.exists("$local.idvalues") && vars.get("$local.idvalues")) users = [tools.getUser(vars.get("$local.idvalues"), tools.PROFILE_FULL)]; @@ -19,7 +21,6 @@ else users = users.map(function (user) { return [ - user[tools.TITLE], user[tools.TITLE], user[tools.TITLE], user[tools.PARAMS][tools.ISACTIVE], @@ -30,14 +31,16 @@ users = users.map(function (user) user[tools.DESCRIPTION], user[tools.PARAMS][tools.CONTACTID], ContactUtils.getTitleByContactId(user[tools.PARAMS][tools.CONTACTID]), //TODO: get the names more efficiently - user[tools.PARAMS].department + user[tools.PARAMS].department, + user[tools.NAME], + EmployeeUtils.sliceUserId(user[tools.NAME]) ]; }); var filter = vars.exists("$local.filter") && vars.get("$local.filter"); //TODO: this is a workaround that filters the records manually, it should be possible to filter the users with a tools.* method -users = JditoFilterUtils.filterRecords(["UID", "TITLE", "TITLE_ORIGINAL", "ISACTIVE", "FIRSTNAME", "LASTNAME", "EMAIL_ADDRESS", "DESCRIPTION", "CONTACT_ID", "", "DEPARTMENT"], users, filter); +users = JditoFilterUtils.filterRecords(["UID", "TITLE", "ISACTIVE", "FIRSTNAME", "LASTNAME", "EMAIL_ADDRESS", "DESCRIPTION", "CONTACT_ID", "", "DEPARTMENT"], users, filter); ArrayUtils.sort2d(users, 0, true, false); //sort by username diff --git a/entity/Employee_entity/recordcontainers/jdito/onUpdate.js b/entity/Employee_entity/recordcontainers/jdito/onUpdate.js index ccc3af0949642f34fef08f954f3ee0a71b29f9fb..825985279c1694a30876a88105aba44fb25a7bac 100644 --- a/entity/Employee_entity/recordcontainers/jdito/onUpdate.js +++ b/entity/Employee_entity/recordcontainers/jdito/onUpdate.js @@ -17,7 +17,7 @@ FieldChanges.assimilateChangeAndDispose("$field.IMAGE", function (state, value) PersUtils.removeImage(personId); }); -var user = tools.getUser(vars.get("$field.TITLE_ORIGINAL")); +var user = tools.getUserByAttribute(tools.NAME, vars.get("$field.USERID")); user[tools.TITLE] = vars.get("$field.TITLE"); user[tools.PARAMS][tools.ISACTIVE] = vars.get("$field.ISACTIVE"); diff --git a/entity/Employee_entity/titleProcess.js b/entity/Employee_entity/titleProcess.js index cfe8dbda0147ed4ce85bc5394e118459edb315d1..2c946bc446bdc882880d688ae373ebdf8561a225 100644 --- a/entity/Employee_entity/titleProcess.js +++ b/entity/Employee_entity/titleProcess.js @@ -1,4 +1,5 @@ +import("Context_lib"); import("system.vars"); import("system.result"); -result.string((vars.get("$field.FIRSTNAME") + " " + vars.get("$field.LASTNAME")).trim()); \ No newline at end of file +result.string(ContextUtils.prefixWithCurrentContextTitle((vars.get("$field.FIRSTNAME") + " " + vars.get("$field.LASTNAME")).trim())); \ No newline at end of file diff --git a/entity/IndexSearchEntity/IndexSearchEntity.aod b/entity/IndexSearchEntity/IndexSearchEntity.aod new file mode 100644 index 0000000000000000000000000000000000000000..a10878bfe9d27169c28993b456511ef2315e2a4a --- /dev/null +++ b/entity/IndexSearchEntity/IndexSearchEntity.aod @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.2"> + <name>IndexSearchEntity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>INDEXSEARCHFIELD</name> + </entityField> + </entityFields> +</entity> diff --git a/entity/KeywordAttribute_entity/titleProcess.js b/entity/KeywordAttribute_entity/titleProcess.js index 28fd67de270b497ba718dd4e91766bd22936f67e..53fee4be6adf0706c04c01952405a9792b65feb5 100644 --- a/entity/KeywordAttribute_entity/titleProcess.js +++ b/entity/KeywordAttribute_entity/titleProcess.js @@ -1,4 +1,5 @@ +import("Context_lib"); import("system.vars"); import("system.result"); -result.string(vars.get("$field.NAME")); \ No newline at end of file +result.string(ContextUtils.prefixWithCurrentContextTitle(vars.get("$field.NAME"))); \ No newline at end of file diff --git a/entity/KeywordEntry_entity/KeywordEntry_entity.aod b/entity/KeywordEntry_entity/KeywordEntry_entity.aod index 51d103e15918731cc20ee3af53bfc609cafdb83d..6f3c591388a32dd3d3c1236061bd0ed30f21a18c 100644 --- a/entity/KeywordEntry_entity/KeywordEntry_entity.aod +++ b/entity/KeywordEntry_entity/KeywordEntry_entity.aod @@ -373,6 +373,18 @@ <fieldName>Keywords</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>b5c39776-509e-4758-8d05-a64eac4e7f38</name> + <entityName>CampaignStep_entity</entityName> + <fieldName>KeywordStates</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>13d739cb-2b97-44a0-bed0-b6868b0e579e</name> + <entityName>CampaignCost_entitiy</entityName> + <fieldName>KeywordCampaignManagementCostCategory</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> <children> <entityParameter> @@ -433,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/entity/KeywordEntry_entity/titleProcess.js b/entity/KeywordEntry_entity/titleProcess.js index a907335e8d11cf3ec8c18651257f5ab8d96a29b9..3a9950b109a01757e0892bf8cbbd3c8205514385 100644 --- a/entity/KeywordEntry_entity/titleProcess.js +++ b/entity/KeywordEntry_entity/titleProcess.js @@ -1,4 +1,5 @@ +import("Context_lib"); import("system.vars"); import("system.result"); -result.string(vars.get("$field.TITLE_TRANSLATED")); \ No newline at end of file +result.string(ContextUtils.prefixWithCurrentContextTitle(vars.get("$field.TITLE_TRANSLATED"))); \ No newline at end of file diff --git a/entity/Notification_entity/Notification_entity.aod b/entity/Notification_entity/Notification_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..dbb94e5cc932ddbe3b4c7e97cac1c93c6f410e02 --- /dev/null +++ b/entity/Notification_entity/Notification_entity.aod @@ -0,0 +1,160 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.2"> + <name>Notification_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <recordContainer>db</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + <targetContextField>LINKCONTEXT</targetContextField> + <targetIdField>LINKID</targetIdField> + <recordContainer>db</recordContainer> + </entityProvider> + <entityField> + <name>UID</name> + </entityField> + <entityField> + <name>CONTENTID</name> + </entityField> + <entityField> + <name>USER</name> + </entityField> + <entityField> + <name>STATE</name> + </entityField> + <entityField> + <name>BACKPACK</name> + </entityField> + <entityField> + <name>CAPTION</name> + </entityField> + <entityField> + <name>CREATIONDATE</name> + </entityField> + <entityField> + <name>DESCRIPTION</name> + </entityField> + <entityField> + <name>FORCEDPRIORITY</name> + </entityField> + <entityField> + <name>ICON</name> + </entityField> + <entityField> + <name>LIFETIME</name> + </entityField> + <entityField> + <name>ORIGINATORNAME</name> + </entityField> + <entityField> + <name>RECIPIENTUSERIDS</name> + </entityField> + <entityField> + <name>TYPECODE</name> + </entityField> + <entityField> + <name>VERSION</name> + </entityField> + <entityField> + <name>LINKCONTEXT</name> + <valueProcess>%aditoprj%/entity/Notification_entity/entityfields/linkcontext/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>LINKID</name> + <valueProcess>%aditoprj%/entity/Notification_entity/entityfields/linkid/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>LINKINFO</name> + </entityField> + </entityFields> + <recordContainers> + <dbRecordContainer> + <name>db</name> + <alias>_____SYSTEMALIAS</alias> + <isPageable v="false" /> + <conditionProcess>%aditoprj%/entity/Notification_entity/recordcontainers/db/conditionProcess.js</conditionProcess> + <linkInformation> + <linkInformation> + <name>33b9740c-cd3d-43ec-97e6-65c9e880655a</name> + <tableName>ASYS_NOTIFICATIONS</tableName> + <primaryKey>ID</primaryKey> + <isUIDTable v="true" /> + <readonly v="false" /> + </linkInformation> + <linkInformation> + <name>b9a8b01d-bdc5-4132-801f-be4e799fff1c</name> + <tableName>ASYS_NOTIFICATIONCONTENTS</tableName> + <primaryKey>CONTENTID</primaryKey> + <isUIDTable v="false" /> + <readonly v="true" /> + </linkInformation> + </linkInformation> + <recordFieldMappings> + <dbRecordFieldMapping> + <name>BACKPACK.value</name> + <recordfield>ASYS_NOTIFICATIONCONTENTS.BACKPACK</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CAPTION.value</name> + <recordfield>ASYS_NOTIFICATIONCONTENTS.CAPTION</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CONTENTID.value</name> + <recordfield>ASYS_NOTIFICATIONCONTENTS.CONTENTID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CREATIONDATE.value</name> + <recordfield>ASYS_NOTIFICATIONCONTENTS.CREATIONDATE</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DESCRIPTION.value</name> + <recordfield>ASYS_NOTIFICATIONCONTENTS.DESCRIPTION</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>FORCEDPRIORITY.value</name> + <recordfield>ASYS_NOTIFICATIONCONTENTS.FORCEDPRIORITY</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>ICON.value</name> + <recordfield>ASYS_NOTIFICATIONCONTENTS.ICON_INFO</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>LIFETIME.value</name> + <recordfield>ASYS_NOTIFICATIONCONTENTS.LIFETIME</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>ORIGINATORNAME.value</name> + <recordfield>ASYS_NOTIFICATIONCONTENTS.ORIGINATORNAME</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>RECIPIENTUSERIDS.value</name> + <recordfield>ASYS_NOTIFICATIONCONTENTS.RECIPIENTUSERIDS</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>STATE.value</name> + <recordfield>ASYS_NOTIFICATIONS.STATE</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>TYPECODE.value</name> + <recordfield>ASYS_NOTIFICATIONCONTENTS.TYPECODE</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>UID.value</name> + <recordfield>ASYS_NOTIFICATIONS.ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>USER.value</name> + <recordfield>ASYS_NOTIFICATIONS.USERID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>VERSION.value</name> + <recordfield>ASYS_NOTIFICATIONCONTENTS.VERSION</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>LINKINFO.value</name> + <recordfield>ASYS_NOTIFICATIONCONTENTS.LINK_INFO</recordfield> + </dbRecordFieldMapping> + </recordFieldMappings> + </dbRecordContainer> + </recordContainers> +</entity> diff --git a/entity/Notification_entity/entityfields/linkcontext/valueProcess.js b/entity/Notification_entity/entityfields/linkcontext/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..276ea44e9a0d5b7e1850d52e12fd455c6fd6f7b6 --- /dev/null +++ b/entity/Notification_entity/entityfields/linkcontext/valueProcess.js @@ -0,0 +1,8 @@ +import("system.logging"); +import("system.vars"); +import("system.result"); +import("system.text"); + +var context = text.decodeMS(vars.get("$field.LINKINFO"))[0]; +logging.log("context: " + context); +result.string(context); \ No newline at end of file diff --git a/entity/Notification_entity/entityfields/linkid/valueProcess.js b/entity/Notification_entity/entityfields/linkid/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..53b0ffeef7c0efe723e17be8af25a010c77e09d5 --- /dev/null +++ b/entity/Notification_entity/entityfields/linkid/valueProcess.js @@ -0,0 +1,8 @@ +import("system.logging"); +import("system.vars"); +import("system.result"); +import("system.text"); + +var id = text.decodeMS(vars.get("$field.LINKINFO"))[1]; +logging.log("id: " + id); +result.string(id); \ No newline at end of file diff --git a/entity/Notification_entity/recordcontainers/db/conditionProcess.js b/entity/Notification_entity/recordcontainers/db/conditionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..31f26547b3faf99eaa911946fdc2cd184a94f2ad --- /dev/null +++ b/entity/Notification_entity/recordcontainers/db/conditionProcess.js @@ -0,0 +1,10 @@ +import("system.logging"); +import("system.result"); +import("system.vars"); +import("system.util"); +import("system.tools"); + +var user = tools.getCurrentUser(); +var userid = user["name"]; + +result.object("ASYS_NOTIFICATIONS.CONTENTID = ASYS_NOTIFICATIONCONTENTS.CONTENTID and USERID = '" + userid + "'"); \ No newline at end of file diff --git a/entity/ObjectRelationType_entity/titleProcess.js b/entity/ObjectRelationType_entity/titleProcess.js index dbc0c500302fcbb7dfe706e35445f9f01952daa5..5f55a99abcb8803e2573f23cf9027f7da40370a6 100644 --- a/entity/ObjectRelationType_entity/titleProcess.js +++ b/entity/ObjectRelationType_entity/titleProcess.js @@ -1,12 +1,13 @@ +import("Context_lib"); import("system.translate"); import("system.vars"); import("system.result"); if (vars.exists("$param.OnlyFirstSide_param") && vars.get("$param.OnlyFirstSide_param") == "1" && vars.get("$field.DIRECTION") != "same") { - result.string(translate.text(vars.get("$field.SOURCE_RELATION_TITLE")) + " -> " + translate.text(vars.get("$field.DEST_RELATION_TITLE"))); + result.string(ContextUtils.prefixWithCurrentContextTitle(translate.text(vars.get("$field.SOURCE_RELATION_TITLE")) + " -> " + translate.text(vars.get("$field.DEST_RELATION_TITLE")))); } else { - result.string(translate.text(vars.get("$field.SOURCE_RELATION_TITLE"))); + result.string(ContextUtils.prefixWithCurrentContextTitle(translate.text(vars.get("$field.SOURCE_RELATION_TITLE")))); } \ No newline at end of file diff --git a/entity/ObjectTree_entity/entityfields/target_id/linkedContextProcess.js b/entity/ObjectTree_entity/entityfields/target_id/linkedContextProcess.js index 1309ba4e92dedd6284a0482f87b00c1c46a0f7c8..215d53285d594413acd924470d6bfd2d8e735ee8 100644 --- a/entity/ObjectTree_entity/entityfields/target_id/linkedContextProcess.js +++ b/entity/ObjectTree_entity/entityfields/target_id/linkedContextProcess.js @@ -5,4 +5,4 @@ import("Context_lib"); if (vars.get("$field.TARGET_CONTEXT")) { result.string(ContextUtils.getContextName(vars.get("$field.TARGET_CONTEXT"))); -} +} \ No newline at end of file diff --git a/entity/Object_entity/Object_entity.aod b/entity/Object_entity/Object_entity.aod index 99ed95858065c06f5a57e982a8701195b1d412c1..a1759bc528bc35bd0bc3af5e0e6086611d43b612 100644 --- a/entity/Object_entity/Object_entity.aod +++ b/entity/Object_entity/Object_entity.aod @@ -133,6 +133,7 @@ <entityProvider> <name>FilteredObjects</name> <fieldType>DEPENDENCY_IN</fieldType> + <targetConsumerProcess>%aditoprj%/entity/Object_entity/entityfields/filteredobjects/targetConsumerProcess.js</targetConsumerProcess> <dependencies> <entityDependency> <name>e644a709-cc8f-425e-bef2-9c51eea9bbe9</name> diff --git a/entity/Object_entity/entityfields/allobjects/targetConsumerProcess.js b/entity/Object_entity/entityfields/allobjects/targetConsumerProcess.js index 1a9d1e2e9d5ce31c14e07d1f1eee3f01b05eba78..8ba22ed45d1674ebb7da780fa596b38df518d035 100644 --- a/entity/Object_entity/entityfields/allobjects/targetConsumerProcess.js +++ b/entity/Object_entity/entityfields/allobjects/targetConsumerProcess.js @@ -4,28 +4,7 @@ import("Context_lib"); if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param")) { - switch(vars.get("$param.ObjectType_param")) - { - case ContextUtils.getContextName("Organisation"): - result.string("Organisations"); - break; - case ContextUtils.getContextName("Person"): - result.string("Persons"); - break; - case ContextUtils.getContextName("Offer"): - result.string("Offers"); - break; - case ContextUtils.getContextName("Order"): - result.string("Orders"); - break; - case ContextUtils.getContextName("Product"): - result.string("Products"); - break; - case ContextUtils.getContextName("Contract"): - result.string("Contracts"); - break; - case ContextUtils.getContextName("Salesproject"): - result.string("Salesprojects"); - break; - } + var consumer = ContextUtils.getContextConsumer(vars.get("$param.ObjectType_param")); + if (consumer) + result.string(consumer); } \ No newline at end of file diff --git a/entity/Object_entity/entityfields/filteredobjects/targetConsumerProcess.js b/entity/Object_entity/entityfields/filteredobjects/targetConsumerProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8ba22ed45d1674ebb7da780fa596b38df518d035 --- /dev/null +++ b/entity/Object_entity/entityfields/filteredobjects/targetConsumerProcess.js @@ -0,0 +1,10 @@ +import("system.vars"); +import("system.result"); +import("Context_lib"); + +if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param")) +{ + var consumer = ContextUtils.getContextConsumer(vars.get("$param.ObjectType_param")); + if (consumer) + result.string(consumer); +} \ No newline at end of file diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod index 91ae54bf765710fac211ecd00690ecd194fcfd90..d8d4f2b4d157abcd69062d6799cc6e15112588bf 100644 --- a/entity/Offer_entity/Offer_entity.aod +++ b/entity/Offer_entity/Offer_entity.aod @@ -4,6 +4,7 @@ <title>Offer</title> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/Offer_entity/documentation.adoc</documentation> + <afterUiInit>%aditoprj%/entity/Offer_entity/afterUiInit.js</afterUiInit> <iconId>VAADIN:CART</iconId> <titleProcess>%aditoprj%/entity/Offer_entity/titleProcess.js</titleProcess> <recordContainer>db</recordContainer> @@ -240,17 +241,6 @@ <element>VERSNR</element> </fields> </entityFieldGroup> - <entityFieldGroup> - <name>Offer_OfferCode_VersNr_fieldgroup</name> - <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/offer_offercode_versnr_fieldgroup/valueProcess.js</valueProcess> - <title>Offer number</title> - <description>"Offer " + OfferCode + VersNr</description> - <state>READONLY</state> - <fields> - <element>OFFERCODE</element> - <element>VERSNR</element> - </fields> - </entityFieldGroup> <entityParameter> <name>ContactId_param</name> <expose v="true" /> diff --git a/entity/Offer_entity/afterUiInit.js b/entity/Offer_entity/afterUiInit.js new file mode 100644 index 0000000000000000000000000000000000000000..ac1ce38fae75b5e38fc7043f5710ce3fd07ce7be --- /dev/null +++ b/entity/Offer_entity/afterUiInit.js @@ -0,0 +1,9 @@ +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Offer_entity/entityfields/offer_offercode_versnr_fieldgroup/valueProcess.js b/entity/Offer_entity/entityfields/offer_offercode_versnr_fieldgroup/valueProcess.js deleted file mode 100644 index 6b1c8c5befc8421b5acd2fb8a5a3265d71202e4c..0000000000000000000000000000000000000000 --- a/entity/Offer_entity/entityfields/offer_offercode_versnr_fieldgroup/valueProcess.js +++ /dev/null @@ -1,8 +0,0 @@ -import("system.translate"); -import("system.result"); -import("system.vars"); - -// TODO: Kern-Fix, VersNr wird bei indirektem Aufruf nicht geladen, wenn kein "$field.VERSNR" hier ist: -"$field.VERSNR" - -result.string(translate.text("Offer") + " " + vars.get("$field.OfferCode_VersNr_fieldgroup")); diff --git a/entity/Offer_entity/entityfields/offerdate/valueProcess.js b/entity/Offer_entity/entityfields/offerdate/valueProcess.js index 09c66d00cc0e8b740a0b3c68c2b7d16947027795..6b67243627ceda867da63df21c0600d67442cbbf 100644 --- a/entity/Offer_entity/entityfields/offerdate/valueProcess.js +++ b/entity/Offer_entity/entityfields/offerdate/valueProcess.js @@ -3,7 +3,7 @@ import("system.result"); import("system.neon"); import("Date_lib"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) { result.string(DateUtils.getTodayUTC()); } diff --git a/entity/Offer_entity/titleProcess.js b/entity/Offer_entity/titleProcess.js index b5301f43f0d44e22f8ee928719b999098e446a51..7baf0cfba8e76a9744e1b9a3253f7f4f8ee97e86 100644 --- a/entity/Offer_entity/titleProcess.js +++ b/entity/Offer_entity/titleProcess.js @@ -1,4 +1,5 @@ +import("Context_lib"); import("system.vars"); import("system.result"); -result.string(vars.get("$field.Offer_OfferCode_VersNr_fieldgroup")); \ No newline at end of file +result.string(ContextUtils.prefixWithCurrentContextTitle(vars.get("$field.OfferCode_VersNr_fieldgroup"))); \ No newline at end of file diff --git a/entity/Order_entity/Order_entity.aod b/entity/Order_entity/Order_entity.aod index 0afa28adacc332d4fabaca6ccb890838a0b1cd89..197dad83f612a49af47bf090e9f4e9bddee8ffda 100644 --- a/entity/Order_entity/Order_entity.aod +++ b/entity/Order_entity/Order_entity.aod @@ -4,6 +4,7 @@ <title>Receipt</title> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/Order_entity/documentation.adoc</documentation> + <afterUiInit>%aditoprj%/entity/Order_entity/afterUiInit.js</afterUiInit> <iconId>VAADIN:DOLLAR</iconId> <titleProcess>%aditoprj%/entity/Order_entity/titleProcess.js</titleProcess> <recordContainer>db</recordContainer> @@ -203,17 +204,6 @@ <element>VERSNR</element> </fields> </entityFieldGroup> - <entityFieldGroup> - <name>Order_OrderCode_VersNr_fieldgroup</name> - <valueProcess>%aditoprj%/entity/Order_entity/entityfields/order_ordercode_versnr_fieldgroup/valueProcess.js</valueProcess> - <title>Receipt number</title> - <description>"Receipt " + ReceiptCode + VersNr</description> - <state>READONLY</state> - <fields> - <element>SALESORDERCODE</element> - <element>VERSNR</element> - </fields> - </entityFieldGroup> <entityParameter> <name>ContactId_param</name> <expose v="true" /> @@ -446,6 +436,46 @@ </entityParameter> </children> </entityConsumer> + <entityConsumer> + <name>Attributes</name> + <title>Attributes</title> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>AttributeRelation_entity</entityName> + <fieldName>RelationsForSpecificObject</fieldName> + </dependency> + <children> + <entityParameter> + <name>ObjectRowId_param</name> + <valueProcess>%aditoprj%/entity/Order_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>ObjectType_param</name> + <valueProcess>%aditoprj%/entity/Order_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>AttributeTree</name> + <title>Attributes</title> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>AttributeRelationTree_entity</entityName> + <fieldName>TreeProvider</fieldName> + </dependency> + <children> + <entityParameter> + <name>ObjectType_param</name> + <valueProcess>%aditoprj%/entity/Order_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>ObjectRowId_param</name> + <valueProcess>%aditoprj%/entity/Order_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Order_entity/afterUiInit.js b/entity/Order_entity/afterUiInit.js new file mode 100644 index 0000000000000000000000000000000000000000..ac1ce38fae75b5e38fc7043f5710ce3fd07ce7be --- /dev/null +++ b/entity/Order_entity/afterUiInit.js @@ -0,0 +1,9 @@ +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Order_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/Order_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2d458f3d3e14b4d4de7e16459e7ca915b9aafa16 --- /dev/null +++ b/entity/Order_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.SALESORDERID")); \ No newline at end of file diff --git a/entity/Order_entity/entityfields/attributes/children/objecttype_param/valueProcess.js b/entity/Order_entity/entityfields/attributes/children/objecttype_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..008915f61deac19ccdd40fff81701de63eb3b6a2 --- /dev/null +++ b/entity/Order_entity/entityfields/attributes/children/objecttype_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("Context_lib"); + +result.string(ContextUtils.getCurrentContextId()); \ No newline at end of file diff --git a/entity/Order_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js b/entity/Order_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2d458f3d3e14b4d4de7e16459e7ca915b9aafa16 --- /dev/null +++ b/entity/Order_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.SALESORDERID")); \ No newline at end of file diff --git a/entity/Order_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js b/entity/Order_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..008915f61deac19ccdd40fff81701de63eb3b6a2 --- /dev/null +++ b/entity/Order_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("Context_lib"); + +result.string(ContextUtils.getCurrentContextId()); \ No newline at end of file diff --git a/entity/Order_entity/entityfields/order_ordercode_versnr_fieldgroup/valueProcess.js b/entity/Order_entity/entityfields/order_ordercode_versnr_fieldgroup/valueProcess.js deleted file mode 100644 index 777196873cb611d0ad72ee486c0ff35c964a3da8..0000000000000000000000000000000000000000 --- a/entity/Order_entity/entityfields/order_ordercode_versnr_fieldgroup/valueProcess.js +++ /dev/null @@ -1,8 +0,0 @@ -import("system.translate"); -import("system.result"); -import("system.vars"); - -// TODO: Kern-Fix, VersNr wird bei indirektem Aufruf nicht geladen, wenn kein "$field.VERSNR" hier ist: -"$field.VERSNR" - -result.string(translate.text("Order") + " " + vars.get("$field.OrderCode_VersNr_fieldgroup")); diff --git a/entity/Order_entity/entityfields/salesorderdate/valueProcess.js b/entity/Order_entity/entityfields/salesorderdate/valueProcess.js index 09c66d00cc0e8b740a0b3c68c2b7d16947027795..6b67243627ceda867da63df21c0600d67442cbbf 100644 --- a/entity/Order_entity/entityfields/salesorderdate/valueProcess.js +++ b/entity/Order_entity/entityfields/salesorderdate/valueProcess.js @@ -3,7 +3,7 @@ import("system.result"); import("system.neon"); import("Date_lib"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) { result.string(DateUtils.getTodayUTC()); } diff --git a/entity/Order_entity/titleProcess.js b/entity/Order_entity/titleProcess.js index f9b8aea4a9a3b5f300dde8fc9cbf5863a59ec3e5..37977fc62e9742a3d34b3cea24de1cbabe06cfa1 100644 --- a/entity/Order_entity/titleProcess.js +++ b/entity/Order_entity/titleProcess.js @@ -1,5 +1,6 @@ +import("Context_lib"); import("system.translate"); import("system.vars"); import("system.result"); -result.string(translate.text("Receipt") + " " + vars.get("$field.OrderCode_VersNr_fieldgroup")); +result.string(ContextUtils.prefixWithCurrentContextTitle(vars.get("$field.OrderCode_VersNr_fieldgroup"))); diff --git a/entity/Orderitem_entity/entityfields/quantity/valueProcess.js b/entity/Orderitem_entity/entityfields/quantity/valueProcess.js index f6173830c1313bf8a59babc8c9f76ba54df6069a..51d655d5bff03c5552b7f5aabbb9b271a1db5e03 100644 --- a/entity/Orderitem_entity/entityfields/quantity/valueProcess.js +++ b/entity/Orderitem_entity/entityfields/quantity/valueProcess.js @@ -2,7 +2,7 @@ import("system.vars"); import("system.result"); import("system.neon"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) { result.string("1"); } diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod index 866e4b4a21be65e131dcd6bc51866534e12d57bc..663c477a59206a189d39957e57f8a2e2b5d1256f 100644 --- a/entity/Organisation_entity/Organisation_entity.aod +++ b/entity/Organisation_entity/Organisation_entity.aod @@ -5,6 +5,7 @@ <description>former Org</description> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/Organisation_entity/documentation.adoc</documentation> + <afterUiInit>%aditoprj%/entity/Organisation_entity/afterUiInit.js</afterUiInit> <iconId>VAADIN:BUILDING</iconId> <imageProcess>%aditoprj%/entity/Organisation_entity/imageProcess.js</imageProcess> <titleProcess>%aditoprj%/entity/Organisation_entity/titleProcess.js</titleProcess> @@ -789,6 +790,30 @@ <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/avatartext_param/valueProcess.js</valueProcess> <description>PARAMETER</description> </entityParameter> + <entityActionGroup> + <name>campaignActionGroup</name> + <children> + <entityActionField> + <name>addToCampaignFromTable</name> + <fieldType>ACTION</fieldType> + <title>Add to Campaign</title> + <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/onActionProcess.js</onActionProcess> + <isObjectAction v="false" /> + <isSelectionAction v="true" /> + <iconId>NEON:GROUP_APPOINTMENT</iconId> + <tooltip>Add the selection to a campaign</tooltip> + <tooltipProcess>%aditoprj%/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js</tooltipProcess> + </entityActionField> + </children> + </entityActionGroup> + <entityActionField> + <name>addToCampaign</name> + <fieldType>ACTION</fieldType> + <title>Add to Campaign</title> + <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/addtocampaign/onActionProcess.js</onActionProcess> + <iconId>NEON:GROUP_APPOINTMENT</iconId> + <tooltip>Choose a campaign and a step to add the contact to a campaign</tooltip> + </entityActionField> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Organisation_entity/afterUiInit.js b/entity/Organisation_entity/afterUiInit.js new file mode 100644 index 0000000000000000000000000000000000000000..031b635db2bf916a03eda91e8db23dc6c8bb5d35 --- /dev/null +++ b/entity/Organisation_entity/afterUiInit.js @@ -0,0 +1,9 @@ +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Organisation_entity/entityfields/addtocampaign/onActionProcess.js b/entity/Organisation_entity/entityfields/addtocampaign/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..90dbbcdf2911e2f7f594f6cf5aaf910cfb4a8cec --- /dev/null +++ b/entity/Organisation_entity/entityfields/addtocampaign/onActionProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("Campaign_lib"); + +CampaignUtils.addParticipant(vars.getString("$field.CONTACTID")); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/onActionProcess.js b/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..104558a4d9b4ed76ef4e24ae184815401dbc2749 --- /dev/null +++ b/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/onActionProcess.js @@ -0,0 +1,10 @@ +import("system.vars"); +import("system.logging"); +import("system.logging"); +import("system.neon"); +import("Campaign_lib"); + +if(vars.exists("$sys.selection")) //selektierte IDs als Array +{ + CampaignUtils.addParticipants(vars.getString("$sys.selection")); +} \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js b/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..497a88278adfae851d54cddb2968601c0cc58aaf --- /dev/null +++ b/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("Add the selection to a campaign")); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/status/valueProcess.js b/entity/Organisation_entity/entityfields/status/valueProcess.js index 13218c16514d81765c7e5dfd47c099996adfe063..ab590b059440372f55b8c6d73d0c47eae06ca396 100644 --- a/entity/Organisation_entity/entityfields/status/valueProcess.js +++ b/entity/Organisation_entity/entityfields/status/valueProcess.js @@ -3,5 +3,5 @@ import("system.result"); import("system.neon"); import("KeywordRegistry_basic"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null) +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) result.string($KeywordRegistry.contactStatus$active()); \ No newline at end of file diff --git a/entity/Organisation_entity/titleProcess.js b/entity/Organisation_entity/titleProcess.js index dffd0bd73b994f31efe37f60430ab35fe4150c02..5f2cd996da8492d6c6ce7a7df50a7a14e47c5796 100644 --- a/entity/Organisation_entity/titleProcess.js +++ b/entity/Organisation_entity/titleProcess.js @@ -1,4 +1,5 @@ +import("Context_lib"); import("system.vars"); import("system.result"); -result.string(vars.get("$field.NAME")) \ No newline at end of file +result.string(ContextUtils.prefixWithCurrentContextTitle(vars.get("$field.NAME"))) \ No newline at end of file diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod index 1a5a56950bc24b5350a6c9b7fc5ed66f62b3b6d3..e241423f46c7f244337cc0ab75d7b36fa91ab1bf 100644 --- a/entity/Person_entity/Person_entity.aod +++ b/entity/Person_entity/Person_entity.aod @@ -5,6 +5,7 @@ <description>former Pers</description> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/Person_entity/documentation.adoc</documentation> + <afterUiInit>%aditoprj%/entity/Person_entity/afterUiInit.js</afterUiInit> <onValidation>%aditoprj%/entity/Person_entity/onValidation.js</onValidation> <iconId>VAADIN:USERS</iconId> <imageProcess>%aditoprj%/entity/Person_entity/imageProcess.js</imageProcess> @@ -149,6 +150,7 @@ <valueProcess>%aditoprj%/entity/Person_entity/entityfields/organisation_id/valueProcess.js</valueProcess> <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/organisation_id/displayValueProcess.js</displayValueProcess> <onValidation>%aditoprj%/entity/Person_entity/entityfields/organisation_id/onValidation.js</onValidation> + <onValueChange>%aditoprj%/entity/Person_entity/entityfields/organisation_id/onValueChange.js</onValueChange> </entityField> <entityConsumer> <name>PersAddresses</name> @@ -689,6 +691,11 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact <entityParameter> <name>ContactId_param</name> <valueProcess>%aditoprj%/entity/Person_entity/entityfields/contactandorganisationaddresses/children/contactid_param/valueProcess.js</valueProcess> + <triggerRecalculation v="true" /> + </entityParameter> + <entityParameter> + <name>OrganisationId_param</name> + <valueProcess>%aditoprj%/entity/Person_entity/entityfields/contactandorganisationaddresses/children/organisationid_param/valueProcess.js</valueProcess> </entityParameter> </children> </entityConsumer> @@ -768,6 +775,12 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact <fieldName>Contacts</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>e46dcd73-64a8-4b3e-b976-1b4643c54ebb</name> + <entityName>CampaignStep_entity</entityName> + <fieldName>ContactsConsumer</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> <children> <entityParameter> @@ -800,6 +813,15 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact </entityParameter> </children> </entityConsumer> + <entityActionField> + <name>addToCampaign</name> + <fieldType>ACTION</fieldType> + <title>Add to Campaign</title> + <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/addtocampaign/onActionProcess.js</onActionProcess> + <actionOrder v="1" /> + <iconId>NEON:GROUP_APPOINTMENT</iconId> + <tooltip>Choose a campaign and a step to add the contact to a campaign</tooltip> + </entityActionField> <entityConsumer> <name>AttributeTree</name> <title>Attributes</title> @@ -870,6 +892,24 @@ Usually this is used for filtering COMMUNICATION-entries by a specified contact <valueProcess>%aditoprj%/entity/Person_entity/entityfields/avatartext_param/valueProcess.js</valueProcess> <description>PARAMETER</description> </entityParameter> + <entityActionGroup> + <name>campaignActionGroup</name> + <title>Campaign</title> + <children> + <entityActionField> + <name>addToCampaignFromTable</name> + <fieldType>ACTION</fieldType> + <title>Add to Campaign</title> + <onActionProcess>%aditoprj%/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/onActionProcess.js</onActionProcess> + <isMenuAction v="true" /> + <isObjectAction v="false" /> + <isSelectionAction v="true" /> + <iconId>NEON:GROUP_APPOINTMENT</iconId> + <tooltip>Add the selection to a campaign</tooltip> + <tooltipProcess>%aditoprj%/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js</tooltipProcess> + </entityActionField> + </children> + </entityActionGroup> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Person_entity/afterUiInit.js b/entity/Person_entity/afterUiInit.js new file mode 100644 index 0000000000000000000000000000000000000000..031b635db2bf916a03eda91e8db23dc6c8bb5d35 --- /dev/null +++ b/entity/Person_entity/afterUiInit.js @@ -0,0 +1,9 @@ +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Person_entity/entityfields/address_id/valueProcess.js b/entity/Person_entity/entityfields/address_id/valueProcess.js index f5131447594b4ae38c216e849e0bca9324adaa78..96d98eb54f978592c408e075a0e8b8249e6daedc 100644 --- a/entity/Person_entity/entityfields/address_id/valueProcess.js +++ b/entity/Person_entity/entityfields/address_id/valueProcess.js @@ -3,11 +3,12 @@ import("system.vars"); import("StandardObject_lib"); // Check if the standard address is already set. -if (vars.get("$field.ADDRESS_ID") === null || vars.get("$field.ADDRESS_ID") === "" || vars.get("$field.ADDRESS_ID") == 0) { +if (!vars.get("$field.ADDRESS_ID")) +{ var possibleStandardAddressID = new StandardObject("Address", null, "Person", vars.get("$field.PERSONID")) .onPersonValueChange(vars.get("$field.ORGANISATION_ID")); // If a possible standard addrss was found it should get applied to the field. - if (possibleStandardAddressID !== null) + if (possibleStandardAddressID) result.string(possibleStandardAddressID); } \ No newline at end of file diff --git a/entity/Person_entity/entityfields/addtocampaign/onActionProcess.js b/entity/Person_entity/entityfields/addtocampaign/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..90dbbcdf2911e2f7f594f6cf5aaf910cfb4a8cec --- /dev/null +++ b/entity/Person_entity/entityfields/addtocampaign/onActionProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("Campaign_lib"); + +CampaignUtils.addParticipant(vars.getString("$field.CONTACTID")); \ No newline at end of file diff --git a/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/onActionProcess.js b/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4272aa62116b561dd4c1afe4ed5dd86663d57988 --- /dev/null +++ b/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/onActionProcess.js @@ -0,0 +1,9 @@ +import("system.vars"); +import("system.logging"); +import("system.neon"); +import("Campaign_lib"); + logging.log("sys selection -> " + vars.get("$sys.selection")); +if(vars.exists("$sys.selection")) //selektierte IDs als Array +{ + CampaignUtils.addParticipants(vars.getString("$sys.selection")); +} \ No newline at end of file diff --git a/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js b/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..497a88278adfae851d54cddb2968601c0cc58aaf --- /dev/null +++ b/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("Add the selection to a campaign")); \ No newline at end of file diff --git a/entity/Person_entity/entityfields/contactandorganisationaddresses/children/organisationid_param/valueProcess.js b/entity/Person_entity/entityfields/contactandorganisationaddresses/children/organisationid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..a3b647281edc9773de45eec7b7d8afe949f3eba2 --- /dev/null +++ b/entity/Person_entity/entityfields/contactandorganisationaddresses/children/organisationid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.ORGANISATION_ID")); \ No newline at end of file diff --git a/entity/Person_entity/entityfields/organisation_id/onValueChange.js b/entity/Person_entity/entityfields/organisation_id/onValueChange.js new file mode 100644 index 0000000000000000000000000000000000000000..928e32fa1fd71adc77ebb8a845d07a137cf372f1 --- /dev/null +++ b/entity/Person_entity/entityfields/organisation_id/onValueChange.js @@ -0,0 +1,16 @@ +import("system.logging"); +import("system.result"); +import("system.vars"); +import("system.neon"); +import("StandardObject_lib"); + +if (!vars.get("$field.ADDRESS_ID") || StandardObject.isOrganisationAddress(vars.get("$field.ADDRESS_ID"))) +{ + logging.log(vars.get("$field.ADDRESS_ID")) + var possibleStandardAddressID = new StandardObject("Address", null, "Person", vars.get("$field.PERSONID")) + .onPersonValueChange(vars.get("$field.ORGANISATION_ID")); + + // If a possible standard addrss was found it should get applied to the field. + if (possibleStandardAddressID) + neon.setFieldValue("$field.ADDRESS_ID", possibleStandardAddressID); +} \ No newline at end of file diff --git a/entity/Person_entity/titleProcess.js b/entity/Person_entity/titleProcess.js index abaa3df1566528e8dc3e5aad91ac26ab26fe5418..5f2140b1f8870c878bfc8b06a633618471df0aa5 100644 --- a/entity/Person_entity/titleProcess.js +++ b/entity/Person_entity/titleProcess.js @@ -1,3 +1,4 @@ +import("Context_lib"); import("system.vars"); import("system.result"); import("Util_lib"); @@ -13,4 +14,4 @@ contact.lastname = vars.get("$field.LASTNAME"); contact.organisationName = vars.get("$field.ORGANISATION_NAME"); var renderer = new ContactTitleRenderer(contact, null); -result.string(renderer.asString()); \ No newline at end of file +result.string(ContextUtils.prefixWithCurrentContextTitle(renderer.asString())); \ No newline at end of file diff --git a/entity/Product_entity/Product_entity.aod b/entity/Product_entity/Product_entity.aod index 010fc23042d719f2f9176c18e359c98791d0092e..d90fa0affa858861d6744471be0936bf23d77788 100644 --- a/entity/Product_entity/Product_entity.aod +++ b/entity/Product_entity/Product_entity.aod @@ -4,6 +4,7 @@ <title>Product</title> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/Product_entity/documentation.adoc</documentation> + <afterUiInit>%aditoprj%/entity/Product_entity/afterUiInit.js</afterUiInit> <iconId>VAADIN:HAMMER</iconId> <titleProcess>%aditoprj%/entity/Product_entity/titleProcess.js</titleProcess> <recordContainer>db</recordContainer> diff --git a/entity/Product_entity/afterUiInit.js b/entity/Product_entity/afterUiInit.js new file mode 100644 index 0000000000000000000000000000000000000000..031b635db2bf916a03eda91e8db23dc6c8bb5d35 --- /dev/null +++ b/entity/Product_entity/afterUiInit.js @@ -0,0 +1,9 @@ +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Product_entity/titleProcess.js b/entity/Product_entity/titleProcess.js index 4f684f8c2a25b7c72fb953b045428c87e7271751..1df7a714a4dde816d9dded4520659233e3282e80 100644 --- a/entity/Product_entity/titleProcess.js +++ b/entity/Product_entity/titleProcess.js @@ -1,4 +1,5 @@ +import("Context_lib"); import("system.vars"); import("system.result"); -result.string(vars.get("$field.PRODUCTNAME")); \ No newline at end of file +result.string(ContextUtils.prefixWithCurrentContextTitle(vars.get("$field.PRODUCTNAME"))); \ No newline at end of file diff --git a/entity/Productprice_entity/Productprice_entity.aod b/entity/Productprice_entity/Productprice_entity.aod index 2a4a101c97044df295f234220003729435a5439c..4bcf65351c33b6fdf2475b7d12f731588c1b6e38 100644 --- a/entity/Productprice_entity/Productprice_entity.aod +++ b/entity/Productprice_entity/Productprice_entity.aod @@ -91,7 +91,6 @@ <documentation>%aditoprj%/entity/Productprice_entity/entityfields/pricelist/documentation.adoc</documentation> <title>Price list</title> <consumer>KeywordPricelists</consumer> - <mandatoryProcess>%aditoprj%/entity/Productprice_entity/entityfields/pricelist/mandatoryProcess.js</mandatoryProcess> <state>AUTO</state> <stateProcess>%aditoprj%/entity/Productprice_entity/entityfields/pricelist/stateProcess.js</stateProcess> <titleProcess>%aditoprj%/entity/Productprice_entity/entityfields/pricelist/titleProcess.js</titleProcess> diff --git a/entity/Productprice_entity/entityfields/buysell/valueProcess.js b/entity/Productprice_entity/entityfields/buysell/valueProcess.js index 33aba856e9b608b1f09c8c04181e1082b0229a95..f8481bc40d44f280c10a48148b53c71f1b5d0247 100644 --- a/entity/Productprice_entity/entityfields/buysell/valueProcess.js +++ b/entity/Productprice_entity/entityfields/buysell/valueProcess.js @@ -2,5 +2,5 @@ import("system.vars"); import("system.result"); import("system.neon"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) result.string("SP"); \ No newline at end of file diff --git a/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js b/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js index b2204ba4adb39c57f8f5dd011cf2560d92034c07..b659c0bc4d1a64ec7a7e22a2132763523003f5e9 100644 --- a/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js +++ b/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js @@ -2,7 +2,7 @@ import("system.vars"); import("system.result"); import("system.neon"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) result.string("1"); else result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/Productprice_entity/entityfields/price/valueProcess.js b/entity/Productprice_entity/entityfields/price/valueProcess.js index 723d0252aa9b87eb839318b7e5e63d7d7dfc567f..79b1b6752e24ab20067845ce191ee075eab584f2 100644 --- a/entity/Productprice_entity/entityfields/price/valueProcess.js +++ b/entity/Productprice_entity/entityfields/price/valueProcess.js @@ -1,6 +1,6 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) result.string("0"); \ No newline at end of file diff --git a/entity/Productprice_entity/entityfields/pricelist/mandatoryProcess.js b/entity/Productprice_entity/entityfields/pricelist/mandatoryProcess.js deleted file mode 100644 index a58e5c2bf7ea484c0a9038f0846ecec2f42be31b..0000000000000000000000000000000000000000 --- a/entity/Productprice_entity/entityfields/pricelist/mandatoryProcess.js +++ /dev/null @@ -1,10 +0,0 @@ -import("system.neon"); -import("system.vars"); -import("system.result"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$field.CONTACT_ID") != "") - result.string("false"); -else - result.string("true"); - - \ No newline at end of file diff --git a/entity/Productprice_entity/entityfields/valid_from/onValidation.js b/entity/Productprice_entity/entityfields/valid_from/onValidation.js index 5ebbf1a7dccee4b0a58c46b478596bf326697184..6d142999dafedcbed0a2eeca9725a0d82f3ba72f 100644 --- a/entity/Productprice_entity/entityfields/valid_from/onValidation.js +++ b/entity/Productprice_entity/entityfields/valid_from/onValidation.js @@ -1,7 +1,6 @@ import("system.result"); import("system.vars"); import("Date_lib"); -import("Util_lib"); import("Entity_lib"); var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.VALID_FROM")); diff --git a/entity/Productprice_entity/entityfields/valid_from/valueProcess.js b/entity/Productprice_entity/entityfields/valid_from/valueProcess.js index 4a5ac41f637617745a3985ec17bd66594133db52..7f859f943373ed46e60a1e4786e51216a6a00126 100644 --- a/entity/Productprice_entity/entityfields/valid_from/valueProcess.js +++ b/entity/Productprice_entity/entityfields/valid_from/valueProcess.js @@ -3,7 +3,7 @@ import("system.vars"); import("system.neon"); import("Date_lib"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) { result.string(DateUtils.getTodayUTC()); } diff --git a/entity/Productprice_entity/entityfields/valid_to/onValidation.js b/entity/Productprice_entity/entityfields/valid_to/onValidation.js index 3ada2dd1e76e6dceb2b4c1dbf169bf91e0125579..28693efe69f97ec8a33fddd928127117866f264a 100644 --- a/entity/Productprice_entity/entityfields/valid_to/onValidation.js +++ b/entity/Productprice_entity/entityfields/valid_to/onValidation.js @@ -1,7 +1,6 @@ import("system.result"); import("system.vars"); import("Date_lib"); -import("Util_lib"); import("Entity_lib"); var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.VALID_TO")); diff --git a/entity/Productprice_entity/entityfields/vat/valueProcess.js b/entity/Productprice_entity/entityfields/vat/valueProcess.js index 723d0252aa9b87eb839318b7e5e63d7d7dfc567f..79b1b6752e24ab20067845ce191ee075eab584f2 100644 --- a/entity/Productprice_entity/entityfields/vat/valueProcess.js +++ b/entity/Productprice_entity/entityfields/vat/valueProcess.js @@ -1,6 +1,6 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) result.string("0"); \ No newline at end of file diff --git a/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod b/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod index bb39731c041d0e54d2244e0b183af5da512ca5cb..d9be296864922536d3a0d0bd8bab65084c0dde05 100644 --- a/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod +++ b/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod @@ -14,6 +14,7 @@ <contentType>DATE</contentType> <resolution>DAY</resolution> <outputFormat>dd.MM.yyyy</outputFormat> + <valueProcess>%aditoprj%/entity/SalesprojectForecast_entity/entityfields/date_start/valueProcess.js</valueProcess> </entityField> <entityField> <name>GROUPCODE</name> diff --git a/entity/SalesprojectForecast_entity/entityfields/date_start/valueProcess.js b/entity/SalesprojectForecast_entity/entityfields/date_start/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..7f859f943373ed46e60a1e4786e51216a6a00126 --- /dev/null +++ b/entity/SalesprojectForecast_entity/entityfields/date_start/valueProcess.js @@ -0,0 +1,11 @@ +import("system.result"); +import("system.vars"); +import("system.neon"); +import("Date_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + result.string(DateUtils.getTodayUTC()); +} +else + result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/SalesprojectMilestone_entity/titleProcess.js b/entity/SalesprojectMilestone_entity/titleProcess.js index 658e8105ef136f6e374f80363f1c1d0ace5fba7e..a5a099447859455db9fc077639edf59dc58e2105 100644 --- a/entity/SalesprojectMilestone_entity/titleProcess.js +++ b/entity/SalesprojectMilestone_entity/titleProcess.js @@ -1,10 +1,11 @@ +import("Context_lib"); import("system.vars"); import("system.translate"); import("system.result"); if (vars.exists("$field.TYPE") && vars.get("$field.TYPE")) { - result.string(translate.text("Milestones") + " " + translate.text(vars.get("$field.TYPE"))); + result.string(ContextUtils.prefixWithCurrentContextTitle(translate.text("Milestones") + " " + translate.text(vars.get("$field.TYPE")))); } else - result.string(translate.text("Milestones")); \ No newline at end of file + result.string(ContextUtils.prefixWithCurrentContextTitle(translate.text("Milestones"))); \ No newline at end of file diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod index d0183a15899446c7cb8e11286d712f9ff3cf0536..cf5b6fcfaf15f937f6732b64d3ae57535c33a3d6 100644 --- a/entity/Salesproject_entity/Salesproject_entity.aod +++ b/entity/Salesproject_entity/Salesproject_entity.aod @@ -3,6 +3,7 @@ <name>Salesproject_entity</name> <title>Salesproject</title> <majorModelMode>DISTRIBUTED</majorModelMode> + <afterUiInit>%aditoprj%/entity/Salesproject_entity/afterUiInit.js</afterUiInit> <afterOperatingState>%aditoprj%/entity/Salesproject_entity/afterOperatingState.js</afterOperatingState> <iconId>VAADIN:BOOK_DOLLAR</iconId> <titleProcess>%aditoprj%/entity/Salesproject_entity/titleProcess.js</titleProcess> @@ -32,6 +33,7 @@ <resolution>DAY</resolution> <outputFormat>dd.MM.yyyy</outputFormat> <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/enddate/valueProcess.js</valueProcess> + <onValidation>%aditoprj%/entity/Salesproject_entity/entityfields/enddate/onValidation.js</onValidation> </entityField> <entityField> <name>INFO</name> @@ -81,6 +83,7 @@ <outputFormat>dd.MM.yyyy</outputFormat> <mandatory v="true" /> <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/startdate/valueProcess.js</valueProcess> + <onValidation>%aditoprj%/entity/Salesproject_entity/entityfields/startdate/onValidation.js</onValidation> </entityField> <entityField> <name>STATE</name> @@ -556,6 +559,46 @@ <fieldName>StateMilestones</fieldName> </dependency> </entityConsumer> + <entityConsumer> + <name>Attributes</name> + <title>Attributes</title> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>AttributeRelation_entity</entityName> + <fieldName>RelationsForSpecificObject</fieldName> + </dependency> + <children> + <entityParameter> + <name>ObjectType_param</name> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>ObjectRowId_param</name> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>AttributeTree</name> + <title>Attributes</title> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>AttributeRelationTree_entity</entityName> + <fieldName>TreeProvider</fieldName> + </dependency> + <children> + <entityParameter> + <name>ObjectType_param</name> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>ObjectRowId_param</name> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Salesproject_entity/afterUiInit.js b/entity/Salesproject_entity/afterUiInit.js new file mode 100644 index 0000000000000000000000000000000000000000..ac1ce38fae75b5e38fc7043f5710ce3fd07ce7be --- /dev/null +++ b/entity/Salesproject_entity/afterUiInit.js @@ -0,0 +1,9 @@ +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Salesproject_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/Salesproject_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2b119ebfa1944164fd2a1cb645511740bec9015e --- /dev/null +++ b/entity/Salesproject_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.SALESPROJECTID")); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/attributes/children/objecttype_param/valueProcess.js b/entity/Salesproject_entity/entityfields/attributes/children/objecttype_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e8b4e72e74a0a4696ff39e83135aa6100ef908c0 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/attributes/children/objecttype_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("Context_lib"); + +result.string(ContextUtils.getCurrentContextId()); diff --git a/entity/Salesproject_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js b/entity/Salesproject_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2b119ebfa1944164fd2a1cb645511740bec9015e --- /dev/null +++ b/entity/Salesproject_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.SALESPROJECTID")); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js b/entity/Salesproject_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e8b4e72e74a0a4696ff39e83135aa6100ef908c0 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("Context_lib"); + +result.string(ContextUtils.getCurrentContextId()); diff --git a/entity/Salesproject_entity/entityfields/enddate/onValidation.js b/entity/Salesproject_entity/entityfields/enddate/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..11c71f9e9c1f0bc9a2890ce460aafc7d5529a473 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/enddate/onValidation.js @@ -0,0 +1,10 @@ +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Util_lib"); +import("Entity_lib"); + +var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.ENDDATE")); + +if (DateUtils.validateBeginnBeforeEnd(vars.get("$field.STARTDATE"), cEnd) === false) + result.string(DateUtils.getValidationFailString()); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/enddate/valueProcess.js b/entity/Salesproject_entity/entityfields/enddate/valueProcess.js index f6ff85ba891e77ab3a5435a936d573a67defce9a..9cd6d6bfeb34744525ad8934e0fb07ab27a742ec 100644 --- a/entity/Salesproject_entity/entityfields/enddate/valueProcess.js +++ b/entity/Salesproject_entity/entityfields/enddate/valueProcess.js @@ -3,7 +3,7 @@ import("system.result"); import("system.neon"); import("Date_lib"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) { result.string(DateUtils.getDateIncrementedByYears(DateUtils.getTodayUTC(), 1)); } diff --git a/entity/Salesproject_entity/entityfields/startdate/onValidation.js b/entity/Salesproject_entity/entityfields/startdate/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..4e0411453d761b4184537f5ee680cc214e5a74d6 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/startdate/onValidation.js @@ -0,0 +1,11 @@ +import("system.neon"); +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Util_lib"); +import("Entity_lib"); + +var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.STARTDATE")); + +if (DateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.ENDDATE")) === false) + result.string(DateUtils.getValidationFailString()); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/startdate/valueProcess.js b/entity/Salesproject_entity/entityfields/startdate/valueProcess.js index 09c66d00cc0e8b740a0b3c68c2b7d16947027795..6b67243627ceda867da63df21c0600d67442cbbf 100644 --- a/entity/Salesproject_entity/entityfields/startdate/valueProcess.js +++ b/entity/Salesproject_entity/entityfields/startdate/valueProcess.js @@ -3,7 +3,7 @@ import("system.result"); import("system.neon"); import("Date_lib"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == "") +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) { result.string(DateUtils.getTodayUTC()); } diff --git a/entity/Salesproject_entity/titleProcess.js b/entity/Salesproject_entity/titleProcess.js index 96a0a030e216f22364464faa38814240f086e885..bcc2474490ec5415d723b0620ebb1458081b6b17 100644 --- a/entity/Salesproject_entity/titleProcess.js +++ b/entity/Salesproject_entity/titleProcess.js @@ -1,4 +1,5 @@ +import("Context_lib"); import("system.vars"); import("system.result"); -result.string(vars.get("$field.PROJECTTITLE")); \ No newline at end of file +result.string(ContextUtils.prefixWithCurrentContextTitle(vars.get("$field.PROJECTTITLE"))); \ No newline at end of file diff --git a/entity/Task_entity/entityfields/maturity_date/onValidation.js b/entity/Task_entity/entityfields/maturity_date/onValidation.js index bb062404491c5fdbd934a7e23caf370b5c250d6e..c9150833ab7afe40eb4f700569d03ad1e0ba8706 100644 --- a/entity/Task_entity/entityfields/maturity_date/onValidation.js +++ b/entity/Task_entity/entityfields/maturity_date/onValidation.js @@ -1 +1,9 @@ -//TODO: add validation for start-date and maturity-date \ No newline at end of file +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Entity_lib"); + +var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.MATURITY_DATE")); + +if (DateUtils.validateBeginnBeforeEnd(vars.get("$field.START_DATE"), cEnd) === false) + result.string(DateUtils.getValidationFailString()); \ No newline at end of file diff --git a/entity/Task_entity/entityfields/maturity_date/valueProcess.js b/entity/Task_entity/entityfields/maturity_date/valueProcess.js index 033144177b08bda5223b19f104b5fdbebf1a7569..080e7e81c25ffad28875eee2a0525bfc2a7f768d 100644 --- a/entity/Task_entity/entityfields/maturity_date/valueProcess.js +++ b/entity/Task_entity/entityfields/maturity_date/valueProcess.js @@ -1,11 +1,10 @@ import("system.eMath"); import("system.datetime"); -import("system.util"); import("system.result"); import("system.neon"); import("system.vars"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) { var startDate = vars.get("$field.START_DATE"); var presetVal = eMath.addInt(startDate, datetime.ONE_WEEK); diff --git a/entity/Task_entity/entityfields/start_date/onValidation.js b/entity/Task_entity/entityfields/start_date/onValidation.js index bb062404491c5fdbd934a7e23caf370b5c250d6e..4bad868ca52710b422022dd4583f0afde7b000bc 100644 --- a/entity/Task_entity/entityfields/start_date/onValidation.js +++ b/entity/Task_entity/entityfields/start_date/onValidation.js @@ -1 +1,11 @@ -//TODO: add validation for start-date and maturity-date \ No newline at end of file +import("system.neon"); +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Util_lib"); +import("Entity_lib"); + +var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.START_DATE")); + +if (DateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.MATURITY_DATE")) === false) + result.string(DateUtils.getValidationFailString()); \ No newline at end of file diff --git a/entity/Task_entity/entityfields/start_date/valueProcess.js b/entity/Task_entity/entityfields/start_date/valueProcess.js index 0b43b2859aece42dabb0f256e8058c6e811677a4..5b098ba003d06ee9125c54f3f53559b2155ea8e3 100644 --- a/entity/Task_entity/entityfields/start_date/valueProcess.js +++ b/entity/Task_entity/entityfields/start_date/valueProcess.js @@ -1,10 +1,9 @@ import("system.datetime"); -import("system.util"); import("system.result"); import("system.neon"); import("system.vars"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) { var presetVal = datetime.date(); //TODO: depending on what happens in #1032274 we need to manually set the resolution to MINUTES or not (which means we've to set everything smaller than MINUTES (Seconds, etc.) to zero) diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index ab67a7e7b5022723e0c26b5b547a52564a2517cc..7d36afb0e90d471b736369839c52c5c941ce25c6 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -2544,12 +2544,78 @@ <entry> <key>Price policy</key> </entry> + <entry> + <key>Approved</key> + </entry> + <entry> + <key>Completed</key> + </entry> + <entry> + <key>In planning</key> + </entry> + <entry> + <key>Campaign Step</key> + </entry> + <entry> + <key>Campaign Participant</key> + </entry> + <entry> + <key>Campaign Steps</key> + </entry> <entry> <key>360 Degree</key> </entry> + <entry> + <key>Campaigns</key> + </entry> + <entry> + <key>Campaign</key> + </entry> + <entry> + <key>Auswertung</key> + </entry> + <entry> + <key>Reihenfolge</key> + </entry> + <entry> + <key>Zuständiger</key> + </entry> + <entry> + <key>Schritte</key> + </entry> + <entry> + <key>Teilnehmer</key> + </entry> <entry> <key>VAT in %</key> </entry> + <entry> + <key>Kampagnen Schritte</key> + </entry> + <entry> + <key>Kampagnenschritte</key> + </entry> + <entry> + <key>Marketing</key> + </entry> + <entry> + <key>Die maximale Anzahl Teilnehmer ist erreicht!</key> + </entry> + <entry> + <key>Neuer Kampagnenschritt</key> + </entry> + <entry> + <key>Kontakteasdasd</key> + </entry> + <entry> + <key>Ende</key> + </entry> + <entry> + <key>Neue Kampagne</key> + </entry> + <entry> + <key>Beginn</key> + </entry> <entry> <key>${QUANTITY_LOWER_THAN_1}</key> </entry> @@ -2592,9 +2658,6 @@ <entry> <key>IT manager</key> </entry> - <entry> - <key>Marketing</key> - </entry> <entry> <key>CSO</key> </entry> @@ -2742,6 +2805,30 @@ <entry> <key>Salesproject phases</key> </entry> + <entry> + <key>Add to Campaign</key> + </entry> + <entry> + <key>Choose a campaign and a step to add the contact to a campaign</key> + </entry> + <entry> + <key>Max participants</key> + </entry> + <entry> + <key>Participants</key> + </entry> + <entry> + <key>Add the selection to a campaign</key> + </entry> + <entry> + <key>protected</key> + </entry> + <entry> + <key>participants will be added to the selected campaign step</key> + </entry> + <entry> + <key>Add participants to Campaign</key> + </entry> <entry> <key>Object type 1</key> </entry> @@ -2865,6 +2952,27 @@ <entry> <key>This cannot be undone!</key> </entry> + <entry> + <key>Campaign status</key> + </entry> + <entry> + <key>Set campaign step</key> + </entry> + <entry> + <key>Add participant to Campaign</key> + </entry> + <entry> + <key>Steps</key> + </entry> + <entry> + <key>CampaignStep</key> + </entry> + <entry> + <key>Added</key> + </entry> + <entry> + <key>Current participants</key> + </entry> <entry> <key>Overdue tasks</key> </entry> @@ -2920,14 +3028,35 @@ <key>${ATTRIBUTE_VOID}</key> </entry> <entry> - <key>${WEBSERVICE_ERROR} url:%0 status:%1</key> + <key>Kampagnenzeitraum</key> + </entry> + <entry> + <key>Hauptverantw.</key> + </entry> + <entry> + <key>New campaign step</key> + </entry> + <entry> + <key>Cost</key> </entry> <entry> <key>file '%0' cannot be read</key> </entry> + <entry> + <key>Campaign costs</key> + </entry> <entry> <key>Importer</key> </entry> + <entry> + <key>Participant</key> + </entry> + <entry> + <key>Printing costs</key> + </entry> + <entry> + <key>Shipping costs</key> + </entry> <entry> <key>yyyy-MM-dd HH:mm:ss</key> </entry> @@ -2937,6 +3066,27 @@ <entry> <key>Zip</key> </entry> + <entry> + <key>Add to campaign</key> + </entry> + <entry> + <key>Layout costs</key> + </entry> + <entry> + <key>Costs</key> + </entry> + <entry> + <key>${WEBSERVICE_ERROR} url:%0 status:%1</key> + </entry> + <entry> + <key>Step</key> + </entry> + <entry> + <key>Fix cost</key> + </entry> + <entry> + <key>per</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> <sqlModels> diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index efefdb8fdcda4deec261ec78dd90fa18549ce08e..061f1ef983065b965429dde575cc4c018726c64b 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -10,10 +10,18 @@ <key>SalesprojectState</key> <value>Status</value> </entry> + <entry> + <key>Steps</key> + <value>Stufen</value> + </entry> <entry> <key>Project management</key> <value>Projektmanagement</value> </entry> + <entry> + <key>Add to Campaign</key> + <value>Zu Kampagne hinzufügen</value> + </entry> <entry> <key>Company</key> <value>Firma</value> @@ -78,6 +86,10 @@ <key>Maximal Count</key> <value>Maximale Anzahl</value> </entry> + <entry> + <key>Campaign Participant</key> + <value>Kampagnen Teilnehmer/innen</value> + </entry> <entry> <key>Entrydate (Month)</key> <value>Eingangsdatum (Monat)</value> @@ -86,10 +98,18 @@ <key>Usage</key> <value>Verwendung</value> </entry> + <entry> + <key>Campaign status</key> + <value>Kampagnenstatus</value> + </entry> <entry> <key>Show all activities</key> <value>Alle Aktivitäten anzeigen</value> </entry> + <entry> + <key>Add the selection to a campaign</key> + <value>Fügt die Auswahl zur Kampagne hinzu</value> + </entry> <entry> <key>${ADDRESS_STATE}</key> <value>Staat</value> @@ -106,6 +126,10 @@ <key>Show all contracts</key> <value>Alle Verträge anzeigen</value> </entry> + <entry> + <key>Max participants</key> + <value>Maximale Teilnehmer</value> + </entry> <entry> <key>This combination of person and organisation does already exist and can not be created once more.</key> <value>Diese Kombination aus Person und Organisation existiert bereits und kann daher nicht noch ein mal angelegt werden.</value> @@ -134,6 +158,10 @@ <key>Activity</key> <value>Aktivität</value> </entry> + <entry> + <key>participants will be added to the selected campaign step</key> + <value>Teilnehmer/innen werden zur ausgewählten Kampagnenstufe hinzugefügt</value> + </entry> <entry> <key>Name</key> <value>Name</value> @@ -142,6 +170,10 @@ <key>Austria</key> <value>Österreich</value> </entry> + <entry> + <key>Set campaign step</key> + <value>Kampagnenstufe setzen</value> + </entry> <entry> <key>New time tracking</key> <value>Neuer Zeiteintrag</value> @@ -166,6 +198,10 @@ <key>Status</key> <value>Status</value> </entry> + <entry> + <key>Campaigns</key> + <value>Kampagnen</value> + </entry> <entry> <key>${SALESPROJECT_MEMBER}</key> <value>Projektteam</value> @@ -182,6 +218,10 @@ <key>Days inactive</key> <value>Tage inaktiv</value> </entry> + <entry> + <key>Choose a campaign and a step to add the contact to a campaign</key> + <value>Wählen Sie eine Kampagne und eine Stufe aus um den Kontakt hinzuzufügen</value> + </entry> <entry> <key>Active</key> <value>Aktiv</value> @@ -301,6 +341,10 @@ <key>Gender</key> <value>Geschlecht</value> </entry> + <entry> + <key>Campaign Steps</key> + <value>Kampagnen Stufen</value> + </entry> <entry> <key>Show all companies</key> <value>Alle Firmen anzeigen</value> @@ -329,6 +373,10 @@ <key>Addresstype</key> <value>Adresstyp</value> </entry> + <entry> + <key>Add participants to Campaign</key> + <value>Kampagnenteilnehmer/innen hinzufügen</value> + </entry> <entry> <key>Firstname</key> <value>Vorname</value> @@ -361,6 +409,10 @@ <key>Delivery address</key> <value>Lieferadresse</value> </entry> + <entry> + <key>Participants</key> + <value>Teilnehmer/innen</value> + </entry> <entry> <key>House number</key> <value>Hausnummer</value> @@ -567,6 +619,14 @@ <key>Commodity group 2</key> <value>Warengruppe 2</value> </entry> + <entry> + <key>Campaign Step</key> + <value>Kampagnen Stufe</value> + </entry> + <entry> + <key>CampaignStep</key> + <value>Kampagnen Stufe</value> + </entry> <entry> <key>Commodity group 1</key> <value>Warengruppe 1</value> @@ -619,6 +679,10 @@ <key>Product name</key> <value>Produktname</value> </entry> + <entry> + <key>Campaign</key> + <value>Kampagne</value> + </entry> <entry> <key>Product group</key> <value>Produktgruppe</value> @@ -2401,6 +2465,10 @@ <key>Yemen</key> <value>Jemen</value> </entry> + <entry> + <key>The minimal count can't be larger than the maximal count!</key> + <value>Die minimale Anzahl darf nicht größer als die maximale Anzahl sein!</value> + </entry> <entry> <key>Aruba</key> <value>Aruba</value> @@ -3123,6 +3191,10 @@ <entry> <key>Tree Entity</key> </entry> + <entry> + <key>Add participant to Campaign</key> + <value>Kampagnenteilnehmer/in hinzufügen</value> + </entry> <entry> <key>Relationtype</key> <value>Beziehungsart</value> @@ -3739,15 +3811,102 @@ <key>MyTasks</key> </entry> <entry> - <key>${WEBSERVICE_ERROR} url:%0 status:%1</key> - <value>Webservice nicht erreichbar. URL: %0 %1</value> + <key>Approved</key> + <value>Freigegeben</value> + </entry> + <entry> + <key>Completed</key> + <value>Abgeschlossen</value> + </entry> + <entry> + <key>In planning</key> + <value>In Planung</value> + </entry> + <entry> + <key>Auswertung</key> + </entry> + <entry> + <key>Reihenfolge</key> + </entry> + <entry> + <key>Zuständiger</key> + </entry> + <entry> + <key>Schritte</key> + </entry> + <entry> + <key>Teilnehmer</key> + </entry> + <entry> + <key>Kampagnen Schritte</key> + </entry> + <entry> + <key>Kampagnenschritte</key> + </entry> + <entry> + <key>Die maximale Anzahl Teilnehmer ist erreicht!</key> + </entry> + <entry> + <key>Neuer Kampagnenschritt</key> + </entry> + <entry> + <key>Kontakteasdasd</key> + </entry> + <entry> + <key>Ende</key> + </entry> + <entry> + <key>Neue Kampagne</key> + </entry> + <entry> + <key>Beginn</key> + </entry> + <entry> + <key>protected</key> + </entry> + <entry> + <key>Added</key> + <value>Hinzugefügt</value> + </entry> + <entry> + <key>Current participants</key> + <value>Aktuelle Teilnehmer</value> + </entry> + <entry> + <key>Kampagnenzeitraum</key> + </entry> + <entry> + <key>Hauptverantw.</key> + </entry> + <entry> + <key>New campaign step</key> + </entry> + <entry> + <key>Cost</key> + <value>Kosten</value> </entry> <entry> <key>file '%0' cannot be read</key> </entry> + <entry> + <key>Campaign costs</key> + <value>Kampagnen Kosten</value> + </entry> <entry> <key>Importer</key> </entry> + <entry> + <key>Participant</key> + <value>Teilnehmer/in</value> + </entry> + <entry> + <key>Printing costs</key> + <value>Druckkosten</value> + </entry> + <entry> + <key>Shipping costs</key> + <value>Porto</value> + </entry> <entry> <key>yyyy-MM-dd HH:mm:ss</key> </entry> @@ -3757,6 +3916,33 @@ <entry> <key>Zip</key> </entry> + <entry> + <key>Add to campaign</key> + </entry> + <entry> + <key>Layout costs</key> + <value>Layout</value> + </entry> + <entry> + <key>Costs</key> + <value>Kosten</value> + </entry> + <entry> + <key>${WEBSERVICE_ERROR} url:%0 status:%1</key> + <value>Webservice nicht erreichbar. URL: %0 %1</value> + </entry> + <entry> + <key>Step</key> + <value>Stufe</value> + </entry> + <entry> + <key>Fix cost</key> + <value>Fixkosten</value> + </entry> + <entry> + <key>per</key> + <value>pro</value> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod index f10c855aa407ec764d4365463443b66901d75f54..9cf86e4d198b59e2e21eb96a77af237823de7d5e 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -2532,12 +2532,78 @@ <entry> <key>Price policy</key> </entry> + <entry> + <key>Approved</key> + </entry> + <entry> + <key>Completed</key> + </entry> + <entry> + <key>In planning</key> + </entry> + <entry> + <key>Campaign Step</key> + </entry> + <entry> + <key>Campaign Participant</key> + </entry> + <entry> + <key>Campaign Steps</key> + </entry> <entry> <key>360 Degree</key> </entry> + <entry> + <key>Campaigns</key> + </entry> + <entry> + <key>Campaign</key> + </entry> + <entry> + <key>Auswertung</key> + </entry> + <entry> + <key>Reihenfolge</key> + </entry> + <entry> + <key>Zuständiger</key> + </entry> + <entry> + <key>Schritte</key> + </entry> + <entry> + <key>Teilnehmer</key> + </entry> <entry> <key>VAT in %</key> </entry> + <entry> + <key>Kampagnen Schritte</key> + </entry> + <entry> + <key>Kampagnenschritte</key> + </entry> + <entry> + <key>Marketing</key> + </entry> + <entry> + <key>Die maximale Anzahl Teilnehmer ist erreicht!</key> + </entry> + <entry> + <key>Neuer Kampagnenschritt</key> + </entry> + <entry> + <key>Kontakteasdasd</key> + </entry> + <entry> + <key>Ende</key> + </entry> + <entry> + <key>Neue Kampagne</key> + </entry> + <entry> + <key>Beginn</key> + </entry> <entry> <key>${QUANTITY_LOWER_THAN_1}</key> <value>Quantity should be greater than 0.</value> @@ -2578,9 +2644,6 @@ <entry> <key>IT manager</key> </entry> - <entry> - <key>Marketing</key> - </entry> <entry> <key>CSO</key> </entry> @@ -2774,6 +2837,30 @@ <entry> <key>Salesproject phases</key> </entry> + <entry> + <key>Add to Campaign</key> + </entry> + <entry> + <key>Choose a campaign and a step to add the contact to a campaign</key> + </entry> + <entry> + <key>Max participants</key> + </entry> + <entry> + <key>Participants</key> + </entry> + <entry> + <key>Add the selection to a campaign</key> + </entry> + <entry> + <key>protected</key> + </entry> + <entry> + <key>participants will be added to the selected campaign step</key> + </entry> + <entry> + <key>Add participants to Campaign</key> + </entry> <entry> <key>Key figures</key> </entry> @@ -2897,6 +2984,27 @@ <entry> <key>This cannot be undone!</key> </entry> + <entry> + <key>Campaign status</key> + </entry> + <entry> + <key>Set campaign step</key> + </entry> + <entry> + <key>Add participant to Campaign</key> + </entry> + <entry> + <key>Steps</key> + </entry> + <entry> + <key>CampaignStep</key> + </entry> + <entry> + <key>Added</key> + </entry> + <entry> + <key>Current participants</key> + </entry> <entry> <key>Overdue tasks</key> </entry> @@ -2954,15 +3062,35 @@ <value>Void</value> </entry> <entry> - <key>${WEBSERVICE_ERROR} url:%0 status:%1</key> - <value>Webservice not available. URL: %0 %1</value> + <key>Kampagnenzeitraum</key> + </entry> + <entry> + <key>Hauptverantw.</key> + </entry> + <entry> + <key>New campaign step</key> + </entry> + <entry> + <key>Cost</key> </entry> <entry> <key>file '%0' cannot be read</key> </entry> + <entry> + <key>Campaign costs</key> + </entry> <entry> <key>Importer</key> </entry> + <entry> + <key>Participant</key> + </entry> + <entry> + <key>Printing costs</key> + </entry> + <entry> + <key>Shipping costs</key> + </entry> <entry> <key>yyyy-MM-dd HH:mm:ss</key> </entry> @@ -2972,6 +3100,28 @@ <entry> <key>Zip</key> </entry> + <entry> + <key>Add to campaign</key> + </entry> + <entry> + <key>Layout costs</key> + </entry> + <entry> + <key>Costs</key> + </entry> + <entry> + <key>Fix cost</key> + </entry> + <entry> + <key>Step</key> + </entry> + <entry> + <key>${WEBSERVICE_ERROR} url:%0 status:%1</key> + <value>Webservice not available. URL: %0 %1</value> + </entry> + <entry> + <key>per</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/neonContext/Campaign/Campaign.aod b/neonContext/Campaign/Campaign.aod new file mode 100644 index 0000000000000000000000000000000000000000..44da77e955ace0671af2cb87a25685eaf48ff6ea --- /dev/null +++ b/neonContext/Campaign/Campaign.aod @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>Campaign</name> + <title>Campaign</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:GROUP</icon> + <mainview>CampaignMain_view</mainview> + <filterview>CampaignFilter_view</filterview> + <editview>CampaignEdit_view</editview> + <preview>CampaignPreview_view</preview> + <lookupview>CampaignFilter_view</lookupview> + <entity>Campaign_entity</entity> + <references> + <neonViewReference> + <name>7a90a8ed-62e9-47c1-9c8c-2b1019e31da0</name> + <view>CampaignFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>b4750aec-8ad6-419b-9b44-2848d90b68d0</name> + <view>CampaignMain_view</view> + </neonViewReference> + <neonViewReference> + <name>678bda6a-42f2-49c3-8527-5289e70645a2</name> + <view>CampaignEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>2fffb548-0b4f-4986-9b50-aefa2e00bade</name> + <view>CampaignPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>4a5377cc-af00-49c7-aad2-ac93e2752b3f</name> + <view>CampaignCost_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/CampaignAddParticipants/CampaignAddParticipants.aod b/neonContext/CampaignAddParticipants/CampaignAddParticipants.aod new file mode 100644 index 0000000000000000000000000000000000000000..28d85596318e2b2c9ead40ee288098f4e00d2461 --- /dev/null +++ b/neonContext/CampaignAddParticipants/CampaignAddParticipants.aod @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>CampaignAddParticipants</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <editview>CampaignAddParticipantsEdit_view</editview> + <entity>CampaignAddParticipants_entity</entity> + <references> + <neonViewReference> + <name>c4f11246-9c24-4c1c-8e53-96acabf04bab</name> + <view>CampaignAddParticipantsEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>87d572bd-f2ce-4283-8db0-a7d9f9441fa0</name> + <view>campaignParticipantMessage_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/CampaignAnalysis/CampaignAnalysis.aod b/neonContext/CampaignAnalysis/CampaignAnalysis.aod new file mode 100644 index 0000000000000000000000000000000000000000..8d1ff1b7b9aaf49a169817f8f9ac4fc619969095 --- /dev/null +++ b/neonContext/CampaignAnalysis/CampaignAnalysis.aod @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>CampaignAnalysis</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <entity>CampaignAnalysis_entity</entity> + <references> + <neonViewReference> + <name>ebb2a4e0-5e0e-4749-8ed8-7aa3b8cae3fc</name> + <view>CampaignStepCurrentMaxParticipants_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/CampaignCost/CampaignCost.aod b/neonContext/CampaignCost/CampaignCost.aod new file mode 100644 index 0000000000000000000000000000000000000000..65fbbf22993e1e6edd229db2c3303370dc0b5004 --- /dev/null +++ b/neonContext/CampaignCost/CampaignCost.aod @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>CampaignCost</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterview>CampaignCostFilter_view</filterview> + <editview>CampaignCostEdit_view</editview> + <entity>CampaignCost_entitiy</entity> + <references> + <neonViewReference> + <name>fa4ac7f7-4f30-42ba-86b2-99e86597734f</name> + <view>CampaignCostFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>34fefde3-d3cf-4a64-92e2-fe1150c286eb</name> + <view>CampaignCostEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>01137074-b129-42bc-86b7-82afc356923b</name> + <view>CampaignGroupedCostFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>a4f131e8-2371-4070-83f7-fd69dfd6a7df</name> + <view>CampaignCostExtendedFilter_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/CampaignParticipant/CampaignParticipant.aod b/neonContext/CampaignParticipant/CampaignParticipant.aod new file mode 100644 index 0000000000000000000000000000000000000000..5595651c789c73c72702acf557fa2711d3c9523e --- /dev/null +++ b/neonContext/CampaignParticipant/CampaignParticipant.aod @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>CampaignParticipant</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterview>CampaignParticipantFilter_view</filterview> + <editview>CampaignParticipantEdit_view</editview> + <preview>CampaignParticipantPreview_view</preview> + <entity>CampaignParticipant_entity</entity> + <references> + <neonViewReference> + <name>2937d001-c1c8-40a0-9eac-f575fcc7c251</name> + <view>CampaignParticipantFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>e52a3270-3a6c-48be-bf91-8b6118ccf57c</name> + <view>CampaignParticipantEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>1b11a31b-4ca3-49ad-a312-4d31b9d986b1</name> + <view>CampaignParticipantPreview_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/CampaignStep/CampaignStep.aod b/neonContext/CampaignStep/CampaignStep.aod new file mode 100644 index 0000000000000000000000000000000000000000..17e6119fb7f175a1485f953f92a111e9f8f03fee --- /dev/null +++ b/neonContext/CampaignStep/CampaignStep.aod @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>CampaignStep</name> + <title>Campaign Step</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <mainview>CampaignStepMain_view</mainview> + <filterview>CampaignStepFilter_view</filterview> + <editview>CampaignStepEdit_view</editview> + <preview>CampaignStepPreview_view</preview> + <lookupview>CampaignStepFilter_view</lookupview> + <entity>CampaignStep_entity</entity> + <references> + <neonViewReference> + <name>9c8fa482-9c3b-4ea8-82b0-91979cc2936d</name> + <view>CampaignStepFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>c11ece8f-3ddf-416f-8b22-eaa2dda085eb</name> + <view>CampaignStepEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>3de647e9-f3fb-47c8-8ba8-093f3e00a41c</name> + <view>CampaignStepPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>b0b74015-6ed3-4ad4-bd72-b4017fe85e54</name> + <view>CampaignStepMain_view</view> + </neonViewReference> + <neonViewReference> + <name>bd922414-bd4c-4313-8564-85f27156159e</name> + <view>CampaignStepAnalysis_view</view> + </neonViewReference> + <neonViewReference> + <name>c1be17f6-c4ca-4d9d-8c3a-0cc8f75906f6</name> + <view>CampaignStepAddParticipants_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/IndexSearchContext/IndexSearchContext.aod b/neonContext/IndexSearchContext/IndexSearchContext.aod new file mode 100644 index 0000000000000000000000000000000000000000..b379419b4084feb116cf5d2213ad5f07954fa607 --- /dev/null +++ b/neonContext/IndexSearchContext/IndexSearchContext.aod @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>IndexSearchContext</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <entity>IndexSearchEntity</entity> + <references> + <neonViewReference> + <name>2648f63d-7a43-4049-81b0-a3486ed15db6</name> + <view>IndexSearchView</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/Notification/Notification.aod b/neonContext/Notification/Notification.aod new file mode 100644 index 0000000000000000000000000000000000000000..ef86e6f5e55ffc6d82304521cfe2be15f783fae3 --- /dev/null +++ b/neonContext/Notification/Notification.aod @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>Notification</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterview>NotificationFilter_view</filterview> + <preview>NotificationPreview_view</preview> + <entity>Notification_entity</entity> + <references> + <neonViewReference> + <name>110703ad-3509-4472-90e6-6825a05ff55b</name> + <view>NotificationFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>f47542b9-ccf9-4487-ae3f-cdfda61cff3a</name> + <view>NotificationPreview_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/ObjectTree/ObjectTree.aod b/neonContext/ObjectTree/ObjectTree.aod index 3a0bc38b2c9464edf2e3c6d8e510f00b7d7b2182..a8f24a44156098989667e38818ddd4491116b862 100644 --- a/neonContext/ObjectTree/ObjectTree.aod +++ b/neonContext/ObjectTree/ObjectTree.aod @@ -4,7 +4,6 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <filterview>ObjectTreeFilter_view</filterview> <editview>ObjectTreeEdit_view</editview> - <preview>ObjectTreePreview</preview> <entity>ObjectTree_entity</entity> <references> <neonViewReference> @@ -15,9 +14,5 @@ <name>1122516a-5f1c-4f08-9995-02acaee2a0cd</name> <view>ObjectTreeEdit_view</view> </neonViewReference> - <neonViewReference> - <name>1caa61e2-0e59-47bd-a996-db49867e3908</name> - <view>ObjectTreePreview</view> - </neonViewReference> </references> </neonContext> diff --git a/neonNotificationType/AndisNotification/AndisNotification.aod b/neonNotificationType/AndisNotification/AndisNotification.aod index 5f38e02ae6bb21adf600c3218842a6fc37939e84..3c43805abbdc4bfe1bd4584c23fa29fcbcd9244c 100644 --- a/neonNotificationType/AndisNotification/AndisNotification.aod +++ b/neonNotificationType/AndisNotification/AndisNotification.aod @@ -3,6 +3,7 @@ <name>AndisNotification</name> <title>Andis Noti</title> <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:ASTERISK</icon> <resultFrameNeon></resultFrameNeon> <onResultOpen>%aditoprj%/neonNotificationType/AndisNotification/onResultOpen.js</onResultOpen> </neonNotificationType> diff --git a/neonView/ActivityFilter_view/ActivityFilter_view.aod b/neonView/ActivityFilter_view/ActivityFilter_view.aod index 78a81d68932c0bf91139e730cb800fc2b19df0a3..61c9ff0d3c3ba8a790d07508018003137662577f 100644 --- a/neonView/ActivityFilter_view/ActivityFilter_view.aod +++ b/neonView/ActivityFilter_view/ActivityFilter_view.aod @@ -91,12 +91,33 @@ </neonTableColumn> </columns> </tableViewTemplate> - <treeViewTemplate> - <name>ActivitiesTreetable</name> - <titleField>SUBJECT_DETAILS</titleField> - <descriptionField>INFO</descriptionField> - <iconField>#IMAGE</iconField> + <treeTableViewTemplate> + <name>ActivitiesTreeTable</name> <entityField>#ENTITY</entityField> - </treeViewTemplate> + <columns> + <neonTableColumn> + <name>4167708f-b5a4-42ed-848a-cf9bb604f083</name> + <entityField>ICON</entityField> + <width v="75" /> + </neonTableColumn> + <neonTableColumn> + <name>ec8f0488-9a9f-4114-8123-1bc21b1d1f68</name> + <entityField>SUBJECT</entityField> + <width v="75" /> + </neonTableColumn> + <neonTableColumn> + <name>c44d54b5-00b9-4faf-9934-687e3a417b73</name> + <entityField>ENTRYDATE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>f7137699-ae62-48e0-9cd6-e06d37f87f94</name> + <entityField>DIRECTION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>385231ab-204f-498a-8bf2-6fca3f59b7a5</name> + <entityField>CATEGORY</entityField> + </neonTableColumn> + </columns> + </treeTableViewTemplate> </children> </neonView> diff --git a/neonView/AddressList_view/AddressList_view.aod b/neonView/AddressList_view/AddressList_view.aod index 74236c8433e8fa39c3666e2c1c8f074d1a2495f2..63782018ac9680289975c8c3d0ebe6733db30c65 100644 --- a/neonView/AddressList_view/AddressList_view.aod +++ b/neonView/AddressList_view/AddressList_view.aod @@ -19,8 +19,12 @@ <entityField>ADDR_TYPE</entityField> </neonTableColumn> <neonTableColumn> - <name>dfaa01a1-0b11-4f92-aa18-89f12ebb2db5</name> - <entityField>COUNTRY</entityField> + <name>4e5e6a4f-f43e-4861-a912-fb05e576f960</name> + <entityField>ADDRESS</entityField> + </neonTableColumn> + <neonTableColumn> + <name>935bcecf-fdd9-4e82-a53f-3c3082c85340</name> + <entityField>BUILDINGNO</entityField> </neonTableColumn> <neonTableColumn> <name>0336ea99-c4a1-4f39-b5aa-a520a7dcbaab</name> @@ -31,20 +35,16 @@ <entityField>CITY</entityField> </neonTableColumn> <neonTableColumn> - <name>29dbb3f5-6f80-4100-aed3-334ac0b9cc48</name> - <entityField>REGION</entityField> + <name>dfaa01a1-0b11-4f92-aa18-89f12ebb2db5</name> + <entityField>COUNTRY</entityField> </neonTableColumn> <neonTableColumn> <name>aafc58cf-7dbb-42cb-b04c-d0869e58d09a</name> <entityField>STATE</entityField> </neonTableColumn> <neonTableColumn> - <name>4e5e6a4f-f43e-4861-a912-fb05e576f960</name> - <entityField>ADDRESS</entityField> - </neonTableColumn> - <neonTableColumn> - <name>935bcecf-fdd9-4e82-a53f-3c3082c85340</name> - <entityField>BUILDINGNO</entityField> + <name>29dbb3f5-6f80-4100-aed3-334ac0b9cc48</name> + <entityField>REGION</entityField> </neonTableColumn> <neonTableColumn> <name>6af52273-25bf-4286-83cc-217aea94ad09</name> diff --git a/neonView/AddressLookup_view/AddressLookup_view.aod b/neonView/AddressLookup_view/AddressLookup_view.aod index 84a197811b5c31e788561505537c4b9c354cfeae..6b0c5094306af8e955eb39eb3e9949a12c42c0e6 100644 --- a/neonView/AddressLookup_view/AddressLookup_view.aod +++ b/neonView/AddressLookup_view/AddressLookup_view.aod @@ -20,10 +20,6 @@ <name>07e3bcf0-30aa-4745-8dd6-ed79dd2d0fa0</name> <entityField>ADDR_TYPE</entityField> </neonTableColumn> - <neonTableColumn> - <name>e6d9ced9-eea3-4cdf-9751-74c8f206282f</name> - <entityField>COUNTRY</entityField> - </neonTableColumn> <neonTableColumn> <name>570039fc-c27a-4b06-a93e-16cc712a3d0c</name> <entityField>ADDRESS</entityField> @@ -40,17 +36,21 @@ <name>6a07479c-b4d3-4946-993e-e6ce7dd825ba</name> <entityField>CITY</entityField> </neonTableColumn> + <neonTableColumn> + <name>e6d9ced9-eea3-4cdf-9751-74c8f206282f</name> + <entityField>COUNTRY</entityField> + </neonTableColumn> <neonTableColumn> <name>820b6ffc-7e56-4982-8f39-4443b0ada876</name> <entityField>STATE</entityField> </neonTableColumn> <neonTableColumn> - <name>24f73ac8-ac90-4beb-83fe-bdaa2d0806b6</name> - <entityField>ADDRIDENTIFIER</entityField> + <name>9651a718-ab01-4c97-8da0-6e7133f26466</name> + <entityField>REGION</entityField> </neonTableColumn> <neonTableColumn> - <name>9651a718-ab01-4c97-8da0-6e7133f26466</name> - <entityField>#PROVIDER</entityField> + <name>24f73ac8-ac90-4beb-83fe-bdaa2d0806b6</name> + <entityField>ADDRIDENTIFIER</entityField> </neonTableColumn> </columns> </tableViewTemplate> diff --git a/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod b/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod index 7ff9546ade23e1956af0503193b9300ee0168276..cfa861355be86b2a0fbcfec74258fb12e422aad3 100644 --- a/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod +++ b/neonView/AdressMultiEdit_view/AdressMultiEdit_view.aod @@ -17,8 +17,12 @@ <entityField>ADDR_TYPE</entityField> </neonTableColumn> <neonTableColumn> - <name>435f10b8-b6ef-4187-bffc-fc6104a6130c</name> - <entityField>COUNTRY</entityField> + <name>ac71d5eb-7ce7-41a0-91aa-5594f2238788</name> + <entityField>ADDRESS</entityField> + </neonTableColumn> + <neonTableColumn> + <name>61261845-740e-4f4b-a1f8-5e6aeac2deba</name> + <entityField>BUILDINGNO</entityField> </neonTableColumn> <neonTableColumn> <name>c1372a93-cf83-4c55-90e6-3b6b352abebf</name> @@ -29,20 +33,16 @@ <entityField>CITY</entityField> </neonTableColumn> <neonTableColumn> - <name>b62515bf-e89d-44a9-94ff-933766657fe5</name> - <entityField>REGION</entityField> + <name>435f10b8-b6ef-4187-bffc-fc6104a6130c</name> + <entityField>COUNTRY</entityField> </neonTableColumn> <neonTableColumn> <name>66ae75ca-7a5c-4cf0-b768-6c2900f7b7c6</name> <entityField>STATE</entityField> </neonTableColumn> <neonTableColumn> - <name>ac71d5eb-7ce7-41a0-91aa-5594f2238788</name> - <entityField>ADDRESS</entityField> - </neonTableColumn> - <neonTableColumn> - <name>61261845-740e-4f4b-a1f8-5e6aeac2deba</name> - <entityField>BUILDINGNO</entityField> + <name>b62515bf-e89d-44a9-94ff-933766657fe5</name> + <entityField>REGION</entityField> </neonTableColumn> <neonTableColumn> <name>443b9d7d-dac2-40b2-bb2b-d5e0091877a9</name> diff --git a/neonView/AttributeFilter_view/AttributeFilter_view.aod b/neonView/AttributeFilter_view/AttributeFilter_view.aod index cadb8afc80a55d8af99a17f82f798828a6200a72..3a1c298e1cff4737c6a2d8acf4415c7944f1c33f 100644 --- a/neonView/AttributeFilter_view/AttributeFilter_view.aod +++ b/neonView/AttributeFilter_view/AttributeFilter_view.aod @@ -17,6 +17,11 @@ <showChildrenCount v="false" /> <entityField>#ENTITY</entityField> <columns> + <neonTableColumn> + <name>169aceb2-2ff8-42de-ab89-4d3cc15d5747</name> + <entityField>ICON</entityField> + <width v="75" /> + </neonTableColumn> <neonTableColumn> <name>a776a053-6712-44f9-943f-da26d1ce11ee</name> <entityField>ATTRIBUTE_NAME</entityField> @@ -35,6 +40,10 @@ <name>AttributesTable</name> <entityField>#ENTITY</entityField> <columns> + <neonTableColumn> + <name>c1ee431e-e4d2-4744-ad8c-2bf2c2eed8d6</name> + <entityField>ICON</entityField> + </neonTableColumn> <neonTableColumn> <name>4dae1a23-8798-42ff-998c-7f5fedc7dcc5</name> <entityField>FULL_ATTRIBUTE_NAME</entityField> diff --git a/neonView/AttributePreview_view/AttributePreview_view.aod b/neonView/AttributePreview_view/AttributePreview_view.aod index 5a8e785eb7471b2b09da7a94db7797460926cf79..812510e36bcf15293daa63d6d34912cedb7428f5 100644 --- a/neonView/AttributePreview_view/AttributePreview_view.aod +++ b/neonView/AttributePreview_view/AttributePreview_view.aod @@ -18,37 +18,23 @@ <genericViewTemplate> <name>Details</name> <showDrawer v="true" /> - <drawerCaption>Details</drawerCaption> <entityField>#ENTITY</entityField> <fields> <entityFieldLink> - <name>70953962-9472-484b-ac95-567d2249f42e</name> - <entityField>ATTRIBUTE_ACTIVE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>1b1cfdcb-fcab-4ca9-b0e0-b69fe88b65f0</name> - <entityField>SORTING</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <genericViewTemplate> - <name>Info</name> - <editMode v="false" /> - <showDrawer v="true" /> - <entityField>#ENTITY</entityField> - <title></title> - <fields> - <entityFieldLink> - <name>5f20a5d4-0343-4b8c-92bf-15eeb2483ba9</name> + <name>3de869e9-936b-4215-86de-b1e24f6bfd78</name> <entityField>ATTRIBUTE_PARENT_ID</entityField> </entityFieldLink> <entityFieldLink> - <name>7e64cd02-e91e-4845-bc77-256a4945670e</name> + <name>39cf159f-2c34-41a1-bf6d-210d2d1f8df9</name> <entityField>KEYWORD_CONTAINER</entityField> </entityFieldLink> <entityFieldLink> - <name>00a51564-0eca-43f9-8235-b811df1dbafd</name> - <entityField>ATTRIBUTE_LEVEL</entityField> + <name>70953962-9472-484b-ac95-567d2249f42e</name> + <entityField>ATTRIBUTE_ACTIVE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>1b1cfdcb-fcab-4ca9-b0e0-b69fe88b65f0</name> + <entityField>SORTING</entityField> </entityFieldLink> </fields> </genericViewTemplate> diff --git a/neonView/CampaignAddParticipantsEdit_view/CampaignAddParticipantsEdit_view.aod b/neonView/CampaignAddParticipantsEdit_view/CampaignAddParticipantsEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..89837dbdc48be1db6a691a421179a59ed82b328b --- /dev/null +++ b/neonView/CampaignAddParticipantsEdit_view/CampaignAddParticipantsEdit_view.aod @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignAddParticipantsEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <isSmall v="true" /> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>campaignDetail</header> + <footer>SelectedCampaignInfosScore</footer> + </headerFooterLayout> + </layout> + <children> + <genericViewTemplate> + <name>campaignDetail</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>4968ad35-3651-4654-a1b0-0e3d0fc6165d</name> + <entityField>CAMPAIGN_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>b9016725-1345-4526-88eb-2b05fb4089c8</name> + <entityField>CAMPAIGNSTEP_ID</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>1bfb0564-f81f-4c60-ae5b-1d9778a519ab</name> + <entityField>#ENTITY</entityField> + <view>campaignParticipantMessage_view</view> + </neonViewReference> + <scoreCardViewTemplate> + <name>SelectedCampaignInfosScore</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>5fb2164c-9433-480a-9d55-726a2b05a549</name> + <entityField>campaignStepCurrentParticipantCount</entityField> + </entityFieldLink> + <entityFieldLink> + <name>d0820091-352f-431f-8d7a-71cb5b576853</name> + <entityField>campaignStepMaxParticipantCount</entityField> + </entityFieldLink> + </fields> + </scoreCardViewTemplate> + </children> +</neonView> diff --git a/neonView/ObjectTreePreview/ObjectTreePreview.aod b/neonView/CampaignCostEdit_view/CampaignCostEdit_view.aod similarity index 56% rename from neonView/ObjectTreePreview/ObjectTreePreview.aod rename to neonView/CampaignCostEdit_view/CampaignCostEdit_view.aod index d7e3916a28c515ec3ae3c150fe75b9b4c6fdbe04..69429a3f8b8cf6be7c4719645893042c7f9499e0 100644 --- a/neonView/ObjectTreePreview/ObjectTreePreview.aod +++ b/neonView/CampaignCostEdit_view/CampaignCostEdit_view.aod @@ -1,30 +1,30 @@ <?xml version="1.0" encoding="UTF-8"?> <neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>ObjectTreePreview</name> + <name>CampaignCostEdit_view</name> <majorModelMode>DISTRIBUTED</majorModelMode> + <isSmall v="true" /> <layout> - <headerFooterLayout> + <boxLayout> <name>layout</name> - </headerFooterLayout> + </boxLayout> </layout> <children> <genericViewTemplate> - <name>Info</name> - <showDrawer v="true" /> - <drawerCaption>Info</drawerCaption> + <name>EditFields</name> + <editMode v="true" /> <entityField>#ENTITY</entityField> <fields> <entityFieldLink> - <name>a7ff1a5c-1ea5-4904-a802-b3da55c07341</name> - <entityField>OBJECTRELATIONTYPEID</entityField> + <name>2937d501-ee30-4535-870b-1d5d4ccc21ba</name> + <entityField>CAMPAIGNSTEP_ID</entityField> </entityFieldLink> <entityFieldLink> - <name>0b612a60-d882-4def-b569-7146e1b1ccb6</name> - <entityField>TARGET_ID</entityField> + <name>bb0e5fb9-e82c-47f7-b6fa-f3e5d4c36649</name> + <entityField>CATEGORY</entityField> </entityFieldLink> <entityFieldLink> - <name>6ed4e675-b1f5-4790-97d1-d015f87f37e4</name> - <entityField>INFO</entityField> + <name>23f1ec3b-91b3-44b6-bf2b-a976da6e3778</name> + <entityField>NET</entityField> </entityFieldLink> </fields> </genericViewTemplate> diff --git a/neonView/CampaignCostExtendedFilter_view/CampaignCostExtendedFilter_view.aod b/neonView/CampaignCostExtendedFilter_view/CampaignCostExtendedFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..94892da46ddd8019cdca05edd461f0b30d7ff61d --- /dev/null +++ b/neonView/CampaignCostExtendedFilter_view/CampaignCostExtendedFilter_view.aod @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignCostExtendedFilter_view</name> + <title>Stop costs</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>CampaignCost</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>5202d410-fc4d-4109-93b1-8743954a25e2</name> + <entityField>CATEGORY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>b3c90c61-9f12-4b1c-9e27-b88abe77fd4e</name> + <entityField>NET</entityField> + </neonTableColumn> + <neonTableColumn> + <name>3dc61836-42a2-4cd9-b87f-14381d72d01a</name> + <entityField>netPerParticipant</entityField> + </neonTableColumn> + <neonTableColumn> + <name>0f42e172-f2d0-45de-8a39-d0e4609b3393</name> + <entityField>countParticipants</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignCostFilter_view/CampaignCostFilter_view.aod b/neonView/CampaignCostFilter_view/CampaignCostFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..8b940f6c9f56259fc92e3c57128293689d54e4ef --- /dev/null +++ b/neonView/CampaignCostFilter_view/CampaignCostFilter_view.aod @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignCostFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>CampaignCost</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>651c5bd4-8f87-40d4-9d1f-38549b1e5fdf</name> + <entityField>CATEGORY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>ee4676af-5bb6-4805-99cb-954ef3b178f0</name> + <entityField>NET</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignCost_view/CampaignCost_view.aod b/neonView/CampaignCost_view/CampaignCost_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..b392d37aa91da50891fa207e1301682c74d93ec1 --- /dev/null +++ b/neonView/CampaignCost_view/CampaignCost_view.aod @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignCost_view</name> + <title>Cost</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <neonViewReference> + <name>127a0cab-ec21-47e6-ba6c-c091cb31c794</name> + <entityField>CampaignCosts</entityField> + <view>CampaignCostFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>5830d1ed-c118-4a37-ab65-4727e8312c0a</name> + <entityField>CampaignStepCosts</entityField> + <view>CampaignGroupedCostFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/CampaignEdit_view/CampaignEdit_view.aod b/neonView/CampaignEdit_view/CampaignEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..5635c65c2e8c9bcfa2347478f9092d682acc849e --- /dev/null +++ b/neonView/CampaignEdit_view/CampaignEdit_view.aod @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignEdit_view</name> + <title>Campaign</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:GROUP</icon> + <isSmall v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Edit</name> + <editMode v="true" /> + <showDrawer v="false" /> + <drawerCaption></drawerCaption> + <entityField>#ENTITY</entityField> + <title>Neue Kampagne</title> + <fields> + <entityFieldLink> + <name>df6356cf-e0bd-4947-8163-736301e622cf</name> + <entityField>NAME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>57992f29-2e55-4f1f-8652-c2817a3b257e</name> + <entityField>EMPLOYEE_CONTACT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>8372cca8-be9f-4910-bebd-64bd41cc7083</name> + <entityField>STATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>114121d3-093a-40e7-9e0e-f187c9eaa5f1</name> + <entityField>DESCRIPTION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignFilter_view/CampaignFilter_view.aod b/neonView/CampaignFilter_view/CampaignFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..76eb3162044f64f8d0e59abdc3a26c8ec8eee3df --- /dev/null +++ b/neonView/CampaignFilter_view/CampaignFilter_view.aod @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignFilter_view</name> + <title>Campaign</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:GROUP</icon> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Campaigns</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>c384e4df-3f29-45b8-b86d-2c6aa253833f</name> + <entityField>NAME</entityField> + <width v="100" /> + </neonTableColumn> + <neonTableColumn> + <name>a66574f0-f104-4579-b1fe-e9f33cd200be</name> + <entityField>DATE_START</entityField> + <width v="100" /> + </neonTableColumn> + <neonTableColumn> + <name>0153b107-544e-4f9a-a734-431d343abc8e</name> + <entityField>DATE_END</entityField> + <width v="100" /> + </neonTableColumn> + <neonTableColumn> + <name>3f075c57-e61a-4db2-a402-141da6bbf29d</name> + <entityField>STATE</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignGroupedCostFilter_view/CampaignGroupedCostFilter_view.aod b/neonView/CampaignGroupedCostFilter_view/CampaignGroupedCostFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..e3bce2264a0cfdf1ab4378f49c5bc7f799c3c5f3 --- /dev/null +++ b/neonView/CampaignGroupedCostFilter_view/CampaignGroupedCostFilter_view.aod @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignGroupedCostFilter_view</name> + <title>Step costs</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <treeTableViewTemplate> + <name>CostTreeTable</name> + <favoriteActionGroup1>alter</favoriteActionGroup1> + <defaultGroupFields> + <element>CAMPAIGNSTEP_ID</element> + </defaultGroupFields> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>457caff8-0403-425f-839c-62e5d05fe3a1</name> + <entityField>CATEGORY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>2adbd887-f1df-43ff-bde9-12c8273af7a9</name> + <entityField>NET</entityField> + </neonTableColumn> + <neonTableColumn> + <name>f8c6439c-9536-477b-af19-26719902e12e</name> + <entityField>netPerParticipant</entityField> + </neonTableColumn> + <neonTableColumn> + <name>8239e81b-d69c-4ea9-b55d-83e79d1693cf</name> + <entityField>countParticipants</entityField> + </neonTableColumn> + </columns> + </treeTableViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignMain_view/CampaignMain_view.aod b/neonView/CampaignMain_view/CampaignMain_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..e35b2793103a62830da3077fb2619a2db03d079d --- /dev/null +++ b/neonView/CampaignMain_view/CampaignMain_view.aod @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignMain_view</name> + <title>Campaign</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>3092912e-212f-4e3a-9cde-dca8219f9ad7</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>3092912e-212f-4e3a-9cde-dca8219f9ad7</name> + <entityField>#ENTITY</entityField> + <view>CampaignPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>ad66a5a6-65fb-45d5-bf62-45661fc16e30</name> + <entityField>CampaignSteps</entityField> + <view>CampaignStepFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>77a8018e-0acc-47fd-b780-28c7fe4f5420</name> + <entityField>CampaignParticipants</entityField> + <view>CampaignParticipantFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>405213b0-e044-4199-9cd3-220c09ac7323</name> + <entityField>#ENTITY</entityField> + <view>CampaignCost_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/CampaignParticipantEdit_view/CampaignParticipantEdit_view.aod b/neonView/CampaignParticipantEdit_view/CampaignParticipantEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..031c3e7314a419cc5390075cd3707bbf0b0ba6d6 --- /dev/null +++ b/neonView/CampaignParticipantEdit_view/CampaignParticipantEdit_view.aod @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignParticipantEdit_view</name> + <title>Add participant to Campaign</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <isSmall v="true" /> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>Generic</header> + <footer>CampaignStepInfos_Score</footer> + </headerFooterLayout> + </layout> + <children> + <genericViewTemplate> + <name>Generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <title></title> + <fields> + <entityFieldLink> + <name>f578bf25-4903-40a9-95c4-5ef673e57f47</name> + <entityField>CAMPAIGN_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>3d03bc59-f0d1-458e-9453-33c00f10c7ce</name> + <entityField>CAMPAIGNSTEP_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>94aa9a4d-e2e5-4a1b-b6f8-4d5aed87fe53</name> + <entityField>CONTACT_ID</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <scoreCardViewTemplate> + <name>CampaignStepInfos_Score</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>22e3fc0a-a3cb-4de0-92a6-9797bf2fafea</name> + <entityField>campaignStepCurrentParticipantCount</entityField> + </entityFieldLink> + <entityFieldLink> + <name>2bbf0c7e-6a47-4c5a-a2ae-b2ee1ee17d50</name> + <entityField>campaignStepMaxParticipantCount</entityField> + </entityFieldLink> + </fields> + </scoreCardViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignParticipantFilter_view/CampaignParticipantFilter_view.aod b/neonView/CampaignParticipantFilter_view/CampaignParticipantFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..cb62a6a056152b5bd834a2fad1f1451cd0c85b1c --- /dev/null +++ b/neonView/CampaignParticipantFilter_view/CampaignParticipantFilter_view.aod @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignParticipantFilter_view</name> + <title></title> + <description></description> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="false" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>ParticipantsTable</name> + <favoriteActionGroup1>FilterViewActionGroup</favoriteActionGroup1> + <favoriteActionGroup2></favoriteActionGroup2> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>85558e09-e1f0-4430-b779-f807f5763808</name> + <entityField>CONTACT_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>fc7ef954-ec19-43cf-bc0c-908760f20144</name> + <entityField>CAMPAIGNSTEP_ID</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignParticipantPreview_view/CampaignParticipantPreview_view.aod b/neonView/CampaignParticipantPreview_view/CampaignParticipantPreview_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..190c14da70064df4cc8189b74fe598b3ffdfb8a4 --- /dev/null +++ b/neonView/CampaignParticipantPreview_view/CampaignParticipantPreview_view.aod @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignParticipantPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Generic</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>012e9f6b-2507-4977-a43d-84aa54be7f6c</name> + <entityField>CONTACT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>1db0779f-5e93-4d80-baad-26c3128f9f5e</name> + <entityField>CONTACTCONTEXT</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignPreview_view/CampaignPreview_view.aod b/neonView/CampaignPreview_view/CampaignPreview_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..a1d6b8859c18d6f830605335621dc7a623376ad4 --- /dev/null +++ b/neonView/CampaignPreview_view/CampaignPreview_view.aod @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignPreview_view</name> + <title>Campaign</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:GROUP</icon> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>Header</header> + <footer>ScoreCard</footer> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>Header</name> + <titleField>NAME</titleField> + <subtitleField>STATE</subtitleField> + <descriptionField>DESCRIPTION</descriptionField> + <entityField>#ENTITY</entityField> + <title></title> + </cardViewTemplate> + <genericViewTemplate> + <name>TimespanGeneric</name> + <entityField>#ENTITY</entityField> + <title>Kampagnenzeitraum</title> + <fields> + <entityFieldLink> + <name>1cf03051-be32-4ff8-9788-6dbc024f086f</name> + <entityField>DATE_START</entityField> + </entityFieldLink> + <entityFieldLink> + <name>a52607c9-da9c-4894-acc6-f31024510d6d</name> + <entityField>DATE_END</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <scoreCardViewTemplate> + <name>ScoreCard</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>df1b29fd-0d20-4be0-b6a3-785dadb8a35b</name> + <entityField>COST</entityField> + </entityFieldLink> + <entityFieldLink> + <name>1cdf9373-790e-47ae-a6ce-d7673cb8cdb2</name> + <entityField>participantCount</entityField> + </entityFieldLink> + <entityFieldLink> + <name>b689668f-1d48-4ff1-95d9-2e217547c853</name> + <entityField>stepCount</entityField> + </entityFieldLink> + </fields> + </scoreCardViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignStepAddParticipants_view/CampaignStepAddParticipants_view.aod b/neonView/CampaignStepAddParticipants_view/CampaignStepAddParticipants_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..6bd40ef6ee02ab8358a37e0856cb5ba04b5d680a --- /dev/null +++ b/neonView/CampaignStepAddParticipants_view/CampaignStepAddParticipants_view.aod @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepAddParticipants_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>CampaignAndStepSelectionGeneric</name> + <editMode v="true" /> + <showDrawer v="false" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>038b2969-8fe9-469f-b823-e7f356b103cd</name> + <entityField>CAMPAIGN_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>62805d6e-3b77-4af3-b282-13720dd615df</name> + <entityField>CAMPAIGNSTEPID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>6c1ec68e-64fd-4eaf-8d74-047e9a8703fa</name> + <entityField>ADDPARTICIPANTSMESSAGE</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignStepAnalysis_view/CampaignStepAnalysis_view.aod b/neonView/CampaignStepAnalysis_view/CampaignStepAnalysis_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..90077e93c4182534c269c047f36dfdef150905ed --- /dev/null +++ b/neonView/CampaignStepAnalysis_view/CampaignStepAnalysis_view.aod @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepAnalysis_view</name> + <title>Auswertung</title> + <description>Charts als Übersicht der Kosten des Kampagnenschrittes</description> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>54</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>79aa1ec7-815a-4494-9d1c-c8116ea8d952</name> + <entityField>NAME</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignStepCurrentMaxParticipants_view/CampaignStepCurrentMaxParticipants_view.aod b/neonView/CampaignStepCurrentMaxParticipants_view/CampaignStepCurrentMaxParticipants_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..2fbca914538b480a897fab10d0da5c2a0976cf6f --- /dev/null +++ b/neonView/CampaignStepCurrentMaxParticipants_view/CampaignStepCurrentMaxParticipants_view.aod @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepCurrentMaxParticipants_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <singleDataChartViewTemplate> + <name>CurrentToMaxParticipantsChart</name> + <chartType>PIE</chartType> + <xAxis>LABEL</xAxis> + <yAxis>COUNT</yAxis> + <entityField>#ENTITY</entityField> + </singleDataChartViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignStepEdit_view/CampaignStepEdit_view.aod b/neonView/CampaignStepEdit_view/CampaignStepEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..7c5c1ed02a31713ae7a8dabcd98416ca0c4573ae --- /dev/null +++ b/neonView/CampaignStepEdit_view/CampaignStepEdit_view.aod @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepEdit_view</name> + <title>Neuer Kampagnenschritt</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <isSmall v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>StepGeneric</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <title>New campaign step</title> + <fields> + <entityFieldLink> + <name>db2e792a-b224-4c93-99ef-96c54c5c703f</name> + <entityField>NAME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>e16e3f66-7e80-4796-acca-6018e86e1b88</name> + <entityField>EMPLOYEE_CONTACT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ea21096b-5885-4f5e-8bd6-c45275b25036</name> + <entityField>DATE_START</entityField> + </entityFieldLink> + <entityFieldLink> + <name>95e538ba-686b-4791-87f0-cd569b8cb456</name> + <entityField>DATE_END</entityField> + </entityFieldLink> + <entityFieldLink> + <name>80c1df2f-2458-4e4c-a6da-9ce56b17bbf0</name> + <entityField>STATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>2447348f-4ed9-4b8c-8b0e-94e663fd781d</name> + <entityField>MAXPARTICIPANTS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>981cf207-6e9b-428e-bd81-0d76b4b2f180</name> + <entityField>DESCRIPTION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignStepFilter_view/CampaignStepFilter_view.aod b/neonView/CampaignStepFilter_view/CampaignStepFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..5b4e3ac8b18b2f0ec22163c47bbf30f0a94c03cf --- /dev/null +++ b/neonView/CampaignStepFilter_view/CampaignStepFilter_view.aod @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepFilter_view</name> + <title>Kampagnenschritte</title> + <description></description> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>StepsTable</name> + <autoNewRow v="true" /> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>5d52aaef-ec22-4c45-9ac7-eaec5d967283</name> + <entityField>SORTING</entityField> + </neonTableColumn> + <neonTableColumn> + <name>d9ca59de-1441-494a-91f0-1cff91c575de</name> + <entityField>NAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>0ffcc021-2b58-49f6-91d0-21f4029f744f</name> + <entityField>DATE_START</entityField> + </neonTableColumn> + <neonTableColumn> + <name>2507d34f-3bc2-426c-9acc-d8ae146daee8</name> + <entityField>DATE_END</entityField> + </neonTableColumn> + <neonTableColumn> + <name>4ee7481b-c629-4da2-8d7a-b33e2e10821e</name> + <entityField>CurrentMaxParticipantsInfo</entityField> + </neonTableColumn> + <neonTableColumn> + <name>9fa9d9f4-5851-4125-ba59-09aa2fb07f89</name> + <entityField>STATE</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignStepMain_view/CampaignStepMain_view.aod b/neonView/CampaignStepMain_view/CampaignStepMain_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..ba87160a9b109f44b7bcc99017b7c48ec0715d8d --- /dev/null +++ b/neonView/CampaignStepMain_view/CampaignStepMain_view.aod @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>3dfd5e35-275b-412f-8729-2a59e3a2c025</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>3dfd5e35-275b-412f-8729-2a59e3a2c025</name> + <entityField>#ENTITY</entityField> + <view>CampaignStepPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>f1a098ae-1516-49bc-9982-8f96ec0dbe2b</name> + <entityField>CampaignParticipantsConsumer</entityField> + <view>CampaignParticipantFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>dd0cb348-669f-431a-ba71-65e9a651c922</name> + <entityField>#ENTITY</entityField> + <view>CampaignStepAnalysis_view</view> + </neonViewReference> + <neonViewReference> + <name>a5a2f431-9c55-45d7-8765-100e2d5dbb81</name> + <entityField>CampaignStepCosts</entityField> + <view>CampaignCostExtendedFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod b/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..f3de7b97b364387b4ccc0e4782dcca1a011bf9c0 --- /dev/null +++ b/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>CampaignStepCard</header> + <footer>KeyScoreInfos</footer> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>CampaignStepCard</name> + <titleField>NAME</titleField> + <subtitleField>STATE</subtitleField> + <descriptionField>DESCRIPTION</descriptionField> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>CampaignStepInfosGeneric</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>4cbf0232-1dab-47f9-b62a-b539d5035c53</name> + <entityField>DATE_START</entityField> + </entityFieldLink> + <entityFieldLink> + <name>677875bc-6b50-4dd8-b8bf-eba5c0e94c56</name> + <entityField>DATE_END</entityField> + </entityFieldLink> + <entityFieldLink> + <name>a4dc1652-1c0c-4ca1-8f53-58e0b0c18177</name> + <entityField>CAMPAIGN_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>1a30ddde-aaaf-43c5-ab4c-52581175ff12</name> + <entityField>CampaignStatus</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <scoreCardViewTemplate> + <name>KeyScoreInfos</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>0af45fb6-7ce8-493e-bdd8-17c4a06aa4f7</name> + <entityField>COST</entityField> + </entityFieldLink> + <entityFieldLink> + <name>dc39a199-a5c1-4a8e-81cc-a85bfca63a9f</name> + <entityField>CurrentMaxParticipantsInfo</entityField> + </entityFieldLink> + </fields> + </scoreCardViewTemplate> + </children> +</neonView> diff --git a/neonView/IndexSearchView/IndexSearchView.aod b/neonView/IndexSearchView/IndexSearchView.aod new file mode 100644 index 0000000000000000000000000000000000000000..39cd3e719a428a03ca082d815e5495936be68857 --- /dev/null +++ b/neonView/IndexSearchView/IndexSearchView.aod @@ -0,0 +1,32 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>IndexSearchView</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <dashletConfigurations> + <neonDashletConfiguration> + <name>IndexSearchDashlet</name> + <title>Indexsearch</title> + <fragment>IndexSearchContext/full</fragment> + <storeRoles /> + <icon>VAADIN:SEARCH</icon> + <categories> + <neonDashletCategory> + <name>indexsearch</name> + <title>Indexsearch</title> + </neonDashletCategory> + </categories> + </neonDashletConfiguration> + </dashletConfigurations> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <indexSearchViewTemplate> + <name>IndexSearchTemplate</name> + <entityField>INDEXSEARCHFIELD</entityField> + <title></title> + </indexSearchViewTemplate> + </children> +</neonView> diff --git a/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod b/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod index 80ba451c5ede8eaffae1986389fe751dea73ae1c..e638ae7abde4ea41370b881058de6ddf60251636 100644 --- a/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod +++ b/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod @@ -9,15 +9,23 @@ </groupLayout> </layout> <children> - <treeViewTemplate> - <name>EntriesTreetable</name> - <titleField>TITLE</titleField> - <descriptionField>KEYID</descriptionField> + <treeTableViewTemplate> + <name>EntriesTreeTable</name> <defaultGroupFields> <element>CONTAINER</element> </defaultGroupFields> <entityField>#ENTITY</entityField> - </treeViewTemplate> + <columns> + <neonTableColumn> + <name>aa5612b4-997e-4f0f-8fb1-91e18e32051d</name> + <entityField>TITLE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>6100879d-dc6a-4c7e-b750-f5b7e627f48a</name> + <entityField>KEYID</entityField> + </neonTableColumn> + </columns> + </treeTableViewTemplate> <tableViewTemplate> <name>EntriesTable</name> <entityField>#ENTITY</entityField> diff --git a/neonView/NotificationFilter_view/NotificationFilter_view.aod b/neonView/NotificationFilter_view/NotificationFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..11a8ea6866cb1b0fdd61e0fe94caca420a868eed --- /dev/null +++ b/neonView/NotificationFilter_view/NotificationFilter_view.aod @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>NotificationFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Table</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>0ed20b46-be6a-424c-a583-a3f7496ec3f9</name> + <entityField>ICON</entityField> + </neonTableColumn> + <neonTableColumn> + <name>3bf425ed-227c-4768-b339-4794aa0d6063</name> + <entityField>CAPTION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>ff33a6c1-7ac6-4acd-a083-e56a36f89977</name> + <entityField>DESCRIPTION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>63df503b-2502-4123-917a-77c932f61268</name> + <entityField>ORIGINATORNAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>5cb09de4-4413-41e5-8a7c-4970a3cf6a62</name> + <entityField>STATE</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/NotificationPreview_view/NotificationPreview_view.aod b/neonView/NotificationPreview_view/NotificationPreview_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..4f30158ba8c1271b41d2999ad3514e6e71d4cdac --- /dev/null +++ b/neonView/NotificationPreview_view/NotificationPreview_view.aod @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>NotificationPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="false" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <cardViewTemplate> + <name>Card</name> + <iconField>#ICON</iconField> + <titleField>CAPTION</titleField> + <descriptionField>DESCRIPTION</descriptionField> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + </children> +</neonView> diff --git a/neonView/OfferEdit_view/OfferEdit_view.aod b/neonView/OfferEdit_view/OfferEdit_view.aod index 60e014f44a74e9ab46a5f84f9352401b2e8bab7b..ba2428898be40760f5ee4785e95fc00e47a95725 100644 --- a/neonView/OfferEdit_view/OfferEdit_view.aod +++ b/neonView/OfferEdit_view/OfferEdit_view.aod @@ -70,5 +70,10 @@ </entityFieldLink> </fields> </genericViewTemplate> + <neonViewReference> + <name>52f93604-4ec3-427f-b220-27ab63a30560</name> + <entityField>Attributes</entityField> + <view>AttributeRelationEdit_view</view> + </neonViewReference> </children> </neonView> diff --git a/neonView/OfferMain_view/OfferMain_view.aod b/neonView/OfferMain_view/OfferMain_view.aod index ea4a89a44810d450579b611e28b0e28cf923ff86..47f2a91194206929a0f2c663bb747f096a09e755 100644 --- a/neonView/OfferMain_view/OfferMain_view.aod +++ b/neonView/OfferMain_view/OfferMain_view.aod @@ -34,6 +34,11 @@ <entityField>Tasks</entityField> <view>TaskFilter_view</view> </neonViewReference> + <neonViewReference> + <name>bc335644-c046-4362-9c7f-db6baa0b7394</name> + <entityField>AttributeTree</entityField> + <view>AttributeRelationTree_view</view> + </neonViewReference> <neonViewReference> <name>e96f2fec-1a98-4380-895a-82ab78ba408a</name> <entityField>Documents</entityField> diff --git a/neonView/OfferPreview_view/OfferPreview_view.aod b/neonView/OfferPreview_view/OfferPreview_view.aod index 9b73e6cfe911f0906c5aed7bc0eb83f034975aca..a28c644d44eab76093e06b9f42354d5dfc181606 100644 --- a/neonView/OfferPreview_view/OfferPreview_view.aod +++ b/neonView/OfferPreview_view/OfferPreview_view.aod @@ -12,7 +12,7 @@ <cardViewTemplate> <name>Header</name> <iconField>IMAGE</iconField> - <titleField>Offer_OfferCode_VersNr_fieldgroup</titleField> + <titleField>OfferCode_VersNr_fieldgroup</titleField> <descriptionField>CONTACT_ID</descriptionField> <favoriteAction1>newActivity</favoriteAction1> <entityField>#ENTITY</entityField> diff --git a/neonView/OfferitemFilter_view/OfferitemFilter_view.aod b/neonView/OfferitemFilter_view/OfferitemFilter_view.aod index 782aa68ca11efa22d05bcf1a3fba67d2720e4ac2..7071404ce53d0a5ace58c32883ec2581efc4dfc3 100644 --- a/neonView/OfferitemFilter_view/OfferitemFilter_view.aod +++ b/neonView/OfferitemFilter_view/OfferitemFilter_view.aod @@ -9,48 +9,48 @@ </boxLayout> </layout> <children> - <tableViewTemplate> - <name>Offeritems</name> - <autoNewRow v="true" /> + <treeTableViewTemplate> + <name>OfferitemsTreeTable</name> + <parentField>ASSIGNEDTO</parentField> <entityField>#ENTITY</entityField> <columns> <neonTableColumn> - <name>8c74810d-d127-4e64-8fbf-1b3db1835232</name> + <name>91e85f61-5e5d-48f8-aeb1-a5740ec07e25</name> <entityField>ITEMPOSITION</entityField> </neonTableColumn> <neonTableColumn> - <name>545f79bf-2fee-4112-9541-0889d0e514eb</name> + <name>0d896874-cdb1-42bb-8a47-8ee61def6177</name> <entityField>PRODUCT_ID</entityField> </neonTableColumn> <neonTableColumn> - <name>2a907da4-b48d-4933-bc17-a40e7d4556f9</name> + <name>0b493fd0-d94d-4bfa-8533-ff2ad4af7ffb</name> <entityField>QUANTITY</entityField> </neonTableColumn> <neonTableColumn> - <name>a8dcb2bb-bb09-4a6e-b0f0-1b4d1111eb22</name> + <name>917406b8-f030-417d-a961-f391655526ec</name> <entityField>UNIT</entityField> </neonTableColumn> <neonTableColumn> - <name>33ef0703-d4ea-4187-b555-648a1733ee99</name> + <name>14da5a9f-4fed-4977-aec0-823ab665e1cb</name> <entityField>PRICE</entityField> </neonTableColumn> <neonTableColumn> - <name>61a39c6b-f7dd-487c-bc5f-c2e95376ec37</name> + <name>25d9f682-eb5f-4d96-a040-c3f4522affe7</name> <entityField>DISCOUNT</entityField> </neonTableColumn> <neonTableColumn> - <name>bfd34c94-1a5f-4caf-ae6e-2c09375c023c</name> + <name>9e2bcb7e-b042-4f13-946c-0a6422412975</name> <entityField>VAT</entityField> </neonTableColumn> <neonTableColumn> - <name>89fd18d0-f6ee-4323-9277-464dee6da625</name> + <name>7a3b3ce6-a651-4a2a-acfa-0e990fb0b041</name> <entityField>OPTIONAL</entityField> </neonTableColumn> <neonTableColumn> - <name>60a36c38-103f-4fdb-9e8a-b8fd6d441f14</name> + <name>e43213db-8867-495f-8305-3472a8906222</name> <entityField>TotalPrice</entityField> </neonTableColumn> </columns> - </tableViewTemplate> + </treeTableViewTemplate> </children> </neonView> diff --git a/neonView/OfferitemPreview_view/OfferitemPreview_view.aod b/neonView/OfferitemPreview_view/OfferitemPreview_view.aod index c93ad8c9ef329db4797b3726f77dafbf10044c28..23999712d4bdbc25fa2fb3171d39e082a6744284 100644 --- a/neonView/OfferitemPreview_view/OfferitemPreview_view.aod +++ b/neonView/OfferitemPreview_view/OfferitemPreview_view.aod @@ -24,18 +24,38 @@ <name>3b207cf2-c621-4e7d-b7aa-32feace5fe04</name> <entityField>INFO</entityField> </entityFieldLink> - <entityFieldLink> - <name>9868560c-41c7-4641-b0f1-627a61b796b3</name> - <entityField>TotalPrice</entityField> - </entityFieldLink> <entityFieldLink> <name>c0c04d1c-90a7-4c0b-9323-1f0783757987</name> <entityField>GROUPCODEID</entityField> </entityFieldLink> + <entityFieldLink> + <name>e792d720-187f-4aa1-917c-1c8065222b72</name> + <entityField>QUANTITY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>9e25804b-198d-4505-b276-62bf58482dc6</name> + <entityField>UNIT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>b503187b-db64-4d2f-839f-9e812ee5163e</name> + <entityField>PRICE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>f8043352-f756-4854-9caa-a9aea073e4fe</name> + <entityField>DISCOUNT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>89b426b0-962f-4483-87c3-e6c0e0d0d651</name> + <entityField>VAT</entityField> + </entityFieldLink> <entityFieldLink> <name>e25386dc-a740-4f93-a1f0-32317cf5a36a</name> <entityField>OPTIONAL</entityField> </entityFieldLink> + <entityFieldLink> + <name>9868560c-41c7-4641-b0f1-627a61b796b3</name> + <entityField>TotalPrice</entityField> + </entityFieldLink> </fields> </genericViewTemplate> </children> diff --git a/neonView/OrderEdit_view/OrderEdit_view.aod b/neonView/OrderEdit_view/OrderEdit_view.aod index 8ab4459538bc6228271a07028817648be240f7a8..2132b516032ca81b2c1e714ead5d08f216cf47d5 100644 --- a/neonView/OrderEdit_view/OrderEdit_view.aod +++ b/neonView/OrderEdit_view/OrderEdit_view.aod @@ -54,5 +54,10 @@ </entityFieldLink> </fields> </genericViewTemplate> + <neonViewReference> + <name>72e2cb25-23e0-4f52-87a3-7c1bd80e99ec</name> + <entityField>Attributes</entityField> + <view>AttributeRelationEdit_view</view> + </neonViewReference> </children> </neonView> diff --git a/neonView/OrderMain_view/OrderMain_view.aod b/neonView/OrderMain_view/OrderMain_view.aod index 77bbd6830b3053237835359ff55114deae8125ee..bc76e90e0617ea97e8df8b7e2a17aa0555055a0e 100644 --- a/neonView/OrderMain_view/OrderMain_view.aod +++ b/neonView/OrderMain_view/OrderMain_view.aod @@ -34,6 +34,11 @@ <entityField>#ENTITY</entityField> <view>OrderDetail_view</view> </neonViewReference> + <neonViewReference> + <name>1e0af6a9-9bb6-47b5-944b-636d21ac74d2</name> + <entityField>AttributeTree</entityField> + <view>AttributeRelationTree_view</view> + </neonViewReference> <neonViewReference> <name>b3014999-da86-45ae-86ae-feb738d62906</name> <entityField>Documents</entityField> diff --git a/neonView/OrderPreview_view/OrderPreview_view.aod b/neonView/OrderPreview_view/OrderPreview_view.aod index d9aa97ac59cc3bec65c625d8cc72bcb3fa7f37dd..224df4dc3dffd9d2668c7e5453be2c7dfb69507e 100644 --- a/neonView/OrderPreview_view/OrderPreview_view.aod +++ b/neonView/OrderPreview_view/OrderPreview_view.aod @@ -12,7 +12,7 @@ <cardViewTemplate> <name>Header</name> <iconField>IMAGE</iconField> - <titleField>Order_OrderCode_VersNr_fieldgroup</titleField> + <titleField>OrderCode_VersNr_fieldgroup</titleField> <descriptionField>CONTACT_ID</descriptionField> <favoriteAction1>newActivity</favoriteAction1> <entityField>#ENTITY</entityField> diff --git a/neonView/OrganisationFilter_view/OrganisationFilter_view.aod b/neonView/OrganisationFilter_view/OrganisationFilter_view.aod index 0be0dd2053fa814caca8b0954dac6a4380772042..42acbc4358c5d947174cf4c9740b0bd95dfb886d 100644 --- a/neonView/OrganisationFilter_view/OrganisationFilter_view.aod +++ b/neonView/OrganisationFilter_view/OrganisationFilter_view.aod @@ -32,6 +32,7 @@ <children> <tableViewTemplate> <name>Organisations</name> + <favoriteActionGroup1>campaignActionGroup</favoriteActionGroup1> <entityField>#ENTITY</entityField> <columns> <neonTableColumn> diff --git a/neonView/PersonFilter_view/PersonFilter_view.aod b/neonView/PersonFilter_view/PersonFilter_view.aod index fe94380f9869ce7deafca8ce11d3541eeec36754..8eacdad7de7323e951cb19a53f568e9883fb908f 100644 --- a/neonView/PersonFilter_view/PersonFilter_view.aod +++ b/neonView/PersonFilter_view/PersonFilter_view.aod @@ -32,6 +32,8 @@ <children> <tableViewTemplate> <name>Persons</name> + <favoriteActionGroup1>campaignActionGroup</favoriteActionGroup1> + <hideActions v="false" /> <showHeader v="true" /> <entityField>#ENTITY</entityField> <columns> diff --git a/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod b/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod index b225f31a95b5abf6de65302cf84b5d1e777e836a..19a4436db74b4df7216d312685839c1b7bda5ec4 100644 --- a/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod +++ b/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod @@ -11,7 +11,6 @@ <children> <tableViewTemplate> <name>Prices</name> - <autoNewRow v="true" /> <entityField>#ENTITY</entityField> <columns> <neonTableColumn> diff --git a/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod b/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod index 3f9f33250c400cb0f9b755e87e229f788ff579c8..9d9bef97dfc888c3202b6d6c207c3d3cbf4bf53c 100644 --- a/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod +++ b/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod @@ -10,45 +10,48 @@ <children> <tableViewTemplate> <name>PriceRelations</name> - <autoNewRow v="true" /> <entityField>#ENTITY</entityField> <columns> <neonTableColumn> - <name>bc7ca35e-c454-4cc0-9b2e-0656e03f1f65</name> + <name>44311686-a24a-4cf0-87a0-6e354b3f457a</name> <entityField>IMAGE</entityField> </neonTableColumn> <neonTableColumn> - <name>9b809450-cbe5-40f3-8d64-b4a5bac5eb5b</name> + <name>695ce7be-d738-48a9-833d-e8815c6eff74</name> <entityField>PRODUCT_ID</entityField> </neonTableColumn> <neonTableColumn> - <name>fd5ab54d-439c-4836-a761-3af16e437a0e</name> + <name>472a96ca-10ff-49c7-b2ae-6550e04c4e6f</name> <entityField>VALID_FROM</entityField> </neonTableColumn> <neonTableColumn> - <name>da4728b2-d5fe-4df1-84e5-a77a653dc558</name> + <name>56b22986-0b94-4e7f-a0e8-c2a0a7281088</name> <entityField>VALID_TO</entityField> </neonTableColumn> <neonTableColumn> - <name>4fd6845e-cb3a-4fe3-8900-3b58a86cb374</name> - <entityField>FROMQUANTITY</entityField> + <name>56902ebb-b48b-42f9-b867-fb2b07527461</name> + <entityField>PRICE</entityField> </neonTableColumn> <neonTableColumn> - <name>1cf65759-0c48-4d3d-8bd1-ddf0645ded43</name> - <entityField>PRICELIST</entityField> + <name>8879e46d-fa53-4769-8bcf-15b65fdf9967</name> + <entityField>CURRENCY</entityField> </neonTableColumn> <neonTableColumn> - <name>3ed800e0-a630-42b4-9dda-288ab5eefc69</name> - <entityField>PRICE</entityField> + <name>15a669d9-b089-4134-89a0-129de6e1e68c</name> + <entityField>BUYSELL</entityField> </neonTableColumn> <neonTableColumn> - <name>20efd64c-297d-4774-b020-437d3610e798</name> - <entityField>CURRENCY</entityField> + <name>e27ad433-ca4f-4a54-8722-75c9055a202b</name> + <entityField>FROMQUANTITY</entityField> </neonTableColumn> <neonTableColumn> - <name>787d2cce-ddb0-4d7e-8df4-5675e0d96d76</name> + <name>981f29b1-b4c5-4591-8064-21a72f339179</name> <entityField>VAT</entityField> </neonTableColumn> + <neonTableColumn> + <name>51a923d8-3893-409b-869e-a4ad9704aa03</name> + <entityField>PRICELIST</entityField> + </neonTableColumn> </columns> </tableViewTemplate> </children> diff --git a/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod b/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod index 5c2db6962a97eead75e68fdae5689a31deca62e5..c047336f190676a4a78f522967c83665db265246 100644 --- a/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod +++ b/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod @@ -62,5 +62,10 @@ </entityFieldLink> </fields> </genericViewTemplate> + <neonViewReference> + <name>fc97f8c8-ffd0-4d67-b331-eab37ef1dc2b</name> + <entityField>Attributes</entityField> + <view>AttributeRelationEdit_view</view> + </neonViewReference> </children> </neonView> diff --git a/neonView/SalesprojectMain_view/SalesprojectMain_view.aod b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod index 2ac8547b5b4d4913bfdc9c98b2e4e1f8468f406a..649798e53651fcf3339727f5098a61c702bbebc9 100644 --- a/neonView/SalesprojectMain_view/SalesprojectMain_view.aod +++ b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod @@ -59,6 +59,11 @@ <entityField>Timetrackings</entityField> <view>TimetrackingFilter_view</view> </neonViewReference> + <neonViewReference> + <name>9c98cef0-f9dd-40a7-a9c9-eb4e741286d2</name> + <entityField>AttributeTree</entityField> + <view>AttributeRelationTree_view</view> + </neonViewReference> <neonViewReference> <name>0a3f2444-8d91-41e3-8f4d-19a6013c29c5</name> <entityField>Documents</entityField> diff --git a/neonView/TaskFilter_view/TaskFilter_view.aod b/neonView/TaskFilter_view/TaskFilter_view.aod index 68e0e642b0fa2b04a6218fcba22ee9ac56a7b70d..268c1b42d833821c2443c0d287c7ce8537c5f3c1 100644 --- a/neonView/TaskFilter_view/TaskFilter_view.aod +++ b/neonView/TaskFilter_view/TaskFilter_view.aod @@ -68,13 +68,32 @@ </neonTableColumn> </columns> </tableViewTemplate> - <treeViewTemplate> - <name>TasksTree</name> - <titleField>SUBJECT_DETAILS</titleField> - <descriptionField>DESCRIPTION</descriptionField> - <iconField>PRIORITY_ICON</iconField> - <defaultGroupFields /> + <treeTableViewTemplate> + <name>TasksTreeTable</name> <entityField>#ENTITY</entityField> - </treeViewTemplate> + <columns> + <neonTableColumn> + <name>3cd319ea-5a06-409c-a7ce-1c87beff62d2</name> + <entityField>PRIORITY_ICON</entityField> + </neonTableColumn> + <neonTableColumn> + <name>591cd079-a8e9-49aa-8a2d-afb643aef079</name> + <entityField>SUBJECT</entityField> + <expandRatio v="100" /> + </neonTableColumn> + <neonTableColumn> + <name>5d11add4-d939-4c8e-9633-efd0c2991837</name> + <entityField>PRIORITY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>abba0283-ace9-41f2-8b98-df149c2feaf9</name> + <entityField>MATURITY_DATE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>b92dba41-58a2-4c95-aeb4-235c5eaffad7</name> + <entityField>STATUS</entityField> + </neonTableColumn> + </columns> + </treeTableViewTemplate> </children> </neonView> diff --git a/neonView/campaignParticipantMessage_view/campaignParticipantMessage_view.aod b/neonView/campaignParticipantMessage_view/campaignParticipantMessage_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..2ed214ff37cc2b033dba2655cd3f551364924647 --- /dev/null +++ b/neonView/campaignParticipantMessage_view/campaignParticipantMessage_view.aod @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>campaignParticipantMessage_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <noneLayout> + <name>layout</name> + </noneLayout> + </layout> + <children> + <genericViewTemplate> + <name>Message_view</name> + <hideLabels v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>bc1db862-a448-47f6-b534-2ce28dc993a8</name> + <entityField>campaignParticipantMessage</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/process/Attribute_lib/process.js b/process/Attribute_lib/process.js index e7007a1a0d6df39c40565250f87f9f2f603f8775..b3eee446c71250c1b804544796b8c70dea7852c4 100644 --- a/process/Attribute_lib/process.js +++ b/process/Attribute_lib/process.js @@ -23,10 +23,11 @@ function AttributeUtil () {} * @param {String} pObjectType the object type (= context) * @param {boolean} [pIncludeGroups=false] * @param {String[]} [pFilteredAttributeIds=[]] Whitleist of attribute ids + * @param {Object} [pAttributeCount=null] Object with attribute ids and their count * * @return {String[]} array of attributeIds */ -AttributeUtil.getPossibleAttributes = function (pObjectType, pIncludeGroups, pFilteredAttributeIds) +AttributeUtil.getPossibleAttributes = function (pObjectType, pIncludeGroups, pFilteredAttributeIds, pAttributeCount) { if (pObjectType == null) return []; @@ -37,6 +38,18 @@ AttributeUtil.getPossibleAttributes = function (pObjectType, pIncludeGroups, pFi .andPrepare("AB_ATTRIBUTEUSAGE.OBJECT_TYPE", pObjectType) .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.COMBOVALUE, "# <> ?") .and("ATTRIBUTE_ACTIVE = 1"); + + if (pAttributeCount) + { + for (let attributeId in pAttributeCount) + { + attrCond.andSqlCondition( + SqlCondition.begin() + .orPrepare("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", attributeId, "# != ?") + .orPrepare("AB_ATTRIBUTEUSAGE.MAX_COUNT", pAttributeCount[attributeId], "# > ?") + ); + } + } if (pFilteredAttributeIds != undefined && pFilteredAttributeIds.length > 0) { @@ -320,6 +333,34 @@ AttributeRelationUtils.setAttribute = function () //TODO: implement } +/** + * adds rows for attributes with min_count > 0 + * + * @param {String} pObjectType the object type + * @param {String} pConsumer the name of the attribute relation consumer + */ +AttributeRelationUtils.presetMandatoryAttributes = function (pObjectType, pConsumer) +{ + var mandatoryAttributes = db.table( + SqlCondition.begin() + .andPrepare("AB_ATTRIBUTEUSAGE.OBJECT_TYPE", pObjectType) + .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.COMBOVALUE, "# <> ?") + .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.GROUP, "# <> ?") + .and("ATTRIBUTE_ACTIVE = 1") + .and("MIN_COUNT > 0") + .buildSql("select AB_ATTRIBUTE_ID, MIN_COUNT from AB_ATTRIBUTEUSAGE " + + "join AB_ATTRIBUTE on AB_ATTRIBUTE_ID = AB_ATTRIBUTEID") + ); + mandatoryAttributes.forEach(function (usage) + { + //adding an attribute more than 20 times would be too much (having a min_count > 20 is very unlikely) + for (let i = 0; i < usage[1] && i < 20; i++) + neon.addRecord(null, pConsumer, { + "AB_ATTRIBUTE_ID" : usage[0] + }); + }); +} + /*********************************************************************************************************************/ diff --git a/process/Campaign_lib/Campaign_lib.aod b/process/Campaign_lib/Campaign_lib.aod new file mode 100644 index 0000000000000000000000000000000000000000..6cff8443c7403caa3bbdc859ee356e248dc54018 --- /dev/null +++ b/process/Campaign_lib/Campaign_lib.aod @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> + <name>Campaign_lib</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/Campaign_lib/process.js</process> + <variants> + <element>LIBRARY</element> + </variants> +</process> diff --git a/process/Campaign_lib/process.js b/process/Campaign_lib/process.js new file mode 100644 index 0000000000000000000000000000000000000000..d4932b0cc7df8f6d96b58e5e6588382503ed4d85 --- /dev/null +++ b/process/Campaign_lib/process.js @@ -0,0 +1,243 @@ +import("system.logging"); +import("system.vars"); +import("system.db"); +import("system.neon"); +import("Sql_lib"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +/** + * Methods for campaignmanagement. + * Do not create an instance of this! + * + * @class + */ +function CampaignUtils() {} + +/** + * Add one Contact (Person or Organistaion) to a Campaign + * + * @param {String} pContactId req ContactId + */ +CampaignUtils.addParticipant = function(pContactId) +{ + _CampaignUtils._openAddParticipantContext("CampaignParticipant", pContactId, "ContactId_param", "CampaignParticipantEdit_view"); +} + +/** + * Add many Contacts (Person or Organistaion) to a Campaign + * + * @param {String} pRowIds req ContactIds + */ +CampaignUtils.addParticipants = function(pRowIds) +{ + _CampaignUtils._openAddParticipantContext("CampaignAddParticipants", pRowIds, "campaignParticipants_param", "CampaignAddParticipantsEdit_view"); +} + +/** + * todo + */ +CampaignUtils.getCampaignNameById = function(pCampaignId) +{ + let selectQuery = "select CAMPAIGN.NAME from CAMPAIGN"; + let conditionField = "CAMPAIGN.CAMPAIGNID"; + let defaultValue = ""; + + return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignId, defaultValue); +} + +/** + * todo + */ +CampaignUtils.getCampaignStepNameById = function(pCampaignStepId) +{ + let selectQuery = "select CAMPAIGNSTEP.NAME from CAMPAIGNSTEP"; + let conditionField = "CAMPAIGNSTEP.CAMPAIGNSTEPID"; + let defaultValue = ""; + + return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignStepId, defaultValue); +} + +/** + * todo + */ +CampaignUtils.getParticipantCountForStep = function(pCampaignStepId) +{ + let selectQuery = "select count(*) from CAMPAIGNPARTICIPANT"; + let conditionField = "CAMPAIGNPARTICIPANT.CAMPAIGNSTEP_ID"; + let defaultValue = 0; + + return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignStepId, defaultValue); +} + +/** + * todo + */ +CampaignUtils.getParticipantCount = function(pCampaignId) +{ + let selectQuery = "select count(*) from CAMPAIGNPARTICIPANT"; + let conditionField = "CAMPAIGNPARTICIPANT.CAMPAIGN_ID"; + let defaultValue = 0; + + return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignId, defaultValue); +} + +/** + * todo + */ +CampaignUtils.getMaxParticipantCountForStep = function(pCampaignStepId) +{ + let selectQuery = "select MAXPARTICIPANTS from CAMPAIGNSTEP"; + let conditionField = "CAMPAIGNSTEP.CAMPAIGNSTEPID"; + let defaultValue = 0; + + return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignStepId, defaultValue); +} + +/** + * todo + */ +CampaignUtils.getStepCount = function(pCampaignId) +{ + let selectQuery = "select count(*) from CAMPAIGNSTEP"; + let conditionField = "CAMPAIGNSTEP.CAMPAIGN_ID"; + let defaultValue = 0; + + return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignId, defaultValue); +} + +/** + * todo + */ +CampaignUtils.getCampaignStatusByCampaignId = function(pCampaignId) +{ + let selectQuery = "select CAMPAIGN.STATE from CAMPAIGN"; + let conditionField = "CAMPAIGN.CAMPAIGNID"; + let defaultValue = ""; + + let campaignState = $KeywordRegistry.campaignState(); + let statusId = _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignId, defaultValue); + return KeywordUtils.getViewValue(campaignState, statusId); +} + +/** + * todo + */ +CampaignUtils.createLogEntry = function(pCampaignId, pCampaignStepId, pContactId, pCampaignParticipantId) +{ + let colsCampaignParticipantLog = CampaignUtils.getParticipantLogInsertColumnNames(); + + let valsCampaignParticipantLog = new Array(pCampaignId, pCampaignStepId, pContactId, pCampaignParticipantId, vars.get("$sys.user"), vars.get("$sys.date")); + + let rows = db.insertData("CAMPAIGNPARTICIPANTLOG", colsCampaignParticipantLog, null, valsCampaignParticipantLog); + return (rows == 1); +} + +/** + * todo + */ +CampaignUtils.getParticipantLogInsertColumnNames = function() +{ + return ["CAMPAIGNPARTICIPANT_ID", "CAMPAIGN_ID", "CAMPAIGNSTEP_ID", "CAMPAIGNPARTICIPANTLOGID", "USER_NEW", "DATE_NEW"]; +} + +/** + * todo + */ +CampaignUtils.openSetCampaignStepView = function(pParticipantIds, pCampaignId, pCampaignStepId) +{ + var params = {}; + + params["campaignParticipants_param"] = pParticipantIds; + params["currentCampaignId_param"] = pCampaignId; + params["currentCampaignStepId_param"] = pCampaignStepId; + params["isUpdate_param"] = true; + + + + neon.openContext("CampaignAddParticipants", "CampaignAddParticipantsEdit_view", null, neon.OPERATINGSTATE_NEW, params); +} + +/** + * todo + */ +CampaignUtils.getDefaultCampaignStep = function(pCampaignId) +{ + let selectQuery = "select CAMPAIGNSTEPID from CAMPAIGNSTEP " + + "where CAMPAIGNSTEP.CAMPAIGN_ID = '" + pCampaignId + "' " + + "order by CAMPAIGNSTEP.SORTING asc " + + "fetch first 1 rows only"; + + + return db.cell(selectQuery) +} + +/** + * todo + */ +CampaignUtils.getCampaignStartDate = function(pCapmaignId) +{ + var campaignIdCondition = SqlCondition.begin() + .andPrepare("CAMPAIGNSTEP.CAMPAIGN_ID", pCapmaignId); + // TODO: Fetch first 1 rows only will not work with all dbms! Maybe just remove it, because db.cell always uses only the first row + return db.cell(campaignIdCondition.buildSql("SELECT DATE_START, SORTING FROM ADITO.CAMPAIGNSTEP", "1=2", "order by SORTING ASC FETCH FIRST 1 ROWS ONLY")); +} + +/** + * todo + */ +CampaignUtils.getCampaignEndDate = function(pCapmaignId) +{ + var campaignIdCondition = SqlCondition.begin() + .andPrepare("CAMPAIGNSTEP.CAMPAIGN_ID", pCapmaignId); + + // TODO: Fetch first 1 rows only will not work with all dbms! Maybe just remove it, because db.cell always uses only the first row + return db.cell(campaignIdCondition.buildSql("SELECT DATE_END, SORTING FROM CAMPAIGNSTEP", "1=2", "order by SORTING ASC FETCH FIRST 1 ROWS ONLY")); +} + +/** + * Methods for campaignmanagement. + * Do not create an instance of this! + * + * @ignore + * @class + */ +function _CampaignUtils() {} + +/** + * Open EditView to Add Participants to a Campaignstep + * + * @param {String} pContext req name of the context + * @param {String} pRowIds req Contact-Ids + * @param {String} pEntityParam req parameter for the entity (CAMPAIGNSTEP) + * @param {String} pView req targeting view + * + */ +_CampaignUtils._openAddParticipantContext = function(pContext, pRowIds, pEntityParam, pView) +{ + var params = {}; + + if (pRowIds) + { + params[pEntityParam] = pRowIds; + } + params["isUpdate_param"] = false; + + logging.log("pRowsIds" + pRowIds); + neon.openContext(pContext, null, null, neon.OPERATINGSTATE_NEW, params); +} + +/** + * todo + */ +_CampaignUtils._loadSingleValueFromDb = function(pSelectQuery, pConditionField, pConditionValue, pDefaultValue) +{ + let res = pDefaultValue; + if (pConditionValue) + { + res = db.cell(SqlCondition.begin() + .andPrepare(pConditionField, pConditionValue) + .buildSql(pSelectQuery)); + } + return res; +} \ No newline at end of file diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js index ee1242dde2f44628e793fdf78919a49c5a1b9e69..238aa4b1ac561df18d93ace719f7216624672b3d 100644 --- a/process/Context_lib/process.js +++ b/process/Context_lib/process.js @@ -26,6 +26,21 @@ ContextUtils.getCurrentContextId = function() return vars.getString("$sys.currentcontextname"); } +/** + * Get the title of the current context + * Note: The variable contexttitle is not always available. + * In this case this function returns "" + * + * @return {String} Title of the current context + */ +ContextUtils.getCurrentContextTitle = function() +{ + if (vars.exists("$sys.currentcontexttitle") && vars.get("$sys.currentcontexttitle")) + return vars.get("$sys.currentcontexttitle"); + + return ""; +} + /** * TODO: use System function. Currently the Name is also the id. * Returns the Name of a context by the Id @@ -39,6 +54,34 @@ ContextUtils.getContextName = function(pContextId) return pContextId; } +/** + * Returns the Name of the correct Consumer or null + * + * @param {String} pContextId the id of a context + * @return {String|null} Name of the correct Consumer + */ +ContextUtils.getContextConsumer = function(pContextId) +{ + // TODO: is there a better solution without a swiutch case? maybe metadata of context / entity + switch(pContextId) + { + case ContextUtils.getContextName("Organisation"): + return "Organisations"; + case ContextUtils.getContextName("Person"): + return "Persons"; + case ContextUtils.getContextName("Offer"): + return "Offers"; + case ContextUtils.getContextName("Order"): + return "Orders"; + case ContextUtils.getContextName("Product"): + return "Products"; + case ContextUtils.getContextName("Contract"): + return "Contracts"; + case ContextUtils.getContextName("Salesproject"): + return "Salesprojects"; + } +} + /** * * @param {Boolean} [pFilter=false] filter only for contexts which have a mapping in ContextUtils.getSelectMap @@ -100,6 +143,21 @@ ContextUtils.getContext = function(pContextId) return ContextUtils._contextDataMapping(project.getDataModel(project.DATAMODEL_KIND_CONTEXT, pContextId)); } +/** + * Prefix the given title with the current context title. (only if the title is available) + * @param {String} pTitle + * + * @return {String} e.g.: Kontakt - Herr Tim Admin + */ +ContextUtils.prefixWithCurrentContextTitle = function(pTitle) +{ + var titlePrefix = ContextUtils.getCurrentContextTitle(); + if (titlePrefix) + return titlePrefix + " - " + pTitle; + + return pTitle; +} + /** * map the contextData from the system.project-lib to [contextId, contextName, contextTitle] * @@ -348,6 +406,19 @@ ContextUtils.getSelectMap = function() "PRODUCTNAME" ], "", false)) ,"Task": ContextSelector.create("TASK", "TASKID", "SUBJECT") + ,"Campaign": ContextSelector.create("CAMPAIGN", "CAMPAIGNID") + .setTitleExpression(maskingUtils.concat([ + maskingUtils.cast("CAMPAIGN.NAME", SQLTYPES.VARCHAR, 10), + "' - '", + maskingUtils.cast("CAMPAIGNSTEP.NAME", SQLTYPES.VARCHAR, 10) + ], "", false)) + .setContactIdField("CAMPAIGNPARTICIPANT.CONTACT_ID") + .setJoinExpression("join CAMPAIGNPARTICIPANT on CAMPAIGNPARTICIPANT.CAMPAIGN_ID = CAMPAIGN.CAMPAIGNID " + + "join CAMPAIGNSTEP on CAMPAIGNSTEP.CAMPAIGNSTEPID = CAMPAIGNPARTICIPANT.CAMPAIGNSTEP_ID") + .setCreationDateField("CAMPAIGNSTEP.DATE_START") + .setStateField("CAMPAIGN.STATE") + .setActiveStates(["e04c9c59-0590-463c-a10e-e25c583e9cf2", "42e1ee2b-0108-4ccf-ab43-29cbcb0377bf"]) + } } diff --git a/process/JditoFilter_lib/process.js b/process/JditoFilter_lib/process.js index b4a2be8f420efa8a9453ca8c26f966381000601d..a0da9e16d8b3052b947bcbb21acf868ad85e345b 100644 --- a/process/JditoFilter_lib/process.js +++ b/process/JditoFilter_lib/process.js @@ -117,6 +117,7 @@ JditoFilterUtils.filterRecords = function (pColumns, pRecords, pFilter) * * @param {String|Object} pFilter the filter as JSON * @param {String} pTable the database table + * @param {String} [pTableAlias=null] the database table alias * @param {Object} [pColumnMap=null] custom mapping for the fields to the DB columns, this is necessary * if the fields are from different tables * @@ -129,7 +130,7 @@ JditoFilterUtils.filterRecords = function (pColumns, pRecords, pFilter) * * @return {SqlCondition} the SqlCondition object */ -JditoFilterUtils.getSqlCondition = function (pFilter, pTable, pColumnMap) +JditoFilterUtils.getSqlCondition = function (pFilter, pTable, pTableAlias, pColumnMap) { var condition = new SqlCondition(); @@ -152,8 +153,10 @@ JditoFilterUtils.getSqlCondition = function (pFilter, pTable, pColumnMap) { if (pCondition.name in pColumnMap) pCondition.name = pColumnMap[pCondition.name]; + else if (pTable && pTableAlias) + pCondition.name = [pTable, pCondition.name, pTableAlias]; else if (pTable) - pCondition.name = pTable + "." + pCondition.name; + pCondition.name = pTable + "." + pCondition.name; pCondition.value = (pCondition.key || pCondition.value); var condition = _getCondition.call(pCondition); diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js index a810b588164c4d91a4ab38a32840fe265f8f6548..fbd894dc51ef3bdcfcc76fdf132aa0d7d62d8877 100644 --- a/process/KeywordRegistry_basic/process.js +++ b/process/KeywordRegistry_basic/process.js @@ -77,4 +77,8 @@ $KeywordRegistry.paymentTerm = function(){return "PaymentTerm";}; $KeywordRegistry.contactDepartment = function(){return "ContactDepartment";}; $KeywordRegistry.contactPosition = function(){return "ContactPosition";}; $KeywordRegistry.contactContactrole = function(){return "ContactContactrole";}; - +$KeywordRegistry.campaignState = function(){return "CampaignManagementStates";}; +$KeywordRegistry.campaignState$planning = function(){return "e04c9c59-0590-463c-a10e-e25c583e9cf2";}; +$KeywordRegistry.campaignStepState = function(){return "CampaignManagementStepStates";}; +$KeywordRegistry.campaignStepState$open = function(){return "bbf69673-2ec6-46f8-b231-684a31be9fbd";}; +$KeywordRegistry.campaignStepCostCategory = function(){return "CampaignManagementCostCategory";}; diff --git a/process/StandardObject_lib/process.js b/process/StandardObject_lib/process.js index 11ad559a925e55d2baa3d5b2c3216b4d30751130..70e8e5c56abe2ef40cd9644ff1668f5cf3524df8 100644 --- a/process/StandardObject_lib/process.js +++ b/process/StandardObject_lib/process.js @@ -185,8 +185,8 @@ StandardObject.prototype.onCommunicationUpdate = function (pMediumID) { * address it will return `true`, otherwise `false`. This function asserts that * it's currently working on a `Address` object. * - * @param pContactID Contact ID to check. - * @return If the contact ID has standard address. + * @param {String} pContactID Contact ID to check. + * @return {Boolean} If the contact ID has standard address. */ StandardObject.prototype._hasContactStandardAddress = function (pContactID) { this._assertObjectType(StandardObject.CONST_OBJECT_ADDRESS()); @@ -201,8 +201,8 @@ StandardObject.prototype._hasContactStandardAddress = function (pContactID) { * Will set the given address ID on the given contact ID. This function asserts * that it's currently working on an `Address` object. * - * @param pAddressID New address ID to set on the contact. - * @param pContactID The contact ID to set the address ID on. + * @param {String} pAddressID New address ID to set on the contact. + * @param {String} pContactID The contact ID to set the address ID on. */ StandardObject.prototype._setContactStandardAddress = function (pAddressID, pContactID) { // Assert. @@ -237,8 +237,8 @@ StandardObject.prototype._getCompanyStandardAddress = function (pOrganisationID) * Checks if the given contact ID already has a standard set with the given medium * category. * - * @param pContactID {String} Contact ID to check. - * @param pMediumCategory {String} Medium category to check. + * @param {String} pContactID Contact ID to check. + * @param {String} pMediumCategory Medium category to check. * @return {Boolean} If the contact already has a standard addres with the given * medium category. */ @@ -254,7 +254,7 @@ StandardObject.prototype._hasStandardCommunicationByMedium = function (pContactI /** * Resolves the given pMediumID with the category. * - * @param pMediumID {String} ID of the medium to resolve. + * @param {String} pMediumID ID of the medium to resolve. * @return {String} Resovled category. */ StandardObject.prototype._getMediumCategory = function (pMediumID) { @@ -267,8 +267,8 @@ StandardObject.prototype._getMediumCategory = function (pMediumID) { * Will set the given communication ID as standard. (Will update the `STANDARD` * column.) * - * @param pCommunicationID {String} The communication ID to set as standard. - * @param pValue {Number} 0 or 1 (boolean) + * @param {String} pCommunicationID The communication ID to set as standard. + * @param {Number} pValue 0 or 1 (boolean) */ StandardObject.prototype._setStandardCommunication = function (pCommunicationID, pValue) { // Assert. @@ -286,7 +286,7 @@ StandardObject.prototype._setStandardCommunication = function (pCommunicationID, /** * Will return the Contact ID by the given communication ID. * - * @param pCommunicationID {String} Communication ID to get the contact ID for. + * @param {String} pCommunicationID to get the contact ID for. * @return The contact ID. */ StandardObject.prototype._getContactIdByCommunication = function (pCommunicationID) { @@ -294,12 +294,22 @@ StandardObject.prototype._getContactIdByCommunication = function (pCommunication } StandardObject.prototype._isOrganisationAddress = function (pAddressID) { + return StandardObject.isOrganisationAddress(pAddressID); +} + +/** + * Check if the address is a organisation address. + * + * @param {String} pAddressID Communication ID to get the contact ID for. + * @return The contact ID. + */ +StandardObject.isOrganisationAddress = function (pAddressID) { var contactID = db.cell("select CONTACTID from CONTACT where ADDRESS_ID = '" + pAddressID + "'"); - if (contactID === "") + if (!contactID) return false; var contactType = ContactUtils.getContactTypeByContactId(contactID); - return contactType === 1; + return contactType == 1; } \ No newline at end of file diff --git a/process/_test_clientProcess/_test_clientProcess.aod b/process/_test_clientProcess/_test_clientProcess.aod index fed7f21f22aef10ea93a966bab6cf4f06973d949..f5019c9b8cf2a4ef9af8a2011d967f9f8bf3e421 100644 --- a/process/_test_clientProcess/_test_clientProcess.aod +++ b/process/_test_clientProcess/_test_clientProcess.aod @@ -3,6 +3,7 @@ <name>_test_clientProcess</name> <majorModelMode>DISTRIBUTED</majorModelMode> <process>%aditoprj%/process/_test_clientProcess/process.js</process> + <publishAsWebservice v="true" /> <alias>Data_alias</alias> <variants> <element>EXECUTABLE</element>