diff --git a/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_ComunicationMedium_IdDatatype.xml b/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_ComunicationMedium_IdDatatype.xml index 3e4f1fbd5b8f119ecc58649bab722422cfdf571b..7153295dc12d1b84566a0af057f0f65bf706f3e9 100644 --- a/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_ComunicationMedium_IdDatatype.xml +++ b/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_ComunicationMedium_IdDatatype.xml @@ -1,7 +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="b.ulrich" id="a9f53bcd-b541-4a46-bd40-a21f7fae7aba"> - <modifyDataType columnName="MEDIUM_ID" newDataType="CHAR(36)" tableName="COMMUNICATION"/> + 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 dbms="derby" author="b.ulrich" id="bd334096-a6ce-4739-b272-753a85ff103e"> + <sql> + ALTER TABLE COMMUNICATION ADD COLUMN MEDIUM_ID_NEW CHAR(36); + UPDATE COMMUNICATION SET MEDIUM_ID_NEW=MEDIUM_ID; + ALTER TABLE COMMUNICATION DROP COLUMN MEDIUM_ID; + RENAME COLUMN COMMUNICATION.MEDIUM_ID_NEW TO MEDIUM_ID; + </sql> </changeSet> + + <changeSet dbms="!derby" author="b.ulrich" id="17c1eb73-3131-4a2b-bf9a-913590767c79"> + <modifyDataType tableName="COMMUNICATION" columnName="MEDIUM_ID" newDataType="CHAR(36)"/> + </changeSet> + </databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_DocumentTemplatePlaceOfUseDatatype.xml b/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_DocumentTemplatePlaceOfUseDatatype.xml index 14c64bfefe06b69e868de85bdf8ab9fcd6a093c1..2cfda5e78c75dc24d61318c4867d381d01e4105d 100644 --- a/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_DocumentTemplatePlaceOfUseDatatype.xml +++ b/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_DocumentTemplatePlaceOfUseDatatype.xml @@ -1,7 +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="b.ulrich" id="5a0d5d3f-e849-4584-8082-481b1411d1fc"> - <modifyDataType columnName="DOCUMENTTEMPLATE_ID" newDataType="CHAR(36)" tableName="DOCUMENTTEMPLATE"/> + <changeSet dbms="derby" author="b.ulrich" id="83c25119-cf41-42ab-b42f-370195f9de87"> + <!--not null must be set in derby before adding a primary key constraint--> + <sql> + ALTER TABLE DOCUMENTTEMPLATE ADD COLUMN DOCUMENTTEMPLATEID_NEW CHAR(36); + UPDATE DOCUMENTTEMPLATE SET DOCUMENTTEMPLATEID_NEW=DOCUMENTTEMPLATEID; + ALTER TABLE DOCUMENTTEMPLATE DROP COLUMN DOCUMENTTEMPLATEID; + RENAME COLUMN DOCUMENTTEMPLATE.DOCUMENTTEMPLATEID_NEW TO DOCUMENTTEMPLATEID; + ALTER TABLE DOCUMENTTEMPLATE ALTER COLUMN DOCUMENTTEMPLATEID NOT NULL; + ALTER TABLE DOCUMENTTEMPLATE ADD CONSTRAINT PK_DOCUMENTTEMPLATE_DOCUMENTTEMPLATEID PRIMARY KEY (DOCUMENTTEMPLATEID); + </sql> + </changeSet> + + <changeSet dbms="!derby" author="b.ulrich" id="85ba6a61-9318-4118-ac4c-e33730f6581d"> + <modifyDataType tableName="DOCUMENTTEMPLATE" columnName="DOCUMENTTEMPLATEID" newDataType="CHAR(36)"/> </changeSet> </databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_ExportTemplateDatatype.xml b/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_ExportTemplateDatatype.xml index 7de92277180d51eb97a2cb562328e8e46751b43d..237c9fd9e447f01353d895dba2a7c1123e684471 100644 --- a/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_ExportTemplateDatatype.xml +++ b/.liquibase/Data_alias/basic/2020.1.2/AlterDatatypeOfKeyColumnsToChar/alter_ExportTemplateDatatype.xml @@ -1,10 +1,26 @@ <?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="b.ulrich" id="77ee7dcd-cf5b-47ea-a59a-2b1230fad818"> - <modifyDataType columnName="EXPORTTEMPLATE_ID" newDataType="CHAR(36)" tableName="EXPORTTEMPLATEPLACEOFUSE"/> - <modifyDataType columnName="EXPORTTEMPLATE_ID" newDataType="CHAR(36)" tableName="EXPORTTEMPLATEFIELD"/> - <modifyDataType columnName="EXPORTTEMPLATE_ID" newDataType="CHAR(36)" tableName="EXPORTTEMPLATESELECTION"/> - + <changeSet dbms="derby" author="b.ulrich" id="9c551ee3-f4f0-46e4-a671-943b58c74432"> + <sql> + ALTER TABLE EXPORTTEMPLATEPLACEOFUSE ADD COLUMN EXPORTTEMPLATE_ID_NEW CHAR(36); + UPDATE EXPORTTEMPLATEPLACEOFUSE SET EXPORTTEMPLATE_ID_NEW=EXPORTTEMPLATE_ID; + ALTER TABLE EXPORTTEMPLATEPLACEOFUSE DROP COLUMN EXPORTTEMPLATE_ID; + RENAME COLUMN EXPORTTEMPLATEPLACEOFUSE.EXPORTTEMPLATE_ID_NEW TO EXPORTTEMPLATE_ID; + ALTER TABLE EXPORTTEMPLATEFIELD ADD COLUMN EXPORTTEMPLATE_ID_NEW CHAR(36); + UPDATE EXPORTTEMPLATEFIELD SET EXPORTTEMPLATE_ID_NEW=EXPORTTEMPLATE_ID; + ALTER TABLE EXPORTTEMPLATEFIELD DROP COLUMN EXPORTTEMPLATE_ID; + RENAME COLUMN EXPORTTEMPLATEFIELD.EXPORTTEMPLATE_ID_NEW TO EXPORTTEMPLATE_ID; + ALTER TABLE EXPORTTEMPLATESELECTION ADD COLUMN EXPORTTEMPLATE_ID_NEW CHAR(36); + UPDATE EXPORTTEMPLATESELECTION SET EXPORTTEMPLATE_ID_NEW=EXPORTTEMPLATE_ID; + ALTER TABLE EXPORTTEMPLATESELECTION DROP COLUMN EXPORTTEMPLATE_ID; + RENAME COLUMN EXPORTTEMPLATESELECTION.EXPORTTEMPLATE_ID_NEW TO EXPORTTEMPLATE_ID; + </sql> + </changeSet> + + <changeSet dbms="!derby" author="b.ulrich" id="a53a2f38-3788-44a2-a151-13b3853ccb74"> + <modifyDataType tableName="EXPORTTEMPLATEPLACEOFUSE" columnName="EXPORTTEMPLATE_ID" newDataType="CHAR(36)"/> + <modifyDataType tableName="EXPORTTEMPLATEFIELD" columnName="EXPORTTEMPLATE_ID" newDataType="CHAR(36)"/> + <modifyDataType tableName="EXPORTTEMPLATESELECTION" columnName="EXPORTTEMPLATE_ID" newDataType="CHAR(36)"/> </changeSet> </databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.2/Notification/changelog.xml b/.liquibase/Data_alias/basic/2020.1.2/Notification/changelog.xml new file mode 100644 index 0000000000000000000000000000000000000000..1c9de620455f1a0e782540d3ca7e86c1181d8dbb --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.2/Notification/changelog.xml @@ -0,0 +1,6 @@ +<?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="init_NotificationType.xml"/> + <include relativeToChangelogFile="true" file="insert_NotificationState.xml"/> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.2/Notification/init_NotificationType.xml b/.liquibase/Data_alias/basic/2020.1.2/Notification/init_NotificationType.xml new file mode 100644 index 0000000000000000000000000000000000000000..3d8f901c79b2216826873ea4664e1f1a401652fc --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.2/Notification/init_NotificationType.xml @@ -0,0 +1,85 @@ +<?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="b2894de0-4a19-4fcb-9412-0a5e91bfec80"> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="f862f71e-9155-4e88-8158-170ddfa4dbf3"/> + <column name="KEYID" value="_____SYSTEM_NOTIFICATION_PHONECALL"/> + <column name="TITLE" value="Phonecall"/> + <column name="CONTAINER" value="NotificationType"/> + <column name="SORTING" valueNumeric="0"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="19876b72-cd7d-4916-b853-22c4d9fe49c2"/> + <column name="KEYID" value="_____SYSTEM_NOTIFICATION_EMAIL"/> + <column name="TITLE" value="Email"/> + <column name="CONTAINER" value="NotificationType"/> + <column name="SORTING" valueNumeric="1"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="16f9fbb5-9b8a-4908-babd-06c86032a22b"/> + <column name="KEYID" value="_____SYSTEM_NOTIFICATION_APPOINTMENT"/> + <column name="TITLE" value="Appointment"/> + <column name="CONTAINER" value="NotificationType"/> + <column name="SORTING" valueNumeric="2"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="53458dba-80f5-427c-a44c-3fc8e74f3380"/> + <column name="KEYID" value="_____SYSTEM_NOTIFICATION_TODO"/> + <column name="TITLE" value="ToDo"/> + <column name="CONTAINER" value="NotificationType"/> + <column name="SORTING" valueNumeric="3"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="3d2393b3-ed13-44d6-9a6f-9280d84252cb"/> + <column name="KEYID" value="DownloadReady"/> + <column name="TITLE" value="download ready"/> + <column name="CONTAINER" value="NotificationType"/> + <column name="SORTING" valueNumeric="4"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="09ce4611-3254-4590-958a-79178924188b"/> + <column name="KEYID" value="BulkMailSent"/> + <column name="TITLE" value="bulk mail sent"/> + <column name="CONTAINER" value="NotificationType"/> + <column name="SORTING" valueNumeric="5"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="df47c6db-2a72-464a-b155-c4e33a4294ba"/> + <column name="KEYID" value="Leadimport_Notification"/> + <column name="TITLE" value="leadimport notification"/> + <column name="CONTAINER" value="NotificationType"/> + <column name="SORTING" valueNumeric="6"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="58281d88-71a7-4fa7-8ef8-9289fc904697"/> + <column name="KEYID" value="WorkflowNotification"/> + <column name="TITLE" value="workflow notification"/> + <column name="CONTAINER" value="NotificationType"/> + <column name="SORTING" valueNumeric="7"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.2/Notification/insert_NotificationState.xml b/.liquibase/Data_alias/basic/2020.1.2/Notification/insert_NotificationState.xml new file mode 100644 index 0000000000000000000000000000000000000000..35501bf1692b76aa533e32e47930c612f0d97ef2 --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.2/Notification/insert_NotificationState.xml @@ -0,0 +1,15 @@ +<?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="b2894de0-4a19-4fcb-9412-0a5e91bfec80"> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="daa6d8d8-fdc6-4fb2-9677-9ccc1f8a9b81"/> + <column name="KEYID" value="TODELETE"/> + <column name="TITLE" value="TODELETE"/> + <column name="CONTAINER" value="NotificationState"/> + <column name="SORTING" valueNumeric="4"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.2/changelog.xml b/.liquibase/Data_alias/basic/2020.1.2/changelog.xml index 7564d2c1056f082eed989a808b8dd3c36756a230..1c85cb3902af93aedea0ecdcb568ade70245a5d0 100644 --- a/.liquibase/Data_alias/basic/2020.1.2/changelog.xml +++ b/.liquibase/Data_alias/basic/2020.1.2/changelog.xml @@ -1,9 +1,10 @@ <?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 file="AlterDocumentTemplatePlaceOfUseDatatype/changelog.xml" relativeToChangelogFile="true"/> - <include file="AddNullableToDateNew.xml" relativeToChangelogFile="true" /> + <include file="AlterDatatypeOfKeyColumnsToChar/changelog.xml" relativeToChangelogFile="true"/> + <include file="AddNullableToDateNew.xml" relativeToChangelogFile="true" /> <include file="insert_workflowCategory_keyword.xml" relativeToChangelogFile="true"/> + <include file="Notification/changelog.xml" relativeToChangelogFile="true" /> <include relativeToChangelogFile="true" file="drop_salesorder_unpaid.xml"/> <include relativeToChangelogFile="true" file="drop_salesorder_versnr.xml"/> </databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.2/insert_workflowCategory_keyword.xml b/.liquibase/Data_alias/basic/2020.1.2/insert_workflowCategory_keyword.xml new file mode 100644 index 0000000000000000000000000000000000000000..a4bbbd1638f60b4023e3ccab49955e358c011ba9 --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.2/insert_workflowCategory_keyword.xml @@ -0,0 +1,24 @@ +<?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.listl" id="38b13161-5163-48d9-9791-f9c7027cac62"> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="f241b36a-c2fe-40be-9e2e-8293c700d096"/> + <column name="KEYID" value="WORKFLOWCATEGORYMARKETING"/> + <column name="TITLE" value="Marketing"/> + <column name="CONTAINER" value="WorkflowCategory"/> + <column name="SORTING" valueNumeric="1"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="00a72718-554e-46ab-b83c-fb9b81be4be6"/> + <column name="KEYID" value="WORKFLOWCATEGORYRELEASE"/> + <column name="TITLE" value="Release"/> + <column name="CONTAINER" value="WorkflowCategory"/> + <column name="SORTING" valueNumeric="2"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.3/AlterButtonlabelTitles/AlterButtonLabelTitles.xml b/.liquibase/Data_alias/basic/2020.1.3/AlterButtonlabelTitles/AlterButtonLabelTitles.xml new file mode 100644 index 0000000000000000000000000000000000000000..5bc4d387a4d7bc4cdcc662a0fa1a30bce6ed7580 --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.3/AlterButtonlabelTitles/AlterButtonLabelTitles.xml @@ -0,0 +1,18 @@ +<?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="b.ulrich" id="853aca63-8234-4dfd-9fc6-2e8b71af82aa"> + <update tableName="AB_KEYWORD_ENTRY"> + <column name="TITLE" value="Read"/> + <where>AB_KEYWORD_ENTRYID='b5f402a0-29a0-43e9-8db3-454fdbcfc9d1'</where> + </update> + <update tableName="AB_KEYWORD_ENTRY"> + <column name="TITLE" value="New"/> + <where>AB_KEYWORD_ENTRYID='678f61e5-ef27-4e1c-b52b-0e19188b038d'</where> + </update> + <update tableName="AB_KEYWORD_ENTRY"> + <column name="TITLE" value="Archived"/> + <where>AB_KEYWORD_ENTRYID='1c40a2de-e6c1-469b-b324-d7089893ca5c'</where> + </update> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.3/VisitPlanEntry/rename_VisitPlanEntry_ORGANISATION_ID.xml b/.liquibase/Data_alias/basic/2020.1.3/VisitPlanEntry/rename_VisitPlanEntry_ORGANISATION_ID.xml new file mode 100644 index 0000000000000000000000000000000000000000..0603638910cfef98114adef301c6cffd487b4260 --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.3/VisitPlanEntry/rename_VisitPlanEntry_ORGANISATION_ID.xml @@ -0,0 +1,11 @@ +<?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 id="3d7f038c-04f1-45a2-9a1c-73c1a8666fea" author="b.ulrich" > + <renameColumn + columnDataType="CHAR(36)" + newColumnName="ORGANISATION_CONTACT_ID" + oldColumnName="ORGANISATION_ID" + tableName="VISITPLANENTRY"/> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.3/changelog.xml b/.liquibase/Data_alias/basic/2020.1.3/changelog.xml new file mode 100644 index 0000000000000000000000000000000000000000..ac6898c7f18146b9aa3b2701ecc493491fa9d3f2 --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.3/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 file="AlterButtonLabelTitles/AlterButtonLabelTitles.xml" relativeToChangelogFile="true" /> + <!-- disabled the following script since it is WIP--> + <!--<include file="VisitPlanEntry/rename_VisitPlanEntry_ORGANISATION_ID.xml" relativeToChangelogFile="true" />--> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/visitplan.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/visitplan.xml index af7e5d06f6b435f4ed23b000313f51c786bc0dfc..76b2a507a6cc1d7a3a10c71d177fcffa55ad4d8d 100644 --- a/.liquibase/Data_alias/basic/_demoData/generatedData/visitplan.xml +++ b/.liquibase/Data_alias/basic/_demoData/generatedData/visitplan.xml @@ -15,7 +15,7 @@ <column name="ENTRYDATE" valueDate="2020-05-18"/> <column name="BEGIN_TIME" value="10:00"/> <column name="END_TIME" value="11:00"/> - <column name="ORGANISATION_ID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/> + <column name="ORGANISATION_CONTACT_ID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/> <column name ="CONTACT_ID" value="6c612f91-0160-4f09-9103-dccee7f7a6b7"/> <column name="VISITPLANEMPLOYEEWEEK_ID" value="821b3424-b6d2-41f8-b0b2-6a7c2c050214"/> <column name="STATUS" value="VISITSTATUSPLANNED "/> @@ -25,7 +25,7 @@ <column name="ENTRYDATE" valueDate="2020-05-19"/> <column name="BEGIN_TIME" value="14:00"/> <column name="END_TIME" value="17:00"/> - <column name="ORGANISATION_ID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/> + <column name="ORGANISATION_CONTACT_ID" value="dec94545-2487-46d5-978d-26ee0fcf0f5f"/> <column name ="CONTACT_ID" value="45635aca-7971-43df-a683-c80c86cb58cc"/> <column name="VISITPLANEMPLOYEEWEEK_ID" value="821b3424-b6d2-41f8-b0b2-6a7c2c050214"/> <column name="STATUS" value="VISITSTATUSPLANNED "/> @@ -35,7 +35,7 @@ <column name="ENTRYDATE" valueDate="2020-05-19"/> <column name="BEGIN_TIME" value="10:00"/> <column name="END_TIME" value="11:00"/> - <column name="ORGANISATION_ID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/> + <column name="ORGANISATION_CONTACT_ID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/> <column name ="CONTACT_ID" value="ef345d11-a40d-59e0-a24c-afcb6095d2cb"/> <column name="VISITPLANEMPLOYEEWEEK_ID" value="821b3424-b6d2-41f8-b0b2-6a7c2c050214"/> <column name="STATUS" value="VISITSTATUSPLANNED "/> @@ -45,7 +45,7 @@ <column name="ENTRYDATE" valueDate="2020-05-20"/> <column name="BEGIN_TIME" value="10:00"/> <column name="END_TIME" value="11:00"/> - <column name="ORGANISATION_ID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/> + <column name="ORGANISATION_CONTACT_ID" value="8707accf-b1fd-4bde-97b1-ab44b75f66f9"/> <column name ="CONTACT_ID" value="79ce56fc-0022-4d5c-91b1-080c0f1e2191"/> <column name="VISITPLANEMPLOYEEWEEK_ID" value="821b3424-b6d2-41f8-b0b2-6a7c2c050214"/> <column name="STATUS" value="VISITSTATUSPLANNED "/> @@ -64,7 +64,7 @@ <column name="ENTRYDATE" valueDate="2020-05-25"/> <column name="BEGIN_TIME" value="10:00"/> <column name="END_TIME" value="11:00"/> - <column name="ORGANISATION_ID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/> + <column name="ORGANISATION_CONTACT_ID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/> <column name="VISITPLANEMPLOYEEWEEK_ID" value="73fbf25a-5668-411f-9ef5-42603d163a77"/> <column name="STATUS" value="VISITSTATUSPLANNED "/> </insert> @@ -73,7 +73,7 @@ <column name="ENTRYDATE" valueDate="2020-05-26"/> <column name="BEGIN_TIME" value="10:00"/> <column name="END_TIME" value="11:00"/> - <column name="ORGANISATION_ID" value="fd082db5-be43-4219-a705-588f9c06e59b"/> + <column name="ORGANISATION_CONTACT_ID" value="fd082db5-be43-4219-a705-588f9c06e59b"/> <column name="VISITPLANEMPLOYEEWEEK_ID" value="73fbf25a-5668-411f-9ef5-42603d163a77"/> <column name="STATUS" value="VISITSTATUSPLANNED "/> </insert> @@ -82,7 +82,7 @@ <column name="ENTRYDATE" valueDate="2020-05-27"/> <column name="BEGIN_TIME" value="10:00"/> <column name="END_TIME" value="11:00"/> - <column name="ORGANISATION_ID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/> + <column name="ORGANISATION_CONTACT_ID" value="a3fd3c23-12e1-4820-b76e-2cd70103d94d"/> <column name="VISITPLANEMPLOYEEWEEK_ID" value="73fbf25a-5668-411f-9ef5-42603d163a77"/> <column name="STATUS" value="VISITSTATUSPLANNED "/> </insert> diff --git a/.liquibase/Data_alias/changelog.xml b/.liquibase/Data_alias/changelog.xml index a8cc53b406959a8797b32a02af71dd93e1576384..415dcce4162c36e2f1c7945a6082d40e3968a5b1 100644 --- a/.liquibase/Data_alias/changelog.xml +++ b/.liquibase/Data_alias/changelog.xml @@ -14,7 +14,7 @@ <include relativeToChangelogFile="true" file="basic/2020.1.0/changelog.xml"/> <include relativeToChangelogFile="true" file="basic/2020.1.1/changelog.xml"/> <include relativeToChangelogFile="true" file="basic/2020.1.2/changelog.xml"/> - + <!--enable this only when you definetly want to overwrite the existing data with demo records:--> <!--<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 80c4686210790a754e8528e02b583a833eebcfb3..6e685b98b76ffee42644c33a1e7fe269291ca42a 100644 --- a/aliasDefinition/Data_alias/Data_alias.aod +++ b/aliasDefinition/Data_alias/Data_alias.aod @@ -1180,12 +1180,12 @@ <name>MEDIUM_ID</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="12" /> + <columnType v="1" /> <size v="36" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> - <index v="true" /> + <index v="false" /> <title>Medium</title> <description></description> <customProperties> @@ -8275,7 +8275,7 @@ <columnType v="93" /> <size v="29" /> <scale v="9" /> - <notNull v="false" /> + <notNull v="true" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -8382,13 +8382,13 @@ <entityFieldDb> <name>DOCUMENTTEMPLATEID</name> <dbName></dbName> - <primaryKey v="true" /> + <primaryKey v="false" /> <columnType v="1" /> <size v="36" /> <scale v="0" /> - <notNull v="true" /> - <isUnique v="true" /> - <index v="true" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> <documentation></documentation> <title></title> <description></description> @@ -8560,7 +8560,7 @@ <columnType v="93" /> <size v="29" /> <scale v="9" /> - <notNull v="false" /> + <notNull v="true" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -8699,7 +8699,7 @@ <columnType v="93" /> <size v="29" /> <scale v="9" /> - <notNull v="false" /> + <notNull v="true" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -8957,7 +8957,7 @@ <columnType v="93" /> <size v="29" /> <scale v="9" /> - <notNull v="false" /> + <notNull v="true" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -9312,7 +9312,7 @@ <columnType v="93" /> <size v="29" /> <scale v="9" /> - <notNull v="false" /> + <notNull v="true" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -11604,7 +11604,7 @@ <columnType v="93" /> <size v="29" /> <scale v="9" /> - <notNull v="false" /> + <notNull v="true" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -11923,7 +11923,7 @@ <columnType v="93" /> <size v="29" /> <scale v="9" /> - <notNull v="false" /> + <notNull v="true" /> <isUnique v="false" /> <index v="false" /> <documentation></documentation> @@ -14019,12 +14019,12 @@ <name>EXPORTTEMPLATE_ID</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="12" /> + <columnType v="1" /> <size v="36" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> - <index v="true" /> + <index v="false" /> <documentation></documentation> <title></title> <description></description> @@ -14345,12 +14345,12 @@ <name>EXPORTTEMPLATE_ID</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="12" /> + <columnType v="1" /> <size v="36" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> - <index v="true" /> + <index v="false" /> <documentation></documentation> <title></title> <description></description> @@ -14400,12 +14400,12 @@ <name>EXPORTTEMPLATE_ID</name> <dbName></dbName> <primaryKey v="false" /> - <columnType v="12" /> + <columnType v="1" /> <size v="36" /> <scale v="0" /> <notNull v="false" /> <isUnique v="false" /> - <index v="true" /> + <index v="false" /> <documentation></documentation> <title></title> <description></description> diff --git a/entity/Address_entity/Address_entity.aod b/entity/Address_entity/Address_entity.aod index a8fab2595e8795a739e854e715f1669bbd0477ac..0b6f95c995e62e440e543f9a9839fd760bf4a6c3 100644 --- a/entity/Address_entity/Address_entity.aod +++ b/entity/Address_entity/Address_entity.aod @@ -15,8 +15,6 @@ <mandatoryProcess>%aditoprj%/entity/Address_entity/entityfields/address/mandatoryProcess.js</mandatoryProcess> <textInputAllowed v="true" /> <stateProcess>%aditoprj%/entity/Address_entity/entityfields/address/stateProcess.js</stateProcess> - <valueProcess>%aditoprj%/entity/Address_entity/entityfields/address/valueProcess.js</valueProcess> - <displayValueProcess>%aditoprj%/entity/Address_entity/entityfields/address/displayValueProcess.js</displayValueProcess> <onValueChange>%aditoprj%/entity/Address_entity/entityfields/address/onValueChange.js</onValueChange> <onValueChangeTypes> <element>MASK</element> diff --git a/entity/Address_entity/entityfields/address/displayValueProcess.js b/entity/Address_entity/entityfields/address/displayValueProcess.js deleted file mode 100644 index 18985f7a004b046c160746de13e8970eb6c87ece..0000000000000000000000000000000000000000 --- a/entity/Address_entity/entityfields/address/displayValueProcess.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.vars"); -import("system.result"); - -// Needed for instant refresh if set by neon.setFieldValue -// use the code if address webservice is active -//result.string(vars.get("$field.ADDRESS")); \ No newline at end of file diff --git a/entity/Address_entity/entityfields/address/valueProcess.js b/entity/Address_entity/entityfields/address/valueProcess.js deleted file mode 100644 index 2c9d496185be419f31c762709ca97d83a1ae4bd4..0000000000000000000000000000000000000000 --- a/entity/Address_entity/entityfields/address/valueProcess.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.result"); -import("WsValidation_lib"); -import("system.vars"); - -// use the code if address webservice is active -//result.string(WsValidationUtils.valueFromJSON(vars.get("$this.value"))); \ No newline at end of file diff --git a/entity/Address_entity/entityfields/address_ws/valueProcess.js b/entity/Address_entity/entityfields/address_ws/valueProcess.js index 5ccdf5a99f70f8b801158a56c1fa7b8136854130..2c7449d49d0036b67e5de71b0a7d7cf9b75876a9 100644 --- a/entity/Address_entity/entityfields/address_ws/valueProcess.js +++ b/entity/Address_entity/entityfields/address_ws/valueProcess.js @@ -1,3 +1,5 @@ +import("system.vars"); import("WsValidation_lib"); -WsValidationFieldUtils.wsValueProcess(WsValidationType.get().TYPE_STREET_NOMINATIM, "$field.ADDRESS"); \ No newline at end of file +if(!vars.get("$this.value")) + WsValidationFieldUtils.wsValueProcess(WsValidationType.get().TYPE_STREET_NOMINATIM, "$field.ADDRESS"); \ No newline at end of file diff --git a/entity/AnyContact_entity/AnyContact_entity.aod b/entity/AnyContact_entity/AnyContact_entity.aod index b9e852b3b2ae077b24a41200d051dad37e408a9a..c9855622f5a88df06c57b8c307adf3df0b6b88e7 100644 --- a/entity/AnyContact_entity/AnyContact_entity.aod +++ b/entity/AnyContact_entity/AnyContact_entity.aod @@ -4,7 +4,7 @@ <majorModelMode>DISTRIBUTED</majorModelMode> <documentation>%aditoprj%/entity/AnyContact_entity/documentation.adoc</documentation> <contentTitleProcess>%aditoprj%/entity/AnyContact_entity/contentTitleProcess.js</contentTitleProcess> - <onInit>%aditoprj%/entity/AnyContact_entity/onInit.js</onInit> + <initFilterProcess>%aditoprj%/entity/AnyContact_entity/initFilterProcess.js</initFilterProcess> <imageProcess>%aditoprj%/entity/AnyContact_entity/imageProcess.js</imageProcess> <recordContainer>db</recordContainer> <entityFields> diff --git a/entity/AnyContact_entity/initFilterProcess.js b/entity/AnyContact_entity/initFilterProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..695577262bdb7ee4519993bcaf130262075e81ca --- /dev/null +++ b/entity/AnyContact_entity/initFilterProcess.js @@ -0,0 +1,19 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var statusInactive = $KeywordRegistry.contactStatus$inactive(); +var filter = { + type: "group", + operator: "AND", + childs: [{ + type: "row", + name: "STATUS", + operator: "NOT_EQUAL", + contenttype: "TEXT", + key: statusInactive, + value: KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusInactive) + }] +}; + +result.string(JSON.stringify(filter)); \ No newline at end of file diff --git a/entity/AnyContact_entity/onInit.js b/entity/AnyContact_entity/onInit.js deleted file mode 100644 index a75a8d405e273b1b3e026251a305676c2ccbd9ad..0000000000000000000000000000000000000000 --- a/entity/AnyContact_entity/onInit.js +++ /dev/null @@ -1,23 +0,0 @@ -import("system.neon"); -import("Keyword_lib"); -import("system.vars"); -import("KeywordRegistry_basic"); - -var statusFilterElement = { - "type":"row", - "name":"STATUS", - "operator":"NOT_EQUAL", - "key":$KeywordRegistry.contactStatus$inactive(), - "contenttype": "TEXT" -}; - -statusFilterElement.value = KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusFilterElement.key); - -var filter = { - "type":"group", - "operator":"AND", - "childs": [statusFilterElement] -}; - -filter = JSON.stringify(filter); -neon.setFilter("#ENTITY", filter); \ No newline at end of file diff --git a/entity/Appointment_entity/Appointment_entity.aod b/entity/Appointment_entity/Appointment_entity.aod index 28c70af66100db91d5c2b61eea6d9ff584fb5832..c68158fb3304f71cc78829cd7f1490171a04782b 100644 --- a/entity/Appointment_entity/Appointment_entity.aod +++ b/entity/Appointment_entity/Appointment_entity.aod @@ -183,6 +183,7 @@ <entityParameter> <name>AppointmentState_param</name> <valueProcess>%aditoprj%/entity/Appointment_entity/entityfields/appointmentlinks/children/appointmentstate_param/valueProcess.js</valueProcess> + <expose v="false" /> </entityParameter> </children> </entityConsumer> diff --git a/entity/Appointment_entity/entityfields/begin/valueProcess.js b/entity/Appointment_entity/entityfields/begin/valueProcess.js index 494b5d528f0bac0d2135955a873332e8a462641b..87e3ad4739d488a6973d66b2320eac4c6e31dfd4 100644 --- a/entity/Appointment_entity/entityfields/begin/valueProcess.js +++ b/entity/Appointment_entity/entityfields/begin/valueProcess.js @@ -19,8 +19,8 @@ if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$para /** * Sets explicitly the start date when a preset is sent from the core, due to a move or resize event from the user. Do not remove. */ -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && vars.exists("$param.Entry_param")) -{ - let event = JSON.parse(vars.getString("$param.Entry_param")); - result.string(event[calendars.DTSTART]); -} \ No newline at end of file +//if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && vars.exists("$param.Entry_param")) +//{ +// var event = JSON.parse(vars.getString("$param.Entry_param")); +// result.string(event[calendars.DTSTART]); +//} \ No newline at end of file diff --git a/entity/Appointment_entity/entityfields/end/valueProcess.js b/entity/Appointment_entity/entityfields/end/valueProcess.js index 23262e1a868e63515d37b22d4124b1d79728cc74..4f9cd21b8a46a565aab9140cd54114628d793305 100644 --- a/entity/Appointment_entity/entityfields/end/valueProcess.js +++ b/entity/Appointment_entity/entityfields/end/valueProcess.js @@ -19,8 +19,8 @@ if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$para /** * Sets explicitly the end date when a preset is sent from the core, due to a move or resize event from the user. Do not remove. */ -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && vars.exists("$param.Entry_param")) -{ - let event = JSON.parse(vars.getString("$param.Entry_param")); - result.string(event[calendars.DTEND]); -} \ No newline at end of file +//if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT && vars.exists("$param.Entry_param")) +//{ +// let event = JSON.parse(vars.getString("$param.Entry_param")); +// result.string(event[calendars.DTEND]); +//} \ No newline at end of file diff --git a/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js b/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js index 7e8972a145953d11163f3fccc1879487dea6e31b..e56415a0faf52007f91bcc4e92f9ae20aebfa819 100644 --- a/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Appointment_entity/recordcontainers/jdito/contentProcess.js @@ -13,7 +13,25 @@ import("system.neon"); var appointmentSelect = newSelect("APPOINTMENT_ID").from("AB_APPOINTMENTLINK"); var appointmentUids; -if(vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW && vars.get("$local.idvalues") != null && vars.get("$local.idvalues") != "") +/** + * Will be used, if the user is operating the calendar. + */ +if(vars.exists("$param.Entry_param") && vars.get("$param.Entry_param")) +{ + var entry = JSON.parse(vars.getString("$param.Entry_param")); + + var masterEntry = null; + if (vars.exists("$param.MasterEntry_param") && vars.get("$param.MasterEntry_param") != "") { + masterEntry = JSON.parse(vars.getString("$param.MasterEntry_param")); + } + + //@TODO Icon + result.object([ + buildEntry(entry, masterEntry) + ]); +} + +else if(vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW && vars.get("$local.idvalues") != null && vars.get("$local.idvalues") != "") { var selectedids = vars.get("$local.idvalues"); result.object([buildEntry(calendars.getEntry(selectedids, null, null), null)]); @@ -35,23 +53,6 @@ else if(vars.getString("$param.LinkedObjectId_param") != undefined) appointmentSelect.whereIfSet("AB_APPOINTMENTLINK.OBJECT_ROWID", "$param.LinkedObjectId_param") result.object(buildEntriesFromUids(appointmentSelect.table())); } -/** - * Will be used, if the user is operating the calendar. - */ -else if(vars.exists("$param.Entry_param") && vars.get("$param.Entry_param")) -{ - var entry = JSON.parse(vars.getString("$param.Entry_param")); - - var masterEntry = null; - if (vars.exists("$param.MasterEntry_param") && vars.get("$param.MasterEntry_param") != "") { - masterEntry = JSON.parse(vars.getString("$param.MasterEntry_param")); - } - - //@TODO Icon - result.object([ - buildEntry(entry, masterEntry) - ]); -} function buildEntriesFromUids(appointmentUids) { diff --git a/entity/Appointment_entity/recordcontainers/jdito/onUpdate.js b/entity/Appointment_entity/recordcontainers/jdito/onUpdate.js index d9c947a770aed397a837cdea2483289f3d0ef2de..32ea225c34405b2ce25a50d2199e8c1800ae20c6 100644 --- a/entity/Appointment_entity/recordcontainers/jdito/onUpdate.js +++ b/entity/Appointment_entity/recordcontainers/jdito/onUpdate.js @@ -56,7 +56,7 @@ if(event) event[calendars.REMINDER_DURATION] = fields["REMINDER.value"]; } - if(event[calendars.RRULE]) + if(fields["RRULE.value"]) event[calendars.RRULE] = [fields["RRULE.value"]]; // Adds the required X-Header for status actions needed by Exchange and Domino diff --git a/entity/AttributeUsage_entity/entityfields/date_new/valueProcess.js b/entity/AttributeUsage_entity/entityfields/date_new/valueProcess.js deleted file mode 100644 index 7acb3c80848f54a4c6dfee5efa7a5b8514dd4a71..0000000000000000000000000000000000000000 --- a/entity/AttributeUsage_entity/entityfields/date_new/valueProcess.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) - result.string(vars.getString("$sys.date")); \ No newline at end of file diff --git a/entity/AttributeUsage_entity/entityfields/user_new/valueProcess.js b/entity/AttributeUsage_entity/entityfields/user_new/valueProcess.js deleted file mode 100644 index a8a5e28793c742f8f3e10907976e746faf43c67c..0000000000000000000000000000000000000000 --- a/entity/AttributeUsage_entity/entityfields/user_new/valueProcess.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) - result.string(vars.getString("$sys.user")); \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/attributeactions/children/newchildattribute/stateProcess.js b/entity/Attribute_entity/entityfields/attributeactions/children/newchildattribute/stateProcess.js index 1d16d29705904d8d5e24c0c3990b0d6b9693bcca..a1ee18e84b4a9407a6334fc9924ef885a41c7176 100644 --- a/entity/Attribute_entity/entityfields/attributeactions/children/newchildattribute/stateProcess.js +++ b/entity/Attribute_entity/entityfields/attributeactions/children/newchildattribute/stateProcess.js @@ -3,7 +3,7 @@ import("system.result"); import("system.vars"); import("system.neon"); -if(vars.get("$sys.selection").length == 1 && (vars.get("$field.ATTRIBUTE_TYPE") == $AttributeTypes.GROUP.toString() || vars.get("$field.ATTRIBUTE_TYPE") == $AttributeTypes.OBJECTSELECTION.toString())) +if(vars.get("$sys.selection").length == 1 && AttributeTypeUtil.isGroupType(vars.get("$field.ATTRIBUTE_TYPE"))) result.string(neon.COMPONENTSTATE_EDITABLE); else result.string(neon.COMPONENTSTATE_DISABLED); \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/date_new/valueProcess.js b/entity/Attribute_entity/entityfields/date_new/valueProcess.js deleted file mode 100644 index 7acb3c80848f54a4c6dfee5efa7a5b8514dd4a71..0000000000000000000000000000000000000000 --- a/entity/Attribute_entity/entityfields/date_new/valueProcess.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) - result.string(vars.getString("$sys.date")); \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/keywordattributetype/children/containername_param/valueProcess.js b/entity/Attribute_entity/entityfields/keywordattributetype/children/containername_param/valueProcess.js deleted file mode 100644 index dc6dfca332983312b5fc1181f8a357c182ac603f..0000000000000000000000000000000000000000 --- a/entity/Attribute_entity/entityfields/keywordattributetype/children/containername_param/valueProcess.js +++ /dev/null @@ -1,5 +0,0 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -result.string($KeywordRegistry.attributeType()); \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/user_new/valueProcess.js b/entity/Attribute_entity/entityfields/user_new/valueProcess.js deleted file mode 100644 index a8a5e28793c742f8f3e10907976e746faf43c67c..0000000000000000000000000000000000000000 --- a/entity/Attribute_entity/entityfields/user_new/valueProcess.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) - result.string(vars.getString("$sys.user")); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js b/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js index 07c57c1e196e3db902ee7f56434ab85cdcda55af..6db4d90300246ab7382bfbcf8db4efe6ec9572e7 100644 --- a/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js +++ b/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js @@ -4,6 +4,6 @@ import("system.vars"); if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW) { - var stepId = CampaignUtils.getDefaultCampaignStep(vars.get("local.value")); + var stepId = CampaignUtils.getDefaultCampaignStep(vars.get("$local.value")); neon.setFieldValue("$field.CAMPAIGNSTEP_ID", stepId); } \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/participantscommrestiction/children/contactid_param/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/participantscommrestiction/children/contactid_param/valueProcess.js deleted file mode 100644 index f5825a6c09c99e0530939a270bcd81cfbc0c2d5b..0000000000000000000000000000000000000000 --- a/entity/CampaignParticipant_entity/entityfields/participantscommrestiction/children/contactid_param/valueProcess.js +++ /dev/null @@ -1,4 +0,0 @@ -import("system.result"); -import("system.vars"); - -result.string(vars.getString("$field.CONTACT_ID")); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/selectedcampaign/onValueChange.js b/entity/CampaignParticipant_entity/entityfields/selectedcampaign/onValueChange.js deleted file mode 100644 index 2bf64744b6548030c6db0cb825f376192bfdf5e1..0000000000000000000000000000000000000000 --- a/entity/CampaignParticipant_entity/entityfields/selectedcampaign/onValueChange.js +++ /dev/null @@ -1,4 +0,0 @@ -import("system.neon"); - - -neon.setFieldValue("$field.SYSTEMTEMPLATE", templateId); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js index b91c3634ae7fa3229e120ed364433b3f7787b276..04d8b224fd5596fc97753ed1afd61ad16cee5b4c 100644 --- a/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js @@ -3,5 +3,5 @@ import("system.result"); import("system.vars"); //For creation of new Step in CampaignMainView -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.campaignId_param") && vars.get("$param.campaignId_param")) +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.campaignId_param") && vars.get("$param.campaignId_param") && !vars.get("$this.value")) result.string(vars.get("$param.campaignId_param")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js b/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js deleted file mode 100644 index f0e8a44adee3749dafae8e5cba1b67c52701e01a..0000000000000000000000000000000000000000 --- a/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.campaignStepState(), "CAMPAIGNSTEP.STATUS"); -result.string(sql); \ No newline at end of file diff --git a/entity/Campaign_entity/Campaign_entity.aod b/entity/Campaign_entity/Campaign_entity.aod index a9420fd4fbb060bb56b80f2efa888981a719029e..6f35c476eb9f55b732f36f8bf0a22a9a1cd02921 100644 --- a/entity/Campaign_entity/Campaign_entity.aod +++ b/entity/Campaign_entity/Campaign_entity.aod @@ -624,10 +624,6 @@ <name>CURRENCY.displayValue</name> <expression>%aditoprj%/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/currency.displayvalue/expression.js</expression> </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>COUNT.value</name> - <expression>%aditoprj%/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/count.value/expression.js</expression> - </dbRecordFieldMapping> <aggregateFieldDbMapping> <name>COUNT_aggregate.value</name> <recordfield>CAMPAIGN.CAMPAIGNID</recordfield> diff --git a/entity/Contact_entity/Contact_entity.aod b/entity/Contact_entity/Contact_entity.aod index 82c35b3c618ecc933e74b694daa96ad9f97cbfa4..ad05310a9dd5d918ce46a6b17a4ec7564dad10ba 100644 --- a/entity/Contact_entity/Contact_entity.aod +++ b/entity/Contact_entity/Contact_entity.aod @@ -8,8 +8,8 @@ <grantUpdateProcess>%aditoprj%/entity/Contact_entity/grantUpdateProcess.js</grantUpdateProcess> <grantDeleteProcess>%aditoprj%/entity/Contact_entity/grantDeleteProcess.js</grantDeleteProcess> <contentTitleProcess>%aditoprj%/entity/Contact_entity/contentTitleProcess.js</contentTitleProcess> - <onInit>%aditoprj%/entity/Contact_entity/onInit.js</onInit> <onValidation>%aditoprj%/entity/Contact_entity/onValidation.js</onValidation> + <initFilterProcess>%aditoprj%/entity/Contact_entity/initFilterProcess.js</initFilterProcess> <iconId>VAADIN:USERS</iconId> <titlePlural>Contacts</titlePlural> <recordContainer>db</recordContainer> diff --git a/entity/Contact_entity/entityfields/organisation_id/displayValueProcess.js b/entity/Contact_entity/entityfields/organisation_id/displayValueProcess.js index 460b39849d5d34bac95e4b987d28a665b732e860..25f85ab3968071cfcfc4df692b11e5b3cc4f168b 100644 --- a/entity/Contact_entity/entityfields/organisation_id/displayValueProcess.js +++ b/entity/Contact_entity/entityfields/organisation_id/displayValueProcess.js @@ -3,7 +3,7 @@ import("system.db"); import("system.vars"); import("Contact_lib"); -var organisationId = vars.get("$field.ORGANISATION_ID"); -var res = OrganisationUtils.getNameByOrganisationId(organisationId); +var organisationContactId = vars.get("$field.ORGANISATION_CONTACTID"); +var res = OrganisationUtils.getNameByContactId(organisationContactId); result.string(res); \ No newline at end of file diff --git a/entity/Contact_entity/initFilterProcess.js b/entity/Contact_entity/initFilterProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..695577262bdb7ee4519993bcaf130262075e81ca --- /dev/null +++ b/entity/Contact_entity/initFilterProcess.js @@ -0,0 +1,19 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var statusInactive = $KeywordRegistry.contactStatus$inactive(); +var filter = { + type: "group", + operator: "AND", + childs: [{ + type: "row", + name: "STATUS", + operator: "NOT_EQUAL", + contenttype: "TEXT", + key: statusInactive, + value: KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusInactive) + }] +}; + +result.string(JSON.stringify(filter)); \ No newline at end of file diff --git a/entity/Contact_entity/onInit.js b/entity/Contact_entity/onInit.js deleted file mode 100644 index ad4324c7682881b8e9ca470e334269ae822ec522..0000000000000000000000000000000000000000 --- a/entity/Contact_entity/onInit.js +++ /dev/null @@ -1,23 +0,0 @@ -import("system.neon"); -import("Keyword_lib"); -import("system.vars"); -import("KeywordRegistry_basic"); - -var statusFilterElement = { - "type":"row", - "name":"STATUS", - "operator":"NOT_EQUAL", - "key":$KeywordRegistry.contactStatus$inactive(), - "contenttype": vars.get("$property.STATUS.contentType") -}; - -statusFilterElement.value = KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusFilterElement.key); - -var filter = { - "type":"group", - "operator":"AND", - "childs": [statusFilterElement] -}; - -filter = JSON.stringify(filter); -neon.setFilter("#ENTITY", filter); \ No newline at end of file diff --git a/entity/Document_entity/Document_entity.aod b/entity/Document_entity/Document_entity.aod index fa1098dc639a05b340f5fc1a6fda4ca95bb2d521..9e489aa2dd1130329252a759b2ddecca7fc7b297 100644 --- a/entity/Document_entity/Document_entity.aod +++ b/entity/Document_entity/Document_entity.aod @@ -118,6 +118,7 @@ <name>IS_MAIN_DOCUMENT</name> <title>Main document</title> <contentType>BOOLEAN</contentType> + <placeholderProcess>%aditoprj%/entity/Document_entity/entityfields/is_main_document/placeholderProcess.js</placeholderProcess> <dropDownProcess>%aditoprj%/entity/Document_entity/entityfields/is_main_document/dropDownProcess.js</dropDownProcess> <valueProcess>%aditoprj%/entity/Document_entity/entityfields/is_main_document/valueProcess.js</valueProcess> <onValueChange>%aditoprj%/entity/Document_entity/entityfields/is_main_document/onValueChange.js</onValueChange> diff --git a/entity/Document_entity/entityfields/is_main_document/placeholderProcess.js b/entity/Document_entity/entityfields/is_main_document/placeholderProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8b541d6a62aef80de1307ed68f9344719ec9febb --- /dev/null +++ b/entity/Document_entity/entityfields/is_main_document/placeholderProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("Main document")); \ No newline at end of file diff --git a/entity/Email_entity/Email_entity.aod b/entity/Email_entity/Email_entity.aod index fc65d44a8a9fde47fccacef66a19b03e60160dfc..b14e753e4e989ccf0645d68cb7bca2f6cca765c4 100644 --- a/entity/Email_entity/Email_entity.aod +++ b/entity/Email_entity/Email_entity.aod @@ -119,7 +119,7 @@ </entityParameter> <entityActionField> <name>sendMail</name> - <title>send mail</title> + <title>{SEND_MAIL}</title> <onActionProcess>%aditoprj%/entity/Email_entity/entityfields/sendmail/onActionProcess.js</onActionProcess> <iconId>VAADIN:AT</iconId> <stateProcess>%aditoprj%/entity/Email_entity/entityfields/sendmail/stateProcess.js</stateProcess> @@ -128,6 +128,12 @@ <name>AdditionalPlaceholders_param</name> <expose v="true" /> </entityParameter> + <entityParameter> + <name>OfferId_param</name> + <expose v="true" /> + <mandatory v="true" /> + <documentation>%aditoprj%/entity/Email_entity/entityfields/offerid_param/documentation.adoc</documentation> + </entityParameter> </entityFields> <recordContainers> <datalessRecordContainer> diff --git a/entity/Email_entity/entityfields/offerid_param/documentation.adoc b/entity/Email_entity/entityfields/offerid_param/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..cc60a8f815575f3ed65faa6cc6634e6878b173c6 --- /dev/null +++ b/entity/Email_entity/entityfields/offerid_param/documentation.adoc @@ -0,0 +1,3 @@ +=OfferId_pram + +optional param needed for the offerEmails, to change the status of the offer \ No newline at end of file diff --git a/entity/Email_entity/entityfields/sendmail/onActionProcess.js b/entity/Email_entity/entityfields/sendmail/onActionProcess.js index a7bdf5af9030a2f9352c7f5ccd597d334995fd35..74810743f42a7d88c0dfd8989917e0603864ba98 100644 --- a/entity/Email_entity/entityfields/sendmail/onActionProcess.js +++ b/entity/Email_entity/entityfields/sendmail/onActionProcess.js @@ -1,3 +1,5 @@ +import("KeywordRegistry_basic"); +import("Sql_lib"); import("system.translate"); import("ActivityTask_lib"); import("system.neon"); @@ -38,6 +40,11 @@ var eml = EmailWritingUtils.openMailTemplate( additionalPlaceholders ); +if(vars.get("$param.ComingFrom_param") == "Offer") +{ + newWhere("OFFER.OFFERID", vars.get("$param.OfferId_param")) + .updateData(true, "OFFER", ["STATUS"], null, [$KeywordRegistry.offerStatus$sent()]); +} if (notificationMsg) question.showMessage(notificationMsg, question.INFORMATION, notificationTitle); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/contact_id/onValueChange.js b/entity/Employee_entity/entityfields/contact_id/onValueChange.js index d469435d5c78d77ed6371942df1cb330d36389d3..4a1dbe67e5fb2353cd24c297f9ca0c1eb08e9304 100644 --- a/entity/Employee_entity/entityfields/contact_id/onValueChange.js +++ b/entity/Employee_entity/entityfields/contact_id/onValueChange.js @@ -22,7 +22,7 @@ if ((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.r neon.setFieldValues({ "$field.FIRSTNAME" : name[0] || "", "$field.LASTNAME" : name[1] || "", - "$field.EMAIL_ADDRESS" : name[2] || "", + "$field.EMAIL_ADDRESS" : name[2] || vars.get("$field.EMAIL_ADDRESS") || "", "$field.TITLE" : username }); } \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/email_address/dropDownProcess.js b/entity/Employee_entity/entityfields/email_address/dropDownProcess.js index 99e97c2dddc0cae705cdc328a215b226a386f227..559a598b48b1f347bf21ee32e097eacc741b1083 100644 --- a/entity/Employee_entity/entityfields/email_address/dropDownProcess.js +++ b/entity/Employee_entity/entityfields/email_address/dropDownProcess.js @@ -6,7 +6,7 @@ import("system.result"); import("Sql_lib"); var contactId = vars.get("$field.CONTACT_ID"); -if (contactId && (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW)) +if (contactId) { var addresses = newSelect("ADDR, ADDR") .from("COMMUNICATION") diff --git a/entity/KeywordEntry_entity/KeywordEntry_entity.aod b/entity/KeywordEntry_entity/KeywordEntry_entity.aod index 2d0edd64d5ba7e6d9b3e6463f32144b574509094..33635f575600381c7558ab9a11193459f32ac1cb 100644 --- a/entity/KeywordEntry_entity/KeywordEntry_entity.aod +++ b/entity/KeywordEntry_entity/KeywordEntry_entity.aod @@ -583,6 +583,12 @@ <fieldName>CategoryKeyword</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>644a6101-6b11-4998-bd8d-b799c6f376fa</name> + <entityName>Notification_entity</entityName> + <fieldName>TypeKeywords</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> <children> <entityParameter> diff --git a/entity/Language_entity/Language_entity.aod b/entity/Language_entity/Language_entity.aod index 4511f71a29b7613767ddba5aeddac2e16e5dfb8e..a103f19dab7068536886bfa494e959490bf7ab1b 100644 --- a/entity/Language_entity/Language_entity.aod +++ b/entity/Language_entity/Language_entity.aod @@ -121,6 +121,7 @@ <dbRecordContainer> <name>db</name> <alias>Data_alias</alias> + <isPageable v="false" /> <conditionProcess>%aditoprj%/entity/Language_entity/recordcontainers/db/conditionProcess.js</conditionProcess> <linkInformation> <linkInformation> @@ -143,16 +144,20 @@ <dbRecordFieldMapping> <name>ISO3.value</name> <recordfield>AB_LANGUAGE.ISO3</recordfield> - <isFilterable v="true" /> - <isLookupFilter v="true" /> + <isFilterable v="false" /> + <isLookupFilter v="false" /> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>NAME_LATIN.value</name> <recordfield>AB_LANGUAGE.NAME_LATIN</recordfield> + <isFilterable v="true" /> + <isLookupFilter v="true" /> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>NAME_NATIVE.value</name> <recordfield>AB_LANGUAGE.NAME_NATIVE</recordfield> + <isFilterable v="false" /> + <isLookupFilter v="false" /> </dbRecordFieldMapping> </recordFieldMappings> </dbRecordContainer> diff --git a/entity/Leadimport_entity/entityfields/leadimportreset/onActionProcess.js b/entity/Leadimport_entity/entityfields/leadimportreset/onActionProcess.js index c7b4f0fdf7661d9430c260c73320cac09a35dec8..e3ab27e0a12c8b09990f1739ec1e11464248d700 100644 --- a/entity/Leadimport_entity/entityfields/leadimportreset/onActionProcess.js +++ b/entity/Leadimport_entity/entityfields/leadimportreset/onActionProcess.js @@ -46,7 +46,7 @@ function _deleteData (pTableName, pleadimportId, pdateADayBefor) { let uTableName = pTableName.charAt(0); newWhere(pTableName + "." + pTableName + "ID", - newSelect(pTableName + "." + pTableName + "ID") + newSelect(uTableName + "." + pTableName + "ID") .from(pTableName, uTableName) .join("LEADLOG", "LEADLOG.DATE_NEW = " + uTableName + ".DATE_NEW") .where(uTableName + ".USER_NEW = LEADLOG.USER_NEW") diff --git a/entity/Notification_entity/Notification_entity.aod b/entity/Notification_entity/Notification_entity.aod index a3dad29fd35c166e1bed11548b79bff253145df2..990b2e77775f315eb4600a2961136a8a962d8efb 100644 --- a/entity/Notification_entity/Notification_entity.aod +++ b/entity/Notification_entity/Notification_entity.aod @@ -34,7 +34,7 @@ </entityField> <entityField> <name>CAPTION</name> - <title>title</title> + <title>Title</title> </entityField> <entityField> <name>CREATIONDATE</name> @@ -45,7 +45,7 @@ </entityField> <entityField> <name>DESCRIPTION</name> - <title>description</title> + <title>Description</title> </entityField> <entityField> <name>FORCEDPRIORITY</name> @@ -68,6 +68,7 @@ <entityField> <name>TYPECODE</name> <title>Type</title> + <consumer>TypeKeywords</consumer> <groupable v="true" /> <displayValueProcess>%aditoprj%/entity/Notification_entity/entityfields/typecode/displayValueProcess.js</displayValueProcess> </entityField> @@ -103,7 +104,7 @@ <title>set Read</title> <description></description> <onActionProcess>%aditoprj%/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js</onActionProcess> - <isSelectionAction v="true" /> + <isSelectionAction v="false" /> <iconId>VAADIN:OPEN_BOOK</iconId> <tooltip></tooltip> <tooltipProcess>%aditoprj%/entity/Notification_entity/entityfields/setnotificationstate/children/setread/tooltipProcess.js</tooltipProcess> @@ -126,7 +127,7 @@ </entityActionField> <entityField> <name>RESOLVEDPRIORITY</name> - <title>priority</title> + <title>Priority</title> <consumer>PrioKeywords</consumer> <textInputAllowed v="false" /> </entityField> @@ -158,11 +159,27 @@ </entityParameter> </children> </entityConsumer> + <entityConsumer> + <name>TypeKeywords</name> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContainerName_param</name> + <valueProcess>%aditoprj%/entity/Notification_entity/entityfields/typekeywords/children/containername_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> </entityFields> <recordContainers> <dbRecordContainer> <name>db</name> <alias>_____SYSTEMALIAS</alias> + <maximumDbRows v="200" /> + <isPageable v="false" /> <fromClauseProcess>%aditoprj%/entity/Notification_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess> <conditionProcess>%aditoprj%/entity/Notification_entity/recordcontainers/db/conditionProcess.js</conditionProcess> <orderClauseProcess>%aditoprj%/entity/Notification_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess> diff --git a/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js b/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js index 5ee955fd6389e03589d671d10bb0f51aa70a8bb2..d9ff8a7c8fcb193f4d0e526aaa0c517caa3b48b2 100644 --- a/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js +++ b/entity/Notification_entity/entityfields/setnotificationstate/children/setread/onActionProcess.js @@ -1,11 +1,20 @@ +import("Sql_lib"); import("system.vars"); import("system.tools"); import("system.notification"); import("system.neon"); +import("KeywordRegistry_basic"); var user = tools.getCurrentUser(); var selectedNotifications = vars.get("$sys.selection"); +if (selectedNotifications.length == 0){ + selectedNotifications = newSelect("ASYS_NOTIFICATIONS.ID") + .from("ASYS_NOTIFICATIONS") + .where("ASYS_NOTIFICATIONS.STATE", [notification.STATE_SEEN.toString(), notification.STATE_UNSEEN.toString()], SqlBuilder.IN()) + .arrayColumn(); +} + for(var i = 0; i < selectedNotifications.length; i++) notification.updateUserNotificationState(user["name"], selectedNotifications[i], notification.STATE_CONFIRMED); diff --git a/entity/Notification_entity/entityfields/state/displayValueProcess.js b/entity/Notification_entity/entityfields/state/displayValueProcess.js index fcd088324b80387634096e3d62a49a2e82974495..277c05aab18dbce9a8a0a5f7bc078c8ada84c94d 100644 --- a/entity/Notification_entity/entityfields/state/displayValueProcess.js +++ b/entity/Notification_entity/entityfields/state/displayValueProcess.js @@ -1,24 +1,6 @@ -import("system.translate"); +import("Keyword_lib"); import("system.result"); import("system.vars"); +import("KeywordRegistry_basic"); -var value = vars.get("$field.STATE"); - -switch(value) -{ - case "SEEN": - result.string(translate.text("Seen")); - break; - case "CONFIRMED": - result.string(translate.text("Confirmed")); - break; - case "TODELETE": - result.string(translate.text("To Delete")); - break; - case "ARCHIVE": - result.string(translate.text("Archive")); - break; - default: - result.string(translate.text("Unseen")); - break; -} \ No newline at end of file +result.string(KeywordUtils.getViewValue($KeywordRegistry.notificationState(), vars.get("$field.STATE"))); \ No newline at end of file diff --git a/entity/Notification_entity/entityfields/statekeywords/children/containername_param/valueProcess.js b/entity/Notification_entity/entityfields/statekeywords/children/containername_param/valueProcess.js index a5407effb79841e7d2492e6f27f3ce81bfa33a51..f39ea4075a7d01b5ebcd3b54a316ce20694c3e79 100644 --- a/entity/Notification_entity/entityfields/statekeywords/children/containername_param/valueProcess.js +++ b/entity/Notification_entity/entityfields/statekeywords/children/containername_param/valueProcess.js @@ -1,4 +1,5 @@ import("system.result"); +import("KeywordRegistry_basic"); -result.string("NotificationState"); \ No newline at end of file +result.string($KeywordRegistry.notificationState()); \ No newline at end of file diff --git a/entity/Notification_entity/entityfields/typecode/displayValueProcess.js b/entity/Notification_entity/entityfields/typecode/displayValueProcess.js index 76e8d769dc2a82a791668c8df8783f1bfee95141..fcf893072cda6e8d5248ec3392af95b9c2feb13c 100644 --- a/entity/Notification_entity/entityfields/typecode/displayValueProcess.js +++ b/entity/Notification_entity/entityfields/typecode/displayValueProcess.js @@ -1,28 +1,6 @@ +import("Keyword_lib"); import("system.result"); -import("system.translate"); import("system.vars"); +import("KeywordRegistry_basic"); -var PREFIX = "_____SYSTEM_"; -var typecode = vars.get("$field.TYPECODE"); - -switch(typecode) -{ - case PREFIX + "NOTIFICATION_PHONECALL": - result.string(translate.text("Phonecall")); - break; - - case PREFIX + "NOTIFICATION_EMAIL": - result.string(translate.text("Email")); - break; - - case PREFIX + "NOTIFICATION_APPOINTMENT": - result.string(translate.text("Appointment")); - break; - - case PREFIX + "NOTIFICATION_TODO": - result.string(translate.text("Todo")); - break; - - default: - result.string(typecode); -} \ No newline at end of file +result.string(KeywordUtils.getViewValue($KeywordRegistry.notificationType(), vars.get("$field.TYPECODE"))); \ No newline at end of file diff --git a/entity/Notification_entity/entityfields/typekeywords/children/containername_param/valueProcess.js b/entity/Notification_entity/entityfields/typekeywords/children/containername_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8ccc4158b03124fe0be85ad1ffaeeca86efb0fb2 --- /dev/null +++ b/entity/Notification_entity/entityfields/typekeywords/children/containername_param/valueProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("KeywordRegistry_basic"); + + +result.string($KeywordRegistry.notificationType()); \ No newline at end of file diff --git a/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js b/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js index 55ac5773b3cb1302c26846d766e066c70d64222f..4ea71164c3cd8f2f93b39be55a3555cbf9b8090a 100644 --- a/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js @@ -234,7 +234,7 @@ function _getEntryData(pObjectId, pDirection, pRelationType1, pRelationType2, pP if (pRelationType1 == undefined || pRelationType2 == undefined) return []; - var [myNum, otherNum] = pDirection == "normal" ? [2, 1] : [1, 2]; + var [myNum, otherNum] = pDirection == "normal" ? [1, 2] : [2, 1]; onConditionForRelationTypeJoin = newWhere("AB_OBJECTRELATIONTYPEID = AB_OBJECTRELATIONTYPE" + myNum) .and("AB_OBJECTRELATION.AB_OBJECTRELATIONTYPE1", pRelationType1) diff --git a/entity/Offer_entity/entityfields/offerreportdispatch/children/dispatchofferreport/onActionProcess.js b/entity/Offer_entity/entityfields/offerreportdispatch/children/dispatchofferreport/onActionProcess.js index a5b761ab29d8a43dfb5e9f3aa4a2b19a79bf057c..108e16a1568111f622d71415968423884be95d78 100644 --- a/entity/Offer_entity/entityfields/offerreportdispatch/children/dispatchofferreport/onActionProcess.js +++ b/entity/Offer_entity/entityfields/offerreportdispatch/children/dispatchofferreport/onActionProcess.js @@ -27,9 +27,5 @@ attachmentArray[0] = offerReport; var additionalPlaceholders = [ new Placeholder("offerCode", Placeholder.types.FIXEDVALUE, vars.get("$field.FullOfferCode")) ]; - -EmailWritingUtils.sendReportAsMail(contactId, attachmentArray, "Offer", notificationMsg, emailFilename, additionalPlaceholders); - -newWhere("OFFER.OFFERID", "$field.OFFERID") - .updateData(true, "OFFER", ["STATUS"], null, [$KeywordRegistry.offerStatus$sent()]); - +var offerId = vars.get("$field.OFFERID") +EmailWritingUtils.sendReportAsMail(contactId, attachmentArray, "Offer", notificationMsg, emailFilename, additionalPlaceholders, offerId); \ No newline at end of file diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod index 26fe1fdb3d81b895c3116377537320ae54a77d70..cbd7cb44ef5d77d0e3656bfe5867f3c3f68ce8f8 100644 --- a/entity/Organisation_entity/Organisation_entity.aod +++ b/entity/Organisation_entity/Organisation_entity.aod @@ -7,8 +7,9 @@ <title>Company</title> <grantDeleteProcess>%aditoprj%/entity/Organisation_entity/grantDeleteProcess.js</grantDeleteProcess> <contentTitleProcess>%aditoprj%/entity/Organisation_entity/contentTitleProcess.js</contentTitleProcess> - <onInit>%aditoprj%/entity/Organisation_entity/onInit.js</onInit> + <afterUiInit>%aditoprj%/entity/Organisation_entity/afterUiInit.js</afterUiInit> <afterOperatingState>%aditoprj%/entity/Organisation_entity/afterOperatingState.js</afterOperatingState> + <initFilterProcess>%aditoprj%/entity/Organisation_entity/initFilterProcess.js</initFilterProcess> <iconId>VAADIN:BUILDING</iconId> <imageProcess>%aditoprj%/entity/Organisation_entity/imageProcess.js</imageProcess> <titlePlural>Companies</titlePlural> diff --git a/entity/Organisation_entity/afterUiInit.js b/entity/Organisation_entity/afterUiInit.js new file mode 100644 index 0000000000000000000000000000000000000000..d529418d07b0567a96364d831a8a27194c2eca23 --- /dev/null +++ b/entity/Organisation_entity/afterUiInit.js @@ -0,0 +1,7 @@ +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); \ No newline at end of file diff --git a/entity/Organisation_entity/initFilterProcess.js b/entity/Organisation_entity/initFilterProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..26ce7fa02bbaeaa2d25db318aa011b67278354cc --- /dev/null +++ b/entity/Organisation_entity/initFilterProcess.js @@ -0,0 +1,19 @@ +import("Keyword_lib"); +import("KeywordRegistry_basic"); +import("system.result"); + +var statusInactive = $KeywordRegistry.contactStatus$inactive(); +var filter = { + type: "group", + operator: "AND", + childs: [{ + type: "row", + name: "STATUS", + operator: "NOT_EQUAL", + contenttype: "TEXT", + key: statusInactive, + value: KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusInactive) + }] +}; + +result.string(JSON.stringify(filter)); \ No newline at end of file diff --git a/entity/Organisation_entity/onInit.js b/entity/Organisation_entity/onInit.js deleted file mode 100644 index b9717583554415c62b48c4ad8304aceb87245938..0000000000000000000000000000000000000000 --- a/entity/Organisation_entity/onInit.js +++ /dev/null @@ -1,30 +0,0 @@ -import("Keyword_lib"); -import("KeywordRegistry_basic"); -import("system.neon"); -import("system.vars"); -import("Context_lib"); -import("Attribute_lib"); - -var statusFilterElement = { - "type":"row", - "name":"STATUS", - "operator":"NOT_EQUAL", - "key":$KeywordRegistry.contactStatus$inactive(), - "contenttype": "TEXT" -}; - -statusFilterElement.value = KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusFilterElement.key); - -var filter = { - "type":"group", - "operator":"AND", - "childs": [statusFilterElement] -}; - -filter = JSON.stringify(filter); -neon.setFilter("#ENTITY", filter); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); -} diff --git a/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod b/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod index a238832f1d236913854ff9ffa634281c3081d5ec..c2faec477ab09d9a7d1b57c5c8f74b8f4bf4fc19 100644 --- a/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod +++ b/entity/PermissionCalendar_entity/PermissionCalendar_entity.aod @@ -96,6 +96,7 @@ <isMenuAction v="true" /> <isObjectAction v="false" /> <isSelectionAction v="false" /> + <iconId>VAADIN:USER</iconId> <state>AUTO</state> <tooltip></tooltip> </entityActionField> @@ -104,6 +105,7 @@ <title>Receive new Department Permission</title> <onActionProcess>%aditoprj%/entity/PermissionCalendar_entity/entityfields/addactions/children/receivenewdepartmentpermissiondealteraction/onActionProcess.js</onActionProcess> <isObjectAction v="false" /> + <iconId>VAADIN:GROUP</iconId> <state>AUTO</state> </entityActionField> </children> diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod index cbabea32766c97f2a7d1faa4fcc2ede5fd2a3048..907d1408a4c2c5606ddcc61e47249d015939e3e3 100644 --- a/entity/Person_entity/Person_entity.aod +++ b/entity/Person_entity/Person_entity.aod @@ -10,9 +10,10 @@ </siblings> <grantDeleteProcess>%aditoprj%/entity/Person_entity/grantDeleteProcess.js</grantDeleteProcess> <contentTitleProcess>%aditoprj%/entity/Person_entity/contentTitleProcess.js</contentTitleProcess> - <onInit>%aditoprj%/entity/Person_entity/onInit.js</onInit> + <afterUiInit>%aditoprj%/entity/Person_entity/afterUiInit.js</afterUiInit> <onValidation>%aditoprj%/entity/Person_entity/onValidation.js</onValidation> <afterOperatingState>%aditoprj%/entity/Person_entity/afterOperatingState.js</afterOperatingState> + <initFilterProcess>%aditoprj%/entity/Person_entity/initFilterProcess.js</initFilterProcess> <iconId>VAADIN:USERS</iconId> <imageProcess>%aditoprj%/entity/Person_entity/imageProcess.js</imageProcess> <usePermissions v="false" /> diff --git a/entity/Person_entity/afterUiInit.js b/entity/Person_entity/afterUiInit.js new file mode 100644 index 0000000000000000000000000000000000000000..d529418d07b0567a96364d831a8a27194c2eca23 --- /dev/null +++ b/entity/Person_entity/afterUiInit.js @@ -0,0 +1,7 @@ +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); \ No newline at end of file diff --git a/entity/Person_entity/initFilterProcess.js b/entity/Person_entity/initFilterProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..26ce7fa02bbaeaa2d25db318aa011b67278354cc --- /dev/null +++ b/entity/Person_entity/initFilterProcess.js @@ -0,0 +1,19 @@ +import("Keyword_lib"); +import("KeywordRegistry_basic"); +import("system.result"); + +var statusInactive = $KeywordRegistry.contactStatus$inactive(); +var filter = { + type: "group", + operator: "AND", + childs: [{ + type: "row", + name: "STATUS", + operator: "NOT_EQUAL", + contenttype: "TEXT", + key: statusInactive, + value: KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusInactive) + }] +}; + +result.string(JSON.stringify(filter)); \ No newline at end of file diff --git a/entity/Person_entity/onInit.js b/entity/Person_entity/onInit.js deleted file mode 100644 index 1958e327f289481afe51088aa62d5d57af3a782f..0000000000000000000000000000000000000000 --- a/entity/Person_entity/onInit.js +++ /dev/null @@ -1,30 +0,0 @@ -import("Keyword_lib"); -import("KeywordRegistry_basic"); -import("system.neon"); -import("system.vars"); -import("Context_lib"); -import("Attribute_lib"); - -var statusFilterElement = { - "type":"row", - "name":"STATUS", - "operator":"NOT_EQUAL", - "key":$KeywordRegistry.contactStatus$inactive(), - "contenttype": "TEXT" -}; - -statusFilterElement.value = KeywordUtils.getViewValue($KeywordRegistry.contactStatus(), statusFilterElement.key); - -var filter = { - "type":"group", - "operator":"AND", - "childs": [statusFilterElement] -}; - -filter = JSON.stringify(filter); -neon.setFilter("#ENTITY", filter); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); -} diff --git a/entity/Salesproject_entity/onValidation.js b/entity/Salesproject_entity/onValidation.js index e0b1e589a7543108c938f3dbb1d9c75b58908753..c9618796815b4f0e83c28c43a12320cd981a3ed9 100644 --- a/entity/Salesproject_entity/onValidation.js +++ b/entity/Salesproject_entity/onValidation.js @@ -1,3 +1,4 @@ +import("system.translate"); import("system.result"); import("Date_lib"); import("system.vars"); @@ -6,4 +7,6 @@ var startDate = vars.get("$field.STARTDATE"); var endDate = vars.get("$field.ENDDATE"); if (!DateUtils.validateBeginnBeforeEnd(startDate, endDate)) - result.string(DateUtils.getValidationFailString()); \ No newline at end of file + result.string(DateUtils.getValidationFailString()); +else if(!vars.get("$field.PROJECTTITLE") && vars.get("$field.PROJECTTYPE") && vars.exists("$param.PresetTitle_param")) + result.string(translate.text("The Sales Project can only be filled when a company has been specified")); \ No newline at end of file diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod index 14cdb18785867088dbb7220fa1bb33afc7b479a3..64f381e93f98b991c2c8502acfc95780050d98c6 100644 --- a/entity/Task_entity/Task_entity.aod +++ b/entity/Task_entity/Task_entity.aod @@ -6,8 +6,9 @@ <title>Task</title> <grantDeleteProcess>%aditoprj%/entity/Task_entity/grantDeleteProcess.js</grantDeleteProcess> <contentTitleProcess>%aditoprj%/entity/Task_entity/contentTitleProcess.js</contentTitleProcess> - <onInit>%aditoprj%/entity/Task_entity/onInit.js</onInit> + <afterUiInit>%aditoprj%/entity/Task_entity/afterUiInit.js</afterUiInit> <onValidation>%aditoprj%/entity/Task_entity/onValidation.js</onValidation> + <initFilterProcess>%aditoprj%/entity/Task_entity/initFilterProcess.js</initFilterProcess> <iconId>VAADIN:TASKS</iconId> <iconIdProcess>%aditoprj%/entity/Task_entity/iconIdProcess.js</iconIdProcess> <titlePlural>Tasks</titlePlural> diff --git a/entity/Task_entity/afterUiInit.js b/entity/Task_entity/afterUiInit.js new file mode 100644 index 0000000000000000000000000000000000000000..2f108ba446930b67156ba07b5e880b1ff371117a --- /dev/null +++ b/entity/Task_entity/afterUiInit.js @@ -0,0 +1,6 @@ +import("system.neon"); +import("system.vars"); +import("ActivityTask_lib"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + TaskUtils.addLinkRecords("$param.ObjectId_param", "$param.RowId_param", "$param.PresetLinks_param", "$field.PARENT_CONTEXT", "$field.PARENT_ID"); \ No newline at end of file diff --git a/entity/Task_entity/initFilterProcess.js b/entity/Task_entity/initFilterProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..39b6e0b2e29be0e89c1cf8279ab9c9ae93a74ab9 --- /dev/null +++ b/entity/Task_entity/initFilterProcess.js @@ -0,0 +1,19 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var statusEnded = $KeywordRegistry.taskStatus$ended(); +var filter = { + type: "group", + operator: "AND", + childs: [{ + type: "row", + name: "STATUS", + operator: "NOT_EQUAL", + contenttype: "TEXT", + key: statusEnded, + value: KeywordUtils.getViewValue($KeywordRegistry.taskStatus(), statusEnded) + }] +}; + +result.string(JSON.stringify(filter)); \ No newline at end of file diff --git a/entity/Task_entity/onInit.js b/entity/Task_entity/onInit.js deleted file mode 100644 index 0a610862cbb9ecae7e44e15eabbc31b0b20eceda..0000000000000000000000000000000000000000 --- a/entity/Task_entity/onInit.js +++ /dev/null @@ -1,31 +0,0 @@ -import("system.neon"); -import("system.vars"); -import("system.neon"); -import("ActivityTask_lib"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var recordState = vars.get("$sys.recordstate"); -if(recordState == neon.OPERATINGSTATE_NEW) -{ - TaskUtils.addLinkRecords("$param.ObjectId_param", "$param.RowId_param", "$param.PresetLinks_param", "$field.PARENT_CONTEXT", "$field.PARENT_ID"); -} -else if (recordState != neon.OPERATINGSTATE_SEARCH) -{ - var statusFilterElement = { - "type":"row", - "name":"STATUS", - "operator":"NOT_EQUAL", - "key":$KeywordRegistry.taskStatus$ended(), - "contenttype": "TEXT" - }; - statusFilterElement.value = KeywordUtils.getViewValue($KeywordRegistry.taskStatus(), statusFilterElement.key); - - var filter = { - "type":"group", - "operator":"AND", - "childs": [statusFilterElement] - }; - filter = JSON.stringify(filter); - neon.setFilter("#ENTITY", filter); -} \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod b/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod index 46740270752b5207fb8b62d480d5ebf3c57259e9..1af833e9b8e4f3713455bea35ac9402bc3d1e732 100644 --- a/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod +++ b/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod @@ -30,14 +30,14 @@ <displayValueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/status/displayValueProcess.js</displayValueProcess> </entityField> <entityField> - <name>ORGANISATION_ID</name> - <documentation>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/organisation_id/documentation.adoc</documentation> + <name>ORGANISATION_CONTACT_ID</name> + <documentation>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/documentation.adoc</documentation> <title>Organisation</title> <consumer>Organisations</consumer> <mandatory v="true" /> - <stateProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/organisation_id/stateProcess.js</stateProcess> - <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/organisation_id/valueProcess.js</valueProcess> - <displayValueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/organisation_id/displayValueProcess.js</displayValueProcess> + <stateProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/stateProcess.js</stateProcess> + <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>ENTRYDATE</name> @@ -247,10 +247,10 @@ <name>END_TIME.value</name> </jDitoRecordFieldMapping> <jDitoRecordFieldMapping> - <name>ORGANISATION_ID.value</name> + <name>ORGANISATION_CONTACT_ID.value</name> </jDitoRecordFieldMapping> <jDitoRecordFieldMapping> - <name>ORGANISATION_ID.displayValue</name> + <name>ORGANISATION_CONTACT_ID.displayValue</name> </jDitoRecordFieldMapping> <jDitoRecordFieldMapping> <name>CONTACT_ID.value</name> diff --git a/entity/VisitPlanEntry_entity/documentation.adoc b/entity/VisitPlanEntry_entity/documentation.adoc index fe840f04ecae1b740eca60633420ce2d1f362c95..13c58c22da0edc3d1657fcdc58b7043705a181e2 100644 --- a/entity/VisitPlanEntry_entity/documentation.adoc +++ b/entity/VisitPlanEntry_entity/documentation.adoc @@ -2,7 +2,8 @@ For storing Visitentries with their information(date, time, contact, and most importantly: it's Status). Linked to VisitPlanEmployeeWeek_entity so you only see the entries in the chosen week. -ORGANISATION_ID is used to store the company that's being visited, CONTACT_ID to Store the Point-of-Contact, +ORGANISATION_CONTACT_ID is used to store the company that's being visited, +CONTACT_ID to Store the Point-of-Contact, since you are normally visiting one specific person. Keep in mind, that only the organization is important for the visitRecommendations and not the Point of Contact. \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/contact_id/onValidation.js b/entity/VisitPlanEntry_entity/entityfields/contact_id/onValidation.js index 03f6b8014252f4c2405882dda74d4955d797c27f..bf3542dc528bf679b61175ff20d1e2cec67e3e60 100644 --- a/entity/VisitPlanEntry_entity/entityfields/contact_id/onValidation.js +++ b/entity/VisitPlanEntry_entity/entityfields/contact_id/onValidation.js @@ -3,7 +3,7 @@ import("system.result"); import("Contact_lib"); import("system.vars"); -var orgId = vars.get("$field.ORGANISATION_ID"); +var orgId = vars.get("$field.ORGANISATION_CONTACT_ID"); var contactId = vars.get("$field.CONTACT_ID"); var orgContactId = ContactUtils.getPersOrgIds(contactId)[2]; diff --git a/entity/VisitPlanEntry_entity/entityfields/contact_id/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/contact_id/valueProcess.js index fe203ca7a71f6d00e5a41fc9b1d2447822c43177..0c443c043435687de4551ffd16df721652c159e0 100644 --- a/entity/VisitPlanEntry_entity/entityfields/contact_id/valueProcess.js +++ b/entity/VisitPlanEntry_entity/entityfields/contact_id/valueProcess.js @@ -12,6 +12,6 @@ if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.v .from("CONTACT") .where("CONTACT.CONTACTID", contactId) .cell(); - neon.setFieldValue("$field.ORGANISATION_ID", orgId); + neon.setFieldValue("$field.ORGANISATION_CONTACT_ID", orgId); result.string(vars.get("$param.ContactId_param")); } \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/onActionProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/onActionProcess.js index 0af8e295e63255fb7540147e6904e87cc65eb4fa..5fdb3779fc2b8699a502c17353bbf34ff9a59bb1 100644 --- a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/onActionProcess.js +++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/onActionProcess.js @@ -17,7 +17,7 @@ var pointOfContact = newSelect("CONTACT.CONTACTID", db.getCurrentAlias()) .leftJoin("AB_ATTRIBUTE", "AB_ATTRIBUTE.AB_ATTRIBUTEID = AB_ATTRIBUTERELATION.AB_ATTRIBUTE_ID") .leftJoin("ORGANISATION", "ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID") .where("AB_ATTRIBUTE.AB_ATTRIBUTEID", $AttributeRegistry.visitPlanPointOfContact()) - .and("CONTACT.CONTACTID", vars.get("$field.ORGANISATION_ID")) + .and("CONTACT.CONTACTID", vars.get("$field.ORGANISATION_CONTACT_ID")) .cell(); var context; @@ -25,7 +25,7 @@ if(pointOfContact) links.push([ContactUtils.getContextByContactId(pointOfContact), pointOfContact]); else { - var contactId = vars.get("$field.ORGANISATION_ID"); + var contactId = vars.get("$field.ORGANISATION_CONTACT_ID"); context = ContactUtils.getContextByContactId(contactId); if(context == 'Person') { diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js index e9a7e5846d28fb6ffb8fcd6d7878ff3ea199d5f9..12468e7c64aa2eb7b2f20bf1ea259b0843a594ef 100644 --- a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js +++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js @@ -40,8 +40,8 @@ var entryDateAsLong = selectionRowData[0].ENTRYDATE; var entryDate = datetime.toDate(entryDateAsLong, "dd-MM-yyyy"); var startTime = selectionRowData[0].BEGIN_TIME; var endTime = selectionRowData[0].END_TIME; -var organisation_id = selectionRowData[0].ORGANISATION_ID; -var organisationName = OrganisationUtils.getNameByOrganisationId(organisation_id); +var organisationContact_id = selectionRowData[0].ORGANISATION_CONTACT_ID; +var organisationName = OrganisationUtils.getNameByContactId(organisationContact_id); var contact_id = selectionRowData[0].CONTACT_ID; var contactName = ContactUtils.getFullTitleByContactId(contact_id); var contactMail = CommUtil.getStandardSubSqlMail(contact_id) @@ -53,9 +53,9 @@ var department = contactData[0]; var contactRole = contactData[1]; var addressId = newSelect("CONTACT.ADDRESS_ID") .from("CONTACT") - .where("CONTACT.CONTACTID", organisation_id) + .where("CONTACT.CONTACTID", organisationContact_id) .cell(); -var organisationAddress = new AddrObject(organisation_id); +var organisationAddress = new AddrObject(organisationContact_id); var organisationAddressFormatted = organisationAddress.getFormattedAddress(false, "{salutation_name}\n {street} {buildingno}\n {country_short} - {zip} {city}"); var contactCommunication = newSelect("COMMUNICATION.MEDIUM_ID, COMMUNICATION.ADDR") .from("COMMUNICATION") @@ -105,7 +105,7 @@ columnTypes = db.getColumnTypes("AB_APPOINTMENTLINK", columns, db.getCurrentAlia values = [util.getNewUUID(), uidAppointment[0], "Organisation", - organisation_id] + organisationContact_id] insert = db.insertData("AB_APPOINTMENTLINK", columns, columnTypes, values) values = [util.getNewUUID(), diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/onActionProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/onActionProcess.js index b926fc89ff6515951fc64f5cec927a60f8434174..dc5b0f07067f9de2b8ea08deebdb04d1940ce157 100644 --- a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/onActionProcess.js +++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/onActionProcess.js @@ -59,7 +59,7 @@ if(vars.exists("$param.Entries_param") && vars.get("$param.Entries_param")) var childAddresses = newSelect("ADDRESS, BUILDINGNO, ZIP, CITY, COUNTRY") .from("ADDRESS") .leftJoin("VISITPLANENTRY", "ADDRESS.ADDRESSID = (select ADDRESS_ID from CONTACT where CONTACT.CONTACTID \n\ - = VISITPLANENTRY.ORGANISATION_ID)") + = VISITPLANENTRY.ORGANISATION_CONTACT_ID)") .where("VISITPLANENTRY.VISITPLANEMPLOYEEWEEK_ID", entryid) .and("VISITPLANENTRY.ENTRYDATE", entrydateDB) .table(); diff --git a/entity/VisitPlanEntry_entity/entityfields/organisation_id/displayValueProcess.js b/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/displayValueProcess.js similarity index 74% rename from entity/VisitPlanEntry_entity/entityfields/organisation_id/displayValueProcess.js rename to entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/displayValueProcess.js index 4a069cec9dd05ddca04014ff4a5a534e07aff0fc..a5833c922a458e88908fd9b6a1f529d12ed6f498 100644 --- a/entity/VisitPlanEntry_entity/entityfields/organisation_id/displayValueProcess.js +++ b/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/displayValueProcess.js @@ -3,7 +3,7 @@ import("system.db"); import("system.vars"); import("Contact_lib"); -var contactid = vars.get("$field.ORGANISATION_ID"); +var contactid = vars.get("$field.ORGANISATION_CONTACT_ID"); var res = ContactUtils.getFullTitleByContactId(contactid); result.string(res); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/organisation_id/documentation.adoc b/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/documentation.adoc similarity index 100% rename from entity/VisitPlanEntry_entity/entityfields/organisation_id/documentation.adoc rename to entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/documentation.adoc diff --git a/entity/VisitPlanEntry_entity/entityfields/organisation_id/stateProcess.js b/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/stateProcess.js similarity index 100% rename from entity/VisitPlanEntry_entity/entityfields/organisation_id/stateProcess.js rename to entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/stateProcess.js diff --git a/entity/VisitPlanEntry_entity/entityfields/organisation_id/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/valueProcess.js similarity index 100% rename from entity/VisitPlanEntry_entity/entityfields/organisation_id/valueProcess.js rename to entity/VisitPlanEntry_entity/entityfields/organisation_contact_id/valueProcess.js diff --git a/entity/VisitPlanEntry_entity/entityfields/persons/children/excludedcontactids_param/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/persons/children/excludedcontactids_param/valueProcess.js index ec94b86401b566ada90ac2bd3f2d2c43bf78c950..e6afefc86171adad8a87dcf4e7570253fa9faa66 100644 --- a/entity/VisitPlanEntry_entity/entityfields/persons/children/excludedcontactids_param/valueProcess.js +++ b/entity/VisitPlanEntry_entity/entityfields/persons/children/excludedcontactids_param/valueProcess.js @@ -4,6 +4,6 @@ import("Sql_lib"); var contactIdArray = newSelect("CONTACT.CONTACTID") .from("CONTACT") - .where("CONTACT.ORGANISATION_ID", vars.get("$field.ORGANISATION_ID"), SqlBuilder.NOT_EQUAL()) + .where("CONTACT.ORGANISATION_ID", vars.get("$field.ORGANISATION_CONTACT_ID"), SqlBuilder.NOT_EQUAL()) .arrayColumn() result.object(contactIdArray) \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js b/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js index 9711f6208cf7dff928ac21b7b0a8cfc89f4b57e1..ce8bb62314fa0a0ae0023f81b31d95a3871bd812 100644 --- a/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js @@ -16,7 +16,7 @@ var items = []; var group = []; var entryData = ""; -var entrySQL = newSelect("ENTRYDATE, VISITPLANENTRYID, BEGIN_TIME, END_TIME, ORGANISATION_ID, CONTACT_ID,STATUS, VISITPLANEMPLOYEEWEEK_ID, APPOINTMENT_ID") +var entrySQL = newSelect("ENTRYDATE, VISITPLANENTRYID, BEGIN_TIME, END_TIME, ORGANISATION_CONTACT_ID, CONTACT_ID,STATUS, VISITPLANEMPLOYEEWEEK_ID, APPOINTMENT_ID") .from("VISITPLANENTRY"); if (vars.exists("$local.idvalues") && vars.get("$local.idvalues")) @@ -46,11 +46,11 @@ if(entryData.length > 0) { for(var i = 0; i < entryData.length; i++) { - var entryDateRaw, visitPlanEntryId, beginn_time, end_time, organisation_id, contact_id, status, visitplanemployeeweek_id, appointmentid; - [entryDateRaw, visitPlanEntryId, beginn_time, end_time, organisation_id, contact_id, status, visitplanemployeeweek_id, appointmentid] = entryData[i] + var entryDateRaw, visitPlanEntryId, beginn_time, end_time, organisationContact_id, contact_id, status, visitplanemployeeweek_id, appointmentid; + [entryDateRaw, visitPlanEntryId, beginn_time, end_time, organisationContact_id, contact_id, status, visitplanemployeeweek_id, appointmentid] = entryData[i] var contactname = db.cell(PersUtils.getResolvingDisplaySubSql("'" + contact_id + "'")); - var orgname = OrganisationUtils.getNameByOrganisationId(organisation_id); + var orgname = OrganisationUtils.getNameByContactId(organisationContact_id); var parentName = translate.text(datetime.toDate(entryDateRaw, "EEEE")); entryDate = datetime.toDate(entryDateRaw, "dd.MM.yyyy"); @@ -58,7 +58,7 @@ if(entryData.length > 0) var alias = SqlUtils.getSystemAlias(); items.push([visitPlanEntryId, false, parentName + "#" + entryDate, "", beginn_time - , end_time, organisation_id, orgname, contact_id, contactname, entryDateRaw, status, visitplanemployeeweek_id, appointmentid, statusDisplay]); + , end_time, organisationContact_id, orgname, contact_id, contactname, entryDateRaw, status, visitplanemployeeweek_id, appointmentid, statusDisplay]); if(!vars.get("$local.idvalues")) { diff --git a/entity/VisitPlanEntry_entity/recordcontainers/jdito/onInsert.js b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onInsert.js index c0f1048f2920e1035145fc0c8ac1dfb49f915cc3..16ad70016e8c50f71299875fd494e3da997b71ec 100644 --- a/entity/VisitPlanEntry_entity/recordcontainers/jdito/onInsert.js +++ b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onInsert.js @@ -58,7 +58,7 @@ var valuesEntry = [ rowData["ENTRYDATE.value"], rowData["BEGIN_TIME.value"], rowData["END_TIME.value"], - rowData["ORGANISATION_ID.value"], + rowData["ORGANISATION_CONTACT_ID.value"], rowData["CONTACT_ID.value"], visitPlanEmployeeWeekID, rowData["STATUS.value"] @@ -69,7 +69,7 @@ var columnsEntry = [ "ENTRYDATE", "BEGIN_TIME", "END_TIME", - "ORGANISATION_ID", + "ORGANISATION_CONTACT_ID", "CONTACT_ID", "VISITPLANEMPLOYEEWEEK_ID", "STATUS" diff --git a/entity/VisitPlanEntry_entity/recordcontainers/jdito/onUpdate.js b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onUpdate.js index 412b3644103fb32f8c640a802d03e2c8ef5782da..fd92c0fd0b725e26423a818adff2f2e87f7e66ad 100644 --- a/entity/VisitPlanEntry_entity/recordcontainers/jdito/onUpdate.js +++ b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onUpdate.js @@ -10,7 +10,7 @@ var values = [ rowData["ENTRYDATE.value"], rowData["BEGIN_TIME.value"], rowData["END_TIME.value"], - rowData["ORGANISATION_ID.value"], + rowData["ORGANISATION_CONTACT_ID.value"], rowData["STATUS"] ]; @@ -18,7 +18,7 @@ var columns = [ "ENTRYDATE", "BEGIN_TIME", "END_TIME", - "ORGANISATION_ID", + "ORGANISATION_CONTACT_ID", "STATUS" ]; diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js index 26a88f95717ce53ce1723ca71443089d0e3a1540..4ec4a7d08e7f192053d1446f0a3ed507f8bde9ae 100644 --- a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js @@ -47,12 +47,12 @@ if(idValues == false) "visitPlanFrequency.ID_VALUE", "'VISITFREQUENCY '", activitySubQuery, "CONTACTID", newSelect("min(ENTRYDATE)") .from("VISITPLANENTRY") - .where("CONTACT.CONTACTID", "VISITPLANENTRY.ORGANISATION_ID") + .where("CONTACT.CONTACTID", "VISITPLANENTRY.ORGANISATION_CONTACT_ID") .and(newWhere("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$planned()) .or("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged())) .and("VISITPLANENTRY.ENTRYDATE", newSelect("min(vp.ENTRYDATE)") .from("VISITPLANENTRY", "vp") - .where(["VISITPLANENTRY", "ORGANISATION_ID", "vp"], "visitplanentry.ORGANISATION_ID") + .where(["VISITPLANENTRY", "ORGANISATION_CONTACT_ID", "vp"], "visitplanentry.ORGANISATION_CONTACT_ID") .and(["VISITPLANENTRY", "ENTRYDATE", "vp"], datetime.today()) .and(newWhere(["VISITPLANENTRY", "STATUS", "vp"], $KeywordRegistry.visitPlanEntryStatus$planned()) @@ -80,7 +80,7 @@ var recommendationSQLData = newSelect(["VISITRECOMMENDATIONID", "VISITRECOMMENDA newSelect("min(ENTRYDATE)") .from("VISITPLANENTRY") - .where("VISITPLANENTRY.ORGANISATION_ID", "VISITRECOMMENDATION.CONTACT_ID") + .where("VISITPLANENTRY.ORGANISATION_CONTACT_ID = VISITRECOMMENDATION.CONTACT_ID") .and("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$planned()) .or("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged()) .and("VISITPLANENTRY.entrydate", datetime.today(), SqlBuilder.GREATER()) @@ -89,7 +89,7 @@ var recommendationSQLData = newSelect(["VISITRECOMMENDATIONID", "VISITRECOMMENDA newSelect("VISITRECOMMENDATION.CONTACT_ID") .from("VISITPLANEMPLOYEEWEEK, VISITPLANENTRY") .where("VISITPLANENTRY.VISITPLANEMPLOYEEWEEK_ID", "VISITPLANEMPLOYEEWEEKID") - .and("VISITRECOMMENDATION.CONTACT_ID", "VISITPLANENTRY.ORGANISATION_ID") + .and("VISITRECOMMENDATION.CONTACT_ID = VISITPLANENTRY.ORGANISATION_CONTACT_ID") .and(newWhere("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$planned()) .or("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged())) .and("VISITPLANENTRY.entrydate", newSelect("min(vp.entrydate)") diff --git a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod index 1cd52f7035f12fffa8d282df67384589bd7c0eb5..db719f1fd0c9f75968b75227ffc77044223ce190 100644 --- a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod +++ b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod @@ -7,7 +7,6 @@ <grantCreateProcess>%aditoprj%/entity/WorkflowDefinition_entity/grantCreateProcess.js</grantCreateProcess> <grantDelete v="false" /> <contentTitleProcess>%aditoprj%/entity/WorkflowDefinition_entity/contentTitleProcess.js</contentTitleProcess> - <onInit>%aditoprj%/entity/WorkflowDefinition_entity/onInit.js</onInit> <iconId>VAADIN:DROP</iconId> <titlePlural>Workflow definitions</titlePlural> <recordContainer>jdito</recordContainer> diff --git a/entity/WorkflowDefinition_entity/entityfields/categorykeyword/children/containername_param/valueProcess.js b/entity/WorkflowDefinition_entity/entityfields/categorykeyword/children/containername_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d79eb290d58d4f19fbd534e91b252388749224ce --- /dev/null +++ b/entity/WorkflowDefinition_entity/entityfields/categorykeyword/children/containername_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("KeywordRegistry_basic"); + +result.string($KeywordRegistry.workflowCategory()); \ No newline at end of file diff --git a/entity/WorkflowDefinition_entity/onInit.js b/entity/WorkflowDefinition_entity/onInit.js deleted file mode 100644 index 7199fd35b05e991cb7f35e577f1a7e593a28c60e..0000000000000000000000000000000000000000 --- a/entity/WorkflowDefinition_entity/onInit.js +++ /dev/null @@ -1,20 +0,0 @@ -import("system.neon"); -import("system.vars"); -import("system.translate"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW && vars.get("$sys.viewmode") == neon.FRAME_VIEWMODE_DATASET) -{ - var filterOnlyUnfinished = { - type : "group", - operator : "AND", - childs : [{ - type : "row", - name : "ISFINISHED", - operator : "EQUAL", - value : translate.text("No"), - key : "false", - contenttype : "BOOLEAN" - }] - }; - neon.setFilter("Instances", JSON.stringify(filterOnlyUnfinished)); -} \ No newline at end of file diff --git a/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod b/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod index 37c5a337ba3fef1c5b2d8e9c3574bbea5404ef21..765793b9f379e0c813bca3b508491cf0dcba0421 100644 --- a/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod +++ b/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod @@ -5,6 +5,7 @@ <documentation>%aditoprj%/entity/WorkflowInstance_entity/documentation.adoc</documentation> <title>Workflow instance</title> <contentTitleProcess>%aditoprj%/entity/WorkflowInstance_entity/contentTitleProcess.js</contentTitleProcess> + <initFilterProcess>%aditoprj%/entity/WorkflowInstance_entity/initFilterProcess.js</initFilterProcess> <titlePlural>Workflow instances</titlePlural> <recordContainer>jdito</recordContainer> <entityFields> diff --git a/entity/WorkflowInstance_entity/initFilterProcess.js b/entity/WorkflowInstance_entity/initFilterProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..80a38560e27c2236fec97c140cbce55462a7c809 --- /dev/null +++ b/entity/WorkflowInstance_entity/initFilterProcess.js @@ -0,0 +1,17 @@ +import("system.result"); +import("system.translate"); + +var filterOnlyUnfinished = { + type : "group", + operator : "AND", + childs : [{ + type : "row", + name : "ISFINISHED", + operator : "EQUAL", + value : translate.text("No"), + key : "false", + contenttype : "BOOLEAN" + }] +}; + +result.string(JSON.stringify(filterOnlyUnfinished)); \ No newline at end of file diff --git a/entity/WorkflowStartConfig_entity/imageProcess.js b/entity/WorkflowStartConfig_entity/imageProcess.js index 34147b89bd271ec01be2bb3fa1c6eb055186963f..8b918cbc285c80f90e305b0b2aee6655949db65f 100644 --- a/entity/WorkflowStartConfig_entity/imageProcess.js +++ b/entity/WorkflowStartConfig_entity/imageProcess.js @@ -2,5 +2,5 @@ import("system.result"); import("system.vars"); import("system.project"); -var contextModel = project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$field.OBJECT_TYPE")); +var contextModel = vars.get("$field.OBJECT_TYPE") && project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$field.OBJECT_TYPE")); result.string(contextModel ? contextModel[5] : ""); \ No newline at end of file diff --git a/entity/WorkflowTask_entity/WorkflowTask_entity.aod b/entity/WorkflowTask_entity/WorkflowTask_entity.aod index f5bcf9949894d5335e68613b990e62b9066e0208..3ffbe846c77cc3e4d64c7ed734ff2399dc30450a 100644 --- a/entity/WorkflowTask_entity/WorkflowTask_entity.aod +++ b/entity/WorkflowTask_entity/WorkflowTask_entity.aod @@ -27,6 +27,7 @@ </entityField> <entityField> <name>FORMDEFINITION</name> + <valueProcess>%aditoprj%/entity/WorkflowTask_entity/entityfields/formdefinition/valueProcess.js</valueProcess> </entityField> <entityField> <name>FORMRESULT</name> @@ -257,9 +258,6 @@ <isFilterable v="true" /> <isLookupFilter v="true" /> </jDitoRecordFieldMapping> - <jDitoRecordFieldMapping> - <name>FORMDEFINITION.value</name> - </jDitoRecordFieldMapping> <jDitoRecordFieldMapping> <name>FORMRESULT.value</name> </jDitoRecordFieldMapping> diff --git a/entity/WorkflowTask_entity/entityfields/formdefinition/valueProcess.js b/entity/WorkflowTask_entity/entityfields/formdefinition/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8fc3f05f70c0f41c45cc8b15489f265bfd8695d4 --- /dev/null +++ b/entity/WorkflowTask_entity/entityfields/formdefinition/valueProcess.js @@ -0,0 +1,9 @@ +import("system.result"); +import("system.vars"); +import("system.workflow"); +import("system.neon"); + +//the value of this field can be set by the onValueChange process of FORMRESULT + +if (vars.get("$this.value") == null) + result.string(workflow.getFormProperties(vars.get("$field.UID"))); \ No newline at end of file diff --git a/entity/WorkflowTask_entity/recordcontainers/jdito/contentProcess.js b/entity/WorkflowTask_entity/recordcontainers/jdito/contentProcess.js index de6e83f10c3755c6281daacaedff352aeb93ba55..ed15981f641e6ef0941c2d5298ba177b24c8a080 100644 --- a/entity/WorkflowTask_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/WorkflowTask_entity/recordcontainers/jdito/contentProcess.js @@ -96,7 +96,6 @@ result.object((function () task.processDefinitionId, task.processInstanceId, Date.parse(task.createTime).toString(), - workflow.getFormProperties(task.id) || "", "", variables.USER_ID || "", task.description || "", diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index ed12fc0f39983f65d9e03fa38e9411b86427147a..aac9f1e3a87bf48857bc5cd346144fd1c62abbb1 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -6807,55 +6807,82 @@ <key>Settings</key> </entry> <entry> - <key>workflow notification</key> + <key>No new recipients found that can be added to the bulk mail.</key> </entry> <entry> - <key>Permission received</key> + <key>Add Recipients</key> </entry> <entry> - <key>leadimport notification</key> + <key>Add Participants</key> </entry> <entry> - <key>granted permission</key> + <key>Download letter and create Activity</key> </entry> <entry> - <key>bulk mail sent</key> + <key>and open Report</key> </entry> <entry> - <key>download ready</key> + <key>export</key> </entry> <entry> - <key>No new recipients found that can be added to the bulk mail.</key> + <key>export using the selected template</key> </entry> <entry> - <key>Add Recipients</key> + <key>No new recipients found that can be added to the serial letter.</key> </entry> <entry> - <key>Add Participants</key> + <key>send mail</key> </entry> <entry> - <key>Download letter and create Activity</key> + <key>and open modeler</key> </entry> <entry> - <key>and open Report</key> + <key>Create model</key> </entry> <entry> - <key>export</key> + <key>Edit workflow</key> </entry> <entry> - <key>export using the selected template</key> + <key>Receive new Department Permission</key> </entry> <entry> - <key>No new recipients found that can be added to the serial letter.</key> + <key>Receive new User Permission</key> </entry> <entry> - <key>send mail</key> + <key>workflow notification</key> </entry> <entry> - <key>Add new Department Permission</key> + <key>Permission received</key> </entry> - <entry> - <key>Add new User Permission</key> + <entry> + <key>leadimport notification</key> + </entry> + <entry> + <key>granted permission</key> + </entry> + <entry> + <key>bulk mail sent</key> + </entry> + <entry> + <key>download ready</key> + </entry> + <entry> + <key>Total in euros</key> + </entry> + <entry> + <key>Workflow Model</key> + </entry> + <entry> + <key>{SENT_MAIL}</key> + </entry> + <entry> + <key>The Sales Project can only be filled when a company has been specified</key> + </entry> + <entry> + <key>The workflow could not be deployed</key> + </entry> + <entry> + <key>Workflow deploy failed</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 a4c956a47885f4d1a8c17b2e4c016cc676c2df32..e5de76bd0bc339751a4b3cd18d4513ca92016220 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -32,6 +32,7 @@ </entry> <entry> <key>Finished</key> + <value>Abgeschlossen</value> </entry> <entry> <key>Show my organisations</key> @@ -5062,7 +5063,7 @@ </entry> <entry> <key>Read</key> - <value>gelesen</value> + <value>Gelesen</value> </entry> <entry> <key>Permission Set ID</key> @@ -6737,7 +6738,7 @@ </entry> <entry> <key>archive</key> - <value>archivieren</value> + <value>Archivieren</value> </entry> <entry> <key>Bangladesh</key> @@ -8264,6 +8265,10 @@ Bitte Datumseingabe prüfen</value> <key>Contactreport</key> <value>Kontaktbericht</value> </entry> + <entry> + <key>The Sales Project can only be filled when a company has been specified</key> + <value>Das Vertriebsprojekt kann nur ausgefüllt werden, wenn eine Firma angegeben ist</value> + </entry> <entry> <key>Appointment planned</key> <value>Termin vereinbart</value> @@ -8735,23 +8740,28 @@ Bitte Datumseingabe prüfen</value> </entry> <entry> <key>workflow notification</key> + <value>Workflow Benachrichtigung</value> </entry> <entry> - <key>Permission received</key> - <value>erhaltene Berechtigung</value> + <key>leadimport notification</key> </entry> <entry> - <key>leadimport notification</key> + <key>bulk mail sent</key> </entry> <entry> - <key>granted permission</key> - <value>vergebene Berechtigung</value> + <key>download ready</key> </entry> <entry> - <key>bulk mail sent</key> + <key>No new recipients found that can be added to the bulk mail.</key> + <value>Keine neuen Empfänger, die zur Serienmail hinzugefügt werden können, gefunden.</value> </entry> <entry> - <key>download ready</key> + <key>Permission received</key> + <value>erhaltene Berechtigung</value> + </entry> + <entry> + <key>granted permission</key> + <value>vergebene Berechtigung</value> </entry> <entry> <key>Receive new Department Permission</key> @@ -8768,10 +8778,6 @@ Bitte Datumseingabe prüfen</value> <key>No new recipients found that can be added to the serial letter.</key> <value>Keine neuen Empfänger, die zum Serienbrief werden können, gefunden.</value> </entry> - <entry> - <key>No new recipients found that can be added to the bulk mail.</key> - <value>Keine neuen Empfänger, die zur Serienmail hinzugefügt werden können, gefunden.</value> - </entry> <entry> <key>export using the selected template</key> <value>Mit der ausgewählten Vorlage Exportieren</value> @@ -8781,20 +8787,20 @@ Bitte Datumseingabe prüfen</value> <value>E-Mail losschicken</value> </entry> <entry> - <key>Download letter and create Activity</key> - <value>Brief herunterladen und Aktivität erstellen</value> + <key>Total in euros</key> + </entry> + <entry> + <key>Workflow Model</key> </entry> <entry> - <key>Add Participants</key> - <value>Teilnehmer hinzufügen</value> + <key>{SEND_MAIL}</key> + <value>Email versenden</value> </entry> <entry> - <key>and open Report</key> - <value>und Report öffnen</value> + <key>The workflow could not be deployed</key> </entry> <entry> - <key>Add Recipients</key> - <value>Empfänger hinzufügen</value> + <key>Workflow deploy failed</key> </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod index f795919fd82d323b6293b5b6ada7effe00920d07..f2827dd55b21fc315f7acc480583a72d5eff0ace 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -6873,55 +6873,84 @@ <key>Settings</key> </entry> <entry> - <key>workflow notification</key> + <key>No new recipients found that can be added to the bulk mail.</key> </entry> <entry> - <key>Permission received</key> + <key>Add Recipients</key> </entry> <entry> - <key>leadimport notification</key> + <key>Add Participants</key> </entry> <entry> - <key>granted permission</key> + <key>Download letter and create Activity</key> </entry> <entry> - <key>bulk mail sent</key> + <key>and open Report</key> </entry> <entry> - <key>download ready</key> + <key>export</key> </entry> <entry> - <key>No new recipients found that can be added to the bulk mail.</key> + <key>export using the selected template</key> </entry> <entry> - <key>Add Recipients</key> + <key>No new recipients found that can be added to the serial letter.</key> </entry> <entry> - <key>Add Participants</key> + <key>send mail</key> </entry> <entry> - <key>Download letter and create Activity</key> + <key>Receive new Department Permission</key> </entry> <entry> - <key>and open Report</key> + <key>Receive new User Permission</key> </entry> <entry> - <key>export</key> + <key>and open modeler</key> </entry> <entry> - <key>export using the selected template</key> + <key>Create model</key> </entry> <entry> - <key>No new recipients found that can be added to the serial letter.</key> + <key>Edit workflow</key> </entry> <entry> - <key>send mail</key> + <key>workflow notification</key> </entry> <entry> - <key>Receive new Department Permission</key> + <key>Permission received</key> </entry> <entry> - <key>Receive new User Permission</key> + <key>leadimport notification</key> + </entry> + <entry> + <key>granted permission</key> + </entry> + <entry> + <key>bulk mail sent</key> + </entry> + <entry> + <key>download ready</key> + </entry> + <entry> + <key>Total in euros</key> + </entry> + <entry> + <key>Workflow Model</key> + </entry> + <entry> + <key>The Sales Project can only be filled when a company has been specified</key> + </entry> + + <entry> + <key>{SEND_MAIL}</key> + <value>Send mail</value> + </entry> + <entry> + <key>The workflow could not be deployed</key> + </entry> + <entry> + <key>Workflow deploy failed</key> </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> diff --git a/neonContext/CampaignStep/CampaignStep.aod b/neonContext/CampaignStep/CampaignStep.aod index 99969c1dc8f63c8de66e18866f2b7eae6560f02e..6e9810b632fff5969a2b21be2d6dc11816966bb8 100644 --- a/neonContext/CampaignStep/CampaignStep.aod +++ b/neonContext/CampaignStep/CampaignStep.aod @@ -45,9 +45,5 @@ <name>99367402-93e6-49d4-b60c-143b6e71df00</name> <view>CampaignStepsGantt_view</view> </neonViewReference> - <neonViewReference> - <name>f146ea29-77d2-4141-b04a-36c29594e670</name> - <view>CampaignStepMembers_view</view> - </neonViewReference> </references> </neonContext> diff --git a/neonContext/Product/Product.aod b/neonContext/Product/Product.aod index 455bfd342154a96988ccb39462c28d9f9ddee768..7d36aaa10f0f067db17fc1a209b7905efb611917 100644 --- a/neonContext/Product/Product.aod +++ b/neonContext/Product/Product.aod @@ -8,7 +8,7 @@ <filterView>ProductFilter_view</filterView> <editView>ProductEdit_view</editView> <previewView>ProductPreview_view</previewView> - <lookupView>ProductFilter_view</lookupView> + <lookupView>ProductLookup_view</lookupView> <entity>Product_entity</entity> <references> <neonViewReference> @@ -27,5 +27,9 @@ <name>5580ead4-2257-4cdb-a3ac-5e7067c4c1ab</name> <view>ProductPreview_view</view> </neonViewReference> + <neonViewReference> + <name>ec872778-87d1-4070-a3da-3808da326119</name> + <view>ProductLookup_view</view> + </neonViewReference> </references> </neonContext> diff --git a/neonView/AppointmentPreview_view/AppointmentPreview_view.aod b/neonView/AppointmentPreview_view/AppointmentPreview_view.aod index 23c9de063b24cd94a46c4d2e998832ff9c752798..727a644d89918b72ba8e573978d45cf9f7118157 100644 --- a/neonView/AppointmentPreview_view/AppointmentPreview_view.aod +++ b/neonView/AppointmentPreview_view/AppointmentPreview_view.aod @@ -27,6 +27,7 @@ <organizerField>ORGANIZER</organizerField> <ownerField>OWNER</ownerField> <categoriesField>CATEGORIES</categoriesField> + <recurrenceIdField>RECURRENCEID</recurrenceIdField> <favoriteActionGroup1>PartStatActionGroup</favoriteActionGroup1> <favoriteActionGroup2>seriesActionGroup</favoriteActionGroup2> <entityField>#ENTITY</entityField> diff --git a/neonView/CampaignParticipantFilter_view/CampaignParticipantFilter_view.aod b/neonView/CampaignParticipantFilter_view/CampaignParticipantFilter_view.aod index 7d4a4e5d2a84ef5c9f155fc6f2d4b9bd223fc1e8..3dde5d4e26421ec75dbe34bc35a40fdb4fd0d3f2 100644 --- a/neonView/CampaignParticipantFilter_view/CampaignParticipantFilter_view.aod +++ b/neonView/CampaignParticipantFilter_view/CampaignParticipantFilter_view.aod @@ -4,7 +4,7 @@ <title></title> <description></description> <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="false" /> + <filterable v="true" /> <layout> <groupLayout> <name>layout</name> @@ -15,8 +15,8 @@ <name>ParticipantsTable</name> <favoriteActionGroup1>FilterViewActionGroup</favoriteActionGroup1> <entityField>#ENTITY</entityField> - <isCreatable v="false" /> - <isEditable v="false" /> + <isCreatable v="true" /> + <isEditable v="true" /> <columns> <neonTableColumn> <name>1bd3a82e-89c1-4b3b-809b-b9bac7f78e58</name> diff --git a/neonView/CampaignStepMembers_view/CampaignStepMembers_view.aod b/neonView/CampaignStepMembers_view/CampaignStepMembers_view.aod deleted file mode 100644 index f66c1629d8103d1a135369cb9f519652a2750500..0000000000000000000000000000000000000000 --- a/neonView/CampaignStepMembers_view/CampaignStepMembers_view.aod +++ /dev/null @@ -1,5 +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.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> - <name>CampaignStepMembers_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> -</neonView> diff --git a/neonView/NotificationFilter_view/NotificationFilter_view.aod b/neonView/NotificationFilter_view/NotificationFilter_view.aod index bb14afb0a269a9c52da65d1333fc78f34be935ee..65c5f94e79b7ca64bc3b52f30166c941c25d7ae7 100644 --- a/neonView/NotificationFilter_view/NotificationFilter_view.aod +++ b/neonView/NotificationFilter_view/NotificationFilter_view.aod @@ -28,17 +28,18 @@ <children> <timelineViewTemplate> <name>NotificationTimeline</name> + <favoriteActionGroup1>setNotificationState</favoriteActionGroup1> <dateField>CREATIONDATE</dateField> <titleField>CAPTION</titleField> <descriptionField>DESCRIPTION</descriptionField> <iconIdField>ICON</iconIdField> <entityField>#ENTITY</entityField> + <isEditable v="false" /> </timelineViewTemplate> <tableViewTemplate> <name>NotificationTable</name> <favoriteActionGroup1>setNotificationState</favoriteActionGroup1> <inlineEdit v="true" /> - <entryAction>rowClickAction</entryAction> <iconField>ICON</iconField> <titleField>CAPTION</titleField> <subtitleField>RESOLVEDPRIORITY</subtitleField> @@ -71,7 +72,9 @@ </tableViewTemplate> <treeTableViewTemplate> <name>NotificationTreeTable</name> + <favoriteActionGroup1>setNotificationState</favoriteActionGroup1> <entityField>#ENTITY</entityField> + <isEditable v="false" /> <columns> <neonTreeTableColumn> <name>c8799a54-569a-4667-9bdd-aa11a2f6e21e</name> diff --git a/neonView/OrderDetail_view/OrderDetail_view.aod b/neonView/OrderDetail_view/OrderDetail_view.aod index 44791968d06aec8414a6127cfe7b9db33eb2c2ac..d912f8d7a10ffcbd8e1316878d2792510f6ed73c 100644 --- a/neonView/OrderDetail_view/OrderDetail_view.aod +++ b/neonView/OrderDetail_view/OrderDetail_view.aod @@ -1,7 +1,7 @@ <?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.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> <name>OrderDetail_view</name> - <title>Texts</title> + <title>Cover letter</title> <majorModelMode>DISTRIBUTED</majorModelMode> <layout> <noneLayout> diff --git a/neonView/OrderMain_view/OrderMain_view.aod b/neonView/OrderMain_view/OrderMain_view.aod index b76b54dcaaff68957fa6d0c26f48d5a57a2f9c02..428d0c02e07af523318e7f24d35f87230edab64f 100644 --- a/neonView/OrderMain_view/OrderMain_view.aod +++ b/neonView/OrderMain_view/OrderMain_view.aod @@ -29,16 +29,16 @@ <entityField>#ENTITY</entityField> <view>OrderDetail_view</view> </neonViewReference> - <neonViewReference> - <name>b3014999-da86-45ae-86ae-feb738d62906</name> - <entityField>Documents</entityField> - <view>DocumentFilter_view</view> - </neonViewReference> <neonViewReference> <name>7ec102f5-fb45-44a7-9bbf-0eba7f1536d7</name> <entityField>Activities</entityField> <view>ActivityFilter_view</view> </neonViewReference> + <neonViewReference> + <name>b3014999-da86-45ae-86ae-feb738d62906</name> + <entityField>Documents</entityField> + <view>DocumentFilter_view</view> + </neonViewReference> <neonViewReference> <name>351a9b5d-a050-4fb9-b3e4-402dcd84b331</name> <entityField>Tasks</entityField> diff --git a/neonView/OrderitemFilter_view/OrderitemFilter_view.aod b/neonView/OrderitemFilter_view/OrderitemFilter_view.aod index 8955a3924f096afd7f468c468bf51278be480c9c..4c6e8a7eac674bd309fbe4aefe1f9bda7c40bba0 100644 --- a/neonView/OrderitemFilter_view/OrderitemFilter_view.aod +++ b/neonView/OrderitemFilter_view/OrderitemFilter_view.aod @@ -31,6 +31,10 @@ <name>a8dcb2bb-bb09-4a6e-b0f0-1b4d1111eb22</name> <entityField>UNIT</entityField> </neonTableColumn> + <neonTableColumn> + <name>bfd34c94-1a5f-4caf-ae6e-2c09375c023c</name> + <entityField>VAT</entityField> + </neonTableColumn> <neonTableColumn> <name>33ef0703-d4ea-4187-b555-648a1733ee99</name> <entityField>PRICE</entityField> @@ -39,10 +43,6 @@ <name>61a39c6b-f7dd-487c-bc5f-c2e95376ec37</name> <entityField>DISCOUNT</entityField> </neonTableColumn> - <neonTableColumn> - <name>bfd34c94-1a5f-4caf-ae6e-2c09375c023c</name> - <entityField>VAT</entityField> - </neonTableColumn> <neonTableColumn> <name>89fd18d0-f6ee-4323-9277-464dee6da625</name> <entityField>OPTIONAL</entityField> @@ -77,6 +77,10 @@ <name>4998fc65-67b7-465d-9891-808dcf0fe080</name> <entityField>UNIT</entityField> </neonTreeTableColumn> + <neonTreeTableColumn> + <name>e545cb87-e4a5-4154-89b1-1f88a6d59fde</name> + <entityField>VAT</entityField> + </neonTreeTableColumn> <neonTreeTableColumn> <name>b4470ca6-89e8-421b-bb91-7d32f9c48aa2</name> <entityField>PRICE</entityField> @@ -85,22 +89,18 @@ <name>0c533079-4b39-4412-8de5-086bf7a08706</name> <entityField>DISCOUNT</entityField> </neonTreeTableColumn> - <neonTreeTableColumn> - <name>e545cb87-e4a5-4154-89b1-1f88a6d59fde</name> - <entityField>VAT</entityField> - </neonTreeTableColumn> <neonTreeTableColumn> <name>9ac44050-ea77-43d2-b0fe-f7ca411b91e7</name> <entityField>OPTIONAL</entityField> </neonTreeTableColumn> - <neonTreeTableColumn> - <name>4d4f204a-1c2b-4587-93b9-df03f31da38e</name> - <entityField>INFO</entityField> - </neonTreeTableColumn> <neonTreeTableColumn> <name>c44b5bc2-4283-4dca-bd20-bd048e05fe45</name> <entityField>TotalPrice</entityField> </neonTreeTableColumn> + <neonTreeTableColumn> + <name>4d4f204a-1c2b-4587-93b9-df03f31da38e</name> + <entityField>INFO</entityField> + </neonTreeTableColumn> </columns> </treeTableViewTemplate> </children> diff --git a/neonView/ProductLookup_view/ProductLookup_view.aod b/neonView/ProductLookup_view/ProductLookup_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..e038ed3765c689f36212619cc246abf2196bd6f9 --- /dev/null +++ b/neonView/ProductLookup_view/ProductLookup_view.aod @@ -0,0 +1,52 @@ +<?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.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>ProductLookup_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/neonView/ProductLookup_view/documentation.adoc</documentation> + <layout> + <noneLayout> + <name>layout</name> + </noneLayout> + </layout> + <children> + <tableViewTemplate> + <name>table</name> + <titleField>PRODUCTNAME</titleField> + <subtitleField>PRODUCTCODE</subtitleField> + <entityField>#ENTITY</entityField> + <linkedColumns> + <element>PRODUCTNAME</element> + </linkedColumns> + <columns> + <neonTableColumn> + <name>6d4cafea-bc73-4df1-949e-1aba224780ed</name> + <entityField>#IMAGE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>ef5fa8f0-7a72-4201-ad2e-44496490d2b2</name> + <entityField>PRODUCTCODE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>35834ce8-cd8b-452f-b558-484d2a3a8f02</name> + <entityField>PRODUCTNAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>f125dbe5-3f46-46dc-b037-4765b115997f</name> + <entityField>GROUPCODEID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>40b14795-afcb-4ae5-b5df-cd667a5b8219</name> + <entityField>STATUS</entityField> + </neonTableColumn> + <neonTableColumn> + <name>86fce471-6d2e-4066-9bdb-2ed04f940f7d</name> + <entityField>CONTACT_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>2a2e74e4-dc45-4133-92d6-f2797fc3dcd7</name> + <entityField>UNIT</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/ProductLookup_view/documentation.adoc b/neonView/ProductLookup_view/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..38d4dc8ee1b0f1fd3d772287075d7adb212b09df --- /dev/null +++ b/neonView/ProductLookup_view/documentation.adoc @@ -0,0 +1,3 @@ +== ProductLookup_view + +Needed, because using the normal filterview as the lookup would result in the tileTemplate being used as the lookup. \ No newline at end of file diff --git a/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod b/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod index 9c98d1fe51548d2c24a3f1e415cf83a1de05e69d..cdac1faccf7f16acf27044fd57f434dea9502e3c 100644 --- a/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod +++ b/neonView/WorkflowStartConfigFilter_view/WorkflowStartConfigFilter_view.aod @@ -3,9 +3,9 @@ <name>WorkflowStartConfigFilter_view</name> <majorModelMode>DISTRIBUTED</majorModelMode> <layout> - <groupLayout> + <boxLayout> <name>layout</name> - </groupLayout> + </boxLayout> </layout> <children> <tableViewTemplate> @@ -24,19 +24,5 @@ </neonTableColumn> </columns> </tableViewTemplate> - <treeTableViewTemplate> - <name>Treetable</name> - <entityField>#ENTITY</entityField> - <columns> - <neonTreeTableColumn> - <name>4874074f-80af-4e99-8449-2a4dc4428360</name> - <entityField>OBJECT_TYPE</entityField> - </neonTreeTableColumn> - <neonTreeTableColumn> - <name>d479a082-ea95-40c6-81a2-9318fcf9ce98</name> - <entityField>TRIGGER_EVENT</entityField> - </neonTreeTableColumn> - </columns> - </treeTableViewTemplate> </children> </neonView> diff --git a/process/AttributeFilter_lib/process.js b/process/AttributeFilter_lib/process.js index f64477390ffc247d5e6fd9768f2840dae133c1e1..81a5208ba9200da0a4296046c55485446b2f78a5 100644 --- a/process/AttributeFilter_lib/process.js +++ b/process/AttributeFilter_lib/process.js @@ -155,7 +155,7 @@ AttributeFilterExtensionMaker.getFilterValues = function(pFilter) var attrType = name.type; if (attrType == $AttributeTypes.VOID.toString()) attrType = $AttributeTypes.BOOLEAN.toString(); - var res = AttributeUtil.getPossibleListValues(attributeId, attrType); + var res = AttributeUtil.getPossibleListValues(attributeId, attrType, true); if (res == null) res = []; return res; diff --git a/process/Attribute_lib/process.js b/process/Attribute_lib/process.js index 40eed67b874f583649eda1b1369df0ea870e9921..9fd2230221263fd1de7423ef86b50dd8fbdfe473 100644 --- a/process/Attribute_lib/process.js +++ b/process/Attribute_lib/process.js @@ -148,7 +148,7 @@ AttributeUtil.getPossibleListValues = function (pAttributeId, pAttributeType, pI { var attributeId = pAttributeId; var attrType = pAttributeType.trim(); - var onlyActives = (pIncludeInactives == undefined ? false : pIncludeInactives); + var onlyActives = !pIncludeInactives; if (attrType == $AttributeTypes.COMBO.toString()) { var valuesSelect = newSelect("AB_ATTRIBUTEID, ATTRIBUTE_NAME") diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js index 83ad817a1b9487b240e512d26d127e7f2b6a74e8..59bed651862041d08e72db34ad3256cab51d8acc 100644 --- a/process/Context_lib/process.js +++ b/process/Context_lib/process.js @@ -593,20 +593,6 @@ ContextUtils.getSelectMap = function() $KeywordRegistry.taskStatus$customerChecks(), ]) .setCreationDateField("TASK.START_DATE") - ,"SupportTicket": ContextSelector.create("TICKET", "TICKETID", "TASK.SUBJECT") - .setJoinExpression("left join TASK on TASK.TASKID = TICKET.TASK_ID left join TASKLINK on TASKLINK.TASK_ID = TASK.TASKID") - .setCondition(newWhere("TICKET.TICKETTYPE", $KeywordRegistry.ticketType$supportTicket())) - .setContactIdField("TASKLINK.OBJECT_ROWID") - .setStateField("TASK.STATUS") - .setActiveStates([ - $KeywordRegistry.taskStatus$new(), - $KeywordRegistry.taskStatus$unassigned(), - $KeywordRegistry.taskStatus$assigned(), - $KeywordRegistry.taskStatus$inProgress(), - $KeywordRegistry.taskStatus$waiting(), - $KeywordRegistry.taskStatus$customerChecks(), - ]) - .setCreationDateField("TASK.START_DATE") ,"BulkMail" : ContextSelector.create("BULKMAIL", "BULKMAILID", "NAME") ,"SerialLetter" : ContextSelector.create("SERIALLETTER", "SERIALLETTERID", "TITLE") ,"Leadimport": ContextSelector.create("LEADIMPORT", "LEADIMPORTID") diff --git a/process/DocxTemplater_lib/process.js b/process/DocxTemplater_lib/process.js index e9cd6c748fa3f8ba17d1c5c13795ee659ab3459d..8306c0421438b2cdc1e8f38940979b25bb0ba41e 100644 --- a/process/DocxTemplater_lib/process.js +++ b/process/DocxTemplater_lib/process.js @@ -85,7 +85,7 @@ function _getAutoNewLineModule() if (value == null) value = options.nullGetter(part); else - value = value.replace(/(\r\n)|(\n)|(\r)/g, "\n<w:br/>"); + value = value.replace(/(\r\n)|(\n)|(\r)/g, "</w:t></w:r><w:r><w:br/></w:r><w:r><w:t xml:space=\"preserve\">"); return { value: value diff --git a/process/Email_lib/process.js b/process/Email_lib/process.js index a8645c40d5c729a1546a105048f48020e1369931..34ae40ebfa34a87d89f1a84131521b9220e36b06 100644 --- a/process/Email_lib/process.js +++ b/process/Email_lib/process.js @@ -28,6 +28,7 @@ function EmailWritingUtils () {} * @param {Array} [pAttachments] attachments in a array (base64 encoded). * @param {String} pSubject an optional subject. * @param {String} [pEmailFilename] filename of the email. + * @param {Placeholder[]} [pAdditionalPlaceholders] additional placeholders * @return {Array} the eml document as array with [filename, base64] */ EmailWritingUtils.openMailTemplate = function (pToRecipients, pSenderContactId, pTemplateId, pRecipientContactId, pBindata, pAttachments, pSubject, pEmailFilename, pAdditionalPlaceholders) @@ -77,8 +78,9 @@ EmailWritingUtils.openMailTemplate = function (pToRecipients, pSenderContactId, * @param {String} pComingFrom source from where you started (e.g. "Person", "Organisation" ) * @param {String} pEmailFilename optional file name of the email. * @param {String} [pAdditionalPlaceholders] additional placeholders for the email + * @param {String} [pOfferId] optional needed for the offerEmails, to change the status of the offer */ -EmailWritingUtils.openNewMail = function (pToContactId, pToEmailAddress, pComingFrom, pAttachmentArray, pNotificationMsg, pEmailFilename, pAdditionalPlaceholders) +EmailWritingUtils.openNewMail = function (pToContactId, pToEmailAddress, pComingFrom, pAttachmentArray, pNotificationMsg, pEmailFilename, pAdditionalPlaceholders, pOfferId) { var params = { "ContactId_param" : pToContactId, @@ -86,7 +88,8 @@ EmailWritingUtils.openNewMail = function (pToContactId, pToEmailAddress, pComing "ComingFrom_param" : pComingFrom, "NotificationMsg_param" : pNotificationMsg, "EmailFilename" : pEmailFilename, - "AdditionalPlaceholders_param" : JSON.stringify(pAdditionalPlaceholders) + "AdditionalPlaceholders_param" : JSON.stringify(pAdditionalPlaceholders), + "OfferId_param" : pOfferId }; if (pToEmailAddress) @@ -110,14 +113,15 @@ EmailWritingUtils.getMailbridgeAddress = function () * @param {String} pNotificationMsg message which will be shown after the operation is done. * @param {String} pEmailFilename optional file name of the email. * @param {String} [pAdditionalPlaceholders] additional placeholders for the email + * @param {String} [pOfferId] optional needed for the offerEmails, to change the status of the offer * Report have to be a object with these attrs: content (base64 encoded report), contentType (mimeType of the report), filename (complete filename with filending) */ -EmailWritingUtils.sendReportAsMail = function (pRecipient, pReportArray, pComingFrom, pNotificationMsg, pEmailFilename, pAdditionalPlaceholders) +EmailWritingUtils.sendReportAsMail = function (pRecipient, pReportArray, pComingFrom, pNotificationMsg, pEmailFilename, pAdditionalPlaceholders, pOfferId) { var pRecpientEmail = newSelect("COMMUNICATION.ADDR").from("COMMUNICATION") .where("COMMUNICATION.CONTACT_ID", pRecipient).and("COMMUNICATION.MEDIUM_ID", "COMMEMAIL").cell(); - EmailWritingUtils.openNewMail(pRecipient, pRecpientEmail, pComingFrom, pReportArray, pNotificationMsg, pEmailFilename, pAdditionalPlaceholders); + EmailWritingUtils.openNewMail(pRecipient, pRecpientEmail, pComingFrom, pReportArray, pNotificationMsg, pEmailFilename, pAdditionalPlaceholders, pOfferId); } /** @@ -169,6 +173,7 @@ Email.fromRFC = function (pBase64RFC) * @param {String} [pTemplateId] UUID of the explicit template which shall used. (optional) * @param {String} [pContactId] (required) * @param {String} [pBindata] (required) + * @param {Placeholder[]} [pAdditionalPlaceholders] additional placeholders * @return {Email} a new Email object */ Email.fromTemplate = function (pTemplateId, pContactId, pBindata, pAdditionalPlaceholders) diff --git a/process/JditoFilter_lib/process.js b/process/JditoFilter_lib/process.js index 9e6137b3ebbc088ec3a49495ac7a8b138cd5c7bd..d24d07552af5498326763f378b323980a41d0737 100644 --- a/process/JditoFilter_lib/process.js +++ b/process/JditoFilter_lib/process.js @@ -1,6 +1,7 @@ import("system.tools"); import("system.logging"); import("Sql_lib"); +import("system.datetime"); /** * object for filtering records @@ -117,6 +118,8 @@ JditoFilter.prototype.checkRecord = function (pRow) case "TIMEFRAME_EQUAL": case "TIMEFRAME_COMING": case "TIMEFRAME_PAST": + var [start, end] = datetime.resolveRelativeDateExpression(pFilterValue); + return pRowValue >= start && pRowValue <= end; } } } @@ -211,16 +214,163 @@ JditoFilterUtils.filterRecords = function (pColumns, pRecords, pFilter, pCustomC */ JditoFilterUtils.getSqlCondition = function (pFilter, pTable, pTableAlias, pColumnOrFnMap) { - var condition = newWhere(); + var filterTranslator = new FilterSqlTranslator(pFilter) + .table(pTable, pTableAlias); - var ignoreCase = JditoFilterUtils.isUserIgnoreCase(); - - if (!pFilter) + if (pColumnOrFnMap) + { + for (let fieldName in pColumnOrFnMap) + { + var columnOrFn = pColumnOrFnMap[fieldName]; + if (typeof columnOrFn === "function") + filterTranslator.addSpecialFieldConditionFn(fieldName, columnOrFn); + else + filterTranslator.addSqlFieldMapping(fieldName, columnOrFn); + } + } + return filterTranslator.getSqlCondition(); +} + +/** + * @return {boolean} the selectionIgnoreCase property of the current user, defaults to true + */ +JditoFilterUtils.isUserIgnoreCase = function () +{ + var user = tools.getCurrentUser(); + var ignoreCase = user ? user[tools.PARAMS][tools.SELECTION_IGNORECASE] : ""; + return ignoreCase == "" || /true/i.test(ignoreCase); +} + +/** + * Object for translating a filter object to a sql condition. + * + * @param {Object} pFilter the filter object that should be used + * @param {String} pTable the database table to build the condition for + */ +function FilterSqlTranslator (pFilter, pTable) +{ + this._filter = null; + this.filter(pFilter); + this._table = pTable; + this._tableAlias = null; + this._dbAlias = null; + this._sqlFieldMappings = {}; + this._fieldConditionFns = {}; + this._ignoreCase = JditoFilterUtils.isUserIgnoreCase(); +} + +/** + * Sets the filter of the object + * + * @param {Object} pFilter the filter object that should be used + * @return {FilterSqlTranslator} current object + */ +FilterSqlTranslator.prototype.filter = function (pFilter) +{ + if (pFilter) + { + if (typeof pFilter !== "object") + throw new TypeError("FilterSqlTranslator: Wrong type for the filter, expected 'object' but got '" + (typeof pFilter) + "'"); + this._filter = pFilter.filter || pFilter; + } + return this; +} + +/** + * Sets the filter of the object + * + * @param {String} pFilter the filter object that should be used as JSON string + * @return {FilterSqlTranslator} current object + */ +FilterSqlTranslator.prototype.filterJSON = function (pFilter) +{ + return this.filter(JSON.parse(pFilter)); +} + +/** + * Sets the table of the object + * + * @param {String} pTable the database table to build the condition for + * @param {String} [pTableAlias] the alias of the table + * @return {FilterSqlTranslator} current object + */ +FilterSqlTranslator.prototype.table = function (pTable, pTableAlias) +{ + this._table = pTable; + if (pTableAlias) + this._tableAlias = pTableAlias; + return this; +} + +/** + * Adds a special database field mapping for the given field that will be used for the sql condition + * + * @param {String} pFieldName the field name + * @param {String|String[]} pDBField the database field ("TABLE.COLUMN" or ["TABLE", "COLUMN", "alias"]) + * @return {FilterSqlTranslator} current object + */ +FilterSqlTranslator.prototype.addSqlFieldMapping = function (pFieldName, pDBField) +{ + this._sqlFieldMappings[pFieldName] = pDBField; + return this; +} + +/** + * Adds a special function for building the condition for the given field. The function must return a sql condition (SqlBuilder or String) + * + * @param {String} pFieldName the field name + * @param {Function} pConditionFn a function that generates the condition + * @return {FilterSqlTranslator} current object + */ +FilterSqlTranslator.prototype.addSpecialFieldConditionFn = function (pFieldName, pConditionFn) +{ + this._fieldConditionFns[pFieldName] = pConditionFn; + return this; +} + +/** + * Sets the database alias + * + * @param {String} pAlias the alias to be used + * @return {FilterSqlTranslator} current object + */ +FilterSqlTranslator.prototype.dbAlias = function (pAlias) +{ + this._dbAlias = pAlias; + return this; +} + +/** + * Changes whether the condition should be case-insensitive for text + * + * @param {boolean} [pIgnoreCase=true] if it should be case-insensitive + * @return {FilterSqlTranslator} current object + */ +FilterSqlTranslator.prototype.ignoreCase = function (pIgnoreCase) +{ + //"", 0 , false -> false, everything else is considered true + this._ignoreCase = pIgnoreCase != false; + return this; +} + +/** + * Builds the sql condition from the filter + * + * @return {SqlBuilder} the sql condition + */ +FilterSqlTranslator.prototype.getSqlCondition = function () +{ + var condition = new SqlBuilder(this._dbAlias).where(); + if (!this._filter) return condition; - if (!pColumnOrFnMap) - pColumnOrFnMap = {}; - _addCondition.call(condition, pFilter, pFilter.operator); + var table = this._table; + var tableAlias = this._tableAlias; + var ignoreCase = this._ignoreCase; + var sqlFieldMappings = this._sqlFieldMappings; + var fieldConditionFns = this._fieldConditionFns; + + _addCondition.call(condition, this._filter, this._filter.operator); return condition; @@ -230,47 +380,61 @@ JditoFilterUtils.getSqlCondition = function (pFilter, pTable, pTableAlias, pColu { if (pFilter.type == "row") { - if (pFilter.name in pColumnOrFnMap) + var sqlField, condition; + var filterValue = (pFilter.key || pFilter.value); + if (pFilter.name in fieldConditionFns) { - pFilter.name = pColumnOrFnMap[pFilter.name]; + var conditionFn = fieldConditionFns[pFilter.name]; + + condition = conditionFn.call(null, filterValue, pFilter.operator); + if (pOperator == "AND") + this.andIfSet(condition); + else if (pOperator == "OR") + this.orIfSet(condition); + + return; + } + + if (pFilter.name in sqlFieldMappings) + { + sqlField = sqlFieldMappings[sqlField]; //possibility to explicitly set the value to null/false so that the field is ignored - if (pFilter.name === null || pFilter.name === false) + if (sqlField === null || sqlField === false) return; } - else if (pTable && pTableAlias) - pFilter.name = [pTable, pFilter.name, pTableAlias]; - else if (pTable) - pFilter.name = pTable + "." + pFilter.name; - - pFilter.value = (pFilter.key || pFilter.value); + else if (table && tableAlias) + sqlField = [table, pFilter.name, tableAlias]; + else if (table) + sqlField = table + "." + pFilter.name; - var condition; - if (typeof(pFilter.name) === "function") + var generatedCondition = _getCondition(filterValue, pFilter.operator, sqlField); + if (generatedCondition instanceof SqlBuilder || typeof generatedCondition === "string") { - condition = pFilter.name.call(null, pFilter.value, pFilter.operator); if (pOperator == "AND") - this.andIfSet(condition); + this.andIfSet(generatedCondition); else if (pOperator == "OR") - this.orIfSet(condition); + this.orIfSet(generatedCondition); } else { - let isStringType, filterValue; - [condition, filterValue, isStringType] = _getCondition(pFilter.value, pFilter.operator); + var isStringType = pFilter.contenttype != "NUMBER" + && pFilter.contenttype != "DATE" + && pFilter.contenttype != "BOOLEAN"; + [condition, filterValue] = generatedCondition; if (isStringType && ignoreCase) condition = condition.replace("#", "UPPER(#)").replace("?", "UPPER(?)"); - + if (pOperator == "AND") - this.andIfSet(pFilter.name, filterValue, condition); + this.andIfSet(sqlField, filterValue, condition); else if (pOperator == "OR") - this.orIfSet(pFilter.name, filterValue, condition); + this.orIfSet(sqlField, filterValue, condition); } } else if (pFilter.type == "group") { - let subCondition = newWhere(); - let operator = pFilter.operator; + var subCondition = newWhere(); + var operator = pFilter.operator; pFilter.childs.forEach(function (cond) { _addCondition.call(subCondition, cond, operator); @@ -282,45 +446,41 @@ JditoFilterUtils.getSqlCondition = function (pFilter, pTable, pTableAlias, pColu } } - //returns [condition, value with wildcards, is a string type] depending on the operator - function _getCondition (pValue, pOperator) + //returns [condition, value with wildcards] depending on the operator + function _getCondition (pValue, pOperator, pField) { switch (pOperator) { case "CONTAINS": - return [SqlBuilder.LIKE(), "%" + pValue + "%", true]; + return [SqlBuilder.LIKE(), "%" + pValue + "%"]; case "CONTAINSNOT": - return [SqlBuilder.NOT_LIKE(), "%" + pValue + "%", true]; + return [SqlBuilder.NOT_LIKE(), "%" + pValue + "%"]; case "STARTSWITH": - return [SqlBuilder.LIKE(), pValue + "%", true]; + return [SqlBuilder.LIKE(), pValue + "%"]; case "ENDSWITH": - return [SqlBuilder.LIKE(), "%" + pValue, true]; + return [SqlBuilder.LIKE(), "%" + pValue]; case "EQUAL": - return [SqlBuilder.EQUAL(), pValue, true]; + return [SqlBuilder.EQUAL(), pValue]; case "NOT_EQUAL": - return [SqlBuilder.NOT_EQUAL(), pValue, true]; + return [SqlBuilder.NOT_EQUAL(), pValue]; case "LESS": - return [SqlBuilder.LESS(), pValue, false]; + return [SqlBuilder.LESS(), pValue]; case "LESS_OR_EQUAL": - return [SqlBuilder.LESS_OR_EQUAL(), pValue, false]; + return [SqlBuilder.LESS_OR_EQUAL(), pValue]; case "GREATER": - return [SqlBuilder.GREATER(), pValue, false]; + return [SqlBuilder.GREATER(), pValue]; case "GREATER_OR_EQUAL": - return [SqlBuilder.GREATER_OR_EQUAL(), pValue, false]; + return [SqlBuilder.GREATER_OR_EQUAL(), pValue]; case "ISNULL": - return ["# is null", pValue, false]; + return pField + " is null"; case "ISNOTNULL": - return ["# is not null", pValue, false]; + return pField + " is not null"; + case "TIMEFRAME_EQUAL": + case "TIMEFRAME_COMING": + case "TIMEFRAME_PAST": + var [start, end] = datetime.resolveRelativeDateExpression(pValue); + return newWhere(pField, start, SqlBuilder.GREATER_OR_EQUAL()) + .and(pField, end, SqlBuilder.LESS_OR_EQUAL()); } } -} - -/** - * @return {boolean} the selectionIgnoreCase property of the current user, defaults to true - */ -JditoFilterUtils.isUserIgnoreCase = function () -{ - var user = tools.getCurrentUser(); - var ignoreCase = user ? user[tools.PARAMS][tools.SELECTION_IGNORECASE] : ""; - return ignoreCase == "" || /true/i.test(ignoreCase); -} +} \ No newline at end of file diff --git a/process/KeywordData_lib/process.js b/process/KeywordData_lib/process.js index 9997efa52934025c8d61e7cd6eb8414737af9fe8..a4fbd6bd4e44b0b1068e110f60e27107bceb47ee 100644 --- a/process/KeywordData_lib/process.js +++ b/process/KeywordData_lib/process.js @@ -20,7 +20,7 @@ KeywordData.getSimpleData = function (pKeywordContainer, pLocale, pOnlyActives) var identifier = "KeywordSimpleData_" + pKeywordContainer + flags; var cache = new CachedData(identifier, true, pLocale); return cache.load(function (pTranslationNecessary, pLocale){ - var keywordEntrySelect = newSelect("AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE") + var keywordEntrySelect = newSelect("AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE", "Data_alias") .from("AB_KEYWORD_ENTRY") .orderBy("AB_KEYWORD_ENTRY.SORTING asc, AB_KEYWORD_ENTRY.TITLE asc") .where("AB_KEYWORD_ENTRY.CONTAINER", pKeywordContainer); diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js index 2ae7c40b6e90dc3d207d4441cbeb3abeadfd128c..04e469c42da0bb82885071aec0350704dc6d59bc 100644 --- a/process/KeywordRegistry_basic/process.js +++ b/process/KeywordRegistry_basic/process.js @@ -21,6 +21,11 @@ $KeywordRegistry._autoPad = function(pKey){return (pKey + " $KeywordRegistry.attributeType = function(){return "AttributeType";}; $KeywordRegistry.keywordAttributeType = function(){return "KeywordAttributeType";}; +$KeywordRegistry.keywordAttributeType$char = function(){return "CHAR";}; +$KeywordRegistry.keywordAttributeType$number = function(){return "NUMBER";}; +$KeywordRegistry.keywordAttributeType$bool = function(){return "BOOLEAN";}; +$KeywordRegistry.keywordAttributeType$longChar = function(){return "LONGCHAR";}; + $KeywordRegistry.contractPayment = function(){return "ContractPayment";}; $KeywordRegistry.contractStatus = function(){return "ContractStatus";}; @@ -286,4 +291,7 @@ $KeywordRegistry.visitRecommendationPrioSource = function(){return $KeywordRegis $KeywordRegistry.visitRecommendationPrioSource$visitFrequency = function(){return $KeywordRegistry._autoPad("VISITFREQUENCY");}; $KeywordRegistry.visitRecommendationPrioSource$manual = function(){return $KeywordRegistry._autoPad("MANUAL");}; -$KeywordRegistry.workflowCategory = function(){return "WorkflowCategory";}; \ No newline at end of file +$KeywordRegistry.workflowCategory = function(){return "WorkflowCategory";}; + +$KeywordRegistry.notificationState = function () { return "NotificationState";}; +$KeywordRegistry.notificationType = function () { return "NotificationType";}; diff --git a/process/Product_lib/process.js b/process/Product_lib/process.js index d49860b7ac46e5f1f8d093310260d8406de9b0e0..ee03a52bec3a0052633d48aace52aeb834a107da 100644 --- a/process/Product_lib/process.js +++ b/process/Product_lib/process.js @@ -283,8 +283,21 @@ ProductUtils.getProductDetails = function(pid, priceListFilter, additionalProduc return priceLists[list]; } //customer deposited price list (defined by Attribute) - if (priceListFilter.priceList != "" && priceListFilter.priceList == priceLists[list].priceList) { - return priceLists[list]; + if (priceListFilter.priceList != "") { + var res; + var escape; + // runs trough the possible pricelists to find the one with the correct pricelist ("-type"). + // e.g: PRICELISTSERVICE, PRICELISTSPECIAL, PRICELISTKEY, PRICELISTDEFAULT + for(var index in priceLists) + { + + if (priceLists[index]["priceList"] == priceListFilter.priceList) + { + res = priceLists[index]; //The first time the condition is true the correct pricelist is found. + break; // The object is ordered by fromQuantity descending so we have to stop after the condition is true + } + } + return res; } //default price list if (priceLists[list].priceList == $KeywordRegistry.productPricelist$standardList()) { diff --git a/process/ctiServerEvents/process.js b/process/ctiServerEvents/process.js index ecb4f7e36158f19b8473870b9b5c2f280934b8dd..e0df2b323d8dc904b125b3c44fc12db5a50a5fe2 100644 --- a/process/ctiServerEvents/process.js +++ b/process/ctiServerEvents/process.js @@ -62,6 +62,8 @@ var ringingHandlerFn = function() var affectedContext = this.contactsCall[0].PERSON_ID.trim() == "" ? "Organisation" : "Person"; notificationConfig.linkInfo(text.encodeMS([affectedContext, affectedContactId])); } + + notificationConfig.initialState(notification.STATE_CONFIRMED); notification.addNotificationWith(notificationConfig);