diff --git a/.aditoprj/blueprints/CreateExportAction.xml b/.aditoprj/blueprints/CreateExportAction.xml new file mode 100644 index 0000000000000000000000000000000000000000..c6df83894e53e19d6001d4d84337e48b622108aa --- /dev/null +++ b/.aditoprj/blueprints/CreateExportAction.xml @@ -0,0 +1,44 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<blueprint name="Create Export Action"> + <type>entityActionField</type> + <parameters> + </parameters> + <data> + <document name="context"><![CDATA[ + <entity VERSION="1.3.17"> + <entityFields> + <entityActionField> + <name>export</name> + <title>Export</title> + <onActionProcess>import("ExportTemplate_lib"); +import("system.vars"); + +var selection = vars.get("$sys.selection"); + +if(selection.length == 0) //no selection -> use Filtercondition; +{ + selection = vars.get("$sys.filter"); +} + +ExportTemplateUtils.addParticipants(JSON.stringify(selection), vars.get("$sys.currentcontextname"));</onActionProcess> + <isMenuAction v="true" /> + <isObjectAction v="false" /> + <iconId>NEON:EXPORT</iconId> + <stateProcess>import("system.result"); +import("FilterViewAction_lib"); +import("system.vars"); + +var contactCount = vars.get("$sys.datarowcount"); + +result.string(FilterViewActionUtils.getComponentStateByRowCount(contactCount));</stateProcess> + <tooltip>Export fields of this table</tooltip> + <tooltipProcess>import("system.translate"); +import("system.result"); + +result.string(translate.text("Export columns using a exporttemplate"));</tooltipProcess> + </entityActionField> + </entityFields> + </entity> + ]]></document> + </data> +</blueprint> diff --git a/.aditoprj/ignoredScanServiceTasks.json b/.aditoprj/ignoredScanServiceTasks.json index 281e1fb24c155ee9fcd08c22336fe8d816083af3..7a82a0675d76038ae9b1c576dcc22b21ae577991 100644 --- a/.aditoprj/ignoredScanServiceTasks.json +++ b/.aditoprj/ignoredScanServiceTasks.json @@ -219,19 +219,19 @@ { "target": "neonView/SalesprojectAnalysesPhases_view/SalesprojectAnalysesPhases_view.aod", "line": -1, - "description": "Dead Reference \"#EXTENSION.Phase_filterExtention.Phase_filterExtention#TEXT\" located in: PhaseFunnelChart/defaultGroupFields/#EXTENSION.Phase_filterExtention.Phase_filterExtention#TEXT [67]", + "description": "Dead Reference \"#EXTENSION.Phase_filter.Phase_filter#TEXT\" located in: PhaseFunnelChart/defaultGroupFields/#EXTENSION.Phase_filter.Phase_filter#TEXT [67]", "groupName": "nb-tasklist-error" }, { "target": "neonView/SalesprojectAnalysesPhases_view/SalesprojectAnalysesPhases_view.aod", "line": -1, - "description": "Dead Reference \"#EXTENSION.Phase_filterExtention.Phase_filterExtention#TEXT\" located in: PhasePieChart/defaultGroupFields/#EXTENSION.Phase_filterExtention.Phase_filterExtention#TEXT [67]", + "description": "Dead Reference \"#EXTENSION.Phase_filter.Phase_filter#TEXT\" located in: PhasePieChart/defaultGroupFields/#EXTENSION.Phase_filter.Phase_filter#TEXT [67]", "groupName": "nb-tasklist-error" }, { "target": "neonView/SalesprojectAnalysesPhases_view/SalesprojectAnalysesPhases_view.aod", "line": -1, - "description": "Dead Reference \"#EXTENSION.Phase_filterExtention.Phase_filterExtention#TEXT\" located in: PhasePyramidChart/defaultGroupFields/#EXTENSION.Phase_filterExtention.Phase_filterExtention#TEXT [67]", + "description": "Dead Reference \"#EXTENSION.Phase_filter.Phase_filter#TEXT\" located in: PhasePyramidChart/defaultGroupFields/#EXTENSION.Phase_filter.Phase_filter#TEXT [67]", "groupName": "nb-tasklist-error" }, { @@ -245,6 +245,42 @@ "line": -1, "description": "Dead Reference \"#EXTENSION.Month.Month#NUMBER\" located in: dynamicChart/defaultGroupFields/#EXTENSION.Month.Month#NUMBER [67]", "groupName": "nb-tasklist-error" + }, + { + "target": "neonView/TurnoverDynamicMultiDataChart_view/TurnoverDynamicMultiDataChart_view.aod", + "line": -1, + "description": "Dead Reference \"#EXTENSION.Month_filter.Month_filter#TEXT\" located in: ColumnChart/defaultGroupFields/#EXTENSION.Month_filter.Month_filter#TEXT [67]", + "groupName": "nb-tasklist-error" + }, + { + "target": "neonView/TurnoverDynamicMultiDataChart_view/TurnoverDynamicMultiDataChart_view.aod", + "line": -1, + "description": "Dead Reference \"#EXTENSION.Month_filter.Month_filter#TEXT\" located in: LineChart/defaultGroupFields/#EXTENSION.Month_filter.Month_filter#TEXT [67]", + "groupName": "nb-tasklist-error" + }, + { + "target": "neonView/TurnoverDynamicMultiDataChart_view/TurnoverDynamicMultiDataChart_view.aod", + "line": -1, + "description": "Dead Reference \"#EXTENSION.Month_filter.Month_filter#TEXT\" located in: AreaChart/defaultGroupFields/#EXTENSION.Month_filter.Month_filter#TEXT [67]", + "groupName": "nb-tasklist-error" + }, + { + "target": "neonView/TurnoverDynamicMultiDataChart_view/TurnoverDynamicMultiDataChart_view.aod", + "line": -1, + "description": "Dead Reference \"#EXTENSION.Month_filter.Month_filter#TEXT\" located in: BarChart/defaultGroupFields/#EXTENSION.Month_filter.Month_filter#TEXT [67]", + "groupName": "nb-tasklist-error" + }, + { + "target": "neonView/TurnoverDynamicMultiDataChart_view/TurnoverDynamicMultiDataChart_view.aod", + "line": -1, + "description": "Dead Reference \"#EXTENSION.Month_filter.Month_filter#TEXT\" located in: SplineChart/defaultGroupFields/#EXTENSION.Month_filter.Month_filter#TEXT [67]", + "groupName": "nb-tasklist-error" + }, + { + "target": "neonView/TurnoverDynamicMultiDataChart_view/TurnoverDynamicMultiDataChart_view.aod", + "line": -1, + "description": "Dead Reference \"#EXTENSION.Month_filter.Month_filter#TEXT\" located in: TreeTable/defaultGroupFields/#EXTENSION.Month_filter.Month_filter#TEXT [67]", + "groupName": "nb-tasklist-error" } ] } \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.1.0/changelog.xml b/.liquibase/Data_alias/basic/2021.1.0/changelog.xml index d23a18f8fb29173c0522892be410c03620a6c31d..14de37ddbc5272cbdc21cb6f1518f454f8dab1d4 100644 --- a/.liquibase/Data_alias/basic/2021.1.0/changelog.xml +++ b/.liquibase/Data_alias/basic/2021.1.0/changelog.xml @@ -8,8 +8,6 @@ <include relativeToChangelogFile="true" file="offerWorkflow/add_ab_keyword_entry_activityCategory.xml"/> <include relativeToChangelogFile="true" file="create_standardWorkflow.xml"/> - <include relativeToChangelogFile="true" file="EwsContactSync/create_ewsInfoLog.xml"/> - <include relativeToChangelogFile="true" file="EwsContactSync/add_AB_SYNCCONTACT_updateContact.xml"/> <include relativeToChangelogFile="true" file="Advertising/changelog.xml"/> <include relativeToChangelogFile="true" file="Bulkmail/changelog.xml"/> <include relativeToChangelogFile="true" file="Addressvalidation/changelog.xml"/> diff --git a/.liquibase/Data_alias/basic/2021.1.1/insert_AnonymisierungsOrganisation.xml b/.liquibase/Data_alias/basic/2021.1.1/insert_AnonymisierungsOrganisation.xml index cc4eeb1e5bf3fde9facaa0014a87fb1c7800690a..60a075ecb022cdd8442a56c0510803a1107272cc 100644 --- a/.liquibase/Data_alias/basic/2021.1.1/insert_AnonymisierungsOrganisation.xml +++ b/.liquibase/Data_alias/basic/2021.1.1/insert_AnonymisierungsOrganisation.xml @@ -22,7 +22,7 @@ <delete tableName="ORGANISATION"> <where>ORGANISATIONID = ?</where> <whereParams> - <param value="0" /> + <param value="1" /> </whereParams> </delete> </rollback> diff --git a/.liquibase/Data_alias/basic/2021.1.3/changelog.xml b/.liquibase/Data_alias/basic/2021.1.3/changelog.xml index 5d3231a62d21134397109c21ea19ed5f94235c10..e6ef5bf468f382fad3e8bd05c3e8f1befe0dc104 100644 --- a/.liquibase/Data_alias/basic/2021.1.3/changelog.xml +++ b/.liquibase/Data_alias/basic/2021.1.3/changelog.xml @@ -3,7 +3,6 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> <include relativeToChangelogFile="true" file="defaultWeblinks/changelog.xml"/> - <include relativeToChangelogFile="true" file="Advertising/changelog.xml"/> <include relativeToChangelogFile="true" file="Checklist/changelog.xml"/> <include relativeToChangelogFile="true" file="Member/changelog.xml"/> <include relativeToChangelogFile="true" file="Salesproject/changelog.xml"/> diff --git a/.liquibase/Data_alias/basic/2021.1.3/Advertising/alter_AdvertisingAddDefaultColumns.xml b/.liquibase/Data_alias/basic/2021.2.0/Advertising/alter_AdvertisingAddDefaultColumns.xml similarity index 100% rename from .liquibase/Data_alias/basic/2021.1.3/Advertising/alter_AdvertisingAddDefaultColumns.xml rename to .liquibase/Data_alias/basic/2021.2.0/Advertising/alter_AdvertisingAddDefaultColumns.xml diff --git a/.liquibase/Data_alias/basic/2021.1.3/Advertising/alter_AdvertisingItemChangeItemPositionColumnType.xml b/.liquibase/Data_alias/basic/2021.2.0/Advertising/alter_AdvertisingItemChangeItemPositionColumnType.xml similarity index 100% rename from .liquibase/Data_alias/basic/2021.1.3/Advertising/alter_AdvertisingItemChangeItemPositionColumnType.xml rename to .liquibase/Data_alias/basic/2021.2.0/Advertising/alter_AdvertisingItemChangeItemPositionColumnType.xml diff --git a/.liquibase/Data_alias/basic/2021.1.3/Advertising/alter_AdvertisingItemDropColumns.xml b/.liquibase/Data_alias/basic/2021.2.0/Advertising/alter_AdvertisingItemDropColumns.xml similarity index 100% rename from .liquibase/Data_alias/basic/2021.1.3/Advertising/alter_AdvertisingItemDropColumns.xml rename to .liquibase/Data_alias/basic/2021.2.0/Advertising/alter_AdvertisingItemDropColumns.xml diff --git a/.liquibase/Data_alias/basic/2021.1.3/Advertising/alter_AdvertisingItemDropForeignKey.xml b/.liquibase/Data_alias/basic/2021.2.0/Advertising/alter_AdvertisingItemDropForeignKey.xml similarity index 100% rename from .liquibase/Data_alias/basic/2021.1.3/Advertising/alter_AdvertisingItemDropForeignKey.xml rename to .liquibase/Data_alias/basic/2021.2.0/Advertising/alter_AdvertisingItemDropForeignKey.xml diff --git a/.liquibase/Data_alias/basic/2021.1.3/Advertising/alter_AdvertisingRenameRowId.xml b/.liquibase/Data_alias/basic/2021.2.0/Advertising/alter_AdvertisingRenameRowId.xml similarity index 100% rename from .liquibase/Data_alias/basic/2021.1.3/Advertising/alter_AdvertisingRenameRowId.xml rename to .liquibase/Data_alias/basic/2021.2.0/Advertising/alter_AdvertisingRenameRowId.xml diff --git a/.liquibase/Data_alias/basic/2021.1.3/Advertising/alter_productAdvertisingDatatype.xml b/.liquibase/Data_alias/basic/2021.2.0/Advertising/alter_productAdvertisingDatatype.xml similarity index 100% rename from .liquibase/Data_alias/basic/2021.1.3/Advertising/alter_productAdvertisingDatatype.xml rename to .liquibase/Data_alias/basic/2021.2.0/Advertising/alter_productAdvertisingDatatype.xml diff --git a/.liquibase/Data_alias/basic/2021.1.3/Advertising/changelog.xml b/.liquibase/Data_alias/basic/2021.2.0/Advertising/changelog.xml similarity index 100% rename from .liquibase/Data_alias/basic/2021.1.3/Advertising/changelog.xml rename to .liquibase/Data_alias/basic/2021.2.0/Advertising/changelog.xml diff --git a/.liquibase/Data_alias/basic/2021.1.0/EwsContactSync/add_AB_SYNCCONTACT_updateContact.xml b/.liquibase/Data_alias/basic/2021.2.0/EwsContactSync/add_AB_SYNCCONTACT_updateContact.xml similarity index 100% rename from .liquibase/Data_alias/basic/2021.1.0/EwsContactSync/add_AB_SYNCCONTACT_updateContact.xml rename to .liquibase/Data_alias/basic/2021.2.0/EwsContactSync/add_AB_SYNCCONTACT_updateContact.xml diff --git a/.liquibase/Data_alias/basic/2021.2.0/EwsContactSync/changelog.xml b/.liquibase/Data_alias/basic/2021.2.0/EwsContactSync/changelog.xml new file mode 100644 index 0000000000000000000000000000000000000000..4b416e736e987f916c7653a1c0541f1e9f6018b7 --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.2.0/EwsContactSync/changelog.xml @@ -0,0 +1,7 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <include relativeToChangelogFile="true" file="add_AB_SYNCCONTACT_updateContact.xml"/> + <include relativeToChangelogFile="true" file="create_ewsInfoLog.xml"/> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.1.0/EwsContactSync/create_ewsInfoLog.xml b/.liquibase/Data_alias/basic/2021.2.0/EwsContactSync/create_ewsInfoLog.xml similarity index 100% rename from .liquibase/Data_alias/basic/2021.1.0/EwsContactSync/create_ewsInfoLog.xml rename to .liquibase/Data_alias/basic/2021.2.0/EwsContactSync/create_ewsInfoLog.xml diff --git a/.liquibase/Data_alias/basic/2021.2.0/Export/add_ExportTemplateFields_Dependency_ID.xml b/.liquibase/Data_alias/basic/2021.2.0/Export/add_ExportTemplateFields_Dependency_ID.xml new file mode 100644 index 0000000000000000000000000000000000000000..f32a31b9b21c986a24ed06c0aa65f37bf83dfe11 --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.2.0/Export/add_ExportTemplateFields_Dependency_ID.xml @@ -0,0 +1,19 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="s.pongratz" id="bcf10957-f79e-48b7-8a7b-013cfebe23bc"> + <addColumn tableName="EXPORTTEMPLATEFIELD"> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" type="CHAR(36)" /> + + <column name="USER_NEW" type="NVARCHAR(50)" /> + <column name="DATE_NEW" type="DATETIME" /> + <column name="USER_EDIT" type="NVARCHAR(50)" /> + <column name="DATE_EDIT" type="DATETIME" /> + </addColumn> + </changeSet> + + <changeSet author="s.pongratz" id="a573c6b0-41ba-4bf1-99f5-b9c2c184dcc2"> + <createIndex indexName="IDX_EXPORTTEMPLATEPOU_ID" tableName="EXPORTTEMPLATEFIELD"> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID"/> + </createIndex> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.2.0/Export/add_ExportTemplatePlaceOfUse.xml b/.liquibase/Data_alias/basic/2021.2.0/Export/add_ExportTemplatePlaceOfUse.xml new file mode 100644 index 0000000000000000000000000000000000000000..e5d45f305e725e82ede22b39669c89b331f3f1e0 --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.2.0/Export/add_ExportTemplatePlaceOfUse.xml @@ -0,0 +1,23 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="s.pongratz" id="8cd938e0-bffc-46ab-8009-b2e2c099c4e3"> + <addColumn tableName="EXPORTTEMPLATEPLACEOFUSE"> + <column name="TITLE" type="NVARCHAR(150)"/> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" type="CHAR(36)" /> + + <column name="OBJECT_FILTER" type="NCLOB" /> + + <column name="USER_NEW" type="NVARCHAR(50)" /> + <column name="DATE_NEW" type="DATETIME" /> + <column name="USER_EDIT" type="NVARCHAR(50)" /> + <column name="DATE_EDIT" type="DATETIME" /> + </addColumn> + </changeSet> + <changeSet author="s.pongratz" id="b8121ece-f3ee-4899-a7d9-c61762cdf1a1"> + <createIndex indexName="IDX_ETPOU_ID" tableName="EXPORTTEMPLATEPLACEOFUSE"> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID"/> + </createIndex> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.2.0/Export/changelog.xml b/.liquibase/Data_alias/basic/2021.2.0/Export/changelog.xml new file mode 100644 index 0000000000000000000000000000000000000000..44a347e06d1ea9d4664f4d2ee98b1be874402a82 --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.2.0/Export/changelog.xml @@ -0,0 +1,7 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <include relativeToChangelogFile="true" file="add_ExportTemplatePlaceOfUse.xml"/> + <include relativeToChangelogFile="true" file="add_ExportTemplateFields_Dependency_ID.xml"/> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.2.0/MSTeams/changelog.xml b/.liquibase/Data_alias/basic/2021.2.0/MSTeams/changelog.xml new file mode 100644 index 0000000000000000000000000000000000000000..18db840a17b45feb22de2a4863929d91bf316cb2 --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.2.0/MSTeams/changelog.xml @@ -0,0 +1,7 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <include relativeToChangelogFile="true" file="drop_mstTeamLink.xml"/> + <include relativeToChangelogFile="true" file="insert_mstTeamAttribute.xml"/> + <include relativeToChangelogFile="true" file="insert_KeqwordEntryMSTActivityDirection.xml"/> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2021.2.0/MSTeams/drop_mstTeamLink.xml b/.liquibase/Data_alias/basic/2021.2.0/MSTeams/drop_mstTeamLink.xml new file mode 100644 index 0000000000000000000000000000000000000000..e0eb40951f8ce85c3c5236241e74ca4a4fa041f8 --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.2.0/MSTeams/drop_mstTeamLink.xml @@ -0,0 +1,8 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="" id="79d8f115-929f-4d4e-a961-0aefb807d90f"> + <dropTable tableName="MST_TEAMLINK"/> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.2.0/MSTeams/insert_KeqwordEntryMSTActivityDirection.xml b/.liquibase/Data_alias/basic/2021.2.0/MSTeams/insert_KeqwordEntryMSTActivityDirection.xml new file mode 100644 index 0000000000000000000000000000000000000000..c296cdc99133b13c2ff97335d66be54a535f2448 --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.2.0/MSTeams/insert_KeqwordEntryMSTActivityDirection.xml @@ -0,0 +1,17 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="p.neub" id="29a9e33a-4c3f-4409-af9f-d676ef399103"> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="7e21e85e-8091-48cb-8bdc-e7bef7fa1f80"/> + <column name="AB_KEYWORD_CATEGORY_ID" value="a5206aff-79f8-413e-a76d-4cb9d39694d3"/> + <column name="KEYID" value="MST-MESSAGE"/> + <column name="TITLE" value="MS-Teams Message"/> + <column name="CONTAINER" value="ActivityCategory"/> + <column name="SORTING" valueNumeric="8"/> + <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/2021.2.0/MSTeams/insert_mstTeamAttribute.xml b/.liquibase/Data_alias/basic/2021.2.0/MSTeams/insert_mstTeamAttribute.xml new file mode 100644 index 0000000000000000000000000000000000000000..b6cf990d0d9591e74dc31d676a17748cba060eb2 --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.2.0/MSTeams/insert_mstTeamAttribute.xml @@ -0,0 +1,20 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="p.neub" id="e14b152c-e772-40d3-b49a-d314cd0f38e4"> + <insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="9a93f671-fa9e-4783-8ae8-6cef76b3f62f"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Team"/> + <column name="ATTRIBUTE_TYPE" value="OBJECTSELECTION"/> + <column name="DROPDOWNDEFINITION" value="MSTTeam_entity"/> + </insert> + <insert tableName="AB_ATTRIBUTEUSAGE"> + <column name="AB_ATTRIBUTEUSAGEID" value="0929cd01-b445-42fc-8878-eebed8dabfd0"/> + <column name="AB_ATTRIBUTE_ID" value="9a93f671-fa9e-4783-8ae8-6cef76b3f62f"/> + <column name="MAX_COUNT" valueNumeric="1"/> + <column name="OBJECT_TYPE" value="Salesproject"/> + </insert> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.2.0/changelog.xml b/.liquibase/Data_alias/basic/2021.2.0/changelog.xml index b00d7a17d331af5267ec416d244dc6275b92b8ba..513864be1bf2aceadfd05d13db364660aafc8db1 100644 --- a/.liquibase/Data_alias/basic/2021.2.0/changelog.xml +++ b/.liquibase/Data_alias/basic/2021.2.0/changelog.xml @@ -3,9 +3,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> <include relativeToChangelogFile="true" file="Duplicate/changelog.xml"/> + <include relativeToChangelogFile="true" file="Advertising/changelog.xml"/> <include relativeToChangelogFile="true" file="TopicTree/changelog.xml"/> <include relativeToChangelogFile="true" file="CampaignStep/changelog.xml"/> <include relativeToChangelogFile="true" file="Offer/changelog.xml"/> <include relativeToChangelogFile="true" file="xRM-Service/changelog.xml"/> <include relativeToChangelogFile="true" file="Mosaico/changelog.xml"/> + <include relativeToChangelogFile="true" file="MSTeams/changelog.xml"/> + <include relativeToChangelogFile="true" file="EwsContactSync/changelog.xml"/> + <include relativeToChangelogFile="true" file="Export/changelog.xml"/> </databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2021.2.0/xRM-Service/Keywords/update_ActivityCategory.xml b/.liquibase/Data_alias/basic/2021.2.0/xRM-Service/Keywords/update_ActivityCategory.xml index 04ab8b15b3465ff496e2b2127c153da6f1af7d67..9c435ad41b374a00c04b65a95be9081917b91d60 100644 --- a/.liquibase/Data_alias/basic/2021.2.0/xRM-Service/Keywords/update_ActivityCategory.xml +++ b/.liquibase/Data_alias/basic/2021.2.0/xRM-Service/Keywords/update_ActivityCategory.xml @@ -28,15 +28,6 @@ <column name="AB_KEYWORD_ATTRIBUTE_ID" value="25e3cad8-3661-49ae-aed0-dbf98ce8a620"/> <column name="CHAR_VALUE" value="VAADIN:AUTOMATION"/> <column name="BOOL_VALUE" valueNumeric="0"/> - </insert> - <insert - - tableName="ab_keyword_attribute"> - <column name="AB_KEYWORD_ATTRIBUTEID" value="25e3cad8-3661-49ae-aed0-dbf98ce8a620"/> - <column name="NAME" value="defaultAvatarRepresentation"/> - <column name="KIND" value="CHAR_VALUE"/> - <column name="CONTAINER" value="ActivityCategory"/> - <column name="AB_KEYWORD_CATEGORY_ID" value="a5206aff-79f8-413e-a76d-4cb9d39694d3"/> - </insert> + </insert> </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/_demoData/changelog.xml b/.liquibase/Data_alias/basic/_demoData/changelog.xml index 0f8fd6f15e6939e296eec6fc54d80128f2b42d97..fa3ea507e0c2a01a2ad3e0cc9b80a58a9bb0abc4 100644 --- a/.liquibase/Data_alias/basic/_demoData/changelog.xml +++ b/.liquibase/Data_alias/basic/_demoData/changelog.xml @@ -77,7 +77,6 @@ <include file="generatedData/mail_log.xml" relativeToChangelogFile="true"/> <include file="generatedData/mail_run.xml" relativeToChangelogFile="true"/> <include file="generatedData/mst_team.xml" relativeToChangelogFile="true"/> - <include file="generatedData/mst_teamlink.xml" relativeToChangelogFile="true"/> <include file="generatedData/objectmember.xml" relativeToChangelogFile="true"/> <include file="generatedData/observation.xml" relativeToChangelogFile="true"/> <include file="generatedData/offer.xml" relativeToChangelogFile="true"/> @@ -113,4 +112,4 @@ <include file="generatedData/weblink_click.xml" relativeToChangelogFile="true"/> <include file="generatedData/workflowsignal.xml" relativeToChangelogFile="true"/> <include file="generatedData/workflowstartconfig.xml" relativeToChangelogFile="true"/> -</databaseChangeLog> \ No newline at end of file +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/ab_keyword_category.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/ab_keyword_category.xml index 4b76571007573a113c2c1739363f0c06b948cd2e..805aedf463a33f629096870093bd8300384aaf76 100644 --- a/.liquibase/Data_alias/basic/_demoData/generatedData/ab_keyword_category.xml +++ b/.liquibase/Data_alias/basic/_demoData/generatedData/ab_keyword_category.xml @@ -614,5 +614,41 @@ <column name="SORTINGBY" valueNumeric="0"/> <column name="SORTINGDIRECTION" value="ASC"/> </insert> + <insert tableName="AB_KEYWORD_CATEGORY"> + <column name="AB_KEYWORD_CATEGORYID" value="fd79afd3-7bea-4733-9ba6-6b784724c1a0"/> + <column name="NAME" value="TICKETCONCLUSION"/> + <column name="SORTINGBY" valueNumeric="0"/> + <column name="SORTINGDIRECTION" value="ASC"/> + </insert> + <insert tableName="AB_KEYWORD_CATEGORY"> + <column name="AB_KEYWORD_CATEGORYID" value="7aef07f1-a947-4303-a72b-ae871e02c130"/> + <column name="NAME" value="EmployeeGroupStatus"/> + <column name="SORTINGBY" valueNumeric="0"/> + <column name="SORTINGDIRECTION" value="ASC"/> + </insert> + <insert tableName="AB_KEYWORD_CATEGORY"> + <column name="AB_KEYWORD_CATEGORYID" value="7723f275-e9b2-4a77-92de-e2e558638664"/> + <column name="NAME" value="InboxFilterComponent"/> + <column name="SORTINGBY" valueNumeric="0"/> + <column name="SORTINGDIRECTION" value="ASC"/> + </insert> + <insert tableName="AB_KEYWORD_CATEGORY"> + <column name="AB_KEYWORD_CATEGORYID" value="b9232d1a-f948-4c7e-9797-0783b8a4b84e"/> + <column name="NAME" value="InboxFilterTarget"/> + <column name="SORTINGBY" valueNumeric="0"/> + <column name="SORTINGDIRECTION" value="ASC"/> + </insert> + <insert tableName="AB_KEYWORD_CATEGORY"> + <column name="AB_KEYWORD_CATEGORYID" value="65a70dee-7cdf-4648-9851-211c2d3d2141"/> + <column name="NAME" value="InboxStatus"/> + <column name="SORTINGBY" valueNumeric="0"/> + <column name="SORTINGDIRECTION" value="ASC"/> + </insert> + <insert tableName="AB_KEYWORD_CATEGORY"> + <column name="AB_KEYWORD_CATEGORYID" value="11af1945-8649-44c8-a6c0-3100f8673c78"/> + <column name="NAME" value="TicketCategory"/> + <column name="SORTINGBY" valueNumeric="0"/> + <column name="SORTINGDIRECTION" value="ASC"/> + </insert> </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/communication.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/communication.xml index 907cc685669e41648203fab04c08b3076e287c7a..794d7a94192b6f7944dc118e6687b22ea8adb9ae 100644 --- a/.liquibase/Data_alias/basic/_demoData/generatedData/communication.xml +++ b/.liquibase/Data_alias/basic/_demoData/generatedData/communication.xml @@ -1539,4 +1539,4 @@ <column name="OBJECT_ROWID" value="59c9d416-0a39-4948-a540-f439178fbafe"/> </insert> </changeSet> -</databaseChangeLog> \ No newline at end of file +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplate.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplate.xml index 873fb1848500de115bc983a22e347ef455296060..143a6c1549e4c07dbc7feeef1a4d4961898c34da 100644 --- a/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplate.xml +++ b/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplate.xml @@ -1,54 +1,83 @@ -<?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="autogenerated" id="61e54a43-888e-4762-a188-45046738a877"> - <delete tableName="exporttemplate"/> +<?xml version="1.0" encoding="UTF-8"?> +<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-4.1.xsd"> + <changeSet author="s.pongratz" id="b0d902bd-317a-4a61-a0c3-c88d4697fe34"> <insert tableName="exporttemplate"> - <column name="FIELDDELIMITER" value="quotation mark"/> - <column name="ISOLANGUAGE" value="deu"/> - <column name="DATE_EDIT" valueDate="2020-03-02T10:43:24"/> - <column name="DESCRIPTION" value="Anrede, Vor und Nachname sowie Email und Telefonnummer"/> - <column name="USER_EDIT" value="Admin"/> - <column name="TITLE" value="Personen und Kontaktmöglichkeiten"/> - <column name="EXPORTTEMPLATEID" value="3acf26f9-4807-4661-8084-c0c21c593c81"/> - <column name="FIELDSEPARATOR" value="tabulator"/> - <column name="SENTENCESEPARATOR" value="carriage return and line feed"/> - <column name="USER_NEW" value="Admin"/> + <column name="EXPORTTEMPLATEID" value="3acf26f9-4807-4661-8084-c0c21c593c81" /> + <column name="TITLE" value="Personen und Kontaktmöglichkeiten" /> + <column name="FIELDSEPARATOR" value="tabulator" /> + <column name="SENTENCESEPARATOR" value="carriage return and line feed" /> + <column name="FIELDDELIMITER" value="quotation mark" /> + <column name="ISOLANGUAGE" value="deu" /> + <column name="DESCRIPTION" value="Anrede, Vor und Nachname sowie Email und Telefonnummer" /> + <column name="DATE_EDIT" valueDate="2020-03-02T10:43:24" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" value="Admin" /> + <column name="USER_NEW" value="Admin" /> </insert> <insert tableName="exporttemplate"> - <column name="FIELDDELIMITER" value="quotation mark"/> - <column name="ISOLANGUAGE" value="eng"/> - <column name="DATE_EDIT" valueDate="2020-03-02T10:43:24"/> - <column name="DESCRIPTION" value="Anrede, Vor und Nachname sowie Email und Telefonnummer"/> - <column name="USER_EDIT" value="Admin"/> - <column name="TITLE" value="Personen und Kontaktmöglichkeiten (Englisch)"/> - <column name="EXPORTTEMPLATEID" value="84eb1373-3745-4455-a0a7-32cf62c8d4dc"/> - <column name="FIELDSEPARATOR" value="tabulator"/> - <column name="SENTENCESEPARATOR" value="carriage return and line feed"/> - <column name="USER_NEW" value="Admin"/> + <column name="EXPORTTEMPLATEID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" /> + <column name="TITLE" value="Empfänger der Serienmail" /> + <column name="FIELDSEPARATOR" value="semicolon" /> + <column name="SENTENCESEPARATOR" value="carriage return and line feed" /> + <column name="FIELDDELIMITER" value="quotation mark" /> + <column name="ISOLANGUAGE" /> + <column name="DESCRIPTION" value="Liste der Empfänger der ausgewählten Serienmails mit Status usw" /> + <column name="DATE_EDIT" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="USER_NEW" /> </insert> <insert tableName="exporttemplate"> - <column name="FIELDDELIMITER" value="quotation mark"/> - <column name="ISOLANGUAGE" value="deu"/> - <column name="DATE_EDIT" valueDate="2020-03-02T10:43:24"/> - <column name="DESCRIPTION" value="Name mit Anrede, Titel und vollständiger Addresse"/> - <column name="USER_EDIT" value="Admin"/> - <column name="TITLE" value="Personen mit Anschriften"/> - <column name="EXPORTTEMPLATEID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/> - <column name="FIELDSEPARATOR" value="semicolon"/> - <column name="SENTENCESEPARATOR" value="carriage return and line feed"/> - <column name="USER_NEW" value="Admin"/> + <column name="EXPORTTEMPLATEID" value="726f7fa4-510f-407b-b42c-53f70df3f529" /> + <column name="TITLE" value="Übersicht Vertriebsprojekte" /> + <column name="FIELDSEPARATOR" value="semicolon" /> + <column name="SENTENCESEPARATOR" value="carriage return and line feed" /> + <column name="FIELDDELIMITER" value="quotation mark" /> + <column name="ISOLANGUAGE" /> + <column name="DESCRIPTION" value="Übersicht von Vertriebsprojekten" /> + <column name="DATE_EDIT" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="USER_NEW" /> </insert> <insert tableName="exporttemplate"> - <column name="FIELDDELIMITER" value="quotation mark"/> - <column name="ISOLANGUAGE" value="deu"/> - <column name="DATE_EDIT" valueDate="2020-03-02T10:43:24"/> - <column name="DESCRIPTION" value="Firmen und deren Addressen"/> - <column name="USER_EDIT" value="Admin"/> - <column name="TITLE" value="Firmen mit Addressen"/> - <column name="EXPORTTEMPLATEID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3"/> - <column name="FIELDSEPARATOR" value="comma"/> - <column name="SENTENCESEPARATOR" value="carriage return and line feed"/> - <column name="USER_NEW" value="Admin"/> + <column name="EXPORTTEMPLATEID" value="86b48d2c-3850-4778-9240-45cf79396a0a" /> + <column name="TITLE" value="Personen mit Anschriften" /> + <column name="FIELDSEPARATOR" value="semicolon" /> + <column name="SENTENCESEPARATOR" value="carriage return and line feed" /> + <column name="FIELDDELIMITER" value="quotation mark" /> + <column name="ISOLANGUAGE" value="deu" /> + <column name="DESCRIPTION" value="Name mit Anrede, Titel und vollständiger Adresse" /> + <column name="DATE_EDIT" valueDate="2020-03-02T10:43:24" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" value="Admin" /> + <column name="USER_NEW" value="Admin" /> + </insert> + <insert tableName="exporttemplate"> + <column name="EXPORTTEMPLATEID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" /> + <column name="TITLE" value="Teilnehmerliste" /> + <column name="FIELDSEPARATOR" value="semicolon" /> + <column name="SENTENCESEPARATOR" value="carriage return and line feed" /> + <column name="FIELDDELIMITER" value="quotation mark" /> + <column name="ISOLANGUAGE" /> + <column name="DESCRIPTION" value="Teilnehmerliste mit allen relevanten Daten, Vorname, Name, Firma usw." /> + <column name="DATE_EDIT" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="USER_NEW" /> + </insert> + <insert tableName="exporttemplate"> + <column name="EXPORTTEMPLATEID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" /> + <column name="TITLE" value="Firmen mit Adressen" /> + <column name="FIELDSEPARATOR" value="comma" /> + <column name="SENTENCESEPARATOR" value="carriage return and line feed" /> + <column name="FIELDDELIMITER" value="quotation mark" /> + <column name="ISOLANGUAGE" value="deu" /> + <column name="DESCRIPTION" value="Firmen und deren Adressen" /> + <column name="DATE_EDIT" valueDate="2020-03-02T10:43:24" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" value="Admin" /> + <column name="USER_NEW" value="Admin" /> </insert> </changeSet> -</databaseChangeLog> \ No newline at end of file +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplatefield.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplatefield.xml index b0c7acf8736af48ff2321381a6630cad79a6d1c9..9fd2ca3f7ea57fc3bcd8214f43491719c828c484 100644 --- a/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplatefield.xml +++ b/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplatefield.xml @@ -1,144 +1,489 @@ -<?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="autogenerated" id="69fd0952-c01c-4b65-960a-4bb53d11ba31"> - <delete tableName="exporttemplatefield"/> +<?xml version="1.0" encoding="UTF-8"?> +<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-4.1.xsd"> + <changeSet author="s.pongratz" id="cb95f3fd-b07a-4a10-9c97-f1a990abc164"> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81"/> - <column name="FIELD" value="{@lastname@}"/> - <column name="SORTING" valueNumeric="3"/> - <column name="EXPORTTEMPLATEFIELDID" value="0804cb9a-0cfb-43d6-bd37-2680e24604b0"/> + <column name="EXPORTTEMPLATEFIELDID" value="06087ff5-a22c-4f35-94fc-d738aaec6eb6" /> + <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" /> + <column name="FIELD" value="RESPONSIBLE_CONTACT_ID" /> + <column name="SORTING" valueNumeric="6" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="dbcc278e-bcc3-45d2-8315-502efbec6714" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="84eb1373-3745-4455-a0a7-32cf62c8d4dc"/> - <column name="FIELD" value="{@firstname@}"/> - <column name="SORTING" valueNumeric="2"/> - <column name="EXPORTTEMPLATEFIELDID" value="10194e81-65d8-4a12-acd3-123d6a692fba"/> + <column name="EXPORTTEMPLATEFIELDID" value="064fcc0b-2a26-4dc4-9d90-4289022b5638" /> + <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" /> + <column name="FIELD" value="PROJECTCODE" /> + <column name="SORTING" valueNumeric="1" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/> - <column name="FIELD" value="{@country@}"/> - <column name="SORTING" valueNumeric="5"/> - <column name="EXPORTTEMPLATEFIELDID" value="224cf307-fe26-4a6b-aae8-61190a2bff19"/> + <column name="EXPORTTEMPLATEFIELDID" value="07ff173f-23db-4b04-9cde-d3c278ab999f" /> + <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" /> + <column name="FIELD" value="STANDARD_COUNTRY" /> + <column name="SORTING" valueNumeric="2" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="86865c59-aa8b-4511-bf3d-b069395c684d" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81"/> - <column name="FIELD" value="{@salutation@}"/> - <column name="SORTING" valueNumeric="1"/> - <column name="EXPORTTEMPLATEFIELDID" value="300aeca0-0de8-4225-99ce-bcbb850016aa"/> + <column name="EXPORTTEMPLATEFIELDID" value="0d50e14b-4447-488c-b1ca-ec093bc5440a" /> + <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" /> + <column name="FIELD" value="ADDRESS_ID" /> + <column name="SORTING" valueNumeric="5" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="86865c59-aa8b-4511-bf3d-b069395c684d" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/> - <column name="FIELD" value="{@lastname@}"/> - <column name="SORTING" valueNumeric="4"/> - <column name="EXPORTTEMPLATEFIELDID" value="330bc05f-501e-4774-85bc-046347829dda"/> + <column name="EXPORTTEMPLATEFIELDID" value="1428942a-f595-4d9a-8e30-8506b360eb9b" /> + <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" /> + <column name="FIELD" value="STANDARD_ZIP" /> + <column name="SORTING" valueNumeric="6" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81"/> - <column name="FIELD" value="{@phone@}"/> - <column name="SORTING" valueNumeric="4"/> - <column name="EXPORTTEMPLATEFIELDID" value="334146d9-7950-4c59-9b07-d89eb57a0da2"/> + <column name="EXPORTTEMPLATEFIELDID" value="252abd36-6dbd-49cd-a7f4-e8d99a061d88" /> + <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" /> + <column name="FIELD" value="STARTDATE" /> + <column name="SORTING" valueNumeric="7" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/> - <column name="FIELD" value="{@firstname@}"/> - <column name="SORTING" valueNumeric="3"/> - <column name="EXPORTTEMPLATEFIELDID" value="34c65722-937f-4741-9c08-48a841e19527"/> + <column name="EXPORTTEMPLATEFIELDID" value="2a270e64-55c2-4521-a509-77a7c4f024cb" /> + <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" /> + <column name="FIELD" value="volumeWeighted" /> + <column name="SORTING" valueNumeric="13" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3"/> - <column name="FIELD" value="{@address@}"/> - <column name="SORTING" valueNumeric="5"/> - <column name="EXPORTTEMPLATEFIELDID" value="5ebc3ae4-80dd-497e-a26e-f275769f81e4"/> + <column name="EXPORTTEMPLATEFIELDID" value="2e686a67-ac5c-407b-9b38-2f40168efdb1" /> + <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" /> + <column name="FIELD" value="CONTACT_ID" /> + <column name="SORTING" valueNumeric="2" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="9dd3dadf-4a98-42b2-8ed3-534791b5dc9c" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/> - <column name="FIELD" value="{@zipCode@}"/> - <column name="SORTING" valueNumeric="7"/> - <column name="EXPORTTEMPLATEFIELDID" value="779f6222-d1e8-4ec3-953a-31cb27115b9a"/> + <column name="EXPORTTEMPLATEFIELDID" value="31be21ec-f403-42a3-a600-558b2e0133f3" /> + <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" /> + <column name="FIELD" value="EMAIL_ADDRESS" /> + <column name="SORTING" valueNumeric="3" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="9dd3dadf-4a98-42b2-8ed3-534791b5dc9c" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81"/> - <column name="FIELD" value="{@email@}"/> - <column name="SORTING" valueNumeric="5"/> - <column name="EXPORTTEMPLATEFIELDID" value="8fd83e1e-e2ef-499c-9425-0da511fdb6fb"/> + <column name="EXPORTTEMPLATEFIELDID" value="32872d18-d88d-40db-afee-3d5e8d1317ab" /> + <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" /> + <column name="FIELD" value="CAMPAIGNSTEP_ID" /> + <column name="SORTING" valueNumeric="5" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="dbcc278e-bcc3-45d2-8315-502efbec6714" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="84eb1373-3745-4455-a0a7-32cf62c8d4dc"/> - <column name="FIELD" value="{@salutation@}"/> - <column name="SORTING" valueNumeric="1"/> - <column name="EXPORTTEMPLATEFIELDID" value="a9fae3fa-e2c1-4c34-a264-e74bc93e6ac9"/> + <column name="EXPORTTEMPLATEFIELDID" value="34afc9f5-633d-4504-a04b-0e99b8b159a9" /> + <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" /> + <column name="FIELD" value="PHASE" /> + <column name="SORTING" valueNumeric="9" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/> - <column name="FIELD" value="{@salutation@}"/> - <column name="SORTING" valueNumeric="1"/> - <column name="EXPORTTEMPLATEFIELDID" value="acb36d07-089e-4a25-a0c2-694b06e74ae5"/> + <column name="EXPORTTEMPLATEFIELDID" value="3bac8770-f493-4500-b61c-ba8c8430eb6b" /> + <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" /> + <column name="FIELD" value="STANDARD_COUNTRY" /> + <column name="SORTING" valueNumeric="5" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="84eb1373-3745-4455-a0a7-32cf62c8d4dc"/> - <column name="FIELD" value="{@lastname@}"/> - <column name="SORTING" valueNumeric="3"/> - <column name="EXPORTTEMPLATEFIELDID" value="ba303e1b-40c9-4fef-bbdf-6d16ab0dbeb0"/> + <column name="EXPORTTEMPLATEFIELDID" value="43d1c9fa-bfb1-4d29-b03d-d7bda33e38f0" /> + <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" /> + <column name="FIELD" value="DATE_NEW" /> + <column name="SORTING" valueNumeric="6" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3"/> - <column name="FIELD" value="{@country@}"/> - <column name="SORTING" valueNumeric="2"/> - <column name="EXPORTTEMPLATEFIELDID" value="bfeb9284-6db4-4d15-a07b-9b3f21fe9c22"/> + <column name="EXPORTTEMPLATEFIELDID" value="4aa7c73e-4fae-4453-ba1f-740d291b0210" /> + <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81" /> + <column name="FIELD" value="LASTNAME" /> + <column name="SORTING" valueNumeric="3" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/> - <column name="FIELD" value="{@address@}"/> - <column name="SORTING" valueNumeric="8"/> - <column name="EXPORTTEMPLATEFIELDID" value="bffb3d69-7774-438e-85b2-81fc0629462a"/> + <column name="EXPORTTEMPLATEFIELDID" value="58a0832a-05bd-4fc6-b190-7224caf01ba8" /> + <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81" /> + <column name="FIELD" value="SALUTATION" /> + <column name="SORTING" valueNumeric="1" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3"/> - <column name="FIELD" value="{@region@}"/> - <column name="SORTING" valueNumeric="3"/> - <column name="EXPORTTEMPLATEFIELDID" value="c245bf8e-1d99-4d85-834c-64613bad5042"/> + <column name="EXPORTTEMPLATEFIELDID" value="58a2a677-8459-4292-a8c7-5818f3568cac" /> + <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" /> + <column name="FIELD" value="ENDDATE" /> + <column name="SORTING" valueNumeric="8" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3"/> - <column name="FIELD" value="{@zipCode@}"/> - <column name="SORTING" valueNumeric="4"/> - <column name="EXPORTTEMPLATEFIELDID" value="c39bb945-ecd2-4836-9cee-002178ae9709"/> + <column name="EXPORTTEMPLATEFIELDID" value="5c86ea95-be1f-4eb2-9b12-02bb35f5a532" /> + <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" /> + <column name="FIELD" value="NAME" /> + <column name="SORTING" valueNumeric="1" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4fba481d-310a-45aa-b1ff-d1667dab141f" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="84eb1373-3745-4455-a0a7-32cf62c8d4dc"/> - <column name="FIELD" value="{@phone@}"/> - <column name="SORTING" valueNumeric="4"/> - <column name="EXPORTTEMPLATEFIELDID" value="cacce4e9-c9ad-4dd3-ac43-79684ef57008"/> + <column name="EXPORTTEMPLATEFIELDID" value="7d36b12a-db74-4d21-908d-56902caaee86" /> + <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81" /> + <column name="FIELD" value="FIRSTNAME" /> + <column name="SORTING" valueNumeric="2" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="84eb1373-3745-4455-a0a7-32cf62c8d4dc"/> - <column name="FIELD" value="{@email@}"/> - <column name="SORTING" valueNumeric="5"/> - <column name="EXPORTTEMPLATEFIELDID" value="d01169d3-aab0-4233-b5ec-02ede86995cf"/> + <column name="EXPORTTEMPLATEFIELDID" value="7db7cf51-5da9-41f4-911d-87f322c1bc68" /> + <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" /> + <column name="FIELD" value="ADDRESS_ID" /> + <column name="SORTING" valueNumeric="7" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3"/> - <column name="FIELD" value="{@orgname@}"/> - <column name="SORTING" valueNumeric="1"/> - <column name="EXPORTTEMPLATEFIELDID" value="e153ea76-5e68-497a-8a3e-9bb40ce734b3"/> + <column name="EXPORTTEMPLATEFIELDID" value="896ec040-5b57-4ca6-b4e5-42cadd18682a" /> + <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" /> + <column name="FIELD" value="SALUTATION" /> + <column name="SORTING" valueNumeric="1" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/> - <column name="FIELD" value="{@title@}"/> - <column name="SORTING" valueNumeric="2"/> - <column name="EXPORTTEMPLATEFIELDID" value="e1b5c9c8-846a-4195-af5c-09e923c1c1c6"/> + <column name="EXPORTTEMPLATEFIELDID" value="8e0f578f-43dc-43d3-8c48-ec174f466c23" /> + <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" /> + <column name="FIELD" value="STANDARD_EMAIL_COMMUNICATION" /> + <column name="SORTING" valueNumeric="7" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="dbcc278e-bcc3-45d2-8315-502efbec6714" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81"/> - <column name="FIELD" value="{@firstname@}"/> - <column name="SORTING" valueNumeric="2"/> - <column name="EXPORTTEMPLATEFIELDID" value="e319ac75-3468-4167-8f0d-568a0dfaef7d"/> + <column name="EXPORTTEMPLATEFIELDID" value="97607099-0219-4245-a5e7-a340973e74ea" /> + <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" /> + <column name="FIELD" value="STANDARD_PHONE_COMMUNICATION" /> + <column name="SORTING" valueNumeric="8" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="dbcc278e-bcc3-45d2-8315-502efbec6714" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> <insert tableName="exporttemplatefield"> - <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/> - <column name="FIELD" value="{@region@}"/> - <column name="SORTING" valueNumeric="6"/> - <column name="EXPORTTEMPLATEFIELDID" value="e9f1cd83-5652-4f5b-913b-40dea9eda1c8"/> + <column name="EXPORTTEMPLATEFIELDID" value="98ab5af0-f780-4723-b64f-9dc186eb4fc5" /> + <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" /> + <column name="FIELD" value="VOLUME" /> + <column name="SORTING" valueNumeric="12" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="98deeade-09b5-46b3-b0d8-b8ecc3950f90" /> + <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81" /> + <column name="FIELD" value="STANDARD_EMAIL_COMMUNICATION" /> + <column name="SORTING" valueNumeric="5" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="999b389f-2e64-433d-8acc-f1a62f49942c" /> + <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" /> + <column name="FIELD" value="PROBABILITY" /> + <column name="SORTING" valueNumeric="11" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="9bd8c67a-2a07-4998-b47e-b6eccfc28a9b" /> + <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" /> + <column name="FIELD" value="TITLE" /> + <column name="SORTING" valueNumeric="2" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="9e6cc3fa-dbb1-49bd-839b-6999f289194c" /> + <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" /> + <column name="FIELD" value="FIRSTNAME" /> + <column name="SORTING" valueNumeric="3" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="a2f51b99-0add-424c-ba85-8ad690b4d33d" /> + <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" /> + <column name="FIELD" value="STANDARD_ZIP" /> + <column name="SORTING" valueNumeric="4" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="86865c59-aa8b-4511-bf3d-b069395c684d" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="a3fd3c48-9b00-4de6-9fed-044b89266508" /> + <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" /> + <column name="FIELD" value="STATUS" /> + <column name="SORTING" valueNumeric="5" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="9dd3dadf-4a98-42b2-8ed3-534791b5dc9c" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="aa33fc39-ca51-4cd9-a11a-e9fbdb2e2d2d" /> + <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" /> + <column name="FIELD" value="PROJECTTITLE" /> + <column name="SORTING" valueNumeric="2" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="ab0190b1-fbb5-485f-ade7-e1953f14bc27" /> + <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81" /> + <column name="FIELD" value="STANDARD_PHONE_COMMUNICATION" /> + <column name="SORTING" valueNumeric="4" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="ada14af6-4daf-4448-bbbf-baa70c3b69ac" /> + <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" /> + <column name="FIELD" value="IS_TEST_RECIPIENT" /> + <column name="SORTING" valueNumeric="4" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="9dd3dadf-4a98-42b2-8ed3-534791b5dc9c" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="adf9b254-aece-4a52-a48b-ddd559507810" /> + <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" /> + <column name="FIELD" value="STATUS" /> + <column name="SORTING" valueNumeric="10" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="ae2c4074-c8b2-458e-8afc-e395b7d0b033" /> + <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" /> + <column name="FIELD" value="NAME" /> + <column name="SORTING" valueNumeric="1" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="86865c59-aa8b-4511-bf3d-b069395c684d" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="c1fc93ee-93c0-46c5-a5f8-50ee48730fff" /> + <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" /> + <column name="FIELD" value="LASTNAME" /> + <column name="SORTING" valueNumeric="4" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="c245bf8e-1d99-4d85-834c-64613bad5042" /> + <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" /> + <column name="FIELD" value="{@region@}" /> + <column name="SORTING" valueNumeric="3" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="c6958ee7-0043-40c5-9e4d-36e0539a7108" /> + <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" /> + <column name="FIELD" value="InactiveTime" /> + <column name="SORTING" valueNumeric="5" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="c6c5b3f4-463a-46d4-a41d-e626d0779ffe" /> + <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" /> + <column name="FIELD" value="CONTACT_ID" /> + <column name="SORTING" valueNumeric="3" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="cef3af15-0882-4d9b-998e-33c1a8a3bb16" /> + <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" /> + <column name="FIELD" value="FIRSTNAME" /> + <column name="SORTING" valueNumeric="2" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e0a19680-fd01-49a3-9993-ac57fc37d403" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="d32d0a6b-c315-47e8-bedf-ff49b529d232" /> + <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" /> + <column name="FIELD" value="LASTNAME" /> + <column name="SORTING" valueNumeric="3" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e0a19680-fd01-49a3-9993-ac57fc37d403" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="db86c14a-3eef-4910-aa06-ff2d1a19d92d" /> + <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" /> + <column name="FIELD" value="NAME" /> + <column name="SORTING" valueNumeric="1" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="a148ad53-b921-45f0-81d4-e573a5c05661" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="dbb557ad-00eb-402f-b4e7-e90a86d228d4" /> + <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" /> + <column name="FIELD" value="CLASSIFICATIONVALUE" /> + <column name="SORTING" valueNumeric="4" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="e296802a-04a5-4860-8f8c-63be42dd932b" /> + <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" /> + <column name="FIELD" value="SENTDATE" /> + <column name="SORTING" valueNumeric="6" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="9dd3dadf-4a98-42b2-8ed3-534791b5dc9c" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplatefield"> + <column name="EXPORTTEMPLATEFIELDID" value="f0311199-5555-4eda-8964-752857d0bbb9" /> + <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" /> + <column name="FIELD" value="CONTACT_ORGANISATION_ID" /> + <column name="SORTING" valueNumeric="4" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="dbcc278e-bcc3-45d2-8315-502efbec6714" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> </changeSet> -</databaseChangeLog> \ No newline at end of file +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplateplaceofuse.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplateplaceofuse.xml index a48b54def84be4bde31a284e85a5d5dc0c82855e..40a5c48680df6d7a3f727f01428cddaa26224117 100644 --- a/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplateplaceofuse.xml +++ b/.liquibase/Data_alias/basic/_demoData/generatedData/exporttemplateplaceofuse.xml @@ -1,26 +1,161 @@ -<?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="autogenerated" id="fb7d1b86-3a39-4fe4-b963-0c61abebca52"> - <delete tableName="exporttemplateplaceofuse"/> +<?xml version="1.0" encoding="UTF-8"?> +<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-4.1.xsd"> + <changeSet author="s.pongratz" id="2ab02746-44f6-414e-922c-0b43ea0f3ab3"> <insert tableName="exporttemplateplaceofuse"> - <column name="EXPORTTEMPLATE_ID" value="84eb1373-3745-4455-a0a7-32cf62c8d4dc"/> - <column name="EXPORTTEMPLATEPLACEOFUSEID" value="135975c6-6c7a-408b-93e3-f04239503ff0"/> - <column name="PLACEOFUSE" value="Person"/> + <column name="EXPORTTEMPLATEPLACEOFUSEID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f" /> + <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81" /> + <column name="PLACEOFUSE" value="Person" /> + <column name="TITLE" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" /> + <column name="OBJECT_FILTER" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" value="Admin" /> + <column name="DATE_EDIT" valueDate="2021-09-29T08:05:30" /> </insert> <insert tableName="exporttemplateplaceofuse"> - <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81"/> - <column name="EXPORTTEMPLATEPLACEOFUSEID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f"/> - <column name="PLACEOFUSE" value="Person"/> + <column name="EXPORTTEMPLATEPLACEOFUSEID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819" /> + <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a" /> + <column name="PLACEOFUSE" value="Person" /> + <column name="TITLE" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" /> + <column name="OBJECT_FILTER" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" value="Admin" /> + <column name="DATE_EDIT" valueDate="2021-09-29T08:40:37" /> </insert> <insert tableName="exporttemplateplaceofuse"> - <column name="EXPORTTEMPLATE_ID" value="86b48d2c-3850-4778-9240-45cf79396a0a"/> - <column name="EXPORTTEMPLATEPLACEOFUSEID" value="4f036ac7-b1bf-4667-9177-7c0d444b1819"/> - <column name="PLACEOFUSE" value="Person"/> + <column name="EXPORTTEMPLATEPLACEOFUSEID" value="4fba481d-310a-45aa-b1ff-d1667dab141f" /> + <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" /> + <column name="PLACEOFUSE" value="BulkMail" /> + <column name="TITLE" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" /> + <column name="OBJECT_FILTER" /> + <column name="USER_NEW" value="Admin" /> + <column name="DATE_NEW" valueDate="2021-09-30T11:19:47" /> + <column name="USER_EDIT" value="Admin" /> + <column name="DATE_EDIT" valueDate="2021-09-30T11:40:16" /> </insert> <insert tableName="exporttemplateplaceofuse"> - <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3"/> - <column name="EXPORTTEMPLATEPLACEOFUSEID" value="86865c59-aa8b-4511-bf3d-b069395c684d"/> - <column name="PLACEOFUSE" value="Organisation"/> + <column name="EXPORTTEMPLATEPLACEOFUSEID" value="510ce9f1-9903-4978-9457-7bb85e85c71c" /> + <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" /> + <column name="PLACEOFUSE" value="Offeritem" /> + <column name="TITLE" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="94b03949-623a-4898-91cf-32ff21befaac" /> + <column name="OBJECT_FILTER" value="{"entity":"Offeritem_entity","filter":{"type":"group","operator":"AND","childs":[]}}" /> + <column name="USER_NEW" value="Admin" /> + <column name="DATE_NEW" valueDate="2021-09-29T09:30:33" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplateplaceofuse"> + <column name="EXPORTTEMPLATEPLACEOFUSEID" value="58390700-4308-45c2-865f-ea86cb38e7f5" /> + <column name="EXPORTTEMPLATE_ID" value="3acf26f9-4807-4661-8084-c0c21c593c81" /> + <column name="PLACEOFUSE" value="Address" /> + <column name="TITLE" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="408eba99-bcc3-4308-9b2c-1a4495e01a0f" /> + <column name="OBJECT_FILTER" value="{"entity":"Address_entity","filter":{"type":"group","operator":"AND","childs":[]}}" /> + <column name="USER_NEW" value="Admin" /> + <column name="DATE_NEW" valueDate="2021-09-29T08:26:27" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplateplaceofuse"> + <column name="EXPORTTEMPLATEPLACEOFUSEID" value="58c8768c-0d1b-4a68-a7c1-4d2d35fe3431" /> + <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" /> + <column name="PLACEOFUSE" value="Address" /> + <column name="TITLE" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="86865c59-aa8b-4511-bf3d-b069395c684d" /> + <column name="OBJECT_FILTER" value="{"entity":"Address_entity","filter":{"type":"group","operator":"AND","childs":[]}}" /> + <column name="USER_NEW" value="Admin" /> + <column name="DATE_NEW" valueDate="2021-09-29T09:32:08" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplateplaceofuse"> + <column name="EXPORTTEMPLATEPLACEOFUSEID" value="86865c59-aa8b-4511-bf3d-b069395c684d" /> + <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" /> + <column name="PLACEOFUSE" value="Organisation" /> + <column name="TITLE" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" /> + <column name="OBJECT_FILTER" /> + <column name="USER_NEW" /> + <column name="DATE_NEW" /> + <column name="USER_EDIT" value="Admin" /> + <column name="DATE_EDIT" valueDate="2021-09-29T08:49:04" /> + </insert> + <insert tableName="exporttemplateplaceofuse"> + <column name="EXPORTTEMPLATEPLACEOFUSEID" value="94b03949-623a-4898-91cf-32ff21befaac" /> + <column name="EXPORTTEMPLATE_ID" value="f399dc64-11b8-4490-ad24-53c9c3fc6df3" /> + <column name="PLACEOFUSE" value="Offer" /> + <column name="TITLE" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="86865c59-aa8b-4511-bf3d-b069395c684d" /> + <column name="OBJECT_FILTER" value="{"entity":"Offer_entity","filter":{"type":"group","operator":"AND","childs":[]}}" /> + <column name="USER_NEW" value="Admin" /> + <column name="DATE_NEW" valueDate="2021-09-29T09:30:23" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplateplaceofuse"> + <column name="EXPORTTEMPLATEPLACEOFUSEID" value="9dd3dadf-4a98-42b2-8ed3-534791b5dc9c" /> + <column name="EXPORTTEMPLATE_ID" value="5aaa7d13-3b12-45b5-a794-1f702e31051a" /> + <column name="PLACEOFUSE" value="BulkMailRecipient" /> + <column name="TITLE" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="4fba481d-310a-45aa-b1ff-d1667dab141f" /> + <column name="OBJECT_FILTER" value="{"entity":"BulkMailRecipient_entity","filter":{"type":"group","operator":"AND","childs":[]}}" /> + <column name="USER_NEW" value="Admin" /> + <column name="DATE_NEW" valueDate="2021-09-30T11:20:24" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplateplaceofuse"> + <column name="EXPORTTEMPLATEPLACEOFUSEID" value="a148ad53-b921-45f0-81d4-e573a5c05661" /> + <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" /> + <column name="PLACEOFUSE" value="Campaign" /> + <column name="TITLE" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" /> + <column name="OBJECT_FILTER" /> + <column name="USER_NEW" value="Admin" /> + <column name="DATE_NEW" valueDate="2021-09-30T11:04:56" /> + <column name="USER_EDIT" value="Admin" /> + <column name="DATE_EDIT" valueDate="2021-09-30T11:07:11" /> + </insert> + <insert tableName="exporttemplateplaceofuse"> + <column name="EXPORTTEMPLATEPLACEOFUSEID" value="dbcc278e-bcc3-45d2-8315-502efbec6714" /> + <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" /> + <column name="PLACEOFUSE" value="CampaignParticipant" /> + <column name="TITLE" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="a148ad53-b921-45f0-81d4-e573a5c05661" /> + <column name="OBJECT_FILTER" value="{"entity":"CampaignParticipant_entity","filter":{"type":"group","operator":"AND","childs":[]}}" /> + <column name="USER_NEW" value="Admin" /> + <column name="DATE_NEW" valueDate="2021-09-30T11:07:59" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplateplaceofuse"> + <column name="EXPORTTEMPLATEPLACEOFUSEID" value="e0a19680-fd01-49a3-9993-ac57fc37d403" /> + <column name="EXPORTTEMPLATE_ID" value="8a7fefcd-3e35-4bbf-8ad2-f10d4ed1d66b" /> + <column name="PLACEOFUSE" value="Person" /> + <column name="TITLE" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" value="dbcc278e-bcc3-45d2-8315-502efbec6714" /> + <column name="OBJECT_FILTER" value="{"entity":"Person_entity","filter":{"type":"group","operator":"AND","childs":[]}}" /> + <column name="USER_NEW" value="Admin" /> + <column name="DATE_NEW" valueDate="2021-09-30T11:25:58" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> + </insert> + <insert tableName="exporttemplateplaceofuse"> + <column name="EXPORTTEMPLATEPLACEOFUSEID" value="e6f81233-685f-434c-99e4-4ab2c4adbeff" /> + <column name="EXPORTTEMPLATE_ID" value="726f7fa4-510f-407b-b42c-53f70df3f529" /> + <column name="PLACEOFUSE" value="Salesproject" /> + <column name="TITLE" /> + <column name="EXPORTTEMPLATEPLACEOFUSE_ID" /> + <column name="OBJECT_FILTER" /> + <column name="USER_NEW" value="Admin" /> + <column name="DATE_NEW" valueDate="2021-09-30T11:42:32" /> + <column name="USER_EDIT" /> + <column name="DATE_EDIT" /> </insert> </changeSet> -</databaseChangeLog> \ No newline at end of file +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/mst_team.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/mst_team.xml index dfb7506b9d264a176bbfa7cee102fcd78c5db249..23e77fc417a6d82f6b4b2fcca23d9c10d6466b79 100644 --- a/.liquibase/Data_alias/basic/_demoData/generatedData/mst_team.xml +++ b/.liquibase/Data_alias/basic/_demoData/generatedData/mst_team.xml @@ -3,4 +3,4 @@ <changeSet author="autogenerated" id="7ad7747a-cafd-4c32-813c-a23e47450f9e"> <delete tableName="mst_team"/> </changeSet> -</databaseChangeLog> \ No newline at end of file +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/mst_teamlink.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/mst_teamlink.xml deleted file mode 100644 index cb4100baa199c70eadfcabe4058aa74dfa30b230..0000000000000000000000000000000000000000 --- a/.liquibase/Data_alias/basic/_demoData/generatedData/mst_teamlink.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 author="autogenerated" id="c71eff7a-751b-487f-928d-c888e544df40"> - <delete tableName="mst_teamlink"/> - </changeSet> -</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/changelog.xml b/.liquibase/Data_alias/changelog.xml index e211a0f400b6d71748232707325c22af7fbf936c..b55ed31802b0171eb979ba27c488a46982645380 100644 --- a/.liquibase/Data_alias/changelog.xml +++ b/.liquibase/Data_alias/changelog.xml @@ -28,7 +28,7 @@ <include relativeToChangelogFile="true" file="basic/2021.1.2/changelog.xml"/> <include relativeToChangelogFile="true" file="basic/2021.1.3/changelog.xml"/> <include relativeToChangelogFile="true" file="basic/2021.2.0/changelog.xml"/> - + <include relativeToChangelogFile="true" file="basic/workflows/changelog.xml" context="workflow"/> <include relativeToChangelogFile="true" file="basic/_demoData/changelog.xml" context="example"/> </databaseChangeLog> \ No newline at end of file diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod index d8cabfd34c6534dd6a89db36b5b43dd3bf13d82e..f3a9f0c3849ae2ab3d3fd61e12e986b45062fd63 100644 --- a/aliasDefinition/Data_alias/Data_alias.aod +++ b/aliasDefinition/Data_alias/Data_alias.aod @@ -1242,7 +1242,7 @@ <name>ISSTANDARD</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -1645,8 +1645,8 @@ <name>ADVERTISING</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="1" /> - <size v="1" /> + <columnType v="-7" /> + <size v="3" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -1925,7 +1925,7 @@ <name>OPTIONAL</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -1945,7 +1945,7 @@ <name>TAKEPRICE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -2449,7 +2449,7 @@ <name>IN_OUT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -2688,7 +2688,7 @@ <name>VAT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="2" /> + <columnType v="3" /> <size v="14" /> <scale v="2" /> <notNull v="false" /> @@ -2714,8 +2714,8 @@ <dbName></dbName> <primaryKey v="false" /> <columnType v="93" /> - <size v="29" /> - <scale v="9" /> + <size v="19" /> + <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> <index v="false" /> @@ -2848,7 +2848,7 @@ <name>NET</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="2" /> + <columnType v="3" /> <size v="14" /> <scale v="2" /> <notNull v="false" /> @@ -2873,7 +2873,7 @@ <name>HEADER</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="2005" /> + <columnType v="-1" /> <size v="2147483647" /> <scale v="0" /> <notNull v="false" /> @@ -2935,7 +2935,7 @@ <name>ADDRESS</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="2005" /> + <columnType v="-1" /> <size v="2147483647" /> <scale v="0" /> <notNull v="false" /> @@ -3008,7 +3008,7 @@ <name>INFO</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="2005" /> + <columnType v="-1" /> <size v="2147483647" /> <scale v="0" /> <notNull v="false" /> @@ -3030,8 +3030,8 @@ <dbName></dbName> <primaryKey v="false" /> <columnType v="93" /> - <size v="29" /> - <scale v="9" /> + <size v="19" /> + <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> <index v="false" /> @@ -3058,8 +3058,8 @@ <dbName></dbName> <primaryKey v="false" /> <columnType v="93" /> - <size v="29" /> - <scale v="9" /> + <size v="19" /> + <scale v="0" /> <notNull v="true" /> <isUnique v="false" /> <index v="false" /> @@ -3113,7 +3113,7 @@ <name>FOOTER</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="2005" /> + <columnType v="-1" /> <size v="2147483647" /> <scale v="0" /> <notNull v="false" /> @@ -3155,7 +3155,7 @@ <name>DISCOUNT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="2" /> + <columnType v="3" /> <size v="14" /> <scale v="2" /> <notNull v="false" /> @@ -3169,7 +3169,7 @@ <name>DISCOUNTED_NET</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="2" /> + <columnType v="3" /> <size v="14" /> <scale v="2" /> <notNull v="false" /> @@ -3183,7 +3183,7 @@ <name>DISCOUNTED_VAT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="2" /> + <columnType v="3" /> <size v="14" /> <scale v="2" /> <notNull v="false" /> @@ -3442,7 +3442,7 @@ <name>OPTIONAL</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -3913,48 +3913,6 @@ <title></title> <description></description> </entityFieldDb> - <entityFieldDb> - <name>CURRENCY</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="3" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>CURRENCYRATE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="6" /> - <size v="12" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>VOLUMEFOREIGNCURRENCY</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="3" /> - <size v="14" /> - <scale v="2" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -4386,20 +4344,6 @@ </customJDitoProperty> </customProperties> </entityFieldDb> - <entityFieldDb> - <name>HAS_ATTACHMENTS</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> </entityFields> </entityDb> <entityDb> @@ -4765,7 +4709,7 @@ <name>CANCELLATION</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -5047,7 +4991,7 @@ <name>ORDERSTATUS</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -5515,8 +5459,8 @@ <dbName></dbName> <primaryKey v="false" /> <columnType v="93" /> - <size v="29" /> - <scale v="9" /> + <size v="19" /> + <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> <index v="false" /> @@ -5608,7 +5552,7 @@ <name>DESCRIPTION</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="2005" /> + <columnType v="-1" /> <size v="2147483647" /> <scale v="0" /> <notNull v="false" /> @@ -5710,8 +5654,8 @@ <dbName></dbName> <primaryKey v="false" /> <columnType v="93" /> - <size v="29" /> - <scale v="9" /> + <size v="19" /> + <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> <index v="false" /> @@ -6212,7 +6156,7 @@ <name>ATTRIBUTE_ACTIVE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -6781,7 +6725,7 @@ <name>ISESSENTIAL</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -6886,7 +6830,7 @@ <name>ISACTIVE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -7011,7 +6955,7 @@ <name>ISACTIVE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -7202,7 +7146,7 @@ <name>BOOL_VALUE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -8882,7 +8826,7 @@ <name>ALL_TICKET_CATEGORIES</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -10468,9 +10412,9 @@ <name>VOLUME</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="3" /> - <size v="14" /> - <scale v="2" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> <index v="false" /> @@ -10631,20 +10575,6 @@ </customBooleanProperty> </customProperties> </entityFieldDb> - <entityFieldDb> - <name>VOLUMEFOREIGNCURRENCY</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="3" /> - <size v="14" /> - <scale v="2" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -11057,7 +10987,7 @@ <name>CREATEACTIVITIES</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -11099,7 +11029,7 @@ <name>USE_TEMPLATE_ATTACHMENTS</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -11385,7 +11315,7 @@ <name>IS_TEST_RECIPIENT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -11567,7 +11497,7 @@ <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> - <size v="50" /> + <size v="36" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -11623,7 +11553,7 @@ <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> - <size v="50" /> + <size v="36" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -11665,7 +11595,7 @@ <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> - <size v="50" /> + <size v="36" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -11744,20 +11674,6 @@ <title></title> <description></description> </entityFieldDb> - <entityFieldDb> - <name>HAS_ATTACHMENTS</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>EDITOR_CONTACT_ID</name> <dbName></dbName> @@ -12750,7 +12666,7 @@ <name>ONSITE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -12764,7 +12680,7 @@ <name>RESPONSIBLE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -14416,6 +14332,104 @@ </entityDependency> </dependencies> </entityFieldDb> + <entityFieldDb> + <name>EXPORTTEMPLATEPLACEOFUSE_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>OBJECT_FILTER</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-1" /> + <size v="2147483647" /> + <scale v="0" /> + <notNull v="false" /> + <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="93" /> + <size v="19" /> + <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="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <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="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>TITLE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="150" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -14742,32 +14756,102 @@ </entityDependency> </dependencies> </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>EXPORTTEMPLATESELECTION</name> - <dbName></dbName> - <idColumn>EXPORTTEMPLATESELECTIONID</idColumn> - <idGeneratorType v="0" /> - <idGeneratorInterval v="1" /> - <documentation>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/exporttemplateselection/documentation.adoc</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>EXPORTTEMPLATESELECTIONID</name> + <name>DATE_EDIT</name> <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="19" /> + <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="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <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="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>EXPORTTEMPLATEPLACEOFUSE_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>EXPORTTEMPLATESELECTION</name> + <dbName></dbName> + <idColumn>EXPORTTEMPLATESELECTIONID</idColumn> + <idGeneratorType v="0" /> + <idGeneratorInterval v="1" /> + <documentation>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/exporttemplateselection/documentation.adoc</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>EXPORTTEMPLATESELECTIONID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> <scale v="0" /> <notNull v="true" /> <isUnique v="true" /> @@ -16215,62 +16299,6 @@ <title></title> <description></description> </entityFieldDb> - <entityFieldDb> - <name>VALIDTO</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="23" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ADVISERSTATUS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>VALIDFROM</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="23" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ADVISERROLE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -17600,82 +17628,6 @@ </entityFieldDb> </entityFields> </entityDb> - <entityDb> - <name>MST_TEAMLINK</name> - <dbName></dbName> - <idColumn>MST_TEAMLINKID</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>OBJECT_ROWID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>MST_TEAM_ID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>MST_TEAMLINKID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="true" /> - <index v="true" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>OBJECT_TYPE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> <entityDb> <name>MST_TEAM</name> <dbName></dbName> @@ -17712,7 +17664,7 @@ <name>IS_ARCHIVED</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -17754,8 +17706,8 @@ <name>GENERAL_CHANNELID</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="1" /> - <size v="48" /> + <columnType v="12" /> + <size v="200" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -17905,7 +17857,7 @@ <name>TRIGGEREVENTDELETE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -17918,7 +17870,7 @@ <name>TRIGGEREVENTINSERT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -17931,7 +17883,7 @@ <name>TRIGGEREVENTUPDATE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -18243,7 +18195,7 @@ <name>AUTO</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -18271,7 +18223,7 @@ <name>FILTER_USED</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -18999,7 +18951,7 @@ <name>ISREDIRECT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -19693,7 +19645,7 @@ <name>ISACTIVE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -20179,7 +20131,7 @@ <name>IS_DEFAULT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -21727,7 +21679,7 @@ <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> - <index v="true" /> + <index v="false" /> <documentation>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/ews_info_log/entityfields/user_id/documentation.adoc</documentation> <title></title> <description></description> @@ -21741,7 +21693,7 @@ <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> - <index v="true" /> + <index v="false" /> <documentation>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/ews_info_log/entityfields/priority/documentation.adoc</documentation> <title></title> <description></description> @@ -21783,7 +21735,7 @@ <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> - <index v="true" /> + <index v="false" /> <documentation>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/ews_info_log/entityfields/type/documentation.adoc</documentation> <title></title> <description></description> @@ -21910,7 +21862,7 @@ <name>ISACTIVE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -21920,20 +21872,6 @@ <title></title> <description></description> </entityFieldDb> - <entityFieldDb> - <name>ACTION_TYPE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> <entityFieldDb> <name>EMAIL_FILTER_HANDLINGID</name> <dbName></dbName> @@ -21949,130 +21887,17 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>ISFALLTHROUGH</name> + <name>DATE_EDIT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> + <columnType v="93" /> + <size v="19" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> - <index v="true" /> + <index v="false" /> <documentation></documentation> - <title>Responsible</title> - <description></description> - <customProperties> - <customBooleanProperty> - <name>log</name> - <global v="false" /> - <property v="true" /> - </customBooleanProperty> - <customJDitoProperty> - <name>translate4Log</name> - <global v="false" /> - <property>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/advertising/entityfields/responsible_id/customproperties/translate4log/property.js</property> - </customJDitoProperty> - </customProperties> - </entityFieldDb> - <entityFieldDb> - <name>CONTACT_ID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="true" /> - <documentation></documentation> - <title>Contact</title> - <description></description> - <customProperties> - <customBooleanProperty> - <name>log</name> - <global v="false" /> - <property v="true" /> - </customBooleanProperty> - <customJDitoProperty> - <name>translate4log</name> - <global v="false" /> - <property>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/advertising/entityfields/contact_id/customproperties/translate4log/property.js</property> - </customJDitoProperty> - </customProperties> - </entityFieldDb> - <entityFieldDb> - <name>OBJECT_TYPE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>CURRENCY</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title>Currency</title> - <description></description> - <customProperties> - <customBooleanProperty> - <name>log</name> - <global v="false" /> - <property v="true" /> - </customBooleanProperty> - </customProperties> - </entityFieldDb> - <entityFieldDb> - <name>STATUS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title>Status</title> - <description></description> - <customProperties> - <customBooleanProperty> - <name>log</name> - <global v="false" /> - <property v="true" /> - </customBooleanProperty> - <customStringProperty> - <name>keyword</name> - <global v="false" /> - <property>advertisingStatus</property> - </customStringProperty> - </customProperties> - </entityFieldDb> - <entityFieldDb> - <name>DATE_EDIT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="29" /> - <scale v="9" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> + <title></title> <description></description> </entityFieldDb> <entityFieldDb> @@ -22080,8 +21905,8 @@ <dbName></dbName> <primaryKey v="false" /> <columnType v="93" /> - <size v="29" /> - <scale v="9" /> + <size v="19" /> + <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> <index v="false" /> @@ -22117,20 +21942,6 @@ <title></title> <description></description> </entityFieldDb> - <entityFieldDb> - <name>OBJECT_ROWID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -22183,7 +21994,7 @@ <name>PRICE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="2" /> + <columnType v="3" /> <size v="14" /> <scale v="2" /> <notNull v="false" /> @@ -22205,8 +22016,8 @@ <dbName></dbName> <primaryKey v="false" /> <columnType v="93" /> - <size v="29" /> - <scale v="9" /> + <size v="19" /> + <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> <index v="false" /> @@ -22218,7 +22029,7 @@ <name>QUANTITY</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="2" /> + <columnType v="3" /> <size v="14" /> <scale v="2" /> <notNull v="false" /> @@ -22239,7 +22050,7 @@ <name>INFO</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="2005" /> + <columnType v="-1" /> <size v="2147483647" /> <scale v="0" /> <notNull v="false" /> @@ -22314,7 +22125,7 @@ <name>TARGETAMOUNT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="2" /> + <columnType v="3" /> <size v="14" /> <scale v="2" /> <notNull v="false" /> @@ -22334,8 +22145,8 @@ <name>ITEMPOSITION</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="12" /> - <size v="30" /> + <columnType v="4" /> + <size v="10" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -22377,96 +22188,6 @@ <dbName></dbName> <primaryKey v="false" /> <columnType v="93" /> - <size v="29" /> - <scale v="9" /> - <notNull v="false" /> - <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="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SENT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="5" /> - <size v="5" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>CURRENCYRATE</name> - <dbName></dbName> - <idColumn>CURRENCYRATEID</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>CURRENCYRATEID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="true" /> - <index v="true" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>TARGETCURRENCYISO</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="3" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="true" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATE_EDIT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> <size v="19" /> <scale v="0" /> <notNull v="false" /> @@ -22476,48 +22197,6 @@ <title></title> <description></description> </entityFieldDb> - <entityFieldDb> - <name>CURRENCYRATE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="6" /> - <size v="12" /> - <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="93" /> - <size v="19" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SOURCECURRENCYISO</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="3" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> <entityFieldDb> <name>USER_NEW</name> <dbName></dbName> @@ -22533,27 +22212,13 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>VALID_FROM</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="19" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>USER_EDIT</name> + <name>SENT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="12" /> - <size v="50" /> + <columnType v="-7" /> + <size v="3" /> <scale v="0" /> - <notNull v="false" /> + <notNull v="true" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -22693,25 +22358,11 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>ROW_ID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="true" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>WORKFLOWSIGNAL_NAME</name> + <name>USER_EDIT</name> <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> - <size v="250" /> + <size v="50" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -22721,7 +22372,7 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>USER_EDIT</name> + <name>USER_NEW</name> <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> @@ -22735,15 +22386,15 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>USER_NEW</name> + <name>OBJECT_ROWID</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="12" /> - <size v="50" /> + <columnType v="1" /> + <size v="36" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> - <index v="false" /> + <index v="true" /> <documentation></documentation> <title></title> <description></description> @@ -23036,7 +22687,7 @@ <name>ACTIVE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -23592,7 +23243,7 @@ <name>STATE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="1" /> + <columnType v="12" /> <size v="36" /> <scale v="0" /> <notNull v="false" /> @@ -23930,7 +23581,7 @@ <name>ACTIVE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -23959,7 +23610,7 @@ <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> - <size v="50" /> + <size v="36" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -24071,7 +23722,7 @@ <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> - <size v="50" /> + <size v="36" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -24112,7 +23763,7 @@ <name>REVIEW</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -24202,7 +23853,7 @@ <name>STATUS</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="1" /> + <columnType v="12" /> <size v="36" /> <scale v="0" /> <notNull v="false" /> @@ -24306,8 +23957,8 @@ <name>SEND_MAIL</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-7" /> - <size v="3" /> + <columnType v="5" /> + <size v="5" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -24418,7 +24069,7 @@ <name>DEFAULTSIGNATURE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -24476,20 +24127,6 @@ <title></title> <description></description> </entityFieldDb> - <entityFieldDb> - <name>THRESHOLD</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="3" /> - <size v="5" /> - <scale v="2" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> <entityFieldDb> <name>ATTRIBUTE_FILTERID</name> <dbName></dbName> @@ -24532,20 +24169,6 @@ <title></title> <description></description> </entityFieldDb> - <entityFieldDb> - <name>COMPARISON_METHOD</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -24938,7 +24561,7 @@ <name>BASETEMPLATE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="1" /> + <columnType v="12" /> <size v="36" /> <scale v="0" /> <notNull v="false" /> @@ -24966,9 +24589,142 @@ <name>CATEGORY</name> <dbName></dbName> <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>SALESORDERLINK</name> + <category></category> + <dbName></dbName> + <idColumn>SALESORDERLINKID</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>OBJECT_ROWID</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="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SALESORDERLINKID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SALESORDER_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="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <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="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>OBJECT_TYPE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <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" /> diff --git a/aliasDefinition/Data_alias_noAudit/Data_alias_noAudit.aod b/aliasDefinition/Data_alias_noAudit/Data_alias_noAudit.aod index b3519c357f472cb7e6708fa5e34c80e7d237ab3a..330076bb4dcfbdedefc2c99bbf41680b9218dde8 100644 --- a/aliasDefinition/Data_alias_noAudit/Data_alias_noAudit.aod +++ b/aliasDefinition/Data_alias_noAudit/Data_alias_noAudit.aod @@ -375,6 +375,104 @@ <title></title> <description></description> </entityFieldDb> + <entityFieldDb> + <name>EXPORTTEMPLATEPLACEOFUSE_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>OBJECT_FILTER</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-1" /> + <size v="2147483647" /> + <scale v="0" /> + <notNull v="false" /> + <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="93" /> + <size v="19" /> + <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="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <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="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>TITLE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="150" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -691,7 +789,7 @@ <name>AUTO</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -803,7 +901,7 @@ <name>FILTER_USED</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -813,6 +911,20 @@ <title></title> <description></description> </entityFieldDb> + <entityFieldDb> + <name>POS</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> </entityFields> </entityDb> <entityDb> @@ -1285,20 +1397,6 @@ <title></title> <description></description> </entityFieldDb> - <entityFieldDb> - <name>OUTDATED</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="-6" /> - <size v="3" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> <entityFieldDb> <name>OBJECT_TYPE</name> <dbName></dbName> @@ -1369,6 +1467,20 @@ <title></title> <description></description> </entityFieldDb> + <entityFieldDb> + <name>SORTING</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="5" /> + <size v="5" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -3117,9 +3229,9 @@ <name>PROBABILITY</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="3" /> - <size v="6" /> - <scale v="2" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> <index v="false" /> @@ -3375,7 +3487,7 @@ <name>OPTIONAL</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -3639,7 +3751,7 @@ <name>IN_OUT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -4651,6 +4763,34 @@ <title></title> <description></description> </entityFieldDb> + <entityFieldDb> + <name>ALL_TICKET_CATEGORIES</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-7" /> + <size v="3" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TEMPLATECONTENT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-1" /> + <size v="2147483647" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -4877,7 +5017,7 @@ <name>ISACTIVE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -5189,7 +5329,7 @@ <name>BOOL_VALUE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -5393,34 +5533,14 @@ <title></title> <description></description> </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>DATABASECHANGELOG</name> - <dbName></dbName> - <idColumn></idColumn> - <idGeneratorType v="1" /> - <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>EXECTYPE</name> + <name>EMAIL_DESCRIPTION</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="12" /> - <size v="10" /> + <columnType v="-1" /> + <size v="2147483647" /> <scale v="0" /> - <notNull v="true" /> + <notNull v="false" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -5428,13 +5548,13 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>DATEEXECUTED</name> + <name>DATE_EDIT_STATUS</name> <dbName></dbName> <primaryKey v="false" /> <columnType v="93" /> <size v="19" /> <scale v="0" /> - <notNull v="true" /> + <notNull v="false" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -5442,13 +5562,13 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>ORDEREXECUTED</name> + <name>MEDIUM</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="4" /> - <size v="10" /> + <columnType v="12" /> + <size v="36" /> <scale v="0" /> - <notNull v="true" /> + <notNull v="false" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -5456,7 +5576,7 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>COMMENTS</name> + <name>ALTERNATIVE_PHONEADDR</name> <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> @@ -5470,13 +5590,13 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>AUTHOR</name> + <name>CC_RECIPIENTS</name> <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> - <size v="255" /> + <size v="500" /> <scale v="0" /> - <notNull v="true" /> + <notNull v="false" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -5484,11 +5604,11 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>CONTEXTS</name> + <name>CONCLUSION</name> <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> - <size v="255" /> + <size v="36" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -5498,11 +5618,11 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>MD5SUM</name> + <name>DATE_BEGIN</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="12" /> - <size v="35" /> + <columnType v="93" /> + <size v="19" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -5512,11 +5632,11 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>DESCRIPTION</name> + <name>INBOX_ID</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> + <columnType v="1" /> + <size v="36" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -5526,11 +5646,11 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>LIQUIBASE</name> + <name>EMAIL_SUBJECT</name> <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> - <size v="20" /> + <size v="150" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -5540,11 +5660,11 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>DEPLOYMENT_ID</name> + <name>MAILSIGNATURE_ID</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="12" /> - <size v="10" /> + <columnType v="1" /> + <size v="36" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -5554,13 +5674,13 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>ID</name> + <name>ORDER_ID</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> + <columnType v="1" /> + <size v="36" /> <scale v="0" /> - <notNull v="true" /> + <notNull v="false" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -5568,11 +5688,11 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>TAG</name> + <name>SENDER_EMAIL</name> <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> - <size v="255" /> + <size v="254" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -5582,11 +5702,11 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>LABELS</name> + <name>CATEGORY</name> <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> - <size v="255" /> + <size v="36" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -5596,13 +5716,257 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>FILENAME</name> + <name>ALTERNATIVE_EMAILADDR</name> <dbName></dbName> <primaryKey v="false" /> <columnType v="12" /> <size v="255" /> <scale v="0" /> - <notNull v="true" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>EDITOR_CONTACT_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> + <entityFieldDb> + <name>DATE_END</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>DATABASECHANGELOG</name> + <dbName></dbName> + <idColumn></idColumn> + <idGeneratorType v="1" /> + <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>EXECTYPE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="10" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATEEXECUTED</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ORDEREXECUTED</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>COMMENTS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>AUTHOR</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CONTEXTS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MD5SUM</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="35" /> + <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="255" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LIQUIBASE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="20" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DEPLOYMENT_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TAG</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LABELS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>FILENAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -7181,7 +7545,7 @@ <name>IS_TEST_RECIPIENT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -7989,7 +8353,7 @@ <name>TRIGGEREVENTDELETE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -8003,7 +8367,7 @@ <name>TRIGGEREVENTINSERT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -8017,7 +8381,7 @@ <name>TRIGGEREVENTUPDATE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -8278,25 +8642,11 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>OUTDATED</name> + <name>OBJECT_TYPE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> - <size v="3" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>OBJECT_TYPE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> + <columnType v="12" /> + <size v="63" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -8489,7 +8839,7 @@ <name>IS_ARCHIVED</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -8621,8 +8971,8 @@ <name>ADVERTISING</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="1" /> - <size v="1" /> + <columnType v="-7" /> + <size v="3" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -9081,7 +9431,7 @@ <name>ISESSENTIAL</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -9151,7 +9501,7 @@ <name>ISACTIVE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -9689,6 +10039,20 @@ <title></title> <description></description> </entityFieldDb> + <entityFieldDb> + <name>WORKFLOWDEFINITION_KEY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -11279,7 +11643,7 @@ <name>USE_TEMPLATE_ATTACHMENTS</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -11377,7 +11741,7 @@ <name>CREATEACTIVITIES</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -11513,6 +11877,34 @@ <title></title> <description></description> </entityFieldDb> + <entityFieldDb> + <name>ISOLANGUAGE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="3" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MOSAICOTEMPLATE_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> <entityDb> @@ -11537,7 +11929,7 @@ <name>ISSTANDARD</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -12291,82 +12683,6 @@ </entityFieldDb> </entityFields> </entityDb> - <entityDb> - <name>MST_TEAMLINK</name> - <dbName></dbName> - <idColumn>MST_TEAMLINKID</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>OBJECT_ROWID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>MST_TEAM_ID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>MST_TEAMLINKID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="true" /> - <index v="true" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>OBJECT_TYPE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> <entityDb> <name>CONTRACT</name> <dbName></dbName> @@ -13481,7 +13797,7 @@ <name>ONSITE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -13537,7 +13853,7 @@ <name>RESPONSIBLE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -13745,7 +14061,7 @@ <name>OPTIONAL</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -13759,7 +14075,7 @@ <name>TAKEPRICE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -14023,7 +14339,7 @@ <name>ATTRIBUTE_ACTIVE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -14589,6 +14905,76 @@ <title></title> <description></description> </entityFieldDb> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="19" /> + <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="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <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="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>EXPORTTEMPLATEPLACEOFUSE_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> </entityFields> </entityDb> <entityDb> @@ -14891,7 +15277,7 @@ <name>CANCELLATION</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -15213,7 +15599,7 @@ <name>ORDERSTATUS</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -17469,7 +17855,7 @@ <name>IS_DEFAULT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -18019,7 +18405,7 @@ <name>ISACTIVE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -18053,7 +18439,7 @@ <name>ISREDIRECT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="false" /> @@ -18575,7 +18961,7 @@ <name>ISACTIVE</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -18801,20 +19187,6 @@ <title></title> <description></description> </entityFieldDb> - <entityFieldDb> - <name>FREE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="-6" /> - <size v="3" /> - <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> @@ -18861,8 +19233,8 @@ <name>ITEMPOSITION</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="12" /> - <size v="30" /> + <columnType v="4" /> + <size v="10" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> @@ -18927,25 +19299,11 @@ <title></title> <description></description> </entityFieldDb> - <entityFieldDb> - <name>ACTUALAMOUNT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="3" /> - <size v="14" /> - <scale v="2" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> <entityFieldDb> <name>SENT</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="-6" /> + <columnType v="-7" /> <size v="3" /> <scale v="0" /> <notNull v="true" /> @@ -19206,27 +19564,55 @@ <description></description> </entityFieldDb> <entityFieldDb> - <name>ROW_ID</name> + <name>OBJECT_ROWID</name> <dbName></dbName> <primaryKey v="false" /> <columnType v="1" /> <size v="36" /> <scale v="0" /> - <notNull v="true" /> + <notNull v="false" /> <isUnique v="false" /> <index v="true" /> <documentation></documentation> <title></title> <description></description> </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>SALESORDERLINK</name> - <dbName></dbName> - <idColumn>SALESORDERLINKID</idColumn> - <idGeneratorType v="0" /> - <idGeneratorInterval v="1" /> + <entityFieldDb> + <name>USER_NEW</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>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> + </entityFields> + </entityDb> + <entityDb> + <name>SALESORDERLINK</name> + <dbName></dbName> + <idColumn>SALESORDERLINKID</idColumn> + <idGeneratorType v="0" /> + <idGeneratorInterval v="1" /> <documentation></documentation> <title></title> <description></description> @@ -19589,6 +19975,1973 @@ </entityFieldDb> </entityFields> </entityDb> + <entityDb> + <name>MOSAICOTEMPLATE</name> + <category></category> + <dbName></dbName> + <idColumn>MOSAICOTEMPLATEID</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>ISOLANGUAGE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="3" /> + <scale v="0" /> + <notNull v="false" /> + <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="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CATEGORY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MOSAICOTEMPLATEID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>BASETEMPLATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CONTENT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-1" /> + <size v="2147483647" /> + <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="93" /> + <size v="19" /> + <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>METADATA</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-1" /> + <size v="2147483647" /> + <scale v="0" /> + <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>NAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="250" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>TOPICTREERELATION</name> + <category></category> + <dbName></dbName> + <idColumn>TOPICTREERELATIONID</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>OBJECT_ROWID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TOPICTREE_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <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="-1" /> + <size v="2147483647" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TOPICTREERELATIONID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SORT</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>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <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="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>OBJECT_TYPE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="true" /> + <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> + </entityFields> + </entityDb> + <entityDb> + <name>INBOXFILTERGROUP</name> + <category></category> + <dbName></dbName> + <idColumn>INBOXFILTERGROUPID</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</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>INBOXFILTERGROUPID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>STATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>PRIORITY</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>NAME</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> + </entityFields> + </entityDb> + <entityDb> + <name>INBOX_EMPLOYEEGROUP_RELATION</name> + <category></category> + <dbName></dbName> + <idColumn>INBOX_EMPLOYEEGROUP_RELATIONID</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>EMPLOYEEGROUP_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> + <entityFieldDb> + <name>INBOX_EMPLOYEEGROUP_RELATIONID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>INBOX_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> + <entityDb> + <name>EMPLOYEEGROUP_RULEGROUP</name> + <category></category> + <dbName></dbName> + <idColumn>EMPLOYEEGROUP_RULEGROUPID</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</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>EMPLOYEEGROUP_RULEGROUPID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>STATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <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="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>INBOXFILTER</name> + <category></category> + <dbName></dbName> + <idColumn>INBOXFILTERID</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>INBOXFILTERGROUP_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> + <entityFieldDb> + <name>TICKETTEMPLATE_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> + <entityFieldDb> + <name>INBOXFILTERID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>COMPONENT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SEARCHTERM</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> + </entityFields> + </entityDb> + <entityDb> + <name>EMPLOYEEGROUP</name> + <category></category> + <dbName></dbName> + <idColumn>EMPLOYEEGROUPID</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</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>STATUS</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> + <entityFieldDb> + <name>EMPLOYEEGROUPID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>GROUPNAME</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> + </entityFields> + </entityDb> + <entityDb> + <name>INBOXFILTERGROUP_RELATION</name> + <category></category> + <dbName></dbName> + <idColumn>INBOXFILTERGROUP_RELATIONID</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>INBOXFILTERGROUP_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> + <entityFieldDb> + <name>INBOXFILTERGROUP_RELATIONID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>INBOX_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> + <entityDb> + <name>EMPLOYEEGROUP_CONTACT_RELATION</name> + <category></category> + <dbName></dbName> + <idColumn>EMPLOYEEGROUP_CONTACT_RELATIONID</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>EMPLOYEEGROUP_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> + <entityFieldDb> + <name>EMPLOYEEGROUP_CONTACT_RELATIONID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <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="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>TICKETTEMPLATE</name> + <category></category> + <dbName></dbName> + <idColumn>TICKETTEMPLATEID</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>ACTIVE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-7" /> + <size v="3" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MATURING_TIME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="5" /> + <size v="5" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CONCLUSION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CONCLUSION_MAILBRIDGE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>INBOX_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> + <entityFieldDb> + <name>PRIORITY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TICKETTEMPLATEID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DOCUMENTTEMPLATE_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> + <entityFieldDb> + <name>STATUS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <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="-1" /> + <size v="2147483647" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CATEGORY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TEMPLATENO</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="5" /> + <size v="5" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>INDIVIDUAL_ANSWER</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="5" /> + <size v="5" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>REVIEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-7" /> + <size v="3" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TITLE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="100" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TEMPLATENAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="100" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>STATUS_MAILBRIDGE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>INBOX</name> + <category></category> + <dbName></dbName> + <idColumn>INBOXID</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>CLOSURE_DAYS</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>STATUS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>EMAIL_ADDRESS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="254" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>INBOXDATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>INBOXID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>REOPEN_DELAY</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>NAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="30" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>MAILSIGNATURE</name> + <category></category> + <dbName></dbName> + <idColumn>MAILSIGNATUREID</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>ANSWER_MAIL_ADDRESS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="254" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DOCUMENTTEMPLATE_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> + <entityFieldDb> + <name>SEND_MAIL</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="5" /> + <size v="5" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MAIL_ADDRESS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="254" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SIGNATURE_DOCUMENTTEMPLATE_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> + <entityFieldDb> + <name>INBOX_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> + <entityFieldDb> + <name>DEFAULTSIGNATURE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-7" /> + <size v="3" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MAILSIGNATUREID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DEFAULT_TICKETTEMPLATE_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> + <entityFieldDb> + <name>WORKFLOW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>TOPICTREE</name> + <category></category> + <dbName></dbName> + <idColumn>TOPICTREEID</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>TOPICTREEID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ACTIVE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-7" /> + <size v="3" /> + <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="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SORTING_LAYER_5</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>SORTING_LAYER_6</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>TOPIC</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SORTING_LAYER_1</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>SORTING_LAYER_2</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>SORTING_LAYER_3</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>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>SORTING_LAYER_4</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>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>ASSIGNEDTO</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <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="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ATTRIBUTE_FILTER</name> + <category></category> + <dbName></dbName> + <idColumn>ATTRIBUTE_FILTERID</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>INBOXFILTERGROUP_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> + <entityFieldDb> + <name>ATTRIBUTE_FILTERID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>COMPONENT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SEARCHTERM</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> + </entityFields> + </entityDb> + <entityDb> + <name>EMPLOYEEGROUP_RULEGROUP_RELATION</name> + <category></category> + <dbName></dbName> + <idColumn>EMPLOYEEGROUP_RULEGROUP_RELATIONID</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>EMPLOYEEGROUP_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> + <entityFieldDb> + <name>EMPLOYEEGROUP_RULEGROUP_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> + <entityFieldDb> + <name>EMPLOYEEGROUP_RULEGROUP_RELATIONID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>EMPLOYEEGROUP_RULE</name> + <category></category> + <dbName></dbName> + <idColumn>EMPLOYEEGROUP_RULEID</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>EMPLOYEEGROUP_RULEGROUP_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> + <entityFieldDb> + <name>COND</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-1" /> + <size v="2147483647" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>EMPLOYEEGROUP_RULEID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <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="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>DOCUMENTTEMPLATE_TICKETCATEGORY</name> + <category></category> + <dbName></dbName> + <idColumn>DOCUMENTTEMPLATE_TICKETCATEGORYID</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>DOCUMENTTEMPLATE_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> + <entityFieldDb> + <name>DOCUMENTTEMPLATE_TICKETCATEGORYID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CLASSIFICATION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <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="93" /> + <size v="19" /> + <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> + </entityFields> + </entityDb> </entities> </entityGroup> </aliasDefDb> 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 415e8d2a1af6a882e10fdc486befb142aa59713e..738c1a7ab7fbcce5cfacd7a11d57d3122be0c30c 100644 --- a/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js +++ b/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js @@ -14,11 +14,8 @@ var res = { "groupByKeyword":"OrderType" }, "Contract": {}, - "SupportTicket": { - "subContext":"TaskLink", - "childField":"TASK_ID", - "parentField":"TASK_TASKID", - "contactIdField":"OBJECT_ROWID" + "SupportTicket": { + "connectionField":"TASK_REQUESTOR_CONTACT_ID" }, "Campaign": { "subContext":"CampaignParticipant", diff --git a/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js b/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js index 709b1c0e1937ff93ce1bf32478b6d0e411028554..69466b380b6c92539ae4becbda49f0347ba2e286 100644 --- a/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js @@ -15,8 +15,8 @@ if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param" && vars.exists("$param.ObjectRowId_param") && vars.get("$param.ObjectRowId_param")) { var contextList = JSON.parse(vars.get("$param.ObjectType_param")); - var contactId = JSON.parse(vars.get("$param.ObjectRowId_param")); - var data = _get360Data(contactId, contextList); + var contactIds = JSON.parse(vars.get("$param.ObjectRowId_param")); + var data = _get360Data(contactIds, contextList); // #1075280 added null-check to prevent misbehaviour if(vars.get("$local.idvalues") != null) @@ -59,7 +59,7 @@ function _get360Data(pContactId, pContextList) var roles = newSelect(["OBJECTMEMBER.OBJECT_ROWID", KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.MemberRole(), "MEMBERROLE")]) .from("OBJECTMEMBER") .where("OBJECTMEMBER.OBJECT_TYPE", "Salesproject") - .and("OBJECTMEMBER.CONTACT_ID", contactId) + .and("OBJECTMEMBER.CONTACT_ID", contactIds) .orderBy("OBJECTMEMBER.OBJECT_ROWID") .table(); //one select outside of the for each for performance, we assign the roles to roleObj so we can add them in the for each accordingly diff --git a/entity/Activity_entity/Activity_entity.aod b/entity/Activity_entity/Activity_entity.aod index d639aeae48ff82576bdc3a45d10d7b3b1b8a8666..08af2bf5706a87ab3197f78d2934e59620172a60 100644 --- a/entity/Activity_entity/Activity_entity.aod +++ b/entity/Activity_entity/Activity_entity.aod @@ -576,7 +576,7 @@ <children> <entityActionField> <name>importFromTeams</name> - <title>Import from Teams</title> + <title>Import from MS Teams</title> <onActionProcess>%aditoprj%/entity/Activity_entity/entityfields/msteamsactions/children/importfromteams/onActionProcess.js</onActionProcess> </entityActionField> </children> @@ -746,16 +746,10 @@ <name>advertising_id</name> <title>Advertising material</title> <linkedContext>Advertising</linkedContext> + <stateProcess>%aditoprj%/entity/Activity_entity/entityfields/advertising_id/stateProcess.js</stateProcess> <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/advertising_id/valueProcess.js</valueProcess> <displayValueProcess>%aditoprj%/entity/Activity_entity/entityfields/advertising_id/displayValueProcess.js</displayValueProcess> </entityField> - <entityConsumer> - <name>Objects</name> - <dependency> - <name>dependency</name> - <entityName>Object_entity</entityName> - </dependency> - </entityConsumer> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Activity_entity/entityfields/advertising_id/stateProcess.js b/entity/Activity_entity/entityfields/advertising_id/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..dbbb5ad6f1905a8d2847953b633d92dad63398b1 --- /dev/null +++ b/entity/Activity_entity/entityfields/advertising_id/stateProcess.js @@ -0,0 +1,10 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); + +var state = neon.COMPONENTSTATE_INVISIBLE; +if(vars.get("$this.value")) +{ + state = neon.COMPONENTSTATE_AUTO; +} +result.string(state); diff --git a/entity/Activity_entity/entityfields/msteamsactions/stateProcess.js b/entity/Activity_entity/entityfields/msteamsactions/stateProcess.js index 2708ddc1ec8a3c626e049d0956bd4b116ed2c10b..7807ac22eb5026361d342c5352ce7dbebffa26d0 100644 --- a/entity/Activity_entity/entityfields/msteamsactions/stateProcess.js +++ b/entity/Activity_entity/entityfields/msteamsactions/stateProcess.js @@ -1,7 +1,18 @@ -import("system.vars"); -import("system.neon"); import("system.result"); +import("system.neon"); +import("system.vars"); +import("Attribute_lib"); +import("AttributeRegistry_basic"); import("MSTeams_lib"); -var isTeamsEnabled = vars.get("$param.ObjectId_param") in MSTeamsUtils.getTeamLinkContexts() && MSTeamsUtils.isTeamsEnabled(); -result.string(isTeamsEnabled ? neon.COMPONENTSTATE_EDITABLE : neon.COMPONENTSTATE_INVISIBLE); \ No newline at end of file +var objectId = vars.get("$param.ObjectId_param"); +var rowId = vars.get("$param.RowId_param"); +var editable = MSTeamsUtils.isTeamsEnabled() && objectId && rowId && new AttributeRelationQuery( + rowId, $AttributeRegistry.mstTeam(), objectId).getSingleAttributeValue(); + +var res = neon.COMPONENTSTATE_INVISIBLE; +if(editable) +{ + res = neon.COMPONENTSTATE_EDITABLE; +} +result.string(res); diff --git a/entity/Address_entity/Address_entity.aod b/entity/Address_entity/Address_entity.aod index 4fa663250bca6df6a05c342da3881c282e87c1c1..1cfe28c6019782ac295bace24ef002e4a268a69c 100644 --- a/entity/Address_entity/Address_entity.aod +++ b/entity/Address_entity/Address_entity.aod @@ -15,6 +15,7 @@ <mandatory v="true" /> <textInputAllowed v="false" /> <stateProcess>%aditoprj%/entity/Address_entity/entityfields/address/stateProcess.js</stateProcess> + <titleProcess>%aditoprj%/entity/Address_entity/entityfields/address/titleProcess.js</titleProcess> <tooltip></tooltip> <onValueChange>%aditoprj%/entity/Address_entity/entityfields/address/onValueChange.js</onValueChange> <onValueChangeTypes> diff --git a/entity/Address_entity/entityfields/address/titleProcess.js b/entity/Address_entity/entityfields/address/titleProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..389db9f1cd064665bc68f5799f91084c47103ad8 --- /dev/null +++ b/entity/Address_entity/entityfields/address/titleProcess.js @@ -0,0 +1,11 @@ +import("system.translate"); +import("system.result"); +import("system.vars"); +import("KeywordRegistry_basic"); +import("Keyword_lib"); + +var key = vars.get("$field.ADDR_TYPE"); +if (key == $KeywordRegistry.addressType$post()) +{ + result.string(translate.text("Post office box number")); +} diff --git a/entity/Address_entity/entityfields/buildingno/stateProcess.js b/entity/Address_entity/entityfields/buildingno/stateProcess.js index ed5e161dcc793ca6dc3a379eea6d6b3445eb3b3c..433311c2893f6328bab6780c878efe20064f989c 100644 --- a/entity/Address_entity/entityfields/buildingno/stateProcess.js +++ b/entity/Address_entity/entityfields/buildingno/stateProcess.js @@ -1,10 +1,12 @@ +import("KeywordRegistry_basic"); import("system.neon"); import("system.result"); import("system.vars"); +var key = vars.get("$field.ADDR_TYPE"); // The field is only displayed in edit mode because there is the "formattedAddress" field which one shows the fromated address. // If the field has a Value it would be displayed next to the formattedAddress field in view mode, so in this case the state is set to invisible. -if (vars.get("$sys.recordstate") == "" || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW) +if (vars.get("$sys.recordstate") == "" || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW || key == $KeywordRegistry.addressType$post()) { result.string(neon.COMPONENTSTATE_INVISIBLE); } \ No newline at end of file diff --git a/entity/AttributeFilter_entity/AttributeFilter_entity.aod b/entity/AttributeFilter_entity/AttributeFilter_entity.aod index d23d907b6eb4769ffd40b533343ea221663d2ac4..365718d1c4b0d9e2a46fe82fc910943cd3e64e8e 100644 --- a/entity/AttributeFilter_entity/AttributeFilter_entity.aod +++ b/entity/AttributeFilter_entity/AttributeFilter_entity.aod @@ -21,7 +21,7 @@ </entityField> <entityField> <name>COMPONENT</name> - <title>Component</title> + <title>Search component</title> <consumer>KeywordComponent</consumer> <mandatory v="true" /> <valueProcess>%aditoprj%/entity/AttributeFilter_entity/entityfields/component/valueProcess.js</valueProcess> diff --git a/entity/AttributeRelation_entity/AttributeRelation_entity.aod b/entity/AttributeRelation_entity/AttributeRelation_entity.aod index 272c64f4f8e08ec92a7f39388059893d33595d5b..a894eef2247fdd0d13224792bd7318f54dbd522d 100644 --- a/entity/AttributeRelation_entity/AttributeRelation_entity.aod +++ b/entity/AttributeRelation_entity/AttributeRelation_entity.aod @@ -4,9 +4,13 @@ <title>Attribute</title> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/AttributeRelation_entity/documentation.adoc</documentation> + <siblings> + <element>Salesproject_entity</element> + </siblings> <grantUpdateProcess>%aditoprj%/entity/AttributeRelation_entity/grantUpdateProcess.js</grantUpdateProcess> <grantDeleteProcess>%aditoprj%/entity/AttributeRelation_entity/grantDeleteProcess.js</grantDeleteProcess> <contentTitleProcess>%aditoprj%/entity/AttributeRelation_entity/contentTitleProcess.js</contentTitleProcess> + <afterSave>%aditoprj%/entity/AttributeRelation_entity/afterSave.js</afterSave> <titlePlural>Attributes</titlePlural> <recordContainer>jdito</recordContainer> <entityFields> diff --git a/entity/AttributeRelation_entity/afterSave.js b/entity/AttributeRelation_entity/afterSave.js new file mode 100644 index 0000000000000000000000000000000000000000..221f6eebcd5f71e989c3c76d4aa6d575c6c684d2 --- /dev/null +++ b/entity/AttributeRelation_entity/afterSave.js @@ -0,0 +1,18 @@ +import("system.teams"); +import("system.vars"); +import("system.project"); +import("AttributeRegistry_basic"); + +if(vars.get("$field.AB_ATTRIBUTE_ID") == $AttributeRegistry.mstTeam()) +{ + var teamId = vars.get("$field.VALUE"); + var appId = project.getInstanceConfigValue("teamsAppId"); + try + { + appId && teams.addApp(teamId, appId); + } + catch(ex) + { + // App is allready added + } +} diff --git a/entity/BulkMail_entity/BulkMail_entity.aod b/entity/BulkMail_entity/BulkMail_entity.aod index 19f43ebcb586a085f8f43e823fd2d4dace177c97..5a95e209f60d6d026a2f8406f132dc440eaa1b37 100644 --- a/entity/BulkMail_entity/BulkMail_entity.aod +++ b/entity/BulkMail_entity/BulkMail_entity.aod @@ -550,6 +550,17 @@ <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/stateProcess.js</stateProcess> <titleProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/cancelobservation/titleProcess.js</titleProcess> </entityActionField> + <entityActionField> + <name>export</name> + <title>Export</title> + <onActionProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/onActionProcess.js</onActionProcess> + <isMenuAction v="true" /> + <isObjectAction v="false" /> + <iconId>NEON:EXPORT</iconId> + <stateProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/stateProcess.js</stateProcess> + <tooltip>Export fields of this table</tooltip> + <tooltipProcess>%aditoprj%/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/tooltipProcess.js</tooltipProcess> + </entityActionField> </children> </entityActionGroup> <entityActionField> diff --git a/entity/BulkMail_entity/contentDescriptionProcess.js b/entity/BulkMail_entity/contentDescriptionProcess.js index d954efdae7962397780136ac64484f72cabc284a..4695e9188d68bddc1cfe09f677fbf5d3cd1c5602 100644 --- a/entity/BulkMail_entity/contentDescriptionProcess.js +++ b/entity/BulkMail_entity/contentDescriptionProcess.js @@ -1,5 +1,7 @@ +import("KeywordRegistry_basic"); +import("system.translate"); import("Keyword_lib"); import("system.result"); import("system.vars"); -result.string(KeywordUtils.getViewValue("BulkMailStatus", vars.get("$field.STATUS"))); \ No newline at end of file +result.string(translate.text("Status") + ": "+ KeywordUtils.getViewValue($KeywordRegistry.bulkMailStatus(), vars.get("$field.STATUS"))); \ No newline at end of file diff --git a/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/onActionProcess.js b/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6c68dcef71d0a7db12fd4d25819640764899dbad --- /dev/null +++ b/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/onActionProcess.js @@ -0,0 +1,11 @@ +import("ExportTemplate_lib"); +import("system.vars"); + +var selection = vars.get("$sys.selection"); + +if(selection.length == 0) //no selection -> use Filtercondition; +{ + selection = vars.get("$sys.filter"); +} + +ExportTemplateUtils.addParticipants(JSON.stringify(selection), vars.get("$sys.currentcontextname")); \ No newline at end of file diff --git a/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/stateProcess.js b/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..7fc578ee7942eeb948f08d3dd86f5950d3fa1c41 --- /dev/null +++ b/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/stateProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("FilterViewAction_lib"); +import("system.vars"); + +var contactCount = vars.get("$sys.datarowcount"); + +result.string(FilterViewActionUtils.getComponentStateByRowCount(contactCount)); \ No newline at end of file diff --git a/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/tooltipProcess.js b/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/tooltipProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4aaaed5c074ef854441aa45e3e7993b2f77c04c4 --- /dev/null +++ b/entity/BulkMail_entity/entityfields/observeactionogroup/children/export/tooltipProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("Export columns using a exporttemplate")); \ No newline at end of file diff --git a/entity/Campaign_entity/Campaign_entity.aod b/entity/Campaign_entity/Campaign_entity.aod index 15fab50f35ce1f2913fcb8acb86e88c0b67304c8..f2379d3a6494932a6dd60629f32c45c4a53c33f3 100644 --- a/entity/Campaign_entity/Campaign_entity.aod +++ b/entity/Campaign_entity/Campaign_entity.aod @@ -42,6 +42,17 @@ <stateProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess> <titleProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess> </entityActionField> + <entityActionField> + <name>export</name> + <title>Export</title> + <onActionProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/export/onActionProcess.js</onActionProcess> + <isMenuAction v="true" /> + <isObjectAction v="false" /> + <iconId>NEON:EXPORT</iconId> + <stateProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/export/stateProcess.js</stateProcess> + <tooltip>Export fields of this table</tooltip> + <tooltipProcess>%aditoprj%/entity/Campaign_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js</tooltipProcess> + </entityActionField> </children> </entityActionGroup> <entityProvider> diff --git a/entity/Campaign_entity/entityfields/observeactiongroup/children/export/onActionProcess.js b/entity/Campaign_entity/entityfields/observeactiongroup/children/export/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6c68dcef71d0a7db12fd4d25819640764899dbad --- /dev/null +++ b/entity/Campaign_entity/entityfields/observeactiongroup/children/export/onActionProcess.js @@ -0,0 +1,11 @@ +import("ExportTemplate_lib"); +import("system.vars"); + +var selection = vars.get("$sys.selection"); + +if(selection.length == 0) //no selection -> use Filtercondition; +{ + selection = vars.get("$sys.filter"); +} + +ExportTemplateUtils.addParticipants(JSON.stringify(selection), vars.get("$sys.currentcontextname")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/observeactiongroup/children/export/stateProcess.js b/entity/Campaign_entity/entityfields/observeactiongroup/children/export/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..7fc578ee7942eeb948f08d3dd86f5950d3fa1c41 --- /dev/null +++ b/entity/Campaign_entity/entityfields/observeactiongroup/children/export/stateProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("FilterViewAction_lib"); +import("system.vars"); + +var contactCount = vars.get("$sys.datarowcount"); + +result.string(FilterViewActionUtils.getComponentStateByRowCount(contactCount)); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js b/entity/Campaign_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4aaaed5c074ef854441aa45e3e7993b2f77c04c4 --- /dev/null +++ b/entity/Campaign_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("Export columns using a exporttemplate")); \ No newline at end of file diff --git a/entity/ChecklistEntryValue_entity/ChecklistEntryValue_entity.aod b/entity/ChecklistEntryValue_entity/ChecklistEntryValue_entity.aod index e61fa7ee535103d03f036a4f73489b40d987ca6a..2eb878e8a508ae477f8bf474c5a7a8c04dab20c0 100644 --- a/entity/ChecklistEntryValue_entity/ChecklistEntryValue_entity.aod +++ b/entity/ChecklistEntryValue_entity/ChecklistEntryValue_entity.aod @@ -107,12 +107,18 @@ <title>Fullfilled</title> <contentType>IMAGE</contentType> </entityField> + <entityParameter> + <name>Presentationmode_param</name> + <expose v="true" /> + <documentation>%aditoprj%/entity/ChecklistEntryValue_entity/entityfields/presentationmode_param/documentation.adoc</documentation> + </entityParameter> </entityFields> <recordContainers> <jDitoRecordContainer> <name>jDito</name> <jDitoRecordAlias>Data_alias</jDitoRecordAlias> <contentProcess>%aditoprj%/entity/ChecklistEntryValue_entity/recordcontainers/jdito/contentProcess.js</contentProcess> + <rowCountProcess>%aditoprj%/entity/ChecklistEntryValue_entity/recordcontainers/jdito/rowCountProcess.js</rowCountProcess> <recordFieldMappings> <jDitoRecordFieldMapping> <name>UID.value</name> diff --git a/entity/ChecklistEntryValue_entity/entityfields/presentationmode_param/documentation.adoc b/entity/ChecklistEntryValue_entity/entityfields/presentationmode_param/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..815090a034af0645247ab091d83260c143c19d38 --- /dev/null +++ b/entity/ChecklistEntryValue_entity/entityfields/presentationmode_param/documentation.adoc @@ -0,0 +1,5 @@ +== Presentationmode_param + +This param is getting used by the entities that are displaying the checklist in their mainview. +They are returning their sys.presentationmode so we can use it in our contentProcess to check whether or not we are in the mainview to only then load the checklistEntryValues. +Currently it's not possible to check for the sys.presentationmode in here since it always returns null. \ No newline at end of file diff --git a/entity/ChecklistEntryValue_entity/recordcontainers/jdito/contentProcess.js b/entity/ChecklistEntryValue_entity/recordcontainers/jdito/contentProcess.js index 023eef27710a4453ef6dfa7b3edef5db0576fa32..d8dfabcf2b190e57fc95e1000b88ddf32fbfa1aa 100644 --- a/entity/ChecklistEntryValue_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/ChecklistEntryValue_entity/recordcontainers/jdito/contentProcess.js @@ -7,60 +7,63 @@ import("system.datetime"); import("Sql_lib"); import("ChecklistEntryRegistry_basic"); -var checklistIds = JSON.parse(vars.get("$param.ChecklistIds_param")); +var data = []; +if(vars.get("$param.Presentationmode_param") == "FULL") +{ + var checklistIds = JSON.parse(vars.get("$param.ChecklistIds_param")); -var data = newSelect([ - "CHECKLISTENTRYVALUE.CHECKLISTENTRYVALUEID", - "CHECKLISTENTRY.AUTO", - "CHECKLISTENTRY.CHECKLISTENTRYID", - "CHECKLISTENTRY.TITLE", - "CHECKLISTENTRY.FILTER_USED", - "CHECKLISTENTRY.COND", - "CHECKLISTENTRYVALUE.DONEUSER", - "CHECKLISTENTRYVALUE.DONEDATE", - "CHECKLISTENTRYVALUE.IS_FULFILLED", - "CHECKLISTENTRYVALUE.OBJECT_ROWID", - "CHECKLISTENTRYVALUE.OBJECT_TYPE", - "CHECKLISTENTRYVALUE.DATE_EDIT", - "CHECKLISTENTRYVALUE.DATE_NEW", - "CHECKLISTENTRYVALUE.USER_EDIT", - "CHECKLISTENTRYVALUE.USER_NEW" -]).from("CHECKLISTENTRY") -.leftJoin( - "CHECKLISTENTRYVALUE", - newWhere("CHECKLISTENTRYVALUE.CHECKLISTENTRY_ID = CHECKLISTENTRY.CHECKLISTENTRYID") - .and("CHECKLISTENTRYVALUE.OBJECT_ROWID", vars.get("$param.ObjectRowId_param")) - .andIfSet("CHECKLISTENTRYVALUE.OBJECT_TYPE", vars.get("$param.ObjectType_param")) -).whereIfSet("CHECKLISTENTRY.CHECKLIST_ID", checklistIds, SqlBuilder.IN()) -.orderBy("CHECKLISTENTRY.POS asc") -.table(); + data = newSelect([ + "CHECKLISTENTRYVALUE.CHECKLISTENTRYVALUEID", + "CHECKLISTENTRY.AUTO", + "CHECKLISTENTRY.CHECKLISTENTRYID", + "CHECKLISTENTRY.TITLE", + "CHECKLISTENTRY.FILTER_USED", + "CHECKLISTENTRY.COND", + "CHECKLISTENTRYVALUE.DONEUSER", + "CHECKLISTENTRYVALUE.DONEDATE", + "CHECKLISTENTRYVALUE.IS_FULFILLED", + "CHECKLISTENTRYVALUE.OBJECT_ROWID", + "CHECKLISTENTRYVALUE.OBJECT_TYPE", + "CHECKLISTENTRYVALUE.DATE_EDIT", + "CHECKLISTENTRYVALUE.DATE_NEW", + "CHECKLISTENTRYVALUE.USER_EDIT", + "CHECKLISTENTRYVALUE.USER_NEW" + ]).from("CHECKLISTENTRY") + .leftJoin( + "CHECKLISTENTRYVALUE", + newWhere("CHECKLISTENTRYVALUE.CHECKLISTENTRY_ID = CHECKLISTENTRY.CHECKLISTENTRYID") + .and("CHECKLISTENTRYVALUE.OBJECT_ROWID", vars.get("$param.ObjectRowId_param")) + .andIfSet("CHECKLISTENTRYVALUE.OBJECT_TYPE", vars.get("$param.ObjectType_param")) + ).whereIfSet("CHECKLISTENTRY.CHECKLIST_ID", checklistIds, SqlBuilder.IN()) + .orderBy("CHECKLISTENTRY.POS asc") + .table(); -for(let i = 0; i < data.length; i++) -{ - data[i][0] = data[i][0] || util.getNewUUID(); - data[i][3] = translate.text(data[i][3]); - data[i][8] = data[i][8] || "0"; - data[i][9] = data[i][9] || vars.get("$param.ObjectRowId_param"); - data[i][10] = data[i][10] || vars.get("$param.ObjectType_param"); - data[i][12] = data[i][12] || datetime.date(); - data[i][14] = data[i][14] || vars.get("$sys.user"); - - if(parseInt(data[i][1])) + for(let i = 0; i < data.length; i++) { - var checklistEntry; - if (Utils.toBoolean(data[i][4])) // FILTER_USED - { - checklistEntry = $ChecklistEntryRegistry["filter"](); - data[i][8] = checklistEntry.verifierFn(vars.get("$param.ObjectRowId_param"), vars.get("$param.ObjectType_param"), data[i][5]) ? "1" : "0"; - } - else + data[i][0] = data[i][0] || util.getNewUUID(); + data[i][3] = translate.text(data[i][3]); + data[i][8] = data[i][8] || "0"; + data[i][9] = data[i][9] || vars.get("$param.ObjectRowId_param"); + data[i][10] = data[i][10] || vars.get("$param.ObjectType_param"); + data[i][12] = data[i][12] || datetime.date(); + data[i][14] = data[i][14] || vars.get("$sys.user"); + + if(parseInt(data[i][1])) { - checklistEntry = $ChecklistEntryRegistry[data[i][3]](); - data[i][8] = checklistEntry.verifierFn(vars.get("$param.ObjectRowId_param")) ? "1" : "0"; - data[i][3] = checklistEntry.title; + var checklistEntry; + if (Utils.toBoolean(data[i][4])) // FILTER_USED + { + checklistEntry = $ChecklistEntryRegistry["filter"](); + data[i][8] = checklistEntry.verifierFn(vars.get("$param.ObjectRowId_param"), vars.get("$param.ObjectType_param"), data[i][5]) ? "1" : "0"; + } + else + { + checklistEntry = $ChecklistEntryRegistry[data[i][3]](); + data[i][8] = checklistEntry.verifierFn(vars.get("$param.ObjectRowId_param")) ? "1" : "0"; + data[i][3] = checklistEntry.title; + } } + data[i][15] = Utils.toBoolean(data[i][8]) ? "NEON:MQL" : ""; //icon } - data[i][15] = Utils.toBoolean(data[i][8]) ? "NEON:MQL" : ""; //icon } - result.object(data); diff --git a/entity/ChecklistEntryValue_entity/recordcontainers/jdito/rowCountProcess.js b/entity/ChecklistEntryValue_entity/recordcontainers/jdito/rowCountProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f4f77893f4f1042e9366d2de709a29bc1dbdf040 --- /dev/null +++ b/entity/ChecklistEntryValue_entity/recordcontainers/jdito/rowCountProcess.js @@ -0,0 +1,20 @@ +import("system.result"); +import("Sql_lib"); +import("system.vars"); + +var data = []; +if(vars.get("$param.Presentationmode_param") == "FULL") +{ + var checklistIds = JSON.parse(vars.get("$param.ChecklistIds_param")); + + data = newSelect("1") + .from("CHECKLISTENTRY") + .leftJoin( + "CHECKLISTENTRYVALUE", + newWhere("CHECKLISTENTRYVALUE.CHECKLISTENTRY_ID = CHECKLISTENTRY.CHECKLISTENTRYID") + .and("CHECKLISTENTRYVALUE.OBJECT_ROWID", vars.get("$param.ObjectRowId_param")) + .andIfSet("CHECKLISTENTRYVALUE.OBJECT_TYPE", vars.get("$param.ObjectType_param")) + ).whereIfSet("CHECKLISTENTRY.CHECKLIST_ID", checklistIds, SqlBuilder.IN()) + .table(); +} +result.object(data.length); \ No newline at end of file diff --git a/entity/Checklist_entity/onValidation.js b/entity/Checklist_entity/onValidation.js index bb96aaead786afa975ca5f16c64bb192c940c69c..6e96a4be9c95707686ffaccbb50086f31210da42 100644 --- a/entity/Checklist_entity/onValidation.js +++ b/entity/Checklist_entity/onValidation.js @@ -9,7 +9,7 @@ var validationString = ""; var context = vars.get("$field.CHECKLIST_CONTEXT"); if(context == "Salesproject") { - validationString = translate.text("A Phase filter has to be set when creating a checklistentry for the Salesproject context.") + validationString = translate.text("A Phase filter has to be set when creating a checklistentry for the Salesproject Context.") var childs = JSON.parse(vars.get("$field.COND"))["filter"]["childs"]; for (i = 0; i < childs.length; i++) diff --git a/entity/Competition_entity/entityfields/reason/displayValueProcess.js b/entity/Competition_entity/entityfields/reason/displayValueProcess.js index 04cf61d4794b75ff2b7357f562c3aeef19537451..8d62990a61b8cf202d84fb1af8efa98423cf7ea8 100644 --- a/entity/Competition_entity/entityfields/reason/displayValueProcess.js +++ b/entity/Competition_entity/entityfields/reason/displayValueProcess.js @@ -5,7 +5,7 @@ import("system.vars"); import("system.text"); var reasonViewValue = []; -var reasons = text.decodeMs(vars.get("$field.REASON")); +var reasons = text.decodeMS(vars.get("$field.REASON")); var reasonObject = vars.get("$property.REASON.dropDown"); diff --git a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod index 17f075c645ad79860c201c3534a6310a24fd70a4..1f4270024c189074fb928c3d230af6e1e498df48 100644 --- a/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod +++ b/entity/DocumentTemplate_entity/DocumentTemplate_entity.aod @@ -165,7 +165,6 @@ <onValueChangeTypes> <element>MASK</element> </onValueChangeTypes> - <onValidation></onValidation> </entityField> <entityConsumer> <name>DocumentTemplateTypeCategory</name> diff --git a/entity/DocumentTemplate_entity/entityfields/bindata/onValueChange.js b/entity/DocumentTemplate_entity/entityfields/bindata/onValueChange.js index b6482e533bfaca580e8687788e6860726fe8520f..0f764f5e3f168f6916af16d84e27a1fad880e478 100644 --- a/entity/DocumentTemplate_entity/entityfields/bindata/onValueChange.js +++ b/entity/DocumentTemplate_entity/entityfields/bindata/onValueChange.js @@ -6,7 +6,7 @@ import("system.vars"); // --> only set in $field.Content.valueProcess if $field.Content is null and set it from here only if MASK triggered change if((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)) { - [content, type] = DocumentTemplateUtils.getTemplateContent(vars.get("$field."), new FileUpload(vars.get("$local.value"))); + [content, type] = DocumentTemplateUtils.getTemplateContent(vars.get("$field.DOCUMENTTEMPLATEID"), new FileUpload(vars.get("$local.value"))); vars.set("$context.currentTemplateType", type); vars.set("$field.Content", content); diff --git a/entity/DocumentTemplate_entity/entityfields/classification/stateProcess.js b/entity/DocumentTemplate_entity/entityfields/classification/stateProcess.js index 3e355079f4d1a56e8cb0750909f476765d887614..6fcf14fa75d5ac836bd68df2ee8fed4bbc6835ae 100644 --- a/entity/DocumentTemplate_entity/entityfields/classification/stateProcess.js +++ b/entity/DocumentTemplate_entity/entityfields/classification/stateProcess.js @@ -4,10 +4,11 @@ import("system.vars"); import("system.result"); import("system.neon"); -if(vars.get("$field.KIND") == $KeywordRegistry.documentTemplateType$attachment() -|| vars.get("$field.KIND") == $KeywordRegistry.documentTemplateType$signature() -|| vars.get("$field.KIND") == $KeywordRegistry.documentTemplateType$replymail() - && vars.exists("$context.currentTemplateType") && vars.get("$context.currentTemplateType") != DocumentTemplate.types.ODT) +if((vars.get("$field.KIND") == $KeywordRegistry.documentTemplateType$attachment() + || vars.get("$field.KIND") == $KeywordRegistry.documentTemplateType$signature() + || vars.get("$field.KIND") == $KeywordRegistry.documentTemplateType$replymail()) +|| (vars.get("$field.KIND") == $KeywordRegistry.documentTemplateType$letter() + && vars.exists("$context.currentTemplateType") && vars.get("$context.currentTemplateType") != DocumentTemplate.types.ODT)) { result.string(neon.COMPONENTSTATE_DISABLED); } diff --git a/entity/EmployeeGroupContactRelation_entity/EmployeeGroupContactRelation_entity.aod b/entity/EmployeeGroupContactRelation_entity/EmployeeGroupContactRelation_entity.aod index 964b64aa8e9a81cfbe45a723b2cafad844a9d9c4..289e21e87ed155012e2ea6ba6403d1fafa0a0341 100644 --- a/entity/EmployeeGroupContactRelation_entity/EmployeeGroupContactRelation_entity.aod +++ b/entity/EmployeeGroupContactRelation_entity/EmployeeGroupContactRelation_entity.aod @@ -17,6 +17,7 @@ <consumer>Employees</consumer> <linkedContextProcess></linkedContextProcess> <displayValueProcess>%aditoprj%/entity/EmployeeGroupContactRelation_entity/entityfields/contact_id/displayValueProcess.js</displayValueProcess> + <onValidation>%aditoprj%/entity/EmployeeGroupContactRelation_entity/entityfields/contact_id/onValidation.js</onValidation> </entityField> <entityField> <name>EMPLOYEEGROUP_CONTACT_RELATIONID</name> diff --git a/entity/EmployeeGroupContactRelation_entity/entityfields/contact_id/onValidation.js b/entity/EmployeeGroupContactRelation_entity/entityfields/contact_id/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..89007aafec39152c565838fe3b89fdeefe7c4c3c --- /dev/null +++ b/entity/EmployeeGroupContactRelation_entity/entityfields/contact_id/onValidation.js @@ -0,0 +1,19 @@ +import("system.neon"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Sql_lib"); + +var sql = new SqlBuilder() + .selectCount("CONTACT_ID") + .from("EMPLOYEEGROUP_CONTACT_RELATION") + .where("EMPLOYEEGROUP_CONTACT_RELATION.CONTACT_ID", vars.get("$field.CONTACT_ID")) + .and("EMPLOYEEGROUP_CONTACT_RELATION.EMPLOYEEGROUP_ID", vars.get("$field.EMPLOYEEGROUP_ID")) + .andIfSet("EMPLOYEEGROUP_CONTACT_RELATION.EMPLOYEEGROUP_CONTACT_RELATIONID", vars.get("$field.EMPLOYEEGROUP_CONTACT_RELATIONID"),SqlBuilder.NOT_EQUAL()) + .cell(); + + +if (sql > 0 ) +{ + result.string(translate.text("Employee already selected") + "."); +} diff --git a/entity/EmployeeGroupRuleGroup_entity/EmployeeGroupRuleGroup_entity.aod b/entity/EmployeeGroupRuleGroup_entity/EmployeeGroupRuleGroup_entity.aod index b46580ea5bcf69b18c5cf43da210b641f11366d3..2d96b5aaf88b57df50d9a2aa00d84db3d68502d4 100644 --- a/entity/EmployeeGroupRuleGroup_entity/EmployeeGroupRuleGroup_entity.aod +++ b/entity/EmployeeGroupRuleGroup_entity/EmployeeGroupRuleGroup_entity.aod @@ -31,6 +31,7 @@ <name>NAME</name> <title>Name</title> <mandatory v="true" /> + <onValidation>%aditoprj%/entity/EmployeeGroupRuleGroup_entity/entityfields/name/onValidation.js</onValidation> </entityField> <entityConsumer> <name>EmpGroupRules</name> diff --git a/entity/EmployeeGroupRuleGroup_entity/entityfields/name/onValidation.js b/entity/EmployeeGroupRuleGroup_entity/entityfields/name/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..2e1930affbd4098a8d1ef811958273041ea1d9e8 --- /dev/null +++ b/entity/EmployeeGroupRuleGroup_entity/entityfields/name/onValidation.js @@ -0,0 +1,17 @@ +import("system.neon"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Sql_lib"); + +var sql = new SqlBuilder() + .selectCount("NAME") + .from("EMPLOYEEGROUP_RULEGROUP") + .where("EMPLOYEEGROUP_RULEGROUP.NAME", vars.get("$field.NAME")) + .and("EMPLOYEEGROUP_RULEGROUP.EMPLOYEEGROUP_RULEGROUPID", vars.get("sys.uid"),SqlBuilder.NOT()) + .cell(); + +if (sql > 0) +{ + result.string(translate.text("Name has to be unique") + "."); +} \ No newline at end of file diff --git a/entity/EmployeeGroupRule_entity/EmployeeGroupRule_entity.aod b/entity/EmployeeGroupRule_entity/EmployeeGroupRule_entity.aod index 1c235b5a30f278f46c5a6c593a7d1365e1c3b489..f53e3460a1c2478956099f11a8bb0c2109c89f9d 100644 --- a/entity/EmployeeGroupRule_entity/EmployeeGroupRule_entity.aod +++ b/entity/EmployeeGroupRule_entity/EmployeeGroupRule_entity.aod @@ -36,6 +36,7 @@ <name>NAME</name> <title>Name</title> <mandatory v="true" /> + <onValidation>%aditoprj%/entity/EmployeeGroupRule_entity/entityfields/name/onValidation.js</onValidation> </entityField> <entityProvider> <name>#PROVIDER_AGGREGATES</name> diff --git a/entity/EmployeeGroupRule_entity/entityfields/name/onValidation.js b/entity/EmployeeGroupRule_entity/entityfields/name/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..6cd8121c41e8437c62ae7265945b9ff48507a15e --- /dev/null +++ b/entity/EmployeeGroupRule_entity/entityfields/name/onValidation.js @@ -0,0 +1,16 @@ +import("system.neon"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Sql_lib"); + +var sql = new SqlBuilder() + .selectCount("NAME") + .from("EMPLOYEEGROUP_RULEGROUP") + .where("EMPLOYEEGROUP_RULEGROUP.NAME", vars.get("$field.NAME")) + .andIfSet("EMPLOYEEGROUP_RULEGROUP.EMPLOYEEGROUP_RULEGROUPID", vars.get("$field.EMPLOYEEGROUP_RULEGROUP_ID"),SqlBuilder.NOT_EQUAL()) + .cell(); +if (sql > 0) +{ + result.string(translate.text("Name has to be unique") + "."); +} \ No newline at end of file diff --git a/entity/EmployeeGroup_entity/EmployeeGroup_entity.aod b/entity/EmployeeGroup_entity/EmployeeGroup_entity.aod index 7166da239b1f917854bacf1061491d459ea2a1ad..da7a223f92849ab3bb95a659ecd53f8f30845bd7 100644 --- a/entity/EmployeeGroup_entity/EmployeeGroup_entity.aod +++ b/entity/EmployeeGroup_entity/EmployeeGroup_entity.aod @@ -21,6 +21,7 @@ <name>GROUPNAME</name> <title>Group name</title> <mandatory v="true" /> + <onValidation>%aditoprj%/entity/EmployeeGroup_entity/entityfields/groupname/onValidation.js</onValidation> </entityField> <entityProvider> <name>EmployeesGroups</name> diff --git a/entity/EmployeeGroup_entity/entityfields/groupname/onValidation.js b/entity/EmployeeGroup_entity/entityfields/groupname/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..2556968f99e2f972b472208d5405c38b5e4fbed3 --- /dev/null +++ b/entity/EmployeeGroup_entity/entityfields/groupname/onValidation.js @@ -0,0 +1,16 @@ +import("system.neon"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Sql_lib"); + +var sql = new SqlBuilder() + .selectCount("GROUPNAME") + .from("EMPLOYEEGROUP") + .where("EMPLOYEEGROUP.GROUPNAME", vars.get("$field.GROUPNAME")) + .and("EMPLOYEEGROUP.EMPLOYEEGROUPID", vars.get("sys.uid"),SqlBuilder.NOT()) + .cell(); +if (sql > 0) +{ + result.string(translate.text("Name has to be unique") + "."); +} \ No newline at end of file diff --git a/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod b/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod index 971d3efbf5b977a3fb4487665096b021cc0616fe..657050d20ec94a04c0eff6c74a61d1c7e04bb17e 100644 --- a/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod +++ b/entity/ExportTemplateField_entity/ExportTemplateField_entity.aod @@ -4,6 +4,11 @@ <title>Export Template Field</title> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/ExportTemplateField_entity/documentation.adoc</documentation> + <siblings> + <element>ExportTemplatePlaceOfUse_entity</element> + </siblings> + <grantUpdate v="false" /> + <contentTitleProcess>%aditoprj%/entity/ExportTemplateField_entity/contentTitleProcess.js</contentTitleProcess> <titlePlural>Export Template Fields</titlePlural> <recordContainer>db</recordContainer> <entityFields> @@ -29,13 +34,20 @@ <title>Field</title> <mandatory v="true" /> <dropDownProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/field/dropDownProcess.js</dropDownProcess> + <stateProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/field/stateProcess.js</stateProcess> + <displayValueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/field/displayValueProcess.js</displayValueProcess> + <onValueChangeTypes> + <element>MASK</element> + <element>PROCESS</element> + <element>PROCESS_SETVALUE</element> + </onValueChangeTypes> </entityField> <entityProvider> <name>ExportTemplateFields</name> <documentation>%aditoprj%/entity/ExportTemplateField_entity/entityfields/exporttemplatefields/documentation.adoc</documentation> </entityProvider> <entityParameter> - <name>ExportTemplateField_param</name> + <name>ExportTemplateId_param</name> <expose v="true" /> </entityParameter> <entityField> @@ -44,12 +56,75 @@ <contentType>NUMBER</contentType> <outputFormat>###</outputFormat> <inputFormat>###</inputFormat> - <mandatory v="true" /> + <mandatory v="false" /> </entityField> <entityProvider> <name>#PROVIDER_AGGREGATES</name> <useAggregates v="true" /> </entityProvider> + <entityField> + <name>DATE_NEW</name> + <valueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/date_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>DATE_EDIT</name> + <valueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/date_edit/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>USER_NEW</name> + <valueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/user_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>USER_EDIT</name> + <valueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/user_edit/valueProcess.js</valueProcess> + </entityField> + <entityConsumer> + <name>ExportTemplatePlacesOfUse</name> + <dependency> + <name>dependency</name> + <entityName>ExportTemplatePlaceOfUse_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + <children> + <entityParameter> + <name>ExportTemplateId_param</name> + <valueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityField> + <name>EXPORTTEMPLATEPLACEOFUSE_ID</name> + <title>Place of Use</title> + <consumer>ExportTemplatePlacesOfUse</consumer> + <mandatory v="true" /> + <onValueChange>%aditoprj%/entity/ExportTemplateField_entity/entityfields/exporttemplateplaceofuse_id/onValueChange.js</onValueChange> + </entityField> + <entityField> + <name>placeOfUse</name> + <title>Place of Use</title> + <valueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/placeofuse/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/placeofuse/displayValueProcess.js</displayValueProcess> + </entityField> + <entityActionGroup> + <name>MoveActions</name> + <title>Move</title> + <children> + <entityActionField> + <name>Down</name> + <title></title> + <onActionProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/onActionProcess.js</onActionProcess> + <iconId>VAADIN:ANGLE_DOWN</iconId> + <stateProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/stateProcess.js</stateProcess> + </entityActionField> + <entityActionField> + <name>Up</name> + <title></title> + <onActionProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/onActionProcess.js</onActionProcess> + <iconId>VAADIN:ANGLE_UP</iconId> + <stateProcess>%aditoprj%/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/stateProcess.js</stateProcess> + </entityActionField> + </children> + </entityActionGroup> </entityFields> <recordContainers> <dbRecordContainer> @@ -58,6 +133,8 @@ <isReadOnly v="false" /> <conditionProcess>%aditoprj%/entity/ExportTemplateField_entity/recordcontainers/db/conditionProcess.js</conditionProcess> <orderClauseProcess>%aditoprj%/entity/ExportTemplateField_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess> + <onDBInsert>%aditoprj%/entity/ExportTemplateField_entity/recordcontainers/db/onDBInsert.js</onDBInsert> + <onDBDelete>%aditoprj%/entity/ExportTemplateField_entity/recordcontainers/db/onDBDelete.js</onDBDelete> <alias>Data_alias</alias> <recordFieldMappings> <dbRecordFieldMapping> @@ -76,10 +153,30 @@ <name>SORTING.value</name> <recordfield>EXPORTTEMPLATEFIELD.SORTING</recordfield> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DATE_EDIT.value</name> + <recordfield>EXPORTTEMPLATEFIELD.DATE_EDIT</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DATE_NEW.value</name> + <recordfield>EXPORTTEMPLATEFIELD.DATE_NEW</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>USER_EDIT.value</name> + <recordfield>EXPORTTEMPLATEFIELD.USER_EDIT</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>USER_NEW.value</name> + <recordfield>EXPORTTEMPLATEFIELD.USER_NEW</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>EXPORTTEMPLATEPLACEOFUSE_ID.value</name> + <recordfield>EXPORTTEMPLATEFIELD.EXPORTTEMPLATEPLACEOFUSE_ID</recordfield> + </dbRecordFieldMapping> </recordFieldMappings> <linkInformation> <linkInformation> - <name>7236de85-f623-4f6a-9ff5-d9014a2f7a4c</name> + <name>4cec9829-254f-4588-9abf-a224a390a172</name> <tableName>EXPORTTEMPLATEFIELD</tableName> <primaryKey>EXPORTTEMPLATEFIELDID</primaryKey> <isUIDTable v="true" /> diff --git a/entity/MSTTeamLink_entity/entityfields/team_id_and_name/displayValueProcess.js b/entity/ExportTemplateField_entity/contentTitleProcess.js similarity index 53% rename from entity/MSTTeamLink_entity/entityfields/team_id_and_name/displayValueProcess.js rename to entity/ExportTemplateField_entity/contentTitleProcess.js index ada1bccad1d8dba906a5f5db4d9289e0abf3f44f..52bd0deb2169ccfd1f5d531869b4e2fe4304d298 100644 --- a/entity/MSTTeamLink_entity/entityfields/team_id_and_name/displayValueProcess.js +++ b/entity/ExportTemplateField_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ import("system.vars"); import("system.result"); -result.string(vars.get("$field.TEAMNAME")); \ No newline at end of file +result.string(vars.get("$field.FIELD")); \ No newline at end of file diff --git a/entity/ExportTemplateField_entity/entityfields/date_edit/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/date_edit/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2af46a8e46789056c6c341a8e4e087f8e1edc0c4 --- /dev/null +++ b/entity/ExportTemplateField_entity/entityfields/date_edit/valueProcess.js @@ -0,0 +1,8 @@ +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/ExportTemplateField_entity/entityfields/date_new/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/date_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d5cf2ff4f91546bf853125bec438493692a5e048 --- /dev/null +++ b/entity/ExportTemplateField_entity/entityfields/date_new/valueProcess.js @@ -0,0 +1,8 @@ +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/ExportTemplateField_entity/entityfields/exporttemplate_id/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/exporttemplate_id/valueProcess.js index 76dc5ef71d45ba4b444c21383abcbd8281f1e26f..fe71bb2cb95ec8ed9488118ac627cf17d082bc69 100644 --- a/entity/ExportTemplateField_entity/entityfields/exporttemplate_id/valueProcess.js +++ b/entity/ExportTemplateField_entity/entityfields/exporttemplate_id/valueProcess.js @@ -1,9 +1,10 @@ import("system.result"); import("system.neon"); import("system.vars"); +import("Util_lib"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +if(Utils.isNotNullOrEmptyString(vars.getString("$param.ExportTemplateId_param")) && Utils.isNullOrEmptyString(vars.getString("$this.value"))) { - if(vars.exists("$param.ExportTemplateField_param") && vars.get("$param.ExportTemplateField_param") != null) - result.string(vars.getString("$param.ExportTemplateField_param")); -} \ No newline at end of file + result.string(vars.getString("$param.ExportTemplateId_param")); +} + \ No newline at end of file diff --git a/entity/ExportTemplateField_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..be49d03de451c24366fc615db9b981efb4e15661 --- /dev/null +++ b/entity/ExportTemplateField_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$param.ExportTemplateId_param")) \ No newline at end of file diff --git a/entity/ExportTemplateField_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..be49d03de451c24366fc615db9b981efb4e15661 --- /dev/null +++ b/entity/ExportTemplateField_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$param.ExportTemplateId_param")) \ No newline at end of file diff --git a/entity/ExportTemplateField_entity/entityfields/field/displayValueProcess.js b/entity/ExportTemplateField_entity/entityfields/field/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..173f0d3ec44861d0b1c3e5c3da2a8ae9559e72ad --- /dev/null +++ b/entity/ExportTemplateField_entity/entityfields/field/displayValueProcess.js @@ -0,0 +1,18 @@ +import("system.result"); +import("system.project"); +import("Util_lib"); +import("system.vars"); +import("system.entities"); +import("Context_lib"); + +if (Utils.isNotNullOrEmptyString(vars.getString("$this.value"))) +{ + let type = vars.getString("$field.placeOfUse"); + + if (Utils.isNotNullOrEmptyString(type)) + { + var fields = project.getEntityStructure(ContextUtils.getEntity(type)).fields; + + result.string(fields[vars.getString("$this.value")].title); + } +} \ No newline at end of file diff --git a/entity/ExportTemplateField_entity/entityfields/field/dropDownProcess.js b/entity/ExportTemplateField_entity/entityfields/field/dropDownProcess.js index 3c830477d519292b231f502d1caa9cffc392f984..671728966e3d1b25b66fd779e4aad824133e89ab 100644 --- a/entity/ExportTemplateField_entity/entityfields/field/dropDownProcess.js +++ b/entity/ExportTemplateField_entity/entityfields/field/dropDownProcess.js @@ -1,15 +1,31 @@ +import("ExportTemplate_lib"); +import("Util_lib"); +import("system.vars"); +import("system.entities"); +import("Context_lib"); +import("system.project"); import("system.result"); import("Placeholder_lib"); -import("system.text") +import("system.text"); +let type = vars.getString("$field.placeOfUse"); -//The current selection of Exportfields is created by using the Placeholder function "PlaceholderUtils.getPlaceholders()". -//if you want to add more fields, you just have to add the function "CustomPlaceholderUtils.getPlaceholders()" to the dropDownProcess -//and add the desired Fields as placeholders in the CustomPlaceholder_lib. +if (!Utils.isNullOrEmpty(type)) +{ + var resultFields = []; + var entity = ContextUtils.getEntity(type); + var fields = project.getEntityStructure(entity).fields; + var excludeFields = ExportTemplateUtils.excludedFields()[entity] || []; + + for (var field in fields) + { + if (fields[field].fieldType == project.ENTITYFIELDTYPE_FIELD && excludeFields.indexOf(field) == -1) + { + let title = fields[field].title ? fields[field].title : fields[field].name; + resultFields.push([fields[field].name, title]); + } + + } - -var placeholders = PlaceholderUtils.getPlaceholders(null, true).map(function (placeholder){ - return [placeholder.getFormattedName(), placeholder.title || placeholder.getFormattedName()]; -}) - -result.object(placeholders); \ No newline at end of file + result.object(resultFields); +} diff --git a/entity/ExportTemplateField_entity/entityfields/field/stateProcess.js b/entity/ExportTemplateField_entity/entityfields/field/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..871d7d670a1603b16fc0a86ad3ad344a87eecba1 --- /dev/null +++ b/entity/ExportTemplateField_entity/entityfields/field/stateProcess.js @@ -0,0 +1,14 @@ +import("Util_lib"); +import("system.vars"); +import("system.result"); +import("system.neon"); + +if (Utils.isNullOrEmptyString(vars.get("$field.EXPORTTEMPLATEPLACEOFUSE_ID")) + && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + result.string(neon.COMPONENTSTATE_INVISIBLE); +} +else +{ + result.string(neon.COMPONENTSTATE_EDITABLE); +} diff --git a/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/onActionProcess.js b/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c06102416278aac37343d7c70a2151f57debd9f2 --- /dev/null +++ b/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/onActionProcess.js @@ -0,0 +1,15 @@ +import("system.vars"); +import("Sql_lib"); +import("system.neon"); + +// The sorting value of the following field is set to the current sorting value +newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID")) +.and("EXPORTTEMPLATEFIELD.SORTING", parseInt(vars.get("$field.SORTING")) + 1) +.updateFields({"SORTING":vars.get("$field.SORTING")}, "EXPORTTEMPLATEFIELD"); + +// The sorting is increased by one for the current field +newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID")) +.and("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEFIELDID", vars.get("$field.EXPORTTEMPLATEFIELDID")) +.updateFields({"SORTING":(parseInt(vars.get("$field.SORTING")) + 1)}, "EXPORTTEMPLATEFIELD"); + +neon.refreshAll(); \ No newline at end of file diff --git a/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/stateProcess.js b/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..aeb2fdc86a54722b08df6d06a7e6e99c691e8689 --- /dev/null +++ b/entity/ExportTemplateField_entity/entityfields/moveactions/children/down/stateProcess.js @@ -0,0 +1,14 @@ +import("Sql_lib"); +import("system.result"); +import("system.vars"); +import("system.neon"); + +let maxSorting = newSelect(new SqlMaskingUtils().max("SORTING")) +.from("EXPORTTEMPLATEFIELD") +.where("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID")) +.cell(); + +if (vars.get("$field.SORTING") == maxSorting) +{ + result.string(neon.COMPONENTSTATE_DISABLED); +} \ No newline at end of file diff --git a/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/onActionProcess.js b/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2835e61598f7386c73ac100e57f1ade18bc4d47e --- /dev/null +++ b/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/onActionProcess.js @@ -0,0 +1,13 @@ +import("system.vars"); +import("Sql_lib"); +import("system.neon"); + +newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID")) +.and("EXPORTTEMPLATEFIELD.SORTING", parseInt(vars.get("$field.SORTING")) - 1) +.updateFields({"SORTING":vars.get("$field.SORTING")}, "EXPORTTEMPLATEFIELD"); + +newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID")) +.and("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEFIELDID", vars.get("$field.EXPORTTEMPLATEFIELDID")) +.updateFields({"SORTING":(parseInt(vars.get("$field.SORTING")) - 1)}, "EXPORTTEMPLATEFIELD"); + +neon.refreshAll(); \ No newline at end of file diff --git a/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/stateProcess.js b/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..ff98b8b28e4578c4468b50ecef18acb36e628797 --- /dev/null +++ b/entity/ExportTemplateField_entity/entityfields/moveactions/children/up/stateProcess.js @@ -0,0 +1,9 @@ +import("Util_lib"); +import("system.result"); +import("system.vars"); +import("system.neon"); + +if (vars.get("$field.SORTING") == 1 || Utils.isNullOrEmpty(vars.get("$field.SORTING"))) +{ + result.string(neon.COMPONENTSTATE_DISABLED); +} \ No newline at end of file diff --git a/entity/ExportTemplateField_entity/entityfields/placeofuse/displayValueProcess.js b/entity/ExportTemplateField_entity/entityfields/placeofuse/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..1634464ae492abc975dd02449be0d684362faa23 --- /dev/null +++ b/entity/ExportTemplateField_entity/entityfields/placeofuse/displayValueProcess.js @@ -0,0 +1,11 @@ +import("Util_lib"); +import("system.vars"); +import("Context_lib"); +import("system.project"); +import("system.result"); + +if (Utils.isNotNullOrEmptyString(vars.getString("$this.value"))) +{ + let title = ContextUtils.getTranslatedTitle(vars.getString("$this.value")) || vars.getString("$this.value"); + result.string(title); +} \ No newline at end of file diff --git a/entity/ExportTemplateField_entity/entityfields/placeofuse/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/placeofuse/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6ff5f51c28d2599e9a73ee18b02d4d20a4bab195 --- /dev/null +++ b/entity/ExportTemplateField_entity/entityfields/placeofuse/valueProcess.js @@ -0,0 +1,22 @@ +import("Util_lib"); +import("system.result"); +import("system.entities"); +import("system.vars"); + +let loadConfig = entities.createConfigForLoadingConsumerRows() +.consumer("ExportTemplatePlacesOfUse") +.fields(["PLACEOFUSE", "#UID"]); + +let filtertConsumerRows = entities.getRows(loadConfig).find(_findUIDRow, { + UID: vars.get("$field.EXPORTTEMPLATEPLACEOFUSE_ID") +}); + +if (!Utils.isNullOrEmpty(filtertConsumerRows)) +{ + result.string(filtertConsumerRows["PLACEOFUSE"]); +} + +function _findUIDRow (pRow) +{ + return pRow["#UID"] === this.UID; +} \ No newline at end of file diff --git a/entity/ExportTemplateField_entity/entityfields/user_edit/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/user_edit/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..b874a7ac426b8e99383ac949299b9753e4951f2b --- /dev/null +++ b/entity/ExportTemplateField_entity/entityfields/user_edit/valueProcess.js @@ -0,0 +1,8 @@ +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/ExportTemplateField_entity/entityfields/user_new/valueProcess.js b/entity/ExportTemplateField_entity/entityfields/user_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..3f8db68b950a0505d6179cb67c14dde624c45070 --- /dev/null +++ b/entity/ExportTemplateField_entity/entityfields/user_new/valueProcess.js @@ -0,0 +1,8 @@ +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/ExportTemplateField_entity/recordcontainers/db/conditionProcess.js b/entity/ExportTemplateField_entity/recordcontainers/db/conditionProcess.js index 0a8fd4155c358a1f28eecdeba07050276ed58e5b..5195254f656b5dfbc0ad70e280064dcc56dc4458 100644 --- a/entity/ExportTemplateField_entity/recordcontainers/db/conditionProcess.js +++ b/entity/ExportTemplateField_entity/recordcontainers/db/conditionProcess.js @@ -2,6 +2,6 @@ import("system.vars"); import("system.result"); import("Sql_lib"); -var cond = newWhereIfSet("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", "$param.ExportTemplateField_param"); +var cond = newWhereIfSet("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", "$param.ExportTemplateId_param"); result.string(cond); diff --git a/entity/ExportTemplateField_entity/recordcontainers/db/onDBDelete.js b/entity/ExportTemplateField_entity/recordcontainers/db/onDBDelete.js new file mode 100644 index 0000000000000000000000000000000000000000..0ad3890b048495757cfe3eb70ac5d85356d19df0 --- /dev/null +++ b/entity/ExportTemplateField_entity/recordcontainers/db/onDBDelete.js @@ -0,0 +1,18 @@ +import("system.vars"); +import("Sql_lib"); +import("system.db"); + +let updateStatements = []; +let sorting = vars.get("$field.SORTING"); +let fields = newSelect("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEFIELDID") +.from("EXPORTTEMPLATEFIELD") +.where("EXPORTTEMPLATEFIELD.SORTING",sorting, SqlBuilder.GREATER()) +.and("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID")) +.orderBy("EXPORTTEMPLATEFIELD.SORTING").arrayColumn(); + +fields.forEach(function (pFieldId, pIndex){ + updateStatements.push(newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEFIELDID", pFieldId) + .buildUpdateStatement({"SORTING" : parseInt(sorting) + pIndex }, "EXPORTTEMPLATEFIELD")); +}); + +db.updates(updateStatements); \ No newline at end of file diff --git a/entity/ExportTemplateField_entity/recordcontainers/db/onDBInsert.js b/entity/ExportTemplateField_entity/recordcontainers/db/onDBInsert.js new file mode 100644 index 0000000000000000000000000000000000000000..f6607d593faf825e45e834c3bd225fc980dc5eca --- /dev/null +++ b/entity/ExportTemplateField_entity/recordcontainers/db/onDBInsert.js @@ -0,0 +1,13 @@ +import("system.vars"); +import("Sql_lib"); + +let sorting = newSelect([new SqlMaskingUtils().max("EXPORTTEMPLATEFIELD.SORTING")]) +.from("EXPORTTEMPLATEFIELD") +.where("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID")) +.cell(); + +sorting = parseInt(sorting); + +// The field is only sorted in the onInsert, so I can make sure that it is very likely that there are not two identical numbers. +newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEFIELDID", vars.get("$local.uid")) + .updateFields({"SORTING" : ((sorting ? sorting : 0) +1) }, "EXPORTTEMPLATEFIELD") \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod b/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod index 5ef84de7e6b853b11d7cf013ed96e5f854cb3ef9..c641aa1da42c27646c590d0659e150ec4a1a24f8 100644 --- a/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod +++ b/entity/ExportTemplatePlaceOfUse_entity/ExportTemplatePlaceOfUse_entity.aod @@ -4,18 +4,68 @@ <title>Place of Use</title> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/documentation.adoc</documentation> - <titlePlural>Places of Usage</titlePlural> + <siblings> + <element>ExportTemplateField_entity</element> + </siblings> + <grantUpdate v="false" /> + <contentTitleProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/contentTitleProcess.js</contentTitleProcess> + <titlePlural>Dependencies</titlePlural> <recordContainer>db</recordContainer> <entityFields> <entityProvider> <name>#PROVIDER</name> </entityProvider> + <entityActionField> + <name>openAdminView</name> + <title>Open admin view</title> + <onActionProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/onActionProcess.js</onActionProcess> + <isMenuAction v="true" /> + <isObjectAction v="true" /> + <iconId>VAADIN:CURLY_BRACKETS</iconId> + <stateProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/stateProcess.js</stateProcess> + </entityActionField> + <entityField> + <name>DATE_NEW</name> + <contentType>DATE</contentType> + <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/date_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>DATE_EDIT</name> + <contentType>DATE</contentType> + <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/date_edit/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>USER_NEW</name> + <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/user_new/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>USER_EDIT</name> + <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/user_edit/valueProcess.js</valueProcess> + </entityField> + <entityProvider> + <name>#PROVIDER_AGGREGATES</name> + <useAggregates v="true" /> + </entityProvider> <entityField> <name>EXPORTTEMPLATEPLACEOFUSEID</name> <title>EXPORTTEMPLATEPLACEOFUSEID</title> <mandatory v="true" /> <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuseid/valueProcess.js</valueProcess> </entityField> + <entityField> + <name>EXPORTTEMPLATEPLACEOFUSE_ID</name> + <title>Predecessor</title> + <consumer>ExportTemplatePlacesOfUse</consumer> + <mandatory v="true" /> + <mandatoryProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/mandatoryProcess.js</mandatoryProcess> + <stateProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/stateProcess.js</stateProcess> + <onValueChange>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/onValueChange.js</onValueChange> + <onValueChangeTypes> + <element>MASK</element> + <element>PROCESS</element> + <element>PROCESS_SETVALUE</element> + </onValueChangeTypes> + </entityField> <entityField> <name>EXPORTTEMPLATE_ID</name> <title>Exporttemplate</title> @@ -26,69 +76,124 @@ <name>PLACEOFUSE</name> <documentation>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/documentation.adoc</documentation> <title>Place of use</title> - <consumer>ContextExportTemplatePlaceOfUse</consumer> + <consumer>Contexts</consumer> <mandatory v="true" /> + <stateProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/stateProcess.js</stateProcess> + <titleProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/titleProcess.js</titleProcess> <displayValueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/displayValueProcess.js</displayValueProcess> + <onValueChange>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/onValueChange.js</onValueChange> + </entityField> + <entityField> + <name>OBJECT_FILTER</name> + <title>Filter</title> + <contentType>FILTER_TREE</contentType> + <stateProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/stateProcess.js</stateProcess> + <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/valueProcess.js</valueProcess> </entityField> + <entityParameter> + <name>ExportTemplateId_param</name> + <expose v="true" /> + <mandatory v="true" /> + </entityParameter> <entityConsumer> - <name>ContextExportTemplatePlaceOfUse</name> + <name>Contexts</name> <dependency> <name>dependency</name> <entityName>Context_entity</entityName> - <fieldName>ContextTemplatePlaceOfUse</fieldName> + <fieldName>Exclusive</fieldName> </dependency> <children> <entityParameter> <name>InvertBlacklist_param</name> - <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/contextexporttemplateplaceofuse/children/invertblacklist_param/valueProcess.js</valueProcess> + <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/contexts/children/invertblacklist_param/valueProcess.js</valueProcess> </entityParameter> <entityParameter> <name>Blacklist_param</name> - <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/contextexporttemplateplaceofuse/children/blacklist_param/valueProcess.js</valueProcess> + <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/contexts/children/blacklist_param/valueProcess.js</valueProcess> </entityParameter> </children> </entityConsumer> <entityParameter> - <name>ExportTemplatePlaceOfUse_param</name> + <name>ExportTemplatePlaceOfUseID_param</name> <expose v="true" /> </entityParameter> - <entityProvider> - <name>ExportTemplatePlaceOfUser</name> - <documentation>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuser/documentation.adoc</documentation> + <entityParameter> + <name>IsMainPlaceOfUse_param</name> + <expose v="true" /> + </entityParameter> + <entityConsumer> + <name>ExportTemplatePlacesOfUse</name> + <dependency> + <name>dependency</name> + <entityName>#ENTITY</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> <children> <entityParameter> - <name>ExportTemplatePlaceOfUse_param</name> - <expose v="true" /> + <name>ExportTemplatePlaceOfUseID_param</name> + </entityParameter> + <entityParameter> + <name>ExportTemplateId_param</name> + <valueProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js</valueProcess> </entityParameter> </children> - </entityProvider> - <entityProvider> - <name>#PROVIDER_AGGREGATES</name> - <useAggregates v="true" /> - </entityProvider> + </entityConsumer> + <entityField> + <name>TITLE</name> + </entityField> </entityFields> <recordContainers> <dbRecordContainer> <name>db</name> + <isPageable v="false" /> + <hasDependentRecords v="true" /> <conditionProcess>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/conditionProcess.js</conditionProcess> + <onDBDelete>%aditoprj%/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/onDBDelete.js</onDBDelete> <alias>Data_alias</alias> <recordFieldMappings> + <dbRecordFieldMapping> + <name>DATE_EDIT.value</name> + <recordfield>EXPORTTEMPLATEPLACEOFUSE.DATE_EDIT</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DATE_NEW.value</name> + <recordfield>EXPORTTEMPLATEPLACEOFUSE.DATE_NEW</recordfield> + </dbRecordFieldMapping> <dbRecordFieldMapping> <name>EXPORTTEMPLATE_ID.value</name> <recordfield>EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATE_ID</recordfield> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>EXPORTTEMPLATEPLACEOFUSE_ID.value</name> + <recordfield>EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSE_ID</recordfield> + </dbRecordFieldMapping> <dbRecordFieldMapping> <name>EXPORTTEMPLATEPLACEOFUSEID.value</name> <recordfield>EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSEID</recordfield> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>OBJECT_FILTER.value</name> + <recordfield>EXPORTTEMPLATEPLACEOFUSE.OBJECT_FILTER</recordfield> + </dbRecordFieldMapping> <dbRecordFieldMapping> <name>PLACEOFUSE.value</name> <recordfield>EXPORTTEMPLATEPLACEOFUSE.PLACEOFUSE</recordfield> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>USER_EDIT.value</name> + <recordfield>EXPORTTEMPLATEPLACEOFUSE.USER_EDIT</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>USER_NEW.value</name> + <recordfield>EXPORTTEMPLATEPLACEOFUSE.USER_NEW</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>TITLE.value</name> + </dbRecordFieldMapping> </recordFieldMappings> <linkInformation> <linkInformation> - <name>5e6f806e-c845-49ab-bfee-31b12e4c41f3</name> + <name>06fe6e4f-5ab7-404a-b820-7c23fc4a520b</name> <tableName>EXPORTTEMPLATEPLACEOFUSE</tableName> <primaryKey>EXPORTTEMPLATEPLACEOFUSEID</primaryKey> <isUIDTable v="true" /> diff --git a/entity/Salesproject_entity/entityfields/members/children/salesprojectcode_param/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/contentTitleProcess.js similarity index 51% rename from entity/Salesproject_entity/entityfields/members/children/salesprojectcode_param/valueProcess.js rename to entity/ExportTemplatePlaceOfUse_entity/contentTitleProcess.js index 598d579e335bcff49a488b488728055a608e6da4..a974c8c7914cd2c8cd3d56dbfd54a91f186dacfa 100644 --- a/entity/Salesproject_entity/entityfields/members/children/salesprojectcode_param/valueProcess.js +++ b/entity/ExportTemplatePlaceOfUse_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.result"); import("system.vars"); +import("system.result"); -result.string(vars.get("$field.PROJECTCODE")); \ No newline at end of file +result.string(vars.get("$field.PLACEOFUSE")); \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/documentation.adoc b/entity/ExportTemplatePlaceOfUse_entity/documentation.adoc deleted file mode 100644 index a61ae5a651de0f753557aa094ba139dc5c3957a5..0000000000000000000000000000000000000000 --- a/entity/ExportTemplatePlaceOfUse_entity/documentation.adoc +++ /dev/null @@ -1,9 +0,0 @@ -= ExportTemplatePlaceOfUse_entity - -Entity to select all Modules where the created template should be useable (to limit the availability in the modules). - -The selection of Places Of usage is created via the link to the context_entity and limiting it -by the Blacklist_param (which is being inverted to an whitelist thanks to the invertBlacklist_param). - -Linked via the ExportTemplateID to ExportTemplates. -Own dbTable and Entity are to make it possible to store multiple fields for one template. diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/contextexporttemplateplaceofuse/children/blacklist_param/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/contextexporttemplateplaceofuse/children/blacklist_param/valueProcess.js deleted file mode 100644 index 9e45ce3b6cda9f9cffa1f8c6046d4267f2eb0a61..0000000000000000000000000000000000000000 --- a/entity/ExportTemplatePlaceOfUse_entity/entityfields/contextexporttemplateplaceofuse/children/blacklist_param/valueProcess.js +++ /dev/null @@ -1,3 +0,0 @@ -import("system.result"); - -result.object(["Person", "Organisation"]); \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/contexts/children/blacklist_param/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/contexts/children/blacklist_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..289f1a413d80a3add469ae4915172a6776a54546 --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/contexts/children/blacklist_param/valueProcess.js @@ -0,0 +1,41 @@ +import("ExportTemplate_lib"); +import("Context_lib"); +import("Dependency_lib"); +import("Observation_lib"); +import("system.vars"); +import("system.result"); +import("Sql_lib") + +let placeOfUse; +let contexts = []; +let entityNames; + +if (vars.get("$field.EXPORTTEMPLATEPLACEOFUSE_ID")) +{ + placeOfUse = newSelect("EXPORTTEMPLATEPLACEOFUSE.PLACEOFUSE") + .from("EXPORTTEMPLATEPLACEOFUSE") + .where("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSEID", vars.get("$field.EXPORTTEMPLATEPLACEOFUSE_ID")) + .cell(); +} + +if (placeOfUse) +{ + entityNames = Dependency.getDependency(ContextUtils.getEntity(placeOfUse), { + "isExportable" : true + }); +} +else +{ + entityNames = ExportTemplateUtils.exportableEntities(); +} + +for (let i = 0; i < entityNames.length; i++) +{ + let context = ContextUtils.getContextId(entityNames[i]); + if (context) + { + contexts.push(context); + } +} + +result.string(JSON.stringify(contexts)); \ No newline at end of file diff --git a/entity/MSTTeam_entity/entityfields/teamsbyidandname/children/usecache_param/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/contexts/children/invertblacklist_param/valueProcess.js similarity index 100% rename from entity/MSTTeam_entity/entityfields/teamsbyidandname/children/usecache_param/valueProcess.js rename to entity/ExportTemplatePlaceOfUse_entity/entityfields/contexts/children/invertblacklist_param/valueProcess.js diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/date_edit/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/date_edit/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2af46a8e46789056c6c341a8e4e087f8e1edc0c4 --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/date_edit/valueProcess.js @@ -0,0 +1,8 @@ +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/ExportTemplatePlaceOfUse_entity/entityfields/date_new/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/date_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d5cf2ff4f91546bf853125bec438493692a5e048 --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/date_new/valueProcess.js @@ -0,0 +1,8 @@ +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/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplate_id/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplate_id/valueProcess.js index 7c84123ee891ea1b5d0719e8b77ae5cc7a0ca33b..d375ac965253d49ab53cd40c380df1e4bd9d8a88 100644 --- a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplate_id/valueProcess.js +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplate_id/valueProcess.js @@ -1,10 +1,9 @@ +import("Util_lib"); import("system.result"); import("system.neon"); import("system.vars"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +if(!Utils.isNullOrEmpty(vars.getString("$param.ExportTemplateId_param")) && Utils.isNullOrEmpty(vars.get("$this.value"))) { - if(vars.exists("$param.ExportTemplatePlaceOfUse_param") && vars.get("$param.ExportTemplatePlaceOfUse_param") != null - && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null) - result.string(vars.getString("$param.ExportTemplatePlaceOfUse_param")); + result.string(vars.getString("$param.ExportTemplateId_param")); } \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/mandatoryProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/mandatoryProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..fb63b4864fee1cabf68f849cdab01fe7a9ba8b0a --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/mandatoryProcess.js @@ -0,0 +1,5 @@ +import("Util_lib"); +import("system.vars"); +import("system.result"); + +result.string(!Utils.toBoolean(vars.get("$param.IsMainPlaceOfUse_param"))); \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/onValueChange.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/onValueChange.js new file mode 100644 index 0000000000000000000000000000000000000000..c570d33c4d73c61ecfacfa6a5b089dcfa4d96374 --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/onValueChange.js @@ -0,0 +1,5 @@ +import("Context_lib"); +import("system.vars"); + +// If the place of use of the export template is changed, the selected place of use no longer matches the parent. +vars.set("$field.PLACEOFUSE", null); \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/stateProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..924fa6c76f892bf6f5c14e1f10f6a4bf53b08547 --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuse_id/stateProcess.js @@ -0,0 +1,10 @@ +import("system.vars"); +import("Util_lib"); +import("system.result"); +import("system.neon"); + +// If this is the Main PlaceOfUse, there the parent One is null +if (Utils.toBoolean(vars.get("$param.IsMainPlaceOfUse_param"))) +{ + result.string(neon.COMPONENTSTATE_INVISIBLE); +} \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuseid/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuseid/valueProcess.js index d81b1c1049eb25c998728bf5e0b90bada3a24e8d..067717d36961db97edf8c1e05f4b43ead60a4b52 100644 --- a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuseid/valueProcess.js +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuseid/valueProcess.js @@ -4,4 +4,7 @@ import("system.util"); import("system.vars"); if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null) -result.string(util.getNewUUID()); \ No newline at end of file +{ + result.string(util.getNewUUID()); +} + diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuser/documentation.adoc b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuser/documentation.adoc deleted file mode 100644 index 9713220ef692ca2f93ca9047460db28270795e3c..0000000000000000000000000000000000000000 --- a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuser/documentation.adoc +++ /dev/null @@ -1,3 +0,0 @@ -= ExportTemplatePlaceOfUse_entity - ExportTemplatePlaceOfUser - -needed instead of the #PROVIDER so the ExportTemplatePlaceOfUse_param can be used \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..001cc890f029455658cd08a1d8ad7ce8259f24d7 --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplaceofuses/children/exporttemplateid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$param.ExportTemplateId_param")); \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..001cc890f029455658cd08a1d8ad7ce8259f24d7 --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$param.ExportTemplateId_param")); \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/stateProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..679e8717260d56278206209c3dc3b517dfe526b6 --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/stateProcess.js @@ -0,0 +1,17 @@ +import("Util_lib"); +import("system.neon"); +import("system.vars"); +import("system.result"); + +let state; + +if (!Utils.isNullOrEmpty(vars.get("$field.PLACEOFUSE")) && !Utils.isNullOrEmpty(vars.get("$field.EXPORTTEMPLATEPLACEOFUSE_ID"))) +{ + state = neon.COMPONENTSTATE_EDITABLE; +} +else +{ + state = neon.COMPONENTSTATE_INVISIBLE; +} + +result.string(state); \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..077a69be63354948d7599480c4bf234cfd9a72c6 --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/object_filter/valueProcess.js @@ -0,0 +1,18 @@ +import("JditoFilter_lib"); +import("Util_lib"); +import("Observation_lib"); +import("system.vars"); +import("system.result"); + +let resFilter; + +if (!Utils.isNullOrEmpty(vars.get("$this.value")) && !Utils.isNullOrEmpty(vars.get("$field.PLACEOFUSE"))) +{ + resFilter = JditoFilterUtils.getContextFilter(vars.get("$field.PLACEOFUSE"), null); +} + +if (resFilter) +{ + result.string(resFilter); +} + \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/onActionProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..be9984d0b0f68cabba9d60cd3404b7063374b4e3 --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/onActionProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("Context_lib"); + +AdminViewUtils.open("", []); \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/stateProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..38f2298db7304b4d44a15fbad7f720558c02da99 --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/openadminview/stateProcess.js @@ -0,0 +1,4 @@ +import("Context_lib"); +import("system.result"); + +result.string(AdminViewUtils.getActionState()); \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/displayValueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/displayValueProcess.js index dd3384b9ec0af65bca467795cd70e356e2e08fe4..dda429b59d3dc879f6d66653ed762fddfc26722e 100644 --- a/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/displayValueProcess.js +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/displayValueProcess.js @@ -1,8 +1,12 @@ +import("system.translate"); +import("Util_lib"); import("system.vars"); -import("system.result"); import("Context_lib"); +import("system.project"); +import("system.result"); -var placeOfUse = vars.get("$field.PLACEOFUSE"); - -if(placeOfUse) -result.string(ContextUtils.getTitle(placeOfUse, true)); \ No newline at end of file +if (Utils.isNotNullOrEmptyString(vars.getString("$this.value"))) +{ + let title = ContextUtils.getTranslatedTitle(vars.getString("$this.value")) || translate.text(vars.getString("$this.value")); + result.string(title); +} \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/documentation.adoc b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/documentation.adoc deleted file mode 100644 index 38a9ff1a0f6494d732d9d7fe50d771885f7496fa..0000000000000000000000000000000000000000 --- a/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/documentation.adoc +++ /dev/null @@ -1,4 +0,0 @@ -= PlaceOfuse - -The selection of Places Of usage is created via the link to the context_entity and limiting it -by the Blacklist_param (which is being inverted to an whitelist thanks to the invertBlacklist_param). \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/onValueChange.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/onValueChange.js new file mode 100644 index 0000000000000000000000000000000000000000..e96809eae5c79ded9a2456c13793f208f5f6faf6 --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/onValueChange.js @@ -0,0 +1,8 @@ +import("JditoFilter_lib"); +import("Util_lib"); +import("system.vars"); + +if (!Utils.isNullOrEmpty(vars.get("$field.EXPORTTEMPLATEPLACEOFUSE_ID"))) +{ + vars.set("$field.OBJECT_FILTER", JditoFilterUtils.getContextFilter(vars.get("$this.value"), null)); +} \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/stateProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..20fc8dccf50778351e6ffde02caa9518556780ea --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/stateProcess.js @@ -0,0 +1,21 @@ +import("Util_lib"); +import("system.neon"); +import("system.vars"); +import("system.result"); + +let state; + +if (!Utils.isNullOrEmpty(vars.get("$field.EXPORTTEMPLATEPLACEOFUSE_ID")) || Utils.toBoolean(vars.get("$param.IsMainPlaceOfUse_param"))) +{ + state = neon.COMPONENTSTATE_EDITABLE; +} +else if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + state = neon.COMPONENTSTATE_INVISIBLE; +} +else +{ + state = neon.COMPONENTSTATE_READONLY; +} + +result.string(state); \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/titleProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/titleProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..3ecda2e88772989f3e48f3ff3e482cfd6ac38b24 --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/placeofuse/titleProcess.js @@ -0,0 +1,9 @@ +import("system.translate"); +import("system.vars"); +import("Util_lib"); +import("system.result"); + +if (!Utils.toBoolean(vars.get("$param.IsMainPlaceOfUse_param"))) +{ + result.string(translate.text("Dependency")); +} \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/user_edit/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/user_edit/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..b874a7ac426b8e99383ac949299b9753e4951f2b --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/user_edit/valueProcess.js @@ -0,0 +1,8 @@ +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/ExportTemplatePlaceOfUse_entity/entityfields/user_new/valueProcess.js b/entity/ExportTemplatePlaceOfUse_entity/entityfields/user_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..3f8db68b950a0505d6179cb67c14dde624c45070 --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/entityfields/user_new/valueProcess.js @@ -0,0 +1,8 @@ +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/ExportTemplatePlaceOfUse_entity/recordcontainers/db/conditionProcess.js b/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/conditionProcess.js index 30942689497eb2091398b6c15fb77fa8267a5806..a3490df303d908344ba798f904a69a6076de4627 100644 --- a/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/conditionProcess.js +++ b/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/conditionProcess.js @@ -1,6 +1,21 @@ import("system.vars"); import("system.result"); import("Sql_lib"); +import("Util_lib"); -var cond = newWhereIfSet("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATE_ID", "$param.ExportTemplatePlaceOfUse_param"); -result.string(cond); \ No newline at end of file +let isMainPlaceOfUse = Utils.toBoolean(vars.get("$param.IsMainPlaceOfUse_param")); +let isParentPlaceOfUseIdFilled = Utils.toBoolean(vars.get("$param.ExportTemplatePlaceOfUseID_param")); +let exportTemplateId = vars.get("$param.ExportTemplateId_param"); + +let cond = newWhereIfSet("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATE_ID", exportTemplateId); + +if (isMainPlaceOfUse) +{ + cond.and("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSE_ID IS NULL"); +} +else if (isParentPlaceOfUseIdFilled) +{ + cond.and("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSE_ID IS NOT NULL"); +} + +result.string(cond.toString()); \ No newline at end of file diff --git a/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/onDBDelete.js b/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/onDBDelete.js new file mode 100644 index 0000000000000000000000000000000000000000..2bb03e6ffba889fd320be5ad65ae54bf965aa3a0 --- /dev/null +++ b/entity/ExportTemplatePlaceOfUse_entity/recordcontainers/db/onDBDelete.js @@ -0,0 +1,28 @@ +import("system.translate"); +import("system.question"); +import("system.db"); +import("system.vars"); +import("Sql_lib"); + +let countDeletedRows = newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEPLACEOFUSE_ID", vars.get("$field.EXPORTTEMPLATEPLACEOFUSEID")) +.and("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID")) +.deleteData(true, "EXPORTTEMPLATEFIELD"); + +if (countDeletedRows > 0) +{ + question.showMessage(translate.text("Deleting the dependency also deletes its fields."), question.INFORMATION, translate.text("Fields of Dependency")); + let updateStatements = []; + let fields = newSelect("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEFIELDID") + .from("EXPORTTEMPLATEFIELD") + .where("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", vars.get("$field.EXPORTTEMPLATE_ID")) + .orderBy("EXPORTTEMPLATEFIELD.SORTING").arrayColumn(); + + fields.forEach(function (pFieldId, pIndex){ + updateStatements.push(newWhere("EXPORTTEMPLATEFIELD.EXPORTTEMPLATEFIELDID", pFieldId) + .buildUpdateStatement({ + "SORTING" : pIndex + 1 + }, "EXPORTTEMPLATEFIELD")); + }); + //The gaps created by deleting the dependent fields are closed. + db.updates(updateStatements); +} diff --git a/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod b/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod index 5c5e00cfcb49e5cb3ae07a120b0e467b89041a00..7f406a333783ddf4fbdcdec44e903ae4d16f6345 100644 --- a/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod +++ b/entity/ExportTemplateSelection_entity/ExportTemplateSelection_entity.aod @@ -45,6 +45,14 @@ </entityParameter> </children> </entityConsumer> + <entityConsumer> + <name>Languages</name> + <dependency> + <name>dependency</name> + <entityName>Language_entity</entityName> + <fieldName>ISO3Name</fieldName> + </dependency> + </entityConsumer> <entityField> <name>UID</name> <state>EDITABLE</state> @@ -87,6 +95,19 @@ <name>#PROVIDER_AGGREGATES</name> <useAggregates v="true" /> </entityProvider> + <entityField> + <name>ISOLANGUAGE</name> + <consumer>Languages</consumer> + <state>INVISIBLE</state> + <valueProcess>%aditoprj%/entity/ExportTemplateSelection_entity/entityfields/isolanguage/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/ExportTemplateSelection_entity/entityfields/isolanguage/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>charset</name> + <title>Charset</title> + <dropDownProcess>%aditoprj%/entity/ExportTemplateSelection_entity/entityfields/charset/dropDownProcess.js</dropDownProcess> + <state>EDITABLE</state> + </entityField> </entityFields> <recordContainers> <datalessRecordContainer> diff --git a/entity/ExportTemplateSelection_entity/entityfields/charset/dropDownProcess.js b/entity/ExportTemplateSelection_entity/entityfields/charset/dropDownProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..3e47786c24e9684a064259923ad38c356aafaac2 --- /dev/null +++ b/entity/ExportTemplateSelection_entity/entityfields/charset/dropDownProcess.js @@ -0,0 +1,3 @@ +import("system.result"); + +result.object([["UTF-8", "UTF-8"]]); \ No newline at end of file diff --git a/entity/ExportTemplate_entity/entityfields/isolanguage/displayValueProcess.js b/entity/ExportTemplateSelection_entity/entityfields/isolanguage/displayValueProcess.js similarity index 100% rename from entity/ExportTemplate_entity/entityfields/isolanguage/displayValueProcess.js rename to entity/ExportTemplateSelection_entity/entityfields/isolanguage/displayValueProcess.js diff --git a/entity/ExportTemplate_entity/entityfields/isolanguage/valueProcess.js b/entity/ExportTemplateSelection_entity/entityfields/isolanguage/valueProcess.js similarity index 83% rename from entity/ExportTemplate_entity/entityfields/isolanguage/valueProcess.js rename to entity/ExportTemplateSelection_entity/entityfields/isolanguage/valueProcess.js index 2bb039c219ee635fbd789a66704d4f5dd483dbfb..574a9ebe136046ed2bccfcde532d19ee19ce53b7 100644 --- a/entity/ExportTemplate_entity/entityfields/isolanguage/valueProcess.js +++ b/entity/ExportTemplateSelection_entity/entityfields/isolanguage/valueProcess.js @@ -3,4 +3,7 @@ import("system.neon"); import("system.vars"); if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.getString("$this.value") == null) - result.string("deu"); \ No newline at end of file +{ + result.string("deu"); +} + \ No newline at end of file diff --git a/entity/ExportTemplateSelection_entity/entityfields/safeandexport/onActionProcess.js b/entity/ExportTemplateSelection_entity/entityfields/safeandexport/onActionProcess.js index 66ee0547575d06eeb39f33b7ede5258e639295dc..0f971c77dd629f6479980c7f816214ec4ca6dbd6 100644 --- a/entity/ExportTemplateSelection_entity/entityfields/safeandexport/onActionProcess.js +++ b/entity/ExportTemplateSelection_entity/entityfields/safeandexport/onActionProcess.js @@ -1,16 +1,30 @@ +import("system.process"); +import("Employee_lib"); import("system.neon"); import("system.vars"); import("ExportTemplate_lib"); var filename = vars.get("$field.FILENAME"); var templateId = vars.get("$field.EXPORTTEMPLATE_ID"); -var selection = vars.get("$field.selection"); +var selection = JSON.stringify(vars.get("$field.selection")); var comingFrom = vars.get("$field.comingfrom"); +var charset = vars.get("$field.charset"); if(templateId) { - var document = ExportTemplateUtils.buildExport(templateId, selection, comingFrom, filename); - neon.download(document.content, document.filename); + var user = EmployeeUtils.getCurrentUserId(); + var processConfig = process.createStartAsyncConfig() + .setName("buildExport_serverProcess") + .setLocalVariables({ + "selection" : selection, + "exportTemplateId" : templateId, + "charset" : charset, + "filename" : filename, + "user" : user + }) + .setUser(vars.get("$sys.user")); + process.startAsync(processConfig); //since we do not open something after the download we need to close the window where the action is placed neon.closeImage(vars.get("$sys.currentimage"), true); + } \ No newline at end of file diff --git a/entity/ExportTemplate_entity/ExportTemplate_entity.aod b/entity/ExportTemplate_entity/ExportTemplate_entity.aod index 48a62cdd0966b6bbe80a745fb17b579bcc982de5..4cea3664caaf81a16515e7a4967cde5cc2270001 100644 --- a/entity/ExportTemplate_entity/ExportTemplate_entity.aod +++ b/entity/ExportTemplate_entity/ExportTemplate_entity.aod @@ -36,14 +36,6 @@ <dropDownProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/fieldseparator/dropDownProcess.js</dropDownProcess> <textInputAllowed v="true" /> </entityField> - <entityField> - <name>ISOLANGUAGE</name> - <title>Language</title> - <consumer>Languages</consumer> - <mandatory v="true" /> - <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/isolanguage/valueProcess.js</valueProcess> - <displayValueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/isolanguage/displayValueProcess.js</displayValueProcess> - </entityField> <entityField> <name>DATE_EDIT</name> <contentType>DATE</contentType> @@ -63,17 +55,9 @@ <title>Description</title> <contentType>LONG_TEXT</contentType> </entityField> - <entityConsumer> - <name>Languages</name> - <dependency> - <name>dependency</name> - <entityName>Language_entity</entityName> - <fieldName>ISO3Name</fieldName> - </dependency> - </entityConsumer> <entityConsumer> <name>ExportTemplateFields</name> - <state>EDITABLE</state> + <refreshParent v="true" /> <dependency> <name>dependency</name> <entityName>ExportTemplateField_entity</entityName> @@ -81,7 +65,7 @@ </dependency> <children> <entityParameter> - <name>ExportTemplateField_param</name> + <name>ExportTemplateId_param</name> <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplatefield_param/valueProcess.js</valueProcess> <expose v="true" /> <documentation>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatefields/children/exporttemplatefield_param/documentation.adoc</documentation> @@ -93,21 +77,6 @@ <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplateids_param/valueProcess.js</valueProcess> <expose v="true" /> </entityParameter> - <entityConsumer> - <name>ExportTemplateplaceOfUseCon</name> - <dependency> - <name>dependency</name> - <entityName>ExportTemplatePlaceOfUse_entity</entityName> - <fieldName>ExportTemplatePlaceOfUser</fieldName> - </dependency> - <children> - <entityParameter> - <name>ExportTemplatePlaceOfUse_param</name> - <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplateplaceofusecon/children/exporttemplateplaceofuse_param/valueProcess.js</valueProcess> - <expose v="true" /> - </entityParameter> - </children> - </entityConsumer> <entityProvider> <name>ExportTemplateIDs</name> <documentation>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplateids/documentation.adoc</documentation> @@ -139,8 +108,8 @@ <textInputAllowed v="true" /> </entityField> <entityField> - <name>EXPORTTEMPLATE_OBJECTTYPE</name> - <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplate_objecttype/valueProcess.js</valueProcess> + <name>exportTemplateObjectType</name> + <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplateobjecttype/valueProcess.js</valueProcess> </entityField> <entityProvider> <name>#PROVIDER_AGGREGATES</name> @@ -153,6 +122,60 @@ <iconId>VAADIN:CURLY_BRACKETS</iconId> <stateProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/openadminview/stateProcess.js</stateProcess> </entityActionField> + <entityConsumer> + <name>ExportTemplatePlacesOfUse</name> + <refreshParent v="true" /> + <dependency> + <name>dependency</name> + <entityName>ExportTemplatePlaceOfUse_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + <children> + <entityParameter> + <name>ExportTemplateId_param</name> + <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>ExportTemplatePlaceOfUseID_param</name> + <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateplaceofuseid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>ExportTemplateMainPlaceOfUse</name> + <isOneToOneRelationship v="true" /> + <dependency> + <name>dependency</name> + <entityName>ExportTemplatePlaceOfUse_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + <children> + <entityParameter> + <name>ExportTemplateId_param</name> + <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatemainplaceofuse/children/exporttemplateid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>IsMainPlaceOfUse_param</name> + <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatemainplaceofuse/children/ismainplaceofuse_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>ExportTemplateFieldsPreview</name> + <documentation>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/documentation.adoc</documentation> + <state>READONLY</state> + <dependency> + <name>dependency</name> + <entityName>ExportTemplateField_entity</entityName> + <fieldName>ExportTemplateFields</fieldName> + </dependency> + <children> + <entityParameter> + <name>ExportTemplateId_param</name> + <valueProcess>%aditoprj%/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/children/exporttemplateid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> </entityFields> <recordContainers> <dbRecordContainer> @@ -170,12 +193,6 @@ <name>DATE_NEW.value</name> <recordfield>EXPORTTEMPLATE.DATE_NEW</recordfield> </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>ISOLANGUAGE.value</name> - <recordfield>EXPORTTEMPLATE.ISOLANGUAGE</recordfield> - <isFilterable v="true" /> - <isLookupFilter v="true" /> - </dbRecordFieldMapping> <dbRecordFieldMapping> <name>EXPORTTEMPLATEID.value</name> <recordfield>EXPORTTEMPLATE.EXPORTTEMPLATEID</recordfield> @@ -198,11 +215,6 @@ <name>DESCRIPTION.value</name> <recordfield>EXPORTTEMPLATE.DESCRIPTION</recordfield> </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>ISOLANGUAGE.displayValue</name> - <isFilterable v="true" /> - <isLookupFilter v="true" /> - </dbRecordFieldMapping> <dbRecordFieldMapping> <name>TITLE.displayValue</name> <isFilterable v="true" /> @@ -223,7 +235,7 @@ </recordFieldMappings> <linkInformation> <linkInformation> - <name>ce410f40-846b-43e6-9c30-150393cee43d</name> + <name>3b838097-7531-42c2-abee-db95cce7c729</name> <tableName>EXPORTTEMPLATE</tableName> <primaryKey>EXPORTTEMPLATEID</primaryKey> <isUIDTable v="true" /> diff --git a/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/children/exporttemplateid_param/valueProcess.js b/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/children/exporttemplateid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..3cbc49005642cf289c724b7b2de89a5db926e630 --- /dev/null +++ b/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/children/exporttemplateid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.EXPORTTEMPLATEID")); \ No newline at end of file diff --git a/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/documentation.adoc b/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..87813a66bc64775d1518863cda388c18721e1607 --- /dev/null +++ b/entity/ExportTemplate_entity/entityfields/exporttemplatefieldspreview/documentation.adoc @@ -0,0 +1 @@ +This Consumer is a Workaround for the fields in the preview so that they cannot be edited. \ No newline at end of file diff --git a/entity/ExportTemplate_entity/entityfields/exporttemplateplaceofusecon/children/exporttemplateplaceofuse_param/valueProcess.js b/entity/ExportTemplate_entity/entityfields/exporttemplatemainplaceofuse/children/exporttemplateid_param/valueProcess.js similarity index 100% rename from entity/ExportTemplate_entity/entityfields/exporttemplateplaceofusecon/children/exporttemplateplaceofuse_param/valueProcess.js rename to entity/ExportTemplate_entity/entityfields/exporttemplatemainplaceofuse/children/exporttemplateid_param/valueProcess.js diff --git a/entity/ExportTemplatePlaceOfUse_entity/entityfields/contextexporttemplateplaceofuse/children/invertblacklist_param/valueProcess.js b/entity/ExportTemplate_entity/entityfields/exporttemplatemainplaceofuse/children/ismainplaceofuse_param/valueProcess.js similarity index 100% rename from entity/ExportTemplatePlaceOfUse_entity/entityfields/contextexporttemplateplaceofuse/children/invertblacklist_param/valueProcess.js rename to entity/ExportTemplate_entity/entityfields/exporttemplatemainplaceofuse/children/ismainplaceofuse_param/valueProcess.js diff --git a/entity/ExportTemplate_entity/entityfields/exporttemplate_objecttype/valueProcess.js b/entity/ExportTemplate_entity/entityfields/exporttemplateobjecttype/valueProcess.js similarity index 100% rename from entity/ExportTemplate_entity/entityfields/exporttemplate_objecttype/valueProcess.js rename to entity/ExportTemplate_entity/entityfields/exporttemplateobjecttype/valueProcess.js diff --git a/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js b/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d8e00008de741ec03a1997e0bd169d0acd7f4cc7 --- /dev/null +++ b/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.vars"); + +result.string(vars.get("$field.EXPORTTEMPLATEID")); \ No newline at end of file diff --git a/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateplaceofuseid_param/valueProcess.js b/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateplaceofuseid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..9bdc0c36bbda23a5a14dc48d29423e1979f0ee01 --- /dev/null +++ b/entity/ExportTemplate_entity/entityfields/exporttemplateplacesofuse/children/exporttemplateplaceofuseid_param/valueProcess.js @@ -0,0 +1,9 @@ +import("Entity_lib"); +import("system.result"); + +// Transfer of the UID of the main place of use with the help of the consumer. +result.string(new EntityConsumerRowsHelper() + .consumer("ExportTemplateMainPlaceOfUse") + .fetchRowsFromConsumer() + .getRows()[0]["#UID"]); + \ No newline at end of file diff --git a/entity/ExportTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js b/entity/ExportTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js index 57784ebda7e75d58197542d071b5afb2a61cc74e..3832b22bd97d302fcdf45333a3240016072281d2 100644 --- a/entity/ExportTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js +++ b/entity/ExportTemplate_entity/recordcontainers/db/filterextensions/favorite_filter/filterConditionProcess.js @@ -6,7 +6,7 @@ import("Sql_lib"); var operator = vars.get("$local.operator"); var rawvalue = vars.get("$local.rawvalue"); -var objecttype = vars.get("$field.EXPORTTEMPLATE_OBJECTTYPE"); +var objecttype = vars.get("$field.exportTemplateObjectType"); var idcolumn = "EXPORTTEMPLATE.EXPORTTEMPLATEID"; result.string(FavoritesUtil.getFilterDisplayCondition(objecttype, operator, rawvalue, idcolumn)); \ No newline at end of file diff --git a/entity/InboxEmployeegroupRelation_entity/InboxEmployeegroupRelation_entity.aod b/entity/InboxEmployeegroupRelation_entity/InboxEmployeegroupRelation_entity.aod index 4bd204d10578d094b7334eb88b79edc1e3c08d80..bf862f146661c7997f952d398ddf0b1060464017 100644 --- a/entity/InboxEmployeegroupRelation_entity/InboxEmployeegroupRelation_entity.aod +++ b/entity/InboxEmployeegroupRelation_entity/InboxEmployeegroupRelation_entity.aod @@ -19,6 +19,7 @@ <title>Employee Group</title> <consumer>EmployeesGroupsForCompanyGroup</consumer> <displayValueProcess>%aditoprj%/entity/InboxEmployeegroupRelation_entity/entityfields/employeegroup_id/displayValueProcess.js</displayValueProcess> + <onValidation>%aditoprj%/entity/InboxEmployeegroupRelation_entity/entityfields/employeegroup_id/onValidation.js</onValidation> </entityField> <entityField> <name>INBOX_ID</name> diff --git a/entity/InboxEmployeegroupRelation_entity/entityfields/employeegroup_id/onValidation.js b/entity/InboxEmployeegroupRelation_entity/entityfields/employeegroup_id/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..a221833a595548cdf760326ff6ee505bba243ffd --- /dev/null +++ b/entity/InboxEmployeegroupRelation_entity/entityfields/employeegroup_id/onValidation.js @@ -0,0 +1,19 @@ +import("system.neon"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Sql_lib"); + + +var sql = new SqlBuilder() + .selectCount("EMPLOYEEGROUP_ID") + .from("INBOX_EMPLOYEEGROUP_RELATION") + .where("INBOX_EMPLOYEEGROUP_RELATION.EMPLOYEEGROUP_ID", vars.get("$field.EMPLOYEEGROUP_ID")) + .and("INBOX_EMPLOYEEGROUP_RELATION.INBOX_ID", vars.get("$field.INBOX_ID")) + .andIfSet("INBOX_EMPLOYEEGROUP_RELATION.INBOX_EMPLOYEEGROUP_RELATIONID", vars.get("$field.INBOX_EMPLOYEEGROUP_RELATIONID"),SqlBuilder.NOT_EQUAL()) + .cell(); + +if (sql > 0) +{ + result.string(translate.text("Employee group already selected") + "."); +} \ No newline at end of file diff --git a/entity/InboxFilterGroupRelation_entity/InboxFilterGroupRelation_entity.aod b/entity/InboxFilterGroupRelation_entity/InboxFilterGroupRelation_entity.aod index 633b529675e5237b28a01282ffb3ab5e539bb03f..bc52ff958a5b667ab02683c038b38a9e23ab1619 100644 --- a/entity/InboxFilterGroupRelation_entity/InboxFilterGroupRelation_entity.aod +++ b/entity/InboxFilterGroupRelation_entity/InboxFilterGroupRelation_entity.aod @@ -16,6 +16,8 @@ <name>INBOXFILTERGROUP_ID</name> <title>Inbox filter group</title> <consumer>InboxFilterGroups</consumer> + <displayValueProcess>%aditoprj%/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroup_id/displayValueProcess.js</displayValueProcess> + <onValidation>%aditoprj%/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroup_id/onValidation.js</onValidation> </entityField> <entityField> <name>INBOX_ID</name> @@ -78,7 +80,6 @@ </dbRecordFieldMapping> <dbRecordFieldMapping> <name>INBOXFILTERGROUP_ID.displayValue</name> - <expression>%aditoprj%/entity/InboxFilterGroupRelation_entity/recordcontainers/db/recordfieldmappings/inboxfiltergroup_id.displayvalue/expression.js</expression> </dbRecordFieldMapping> </recordFieldMappings> <linkInformation> diff --git a/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroup_id/displayValueProcess.js b/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroup_id/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..0f2db0bf1cddbe8f3c565406b434296eece29489 --- /dev/null +++ b/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroup_id/displayValueProcess.js @@ -0,0 +1,7 @@ +import("system.vars"); +import("system.result"); +import("Sql_lib"); + +result.string(newSelect("NAME") +.from("INBOXFILTERGROUP") +.where("INBOXFILTERGROUP.INBOXFILTERGROUPID", vars.get("$field.INBOXFILTERGROUP_ID")).cell()); \ No newline at end of file diff --git a/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroup_id/onValidation.js b/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroup_id/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..1d234c44a60d6d854f716b853f947d021ea8e13d --- /dev/null +++ b/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroup_id/onValidation.js @@ -0,0 +1,17 @@ +import("system.neon"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Sql_lib"); + +var sql = new SqlBuilder() + .selectCount("INBOXFILTERGROUP_ID") + .from("INBOXFILTERGROUP_RELATION") + .where("INBOXFILTERGROUP_RELATION.INBOXFILTERGROUP_ID", vars.get("$field.INBOXFILTERGROUP_ID")) + .cell(); + +if (sql > 0) +{ + result.string(translate.text("Rulegroup already selected") + "."); +} + diff --git a/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroups/children/excludeinboxfiltergroups_param/valueProcess.js b/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroups/children/excludeinboxfiltergroups_param/valueProcess.js index 52e04d7128121199cd05f34d3d5a6181f35c4f45..e743c07a2228759bd7bbde62ba333bafdabb1458 100644 --- a/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroups/children/excludeinboxfiltergroups_param/valueProcess.js +++ b/entity/InboxFilterGroupRelation_entity/entityfields/inboxfiltergroups/children/excludeinboxfiltergroups_param/valueProcess.js @@ -1,9 +1,11 @@ import("system.result"); import("system.vars"); +import("Sql_lib"); var sql = new SqlBuilder() .select("INBOXFILTERGROUP_RELATION.INBOXFILTERGROUP_ID") .from("INBOXFILTERGROUP_RELATION") - .where("INBOX_ID", vars.get("$param.InboxId_param")) - .arrayColumn(); -result.object(sql); \ No newline at end of file + .where("INBOXFILTERGROUP_RELATION.INBOX_ID", vars.get("$param.InboxId_param")) + .arrayColumn(); + +result.object(sql); diff --git a/entity/InboxFilterGroupRelation_entity/recordcontainers/db/recordfieldmappings/inboxfiltergroup_id.displayvalue/expression.js b/entity/InboxFilterGroupRelation_entity/recordcontainers/db/recordfieldmappings/inboxfiltergroup_id.displayvalue/expression.js deleted file mode 100644 index 234d5690451a6793590572b93a2e69423ab4c277..0000000000000000000000000000000000000000 --- a/entity/InboxFilterGroupRelation_entity/recordcontainers/db/recordfieldmappings/inboxfiltergroup_id.displayvalue/expression.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.result"); -import("Sql_lib"); - -result.string(newSelect("NAME") -.from("INBOXFILTERGROUP") -.where("INBOXFILTERGROUPID = INBOXFILTERGROUP_ID").toString()); \ No newline at end of file diff --git a/entity/InboxFilterGroup_entity/InboxFilterGroup_entity.aod b/entity/InboxFilterGroup_entity/InboxFilterGroup_entity.aod index a57f3d4421506abc8cacb5a7eb37236042ff4b64..e5c6a604f7c1fc270baf9f25ad5de3bd3df6b99f 100644 --- a/entity/InboxFilterGroup_entity/InboxFilterGroup_entity.aod +++ b/entity/InboxFilterGroup_entity/InboxFilterGroup_entity.aod @@ -26,6 +26,7 @@ <name>NAME</name> <title>Name</title> <mandatory v="true" /> + <onValidation>%aditoprj%/entity/InboxFilterGroup_entity/entityfields/name/onValidation.js</onValidation> </entityField> <entityField> <name>DATE</name> @@ -75,6 +76,9 @@ <name>PRIORITY</name> <title>Priority</title> <contentType>NUMBER</contentType> + <maxValue v="9999" /> + <minValue v="1" /> + <inputFormat>#</inputFormat> <onValidation>%aditoprj%/entity/InboxFilterGroup_entity/entityfields/priority/onValidation.js</onValidation> </entityField> <entityProvider> diff --git a/entity/InboxFilterGroup_entity/entityfields/name/onValidation.js b/entity/InboxFilterGroup_entity/entityfields/name/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..5f2a7b84bb1a7be48d3319a6978042734c878416 --- /dev/null +++ b/entity/InboxFilterGroup_entity/entityfields/name/onValidation.js @@ -0,0 +1,19 @@ +import("system.neon"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Sql_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + var sql = new SqlBuilder() + .selectCount("NAME") + .from("INBOXFILTERGROUP") + .where("INBOXFILTERGROUP.NAME", vars.get("$field.NAME")) + .cell(); + + if (sql > 0) + { + result.string(translate.text("Name has to be unique") + "."); + } +} diff --git a/entity/InboxFilterGroup_entity/recordcontainers/db/conditionProcess.js b/entity/InboxFilterGroup_entity/recordcontainers/db/conditionProcess.js index 79067f745f39cc71feb32de8cf86a3d9bfb87290..e729ee44133e252a15704c57c27d24bcaab28182 100644 --- a/entity/InboxFilterGroup_entity/recordcontainers/db/conditionProcess.js +++ b/entity/InboxFilterGroup_entity/recordcontainers/db/conditionProcess.js @@ -1,8 +1,13 @@ +import("system.vars"); import("system.result"); import("Sql_lib"); -var cond = newWhereIfSet("INBOXFILTERGROUP.INBOXFILTERGROUPID", "$param.ExcludeInboxFilterGroups_param",SqlBuilder.NOT_IN()); +if (vars.get("$param.ExcludeInboxFilterGroups_param")) +{ + var cond = newWhereIfSet("INBOXFILTERGROUP.INBOXFILTERGROUPID", [vars.get("$param.ExcludeInboxFilterGroups_param")],SqlBuilder.NOT_IN()); + result.string(cond.toString()); +} + + -result.string(cond.toString()); - diff --git a/entity/InboxFilter_entity/InboxFilter_entity.aod b/entity/InboxFilter_entity/InboxFilter_entity.aod index 5f4616f78ac646a858b79f7205f2a28dd5bcf259..cdd385f811b6ce55210bff0e99dc1e7f89cc28f7 100644 --- a/entity/InboxFilter_entity/InboxFilter_entity.aod +++ b/entity/InboxFilter_entity/InboxFilter_entity.aod @@ -20,7 +20,7 @@ </entityField> <entityField> <name>COMPONENT</name> - <title>Component</title> + <title>Search component</title> <consumer>KeywordComponent</consumer> <displayValueProcess>%aditoprj%/entity/InboxFilter_entity/entityfields/component/displayValueProcess.js</displayValueProcess> </entityField> diff --git a/entity/Inbox_entity/Inbox_entity.aod b/entity/Inbox_entity/Inbox_entity.aod index 4dafa5bfcb40428b30f89912a583ce12cca3034a..40918ab17a08543a1133feb0e3b085b96b8ab04f 100644 --- a/entity/Inbox_entity/Inbox_entity.aod +++ b/entity/Inbox_entity/Inbox_entity.aod @@ -4,6 +4,7 @@ <title>Inboxes</title> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/Inbox_entity/documentation.adoc</documentation> + <grantDelete v="false" /> <contentTitleProcess>%aditoprj%/entity/Inbox_entity/contentTitleProcess.js</contentTitleProcess> <iconId>VAADIN:ENVELOPES</iconId> <imageProcess>%aditoprj%/entity/Inbox_entity/imageProcess.js</imageProcess> @@ -20,11 +21,13 @@ <name>INBOXNAME</name> <title>Name</title> <mandatory v="true" /> + <onValidation>%aditoprj%/entity/Inbox_entity/entityfields/inboxname/onValidation.js</onValidation> </entityField> <entityField> <name>EMAILADDRESS</name> <title>E-Mail Adresse</title> <mandatory v="true" /> + <onValidation>%aditoprj%/entity/Inbox_entity/entityfields/emailaddress/onValidation.js</onValidation> </entityField> <entityField> <name>INBOXDATE</name> @@ -119,7 +122,7 @@ <dependency> <name>dependency</name> <entityName>SupportTicket_entity</entityName> - <fieldName>TicketsProvider</fieldName> + <fieldName>SupportTickets</fieldName> </dependency> <children> <entityParameter> @@ -201,12 +204,26 @@ <titleProcess>%aditoprj%/entity/Inbox_entity/entityfields/closure_dayspreview/titleProcess.js</titleProcess> <displayValueProcess>%aditoprj%/entity/Inbox_entity/entityfields/closure_dayspreview/displayValueProcess.js</displayValueProcess> </entityField> + <entityActionGroup> + <name>deleteActionGroup</name> + <children> + <entityActionField> + <name>deleteInbox</name> + <title>Delete Inbox</title> + <onActionProcess>%aditoprj%/entity/Inbox_entity/entityfields/deleteactiongroup/children/deleteinbox/onActionProcess.js</onActionProcess> + <isObjectAction v="false" /> + <selectionType>UNBOUND</selectionType> + <iconId>NEON:TRASH</iconId> + <titleProcess>%aditoprj%/entity/Inbox_entity/entityfields/deleteactiongroup/children/deleteinbox/titleProcess.js</titleProcess> + <tooltipProcess>%aditoprj%/entity/Inbox_entity/entityfields/deleteactiongroup/children/deleteinbox/tooltipProcess.js</tooltipProcess> + </entityActionField> + </children> + </entityActionGroup> </entityFields> <recordContainers> <dbRecordContainer> <name>db</name> <conditionProcess>%aditoprj%/entity/Inbox_entity/recordcontainers/db/conditionProcess.js</conditionProcess> - <onDBDelete>%aditoprj%/entity/Inbox_entity/recordcontainers/db/onDBDelete.js</onDBDelete> <alias>Data_alias</alias> <recordFieldMappings> <dbRecordFieldMapping> diff --git a/entity/Inbox_entity/entityfields/deleteactiongroup/children/deleteinbox/onActionProcess.js b/entity/Inbox_entity/entityfields/deleteactiongroup/children/deleteinbox/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..870ad8d179c7c96b10b89ffadcdfc571f4010857 --- /dev/null +++ b/entity/Inbox_entity/entityfields/deleteactiongroup/children/deleteinbox/onActionProcess.js @@ -0,0 +1,20 @@ +import("system.neon"); +import("system.translate"); +import("system.question"); +import("system.vars"); +import("system.db"); +import("Sql_lib"); + +var answer = question.askYesNo(translate.text("Confirmation dialog"), translate.withArguments("Do you really want to delete \"%0\"? If tickets still use this inbox, this might cause problems.", [vars.get("$field.INBOXNAME")]), false); + +if (answer == true){ + if (vars.get("$field.INBOXID")) + { + newWhereIfSet("INBOX.INBOXID", "$field.INBOXID").deleteData(true, "INBOX"); + newWhereIfSet("INBOX_EMPLOYEEGROUP_RELATION.INBOX_ID", "$field.INBOXID").deleteData(true, "INBOX_EMPLOYEEGROUP_RELATION"); + newWhereIfSet("INBOXFILTERGROUP_RELATION.INBOX_ID","$field.INBOXID").deleteData(true, "INBOXFILTERGROUP_RELATION"); + + question.showMessage(translate.withArguments("Inbox \"%0\" has been deleted.", [vars.get("$field.INBOXNAME")]), question.INFORMATION, translate.text("Successful")); + neon.refresh(); + } +} \ No newline at end of file diff --git a/entity/Inbox_entity/entityfields/deleteactiongroup/children/deleteinbox/titleProcess.js b/entity/Inbox_entity/entityfields/deleteactiongroup/children/deleteinbox/titleProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4c735eec0a19f45f6fb85acf727bdc1167ac935e --- /dev/null +++ b/entity/Inbox_entity/entityfields/deleteactiongroup/children/deleteinbox/titleProcess.js @@ -0,0 +1,5 @@ +import("system.translate"); +import("system.result"); + + +result.string(translate.text("Delete Inbox")); \ No newline at end of file diff --git a/entity/Inbox_entity/entityfields/deleteactiongroup/children/deleteinbox/tooltipProcess.js b/entity/Inbox_entity/entityfields/deleteactiongroup/children/deleteinbox/tooltipProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..aab4212fb6f2124ccf2bd5c28a309bc54d09ec4b --- /dev/null +++ b/entity/Inbox_entity/entityfields/deleteactiongroup/children/deleteinbox/tooltipProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("Remove Inbox and it's occurance in Tickets.")); \ No newline at end of file diff --git a/entity/Inbox_entity/entityfields/emailaddress/onValidation.js b/entity/Inbox_entity/entityfields/emailaddress/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..507d9d8532a1cbac486f4f2b758dcc2ccce54883 --- /dev/null +++ b/entity/Inbox_entity/entityfields/emailaddress/onValidation.js @@ -0,0 +1,37 @@ +import("KeywordRegistry_basic"); +import("Communication_lib"); +import("Keyword_lib"); +import("system.neon"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Sql_lib"); + +var sql = new SqlBuilder() + .selectCount("EMAIL_ADDRESS") + .from("INBOX") + .where("INBOX.EMAIL_ADDRESS", vars.get("$field.EMAILADDRESS")) + .andIfSet("INBOX.INBOXID", vars.get("$field.INBOXID"),SqlBuilder.NOT_EQUAL()) + .cell(); +if (sql > 0) +{ + result.string(translate.text("Email address has to be unique") + "."); +} + +var commMedium = "COMMEMAIL"; + +var keywordAttributes = KeywordUtils.getAttributeRelationsByKey(commMedium, $KeywordRegistry.communicationMedium()); +var commCategory = keywordAttributes.contentType || "TEXT"; + +var fn = CommValidationUtil.makeValidationFn(commCategory); +if (fn != null) +{ + var commAddr = vars.get("$local.value"); + var additional = CommValidationUtil.getExtensionsBlueprint(); + + var res = fn.call(null, commAddr, additional); + if (res != null) + { + result.string(res); + } +} \ No newline at end of file diff --git a/entity/Inbox_entity/entityfields/inboxname/onValidation.js b/entity/Inbox_entity/entityfields/inboxname/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..473fa0fa759bda8d0267ec9390156f30f0f688ce --- /dev/null +++ b/entity/Inbox_entity/entityfields/inboxname/onValidation.js @@ -0,0 +1,17 @@ +import("system.neon"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Sql_lib"); + +var sql = new SqlBuilder() + .selectCount("NAME") + .from("INBOX") + .where("INBOX.NAME", vars.get("$field.INBOXNAME")) + .andIfSet("INBOX.INBOXID", vars.get("$field.INBOXID"),SqlBuilder.NOT_EQUAL()) + .cell(); + +if (sql > 0) +{ + result.string(translate.text("Name has to be unique") + "."); +} \ No newline at end of file diff --git a/entity/Inbox_entity/recordcontainers/db/onDBDelete.js b/entity/Inbox_entity/recordcontainers/db/onDBDelete.js deleted file mode 100644 index 822cd6d44276a07416ff880be0be41a469ec0100..0000000000000000000000000000000000000000 --- a/entity/Inbox_entity/recordcontainers/db/onDBDelete.js +++ /dev/null @@ -1,10 +0,0 @@ -import("Sql_lib"); -import("system.vars"); -import("system.db"); - -let inboxID = vars.getString("$field.INBOXID"); -if(inboxID) -{ - newWhereIfSet("INBOX_EMPLOYEEGROUP_RELATION.INBOX_ID", inboxID).deleteData(); - newWhereIfSet("INBOXFIITERGROUP_RELATION.INBOX_ID",inboxID).deleteData(); -} \ No newline at end of file diff --git a/entity/Letter_entity/Letter_entity.aod b/entity/Letter_entity/Letter_entity.aod index ca8ce950d521606798a60856041330c7d396a368..b928cf5d32e9ff7583f67b026d9eec857d701b2e 100644 --- a/entity/Letter_entity/Letter_entity.aod +++ b/entity/Letter_entity/Letter_entity.aod @@ -40,6 +40,7 @@ <entityParameter> <name>IncludeDocumentTemplateIds_param</name> <valueProcess>%aditoprj%/entity/Letter_entity/entityfields/documenttemplates/children/includedocumenttemplateids_param/valueProcess.js</valueProcess> + <title></title> </entityParameter> </children> </entityConsumer> diff --git a/entity/Letter_entity/entityfields/documenttemplates/children/comingfrom_param/valueProcess.js b/entity/Letter_entity/entityfields/documenttemplates/children/comingfrom_param/valueProcess.js index 3e13e00bc051c6f70f830b1c02ab242268887787..489ff072d50288d03c732806a74e476c8eb99807 100644 --- a/entity/Letter_entity/entityfields/documenttemplates/children/comingfrom_param/valueProcess.js +++ b/entity/Letter_entity/entityfields/documenttemplates/children/comingfrom_param/valueProcess.js @@ -1,9 +1,4 @@ import("system.vars"); import("system.result"); -var actionName = vars.get("$param.ActionName_param") - -if(actionName != "ServiceLetter") -{ - result.string(vars.get("$field.comingfrom")); -} \ No newline at end of file +result.string(vars.get("$field.comingfrom")); \ No newline at end of file diff --git a/entity/Letter_entity/entityfields/documenttemplates/children/documenttemplatetype_param/valueProcess.js b/entity/Letter_entity/entityfields/documenttemplates/children/documenttemplatetype_param/valueProcess.js index 2db34ec5ae810d121fdab2280e91c78d72f5d1a2..11178b6b4c4b3854d383a9067877120aed771ccd 100644 --- a/entity/Letter_entity/entityfields/documenttemplates/children/documenttemplatetype_param/valueProcess.js +++ b/entity/Letter_entity/entityfields/documenttemplates/children/documenttemplatetype_param/valueProcess.js @@ -1,10 +1,4 @@ -import("system.vars"); import("KeywordRegistry_basic"); import("system.result"); -var actionName = vars.get("$param.ActionName_param") - -if (actionName != "ServiceLetter") -{ - result.string($KeywordRegistry.documentTemplateType$letter()); -} \ No newline at end of file +result.string($KeywordRegistry.documentTemplateType$letter()); diff --git a/entity/Letter_entity/entityfields/documenttemplates/children/includedocumenttemplateids_param/valueProcess.js b/entity/Letter_entity/entityfields/documenttemplates/children/includedocumenttemplateids_param/valueProcess.js index 87c558625abc2db1e8a706eecbeadc6335f2ccd2..2411e8b9b345db0ed5e6aa25842d28daec667994 100644 --- a/entity/Letter_entity/entityfields/documenttemplates/children/includedocumenttemplateids_param/valueProcess.js +++ b/entity/Letter_entity/entityfields/documenttemplates/children/includedocumenttemplateids_param/valueProcess.js @@ -11,10 +11,14 @@ if (actionName == "ServiceLetter") documenttemplates = newSelect("DOCUMENTTEMPLATEID") .from("DOCUMENTTEMPLATE") .leftJoin("DOCUMENTTEMPLATE_TICKETCATEGORY", "DOCUMENTTEMPLATE_ID = DOCUMENTTEMPLATEID") - .whereIfSet("DOCUMENTTEMPLATE.KIND", $KeywordRegistry.documentTemplateType$letter()) - .andIfSet("DOCUMENTTEMPLATE_TICKETCATEGORY.CLASSIFICATION", "$param.TicketCategory_param") - .or("DOCUMENTTEMPLATE.CLASSIFICATION", 10) + .where("DOCUMENTTEMPLATE.KIND", $KeywordRegistry.documentTemplateType$letter()) + .and(newWhere() + .or("DOCUMENTTEMPLATE.CLASSIFICATION", $KeywordRegistry.documentTemplateTypeCategory$singleall()) + .or("DOCUMENTTEMPLATE.CLASSIFICATION", $KeywordRegistry.documentTemplateTypeCategory$singleinternal()) + .or("DOCUMENTTEMPLATE.CLASSIFICATION", $KeywordRegistry.documentTemplateTypeCategory$singleexternal())) + .and(newWhere() .or("DOCUMENTTEMPLATE.ALL_TICKET_CATEGORIES", 1) + .or("DOCUMENTTEMPLATE_TICKETCATEGORY.CLASSIFICATION", "$param.TicketCategory_param")) .arrayColumn(); result.string(JSON.stringify(documenttemplates)); } diff --git a/entity/MSTTeamLink_entity/MSTTeamLink_entity.aod b/entity/MSTTeamLink_entity/MSTTeamLink_entity.aod deleted file mode 100644 index 6a6afa9c7844c229d0522147b4205702dbc1978d..0000000000000000000000000000000000000000 --- a/entity/MSTTeamLink_entity/MSTTeamLink_entity.aod +++ /dev/null @@ -1,114 +0,0 @@ -<?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.22" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.22"> - <name>MSTTeamLink_entity</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <documentation>%aditoprj%/entity/MSTTeamLink_entity/documentation.adoc</documentation> - <siblings> - <element>Salesproject_entity</element> - <element>Member_entity</element> - </siblings> - <afterUiInit>%aditoprj%/entity/MSTTeamLink_entity/afterUiInit.js</afterUiInit> - <recordContainer>db</recordContainer> - <entityFields> - <entityProvider> - <name>#PROVIDER</name> - </entityProvider> - <entityProvider> - <name>#PROVIDER_AGGREGATES</name> - <useAggregates v="true" /> - </entityProvider> - <entityField> - <name>MST_TEAMLINKID</name> - </entityField> - <entityField> - <name>MST_TEAM_ID</name> - <title>Team</title> - <mandatory v="true" /> - <valueProcess>%aditoprj%/entity/MSTTeamLink_entity/entityfields/mst_team_id/valueProcess.js</valueProcess> - </entityField> - <entityField> - <name>OBJECT_ROWID</name> - <valueProcess>%aditoprj%/entity/MSTTeamLink_entity/entityfields/object_rowid/valueProcess.js</valueProcess> - </entityField> - <entityField> - <name>OBJECT_TYPE</name> - <valueProcess>%aditoprj%/entity/MSTTeamLink_entity/entityfields/object_type/valueProcess.js</valueProcess> - </entityField> - <entityParameter> - <name>ObjectRowId_param</name> - <expose v="true" /> - </entityParameter> - <entityParameter> - <name>ObjectType_param</name> - <expose v="true" /> - </entityParameter> - <entityConsumer> - <name>Teams</name> - <dependency> - <name>dependency</name> - <entityName>MSTTeam_entity</entityName> - <fieldName>TeamsByIdAndName</fieldName> - </dependency> - </entityConsumer> - <entityField> - <name>TEAMNAME</name> - <valueProcess>%aditoprj%/entity/MSTTeamLink_entity/entityfields/teamname/valueProcess.js</valueProcess> - </entityField> - <entityField> - <name>TEAM_ID_AND_NAME</name> - <documentation>%aditoprj%/entity/MSTTeamLink_entity/entityfields/team_id_and_name/documentation.adoc</documentation> - <title>Team</title> - <consumer>Teams</consumer> - <valueProcess>%aditoprj%/entity/MSTTeamLink_entity/entityfields/team_id_and_name/valueProcess.js</valueProcess> - <displayValueProcess>%aditoprj%/entity/MSTTeamLink_entity/entityfields/team_id_and_name/displayValueProcess.js</displayValueProcess> - </entityField> - </entityFields> - <recordContainers> - <dbRecordContainer> - <name>db</name> - <fromClauseProcess>%aditoprj%/entity/MSTTeamLink_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess> - <conditionProcess>%aditoprj%/entity/MSTTeamLink_entity/recordcontainers/db/conditionProcess.js</conditionProcess> - <onDBInsert>%aditoprj%/entity/MSTTeamLink_entity/recordcontainers/db/onDBInsert.js</onDBInsert> - <onDBUpdate>%aditoprj%/entity/MSTTeamLink_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate> - <alias>Data_alias</alias> - <recordFieldMappings> - <dbRecordFieldMapping> - <name>MST_TEAMLINKID.value</name> - <recordfield>MST_TEAMLINK.MST_TEAMLINKID</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>MST_TEAM_ID.value</name> - <recordfield>MST_TEAMLINK.MST_TEAM_ID</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>OBJECT_ROWID.value</name> - <recordfield>MST_TEAMLINK.OBJECT_ROWID</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>OBJECT_TYPE.value</name> - <recordfield>MST_TEAMLINK.OBJECT_TYPE</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>TEAMNAME.value</name> - <recordfield>MST_TEAM.TEAMNAME</recordfield> - </dbRecordFieldMapping> - </recordFieldMappings> - <linkInformation> - <linkInformation> - <name>178230f3-4ee4-4ec0-a7f6-4f4ddddbbb22</name> - <tableName>MST_TEAMLINK</tableName> - <primaryKey>MST_TEAMLINKID</primaryKey> - <isUIDTable v="true" /> - <readonly v="false" /> - </linkInformation> - <linkInformation> - <name>53378325-f195-4eb3-9e22-68fd769eef03</name> - <tableName>MST_TEAM</tableName> - <primaryKey>MST_TEAMID</primaryKey> - <isUIDTable v="false" /> - <readonly v="true" /> - </linkInformation> - </linkInformation> - </dbRecordContainer> - </recordContainers> -</entity> diff --git a/entity/MSTTeamLink_entity/afterUiInit.js b/entity/MSTTeamLink_entity/afterUiInit.js deleted file mode 100644 index bac4e960d87d6ae60ae5e5d5f2fc506fdd3d191b..0000000000000000000000000000000000000000 --- a/entity/MSTTeamLink_entity/afterUiInit.js +++ /dev/null @@ -1,13 +0,0 @@ -import("system.vars"); -import("system.neon"); -import("system.entities"); - -//reload the teams once, because the cache might not be up-to-date -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) -{ - entities.invalidateCache("MSTTeam_entity", "jdito"); - entities.getRows(entities.createConfigForLoadingConsumerRows() - .consumer("Teams") - .fields(["UID", "TEAMNAME", "TEAMID_AND_NAME", "ISARCHIVED", "DESCRIPTION"]) - ); -} \ No newline at end of file diff --git a/entity/MSTTeamLink_entity/documentation.adoc b/entity/MSTTeamLink_entity/documentation.adoc deleted file mode 100644 index 55fcd72aba98ec0011c6562a4a81014327899e72..0000000000000000000000000000000000000000 --- a/entity/MSTTeamLink_entity/documentation.adoc +++ /dev/null @@ -1,3 +0,0 @@ -= MSTTeamLink_entity - -This entity represents a relation between a MST team and an object (e. g. a Sales Project). \ No newline at end of file diff --git a/entity/MSTTeamLink_entity/entityfields/mst_team_id/valueProcess.js b/entity/MSTTeamLink_entity/entityfields/mst_team_id/valueProcess.js deleted file mode 100644 index 8b66b4de6f181006ed9464bc5c730db279e5af42..0000000000000000000000000000000000000000 --- a/entity/MSTTeamLink_entity/entityfields/mst_team_id/valueProcess.js +++ /dev/null @@ -1,8 +0,0 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); -import("Util_lib"); - -var teamIdAndName = Utils.parseJSON(vars.get("$field.TEAM_ID_AND_NAME")); -if (teamIdAndName && (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)) - result.string(teamIdAndName[0]); \ No newline at end of file diff --git a/entity/MSTTeamLink_entity/entityfields/object_rowid/valueProcess.js b/entity/MSTTeamLink_entity/entityfields/object_rowid/valueProcess.js deleted file mode 100644 index 53123b405da6e47e653fc29b6ea5b1d7ab0b7aba..0000000000000000000000000000000000000000 --- a/entity/MSTTeamLink_entity/entityfields/object_rowid/valueProcess.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.neon"); -import("system.vars"); -import("system.result"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) - result.string(vars.get("$param.ObjectRowId_param")); \ No newline at end of file diff --git a/entity/MSTTeamLink_entity/entityfields/object_type/valueProcess.js b/entity/MSTTeamLink_entity/entityfields/object_type/valueProcess.js deleted file mode 100644 index 7f34d7fdb9049c4c3427fb40b45a320b1585d5b0..0000000000000000000000000000000000000000 --- a/entity/MSTTeamLink_entity/entityfields/object_type/valueProcess.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.neon"); -import("system.vars"); -import("system.result"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) - result.string(vars.get("$param.ObjectType_param")); \ No newline at end of file diff --git a/entity/MSTTeamLink_entity/entityfields/team_id_and_name/documentation.adoc b/entity/MSTTeamLink_entity/entityfields/team_id_and_name/documentation.adoc deleted file mode 100644 index 7ef07b42d0e7f4ddef718cf1cf07362e36866b23..0000000000000000000000000000000000000000 --- a/entity/MSTTeamLink_entity/entityfields/team_id_and_name/documentation.adoc +++ /dev/null @@ -1,7 +0,0 @@ -= TEAM_ID_AND_NAME - -This field is used for selecting a MST team for the teamLink. Because we need both the id and the name from the team, it can't be selected -directly in the MST_TEAM_ID field, which contains only the id (and fetching the name afterwards using the id would be rather slow). - -In new- or edit-mode, the two fields MST_TEAM_ID and TEAMNAME pull their values from this field. In view-mode, this field gets the value -from MST_TEAM_ID and TEAMNAME, because only these two fields are connected to the recordContainer. \ No newline at end of file diff --git a/entity/MSTTeamLink_entity/entityfields/team_id_and_name/valueProcess.js b/entity/MSTTeamLink_entity/entityfields/team_id_and_name/valueProcess.js deleted file mode 100644 index 94638c9fe9031b798104127c1426fc2d471dca36..0000000000000000000000000000000000000000 --- a/entity/MSTTeamLink_entity/entityfields/team_id_and_name/valueProcess.js +++ /dev/null @@ -1,7 +0,0 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); - -//in view-mode, load the values from the fields that are connected to the recordcontainer -if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW && vars.get("$sys.recordstate") != neon.OPERATINGSTATE_EDIT) - result.string(JSON.stringify([vars.get("$field.MST_TEAM_ID"), vars.get("$field.TEAMNAME")])); \ No newline at end of file diff --git a/entity/MSTTeamLink_entity/entityfields/teamname/valueProcess.js b/entity/MSTTeamLink_entity/entityfields/teamname/valueProcess.js deleted file mode 100644 index d3f581dba2d01626cb9050634dac3abba981f6ab..0000000000000000000000000000000000000000 --- a/entity/MSTTeamLink_entity/entityfields/teamname/valueProcess.js +++ /dev/null @@ -1,8 +0,0 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); -import("Util_lib"); - -var teamIdAndName = Utils.parseJSON(vars.get("$field.TEAM_ID_AND_NAME")); -if (teamIdAndName && (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT)) - result.string(teamIdAndName[1]); \ No newline at end of file diff --git a/entity/MSTTeamLink_entity/recordcontainers/db/conditionProcess.js b/entity/MSTTeamLink_entity/recordcontainers/db/conditionProcess.js deleted file mode 100644 index ad0a18104e1291790bd33463603537bce7c5914b..0000000000000000000000000000000000000000 --- a/entity/MSTTeamLink_entity/recordcontainers/db/conditionProcess.js +++ /dev/null @@ -1,7 +0,0 @@ -import("system.result"); -import("Sql_lib"); - -var condition = newWhereIfSet("MST_TEAMLINK.OBJECT_ROWID", "$param.ObjectRowId_param") - .andIfSet("MST_TEAMLINK.OBJECT_TYPE", "$param.ObjectType_param"); - -result.string(condition.toString(SqlBuilder.NORESULT_CONDITION())); \ No newline at end of file diff --git a/entity/MSTTeamLink_entity/recordcontainers/db/fromClauseProcess.js b/entity/MSTTeamLink_entity/recordcontainers/db/fromClauseProcess.js deleted file mode 100644 index 4457ba9b19fa0da6c133ce39565cb83164888cfb..0000000000000000000000000000000000000000 --- a/entity/MSTTeamLink_entity/recordcontainers/db/fromClauseProcess.js +++ /dev/null @@ -1,3 +0,0 @@ -import("system.result"); - -result.string("MST_TEAMLINK left join MST_TEAM on MST_TEAMLINK.MST_TEAM_ID = MST_TEAM.MST_TEAMID"); \ No newline at end of file diff --git a/entity/MSTTeamLink_entity/recordcontainers/db/onDBInsert.js b/entity/MSTTeamLink_entity/recordcontainers/db/onDBInsert.js deleted file mode 100644 index bf45fb336010b2db0a4ddc1e03a35ce009fb2c15..0000000000000000000000000000000000000000 --- a/entity/MSTTeamLink_entity/recordcontainers/db/onDBInsert.js +++ /dev/null @@ -1,12 +0,0 @@ -import("system.vars"); -import("MSTeams_lib"); - -var teamLinkId = vars.get("$local.uid"); -var rowData = vars.get("$local.rowdata"); -//if the linked context is configured to have just one teamLink but the object already has a teamLink, the old teamLink will be deleted -MSTeamsUtils.purgeCorruptTeamLinks(rowData["MST_TEAMLINK.OBJECT_ROWID"], rowData["MST_TEAMLINK.OBJECT_TYPE"], teamLinkId); - -MSTeamsUtils.insertTeamIfMissing({ - teamId: rowData["MST_TEAMLINK.MST_TEAM_ID"], - teamName: rowData["MST_TEAM.TEAMNAME"] -}); \ No newline at end of file diff --git a/entity/MSTTeamLink_entity/recordcontainers/db/onDBUpdate.js b/entity/MSTTeamLink_entity/recordcontainers/db/onDBUpdate.js deleted file mode 100644 index 61769345ec3f8bb71aad2e776267b4f5f009f185..0000000000000000000000000000000000000000 --- a/entity/MSTTeamLink_entity/recordcontainers/db/onDBUpdate.js +++ /dev/null @@ -1,9 +0,0 @@ -import("system.vars"); -import("MSTeams_lib"); - -var rowData = vars.get("$local.rowdata"); - -MSTeamsUtils.insertTeamIfMissing({ - teamId: rowData["MST_TEAMLINK.MST_TEAM_ID"], - teamName: rowData["MST_TEAM.TEAMNAME"] -}); \ No newline at end of file diff --git a/entity/MSTTeamMember_entity/MSTTeamMember_entity.aod b/entity/MSTTeamMember_entity/MSTTeamMember_entity.aod index 67663ffde3a52b12cb6949df2a2f618cebd4120e..d173fc4f9f989d1d9de5f9046dca945cabe1794c 100644 --- a/entity/MSTTeamMember_entity/MSTTeamMember_entity.aod +++ b/entity/MSTTeamMember_entity/MSTTeamMember_entity.aod @@ -12,47 +12,16 @@ </entityProvider> <entityField> <name>CONTACT_ID</name> - <title>Members</title> - <consumer>ProjectMembers</consumer> + <title>Contact</title> + <consumer>Persons</consumer> <linkedContextProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/contact_id/linkedContextProcess.js</linkedContextProcess> - <mandatory v="true" /> + <mandatoryProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/contact_id/mandatoryProcess.js</mandatoryProcess> <stateProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/contact_id/stateProcess.js</stateProcess> <displayValueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/contact_id/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>UID</name> </entityField> - <entityParameter> - <name>UpnsOfMembers_param</name> - <expose v="true" /> - </entityParameter> - <entityParameter> - <name>MailsOfExtern_param</name> - <expose v="true" /> - </entityParameter> - <entityConsumer> - <name>ProjectMembers</name> - <dependency> - <name>dependency</name> - <entityName>Member_entity</entityName> - <fieldName>TeamMemberProvider</fieldName> - </dependency> - <children> - <entityParameter> - <name>ObjectRowId_param</name> - <valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/projectmembers/children/objectrowid_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>ObjectType_param</name> - <valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/projectmembers/children/objecttype_param/valueProcess.js</valueProcess> - </entityParameter> - </children> - </entityConsumer> - <entityField> - <name>ISEXTERN</name> - <state>INVISIBLE</state> - <valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/isextern/valueProcess.js</valueProcess> - </entityField> <entityField> <name>MEMBERNAME</name> </entityField> @@ -76,37 +45,31 @@ <name>ROLE</name> <title>Role</title> <mandatory v="true" /> - <mandatoryProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/role/mandatoryProcess.js</mandatoryProcess> <dropDownProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/role/dropDownProcess.js</dropDownProcess> - <stateProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/role/stateProcess.js</stateProcess> <valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/role/valueProcess.js</valueProcess> </entityField> - <entityField> - <name>INVITE</name> - <title>Invitation</title> - <mandatoryProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/invite/mandatoryProcess.js</mandatoryProcess> - <dropDownProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/invite/dropDownProcess.js</dropDownProcess> - <stateProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/invite/stateProcess.js</stateProcess> - <valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/invite/valueProcess.js</valueProcess> - </entityField> <entityProvider> <name>#PROVIDER_AGGREGATES</name> <useAggregates v="true" /> </entityProvider> - <entityField> - <name>AZUREID</name> - <state>INVISIBLE</state> - <valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/azureid/valueProcess.js</valueProcess> - </entityField> - <entityField> - <name>AZUREUPN</name> - <state>INVISIBLE</state> - <valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/azureupn/valueProcess.js</valueProcess> - </entityField> - <entityField> - <name>AZURE_DATA</name> - <valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/azure_data/valueProcess.js</valueProcess> - </entityField> + <entityParameter> + <name>ContactIds_param</name> + <expose v="true" /> + </entityParameter> + <entityConsumer> + <name>Persons</name> + <dependency> + <name>dependency</name> + <entityName>Person_entity</entityName> + <fieldName>Contacts</fieldName> + </dependency> + <children> + <entityParameter> + <name>OnlyShowContactIds_param</name> + <valueProcess>%aditoprj%/entity/MSTTeamMember_entity/entityfields/persons/children/onlyshowcontactids_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> </entityFields> <recordContainers> <jDitoRecordContainer> @@ -127,18 +90,9 @@ <jDitoRecordFieldMapping> <name>ROLE.value</name> </jDitoRecordFieldMapping> - <jDitoRecordFieldMapping> - <name>ROLE.displayValue</name> - </jDitoRecordFieldMapping> <jDitoRecordFieldMapping> <name>CONTACT_ID.value</name> </jDitoRecordFieldMapping> - <jDitoRecordFieldMapping> - <name>CONTACT_ID.displayValue</name> - </jDitoRecordFieldMapping> - <jDitoRecordFieldMapping> - <name>ISEXTERN.value</name> - </jDitoRecordFieldMapping> </recordFieldMappings> </jDitoRecordContainer> </recordContainers> diff --git a/entity/MSTTeamMember_entity/entityfields/azure_data/valueProcess.js b/entity/MSTTeamMember_entity/entityfields/azure_data/valueProcess.js deleted file mode 100644 index 2df756b62a28fb058c3cec8a2df5de3090bf9538..0000000000000000000000000000000000000000 --- a/entity/MSTTeamMember_entity/entityfields/azure_data/valueProcess.js +++ /dev/null @@ -1,16 +0,0 @@ -import("system.result"); -import("system.neon"); -import("system.tools"); -import("system.vars"); -import("Employee_lib"); - -var contactId = vars.get("$field.CONTACT_ID"); -var user = EmployeeUtils.getUserByContactId(contactId); -var azureId = user ? user[tools.PARAMS][tools.TEAMS_AZUREID] : ""; -var azureUpn = user ? user[tools.PARAMS][tools.TEAMS_AZUREUPN] : ""; - -var azureData = { - azureId: azureId, - azureUpn: azureUpn -}; -result.string(JSON.stringify(azureData)); \ No newline at end of file diff --git a/entity/MSTTeamMember_entity/entityfields/azureid/valueProcess.js b/entity/MSTTeamMember_entity/entityfields/azureid/valueProcess.js deleted file mode 100644 index 7744184c730b891e88e88ada811a017db109b03d..0000000000000000000000000000000000000000 --- a/entity/MSTTeamMember_entity/entityfields/azureid/valueProcess.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.result"); -import("Util_lib"); -import("system.vars"); - -var azureData = Utils.parseJSON(vars.get("$field.AZURE_DATA")); -result.string(azureData ? azureData.azureId : ""); \ No newline at end of file diff --git a/entity/MSTTeamMember_entity/entityfields/azureupn/valueProcess.js b/entity/MSTTeamMember_entity/entityfields/azureupn/valueProcess.js deleted file mode 100644 index 554d4e727325955acb211567d4ea1878a534128c..0000000000000000000000000000000000000000 --- a/entity/MSTTeamMember_entity/entityfields/azureupn/valueProcess.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.result"); -import("Util_lib"); -import("system.vars"); - -var azureData = Utils.parseJSON(vars.get("$field.AZURE_DATA")); -result.string(azureData ? azureData.azureUpn : ""); \ No newline at end of file diff --git a/entity/MSTTeamMember_entity/entityfields/contact_id/mandatoryProcess.js b/entity/MSTTeamMember_entity/entityfields/contact_id/mandatoryProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..a8455294663ed399493e79ad2f1788b0e71ff96d --- /dev/null +++ b/entity/MSTTeamMember_entity/entityfields/contact_id/mandatoryProcess.js @@ -0,0 +1,6 @@ +import("system.result"); +import("system.vars"); + +// if membername is present the contact_id is invisible (and thus not mandatory) +// because we cannot resolve an ms-teams user into an adito contact +result.string(!vars.get("$field.MEMBERNAME")); diff --git a/entity/MSTTeamMember_entity/entityfields/contact_id/stateProcess.js b/entity/MSTTeamMember_entity/entityfields/contact_id/stateProcess.js index 53c48b1aa60c14977805717d383efb2668f5bd64..43cc1f51d3ba4e9b4b0becddb76cbfec0e93593a 100644 --- a/entity/MSTTeamMember_entity/entityfields/contact_id/stateProcess.js +++ b/entity/MSTTeamMember_entity/entityfields/contact_id/stateProcess.js @@ -2,4 +2,10 @@ import("system.result"); import("system.neon"); import("system.vars"); -result.string(vars.get("$field.MEMBERNAME") ? neon.COMPONENTSTATE_READONLY : neon.COMPONENTSTATE_EDITABLE); \ No newline at end of file +// if a mebername exists the user cant be edited because its allready synced with teams´ +var res = neon.COMPONENTSTATE_EDITABLE; +if(vars.get("$field.MEMBERNAME")) +{ + res = neon.COMPONENTSTATE_READONLY; +} +result.string(res); diff --git a/entity/MSTTeamMember_entity/entityfields/invite/dropDownProcess.js b/entity/MSTTeamMember_entity/entityfields/invite/dropDownProcess.js deleted file mode 100644 index 0a4ec38e3c77cac49e9a94b463d4c483a63715a7..0000000000000000000000000000000000000000 --- a/entity/MSTTeamMember_entity/entityfields/invite/dropDownProcess.js +++ /dev/null @@ -1,7 +0,0 @@ -import("system.result"); -import("system.translate"); - -result.object([ - ["true", translate.text("Invite")], - ["false", translate.text("Don't invite")] -]); \ No newline at end of file diff --git a/entity/MSTTeamMember_entity/entityfields/invite/mandatoryProcess.js b/entity/MSTTeamMember_entity/entityfields/invite/mandatoryProcess.js deleted file mode 100644 index 488ee5dc7e0ad5e6122271731fa275245d7057e6..0000000000000000000000000000000000000000 --- a/entity/MSTTeamMember_entity/entityfields/invite/mandatoryProcess.js +++ /dev/null @@ -1,5 +0,0 @@ -import("Util_lib"); -import("system.vars"); -import("system.result"); - -result.string(Utils.toBoolean(vars.get("$field.ISEXTERN"))); \ No newline at end of file diff --git a/entity/MSTTeamMember_entity/entityfields/invite/stateProcess.js b/entity/MSTTeamMember_entity/entityfields/invite/stateProcess.js deleted file mode 100644 index 37feecaa37dcd3ffed35221ff2e9157477fa6f4e..0000000000000000000000000000000000000000 --- a/entity/MSTTeamMember_entity/entityfields/invite/stateProcess.js +++ /dev/null @@ -1,5 +0,0 @@ -import("system.result"); -import("system.vars"); -import("system.neon"); - -result.string(vars.get("$field.MEMBERNAME") || vars.get("$field.ISEXTERN") != "true" ? neon.COMPONENTSTATE_INVISIBLE : neon.COMPONENTSTATE_EDITABLE); \ No newline at end of file diff --git a/entity/MSTTeamMember_entity/entityfields/invite/valueProcess.js b/entity/MSTTeamMember_entity/entityfields/invite/valueProcess.js deleted file mode 100644 index 516e09d60f21ed6d91e8f27b41593afec8f686ff..0000000000000000000000000000000000000000 --- a/entity/MSTTeamMember_entity/entityfields/invite/valueProcess.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.neon"); -import("system.vars"); -import("system.result"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null) - result.string(false); \ No newline at end of file diff --git a/entity/MSTTeamMember_entity/entityfields/isextern/valueProcess.js b/entity/MSTTeamMember_entity/entityfields/isextern/valueProcess.js deleted file mode 100644 index c2bd7034a52ed887060a47de48959ab0db7792f5..0000000000000000000000000000000000000000 --- a/entity/MSTTeamMember_entity/entityfields/isextern/valueProcess.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.result"); -import("Util_lib"); -import("system.vars"); - -var azureData = Utils.parseJSON(vars.get("$field.AZURE_DATA")); -result.string(!azureData || !(azureData.azureId || azureData.azureUpn)); \ No newline at end of file diff --git a/entity/MSTTeamMember_entity/entityfields/persons/children/onlyshowcontactids_param/valueProcess.js b/entity/MSTTeamMember_entity/entityfields/persons/children/onlyshowcontactids_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..b806067ae4c101ba28ef6c35e2196567310bbc89 --- /dev/null +++ b/entity/MSTTeamMember_entity/entityfields/persons/children/onlyshowcontactids_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.vars"); + +result.string(vars.get("$param.ContactIds_param")); diff --git a/entity/MSTTeamMember_entity/entityfields/projectmembers/children/objectrowid_param/valueProcess.js b/entity/MSTTeamMember_entity/entityfields/projectmembers/children/objectrowid_param/valueProcess.js deleted file mode 100644 index f21aa5c2a735e552ff099c71fed0cd5fd88cbca1..0000000000000000000000000000000000000000 --- a/entity/MSTTeamMember_entity/entityfields/projectmembers/children/objectrowid_param/valueProcess.js +++ /dev/null @@ -1,13 +0,0 @@ -import("system.vars"); -import("system.result"); -import("Sql_lib"); - -var rowId = vars.get("$param.ObjectRowId_param"); -if (!rowId) -{ - rowId = newSelect("OBJECT_ROWID") - .from("MST_TEAMLINK") - .where("MST_TEAMLINK.MST_TEAM_ID", "$param.MSTTeamId_param") - .cell(); -} -result.string(rowId); \ No newline at end of file diff --git a/entity/MSTTeamMember_entity/entityfields/projectmembers/children/objecttype_param/valueProcess.js b/entity/MSTTeamMember_entity/entityfields/projectmembers/children/objecttype_param/valueProcess.js deleted file mode 100644 index 95c8514f3bbc2804547c47b50ec222c09aec3f59..0000000000000000000000000000000000000000 --- a/entity/MSTTeamMember_entity/entityfields/projectmembers/children/objecttype_param/valueProcess.js +++ /dev/null @@ -1,4 +0,0 @@ -import("system.vars"); -import("system.result"); - -result.string(vars.get("$param.ObjectType_param")); \ No newline at end of file diff --git a/entity/MSTTeamMember_entity/entityfields/role/dropDownProcess.js b/entity/MSTTeamMember_entity/entityfields/role/dropDownProcess.js index 97558334115b6199684018810a38d54788a0e56b..6287caf1c8e3d9fd3cba24a9ec3edd641508a3a6 100644 --- a/entity/MSTTeamMember_entity/entityfields/role/dropDownProcess.js +++ b/entity/MSTTeamMember_entity/entityfields/role/dropDownProcess.js @@ -1,7 +1,18 @@ import("system.result"); +import("system.vars"); import("system.translate"); +import("MSTeams_lib"); -result.object([ - ["owner", translate.text("Owner")], - ["member", translate.text("Member")] -]); \ No newline at end of file +var roles = []; +var contactId = vars.get("$field.CONTACT_ID"); +var azureId = contactId && MSTeamsUtils.getAzureIdByContactId(contactId); +if(azureId) +{ + roles.push([$MSTeamsRoles.Owner(), translate.text("Owner")]); + roles.push([$MSTeamsRoles.Member(), translate.text("Member")]); +} +else if(contactId || vars.get("$field.MEMBERNAME")) +{ + roles.push([$MSTeamsRoles.Guest(), translate.text("Guest")]); +} +result.object(roles); diff --git a/entity/MSTTeamMember_entity/entityfields/role/mandatoryProcess.js b/entity/MSTTeamMember_entity/entityfields/role/mandatoryProcess.js deleted file mode 100644 index 79bef7b2ca07a9f35c95021eedcee8f89d68f873..0000000000000000000000000000000000000000 --- a/entity/MSTTeamMember_entity/entityfields/role/mandatoryProcess.js +++ /dev/null @@ -1,5 +0,0 @@ -import("Util_lib"); -import("system.vars"); -import("system.result"); - -result.string(!Utils.toBoolean(vars.get("$field.ISEXTERN"))); \ No newline at end of file diff --git a/entity/MSTTeamMember_entity/entityfields/role/stateProcess.js b/entity/MSTTeamMember_entity/entityfields/role/stateProcess.js deleted file mode 100644 index f76be28d47e7adee58f41d88a7a7993bda575de0..0000000000000000000000000000000000000000 --- a/entity/MSTTeamMember_entity/entityfields/role/stateProcess.js +++ /dev/null @@ -1,15 +0,0 @@ -import("system.result"); -import("system.vars"); -import("system.neon"); -import("system.logging") - -var state = neon.COMPONENTSTATE_EDITABLE; -if (vars.get("$field.ISEXTERN") == "true") -{ - if (!vars.get("$field.MEMBERNAME")) - state = neon.COMPONENTSTATE_INVISIBLE; - else - state = neon.COMPONENTSTATE_READONLY; -} - -result.string(state); \ No newline at end of file diff --git a/entity/MSTTeamMember_entity/entityfields/role/valueProcess.js b/entity/MSTTeamMember_entity/entityfields/role/valueProcess.js index d79978a6cbc07884ec953adb3be3de3d78997b78..40b6defffba382a293ac62afd7e17185a94836a3 100644 --- a/entity/MSTTeamMember_entity/entityfields/role/valueProcess.js +++ b/entity/MSTTeamMember_entity/entityfields/role/valueProcess.js @@ -1,6 +1,31 @@ +import("system.result"); import("system.neon"); import("system.vars"); -import("system.result"); +import("Employee_lib"); +import("MSTeams_lib"); + +// if this is the current logged in user +// the role will preset to owner +// otherwise the first option from the dropdown is selected + +var value = vars.get("$this.value"); +var dropDown = vars.get("$property.ROLE.dropDown"); -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null) - result.string("member"); \ No newline at end of file +if(!(value in dropDown)) +{ + var emplContactId = EmployeeUtils.getCurrentContactId(); + if(vars.get("$field.CONTACT_ID") == emplContactId && $MSTeamsRoles.Owner() in dropDown) + { + result.string($MSTeamsRoles.Owner()); + } + else + { + var values = Object.keys(dropDown); + var res = null; + if(values.length) + { + res = values[values.length - 1]; + } + result.string(res); + } +} diff --git a/entity/MSTTeamMember_entity/recordcontainers/jdito/contentProcess.js b/entity/MSTTeamMember_entity/recordcontainers/jdito/contentProcess.js index 4f615a675a9df54c018305fd39293403cd7f852f..19693ce67cef45da1d518ef8a29df9ee9c010a00 100644 --- a/entity/MSTTeamMember_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/MSTTeamMember_entity/recordcontainers/jdito/contentProcess.js @@ -1,44 +1,29 @@ -import("system.translate"); -import("system.teams"); import("system.result"); +import("system.neon"); import("system.vars"); +import("system.teams"); +import("system.translate"); +import("Sql_lib"); import("MSTeams_lib"); +// get the team members using the mst api var teamId = vars.get("$param.MSTTeamId_param"); var allMembers = teamId ? teams.getAllMembers(teamId) : {}; -var impersoAzureId = MSTeamsUtils.getImpersoAzureId(); -if (impersoAzureId in allMembers) //don't display the imperso user - delete allMembers[impersoAzureId]; - -var memberIds = vars.get("$local.idvalues") || Object.keys(allMembers); -var owners = teamId ? teams.getAllOwners(teamId) : {}; -var memberContactIds = MSTeamsUtils.getContactIdsByAzureIds(memberIds); -var memberArray = []; +var allOwners = teamId ? teams.getAllOwners(teamId) : {}; +Object.assign(allMembers, allOwners); + +// don't display the impersonation user +var impersoId = MSTeamsUtils.getImpersoAzureId(); +delete allMembers[impersoId]; +delete allOwners[impersoId]; -memberArray = memberIds.map(function (memberId) -{ - var role = "guest"; - var roleName = translate.text("Guest"); - if (memberId in owners) - { - role = "owner"; - roleName = translate.text("Owner"); - } - else if (memberId in memberContactIds) - { - role = "member"; - roleName = translate.text("Member"); - } - - return [ - memberId, - allMembers[memberId] || "", - role, - roleName, - memberContactIds[memberId] || "", - allMembers[memberId] || "", - !(memberId in memberContactIds) - ]; -}); +// return the requested members +var memberIds = vars.get("$local.idvalues") || Object.keys(allMembers); +var azureContactMap = MSTeamsUtils.getContactIdsByAzureIds(memberIds); -result.object(memberArray); \ No newline at end of file +var data = memberIds.map(function(memberId) { + var role = memberId in allOwners ? $MSTeamsRoles.Owner() : + (memberId in azureContactMap ? $MSTeamsRoles.Member() : $MSTeamsRoles.Guest()); + return [memberId, allMembers[memberId], role, azureContactMap[memberId]]; +}); +result.object(data); diff --git a/entity/MSTTeam_entity/MSTTeam_entity.aod b/entity/MSTTeam_entity/MSTTeam_entity.aod index 34e9af2d1ae02853be662ff4761e782cd85cc2e2..84d08f4679b9a707f0891fe50051009df1e2ed1a 100644 --- a/entity/MSTTeam_entity/MSTTeam_entity.aod +++ b/entity/MSTTeam_entity/MSTTeam_entity.aod @@ -3,10 +3,12 @@ <name>MSTTeam_entity</name> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/MSTTeam_entity/documentation.adoc</documentation> - <grantUpdateProcess>%aditoprj%/entity/MSTTeam_entity/grantUpdateProcess.js</grantUpdateProcess> - <grantDeleteProcess>%aditoprj%/entity/MSTTeam_entity/grantDeleteProcess.js</grantDeleteProcess> + <siblings> + <element>AttributeRelation_entity</element> + </siblings> <contentTitleProcess>%aditoprj%/entity/MSTTeam_entity/contentTitleProcess.js</contentTitleProcess> <afterUiInit>%aditoprj%/entity/MSTTeam_entity/afterUiInit.js</afterUiInit> + <onValidation>%aditoprj%/entity/MSTTeam_entity/onValidation.js</onValidation> <recordContainer>jdito</recordContainer> <entityFields> <entityProvider> @@ -40,7 +42,6 @@ <entityConsumer> <name>TeamMembers</name> <stateProcess>%aditoprj%/entity/MSTTeam_entity/entityfields/teammembers/stateProcess.js</stateProcess> - <onValidation>%aditoprj%/entity/MSTTeam_entity/entityfields/teammembers/onValidation.js</onValidation> <dependency> <name>dependency</name> <entityName>MSTTeamMember_entity</entityName> @@ -59,15 +60,16 @@ <name>ObjectType_param</name> <valueProcess>%aditoprj%/entity/MSTTeam_entity/entityfields/teammembers/children/objecttype_param/valueProcess.js</valueProcess> </entityParameter> + <entityParameter> + <name>ContactIds_param</name> + <valueProcess>%aditoprj%/entity/MSTTeam_entity/entityfields/teammembers/children/contactids_param/valueProcess.js</valueProcess> + </entityParameter> </children> </entityConsumer> - <entityField> - <name>TEAMID_AND_NAME</name> - </entityField> <entityField> <name>ISARCHIVED</name> <title>Archived</title> - <dropDownProcess>%aditoprj%/entity/MSTTeam_entity/entityfields/isarchived/dropDownProcess.js</dropDownProcess> + <contentType>BOOLEAN</contentType> </entityField> <entityParameter> <name>ObjectRowId_param</name> @@ -96,24 +98,11 @@ <useAggregates v="true" /> </entityProvider> <entityParameter> - <name>SalesprojectCode_param</name> + <name>IncludeArchived_param</name> <expose v="true" /> - <description>PARAMETER</description> </entityParameter> - <entityProvider> - <name>TeamsByIdAndName</name> - <lookupIdfield>TEAMID_AND_NAME</lookupIdfield> - <documentation>%aditoprj%/entity/MSTTeam_entity/entityfields/teamsbyidandname/documentation.adoc</documentation> - <children> - <entityParameter> - <name>UseCache_param</name> - <valueProcess>%aditoprj%/entity/MSTTeam_entity/entityfields/teamsbyidandname/children/usecache_param/valueProcess.js</valueProcess> - <expose v="false" /> - </entityParameter> - </children> - </entityProvider> <entityParameter> - <name>UseCache_param</name> + <name>ContactIds_param</name> <expose v="true" /> </entityParameter> </entityFields> @@ -121,14 +110,10 @@ <jDitoRecordContainer> <name>jdito</name> <jDitoRecordAlias>Data_alias</jDitoRecordAlias> - <isFilterable v="true" /> - <isRequireContainerFiltering v="true" /> <contentProcess>%aditoprj%/entity/MSTTeam_entity/recordcontainers/jdito/contentProcess.js</contentProcess> <onInsert>%aditoprj%/entity/MSTTeam_entity/recordcontainers/jdito/onInsert.js</onInsert> <onUpdate>%aditoprj%/entity/MSTTeam_entity/recordcontainers/jdito/onUpdate.js</onUpdate> <onDelete>%aditoprj%/entity/MSTTeam_entity/recordcontainers/jdito/onDelete.js</onDelete> - <cacheType>SESSION</cacheType> - <cacheKeyProcess>%aditoprj%/entity/MSTTeam_entity/recordcontainers/jdito/cacheKeyProcess.js</cacheKeyProcess> <recordFieldMappings> <jDitoRecordFieldMapping> <name>UID.value</name> @@ -136,12 +121,6 @@ <jDitoRecordFieldMapping> <name>TEAMNAME.value</name> </jDitoRecordFieldMapping> - <jDitoRecordFieldMapping> - <name>TEAMID_AND_NAME.value</name> - </jDitoRecordFieldMapping> - <jDitoRecordFieldMapping> - <name>DESCRIPTION.value</name> - </jDitoRecordFieldMapping> <jDitoRecordFieldMapping> <name>ISARCHIVED.value</name> </jDitoRecordFieldMapping> diff --git a/entity/MSTTeam_entity/entityfields/description/stateProcess.js b/entity/MSTTeam_entity/entityfields/description/stateProcess.js index 18f779e6910541c7a8e75facfe14a54cfc74458b..ae683c19cc3f28bd0a0bc9c5a43171e1fa2b8b53 100644 --- a/entity/MSTTeam_entity/entityfields/description/stateProcess.js +++ b/entity/MSTTeam_entity/entityfields/description/stateProcess.js @@ -2,4 +2,9 @@ import("system.result"); import("system.vars"); import("system.neon"); -result.string(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW ? neon.COMPONENTSTATE_EDITABLE : neon.COMPONENTSTATE_READONLY); \ No newline at end of file +var res = neon.COMPONENTSTATE_INVISIBLE; +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + res = neon.COMPONENTSTATE_EDITABLE; +} +result.string(res); diff --git a/entity/MSTTeam_entity/entityfields/isarchived/dropDownProcess.js b/entity/MSTTeam_entity/entityfields/isarchived/dropDownProcess.js deleted file mode 100644 index f77d640ef1d32a67d4fd3e8da7bcff5531277f05..0000000000000000000000000000000000000000 --- a/entity/MSTTeam_entity/entityfields/isarchived/dropDownProcess.js +++ /dev/null @@ -1,7 +0,0 @@ -import("system.result"); -import("system.translate"); - -result.object([ - ["true", translate.text("Yes")], - ["false", translate.text("No")] -]); \ No newline at end of file diff --git a/entity/MSTTeam_entity/entityfields/teammembers/children/contactids_param/valueProcess.js b/entity/MSTTeam_entity/entityfields/teammembers/children/contactids_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..b806067ae4c101ba28ef6c35e2196567310bbc89 --- /dev/null +++ b/entity/MSTTeam_entity/entityfields/teammembers/children/contactids_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.vars"); + +result.string(vars.get("$param.ContactIds_param")); diff --git a/entity/MSTTeam_entity/entityfields/teammembers/children/mstteamid_param/valueProcess.js b/entity/MSTTeam_entity/entityfields/teammembers/children/mstteamid_param/valueProcess.js index 7b7daa293fe35f6acc203b39e6cb67bb7a987151..93a89968b87df6847b87e54835c66b3fa7a2c554 100644 --- a/entity/MSTTeam_entity/entityfields/teammembers/children/mstteamid_param/valueProcess.js +++ b/entity/MSTTeam_entity/entityfields/teammembers/children/mstteamid_param/valueProcess.js @@ -1,6 +1,11 @@ -import("system.vars"); import("system.result"); import("system.neon"); +import("system.vars"); -if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW && vars.get("$field.TEAMID_AND_NAME")) - result.string(vars.get("$field.UID")); \ No newline at end of file +// this process ensures that we dont get the team members +// of a team with an autogenerated uid (if recordState is NEW) +var recordState = vars.get("$sys.recordstate"); +if(recordState && recordState != neon.OPERATINGSTATE_NEW) +{ + result.string(vars.get("$field.UID")); +} diff --git a/entity/MSTTeam_entity/entityfields/teammembers/onValidation.js b/entity/MSTTeam_entity/entityfields/teammembers/onValidation.js deleted file mode 100644 index ab18aabd0ba1fb0f4c2d93a91aa191b29ba2c352..0000000000000000000000000000000000000000 --- a/entity/MSTTeam_entity/entityfields/teammembers/onValidation.js +++ /dev/null @@ -1,23 +0,0 @@ -import("system.vars"); -import("system.entities"); -import("Entity_lib"); -import("system.result"); -import("system.translate"); - -//this is a workaround, EntityConsumerRowsHelper.getCurrentConsumerRows should be used here -var loadRowsConfig = entities.createConfigForLoadingRows() - .entity("MSTTeamMember_entity") - .provider("MembersOfTeam") - .fields(["#UID", "ROLE"]) - .addParameter("MSTTeamId_param", vars.get("$field.UID")); -var savedRows = entities.getRows(loadRowsConfig); -var members = new EntityConsumerRowsHelper(savedRows) - .consumer("TeamMembers") - .applyConsumerRowChanges() - .getRows(); -var hasOwner = members.some(function (member) -{ - return member["ROLE"] == "owner"; -}); -if (!hasOwner) - result.string(translate.text("The team must have at least one owner")); \ No newline at end of file diff --git a/entity/MSTTeam_entity/entityfields/teammembers/stateProcess.js b/entity/MSTTeam_entity/entityfields/teammembers/stateProcess.js index 1c53ca6a0df2f0f9fe9edc13efa4226f1b936c5f..9ff54e6419f4cbb51db0d5ce360f5ee2f44fd3b6 100644 --- a/entity/MSTTeam_entity/entityfields/teammembers/stateProcess.js +++ b/entity/MSTTeam_entity/entityfields/teammembers/stateProcess.js @@ -1,6 +1,11 @@ -import("Util_lib"); import("system.result"); import("system.vars"); import("system.neon"); +import("Util_lib"); -result.string(Utils.toBoolean(vars.get("$field.ISARCHIVED")) ? neon.COMPONENTSTATE_INVISIBLE : neon.COMPONENTSTATE_EDITABLE); \ No newline at end of file +var res = neon.COMPONENTSTATE_EDITABLE; +if(Utils.toBoolean(vars.get("$field.ISARCHIVED"))) +{ + res = neon.COMPONENTSTATE_READONLY; +} +result.string(res); diff --git a/entity/MSTTeam_entity/entityfields/teamsbyidandname/documentation.adoc b/entity/MSTTeam_entity/entityfields/teamsbyidandname/documentation.adoc deleted file mode 100644 index 84522789b1b5dd1e014bd0db3e6c4c7b740f7b3a..0000000000000000000000000000000000000000 --- a/entity/MSTTeam_entity/entityfields/teamsbyidandname/documentation.adoc +++ /dev/null @@ -1,4 +0,0 @@ -= TeamsByIdAndName - -The provider uses a JSON containing [teamId, teamName] as the lookupIdField for cases when both values are needed. -Because the request that loads the MST teams can be slow, the records will be cached if this provider is used. \ No newline at end of file diff --git a/entity/MSTTeam_entity/grantDeleteProcess.js b/entity/MSTTeam_entity/grantDeleteProcess.js deleted file mode 100644 index 3fad7d06d00a3a204f60e7ef811caa4e1fd000c5..0000000000000000000000000000000000000000 --- a/entity/MSTTeam_entity/grantDeleteProcess.js +++ /dev/null @@ -1,5 +0,0 @@ -import("system.result"); -import("system.vars"); -import("MSTeams_lib"); - -result.string(vars.get("$field.TEAMID_AND_NAME") && vars.get("$field.ISARCHIVED") != "true" && MSTeamsUtils.isUserTeamOwner(vars.get("$field.UID"))); \ No newline at end of file diff --git a/entity/MSTTeam_entity/grantUpdateProcess.js b/entity/MSTTeam_entity/grantUpdateProcess.js deleted file mode 100644 index 3fad7d06d00a3a204f60e7ef811caa4e1fd000c5..0000000000000000000000000000000000000000 --- a/entity/MSTTeam_entity/grantUpdateProcess.js +++ /dev/null @@ -1,5 +0,0 @@ -import("system.result"); -import("system.vars"); -import("MSTeams_lib"); - -result.string(vars.get("$field.TEAMID_AND_NAME") && vars.get("$field.ISARCHIVED") != "true" && MSTeamsUtils.isUserTeamOwner(vars.get("$field.UID"))); \ No newline at end of file diff --git a/entity/MSTTeam_entity/onValidation.js b/entity/MSTTeam_entity/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..c5160ffaeda2a0aec8ef57d368a8d817ee2dd891 --- /dev/null +++ b/entity/MSTTeam_entity/onValidation.js @@ -0,0 +1,33 @@ +import("system.result"); +import("system.vars"); +import("system.translate"); +import("Entity_lib"); +import("MSTeams_lib"); + +var errors = []; +var members = EntityConsumerRowsHelper.getCurrentConsumerRows("TeamMembers", ["CONTACT_ID", "ROLE"]); + +!members.some(function(member) { + return member["ROLE"] == $MSTeamsRoles.Owner(); +}) && errors.push(translate.text("The team must have at least one owner")); + +var duplicates = new Set(); +for(var i = 0; i < members.length; i++) +{ + var contactId = members[i]["CONTACT_ID"]; + if(!contactId) + { + continue; + } + if(duplicates.has(contactId)) + { + errors.push(translate.text("Found a duplicate member")); + break; + } + duplicates.add(contactId) +} + +if(errors.length) +{ + result.string(errors.join("\n")); +} diff --git a/entity/MSTTeam_entity/recordcontainers/jdito/cacheKeyProcess.js b/entity/MSTTeam_entity/recordcontainers/jdito/cacheKeyProcess.js deleted file mode 100644 index f9c2f6bbd9ddf14c6cd10228138b52546d0184b7..0000000000000000000000000000000000000000 --- a/entity/MSTTeam_entity/recordcontainers/jdito/cacheKeyProcess.js +++ /dev/null @@ -1,7 +0,0 @@ -import("system.result"); -import("system.vars"); -import("Util_lib"); -import("CachedRecordContainer_lib"); - -if (Utils.toBoolean(vars.get("$param.UseCache_param"))) - result.string(CachedRecordContainerUtils.getCommonKey("$param.UseCache_param")); \ No newline at end of file diff --git a/entity/MSTTeam_entity/recordcontainers/jdito/contentProcess.js b/entity/MSTTeam_entity/recordcontainers/jdito/contentProcess.js index dccb70e0330c7d584be6a0786ea150e8eb508396..e23d0ced9ce416281ab59d13dc8252927fa6ca97 100644 --- a/entity/MSTTeam_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/MSTTeam_entity/recordcontainers/jdito/contentProcess.js @@ -1,65 +1,112 @@ -import("system.teams"); import("system.result"); import("system.vars"); -import("JditoFilter_lib"); +import("system.teams"); +import("system.entities"); +import("system.db"); +import("Util_lib"); +import("Sql_lib"); +import("MSTeams_lib"); -var lookupFilter = new FilterConditionGroup(vars.get("$local.filter")).getRow("$$$LOOKUPFIELD$$$"); -var searchValue = lookupFilter ? lookupFilter.key : null; +if(MSTeamsUtils.isTeamsEnabled()) +{ + var data = newSelect([ + "MST_TEAM.MST_TEAMID", + "MST_TEAM.TEAMNAME", + "MST_TEAM.IS_ARCHIVED" + ]).from("MST_TEAM").table(); -var allTeams = teams.getAllTeams(searchValue || null); -var teamsArray = []; + var idvalues = vars.get("$local.idvalues"); + if(idvalues) + { + var iddata = data.filter(function(entry){return idvalues.includes(entry[0])}); + if(iddata.length < idvalues.length) + { + iddata = _apiData().filter(function(entry){return idvalues.includes(entry[0])}); + } + result.object(iddata); + } + else + { + var apiData = _apiData(); + if(!vars.get("$param.IncludeArchived_param")) + { + apiData = apiData.filter(function(entry){return !Utils.toBoolean(entry[2])}); + } + result.object(apiData); + } +} +else +{ + // return nothing if teams is disabled + result.object([]); +} -if (vars.get("$local.idvalues")) +/** + * Fetches all teams from MS-Teams and returns them + * in the correct format for the jDito record container. + * + * It also caches the teams in the database + * to archive fast name resolution. + */ +function _apiData() { - var teamInfoLoader = { - normalTeams : allTeams, - archivedTeams : null, - getTeamInfo : function (pTeamId) + // fetch all teams since getAllTeams doesn't include the archived teams + // we will also add the archived teams to the result of getAllTeams + var allTeams = teams.getAllTeams(null); + var archivedTeams = teams.getAllArchivedTeams(null); + Object.assign(allTeams, archivedTeams); + // set of teams that are already in the db + var dbTeams = new Set(); + + // loop through all data in the database fetched previosly + // and insert the changes that have to be made to get + // the remote data in sync with the local cached teams + var mstTeamSyncStmts = []; + data.forEach(function(entry) { + if(!(entry[0] in allTeams)) { - if (pTeamId in this.normalTeams) + // team doesnt exist anymore delete the cached entry + mstTeamSyncStmts.push(["MST_TEAM", newWhere("MST_TEAM.MST_TEAMID", entry[0]).toString()]); + } + else + { + // team exists, check if any changes where made + // and apply those to the cached entries + var teamname = allTeams[entry[0]]; + var isarchived = entry[0] in archivedTeams ? "1" : "0"; + if(entry[1] != teamname || entry[2] != isarchived) { - return { - name : this.normalTeams[pTeamId], - isArchived : false - }; + mstTeamSyncStmts.push(["MST_TEAM", [ + "TEAMNAME", "IS_ARCHIVED" + ], null, [ + teamname, isarchived + ], newWhere("MST_TEAM.MST_TEAMID", entry[0]).toString()]); } - - if (this.archivedTeams == null) - this.archivedTeams = teams.getAllArchivedTeams(null); - - return { - name : this.archivedTeams[pTeamId] || "", - isArchived : pTeamId in this.archivedTeams - }; + dbTeams.add(entry[0]); } - }; + }); - teamsArray = vars.get("$local.idvalues").map(function (teamId) + // loop trough the remote data that wasnt yet cached in the db + // and insert the teams. It also fills the liveData array + // will all teams from the api. + var liveData = []; + Utils.objectEntries(allTeams).forEach(function(team) { - var teamInfo = teamInfoLoader.getTeamInfo(teamId); - var idAndName = JSON.stringify([teamId, teamInfo.name]); - return [ - teamId, - teamInfo.name, - idAndName, - "", - teamInfo.isArchived - ]; - }); -} -else -{ - for (let teamId in allTeams) + var dataEntry = [team[0], team[1], team[0] in archivedTeams ? "1" : "0"]; + liveData.push(dataEntry); + if(dbTeams.has(team[0])) + { + return; + } + mstTeamSyncStmts.push(["MST_TEAM", ["MST_TEAMID", "TEAMNAME", "IS_ARCHIVED"], null, dataEntry]); + }); + + // if updates to the local cache are needed execute those updates + if(mstTeamSyncStmts.length) { - var idAndName = JSON.stringify([teamId, allTeams[teamId]]); - teamsArray.push([ - teamId, - allTeams[teamId], - idAndName, - "", - false - ]); + db.execute(mstTeamSyncStmts); } + + // return the up-to-date teams data in jDito recordcontainer format + return liveData; } - -result.object(teamsArray); \ No newline at end of file diff --git a/entity/MSTTeam_entity/recordcontainers/jdito/onInsert.js b/entity/MSTTeam_entity/recordcontainers/jdito/onInsert.js index 8a1c6e0c83d6d16ef62ed23cb2594be121eb5a0f..7bc41a1a5b9732718aecd06bec2b5f8c4f2ffabf 100644 --- a/entity/MSTTeam_entity/recordcontainers/jdito/onInsert.js +++ b/entity/MSTTeam_entity/recordcontainers/jdito/onInsert.js @@ -1,66 +1,68 @@ -import("Util_lib"); -import("Communication_lib"); -import("Sql_lib"); +import("system.neon"); import("system.vars"); +import("system.project"); +import("system.entities"); import("system.teams"); -import("system.tools"); -import("Employee_lib"); +import("Util_lib"); +import("Attribute_lib"); +import("Sql_lib"); +import("AttributeRegistry_basic"); +import("Communication_lib"); import("MSTeams_lib"); -var rowData = vars.get("$local.rowdata"); -var teamName = rowData["TEAMNAME.value"]; -var description = rowData["DESCRIPTION.value"]; -var teamMembers = vars.get("$field.TeamMembers.insertedRows"); - +// get members var ownerIds = []; var internalMembers = []; var externalMembers = []; -teamMembers.forEach(function (teamMember) -{ - var contactId = teamMember["CONTACT_ID"]; - var isExtern = Utils.toBoolean(teamMember["ISEXTERN"]); - var isInvite = Utils.toBoolean(teamMember["INVITE"]); - if (isExtern) +vars.get("$field.TeamMembers.insertedRows").forEach(function(member) { + if(member["ROLE"] == $MSTeamsRoles.Guest()) { - var memberEmail = CommUtil.getStandardMail(contactId); - if (memberEmail) + var externalMail = CommUtil.getStandardMail(member["CONTACT_ID"]); + if(externalMail) { - externalMembers.push( - teams.createExternalUserConfig(memberEmail) - .sendInvitation(isInvite) - ); + var extUser = teams.createExternalUserConfig(externalMail); + externalMembers.push(extUser.sendInvitation(true)); } - return; } - var memberAzureId = teamMember["AZUREID"]; - var memberUpn = teamMember["AZUREUPN"]; - var isOwner = teamMember["ROLE"] == "owner"; - if (!memberAzureId && memberUpn) - memberAzureId = teams.getInternalAzureId(memberUpn); - if (memberAzureId) + else { - if (isOwner) - ownerIds.push(memberAzureId); + var azureId = MSTeamsUtils.getAzureIdByContactId(member["CONTACT_ID"]); + if(member["ROLE"] == $MSTeamsRoles.Owner()) + { + ownerIds.push(azureId); + } else - internalMembers.push(teams.createInternalUserConfig(memberAzureId)); + { + var user = teams.createInternalUserConfig(azureId); + internalMembers.push(user); + } } }); -var mailNickName = StringUtils.toLowerCamelCase(teamName); //mailNickName = teamName in camel case -mailNickName = mailNickName + vars.get("$param.SalesprojectCode_param"); - +// create team +var teamName = vars.get("$field.TEAMNAME"); +var mailNickName = StringUtils.toLowerCamelCase(teamName).replace(/[^\w]/g, ""); var groupConfig = teams.createGroupConfig(teamName, mailNickName, ownerIds); -if (description) - groupConfig.setDescription(description); +var description = vars.get("$field.DESCRIPTION"); +description && groupConfig.setDescription(description); var teamConfig = teams.createTeamConfig(); - var mstTeam = teams.createTeam(groupConfig, teamConfig); -if (internalMembers.length !== 0) - teams.addInternalMembers(mstTeam.teamId, internalMembers); +// add members +internalMembers.length && teams.addInternalMembers(mstTeam.teamId, internalMembers); +externalMembers.length && teams.addExternalMembers(mstTeam.teamId, externalMembers); -if (externalMembers.length !== 0) - teams.addExternalMembers(mstTeam.teamId, externalMembers); +// add app +var appId = project.getInstanceConfigValue("teamsAppId"); +appId && teams.addApp(mstTeam.teamId, appId); -MSTeamsUtils.insertTeamIfMissing(mstTeam); -MSTeamsUtils.createTeamLink(mstTeam.teamId, vars.get("$param.ObjectRowId_param"), vars.get("$param.ObjectType_param")); \ No newline at end of file +// database +new SqlBuilder().insertFields({ + "MST_TEAMID": mstTeam.teamId, + "TEAMNAME": teamName, + "IS_ARCHIVED": "0", + "GENERAL_CHANNELID": mstTeam.generalChannelId, + "WEB_URL": mstTeam.webUrl +}, "MST_TEAM"); +new AttributeRelationQuery(vars.get("$param.ObjectRowId_param"), $AttributeRegistry.mstTeam(), + vars.get("$param.ObjectType_param")).insertAttribute(mstTeam.teamId, true); diff --git a/entity/MSTTeam_entity/recordcontainers/jdito/onUpdate.js b/entity/MSTTeam_entity/recordcontainers/jdito/onUpdate.js index 54e7ab9ab6b4e76d9a767db9d8314b6cbb3d2dc5..8407325255bd6d27a74d45019763120ffaf1feb3 100644 --- a/entity/MSTTeam_entity/recordcontainers/jdito/onUpdate.js +++ b/entity/MSTTeam_entity/recordcontainers/jdito/onUpdate.js @@ -1,77 +1,73 @@ -import("Communication_lib"); -import("Sql_lib"); +import("system.neon"); import("system.vars"); import("system.teams"); -import("system.tools"); -import("Employee_lib"); +import("Util_lib"); +import("Communication_lib"); +import("MSTeams_lib"); + +var teamId = vars.get("$field.UID"); -var rowData = vars.get("$local.rowdata"); -var teamId = rowData["UID.value"]; -var teamName = rowData["TEAMNAME.value"]; -var description = rowData["DESCRIPTION.value"]; -var insertedTeamMembers = vars.get("$field.TeamMembers.insertedRows"); -var changedTeamMembers = vars.get("$field.TeamMembers.changedRows"); -var deletedTeamMembers = vars.get("$field.TeamMembers.deletedRows"); +var addInternalMembers = []; +var addExternalMembers = []; +var removeInternalMembers = []; +var removeExternalMembers = []; -var internalMembers = []; -var externalMembers = []; -insertedTeamMembers.forEach(function (teamMember) +var insertedMembers = vars.get("$field.TeamMembers.insertedRows"); +var changedMembers = vars.get("$field.TeamMembers.changedRows"); +var deletedMembers = vars.get("$field.TeamMembers.deletedRows"); + +var insertedContactIds = insertedMembers.map(function(member){return member["CONTACT_ID"]}); +deletedMembers.forEach(function(member, idx) { - var memberUser = EmployeeUtils.getUserByContactId(teamMember["CONTACT_ID"]); - if (!memberUser) + var insertedContactIdsIndex = insertedContactIds.indexOf(member["CONTACT_ID"]) + if(insertedContactIdsIndex >= 0) { - var memberEmail = CommUtil.getStandardMail(teamMember["CONTACT_ID"]); - if (memberEmail) - { - externalMembers.push( - teams.createExternalUserConfig(memberEmail) - .sendInvitation(teamMember["INVITE"] == "true") - ); - } - return; + insertedMembers[insertedContactIdsIndex]["ROLE"] != deletedMembers[idx]["ROLE"] + && changedMembers.push(insertedMembers[insertedContactIdsIndex]); + insertedMembers.splice(insertedContactIdsIndex, 1); + deletedMembers.splice(idx, 1); } - var internalUserConfigToAdd = _getTeamsInternalUserConfig(memberUser, teamMember["ROLE"] == "owner"); - if (internalUserConfigToAdd) - internalMembers.push(internalUserConfigToAdd); }); -if (internalMembers.length !== 0) - teams.addInternalMembers(teamId, internalMembers); - -if (externalMembers.length !== 0) - teams.addExternalMembers(teamId, externalMembers); - -changedTeamMembers.forEach(function (teamMember) -{ - var memberUser = EmployeeUtils.getUserByContactId(teamMember["CONTACT_ID"]); - if (!memberUser) - return; - - var internalUserConfigToChange = _getTeamsInternalUserConfig(memberUser, teamMember["ROLE"] == "owner"); - if (internalUserConfigToChange) - teams.changeRole(teamId, internalUserConfigToChange); +insertedMembers.forEach(function(member) { + if(member["ROLE"] == $MSTeamsRoles.Guest()) + { + var extMail = CommUtil.getStandardMail(member["CONTACT_ID"]); + if(extMail) + { + var extUser = teams.createExternalUserConfig(extMail); + addExternalMembers.push(extUser.sendInvitation(false)); + } + } + else + { + var azureId = MSTeamsUtils.getAzureIdByContactId(member["CONTACT_ID"]); + var user = teams.createInternalUserConfig(azureId); + addInternalMembers.push(user.setOwner(member["ROLE"] == $MSTeamsRoles.Owner())); + } }); - -var owners = teams.getAllOwners(teamId); -var removeMembers = deletedTeamMembers.map(function (member) +changedMembers.forEach(function(member) { - var isOwner = member["#UID"] in owners; - return teams.createInternalUserConfig(member["#UID"]).setOwner(isOwner); + var user = teams.createInternalUserConfig(member["#UID"]); + teams.changeRole(teamId, user.setOwner(member["ROLE"] == $MSTeamsRoles.Owner())); }); -if (removeMembers.length !== 0) - teams.removeInternalMembers(teamId, removeMembers); - -function _getTeamsInternalUserConfig(pUserObject, pAsOwner) +deletedMembers.forEach(function(member) { - var memberAzureId = pUserObject[tools.PARAMS][tools.TEAMS_AZUREID]; - var memberUpn = pUserObject[tools.PARAMS][tools.TEAMS_AZUREUPN]; - if (!memberAzureId && memberUpn) - memberAzureId = teams.getInternalAzureId(memberUpn); - if (memberAzureId) + if(member["ROLE"] == $MSTeamsRoles.Guest()) + { + var extUser = teams.createExternalUserConfig(member["MEMBERNAME"]); + removeExternalMembers.push(extUser); + } + else { - return teams.createInternalUserConfig(memberAzureId).setOwner(pAsOwner); + var user = teams.createInternalUserConfig(member["#UID"]); + removeInternalMembers.push(user.setOwner(member["ROLE"] == $MSTeamsRoles.Owner())); } - return null; -} \ No newline at end of file +}); + +addInternalMembers.length && teams.addInternalMembers(teamId, addInternalMembers); +addExternalMembers.length && teams.addExternalMembers(teamId, addExternalMembers); +removeInternalMembers.length && teams.removeInternalMembers(teamId, removeInternalMembers); +removeExternalMembers.length && teams.removeExternalMembers(teamId, removeExternalMembers); diff --git a/entity/MSTeamsActivityImport_entity/MSTeamsActivityImport_entity.aod b/entity/MSTeamsActivityImport_entity/MSTeamsActivityImport_entity.aod index 9ef9e4fcc26e268958b733c40535540dedea7470..1bf181c3d715b5a4b00c168ed9a0c1f0a035dd59 100644 --- a/entity/MSTeamsActivityImport_entity/MSTeamsActivityImport_entity.aod +++ b/entity/MSTeamsActivityImport_entity/MSTeamsActivityImport_entity.aod @@ -37,6 +37,8 @@ <title>Channel</title> <consumer>Channels</consumer> <state>EDITABLE</state> + <valueProcess>%aditoprj%/entity/MSTeamsActivityImport_entity/entityfields/channel_id/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/MSTeamsActivityImport_entity/entityfields/channel_id/displayValueProcess.js</displayValueProcess> </entityField> <entityParameter> <name>ObjectRowId_param</name> diff --git a/entity/MSTeamsActivityImport_entity/entityfields/channel_id/displayValueProcess.js b/entity/MSTeamsActivityImport_entity/entityfields/channel_id/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6c55fb855e76fcd3c47208f19d2348da9d245b27 --- /dev/null +++ b/entity/MSTeamsActivityImport_entity/entityfields/channel_id/displayValueProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("system.vars"); +import("system.entities"); + +var uid = vars.get("$this.value"); +var config = entities.createConfigForLoadingRows().entity("MSTeamsChannel_entity") + .uid(uid).addParameter("TeamId_param", vars.get("$field.TEAM_ID")).fields(["CHANNELNAME"]); +uid && result.string(entities.getRow(config).CHANNELNAME); diff --git a/entity/MSTeamsActivityImport_entity/entityfields/channel_id/valueProcess.js b/entity/MSTeamsActivityImport_entity/entityfields/channel_id/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f2e81cd3dffc67136e990f5be03361d72deac65e --- /dev/null +++ b/entity/MSTeamsActivityImport_entity/entityfields/channel_id/valueProcess.js @@ -0,0 +1,10 @@ +import("system.result"); +import("system.vars"); +import("system.teams"); + +var teamId = vars.get("$field.TEAM_ID"); +if(teamId && vars.get("$this.value") == null) +{ + var channelId = teams.getGeneralChannelId(teamId); + result.string(channelId); +} diff --git a/entity/MSTeamsActivityImport_entity/entityfields/team_id/valueProcess.js b/entity/MSTeamsActivityImport_entity/entityfields/team_id/valueProcess.js index c431bd3ac3e9bc6fa97d0b85729ed1c4f9b203b0..3205eef8b0cd4c870ccaea928309e76a5354240f 100644 --- a/entity/MSTeamsActivityImport_entity/entityfields/team_id/valueProcess.js +++ b/entity/MSTeamsActivityImport_entity/entityfields/team_id/valueProcess.js @@ -1,6 +1,7 @@ -import("system.vars"); -import("MSTeams_lib"); import("system.result"); -import("Sql_lib"); +import("system.vars"); +import("Attribute_lib"); +import("AttributeRegistry_basic"); -result.string(MSTeamsUtils.getLinkedTeam(vars.get("$param.ObjectRowId_param"), vars.get("$param.ObjectType_param")) || ""); \ No newline at end of file +result.string(new AttributeRelationQuery(vars.get("$param.ObjectRowId_param"), + $AttributeRegistry.mstTeam(), vars.get("$param.ObjectType_param")).getSingleAttributeValue()); diff --git a/entity/MSTeamsMessage_entity/entityfields/importmessages/onActionProcess.js b/entity/MSTeamsMessage_entity/entityfields/importmessages/onActionProcess.js index 8b5a94d660b9cbd5ef4a49457965ad8bd4767f0e..a5650f2a632efa216c3877c4e2ce4a5544a1c95c 100644 --- a/entity/MSTeamsMessage_entity/entityfields/importmessages/onActionProcess.js +++ b/entity/MSTeamsMessage_entity/entityfields/importmessages/onActionProcess.js @@ -1,23 +1,34 @@ +import("system.text"); +import("system.translate"); import("Sql_lib"); import("system.datetime"); import("system.neon"); import("Util_lib"); import("system.vars"); +import("AttributeRegistry_basic"); +import("KeywordRegistry_basic"); +import("Context_lib"); var messages = vars.get("$sys.selection"); var description = messages.map(function (id) { - var [user, date, message] = JSON.parse(id); - date = Date.parse(date).valueOf(); + var [user, date, message] = text.decodeMS(id); return "[" + datetime.toDate(date, "dd.MM.yyyy HH:mm") + "] " + user + "<br>" + message + "<br>"; }).join("<br>"); var links = newSelect(["OBJECT_TYPE", "OBJECT_ROWID"]) - .from("MST_TEAMLINK") - .where("MST_TEAMLINK.MST_TEAM_ID", vars.get("$param.TeamId_param")) + .from("AB_ATTRIBUTERELATION") + .where("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID", $AttributeRegistry.mstTeam()) + .and("AB_ATTRIBUTERELATION.ID_VALUE", vars.get("$param.TeamId_param")) .table(); +var teamName = ContextUtils.loadContentTitle("MSTTeam_entity", vars.get("$param.TeamId_param")); +var channelName = ContextUtils.loadContentTitle("MSTeamsChannel_entity", vars.get("$param.Channel_param"), + undefined, undefined, {TeamId_param: vars.get("$param.TeamId_param")}); neon.openContext("Activity", "ActivityEdit_view", null, neon.OPERATINGSTATE_NEW, { - "Info_param": description, - "PresetLinks_param": JSON.stringify(links) -}); \ No newline at end of file + Info_param: description, + PresetLinks_param: JSON.stringify(links), + Direction_param: $KeywordRegistry.activityDirection$internal(), + Subject_param: translate.text("MS-Teams Message") + " - " + teamName + " - " + channelName, + Category_param: $KeywordRegistry.activityCategory$mstMessage() +}); diff --git a/entity/MSTeamsMessage_entity/recordcontainers/jdito/contentProcess.js b/entity/MSTeamsMessage_entity/recordcontainers/jdito/contentProcess.js index 0007cf9a2d5994cbbf002e496d12620d49ee358c..d9f5ab8061b96013f6706b114a9def2b0def4d55 100644 --- a/entity/MSTeamsMessage_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/MSTeamsMessage_entity/recordcontainers/jdito/contentProcess.js @@ -1,3 +1,4 @@ +import("system.text"); import("Sql_lib"); import("system.teams"); import("system.result"); @@ -30,12 +31,12 @@ else if (vars.get("$param.TeamId_param") && vars.get("$param.Channel_param")) messages = messages.map(function (message) { + // replace workaround needed, since Rhino's Date.parse struggles with the date format returned by teams + var timestamp = Date.parse(message.createdDateTime.replace(/\.\d+Z/, "")).toString() return [ - JSON.stringify([message.author.userName, message.createdDateTime, message.message.message]), - message.author.userName, - message.message.message, - Date.parse(message.createdDateTime).toString() + text.encodeMS([message.author.userName, timestamp, message.message.message]), + message.author.userName, message.message.message, timestamp ]; }); - +messages = messages.sort(function(a, b){return a[3] - b[3]}); result.object(messages); diff --git a/entity/MailSignature_entity/entityfields/mail_address/onValidation.js b/entity/MailSignature_entity/entityfields/mail_address/onValidation.js index 02cab60da6883adeb8db01a91e73c5517ad83657..58b3402b3df4874097c94f5b50adbe94fa44aac8 100644 --- a/entity/MailSignature_entity/entityfields/mail_address/onValidation.js +++ b/entity/MailSignature_entity/entityfields/mail_address/onValidation.js @@ -1,9 +1,23 @@ +import("Sql_lib"); +import("system.translate"); +import("system.neon"); import("system.result"); import("Communication_lib"); import("system.vars"); import("KeywordRegistry_basic"); import("Keyword_lib"); +var sql = new SqlBuilder() + .selectCount("MAIL_ADDRESS") + .from("MAILSIGNATURE") + .where("MAILSIGNATURE.MAIL_ADDRESS", vars.get("$field.MAIL_ADDRESS")) + .andIfSet("MAILSIGNATURE.MAILSIGNATUREID", vars.get("$field.MAILSIGNATUREID"),SqlBuilder.NOT_EQUAL()) + .cell(); + +if (sql > 0) +{ + result.string(translate.text("Email address has to be unique") + "."); +} var commMedium = "COMMEMAIL"; diff --git a/entity/Member_entity/Member_entity.aod b/entity/Member_entity/Member_entity.aod index 5c1fd6ebd52ac41949e646f2052f92d15621a2fa..f643a48c17d2e1816a4d216ddb1bd29b0914af43 100644 --- a/entity/Member_entity/Member_entity.aod +++ b/entity/Member_entity/Member_entity.aod @@ -4,10 +4,6 @@ <title>${SALESPROJECT_MEMBER}</title> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/Member_entity/documentation.adoc</documentation> - <siblings> - <element>MSTTeam_entity</element> - <element>MSTTeamLink_entity</element> - </siblings> <grantUpdateProcess>%aditoprj%/entity/Member_entity/grantUpdateProcess.js</grantUpdateProcess> <grantDeleteProcess>%aditoprj%/entity/Member_entity/grantDeleteProcess.js</grantDeleteProcess> <contentTitleProcess>%aditoprj%/entity/Member_entity/contentTitleProcess.js</contentTitleProcess> @@ -24,7 +20,6 @@ <consumer>Contacts</consumer> <linkedContext>Person</linkedContext> <mandatory v="true" /> - <dropDownProcess>%aditoprj%/entity/Member_entity/entityfields/contact_id/dropDownProcess.js</dropDownProcess> </entityField> <entityField> <name>OBJECT_ROWID</name> @@ -235,13 +230,6 @@ <iconId>NEON:PENCIL</iconId> <stateProcess>%aditoprj%/entity/Member_entity/entityfields/msteamsactiongroup/children/editteam/stateProcess.js</stateProcess> </entityActionField> - <entityActionField> - <name>addApp</name> - <title>Add app</title> - <onActionProcess>%aditoprj%/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/onActionProcess.js</onActionProcess> - <iconId>VAADIN:MOBILE</iconId> - <stateProcess>%aditoprj%/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/stateProcess.js</stateProcess> - </entityActionField> <entityActionField> <name>chooseTeam</name> <title>Choose Team</title> @@ -258,7 +246,7 @@ </entityActionField> <entityActionField> <name>openMSTeams</name> - <title>Open Teams</title> + <title>Open MS Teams</title> <onActionProcess>%aditoprj%/entity/Member_entity/entityfields/msteamsactiongroup/children/openmsteams/onActionProcess.js</onActionProcess> <iconId>VAADIN:EXTERNAL_LINK</iconId> <stateProcess>%aditoprj%/entity/Member_entity/entityfields/msteamsactiongroup/children/openmsteams/stateProcess.js</stateProcess> @@ -273,8 +261,10 @@ </children> </entityActionGroup> <entityProvider> - <name>TeamMemberProvider</name> + <name>MemberContacts</name> <lookupIdfield>CONTACT_ID</lookupIdfield> + <targetContextField>TARGETCONTEXT</targetContextField> + <targetIdField>CONTACT_ID</targetIdField> </entityProvider> <entityParameter> <name>MSTTeamId_param</name> @@ -294,11 +284,6 @@ <name>recordType</name> <documentation>%aditoprj%/entity/Member_entity/entityfields/recordtype/documentation.adoc</documentation> </entityField> - <entityParameter> - <name>SalesprojectCode_param</name> - <expose v="true" /> - <description>PARAMETER</description> - </entityParameter> <entityField> <name>ONSITE</name> <title>On Site</title> @@ -316,6 +301,10 @@ <groupable v="true" /> <displayValueProcess>%aditoprj%/entity/Member_entity/entityfields/person_attr_loyalty/displayValueProcess.js</displayValueProcess> </entityField> + <entityParameter> + <name>ContactIds_param</name> + <valueProcess>%aditoprj%/entity/Member_entity/entityfields/contactids_param/valueProcess.js</valueProcess> + </entityParameter> <entityField> <name>RESPONSIBLE</name> <title>Responsible</title> diff --git a/entity/Member_entity/entityfields/contact_id/dropDownProcess.js b/entity/Member_entity/entityfields/contact_id/dropDownProcess.js deleted file mode 100644 index e04712f9964d01c3585f846d62f43a8ec9c2a17b..0000000000000000000000000000000000000000 --- a/entity/Member_entity/entityfields/contact_id/dropDownProcess.js +++ /dev/null @@ -1,11 +0,0 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -//This dropDownProcess exists, even though the fieldState is READONLY. -//-->So we can use it when using the filter -var res = KeywordUtils.getEntryNamesByContainer($KeywordRegistry.contactPosition()).map(function (e){ - return [e, e]; //currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers -}); - -result.object(res); \ No newline at end of file diff --git a/entity/Member_entity/entityfields/contactids_param/valueProcess.js b/entity/Member_entity/entityfields/contactids_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..69313097ded5f8871c2d98dae06884a73ea6daac --- /dev/null +++ b/entity/Member_entity/entityfields/contactids_param/valueProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("system.vars"); +import("Sql_lib"); + +var contactIds = newSelect("OBJECTMEMBER.CONTACT_ID") + .from("OBJECTMEMBER").whereIfSet("OBJECTMEMBER.OBJECT_TYPE", vars.get("$param.ObjectType_param")) + .andIfSet("OBJECTMEMBER.OBJECT_ROWID", vars.get("$param.ObjectRowId_param")).arrayColumn(true); +result.string(JSON.stringify(contactIds)); diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/onActionProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/onActionProcess.js deleted file mode 100644 index f53cd7c87d173497b7b8fd5bcbb4ba4212bac637..0000000000000000000000000000000000000000 --- a/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/onActionProcess.js +++ /dev/null @@ -1,7 +0,0 @@ -import("system.teams"); -import("system.project"); -import("system.vars"); - -var appId = project.getInstanceConfigValue("teamsAppId", null); -if (appId) - teams.addApp(vars.get("$param.MSTTeamId_param"), appId); \ No newline at end of file diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/stateProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/stateProcess.js deleted file mode 100644 index f1febe96416f12e029c6de6537cf96e5c7f4d5db..0000000000000000000000000000000000000000 --- a/entity/Member_entity/entityfields/msteamsactiongroup/children/addapp/stateProcess.js +++ /dev/null @@ -1,16 +0,0 @@ -import("MSTeams_lib"); -import("system.vars"); -import("system.neon"); -import("system.result"); -import("Sql_lib"); - -var res = neon.COMPONENTSTATE_DISABLED; -var teamId = vars.get("$param.MSTTeamId_param"); -if (teamId && MSTeamsUtils.isTeamsEnabled()) -{ - var teamInfo = MSTeamsUtils.getTeamInfo(teamId); - if (teamInfo && !teamInfo.isArchived && !teamInfo.serviceUrl) - res = neon.COMPONENTSTATE_EDITABLE; -} - -result.string(res); \ No newline at end of file diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/chooseteam/onActionProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/chooseteam/onActionProcess.js index f5761f78639c0a8b2fc209d0fe50d47ccbb390e2..b6ffb62af2e93df3b267c9b5f695aeb6282624db 100644 --- a/entity/Member_entity/entityfields/msteamsactiongroup/children/chooseteam/onActionProcess.js +++ b/entity/Member_entity/entityfields/msteamsactiongroup/children/chooseteam/onActionProcess.js @@ -1,4 +1,9 @@ -import("MSTeams_lib"); +import("system.neon"); import("system.vars"); +import("AttributeRegistry_basic"); -MSTeamsUtils.changeTeamsLink(vars.get("$field.OBJECT_ROWID"), vars.get("$field.OBJECT_TYPE")); \ No newline at end of file +neon.openContext("AttributeRelation", null, null, neon.OPERATINGSTATE_NEW, { + AttributeId_param: $AttributeRegistry.mstTeam(), + ObjectType_param: vars.get("$param.ObjectType_param"), + ObjectRowId_param: vars.get("$param.ObjectRowId_param") +}); diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/chooseteam/stateProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/chooseteam/stateProcess.js index 82ce3fae3fb447579e492f43ad7158f1d8bd0182..842a7a8b1f45f7d438f605824280bd6e42e2373c 100644 --- a/entity/Member_entity/entityfields/msteamsactiongroup/children/chooseteam/stateProcess.js +++ b/entity/Member_entity/entityfields/msteamsactiongroup/children/chooseteam/stateProcess.js @@ -1,8 +1,13 @@ +import("system.result"); import("system.vars"); import("system.neon"); -import("system.result"); +import("Util_lib"); -result.string(vars.exists("$param.MSTTeamId_param") && vars.get("$param.MSTTeamId_param") - ? neon.COMPONENTSTATE_DISABLED - : neon.COMPONENTSTATE_EDITABLE -); \ No newline at end of file +var hasMembers = (Utils.parseJSON(vars.get("$param.ContactIds_param")) || []).length; +var hasTeamId = vars.exists("$param.MSTTeamId_param") && vars.get("$param.MSTTeamId_param"); +var res = neon.COMPONENTSTATE_EDITABLE; +if(!hasMembers || hasTeamId) +{ + res = neon.COMPONENTSTATE_DISABLED ; +} +result.string(res); diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/createteam/onActionProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/createteam/onActionProcess.js index 611e6d3926780aa4e436f626508e3b1f7a8a4cbc..ed5f6c0ceae9984aca8f2eaa9daa7797247da83c 100644 --- a/entity/Member_entity/entityfields/msteamsactiongroup/children/createteam/onActionProcess.js +++ b/entity/Member_entity/entityfields/msteamsactiongroup/children/createteam/onActionProcess.js @@ -5,9 +5,11 @@ import("Sql_lib"); var rowId = vars.get("$param.ObjectRowId_param"); var objectType = vars.get("$param.ObjectType_param"); +var contactIds = vars.get("$param.ContactIds_param"); var params = { "ObjectRowId_param": rowId, - "ObjectType_param": objectType + "ObjectType_param": objectType, + "ContactIds_param": contactIds }; if (objectType === "Salesproject") @@ -18,7 +20,6 @@ if (objectType === "Salesproject") .arrayRow(); params["TeamName_param"] = teamName; params["Description_param"] = description; - params["SalesprojectCode_param"] = vars.get("$param.SalesprojectCode_param"); } -neon.openContext("MSTTeam", null, null, neon.OPERATINGSTATE_NEW, params); \ No newline at end of file +neon.openContext("MSTTeam", null, null, neon.OPERATINGSTATE_NEW, params); diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/createteam/stateProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/createteam/stateProcess.js index 82ce3fae3fb447579e492f43ad7158f1d8bd0182..ec1ae4dba8900c359402a9ba7e77a6155db28fdd 100644 --- a/entity/Member_entity/entityfields/msteamsactiongroup/children/createteam/stateProcess.js +++ b/entity/Member_entity/entityfields/msteamsactiongroup/children/createteam/stateProcess.js @@ -1,8 +1,10 @@ +import("system.result"); import("system.vars"); import("system.neon"); -import("system.result"); +import("Util_lib"); -result.string(vars.exists("$param.MSTTeamId_param") && vars.get("$param.MSTTeamId_param") +var hasMembers = (Utils.parseJSON(vars.get("$param.ContactIds_param")) || []).length; +result.string(!hasMembers || (vars.exists("$param.MSTTeamId_param") && vars.get("$param.MSTTeamId_param")) ? neon.COMPONENTSTATE_DISABLED : neon.COMPONENTSTATE_EDITABLE -); \ No newline at end of file +); diff --git a/entity/Member_entity/entityfields/msteamsactiongroup/children/editteam/onActionProcess.js b/entity/Member_entity/entityfields/msteamsactiongroup/children/editteam/onActionProcess.js index 8f072bc03d016ca70df4643d9f32d8c29c8523e5..746823a3b6e4b00635d7b22610a74dae24415986 100644 --- a/entity/Member_entity/entityfields/msteamsactiongroup/children/editteam/onActionProcess.js +++ b/entity/Member_entity/entityfields/msteamsactiongroup/children/editteam/onActionProcess.js @@ -1,7 +1,8 @@ import("system.vars"); import("system.neon"); -neon.openContext("MSTTeam", "MSTTeamEditMembers_view", [vars.get("$param.MSTTeamId_param")], neon.OPERATINGSTATE_EDIT, { +neon.openContext("MSTTeam", null, [vars.get("$param.MSTTeamId_param")], neon.OPERATINGSTATE_EDIT, { "ObjectRowId_param": vars.get("$param.ObjectRowId_param"), - "ObjectType_param": vars.get("$param.ObjectType_param") -}); \ No newline at end of file + "ObjectType_param": vars.get("$param.ObjectType_param"), + "ContactIds_param": vars.get("$param.ContactIds_param") +}); diff --git a/entity/Member_entity/entityfields/mstteamid_param/valueProcess.js b/entity/Member_entity/entityfields/mstteamid_param/valueProcess.js index 566da0b330d91a6b956f6a40c0517ce03f795a91..b09bae08d23b772e21e26b7e4edc54d5bbb9cd23 100644 --- a/entity/Member_entity/entityfields/mstteamid_param/valueProcess.js +++ b/entity/Member_entity/entityfields/mstteamid_param/valueProcess.js @@ -1,8 +1,7 @@ -import("system.vars"); import("system.result"); -import("Sql_lib"); -import("MSTeams_lib"); +import("system.vars"); +import("Attribute_lib"); +import("AttributeRegistry_basic"); -var objectType = vars.get("$param.ObjectType_param"); -if (objectType in MSTeamsUtils.getTeamLinkContexts()) - result.string(MSTeamsUtils.getLinkedTeam(vars.get("$param.ObjectRowId_param"), objectType) || ""); \ No newline at end of file +result.string(new AttributeRelationQuery(vars.get("$param.ObjectRowId_param"), + $AttributeRegistry.mstTeam(), vars.get("$param.ObjectType_param")).getSingleAttributeValue()); diff --git a/entity/Member_entity/entityfields/object_rowid/displayValueProcess.js b/entity/Member_entity/entityfields/object_rowid/displayValueProcess.js index e6e750d04788d9ab345eb50e83c174f53b70f6fa..43825745b43d95f3485fa53e23086d48c233b51d 100644 --- a/entity/Member_entity/entityfields/object_rowid/displayValueProcess.js +++ b/entity/Member_entity/entityfields/object_rowid/displayValueProcess.js @@ -12,7 +12,7 @@ else if(vars.exists("$field.OBJECT_TYPE") && vars.get("$field.OBJECT_TYPE")) { if(vars.get("$field.OBJECT_TYPE") == "Salesproject") { - result.string(ContextUtils.getTitleByContext(vars.get("$field.OBJECT_TYPE"), vars.get("$field.OBJECT_ROWID"), "IgnoreChecklists_param")); + result.string(ContextUtils.getTitleByContext(vars.get("$field.OBJECT_TYPE"), vars.get("$field.OBJECT_ROWID"), null, {"IgnoreChecklists_param": true})); } else { diff --git a/entity/Observation_entity/entityfields/contexts/children/blacklist_param/valueProcess.js b/entity/Observation_entity/entityfields/contexts/children/blacklist_param/valueProcess.js index ce4ed3a334253f41bc34a9e5751e2e316485f481..37a3f5dbb180129c0cac6bf9f33e23c5ba05cc0f 100644 --- a/entity/Observation_entity/entityfields/contexts/children/blacklist_param/valueProcess.js +++ b/entity/Observation_entity/entityfields/contexts/children/blacklist_param/valueProcess.js @@ -13,4 +13,4 @@ if (vars.get("$field.OBSERVATION_ID")) .cell(); } -result.object(Observation.getAllContextValue(type)); \ No newline at end of file + result.object(Observation.getAllContextValue(type)); \ No newline at end of file diff --git a/entity/Observation_entity/entityfields/object_filter/valueProcess.js b/entity/Observation_entity/entityfields/object_filter/valueProcess.js index df026f7192e7752d7364fa8739aad1c0973d3acc..5df8f1ef2df62ce0338c8c20c8521e697d088342 100644 --- a/entity/Observation_entity/entityfields/object_filter/valueProcess.js +++ b/entity/Observation_entity/entityfields/object_filter/valueProcess.js @@ -1,5 +1,5 @@ +import("JditoFilter_lib"); import("Observation_lib"); -import("Context_lib"); import("system.vars"); import("system.result"); @@ -8,7 +8,7 @@ let resFilter; if ((vars.get("$this.value") == null || vars.get("$this.value") == "") && vars.get("$field.OBJECT_TYPE") && !vars.get("$field.OBJECT_ID") && !filterParam) { - resFilter = Observation.getContextFilter(vars.get("$field.OBJECT_TYPE"), null); + resFilter = JditoFilterUtils.getContextFilter(vars.get("$field.OBJECT_TYPE"), null); } else if (!vars.get("$this.value") && filterParam) { diff --git a/entity/Observation_entity/recordcontainers/db/onDBInsert.js b/entity/Observation_entity/recordcontainers/db/onDBInsert.js index aa3b524a0b205afb4d6793903fc229447669fc89..18326447c59744ab1733c0474408dc6969ccbbcd 100644 --- a/entity/Observation_entity/recordcontainers/db/onDBInsert.js +++ b/entity/Observation_entity/recordcontainers/db/onDBInsert.js @@ -1,3 +1,4 @@ +import("JditoFilter_lib"); import("system.vars"); import("Observation_lib"); import("system.entities"); @@ -14,7 +15,7 @@ if (vars.get("$field.includeDependencies") == "1") "OBJECT_FIELD" : Observation.getAllFieldValue(contextID).toString(), "includeDependencies" : false, "OBSERVATION_ID" : observation_id, - "OBJECT_FILTER" : Observation.getContextFilter(contextID, null) + "OBJECT_FILTER" : JditoFilterUtils.getContextFilter(contextID, null) } let createRowConfig = entities.createConfigForAddingRows() diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod index 3eeea68776f6dfddf0736b8794cfeb338f7eefcd..c15e6b3b30ad8e9366286cbe5e4ecedfe77499aa 100644 --- a/entity/Offer_entity/Offer_entity.aod +++ b/entity/Offer_entity/Offer_entity.aod @@ -18,6 +18,17 @@ <titlePlural>Offers</titlePlural> <recordContainer>db</recordContainer> <entityFields> + <entityActionField> + <name>export</name> + <title>Export</title> + <onActionProcess>%aditoprj%/entity/Offer_entity/entityfields/export/onActionProcess.js</onActionProcess> + <isMenuAction v="true" /> + <isObjectAction v="false" /> + <iconId>NEON:EXPORT</iconId> + <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/export/stateProcess.js</stateProcess> + <tooltip>Export fields of this table</tooltip> + <tooltipProcess>%aditoprj%/entity/Offer_entity/entityfields/export/tooltipProcess.js</tooltipProcess> + </entityActionField> <entityProvider> <name>#PROVIDER</name> </entityProvider> @@ -957,6 +968,7 @@ <contentType>NUMBER</contentType> <outputFormat>0.00'%'</outputFormat> <inputFormat>0.00</inputFormat> + <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/discount/stateProcess.js</stateProcess> <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/discount/valueProcess.js</valueProcess> <onValueChange>%aditoprj%/entity/Offer_entity/entityfields/discount/onValueChange.js</onValueChange> <onValueChangeTypes> diff --git a/entity/Offer_entity/entityfields/discount/stateProcess.js b/entity/Offer_entity/entityfields/discount/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8c131df635e8bd89ea2f56d920eb56bb9c5af588 --- /dev/null +++ b/entity/Offer_entity/entityfields/discount/stateProcess.js @@ -0,0 +1,6 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); +import("Offer_lib"); + +result.string(OfferUtils.isEditable(vars.get("$field.STATUS")) ? neon.COMPONENTSTATE_AUTO : neon.COMPONENTSTATE_DISABLED); diff --git a/entity/Offer_entity/entityfields/export/onActionProcess.js b/entity/Offer_entity/entityfields/export/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6c68dcef71d0a7db12fd4d25819640764899dbad --- /dev/null +++ b/entity/Offer_entity/entityfields/export/onActionProcess.js @@ -0,0 +1,11 @@ +import("ExportTemplate_lib"); +import("system.vars"); + +var selection = vars.get("$sys.selection"); + +if(selection.length == 0) //no selection -> use Filtercondition; +{ + selection = vars.get("$sys.filter"); +} + +ExportTemplateUtils.addParticipants(JSON.stringify(selection), vars.get("$sys.currentcontextname")); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/export/stateProcess.js b/entity/Offer_entity/entityfields/export/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..7fc578ee7942eeb948f08d3dd86f5950d3fa1c41 --- /dev/null +++ b/entity/Offer_entity/entityfields/export/stateProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("FilterViewAction_lib"); +import("system.vars"); + +var contactCount = vars.get("$sys.datarowcount"); + +result.string(FilterViewActionUtils.getComponentStateByRowCount(contactCount)); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/export/tooltipProcess.js b/entity/Offer_entity/entityfields/export/tooltipProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4aaaed5c074ef854441aa45e3e7993b2f77c04c4 --- /dev/null +++ b/entity/Offer_entity/entityfields/export/tooltipProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("Export columns using a exporttemplate")); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/orders/children/copy_param/valueProcess.js b/entity/Offer_entity/entityfields/orders/children/copy_param/valueProcess.js index 5200a58a795a404a1f168028da796c5495f74741..01607276137fde77208e2edb52fa35f0b7c40590 100644 --- a/entity/Offer_entity/entityfields/orders/children/copy_param/valueProcess.js +++ b/entity/Offer_entity/entityfields/orders/children/copy_param/valueProcess.js @@ -1,17 +1,16 @@ import("system.result"); import("system.vars"); -var fieldparams = -{ - "$field.CONTACT_ID" : vars.getString("$field.CONTACT_ID") || "", - "$field.ISOLANGUAGE" : vars.getString("$field.ISOLANGUAGE") || "", - "$field.OFFER_ID" : vars.getString("$field.OFFERID") || "", - "$field.CURRENCY" : vars.getString("$field.CURRENCY") || "", - "$field.PAYMENTADDRESS" : vars.getString("$field.ADDRESS") || "", - "$field.DELIVERYADDRESS" : vars.getString("$field.ADDRESS") || "", - "$field.OBJECT_TYPE" : vars.getString("$field.OBJECT_TYPE") || "", - "$field.OBJECT_ROWID" : vars.getString("$field.OBJECT_ROWID") || "", - "$field.DISCOUNT" : vars.getString("$field.DISCOUNT") || "" -}; +//the string concating is needed, because otherwise the Scan Services of the designer would mark the "missing" fields as erros +var fieldparams = {}; +fieldparams["$field" + ".CONTACT_ID"] = vars.getString("$field.CONTACT_ID") || ""; +fieldparams["$field" + ".ISOLANGUAGE"] = vars.getString("$field.ISOLANGUAGE") || ""; +fieldparams["$field" + ".OFFER_ID"] = vars.getString("$field.OFFER_ID") || ""; +fieldparams["$field" + ".CURRENCY"] = vars.getString("$field.CURRENCY") || ""; +fieldparams["$field" + ".PAYMENTADDRESS"] = vars.getString("$field.ADDRESS") || ""; +fieldparams["$field" + ".DELIVERYADDRESS"] = vars.getString("$field.ADDRESS") || ""; +fieldparams["$field" + ".OBJECT_TYPE"] = vars.getString("$field.OBJECT_TYPE") || ""; +fieldparams["$field" + ".OBJECT_ROWID"] = vars.getString("$field.OBJECT_ROWID") || ""; +fieldparams["$field" + ".DISCOUNT"] = vars.getString("$field.DISCOUNT") || ""; result.string(JSON.stringify(fieldparams)); \ No newline at end of file diff --git a/entity/Offeritem_entity/Offeritem_entity.aod b/entity/Offeritem_entity/Offeritem_entity.aod index 289f5890fd4f0cff3ee3b45aab0913c6931ec22a..5657ac3d3c0da879e05ed500d8778e94c90611df 100644 --- a/entity/Offeritem_entity/Offeritem_entity.aod +++ b/entity/Offeritem_entity/Offeritem_entity.aod @@ -71,10 +71,12 @@ <name>PRICE</name> <title>Unit price</title> <contentType>NUMBER</contentType> + <minValueProcess>%aditoprj%/entity/Offeritem_entity/entityfields/price/minValueProcess.js</minValueProcess> <outputFormat>#,##0.00</outputFormat> <inputFormat>#,##0.00</inputFormat> <mandatory v="true" /> <displayValueProcess>%aditoprj%/entity/Offeritem_entity/entityfields/price/displayValueProcess.js</displayValueProcess> + <onValidation>%aditoprj%/entity/Offeritem_entity/entityfields/price/onValidation.js</onValidation> </entityField> <entityField> <name>PRODUCT_ID</name> @@ -124,6 +126,7 @@ <name>VAT</name> <title>VAT</title> <contentType>NUMBER</contentType> + <minValue v="0" /> <outputFormat>0.00'%'</outputFormat> <inputFormat>0.00</inputFormat> <valueProcess>%aditoprj%/entity/Offeritem_entity/entityfields/vat/valueProcess.js</valueProcess> @@ -401,6 +404,10 @@ <name>PRODUCT_ID.displayValue</name> <expression>%aditoprj%/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/product_id.displayvalue/expression.js</expression> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DISCOUNT.displayValue</name> + <expression>%aditoprj%/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/discount.displayvalue/expression.js</expression> + </dbRecordFieldMapping> </recordFieldMappings> <linkInformation> <linkInformation> diff --git a/entity/Offeritem_entity/entityfields/price/minValueProcess.js b/entity/Offeritem_entity/entityfields/price/minValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..451af92dfde3bab6aa84cfecb241b4d00fb6493e --- /dev/null +++ b/entity/Offeritem_entity/entityfields/price/minValueProcess.js @@ -0,0 +1,23 @@ +import("KeywordRegistry_basic"); +import("system.result"); +import("Sql_lib"); +import("system.vars"); + +//allow negative values if product is discount +var minValue = 0; + +var productId = vars.get("$field.PRODUCT_ID"); +if(productId) +{ + var productGroup = newSelect("PRODUCT.GROUPCODEID") + .from("PRODUCT") + .where("PRODUCT.PRODUCTID", productId) + .cell(); + + if(productGroup == $KeywordRegistry.productGroupcode$discount()) + { + minValue = ""; + } +} + +result.string(minValue); \ No newline at end of file diff --git a/entity/Offeritem_entity/entityfields/price/onValidation.js b/entity/Offeritem_entity/entityfields/price/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..3ccd297cc74a4edb1a45f0e84755546882d8ed52 --- /dev/null +++ b/entity/Offeritem_entity/entityfields/price/onValidation.js @@ -0,0 +1,27 @@ +import("system.result"); +import("Util_lib"); +import("KeywordRegistry_basic"); +import("system.vars"); +import("Sql_lib"); + +var value = vars.get("local.value"); +var minValue = 0; + +var productId = vars.get("$field.PRODUCT_ID"); +if(productId) +{ + var productGroup = newSelect("PRODUCT.GROUPCODEID") + .from("PRODUCT") + .where("PRODUCT.PRODUCTID", productId) + .cell(); + + if(productGroup != $KeywordRegistry.productGroupcode$discount()) + { + var validationResult = NumberUtils.validateIsBetweenFloat("Unit price", value, minValue, Number.MAX_VALUE); + + if (validationResult) + { + result.string(validationResult); + } + } +} \ No newline at end of file diff --git a/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/discount.displayvalue/expression.js b/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/discount.displayvalue/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..171a4725655b52380e1aaaaaa368a4e81ca423fd --- /dev/null +++ b/entity/Offeritem_entity/recordcontainers/db/recordfieldmappings/discount.displayvalue/expression.js @@ -0,0 +1,4 @@ +import("system.result"); +import("Sql_lib"); + +result.string(SqlBuilder.caseWhen(newWhere("OFFERITEM.DISCOUNT is null")).then("0").elseValue("OFFERITEM.DISCOUNT").toString()); \ No newline at end of file diff --git a/entity/OrderLink_entity/OrderLink_entity.aod b/entity/OrderLink_entity/OrderLink_entity.aod index 31ef46c5af384b5db5df4961ab7df4c10e27876b..71dc81b9a775fddabd6f524c94ff39520fed7c1c 100644 --- a/entity/OrderLink_entity/OrderLink_entity.aod +++ b/entity/OrderLink_entity/OrderLink_entity.aod @@ -100,32 +100,42 @@ <recordFieldMappings> <dbRecordFieldMapping> <name>DATE_EDIT.value</name> + <recordfield>SALESORDERLINK.DATE_EDIT</recordfield> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>DATE_NEW.value</name> + <recordfield>SALESORDERLINK.DATE_NEW</recordfield> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>OBJECT_ROWID.value</name> + <recordfield>SALESORDERLINK.OBJECT_ROWID</recordfield> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>OBJECT_TYPE.value</name> + <recordfield>SALESORDERLINK.OBJECT_TYPE</recordfield> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>SALESORDER_ID.value</name> + <recordfield>SALESORDERLINK.SALESORDER_ID</recordfield> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>SALESORDERLINKID.value</name> + <recordfield>SALESORDERLINK.SALESORDERLINKID</recordfield> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>USER_EDIT.value</name> + <recordfield>SALESORDERLINK.USER_EDIT</recordfield> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>USER_NEW.value</name> + <recordfield>SALESORDERLINK.USER_NEW</recordfield> </dbRecordFieldMapping> </recordFieldMappings> <linkInformation> <linkInformation> - <name>ee3c9a6f-53e4-4579-b2b8-994913cba502</name> + <name>7db945ec-4717-4c06-b462-a28dc35f4411</name> + <tableName>SALESORDERLINK</tableName> + <primaryKey>SALESORDERLINKID</primaryKey> <isUIDTable v="true" /> <readonly v="false" /> </linkInformation> diff --git a/entity/Order_entity/Order_entity.aod b/entity/Order_entity/Order_entity.aod index 4447130cb1261aacc613504e4d67b3d41f1173f1..399419f16b384223b203e8c99c2f502e6b0bd1e3 100644 --- a/entity/Order_entity/Order_entity.aod +++ b/entity/Order_entity/Order_entity.aod @@ -67,6 +67,7 @@ <name>VAT</name> <title>Total VAT</title> <contentType>NUMBER</contentType> + <minValue v="0" /> <state>READONLY</state> <stateProcess>%aditoprj%/entity/Order_entity/entityfields/vat/stateProcess.js</stateProcess> <displayValueProcess>%aditoprj%/entity/Order_entity/entityfields/vat/displayValueProcess.js</displayValueProcess> diff --git a/entity/Order_entity/entityfields/object_rowid/displayValueProcess.js b/entity/Order_entity/entityfields/object_rowid/displayValueProcess.js index 95c4eea5367140dc2d81e470ba0607adf52f07c1..097818829c387fa6035aac140d75f2f5f9110dc1 100644 --- a/entity/Order_entity/entityfields/object_rowid/displayValueProcess.js +++ b/entity/Order_entity/entityfields/object_rowid/displayValueProcess.js @@ -4,8 +4,11 @@ import("system.db"); import("system.result"); import("Context_lib"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$field.OBJECT_ROWID")) { +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$field.OBJECT_ROWID")) +{ result.string(""); -} else if (vars.exists("$field.OBJECT_TYPE") && vars.get("$field.OBJECT_TYPE")) { +} +else if (vars.exists("$field.OBJECT_TYPE") && vars.get("$field.OBJECT_TYPE")) +{ result.string(ContextUtils.getTitleByContext(vars.get("$field.OBJECT_TYPE"), vars.get("$field.OBJECT_ROWID"))); } \ No newline at end of file diff --git a/entity/Order_entity/entityfields/object_type/displayValueProcess.js b/entity/Order_entity/entityfields/object_type/displayValueProcess.js index d7b4dedc2e4402d6ce48c1acd8eb730acc2601d2..cf98e1ebaab9767f613c557e8d4ad91eed7756e2 100644 --- a/entity/Order_entity/entityfields/object_type/displayValueProcess.js +++ b/entity/Order_entity/entityfields/object_type/displayValueProcess.js @@ -3,8 +3,11 @@ import("system.neon"); import("system.vars"); import("system.project"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$field.OBJECT_TYPE")) { +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$field.OBJECT_TYPE")) +{ result.string(""); -} else if (vars.exists("$field.OBJECT_TYPE") && vars.get("$field.OBJECT_TYPE")) { +} +else if (vars.exists("$field.OBJECT_TYPE") && vars.get("$field.OBJECT_TYPE")) +{ result.string(project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$field.OBJECT_TYPE"))[1]); } diff --git a/entity/Orderitem_entity/Orderitem_entity.aod b/entity/Orderitem_entity/Orderitem_entity.aod index a79ce1593a2b0f20c56673324cc5e028c3da13af..2ba72ab532b66adfcc197f4986d6b9ffa780ba08 100644 --- a/entity/Orderitem_entity/Orderitem_entity.aod +++ b/entity/Orderitem_entity/Orderitem_entity.aod @@ -23,6 +23,7 @@ <name>DISCOUNT</name> <title>Discount</title> <contentType>NUMBER</contentType> + <minValue v="0" /> <outputFormat>#,##0.00</outputFormat> </entityField> <entityField> @@ -58,10 +59,12 @@ <name>PRICE</name> <title>Unit price</title> <contentType>NUMBER</contentType> + <minValueProcess>%aditoprj%/entity/Orderitem_entity/entityfields/price/minValueProcess.js</minValueProcess> <outputFormat>#,##0.00</outputFormat> <inputFormat>#,##0.00</inputFormat> <mandatory v="true" /> <displayValueProcess>%aditoprj%/entity/Orderitem_entity/entityfields/price/displayValueProcess.js</displayValueProcess> + <onValidation>%aditoprj%/entity/Orderitem_entity/entityfields/price/onValidation.js</onValidation> </entityField> <entityField> <name>PRODUCT_ID</name> @@ -82,6 +85,7 @@ <documentation>%aditoprj%/entity/Orderitem_entity/entityfields/quantity/documentation.adoc</documentation> <title>Quantity</title> <contentType>NUMBER</contentType> + <minValue v="1" /> <outputFormat>#</outputFormat> <valueProcess>%aditoprj%/entity/Orderitem_entity/entityfields/quantity/valueProcess.js</valueProcess> <onValueChange>%aditoprj%/entity/Orderitem_entity/entityfields/quantity/onValueChange.js</onValueChange> diff --git a/entity/Orderitem_entity/entityfields/price/minValueProcess.js b/entity/Orderitem_entity/entityfields/price/minValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..451af92dfde3bab6aa84cfecb241b4d00fb6493e --- /dev/null +++ b/entity/Orderitem_entity/entityfields/price/minValueProcess.js @@ -0,0 +1,23 @@ +import("KeywordRegistry_basic"); +import("system.result"); +import("Sql_lib"); +import("system.vars"); + +//allow negative values if product is discount +var minValue = 0; + +var productId = vars.get("$field.PRODUCT_ID"); +if(productId) +{ + var productGroup = newSelect("PRODUCT.GROUPCODEID") + .from("PRODUCT") + .where("PRODUCT.PRODUCTID", productId) + .cell(); + + if(productGroup == $KeywordRegistry.productGroupcode$discount()) + { + minValue = ""; + } +} + +result.string(minValue); \ No newline at end of file diff --git a/entity/Orderitem_entity/entityfields/price/onValidation.js b/entity/Orderitem_entity/entityfields/price/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..0a8a01d7ceb9605da7d6826ad4a17557f690a087 --- /dev/null +++ b/entity/Orderitem_entity/entityfields/price/onValidation.js @@ -0,0 +1,27 @@ +import("system.result"); +import("Util_lib"); +import("KeywordRegistry_basic"); +import("Sql_lib"); +import("system.vars"); + +var value = vars.get("local.value"); +var minValue = 0; + +var productId = vars.get("$field.PRODUCT_ID"); +if(productId) +{ + var productGroup = newSelect("PRODUCT.GROUPCODEID") + .from("PRODUCT") + .where("PRODUCT.PRODUCTID", productId) + .cell(); + + if(productGroup != $KeywordRegistry.productGroupcode$discount()) + { + var validationResult = NumberUtils.validateIsBetweenFloat("Unit price", value, minValue, Number.MAX_VALUE); + + if (validationResult) + { + result.string(validationResult); + } + } +} diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod index 72cb6cdb2bf27b4774d18628cdb7caa3f8b578f0..2d38273879e6dde845177b56147bfc3403c82138 100644 --- a/entity/Organisation_entity/Organisation_entity.aod +++ b/entity/Organisation_entity/Organisation_entity.aod @@ -1272,7 +1272,7 @@ <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/orgreportdispatch/children/dispatchorgreport/onActionProcess.js</onActionProcess> <isObjectAction v="false" /> <iconId>VAADIN:AT</iconId> - <iconIdProcess>%aditoprj%/entity/Organisation_entity/entityfields/orgreportdispatch/children/dispatchorgreport/iconIdProcess.js</iconIdProcess> + <stateProcess>%aditoprj%/entity/Organisation_entity/entityfields/orgreportdispatch/children/dispatchorgreport/stateProcess.js</stateProcess> </entityActionField> </children> </entityActionGroup> @@ -1409,6 +1409,10 @@ <name>ChecklistIds_param</name> <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/checklistentryvalues/children/checklistids_param/valueProcess.js</valueProcess> </entityParameter> + <entityParameter> + <name>Presentationmode_param</name> + <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/checklistentryvalues/children/presentationmode_param/valueProcess.js</valueProcess> + </entityParameter> </children> </entityConsumer> <entityParameter> diff --git a/entity/Organisation_entity/entityfields/checklistentryvalues/children/presentationmode_param/valueProcess.js b/entity/Organisation_entity/entityfields/checklistentryvalues/children/presentationmode_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c5f4daf64965b6611992280cd8e2e9488b05f12b --- /dev/null +++ b/entity/Organisation_entity/entityfields/checklistentryvalues/children/presentationmode_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$sys.presentationmode")); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js index ecad88623a921908ff07c1929560d806ff8c440d..6c68dcef71d0a7db12fd4d25819640764899dbad 100644 --- a/entity/Organisation_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js +++ b/entity/Organisation_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js @@ -1,14 +1,11 @@ import("ExportTemplate_lib"); import("system.vars"); -var sysSelection = vars.get("$sys.selection"); +var selection = vars.get("$sys.selection"); -if(sysSelection.length > 0) //if data selected -> use selected data +if(selection.length == 0) //no selection -> use Filtercondition; { - ExportTemplateUtils.addParticipantsByRowIds(JSON.stringify(sysSelection), vars.get("$sys.currentcontextname")); + selection = vars.get("$sys.filter"); } -else //else -> use Filtercondition -{ - let sysFilter = vars.get("$sys.filter"); - ExportTemplateUtils.addParticipantsByCondition(JSON.stringify(sysFilter), vars.get("$sys.currentcontextname")); -} \ No newline at end of file + +ExportTemplateUtils.addParticipants(JSON.stringify(selection), vars.get("$sys.currentcontextname")); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/orgreportdispatch/children/dispatchorgreport/iconIdProcess.js b/entity/Organisation_entity/entityfields/orgreportdispatch/children/dispatchorgreport/stateProcess.js similarity index 100% rename from entity/Organisation_entity/entityfields/orgreportdispatch/children/dispatchorgreport/iconIdProcess.js rename to entity/Organisation_entity/entityfields/orgreportdispatch/children/dispatchorgreport/stateProcess.js diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod index 5668029cc950db0f04026a5a0abf6b8ce60676f4..057d30016a75808bf365324c215ef214b43c29ea 100644 --- a/entity/Person_entity/Person_entity.aod +++ b/entity/Person_entity/Person_entity.aod @@ -1375,7 +1375,7 @@ <dependency> <name>dependency</name> <entityName>SupportTicket_entity</entityName> - <fieldName>TicketsProvider</fieldName> + <fieldName>SupportTickets</fieldName> </dependency> <children> <entityParameter> diff --git a/entity/Person_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js b/entity/Person_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js index ecad88623a921908ff07c1929560d806ff8c440d..6c68dcef71d0a7db12fd4d25819640764899dbad 100644 --- a/entity/Person_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js +++ b/entity/Person_entity/entityfields/filterviewactiongroup/children/export/onActionProcess.js @@ -1,14 +1,11 @@ import("ExportTemplate_lib"); import("system.vars"); -var sysSelection = vars.get("$sys.selection"); +var selection = vars.get("$sys.selection"); -if(sysSelection.length > 0) //if data selected -> use selected data +if(selection.length == 0) //no selection -> use Filtercondition; { - ExportTemplateUtils.addParticipantsByRowIds(JSON.stringify(sysSelection), vars.get("$sys.currentcontextname")); + selection = vars.get("$sys.filter"); } -else //else -> use Filtercondition -{ - let sysFilter = vars.get("$sys.filter"); - ExportTemplateUtils.addParticipantsByCondition(JSON.stringify(sysFilter), vars.get("$sys.currentcontextname")); -} \ No newline at end of file + +ExportTemplateUtils.addParticipants(JSON.stringify(selection), vars.get("$sys.currentcontextname")); \ No newline at end of file diff --git a/entity/Person_entity/entityfields/organisation_contactid/stateProcess.js b/entity/Person_entity/entityfields/organisation_contactid/stateProcess.js index 7d8abdebb5fe1f2471641ff52029303f559bc3e1..00c30091c832943070c8396ca469529ca6eb7280 100644 --- a/entity/Person_entity/entityfields/organisation_contactid/stateProcess.js +++ b/entity/Person_entity/entityfields/organisation_contactid/stateProcess.js @@ -11,8 +11,8 @@ var contactId = vars.get("$field.CONTACTID"); var linkedObject = new HasLinkedObjectTester() .andNoEntityRows("Activity_entity", "LinkedObjects", {ObjectId_param : currentContext, RowId_param : contactId}) -.andNoEntityRows("360Degree_entity", "PersonObjects", {ObjectRowId_param : contactId , ObjectStatus_param : vars.get("$field.STATUS")}) -.andNoEntityRows("ObjectTree_entity", "TreeProvider", {ObjectIds_param : [vars.get("$field.CONTACTID"), vars.get("$field.PERSON_ID")], ObjectTypes_param : currentContext}) +.andNoEntityRows("360Degree_entity", "PersonObjects", {ObjectRowId_param : JSON.stringify([contactId]) , ObjectStatus_param : vars.get("$field.STATUS")}) +.andNoEntityRows("ObjectTree_entity", "TreeProvider", {ObjectIds_param : JSON.stringify([vars.get("$field.CONTACTID"), vars.get("$field.PERSON_ID")]), ObjectTypes_param : currentContext}) //.andNoEntityRows("AttributeRelation_entity", "TreeProvider", {ObjectRowId_param : contactId, ObjectType_param : currentContext}) //.andNoEntityRows("DistrictResponsible_entity", "OrganisationResponsibles", {OrgUid_param : vars.get("$field.ORGANISATION_CONTACTID")}) //District Responsible and Object Tree is default data record .andNoEntityRows("Document_entity", "Documents", {AssignmentRowId_param : contactId, AssignmentTable_param : "RELATION"}) diff --git a/entity/Person_entity/entityfields/serviceticket/children/returnempty_param/valueProcess.js b/entity/Person_entity/entityfields/serviceticket/children/returnempty_param/valueProcess.js index b691020ed6224d159383287eb2b841b9d5d225bd..dc28dd1668428cd72a6afb49c02147bd36f8ba42 100644 --- a/entity/Person_entity/entityfields/serviceticket/children/returnempty_param/valueProcess.js +++ b/entity/Person_entity/entityfields/serviceticket/children/returnempty_param/valueProcess.js @@ -1,4 +1,4 @@ import("system.result"); -result.string( true); \ No newline at end of file +result.string( false); \ No newline at end of file diff --git a/entity/Prod2prod_entity/entityfields/alter/children/insert/onActionProcess.js b/entity/Prod2prod_entity/entityfields/alter/children/insert/onActionProcess.js index 7119a964dc6512ad374f8aa17b917d126a27e1fd..c599a0919963ad333599a18e1f2f6985a706f51b 100644 --- a/entity/Prod2prod_entity/entityfields/alter/children/insert/onActionProcess.js +++ b/entity/Prod2prod_entity/entityfields/alter/children/insert/onActionProcess.js @@ -1,9 +1,9 @@ import("system.neon"); import("system.vars"); -if (vars.exists("$local.rows") && vars.get("$local.rows")) +if (vars.exists("$sys.selectionRows") && vars.get("$sys.selectionRows")) { - var selectedRows = vars.get("$local.rows"); + var selectedRows = vars.get("$sys.selectionRows"); if (selectedRows.length > 0 && vars.exists("$param.ProductId_param") && vars.getString("$param.ProductId_param")) { diff --git a/entity/Product_entity/recordcontainers/db/recordfieldmappings/statustileview.displayvalue/expression.js b/entity/Product_entity/recordcontainers/db/recordfieldmappings/statustileview.displayvalue/expression.js index cbf8f98c51597e787b6bb993e87f9964da345f47..f88c2129f76173abf61f5d2945b8eeff30191153 100644 --- a/entity/Product_entity/recordcontainers/db/recordfieldmappings/statustileview.displayvalue/expression.js +++ b/entity/Product_entity/recordcontainers/db/recordfieldmappings/statustileview.displayvalue/expression.js @@ -2,4 +2,4 @@ import("system.translate"); import("Sql_lib"); import("system.result"); -result.string(SqlBuilder.caseWhen(newWhere("PRODUCT.STATUS", "1")).thenString(translate.text("Active")).elseString(translate.text("Inactive")).toString()); \ No newline at end of file +result.string(SqlBuilder.caseWhen(newWhere("PRODUCT.STATUS", 1)).thenString(translate.text("Active")).elseString(translate.text("Inactive")).toString()); \ No newline at end of file diff --git a/entity/Productprice_entity/onValidation.js b/entity/Productprice_entity/onValidation.js index de8f835701b17f6247e266a035faf4d426b10fcc..bc32d44d44f0f4508f4a090173f1f855c2fd3bd5 100644 --- a/entity/Productprice_entity/onValidation.js +++ b/entity/Productprice_entity/onValidation.js @@ -1,3 +1,4 @@ +import("Util_lib"); import("system.datetime"); import("system.eMath"); import("system.translate"); @@ -28,11 +29,26 @@ if(vars.getString("$param.IgnoreOnValidation_param") != "true") // (A) |-------| -> |-----| // (B) |---------| -> |---------| // - //There is another case we cannot handle as easy: - // if priceB's validFrom is after the validFrom of priceA and it's validTo is also before the validTo of priceA - // -> catch this case in the onValidation, since the only solution would be to delete priceB + // + //There are four other cases we cannot handle as easy: + //-If priceB's validFrom is after the validFrom of priceA and it's validTo is also before the validTo of priceA // (A) |----| -> handle in onValidation // (B) |-------------| -> handle in onValidation + // + //-If priceB's validFrom is the same as the validFrom of priceA (no matter what their validTo values are) + // (A) |----| -> handle in onValidation + // (B) |-------------| -> handle in onValidation + // + //-If priceB's validTo is the same as the validTo of priceA (no matter what their validFrom values are) + // (A) |----| -> handle in onValidation + // (B) |-------------| -> handle in onValidation + // + //-If priceB's validFrom is the same as the validFrom of priceA and priceB's validTo is the same as the validTo of priceA + // (A) |-------| -> handle in onValidation + // (B) |-------| -> handle in onValidation + // + //-> catch those case in the onValidation, since the only solution would be to delete priceA + // else if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) { var priceList = vars.get("$field.PRICELIST"); @@ -56,36 +72,20 @@ if(vars.getString("$param.IgnoreOnValidation_param") != "true") var priceListsToReplace1 = []; var priceListsToReplace2 = []; - var showMessage = false; for (var valPriceList in priceListsToPotentiallyReplace) { var currPriceList = priceListsToPotentiallyReplace[valPriceList]; if(currPriceList["priceList"] == priceList && currPriceList["buySell"] == buySell && Number.parseInt(currPriceList["fromQuantity"]) == Number.parseInt(quantity) && - currPriceList["relationId"] == vars.get("$param.ContactId_param") && - currPriceList["currency"] == currency) + (currPriceList["relationId"] == vars.get("$param.ContactId_param") + || Utils.isNullOrEmptyString(currPriceList["relationId"]) && Utils.isNullOrEmptyString(vars.get("$param.ContactId_param"))) + && currPriceList["currency"] == currency) { - if(currPriceList["validFrom"] > validFrom && ((validTo == undefined || validTo == "") || - (currPriceList["validTo"] != undefined && currPriceList["validTo"] != "" && currPriceList["validTo"] < validTo))) - { - showMessage = true; - break; - } - else if(eMath.addInt(currPriceList["validFrom"], datetime.ONE_DAY) == currPriceList["validTo"]) + if(currPriceList["validFrom"] <= validFrom && (validTo >= currPriceList["validTo"] || Utils.isNotNullOrEmptyString(currPriceList["validTo"]))) { - showMessage = true; - break; - } - else if(currPriceList["validFrom"] == validFrom && validTo == currPriceList["validTo"]) - { - showMessage = true; - break; + result.string(translate.withArguments("There already exists a %0 price with the same type of pricelist, quantity and currency in the defined range.", [vars.get("$field.BUYSELL")])); } } } - if(showMessage) - { - result.string(translate.withArguments("There already exists a %0 price with the same type of pricelist, quantity and currency in the defined range.", [vars.get("$field.BUYSELL")])); - } } } \ No newline at end of file diff --git a/entity/QuickEntry_entity/entityfields/quickentrysupporttickets/children/returnempty_param/valueProcess.js b/entity/QuickEntry_entity/entityfields/supporttickets/children/returnempty_param/valueProcess.js similarity index 100% rename from entity/QuickEntry_entity/entityfields/quickentrysupporttickets/children/returnempty_param/valueProcess.js rename to entity/QuickEntry_entity/entityfields/supporttickets/children/returnempty_param/valueProcess.js diff --git a/entity/QuickEntry_entity/entityfields/quickentrysupporttickets/children/taskrequestorcontactid_param/valueProcess.js b/entity/QuickEntry_entity/entityfields/supporttickets/children/taskrequestorcontactid_param/valueProcess.js similarity index 100% rename from entity/QuickEntry_entity/entityfields/quickentrysupporttickets/children/taskrequestorcontactid_param/valueProcess.js rename to entity/QuickEntry_entity/entityfields/supporttickets/children/taskrequestorcontactid_param/valueProcess.js diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod index 970e68b2e4fb6c103a3c33196f4186c9006c6617..b677647150bcdc189ed5509f1c0006a81ab6f04c 100644 --- a/entity/Salesproject_entity/Salesproject_entity.aod +++ b/entity/Salesproject_entity/Salesproject_entity.aod @@ -8,7 +8,7 @@ <element>SalesprojectMilestone_entity</element> <element>Member_entity</element> <element>MSTTeam_entity</element> - <element>MSTTeamLink_entity</element> + <element>AttributeRelation_entity</element> </siblings> <grantDeleteProcess>%aditoprj%/entity/Salesproject_entity/grantDeleteProcess.js</grantDeleteProcess> <contentTitleProcess>%aditoprj%/entity/Salesproject_entity/contentTitleProcess.js</contentTitleProcess> @@ -274,10 +274,6 @@ <name>EnableMSTeams_param</name> <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/members/children/enablemsteams_param/valueProcess.js</valueProcess> </entityParameter> - <entityParameter> - <name>SalesprojectCode_param</name> - <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/members/children/salesprojectcode_param/valueProcess.js</valueProcess> - </entityParameter> </children> </entityConsumer> <entityConsumer> @@ -672,10 +668,7 @@ <entityField> <name>MST_TEAM_ID</name> <title>Team</title> - <linkedContext>MSTTeam</linkedContext> - <state>INVISIBLE</state> - <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/mst_team_id/stateProcess.js</stateProcess> - <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/mst_team_id/displayValueProcess.js</displayValueProcess> + <state>READONLY</state> </entityField> <entityField> <name>COUNT</name> @@ -726,6 +719,10 @@ <name>ChecklistIds_param</name> <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/checklistentryvalues/children/checklistids_param/valueProcess.js</valueProcess> </entityParameter> + <entityParameter> + <name>Presentationmode_param</name> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/checklistentryvalues/children/presentationmode_param/valueProcess.js</valueProcess> + </entityParameter> </children> </entityConsumer> <entityParameter> @@ -769,6 +766,17 @@ <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess> <titleProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess> </entityActionField> + <entityActionField> + <name>export</name> + <title>Export</title> + <onActionProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/onActionProcess.js</onActionProcess> + <isMenuAction v="true" /> + <isObjectAction v="false" /> + <iconId>NEON:EXPORT</iconId> + <stateProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/stateProcess.js</stateProcess> + <tooltip>Export fields of this table</tooltip> + <tooltipProcess>%aditoprj%/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js</tooltipProcess> + </entityActionField> </children> </entityActionGroup> <entityActionField> @@ -1009,7 +1017,7 @@ </dbRecordFieldMapping> <dbRecordFieldMapping> <name>MST_TEAM_ID.value</name> - <recordfield>MST_TEAM.MST_TEAMID</recordfield> + <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/mst_team_id.value/expression.js</expression> </dbRecordFieldMapping> <aggregateFieldDbMapping> <name>COUNT_aggregate.value</name> @@ -1021,10 +1029,6 @@ <recordfield>CLASSIFICATIONSTORAGE.CLASSIFICATIONVALUE</recordfield> <isFilterable v="true" /> </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>MST_TEAM_ID.displayValue</name> - <recordfield>MST_TEAM.TEAMNAME</recordfield> - </dbRecordFieldMapping> <dbRecordFieldMapping> <name>DATE_NEW.value</name> <recordfield>SALESPROJECT.DATE_NEW</recordfield> @@ -1059,6 +1063,10 @@ <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/volumeweighted_aggregate.value/expression.js</expression> <aggregateType>AVG</aggregateType> </aggregateFieldDbMapping> + <dbRecordFieldMapping> + <name>MST_TEAM_ID.displayValue</name> + <expression>%aditoprj%/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/mst_team_id.displayvalue/expression.js</expression> + </dbRecordFieldMapping> <dbRecordFieldMapping> <name>DATE_EDIT.value</name> <recordfield>SALESPROJECT.DATE_EDIT</recordfield> diff --git a/entity/Salesproject_entity/entityfields/checklistentryvalues/children/checklistids_param/valueProcess.js b/entity/Salesproject_entity/entityfields/checklistentryvalues/children/checklistids_param/valueProcess.js index 19ac32389a050be943aa0c0c272713fbdbd5f687..b90d52e23c9b51cec739baa5536923931cd08e53 100644 --- a/entity/Salesproject_entity/entityfields/checklistentryvalues/children/checklistids_param/valueProcess.js +++ b/entity/Salesproject_entity/entityfields/checklistentryvalues/children/checklistids_param/valueProcess.js @@ -14,8 +14,6 @@ if(select){ .leftJoin("CONTACT", "SALESPROJECT.CONTACT_ID = CONTACT.CONTACTID") .leftJoin("ORGANISATION", "CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID") .leftJoin("CLASSIFICATIONSTORAGE", "CLASSIFICATIONSTORAGE.OBJECT_ROWID = SALESPROJECT.SALESPROJECTID") - .leftJoin("MST_TEAMLINK", "SALESPROJECT.SALESPROJECTID = MST_TEAMLINK.OBJECT_ROWID and MST_TEAMLINK.OBJECT_TYPE = '" + context + "'") - .leftJoin("MST_TEAM", "MST_TEAM.MST_TEAMID = MST_TEAMLINK.MST_TEAM_ID") .where("SALESPROJECT.SALESPROJECTID", vars.get("$field.SALESPROJECTID")) .arrayRow(); diff --git a/entity/Salesproject_entity/entityfields/checklistentryvalues/children/presentationmode_param/valueProcess.js b/entity/Salesproject_entity/entityfields/checklistentryvalues/children/presentationmode_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c5f4daf64965b6611992280cd8e2e9488b05f12b --- /dev/null +++ b/entity/Salesproject_entity/entityfields/checklistentryvalues/children/presentationmode_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$sys.presentationmode")); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/mst_team_id/displayValueProcess.js b/entity/Salesproject_entity/entityfields/mst_team_id/displayValueProcess.js deleted file mode 100644 index 14271e0911152fe467c4283f2b8a6245288c0bc7..0000000000000000000000000000000000000000 --- a/entity/Salesproject_entity/entityfields/mst_team_id/displayValueProcess.js +++ /dev/null @@ -1,15 +0,0 @@ -import("MSTeams_lib"); -import("system.result"); -import("Sql_lib"); - -var res; - -if (MSTeamsUtils.isTeamsEnabled()) - res = newSelect("TEAMNAME") - .from("MST_TEAM") - .whereIfSet("MST_TEAM.MST_TEAMID", "$field.MST_TEAM_ID") - .cell(true); -else - res = ""; - -result.string(res); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/mst_team_id/stateProcess.js b/entity/Salesproject_entity/entityfields/mst_team_id/stateProcess.js deleted file mode 100644 index 0a84b37c599e80e8b1295c2cd50f2aa0c548041b..0000000000000000000000000000000000000000 --- a/entity/Salesproject_entity/entityfields/mst_team_id/stateProcess.js +++ /dev/null @@ -1,11 +0,0 @@ -import("MSTeams_lib"); -import("system.result"); -import("system.vars"); -import("system.neon"); - -var res = neon.COMPONENTSTATE_INVISIBLE; -var recordState = vars.get("$sys.recordstate"); -if (MSTeamsUtils.isTeamsEnabled() && recordState != neon.OPERATINGSTATE_NEW && recordState != neon.OPERATINGSTATE_EDIT) - res = neon.COMPONENTSTATE_READONLY; - -result.string(res); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/onActionProcess.js b/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6c68dcef71d0a7db12fd4d25819640764899dbad --- /dev/null +++ b/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/onActionProcess.js @@ -0,0 +1,11 @@ +import("ExportTemplate_lib"); +import("system.vars"); + +var selection = vars.get("$sys.selection"); + +if(selection.length == 0) //no selection -> use Filtercondition; +{ + selection = vars.get("$sys.filter"); +} + +ExportTemplateUtils.addParticipants(JSON.stringify(selection), vars.get("$sys.currentcontextname")); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/stateProcess.js b/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..7fc578ee7942eeb948f08d3dd86f5950d3fa1c41 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/stateProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("FilterViewAction_lib"); +import("system.vars"); + +var contactCount = vars.get("$sys.datarowcount"); + +result.string(FilterViewActionUtils.getComponentStateByRowCount(contactCount)); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js b/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4aaaed5c074ef854441aa45e3e7993b2f77c04c4 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/observeactiongroup/children/export/tooltipProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("Export columns using a exporttemplate")); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/openclassificationoverview/onActionProcess.js b/entity/Salesproject_entity/entityfields/openclassificationoverview/onActionProcess.js index ab0320216058661142f965367f42a5f671726ea5..d103f7cdf673de148a7aba47f84f7b033efdcd6c 100644 --- a/entity/Salesproject_entity/entityfields/openclassificationoverview/onActionProcess.js +++ b/entity/Salesproject_entity/entityfields/openclassificationoverview/onActionProcess.js @@ -4,4 +4,4 @@ import("system.vars"); var classificationData = ClassificationUtils.executeUpdating(vars.get("$field.SALESPROJECTID"), "Salesproject"); -neon.openContext("Classification", "ClassificationTree_view", null, neon.OPERATINGSTATE_SEARCH, {"ClassificationContent_param": classificationData}, null); \ No newline at end of file +neon.openContext("Classification", "ClassificationTree_view", null, neon.OPERATINGSTATE_SEARCH, {"ClassificationContent_param": classificationData["outputValue"]}, null); \ No newline at end of file diff --git a/entity/Salesproject_entity/recordcontainers/db/filterextensions/attribute_filter/groupQueryProcess.js b/entity/Salesproject_entity/recordcontainers/db/filterextensions/attribute_filter/groupQueryProcess.js index 2db6219c71582c8d5d3fd91e4a8c1196fe87470b..b5c569dfda29bdfcee8129b335c981e64cf3272a 100644 --- a/entity/Salesproject_entity/recordcontainers/db/filterextensions/attribute_filter/groupQueryProcess.js +++ b/entity/Salesproject_entity/recordcontainers/db/filterextensions/attribute_filter/groupQueryProcess.js @@ -4,7 +4,5 @@ import("AttributeFilter_lib"); var sqlCond = AttributeFilterExtensionMaker.makeFilterGroupQuery("SALESPROJECT \n\ left join CONTACT on (SALESPROJECT.CONTACT_ID = CONTACT.CONTACTID) \n\ left join ORGANISATION on (CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID)\n\ - left join CLASSIFICATIONSTORAGE on (CLASSIFICATIONSTORAGE.OBJECT_ROWID = SALESPROJECT.SALESPROJECTID)\n\ - left join MST_TEAMLINK on (SALESPROJECT.SALESPROJECTID = MST_TEAMLINK.OBJECT_ROWID and MST_TEAMLINK.OBJECT_TYPE = 'Salesproject')\n\ - left join MST_TEAM on (MST_TEAM.MST_TEAMID = MST_TEAMLINK.MST_TEAM_ID)"); + left join CLASSIFICATIONSTORAGE on (CLASSIFICATIONSTORAGE.OBJECT_ROWID = SALESPROJECT.SALESPROJECTID)"); result.string(sqlCond); \ No newline at end of file diff --git a/entity/Salesproject_entity/recordcontainers/db/fromClauseProcess.js b/entity/Salesproject_entity/recordcontainers/db/fromClauseProcess.js index 5532af0f5da27e0cb1351373a063ca94cf02f786..b9e273ff9f34870de6b80808285eda2d0205fbc9 100644 --- a/entity/Salesproject_entity/recordcontainers/db/fromClauseProcess.js +++ b/entity/Salesproject_entity/recordcontainers/db/fromClauseProcess.js @@ -6,6 +6,4 @@ import("KeywordRegistry_basic"); result.string("SALESPROJECT \n\ left join CONTACT on (SALESPROJECT.CONTACT_ID = CONTACT.CONTACTID) \n\ left join ORGANISATION on (CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID)\n\ - left join CLASSIFICATIONSTORAGE on (CLASSIFICATIONSTORAGE.OBJECT_ROWID = SALESPROJECT.SALESPROJECTID)\n\ - left join MST_TEAMLINK on (SALESPROJECT.SALESPROJECTID = MST_TEAMLINK.OBJECT_ROWID and MST_TEAMLINK.OBJECT_TYPE = 'Salesproject')\n\ - left join MST_TEAM on (MST_TEAM.MST_TEAMID = MST_TEAMLINK.MST_TEAM_ID)"); \ No newline at end of file + left join CLASSIFICATIONSTORAGE on (CLASSIFICATIONSTORAGE.OBJECT_ROWID = SALESPROJECT.SALESPROJECTID)"); diff --git a/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js b/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js index 61aa43cba4691fadddc0a7dd5a6f6789b966cefd..35e786cfb3008b4557e02081b0dd6a55622745ee 100644 --- a/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js +++ b/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js @@ -1,3 +1,4 @@ +import("MSTeams_lib"); import("ActivityTask_lib"); import("system.tools"); import("system.datetime"); @@ -19,6 +20,7 @@ import("system.teams"); var needToUpdateForecast = null; var rowdata = vars.get("$local.rowdata"); +var mstEventMessages = []; // create Milestones if changed vars.get("$local.changed").forEach(function(fieldName) { var typeValue; @@ -28,6 +30,12 @@ vars.get("$local.changed").forEach(function(fieldName) { switch (fieldName) { case "SALESPROJECT.PHASE": typeValue = "SalesprojectPhase"; + mstEventMessages.push(translate.withArguments( + "${SALESPROJECT_MST_PHASE_CHANGE}", [ + vars.get("$field.PROJECTTITLE"), + vars.get("$field.PHASE.displayValue") + ] + )); break; case "SALESPROJECT.STATUS": // Milestone @@ -117,6 +125,12 @@ vars.get("$local.changed").forEach(function(fieldName) { { clearReason = true; } + mstEventMessages.push(translate.withArguments( + "${SALESPROJECT_MST_STATUS_CHANGE}", [ + vars.get("$field.PROJECTTITLE"), + vars.get("$field.STATUS.displayValue") + ] + )); break; } @@ -136,6 +150,16 @@ vars.get("$local.changed").forEach(function(fieldName) { } }); +var teamId = vars.get("$field.MST_TEAM_ID"); +if(mstEventMessages.length && teamId) +{ + var serviceUrl = MSTeamsUtils.getTeamInfo(teamId).serviceUrl; + serviceUrl && teams.sendNotification(serviceUrl, + teams.getGeneralChannelId(teamId), + mstEventMessages.join("<br><br>") + ); +} + if(rowdata["SALESPROJECT.STATUS"] == $KeywordRegistry.salesprojectState$aborted() || rowdata["SALESPROJECT.STATUS"] == $KeywordRegistry.salesprojectState$partialOrder() || rowdata["SALESPROJECT.STATUS"] == $KeywordRegistry.salesprojectState$order() @@ -146,14 +170,6 @@ if(rowdata["SALESPROJECT.STATUS"] == $KeywordRegistry.salesprojectState$aborted( .and("SALESPROJECT_MILESTONE.KIND", "SalesprojectPhase").updateData(true, "SALESPROJECT_MILESTONE", ["DATE_END"], null, [datetime.date()]); } -var [serviceUrl, channelId] = newSelect(["SERVICE_URL", "GENERAL_CHANNELID"]) - .from("MST_TEAM") - .where("MST_TEAM.MST_TEAMID", "$field.MST_TEAM_ID") - .arrayRow(); - -if (serviceUrl) - teams.sendNotification(serviceUrl, channelId, "Etwas hat sich im Projekt "+ vars.get("$field.PROJECTTITLE") +" geaendert"); - if (needToUpdateForecast) Salesproject.notifyToUpdateForecast(); diff --git a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/mst_team_id.displayvalue/expression.js b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/mst_team_id.displayvalue/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..b3e59d0b10034cb5f383b3358b674ebbddc9dec6 --- /dev/null +++ b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/mst_team_id.displayvalue/expression.js @@ -0,0 +1,10 @@ +import("system.result"); +import("AttributeRegistry_basic"); +import("Sql_lib"); + +var valueSql = newSelect("AB_ATTRIBUTERELATION.ID_VALUE").from("AB_ATTRIBUTERELATION") + .where("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID", $AttributeRegistry.mstTeam()) + .and("AB_ATTRIBUTERELATION.OBJECT_ROWID = SALESPROJECT.SALESPROJECTID"); +var sql = newSelect("TEAMNAME").from("MST_TEAM") + .where("MST_TEAM.MST_TEAMID", valueSql).toString(); +result.string("(" + sql + ")"); diff --git a/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/mst_team_id.value/expression.js b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/mst_team_id.value/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..75ea5930056ae54635651aad7d220e90581eb2f3 --- /dev/null +++ b/entity/Salesproject_entity/recordcontainers/db/recordfieldmappings/mst_team_id.value/expression.js @@ -0,0 +1,8 @@ +import("system.result"); +import("AttributeRegistry_basic"); +import("Sql_lib"); + +var sql = newSelect("AB_ATTRIBUTERELATION.ID_VALUE").from("AB_ATTRIBUTERELATION") + .where("AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID", $AttributeRegistry.mstTeam()) + .and("AB_ATTRIBUTERELATION.OBJECT_ROWID = SALESPROJECT.SALESPROJECTID").toString(); +result.string("(" + sql + ")"); diff --git a/entity/SerialLetter_entity/contentDescriptionProcess.js b/entity/SerialLetter_entity/contentDescriptionProcess.js index e5c485bdec047e5cbf0560dfb7011f63343472dd..f8a6255af632b55fe1889a553798787e25c6e9bd 100644 --- a/entity/SerialLetter_entity/contentDescriptionProcess.js +++ b/entity/SerialLetter_entity/contentDescriptionProcess.js @@ -1,5 +1,7 @@ +import("KeywordRegistry_basic"); +import("system.translate"); import("Keyword_lib"); import("system.result"); import("system.vars"); -result.string(KeywordUtils.getViewValue("SerialLetterStatus", vars.get("$field.STATUS"))); \ No newline at end of file +result.string(translate.text("Status") + ": "+KeywordUtils.getViewValue($KeywordRegistry.serialLetterStatus(), vars.get("$field.STATUS"))); \ No newline at end of file diff --git a/entity/ServiceEmailRecipients_entity/ServiceEmailRecipients_entity.aod b/entity/ServiceEmailRecipients_entity/ServiceEmailRecipients_entity.aod index 14587c1c59fe4274ae3e95bf5b7ccc2defde911e..e91a4c5f39a803af31846213648d3a6a13e4605d 100644 --- a/entity/ServiceEmailRecipients_entity/ServiceEmailRecipients_entity.aod +++ b/entity/ServiceEmailRecipients_entity/ServiceEmailRecipients_entity.aod @@ -20,12 +20,6 @@ <name>#PROVIDER_AGGREGATES</name> <useAggregates v="true" /> </entityProvider> - <entityConsumer> - <name>ServiceMail</name> - <dependency> - <name>dependency</name> - </dependency> - </entityConsumer> <entityConsumer> <name>PersonsConsumer</name> <dependency> @@ -34,18 +28,6 @@ <fieldName>Contacts</fieldName> </dependency> </entityConsumer> - <entityConsumer> - <name>ServiceEmailRecipientsEmployeesConsumer</name> - <dependency> - <name>dependency</name> - </dependency> - </entityConsumer> - <entityConsumer> - <name>ServiceEmailRecipientsPersonsConsumer</name> - <dependency> - <name>dependency</name> - </dependency> - </entityConsumer> <entityField> <name>contact_id</name> <title>Contact</title> diff --git a/entity/ServiceEmail_entity/ServiceEmail_entity.aod b/entity/ServiceEmail_entity/ServiceEmail_entity.aod index 155c7b6436fd82ebdfccd9a828097368c6544ff6..02fc4d48fa8c01c2539e67a24f1003eca47eb915 100644 --- a/entity/ServiceEmail_entity/ServiceEmail_entity.aod +++ b/entity/ServiceEmail_entity/ServiceEmail_entity.aod @@ -173,10 +173,6 @@ <fieldName>SpecificContainerKeywords</fieldName> </dependency> <children> - <entityParameter> - <name>ExcludedKeyIdsSubquery_param</name> - <valueProcess>%aditoprj%/entity/ServiceEmail_entity/entityfields/keywordsticketstatus/children/excludedkeyidssubquery_param/valueProcess.js</valueProcess> - </entityParameter> <entityParameter> <name>ContainerName_param</name> <valueProcess>%aditoprj%/entity/ServiceEmail_entity/entityfields/keywordsticketstatus/children/containername_param/valueProcess.js</valueProcess> @@ -251,16 +247,9 @@ </entityProvider> <entityField> <name>ServiceEmailRecipientsEmployee</name> - <consumer>ServiceEmailRecipientsEmployeeConsumer</consumer> <linkedContext>Employee</linkedContext> <valueProcess>%aditoprj%/entity/ServiceEmail_entity/entityfields/serviceemailrecipientsemployee/valueProcess.js</valueProcess> </entityField> - <entityConsumer> - <name>ServiceEmailRecipientsEmployeeConsumer</name> - <dependency> - <name>dependency</name> - </dependency> - </entityConsumer> <entityParameter> <name>DocumentTemplateType_param</name> <expose v="true" /> diff --git a/entity/ServiceEmail_entity/entityfields/conclusion/stateProcess.js b/entity/ServiceEmail_entity/entityfields/conclusion/stateProcess.js index ed6bf1f9fe8458ff48dc0e7c13a43888182e6b03..3f5af3519d294c871f6d10ce934ac626f91595d7 100644 --- a/entity/ServiceEmail_entity/entityfields/conclusion/stateProcess.js +++ b/entity/ServiceEmail_entity/entityfields/conclusion/stateProcess.js @@ -8,7 +8,7 @@ import("KeywordRegistry_basic"); var str_ret = neon.COMPONENTSTATE_INVISIBLE; var str_status = vars.get( "$field.TICKET_STATUS_AFTER_SEND"); -if( [ $KeywordRegistry.taskStatus$ended(), $KeywordRegistry.taskStatus$endedAbandoned(), $KeywordRegistry.taskStatus$endedDone()].includes( str_status) != -1) +if( [$KeywordRegistry.taskStatus$ended(), $KeywordRegistry.taskStatus$endedAbandoned(), $KeywordRegistry.taskStatus$endedDone()].includes( str_status)) { str_ret = ( [neon.OPERATINGSTATE_EDIT, neon.OPERATINGSTATE_NEW].indexOf( vars.get( "$sys.recordstate")) != -1)? neon.COMPONENTSTATE_EDITABLE : neon.COMPONENTSTATE_READONLY; diff --git a/entity/ServiceEmail_entity/entityfields/documenttemplates/children/includedocumenttemplateids_param/valueProcess.js b/entity/ServiceEmail_entity/entityfields/documenttemplates/children/includedocumenttemplateids_param/valueProcess.js index ff0a6c5305debd67631c04ad323b40fabcafbe24..30deec0d2f3960f2eefc91b1121c84170502e531 100644 --- a/entity/ServiceEmail_entity/entityfields/documenttemplates/children/includedocumenttemplateids_param/valueProcess.js +++ b/entity/ServiceEmail_entity/entityfields/documenttemplates/children/includedocumenttemplateids_param/valueProcess.js @@ -11,11 +11,13 @@ if (actionName == "replayEmailAction") documenttemplates = newSelect("DOCUMENTTEMPLATEID") .from("DOCUMENTTEMPLATE") .leftJoin("DOCUMENTTEMPLATE_TICKETCATEGORY", "DOCUMENTTEMPLATE_ID = DOCUMENTTEMPLATEID") - .whereIfSet("DOCUMENTTEMPLATE.KIND", $KeywordRegistry.documentTemplateType$mail()) - .andIfSet("DOCUMENTTEMPLATE_TICKETCATEGORY.CLASSIFICATION", "$param.TicketCategory_param") - .or("DOCUMENTTEMPLATE.CLASSIFICATION", 10) - .or("DOCUMENTTEMPLATE.CLASSIFICATION", 12) + .where("DOCUMENTTEMPLATE.KIND", $KeywordRegistry.documentTemplateType$mail()) + .and(newWhere() + .or("DOCUMENTTEMPLATE.CLASSIFICATION", $KeywordRegistry.documentTemplateTypeCategory$singleall()) + .or("DOCUMENTTEMPLATE.CLASSIFICATION", $KeywordRegistry.documentTemplateTypeCategory$singleexternal())) + .and(newWhere() .or("DOCUMENTTEMPLATE.ALL_TICKET_CATEGORIES", 1) + .or("DOCUMENTTEMPLATE_TICKETCATEGORY.CLASSIFICATION", "$param.TicketCategory_param")) .arrayColumn(); } @@ -24,11 +26,13 @@ if (actionName == "forwardEmailAction") documenttemplates = newSelect("DOCUMENTTEMPLATEID") .from("DOCUMENTTEMPLATE") .leftJoin("DOCUMENTTEMPLATE_TICKETCATEGORY", "DOCUMENTTEMPLATE_ID = DOCUMENTTEMPLATEID") - .whereIfSet("DOCUMENTTEMPLATE.KIND", $KeywordRegistry.documentTemplateType$mail()) - .andIfSet("DOCUMENTTEMPLATE_TICKETCATEGORY.CLASSIFICATION", "$param.TicketCategory_param") - .or("DOCUMENTTEMPLATE.CLASSIFICATION", 10) - .or("DOCUMENTTEMPLATE.CLASSIFICATION", 11) + .where("DOCUMENTTEMPLATE.KIND", $KeywordRegistry.documentTemplateType$mail()) + .and(newWhere() + .or("DOCUMENTTEMPLATE.CLASSIFICATION", $KeywordRegistry.documentTemplateTypeCategory$singleall()) + .or("DOCUMENTTEMPLATE.CLASSIFICATION", $KeywordRegistry.documentTemplateTypeCategory$singleinternal())) + .and(newWhere() .or("DOCUMENTTEMPLATE.ALL_TICKET_CATEGORIES", 1) + .or("DOCUMENTTEMPLATE_TICKETCATEGORY.CLASSIFICATION", "$param.TicketCategory_param")) .arrayColumn(); } diff --git a/entity/ServiceEmail_entity/entityfields/keywordsticketstatus/children/excludedkeyidssubquery_param/valueProcess.js b/entity/ServiceEmail_entity/entityfields/keywordsticketstatus/children/excludedkeyidssubquery_param/valueProcess.js deleted file mode 100644 index f5116087517790fd336c6c9b251962582ca41451..0000000000000000000000000000000000000000 --- a/entity/ServiceEmail_entity/entityfields/keywordsticketstatus/children/excludedkeyidssubquery_param/valueProcess.js +++ /dev/null @@ -1,25 +0,0 @@ -import("system.vars"); -import("system.result"); -import("KeywordRegistry_basic") - -if(vars.get("$param.ActionName_param")) -{ - var actionName = vars.get("$param.ActionName_param"); - - if(actionName != null) - { - - if( (actionName == "replayEmailAction") || (actionName == "replayEmailToAllAction") ) - { - result.string($KeywordRegistry.taskStatus$entry(),$KeywordRegistry.taskStatus$reopen(),$KeywordRegistry.taskStatus$inProgress(),$KeywordRegistry.taskStatus$internalreply()); - } - if(actionName == 'forwardEmailAction') - { - result.string($KeywordRegistry.taskStatus$entry(),$KeywordRegistry.taskStatus$reopen(),$KeywordRegistry.taskStatus$request(),$KeywordRegistry.taskStatus$reply(),$KeywordRegistry.taskStatus$inProgress()); - } - } -} - - - - diff --git a/entity/ServiceEmail_entity/onValidation.js b/entity/ServiceEmail_entity/onValidation.js index 44b92991eac08e87aa241696ab5beae4f1ef470f..fbfb40d8866791fa449d85148dbb94af5ea9d82d 100644 --- a/entity/ServiceEmail_entity/onValidation.js +++ b/entity/ServiceEmail_entity/onValidation.js @@ -4,37 +4,6 @@ import("system.neon"); import("system.translate"); import("system.result"); import("system.vars"); - -var noRecipient = true; - -var recipientsTo = []; - -if(vars.exists("$field.Recipients_TO.insertedRows")) -{ - recipientsTo = vars.get("$field.Recipients_TO.insertedRows"); - recipientsTo.forEach(function(obj) - { - if(obj.Recipient) - { - noRecipient = false; - } - }); -} - -if(noRecipient) -{ - if( vars.exists("$field.Recipients_ToLookup.insertedRows")) - { - recipientsTo = vars.get("$field.Recipients_ToLookup.insertedRows"); - recipientsTo.forEach(function(obj) - { - if(obj.RecipientPerson) - { - noRecipient = false; - } - }); - } -} //// CHECK SENDER diff --git a/entity/ServiceEmail_entity/recordcontainers/jdito/onInsert.js b/entity/ServiceEmail_entity/recordcontainers/jdito/onInsert.js index 2cb651be1bb7534c4ff52488a1163eb808219d77..8c507747bc810136d2b47e3289006557b8678a66 100644 --- a/entity/ServiceEmail_entity/recordcontainers/jdito/onInsert.js +++ b/entity/ServiceEmail_entity/recordcontainers/jdito/onInsert.js @@ -17,6 +17,8 @@ import("ActivityTask_lib"); var recArray = []; var ccArray = []; var bccArray = []; +var TaskfieldValues = {}; +var TicketfieldValues = {}; var fromEmail = vars.get("$field.from"); var subject = vars.get("$field.subject"); @@ -188,17 +190,14 @@ if(returnedMsgAfterSend == true) // insert for ACTIVITY var DataPreset = { - "directionKeywordId" : $KeywordRegistry.activityDirection$outgoing, + "directionKeywordId" : $KeywordRegistry.activityDirection$outgoing(), "subject" : infoText, "content" : contentActivity, - "categoryKeywordId" : $KeywordRegistry.activityCategory$mail() - } - var ActivityLink = - { - "SupportTicket" : ticketID - } - - ActivityUtils.insertNewActivity(DataPreset, ActivityLink); + "categoryKeywordId" : $KeywordRegistry.activityCategory$mail() + }; + var ActivityLink = ["Supportticket", ticketID]; + + ActivityUtils.insertNewActivity(DataPreset, [ActivityLink]); /// UPDATE TICKET FIELD: CONCLUSION & DATE_EDIT_STATUS if( ticketID) @@ -290,18 +289,15 @@ if(returnedMsgAfterSend == true) // insert for ACTIVITY var DataPreset = { - "directionKeywordId" : $KeywordRegistry.activityDirection$outgoing, + "directionKeywordId" : $KeywordRegistry.activityDirection$outgoing(), "responsibleContactId" : vars.get( "$param.ContactId_param"), "subject" : translate.text("EMAIL ERROR") + "!", "content" : contentActivity, "categoryKeywordId" : $KeywordRegistry.activityCategory$mail() - } - var ActivityLink = - { - "SupportTicket" : ticketID - } - - ActivityUtils.insertNewActivity(DataPreset, ActivityLink); + }; + var ActivityLink = ["Supportticket", ticketID]; + + ActivityUtils.insertNewActivity(DataPreset, [ActivityLink]); } diff --git a/entity/SupportTicketMultiSelect_entity/SupportTicketMultiSelect_entity.aod b/entity/SupportTicketMultiSelect_entity/SupportTicketMultiSelect_entity.aod index cc6a0d3c3d385168837672224094486386f02d8b..c8daea565749df730da1358a2480166421e75c80 100644 --- a/entity/SupportTicketMultiSelect_entity/SupportTicketMultiSelect_entity.aod +++ b/entity/SupportTicketMultiSelect_entity/SupportTicketMultiSelect_entity.aod @@ -103,11 +103,35 @@ <name>ChangeData</name> <title>Save changes</title> <onActionProcess>%aditoprj%/entity/SupportTicketMultiSelect_entity/entityfields/changedata/onActionProcess.js</onActionProcess> + <titleProcess>%aditoprj%/entity/SupportTicketMultiSelect_entity/entityfields/changedata/titleProcess.js</titleProcess> </entityActionField> <entityProvider> <name>#PROVIDER_AGGREGATES</name> <useAggregates v="true" /> </entityProvider> + <entityField> + <name>CONCLUSION</name> + <title>Conclusion</title> + <consumer>KeywordTicketConclusion</consumer> + <mandatoryProcess>%aditoprj%/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/mandatoryProcess.js</mandatoryProcess> + <stateProcess>%aditoprj%/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/stateProcess.js</stateProcess> + <valueProcess>%aditoprj%/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/displayValueProcess.js</displayValueProcess> + </entityField> + <entityConsumer> + <name>KeywordTicketConclusion</name> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContainerName_param</name> + <valueProcess>%aditoprj%/entity/SupportTicketMultiSelect_entity/entityfields/keywordticketconclusion/children/containername_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> </entityFields> <recordContainers> <datalessRecordContainer> diff --git a/entity/SupportTicketMultiSelect_entity/entityfields/changedata/onActionProcess.js b/entity/SupportTicketMultiSelect_entity/entityfields/changedata/onActionProcess.js index dd746b7f0eb2f24b041346fc721ecd79fe12e2c2..41ee4231cb9743c4c282d138cef7ec27294f9cb4 100644 --- a/entity/SupportTicketMultiSelect_entity/entityfields/changedata/onActionProcess.js +++ b/entity/SupportTicketMultiSelect_entity/entityfields/changedata/onActionProcess.js @@ -1,34 +1,58 @@ +import("ActivityTask_lib"); +import("system.translate"); +import("system.tools"); import("Util_lib"); import("Sql_lib"); import("system.neon"); import("system.vars"); +import("KeywordRegistry_basic"); var taskIDs= JSON.parse(vars.get("$param.TaskIds_param")); var TaskfieldValues = {}; var TicketfieldValues = {}; -/// TASK +/// PRIORITY if(vars.exists("$field.PRIORITY") && (vars.get("$field.PRIORITY") != "" )) { TaskfieldValues["PRIORITY"] = vars.get("$field.PRIORITY"); } - +/// STATUS if(vars.exists("$field.STATUS") && (vars.get("$field.STATUS") != "" )) { TaskfieldValues["STATUS"] = vars.get("$field.STATUS"); -} - -/// UPDATE TASK -TaskfieldValues["STATUS"] = vars.get("$field.TICKET_STATUS_AFTER_SEND"); -newWhere("TASK.TASKID",taskIDs,SqlBuilder.IN()).updateFields(TaskfieldValues); - -/// TICKET -var TicketfieldValues = {}; - + TicketfieldValues["DATE_EDIT_STATUS"] = vars.get("$sys.date"); + if(vars.get("$field.STATUS") == $KeywordRegistry.taskStatus$unassigned()) + { + TicketfieldValues["EDITOR_CONTACT_ID"] = ""; + } + if(vars.get("field.STATUS") == $KeywordRegistry.taskStatus$ended()) + { + TicketfieldValues["DATE_END"] = vars.get("$sys.date"); + TicketfieldValues["CONCLUSION"] = vars.get("$field.CONCLUSION"); + + var obj_toolsUser = tools.getCurrentUser()[tools.PARAMS]; + + //insert Activity + DataPreset = + { + "directionKeywordId" : $KeywordRegistry.activityDirection$internal(), + "subject" : translate.text("Ticket returned"), + "content" : translate.text("Ticket returned to pool") + ". " + +"\n"+ translate.text("Original editor") + ": " + vars.get( "$field.EDITOR_CONTACT_ID") + +"\n"+ translate.text("Returned by") + ": "+ obj_toolsUser[tools.FIRSTNAME] +" "+ obj_toolsUser[tools.LASTNAME], + "categoryKeywordId" : $KeywordRegistry.activityCategory$sys() + }; + var ActivityLink = ["Supportticket", ticketID]; + + ActivityUtils.insertNewActivity(DataPreset, [ActivityLink]); + } +} +/// EDITOR if(vars.exists("$field.EDITOR_CONTACT_ID") && (vars.get("$field.EDITOR_CONTACT_ID") != "" )) { TicketfieldValues["EDITOR_CONTACT_ID"] = vars.get("$field.EDITOR_CONTACT_ID"); } +/// CATEGORY if(vars.exists("$field.CATEGORY") && (vars.get("$field.CATEGORY") != "" )) { TicketfieldValues["CATEGORY"] = vars.get("$field.CATEGORY"); diff --git a/entity/SupportTicketMultiSelect_entity/entityfields/changedata/titleProcess.js b/entity/SupportTicketMultiSelect_entity/entityfields/changedata/titleProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c68d9bac28840d78e04d019b6712de9e5678792a --- /dev/null +++ b/entity/SupportTicketMultiSelect_entity/entityfields/changedata/titleProcess.js @@ -0,0 +1,5 @@ +import("system.translate"); +import("system.result"); + + +result.string(translate.text("Save changes")); \ No newline at end of file diff --git a/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/displayValueProcess.js b/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..5bb3f4ad5d00d2b1ae6e2e765f47bc3725d4b079 --- /dev/null +++ b/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/displayValueProcess.js @@ -0,0 +1,14 @@ +import("Keyword_lib"); +import("system.vars"); +import("system.result"); + + +var subject = KeywordUtils.getViewValue("TICKETCONCLUSION", vars.get("$field.CONCLUSION")); +if (!subject) +{ + result.string("-"); +} +else +{ + result.string(subject); +} \ No newline at end of file diff --git a/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/mandatoryProcess.js b/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/mandatoryProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4147675923951e3dd12d802aa5bd8044a5cd7cf4 --- /dev/null +++ b/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/mandatoryProcess.js @@ -0,0 +1,15 @@ +import("system.neon"); +import("system.result"); +import("system.vars"); +import("KeywordRegistry_basic"); + + + +if (vars.get ("$field.STATUS") != $KeywordRegistry.taskStatus$ended()) +{ + result.string("false"); +} +else +{ + result.string("true"); +} \ No newline at end of file diff --git a/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/stateProcess.js b/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8a8894566f092594ea56b3f54fcb5ccd15066004 --- /dev/null +++ b/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/stateProcess.js @@ -0,0 +1,14 @@ +import("system.vars"); +import("system.neon"); +import("system.result"); +import("KeywordRegistry_basic"); + + +var str_ret = neon.COMPONENTSTATE_INVISIBLE; +var str_status = vars.get( "$field.STATUS"); + +if( [ $KeywordRegistry.taskStatus$ended(), $KeywordRegistry.taskStatus$endedDone(), $KeywordRegistry.taskStatus$endedAbandoned()].includes( str_status)) +{ + str_ret = neon.COMPONENTSTATE_EDITABLE; +} +result.string( str_ret); \ No newline at end of file diff --git a/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/valueProcess.js b/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8d5e191ffdbee7d8428d18f99fed8d0cfd5d27b5 --- /dev/null +++ b/entity/SupportTicketMultiSelect_entity/entityfields/conclusion/valueProcess.js @@ -0,0 +1,10 @@ +import("KeywordRegistry_basic"); +import("Keyword_lib"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if (!vars.get("$this.value") && vars.get("$field.STATUS") == $KeywordRegistry.taskStatus$ended()) +{ + result.string($KeywordRegistry.ticketConclusion$success()); +} \ No newline at end of file diff --git a/entity/SupportTicketMultiSelect_entity/entityfields/keywordticketconclusion/children/containername_param/valueProcess.js b/entity/SupportTicketMultiSelect_entity/entityfields/keywordticketconclusion/children/containername_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..aac3b38f48946a1e010bf845ed0f789709f9e832 --- /dev/null +++ b/entity/SupportTicketMultiSelect_entity/entityfields/keywordticketconclusion/children/containername_param/valueProcess.js @@ -0,0 +1,5 @@ +import("KeywordRegistry_basic"); +import("system.result"); + + +result.string( $KeywordRegistry.ticketConclusion()) \ No newline at end of file diff --git a/entity/SupportTicketTemplate_entity/SupportTicketTemplate_entity.aod b/entity/SupportTicketTemplate_entity/SupportTicketTemplate_entity.aod index 355b20d2d6c8c1f1919de2498ea5bba4e7d35d6e..55224bb6edc71c401690663acb1d1b644d6f6613 100644 --- a/entity/SupportTicketTemplate_entity/SupportTicketTemplate_entity.aod +++ b/entity/SupportTicketTemplate_entity/SupportTicketTemplate_entity.aod @@ -26,6 +26,7 @@ <name>NAME</name> <title>Name</title> <mandatory v="true" /> + <onValidation>%aditoprj%/entity/SupportTicketTemplate_entity/entityfields/name/onValidation.js</onValidation> </entityField> <entityField> <name>INBOX_ID</name> @@ -91,12 +92,12 @@ <name>TEMPLATENO</name> <title>Template No.</title> <contentType>NUMBER</contentType> - <minValue v="1" /> <outputFormat>000</outputFormat> <inputFormat>000</inputFormat> <mandatory v="true" /> - <state>READONLY</state> + <state>AUTO</state> <valueProcess>%aditoprj%/entity/SupportTicketTemplate_entity/entityfields/templateno/valueProcess.js</valueProcess> + <onValidation>%aditoprj%/entity/SupportTicketTemplate_entity/entityfields/templateno/onValidation.js</onValidation> </entityField> <entityField> <name>PRIORITY</name> @@ -230,14 +231,16 @@ <title>Individual Answer</title> <contentType>BOOLEAN</contentType> <groupable v="true" /> + <state>AUTO</state> </entityField> <entityField> <name>DOCUMENTTEMPLATE_ID</name> <title>Individual Reply Template</title> <consumer>ReplyDocumentTemplates</consumer> <mandatoryProcess>%aditoprj%/entity/SupportTicketTemplate_entity/entityfields/documenttemplate_id/mandatoryProcess.js</mandatoryProcess> + <state>INVISIBLE</state> + <stateProcess>%aditoprj%/entity/SupportTicketTemplate_entity/entityfields/documenttemplate_id/stateProcess.js</stateProcess> <titleProcess>%aditoprj%/entity/SupportTicketTemplate_entity/entityfields/documenttemplate_id/titleProcess.js</titleProcess> - <displayValueProcess>%aditoprj%/entity/SupportTicketTemplate_entity/entityfields/documenttemplate_id/displayValueProcess.js</displayValueProcess> </entityField> <entityConsumer> <name>ReplyDocumentTemplates</name> @@ -360,6 +363,10 @@ <recordfield>TICKETTEMPLATE.DOCUMENTTEMPLATE_ID</recordfield> <isFilterable v="false" /> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DOCUMENTTEMPLATE_ID.displayValue</name> + <expression>%aditoprj%/entity/SupportTicketTemplate_entity/recordcontainers/db/recordfieldmappings/documenttemplate_id.displayvalue/expression.js</expression> + </dbRecordFieldMapping> </recordFieldMappings> <linkInformation> <linkInformation> diff --git a/entity/SupportTicketTemplate_entity/entityfields/active_icon/colorProcess.js b/entity/SupportTicketTemplate_entity/entityfields/active_icon/colorProcess.js index 9f6b4ca223fb99248e6dbf1c4dcae2aae67b7682..63d07d348cb8ddb198701710443a2784135055a8 100644 --- a/entity/SupportTicketTemplate_entity/entityfields/active_icon/colorProcess.js +++ b/entity/SupportTicketTemplate_entity/entityfields/active_icon/colorProcess.js @@ -2,16 +2,19 @@ import("system.neon"); import("system.result"); import("system.vars"); -var str_pmtType = vars.get( "$field.ACTIVE"); -var str_ret = ""; -switch( str_pmtType) +if (vars.get( "$field.ACTIVE")) { - case "0": - str_ret = neon.PRIORITY_HIGH_COLOR; - break; - case "1": - str_ret = neon.PRIORITY_LOW_COLOR; - break; + switch( vars.get( "$field.ACTIVE")) + { + case "0": + result.string(neon.PRIORITY_HIGH_COLOR); + break; + case "1": + result.string(neon.PRIORITY_LOW_COLOR); + break; + } +} +else +{ + result.string(neon.PRIORITY_NONE_COLOR); } - -result.string( str_ret); diff --git a/entity/SupportTicketTemplate_entity/entityfields/documenttemplate_id/displayValueProcess.js b/entity/SupportTicketTemplate_entity/entityfields/documenttemplate_id/displayValueProcess.js deleted file mode 100644 index 2f5bed9490093a71bcd8def9c8b9a4c0547704e1..0000000000000000000000000000000000000000 --- a/entity/SupportTicketTemplate_entity/entityfields/documenttemplate_id/displayValueProcess.js +++ /dev/null @@ -1,10 +0,0 @@ -import("Sql_lib"); -import("system.vars"); -import("system.result"); - - -var sql = newSelect("DOCUMENTTEMPLATE.NAME") - .from("DOCUMENTTEMPLATE") - .where("DOCUMENTTEMPLATE.DOCUMENTTEMPLATEID",vars.get("$field.DOCUMENTTEMPLATE_ID")) - .cell(); -result.string(sql.tostring); \ No newline at end of file diff --git a/entity/SupportTicketTemplate_entity/entityfields/documenttemplate_id/stateProcess.js b/entity/SupportTicketTemplate_entity/entityfields/documenttemplate_id/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..9eb72a64e4fe6829f84b0ed7a63f522bc9b605ff --- /dev/null +++ b/entity/SupportTicketTemplate_entity/entityfields/documenttemplate_id/stateProcess.js @@ -0,0 +1,13 @@ +import("Util_lib"); +import("system.vars"); +import("system.neon"); +import("system.result"); + +if(Utils.toBoolean(vars.get("$field.INDIVIDUAL_ANSWER"))) +{ + result.string(neon.COMPONENTSTATE_EDITABLE); +} +else +{ + result.string(neon.COMPONENTSTATE_INVISIBLE); +} diff --git a/entity/SupportTicketTemplate_entity/entityfields/name/onValidation.js b/entity/SupportTicketTemplate_entity/entityfields/name/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..8b6d36c1fa248ae56bd1fbac857ae1ea3dd7479a --- /dev/null +++ b/entity/SupportTicketTemplate_entity/entityfields/name/onValidation.js @@ -0,0 +1,16 @@ +import("system.neon"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Sql_lib"); + +var sql = new SqlBuilder() + .selectCount("TEMPLATENAME") + .from("TICKETTEMPLATE") + .where("TICKETTEMPLATE.TEMPLATENAME", vars.get("$field.NAME")) + .andIfSet("TICKETTEMPLATE.TICKETTEMPLATEID", vars.get("$field.TEMPLATE_ID"),SqlBuilder.NOT_EQUAL()) + .cell(); +if (sql > 0) +{ + result.string(translate.text("Name has to be unique") + "."); +} \ No newline at end of file diff --git a/entity/SupportTicketTemplate_entity/entityfields/templateno/onValidation.js b/entity/SupportTicketTemplate_entity/entityfields/templateno/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..1f76109237b6237c5e46e4f532f890f2db3f4884 --- /dev/null +++ b/entity/SupportTicketTemplate_entity/entityfields/templateno/onValidation.js @@ -0,0 +1,17 @@ +import("system.neon"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Sql_lib"); + +var sql = new SqlBuilder() + .selectCount("TEMPLATENO") + .from("TICKETTEMPLATE") + .where("TICKETTEMPLATE.TEMPLATENO", vars.get("$field.TEMPLATENO")) + .andIfSet("TICKETTEMPLATE.TICKETTEMPLATEID", vars.get("$field.TEMPLATE_ID"),SqlBuilder.NOT_EQUAL()) + .cell(); + +if (sql > 0) +{ + result.string(translate.text("Number has to be unique") + "."); +} \ No newline at end of file diff --git a/entity/SupportTicketTemplate_entity/entityfields/templateno/valueProcess.js b/entity/SupportTicketTemplate_entity/entityfields/templateno/valueProcess.js index b2ecc35230136b8b184a8610350048e5fb2f22ed..72cfe326b3761f0d83332b6cfd0632e6b4007a55 100644 --- a/entity/SupportTicketTemplate_entity/entityfields/templateno/valueProcess.js +++ b/entity/SupportTicketTemplate_entity/entityfields/templateno/valueProcess.js @@ -1,13 +1,10 @@ import("Util_lib"); import("system.neon"); -import("system.eMath"); import("system.result"); -import("system.db"); import("system.vars"); -var str_templateNo = vars.get( "$field.TEMPLATENO"); -if( !str_templateNo && [neon.OPERATINGSTATE_NEW, neon.OPERATINGSTATE_EDIT].includes( vars.get( "$sys.recordstate"))) +if(!vars.get("$this.value") && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) { - result.string(NumberSequencingUtils.getNextUniqueNumber("TEMPLATENO", "TICKETTEMPLATE")); + result.string(NumberSequencingUtils.getNextUniqueNumber("TEMPLATENO", "TICKETTEMPLATE",0)); } \ No newline at end of file diff --git a/entity/SupportTicketTemplate_entity/recordcontainers/db/recordfieldmappings/documenttemplate_id.displayvalue/expression.js b/entity/SupportTicketTemplate_entity/recordcontainers/db/recordfieldmappings/documenttemplate_id.displayvalue/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..993f0f5ff4564915f6a2cc4fd3603a9e1eb4037a --- /dev/null +++ b/entity/SupportTicketTemplate_entity/recordcontainers/db/recordfieldmappings/documenttemplate_id.displayvalue/expression.js @@ -0,0 +1,6 @@ +import("Sql_lib"); +import("system.result"); + +result.string(newSelect("NAME") +.from("DOCUMENTTEMPLATE") +.where("DOCUMENTTEMPLATE.DOCUMENTTEMPLATEID = TICKETTEMPLATE.DOCUMENTTEMPLATE_ID").toString()); \ No newline at end of file diff --git a/entity/SupportTicket_entity/SupportTicket_entity.aod b/entity/SupportTicket_entity/SupportTicket_entity.aod index 09b4e657147e68251bedb97e5d305b1c94f0b4e3..d997c1e83686b04061ed92c089dfe041f6730d7a 100644 --- a/entity/SupportTicket_entity/SupportTicket_entity.aod +++ b/entity/SupportTicket_entity/SupportTicket_entity.aod @@ -16,27 +16,6 @@ <titlePlural>Service tickets</titlePlural> <recordContainer>db</recordContainer> <entityFields> - <entityActionGroup> - <name>observeActionGroup</name> - <children> - <entityActionField> - <name>observe</name> - <title>Observe</title> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess> - <isObjectAction v="true" /> - <iconId>VAADIN:EYE</iconId> - <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess> - <titleProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess> - </entityActionField> - <entityActionField> - <name>cancelObservation</name> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess> - <iconId>VAADIN:EYE_SLASH</iconId> - <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess> - <titleProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess> - </entityActionField> - </children> - </entityActionGroup> <entityProvider> <name>#PROVIDER</name> </entityProvider> @@ -57,12 +36,11 @@ </entityField> <entityField> <name>TASK_STATUS</name> - <title>{$TICKET_STATUS}</title> + <title>{$TASK_STATUS}</title> <consumer>KeywordTaskState</consumer> <groupable v="true" /> <mandatory v="true" /> <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/task_status/stateProcess.js</stateProcess> - <titleProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/task_status/titleProcess.js</titleProcess> <valueProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/task_status/valueProcess.js</valueProcess> <displayValueProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/task_status/displayValueProcess.js</displayValueProcess> <onValueChange>%aditoprj%/entity/SupportTicket_entity/entityfields/task_status/onValueChange.js</onValueChange> @@ -363,22 +341,6 @@ <fieldName>Contact</fieldName> </dependency> </entityConsumer> - <entityActionField> - <name>newActivity</name> - <title>New activity</title> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newactivity/onActionProcess.js</onActionProcess> - <isMenuAction v="true" /> - <isObjectAction v="true" /> - <iconId>VAADIN:HOURGLASS_END</iconId> - <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newactivity/stateProcess.js</stateProcess> - <tooltipProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess> - </entityActionField> - <entityActionField> - <name>newTask</name> - <title>New task</title> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newtask/onActionProcess.js</onActionProcess> - <iconId>VAADIN:TASKS</iconId> - </entityActionField> <entityConsumer> <name>ModuleTrees</name> <dependency> @@ -517,8 +479,8 @@ <expose v="true" /> </entityParameter> <entityProvider> - <name>TicketsProvider</name> - <documentation>%aditoprj%/entity/SupportTicket_entity/entityfields/ticketsprovider/documentation.adoc</documentation> + <name>SupportTickets</name> + <documentation>%aditoprj%/entity/SupportTicket_entity/entityfields/supporttickets/documentation.adoc</documentation> </entityProvider> <entityParameter> <name>InboxId_param</name> @@ -576,29 +538,11 @@ <name>EMAILMAILSIGNATURE</name> <state>READONLY</state> </entityField> - <entityActionField> - <name>replyEmail</name> - <title>Reply</title> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/replyemail/onActionProcess.js</onActionProcess> - <isObjectAction v="false" /> - <iconId>VAADIN:AT</iconId> - <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/replyemail/stateProcess.js</stateProcess> - <tooltipProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/replyemail/tooltipProcess.js</tooltipProcess> - </entityActionField> <entityField> <name>SENDEREMAIL</name> <title>Sender</title> <groupable v="true" /> </entityField> - <entityActionField> - <name>forwardTicket</name> - <title>Forward</title> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/forwardticket/onActionProcess.js</onActionProcess> - <isObjectAction v="false" /> - <iconId>NEON:EXPORT</iconId> - <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/forwardticket/stateProcess.js</stateProcess> - <tooltipProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/forwardticket/tooltipProcess.js</tooltipProcess> - </entityActionField> <entityField> <name>CC_RECIPIENTS</name> </entityField> @@ -608,14 +552,6 @@ <state>READONLY</state> <valueProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/ticket_title/valueProcess.js</valueProcess> </entityField> - <entityActionField> - <name>pullNextTicket</name> - <title>Pull tickets</title> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/pullnextticket/onActionProcess.js</onActionProcess> - <isMenuAction v="true" /> - <isObjectAction v="false" /> - <iconId>VAADIN:ARCHIVE</iconId> - </entityActionField> <entityParameter> <name>BasedOnRoles_param</name> <expose v="true" /> @@ -660,19 +596,6 @@ <titleProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/date_edit_status/titleProcess.js</titleProcess> <valueProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/date_edit_status/valueProcess.js</valueProcess> </entityField> - <entityActionGroup> - <name>FilterActionsGroup</name> - <children> - <entityActionField> - <name>changeMultiple</name> - <title>Change selected</title> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/filteractionsgroup/children/changemultiple/onActionProcess.js</onActionProcess> - <isObjectAction v="false" /> - <selectionType>MULTI</selectionType> - <iconId>VAADIN:PENCIL</iconId> - </entityActionField> - </children> - </entityActionGroup> <entityConsumer> <name>KeywordTicketCategory</name> <dependency> @@ -692,26 +615,6 @@ <title>Activities</title> <valueProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/counteractivities/valueProcess.js</valueProcess> </entityField> - <entityActionField> - <name>newNote</name> - <title>New note</title> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newnote/onActionProcess.js</onActionProcess> - <isObjectAction v="false" /> - <iconId>VAADIN:NOTEBOOK</iconId> - <tooltip></tooltip> - <tooltipProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newnote/tooltipProcess.js</tooltipProcess> - </entityActionField> - <entityActionField> - <name>returnTicket</name> - <title>Return Ticket</title> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/returnticket/onActionProcess.js</onActionProcess> - <isMenuAction v="true" /> - <isObjectAction v="false" /> - <iconId>VAADIN:INBOX</iconId> - <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/returnticket/stateProcess.js</stateProcess> - <titleProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/returnticket/titleProcess.js</titleProcess> - <tooltipProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/returnticket/tooltipProcess.js</tooltipProcess> - </entityActionField> <entityParameter> <name>TaskRequestorContactId_param</name> <expose v="true" /> @@ -741,12 +644,6 @@ <entityName>Inbox_entity</entityName> <fieldName>Indexes</fieldName> </dependency> - <children> - <entityParameter> - <name>ExcludedInboxes_param</name> - <valueProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/inboxes/children/excludedinboxes_param/valueProcess.js</valueProcess> - </entityParameter> - </children> </entityConsumer> <entityConsumer> <name>Activities</name> @@ -836,20 +733,6 @@ </entityParameter> </children> </entityConsumer> - <entityActionField> - <name>openAdminView</name> - <title>Open admin view</title> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/openadminview/onActionProcess.js</onActionProcess> - <iconId>VAADIN:CURLY_BRACKETS</iconId> - <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/openadminview/stateProcess.js</stateProcess> - </entityActionField> - <entityActionField> - <name>duplicateTicket</name> - <title>Duplicate Ticket</title> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/duplicateticket/onActionProcess.js</onActionProcess> - <selectionType>UNBOUND</selectionType> - <iconId>VAADIN:COPY</iconId> - </entityActionField> <entityParameter> <name>TicketCategory_param</name> <expose v="true" /> @@ -862,22 +745,6 @@ <name>TicketConclusion_param</name> <expose v="true" /> </entityParameter> - <entityActionField> - <name>reopenTicket</name> - <title>Re-open</title> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/reopenticket/onActionProcess.js</onActionProcess> - <iconId>VAADIN:TIME_BACKWARD</iconId> - <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/reopenticket/stateProcess.js</stateProcess> - </entityActionField> - <entityActionField> - <name>resubmitTicket</name> - <title>Follow-Up</title> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/resubmitticket/onActionProcess.js</onActionProcess> - <selectionType>UNBOUND</selectionType> - <isSaveAction v="false" /> - <iconId>NEON:RECURRING_APPOINTMENT</iconId> - <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/resubmitticket/stateProcess.js</stateProcess> - </entityActionField> <entityField> <name>IS_OVERDUE_SYMBOL</name> <title></title> @@ -886,14 +753,6 @@ <groupable v="false" /> <valueProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/is_overdue_symbol/valueProcess.js</valueProcess> </entityField> - <entityActionField> - <name>newTicket</name> - <title>Enter new Ticket</title> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newticket/onActionProcess.js</onActionProcess> - <isMenuAction v="true" /> - <isObjectAction v="false" /> - <iconId>VAADIN:CHAT</iconId> - </entityActionField> <entityField> <name>NEW_TICKET</name> <title>Enter new Ticket</title> @@ -906,13 +765,6 @@ <color>priority-low-color</color> <titleProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/new_ticketcontact/titleProcess.js</titleProcess> </entityField> - <entityActionField> - <name>newTicketContact</name> - <title>Enter new Ticket & Contact</title> - <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newticketcontact/onActionProcess.js</onActionProcess> - <isObjectAction v="false" /> - <iconId>VAADIN:CHAT</iconId> - </entityActionField> <entityField> <name>isoverdue</name> <contentType>TEXT</contentType> @@ -933,6 +785,144 @@ <name>TicketNo_param</name> <expose v="true" /> </entityParameter> + <entityField> + <name>EMAILMAILSIGNATURE_ANSWER</name> + </entityField> + <entityActionGroup> + <name>observeActionGroup</name> + <children> + <entityActionField> + <name>observe</name> + <title>Observe</title> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/onActionProcess.js</onActionProcess> + <isObjectAction v="true" /> + <iconId>VAADIN:EYE</iconId> + <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/stateProcess.js</stateProcess> + <titleProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/observe/titleProcess.js</titleProcess> + </entityActionField> + <entityActionField> + <name>cancelObservation</name> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/onActionProcess.js</onActionProcess> + <iconId>VAADIN:EYE_SLASH</iconId> + <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/stateProcess.js</stateProcess> + <titleProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/observeactiongroup/children/cancelobservation/titleProcess.js</titleProcess> + </entityActionField> + </children> + </entityActionGroup> + <entityActionField> + <name>newActivity</name> + <title>New activity</title> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newactivity/onActionProcess.js</onActionProcess> + <isMenuAction v="true" /> + <isObjectAction v="true" /> + <iconId>VAADIN:HOURGLASS_END</iconId> + <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newactivity/stateProcess.js</stateProcess> + <tooltipProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess> + </entityActionField> + <entityActionField> + <name>newTask</name> + <title>New task</title> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newtask/onActionProcess.js</onActionProcess> + <iconId>VAADIN:TASKS</iconId> + </entityActionField> + <entityActionField> + <name>replyEmail</name> + <title>Reply</title> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/replyemail/onActionProcess.js</onActionProcess> + <isObjectAction v="false" /> + <iconId>VAADIN:AT</iconId> + <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/replyemail/stateProcess.js</stateProcess> + <tooltipProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/replyemail/tooltipProcess.js</tooltipProcess> + </entityActionField> + <entityActionField> + <name>forwardTicket</name> + <title>Forward</title> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/forwardticket/onActionProcess.js</onActionProcess> + <isObjectAction v="false" /> + <iconId>NEON:EXPORT</iconId> + <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/forwardticket/stateProcess.js</stateProcess> + <tooltipProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/forwardticket/tooltipProcess.js</tooltipProcess> + </entityActionField> + <entityActionField> + <name>pullNextTicket</name> + <title>Pull tickets</title> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/pullnextticket/onActionProcess.js</onActionProcess> + <isMenuAction v="true" /> + <isObjectAction v="false" /> + <iconId>VAADIN:ARCHIVE</iconId> + </entityActionField> + <entityActionGroup> + <name>FilterActionsGroup</name> + <children> + <entityActionField> + <name>changeMultiple</name> + <title>Change selected</title> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/filteractionsgroup/children/changemultiple/onActionProcess.js</onActionProcess> + <isObjectAction v="false" /> + <selectionType>MULTI</selectionType> + <iconId>VAADIN:PENCIL</iconId> + </entityActionField> + </children> + </entityActionGroup> + <entityActionField> + <name>newNote</name> + <title>New note</title> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newnote/onActionProcess.js</onActionProcess> + <isObjectAction v="false" /> + <iconId>VAADIN:NOTEBOOK</iconId> + <tooltip></tooltip> + <tooltipProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newnote/tooltipProcess.js</tooltipProcess> + </entityActionField> + <entityActionField> + <name>returnTicket</name> + <title>Return Ticket</title> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/returnticket/onActionProcess.js</onActionProcess> + <isMenuAction v="true" /> + <isObjectAction v="false" /> + <iconId>VAADIN:INBOX</iconId> + <state>EDITABLE</state> + <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/returnticket/stateProcess.js</stateProcess> + <titleProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/returnticket/titleProcess.js</titleProcess> + <tooltipProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/returnticket/tooltipProcess.js</tooltipProcess> + </entityActionField> + <entityActionField> + <name>duplicateTicket</name> + <title>Duplicate Ticket</title> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/duplicateticket/onActionProcess.js</onActionProcess> + <selectionType>UNBOUND</selectionType> + <iconId>VAADIN:COPY</iconId> + </entityActionField> + <entityActionField> + <name>reopenTicket</name> + <title>Re-open</title> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/reopenticket/onActionProcess.js</onActionProcess> + <iconId>VAADIN:TIME_BACKWARD</iconId> + <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/reopenticket/stateProcess.js</stateProcess> + </entityActionField> + <entityActionField> + <name>resubmitTicket</name> + <title>Follow-Up</title> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/resubmitticket/onActionProcess.js</onActionProcess> + <selectionType>UNBOUND</selectionType> + <isSaveAction v="false" /> + <iconId>NEON:RECURRING_APPOINTMENT</iconId> + <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/resubmitticket/stateProcess.js</stateProcess> + </entityActionField> + <entityActionField> + <name>newTicket</name> + <title>Enter new Ticket</title> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newticket/onActionProcess.js</onActionProcess> + <isMenuAction v="true" /> + <isObjectAction v="false" /> + <iconId>VAADIN:CHAT</iconId> + </entityActionField> + <entityActionField> + <name>newTicketContact</name> + <title>Enter new Ticket & Contact</title> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newticketcontact/onActionProcess.js</onActionProcess> + <isObjectAction v="false" /> + <iconId>VAADIN:CHAT</iconId> + </entityActionField> <entityActionField> <name>newLetter</name> <title>New letter</title> @@ -940,8 +930,16 @@ <iconId>VAADIN:ENVELOPE</iconId> <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/newletter/stateProcess.js</stateProcess> </entityActionField> + <entityActionField> + <name>openAdminView</name> + <title>Open admin view</title> + <onActionProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/openadminview/onActionProcess.js</onActionProcess> + <iconId>VAADIN:CURLY_BRACKETS</iconId> + <stateProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/openadminview/stateProcess.js</stateProcess> + </entityActionField> <entityField> - <name>EMAILMAILSIGNATURE_ANSWER</name> + <name>DATE_NEW</name> + <valueProcess>%aditoprj%/entity/SupportTicket_entity/entityfields/date_new/valueProcess.js</valueProcess> </entityField> </entityFields> <recordContainers> @@ -1026,10 +1024,6 @@ <name>TASK_PROGRESS.displayValue</name> <expression>%aditoprj%/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/task_progress.displayvalue/expression.js</expression> </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>TASK_STATUS.displayValue</name> - <expression>%aditoprj%/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/task_status.displayvalue/expression.js</expression> - </dbRecordFieldMapping> <dbRecordFieldMapping> <name>TASK_TYPE.value</name> <recordfield>TASK.KIND</recordfield> @@ -1176,6 +1170,10 @@ <name>EMAILMAILSIGNATURE_ANSWER.value</name> <recordfield>MAILSIGNATURE.ANSWER_MAIL_ADDRESS</recordfield> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DATE_NEW.value</name> + <recordfield>TASK.DATE_NEW</recordfield> + </dbRecordFieldMapping> </recordFieldMappings> <linkInformation> <linkInformation> diff --git a/entity/SupportTicket_entity/contentDescriptionProcess.js b/entity/SupportTicket_entity/contentDescriptionProcess.js index 1f7017d97a63a7920c8af208b0940f731f99c3d1..b7c56c40086f4501fe27a729df1441449c186e65 100644 --- a/entity/SupportTicket_entity/contentDescriptionProcess.js +++ b/entity/SupportTicket_entity/contentDescriptionProcess.js @@ -12,7 +12,6 @@ if(vars.get("$field.TICKET_EDITOR_CONTACT_ID")) res = [translate.text("{$TICKET_EDITOR}") + ": " + vars.get("$field.TICKET_EDITOR_CONTACT_ID.displayValue")]; } res.push(translate.text("Maturity") + ": " + datetime.toDate(vars.get("$field.TASK_MATURITY_DATE"), translate.text("dd.MM.yyyy"))); -res.push(translate.text("Progress") + ": " + KeywordUtils.getViewValue($KeywordRegistry.taskProgress(), vars.get("$field.TASK_PROGRESS"))); res.push(translate.text("Creation date") + ": " + datetime.toDate(vars.get("$field.TASK_START_DATE"), translate.text("dd.MM.yyyy"))); result.string(res.join(" | ")); diff --git a/entity/SupportTicket_entity/entityfields/date_new/valueProcess.js b/entity/SupportTicket_entity/entityfields/date_new/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6835658dc430852893df25cf22145e1c6aae259e --- /dev/null +++ b/entity/SupportTicket_entity/entityfields/date_new/valueProcess.js @@ -0,0 +1,8 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if (vars.getString("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + result.string(vars.get("$sys.date")); +} \ No newline at end of file diff --git a/entity/SupportTicket_entity/entityfields/inboxes/children/excludedinboxes_param/valueProcess.js b/entity/SupportTicket_entity/entityfields/inboxes/children/excludedinboxes_param/valueProcess.js deleted file mode 100644 index 92147d3453d5ee06e7d309e10ce145653776797d..0000000000000000000000000000000000000000 --- a/entity/SupportTicket_entity/entityfields/inboxes/children/excludedinboxes_param/valueProcess.js +++ /dev/null @@ -1,7 +0,0 @@ -import("system.result"); -import("system.vars"); - -if(vars.exists("$param.InitialInboxId_param")) -{ - result.object([vars.get("$param.InitialInboxId_param")]); -} \ No newline at end of file diff --git a/entity/SupportTicket_entity/entityfields/keywordtaskstate/children/whitelistids_param/valueProcess.js b/entity/SupportTicket_entity/entityfields/keywordtaskstate/children/whitelistids_param/valueProcess.js index 33db9e5f8b0b112fd0d6c28ba63538f7821a7a35..c6ec8ba2a666a0a6e6d9d0743a607ca2c2bd25b3 100644 --- a/entity/SupportTicket_entity/entityfields/keywordtaskstate/children/whitelistids_param/valueProcess.js +++ b/entity/SupportTicket_entity/entityfields/keywordtaskstate/children/whitelistids_param/valueProcess.js @@ -1,5 +1,5 @@ -import("system.vars"); import("system.result"); import("Ticket_lib"); +import("KeywordRegistry_basic"); -result.object(TicketUtils.begin(vars.get("$field.TICKETTYPE")).getAvailableStatus()) \ No newline at end of file +result.object(TicketUtils.begin($KeywordRegistry.ticketType$supportTicket()).getAvailableStatus()); \ No newline at end of file diff --git a/entity/SupportTicket_entity/entityfields/newtask/onActionProcess.js b/entity/SupportTicket_entity/entityfields/newtask/onActionProcess.js index be994af3d1ae682b70b4dacdd41dd60805761258..96b6c1edd7ea6029338d30b1191dbc8b7d950ef4 100644 --- a/entity/SupportTicket_entity/entityfields/newtask/onActionProcess.js +++ b/entity/SupportTicket_entity/entityfields/newtask/onActionProcess.js @@ -2,4 +2,6 @@ import("system.vars"); import("ActivityTask_lib"); import("Context_lib"); -TaskUtils.createNewTask(undefined, undefined, ContextUtils.getCurrentContextId(), vars.get("$field.TICKETID")); \ No newline at end of file +var TicketLink = [ContextUtils.getCurrentContextId(),vars.get("$field.TICKETID")]; + +TaskUtils.createNewTask(vars.get("$field.TICKETID"),[TicketLink]); \ No newline at end of file diff --git a/entity/SupportTicket_entity/entityfields/openadminview/onActionProcess.js b/entity/SupportTicket_entity/entityfields/openadminview/onActionProcess.js index a7200fa50671a7ae517fa732726a43a3f6d6570e..0ae33907cd06d1de07eaa51494cb73aaa2251ee0 100644 --- a/entity/SupportTicket_entity/entityfields/openadminview/onActionProcess.js +++ b/entity/SupportTicket_entity/entityfields/openadminview/onActionProcess.js @@ -4,7 +4,6 @@ import("Context_lib"); AdminViewUtils.open("TICKETID", [ ["TASK_ID", vars.get("$field.TASK_ID")], ["TASK_REQUESTOR_CONTACT_ID", vars.get("$field.TASK_REQUESTOR_CONTACT_ID")], - ["TASK_PARENT_ID", vars.get("$field.TASK_PARENT_ID")], ["TICKET_EDITOR_CONTACT_ID", vars.get("$field.TICKET_EDITOR_CONTACT_ID")], ["MAILSIGNATURE_ID", vars.get("$field.MAILSIGNATURE_ID")], ["INBOX_ID", vars.get("$field.INBOX_ID")], diff --git a/entity/SupportTicket_entity/entityfields/reopenticket/onActionProcess.js b/entity/SupportTicket_entity/entityfields/reopenticket/onActionProcess.js index 58807b50dc20764ac06abde46ef2c3e32a33518e..fe5cf5667d6d68f766d7d2de3cb97f8b70dfbf7b 100644 --- a/entity/SupportTicket_entity/entityfields/reopenticket/onActionProcess.js +++ b/entity/SupportTicket_entity/entityfields/reopenticket/onActionProcess.js @@ -1,3 +1,4 @@ +import("Context_lib"); import("ActivityTask_lib"); import("system.translate"); import("KeywordRegistry_basic"); @@ -13,8 +14,8 @@ var TicketfieldValues = {}; var TaskfieldValues = {}; var obj_toolsUser = tools.getCurrentUser()[tools.PARAMS], - str_ticketId = vars.get( "$field.TICKETID"), - str_taskId = vars.get( "$field.TASK_ID"); + ticketID = vars.get( "$field.TICKETID"), + taskID = vars.get( "$field.TASK_ID"); // insert ACTIVITY @@ -22,24 +23,20 @@ var DataPreset = { "directionKeywordId" : $KeywordRegistry.activityDirection$internal(), "subject" : translate.text("Ticket reopen"), - "content" : translate.text("Ticket was reopen.") + "/n" - + translate.text("Reopen by") + ": "+ obj_toolsUser[tools.FIRSTNAME] +" " + "content" : translate.text("Ticket was reopen by") + ": "+ obj_toolsUser[tools.FIRSTNAME] +" " + obj_toolsUser[tools.LASTNAME], "categoryKeywordId" : $KeywordRegistry.activityCategory$sys() } - var ActivityLink = - { - "SupportTicket" : ticketID - } - - ActivityUtils.insertNewActivity(DataPreset, ActivityLink); + var ActivityLink = [ContextUtils.getCurrentContextId(), ticketID]; + + ActivityUtils.insertNewActivity(DataPreset, [ActivityLink]); //change Ticketstatus, editor & DATE_EDIT_STATUS TaskfieldValues["STATUS"] = $KeywordRegistry.taskStatus$reopen(); TicketfieldValues["DATE_EDIT_STATUS"] = vars.get("$sys.date"); -TicketfieldValues["DATE_END_"] = ""; +TicketfieldValues["DATE_END"] = ""; //Update task & Ticket -newWhereIfSet("TASK.TASKID", str_taskId).updateFields(TaskfieldValues); -newWhereIfSet("TICKET.TICKETID", vars.get("field.TICKETID")).updateFields(TicketfieldValues); +newWhereIfSet("TASK.TASKID", taskID).updateFields(TaskfieldValues); +newWhereIfSet("TICKET.TICKETID", ticketID).updateFields(TicketfieldValues); neon.refresh(); \ No newline at end of file diff --git a/entity/SupportTicket_entity/entityfields/replyemail/onActionProcess.js b/entity/SupportTicket_entity/entityfields/replyemail/onActionProcess.js index 468a96ed35c76eff31308686e71be8ea50cfe9ca..1b8ba2a613f47f46625ccbadb58632dbb51d4f68 100644 --- a/entity/SupportTicket_entity/entityfields/replyemail/onActionProcess.js +++ b/entity/SupportTicket_entity/entityfields/replyemail/onActionProcess.js @@ -6,8 +6,7 @@ import("Ticket_lib") var params = { - "SignatureId_param": vars.get("$field.MAILSIGNATURE_ID"), - "SenderEmail_param": vars.get("$field.SENDEREMAIL"), + "SignatureId_param": vars.get("$field.MAILSIGNATURE_ID"), "RequestorContactId_param": vars.get("$field.TASK_REQUESTOR_CONTACT_ID"), "TicketCode_param": vars.get("$field.CODE"), "TicketSubject_param": vars.get("$field.TASK_SUBJECT"), @@ -29,5 +28,15 @@ else { params["From_param"] = vars.get("$field.EMAILMAILSIGNATURE"); } - + +// if alternative email address is set use it +if (vars.get("$field.ALTERNATIVE_EMAILADDR")) +{ + params["SenderEmail_param"] = vars.get("$field.ALTERNATIVE_EMAILADDR"); +} +else +{ + params["SenderEmail_param"] = vars.get("$field.SENDEREMAIL"); +} + neon.openContext("ServiceEmail", "ServiceEmailEdit_view", null, neon.OPERATINGSTATE_NEW, params); \ No newline at end of file diff --git a/entity/SupportTicket_entity/entityfields/returnticket/stateProcess.js b/entity/SupportTicket_entity/entityfields/returnticket/stateProcess.js index dfde7549fffe1602ce975d6b0cdd6fef262ced37..17de559118b4e70dc5114c02057c01c48e12770d 100644 --- a/entity/SupportTicket_entity/entityfields/returnticket/stateProcess.js +++ b/entity/SupportTicket_entity/entityfields/returnticket/stateProcess.js @@ -4,11 +4,11 @@ import("system.vars"); import("KeywordRegistry_basic"); -if(vars.get ("$field.TASK_STATUS") != $KeywordRegistry.taskStatus$ended()) +if(vars.get ("$field.TASK_STATUS") == $KeywordRegistry.taskStatus$ended()) { - result.string(neon.COMPONENTSTATE_EDITABLE); + result.string(neon.COMPONENTSTATE_DISABLED); } else { - result.string(neon.COMPONENTSTATE_READONLY); + result.string(neon.COMPONENTSTATE_EDITABLE); } \ No newline at end of file diff --git a/entity/SupportTicket_entity/entityfields/supportticket_template/onValueChange.js b/entity/SupportTicket_entity/entityfields/supportticket_template/onValueChange.js index 0bfa5683866c31a427b31d11bb6ccee317a0dec7..df8422d97e2be3a7d52d495b900803ea7f238e1d 100644 --- a/entity/SupportTicket_entity/entityfields/supportticket_template/onValueChange.js +++ b/entity/SupportTicket_entity/entityfields/supportticket_template/onValueChange.js @@ -38,12 +38,16 @@ function _setTicketData( pStr_ticketTemplateId) obj_fieldMap["$field.ticket_title"] = str_currentVal; break; case "DESCRIPTION": + obj_fieldMap["$field.TASK_DESCRIPTION"] = str_currentVal; + break; case "PRIORITY": + obj_fieldMap["$field.TASK_PRIORITY"] = str_currentVal; + break; case "STATUS": - obj_fieldMap["$field.TASK_"+ str_col] = str_currentVal; + obj_fieldMap["$field.TASK_STATUS"] = str_currentVal; break; case "CATEGORY": - obj_fieldMap["$field.TICKET"+ str_col] = str_currentVal; + obj_fieldMap["$field.TICKETCATEGORY"] = str_currentVal; break; default: obj_fieldMap["$field."+ str_col] = str_currentVal; diff --git a/entity/SupportTicket_entity/entityfields/ticketsprovider/documentation.adoc b/entity/SupportTicket_entity/entityfields/supporttickets/documentation.adoc similarity index 100% rename from entity/SupportTicket_entity/entityfields/ticketsprovider/documentation.adoc rename to entity/SupportTicket_entity/entityfields/supporttickets/documentation.adoc diff --git a/entity/SupportTicket_entity/entityfields/task_priority_icon/colorProcess.js b/entity/SupportTicket_entity/entityfields/task_priority_icon/colorProcess.js index 8ae23d7885712c2c8f3a094df18fb69b2cfe574b..e784400a7d15d7e863a776e3904c51df6d506e5a 100644 --- a/entity/SupportTicket_entity/entityfields/task_priority_icon/colorProcess.js +++ b/entity/SupportTicket_entity/entityfields/task_priority_icon/colorProcess.js @@ -3,22 +3,29 @@ import("KeywordRegistry_basic"); import("system.result"); import("system.neon"); - -switch(vars.getString("$field.TASK_PRIORITY")) +if(vars.get("$field.TASK_PRIORITY")) +{ + switch(vars.get("$field.TASK_PRIORITY")) + { + case $KeywordRegistry.taskPriority$none(): + result.string(neon.PRIORITY_NONE_COLOR); + break; + case $KeywordRegistry.taskPriority$low(): + result.string(neon.PRIORITY_LOW_COLOR); + break; + case $KeywordRegistry.taskPriority$medium(): + result.string(neon.PRIORITY_MEDIUM_COLOR); + break; + case $KeywordRegistry.taskPriority$high(): + result.string(neon.PRIORITY_HIGH_COLOR); + break; + default: + result.string(neon.PRIORITY_NONE_COLOR); + break; + } +} +else { - case $KeywordRegistry.taskPriority$none(): - result.string(neon.PRIORITY_NONE_COLOR); - break; - case $KeywordRegistry.taskPriority$low(): - result.string(neon.PRIORITY_LOW_COLOR); - break; - case $KeywordRegistry.taskPriority$medium(): - result.string(neon.PRIORITY_MEDIUM_COLOR); - break; - case $KeywordRegistry.taskPriority$high(): - result.string(neon.PRIORITY_HIGH_COLOR); - break; - default: - result.string(neon.PRIORITY_NONE_COLOR); - break; -} + result.string(neon.PRIORITY_NONE_COLOR); +} + diff --git a/entity/SupportTicket_entity/entityfields/task_status/titleProcess.js b/entity/SupportTicket_entity/entityfields/task_status/titleProcess.js deleted file mode 100644 index bcde88cc195a0f7b4bb80ae7bfc970bd3afe4689..0000000000000000000000000000000000000000 --- a/entity/SupportTicket_entity/entityfields/task_status/titleProcess.js +++ /dev/null @@ -1,15 +0,0 @@ -import("system.translate"); -import("system.vars"); -import("system.neon"); -import("system.result"); - -// FOR CHANGE STATUS ACTION - -var actionName = vars.get("$param.ActionName_param"); -if( (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && actionName ) -{ - if(actionName == "changeStatusAfterForwardEmail") - { - result.string(translate.text("Select new status")); - } -} \ No newline at end of file diff --git a/entity/SupportTicket_entity/recordcontainers/db/onDBInsert.js b/entity/SupportTicket_entity/recordcontainers/db/onDBInsert.js index b0e2ba2318e43059a467e4ccc505c9f0d5645a34..bbefca4cd2eb1a7bbe1447d55bfd7a7dd19f7650 100644 --- a/entity/SupportTicket_entity/recordcontainers/db/onDBInsert.js +++ b/entity/SupportTicket_entity/recordcontainers/db/onDBInsert.js @@ -1,3 +1,4 @@ +import("Context_lib"); import("Sql_lib"); import("system.translate"); import("system.util"); @@ -62,12 +63,9 @@ if( actionName == "duplicateTicket") + translate.text("Ticket number of the original ticket") + ': ' + codeold, "categoryKeywordId" : $KeywordRegistry.activityCategory$sys() } - var ActivityLink = - { - "SupportTicket" : ticketID - } - - ActivityUtils.insertNewActivity(DataPreset, ActivityLink); + var ActivityLink = [ContextUtils.getCurrentContextId(), ticketID]; + + ActivityUtils.insertNewActivity(DataPreset, [ActivityLink]); ///CREATE ACTIVITY for old Ticket DataPreset = @@ -79,12 +77,9 @@ if( actionName == "duplicateTicket") + translate.text("Ticket number of the created ticket") + ': ' + code, "categoryKeywordId" : $KeywordRegistry.activityCategory$sys() } - ActivityLink = - { - "SupportTicket" : ticketIDold - } - - ActivityUtils.insertNewActivity(DataPreset, ActivityLink); + var ActivityLink = [ContextUtils.getCurrentContextId(), ticketIDold]; + + ActivityUtils.insertNewActivity(DataPreset, [ActivityLink]); // end ACTIVITY } diff --git a/entity/SupportTicket_entity/recordcontainers/db/onDBUpdate.js b/entity/SupportTicket_entity/recordcontainers/db/onDBUpdate.js index 619577da197540f995cccb42345dff94ee24f4e9..58ba8d1829b48623d7960fd8f4cb0c89954e856b 100644 --- a/entity/SupportTicket_entity/recordcontainers/db/onDBUpdate.js +++ b/entity/SupportTicket_entity/recordcontainers/db/onDBUpdate.js @@ -1,3 +1,4 @@ +import("Context_lib"); import("ActivityTask_lib"); import("system.datetime"); import("system.tools"); @@ -68,12 +69,9 @@ if( vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) + datetime.toDate(vars.get("$field.TASK_MATURITY_DATE"), "dd.MM.yyyy"), "categoryKeywordId" : $KeywordRegistry.activityCategory$sys() } - var ActivityLink = - { - "SupportTicket" : ticketID - } - - ActivityUtils.insertNewActivity(DataPreset, ActivityLink); + var ActivityLink = [ContextUtils.getCurrentContextId(), ticketID]; + + ActivityUtils.insertNewActivity(DataPreset, [ActivityLink]); // end ACTIVITY } @@ -91,19 +89,16 @@ if( vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) +"\n"+ translate.text("Returned by") + ": "+ obj_toolsUser[tools.FIRSTNAME] +" "+ obj_toolsUser[tools.LASTNAME], "categoryKeywordId" : $KeywordRegistry.activityCategory$sys() } - ActivityLink = - { - "SupportTicket" : ticketID - } - - ActivityUtils.insertNewActivity(DataPreset, ActivityLink); + var ActivityLink = [ContextUtils.getCurrentContextId(), ticketID]; + + ActivityUtils.insertNewActivity(DataPreset, [ActivityLink]); //change Ticketstatus, editor & DATE_EDIT_STATUS TaskfieldValues["STATUS"] = $KeywordRegistry.taskStatus$unassigned(); TicketfieldValues["EDITOR_CONTACT_ID"] = ""; TicketfieldValues["DATE_EDIT_STATUS"] = vars.get("$sys.date"); TicketfieldValues["INBOX_ID"] = vars.get("$field.INBOX_ID"); - TicketfieldValues["CATEGORY"] = vars.get("$field.INBOX_ID"); + TicketfieldValues["CATEGORY"] = vars.get("$field.TICKETCATEGORY"); } newWhere("TICKET.TICKETID","$field.TICKETID").updateFields(TicketfieldValues); newWhere("TASK.TASKID", "$field.TASK_ID").updateFields(TaskfieldValues); diff --git a/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/task_status.displayvalue/expression.js b/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/task_status.displayvalue/expression.js deleted file mode 100644 index 2ff962697835ef0243dc987da40063bfc1dee5b6..0000000000000000000000000000000000000000 --- a/entity/SupportTicket_entity/recordcontainers/db/recordfieldmappings/task_status.displayvalue/expression.js +++ /dev/null @@ -1,2 +0,0 @@ -// do not use this, because TaskUtils.getTypeStatusKeyword(vars.get("$field.TYPE")) has to be called, which is not possible in a subselect. -// --> only use display value process \ No newline at end of file diff --git a/entity/Task_entity/entityfields/filteractiongroup/children/setcomplete/stateProcess.js b/entity/Task_entity/entityfields/filteractiongroup/children/setcomplete/stateProcess.js index e36de81867f6b12b0c9fe8ee712a832587f89cc7..84b801420d062d42b573e7151ac330b9f43b947c 100644 --- a/entity/Task_entity/entityfields/filteractiongroup/children/setcomplete/stateProcess.js +++ b/entity/Task_entity/entityfields/filteractiongroup/children/setcomplete/stateProcess.js @@ -7,16 +7,8 @@ import("Employee_lib"); import("system.project"); var contactId = EmployeeUtils.getCurrentContactId(); - var userRole = tools.getUser(vars.get("$sys.user"), tools.PROFILE_FULL); - -var departmentId = newSelect("PROPVAL", project.getSystemTableAlias("ASYS_USERS")) -.from("ASYS_USERS") -.where("ASYS_USERS.PROPKEY", "department") -.and("ASYS_USERS.NAME", userRole.myRole) -.cell(); - - +var departmentId = userRole[tools.PARAMS]["department"]; var taskAttendee = newSelect("distinct TASK_ID") .from("TASKATTENDEES") .where("TASKATTENDEES.CONTACT_ID", contactId) diff --git a/entity/Task_entity/entityfields/setcompletepreview/stateProcess.js b/entity/Task_entity/entityfields/setcompletepreview/stateProcess.js index 325e6f20a93e503509d42967d5e6bd3d839e4234..d48c83d0f64cb478485bb8c7635d74ddff4d38b0 100644 --- a/entity/Task_entity/entityfields/setcompletepreview/stateProcess.js +++ b/entity/Task_entity/entityfields/setcompletepreview/stateProcess.js @@ -7,16 +7,8 @@ import("Sql_lib"); import("Employee_lib"); var contactId = EmployeeUtils.getCurrentContactId(); - var userRole = tools.getUser(vars.get("$sys.user"), tools.PROFILE_FULL); - -var departmentId = newSelect("PROPVAL", project.getSystemTableAlias("ASYS_USERS")) -.from("ASYS_USERS") -.where("ASYS_USERS.PROPKEY", "department") -.and("ASYS_USERS.NAME", userRole.myRole) -.cell(); - - +var departmentId = userRole[tools.PARAMS]["department"]; var taskAttendee = newSelect("distinct TASK_ID") .from("TASKATTENDEES") .where("TASKATTENDEES.CONTACT_ID", contactId) diff --git a/entity/TopicTree_entity/recordcontainers/jdito/onUpdate.js b/entity/TopicTree_entity/recordcontainers/jdito/onUpdate.js index a024420d4f06f08e6447d8b629b34965ab1f2b0d..db9702cd5121b62701b94fcd464eec1b1106c0f0 100644 --- a/entity/TopicTree_entity/recordcontainers/jdito/onUpdate.js +++ b/entity/TopicTree_entity/recordcontainers/jdito/onUpdate.js @@ -7,12 +7,14 @@ var topicTreeId = vars.get("$local.uid"); var columns = ["DATE_EDIT" , "USER_EDIT" , "ACTIVE" - , "TOPIC"]; + , "TOPIC" + , "DESCRIPTION"]; var values = [rowData["DATE_EDIT.value"] , rowData["USER_EDIT.value"] , rowData["ACTIVE.value"] - , rowData["TOPIC.value"]]; + , rowData["TOPIC.value"] + , rowData["DESCRIPTION.value"]]; var assignedTo = rowData["ASSIGNEDTO.value"]; if(assignedTo && assignedTo != "") diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js index fa78b9a964fd636e631c0823266e492a701af72b..15260b03d49ae6266fe4782ce85066ce3a4c8fed 100644 --- a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js @@ -133,6 +133,21 @@ var semiannually = parseInt(datetime.ONE_DAY * 183); var quarterly = parseInt(datetime.ONE_DAY * 93); var yearly = parseInt(datetime.ONE_DAY * 365); +//ToDo: use once it's possible to use this (Problem with date comparison) +//var today = vars.get("$sys.today"); +//var visitfrequencyCaseWhen = SqlBuilder.caseWhen(newWhere("DISTRICTCONTACT.VISITFREQUENCY", $KeywordRegistry.visitFrequency$yearly())) +// .then((eMath.subInt(today, yearly)).toString()) +// .elseValue(SqlBuilder.caseWhen(newWhere("DISTRICTCONTACT.VISITFREQUENCY", $KeywordRegistry.visitFrequency$semiannualy())) +// .then((eMath.subInt(today, semiannually)).toString()) +// .elseValue(SqlBuilder.caseWhen(newWhere("DISTRICTCONTACT.VISITFREQUENCY", $KeywordRegistry.visitFrequency$quarterly())) +// .then((eMath.subInt(today, quarterly)).toString()) +// .elseValue(SqlBuilder.caseWhen(newWhere("DISTRICTCONTACT.VISITFREQUENCY", $KeywordRegistry.visitFrequency$monthly())) +// .then((eMath.subInt(today, monthly)).toString()) +// .elseValue((eMath.subInt(today, weekly)).toString()) +// ) +// ) +// ).toString() + //dynamic Recommendations //recommended Organisations containing the attribute Visit Frequency if(idValues == false) @@ -161,16 +176,17 @@ if(idValues == false) var recommendationEntryCountSubSelect = "(" + newSelect("count(VISITPLANENTRYID)") .from("VISITPLANENTRY") - .where(newWhere("VISITPLANENTRY.CONTACT_ID = DISTRICTCONTACT.ADVISER_CONTACT_ID ") - .or("VISITPLANENTRY.ORGANISATION_CONTACT_ID = DISTRICTCONTACT.ADVISER_CONTACT_ID ")) - .and(newWhere("VISITPLANENTRY.ENTRYDATE", eMath.subInt(vars.get("$sys.today"), datetime.ONE_DAY * 7), SqlBuilder.LESS_OR_EQUAL()) - .and("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Visitreportcreated(), SqlBuilder.NOT_EQUAL())) - .or("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Visitreportcreated(), SqlBuilder.EQUAL()) + .where(newWhere("VISITPLANENTRY.CONTACT_ID = CONTACT.CONTACTID ") + .or("VISITPLANENTRY.ORGANISATION_CONTACT_ID = CONTACT.CONTACTID ") +// .and(newWhere("VISITPLANENTRY.ENTRYDATE", visitfrequencyCaseWhen, SqlBuilder.LESS_OR_EQUAL()) use this instead of the next line once possible + .and(newWhere("VISITPLANENTRY.ENTRYDATE", eMath.subInt(vars.get("$sys.today"), datetime.ONE_DAY * 7), SqlBuilder.LESS_OR_EQUAL()) + .and("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Visitreportcreated(), SqlBuilder.EQUAL()))) + ") + (" + newSelect("count(VISITRECOMMENDATIONID)") .from("VISITRECOMMENDATION") - .where("VISITRECOMMENDATION.RESPONSIBLE = CONTACT.CONTACTID") + .where("VISITRECOMMENDATION.CONTACT_PERSON_ID = CONTACT.CONTACTID") .or("VISITRECOMMENDATION.CONTACT_ID = CONTACT.CONTACTID") + ")" + var visitFrequencyData = newSelect(["''" //0 , "CONTACT.CONTACTID" //1 , contactPointSubSelect @@ -201,12 +217,13 @@ if(idValues == false) .leftJoin("ADDRESS", "ADDRESS_ID = ADDRESSID") .where("DISTRICTCONTACT.STATUS", $KeywordRegistry.contactStatus$active()) .and("DISTRICTCONTACT.VISITFREQUENCY is not null") - .and("DISTRICTCONTACT.VALID_FROM", vars.get("$sys.date"), SqlBuilder.LESS_OR_EQUAL()) + .and(newWhere("DISTRICTCONTACT.VALID_FROM", vars.get("$sys.date"), SqlBuilder.LESS_OR_EQUAL()).or("DISTRICTCONTACT.VALID_FROM is null")) .and(newWhere("DISTRICTCONTACT.VALID_UNTIL", vars.get("$sys.date"), SqlBuilder.GREATER_OR_EQUAL()) .or("DISTRICTCONTACT.VALID_UNTIL is null")) + .and("CONTACT.STATUS", $KeywordRegistry.contactStatus$inactive(), SqlBuilder.NOT_EQUAL()) .orderBy("(" + newSelect("AB_KEYWORD_ENTRY.SORTING").from("AB_KEYWORD_ENTRY").where("AB_KEYWORD_ENTRY.KEYID = DISTRICTCONTACT.VISITFREQUENCY") + ") desc") - .table(); + visitFrequencyData = visitFrequencyData.table() var alreadyRecommended = {}; //orgContactId+contactId for (var i = 0; i < visitFrequencyData.length; i++) @@ -278,7 +295,7 @@ if(idValues == false) visitFrequencyData[i][20] //district_id.value ]; - if(visitFrequencyData[i][16] == 0 && (!helperObj.hasOwnProperty(visitFrequencyData[i][1]) || !helperObj[visitFrequencyData[i][1]].hasOwnProperty(visitFrequencyData[i][14]))) + if((visitFrequencyData[i][16] == 0) && (!helperObj.hasOwnProperty(visitFrequencyData[i][1]) || !helperObj[visitFrequencyData[i][1]].hasOwnProperty(visitFrequencyData[i][14]))) { recommendationData.push(tmpData); } diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index efc4babcc6b7c87cbbe130eeff2de057d6f1feb0..4492b3414a545216935ed7dc2eaeb3cbb4a9583f 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -7690,7 +7690,7 @@ <key>Add app</key> </entry> <entry> - <key>Open Teams</key> + <key>Open MS Teams</key> </entry> <entry> <key>Choose Team</key> @@ -10784,6 +10784,39 @@ <entry> <key>Answer Address</key> </entry> + <entry> + <key>Employee for Employee groups</key> + </entry> + <entry> + <key>Employee group already selected.</key> + </entry> + <entry> + <key>Employee already selected.</key> + </entry> + <entry> + <key>Name has to be unique.</key> + </entry> + <entry> + <key>Ticket returned</key> + </entry> + <entry> + <key>Returned by</key> + </entry> + <entry> + <key>Ticket returned to pool</key> + </entry> + <entry> + <key>Original editor</key> + </entry> + <entry> + <key>Ticket was reopen by</key> + </entry> + <entry> + <key>Ticket reopen</key> + </entry> + <entry> + <key>Email address has to be unique.</key> + </entry> <entry> <key>Synchronized with Outlook</key> </entry> @@ -10899,94 +10932,169 @@ <key>Contigent exhausted, please buy some new one to continue.</key> </entry> <entry> - <key>Slave administration</key> + <key>All synchronized datasets</key> </entry> <entry> - <key>Slave administration '%0' is '%1'</key> + <key>Pending datasets</key> </entry> <entry> - <key>The file did not contain any data</key> + <key>Email address has to be unique</key> </entry> <entry> - <key>Ticket returned</key> + <key>My synchronized datasets</key> </entry> <entry> - <key>Returned by</key> + <key>Do you really want to resynchronize the user completely?\nThe synchronisation in ADITO will be deleted.\nThe outlook contacts must be cleared manually.</key> </entry> <entry> - <key>Ticket was reopen by</key> + <key>Shows my synchronized datasets</key> </entry> <entry> - <key>All synchronized datasets</key> + <key>Rulegroup already selected</key> </entry> <entry> - <key>Employee group already selected.</key> + <key>Shows all synchronized datasets</key> </entry> <entry> - <key>Pending datasets</key> + <key>Shows the number of datasets still to be synchronized</key> </entry> <entry> - <key>Sales project responsibility set</key> + <key>Contact synchronisation</key> </entry> <entry> - <key>My synchronized datasets</key> + <key>Datasets in Outlook</key> </entry> <entry> - <key>Ticket returned to pool</key> + <key>Employee already selected</key> </entry> <entry> - <key>Do you really want to resynchronize the user completely?\nThe synchronisation in ADITO will be deleted.\nThe outlook contacts must be cleared manually.</key> + <key>Contact synchronisations</key> </entry> <entry> - <key>Shows my synchronized datasets</key> + <key>Dataset in Outlook</key> </entry> <entry> - <key>Employee already selected.</key> + <key>Remove from synchronization</key> </entry> <entry> - <key>Shows all synchronized datasets</key> + <key>Contact synchronisation dashboard</key> </entry> <entry> - <key>Original editor</key> + <key>Name has to be unique</key> </entry> <entry> - <key>Shows the number of datasets still to be synchronized</key> + <key>Show filter result</key> </entry> <entry> - <key>Contact synchronisation</key> + <key>Add to synchronisation</key> </entry> <entry> - <key>Datasets in Outlook</key> + <key>Sales project responsibility set</key> + </entry> + <entry> + <key>Do you really want to delete \"%0\"? If tickets still use this inbox, this might cause problems.</key> + </entry> + <entry> + <key>Delete Inbox</key> </entry> <entry> <key>Finished Tickets last 4 weeks</key> </entry> <entry> - <key>Name has to be unique.</key> + <key>Inbox \"%0\" has been deleted.</key> </entry> <entry> - <key>Contact synchronisations</key> + <key>Employee group already selected</key> </entry> <entry> - <key>Dataset in Outlook</key> + <key>Show my finished Tickets in the last 4 weeks</key> </entry> <entry> - <key>Remove from synchronization</key> + <key>Move</key> </entry> <entry> - <key>Ticket reopen</key> + <key>Dependencies</key> </entry> <entry> - <key>Contact synchronisation dashboard</key> + <key>ExportTemplateDependency</key> </entry> <entry> - <key>Show filter result</key> + <key>testfilter</key> </entry> <entry> - <key>Add to synchronisation</key> + <key>Adito Versafix</key> </entry> <entry> - <key>Employee for Employee groups</key> + <key>Charset</key> + </entry> + <entry> + <key>Unique click rate (in %)</key> + </entry> + <entry> + <key>Employees for Employee groups</key> + </entry> + <entry> + <key>Last Click</key> + </entry> + <entry> + <key>Opener rate (in %)</key> + </entry> + <entry> + <key>Evaluation type</key> + </entry> + <entry> + <key>remove hashtags from favorite titles</key> + </entry> + <entry> + <key>Valid district contacts</key> + </entry> + <entry> + <key>default</key> + </entry> + <entry> + <key>Verknuepfungen</key> + </entry> + <entry> + <key>unsubscribe</key> + </entry> + <entry> + <key>Copy Participants</key> + </entry> + <entry> + <key>ignore</key> + </entry> + <entry> + <key>Click rate (in %)</key> + </entry> + <entry> + <key>Dependency</key> + </entry> + <entry> + <key>${MST_APP_ALREADY_ADDED}</key> + </entry> + <entry> + <key>Found a duplicate member</key> + </entry> + <entry> + <key>${SALESPROJECT_MST_STATUS_CHANGE}</key> + </entry> + <entry> + <key>MS-Teams Message</key> + </entry> + <entry> + <key>${SALESPROJECT_MST_PHASE_CHANGE}</key> + </entry> + <entry> + <key>Import from MS Teams</key> + </entry> + <entry> + <key>Guest</key> + </entry> + <entry> + <key>${MIN_MAX_ERROR_MIN_INT_VALUE} field: %0, value: %1, max: %2</key> + </entry> + <entry> + <key>${MIN_MAX_ERROR_MAX_INT_VALUE} field: %0, value: %1, min: %2</key> </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index 817c76f76846ec750585b6fa87700a8f6856f36a..c5fbc600f3187815a087b7df2d66154a2de32587 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -14,6 +14,9 @@ <key>Slave administration</key> <value>Slave Verwaltung</value> </entry> + <entry> + <key>Ticket was reopen by</key> + </entry> <entry> <key>Create new campaign step</key> <value>Neue Kampagnenstufe erstellen</value> @@ -30,6 +33,10 @@ <key>Single (Service/Internal)</key> <value>Einzel (Service/Intern)</value> </entry> + <entry> + <key>Original editor</key> + <value>Originaler Bearbeiter</value> + </entry> <entry> <key>Single (Service/External)</key> <value>Einzel (Service/Extern)</value> @@ -42,6 +49,10 @@ <key>Ticket was duplicated by</key> <value>Ticket wurde dupliziert. Anwender</value> </entry> + <entry> + <key>Do you really want to delete \"%0\"? If tickets still use this inbox, this might cause problems.</key> + <value>Postkorb \"%0\" wirklich löschen? Wenn noch Tickets mit diesem Postkorb existieren, kann das zu Problemen führen.</value> + </entry> <entry> <key>Ticket duplicated (duplicate)</key> <value>Ticket dupliziert (Duplikat)</value> @@ -98,6 +109,10 @@ <key>Return Ticket</key> <value>Zurückgeben</value> </entry> + <entry> + <key>Employee already selected</key> + <value>Mitarbeiter bereits selektiert</value> + </entry> <entry> <key>Service ticket template</key> <value>Serviceticket-Vorlagen</value> @@ -234,8 +249,8 @@ <value>erledigt</value> </entry> <entry> - <key>A Phase filter has to be set when creating a checklistentry for the Salesproject context.</key> - <value>Es muss ein Filter auf die Phase gesetzt werden wenn der Vertriebsprojektkontext ausgewählt ist.</value> + <key>A Phase filter has to be set when creating a checklistentry for the Salesproject Context.</key> + <value>Es muss ein Filter auf die Phase gesetzt werden wenn der VertriebsprojektKontext ausgewählt ist.</value> </entry> <entry> <key>Redirect needs a full URL with http/https</key> @@ -601,8 +616,8 @@ <value>Team löschen</value> </entry> <entry> - <key>Open Teams</key> - <value>Teams öffnen</value> + <key>Open MS Teams</key> + <value>MS Teams öffnen</value> </entry> <entry> <key>Restore Team</key> @@ -1036,6 +1051,10 @@ <key>Object selection</key> <value>Objektauswahl</value> </entry> + <entry> + <key>Delete Inbox</key> + <value>Postkorb löschen</value> + </entry> <entry> <key>All of the chosen records are already in the campaign</key> <value>Alle ausgewählten Datensätze sind schon in der Kampagne.</value> @@ -1082,7 +1101,6 @@ </entry> <entry> <key>Technical email</key> - <value>Technische E-Mail</value> </entry> <entry> <key>Please check if the following fields are filled correctly</key> @@ -1763,6 +1781,10 @@ <key>Phone</key> <value>Telefon</value> </entry> + <entry> + <key>Name has to be unique</key> + <value>Name muss einzigartig sein</value> + </entry> <entry> <key>360 Degree</key> <value>360 Grad</value> @@ -3345,6 +3367,9 @@ <key>Comoros</key> <value>Komoren</value> </entry> + <entry> + <key>Employee for Employee groups</key> + </entry> <entry> <key>Office Properties</key> <value>Büroimmobilien</value> @@ -4159,7 +4184,7 @@ </entry> <entry> <key>Email address</key> - <value>E-Mail Adresse</value> + <value>E-Mail-Adresse</value> </entry> <entry> <key>Australia</key> @@ -4513,6 +4538,10 @@ <key>Show all Favorites</key> <value>Alle Favoriten anzeigen</value> </entry> + <entry> + <key>Inbox \"%0\" has been deleted.</key> + <value>Postkorb \"%0\ wurde gelöscht.</value> + </entry> <entry> <key>Venezuela (Bolivarian Republic of)</key> <value>Venezuela (Bolivarische Republik)</value> @@ -4765,6 +4794,10 @@ <key>NQC</key> <value>NQC</value> </entry> + <entry> + <key>Email address has to be unique</key> + <value>E-Mail-Addresse muss einzigartig sein</value> + </entry> <entry> <key>MQL</key> <value>MQL</value> @@ -4845,6 +4878,10 @@ <key>String value</key> <value>String-Wert</value> </entry> + <entry> + <key>Rulegroup already selected</key> + <value>Filtergruppe bereits selektiert.</value> + </entry> <entry> <key>The code number is not a valid number.</key> <value>Die Kennnummer ist keine gültige Nummer</value> @@ -4893,6 +4930,10 @@ <key>Relationtype</key> <value>Beziehungsart</value> </entry> + <entry> + <key>Employee group already selected</key> + <value>Mitarbeitergruppe wurde bereits selektiert.</value> + </entry> <entry> <key>Tree</key> <value>Baum</value> @@ -5221,6 +5262,14 @@ <key>${MIN_MAX_ERROR} field: %0, value: %1, min: %2, max: %3</key> <value>%0 muss zwischen %2 und %3 sein.</value> </entry> + <entry> + <key>${MIN_MAX_ERROR_MIN_INT_VALUE} field: %0, value: %1, max: %2</key> + <value>%0 muss kleiner/gleich %2 sein.</value> + </entry> + <entry> + <key>${MIN_MAX_ERROR_MAX_INT_VALUE} field: %0, value: %1, min: %2</key> + <value>%0 muss größer/gleich %2 sein.</value> + </entry> <entry> <key>Email</key> <value>E-Mail</value> @@ -6155,7 +6204,6 @@ </entry> <entry> <key>Action mail</key> - <value>Aktionsmail</value> </entry> <entry> <key>Consultation</key> @@ -7979,7 +8027,7 @@ </entry> <entry> <key>Email address does not exist</key> - <value>E-Mail Adresse existiert nicht</value> + <value>E-Mail-Adresse existiert nicht</value> </entry> <entry> <key>Receipt Header Text</key> @@ -9110,6 +9158,10 @@ Bitte Datumseingabe prüfen</value> <key>My Workflow Tasks</key> <value>Meine Workflow Aufgaben</value> </entry> + <entry> + <key>Returned by</key> + <value>Zurückgegeben durch</value> + </entry> <entry> <key>My workflow tasks</key> <value>Meine Workflow Aufgaben</value> @@ -11192,11 +11244,11 @@ Bitte Datumseingabe prüfen</value> </entry> <entry> <key>Standard Country</key> - <value>Standartland</value> + <value>Standardland</value> </entry> <entry> <key>Standard Zip</key> - <value>Standart Plz</value> + <value>Standard Plz</value> </entry> <entry> <key>Outstanding Amount</key> @@ -11801,6 +11853,10 @@ Bitte Datumseingabe prüfen</value> <key>Workshop for project-realization planned</key> <value>Workshop für Projektumsetzung geplannt</value> </entry> + <entry> + <key>Show my finished Tickets in the last 4 weeks</key> + <value>Meine abgeschlossenen Tickets der letzten 4 Tage anzeigen</value> + </entry> <entry> <key>Ticket created through duplication by</key> <value>Ticket durch Duplizierung erstellt. Anwender</value> @@ -13104,6 +13160,10 @@ Bitte Datumseingabe prüfen</value> <key>Zip Archive</key> <value>Zip Archiv</value> </entry> + <entry> + <key>${MST_APP_ALREADY_ADDED}</key> + <value>Die ADITO-App wurde bereits hinzugefügt.</value> + </entry> <entry> <key>Attendees cannot be assigned repeatedly!</key> <value>Teilnehmer können nicht mehrmals zugewiesen werden!</value> @@ -13122,6 +13182,7 @@ Bitte Datumseingabe prüfen</value> </entry> <entry> <key>Open Admin View</key> + <value>Admin-Ansicht öffnen</value> </entry> <entry> <key>Attendees</key> @@ -13148,6 +13209,9 @@ Bitte Datumseingabe prüfen</value> <entry> <key>KeywordTest4</key> </entry> + <entry> + <key>Ticket reopen</key> + </entry> <entry> <key>KeywordTest5</key> </entry> @@ -13171,6 +13235,10 @@ Bitte Datumseingabe prüfen</value> <key>%0 companies were newley assigned. \n%1 companies are no longer assigned (these assignments got the status 'review'). \n%2 valid assignments were unchanged.\nThe Process took %3 seconds.</key> <value>%0 Firmen wurden neu zugewiesen. \n%1 Firmen sind nicht länger zugewiesen (diese Zuweisungen haben den Status 'in Prüfung' erhalten). \n%2 gültige Zuweisungen blieben unverändert.\nDer Prozess brauchte %3 seconds.</value> </entry> + <entry> + <key>Ticket returned to pool</key> + <value>Ticket zurück in den Pool gegeben</value> + </entry> <entry> <key>Contigent exhausted, please buy some new one to continue</key> </entry> @@ -14104,6 +14172,7 @@ Bitte Datumseingabe prüfen</value> </entry> <entry> <key>Save changes</key> + <value>Änderungen speichern</value> </entry> <entry> <key>Individual Reply Template</key> @@ -14123,6 +14192,7 @@ Bitte Datumseingabe prüfen</value> </entry> <entry> <key>Pull next ticket or create new ones</key> + <value></value> </entry> <entry> <key>Abgeschlossen</key> @@ -14146,7 +14216,8 @@ Bitte Datumseingabe prüfen</value> <key>getTicketDetails</key> </entry> <entry> - <key>Ticket return</key> + <key>Ticket returned</key> + <value>Ticket zurückgegeben</value> </entry> <entry> <key>Ticket filter</key> @@ -14156,6 +14227,7 @@ Bitte Datumseingabe prüfen</value> </entry> <entry> <key>Pull Ticket</key> + <value>Ticket ziehen</value> </entry> <entry> <key>Service-Admin</key> @@ -14299,58 +14371,139 @@ Bitte Datumseingabe prüfen</value> <key>We save your data until</key> </entry> <entry> - <key>Remove synchronization</key> + <key>Guest</key> + <value>Gast</value> </entry> <entry> - <key>Pending contacts</key> + <key>Import from MS Teams</key> + <value>Von MS Teams importieren</value> </entry> <entry> - <key>Shows all synchronized contacts</key> + <key>Found a duplicate member</key> + <value>Mitglied ist doppelt vorhanden</value> </entry> <entry> - <key>My synchronized contacts</key> + <key>${SALESPROJECT_MST_STATUS_CHANGE}</key> + <value>Der Status des Vertriebsprojekts '%0' wurde auf '%1' geändert.</value> </entry> <entry> - <key>All synchronized contacts</key> + <key>${SALESPROJECT_MST_PHASE_CHANGE}</key> + <value>Die Phase des Vertriebsprojekts '%0' wurde auf '%1' geändert.</value> </entry> <entry> - <key>Contacts in Outlook</key> + <key>MS-Teams Message</key> + <value>MS-Teams Nachricht</value> </entry> <entry> - <key>Shows the number of contacts still to be synchronized</key> + <key>Dependencies</key> + <value>Abhängigkeiten</value> </entry> <entry> - <key>Shows my synchronized contacts</key> + <key>Dependency</key> + <value>Abhängigkeit</value> </entry> <entry> - <key>Ticket returned</key> + <key>ExportTemplateDependency</key> + <value>Export Vorlage Abhängigkeit</value> </entry> <entry> - <key>Returned by</key> + <key>testfilter</key> </entry> <entry> - <key>Ticket was reopen by</key> + <key>Adito Versafix</key> </entry> <entry> - <key>Employee group already selected.</key> + <key>Charset</key> </entry> <entry> - <key>Ticket returned to pool</key> + <key>Unique click rate (in %)</key> + </entry> + <entry> + <key>Employees for Employee groups</key> + </entry> + <entry> + <key>Last Click</key> + </entry> + <entry> + <key>Opener rate (in %)</key> + </entry> + <entry> + <key>Evaluation type</key> + </entry> + <entry> + <key>remove hashtags from favorite titles</key> + </entry> + <entry> + <key>Valid district contacts</key> + </entry> + <entry> + <key>default</key> + </entry> + <entry> + <key>Verknuepfungen</key> + </entry> + <entry> + <key>unsubscribe</key> + </entry> + <entry> + <key>Move</key> + </entry> + <entry> + <key>Copy Participants</key> + </entry> + <entry> + <key>ignore</key> + </entry> + <entry> + <key>Click rate (in %)</key> + </entry> + <entry> + <key>Ticket return</key> + </entry> + <entry> + <key>Remove synchronization</key> + </entry> + <entry> + <key>Pending contacts</key> + </entry> + <entry> + <key>Shows all synchronized contacts</key> + </entry> + <entry> + <key>My synchronized contacts</key> + </entry> + <entry> + <key>All synchronized contacts</key> + </entry> + <entry> + <key>Contacts in Outlook</key> + </entry> + <entry> + <key>Shows the number of contacts still to be synchronized</key> + </entry> + <entry> + <key>Shows my synchronized contacts</key> + </entry> + <entry> + <key>Email address has to be unique.</key> </entry> <entry> <key>Employee already selected.</key> </entry> <entry> - <key>Original editor</key> + <key>Open new mosaico template</key> </entry> <entry> <key>Name has to be unique.</key> </entry> <entry> - <key>Ticket reopen</key> + <key>Do you really want to resynchronize the user completely?\nThe data in ADITO will be deleted.\nThe outlook contacts must be cleared manually.</key> </entry> <entry> - <key>Employee for Employee groups</key> + <key>Employee group already selected.</key> + </entry> + <entry> + <key>Open new mosaico template</key> </entry> <entry> <key>Open new mosaico template</key> diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod index fbd3673306ef7cc31e70d8aff9893654c5d424c0..b39d47e306b779a08bc8a967a51647140a06fd85 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -2361,6 +2361,14 @@ <key>${MIN_MAX_ERROR} field: %0, value: %1, min: %2, max: %3</key> <value>%0 has to be between %2 and %3.</value> </entry> + <entry> + <key>${MIN_MAX_ERROR_MIN_INT_VALUE} field: %0, value: %1, max: %2</key> + <value>%0 has to be less/equal %2.</value> + </entry> + <entry> + <key>${MIN_MAX_ERROR_MAX_INT_VALUE} field: %0, value: %1, min: %2</key> + <value>%0 has to be greater/equal %2.</value> + </entry> <entry> <key>Password</key> </entry> @@ -7503,7 +7511,7 @@ <key>Add app</key> </entry> <entry> - <key>Open Teams</key> + <key>Open MS Teams</key> </entry> <entry> <key>Choose Team</key> @@ -9631,6 +9639,10 @@ <entry> <key>TrueType Font</key> </entry> + <entry> + <key>${MST_APP_ALREADY_ADDED}</key> + <value>The ADITO app has already been added.</value> + </entry> <entry> <key>No recipient is marked for test run replacement.</key> </entry> @@ -9868,6 +9880,14 @@ <entry> <key>Paste as Top Topic</key> </entry> + <entry> + <key>${SALESPROJECT_MST_STATUS_CHANGE}</key> + <value>The status of the salesproject '%0' has been changed to '%1'.</value> + </entry> + <entry> + <key>${SALESPROJECT_MST_PHASE_CHANGE}</key> + <value>The phase of the salesproject '%0' has been changed to '%1'.</value> + </entry> <entry> <key>Search term</key> </entry> @@ -10874,6 +10894,39 @@ <entry> <key>Answer Address</key> </entry> + <entry> + <key>Employee for Employee groups</key> + </entry> + <entry> + <key>Employee group already selected.</key> + </entry> + <entry> + <key>Employee already selected.</key> + </entry> + <entry> + <key>Name has to be unique.</key> + </entry> + <entry> + <key>Ticket returned</key> + </entry> + <entry> + <key>Returned by</key> + </entry> + <entry> + <key>Ticket returned to pool</key> + </entry> + <entry> + <key>Original editor</key> + </entry> + <entry> + <key>Ticket was reopen by</key> + </entry> + <entry> + <key>Ticket reopen</key> + </entry> + <entry> + <key>Email address has to be unique.</key> + </entry> <entry> <key>Open new mosaico template</key> </entry> @@ -10989,94 +11042,155 @@ <key>Synced searches</key> </entry> <entry> - <key>Slave administration</key> + <key>All synchronized datasets</key> </entry> <entry> - <key>Slave administration '%0' is '%1'</key> + <key>Pending datasets</key> </entry> <entry> - <key>The file did not contain any data</key> + <key>Email address has to be unique</key> </entry> <entry> - <key>Ticket returned</key> + <key>My synchronized datasets</key> </entry> <entry> - <key>Returned by</key> + <key>Do you really want to resynchronize the user completely?\nThe synchronisation in ADITO will be deleted.\nThe outlook contacts must be cleared manually.</key> </entry> <entry> - <key>Ticket was reopen by</key> + <key>Shows my synchronized datasets</key> </entry> <entry> - <key>All synchronized datasets</key> + <key>Rulegroup already selected</key> </entry> <entry> - <key>Employee group already selected.</key> + <key>Shows all synchronized datasets</key> </entry> <entry> - <key>Pending datasets</key> + <key>Shows the number of datasets still to be synchronized</key> </entry> <entry> - <key>Sales project responsibility set</key> + <key>Contact synchronisation</key> </entry> <entry> - <key>My synchronized datasets</key> + <key>Datasets in Outlook</key> </entry> <entry> - <key>Ticket returned to pool</key> + <key>Employee already selected</key> </entry> <entry> - <key>Do you really want to resynchronize the user completely?\nThe synchronisation in ADITO will be deleted.\nThe outlook contacts must be cleared manually.</key> + <key>Contact synchronisations</key> </entry> <entry> - <key>Shows my synchronized datasets</key> + <key>Dataset in Outlook</key> </entry> <entry> - <key>Employee already selected.</key> + <key>Remove from synchronization</key> </entry> <entry> - <key>Shows all synchronized datasets</key> + <key>Contact synchronisation dashboard</key> </entry> <entry> - <key>Original editor</key> + <key>Name has to be unique</key> </entry> <entry> - <key>Shows the number of datasets still to be synchronized</key> + <key>Show filter result</key> </entry> <entry> - <key>Contact synchronisation</key> + <key>Add to synchronisation</key> </entry> <entry> - <key>Datasets in Outlook</key> + <key>Sales project responsibility set</key> + </entry> + <entry> + <key>Do you really want to delete \"%0\"? If tickets still use this inbox, this might cause problems.</key> + </entry> + <entry> + <key>Delete Inbox</key> </entry> <entry> <key>Finished Tickets last 4 weeks</key> </entry> <entry> - <key>Name has to be unique.</key> + <key>Inbox \"%0\" has been deleted.</key> </entry> <entry> - <key>Contact synchronisations</key> + <key>Employee group already selected</key> </entry> <entry> - <key>Dataset in Outlook</key> + <key>Show my finished Tickets in the last 4 weeks</key> </entry> <entry> - <key>Remove from synchronization</key> + <key>Move</key> </entry> <entry> - <key>Ticket reopen</key> + <key>Dependencies</key> </entry> <entry> - <key>Contact synchronisation dashboard</key> + <key>ExportTemplateDependency</key> + <value>Export Template Dependency</value> </entry> <entry> - <key>Show filter result</key> + <key>testfilter</key> </entry> <entry> - <key>Add to synchronisation</key> + <key>Adito Versafix</key> </entry> <entry> - <key>Employee for Employee groups</key> + <key>Charset</key> + </entry> + <entry> + <key>Unique click rate (in %)</key> + </entry> + <entry> + <key>Employees for Employee groups</key> + </entry> + <entry> + <key>Last Click</key> + </entry> + <entry> + <key>Opener rate (in %)</key> + </entry> + <entry> + <key>Evaluation type</key> + </entry> + <entry> + <key>remove hashtags from favorite titles</key> + </entry> + <entry> + <key>Valid district contacts</key> + </entry> + <entry> + <key>default</key> + </entry> + <entry> + <key>Verknuepfungen</key> + </entry> + <entry> + <key>unsubscribe</key> + </entry> + <entry> + <key>Copy Participants</key> + </entry> + <entry> + <key>ignore</key> + </entry> + <entry> + <key>Click rate (in %)</key> + </entry> + <entry> + <key>Dependency</key> + </entry> + <entry> + <key>Found a duplicate member</key> + </entry> + <entry> + <key>MS-Teams Message</key> + </entry> + <entry> + <key>Import from MS Teams</key> + </entry> + <entry> + <key>Guest</key> </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> diff --git a/neonContext/Address/Address.aod b/neonContext/Address/Address.aod index d52b486fe764514b9aca06652f49d2b8ab1751e9..b42dae903069a6ad26e584a866ac7feb06484ba4 100644 --- a/neonContext/Address/Address.aod +++ b/neonContext/Address/Address.aod @@ -4,6 +4,7 @@ <title>Addresses</title> <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/neonContext/Address/documentation.adoc</documentation> + <filterView>AdressFilter_view</filterView> <lookupView>AddressLookup_view</lookupView> <entity>Address_entity</entity> <references> @@ -23,5 +24,9 @@ <name>fffe7dd0-6f32-4b4f-865b-501f48813c6d</name> <view>AddressOrgMultiEdit_view</view> </neonViewReference> + <neonViewReference> + <name>ffbf7b96-30bb-497a-95bf-b2d1c53ef711</name> + <view>AdressFilter_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonContext/Document/Document.aod b/neonContext/Document/Document.aod index cfb02a7f2b32b641b632905df49b01ef560bd62c..aea835587fcd457ce8157604e56ada0ca8329198 100644 --- a/neonContext/Document/Document.aod +++ b/neonContext/Document/Document.aod @@ -37,5 +37,9 @@ <name>434ed60c-8219-4ef5-b795-6d72b9ae48c9</name> <view>DocumentWithIdFilter_view</view> </neonViewReference> + <neonViewReference> + <name>9640b403-4953-4575-b70a-66986de3c6b2</name> + <view>DocumentMultipleEditNoNewRow_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonContext/ExportTemplate/ExportTemplate.aod b/neonContext/ExportTemplate/ExportTemplate.aod index 40c9ea289209b23bad28b2eb33ebc1c65fd1273e..103e413ba1e0de90e5317354838d43b82ebc325e 100644 --- a/neonContext/ExportTemplate/ExportTemplate.aod +++ b/neonContext/ExportTemplate/ExportTemplate.aod @@ -4,10 +4,11 @@ <title>Export Template</title> <majorModelMode>DISTRIBUTED</majorModelMode> <icon>NEON:EXPORT</icon> + <mainView>ExportTemplateMain_view</mainView> <filterView>ExportTemplateFilter_view</filterView> <editView>ExportTemplateEdit_view</editView> <previewView>ExportTemplatePreview_view</previewView> - <lookupView>ExportTemplateFilter_view</lookupView> + <lookupView>ExportTemplateLookup_view</lookupView> <entity>ExportTemplate_entity</entity> <references> <neonViewReference> @@ -22,5 +23,17 @@ <name>6986af0d-95a1-4e6c-8687-da99296b9c7d</name> <view>ExportTemplateEdit_view</view> </neonViewReference> + <neonViewReference> + <name>611cd4fc-5403-49c6-bf96-c0784e7efdcd</name> + <view>ExportTemplateMain_view</view> + </neonViewReference> + <neonViewReference> + <name>56f482d6-db40-4558-a9d9-71760b511d72</name> + <view>ExportTemplateDetail_view</view> + </neonViewReference> + <neonViewReference> + <name>6e3d459f-b15f-4f2a-8266-8e43a6e4b965</name> + <view>ExportTemplateLookup_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonContext/ExportTemplateField/ExportTemplateField.aod b/neonContext/ExportTemplateField/ExportTemplateField.aod index 155383faabb6c58f1d4a3f0356aad7965ee7cc46..9168b0ab2c5166fbd10fb3514a6a7e8b4854faf5 100644 --- a/neonContext/ExportTemplateField/ExportTemplateField.aod +++ b/neonContext/ExportTemplateField/ExportTemplateField.aod @@ -3,7 +3,7 @@ <name>ExportTemplateField</name> <title>Export Template Field</title> <majorModelMode>DISTRIBUTED</majorModelMode> - <editView>ExportTemplateFieldMultiEdit_view</editView> + <editView>ExportTemplateFieldEdit_view</editView> <entity>ExportTemplateField_entity</entity> <references> <neonViewReference> @@ -14,5 +14,13 @@ <name>f015edb3-3dd0-431f-ac6f-3f23a350e36c</name> <view>ExportTemplateFieldList_view</view> </neonViewReference> + <neonViewReference> + <name>cc2174d0-cb70-461d-b1f6-8862f3233440</name> + <view>ExportTemplateFieldFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>c93b35f9-ede0-4b32-8852-cd3131fc87bb</name> + <view>ExportTemplateFieldEdit_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonContext/ExportTemplatePlaceOfUse/ExportTemplatePlaceOfUse.aod b/neonContext/ExportTemplatePlaceOfUse/ExportTemplatePlaceOfUse.aod new file mode 100644 index 0000000000000000000000000000000000000000..c146ccbfcc22d5bffbdd6e9e0c412494e618ebc4 --- /dev/null +++ b/neonContext/ExportTemplatePlaceOfUse/ExportTemplatePlaceOfUse.aod @@ -0,0 +1,28 @@ +<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1"> + <name>ExportTemplatePlaceOfUse</name> + <title>ExportTemplateDependency</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <editView>ExportTemplatePlaceOfUseEdit_view</editView> + <previewView>ExportTemplatePlaceOfUsePreview_view</previewView> + <lookupView>ExportTemplatePlaceOfUseFilter_view</lookupView> + <entity>ExportTemplatePlaceOfUse_entity</entity> + <references> + <neonViewReference> + <name>ebd784ea-ffb3-4502-9ebb-3bb6f056c923</name> + <view>ExportTemplatePlaceOfUseEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>3439407e-24dc-414a-9035-c6ef2aae32c1</name> + <view>ExportTemplatePlaceOfUseFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>ed73d79d-c3ef-4c8e-8257-49e94c9a7392</name> + <view>ExportTemplatePlaceOfUsePreview_view</view> + </neonViewReference> + <neonViewReference> + <name>f8b7db8a-d6c1-49f9-9734-d455254b811a</name> + <view>ExportTemplatePlaceOfUseGeneric_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/ExportTemplatePlaceofUse/ExportTemplatePlaceofUse.aod b/neonContext/ExportTemplatePlaceofUse/ExportTemplatePlaceofUse.aod deleted file mode 100644 index 3b3b7eeb6424a266cff34a2711b89e67d1cb17f4..0000000000000000000000000000000000000000 --- a/neonContext/ExportTemplatePlaceofUse/ExportTemplatePlaceofUse.aod +++ /dev/null @@ -1,17 +0,0 @@ -<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1"> - <name>ExportTemplatePlaceofUse</name> - <title>Export Template PlaceOfUse</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <entity>ExportTemplatePlaceOfUse_entity</entity> - <references> - <neonViewReference> - <name>99e2e84f-a46a-4dd4-a312-254eb2d4c935</name> - <view>ExportTemplatePlaceOfUseList_view</view> - </neonViewReference> - <neonViewReference> - <name>5b1a0851-93c8-451e-b10e-ef3defa1e9f4</name> - <view>ExportTemplatePlaceOfUseMultiEdit_view</view> - </neonViewReference> - </references> -</neonContext> diff --git a/neonContext/MSTTeam/MSTTeam.aod b/neonContext/MSTTeam/MSTTeam.aod index 7f715ccd447d45dbce5deed363aebf485646fab9..3f0ea6b92907c6b28ee8c669151af3cb44df8b35 100644 --- a/neonContext/MSTTeam/MSTTeam.aod +++ b/neonContext/MSTTeam/MSTTeam.aod @@ -16,7 +16,6 @@ </neonViewReference> <neonViewReference> <name>b1e14c73-f48f-43a7-a459-2aa0172d015b</name> - <view>MSTTeamEditMembers_view</view> </neonViewReference> </references> </neonContext> diff --git a/neonContext/MSTTeamLink/MSTTeamLink.aod b/neonContext/MSTTeamLink/MSTTeamLink.aod deleted file mode 100644 index d0d6d646fe31690e5c9d26697ec9adf9f471f40c..0000000000000000000000000000000000000000 --- a/neonContext/MSTTeamLink/MSTTeamLink.aod +++ /dev/null @@ -1,13 +0,0 @@ -<?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1"> - <name>MSTTeamLink</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <editView>MSTTeamLinkEdit_view</editView> - <entity>MSTTeamLink_entity</entity> - <references> - <neonViewReference> - <name>a165469f-eea5-4427-b5ba-4477fe7e04e6</name> - <view>MSTTeamLinkEdit_view</view> - </neonViewReference> - </references> -</neonContext> diff --git a/neonContext/SupportTicket/SupportTicket.aod b/neonContext/SupportTicket/SupportTicket.aod index f3e1f36d9313f8facdabf966730e8fb9b7119233..8146a7dda5d33c21b2e8745152f143fea7535e33 100644 --- a/neonContext/SupportTicket/SupportTicket.aod +++ b/neonContext/SupportTicket/SupportTicket.aod @@ -60,7 +60,6 @@ </neonViewReference> <neonViewReference> <name>fc7b698f-ded0-49f8-b5e3-7f7b0c63ea93</name> - <view>SupportTicketEditQuickEntry_view</view> </neonViewReference> <neonViewReference> <name>f70692c0-7ea0-423b-9d65-f47ea0e093f5</name> @@ -95,6 +94,9 @@ </neonViewReference> <neonViewReference> <name>3bcf18a8-1f3c-4841-ad31-01867b17d187</name> + </neonViewReference> + <neonViewReference> + <name>b3c473d4-20f1-4e4c-b026-3e7abf4c6199</name> <view>SupportTicketMultiEdit_view</view> </neonViewReference> </references> diff --git a/neonDashboard/Service/Service.aod b/neonDashboard/Service/Service.aod index bc8d08ea8f092bd3adf738f26afce47a44cecdff..e04750eb2fefb2ba2020e124a44e97e5273abe76 100644 --- a/neonDashboard/Service/Service.aod +++ b/neonDashboard/Service/Service.aod @@ -25,12 +25,6 @@ <colspan v="1" /> <rowspan v="4" /> </uiConfiguration> - <parameters> - <neonDashletParameter> - <name>BasedOnRoles_param</name> - <value>true</value> - </neonDashletParameter> - </parameters> </neonDashlet> <neonDashlet> <name>Dashlet3</name> @@ -67,12 +61,6 @@ <colspan v="3" /> <rowspan v="4" /> </uiConfiguration> - <parameters> - <neonDashletParameter> - <name>BasedOnRoles_param</name> - <value>true</value> - </neonDashletParameter> - </parameters> </neonDashlet> <neonDashlet> <name>Dashlet6</name> @@ -85,12 +73,6 @@ <colspan v="3" /> <rowspan v="4" /> </uiConfiguration> - <parameters> - <neonDashletParameter> - <name>BasedOnRoles_param</name> - <value>true</value> - </neonDashletParameter> - </parameters> </neonDashlet> </defaultDashlets> </neonDashboard> diff --git a/neonView/ActivityEdit_view/ActivityEdit_view.aod b/neonView/ActivityEdit_view/ActivityEdit_view.aod index f07e18c7d31ea5e26294f1234641632967e834e8..ad986201cc67ddd998d2e86fb8283fdaea4cd01d 100644 --- a/neonView/ActivityEdit_view/ActivityEdit_view.aod +++ b/neonView/ActivityEdit_view/ActivityEdit_view.aod @@ -62,9 +62,9 @@ <view>TopicTreeRelationMultiEdit_view</view> </neonViewReference> <neonViewReference> - <name>1dfe4fcc-eb36-4a6c-878d-f907d36de9ac</name> + <name>9803485c-734d-4882-b30e-f6da4b8aa401</name> <entityField>Documents</entityField> - <view>DocumentMultipleEdit_view</view> + <view>DocumentMultipleEditNoNewRow_view</view> </neonViewReference> </children> </neonView> diff --git a/neonView/ExportTemplatePlaceOfUseList_view/ExportTemplatePlaceOfUseList_view.aod b/neonView/AdressFilter_view/AdressFilter_view.aod similarity index 57% rename from neonView/ExportTemplatePlaceOfUseList_view/ExportTemplatePlaceOfUseList_view.aod rename to neonView/AdressFilter_view/AdressFilter_view.aod index 9b4d6a978b1032e991dbc8cc4fbc4b483a6b76d7..7243a0108c3886d3a276f80feafd84363756550d 100644 --- a/neonView/ExportTemplatePlaceOfUseList_view/ExportTemplatePlaceOfUseList_view.aod +++ b/neonView/AdressFilter_view/AdressFilter_view.aod @@ -1,18 +1,11 @@ <?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> - <name>ExportTemplatePlaceOfUseList_view</name> + <name>AdressFilter_view</name> <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/neonView/AdressFilter_view/documentation.adoc</documentation> <layout> <noneLayout> <name>layout</name> </noneLayout> </layout> - <children> - <titledListViewTemplate> - <name>titledList</name> - <titleField>PLACEOFUSE</titleField> - <titleFieldFullWidth v="true" /> - <entityField>#ENTITY</entityField> - </titledListViewTemplate> - </children> </neonView> diff --git a/neonView/AdressFilter_view/documentation.adoc b/neonView/AdressFilter_view/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..c8cdf10d9697de841ff9219318e1b83008637b6f --- /dev/null +++ b/neonView/AdressFilter_view/documentation.adoc @@ -0,0 +1 @@ +This View is only need for selecting the filter for export and observations \ No newline at end of file diff --git a/neonView/AdvertisingFilter_view/AdvertisingFilter_view.aod b/neonView/AdvertisingFilter_view/AdvertisingFilter_view.aod index 793cd634f5dc7dfa77ad751f5596030d0e191217..842cca711c454cab53db8971345bc76d9d167929 100644 --- a/neonView/AdvertisingFilter_view/AdvertisingFilter_view.aod +++ b/neonView/AdvertisingFilter_view/AdvertisingFilter_view.aod @@ -12,6 +12,7 @@ <tableViewTemplate> <name>Table</name> <maxDBRow v="100" /> + <isCreatable v="false" /> <columns> <neonTableColumn> <name>8c3e1048-7f7a-4210-a849-198f5b569c04</name> diff --git a/neonView/BulkMailFilter_view/BulkMailFilter_view.aod b/neonView/BulkMailFilter_view/BulkMailFilter_view.aod index 183b62b6df494b8a2ddebaa2765853769a357e9d..042e71cb800e3f9f8d63f78d61a5b654469ee418 100644 --- a/neonView/BulkMailFilter_view/BulkMailFilter_view.aod +++ b/neonView/BulkMailFilter_view/BulkMailFilter_view.aod @@ -13,6 +13,7 @@ <storeRoles> <element>PROJECT_Marketing</element> </storeRoles> + <icon>VAADIN:AT</icon> <categories> <neonDashletCategory> <name>marketing</name> diff --git a/neonView/DocumentMultipleEditNoNewRow_view/DocumentMultipleEditNoNewRow_view.aod b/neonView/DocumentMultipleEditNoNewRow_view/DocumentMultipleEditNoNewRow_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..2c3deabf084286cb776075a9d9961034a52500ba --- /dev/null +++ b/neonView/DocumentMultipleEditNoNewRow_view/DocumentMultipleEditNoNewRow_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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> + <name>DocumentMultipleEditNoNewRow_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/neonView/DocumentMultipleEditNoNewRow_view/documentation.adoc</documentation> + <layout> + <noneLayout> + <name>layout</name> + </noneLayout> + </layout> + <children> + <genericMultipleViewTemplate> + <name>genericMultiple</name> + <autoNewRow v="false" /> + <entityField>#ENTITY</entityField> + <columns> + <neonGenericMultipleTableColumn> + <name>c4cc3dbf-95cb-4947-ae8a-4c8cca9f21b0</name> + <entityField>BINDATA_UPLOAD</entityField> + </neonGenericMultipleTableColumn> + <neonGenericMultipleTableColumn> + <name>40bf8a61-711f-42b8-b24c-0cdfc92e579f</name> + <entityField>NAME</entityField> + </neonGenericMultipleTableColumn> + <neonGenericMultipleTableColumn> + <name>dc1d0e99-6600-4067-8192-07e8c605d362</name> + <entityField>DESCRIPTION</entityField> + </neonGenericMultipleTableColumn> + <neonGenericMultipleTableColumn> + <name>ab509c66-f72a-46b5-af5d-2b5620506bf5</name> + <entityField>IS_MAIN_DOCUMENT</entityField> + </neonGenericMultipleTableColumn> + <neonGenericMultipleTableColumn> + <name>48912651-0c8f-42f1-ba85-99ed5566e36f</name> + <entityField>KEYWORD</entityField> + </neonGenericMultipleTableColumn> + </columns> + </genericMultipleViewTemplate> + </children> +</neonView> diff --git a/neonView/DocumentMultipleEditNoNewRow_view/documentation.adoc b/neonView/DocumentMultipleEditNoNewRow_view/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..deadfe5861fe77a445b0ba749fd37e75dc0e6917 --- /dev/null +++ b/neonView/DocumentMultipleEditNoNewRow_view/documentation.adoc @@ -0,0 +1 @@ +This view is for the entities that don't need a new line in edit or new mode. \ No newline at end of file diff --git a/neonView/DocumentTemplateEdit_view/DocumentTemplateEdit_view.aod b/neonView/DocumentTemplateEdit_view/DocumentTemplateEdit_view.aod index e8fa1aac44a68bdec6c873b71a6ca6b1e221d568..be218839b16e9580285be895409ed28ac4b9ce06 100644 --- a/neonView/DocumentTemplateEdit_view/DocumentTemplateEdit_view.aod +++ b/neonView/DocumentTemplateEdit_view/DocumentTemplateEdit_view.aod @@ -124,5 +124,10 @@ </entityFieldLink> </fields> </genericViewTemplate> + <neonViewReference> + <name>b98604e3-4b54-4cb2-8231-4668cf4cf3dd</name> + <entityField>DocumentTemplatePlaceOfUse</entityField> + <view>DocumentTemplatePlaceOfUseMultiEdit_view</view> + </neonViewReference> </children> </neonView> diff --git a/neonView/ExportTemplateDetail_view/ExportTemplateDetail_view.aod b/neonView/ExportTemplateDetail_view/ExportTemplateDetail_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..4398139911202280c568d7307193faafd21d9aee --- /dev/null +++ b/neonView/ExportTemplateDetail_view/ExportTemplateDetail_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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> + <name>ExportTemplateDetail_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <drawerLayout> + <name>layout</name> + <layoutCaption>Details</layoutCaption> + <fixedDrawer v="false" /> + </drawerLayout> + </layout> + <children> + <genericViewTemplate> + <name>generic</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>7666c443-e85c-43ce-bfc0-0541c2855f93</name> + <entityField>DESCRIPTION</entityField> + </entityFieldLink> + <entityFieldLink> + <name>50d494c5-268a-4991-a399-36ccd2083b37</name> + <entityField>SENTENCESEPARATOR</entityField> + </entityFieldLink> + <entityFieldLink> + <name>4894f791-3a6a-494c-a765-10cf4341035d</name> + <entityField>FIELDSEPARATOR</entityField> + </entityFieldLink> + <entityFieldLink> + <name>63ba6855-4109-424a-87a7-215921d9d794</name> + <entityField>FIELDDELIMITER</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>1c205be8-ecf4-4a12-93d7-d9edbf03fe3c</name> + <entityField>ExportTemplateMainPlaceOfUse</entityField> + <view>ExportTemplatePlaceOfUseGeneric_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/ExportTemplateEdit_view/ExportTemplateEdit_view.aod b/neonView/ExportTemplateEdit_view/ExportTemplateEdit_view.aod index a821121f1aeb066c44b02cc36a7428411d46f07b..4d28a36f9339d95416a511f218743ced58ad5c72 100644 --- a/neonView/ExportTemplateEdit_view/ExportTemplateEdit_view.aod +++ b/neonView/ExportTemplateEdit_view/ExportTemplateEdit_view.aod @@ -24,17 +24,13 @@ <entityField>DESCRIPTION</entityField> </entityFieldLink> <entityFieldLink> - <name>dcca079e-66b5-4b12-b7f7-60b53966bb43</name> - <entityField>ISOLANGUAGE</entityField> + <name>805a801e-d030-4ad9-9a9b-26e279c1d0fc</name> + <entityField>SENTENCESEPARATOR</entityField> </entityFieldLink> <entityFieldLink> <name>2d720c5a-f5a6-4689-8bc7-45e3f5e979ca</name> <entityField>FIELDSEPARATOR</entityField> </entityFieldLink> - <entityFieldLink> - <name>805a801e-d030-4ad9-9a9b-26e279c1d0fc</name> - <entityField>SENTENCESEPARATOR</entityField> - </entityFieldLink> <entityFieldLink> <name>a9041865-cadf-4ebf-8e14-ca1ae445a0cf</name> <entityField>FIELDDELIMITER</entityField> @@ -42,14 +38,9 @@ </fields> </genericViewTemplate> <neonViewReference> - <name>d4fc40d7-96c2-4260-b749-dd0fee481b52</name> - <entityField>ExportTemplateFields</entityField> - <view>ExportTemplateFieldMultiEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>115345f0-5b8a-4a94-ad7d-bf5bf986da7a</name> - <entityField>ExportTemplateplaceOfUseCon</entityField> - <view>ExportTemplatePlaceOfUseMultiEdit_view</view> + <name>7e29d4e4-86a0-4a39-9a80-24d2b4a657a9</name> + <entityField>ExportTemplateMainPlaceOfUse</entityField> + <view>ExportTemplatePlaceOfUseEdit_view</view> </neonViewReference> </children> </neonView> diff --git a/neonView/MSTTeamEditMembers_view/MSTTeamEditMembers_view.aod b/neonView/ExportTemplateFieldEdit_view/ExportTemplateFieldEdit_view.aod similarity index 52% rename from neonView/MSTTeamEditMembers_view/MSTTeamEditMembers_view.aod rename to neonView/ExportTemplateFieldEdit_view/ExportTemplateFieldEdit_view.aod index 49a58b14aac140e3dd338dc2a934d39ff2e25a15..51a62980047cd59cd591cad2e430988b364df757 100644 --- a/neonView/MSTTeamEditMembers_view/MSTTeamEditMembers_view.aod +++ b/neonView/ExportTemplateFieldEdit_view/ExportTemplateFieldEdit_view.aod @@ -1,28 +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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> - <name>MSTTeamEditMembers_view</name> + <name>ExportTemplateFieldEdit_view</name> <majorModelMode>DISTRIBUTED</majorModelMode> - <size>SMALL</size> <layout> - <boxLayout> + <noneLayout> <name>layout</name> - </boxLayout> + </noneLayout> </layout> <children> <genericViewTemplate> - <name>Teamname</name> - <entityField>#ENTITY</entityField> + <name>ExportTemplateFieldEditGeneric</name> + <editMode v="true" /> + <hideEmptyFields v="false" /> <fields> <entityFieldLink> - <name>b17446e0-ad87-4098-8bd2-de716a8e12ae</name> - <entityField>TEAMNAME</entityField> + <name>9377c104-4a58-4739-9582-9827b0097729</name> + <entityField>EXPORTTEMPLATEPLACEOFUSE_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>bd6b4681-d616-4b02-a8d0-35f386640588</name> + <entityField>FIELD</entityField> </entityFieldLink> </fields> </genericViewTemplate> - <neonViewReference> - <name>189bbef9-e646-416a-835f-6348199dbd24</name> - <entityField>TeamMembers</entityField> - <view>MSTTeamMemberMultiEdit_view</view> - </neonViewReference> </children> </neonView> diff --git a/neonView/ExportTemplateFieldFilter_view/ExportTemplateFieldFilter_view.aod b/neonView/ExportTemplateFieldFilter_view/ExportTemplateFieldFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..8a1b6a7188932352a6810269920a7271eaad8d51 --- /dev/null +++ b/neonView/ExportTemplateFieldFilter_view/ExportTemplateFieldFilter_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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> + <name>ExportTemplateFieldFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <groupLayout> + <name>layout</name> + </groupLayout> + </layout> + <children> + <treeTableViewTemplate> + <name>ExportTemplateFieldTreeTable</name> + <entityField>#ENTITY</entityField> + <favoriteActionGroup1>MoveActions</favoriteActionGroup1> + <isEditable v="false" /> + <columns> + <neonTreeTableColumn> + <name>5fa75992-8d07-4f59-8780-defbe0472910</name> + <entityField>SORTING</entityField> + </neonTreeTableColumn> + <neonTreeTableColumn> + <name>5b943bef-e70a-4110-a6be-dc7bba96b4eb</name> + <entityField>FIELD</entityField> + </neonTreeTableColumn> + <neonTreeTableColumn> + <name>8dc1f2c1-6351-4b66-aafa-fa8149690e6c</name> + <entityField>placeOfUse</entityField> + </neonTreeTableColumn> + </columns> + </treeTableViewTemplate> + </children> +</neonView> diff --git a/neonView/ExportTemplateFieldList_view/ExportTemplateFieldList_view.aod b/neonView/ExportTemplateFieldList_view/ExportTemplateFieldList_view.aod index 28f8da32d3a8828c0f658129fdf81ae91e298b01..29c0373073449768c1d1582751f40a335445d7b5 100644 --- a/neonView/ExportTemplateFieldList_view/ExportTemplateFieldList_view.aod +++ b/neonView/ExportTemplateFieldList_view/ExportTemplateFieldList_view.aod @@ -12,13 +12,14 @@ <children> <titledListViewTemplate> <name>titledList</name> - <titleField>FIELD</titleField> + <titleField>SORTING</titleField> <entityField>#ENTITY</entityField> <title>Field and Position</title> + <isEditable v="true" /> <columns> <neonTitledListTableColumn> <name>a0e7e2ce-b8fc-417c-bf7e-9907b75fec59</name> - <entityField>SORTING</entityField> + <entityField>FIELD</entityField> <fullWidth v="false" /> </neonTitledListTableColumn> </columns> diff --git a/neonView/ExportTemplateFieldMultiEdit_view/ExportTemplateFieldMultiEdit_view.aod b/neonView/ExportTemplateFieldMultiEdit_view/ExportTemplateFieldMultiEdit_view.aod index d568ca27848e106958e132471cd1b85b44f96f48..e7ef3b7160487c6924d3094bd2a3e29a5eb76237 100644 --- a/neonView/ExportTemplateFieldMultiEdit_view/ExportTemplateFieldMultiEdit_view.aod +++ b/neonView/ExportTemplateFieldMultiEdit_view/ExportTemplateFieldMultiEdit_view.aod @@ -11,6 +11,9 @@ <genericMultipleViewTemplate> <name>genericMultiple</name> <entityField>#ENTITY</entityField> + <isCreatable v="false" /> + <isDeletable v="false" /> + <isEditable v="false" /> <columns> <neonGenericMultipleTableColumn> <name>6e30e825-4fd4-4503-b81c-ac1a9971275d</name> diff --git a/neonView/ExportTemplateFilter_view/ExportTemplateFilter_view.aod b/neonView/ExportTemplateFilter_view/ExportTemplateFilter_view.aod index ecfe1548157a26a029eb9d6ca3dabd552485cadc..a33b96878aa90a70f95fb5a6146d2dcb6df3e6cf 100644 --- a/neonView/ExportTemplateFilter_view/ExportTemplateFilter_view.aod +++ b/neonView/ExportTemplateFilter_view/ExportTemplateFilter_view.aod @@ -18,10 +18,6 @@ <name>76bc9ab0-8294-4df1-bdcb-6a86daef2170</name> <entityField>TITLE</entityField> </neonTableColumn> - <neonTableColumn> - <name>29cd8f19-a002-40be-b91b-9c0eab447129</name> - <entityField>ISOLANGUAGE</entityField> - </neonTableColumn> <neonTableColumn> <name>e598db0e-f2d9-43d4-97c4-f1122edf6751</name> <entityField>DESCRIPTION</entityField> @@ -48,10 +44,6 @@ <name>bf2f11c2-8cf0-40da-9692-d09bf8391679</name> <entityField>TITLE</entityField> </neonTreeTableColumn> - <neonTreeTableColumn> - <name>53869967-de33-4f9e-aa36-a11475892322</name> - <entityField>ISOLANGUAGE</entityField> - </neonTreeTableColumn> <neonTreeTableColumn> <name>6c25b35a-c655-4840-a9a7-37a7ac309e1b</name> <entityField>DESCRIPTION</entityField> diff --git a/neonView/ExportTemplateLookup_view/ExportTemplateLookup_view.aod b/neonView/ExportTemplateLookup_view/ExportTemplateLookup_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..a1f2c8f4f1accd5137cb8c02a04df2b35f25a179 --- /dev/null +++ b/neonView/ExportTemplateLookup_view/ExportTemplateLookup_view.aod @@ -0,0 +1,28 @@ +<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> + <name>ExportTemplateLookup_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <groupLayout> + <name>layout</name> + </groupLayout> + </layout> + <children> + <tableViewTemplate> + <name>table</name> + <entityField>#ENTITY</entityField> + <isEditable v="true" /> + <columns> + <neonTableColumn> + <name>76bc9ab0-8294-4df1-bdcb-6a86daef2170</name> + <entityField>TITLE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>e598db0e-f2d9-43d4-97c4-f1122edf6751</name> + <entityField>DESCRIPTION</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/ExportTemplateMain_view/ExportTemplateMain_view.aod b/neonView/ExportTemplateMain_view/ExportTemplateMain_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..62d38aa680dc82d8656d31cb66cc138a8510daac --- /dev/null +++ b/neonView/ExportTemplateMain_view/ExportTemplateMain_view.aod @@ -0,0 +1,28 @@ +<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> + <name>ExportTemplateMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>36db0218-9ae4-4ddd-8405-8ce9e874a31c</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>36db0218-9ae4-4ddd-8405-8ce9e874a31c</name> + <entityField>#ENTITY</entityField> + <view>ExportTemplatePreview_view</view> + </neonViewReference> + <neonViewReference> + <name>34d357ec-7421-4fc6-9f66-eed0e95bc2f7</name> + <entityField>ExportTemplatePlacesOfUse</entityField> + <view>ExportTemplatePlaceOfUseFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>4a77b26f-e83c-4988-b925-ecc227a1fd09</name> + <entityField>ExportTemplateFields</entityField> + <view>ExportTemplateFieldFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/ExportTemplatePlaceOfUseEdit_view/ExportTemplatePlaceOfUseEdit_view.aod b/neonView/ExportTemplatePlaceOfUseEdit_view/ExportTemplatePlaceOfUseEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..54c54551b68d108d2428ded56de3574e53026086 --- /dev/null +++ b/neonView/ExportTemplatePlaceOfUseEdit_view/ExportTemplatePlaceOfUseEdit_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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> + <name>ExportTemplatePlaceOfUseEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <size>SMALL</size> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>ExportTemplateDependencyEditGeneric</name> + <editMode v="true" /> + <hideEmptyFields v="false" /> + <fields> + <entityFieldLink> + <name>41964c70-2475-4989-a717-caae3c470674</name> + <entityField>EXPORTTEMPLATEPLACEOFUSE_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ee620cbf-5c85-4d1a-9a81-b14a55247afc</name> + <entityField>PLACEOFUSE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>a47f76e7-8860-414b-b78c-ea2f4d0b65d4</name> + <entityField>OBJECT_FILTER</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/ExportTemplatePlaceOfUseFilter_view/ExportTemplatePlaceOfUseFilter_view.aod b/neonView/ExportTemplatePlaceOfUseFilter_view/ExportTemplatePlaceOfUseFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..1c4a06528e1798184325f53eb3e925f7eee43604 --- /dev/null +++ b/neonView/ExportTemplatePlaceOfUseFilter_view/ExportTemplatePlaceOfUseFilter_view.aod @@ -0,0 +1,25 @@ +<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> + <name>ExportTemplatePlaceOfUseFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <groupLayout> + <name>layout</name> + </groupLayout> + </layout> + <children> + <treeTableViewTemplate> + <name>ExportTemplateDependencyFilterTreeTable</name> + <parentField>EXPORTTEMPLATEPLACEOFUSE_ID</parentField> + <showChildrenCount v="false" /> + <isEditable v="false" /> + <columns> + <neonTreeTableColumn> + <name>d261955e-81db-41dd-9dd3-57f07f92cfc2</name> + <entityField>PLACEOFUSE</entityField> + </neonTreeTableColumn> + </columns> + </treeTableViewTemplate> + </children> +</neonView> diff --git a/neonView/MSTTeamLinkEdit_view/MSTTeamLinkEdit_view.aod b/neonView/ExportTemplatePlaceOfUseGeneric_view/ExportTemplatePlaceOfUseGeneric_view.aod similarity index 66% rename from neonView/MSTTeamLinkEdit_view/MSTTeamLinkEdit_view.aod rename to neonView/ExportTemplatePlaceOfUseGeneric_view/ExportTemplatePlaceOfUseGeneric_view.aod index b3ce9642c95bd0bd6f3d72802cae3a46da66d829..443c2f5a0ff3ebfc4382af97d7178f18852e552c 100644 --- a/neonView/MSTTeamLinkEdit_view/MSTTeamLinkEdit_view.aod +++ b/neonView/ExportTemplatePlaceOfUseGeneric_view/ExportTemplatePlaceOfUseGeneric_view.aod @@ -1,21 +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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> - <name>MSTTeamLinkEdit_view</name> + <name>ExportTemplatePlaceOfUseGeneric_view</name> <majorModelMode>DISTRIBUTED</majorModelMode> - <size>SMALL</size> <layout> - <boxLayout> + <noneLayout> <name>layout</name> - </boxLayout> + </noneLayout> </layout> <children> <genericViewTemplate> - <name>TeamSelection</name> - <editMode v="true" /> + <name>ExportTemplatePlaceOfUseGenericGeneric</name> <fields> <entityFieldLink> - <name>1b10e15e-0774-430d-8b76-36307abdff33</name> - <entityField>TEAM_ID_AND_NAME</entityField> + <name>20243d2b-d773-4daf-b0cd-9ac0b762f1fc</name> + <entityField>PLACEOFUSE</entityField> </entityFieldLink> </fields> </genericViewTemplate> diff --git a/neonView/ExportTemplatePlaceOfUseMultiEdit_view/ExportTemplatePlaceOfUseMultiEdit_view.aod b/neonView/ExportTemplatePlaceOfUseMultiEdit_view/ExportTemplatePlaceOfUseMultiEdit_view.aod deleted file mode 100644 index c32a8477c19869f6a34cce18c963b2a590aca365..0000000000000000000000000000000000000000 --- a/neonView/ExportTemplatePlaceOfUseMultiEdit_view/ExportTemplatePlaceOfUseMultiEdit_view.aod +++ /dev/null @@ -1,23 +0,0 @@ -<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> - <name>ExportTemplatePlaceOfUseMultiEdit_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <noneLayout> - <name>layout</name> - </noneLayout> - </layout> - <children> - <genericMultipleViewTemplate> - <name>genericmultiple</name> - <entityField>#ENTITY</entityField> - <title>Place of Use</title> - <columns> - <neonGenericMultipleTableColumn> - <name>faec9114-95cf-4d47-8f0e-d7d392bff188</name> - <entityField>PLACEOFUSE</entityField> - </neonGenericMultipleTableColumn> - </columns> - </genericMultipleViewTemplate> - </children> -</neonView> diff --git a/neonView/ExportTemplatePlaceOfUsePreview_view/ExportTemplatePlaceOfUsePreview_view.aod b/neonView/ExportTemplatePlaceOfUsePreview_view/ExportTemplatePlaceOfUsePreview_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..08b9078db3e9ac7ad5eb50bef25606c3a36a19a6 --- /dev/null +++ b/neonView/ExportTemplatePlaceOfUsePreview_view/ExportTemplatePlaceOfUsePreview_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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> + <name>ExportTemplatePlaceOfUsePreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>ExportTemplateDependencyPreviewCard</header> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>ExportTemplateDependencyPreviewCard</name> + <titleField>PLACEOFUSE</titleField> + </cardViewTemplate> + <genericViewTemplate> + <name>ExportTemplateDependencyPreviewGeneric</name> + <fields> + <entityFieldLink> + <name>a5946581-6806-499b-b402-bd2c06bb01d8</name> + <entityField>OBJECT_FILTER</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/ExportTemplatePreview_view/ExportTemplatePreview_view.aod b/neonView/ExportTemplatePreview_view/ExportTemplatePreview_view.aod index 4a0bbc8895e323d34c9c8f3a8ff7b770382651c5..04c2068b8cf4a454e73479479090dbf319318cfb 100644 --- a/neonView/ExportTemplatePreview_view/ExportTemplatePreview_view.aod +++ b/neonView/ExportTemplatePreview_view/ExportTemplatePreview_view.aod @@ -12,49 +12,24 @@ <cardViewTemplate> <name>card</name> <titleField>TITLE</titleField> - <subtitleField>ISOLANGUAGE</subtitleField> <entityField>#ENTITY</entityField> </cardViewTemplate> <favoriteViewTemplate> <name>Favorites</name> - <objectType>EXPORTTEMPLATE_OBJECTTYPE</objectType> + <objectType>exportTemplateObjectType</objectType> <rowId>#UID</rowId> <entityField>#ENTITY</entityField> <title>favorites</title> </favoriteViewTemplate> - <genericViewTemplate> - <name>generic</name> - <showDrawer v="true" /> - <drawerCaption>Details</drawerCaption> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>7666c443-e85c-43ce-bfc0-0541c2855f93</name> - <entityField>DESCRIPTION</entityField> - </entityFieldLink> - <entityFieldLink> - <name>50d494c5-268a-4991-a399-36ccd2083b37</name> - <entityField>SENTENCESEPARATOR</entityField> - </entityFieldLink> - <entityFieldLink> - <name>4894f791-3a6a-494c-a765-10cf4341035d</name> - <entityField>FIELDSEPARATOR</entityField> - </entityFieldLink> - <entityFieldLink> - <name>63ba6855-4109-424a-87a7-215921d9d794</name> - <entityField>FIELDDELIMITER</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> <neonViewReference> - <name>44ad5c03-ae3d-495f-b0ff-141a64e256e4</name> - <entityField>ExportTemplateFields</entityField> - <view>ExportTemplateFieldList_view</view> + <name>12c0fc60-6634-44d0-b0d8-811fa6f91280</name> + <entityField>#ENTITY</entityField> + <view>ExportTemplateDetail_view</view> </neonViewReference> <neonViewReference> - <name>97e15126-23f9-474d-8dec-8c9175214b92</name> - <entityField>ExportTemplateplaceOfUseCon</entityField> - <view>ExportTemplatePlaceOfUseList_view</view> + <name>9a555ec7-b777-4ace-821a-f849c0d87b73</name> + <entityField>ExportTemplateFieldsPreview</entityField> + <view>ExportTemplateFieldList_view</view> </neonViewReference> </children> </neonView> diff --git a/neonView/ExportTemplateSelectionEdit_view/ExportTemplateSelectionEdit_view.aod b/neonView/ExportTemplateSelectionEdit_view/ExportTemplateSelectionEdit_view.aod index 709d825158f14edab0ab418f8b1ed45b4ebcf352..c8a38d3a70239df08c4eb4f5180086a6d50d32fd 100644 --- a/neonView/ExportTemplateSelectionEdit_view/ExportTemplateSelectionEdit_view.aod +++ b/neonView/ExportTemplateSelectionEdit_view/ExportTemplateSelectionEdit_view.aod @@ -31,10 +31,18 @@ <name>35ff004c-98a7-43fe-8739-3e74adb30a1a</name> <entityField>EXPORTTEMPLATE_ID</entityField> </entityFieldLink> + <entityFieldLink> + <name>0db87299-5c4d-4365-97be-294a8a422da2</name> + <entityField>ISOLANGUAGE</entityField> + </entityFieldLink> <entityFieldLink> <name>afcb5cf1-7c78-4649-9178-1635226620ad</name> <entityField>FILENAME</entityField> </entityFieldLink> + <entityFieldLink> + <name>04231c92-8a5e-4b73-b9e6-b316865f443e</name> + <entityField>charset</entityField> + </entityFieldLink> </fields> </genericViewTemplate> <actionsViewTemplate> diff --git a/neonView/InboxEdit_view/InboxEdit_view.aod b/neonView/InboxEdit_view/InboxEdit_view.aod index 3dce41fc57d0757e7ab1ab86fc12bfb77f7a40db..5623b8664f1f313311b2d9afc3f8dbc1933cfa8d 100644 --- a/neonView/InboxEdit_view/InboxEdit_view.aod +++ b/neonView/InboxEdit_view/InboxEdit_view.aod @@ -40,10 +40,6 @@ <name>c6a43bc9-666b-4395-942b-0e5aeecfed89</name> <entityField>REOPENDELAY</entityField> </entityFieldLink> - <entityFieldLink> - <name>8dea443c-d327-484f-8a2b-0f1e2765105e</name> - <entityField>CLOSURE_DAYS</entityField> - </entityFieldLink> </fields> </genericViewTemplate> </children> diff --git a/neonView/InboxFilter_view/InboxFilter_view.aod b/neonView/InboxFilter_view/InboxFilter_view.aod index 401566d988a01a8255b1493cc54218c50102e86b..79c992653619e285899aed81ed66f754c4acbe02 100644 --- a/neonView/InboxFilter_view/InboxFilter_view.aod +++ b/neonView/InboxFilter_view/InboxFilter_view.aod @@ -34,6 +34,7 @@ <tableViewTemplate> <name>Table</name> <entityField>#ENTITY</entityField> + <favoriteActionGroup1>deleteActionGroup</favoriteActionGroup1> <columns> <neonTableColumn> <name>bcdbaede-e2df-4351-9df2-fd2cd30cfd8e</name> @@ -51,10 +52,6 @@ <name>f1378d7e-9187-4a52-8e73-64fa6d3047ca</name> <entityField>REOPENDELAY</entityField> </neonTableColumn> - <neonTableColumn> - <name>2fc3d43b-84a1-43c4-926b-b8c8951d5349</name> - <entityField>CLOSURE_DAYS</entityField> - </neonTableColumn> <neonTableColumn> <name>f7369cab-4379-4c23-96f0-2ec944896c5e</name> <entityField>STATUS</entityField> diff --git a/neonView/InboxPreview_view/InboxPreview_view.aod b/neonView/InboxPreview_view/InboxPreview_view.aod index d52c0e4d31dfbd4424ef1daff54f9dcdfcfb1a67..967049aa83399a3bafef0ebd68d708e86dff84ca 100644 --- a/neonView/InboxPreview_view/InboxPreview_view.aod +++ b/neonView/InboxPreview_view/InboxPreview_view.aod @@ -47,10 +47,6 @@ <name>afabc1a1-df95-441b-9afa-fe49c61a91f6</name> <entityField>ReopenDelayPreview</entityField> </entityFieldLink> - <entityFieldLink> - <name>2d4bad74-461a-4890-9bd8-f47b9fc1d705</name> - <entityField>Closure_daysPreview</entityField> - </entityFieldLink> </fields> </genericViewTemplate> </children> diff --git a/neonView/MSTTeamMemberMultiEdit_view/MSTTeamMemberMultiEdit_view.aod b/neonView/MSTTeamMemberMultiEdit_view/MSTTeamMemberMultiEdit_view.aod index d0b7385720860123a095e52453864b2d0b8fbc13..cb23e65ab0056e6fc01031d5e8b1c9b0292aea42 100644 --- a/neonView/MSTTeamMemberMultiEdit_view/MSTTeamMemberMultiEdit_view.aod +++ b/neonView/MSTTeamMemberMultiEdit_view/MSTTeamMemberMultiEdit_view.aod @@ -20,22 +20,6 @@ <name>467ab169-f46a-4036-9e5e-5c480bd947a6</name> <entityField>ROLE</entityField> </neonGenericMultipleTableColumn> - <neonGenericMultipleTableColumn> - <name>b85c25c8-09dd-4f9a-b0b4-31c0b8a8f12c</name> - <entityField>INVITE</entityField> - </neonGenericMultipleTableColumn> - <neonGenericMultipleTableColumn> - <name>82cdb323-6c1a-428f-a01e-e29da9f338ec</name> - <entityField>AZUREID</entityField> - </neonGenericMultipleTableColumn> - <neonGenericMultipleTableColumn> - <name>3f766fe4-119d-40df-b071-b7a578af2a71</name> - <entityField>AZUREUPN</entityField> - </neonGenericMultipleTableColumn> - <neonGenericMultipleTableColumn> - <name>0b3ac2a1-91ad-4761-9a1d-7231d5b55169</name> - <entityField>ISEXTERN</entityField> - </neonGenericMultipleTableColumn> </columns> </genericMultipleViewTemplate> </children> diff --git a/neonView/PersonEditServiceTicket_View/PersonEditServiceTicket_View.aod b/neonView/PersonEditServiceTicket_View/PersonEditServiceTicket_View.aod index 0ae9e8fad3bae097887df5d2bb364da3d0bccdef..6a4016ee43e0333bc490dbb74dc4a47bae9722f1 100644 --- a/neonView/PersonEditServiceTicket_View/PersonEditServiceTicket_View.aod +++ b/neonView/PersonEditServiceTicket_View/PersonEditServiceTicket_View.aod @@ -92,7 +92,7 @@ <neonViewReference> <name>dff4c15b-27f6-4c54-921a-d7bb8498a08f</name> <entityField>Serviceticket</entityField> - <view>SupportTicketEditQuickEntry_view</view> + <view>SupportTicketMultiEdit_view</view> </neonViewReference> </children> </neonView> diff --git a/neonView/SupportTicketEditQuickEntry_view/SupportTicketEditQuickEntry_view.aod b/neonView/SupportTicketEditQuickEntry_view/SupportTicketEditQuickEntry_view.aod deleted file mode 100644 index 2d2ee694f0f8f3d9a9d82592102c2ae518c834a6..0000000000000000000000000000000000000000 --- a/neonView/SupportTicketEditQuickEntry_view/SupportTicketEditQuickEntry_view.aod +++ /dev/null @@ -1,73 +0,0 @@ -<?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.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> - <name>SupportTicketEditQuickEntry_view</name> - <title>Service ticket</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>VAADIN:TICKET</icon> - <layout> - <boxLayout> - <name>layout</name> - <autoHeight v="true" /> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>SupportTicketGeneric</name> - <editMode v="true" /> - <showDrawer v="true" /> - <drawerCaption>Service ticket</drawerCaption> - <fixedDrawer v="true" /> - <hideEmptyFields v="false" /> - <fields> - <entityFieldLink> - <name>50583440-b40f-4d6e-a775-5541c94be5d5</name> - <entityField>ALTERNATIVE_EMAILADDR</entityField> - </entityFieldLink> - <entityFieldLink> - <name>d51b05bd-5f2e-4959-b9f3-5d9706585a51</name> - <entityField>ALTERNATIVE_PHONEADDR</entityField> - </entityFieldLink> - <entityFieldLink> - <name>d10b9c94-d222-417c-91a5-3f3e50dfe80e</name> - <entityField>SupportTicket_template</entityField> - </entityFieldLink> - <entityFieldLink> - <name>33027237-1177-4f8b-abe6-ea3d9d036077</name> - <entityField>INBOX_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ebce5913-6628-4a08-afb0-caea5d7c274f</name> - <entityField>TICKETCATEGORY</entityField> - </entityFieldLink> - <entityFieldLink> - <name>19d6d30f-4d11-490a-94f6-b930b3b0d6e9</name> - <entityField>TASK_SUBJECT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>1a7438bf-7690-470b-a69b-ca119ac64b59</name> - <entityField>TASK_DESCRIPTION</entityField> - </entityFieldLink> - <entityFieldLink> - <name>db509854-3041-4d77-9ec2-651842d1a9f1</name> - <entityField>TASK_MATURITY_DATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>3784edd5-03b8-47aa-a31f-ee95ef55d033</name> - <entityField>TASK_STATUS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>c52866d5-f6e6-42b9-9cdd-4eeb970fab18</name> - <entityField>TICKET_EDITOR_CONTACT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>15311428-d390-436c-8c44-92102ffa0431</name> - <entityField>TASK_PRIORITY</entityField> - </entityFieldLink> - <entityFieldLink> - <name>9debbeab-8a99-46fe-a736-b7074acc9e3a</name> - <entityField>MEDIUM</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - </children> -</neonView> diff --git a/neonView/SupportTicketFilter_view/SupportTicketFilter_view.aod b/neonView/SupportTicketFilter_view/SupportTicketFilter_view.aod index ce7e05c377004a8736ec1c6a45f2257fba71fb81..ab371d63c5e2f39a307788f0eb9904435a1bce72 100644 --- a/neonView/SupportTicketFilter_view/SupportTicketFilter_view.aod +++ b/neonView/SupportTicketFilter_view/SupportTicketFilter_view.aod @@ -55,6 +55,7 @@ <descriptionField>TASK_REQUESTOR_CONTACT_ID</descriptionField> <entityField>#ENTITY</entityField> <favoriteActionGroup1>FilterActionsGroup</favoriteActionGroup1> + <favoriteActionGroup2>observeActionGroup</favoriteActionGroup2> <linkedColumns> <element>TASK_SUBJECT</element> </linkedColumns> @@ -125,12 +126,14 @@ <additionalInfoField>CODE</additionalInfoField> <orderByDate v="true" /> <entityField>#ENTITY</entityField> - <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1> + <favoriteActionGroup1>FilterActionsGroup</favoriteActionGroup1> + <favoriteActionGroup2>observeActionGroup</favoriteActionGroup2> </timelineViewTemplate> <treeTableViewTemplate> <name>Treetable</name> <entityField>#ENTITY</entityField> - <favoriteActionGroup1>observeActionGroup</favoriteActionGroup1> + <favoriteActionGroup1>FilterActionsGroup</favoriteActionGroup1> + <favoriteActionGroup2>observeActionGroup</favoriteActionGroup2> <linkedColumns> <element>TASK_SUBJECT</element> </linkedColumns> diff --git a/neonView/SupportTicketMultiSelectEdit_view/SupportTicketMultiSelectEdit_view.aod b/neonView/SupportTicketMultiSelectEdit_view/SupportTicketMultiSelectEdit_view.aod index adc58ed6e5d95ad62cb45fc90842441aff4a356d..e9a9765dfaf1def090765e65fba9c87c4d088f27 100644 --- a/neonView/SupportTicketMultiSelectEdit_view/SupportTicketMultiSelectEdit_view.aod +++ b/neonView/SupportTicketMultiSelectEdit_view/SupportTicketMultiSelectEdit_view.aod @@ -18,6 +18,10 @@ <name>361b2337-0c41-4b0b-b156-c1f7ffeaaa79</name> <entityField>STATUS</entityField> </entityFieldLink> + <entityFieldLink> + <name>d2e6adfd-6c7d-4fdd-9fba-14574d6a6934</name> + <entityField>CONCLUSION</entityField> + </entityFieldLink> <entityFieldLink> <name>df94341d-8c4d-4de6-9681-cc5983eacf35</name> <entityField>CATEGORY</entityField> diff --git a/neonView/SupportTicketTemplateEdit_view/SupportTicketTemplateEdit_view.aod b/neonView/SupportTicketTemplateEdit_view/SupportTicketTemplateEdit_view.aod index cbf558764db0f8eb25689038bbb8af5b570027a6..56392a16b7bac3a4729d7d9d3be050411858aaf1 100644 --- a/neonView/SupportTicketTemplateEdit_view/SupportTicketTemplateEdit_view.aod +++ b/neonView/SupportTicketTemplateEdit_view/SupportTicketTemplateEdit_view.aod @@ -21,7 +21,7 @@ <entityField>NAME</entityField> </entityFieldLink> <entityFieldLink> - <name>e6f7252c-371d-46df-87eb-2254ea6aa6aa</name> + <name>9cffec22-cf83-4e72-9602-b5bce02def48</name> <entityField>TEMPLATENO</entityField> </entityFieldLink> <entityFieldLink> diff --git a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod index 63b1cb3ea967792f7d5d066a26efd6c88f0ac9ba..f6f3c7abce65917d179d87caeca557a7d7c52bba 100644 --- a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod +++ b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod @@ -47,26 +47,14 @@ <userdirectoryAlias>_____SYSTEMALIAS</userdirectoryAlias> <mailBridgeMailserver> <mailbridgeMailserver> - <name>a9af9881-a6e8-4aed-a895-ef4b87e37055</name> + <name>abfa63d1-a47e-41f6-a87d-138bf04adc1e</name> <enabled v="true" /> - <bridgeName>mailServerIMAP-null-a9af9881</bridgeName> + <bridgeName>Dev-Exchange</bridgeName> <serverName>mailServerIMAP</serverName> - <user>mailbridgeDev</user> - <intervall v="30000" /> - <bridgeMode v="1" /> - <flagMode v="2" /> - <process>mailbridge</process> - <errorProcess></errorProcess> - <attachmentHandling>ALL</attachmentHandling> - </mailbridgeMailserver> - <mailbridgeMailserver> - <name>37b3d4f3-ef30-4b7a-9980-7f79711b62ce</name> - <enabled v="true" /> - <bridgeName>mailServerIMAP-null-37b3d4f3</bridgeName> - <serverName>mailServerIMAP</serverName> - <user>mailbridgeQS</user> - <intervall v="30000" /> - <bridgeMode v="1" /> + <timeout v="20000" /> + <user>mailbridge</user> + <intervall v="5000" /> + <bridgeMode v="3" /> <flagMode v="2" /> <process>mailbridge</process> <errorProcess></errorProcess> diff --git a/process/ActiveDirectory_lib/process.js b/process/ActiveDirectory_lib/process.js index 0e476c6360bba056a7cff2c5039b7258a32ced10..47fea5741765c9eafc32db87f63cf4043181c109 100644 --- a/process/ActiveDirectory_lib/process.js +++ b/process/ActiveDirectory_lib/process.js @@ -439,9 +439,9 @@ ActiveDirectoryUtils._createInsertUpdateCommMixStatements = function (pDataSet, } //UPDATE - cond = newWhere("OBJECT_ROWID", pContactId) + cond = newWhere("COMMUNICATION.OBJECT_ROWID", pContactId) .and("COMMUNICATION.OBJECT_TYPE", "Contact") - .and(MEDIUM_ID, commMedium).toString(); + .and("COMMUNICATION.MEDIUM_ID", commMedium).toString(); //INSERT COMM, wenn initial nicht vorliegt. var isCommExists = false; @@ -467,8 +467,8 @@ ActiveDirectoryUtils._createInsertUpdateCommMixStatements = function (pDataSet, ActiveDirectoryUtils._setDataObject(pDataSet, "COMMUNICATION.MEDIUM_ID", commMedium); ActiveDirectoryUtils._setDataObject(pDataSet, "COMMUNICATION.ADDR", pDataSet[commType].VALUE); ActiveDirectoryUtils._setDataObject(pDataSet, "COMMUNICATION.ISSTANDARD", '1'); - ActiveDirectoryUtils._setDataObject(temporaryNewDataSet, "COMMUNICATION.OBJECT_ROWID", pDataSet["CONTACT.CONTACTID"].VALUE); - ActiveDirectoryUtils._setDataObject(temporaryNewDataSet, "COMMUNICATION.OBJECT_TYPE", "Contact"); + ActiveDirectoryUtils._setDataObject(pDataSet, "COMMUNICATION.OBJECT_ROWID", pContactId); + ActiveDirectoryUtils._setDataObject(pDataSet, "COMMUNICATION.OBJECT_TYPE", "Contact"); let tmpInsUpdC = ActiveDirectoryUtils._createInsertUpdateMixArray.call(this, pDataSet, "COMMUNICATION"); @@ -479,8 +479,8 @@ ActiveDirectoryUtils._createInsertUpdateCommMixStatements = function (pDataSet, ActiveDirectoryUtils._setDataObject(pDataSet, "COMMUNICATION.MEDIUM_ID", commMedium); ActiveDirectoryUtils._setDataObject(pDataSet, "COMMUNICATION.ADDR", pDataSet[commType].VALUE); ActiveDirectoryUtils._setDataObject(pDataSet, "COMMUNICATION.ISSTANDARD", '1'); - ActiveDirectoryUtils._setDataObject(temporaryNewDataSet, "COMMUNICATION.OBJECT_ROWID", pDataSet["CONTACT.CONTACTID"].VALUE); - ActiveDirectoryUtils._setDataObject(temporaryNewDataSet, "COMMUNICATION.OBJECT_TYPE", "Contact"); + ActiveDirectoryUtils._setDataObject(pDataSet, "COMMUNICATION.OBJECT_ROWID", pContactId); + ActiveDirectoryUtils._setDataObject(pDataSet, "COMMUNICATION.OBJECT_TYPE", "Contact"); let tmpInsUpdC = ActiveDirectoryUtils._createInsertUpdateMixArray.call(this, pDataSet, "COMMUNICATION", cond); if (tmpInsUpdC != null) sqlMixDataSet.push(tmpInsUpdC); diff --git a/process/AttributeRegistry_basic/process.js b/process/AttributeRegistry_basic/process.js index 030f4c7baaf7e322a0cfd21f278075aa736f6fd0..783d995032790ef2c8e196898ad03df977b1294b 100644 --- a/process/AttributeRegistry_basic/process.js +++ b/process/AttributeRegistry_basic/process.js @@ -28,4 +28,5 @@ $AttributeRegistry.visitPlanFrequency$quarterly = function(){return "22722783-aa $AttributeRegistry.visitPlanFrequency$yearly = function(){return "a9575350-c1e7-4f96-b0ed-a8f52cc8b123";}; $AttributeRegistry.visitPlanPointOfContact = function(){return "7d78320a-31c6-4c24-992a-a583f47caeb5";}; -$AttributeRegistry.digitalAdvertisingMaterial = function(){return "5a596342-679a-4c55-b368-fad0bd817aa0";}; \ No newline at end of file +$AttributeRegistry.digitalAdvertisingMaterial = function(){return "5a596342-679a-4c55-b368-fad0bd817aa0";}; +$AttributeRegistry.mstTeam = function(){return "9a93f671-fa9e-4783-8ae8-6cef76b3f62f";}; diff --git a/process/Bulkmail_lib/process.js b/process/Bulkmail_lib/process.js index 01a0f46955c0e4a6d595f618bc57d77e84c92949..362e2b1707d3cc0163474fb9684551b826e51492 100644 --- a/process/Bulkmail_lib/process.js +++ b/process/Bulkmail_lib/process.js @@ -277,30 +277,47 @@ BulkMailUtils.sendBulkMail = function (pBulkMailId, pIsTestRun, pUser) ActivityUtils.insertNewActivity(activityData, bulkMailLink.concat(contactLink)); } }); - - newWhereIfSet("BULKMAILRECIPIENT.BULKMAILRECIPIENTID", successIds, SqlBuilder.IN()) - .updateFields({ - "STATUS": $KeywordRegistry.bulkMailRecipientStatus$sent(), - "SENTDATE": sentDate - }); - - newWhereIfSet("BULKMAILRECIPIENT.BULKMAILRECIPIENTID", failedIds, SqlBuilder.IN()) - .updateFields({ - "STATUS": $KeywordRegistry.bulkMailRecipientStatus$failed(), - "SENTDATE": sentDate - }); - - newWhereIfSet("BULKMAILRECIPIENT.BULKMAILRECIPIENTID", bouncedSoftIds, SqlBuilder.IN()) - .updateFields({ - "STATUS": $KeywordRegistry.bulkMailRecipientStatus$softBounce(), - "SENTDATE": sentDate - }); - newWhereIfSet("BULKMAILRECIPIENT.BULKMAILRECIPIENTID", bouncedHardIds, SqlBuilder.IN()) - .updateFields({ - "STATUS": $KeywordRegistry.bulkMailRecipientStatus$hardBounce(), - "SENTDATE": sentDate - }); + var updates = []; + + updates = updates.concat(successIds.map(function (sucessId) + { + return newWhere("BULKMAILRECIPIENT.BULKMAILRECIPIENTID",successId) + .buildUpdateStatement({ + "STATUS": $KeywordRegistry.bulkMailRecipientStatus$sent(), + "SENTDATE": sentDate + }); + })); + + updates = updates.concat(failedIds.map(function (failedId) + { + return newWhere("BULKMAILRECIPIENT.BULKMAILRECIPIENTID",failedId) + .buildUpdateStatement({ + "STATUS": $KeywordRegistry.bulkMailRecipientStatus$failed(), + "SENTDATE": sentDate + }); + })); + + updates = updates.concat(bouncedSoftIds.map(function (bouncedSoftId) + { + return newWhere("BULKMAILRECIPIENT.BULKMAILRECIPIENTID",bouncedSoftId) + .buildUpdateStatement({ + "STATUS": $KeywordRegistry.bulkMailRecipientStatus$softBounce(), + "SENTDATE": sentDate + }); + })); + + updates = updates.concat(bouncedHardIds.map(function (bouncedHardId) + { + return newWhere("BULKMAILRECIPIENT.BULKMAILRECIPIENTID",bouncedHardId) + .buildUpdateStatement({ + "STATUS": $KeywordRegistry.bulkMailRecipientStatus$hardBounce(), + "SENTDATE": sentDate + }); + })); + + db.updates(updates); + newWhere("MAIL_RUN.MAIL_RUNID", mailrunId) .updateFields({ diff --git a/process/ChecklistEntryRegistry_basic/process.js b/process/ChecklistEntryRegistry_basic/process.js index 14505ec30942126b83ff8b217a53971025fcddf9..fafe61a440ea30f7369d32db0a15094d9542d070 100644 --- a/process/ChecklistEntryRegistry_basic/process.js +++ b/process/ChecklistEntryRegistry_basic/process.js @@ -1,3 +1,6 @@ +import("system.db"); +import("system.vars"); +import("ClassificationUpdate_lib"); import("Context_lib"); import("Communication_lib"); import("Contact_lib"); @@ -208,17 +211,13 @@ $ChecklistEntryRegistry.salesprojectClassificationFields = function(){ context: ["Salesproject"], title: translate.text("Classification fields"), verifierFn: function(pSalesprojectId){ - var res = false; - var classificationRows = $ChecklistEntryRegistry._getRows(null, "Classification_entity", ["VALUE"], [["ObjectType_param", "Salesproject"], ["ObjectRowid_param", pSalesprojectId]], "Classifications"); - if(classificationRows.length > 0) + var res = true; + if(Utils.isNotNullOrEmptyString(pSalesprojectId) && (!vars.exists("IgnoreOrderBy_param") || (vars.exists("IgnoreOrderBy_param") && !vars.get("IgnoreOrderBy_param")))) { - res = true - for (let i = 0; i < classificationRows.length; i++) { - if(classificationRows[i] == "" || classificationRows[i] == null || classificationRows[i] == undefined) - { - res = false; - break; - } + var classificationData = ClassificationUtils.executeUpdating(pSalesprojectId, "Salesproject"); + if(classificationData && classificationData["emtpyFields"] && classificationData["emtpyFields"].length != 0) + { + res = false; } } return res; @@ -614,7 +613,8 @@ $ChecklistEntryRegistry.organisationDefaultPhone = function(){ context: ["Organisation"], title: translate.text("Default phone"), verifierFn: function(pContactId){ - var phoneNumber = CommUtil.getStandardPhone(pContactId); + var phoneNumber = CommUtil.getStandardSubSqlPhone(pContactId, "CONTACT"); + phoneNumber = db.cell(phoneNumber); if(phoneNumber) { return true; diff --git a/process/ClassificationUpdate_lib/process.js b/process/ClassificationUpdate_lib/process.js index e9636d4bd9950f968dd9b007e64d2ca012a33eaf..73c181e1f7a1401cead2f88a95e8671503e98766 100644 --- a/process/ClassificationUpdate_lib/process.js +++ b/process/ClassificationUpdate_lib/process.js @@ -204,7 +204,8 @@ ClassificationUpdateHelper._searchIndicatorObj = function(pClassificationTypeId, * objectRowId we want to show the classifications for<br> * * -* @return {String} <p> stringified contentProcessArray<br> +* +* @return {Object} <p> {"emtpyFields": stringifiedContentProcessArray, "emtpyFields" ArrayWithAllFieldsWithoutValue<br> */ ClassificationUpdateHelper._formatOutputForDisplayingValues = function(pReturn, pUid) { @@ -272,8 +273,13 @@ ClassificationUpdateHelper._formatOutputForDisplayingValues = function(pReturn, var groupDisplayObj = {};//helperObj to store the group display value var position = 0; + var emptyFields = []; for (let i = 0; i < contentProcessArray.length; i++) { + if(contentProcessArray[i][5] == "-")//value is empty + { + emptyFields.push(contentProcessArray[i][4])//push fieldname + } if (contentProcessArray[i][2] && contentProcessArray[i][2] != "")//group { groupDisplayObj[contentProcessArray[i][1]] = ClassificationUtils.formatDisplaySummaryForGroup(groupResultObj[contentProcessArray[i][1]]["points"], groupResultObj[contentProcessArray[i][1]]["maxPoints"], contentProcessArray[i][2], classificationString.substring(position, position + 1)) @@ -287,7 +293,8 @@ ClassificationUpdateHelper._formatOutputForDisplayingValues = function(pReturn, } } - return JSON.stringify(contentProcessArray); + return {"outputValue": JSON.stringify(contentProcessArray) + ,"emtpyFields": emptyFields}; }; /** @@ -1033,6 +1040,11 @@ ClassificationUpdateHelper._buildFilteredRecsObject = function(pClassificationTy .fields(pFilterFields) .addParameter("IgnoreOrderBy_param", true); + if(currentObjectType == "Salesproject") + { + config.provider("NoPhaseRequirementLoading"); + } + var rows = []; if(pSingleRefreshRowId) { @@ -1855,6 +1867,12 @@ ClassificationUpdateHelper._updateOutdatedDatasets = function(pClassificationObj .ignorePermissions(true) .entity(ContextUtils.getEntity(objectTypes[currentObjectType])) .addParameter("IgnoreOrderBy_param", true); + + if(objectTypes[currentObjectType] == "Salesproject") + { + objectValuesLoadConfig.provider("NoPhaseRequirementLoading"); + } + if (objectRowIdArray && !pSingleRefreshRowId)//objectRowIdArray is already paged { objectValuesLoadConfig = objectValuesLoadConfig.uids(objectRowIdArray); diff --git a/process/Communication_lib/process.js b/process/Communication_lib/process.js index d20360d67262c6e3889eb0d12b8d53badad42600..8a99351a66231aafc8321312180c8c9cf4372af9 100644 --- a/process/Communication_lib/process.js +++ b/process/Communication_lib/process.js @@ -313,20 +313,6 @@ CommUtil.getMediumAddrSubSqlByKey = function(pMediumKey, pContactField, pObjectT return selectAddr.toString(); } -/** - * Returns the standard number of a PHONE-COMMUNICATION.<br> - * - * @param {String} pContactId <p> - * The contact id.<br> - * @return {String} <p> - * Phone number. If there is no phone number, an empty string is returned.<br> - */ -CommUtil.getStandardPhone = function (pContactId) -{ - var query = CommUtil.getStandardSubSqlPhone(newWhere("COMMUNICATION.CONTACT_ID", pContactId)); - return db.cell(query); -} - /** * Provides static methods for validation of communication data.<br> * <b>Do not create an instance of this!</b> diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js index 224b5a77583e0cbc17257477e700a4e99b48ed89..e7d67c7ed86b1e65d179e54ba6dc82ea7a7d741b 100644 --- a/process/Context_lib/process.js +++ b/process/Context_lib/process.js @@ -1,3 +1,4 @@ +import("JditoFilter_lib"); import("system.logging"); import("Util_lib"); import("system.entities"); @@ -185,11 +186,11 @@ ContextUtils.getContextConsumer = function(pContextId) * @param {String} pEntity The entity name you want to load the title for * @param {String} pUid the uid for which to load the title * @param {String} [pProvider] providername when instead of the default provider another provider shall be used - * @param {String} [pParameter] parameter you want to set (to avoid loading specific things when getting the contentTitle) - * + * @param {String} [pParams] parameter object + * @return the #CONTENTTITLE or "" */ -ContextUtils.loadContentTitle = function(pEntity, pUid, pProvider, pParameter) +ContextUtils.loadContentTitle = function(pEntity, pUid, pProvider, pParams) { if (!pUid) return ""; @@ -203,9 +204,12 @@ ContextUtils.loadContentTitle = function(pEntity, pUid, pProvider, pParameter) { conf.provider(pProvider); } - if (pParameter && pEntity == "Salesproject_entity") + if(pParams) { - conf.addParameter(pParameter, true); + for(var p in pParams) + { + conf.addParameter(p, pParams[p]); + } } var rows = entities.getRows(conf); @@ -376,13 +380,14 @@ ContextUtils._contextDataMapping = function(pContext) * * @param {String} pContextId the name of the context * @param {String} pRowId Uid of certain Context - * @param {String} [pParameter] parameter you want to set (to avoid loading specific things when getting the contentTitle) + * @param {String} pProvider providername when instead of the default provider another provider shall be used + * @param {String} pParams parameter object * * @return {String} The #CONTENTTITLE */ -ContextUtils.getTitleByContext = function(pContextId, pRowId, pParameter) +ContextUtils.getTitleByContext = function(pContextId, pRowId, pProvider, pParams) { - return ContextUtils.loadContentTitle(ContextUtils.getEntity(pContextId), pRowId, null, pParameter); + return ContextUtils.loadContentTitle(ContextUtils.getEntity(pContextId), pRowId, pProvider, pParams); } diff --git a/process/Dependency_lib/process.js b/process/Dependency_lib/process.js index 0a46b676d5fd6268abaac897730ab76ce7e6b48d..efe81c43ef8249475a569c9732b3fe96a3149a33 100644 --- a/process/Dependency_lib/process.js +++ b/process/Dependency_lib/process.js @@ -1,3 +1,4 @@ +import("Util_lib"); import("Sql_lib"); import("system.favorite"); @@ -16,10 +17,17 @@ Dependency.defaultFunctionForField = function (pTableField) return function (pNewData, pOldData) { let res = []; - if (pNewData[pTableField]) + if (!Utils.isNullOrEmpty(pNewData) + && Utils.isNotNullOrEmptyString(pNewData[pTableField])) + { res.push(pNewData[pTableField]) - if (pOldData[pTableField] && pOldData[pTableField] != pNewData[pTableField]) + } + if (!Utils.isNullOrEmpty(pOldData) + && Utils.isNotNullOrEmptyString(pOldData[pTableField]) + && pOldData[pTableField] != pNewData[pTableField]) + { res.push(pOldData[pTableField]) + } return res; }; } @@ -55,7 +63,10 @@ Dependency.defaultFunctionForFields = function (pTableFields) * @param {String} [pDataTable] The Tablename of the UID Field of the Entity. Is only need for the DB-Recordcontainer. * @param {String} [pSourceField] The Field which one contains the UID of the dependent entity in the relation rable. * - * @example "Person_entity": { "Activity_entity" : { "options" : { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CONTACTID", "Person", "CONTACT", "ACTIVITY_ID")}} + * @example "Person_entity": +{ "Activity_entity" : +{ "options" : +{ "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CONTACTID", "Person", "CONTACT", "ACTIVITY_ID")}} * * @return {function} function (pNewData, pOldData) {...} */ @@ -73,6 +84,8 @@ Dependency.defaultFunctionForRelation = function (pRelationTable, pRelationField relationFieldValue = pNewData[pDataTable + "." + pDataField]; } + relationFieldValue = relationFieldValue || pNewData[pDataField]; + return newSelect(pRelationTable + "." + (pSourceField || "OBJECT_ROWID")) .from(pRelationTable) .groupBy(pRelationTable + "." + (pSourceField || "OBJECT_ROWID")) @@ -123,117 +136,214 @@ Dependency.defaultFunctionForFavorites = function (pTableField, pContext) * <br> * The mapping is structured as follows: <br> * - * @example { "Entity_entity" : { "Dependency_entity": { "options" : { "option" : true}, "getUIDsfn" : function (pNewData, pOldData) {return //the IDs of the EntityField } } } } + * @example { "Entity_entity" : +{ "Dependency_entity": +{ "options" : +{ "option" : true}, "getUIDsfn" : function (pNewData, pOldData) {return //the IDs of the EntityField } } } } * * @return {Object} */ Dependency.mapping = function () { return { - "Person_entity": { - "Activity_entity" : { - "options" : { + "BulkMail_entity" : + { + "BulkMailRecipient_entity" : + { + "options" : + { + "isExportable" : true, + "isObservable" : false + }, + "getUIDsfn" : Dependency.defaultFunctionForRelation("BULKMAILRECIPIENT", "BULKMAIL_ID", "BULKMAILID", null, "BULKMAIL", "BULKMAILRECIPIENTID"), + "fieldsToLoad" : ["BULKMAILID"] + } + }, + "BulkMailRecipient_entity" : + { + "Person_entity" : + { + "options" : + { + "isExportable" : true, + "isObservable" : false + }, + "getUIDsfn" : Dependency.defaultFunctionForField("CONTACT_ID"), + "fieldsToLoad" : ["CONTACT_ID"] + } + }, + "Person_entity": + { + "Activity_entity" : + { + "options" : + { "isObservable" : true, "isOwnNotified" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CONTACTID", "Person", "CONTACT", "ACTIVITY_ID") }, - "Task_entity" : { - "options" : { + "Task_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CONTACTID", "Person", "CONTACT", "TASK_ID") }, - "Favorite_entity" : { - "options" : { + "Favorite_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFavorites("CONTACT.CONTACTID", "Person") + }, + "Address_entity" : + { + "options" : + { + "isExportable" : true, + "isObservable" : false + }, + "getUIDsfn" : Dependency.defaultFunctionForRelation("ADDRESS", "CONTACT_ID", "CONTACTID", null, "CONTACT", "ADDRESSID"), + "fieldsToLoad" : ["CONTACTID"] } }, - "PrivatePerson_entity": { - "Activity_entity" : { - "options" : { + "PrivatePerson_entity": + { + "Activity_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "PERSONID", "PrivatePerson", "PERSON", "ACTIVITY_ID") }, - "Task_entity" : { - "options" : { + "Task_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "PERSONID", "PrivatePerson", "PERSON", "TASK_ID") } }, - "Organisation_entity": { - "Activity_entity" : { - "options" : { + "Organisation_entity": + { + "Activity_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CONTACTID", "Organisation", "CONTACT", "ACTIVITY_ID") }, - "Task_entity" : { - "options" : { + "Task_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CONTACTID", "Organisation", "CONTACT", "TASK_ID") }, - "Favorite_entity" : { - "options" : { + "Favorite_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFavorites("CONTACT.CONTACTID", "Organisation") + }, + "Address_entity" : + { + "options" : + { + "isExportable" : true, + "isObservable" : false + }, + "getUIDsfn" : Dependency.defaultFunctionForRelation("ADDRESS", "CONTACT_ID", "CONTACTID", null, "CONTACT", "ADDRESSID"), + "fieldsToLoad" : ["CONTACTID"] + }, + "Offer_entity" : + { + "options" : + { + "isExportable" : true, + "isObservable" : false + }, + "getUIDsfn" : Dependency.defaultFunctionForRelation("OFFER", "CONTACT_ID", "CONTACTID", null, "CONTACT", "OFFERID"), + "fieldsToLoad" : ["CONTACTID"] } }, - "Salesproject_entity": { - "Activity_entity" : { - "options" : { + "Salesproject_entity": + { + "Activity_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "SALESPROJECTID", "Salesproject", "SALESPROJECT", "ACTIVITY_ID") }, - "Task_entity" : { - "options" : { + "Task_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "SALESPROJECTID", "Salesproject", "SALESPROJECT", "TASK_ID") }, - "Favorite_entity" : { - "options" : { + "Favorite_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFavorites("SALESPROJECT.SALESPROJECTID", "Salesproject") } }, - "KnowledgeManagement_entity": { - "Favorite_entity" : { - "options" : { + "KnowledgeManagement_entity": + { + "Favorite_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFavorites("KNOWLEDGEMANAGEMENT.KNOWLEDGEMANAGEMENTID", "KnowledgeManagement") } }, - "ExportTemplate_entity": { - "Favorite_entity" : { - "options" : { + "ExportTemplate_entity": + { + "Favorite_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFavorites("EXPORTTEMPLATE.EXPORTTEMPLATEID", "ExportTemplate") } }, - "Order_entity": { - "Activity_entity" : { - "options" : { + "Order_entity": + { + "Activity_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "SALESORDERID", "Order", "SALESORDER", "ACTIVITY_ID") }, - "Organisation_entity" : { - "options" : { + "Organisation_entity" : + { + "options" : + { "isObservable" : true }, - "getUIDsfn" : function (pRowData, pChangedData) { + "getUIDsfn" : function (pRowData, pChangedData) + { var tableField = "SALESORDER.CONTACT_ID"; var res = []; if (pRowData[tableField]) @@ -243,481 +353,692 @@ Dependency.mapping = function () return res; } }, - "Task_entity" : { - "options" : { + "Task_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "SALESORDERID", "Order", "SALESORDER", "TASK_ID") }, - "Favorite_entity" : { - "options" : { + "Favorite_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFavorites("SALESORDER.SALESORDERID", "Order") } }, - "Contract_entity": { - "Activity_entity" : { - "options" : { + "Contract_entity": + { + "Activity_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CONTRACTID", "Contract", "CONTRACT", "ACTIVITY_ID") }, - "Task_entity" : { - "options" : { + "Task_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CONTRACTID", "Contract", "CONTRACT", "TASK_ID") }, - "Favorite_entity" : { - "options" : { + "Favorite_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFavorites("CONTRACT.CONTRACTID", "Contract") } }, - "Product_entity": { - "Activity_entity" : { - "options" : { + "Product_entity": + { + "Activity_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "PRODUCTID", "Product", "PRODUCT", "ACTIVITY_ID") }, - "Task_entity" : { - "options" : { + "Task_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "PRODUCTID", "Product", "PRODUCT", "TASK_ID") }, - "Favorite_entity" : { - "options" : { + "Favorite_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFavorites("PRODUCT.PRODUCTID", "Product") } }, - "Campaign_entity": { - "Activity_entity" : { - "options" : { + "Campaign_entity": + { + "Activity_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CAMPAIGNID", "Campaign", "CAMPAIGN", "ACTIVITY_ID") }, - "Task_entity" : { - "options" : { + "CampaignStep_entity" : + { + "options" : + { + "isExportable" : true, + "isObservable" : false + }, + "getUIDsfn" : Dependency.defaultFunctionForRelation("CAMPAIGNSTEP", "CAMPAIGN_ID", "CAMPAIGNID", null, "CAMPAIGN", "CAMPAIGNSTEPID"), + "fieldsToLoad" : ["CAMPAIGNID"] + }, + "CampaignParticipant_entity" : + { + "options" : + { + "isExportable" : true, + "isObservable" : false + }, + "getUIDsfn" : Dependency.defaultFunctionForRelation("CAMPAIGNPARTICIPANT", "CAMPAIGN_ID", "CAMPAIGNID", null, "CAMPAIGN", "CAMPAIGNPARTICIPANTID"), + "fieldsToLoad" : ["CAMPAIGNID"] + }, + "Task_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CAMPAIGNID", "Campaign", "CAMPAIGN", "TASK_ID") }, - "Favorite_entity" : { - "options" : { + "Favorite_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFavorites("CAMPAIGN.CAMPAIGNID", "Campaign") } }, - "SupportTicket_entity" : { - "Activity_entity" : { - "options" : { + "SupportTicket_entity" : + { + "Activity_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "TICKETID", "SupportTicket", "TICKET", "ACTIVITY_ID") }, - "Task_entity" : { - "options" : { + "Task_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "TICKETID", "SupportTicket", "TICKET", "TASK_ID") }, - "Favorite_entity" : { - "options" : { + "Favorite_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFavorites("TASK.TASKID", "SupportTicket") } }, - "Activity_entity" : { - "Person_entity" : { - "options" : { + "CampaignParticipant_entity" : + { + "Person_entity" : + { + "options" : + { + "isExportable" : true, + "isObservable" : false + }, + "getUIDsfn" : Dependency.defaultFunctionForField("PERSON_CONTACT_ID"), + "fieldsToLoad" : ["PERSON_CONTACT_ID"] + } + }, + "Activity_entity" : + { + "Person_entity" : + { + "options" : + { "isObservable" : true, "isOwnNotified" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Person", "ACTIVITY") }, - "Organisation_entity" : { - "options" : { + "Organisation_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Organisation", "ACTIVITY") }, - "Salesproject_entity" : { - "options" : { + "Salesproject_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Salesproject", "ACTIVITY") }, - "Offer_entity" : { - "options" : { + "Offer_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Offer", "ACTIVITY") }, - "Order_entity" : { - "options" : { + "Order_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Order", "ACTIVITY") }, - "Contract_entity" : { - "options" : { + "Contract_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Contract", "ACTIVITY") }, - "Product_entity" : { - "options" : { + "Product_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Product", "ACTIVITY") }, - "Campaign_entity" : { - "options" : { + "Campaign_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "ACTIVITY_ID", "ACTIVITYID", "Campaign", "ACTIVITY") } }, - "Address_entity": { - "Organisation_entity" : { - "options" : { + "Address_entity": + { + "Organisation_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("ADDRESS.CONTACT_ID") }, - "Person_entity" : { - "options" : { + "Person_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("ADDRESS.CONTACT_ID") } }, - "AttributeRelation_entity" : { - "Person_entity" : { - "options" : { + "AttributeRelation_entity" : + { + "Person_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Person") }, - "Organisation_entity" : { - "options" : { + "Organisation_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Organisation") }, - "Activity_entity" : { - "options" : { + "Activity_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Activity") }, - "Salesproject_entity" : { - "options" : { + "Salesproject_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Salesproject") }, - "Product_entity" : { - "options" : { + "Product_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Product") }, - "Employee_entity" : { - "options" : { + "Employee_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "Employee") }, - "SupportTicket_entity" : { - "options" : { + "SupportTicket_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("AB_ATTRIBUTERELATION", "AB_ATTRIBUTERELATIONID", "AB_ATTRIBUTERELATIONID", "SupportTicket") } }, - "Communication_entity": { - "Person_entity" : { - "options" : { + "Communication_entity": + { + "Person_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("COMMUNICATION.OBJECT_ROWID") }, - "Organisation_entity" : { - "options" : { + "Organisation_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("COMMUNICATION.OBJECT_ROWID") } }, - "CommRestriction_Entity" : { - "Person_entity" : { - "options" : { + "CommRestriction_Entity" : + { + "Person_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("COMMRESTRICTION.CONTACT_ID") }, - "Organisation_entity" : { - "options" : { + "Organisation_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("COMMRESTRICTION.CONTACT_ID") } }, - "Contact_entity" : { - "Person_entity" : { - "options" : { + "Contact_entity" : + { + "Person_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("CONTACT.CONTACTID") } }, - "Document_entity" : { - "Person_entity" : { - "options" : { + "Document_entity" : + { + "Person_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value") }, - "Organisation_entity" : { - "options" : { + "Organisation_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value") }, - "Activity_entity" : { - "options" : { + "Activity_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value") }, - "Task_entity" : { - "options" : { + "Task_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value") }, - "Salesproject_entity" : { - "options" : { + "Salesproject_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value") }, - "Offer_entity" : { - "options" : { + "Offer_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value") }, - "Order_entity" : { - "options" : { + "Order_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value") }, - "Contract_entity" : { - "options" : { + "Contract_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value") }, - "Product_entity" : { - "options" : { + "Product_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value") }, - "Employee_entity" : { - "options" : { + "Employee_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value") }, - "SupportTicket_entity" : { - "options" : { + "SupportTicket_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value") }, - "Campaign_entity" : { - "options" : { + "Campaign_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("assignmentRowID.value") } }, - "ObjectTree_entity": { - "Person_entity" : { - "options" : { + "ObjectTree_entity": + { + "Person_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFields(["PARENT_ID.value", "TARGET_ID.value"]) }, - "Organisation_entity" : { - "options" : { + "Organisation_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFields(["PARENT_ID.value", "TARGET_ID.value"]) } }, - "Member_entity" : { - "Campaign_entity" : { - "options" : { + "Member_entity" : + { + "Campaign_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("OBJECTMEMBER.OBJECT_ROWID") // Evtl einschränken auf Type }, - "Salesproject_entity" : { - "options" : { + "Salesproject_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("OBJECTMEMBER.OBJECT_ROWID") // Evtl einschränken auf Type } }, - "SalesprojectSource_entity" : { - "Salesproject_entity" : { - "options" : { + "SalesprojectSource_entity" : + { + "Salesproject_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("SALESPROJECT_TOUCHPOINT.SALESPROJECT_ID") } }, - "Forecast_entity" : { - "Salesproject_entity" : { - "options" : { + "Forecast_entity" : + { + "Salesproject_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("FORECAST.OBJECT_ROWID") // Evtl einschränken auf Type } }, - "Offer_entity" : { - "Salesproject_entity" : { - "options" : { + "Offer_entity" : + { + "Salesproject_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("OFFER.OBJECT_ROWID") // Evtl einschränken auf Type }, - "Activity_entity" : { - "options" : { + "Activity_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "OFFERID", "Offer", "OFFER", "ACTIVITY_ID") }, - "Task_entity" : { - "options" : { + "Task_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "OFFERID", "Offer", "OFFER", "TASK_ID") }, - "Favorite_entity" : { - "options" : { + "Favorite_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFavorites("OFFER.OFFERID", "Offer") + }, + "Offeritem_entity" : + { + "options" : + { + "isExportable" : true, + "isObservable" : false + }, + "getUIDsfn" : Dependency.defaultFunctionForRelation("OFFERITEM", "OFFER_ID", "OFFERID", null, "OFFER", "OFFERITEMID"), + "fieldsToLoad" : ["OFFERID"] } }, - "DocumentTemplate_entity": { - "Favorite_entity" : { - "options" : { + "DocumentTemplate_entity": + { + "Favorite_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFavorites("DOCUMENTTEMPLATE.DOCUMENTTEMPLATEID", "DocumentTemplate") } }, - "WorkflowDefinition_entity": { - "Favorite_entity" : { - "options" : { + "WorkflowDefinition_entity": + { + "Favorite_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFavorites("UID.value", "WorkflowDefinition") } }, - "Competition_entity" : { - "Salesproject_entity" : { - "options" : { + "Competition_entity" : + { + "Salesproject_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("COMPETITION.OBJECT_ROWID") // Evtl einschränken auf Type } }, - "Offeritem_entity" : { - "Offer_entity" : { - "options" : { + "Offeritem_entity" : + { + "Offer_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("OFFERITEM.OFFER_ID") } }, - "Orderitem_entity" : { - "Order_entity" : { - "options" : { + "Orderitem_entity" : + { + "Order_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("SALESORDERITEM.SALESORDER_ID") } }, - "Productprice_entity" : { - "Product_entity" : { - "options" : { + "Productprice_entity" : + { + "Product_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("PRODUCTPRICE.PRODUCT_ID") }, - "Favorite_entity" : { - "options" : { + "Favorite_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForFavorites("PRODUCTPRICE.PRODUCTPRICEID", "Productprice") } }, - "Prod2prod_entity" : { - "Product_entity" : { - "options" : { + "Prod2prod_entity" : + { + "Product_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("SOURCE_ID.value") } }, - "CampaignCost_entity" : { - "Campaign_entity" : { - "options" : { + "CampaignCost_entity" : + { + "Campaign_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("CAMPAIGNCOST.CAMPAIGN_ID") } }, - "CampaignStep_entity" : { - "Campaign_entity" : { - "options" : { + "CampaignStep_entity" : + { + "Campaign_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("CAMPAIGNSTEP.CAMPAIGN_ID") }, - "Activity_entity" : { - "options" : { + "Activity_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("ACTIVITYLINK", "OBJECT_ROWID", "CAMPAIGNSTEPID", "CampaignStep", "CAMPAIGNSTEP") }, - "Task_entity" : { - "options" : { + "Task_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForRelation("TASKLINK", "OBJECT_ROWID", "CAMPAIGNSTEPID", "CampaignStep", "CAMPAIGNSTEP") } }, - "Lead_entity" : { - "Leadimport_entity" : { - "options" : { + "Lead_entity" : + { + "Leadimport_entity" : + { + "options" : + { "isObservable" : true }, "getUIDsfn" : Dependency.defaultFunctionForField("LEADS.LEADIMPORT_ID") diff --git a/process/ExportTemplate_lib/process.js b/process/ExportTemplate_lib/process.js index 07ed68ab7557f351d24df31578bb97187cc7544d..0dc59363f125d7bd5cc256acfefe337008c86b34 100644 --- a/process/ExportTemplate_lib/process.js +++ b/process/ExportTemplate_lib/process.js @@ -1,3 +1,7 @@ +import("system.project"); +import("Dependency_lib"); +import("Context_lib"); +import("system.entities"); import("system.neon"); import("system.vars"); import("Address_lib"); @@ -9,6 +13,7 @@ import("system.datetime"); import("system.text"); import("system.translate"); import("system.util"); +import("Util_lib"); /** * Methods used for ExportTemplates and exporting Fieldvalues using those templates @@ -23,70 +28,293 @@ function ExportTemplateUtils() {} * * @param {String} pExportTemplateId export template id * @param {Array} pSelection Contacts/Organisations you want to export (either via selecion by filterconditions) - * @param {String} pComingFrom source from where you started (e.g. "PERSON", "ORGANISATION" ) * @param {String} pFilename (opt.) name of the exported file (if left blank -> "templateTitle_dd.MM.yyyy.HH:mm:ss") + * @param {String} pCharset the charset of the exported base64-encoded CSV * * @return {Object} {content: base64-encoded CSV; * filename: filename} - * */ -ExportTemplateUtils.buildExport = function (pExportTemplateId, pSelection, pComingFrom, pFilename) +ExportTemplateUtils.buildExport = function (pExportTemplateId, pSelection, pFilename, pCharset) { //Gets all the relevant data from the chosen template - var templateId = pExportTemplateId; - var templateData = ExportTemplateUtils.getTemplateData(templateId); + var templateData = ExportTemplateUtils.getTemplateData(pExportTemplateId); var templateTitle = templateData[0]; var language = templateData[1]; var sentenceSeparator = ExportTemplateUtils.getSentenceSeparator(templateData[2]); var fieldSeparator = ExportTemplateUtils.getFieldSeparator(templateData[3]); var fieldDeLimiter = ExportTemplateUtils.getFieldDeLimiter(templateData[4]); var filename = pFilename; - var fields = ExportTemplateUtils.getTemplateFields(templateId); - var comingFrom = pComingFrom; var selection = pSelection; - var filteredIdcondition; var csvTable; - var fieldtitles = []; if(!selection.includes("{", 0)) //checks if data is selected { selection = []; selection = JSON.parse(pSelection); //makes an array of the ContactIds/OrganisationIds of the selected data - } + } - if(filename == null || filename == undefined || filename.trim() == "") //if the user didn't choose a filename => generate one automatically + if(Utils.isNullOrEmptyString(filename))//if the user didn't choose a filename => generate one automatically + { filename = ExportTemplateUtils.getExportFileName(templateTitle, "UTC"); - filename += ".csv"; - - //selects all the placeholders needed in the correct order - var placeholders = PlaceholderUtils.getPlaceholders(language); //selects all placeholders - var affectedPlaceholders = []; - for (let i = 0; i < fields.length; i++) { - var placeholderField = placeholders.find(function(placeholder){ - return placeholder.getFormattedName() == fields[i]; - }) - if(placeholderField) - affectedPlaceholders.push(placeholderField); } + + filename += ".csv"; + + let data = new ExportTemplateData(pExportTemplateId).getMainExportData(selection); + + csvTable = text.toCSV(data, sentenceSeparator, fieldSeparator, fieldDeLimiter); //generates the CSV with the correct separators + csvTable = util.encodeBase64String(csvTable, pCharset || "UTF-8"); //converts to Base64 (for neon.Download) + + return { + content : csvTable, + filename : filename, + title : templateTitle + }; +} + +/** + * This class takes over the creation of the data for the export. + * + * @param {String} pExportTemplateId export template id + */ +function ExportTemplateData(pExportTemplateId) +{ + this.exportTemplateId = pExportTemplateId; + + this.placesOfUse = + newSelect([ + "EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSEID", + "EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSE_ID", + "EXPORTTEMPLATEPLACEOFUSE.OBJECT_FILTER", + "EXPORTTEMPLATEPLACEOFUSE.PLACEOFUSE" + ]) + .from("EXPORTTEMPLATEPLACEOFUSE") + .where("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATE_ID", this.exportTemplateId) + .orderBy("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSE_ID DESC") + .table(); + + this.placesOfUseFields = { + "EXPORTTEMPLATEPLACEOFUSEID" : 0, + "EXPORTTEMPLATEPLACEOFUSE_ID" : 1, + "OBJECT_FILTER" : 2, + "PLACEOFUSE" : 3 + }; + + let fields = newSelect([ + "EXPORTTEMPLATEFIELD.EXPORTTEMPLATEPLACEOFUSE_ID", + "EXPORTTEMPLATEFIELD.FIELD", + "EXPORTTEMPLATEPLACEOFUSE.PLACEOFUSE" + ]) + .from("EXPORTTEMPLATEFIELD") + .rightJoin("EXPORTTEMPLATEPLACEOFUSE", + newWhere("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATE_ID", this.exportTemplateId) + .and("EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATEPLACEOFUSEID = EXPORTTEMPLATEFIELD.EXPORTTEMPLATEPLACEOFUSE_ID")) + .where("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", this.exportTemplateId) + .orderBy("EXPORTTEMPLATEFIELD.SORTING") + .table(); + + let fieldsObjectFields = {}; + fieldsObjectFields.EXPORTTEMPLATEPLACEOFUSE_ID = 0; + fieldsObjectFields.FIELD = 1; + fieldsObjectFields.PLACEOFUSE = 2; + + this.fields = {}; + this.exportData = []; + let exportHeader = []; + + fields.forEach(function (pField, pIndex) + { + + if (Utils.isNullOrEmpty(this.fields[pField[fieldsObjectFields.EXPORTTEMPLATEPLACEOFUSE_ID]])) + { + this.fields[pField[fieldsObjectFields.EXPORTTEMPLATEPLACEOFUSE_ID]] = {}; + } + + let field = this.fields[pField[fieldsObjectFields.EXPORTTEMPLATEPLACEOFUSE_ID]]; + + field[pField[fieldsObjectFields.FIELD]] = pIndex; + // Override the value with the displayValue if exists + field[pField[fieldsObjectFields.FIELD]+ ".displayValue"] = pIndex; + + let entity = ContextUtils.getEntity(pField[fieldsObjectFields.PLACEOFUSE]); + let fields = project.getEntityStructure(entity).fields; + + exportHeader.push(fields[pField[fieldsObjectFields.FIELD]].title); + + }, this); + + this.exportData.push(exportHeader); + // starts at one, because the headers of the columns were inserted before the content. + this.exportIndex = 1; +} + +/** + * Starts the recursion with the main place of use. + * + * @param {String} pSelection stringified filter or a array of ids + */ +ExportTemplateData.prototype.getMainExportData = function (pSelection) +{ + this.placesOfUse.forEach(function (pPlaceOfUse, pIndex, pPlacesOfUse) { + // get the MainPlaceOfUse to start the recrusion + if (Utils.isNullOrEmptyString(pPlaceOfUse[this.placesOfUseFields.EXPORTTEMPLATEPLACEOFUSE_ID])) + { + let placeOfUse = pPlacesOfUse.splice(pIndex, 1)[0]; + placeOfUse[this.placesOfUseFields.OBJECT_FILTER] = JSON.stringify(pSelection); + this.getExportData(placeOfUse, [], 0); + return; // Currently there can only be one MainPlaceOfUse. + } + }, this); + return this.exportData; +} - var replaced = getAddressesData(selection, affectedPlaceholders, null, null); //replaces all the placeholders with values - replaced = replaced.slice(1,replaced.length); //needed in order to remove the weird first line of the Array +/** + * Get and process recursive data. + * + * @param {String} pPlaceOfUse the place of use object with the filter object + * @param {Number} pParentCurrentIndex the index of the parrent place of use + * @param {Array} pIDs the ids to filter on + */ +ExportTemplateData.prototype.getExportData = function (pPlaceOfUse, pIDs, pParentCurrentIndex) +{ + let currentIndex = pParentCurrentIndex; + var placeOfUseEntity = ContextUtils.getEntity(pPlaceOfUse[this.placesOfUseFields.PLACEOFUSE]); + - for (let i = 0; i < affectedPlaceholders.length; i++) + if (Utils.isNullOrEmpty(this.fields[pPlaceOfUse[this.placesOfUseFields.EXPORTTEMPLATEPLACEOFUSEID]])) { - fieldtitles[i] = affectedPlaceholders[i].title; //gets the translations for the Labelling + return 0; } + // get only the fields of the current PlaceOfUse + let placeOfUseFields = Object.keys(this.fields[pPlaceOfUse[this.placesOfUseFields.EXPORTTEMPLATEPLACEOFUSEID]]); + + let dependentFieldsToLoad = []; + let dependentPlaceOfUse = []; + + this.placesOfUse.forEach(function (pPotentialChildPlaceOfUse, pIndex, pPlacesOfUse) + { + // if pPotentialChildPlaceOfUse is a child of pPlaceOfUse + if (pPotentialChildPlaceOfUse[this.placesOfUseFields.EXPORTTEMPLATEPLACEOFUSE_ID] === pPlaceOfUse[this.placesOfUseFields.EXPORTTEMPLATEPLACEOFUSEID]) + { + // Remove PlaceOfUse of this.placesOfUse + //let placeOfUse = pPlacesOfUse.splice(pIndex, 1)[0]; + dependentPlaceOfUse.push(pPotentialChildPlaceOfUse); + + let dependency = ContextUtils.getEntity(pPotentialChildPlaceOfUse[this.placesOfUseFields.PLACEOFUSE]); + dependentFieldsToLoad = dependentFieldsToLoad.concat(Dependency.mapping()[placeOfUseEntity][dependency]["fieldsToLoad"]); // Dependency.mapping()[placeOfUseEntity][dependency]["fieldsToLoad"][0] == "PERSON_CONTACT_ID" + } + }, this); + + var data = this.getFilterData(pPlaceOfUse, placeOfUseEntity, placeOfUseFields, dependentFieldsToLoad, pIDs); + + let placeOfUseId = pPlaceOfUse[this.placesOfUseFields.EXPORTTEMPLATEPLACEOFUSEID]; + var maxCount = 0; + let sumcount = 0; + data.forEach(function (pRow, pIndex) + { + maxCount = 1; + dependentPlaceOfUse.forEach(function (pDependentPlaceOfUse) + { + let dependency = ContextUtils.getEntity(pDependentPlaceOfUse[this.placesOfUseFields.PLACEOFUSE]); + let dependentIds = Dependency.mapping()[placeOfUseEntity][dependency].getUIDsfn(pRow); + + maxCount = Math.max(this.getExportData(pDependentPlaceOfUse, dependentIds, currentIndex), maxCount); + }, this); + + if (!Utils.toBoolean(dependentPlaceOfUse.length)) + { + // Last Level + this.setExportData(pRow, maxCount, placeOfUseId, currentIndex + pIndex); + } + else + { + // After all Levels are finish + this.setExportData(pRow, maxCount, placeOfUseId, currentIndex); + currentIndex += maxCount; + if (Utils.isNullOrEmptyString(pPlaceOfUse[this.placesOfUseFields.EXPORTTEMPLATEPLACEOFUSE_ID])) + { + currentIndex = pParentCurrentIndex; + this.exportIndex += maxCount; + } + } + sumcount += maxCount; + + }, this); + + return Math.max(sumcount, maxCount); +} - replaced.unshift(fieldtitles); //adds the translated Titles at the top of the table (columnHeadlines basically) - - csvTable = text.toCSV(replaced, sentenceSeparator, fieldSeparator, fieldDeLimiter); //generates the CSV with the correct separators - csvTable = util.encodeBase64String(csvTable); //converts to Base64 (for neon.Download) + +/** + * Set the overtaken data into the export array. + * + * @param {Object} pPlaceOfUse the place of use object with the filter object + * @param {String} pPlaceOfUseEntity the entity through which the data is loaded + * @param {Array} pPlaceOfUseFileds the place of use id of the current place of use + * @param {Array} pDependentFieldsToLoad fields of the dependencies to get the conection between the enties + * @param {Array} pIDs the ids to filter on + */ +ExportTemplateData.prototype.getFilterData = function (pPlaceOfUse, pPlaceOfUseEntity, pPlaceOfUseFileds, pDependentFieldsToLoad, pIDs) +{ + let fields = pPlaceOfUseFileds.concat(pDependentFieldsToLoad); + // remove duplicate fields + fields = Array.from(new Set(fields)); + var filter = JSON.parse(pPlaceOfUse[this.placesOfUseFields.OBJECT_FILTER]); + var config = entities.createConfigForLoadingRows() + .entity(pPlaceOfUseEntity) + .fields(fields); - return {content : csvTable, - filename : filename - }; -}; + if (Utils.isObject(filter) && Array.isArray(filter)) + { + pIDs = pIDs.concat(filter); + } + else + { + config.filter(JSON.stringify(filter.filter)); + } + + config.uids(pIDs); + + let rows = []; + + if (pIDs.length > 0) + { + rows = entities.getRows(config); + } + + return rows; +} + +/** + * Set the overtaken data into the export array. + * + * @param {Array} pDataRow the data, which will be inserted + * @param {Number} pMaxCount the number of repeated data insertion + * @param {String} pPlaceOfUseId the place of use id of the current place of use + * @param {Number} pIndex the index of the current row + */ +ExportTemplateData.prototype.setExportData = function (pDataRow, pMaxCount, pPlaceOfUseId, pIndex) +{ + let fieldsPlaceOfUse = this.fields[pPlaceOfUseId]; + for (let i = 0; i < pMaxCount; i++) + { + let index = this.exportIndex + i + pIndex; + if (Utils.isNullOrEmpty(this.exportData[index])) + { + // Create an empty array the length of the header with empty strings + this.exportData[index] = new Array(this.exportData[0].length).fill(""); + } + + for (let field in fieldsPlaceOfUse) + { + if (!Utils.isNullOrEmptyString(pDataRow[field])) + { + this.exportData[index][fieldsPlaceOfUse[field]] = pDataRow[field]; + } + } + } +} /** * Gets an Array of all the Fields of a ExportTemplate using it's unique exportTemplateId. @@ -99,10 +327,10 @@ ExportTemplateUtils.buildExport = function (pExportTemplateId, pSelection, pComi ExportTemplateUtils.getTemplateFields = function (pExportTemplateId) { return newSelect("EXPORTTEMPLATEFIELD.FIELD") - .from("EXPORTTEMPLATEFIELD") - .where("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", pExportTemplateId) - .orderBy("EXPORTTEMPLATEFIELD.SORTING") - .arrayColumn(); + .from("EXPORTTEMPLATEFIELD") + .where("EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID", pExportTemplateId) + .orderBy("EXPORTTEMPLATEFIELD.SORTING") + .arrayColumn(); }; /** @@ -116,7 +344,10 @@ ExportTemplateUtils.getTemplateFields = function (pExportTemplateId) ExportTemplateUtils.getExportFileName = function (pTemplateTitle, pTimeZone) { if(pTimeZone == null || pTimeZone == undefined) + { pTimeZone = "UTC"; + } + var exportFileName = pTemplateTitle + "_" + datetime.toDate(datetime.date(), "dd.MM.yyyy.HH:mm:ss", pTimeZone); return exportFileName; @@ -132,10 +363,10 @@ ExportTemplateUtils.getExportFileName = function (pTemplateTitle, pTimeZone) ExportTemplateUtils.getTemplateData = function (pExportTemplateId) { var data = newSelect(["EXPORTTEMPLATE.TITLE", "EXPORTTEMPLATE.ISOLANGUAGE", "EXPORTTEMPLATE.SENTENCESEPARATOR", - "EXPORTTEMPLATE.FIELDSEPARATOR", "EXPORTTEMPLATE.FIELDDELIMITER"]) - .from("EXPORTTEMPLATE") - .where("EXPORTTEMPLATE.EXPORTTEMPLATEID", pExportTemplateId) - .arrayRow(); + "EXPORTTEMPLATE.FIELDSEPARATOR", "EXPORTTEMPLATE.FIELDDELIMITER"]) + .from("EXPORTTEMPLATE") + .where("EXPORTTEMPLATE.EXPORTTEMPLATEID", pExportTemplateId) + .arrayRow(); data[1] = LanguageKeywordUtils.Iso2FromIso3(data[1]) //needed to get the language in the right format return data; }; @@ -152,10 +383,16 @@ ExportTemplateUtils.getTemplateData = function (pExportTemplateId) */ ExportTemplateUtils.getSentenceSeparator = function (pSentenceSeparator) { - if(pSentenceSeparator == "carriage return and line feed") - return "\r\n"; - else - return pSentenceSeparator; + if(pSentenceSeparator == "carriage return and line feed") + { + return "\r\n"; + } + + else + { + return pSentenceSeparator; + } + }; /** @@ -170,14 +407,20 @@ ExportTemplateUtils.getSentenceSeparator = function (pSentenceSeparator) */ ExportTemplateUtils.getFieldSeparator = function (pFieldSeparator) { - if(pFieldSeparator == "tabulator") - return "\t"; - else if(pFieldSeparator == "comma") + if(pFieldSeparator == "tabulator") + { + return "\t"; + } + else if(pFieldSeparator == "comma") + { return ","; - else if(pFieldSeparator == "semicolon") + } + else if(pFieldSeparator == "semicolon") + { return ";"; - else - return pFieldSeparator; + } + + return pFieldSeparator; }; /** @@ -192,10 +435,12 @@ ExportTemplateUtils.getFieldSeparator = function (pFieldSeparator) */ ExportTemplateUtils.getFieldDeLimiter = function (pFieldDeLimiter) { - if(pFieldDeLimiter == "quotation mark") - return "\""; - else - return pFieldDeLimiter; + if(pFieldDeLimiter == "quotation mark") + { + return "\""; + } + + return pFieldDeLimiter; }; /** @@ -208,39 +453,52 @@ ExportTemplateUtils.getFieldDeLimiter = function (pFieldDeLimiter) ExportTemplateUtils.getExportTemplateTitle = function (pExportTemplateId) { return newSelect("EXPORTTEMPLATE.TITLE") - .from("EXPORTTEMPLATE") - .where("EXPORTTEMPLATE.EXPORTTEMPLATEID", pExportTemplateId) - .cell(true); + .from("EXPORTTEMPLATE") + .where("EXPORTTEMPLATE.EXPORTTEMPLATEID", pExportTemplateId) + .cell(true); }; /** - * Export contacts or organistaions by contactIds.<br> + * Export contacts or organistaions by selection (filter or a array of ids).<br> * - * @param {String} pRowIds <p> - * The contact ids as JSON array.<br> + * @param {String} pSelection <p> + * filter or a array of ids * @param {String} pSourceTableName <p> * The source table.<br> */ -ExportTemplateUtils.addParticipantsByRowIds = function (pRowIds, pSourceTableName) +ExportTemplateUtils.addParticipants = function (pSelection, pSourceTableName) { - var params = { - "selectedData_param" : pRowIds, - "comingFrom_param" : pSourceTableName} + var params = { + "selectedData_param" : pSelection, + "comingFrom_param" : pSourceTableName + } neon.openContext("ExportTemplateSelection", "ExportTemplateSelectionEdit_view", null, neon.OPERATINGSTATE_VIEW, params); -}; +} /** - * Export contacts or organistaions by condition (filter).<br> + * Returns the exculed fields of the export entity. These fields cannot be exported. * - * @param {String} pCondition <p> - * Contact ids. - * @param {String} pSourceTableName <p> - * The source table.<br> + * @return {Object} {"Entity_entity" : ["exculdedFieldName",...], ...} */ -ExportTemplateUtils.addParticipantsByCondition = function (pCondition, pSourceTableName) +ExportTemplateUtils.excludedFields = function () { - var params = { - "selectedData_param" : pCondition, - "comingFrom_param" : pSourceTableName} - neon.openContext("ExportTemplateSelection", "ExportTemplateSelectionEdit_view", null, neon.OPERATINGSTATE_VIEW, params); -}; \ No newline at end of file + return { + "Offer_entity":["OFFER_ID"], + "Offeritem_entity":["ASSIGNEDTO", "ITEMSORT", "OFFER_ID"] + }; +} + +/** + * Thees are the Entities which can be selected in the ExportTemplatePlaceOfUseFilter_view. + */ +ExportTemplateUtils.exportableEntities = function () +{ + return [ + "BulkMail_entity", + "Campaign_entity", + "Offer_entity", + "Organisation_entity", + "Person_entity", + "Salesproject_entity" + ]; +} \ No newline at end of file diff --git a/process/JditoFilter_lib/process.js b/process/JditoFilter_lib/process.js index 3369e0cfd4840368d4dc47adaa9380ab9ae90214..29b6ee9e6a0d8cd49e647ca37e00d095929ba85a 100644 --- a/process/JditoFilter_lib/process.js +++ b/process/JditoFilter_lib/process.js @@ -1,3 +1,4 @@ +import("Context_lib"); import("system.vars"); import("system.tools"); import("system.logging"); @@ -512,6 +513,44 @@ JditoFilterUtils.getEmptyFilter = function (pEntity) return JSON.stringify(emptyFilter); } +/** + * Returns an object with the entity and filter as string. + * If filter or entity are not set, they are set to an empty filter and the current entity. + * + * @param {String} [pEntity] + * @param {Object} [pFilterObj] + * + * @return {String} Object in Format: {"filter": {"type":"group","operator":"AND","childs":[...]}, "entity": "Entity_entity"} + */ +JditoFilterUtils.getEntityFilter = function (pEntity, pFilterObj) +{ + if (!pEntity) + pEntity = ContextUtils.getEntity(ContextUtils.getCurrentContextId()); + if (!pFilterObj) + { + return JditoFilterUtils.getEmptyFilter(pEntity); + } + + return JSON.stringify({ + "filter":pFilterObj, + "entity":pEntity + }); +} + +/** + * Returns an object with the entity and filter as string. + * If filter or context are not set, they are set to an empty filter and the context of the current entity. + * + * @param {String} [pContext] + * @param {Object} [pFilter] + * + * @return {String} Object in Format: {"filter": {"type":"group","operator":"AND","childs":[...]}, "entity": "Entity_entity"} + */ +JditoFilterUtils.getContextFilter = function (pContext, pFilter) +{ + return JditoFilterUtils.getEntityFilter(ContextUtils.getEntity(pContext), pFilter); +} + /** * Object for translating a filter object to a sql condition. diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js index cc85d170a716afb3a5e352b754534ce5b5b93330..a2e9888cf830259bd023e441b894afb256e758ae 100644 --- a/process/KeywordRegistry_basic/process.js +++ b/process/KeywordRegistry_basic/process.js @@ -48,6 +48,7 @@ $KeywordRegistry.currency = function(){return "Currency";}; $KeywordRegistry.currency$eur = function(){return "EUR";}; $KeywordRegistry.productGroupcode = function(){return "ProductGroupcode";}; +$KeywordRegistry.productGroupcode$discount = function(){return "PRODUCTDISCOUNT";}; $KeywordRegistry.offerStatus = function(){return "OfferStatus";}; $KeywordRegistry.offerStatus$open = function(){return "OFFERSTATOPEN";}; @@ -145,6 +146,7 @@ $KeywordRegistry.activityCategory$onlineMeeting = function(){return "ONLINE-MEET $KeywordRegistry.activityCategory$approval = function(){return "APPROVAL";} $KeywordRegistry.activityCategory$sys = function(){return "SYS";}; +$KeywordRegistry.activityCategory$mstMessage = function(){return "MST-MESSAGE";}; $KeywordRegistry.addressType = function(){return "AddressType";}; $KeywordRegistry.addressType$private = function(){return "HOMEADDR";}; @@ -407,6 +409,8 @@ $KeywordRegistry.employeeGroupStatus = function(){return "EmployeeGroupStatus";} $KeywordRegistry.employeeGroupStatus$active = function(){return "ACTIVE";}; $KeywordRegistry.employeeGroupStatus$inactive = function(){return "INACTIVE";}; +$KeywordRegistry.ticketTemplateIndivAnswer$active = function(){return "1";} +$KeywordRegistry.ticketTemplateIndivAnswer$inactive = function(){return "0";} $KeywordRegistry.ticketCategory = function(){return "TicketCategory";} $KeywordRegistry.ticketCategory$undefined = function(){return "UNDEFINED";} $KeywordRegistry.ticketCategory$all = function(){return "ALL";} diff --git a/process/MSTeams_lib/process.js b/process/MSTeams_lib/process.js index 892ed53b3e815ba9bc00dd562b43f1c06fe7781b..978f63390349075c5aa8c372fa5e1428070ce0d7 100644 --- a/process/MSTeams_lib/process.js +++ b/process/MSTeams_lib/process.js @@ -1,3 +1,4 @@ +import("Employee_lib"); import("system.db"); import("system.logging"); import("system.neon"); @@ -24,187 +25,44 @@ MSTeamsUtils.isTeamsEnabled = function () return Utils.toBoolean(project.getInstanceConfigValue("teamsEnabled", "false")); } -MSTeamsUtils.getImpersoAzureId = function () -{ - return project.getInstanceConfigValue("teamsImpersoAzureId", ""); -} - -/** - * Contains the configuration for the possible contexts that can be used for teamLinks. - * - * @return {Object} object with the context-names as keys and configuration-objects as values - */ -MSTeamsUtils.getTeamLinkContexts = function () -{ - return { - "Salesproject": {singleLinkPerObject: true} - }; -} - -/** - * Opens a context for changing the linked team of the given object. This function also checks the configuration from - * MSTeamsUtils.getTeamLinkContexts to make sure the created teamLink is allowed +/* + * Returns the azure object id of the impersonation user + * If no impersonation user is configured this function returns null * - * @param {String} pRowId uid of the linked object - * @param {String} pObjectType context of the linked object + * @returns {String} the azure object id of the impersonation user */ -MSTeamsUtils.changeTeamsLink = function (pRowId, pObjectType) +MSTeamsUtils.getImpersoAzureId = function() { - var linkConfig = MSTeamsUtils.getTeamLinkContexts()[pObjectType]; - if (!linkConfig) - return; - - var existingTeamLinks = newSelect("MST_TEAMLINKID") - .from("MST_TEAMLINK") - .where("MST_TEAMLINK.OBJECT_ROWID", pRowId) - .and("MST_TEAMLINK.OBJECT_TYPE", pObjectType) - .arrayColumn(); - var params = { - "ObjectRowId_param": pRowId, - "ObjectType_param": pObjectType - }; - if (existingTeamLinks.length === 0 || !linkConfig.singleLinkPerObject) - neon.openContext("MSTTeamLink", null, null, neon.OPERATINGSTATE_NEW, params); - else - neon.openContext("MSTTeamLink", null, [existingTeamLinks[0]], neon.OPERATINGSTATE_EDIT, params); + return project.getInstanceConfigValue("teamsImpersoAzureId", null); } -/** - * Removes all teamLinks of the given object that are invalid. +/* + * Returns the azure object id of the user with the specified contactid + * If no azure id is configured the function first ties to get the azure id via the upn + * if that also fails the function will return null * - * @param {String} pRowId uid of the linked object - * @param {String} pObjectType context of the linked object - * @param {String} [pTeamLinkIdToKeep] Only applies to contexts with 'singleLinkPerObject: true', if there are more than one teamLink, every - * teamLink except one will be deleted. This param controls which one shouldn't be deleted. + * @returns {string} the azure object id or null (on failure) */ -MSTeamsUtils.purgeCorruptTeamLinks = function (pRowId, pObjectType, pTeamLinkIdToKeep) +MSTeamsUtils.getAzureIdByContactId = function(pContactId) { - var teamLinks = MSTeamsUtils.getLinkedTeams(pRowId, pObjectType).map(function (row) - { - return row.teamLinkId; - }); - var linkConfig = MSTeamsUtils.getTeamLinkContexts()[pObjectType]; - var removeLinks = []; - if (!linkConfig) - removeLinks = teamLinks; - else if (linkConfig.singleLinkPerObject && pTeamLinkIdToKeep) - removeLinks = teamLinks.filter(function (id) {return id != pTeamLinkIdToKeep;}); - else if (linkConfig.singleLinkPerObject) - removeLinks = teamLinks.slice(1); - - if (removeLinks.length === 0) - return 0; - return newWhere("MST_TEAMLINK.MST_TEAMLINKID", removeLinks, SqlBuilder.IN()).deleteData(); -} - -/** - * Saves the given team in the database if it is not already present. - * - * @param {Object} pTeam An object containing the data of the team. Required properties: - * <ul> - * <li>teamId</li> - * <li>teamName</li> - * </ul> - * Optional properties (will be loaded automatically if not given): - * <ul> - * <li>generalChannelId</li> - * <li>webUrl</li> - * </ul> - * @return {Boolean} true if the team was inserted, false if it already exists - */ -MSTeamsUtils.insertTeamIfMissing = function (pTeam) -{ - var existsTeam = newSelect("count(*)") - .from("MST_TEAM") - .where("MST_TEAM.MST_TEAMID", pTeam.teamId) - .cell() > 0; - if (existsTeam) - return false; - - new SqlBuilder().insertFields({ - "MST_TEAMID": pTeam.teamId, - "TEAMNAME": pTeam.teamName, - "GENERAL_CHANNELID": pTeam.generalChannelId || teams.getGeneralChannelId(pTeam.teamId), - "IS_ARCHIVED": 0, - "WEB_URL": pTeam.webUrl || teams.getWebUrl(pTeam.teamId) - }, "MST_TEAM"); - - return true; -} - -/** - * Creates a new teamLink. - * - * @param {String} pTeamId id of the team - * @param {String} pRowId uid of the linked object - * @param {String} pObjectType context of the linked object - */ -MSTeamsUtils.createTeamLink = function (pTeamId, pRowId, pObjectType) -{ - var currentTeamLink; - var contextConfig = MSTeamsUtils.getTeamLinkContexts()[pObjectType]; - if (!contextConfig) - return; - - //if singleLinkPerObject is true, only one team link can be created for the given objectRowId - if (contextConfig.singleLinkPerObject) + var userObj = EmployeeUtils.getUserByContactId(pContactId); + if(!userObj) { - currentTeamLink = MSTeamsUtils.getLinkedTeam(pRowId, pObjectType); + return null; } - if (currentTeamLink) + + var azureId = userObj[tools.PARAMS][tools.TEAMS_AZUREID]; + if(azureId) { - newWhere("MST_TEAMLINK.MST_TEAMLINKID", currentTeamLink.teamLinkId).updateFields({ - "MST_TEAM_ID": pTeamId - }); + return azureId; } - else + + var azureUpn = userObj[tools.PARAMS][tools.TEAMS_AZUREUPN]; + if(azureUpn) { - new SqlBuilder().insertFields({ - "MST_TEAM_ID": pTeamId, - "OBJECT_ROWID": pRowId, - "OBJECT_TYPE": pObjectType - }, "MST_TEAMLINK", "MST_TEAMLINKID"); + return teams.getInternalAzureId(azureUpn); } -} - -/** - * Gets all linked teams of an object - * - * @param {String} pRowId uid of the linked object - * @param {String} pObjectType context of the linked object - * @return {Object[]} array of {teamLinkId, teamId} - */ -MSTeamsUtils.getLinkedTeams = function (pRowId, pObjectType) -{ - return newSelect(["MST_TEAMLINKID", "MST_TEAM_ID"]) - .from("MST_TEAMLINK") - .where("MST_TEAMLINK.OBJECT_ROWID", pRowId) - .andIfSet("MST_TEAMLINK.OBJECT_TYPE", pObjectType) - .orderBy("MST_TEAMLINKID") - .table() - .map(function ([linkId, teamId]) - { - return { - teamLinkId: linkId, - teamId: teamId - }; - }); - -} - -/** - * Gets the linked team of an object - * - * @param {String} pRowId uid of the linked object - * @param {String} pObjectType context of the linked object - * @return {String} id of the linked team, or null if ther is none - */ -MSTeamsUtils.getLinkedTeam = function (pRowId, pObjectType) -{ - var linkedTeams = MSTeamsUtils.getLinkedTeams(pRowId, pObjectType); - if (linkedTeams.length === 0) - return null; - return linkedTeams[0].teamId; + return null; } /** @@ -216,7 +74,9 @@ MSTeamsUtils.getLinkedTeam = function (pRowId, pObjectType) MSTeamsUtils.getContactIdsByAzureIds = function (pAzureIds) { if (pAzureIds.length === 0) + { return {}; + } var teamsUsers = tools.getUsersByAttribute(tools.TEAMS_AZUREID, pAzureIds); var contactIdMap = {}; @@ -238,9 +98,12 @@ MSTeamsUtils.getContactIdsByAzureIds = function (pAzureIds) MSTeamsUtils.getTeamRoleSubSql = function (pTeamId, pContactIdField) { if (!pTeamId) + { return "''"; + } - try { + try + { var ownerIds = Object.keys(teams.getAllOwners(pTeamId)); var ownerContactIds = MSTeamsUtils.getContactIdsByAzureIds(ownerIds); ownerContactIds = Utils.objectValues(ownerContactIds); @@ -257,13 +120,19 @@ MSTeamsUtils.getTeamRoleSubSql = function (pTeamId, pContactIdField) } if (ownerContactIds.length === 0 && memberContactIds.length === 0) + { return "''"; + } var caseWhen = SqlBuilder.caseStatement(); if (ownerContactIds.length !== 0) + { caseWhen.when(pContactIdField, ownerContactIds, SqlBuilder.IN()).thenString(translate.text("Owner")); + } if (memberContactIds.length !== 0) + { caseWhen.when(pContactIdField, memberContactIds, SqlBuilder.IN()).thenString(translate.text("Member")); + } //the SqlBuilder.IN() can't be used here because of the sub-sql string for the email caseWhen.when("(" + CommUtil.getStandardSubSqlMail() + ") in ('" + Utils.objectValues(members).join("', '") + "')") @@ -281,16 +150,13 @@ MSTeamsUtils.getTeamRoleSubSql = function (pTeamId, pContactIdField) */ MSTeamsUtils.isUserTeamOwner = function (pTeamId, pUserId) { - var user; - if (!pUserId) - user = tools.getCurrentUser(); - else - user = tools.getUserByAttribute(tools.NAME, pUserId); - - var azureId = user ? user[tools.PARAMS][tools.TEAMS_AZUREID] : null; - if (!azureId) + if(!pTeamId) + { return false; - return azureId in teams.getAllOwners(pTeamId); + } + var user = pUserId ? tools.getUserByAttribute(tools.NAME, pUserId) : tools.getCurrentUser(); + var azureId = user ? user[tools.PARAMS][tools.TEAMS_AZUREID] : null; + return azureId && azureId in teams.getAllOwners(pTeamId); } /** @@ -309,7 +175,7 @@ MSTeamsUtils.isUserTeamOwner = function (pTeamId, pUserId) */ MSTeamsUtils.getTeamInfo = function (pTeamId) { - var teamInfo = new SqlBuilder(db.getCurrentAlias()) + var teamInfo = new SqlBuilder(SqlUtils.getDataAlias()) .select(["TEAMNAME", "WEB_URL", "SERVICE_URL", "IS_ARCHIVED", "GENERAL_CHANNELID"]) .from("MST_TEAM") .whereIfSet("MST_TEAM.MST_TEAMID", pTeamId) @@ -337,4 +203,9 @@ MSTeamsUtils.isTeamActive = function (pTeamId) { var teamInfo = MSTeamsUtils.getTeamInfo(pTeamId); return teamInfo != null && !teamInfo.isArchived; -} \ No newline at end of file +} + +function $MSTeamsRoles(){} +$MSTeamsRoles.Owner = function(){return "owner"}; +$MSTeamsRoles.Member = function(){return "member"}; +$MSTeamsRoles.Guest = function(){return "guest"}; diff --git a/process/Observation_lib/process.js b/process/Observation_lib/process.js index 7037b65adf630093f6efb2d95493cdc30aa1fffc..b90768b91d3fc9479af4ebda50b97d225408bb96 100644 --- a/process/Observation_lib/process.js +++ b/process/Observation_lib/process.js @@ -1,3 +1,4 @@ +import("JditoFilter_lib"); import("Keyword_lib"); import("Util_lib"); import("system.neon"); @@ -803,7 +804,7 @@ Observation.insertAction = function () } else { - let filter = Observation.getContextFilter(contextId,vars.get("$sys.filter").filter); + let filter = JditoFilterUtils.getContextFilter(contextId,vars.get("$sys.filter").filter); params["ObjectFilter_param"] = filter; } @@ -824,11 +825,14 @@ Observation.cancelAction = function () let cond = newWhere("OBSERVATION.OBJECT_TYPE", contextID) .and("OBSERVATION.OBSERVER", observer); - if (selectedUIDs.length){ + if (selectedUIDs.length) + { cond.and("OBSERVATION.OBJECT_ID", selectedUIDs, SqlBuilder.IN()) .deleteData(true, "OBSERVATION"); - } else { - let filter = Observation.getContextFilter(contextID,vars.get("$sys.filter").filter); + } + else + { + let filter = JditoFilterUtils.getContextFilter(contextID,vars.get("$sys.filter").filter); cond.and("OBSERVATION.OBJECT_FILTER", filter, SqlBuilder.LIKE()) .deleteData(true, "OBSERVATION"); @@ -930,7 +934,7 @@ Observation.countObservations = function (pSelectedUIDs) if (pSelectedUIDs && pSelectedUIDs.length){ rowCount.and("OBSERVATION.OBJECT_ID", pSelectedUIDs, SqlBuilder.IN()); } else { - rowCount.and("OBSERVATION.OBJECT_FILTER", Observation.getContextFilter(contextID,vars.get("$sys.filter").filter), SqlBuilder.LIKE()); + rowCount.and("OBSERVATION.OBJECT_FILTER", JditoFilterUtils.getContextFilter(contextID,vars.get("$sys.filter").filter), SqlBuilder.LIKE()); } return parseInt(rowCount.cell()); } @@ -968,46 +972,6 @@ Observation.actionState = function (pSelectedUIDs, pIsCancelAction) } } -/** - * Returns an object with the entity and filter. - * If filter or entity are not set, they are set to an empty filter and the current entity. - * - * @param {String} [pEntity] - * @param {Object} [pFilterObj] - * @return {Object} Object in Format: {"filter": {"type":"group","operator":"AND","childs":[...]}, "entity": "Entity_entity"} - */ -Observation.getEntityFilter = function (pEntity, pFilterObj) -{ - if (!pEntity) - pEntity = ContextUtils.getEntity(ContextUtils.getCurrentContextId()); - if (!pFilterObj) - { - pFilterObj = { - "type":"group", - "operator":"AND", - "childs":[] - }; - } - - return JSON.stringify({ - "filter":pFilterObj, - "entity":pEntity - }); -} - -/** - * Returns an object with the entity and filter. - * If filter or context are not set, they are set to an empty filter and the context of the current entity. - * - * @param {String} [pContext] - * @param {Object} [pFilter] - * @return {Object} Object in Format: {"filter": {"type":"group","operator":"AND","childs":[...]}, "entity": "Entity_entity"} - */ -Observation.getContextFilter = function (pContext, pFilter) -{ - return Observation.getEntityFilter(ContextUtils.getEntity(pContext), pFilter); -} - /** * Gives all possible fields which can be observed. * diff --git a/process/Organisation_lib/process.js b/process/Organisation_lib/process.js index a16a0b0488c461bd5a3a72baf368d2e5fa5b83da..735a0af10761b2b84fde48a3744f0c71977050fc 100644 --- a/process/Organisation_lib/process.js +++ b/process/Organisation_lib/process.js @@ -176,7 +176,7 @@ var activityData = activityQuery.table() }); activityData = ReportData.begin(["ENTRYDATE", "MEDIUM", "LOGIN", "INFO"]).add(activityData); - var attr = new AttributeRelationQuery(pOrgId) + var attr = new AttributeRelationQuery(pContactId) .includeDisplayValue() .includeFullAttributeName() .getAttributes() diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js index 6926f5ec35b7aea6d9d61c3e69b829531885a786..4ec5fbabe25fda4e48a39fc5c4d59e55d50fd919 100644 --- a/process/Sql_lib/process.js +++ b/process/Sql_lib/process.js @@ -4561,6 +4561,14 @@ SqlUtils.getSystemAlias = function() return "_____SYSTEMALIAS"; } +/** + * @return the dataalias + */ +SqlUtils.getDataAlias = function() +{ + return "Data_alias"; +} + /** * Builds a SQL IN condition, while accounting for the 1000 elements maximum * Single conditions are concatenated with OR, which can be devastating for performance! diff --git a/process/TicketTemplate_lib/process.js b/process/TicketTemplate_lib/process.js index 0555f45acc7bc2d9405d7879fa83045702e03ca0..0fb6c6aedbf926e2b27dc162eaf83f817c242437 100644 --- a/process/TicketTemplate_lib/process.js +++ b/process/TicketTemplate_lib/process.js @@ -114,7 +114,8 @@ TicketTemplateUtils.checkIndividualAnswer = function (pTemplateId) var sql = newSelect("DOCUMENTTEMPLATE.TEMPLATECONTENT") .from("TICKETTEMPLATE") .join("DOCUMENTTEMPLATE","TICKETTEMPLATE.DOCUMENTTEMPLATE_ID = DOCUMENTTEMPLATE.DOCUMENTTEMPLATEID") - .whereIfset("TICKETTEMPLATE.TICKETTEMPLATEID",pTemplateId) + .whereIfSet("TICKETTEMPLATE.TICKETTEMPLATEID",pTemplateId) + .and("TICKETTEMPLATE.INDIVIDUAL_ANSWER", $KeywordRegistry.ticketTemplateIndivAnswer$active()) .cell() return sql; } \ No newline at end of file diff --git a/process/Util_lib/process.js b/process/Util_lib/process.js index 92abee276eb2691defa0338a9639b7f5bb56ff7e..3ebc86d452cd686411ec8066d0b57124dc65c9ed 100644 --- a/process/Util_lib/process.js +++ b/process/Util_lib/process.js @@ -831,14 +831,25 @@ NumberUtils.validateIsBetweenFloat = function(pTitle, pValue, pMin, pMax, pIgnor if(pValue.includes(",")) pValue = pValue.replace(",", "."); - var discount = parseFloat(pValue); + var value = parseFloat(pValue); - if(isNaN(discount)) + if(isNaN(value)) return false; - if (!NumberUtils.isInside(discount, pMin, pMax, pIgnoreNull)) + if (!NumberUtils.isInside(value, pMin, pMax, pIgnoreNull)) { - return (translate.withArguments("${MIN_MAX_ERROR} field: %0, value: %1, min: %2, max: %3", [translate.text(pTitle), discount, pMin, pMax])); + if(pMin == Number.MIN_VALUE) + { + return (translate.withArguments("${MIN_MAX_ERROR_MIN_INT_VALUE} field: %0, value: %1, max: %2", [translate.text(pTitle), value, pMax])); + } + else if(pMax == Number.MAX_VALUE) + { + return (translate.withArguments("${MIN_MAX_ERROR_MAX_INT_VALUE} field: %0, value: %1, min: %2", [translate.text(pTitle), value, pMin])); + } + else + { + return (translate.withArguments("${MIN_MAX_ERROR} field: %0, value: %1, min: %2, max: %3", [translate.text(pTitle), value, pMin, pMax])); + } } return false; } diff --git a/process/buildExport_serverProcess/buildExport_serverProcess.aod b/process/buildExport_serverProcess/buildExport_serverProcess.aod new file mode 100644 index 0000000000000000000000000000000000000000..845ca703843de1c8c9732b551712e616ae8af35a --- /dev/null +++ b/process/buildExport_serverProcess/buildExport_serverProcess.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.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.2"> + <name>buildExport_serverProcess</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/buildExport_serverProcess/process.js</process> + <variants> + <element>EXECUTABLE</element> + </variants> +</process> diff --git a/process/buildExport_serverProcess/process.js b/process/buildExport_serverProcess/process.js new file mode 100644 index 0000000000000000000000000000000000000000..19f950b047f91924a1d4a966a7e76122a15f4bb9 --- /dev/null +++ b/process/buildExport_serverProcess/process.js @@ -0,0 +1,42 @@ +import("Util_lib"); +import("ExportTemplate_lib"); +import("Document_lib"); +import("system.text"); +import("system.translate"); +import("Binary_lib"); +import("system.util"); +import("Bulkmail_lib"); +import("system.result"); +import("system.vars"); +import("KeywordRegistry_basic"); +import("system.notification"); + +var user = vars.get("$local.user"); +var selection = JSON.parse(vars.get("$local.selection")); +var exportTemplateId = vars.get("$local.exportTemplateId"); +var charset = vars.get("$local.charset"); +var filename = vars.get("$local.filename"); + +var document = ExportTemplateUtils.buildExport(exportTemplateId, selection, filename, charset); + +let id = SingleBinaryUtils.set("EXPORTTEMPLATE", "EXPORTFILE", exportTemplateId, document.content, document.filename, ""); + +if (id === true) +{ + id = SingleBinaryUtils.getMetadata("EXPORTTEMPLATE", "EXPORTFILE", exportTemplateId, null, null).id; +} + +var message = translate.text("Download ready"); +var description = translate.withArguments("Export CSV \"%0\" can now be downloaded", [document.title]); + +var notificationConfig = notification.createConfig() +.initialState(notification.STATE_UNSEEN) +.forcedPriority(notification.PRIO_NORMAL) +.linkInfo(text.encodeMS(["Document", id])) +.daysToLive(2) +.addUserWithId(user) +.notificationType("DownloadReady") +.caption(message) +.description(description); + +notification.addNotificationWith(notificationConfig); \ No newline at end of file diff --git a/process/mailbridge_service/process.js b/process/mailbridge_service/process.js index 28c37df7476c35dfedcc1af130e0cb0f0bd8e56a..8fb7bd912497800f9542370491a59c0b8eef62ec 100644 --- a/process/mailbridge_service/process.js +++ b/process/mailbridge_service/process.js @@ -60,7 +60,7 @@ ticketMailbridgeUtils.getInboxInformation = function(pRecipients, pSender, possi .select(["INBOX.INBOXID","INBOX.REOPEN_DELAY", "INBOX.EMAIL_ADDRESS"]) .from("INBOX") .leftJoin("MAILSIGNATURE", "INBOX.INBOXID = MAILSIGNATURE.INBOX_ID") - .whereIfSet("EMAIL_ADDRESS", pRecipients, SqlBuilder.IN()) + .whereIfSet("INBOX.EMAIL_ADDRESS", pRecipients, SqlBuilder.IN()) .arrayRow(); // found an INbox? @@ -89,7 +89,7 @@ ticketMailbridgeUtils.getInboxInformation = function(pRecipients, pSender, possi .select(["INBOX.INBOXID","INBOX.REOPEN_DELAY", "INBOX.EMAIL_ADDRESS"]) .from("INBOX") .leftJoin("MAILSIGNATURE", "INBOX.INBOXID = MAILSIGNATURE.INBOX_ID") - .whereIfSet("EMAIL_ADDRESS", possibleBCC, SqlBuilder.IN()) + .whereIfSet("INBOX.EMAIL_ADDRESS", possibleBCC, SqlBuilder.IN()) .arrayRow(); if(inboxObj.inboxID.length > 0) @@ -118,7 +118,7 @@ ticketMailbridgeUtils.getInboxInformation = function(pRecipients, pSender, possi .select(["INBOX.INBOXID","INBOX.REOPEN_DELAY", "INBOX.EMAIL_ADDRESS"]) .from("INBOX") .leftJoin("MAILSIGNATURE", "INBOX.INBOXID = MAILSIGNATURE.INBOX_ID") - .whereIfSet("EMAIL_ADDRESS", possibleBCCUnfiltered, SqlBuilder.IN()) + .whereIfSet("INBOX.EMAIL_ADDRESS", possibleBCCUnfiltered, SqlBuilder.IN()) .arrayRow(); if(inboxObj.inboxID.length > 0) diff --git a/process/migrate_themesAsTopics_serverProcess/process.js b/process/migrate_themesAsTopics_serverProcess/process.js index 52496b2230dc44fd3cc41656f834a8f7b8f1f7fd..f451dc6ab10d39afbadd91fb4d5261cfead041d9 100644 --- a/process/migrate_themesAsTopics_serverProcess/process.js +++ b/process/migrate_themesAsTopics_serverProcess/process.js @@ -1,3 +1,4 @@ +import("Util_lib"); import("system.eMath"); import("TopicTree_lib"); import("system.logging"); @@ -111,7 +112,7 @@ function _migrateTopicTree(pThemes) topicObj[themeId]["insertHelper"]["columns"].push("DATE_NEW"); topicObj[themeId]["insertHelper"]["values"].push(date_new); - if(theme_id && Utils.isNotNullOrEmpty(theme_id)) + if(theme_id && Utils.isNotNullOrEmptyString(theme_id)) { topicObj[themeId]["assignedTo"] = theme_id; topicsToLoopTrough.push(themeId); @@ -169,8 +170,11 @@ function _migrateTopicTree(pThemes) previousLayer = TopicTreeUtils.getPreviousLayerName(previousLayer); if(previousLayer != "SORTING_LAYER_0") { - topicObj[themeId]["insertHelper"]["columns"].push(previousLayer); - topicObj[themeId]["insertHelper"]["values"].push(-1);//value doesn't matter here + if(!topicObj[themeId]["insertHelper"]["columns"].includes(previousLayer)) + { + topicObj[themeId]["insertHelper"]["columns"].push(previousLayer); + topicObj[themeId]["insertHelper"]["values"].push("-1");//value doesn't matter here + } } else { @@ -210,8 +214,7 @@ function _migrateTopicTree(pThemes) //we don't change the original order tho, since we used the stored sortingValue to sort said array that we are now looping trough var sortingValue = eMath.addInt(i, 1); - topicTreeColumns.push(topicObj[ownTopicId]["layer"]); - topicTreeValues.push(sortingValue); + topicTreeValues[topicTreeColumns.indexOf(topicObj[ownTopicId]["layer"])] = sortingValue; statements.push(["TOPICTREE", topicTreeColumns, null, topicTreeValues]); } }