diff --git a/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/changelog.xml b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/changelog.xml new file mode 100644 index 0000000000000000000000000000000000000000..880688cff9487dd0f101f482685003c1ab08d1ea --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/changelog.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"> + <include relativeToChangelogFile="true" file="create_VisitPlanTables.xml"/> + <include relativeToChangelogFile="true" file="init_PersPointOfContact.xml"/> + <include relativeToChangelogFile="true" file="init_VisitFrequency.xml"/> + <include relativeToChangelogFile="true" file="init_VisitPlanEntryStatus.xml"/> + <include relativeToChangelogFile="true" file="init_VisitPlanRecommendationPriority.xml"/> + <include relativeToChangelogFile="true" file="init_VisitPlanRecommendationPrioSource.xml"/> + <include relativeToChangelogFile="true" file="update_ActivityCategory_icon.xml"/> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/create_VisitPlanTables.xml b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/create_VisitPlanTables.xml new file mode 100644 index 0000000000000000000000000000000000000000..04e0fa9f3cd843cf4f487e60519ba7d99c1b331c --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/create_VisitPlanTables.xml @@ -0,0 +1,38 @@ +<?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="863294b7-532b-47aa-84b6-94cfb637dd3a"> + <createTable tableName="VISITPLANEMPLOYEEWEEK"> + <column name="VISITPLANEMPLOYEEWEEKID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_VISITPLANEMPLOYEEWEEK_VISITPLANEMPLOYEEWEEKID"/> + </column> + <column name="VISITPLAN_YEAR" type="INT"/> + <column name="VISITPLAN_WEEK" type="INT"/> + <column name="CONTACT_ID" type="CHAR(36)"/> + <column name="INFO" type="NCLOB"/> + </createTable> + <createTable tableName="VISITPLANENTRY"> + <column name="VISITPLANENTRYID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_VISITPLANENTRY_VISITPLANENTRYID"/> + </column> + <column name="ENTRYDATE" type="DATE"/> + <column name="BEGIN_TIME" type="TIME"/> + <column name="END_TIME" type="TIME"/> + <column name="ORGANISATION_ID" type="CHAR(36)"/> + <column name="VISITPLANEMPLOYEEWEEK_ID" type="CHAR(36)"/> + <column name="STATUS" type="CHAR(36)"/> + <column name="VISITRECOMMENDATION_ID" type="CHAR(36)"/> + <column name="APPOINTMENT_ID" type="CHAR(36)"/> + </createTable> + <createTable tableName="VISITRECOMMENDATION"> + <column name="VISITRECOMMENDATIONID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_VISITRECOMMENDATION_VISITRECOMMENDATIONID"/> + </column> + <column name="DUE_DATE" type="DATETIME"/> + <column name="PRIORITY" type="CHAR(36)"/> + <column name="SOURCE" type="NVARCHAR(255)"/> + <column name="CONTACT_ID" type="CHAR(36)"/> + <column name="INFO" type="NCLOB"/> + </createTable> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/init_PersPointOfContact.xml b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/init_PersPointOfContact.xml new file mode 100644 index 0000000000000000000000000000000000000000..52c0b26725f1b2968866416b7ce61e0b56e32e31 --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/init_PersPointOfContact.xml @@ -0,0 +1,51 @@ +<?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="16e3b4c9-ccb8-42ce-a7c4-54311b6651de"> + <insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="547b8b9d-88ba-4590-9e01-34d2a58116cc"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Visit frequency"/> + <column name="ATTRIBUTE_PARENT_ID" value="59377864-0745-4a18-8d7b-57a0491a8116"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> + </insert> + <insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="a9575350-c1e7-4f96-b0ed-a8f52cc8b123"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Yearly"/> + <column name="ATTRIBUTE_PARENT_ID" value="547b8b9d-88ba-4590-9e01-34d2a58116cc"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> + </insert> + <insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="46d87ef7-a3fb-4918-98df-c8ed2cd3ca2b"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Semiannually"/> + <column name="ATTRIBUTE_PARENT_ID" value="547b8b9d-88ba-4590-9e01-34d2a58116cc"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="2"/> + </insert> + <insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="22722783-aa87-418f-9686-9b97c0639cae"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Quarterly"/> + <column name="ATTRIBUTE_PARENT_ID" value="547b8b9d-88ba-4590-9e01-34d2a58116cc"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="3"/> + </insert> + <insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="8c100817-1d2b-4fc7-8fdd-fd0370e19385"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Monthly"/> + <column name="ATTRIBUTE_PARENT_ID" value="547b8b9d-88ba-4590-9e01-34d2a58116cc"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="4"/> + </insert> + <insert tableName="AB_ATTRIBUTEUSAGE"> + <column name="AB_ATTRIBUTEUSAGEID" value="c383d229-4abd-47b9-b131-cae340dafa59"/> + <column name="AB_ATTRIBUTE_ID" value="547b8b9d-88ba-4590-9e01-34d2a58116cc"/> + <column name="MAX_COUNT" valueNumeric="1"/> + <column name="OBJECT_TYPE" value="Organisation"/> + </insert> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/init_VisitFrequency.xml b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/init_VisitFrequency.xml new file mode 100644 index 0000000000000000000000000000000000000000..7111e45c969bc2417371c4febcd0453980956d50 --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/init_VisitFrequency.xml @@ -0,0 +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="5f08fb9a-ec05-4a06-8809-1fc0629bd08b"> + <insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="59377864-0745-4a18-8d7b-57a0491a8116"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Visit Planning"/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> + </insert> + <insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="7d78320a-31c6-4c24-992a-a583f47caeb5"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Point of Contact"/> + <column name="ATTRIBUTE_PARENT_ID" value="59377864-0745-4a18-8d7b-57a0491a8116"/> + <column name="ATTRIBUTE_TYPE" value="BOOLEAN "/> + </insert> + <insert tableName="AB_ATTRIBUTEUSAGE"> + <column name="AB_ATTRIBUTEUSAGEID" value="24df9727-85ef-4344-a33d-7ac30218b481"/> + <column name="AB_ATTRIBUTE_ID" value="7d78320a-31c6-4c24-992a-a583f47caeb5"/> + <column name="MAX_COUNT" valueNumeric="1"/> + <column name="OBJECT_TYPE" value="Person"/> + </insert> + + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/init_VisitPlanEntryStatus.xml b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/init_VisitPlanEntryStatus.xml new file mode 100644 index 0000000000000000000000000000000000000000..09490da478a39ff83928c9fb681ae24d18b3ab61 --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/init_VisitPlanEntryStatus.xml @@ -0,0 +1,33 @@ +<?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="06388d69-ae16-4655-bc51-b09ebbcc3ad5"> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="9d427420-2c87-4ada-9349-a799972bda0f"/> + <column name="KEYID" value="VISITSTATUSPLANNED "/> + <column name="TITLE" value="planned"/> + <column name="CONTAINER" value="VisitPlanEntryStatus"/> + <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="2f740f93-12ed-4e22-a158-adba5da81b40"/> + <column name="KEYID" value="VISITSTATUSAPPPLANED "/> + <column name="TITLE" value="Appointment planned"/> + <column name="CONTAINER" value="VisitPlanEntryStatus"/> + <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="dd276100-b867-489c-8128-a3b71aa7564f"/> + <column name="KEYID" value="VISITSTATUSREPORTCREATED "/> + <column name="TITLE" value="Visitreport created"/> + <column name="CONTAINER" value="VisitPlanEntryStatus"/> + <column name="SORTING" valueNumeric="2"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/init_VisitPlanRecommendationPrioSource.xml b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/init_VisitPlanRecommendationPrioSource.xml new file mode 100644 index 0000000000000000000000000000000000000000..1de8b541b19371045dac349a748ca2e5fe0e20ec --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/init_VisitPlanRecommendationPrioSource.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="b.ulrich" id="69bd60c9-22f4-4930-9c32-799a90394559"> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="17905c4d-1c88-4cee-83da-164c13bbe848"/> + <column name="KEYID" value="VISITFREQUENCY "/> + <column name="TITLE" value="Visit Frequency"/> + <column name="CONTAINER" value="VisitRecommendationPrioSource"/> + <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="2f162837-868a-4517-810e-677cd423be56"/> + <column name="KEYID" value="MANUAL "/> + <column name="TITLE" value="Manual"/> + <column name="CONTAINER" value="VisitRecommendationPrioSource"/> + <column name="SORTING" valueNumeric="1"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/init_VisitPlanRecommendationPriority.xml b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/init_VisitPlanRecommendationPriority.xml new file mode 100644 index 0000000000000000000000000000000000000000..ee9661433dbec349f609a8082879b11f2901f408 --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/init_VisitPlanRecommendationPriority.xml @@ -0,0 +1,51 @@ +<?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="4fd5a4b5-442a-4370-8567-0a1f5c227d96"> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="91d7417e-fd45-429e-9ce9-a46f25c0c1d1"/> + <column name="KEYID" value="VISITPRIOCRITICAL "/> + <column name="TITLE" value="critical"/> + <column name="CONTAINER" value="VisitRecommendationPriority"/> + <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="c0147b73-f678-4136-b3c4-0fde7e943a84"/> + <column name="KEYID" value="VISITPRIOCVERYHIGH "/> + <column name="TITLE" value="very high"/> + <column name="CONTAINER" value="VisitRecommendationPriority"/> + <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="4ac4c7e1-d73b-4a26-9a6d-bc06505b9611"/> + <column name="KEYID" value="VISITPRIOHIGH "/> + <column name="TITLE" value="high"/> + <column name="CONTAINER" value="VisitRecommendationPriority"/> + <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="facb77a6-5bc1-4e2f-8dd0-72200b57c326"/> + <column name="KEYID" value="VISITPRIOMEDIUM "/> + <column name="TITLE" value="medium"/> + <column name="CONTAINER" value="VisitRecommendationPriority"/> + <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="036cbf6f-a8bd-4f25-b885-f1a689927bf1"/> + <column name="KEYID" value="VISITPRIOLOW "/> + <column name="TITLE" value="low"/> + <column name="CONTAINER" value="VisitRecommendationPriority"/> + <column name="SORTING" valueNumeric="4"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/update_ActivityCategory_icon.xml b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/update_ActivityCategory_icon.xml new file mode 100644 index 0000000000000000000000000000000000000000..b7a2f9a6e8795fde475b8079b57abab1427968c2 --- /dev/null +++ b/.liquibase/Data_alias/basic/2020.1.0/VisitPlan/update_ActivityCategory_icon.xml @@ -0,0 +1,13 @@ +<?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="j.goderbauer" id="47c6d047-4717-4583-aa2f-735b148c559b"> + <update tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="CHAR_VALUE" value="VAADIN:CAR" /> + <where>AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> + <whereParams> + <param value="9dfb126f-25ea-4a04-9603-c3e92fe74331" /> + </whereParams> + </update> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2020.1.0/changelog.xml b/.liquibase/Data_alias/basic/2020.1.0/changelog.xml index a44528de1a83058b72e88bbe2bf0d93f79c12f15..814024a25bb0207b2b1a25243026256f39ae4aa5 100644 --- a/.liquibase/Data_alias/basic/2020.1.0/changelog.xml +++ b/.liquibase/Data_alias/basic/2020.1.0/changelog.xml @@ -2,7 +2,8 @@ <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="ExportTemplate/create_ExportTemplateTables.xml" relativeToChangelogFile="true"/> -<include file="PermissionCalendar/changelog.xml" relativeToChangelogFile="true"/> + <include relativeToChangelogFile="true" file="VisitPlan/changelog.xml"/> + <include file="PermissionCalendar/changelog.xml" relativeToChangelogFile="true"/> <include file="DocumentTemplate/create_DocumentTemplatePlaceOfUse.xml" relativeToChangelogFile="true"/> <include relativeToChangelogFile="true" file="changeType_SALESORDER_PAID_UNPAID.xml"/> <include relativeToChangelogFile="true" file="changeType_SALESORDER_PAID_UNPAID.xml"/> diff --git a/.liquibase/Data_alias/basic/_demoData/changelog.xml b/.liquibase/Data_alias/basic/_demoData/changelog.xml index 1bab6d642387531f868402cacc4ef202cb73721e..e6850dd5b6879f44ea9c7feba9b6bbefa4db5809 100644 --- a/.liquibase/Data_alias/basic/_demoData/changelog.xml +++ b/.liquibase/Data_alias/basic/_demoData/changelog.xml @@ -50,4 +50,5 @@ <include file="generatedData/exporttemplatefield.xml" relativeToChangelogFile="true"/> <include file="generatedData/exporttemplateplaceofuse.xml" relativeToChangelogFile="true"/> <include file="generatedData/documenttemplateplaceofuse.xml" relativeToChangelogFile="true"/> + <include file="generatedData/visitplan.xml" relativeToChangelogFile="true"/> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/_demoData/generatedData/visitplan.xml b/.liquibase/Data_alias/basic/_demoData/generatedData/visitplan.xml new file mode 100644 index 0000000000000000000000000000000000000000..533d677a544e1912c5b0b7ba19a15e036f9cbfc3 --- /dev/null +++ b/.liquibase/Data_alias/basic/_demoData/generatedData/visitplan.xml @@ -0,0 +1,97 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="autogenerated" id="62ad16a9-7312-4dda-9e4b-460673b9af82"> + + <insert tableName="VISITPLANEMPLOYEEWEEK"> + <column name="VISITPLANEMPLOYEEWEEKID" value="821b3424-b6d2-41f8-b0b2-6a7c2c050214"/> + <column name="VISITPLAN_YEAR" valueNumeric="2020"/> + <column name="VISITPLAN_WEEK" valueNumeric="21"/> + <column name="CONTACT_ID" value="c7ddf982-0e58-4152-b82b-8f5673b0b729"/> + <column name="INFO" value=""/> + </insert> + + <insert tableName="VISITPLANENTRY"> + <column name="VISITPLANENTRYID" value="04e3cf2c-c367-4b3c-a65f-f729da96754f"/> + <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="VISITPLANEMPLOYEEWEEK_ID" value="821b3424-b6d2-41f8-b0b2-6a7c2c050214"/> + <column name="STATUS" value="VISITSTATUSPLANNED "/> + </insert> + <insert tableName="VISITPLANENTRY"> + <column name="VISITPLANENTRYID" value="9c6b378b-4738-47b6-9f19-3a1e26f3428e"/> + <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="VISITPLANEMPLOYEEWEEK_ID" value="821b3424-b6d2-41f8-b0b2-6a7c2c050214"/> + <column name="STATUS" value="VISITSTATUSPLANNED "/> + </insert> + <insert tableName="VISITPLANENTRY"> + <column name="VISITPLANENTRYID" value="bd7b38d1-9ae1-4424-8c65-d9b0f3b000ba"/> + <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="e83c45e0-c30b-436e-b445-00a8b58383b0"/> + <column name="VISITPLANEMPLOYEEWEEK_ID" value="821b3424-b6d2-41f8-b0b2-6a7c2c050214"/> + <column name="STATUS" value="VISITSTATUSPLANNED "/> + </insert> + <insert tableName="VISITPLANENTRY"> + <column name="VISITPLANENTRYID" value="5102104c-6baa-404f-9c71-157a8c79663a"/> + <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="VISITPLANEMPLOYEEWEEK_ID" value="821b3424-b6d2-41f8-b0b2-6a7c2c050214"/> + <column name="STATUS" value="VISITSTATUSPLANNED "/> + </insert> + + <insert tableName="VISITPLANEMPLOYEEWEEK"> + <column name="VISITPLANEMPLOYEEWEEKID" value="73fbf25a-5668-411f-9ef5-42603d163a77"/> + <column name="VISITPLAN_YEAR" valueNumeric="2020"/> + <column name="VISITPLAN_WEEK" valueNumeric="22"/> + <column name="CONTACT_ID" value="1a67eaa7-21da-4a18-97ab-755ac5cb74f7"/> + <column name="INFO" value=""/> + </insert> + + <insert tableName="VISITPLANENTRY"> + <column name="VISITPLANENTRYID" value="152c5f90-4c8b-40ee-8ff9-e2362340ba45"/> + <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="VISITPLANEMPLOYEEWEEK_ID" value="73fbf25a-5668-411f-9ef5-42603d163a77"/> + <column name="STATUS" value="VISITSTATUSPLANNED "/> + </insert> + <insert tableName="VISITPLANENTRY"> + <column name="VISITPLANENTRYID" value="f799a0cd-31bb-4be3-9fd9-0cbd0a3d55ac"/> + <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="VISITPLANEMPLOYEEWEEK_ID" value="73fbf25a-5668-411f-9ef5-42603d163a77"/> + <column name="STATUS" value="VISITSTATUSPLANNED "/> + </insert> + <insert tableName="VISITPLANENTRY"> + <column name="VISITPLANENTRYID" value="ad325402-616c-495e-a7f5-a5ae6def0399"/> + <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="VISITPLANEMPLOYEEWEEK_ID" value="73fbf25a-5668-411f-9ef5-42603d163a77"/> + <column name="STATUS" value="VISITSTATUSPLANNED "/> + </insert> + + + <insert tableName="VISITRECOMMENDATION"> + <column name="VISITRECOMMENDATIONID" value="487eeff9-6807-41f6-95e9-5f0f61b45a05"/> + <column name="DUE_DATE" valueDate="2020-04-16T10:43:23"/> + <column name="PRIORITY" value="VISITPRIOMEDIUM "/> + <column name="SOURCE" value="MANUAL "/> + <column name="CONTACT_ID" value="fc465f2f-803b-4a1f-b79d-7b466d7ecff4"/> + <column name="INFO" value="Kontrolltermin"/> + </insert> + + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod index ccfb7548604b4feca1399d0e7ce123cf38789047..515c28a780f8020041d40bd12ba6cc1aeb24c4b3 100644 --- a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod +++ b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod @@ -133,6 +133,32 @@ </entityNode> </childNodes> </entityNode> + <entityNode> + <name>Group12</name> + <kind v="123" /> + <title>External Work</title> + <icon>VAADIN:CAR</icon> + <childNodes> + <entityNode> + <name>Group15</name> + <kind v="123" /> + <childNodes> + <entityNode> + <name>VisitRecommendation</name> + <kind v="10077" /> + </entityNode> + <entityNode> + <name>VisitPlanEmployeeWeek</name> + <kind v="10077" /> + </entityNode> + <entityNode> + <name>INTERNAL_EVERYONE</name> + <kind v="159" /> + </entityNode> + </childNodes> + </entityNode> + </childNodes> + </entityNode> <entityNode> <name>Marketing</name> <kind v="123" /> diff --git a/entity/Activity_entity/Activity_entity.aod b/entity/Activity_entity/Activity_entity.aod index 97ca6191f20bb1f7668aa0d180f7734d5a09cfa4..687ca2399d29044e5f70d41e1d69df829482a289 100644 --- a/entity/Activity_entity/Activity_entity.aod +++ b/entity/Activity_entity/Activity_entity.aod @@ -51,6 +51,7 @@ <consumer>KeywordCategories</consumer> <groupable v="true" /> <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/Activity_entity/entityfields/category/valueProcess.js</valueProcess> <displayValueProcess>%aditoprj%/entity/Activity_entity/entityfields/category/displayValueProcess.js</displayValueProcess> </entityField> <entityField> @@ -582,6 +583,18 @@ </entityParameter> </children> </entityConsumer> + <entityParameter> + <name>Category_param</name> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>Entrydate_param</name> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>VisitPlanEntryId_param</name> + <expose v="true" /> + </entityParameter> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Activity_entity/entityfields/category/valueProcess.js b/entity/Activity_entity/entityfields/category/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..b79cf6e3d6b03a857823fbb953a8246320f6d36c --- /dev/null +++ b/entity/Activity_entity/entityfields/category/valueProcess.js @@ -0,0 +1,7 @@ +import("system.neon"); +import("system.result"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.getString("$this.value") && + vars.get("$param.Category_param")) + result.string(vars.get("$param.Category_param")); diff --git a/entity/Activity_entity/entityfields/entrydate/valueProcess.js b/entity/Activity_entity/entityfields/entrydate/valueProcess.js index 651bbe1ba274ee0bea9f70ef309afe11a883b175..91f909cd6717f1519d9ed47e19046434fe256d07 100644 --- a/entity/Activity_entity/entityfields/entrydate/valueProcess.js +++ b/entity/Activity_entity/entityfields/entrydate/valueProcess.js @@ -3,5 +3,8 @@ import("system.vars"); import("system.result"); import("system.neon"); -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.getString("$this.value")) - result.string(datetime.date()); \ No newline at end of file +if(vars.get("$this.value") == null && vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + var presetValue = vars.get("$param.Entrydate_param") || datetime.date(); + result.string(presetValue); +} \ No newline at end of file diff --git a/entity/Activity_entity/recordcontainers/db/onDBInsert.js b/entity/Activity_entity/recordcontainers/db/onDBInsert.js index ea5eb09938ca215493e91e48c9882af3f79b8f3e..e67f7ab0878145e9347c096feb5d097432bf6222 100644 --- a/entity/Activity_entity/recordcontainers/db/onDBInsert.js +++ b/entity/Activity_entity/recordcontainers/db/onDBInsert.js @@ -1,3 +1,5 @@ +import("Sql_lib"); +import("KeywordRegistry_basic"); import("Document_lib"); import("ActivityTask_lib"); import("system.vars"); @@ -20,6 +22,15 @@ else } if (documents) ActivityUtils.insertDocuments(vars.get("$local.uid"), documents); + +if(vars.get("$param.VisitPlanEntryId_param")) +{ + var values = [$KeywordRegistry.visitPlanEntryStatus$Visitreportcreated()]; + var columns = ["STATUS"]; + var columnTypes = db.getColumnTypes("VISITPLANENTRY", columns, db.getCurrentAlias()); + var update = newWhere("VISITPLANENTRY.VISITPLANENTRYID", vars.get("$param.VisitPlanEntryId_param")) + .updateData(true, "VISITPLANENTRY", columns, columnTypes, values); +} if (vars.exists("$param.InsertLinks_param") && vars.get("$param.InsertLinks_param")) { diff --git a/entity/AnyContact_entity/AnyContact_entity.aod b/entity/AnyContact_entity/AnyContact_entity.aod index 4645d08bede5cf4032745659c003532e8998b2c4..ebeba91e961ff738a0b7c700280d670308265101 100644 --- a/entity/AnyContact_entity/AnyContact_entity.aod +++ b/entity/AnyContact_entity/AnyContact_entity.aod @@ -159,6 +159,12 @@ See ContactUtils.getRelationTypeByPersOrg for possible values</description> <fieldName>AnyContacts</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>91db53ad-3748-4a24-8dba-11dc707c2d6b</name> + <entityName>VisitPlanEntry_entity</entityName> + <fieldName>AnyContacts</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> <children> <entityParameter> diff --git a/entity/KeywordEntry_entity/KeywordEntry_entity.aod b/entity/KeywordEntry_entity/KeywordEntry_entity.aod index 24d94e0b869e2cc7ebe234496dd08041c05a865f..36b66e6474ce7b35b2beb84a843ad6eb17b130d4 100644 --- a/entity/KeywordEntry_entity/KeywordEntry_entity.aod +++ b/entity/KeywordEntry_entity/KeywordEntry_entity.aod @@ -571,6 +571,18 @@ <fieldName>ActivityTypeKeyword</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>6ac610a4-64a0-4396-8901-80711850129a</name> + <entityName>VisitPlanEntry_entity</entityName> + <fieldName>KeywordVisitPlanEntryStatus</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>eec28bd6-7631-4653-9335-511f0298f8b6</name> + <entityName>VisitRecommendation_entity</entityName> + <fieldName>KeywordVisitRecommendationPriority</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> <children> <entityParameter> diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod index 55d3301e4daa41ccc4e76af052fa41d1181b125f..46d2089ce3d9647e80a532af78a0b20b598f32b7 100644 --- a/entity/Organisation_entity/Organisation_entity.aod +++ b/entity/Organisation_entity/Organisation_entity.aod @@ -129,6 +129,12 @@ <fieldName>Organisations</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>308bf57b-0e80-48a7-be13-8cf0d5005118</name> + <entityName>VisitPlanEntry_entity</entityName> + <fieldName>Organisations</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> <children> <entityParameter> @@ -259,6 +265,12 @@ <fieldName>Organisations</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>e395c4fd-a885-4f73-899f-6899cd3aa294</name> + <entityName>VisitRecommendation_entity</entityName> + <fieldName>OrganisationConsumer</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> </entityProvider> <entityConsumer> @@ -1050,6 +1062,18 @@ <name>ORGANISATION_REPORT_DATA</name> <valueProcess>%aditoprj%/entity/Organisation_entity/entityfields/organisation_report_data/valueProcess.js</valueProcess> </entityField> + <entityActionField> + <name>newVisitRecommendation</name> + <title>New Visit Recommendation</title> + <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitrecommendation/onActionProcess.js</onActionProcess> + <iconId>VAADIN:CALENDAR</iconId> + </entityActionField> + <entityActionField> + <name>newVisitPlanEntry</name> + <title>New Weekplanentry</title> + <onActionProcess>%aditoprj%/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js</onActionProcess> + <iconId>VAADIN:CAR</iconId> + </entityActionField> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js b/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..a4b75c65374cd0c2b158597b4afc565669916962 --- /dev/null +++ b/entity/Organisation_entity/entityfields/newvisitplanentry/onActionProcess.js @@ -0,0 +1,9 @@ +import("system.neon"); +import("system.vars"); + +var params = {}; + +params["NoVisitPlanEmployeeWeek_param"] = true; +params["OrganisationId_param"] = vars.get("$field.CONTACTID"); + +neon.openContext("VisitPlanEntry", "VisitPlanEntryEdit_view", null, neon.OPERATINGSTATE_NEW, params); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/newvisitrecommendation/onActionProcess.js b/entity/Organisation_entity/entityfields/newvisitrecommendation/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..1ac12a1242e4fb78d2c686a05f7df8dfbddeb361 --- /dev/null +++ b/entity/Organisation_entity/entityfields/newvisitrecommendation/onActionProcess.js @@ -0,0 +1,8 @@ +import("system.neon"); +import("system.vars"); + +var params = {}; + +params["ContactId_param"] = vars.getString("$field.CONTACTID"); + +neon.openContext("VisitRecommendation", null, null, neon.OPERATINGSTATE_NEW, params); \ No newline at end of file diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod index 5e7827f70a6d8a8adc0182e2aeef07c9f58d0cf5..e1f97bf211f7c93131651b935e543a69fb73662b 100644 --- a/entity/Person_entity/Person_entity.aod +++ b/entity/Person_entity/Person_entity.aod @@ -274,6 +274,12 @@ <fieldName>Persons</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>4baa56bc-f570-4c19-81b9-4ed9ba7f0cfb</name> + <entityName>VisitRecommendation_entity</entityName> + <fieldName>PersonConsumer</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> </entityProvider> <entityField> @@ -682,6 +688,12 @@ <fieldName>PersonsConsumer</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>c98da62f-d6b2-4ddb-9101-92e9a60abdfb</name> + <entityName>VisitPlanEmployeeWeek_entity</entityName> + <fieldName>Persons</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> <children> <entityParameter> diff --git a/entity/VisitPlanEmployeeWeek_entity/VisitPlanEmployeeWeek_entity.aod b/entity/VisitPlanEmployeeWeek_entity/VisitPlanEmployeeWeek_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..0867671a3805c26c002b6fb881f88097809dbd5e --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/VisitPlanEmployeeWeek_entity.aod @@ -0,0 +1,142 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.14" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.14"> + <name>VisitPlanEmployeeWeek_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/documentation.adoc</documentation> + <title>Visitplan Weekly Overview</title> + <iconId>VAADIN:CAR</iconId> + <image>VAADIN:CAR</image> + <recordContainer>db</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>VISITPLANEMPLOYEEWEEKID</name> + </entityField> + <entityField> + <name>YEAR</name> + <title>Year</title> + <resolution>YEAR</resolution> + <valueProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/year/valueProcess.js</valueProcess> + <onValidation>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/year/onValidation.js</onValidation> + </entityField> + <entityField> + <name>WEEK</name> + <title>Week</title> + <dropDownProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/week/dropDownProcess.js</dropDownProcess> + <valueProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/week/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>INFO</name> + <title>Info</title> + </entityField> + <entityField> + <name>PERSON_ID</name> + <title>Employee</title> + <consumer>Persons</consumer> + <valueProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/person_id/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/person_id/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>icon</name> + <contentType>IMAGE</contentType> + <displayValueProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/icon/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>entriesplannedcount</name> + <title>Planned</title> + <valueProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/entriesplannedcount/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>entriescount</name> + <title>Entriescount</title> + <valueProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/entriescount/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>entries_appoint_count</name> + <title>Appointment Confirmed</title> + <valueProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/entries_appoint_count/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>entries_activity_count</name> + <documentation>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/entries_activity_count/documentation.adoc</documentation> + <title>Visitreport created</title> + <valueProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/entries_activity_count/valueProcess.js</valueProcess> + </entityField> + <entityConsumer> + <name>Entries</name> + <dependency> + <name>dependency</name> + <entityName>VisitPlanEntry_entity</entityName> + <fieldName>Entries</fieldName> + </dependency> + <children> + <entityParameter> + <name>Entries_param</name> + <valueProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/entityfields/entries/children/entries_param/valueProcess.js</valueProcess> + <expose v="true" /> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>recommendations</name> + <dependency> + <name>dependency</name> + <entityName>VisitRecommendation_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + </entityConsumer> + <entityConsumer> + <name>Persons</name> + <dependency> + <name>dependency</name> + <entityName>Person_entity</entityName> + <fieldName>Contacts</fieldName> + </dependency> + </entityConsumer> + </entityFields> + <recordContainers> + <dbRecordContainer> + <name>db</name> + <alias>Data_alias</alias> + <conditionProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/conditionProcess.js</conditionProcess> + <orderClauseProcess>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess> + <linkInformation> + <linkInformation> + <name>3c138105-f800-4216-8b1e-42d08a20f1ae</name> + <tableName>VISITPLANEMPLOYEEWEEK</tableName> + <primaryKey>VISITPLANEMPLOYEEWEEKID</primaryKey> + <isUIDTable v="true" /> + <readonly v="false" /> + </linkInformation> + </linkInformation> + <recordFieldMappings> + <dbRecordFieldMapping> + <name>VISITPLANEMPLOYEEWEEKID.value</name> + <recordfield>VISITPLANEMPLOYEEWEEK.VISITPLANEMPLOYEEWEEKID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>YEAR.value</name> + <recordfield>VISITPLANEMPLOYEEWEEK.VISITPLAN_YEAR</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>WEEK.value</name> + <recordfield>VISITPLANEMPLOYEEWEEK.VISITPLAN_WEEK</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>INFO.value</name> + <recordfield>VISITPLANEMPLOYEEWEEK.INFO</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>PERSON_ID.value</name> + <recordfield>VISITPLANEMPLOYEEWEEK.CONTACT_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>PERSON_ID.displayValue</name> + <expression>%aditoprj%/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/recordfieldmappings/person_id.displayvalue/expression.js</expression> + </dbRecordFieldMapping> + </recordFieldMappings> + </dbRecordContainer> + </recordContainers> +</entity> diff --git a/entity/VisitPlanEmployeeWeek_entity/documentation.adoc b/entity/VisitPlanEmployeeWeek_entity/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..75dc132894bf2a70d744aab8b476a20536dcd970 --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/documentation.adoc @@ -0,0 +1,5 @@ += VisitPlanEmployeeWeek_entity + +For Visitplanning using calendarweeks. +Entity links both the VisitPlanEntry_entity and the VisitRecommendation_entity, +aswell as the Person_entity (to show which employee created the Planning for which week). \ No newline at end of file diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/entries/children/entries_param/valueProcess.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/entries/children/entries_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..40f3505a91b1b827a351be68559f48d204289883 --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/entries/children/entries_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.VISITPLANEMPLOYEEWEEKID")); \ No newline at end of file diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/entries_activity_count/documentation.adoc b/entity/VisitPlanEmployeeWeek_entity/entityfields/entries_activity_count/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..75dc132894bf2a70d744aab8b476a20536dcd970 --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/entries_activity_count/documentation.adoc @@ -0,0 +1,5 @@ += VisitPlanEmployeeWeek_entity + +For Visitplanning using calendarweeks. +Entity links both the VisitPlanEntry_entity and the VisitRecommendation_entity, +aswell as the Person_entity (to show which employee created the Planning for which week). \ No newline at end of file diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/entries_activity_count/valueProcess.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/entries_activity_count/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..9ba1acbd50449b973f0df4078eec2ba4f6f72660 --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/entries_activity_count/valueProcess.js @@ -0,0 +1,10 @@ +import("KeywordRegistry_basic"); +import("system.vars"); +import("system.result"); +import("Sql_lib"); + +result.string(newSelect("count(*)") + .from("VISITPLANENTRY") + .where("VISITPLANENTRY.VISITPLANEMPLOYEEWEEK_ID", vars.get("$field.VISITPLANEMPLOYEEWEEKID")) + .and("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Visitreportcreated()) + .cell()); \ No newline at end of file diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/entries_appoint_count/valueProcess.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/entries_appoint_count/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..3658b62b0ed026756287c596435c61d261a0b362 --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/entries_appoint_count/valueProcess.js @@ -0,0 +1,10 @@ +import("KeywordRegistry_basic"); +import("system.vars"); +import("system.result"); +import("Sql_lib"); + +result.string(newSelect("count(*)") + .from("VISITPLANENTRY") + .where("VISITPLANENTRY.VISITPLANEMPLOYEEWEEK_ID", vars.get("$field.VISITPLANEMPLOYEEWEEKID")) + .and("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged()) + .cell()); \ No newline at end of file diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/entriescount/valueProcess.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/entriescount/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e6b928569a904423b48c9e1f3f1b8ad432e3eed0 --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/entriescount/valueProcess.js @@ -0,0 +1,8 @@ +import("system.vars"); +import("system.result"); +import("Sql_lib"); + +result.string(newSelect("count(*)") + .from("VISITPLANENTRY") + .where("VISITPLANENTRY.VISITPLANEMPLOYEEWEEK_ID", vars.get("$field.VISITPLANEMPLOYEEWEEKID")) + .cell()); diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/entriesplannedcount/valueProcess.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/entriesplannedcount/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2da415daa710e7124099dcb11b9f5c6608b8829a --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/entriesplannedcount/valueProcess.js @@ -0,0 +1,10 @@ +import("system.vars"); +import("KeywordRegistry_basic"); +import("system.result"); +import("Sql_lib"); + +result.string(newSelect("count(*)") + .from("VISITPLANENTRY") + .where("VISITPLANENTRY.VISITPLANEMPLOYEEWEEK_ID", vars.get("$field.VISITPLANEMPLOYEEWEEKID")) + .and("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$planned()) + .cell()); diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/icon/displayValueProcess.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/icon/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..5f7a0067782f98510defc2090930c5cba3039227 --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/icon/displayValueProcess.js @@ -0,0 +1,11 @@ +import("system.logging"); +import("system.vars"); +import("system.db"); +import("system.result"); +import("Sql_lib"); + +var week = vars.get("$field.WEEK"); +if(week.length == 1) + week = "0" + week; + +result.string("TEXT:" + week); diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/person_id/displayValueProcess.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/person_id/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2161701ba3a4caa82d099c7a996759a6ce1d862a --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/person_id/displayValueProcess.js @@ -0,0 +1,7 @@ +import("system.result"); +import("system.vars"); +import("Contact_lib"); + +//show the simple title since this will be later an employee-entry and therefore no organisation is needed +var title = ContactUtils.getTitleByContactId(vars.get("$field.PERSON_ID")); +result.string(title); diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/person_id/valueProcess.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/person_id/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..0bb4d7463fcdc9d1dc9e14fb04772208f00176f4 --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/person_id/valueProcess.js @@ -0,0 +1,8 @@ +import("system.neon"); +import("system.result"); +import("Employee_lib"); +import("system.vars"); +import("Sql_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null) + result.string(EmployeeUtils.getCurrentContactId()); diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/week/dropDownProcess.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/week/dropDownProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..5a5e337bc642c43ab5f835125781c97cf217a31c --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/week/dropDownProcess.js @@ -0,0 +1,20 @@ +import("system.vars"); +import("system.translate"); +import("system.result"); +import("system.text"); + +values = []; +var out; +//no week component so combobox was needed +if(vars.get("$sys.clientlanguage") == "de") +{ + for(let i = 1; i < 53; i++) + values.push([text.formatDouble(i, "#"), "KW " + text.formatDouble(i, "#")]); +} +else +{ + for(let i = 1; i < 53; i++) + values.push([text.formatDouble(i, "#"), "CW " + text.formatDouble(i, "#")]); +} +result.object(values); + diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/week/valueProcess.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/week/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2ce1ac6b726d70643ee730a703dd8c38a388cf9e --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/week/valueProcess.js @@ -0,0 +1,9 @@ +import("system.datetime"); +import("Employee_lib"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +//use current week if recordstate = new and this field empty +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null) + result.string(datetime.toDate(vars.get("$sys.date"), "w")); diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/year/onValidation.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/year/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..efe1ad7a3f2a0e8f24c0d5243d9e5cf21e13163b --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/year/onValidation.js @@ -0,0 +1,10 @@ +import("system.eMath"); +import("system.datetime"); +import("system.translate"); +import("system.vars"); +import("system.result"); + +var year = eMath.absInt(vars.get("$local.value")); //input +var currentYear = eMath.absInt(datetime.toDate(vars.get("$sys.date"), "yyyy"));//2019 +if(year < currentYear || year >= 10000 ) + result.string(translate.text("Invalid year!")); diff --git a/entity/VisitPlanEmployeeWeek_entity/entityfields/year/valueProcess.js b/entity/VisitPlanEmployeeWeek_entity/entityfields/year/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c79b83acb5a542cb7b197d5e7eae812502f4a67f --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/entityfields/year/valueProcess.js @@ -0,0 +1,9 @@ +import("system.datetime"); +import("Employee_lib"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +//use current year if recordstate = new and this field empty +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null) + result.string(datetime.toDate(vars.get("$sys.date"), "yyyy")); \ No newline at end of file diff --git a/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/conditionProcess.js b/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/conditionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..dfed3430a9ea724ab52316ad51e4bbf11129d2ae --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/conditionProcess.js @@ -0,0 +1,10 @@ +import("system.logging"); +import("Sql_lib"); +import("Employee_lib"); +import("system.result"); + +var cond = newWhere(); + +cond.and("VISITPLANEMPLOYEEWEEK.CONTACT_ID", EmployeeUtils.getCurrentContactId()); + +result.string(cond); \ No newline at end of file diff --git a/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/orderClauseProcess.js b/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/orderClauseProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8d4f68a11e357ecf6dd7a954247aafb10289c747 --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/orderClauseProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("system.db"); + +result.object({"VISITPLANEMPLOYEEWEEK.VISITPLAN_YEAR": db.ASCENDING, + "VISITPLANEMPLOYEEWEEK.VISITPLAN_WEEK": db.ASCENDING}); \ No newline at end of file diff --git a/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/recordfieldmappings/person_id.displayvalue/expression.js b/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/recordfieldmappings/person_id.displayvalue/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..b061026da323fff3513e5cf1b6162b3dbd804430 --- /dev/null +++ b/entity/VisitPlanEmployeeWeek_entity/recordcontainers/db/recordfieldmappings/person_id.displayvalue/expression.js @@ -0,0 +1,5 @@ +import("system.result"); +import("system.vars"); +import("Person_lib"); + +result.string(PersUtils.getResolvingDisplaySubSql("VISITPLANEMPLOYEEWEEK.CONTACT_ID")); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod b/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..cb8b237c253d5a21e68730fa3d62ea3296cad6bc --- /dev/null +++ b/entity/VisitPlanEntry_entity/VisitPlanEntry_entity.aod @@ -0,0 +1,273 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.14" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.14"> + <name>VisitPlanEntry_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/entity/VisitPlanEntry_entity/documentation.adoc</documentation> + <title>Weekplan</title> + <grantCreateProcess>%aditoprj%/entity/VisitPlanEntry_entity/grantCreateProcess.js</grantCreateProcess> + <grantUpdateProcess>%aditoprj%/entity/VisitPlanEntry_entity/grantUpdateProcess.js</grantUpdateProcess> + <grantDeleteProcess>%aditoprj%/entity/VisitPlanEntry_entity/grantDeleteProcess.js</grantDeleteProcess> + <onValidation>%aditoprj%/entity/VisitPlanEntry_entity/onValidation.js</onValidation> + <titlePlural></titlePlural> + <recordContainer>jDito</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>VISITPLANEMPLOYEEWEEK_ID</name> + <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_id/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>UID</name> + <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/uid/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>STATUS</name> + <title>Status</title> + <consumer>KeywordVisitPlanEntryStatus</consumer> + <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/status/valueProcess.js</valueProcess> + <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> + <title>Contact</title> + <consumer>AnyContacts</consumer> + <linkedContextProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/organisation_id/linkedContextProcess.js</linkedContextProcess> + <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/organisation_id/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/organisation_id/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>ENTRYDATE</name> + <title>Date</title> + <contentType>DATE</contentType> + <resolution>DAY</resolution> + <outputFormat>dd.MM.yyyy</outputFormat> + <inputFormat>dd.MM.yyyy</inputFormat> + <mandatory v="true" /> + </entityField> + <entityField> + <name>END_TIME</name> + <title>Until</title> + <contentType>DATE</contentType> + <resolution>HOUR</resolution> + <outputFormat>HH:mm 'Uhr'</outputFormat> + <inputFormat>HH:mm</inputFormat> + <mandatory v="true" /> + <dropDownProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/end_time/dropDownProcess.js</dropDownProcess> + <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/end_time/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>BEGIN_TIME</name> + <title>From</title> + <contentType>DATE</contentType> + <resolution>HOUR</resolution> + <outputFormat>HH:mm 'Uhr'</outputFormat> + <inputFormat>HH:mm</inputFormat> + <mandatory v="true" /> + <dropDownProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/begin_time/dropDownProcess.js</dropDownProcess> + <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/begin_time/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>contactcontext</name> + <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/contactcontext/valueProcess.js</valueProcess> + </entityField> + <entityActionGroup> + <name>entityActionGroup</name> + <iconId>VAADIN:CALENDAR</iconId> + <children> + <entityActionField> + <name>NewActivity</name> + <documentation>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/documentation.adoc</documentation> + <title>Create Visitreport</title> + <onActionProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/onActionProcess.js</onActionProcess> + <isMenuAction v="true" /> + <iconId>VAADIN:HOURGLASS_END</iconId> + <stateProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/stateProcess.js</stateProcess> + <tooltip>Create Visitreport</tooltip> + <tooltipProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/tooltipProcess.js</tooltipProcess> + </entityActionField> + <entityActionField> + <name>NewAppointment</name> + <documentation>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/documentation.adoc</documentation> + <title>New Appointment</title> + <onActionProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js</onActionProcess> + <iconId>VAADIN:CALENDAR</iconId> + <state>AUTO</state> + <stateProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/stateProcess.js</stateProcess> + <tooltip>Create new Appointment</tooltip> + <tooltipProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/tooltipProcess.js</tooltipProcess> + </entityActionField> + <entityActionField> + <name>openroute</name> + <documentation>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/documentation.adoc</documentation> + <title>Open Route</title> + <onActionProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/onActionProcess.js</onActionProcess> + <iconId>VAADIN:MAP_MARKER</iconId> + <stateProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/stateProcess.js</stateProcess> + <tooltip>Open route</tooltip> + <tooltipProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/tooltipProcess.js</tooltipProcess> + </entityActionField> + </children> + </entityActionGroup> + <entityProvider> + <name>Entries</name> + <targetContextField>contactcontext</targetContextField> + <targetIdField>ORGANISATION_ID</targetIdField> + <documentation>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/entries/documentation.adoc</documentation> + <dependencies> + <entityDependency> + <name>ed458b30-e642-4c89-925b-20938e3abfc6</name> + <entityName>VisitPlanEmployeeWeek_entity</entityName> + <fieldName>Entries</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + <entityConsumer> + <name>Organisations</name> + <dependency> + <name>dependency</name> + <entityName>Organisation_entity</entityName> + <fieldName>Organisations</fieldName> + </dependency> + </entityConsumer> + <entityConsumer> + <name>KeywordVisitPlanEntryStatus</name> + <documentation>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/keywordvisitplanentrystatus/documentation.adoc</documentation> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContainerName_param</name> + <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/keywordvisitplanentrystatus/children/containername_param/valueProcess.js</valueProcess> + <expose v="true" /> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>AnyContacts</name> + <dependency> + <name>dependency</name> + <entityName>AnyContact_entity</entityName> + <fieldName>OnlySameCompany</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContactId_param</name> + <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/anycontacts/children/contactid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityParameter> + <name>Entries_param</name> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>OrganisationId_param</name> + <expose v="true" /> + <mandatory v="true" /> + </entityParameter> + <entityParameter> + <name>NoVisitPlanEmployeeWeek_param</name> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>EntriesofCurrentWeek_param</name> + <expose v="true" /> + </entityParameter> + <entityField> + <name>PARENT_ID</name> + </entityField> + <entityField> + <name>PARENTNAME</name> + <title>Tag</title> + </entityField> + <entityField> + <name>ISGROUP</name> + <contentType>BOOLEAN</contentType> + </entityField> + <entityField> + <name>VISITRECOMMENDATION_ID</name> + </entityField> + <entityField> + <name>APPOINTMENT_ID</name> + <title></title> + </entityField> + <entityField> + <name>CONTACT_ORG_ID</name> + </entityField> + <entityField> + <name>CONTACT_PERSON_ID</name> + </entityField> + <entityParameter> + <name>VisitPlanEmployeeWeek_param</name> + <valueProcess>%aditoprj%/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_param/valueProcess.js</valueProcess> + <expose v="true" /> + </entityParameter> + <entityConsumer> + <name>visitPlanEmployeeWeeks_Id</name> + <dependency> + <name>dependency</name> + </dependency> + </entityConsumer> + <entityParameter> + <name>ComingFromRecommendation_param</name> + <expose v="true" /> + </entityParameter> + </entityFields> + <recordContainers> + <jDitoRecordContainer> + <name>jDito</name> + <jDitoRecordAlias>Data_alias</jDitoRecordAlias> + <contentProcess>%aditoprj%/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js</contentProcess> + <rowCountProcess>%aditoprj%/entity/VisitPlanEntry_entity/recordcontainers/jdito/rowCountProcess.js</rowCountProcess> + <onInsert>%aditoprj%/entity/VisitPlanEntry_entity/recordcontainers/jdito/onInsert.js</onInsert> + <onUpdate>%aditoprj%/entity/VisitPlanEntry_entity/recordcontainers/jdito/onUpdate.js</onUpdate> + <onDelete>%aditoprj%/entity/VisitPlanEntry_entity/recordcontainers/jdito/onDelete.js</onDelete> + <recordFieldMappings> + <jDitoRecordFieldMapping> + <name>UID.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>ISGROUP.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>PARENT_ID.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>PARENTNAME.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>BEGIN_TIME.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>END_TIME.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>ORGANISATION_ID.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>CONTACT_ORG_ID.displayValue</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>ENTRYDATE.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>STATUS.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>VISITPLANEMPLOYEEWEEK_ID.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>STATUS.displayValue</name> + </jDitoRecordFieldMapping> + </recordFieldMappings> + </jDitoRecordContainer> + </recordContainers> +</entity> diff --git a/entity/VisitPlanEntry_entity/documentation.adoc b/entity/VisitPlanEntry_entity/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..202b31e2f8f9aa493f717d896932c99aecfcaed1 --- /dev/null +++ b/entity/VisitPlanEntry_entity/documentation.adoc @@ -0,0 +1,4 @@ += VisitPlanEntry_entity + +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. \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/anycontacts/children/contactid_param/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/anycontacts/children/contactid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6d0e1cf3f92832cd370bd8b960ddcbcf0ab74d82 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/anycontacts/children/contactid_param/valueProcess.js @@ -0,0 +1,5 @@ +import("system.vars"); +import("system.result"); + +if(vars.exists("$param.ComingFromRecommendation_param") && vars.get("$param.ComingFromRecommendation_param")) +result.string(vars.get("$field.ORGANISATION_ID")); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/begin_time/dropDownProcess.js b/entity/VisitPlanEntry_entity/entityfields/begin_time/dropDownProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f5ef197dc6d959c10471831543b60f96634e9f9c --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/begin_time/dropDownProcess.js @@ -0,0 +1,25 @@ +import("system.datetime"); +import("system.logging"); +import("system.util"); +import("system.result"); +import("system.text"); + +values = []; +var time; + +for(var i = 0; i < 24; i++) +{ + i = i.toString(); + if(i.length == 1) + { + values.push([datetime.toLong("0" + i + ":00", "HH:mm"), "0" + i + ":00"]); + values.push([datetime.toLong("0" + i + ":30", "HH:mm"), "0" + i + ":30"]); + } + else + { + values.push([datetime.toLong(i + ":00", "HH:mm"), i + ":00"]); + values.push([datetime.toLong(i + ":30", "HH:mm"), i + ":30"]); + } +} + +result.object(values); diff --git a/entity/VisitPlanEntry_entity/entityfields/begin_time/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/begin_time/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f320a45527c475f10db0d36dea1edc224a2ed3f9 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/begin_time/valueProcess.js @@ -0,0 +1,11 @@ +import("system.logging"); +import("system.datetime"); +import("system.neon"); +import("system.result"); +import("system.vars"); + +// 7am as default value if field is empty and recordstate = new +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.getString("$this.value") == null) +{ + result.string(datetime.toLong("07:00", "HH:mm")); +} diff --git a/entity/VisitPlanEntry_entity/entityfields/contactcontext/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/contactcontext/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..80c6814e0f702b58103b38e5c9d0f4d22d3033a6 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/contactcontext/valueProcess.js @@ -0,0 +1,7 @@ +import("system.vars"); +import("system.result"); +import("Contact_lib"); + +//gets either ORGANISATION or CONTACT depending on which kind of ID got saved in the ORGANISATION_ID field +//(visiting contacts might be needed in the future, but not yet implemented) +result.string(ContactUtils.getContextByContactId(vars.getString("$field.ORGANISATION_ID"))); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/end_time/dropDownProcess.js b/entity/VisitPlanEntry_entity/entityfields/end_time/dropDownProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..fad1ff9a83ebe192458c199e819f2a8a4186a6aa --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/end_time/dropDownProcess.js @@ -0,0 +1,25 @@ +import("system.datetime"); +import("system.logging"); +import("system.util"); +import("system.result"); +import("system.text"); + +values = []; +var time; + +for(var i = 0; i < 24; i++) +{ + i = i.toString(); + if(i.length == 1) + { + values.push([datetime.toLong("0" + i + ":00", "HH:mm"), "0" + i + ":00"]); + values.push([datetime.toLong("0" + i + ":30", "HH:mm"), "0" + i + ":30"]); + } + else + { + values.push([datetime.toLong(i + ":00", "HH:mm"), i + ":00"]); + values.push([datetime.toLong(i + ":30", "HH:mm"), i + ":30"]); + } +} + +result.object(values); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/end_time/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/end_time/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..74bbed024fd3b43b1bbbd86ad272efd028439217 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/end_time/valueProcess.js @@ -0,0 +1,12 @@ +import("system.eMath"); +import("system.logging"); +import("system.datetime"); +import("system.neon"); +import("system.result"); +import("system.vars"); + +//end_time is by default one hour after the start_time +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$field.BEGIN_TIME") && !vars.get("$this.value")) +{ + result.string(eMath.absInt(vars.get("$field.BEGIN_TIME")) + datetime.ONE_HOUR); +} diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/documentation.adoc b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..2ea1e79efa780d0ebaf4451899e998220bcc17aa --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/documentation.adoc @@ -0,0 +1 @@ +opens the editview of activity with category Visitreport \ 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 new file mode 100644 index 0000000000000000000000000000000000000000..ca537a336ac04404c3bdf82bbad7af873c9d06d3 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/onActionProcess.js @@ -0,0 +1,45 @@ +import("Sql_lib"); +import("AttributeRegistry_basic"); +import("Communication_lib"); +import("system.db"); +import("KeywordRegistry_basic"); +import("Contact_lib"); +import("Employee_lib"); +import("system.logging"); +import("system.vars"); +import("ActivityTask_lib"); + +var links = []; + +var pointOfContact = newSelect("CONTACT.CONTACTID", db.getCurrentAlias()) + .from("CONTACT") + .leftJoin("AB_ATTRIBUTERELATION", "CONTACT.CONTACTID = AB_ATTRIBUTERELATION.OBJECT_ROWID") + .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")) + .cell(); +var context; + +if(pointOfContact) + links.push([ContactUtils.getContextByContactId(pointOfContact), pointOfContact]); +else +{ + var contactId = vars.get("$field.ORGANISATION_ID"); + context = ContactUtils.getContextByContactId(contactId); + if(context == 'Person') + { + var orgContactId = newSelect("CONTACTID") + .from("CONTACT") + .where("PERSON_ID is null") + .and("CONTACT.ORGANISATION_ID", newSelect("ORGANISATION_ID") + .from("CONTACT") + .where("CONTACT.CONTACTID", contactId) + .cell()).cell(); + if(orgContactId) + links.push(["Organisation", orgContactId]); + } + links.push([context, contactId]); +} + +ActivityUtils.createNewActivity(null, links, null, null, null, null, $KeywordRegistry.activityDirection$outgoing(), null, $KeywordRegistry.activityCategory$visit(), vars.get("$field.ENTRYDATE"), vars.get("$field.UID")); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/stateProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..57b2f8280f91c2a73374d503c528b0d6075bbce8 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/stateProcess.js @@ -0,0 +1,11 @@ +import("system.datetime"); +import("system.result"); +import("system.vars"); +import("system.neon"); + +var state = neon.COMPONENTSTATE_DISABLED; +var today = vars.get("$sys.date") + +if (vars.get("$field.ISGROUP") == "false" && vars.get("$field.ENTRYDATE") <= today && vars.get("$sys.selectionRows") != "") + state = neon.COMPONENTSTATE_EDITABLE; +result.string(state); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/tooltipProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/tooltipProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..b46a5034ca52edf127d8be225ada8a5759d09224 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newactivity/tooltipProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("Create Visitreport")); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/documentation.adoc b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..51e093f5d14cc0e2bf39de625536c213e16e22e8 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/documentation.adoc @@ -0,0 +1 @@ +creates the Appointment-editview \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..29a02cbf84117b94c950075d7c09853e9c8c36e0 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/onActionProcess.js @@ -0,0 +1,77 @@ +import("KeywordRegistry_basic"); +import("system.translate"); +import("Sql_lib"); +import("AttributeRegistry_basic"); +import("system.datetime"); +import("system.logging"); +import("Communication_lib"); +import("system.db"); +import("system.vars"); +import("system.neon"); +import("system.calendars"); +import("Calendar_lib"); +import("system.date"); +import("Context_lib"); +import("system.util"); +import("system.eMath"); +import("system.text"); + + +var entry; +var params = {}; +var pointOfContact; +var mailAffectedUser = []; +var uidAppointment; +var values; +var columns; +var columnTypes; +var update; + +var selectionRowData = vars.get("$sys.selectionRows"); + +var uid = selectionRowData[0].UID; +var isGroup = selectionRowData[0].ISGROUP; //not Bool +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 + +if(isGroup == "false") //No Group was selected +{ + pointOfContact = newSelect(["CONTACT.CONTACTID", "(" + CommUtil.getStandardSubSqlMail() + ")"]) + .from("CONTACT") + .leftJoin("AB_ATTRIBUTERELATION", "CONTACT.CONTACTID = AB_ATTRIBUTERELATION.OBJECT_ROWID") + .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("ORGANISATION.ORGANISATIONID", organisation_id) + .table(); + + userMailto = []; + + for(var i = 0; i < pointOfContact.length; i++) + { + userMailto.push("mailto:" + pointOfContact[i][1], "CN:" + pointOfContact[i][1]); + mailAffectedUser.push(text.encodeMS(userMailto)); + } + + var startdate = entryDate + " " + datetime.toDate(startTime, "HH:mm:ss.S"); + startdate = datetime.toLong(startdate, "dd-MM-yyyy HH:mm:ss.S"); + + var duration = eMath.subInt(endTime, startTime); + entry = CalendarUtil.createEntry("", calendars.VEVENT, translate.text("Visit"), "", false, false, false, vars.get("$sys.user"), [vars.get("$sys.user")], startdate, duration, null, calendars.STATUS_TENTATIVE, null, null, mailAffectedUser); + + params["Entry_param"] = JSON.stringify(entry); + uidAppointment = calendars.insert([entry]); + + values = [$KeywordRegistry.visitPlanEntryStatus$Appointmentarranged(), uidAppointment[0]]; + columns = ["STATUS", "APPOINTMENT_ID"]; + columnTypes = db.getColumnTypes("VISITPLANENTRY", columns, db.getCurrentAlias()); + + update = newWhere("VISITPLANENTRY.VISITPLANENTRYID", uid) + .updateData(true, "VISITPLANENTRY", columns, columnTypes, values); + + neon.setFieldValue("$field.STATUS", $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged()); + neon.refreshAll(); +} \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/stateProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..00cae70329680cdd31c029965dc471e53f65d642 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/stateProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("system.vars"); +import("system.neon"); + +var state = neon.COMPONENTSTATE_DISABLED; +if (vars.get("$field.ISGROUP") == "false" && vars.get("$sys.selectionRows") != "") + state = neon.COMPONENTSTATE_EDITABLE; +result.string(state); diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/tooltipProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/tooltipProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..ea083fcb476a7c75a6494b1b17d913cc5a62ad90 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/newappointment/tooltipProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("Create new Appointment")); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/documentation.adoc b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..6fcdffce161a586e2475c42eac36b98a974296fd --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/documentation.adoc @@ -0,0 +1 @@ +Opens the route to the location(s) via google-maps \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/onActionProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..b926fc89ff6515951fc64f5cec927a60f8434174 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/onActionProcess.js @@ -0,0 +1,77 @@ +import("Sql_lib"); +import("Employee_lib"); +import("system.datetime"); +import("system.db"); +import("system.text"); +import("system.neon"); +import("system.vars"); +import("Address_lib"); + +var visitAddresses = []; +var addressIdStart; +var address; +var user = EmployeeUtils.getCurrentContactId(); + +//start homeaddress +addressIdStart = newSelect("ADDRESSID") + .from("ADDRESS") + .where("ADDRESS.ADDR_TYPE", "HOMEADDR") + .and("ADDRESS.CONTACT_ID", user) + .cell(); + +if(!addressIdStart) +{ + //start orgaddress + var orgID = newSelect("ORGANISATION_ID") + .from("CONTACT") + .where("CONTACT.CONTACTID", user) + .cell(); + + addressIdStart = newSelect("ADDRESS_ID") + .from("CONTACT") + .where("CONTACT.ORGANISATION_ID", orgID) + .and("CONTACT.PERSON_ID is null") + .cell(); +} + +var addressStart = ""; +if(addressIdStart) +{ + addressStart = newSelect("ADDRESS, BUILDINGNO, ZIP, CITY, COUNTRY") + .from("ADDRESS") + .where("ADDRESS.ADDRESSID", addressIdStart) + .arrayRow(); + + visitAddresses.push(addressStart.join("+")); +} + +//address to visit +var selectionRowData = vars.get("$sys.selectionRows"); +var UID = selectionRowData[0].UID; +var isGroup = selectionRowData[0].ISGROUP; //not Bool +var entrydateDB = datetime.toLong(UID.split("#")[1], "dd.MM.yyyy"); + +if(vars.exists("$param.Entries_param") && vars.get("$param.Entries_param")) +{ + + var entryid = 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)") + .where("VISITPLANENTRY.VISITPLANEMPLOYEEWEEK_ID", entryid) + .and("VISITPLANENTRY.ENTRYDATE", entrydateDB) + .table(); + + + for(let i = 0; i < childAddresses.length; i++) + visitAddresses.push(childAddresses[i].join("+")); + + visitAddresses.push(addressStart.join("+")); +} + + +address = "https://www.google.com/maps/dir/" + visitAddresses.join("/"); + +neon.openUrl(address, true); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/stateProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..903ff9b70c0595a6b3b2fb40404d23b27a0a5525 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/stateProcess.js @@ -0,0 +1,9 @@ +import("system.logging"); +import("system.result"); +import("system.vars"); +import("system.neon"); + +var state = neon.COMPONENTSTATE_DISABLED; +if (vars.get("$field.ISGROUP") == "true" && vars.get("$sys.selectionRows") != "" && vars.get("$sys.selectionRows") != undefined) + state = neon.COMPONENTSTATE_EDITABLE; +result.string(state); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/tooltipProcess.js b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/tooltipProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e900bf13f51ad63a357e3e704533b10d9fa202b6 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/entityactiongroup/children/openroute/tooltipProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("Open route")); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/entries/documentation.adoc b/entity/VisitPlanEntry_entity/entityfields/entries/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..0e23ed881f313074b3c18c9603d010185eec84a3 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/entries/documentation.adoc @@ -0,0 +1 @@ +linked to VisitPlanEmployeeWeek for linking the view in the mainview \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/keywordvisitplanentrystatus/children/containername_param/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/keywordvisitplanentrystatus/children/containername_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..ccc9743cd74df98bd6f2afb0dee8c7003bd294ad --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/keywordvisitplanentrystatus/children/containername_param/valueProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string($KeywordRegistry.visitPlanEntryStatus()); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/keywordvisitplanentrystatus/documentation.adoc b/entity/VisitPlanEntry_entity/entityfields/keywordvisitplanentrystatus/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..1454ed8b3d845c7505d8d9ae6f8eb0df24d5c2d4 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/keywordvisitplanentrystatus/documentation.adoc @@ -0,0 +1 @@ +Needed for the status keyword \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/organisation_id/displayValueProcess.js b/entity/VisitPlanEntry_entity/entityfields/organisation_id/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4a069cec9dd05ddca04014ff4a5a534e07aff0fc --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/organisation_id/displayValueProcess.js @@ -0,0 +1,9 @@ +import("system.result"); +import("system.db"); +import("system.vars"); +import("Contact_lib"); + +var contactid = vars.get("$field.ORGANISATION_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_id/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..c72b5691f3df7f331d9ccb7b6eae67e7118cc0af --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/organisation_id/documentation.adoc @@ -0,0 +1 @@ +dropdown of all contacts of the own organisation and all the other organisations \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/organisation_id/linkedContextProcess.js b/entity/VisitPlanEntry_entity/entityfields/organisation_id/linkedContextProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..666b1349748541127d2977a28e6a140ccbf800b1 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/organisation_id/linkedContextProcess.js @@ -0,0 +1,5 @@ +import("system.vars"); +import("system.result"); +import("Contact_lib"); + +result.string(ContactUtils.getContextByPersOrg(vars.get("$field.CONTACT_PERSON_ID"), vars.get("$field.CONTACT_ORG_ID"))); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/organisation_id/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/organisation_id/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..1e2ae6fb1b0bf9ab65352f918d3cdb1bd467de63 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/organisation_id/valueProcess.js @@ -0,0 +1,9 @@ +import("system.logging"); +import("system.neon"); +import("system.result"); +import("system.vars"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null) +{ + result.string(vars.get("$param.OrganisationId_param")); +} \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/status/displayValueProcess.js b/entity/VisitPlanEntry_entity/entityfields/status/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..da9d2bcd966a70656818b970eb8724cf08a847c9 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/status/displayValueProcess.js @@ -0,0 +1,8 @@ +import("system.translate"); +import("system.logging"); +import("system.result"); +import("system.vars"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string(KeywordUtils.getViewValue($KeywordRegistry.visitPlanEntryStatus(), vars.get("$field.STATUS"))); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/status/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/status/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f0a03d16279164f85ca031d49c637a3305595d59 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/status/valueProcess.js @@ -0,0 +1,9 @@ +import("KeywordRegistry_basic"); +import("system.vars"); +import("system.result"); +import("system.neon"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.getString("$this.value") == null) +{ + result.string($KeywordRegistry.visitPlanEntryStatus$planned()); +} \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/uid/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/uid/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..108183b514a537915c0292894b891518c0aab47d --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/uid/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.neon"); +import("system.result"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value") && vars.get("$this.value") == null) + result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_id/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_id/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8488cb5c1b9c9990b40620cd4678ee5dbdbd67e9 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_id/valueProcess.js @@ -0,0 +1,7 @@ +import("system.logging"); +import("system.neon"); +import("system.result"); +import("system.vars"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$this.value") == null) + result.string(vars.get("$param.Entries_param")); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_param/valueProcess.js b/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4d19b8e7202d677770bc6b97fca4814428527f47 --- /dev/null +++ b/entity/VisitPlanEntry_entity/entityfields/visitplanemployeeweek_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.VISITPLANEMPLOYEEWEEK_ID")); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/grantCreateProcess.js b/entity/VisitPlanEntry_entity/grantCreateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e8533b964b4d96d4dde9236391793c29673b0e1c --- /dev/null +++ b/entity/VisitPlanEntry_entity/grantCreateProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.object(vars.get("$field.ISGROUP") != "true" && vars.get("$param.EntriesofCurrentWeek_param") != "true"); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/grantDeleteProcess.js b/entity/VisitPlanEntry_entity/grantDeleteProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e8533b964b4d96d4dde9236391793c29673b0e1c --- /dev/null +++ b/entity/VisitPlanEntry_entity/grantDeleteProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.object(vars.get("$field.ISGROUP") != "true" && vars.get("$param.EntriesofCurrentWeek_param") != "true"); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/grantUpdateProcess.js b/entity/VisitPlanEntry_entity/grantUpdateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..9c75adbde300dd0e7e6068c4a07dad9451fec7c8 --- /dev/null +++ b/entity/VisitPlanEntry_entity/grantUpdateProcess.js @@ -0,0 +1,5 @@ +import("system.logging"); +import("system.vars"); +import("system.result"); + +result.object(vars.get("$field.ISGROUP") != "true" && vars.get("$param.EntriesofCurrentWeek_param") != "true"); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/onValidation.js b/entity/VisitPlanEntry_entity/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..15c1007b0a9286bb7512a4c9dc0d510e59350624 --- /dev/null +++ b/entity/VisitPlanEntry_entity/onValidation.js @@ -0,0 +1,26 @@ +import("system.eMath"); +import("Sql_lib"); +import("system.logging"); +import("system.datetime"); +import("system.db"); +import("system.translate"); +import("system.vars"); +import("system.result"); + +var endTime = eMath.absInt(vars.get("$field.END_TIME")); +var begin_time = eMath.absInt(vars.get("$field.BEGIN_TIME")); + +if (endTime != "" && begin_time != "" && endTime < begin_time) + result.string(translate.text("The endtime can't be before begintime!")); + +if(vars.get("$param.NoVisitPlanEmployeeWeek_param") != "true") +{ + var week = newSelect("VISITPLAN_WEEK") + .from("VISITPLANEMPLOYEEWEEK") + .where("VISITPLANEMPLOYEEWEEK.VISITPLANEMPLOYEEWEEKID", vars.get("$field.VISITPLANEMPLOYEEWEEK_ID")) + .cell(); + weekEntrydate = eMath.absInt(datetime.toDate(vars.get("$field.ENTRYDATE"), "w")) + + if(week != weekEntrydate) + result.string(translate.text("Entrydate has to be in the selected calendar week!")); +} diff --git a/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js b/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..dd23121f3e4c85f9b0a4b49d18a0c73913be022c --- /dev/null +++ b/entity/VisitPlanEntry_entity/recordcontainers/jdito/contentProcess.js @@ -0,0 +1,82 @@ +import("Keyword_lib"); +import("Contact_lib"); +import("Employee_lib"); +import("KeywordRegistry_basic"); +import("system.calendars"); +import("system.datetime"); +import("system.translate"); +import("system.logging"); +import("system.vars"); +import("system.db"); +import("system.result"); +import("Sql_lib"); + +var items = []; +var group = []; +var entryData = ""; + +var entrySQL = newSelect("ENTRYDATE, VISITPLANENTRYID, BEGIN_TIME, END_TIME, ORGANISATION_ID, STATUS, VISITPLANEMPLOYEEWEEK_ID") + .from("VISITPLANENTRY"); + +if (vars.exists("$local.idvalues") && vars.get("$local.idvalues")) +{ + entrySQL.where("VISITPLANENTRY.VISITPLANENTRYID", vars.get("$local.idvalues")); +} +else if(vars.exists("$param.Entries_param") && vars.get("$param.Entries_param")) +{ + entrySQL.where("VISITPLANENTRY.VISITPLANEMPLOYEEWEEK_ID", vars.get("$param.Entries_param")); +} +else if(vars.exists("$param.EntriesofCurrentWeek_param") && vars.get("$param.EntriesofCurrentWeek_param") == "true") +{ + var currentWeek = datetime.toDate(vars.get("$sys.date"), "w"); + var currentYear = datetime.toDate(vars.get("$sys.date"), "yyyy"); + var currentUser = EmployeeUtils.getCurrentContactId(); + + entrySQL.join("VISITPLANEMPLOYEEWEEK", "VISITPLANENTRY.VISITPLANEMPLOYEEWEEK_ID = VISITPLANEMPLOYEEWEEK.VISITPLANEMPLOYEEWEEKID") + .where("VISITPLANEMPLOYEEWEEK.VISITPLAN_WEEK", currentWeek) + .and("VISITPLANEMPLOYEEWEEK.VISITPLAN_YEAR", currentYear) + .and("VISITPLANEMPLOYEEWEEK.CONTACT_ID", currentUser); +} + +entrySQL.orderBy("ENTRYDATE, BEGIN_TIME"); +entryData = entrySQL.table(); + +if(entryData.length > 0) +{ + for(var i = 0; i < entryData.length; i++) + { + var entryDateRaw, visitPlanEntryId, beginn_time, end_time, organisation_id, status, visitplanemployeeweek_id; + [entryDateRaw, visitPlanEntryId, beginn_time, end_time, organisation_id, status, visitplanemployeeweek_id] = entryData[i] + + var contactData = newSelect("CONTACT.ORGANISATION_ID, CONTACT.PERSON_ID") + .from("CONTACT") + .where("CONTACT.CONTACTID", organisation_id) + .arrayRow(); + + + var orgname = OrganisationUtils.getNameByOrganisationId(contactData[0]); + var parentName = translate.text(datetime.toDate(entryDateRaw, "EEEE")); + entryDate = datetime.toDate(entryDateRaw, "dd.MM.yyyy"); + + + items.push([visitPlanEntryId, false, parentName + "#" + entryDate, "", beginn_time + , end_time, organisation_id, orgname, entryDateRaw, status, visitplanemployeeweek_id]); + + if(!vars.get("$local.idvalues")) + { + if(group.indexOf(parentName + "#" + entryDate) == -1) + { + items.push([parentName + "#" + entryDate, true, "", parentName + " " + entryDate, "", "", "", "", "", "", ""]); + group.push(parentName + "#" + entryDate); + } + } + } +} + +//add Display Value for Status +for (let i = 0; i < items.length; i++) +{ + items[i][11] = KeywordUtils.getViewValue($KeywordRegistry.visitPlanEntryStatus(), items[i][9]) +} + +result.object(items); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/recordcontainers/jdito/onDelete.js b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onDelete.js new file mode 100644 index 0000000000000000000000000000000000000000..053a7f39e023be7246f83d5c5a43be027a45f283 --- /dev/null +++ b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onDelete.js @@ -0,0 +1,6 @@ +import("system.neon"); +import("Sql_lib"); +import("system.db"); + +newWhereIfSet("VISITPLANENTRY.VISITPLANENTRYID", "$field.UID") + .deleteData(); \ No newline at end of file diff --git a/entity/VisitPlanEntry_entity/recordcontainers/jdito/onInsert.js b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onInsert.js new file mode 100644 index 0000000000000000000000000000000000000000..398d44122293a9ba9d757d651896896aa4273a36 --- /dev/null +++ b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onInsert.js @@ -0,0 +1,81 @@ +import("Sql_lib"); +import("system.neon"); +import("Employee_lib"); +import("system.datetime"); +import("system.logging"); +import("system.db"); +import("system.vars"); +import("system.util"); + +var visitPlanEmployeeWeekID = ""; +var insertData = []; +var user = EmployeeUtils.getCurrentContactId(); +if(vars.get("$param.Entries_param") != null) + visitPlanEmployeeWeekID = vars.get("$param.Entries_param"); +else +{ + var calendarWeek = datetime.toDate(vars.get("$field.ENTRYDATE"), "w"); + var calendarYear = datetime.toDate(vars.get("$field.ENTRYDATE"), "yyyy"); + var weekId = newSelect("VISITPLANEMPLOYEEWEEKID") + .from("VISITPLANEMPLOYEEWEEK") + .where("VISITPLANEMPLOYEEWEEK.VISITPLAN_WEEK", calendarWeek) + .and("VISITPLANEMPLOYEEWEEK.VISITPLAN_YEAR", calendarYear) + .and("VISITPLANEMPLOYEEWEEK.CONTACT_ID", user) + .cell(); + + if(weekId) + visitPlanEmployeeWeekID = weekId; + else + { + var newWeekId = util.getNewUUID(); + + var valuesWeek = [ + newWeekId, + calendarWeek, + calendarYear, + user + ]; + + var columnsWeek = [ + "VISITPLANEMPLOYEEWEEKID", + "VISITPLAN_WEEK", + "VISITPLAN_YEAR", + "CONTACT_ID", + ]; + + var columnTypesWeek = db.getColumnTypes("VISITPLANEMPLOYEEWEEK", columnsWeek, db.getCurrentAlias()); + + insertData.push(["VISITPLANEMPLOYEEWEEK", columnsWeek, columnTypesWeek, valuesWeek]); + + visitPlanEmployeeWeekID = newWeekId; + } +} + +var rowData = vars.get("$local.rowdata"); + +var valuesEntry = [ + rowData["UID.value"], + rowData["ENTRYDATE.value"], + rowData["BEGIN_TIME.value"], + rowData["END_TIME.value"], + rowData["ORGANISATION_ID.value"], + visitPlanEmployeeWeekID, + rowData["STATUS.value"] +]; + +var columnsEntry = [ + "VISITPLANENTRYID", + "ENTRYDATE", + "BEGIN_TIME", + "END_TIME", + "ORGANISATION_ID", + "VISITPLANEMPLOYEEWEEK_ID", + "STATUS" +]; + + +var columnTypesEntry = db.getColumnTypes("VISITPLANENTRY", columnsEntry, db.getCurrentAlias()); + +insertData.push(["VISITPLANENTRY", columnsEntry, columnTypesEntry, valuesEntry]) + +db.inserts(insertData); diff --git a/entity/VisitPlanEntry_entity/recordcontainers/jdito/onUpdate.js b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onUpdate.js new file mode 100644 index 0000000000000000000000000000000000000000..b689b3021904eba4df607ccb40bdb16b72cf746d --- /dev/null +++ b/entity/VisitPlanEntry_entity/recordcontainers/jdito/onUpdate.js @@ -0,0 +1,29 @@ +import("Sql_lib"); +import("system.logging"); +import("system.neon"); +import("system.db"); +import("system.vars"); + +var rowData = vars.get("$local.rowdata"); + +var valuesEntry = [ + rowData["ENTRYDATE.value"], + rowData["BEGIN_TIME.value"], + rowData["END_TIME.value"], + rowData["ORGANISATION_ID.value"], + rowData["STATUS"] +]; + +var columns = [ + "ENTRYDATE", + "BEGIN_TIME", + "END_TIME", + "ORGANISATION_ID", + "STATUS" +]; + +var columnTypes = db.getColumnTypes("VISITPLANENTRY", columns, db.getCurrentAlias()); + +var cond = newWhere("VISITPLANENTRY.VISITPLANENTRYID", vars.get("$field.UID")); + +db.updateData("VISITPLANENTRY", columns, columnTypes, values, cond); diff --git a/entity/VisitPlanEntry_entity/recordcontainers/jdito/rowCountProcess.js b/entity/VisitPlanEntry_entity/recordcontainers/jdito/rowCountProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..69e7e9c5f4b9b6ce95fceac9bbdf625bcacc9820 --- /dev/null +++ b/entity/VisitPlanEntry_entity/recordcontainers/jdito/rowCountProcess.js @@ -0,0 +1,42 @@ +import("Sql_lib"); +import("system.datetime"); +import("system.translate"); +import("system.logging"); +import("system.vars"); +import("system.db"); +import("system.result"); + +var group = []; +var entryData = ""; +var entrySQL = ""; +var count = 0; + +if(vars.exists("$param.Entries_param")) +{ + entrySQL = newSelect("ENTRYDATE") + .from("VISITPLANENTRY") + .where("VISITPLANENTRY.VISITPLANEMPLOYEEWEEK_ID", vars.get("$param.Entries_param")); +} +if (vars.exists("$local.idvalues") && vars.get("$local.idvalues")) +{ + entrySQL.andIfSet("VISITPLANENTRYID", vars.get("$local.idvalues")); +} +entrySQL.orderBy("ENTRYDATE, BEGIN_TIME "); +entryData = entrySQL.table(); +count += entryData.length; + +if(entryData.length > 0) +{ + for(var i = 0; i < entryData.length; i++) + { + var parentName = translate.text(datetime.toDate(entryData[i][0], "EEEE")); + if(!vars.exists("$local.idvalues") || !vars.get("$local.idvalues")) + { + if(group.indexOf(parentName) == -1) + group.push(parentName); + + } + } +} +count += group.length; +result.string(count); diff --git a/entity/VisitRecommendation_entity/VisitRecommendation_entity.aod b/entity/VisitRecommendation_entity/VisitRecommendation_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..24c14af1835318b0a97cac0cdd85cb41c575fb56 --- /dev/null +++ b/entity/VisitRecommendation_entity/VisitRecommendation_entity.aod @@ -0,0 +1,222 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.14" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.14"> + <name>VisitRecommendation_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/entity/VisitRecommendation_entity/documentation.adoc</documentation> + <title>Visit Recommendation</title> + <grantCreate v="true" /> + <iconId>VAADIN:BRIEFCASE</iconId> + <image>VAADIN:BRIEFCASE</image> + <titlePlural>Visit Recommendations</titlePlural> + <recordContainer>jDito</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + <targetContextField>TARGET_CONTEXT</targetContextField> + <targetIdField>CONTACT_ID</targetIdField> + <documentation>%aditoprj%/entity/VisitRecommendation_entity/entityfields/#provider/documentation.adoc</documentation> + <dependencies> + <entityDependency> + <name>d39ab3e0-0b61-4a6d-a6f9-5c5fef20a801</name> + <entityName>VisitPlanEmployeeWeek_entity</entityName> + <fieldName>recommendations</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + <entityField> + <name>CONTACT_ID</name> + <documentation>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contact_id/documentation.adoc</documentation> + <title>Contactperson</title> + <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contact_id/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>UID</name> + <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/uid/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>ORGANISATION_NAME</name> + <title>Customer</title> + </entityField> + <entityField> + <name>ORGANISATION_POINT_OF_CONTACT</name> + <title>Organisation point Of Contact</title> + </entityField> + <entityField> + <name>ORGANISATION_ADDRESS</name> + <title>Address</title> + </entityField> + <entityField> + <name>PRIORITY</name> + <title>Priority</title> + <consumer>KeywordVisitRecommendationPriority</consumer> + <mandatory v="true" /> + <displayValueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/priority/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>PRIORITY_SOURCE</name> + <title>Priority Source</title> + </entityField> + <entityField> + <name>DUE_DATE</name> + <title>Due Date</title> + <contentType>DATE</contentType> + <resolution>DAY</resolution> + <outputFormat>dd.MM.yyyy</outputFormat> + <inputFormat>dd.MM.yyyy</inputFormat> + <mandatory v="true" /> + </entityField> + <entityField> + <name>INFO</name> + <title>Info</title> + </entityField> + <entityField> + <name>DATE_PLANNED</name> + <title>Date Planned</title> + <contentType>DATE</contentType> + <resolution>DAY</resolution> + </entityField> + <entityField> + <name>USER_PLANNED</name> + <title>Planned By</title> + </entityField> + <entityConsumer> + <name>KeywordVisitRecommendationPriority</name> + <documentation>%aditoprj%/entity/VisitRecommendation_entity/entityfields/keywordvisitrecommendationpriority/documentation.adoc</documentation> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContainerName_param</name> + <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/keywordvisitrecommendationpriority/children/containername_param/valueProcess.js</valueProcess> + <expose v="true" /> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>OrganisationConsumer</name> + <dependency> + <name>dependency</name> + <entityName>Organisation_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + </entityConsumer> + <entityConsumer> + <name>PersonConsumer</name> + <dependency> + <name>dependency</name> + <entityName>Person_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContactId_param</name> + <expose v="true" /> + <mandatory v="true" /> + </entityParameter> + </children> + </entityConsumer> + <entityParameter> + <name>ContactId_param</name> + <expose v="true" /> + <mandatory v="true" /> + <documentation>%aditoprj%/entity/VisitRecommendation_entity/entityfields/contactid_param/documentation.adoc</documentation> + </entityParameter> + <entityActionGroup> + <name>newEntryGroup</name> + <children> + <entityActionField> + <name>NewVisitPlaneEntry</name> + <documentation>%aditoprj%/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/documentation.adoc</documentation> + <title>New Weekplanentry</title> + <onActionProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/onActionProcess.js</onActionProcess> + <iconId>NEON:EXPORT</iconId> + <state>AUTO</state> + <stateProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/stateProcess.js</stateProcess> + <tooltip>Create New Weekplanentry</tooltip> + <tooltipProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/tooltipProcess.js</tooltipProcess> + </entityActionField> + </children> + </entityActionGroup> + <entityField> + <name>PRIORITY_ICON</name> + <title></title> + <colorProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/priority_icon/colorProcess.js</colorProcess> + <contentType>IMAGE</contentType> + <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/priority_icon/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>TARGET_CONTEXT</name> + <valueProcess>%aditoprj%/entity/VisitRecommendation_entity/entityfields/target_context/valueProcess.js</valueProcess> + </entityField> + </entityFields> + <recordContainers> + <jDitoRecordContainer> + <name>jDito</name> + <jDitoRecordAlias>Data_alias</jDitoRecordAlias> + <contentProcess>%aditoprj%/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js</contentProcess> + <onInsert>%aditoprj%/entity/VisitRecommendation_entity/recordcontainers/jdito/onInsert.js</onInsert> + <onUpdate>%aditoprj%/entity/VisitRecommendation_entity/recordcontainers/jdito/onUpdate.js</onUpdate> + <onDelete>%aditoprj%/entity/VisitRecommendation_entity/recordcontainers/jdito/onDelete.js</onDelete> + <recordFieldMappings> + <jDitoRecordFieldMapping> + <name>UID.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>ORGANISATION_NAME.value</name> + <isFilterable v="true" /> + <isLookupFilter v="true" /> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>ORGANISATION_POINT_OF_CONTACT.value</name> + <isFilterable v="true" /> + <isLookupFilter v="true" /> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>ORGANISATION_ADDRESS.value</name> + <isFilterable v="true" /> + <isLookupFilter v="true" /> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>PRIORITY.value</name> + <isFilterable v="true" /> + <isLookupFilter v="true" /> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>PRIORITY_SOURCE.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>PRIORITY.displayValue</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>DUE_DATE.value</name> + <isFilterable v="true" /> + <isLookupFilter v="true" /> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>INFO.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>CONTACT_ID.value</name> + <isFilterable v="true" /> + <isLookupFilter v="true" /> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>PRIORITY_SOURCE.displayValue</name> + </jDitoRecordFieldMapping> + </recordFieldMappings> + <filterExtensions> + <filterExtensionSet> + <name>Attribute_filter</name> + <filterFieldsProcess>%aditoprj%/entity/VisitRecommendation_entity/recordcontainers/jdito/filterextensions/attribute_filter/filterFieldsProcess.js</filterFieldsProcess> + <filterValuesProcess>%aditoprj%/entity/VisitRecommendation_entity/recordcontainers/jdito/filterextensions/attribute_filter/filterValuesProcess.js</filterValuesProcess> + <filterConditionProcess>%aditoprj%/entity/VisitRecommendation_entity/recordcontainers/jdito/filterextensions/attribute_filter/filterConditionProcess.js</filterConditionProcess> + <filtertype>BASIC</filtertype> + </filterExtensionSet> + </filterExtensions> + </jDitoRecordContainer> + </recordContainers> +</entity> diff --git a/entity/VisitRecommendation_entity/documentation.adoc b/entity/VisitRecommendation_entity/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..9dc7ddd44659123d50ccd0f2ed6f75c4a49a4b05 --- /dev/null +++ b/entity/VisitRecommendation_entity/documentation.adoc @@ -0,0 +1,4 @@ += VisitRecommendation_entity + +For the recommended visits with their information(customer, address, priority, priority-source, duedate and Info. +Linked to VisitPlanEmployeeWeek_entity so you only see the entries in the chosen week. \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/entityfields/#provider/documentation.adoc b/entity/VisitRecommendation_entity/entityfields/#provider/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..0e23ed881f313074b3c18c9603d010185eec84a3 --- /dev/null +++ b/entity/VisitRecommendation_entity/entityfields/#provider/documentation.adoc @@ -0,0 +1 @@ +linked to VisitPlanEmployeeWeek for linking the view in the mainview \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/entityfields/contact_id/documentation.adoc b/entity/VisitRecommendation_entity/entityfields/contact_id/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..b8561badfe9a50219c1561e798d374f67768d2a4 --- /dev/null +++ b/entity/VisitRecommendation_entity/entityfields/contact_id/documentation.adoc @@ -0,0 +1 @@ +in the future it could be possible that this feature should also be usable for the usage with contacts (not clear right now) \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/entityfields/contact_id/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/contact_id/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..683ba24292b07fb95f063e4d5e7a2c25bcfe1807 --- /dev/null +++ b/entity/VisitRecommendation_entity/entityfields/contact_id/valueProcess.js @@ -0,0 +1,7 @@ +import("system.logging"); +import("system.neon"); +import("system.result"); +import("system.vars"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && (vars.get("$this.value") == null || vars.get("$this.value") == undefined)) + result.string(vars.get("$param.ContactId_param")); \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/entityfields/contactid_param/documentation.adoc b/entity/VisitRecommendation_entity/entityfields/contactid_param/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..891e06382943a519b1650fcbb4915bad036ce9e6 --- /dev/null +++ b/entity/VisitRecommendation_entity/entityfields/contactid_param/documentation.adoc @@ -0,0 +1 @@ +needed for the ContactPersonField (CONTACT_ID) \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/entityfields/keywordvisitrecommendationpriority/children/containername_param/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/keywordvisitrecommendationpriority/children/containername_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..7c5170b85e976bb4b0f474536ab603f8f7c68296 --- /dev/null +++ b/entity/VisitRecommendation_entity/entityfields/keywordvisitrecommendationpriority/children/containername_param/valueProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string($KeywordRegistry.visitRecommendationPriority()); \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/entityfields/keywordvisitrecommendationpriority/documentation.adoc b/entity/VisitRecommendation_entity/entityfields/keywordvisitrecommendationpriority/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..bacaa7bf4ae25156388a021e8a2074ffce12f7c8 --- /dev/null +++ b/entity/VisitRecommendation_entity/entityfields/keywordvisitrecommendationpriority/documentation.adoc @@ -0,0 +1 @@ +Needed for the priority keyword \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/documentation.adoc b/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..cb90b44b24aeaa10d2a2516a74821433c31c6fae --- /dev/null +++ b/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/documentation.adoc @@ -0,0 +1 @@ +Creates a new Weekplanentry \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/onActionProcess.js b/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..18fed0aa2bf4948e022c030e7276e08d780977bd --- /dev/null +++ b/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/onActionProcess.js @@ -0,0 +1,11 @@ +import("system.db"); +import("system.neon"); +import("system.vars"); + +var params = {}; + +params["OrganisationId_param"] = vars.get("$field.CONTACT_ID") +params["NoVisitPlanEmployeeWeek_param"] = true; +params["ComingFromRecommendation_param"] = true; + +neon.openContext("VisitPlanEntry", null, null, neon.OPERATINGSTATE_NEW, params); \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/stateProcess.js b/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..380c6e5cecfc35c5005f3291970cd24da86988af --- /dev/null +++ b/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/stateProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("system.vars"); +import("system.neon"); + +var state = neon.COMPONENTSTATE_DISABLED; +if (vars.get("$sys.selectionRows") != "") + state = neon.COMPONENTSTATE_EDITABLE; +result.string(state); diff --git a/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/tooltipProcess.js b/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/tooltipProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..13967e50f1a7555e4a856ac9dde648b9501d5a4f --- /dev/null +++ b/entity/VisitRecommendation_entity/entityfields/newentrygroup/children/newvisitplaneentry/tooltipProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("Create New Weekplanentry")); \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/entityfields/priority/displayValueProcess.js b/entity/VisitRecommendation_entity/entityfields/priority/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..243402a8ecffc7405560a880187de642cb3b72a7 --- /dev/null +++ b/entity/VisitRecommendation_entity/entityfields/priority/displayValueProcess.js @@ -0,0 +1,6 @@ +import("system.result"); +import("system.vars"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string(KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPriority(), vars.get("$field.PRIORITY"))); \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/entityfields/priority_icon/colorProcess.js b/entity/VisitRecommendation_entity/entityfields/priority_icon/colorProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..ab4b8c5257b11b9cb7bd3dc359c767708096fec2 --- /dev/null +++ b/entity/VisitRecommendation_entity/entityfields/priority_icon/colorProcess.js @@ -0,0 +1,26 @@ +import("system.vars"); +import("KeywordRegistry_basic"); +import("system.result"); +import("system.neon"); + +switch(vars.getString("$field.PRIORITY")) +{ + case $KeywordRegistry.taskPriority$none(): + result.string(neon.PRIORITY_NONE_COLOR); + break; + case $KeywordRegistry.visitRecommendationPriority$low(): + result.string(neon.PRIORITY_LOW_COLOR); + break; + case $KeywordRegistry.visitRecommendationPriority$medium(): + result.string(neon.PRIORITY_MEDIUM_COLOR); + break; + case $KeywordRegistry.visitRecommendationPriority$high(): + result.string(neon.PRIORITY_HIGH_COLOR); + break; + case $KeywordRegistry.visitRecommendationPriority$veryHigh(): + result.string(neon.PRIORITY_HIGH_COLOR); + break; + case $KeywordRegistry.visitRecommendationPriority$critical(): + result.string(neon.PRIORITY_HIGH_COLOR); + break; +} \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/entityfields/priority_icon/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/priority_icon/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e966de8384cdb82778eb0d4ac5be2e27f7d129ae --- /dev/null +++ b/entity/VisitRecommendation_entity/entityfields/priority_icon/valueProcess.js @@ -0,0 +1,5 @@ +import("ActivityTask_lib"); +import("KeywordRegistry_basic"); +import("system.result"); + +result.string(TaskUtils.getStatusIcon($KeywordRegistry.taskStatus$new)); \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/entityfields/target_context/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/target_context/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..a16a18c5851a7581712372aa29616de6b8ea61af --- /dev/null +++ b/entity/VisitRecommendation_entity/entityfields/target_context/valueProcess.js @@ -0,0 +1,3 @@ +import("system.result"); + +result.string("Organisation") \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/entityfields/uid/valueProcess.js b/entity/VisitRecommendation_entity/entityfields/uid/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..97460e66d1006307c676d0323995539c460d72d6 --- /dev/null +++ b/entity/VisitRecommendation_entity/entityfields/uid/valueProcess.js @@ -0,0 +1,7 @@ +import("system.util"); +import("system.neon"); +import("system.result"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && (vars.get("$this.value") == null || vars.get("$this.value") == undefined)) + result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..5045250e03171debf64617cf93a996892a825237 --- /dev/null +++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/contentProcess.js @@ -0,0 +1,249 @@ +import("system.tools"); +import("PostalAddress_lib"); +import("system.translate"); +import("Contact_lib"); +import("KeywordRegistry_basic"); +import("system.logging"); +import("system.datetime"); +import("system.util"); +import("system.result"); +import("system.vars"); +import("system.db"); +import("Sql_lib"); +import("Keyword_lib"); +import("AttributeRegistry_basic"); +import("KeywordRegistry_basic"); +import("Util_lib"); +import("Address_lib"); + +var sqlHelper = new SqlMaskingUtils(db.getCurrentAlias()); + +var recommendationData = []; + +var activitySubQuery = ""; + +activitySubQuery = newSelect("ENTRYDATE") + .from("ACTIVITY") + .join("ACTIVITYLINK", "ACTIVITYID = ACTIVITY_ID") + .where("ACTIVITYLINK.OBJECT_ROWID", "CONTACTID") + .and("ACTIVITY.CATEGORY", "VISIT") + .orderBy("ENTRYDATE desc").cell() + +var idValues = false; +if (vars.exists("$local.idvalues") && vars.get("$local.idvalues")) + idValues = true + +//dynamic Recommendations +//recommended Organisations containing the attribute Visit Frequency + + var visitFrequencyData = newSelect(["org.ORGANISATIONID", "NAME", + newSelect("CONTACT.CONTACTID") + .from("CONTACT") + .leftJoin("AB_ATTRIBUTERELATION", "CONTACT.CONTACTID = AB_ATTRIBUTERELATION.OBJECT_ROWID") + .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()) + .cell(), AddressUtils.formatOnelineSql(), + "visitPlanFrequency.ID_VALUE", "'VISITFREQUENCY '", activitySubQuery, "CONTACTID", + newSelect("min(ENTRYDATE)") + .from("VISITPLANENTRY") + .where("CONTACT.CONTACTID", "VISITPLANENTRY.ORGANISATION_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") + .and(["VISITPLANENTRY", "ENTRYDATE", "vp"], datetime.today()) + .and(newWhere(["VISITPLANENTRY", "STATUS", "vp"], + $KeywordRegistry.visitPlanEntryStatus$planned()) + .or(["VISITPLANENTRY", "STATUS", "vp"], + $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged())) + .cell())]) + .from("CONTACT") + .join("ORGANISATION", "CONTACT.ORGANISATION_ID = org.ORGANISATIONID", "org") + .leftJoin("PERSON", "PERSON.PERSONID = CONTACT.PERSON_ID") + .join("ADDRESS", "ADDRESS_ID = ADDRESSID") + .join("AB_ATTRIBUTERELATION", "visitPlanFrequency.OBJECT_ROWID = CONTACT.CONTACTID", "visitPlanFrequency") + .where(["AB_ATTRIBUTERELATION", "AB_ATTRIBUTE_ID", "visitPlanFrequency"], $AttributeRegistry.visitPlanFrequency()) + .table(); + +var recommendationSQLData = newSelect(["VISITRECOMMENDATIONID", "VISITRECOMMENDATION.CONTACT_ID", "PRIORITY", "DUE_DATE", "SOURCE", "INFO", AddressUtils.formatOnelineSql(), + newSelect("CONTACT.CONTACTID") + .from("CONTACT") + .leftJoin("AB_ATTRIBUTERELATION", "CONTACT.CONTACTID = AB_ATTRIBUTERELATION.OBJECT_ROWID") + .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", "VISITRECOMMENDATION.CONTACT_ID") + .cell(), + + newSelect("min(ENTRYDATE)") + .from("VISITPLANENTRY") + .where("VISITPLANENTRY.ORGANISATION_ID", "VISITRECOMMENDATION.CONTACT_ID") + .and("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$planned()) + .or("VISITPLANENTRY.STATUS", $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged()) + .and("VISITPLANENTRY.entrydate", datetime.today(), SqlBuilder.GREATER()) + .cell(), + + newSelect("contact_id") + .from("VISITPLANEMPLOYEEWEEK, VISITPLANENTRY") + .where("VISITPLANENTRY.VISITPLANEMPLOYEEWEEK_ID", "VISITPLANEMPLOYEEWEEKID") + .and("VISITRECOMMENDATION.CONTACT_ID", "VISITPLANENTRY.ORGANISATION_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", "entrydate", "vp"], datetime.today(), SqlBuilder.GREATER()) + .and(["VISITPLANENTRY", "STATUS", "vp"], $KeywordRegistry.visitPlanEntryStatus$planned()) + .or(["VISITPLANENTRY", "STATUS", "vp"], $KeywordRegistry.visitPlanEntryStatus$Appointmentarranged()).cell()) +]) + .from("VISITRECOMMENDATION") + .join("CONTACT", "VISITRECOMMENDATION.CONTACT_ID = CONTACT.CONTACTID") + .join("ADDRESS", "CONTACT.ADDRESS_ID = ADDRESS.ADDRESSID") + +if(idValues == true) + recommendationSQLData.where("VISITRECOMMENDATION.VISITRECOMMENDATIONID", vars.get("$local.idvalues"), SqlBuilder.IN()) + +recommendationSQLData = recommendationSQLData.table(); + +for( let i = 0; i < recommendationSQLData.length; i++) +{ + var tmpData = []; + + var organisationName = ContactUtils.getFullTitleByContactId(recommendationSQLData[i][1]) + if(recommendationSQLData[i][2]) + var prio = recommendationSQLData[i][2] + + else if(recommendationSQLData[i][3]) + prio = getPrioByDueDate(recommendationSQLData[i][3]); + + else + prio = $KeywordRegistry.visitRecommendationPriority$low(); + + + var title = ""; + if(recommendationSQLData[i][9]){ + var user = tools.getUserByAttribute(tools.CONTACTID, recommendationSQLData[i][9]); + title = user[tools.TITLE] + } + + tmpData[0] = recommendationSQLData[i][0]; //UID + tmpData[1] = organisationName; //Organisation Name + tmpData[3] = recommendationSQLData[i][6]; //Address + tmpData[4] = prio; + tmpData[5] = recommendationSQLData[i][4]; //Source of Priority + tmpData[7] = recommendationSQLData[i][3]; //Due Date + tmpData[8] = recommendationSQLData[i][5]; //Info + tmpData[9] = recommendationSQLData[i][1]; //CONTACT_ID + tmpData[2] = recommendationSQLData[i][8]; //Data_planned + + + recommendationData.push(tmpData); +} + +var monthly = datetime.ONE_DAY * 31; +var semiannually = datetime.ONE_DAY * 183; +var quarterly = datetime.ONE_DAY * 93; +var yearly = datetime.ONE_DAY * 365; + +for (let i = 0; i < visitFrequencyData.length; i++) +{ + let tmpData = []; + + let title = ""; + + if(visitFrequencyData[i][9]) + { + let user = tools.getUserByAttribute(tools.CONTACTID, visitFrequencyData[i][9]); + title = user[tools.TITLE] + } + + tmpData[0] = visitFrequencyData[i][0]; //UID + tmpData[1] = visitFrequencyData[i][1]; //Organisation Name + tmpData[3] = visitFrequencyData[i][2]; //Address + tmpData[5] = visitFrequencyData[i][4]; //Source of Priority + tmpData[8] = ""; + tmpData[9] = visitFrequencyData[i][5]; //CONTACT_ID + tmpData[2] = visitFrequencyData[i][6]; //Date_Planned + var dueDate = ""; + var lastVisitDate = ""; + + if((visitFrequencyData[i][6]).length == 0) + { + dueDate = datetime.date(); + } + else + { + lastVisitDate = parseInt(visitFrequencyData[i][6]); + switch(visitFrequencyData[i][4]) + { + case $AttributeRegistry.visitPlanFrequency$monthly(): + { + dueDate = lastVisitDate + monthly; + break; + } + case $AttributeRegistry.visitPlanFrequency$quarterly(): + { + dueDate = lastVisitDate + quarterly; + break; + } + case $AttributeRegistry.visitPlanFrequency$semiannually(): + { + dueDate = lastVisitDate + semiannually; + break; + } + case $AttributeRegistry.visitPlanFrequency$yearly(): + { + dueDate = lastVisitDate + yearly; + break; + } + default: + { + break; + } + } + } + + + tmpData[7] = dueDate; //Due Date + tmpData[4] = getPrioByDueDate(dueDate); //Priority + + recommendationData.push(tmpData); +} + + +//add Display Value for Priority and PrioritySource +for (let i = 0; i < recommendationData.length; i++) +{ + recommendationData[i][6] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPriority(), recommendationData[i][4]) + recommendationData[i][10] = KeywordUtils.getViewValue($KeywordRegistry.visitRecommendationPrioSource(), recommendationData[i][5]) +} + +//sort Array by priority; highest priority first +ArrayUtils.sort2d(recommendationData, 4, true) + +result.object(recommendationData); + +function getPrioByDueDate(pDueDate) +{ + var prio = ""; + var currentDate = datetime.date(); + + if(pDueDate != "") + { + var dateDifference = pDueDate - currentDate; + + if(dateDifference < 0) + prio = $KeywordRegistry.visitRecommendationPriority$critical(); + else if(dateDifference < datetime.ONE_DAY * 3) + prio = $KeywordRegistry.visitRecommendationPriority$veryHigh(); + else if(dateDifference < datetime.ONE_DAY * 7) + prio = $KeywordRegistry.visitRecommendationPriority$high(); + else if(dateDifference < datetime.ONE_DAY * 14) + prio = $KeywordRegistry.visitRecommendationPriority$medium(); + else + prio = $KeywordRegistry.visitRecommendationPriority$low(); + } + + return prio; +} \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/filterextensions/attribute_filter/filterConditionProcess.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/filterextensions/attribute_filter/filterConditionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..65d6b67c6e0affc794a04043f264fa103f4c2ba0 --- /dev/null +++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/filterextensions/attribute_filter/filterConditionProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("AttributeFilter_lib"); + +var sqlCond = AttributeFilterExtensionMaker.makeFilterConditionSql(); +result.string(sqlCond); \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/filterextensions/attribute_filter/filterFieldsProcess.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/filterextensions/attribute_filter/filterFieldsProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2625d5ed4d439e87d79d9519af1b917807fdb0b8 --- /dev/null +++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/filterextensions/attribute_filter/filterFieldsProcess.js @@ -0,0 +1,5 @@ +import("AttributeFilter_lib"); +import("system.result"); + +var fields = AttributeFilterExtensionMaker.makeFilterFields(); +result.string(fields); \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/filterextensions/attribute_filter/filterValuesProcess.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/filterextensions/attribute_filter/filterValuesProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..942b0a0495a179f9c25d19330bb8cd59c5563ec0 --- /dev/null +++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/filterextensions/attribute_filter/filterValuesProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("AttributeFilter_lib"); + +var values = AttributeFilterExtensionMaker.makeFilterValues(); +result.object(values); \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/onDelete.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/onDelete.js new file mode 100644 index 0000000000000000000000000000000000000000..e63bd391cfc137ff9a12eaa47bef9002f2d79875 --- /dev/null +++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/onDelete.js @@ -0,0 +1,5 @@ +import("Sql_lib"); +import("system.vars"); + +newWhere("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$field.UID") + .deleteData(); \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/onInsert.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/onInsert.js new file mode 100644 index 0000000000000000000000000000000000000000..f362c1d033e797fd7ea14b2d7e1ea613f7661752 --- /dev/null +++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/onInsert.js @@ -0,0 +1,29 @@ +import("KeywordRegistry_basic"); +import("system.db"); +import("system.vars"); + +var rowData = vars.get("$local.rowdata"); +var contact_id = rowData["CONTACT_ID.value"]; +var source = $KeywordRegistry.visitRecommendationPrioSource$manual(); + +var values = [ + rowData["UID.value"], + contact_id, + rowData["DUE_DATE.value"], + rowData["PRIORITY.value"], + source, + vars.get("$field.INFO") +]; + +var columns = [ + "VISITRECOMMENDATIONID", + "CONTACT_ID", + "DUE_DATE", + "PRIORITY", + "SOURCE", + "INFO" +]; + +var columnTypes = db.getColumnTypes("VISITRECOMMENDATION", columns, db.getCurrentAlias()); + +db.insertData("VISITRECOMMENDATION", columns, columnTypes, values); \ No newline at end of file diff --git a/entity/VisitRecommendation_entity/recordcontainers/jdito/onUpdate.js b/entity/VisitRecommendation_entity/recordcontainers/jdito/onUpdate.js new file mode 100644 index 0000000000000000000000000000000000000000..b27ed4d0483f8515f6552defc190addbb70cf8b1 --- /dev/null +++ b/entity/VisitRecommendation_entity/recordcontainers/jdito/onUpdate.js @@ -0,0 +1,23 @@ +import("Sql_lib"); +import("system.db"); +import("system.vars"); + +var rowdata = vars.get("$local.rowdata"); +var dbFields = { + "ORGANISATION_NAME.value": "ORGANISATION_NAME", + "ORGANISATION_POINT_OF_CONTACT.value": "ORGANISATION_POINT_OF_CONTACT", + "ORGANISATION_ADDRESS.value" : "ORGANISATION_ADDRESS", + "PRIORITY.value" : "PRIORITY", + "DUE_DATE.value": "DUE_DATE", + "INFO.value": "INFO" +}; +var fieldValues = {}; +vars.get("$local.changed").forEach(function (field) +{ + var dbField = dbFields[field]; + if (dbField) + fieldValues[dbField] = rowdata[field] || ""; +}); + +newWhere("VISITRECOMMENDATION.VISITRECOMMENDATIONID", "$field.UID") + .updateFields(fieldValues); \ No newline at end of file diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index d3e8f8dd6476cf436131e40a8a7600492cce49e1..40442331cb09a2228a9317324e693dcb349c3e96 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -6315,11 +6315,202 @@ <key>Finished tasks</key> </entry> <entry> - <key>{$QUICK_ENTRY_LEAD_QUICK_ACQUISITION}</key> + <key>very high</key> + </entry> + <entry> + <key>External Service</key> + </entry> + <entry> + <key>Their Permissions</key> + </entry> + <entry> + <key>Complete tasks</key> + </entry> + <entry> + <key>pComingFrom is not defined. 'ExportTemplateUtils.buildExport:66'</key> + <key>File from this template could not be found anymore. </key> + </entry> + <entry> + <key>show visit planning of the week</key> + </entry> + <entry> + <key>Export columns using a exporttemplate</key> + </entry> + <entry> + <key>Entriescount</key> + </entry> + <entry> + <key>Organisation point Of Contact</key> + </entry> + <entry> + <key>Appointment Confirmed</key> + </entry> + <entry> + <key>delete linked permissions and hierarchies</key> + </entry> + <entry> + <key>critical</key> + </entry> + <entry> + <key>Week</key> + </entry> + <entry> + <key>Start time</key> + </entry> + <entry> + <key>SqlBuilder: The pagesize is not set or is not a number.</key> + </entry> + <entry> + <key>Child Roles</key> + </entry> + <entry> + <key>Visitentry Made</key> + </entry> + <entry> + <key>The endtime can't be before begintime!</key> + </entry> + <entry> + <key>rights of access</key> + </entry> + <entry> + <key>Leadimport Reset</key> + </entry> + <entry> + <key>Create notification</key> + </entry> + <entry> + <key>Set attribute</key> + </entry> + <entry> + <key>Parent Roles</key> </entry> <entry> <key>Export workflow</key> </entry> + <entry> + <key>End time</key> + </entry> + <entry> + <key>SqlBuilder: The provided callback function is not a function.</key> + </entry> + <entry> + <key>Visit Planning</key> + </entry> + <entry> + <key>My Permissions</key> + </entry> + <entry> + <key>Workflow management</key> + </entry> + <entry> + <key>my visit planning</key> + </entry> + <entry> + <key>Update offer</key> + </entry> + <entry> + <key>Duration</key> + </entry> + <entry> + <key>Send email</key> + </entry> + <entry> + <key>Activites</key> + </entry> + <entry> + <key>Dispatch as mail</key> + <key>New Visit Recommendation</key> + </entry> + <entry> + <key>New Visitplan Entry</key> + </entry> + <entry> + <key>Monthly</key> + </entry> + <entry> + <key>Yearly</key> + </entry> + <entry> + <key>Until</key> + </entry> + <entry> + <key>Entrydate has to be in the selected calendar week!</key> + </entry> + <entry> + <key>Invalid year!</key> + </entry> + <entry> + <key>high</key> + </entry> + <entry> + <key>Send email</key> + </entry> + <entry> + <key>Point of Contact</key> + </entry> + <entry> + <key>From</key> + </entry> + <entry> + <key>Contactperson</key> + </entry> + <entry> + <key>Date Planned</key> + </entry> + <entry> + <key>Priority Source</key> + </entry> + <entry> + <key>Planned By</key> + </entry> + <entry> + <key>Due Date</key> + </entry> + <entry> + <key>planned</key> + </entry> + <entry> + <key>Appointment arranged</key> + </entry> + <entry> + <key>Visitreport created</key> + </entry> + <entry> + <key>Visit Recommendation</key> + </entry> + <entry> + <key>Visitplan Weekly Overview</key> + </entry> + <entry> + <key>Visitplan Entry</key> + </entry> + <entry> + <key>Linked Appointment</key> + </entry> + <entry> + <key>Visitplan Entries</key> + </entry> + <entry> + <key>Visit Recommendations</key> + </entry> + <entry> + <key>Besuchsreport erstellt</key> + </entry> + <entry> + <key>geplant</key> + </entry> + <entry> + <key>Termin vereinbart</key> + </entry> + <entry> + <key>Contactreport</key> + </entry> + <entry> + <key>Appointment planned</key> + </entry> + <entry> + <key>Visitreport</key> + </entry> <entry> <key>Their Permissions</key> </entry> @@ -6329,6 +6520,111 @@ <entry> <key>pComingFrom is not defined. 'ExportTemplateUtils.buildExport:66'</key> </entry> + <entry> + <key>Create new Visitreport</key> + </entry> + <entry> + <key>Create new Appointment</key> + </entry> + <entry> + <key>Create new Visitplanentry</key> + </entry> + <entry> + <key>Open route</key> + </entry> + <entry> + <key>External Work</key> + </entry> + <entry> + <key>New Weekplanentry</key> + </entry> + <entry> + <key>Open Route</key> + </entry> + <entry> + <key>Create Visitreport</key> + </entry> + <entry> + <key>Weekplan</key> + </entry> + <entry> + <key>Create New Weekplanentry</key> + </entry> + <entry> + <key>Visit Frequency</key> + </entry> + <entry> + <key>Event gateway</key> + </entry> + <entry> + <key>Complete tasks</key> + </entry> + <entry> + <key>Parallel gateway</key> + </entry> + <entry> + <key>Intermediate throwing event</key> + </entry> + <entry> + <key>End event</key> + </entry> + <entry> + <key>Start time</key> + </entry> + <entry> + <key>Receive task</key> + </entry> + <entry> + <key>Leadimport Reset</key> + </entry> + <entry> + <key>Inclusive gateway</key> + </entry> + <entry> + <key>Exclusive gateway</key> + </entry> + <entry> + <key>Service task</key> + </entry> + <entry> + <key>End time</key> + </entry> + <entry> + <key>User task</key> + </entry> + <entry> + <key>Intermediate catching event</key> + </entry> + <entry> + <key>Business rule task</key> + </entry> + <entry> + <key>Sequence flow</key> + </entry> + <entry> + <key>Manual task</key> + </entry> + <entry> + <key>Duration</key> + </entry> + <entry> + <key>Start event</key> + </entry> + <entry> + <key>Boundary event</key> + </entry> + <entry> + <key>{$QUICK_ENTRY_LEAD_QUICK_ACQUISITION}</key> + </entry> + <entry> + <key>Script task</key> + </entry> + <entry> + <key>Activites</key> + </entry> + <entry> + <key>pComingFrom is not defined. 'ExportTemplateUtils.buildExport:66'</key> + </entry> <entry> <key>Start time</key> </entry> diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index 75c71b883609f89ed79cc092c9690cd17ec8e896..3623b312126735b2520c4a4dfa2572a8e1985f75 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -12,7 +12,6 @@ </entry> <entry> <key>Signals</key> - <value>Signale</value> </entry> <entry> <key>Open modeler</key> @@ -7763,6 +7762,7 @@ Bitte Datumseingabe prüfen</value> </entry> <entry> <key>low</key> + <value>niedrig</value> </entry> <entry> <key>Show only own</key> @@ -7790,6 +7790,7 @@ Bitte Datumseingabe prüfen</value> </entry> <entry> <key>Manual</key> + <value>manuell</value> </entry> <entry> <key>QuickEntry</key> @@ -8144,6 +8145,207 @@ Bitte Datumseingabe prüfen</value> <key>Add new Department Permission</key> <value>Neue Abteilungs-Berechtigung hinzufügen</value> </entry> + <entry> + <key>very high</key> + <value>sehr hoch</value> + </entry> + <entry> + <key>External Service</key> + </entry> + <entry> + <key>show visit planning of the week</key> + <value>Zeig die Besuchsplanung der Woche</value> + </entry> + <entry> + <key>Entriescount</key> + <value>Anzahl Einträge</value> + </entry> + <entry> + <key>Organisation point Of Contact</key> + <value>Kontaktperson</value> + </entry> + <entry> + <key>Appointment Confirmed</key> + <value>Bestätigt</value> + </entry> + <entry> + <key>critical</key> + <value>kritisch +</value> + </entry> + <entry> + <key>Week</key> + <value>Woche</value> + </entry> + <entry> + <key>Start time</key> + </entry> + <entry> + <key>SqlBuilder: The pagesize is not set or is not a number.</key> + </entry> + <entry> + <key>Visitentry Made</key> + <value>Bericht erfasst</value> + </entry> + <entry> + <key>The endtime can't be before begintime!</key> + </entry> + <entry> + <key>Rights of access</key> + <value>Zugriffsrechte</value> + </entry> + <entry> + <key>Leadimport Reset</key> + </entry> + <entry> + <key>Create notification</key> + </entry> + <entry> + <key>Set attribute</key> + </entry> + <entry> + <key>End time</key> + </entry> + <entry> + <key>Visit Planning</key> + <value>Besuchsplanung</value> + </entry> + <entry> + <key>Workflow management</key> + <key>SqlBuilder: The provided callback function is not a function.</key> + </entry> + <entry> + <key>my visit planning</key> + <value>Meine Besuchsplanung</value> + </entry> + <entry> + <key>Update offer</key> + <key>My Permissions</key> + <value>Meine Berechtigungen</value> + </entry> + <entry> + <key>New Visit Recommendation</key> + <value>Neuer Besuchsvorschlag</value> + <key>Workflow management</key> + </entry> + <entry> + <key>New Visitplan Entry</key> + <value>Besuch eintragen</value> + <key>Update offer</key> + </entry> + <entry> + <key>Monthly</key> + <value>monatlich</value> + <key>Duration</key> + </entry> + <entry> + <key>Yearly</key> + <value>jährlich</value> + </entry> + <entry> + <key>Until</key> + <value>Bis</value> + </entry> + <entry> + <key>Entrydate has to be in the selected calendar week!</key> + <value>Eingangsdatum muss in der ausgewählten Kalenderwoche liegen!</value> + </entry> + <entry> + <key>Invalid year!</key> + <value>Ungültiges jahr!</value> + </entry> + <entry> + <key>high</key> + <value>hoch</value> + </entry> + <entry> + <key>Send email</key> + </entry> + <entry> + <key>Activites</key> + <key>Point of Contact</key> + </entry> + <entry> + <key>Export process</key> + </entry> + <entry> + <key>From</key> + <value>Von +</value> + </entry> + <entry> + <key>Contactperson</key> + <value>Ansprechpartner</value> + </entry> + <entry> + <key>Date Planned</key> + </entry> + <entry> + <key>Priority Source</key> + <value>Prioritätsquelle</value> + </entry> + <entry> + <key>Planned By</key> + </entry> + <entry> + <key>Due Date</key> + <value>Fälligkeitsdatum</value> + </entry> + <entry> + <key>planned</key> + <value>geplant</value> + </entry> + <entry> + <key>Appointment arranged</key> + </entry> + <entry> + <key>Visitreport created</key> + <value>Besuchsbericht erstellt</value> + </entry> + <entry> + <key>Visit Recommendation</key> + <value>Besuchsvorschlag</value> + </entry> + <entry> + <key>Visitplan Weekly Overview</key> + <value>Besuchsplanung</value> + </entry> + <entry> + <key>Visitplan Entry</key> + <value>Besuchseintrag</value> + </entry> + <entry> + <key>Linked Appointment</key> + </entry> + <entry> + <key>Visitplan Entries</key> + <value>Besuchseinträge</value> + </entry> + <entry> + <key>Visit Recommendations</key> + <value>Besuchsvorschläge</value> + </entry> + <entry> + <key>Besuchsreport erstellt</key> + </entry> + <entry> + <key>geplant</key> + </entry> + <entry> + <key>Termin vereinbart</key> + </entry> + <entry> + <key>Contactreport</key> + <value>Kontaktbericht</value> + </entry> + <entry> + <key>Appointment planned</key> + <value>Termin vereinbart</value> + </entry> + <entry> + <key>Visitreport</key> + <value>Besuchsbericht</value> + </entry> <entry> <key>Export coloumns using a exporttemplate</key> </entry> @@ -8157,7 +8359,125 @@ Bitte Datumseingabe prüfen</value> <key>ankle of</key> </entry> <entry> - <key>Export process</key> + <key>pComingFrom is not defined. 'ExportTemplateUtils.buildExport:66'</key> + </entry> + <entry> + <key>Create new Visitreport</key> + <value>Besuchsbericht erstellen</value> + </entry> + <entry> + <key>Create new Appointment</key> + <value>Termin erstellen</value> + </entry> + <entry> + <key>Create new Visitplanentry</key> + <value>Besuchseintrag erstellen</value> + </entry> + <entry> + <key>Open route</key> + <value>Route öffnen</value> + </entry> + <entry> + <key>External Work</key> + <value>Aussendienst</value> + </entry> + <entry> + <key>New Weekplanentry</key> + <value>Neuer Wochenplaneintrag</value> + </entry> + <entry> + <key>Open Route</key> + <value>Route öffnen</value> + </entry> + <entry> + <key>Create Visitreport</key> + <value>Besuchsbericht erstellen</value> + </entry> + <entry> + <key>Weekplan</key> + <value>Wochenplan</value> + </entry> + <entry> + <key>Create New Weekplanentry</key> + <value>neuen Wochenplaneintrag erstellen</value> + </entry> + <entry> + <key>Visit Frequency</key> + <value>Besuchsfrequenz</value> + </entry> + <entry> + <key>Event gateway</key> + </entry> + <entry> + <key>Complete tasks</key> + </entry> + <entry> + <key>Parallel gateway</key> + </entry> + <entry> + <key>Intermediate throwing event</key> + </entry> + <entry> + <key>End event</key> + </entry> + <entry> + <key>Start time</key> + <key>Dispatch as mail</key> + <value>Als Email versenden</value> + </entry> + <entry> + <key>Receive task</key> + </entry> + <entry> + <key>Leadimport Reset</key> + <key>Show offer</key> + <value>Angebot anzeigen</value> + </entry> + <entry> + <key>{$QUICK_ENTRY_LEAD_QUICK_ACQUISITION}</key> + <key>Inclusive gateway</key> + </entry> + <entry> + <key>Exclusive gateway</key> + </entry> + <entry> + <key>Service task</key> + </entry> + <entry> + <key>End time</key> + </entry> + <entry> + <key>User task</key> + </entry> + <entry> + <key>Intermediate catching event</key> + </entry> + <entry> + <key>Business rule task</key> + </entry> + <entry> + <key>Sequence flow</key> + </entry> + <entry> + <key>Manual task</key> + </entry> + <entry> + <key>Duration</key> + </entry> + <entry> + <key>Start event</key> + </entry> + <entry> + <key>Boundary event</key> + </entry> + <entry> + <key>{$QUICK_ENTRY_LEAD_QUICK_ACQUISITION}</key> + </entry> + <entry> + <key>Script task</key> + </entry> + <entry> + <key>Activites</key> </entry> <entry> <key>Their Permissions</key> diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod index bcd6cfe7e3bb75bc736fd029f53845d5ce6afebb..64d2ab7f0efa8e3cda4eb68140abcb93b9b09529 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -6377,7 +6377,7 @@ <key>Finished tasks</key> </entry> <entry> - <key>{$QUICK_ENTRY_LEAD_QUICK_ACQUISITION}</key> + <key>very high</key> <value>Lead quick acquisition</value> </entry> <entry> @@ -6390,19 +6390,282 @@ <key>Child Roles</key> </entry> <entry> - <key>Parent Roles</key> + <key>External Service</key> </entry> <entry> <key>Export columns using a exporttemplate</key> </entry> + <entry> + <key>show visit planning of the week</key> + </entry> + <entry> + <key>Entriescount</key> + <key>Their Permissions</key> + </entry> + <entry> + <key>Complete tasks</key> + </entry> + <entry> + <key>pComingFrom is not defined. 'ExportTemplateUtils.buildExport:66'</key> + </entry> + <entry> + <key>Start time</key> + </entry> + <entry> + <key>SqlBuilder: The pagesize is not set or is not a number.</key> + </entry> + <entry> + <key>Visitentry Made</key> + </entry> + <entry> + <key>The endtime can't be before begintime!</key> + </entry> + <entry> + <key>rights of access</key> + </entry> + <entry> + <key>Leadimport Reset</key> + </entry> + <entry> + <key>Create notification</key> + </entry> + <entry> + <key>Set attribute</key> + </entry> + <entry> + <key>Parent Roles</key> + </entry> <entry> <key>Export workflow</key> </entry> + <entry> + <key>End time</key> + </entry> + <entry> + <key>SqlBuilder: The provided callback function is not a function.</key> + </entry> + <entry> + <key>Visit Planning</key> + </entry> + <entry> + <key>My Permissions</key> + </entry> + <entry> + <key>Workflow management</key> + </entry> + <entry> + <key>my visit planning</key> + </entry> + <entry> + <key>Update offer</key> + </entry> + <entry> + <key>New Visit Recommendation</key> + <key>Duration</key> + </entry> + <entry> + <key>New Visitplan Entry</key> + </entry> + <entry> + <key>Monthly</key> + </entry> + <entry> + <key>Yearly</key> + </entry> + <entry> + <key>Until</key> + </entry> + <entry> + <key>Entrydate has to be in the selected calendar week!</key> + </entry> + <entry> + <key>Invalid year!</key> + </entry> + <entry> + <key>high</key> + </entry> + <entry> + <key>Send email</key> + </entry> + <entry> + <key>Point of Contact</key> + </entry> + <entry> + <key>From</key> + </entry> + <entry> + <key>Contactperson</key> + </entry> + <entry> + <key>Date Planned</key> + </entry> + <entry> + <key>Priority Source</key> + </entry> + <entry> + <key>Planned By</key> + </entry> + <entry> + <key>Due Date</key> + </entry> + <entry> + <key>planned</key> + </entry> + <entry> + <key>Appointment arranged</key> + </entry> + <entry> + <key>Visitreport created</key> + </entry> + <entry> + <key>Visit Recommendation</key> + </entry> + <entry> + <key>Visitplan Weekly Overview</key> + </entry> + <entry> + <key>Visitplan Entry</key> + </entry> + <entry> + <key>Linked Appointment</key> + </entry> + <entry> + <key>Visitplan Entries</key> + </entry> + <entry> + <key>Visit Recommendations</key> + </entry> + <entry> + <key>Besuchsreport erstellt</key> + </entry> + <entry> + <key>geplant</key> + </entry> + <entry> + <key>Termin vereinbart</key> + </entry> + <entry> + <key>Contactreport</key> + </entry> + <entry> + <key>Appointment planned</key> + </entry> + <entry> + <key>Visitreport</key> + </entry> <entry> <key>Their Permissions</key> </entry> <entry> <key>Complete tasks</key> + <key>Activites</key> + </entry> + <entry> + <key>pComingFrom is not defined. 'ExportTemplateUtils.buildExport:66'</key> + </entry> + <entry> + <key>Create new Visitreport</key> + </entry> + <entry> + <key>Create new Appointment</key> + </entry> + <entry> + <key>Create new Visitplanentry</key> + </entry> + <entry> + <key>Open route</key> + </entry> + <entry> + <key>External Work</key> + </entry> + <entry> + <key>New Weekplanentry</key> + </entry> + <entry> + <key>Open Route</key> + </entry> + <entry> + <key>Create Visitreport</key> + </entry> + <entry> + <key>Weekplan</key> + </entry> + <entry> + <key>Create New Weekplanentry</key> + </entry> + <entry> + <key>Visit Frequency</key> + </entry> + <entry> + <key>Event gateway</key> + </entry> + <entry> + <key>Complete tasks</key> + </entry> + <entry> + <key>Parallel gateway</key> + </entry> + <entry> + <key>Intermediate throwing event</key> + </entry> + <entry> + <key>End event</key> + </entry> + <entry> + <key>Start time</key> + <key>Dispatch as mail</key> + </entry> + <entry> + <key>Receive task</key> + </entry> + <entry> + <key>Leadimport Reset</key> + <key>Show offer</key> + </entry> + <entry> + <key>Inclusive gateway</key> + </entry> + <entry> + <key>Exclusive gateway</key> + </entry> + <entry> + <key>Service task</key> + </entry> + <entry> + <key>End time</key> + </entry> + <entry> + <key>User task</key> + </entry> + <entry> + <key>Intermediate catching event</key> + </entry> + <entry> + <key>Business rule task</key> + </entry> + <entry> + <key>Sequence flow</key> + </entry> + <entry> + <key>Manual task</key> + </entry> + <entry> + <key>Duration</key> + </entry> + <entry> + <key>Start event</key> + </entry> + <entry> + <key>Boundary event</key> + </entry> + <entry> + <key>{$QUICK_ENTRY_LEAD_QUICK_ACQUISITION}</key> + </entry> + <entry> + <key>Script task</key> + </entry> + <entry> + <key>Activites</key> </entry> <entry> <key>pComingFrom is not defined. 'ExportTemplateUtils.buildExport:66'</key> diff --git a/neonContext/VisitPlanEmployeeWeek/VisitPlanEmployeeWeek.aod b/neonContext/VisitPlanEmployeeWeek/VisitPlanEmployeeWeek.aod new file mode 100644 index 0000000000000000000000000000000000000000..27d3d785959414af527c025d977a7f7817aea659 --- /dev/null +++ b/neonContext/VisitPlanEmployeeWeek/VisitPlanEmployeeWeek.aod @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1"> + <name>VisitPlanEmployeeWeek</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <mainView>VisitPlanEmployeeWeekMain_view</mainView> + <filterView>VisitPlanEmployeeWeekFilter_view</filterView> + <editView>VisitPlanEmployeeWeekEdit_view</editView> + <previewView>VisitPlanEmployeeWeekPreview_view</previewView> + <entity>VisitPlanEmployeeWeek_entity</entity> + <references> + <neonViewReference> + <name>47464ab4-f6aa-4cd1-b271-a8248f70afc1</name> + <view>VisitPlanEmployeeWeekMain_view</view> + </neonViewReference> + <neonViewReference> + <name>efd7d80e-6c04-483a-b3eb-c3e1ed46d5cb</name> + <view>VisitPlanEmployeeWeekFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>ea3d5671-c003-4ef3-a01a-255217599980</name> + <view>VisitPlanEmployeeWeekEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>1b86e5b1-b03a-4cdf-95ba-32071aedc8c7</name> + <view>VisitPlanEmployeeWeekPreview_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/VisitPlanEntry/VisitPlanEntry.aod b/neonContext/VisitPlanEntry/VisitPlanEntry.aod new file mode 100644 index 0000000000000000000000000000000000000000..93caf6dc86dedfdcdb44b471b655d98610f88eb2 --- /dev/null +++ b/neonContext/VisitPlanEntry/VisitPlanEntry.aod @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1"> + <name>VisitPlanEntry</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterView>VisitPlanEntryFilter_view</filterView> + <editView>VisitPlanEntryEdit_view</editView> + <entity>VisitPlanEntry_entity</entity> + <references> + <neonViewReference> + <name>87a6923a-71b5-4432-904f-07c1d49a4590</name> + <view>VisitPlanEntryFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>9f5ad319-7c06-4161-bbec-581ac86b0a0d</name> + <view>VisitPlanEntryEdit_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/VisitRecommendation/VisitRecommendation.aod b/neonContext/VisitRecommendation/VisitRecommendation.aod new file mode 100644 index 0000000000000000000000000000000000000000..6c3505a44e0d4cbaf19d8b24ee6ff5d0c2146f66 --- /dev/null +++ b/neonContext/VisitRecommendation/VisitRecommendation.aod @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1"> + <name>VisitRecommendation</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterView>VisitRecommendationFilter_view</filterView> + <editView>VisitRecommendationEdit_view</editView> + <entity>VisitRecommendation_entity</entity> + <references> + <neonViewReference> + <name>4823b7e1-5abf-4b80-89df-58f80b2aaf2d</name> + <view>VisitRecommendationFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>8825d26d-c7d8-4efb-a751-361078985eb9</name> + <view>VisitRecommendationEdit_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonView/ActivityLinkMultiEdit_view/ActivityLinkMultiEdit_view.aod b/neonView/ActivityLinkMultiEdit_view/ActivityLinkMultiEdit_view.aod index e4133db6340e686d0a203192a00fd781bb882d36..e19f1da0f82985fe301ad938c70cd9df35f5b7cf 100644 --- a/neonView/ActivityLinkMultiEdit_view/ActivityLinkMultiEdit_view.aod +++ b/neonView/ActivityLinkMultiEdit_view/ActivityLinkMultiEdit_view.aod @@ -1,27 +1,27 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> - <name>ActivityLinkMultiEdit_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <noneLayout> - <name>layout</name> - </noneLayout> - </layout> - <children> - <genericMultipleViewTemplate> - <name>MultipleEdit</name> - <entityField>#ENTITY</entityField> - <title></title> - <columns> - <neonGenericMultipleTableColumn> - <name>b7f68733-33f2-4ed7-a222-4298491b5cb0</name> - <entityField>OBJECT_TYPE</entityField> - </neonGenericMultipleTableColumn> - <neonGenericMultipleTableColumn> - <name>3d98edbb-44aa-4d85-97fe-9260081292c3</name> - <entityField>OBJECT_ROWID</entityField> - </neonGenericMultipleTableColumn> - </columns> - </genericMultipleViewTemplate> - </children> -</neonView> +<?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>ActivityLinkMultiEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <noneLayout> + <name>layout</name> + </noneLayout> + </layout> + <children> + <genericMultipleViewTemplate> + <name>MultipleEdit</name> + <entityField>#ENTITY</entityField> + <title></title> + <columns> + <neonGenericMultipleTableColumn> + <name>b7f68733-33f2-4ed7-a222-4298491b5cb0</name> + <entityField>OBJECT_TYPE</entityField> + </neonGenericMultipleTableColumn> + <neonGenericMultipleTableColumn> + <name>3d98edbb-44aa-4d85-97fe-9260081292c3</name> + <entityField>OBJECT_ROWID</entityField> + </neonGenericMultipleTableColumn> + </columns> + </genericMultipleViewTemplate> + </children> +</neonView> diff --git a/neonView/ActivityLinkPreview_view/ActivityLinkPreview_view.aod b/neonView/ActivityLinkPreview_view/ActivityLinkPreview_view.aod index 5c2c983cfa116d834a212e26a57237ace7b25e58..5327f5fd86e2440636c94a44cf3c3a557c94b8a2 100644 --- a/neonView/ActivityLinkPreview_view/ActivityLinkPreview_view.aod +++ b/neonView/ActivityLinkPreview_view/ActivityLinkPreview_view.aod @@ -1,22 +1,22 @@ -<?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>ActivityLinkPreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <headerFooterLayout> - <name>layout</name> - </headerFooterLayout> - </layout> - <children> - <genericViewTemplate> - <name>Links</name> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>3b3315d6-0872-447f-ac8a-0653a92bbf2d</name> - <entityField>OBJECT_ROWID</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - </children> -</neonView> +<?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>ActivityLinkPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <headerFooterLayout> + <name>layout</name> + </headerFooterLayout> + </layout> + <children> + <genericViewTemplate> + <name>Links</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>3b3315d6-0872-447f-ac8a-0653a92bbf2d</name> + <entityField>OBJECT_ROWID</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/ActivityPreview_view/ActivityPreview_view.aod b/neonView/ActivityPreview_view/ActivityPreview_view.aod index e3f5358ad42b16583e158713012cb91ab9e75646..7b82a42582a8444dbfbc726077467d458358ae33 100644 --- a/neonView/ActivityPreview_view/ActivityPreview_view.aod +++ b/neonView/ActivityPreview_view/ActivityPreview_view.aod @@ -1,64 +1,64 @@ -<?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>ActivityPreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <headerFooterLayout> - <name>layout</name> - <header>Header</header> - </headerFooterLayout> - </layout> - <children> - <cardViewTemplate> - <name>Header</name> - <iconField>ICON</iconField> - <titleField>SUBJECT</titleField> - <descriptionField>ENTRYDATE</descriptionField> - <favoriteAction1>newActivity</favoriteAction1> - <entityField>#ENTITY</entityField> - </cardViewTemplate> - <genericViewTemplate> - <name>Info</name> - <showDrawer v="true" /> - <drawerCaption>Details</drawerCaption> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>84dac619-4438-492c-a6b4-61b285dc80fe</name> - <entityField>DIRECTION</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ad41c89c-2f4a-414c-90c8-d5a5df24aeaa</name> - <entityField>CATEGORY</entityField> - </entityFieldLink> - <entityFieldLink> - <name>c4569e50-223e-4b99-8253-e8fa72ef45a0</name> - <entityField>RESPONSIBLE</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>4c365613-81c5-4518-8953-751b5ae35cc2</name> - <entityField>Links</entityField> - <view>ActivityLinkPreviewList_view</view> - </neonViewReference> - <neonViewReference> - <name>43167618-e4dc-429b-a264-3ea95bd647f9</name> - <entityField>MainDocuments</entityField> - <view>DocumentList_view</view> - </neonViewReference> - <genericViewTemplate> - <name>Description</name> - <showDrawer v="true" /> - <drawerCaption>Description</drawerCaption> - <hideLabels v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>cfdae746-0433-49fa-877d-0c5ca93024e3</name> - <entityField>INFO</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - </children> -</neonView> +<?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>ActivityPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>Header</header> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>Header</name> + <iconField>ICON</iconField> + <titleField>SUBJECT</titleField> + <descriptionField>ENTRYDATE</descriptionField> + <favoriteAction1>newActivity</favoriteAction1> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>Info</name> + <showDrawer v="true" /> + <drawerCaption>Details</drawerCaption> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>84dac619-4438-492c-a6b4-61b285dc80fe</name> + <entityField>DIRECTION</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ad41c89c-2f4a-414c-90c8-d5a5df24aeaa</name> + <entityField>CATEGORY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>c4569e50-223e-4b99-8253-e8fa72ef45a0</name> + <entityField>RESPONSIBLE</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>4c365613-81c5-4518-8953-751b5ae35cc2</name> + <entityField>Links</entityField> + <view>ActivityLinkPreviewList_view</view> + </neonViewReference> + <neonViewReference> + <name>43167618-e4dc-429b-a264-3ea95bd647f9</name> + <entityField>MainDocuments</entityField> + <view>DocumentList_view</view> + </neonViewReference> + <genericViewTemplate> + <name>Description</name> + <showDrawer v="true" /> + <drawerCaption>Description</drawerCaption> + <hideLabels v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>cfdae746-0433-49fa-877d-0c5ca93024e3</name> + <entityField>INFO</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/AppointmentEdit_view/AppointmentEdit_view.aod b/neonView/AppointmentEdit_view/AppointmentEdit_view.aod index f60b1f0653c25464c6d9a61847e717b2180dcba4..9490ed3a36aacd3d0e9b519468f441b564bfb6ba 100644 --- a/neonView/AppointmentEdit_view/AppointmentEdit_view.aod +++ b/neonView/AppointmentEdit_view/AppointmentEdit_view.aod @@ -1,41 +1,41 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> - <name>AppointmentEdit_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <documentation>%aditoprj%/neonView/AppointmentEdit_view/documentation.adoc</documentation> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <appointmentEditViewTemplate> - <name>Edit</name> - <summaryField>SUMMARY</summaryField> - <descriptionField>DESCRIPTION</descriptionField> - <beginField>BEGIN</beginField> - <endField>END</endField> - <attendeesField>ATTENDEES</attendeesField> - <privateField>CLASSIFICATION</privateField> - <statusField>STATUS</statusField> - <locationField>LOCATION</locationField> - <categoriesField>CATEGORIES</categoriesField> - <alldayField>ALLDAY</alldayField> - <transparencyField>TRANSPARENCY</transparencyField> - <organizerField>ORGANIZER</organizerField> - <favoriteActionGroup1>PartStatActionGroup</favoriteActionGroup1> - <rruleField>RRULE</rruleField> - <recurrenceIdField>RECURRENCEID</recurrenceIdField> - <saveScopeField>SAFESCOPEFIELD</saveScopeField> - <masterBeginField>MASTERBEGIN</masterBeginField> - <masterEndField>MASTEREND</masterEndField> - <reminderField>REMINDER</reminderField> - <entityField>#ENTITY</entityField> - </appointmentEditViewTemplate> - <neonViewReference> - <name>39802b49-f67c-4796-ba05-105aa073d60c</name> - <entityField>AppointmentLinks</entityField> - <view>AppointmentLinkEdit_view</view> - </neonViewReference> - </children> -</neonView> +<?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>AppointmentEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/neonView/AppointmentEdit_view/documentation.adoc</documentation> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <appointmentEditViewTemplate> + <name>Edit</name> + <summaryField>SUMMARY</summaryField> + <descriptionField>DESCRIPTION</descriptionField> + <beginField>BEGIN</beginField> + <endField>END</endField> + <attendeesField>ATTENDEES</attendeesField> + <privateField>CLASSIFICATION</privateField> + <statusField>STATUS</statusField> + <locationField>LOCATION</locationField> + <categoriesField>CATEGORIES</categoriesField> + <alldayField>ALLDAY</alldayField> + <transparencyField>TRANSPARENCY</transparencyField> + <organizerField>ORGANIZER</organizerField> + <favoriteActionGroup1>PartStatActionGroup</favoriteActionGroup1> + <rruleField>RRULE</rruleField> + <recurrenceIdField>RECURRENCEID</recurrenceIdField> + <saveScopeField>SAFESCOPEFIELD</saveScopeField> + <masterBeginField>MASTERBEGIN</masterBeginField> + <masterEndField>MASTEREND</masterEndField> + <reminderField>REMINDER</reminderField> + <entityField>#ENTITY</entityField> + </appointmentEditViewTemplate> + <neonViewReference> + <name>39802b49-f67c-4796-ba05-105aa073d60c</name> + <entityField>AppointmentLinks</entityField> + <view>AppointmentLinkEdit_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/VisitPlanEmployeeWeekEdit_view/VisitPlanEmployeeWeekEdit_view.aod b/neonView/VisitPlanEmployeeWeekEdit_view/VisitPlanEmployeeWeekEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..36b89a250e33f257ffba7003cb5a65c36524f87a --- /dev/null +++ b/neonView/VisitPlanEmployeeWeekEdit_view/VisitPlanEmployeeWeekEdit_view.aod @@ -0,0 +1,37 @@ +<?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>VisitPlanEmployeeWeekEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <size>SMALL</size> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <isEditable v="true" /> + <fields> + <entityFieldLink> + <name>a066671d-5efb-4123-afe6-a4a420342b17</name> + <entityField>PERSON_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>fb5eb7db-38f3-46d7-8694-8c11a05a3d74</name> + <entityField>WEEK</entityField> + </entityFieldLink> + <entityFieldLink> + <name>87301217-235e-4b4e-9182-ccf839dd7944</name> + <entityField>YEAR</entityField> + </entityFieldLink> + <entityFieldLink> + <name>6e656a20-41a5-4fe7-9b4a-ba2e3629ade1</name> + <entityField>INFO</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/VisitPlanEmployeeWeekFilter_view/VisitPlanEmployeeWeekFilter_view.aod b/neonView/VisitPlanEmployeeWeekFilter_view/VisitPlanEmployeeWeekFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..84584b718e513b36cea457f6e6fd19a00751b40d --- /dev/null +++ b/neonView/VisitPlanEmployeeWeekFilter_view/VisitPlanEmployeeWeekFilter_view.aod @@ -0,0 +1,55 @@ +<?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>VisitPlanEmployeeWeekFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="false" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Table</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>a3f48ebd-9472-4388-8525-8351bdc90715</name> + <entityField>icon</entityField> + </neonTableColumn> + <neonTableColumn> + <name>e3525190-e8a5-4635-968a-aa446727074c</name> + <entityField>WEEK</entityField> + </neonTableColumn> + <neonTableColumn> + <name>41e665d5-0bcf-4e33-8080-809d839da15d</name> + <entityField>YEAR</entityField> + </neonTableColumn> + <neonTableColumn> + <name>92095268-0400-462d-9a6c-227d9f6966d4</name> + <entityField>PERSON_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>a5b55587-841d-42d5-b4b7-eff55f6f6858</name> + <entityField>entriescount</entityField> + </neonTableColumn> + <neonTableColumn> + <name>2cf050be-90e5-4c39-b610-695433b7237e</name> + <entityField>entriesplannedcount</entityField> + </neonTableColumn> + <neonTableColumn> + <name>510c71cf-e0f6-4841-be76-91fdfedd6731</name> + <entityField>entries_appoint_count</entityField> + </neonTableColumn> + <neonTableColumn> + <name>f2c7c7a7-3111-4f24-b44f-b733f18c932b</name> + <entityField>entries_activity_count</entityField> + </neonTableColumn> + <neonTableColumn> + <name>7957501f-6771-4ac5-a5ef-92da2b36ffe8</name> + <entityField>INFO</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/VisitPlanEmployeeWeekMain_view/VisitPlanEmployeeWeekMain_view.aod b/neonView/VisitPlanEmployeeWeekMain_view/VisitPlanEmployeeWeekMain_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..6bd22ba2b15c5b858651e3df4a95f1b69100c5d1 --- /dev/null +++ b/neonView/VisitPlanEmployeeWeekMain_view/VisitPlanEmployeeWeekMain_view.aod @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>VisitPlanEmployeeWeekMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>96cdcf22-793e-4bd5-82db-a952ced1a9ba</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>96cdcf22-793e-4bd5-82db-a952ced1a9ba</name> + <entityField>#ENTITY</entityField> + <view>VisitPlanEmployeeWeekPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>a46e4f5e-341f-4a0b-9ec8-8b949803a590</name> + <entityField>Entries</entityField> + <view>VisitPlanEntryFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>c7679a66-61e9-4ecc-9c6b-6fea98a13522</name> + <entityField>recommendations</entityField> + <view>VisitRecommendationFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/VisitPlanEmployeeWeekPreview_view/VisitPlanEmployeeWeekPreview_view.aod b/neonView/VisitPlanEmployeeWeekPreview_view/VisitPlanEmployeeWeekPreview_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..3e4bee135d241994a1210b5afbef05d6bf67a818 --- /dev/null +++ b/neonView/VisitPlanEmployeeWeekPreview_view/VisitPlanEmployeeWeekPreview_view.aod @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>VisitPlanEmployeeWeekPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <size>SMALL</size> + <layout> + <headerFooterLayout> + <name>layout</name> + <footer>Score_Card</footer> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>Card</name> + <iconField>icon</iconField> + <titleField>PERSON_ID</titleField> + <entityField>#ENTITY</entityField> + <isEditable v="false" /> + </cardViewTemplate> + <genericViewTemplate> + <name>Generic</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>5dcc40c3-a5e9-4030-a0bd-50282c361c0e</name> + <entityField>WEEK</entityField> + </entityFieldLink> + <entityFieldLink> + <name>e75e5ce2-9702-4885-a12d-64afe780b728</name> + <entityField>YEAR</entityField> + </entityFieldLink> + <entityFieldLink> + <name>9e6bca10-ce10-4f90-a5e5-f70c680edb25</name> + <entityField>INFO</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <scoreCardViewTemplate> + <name>Score_Card</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>edd06fcc-b9a1-45e6-b8f6-351aa7a89368</name> + <entityField>entriescount</entityField> + </entityFieldLink> + <entityFieldLink> + <name>d8a33f1d-ad7b-4a5d-9f0f-161b52749d6f</name> + <entityField>entriesplannedcount</entityField> + </entityFieldLink> + <entityFieldLink> + <name>93915027-a3cc-428c-905e-792ab8787f26</name> + <entityField>entries_appoint_count</entityField> + </entityFieldLink> + </fields> + </scoreCardViewTemplate> + </children> +</neonView> diff --git a/neonView/VisitPlanEntryEdit_view/VisitPlanEntryEdit_view.aod b/neonView/VisitPlanEntryEdit_view/VisitPlanEntryEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..28604879e7108ad50dd857e98fea28e94e177984 --- /dev/null +++ b/neonView/VisitPlanEntryEdit_view/VisitPlanEntryEdit_view.aod @@ -0,0 +1,37 @@ +<?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>VisitPlanEntryEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <size>SMALL</size> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <isEditable v="true" /> + <fields> + <entityFieldLink> + <name>6cb39117-71cf-432b-afe7-b3446921d89e</name> + <entityField>ORGANISATION_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>8347bc87-30f2-4335-b824-23e107b949b5</name> + <entityField>ENTRYDATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>99cbd482-b7c7-4d5b-a17e-62f9ab49db8a</name> + <entityField>BEGIN_TIME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>75e0b2e9-2cd9-4d27-a696-2494ec79daa4</name> + <entityField>END_TIME</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/VisitPlanEntryFilter_view/VisitPlanEntryFilter_view.aod b/neonView/VisitPlanEntryFilter_view/VisitPlanEntryFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..8db62ce75af057e94f32bbb8eba63f4c70819676 --- /dev/null +++ b/neonView/VisitPlanEntryFilter_view/VisitPlanEntryFilter_view.aod @@ -0,0 +1,66 @@ +<?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>VisitPlanEntryFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="false" /> + <dashletConfigurations> + <neonDashletConfiguration> + <name>currentWeek</name> + <title>my visit planning</title> + <description>show visit planning of the week</description> + <fragment>VisitPlanEntry/filter</fragment> + <singleton v="true" /> + <storeRoles> + <element>PROJECT_FieldStaff</element> + </storeRoles> + <icon>VAADIN:CAR</icon> + <categories> + <neonDashletCategory> + <name>External Service</name> + <title>External Service</title> + </neonDashletCategory> + </categories> + <parameters> + <neonDashletParameter> + <name>EntriesofCurrentWeek_param</name> + <value>true</value> + </neonDashletParameter> + </parameters> + </neonDashletConfiguration> + </dashletConfigurations> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <treeTableViewTemplate> + <name>TreeTable</name> + <parentField>PARENT_ID</parentField> + <favoriteActionGroup1>entityActionGroup</favoriteActionGroup1> + <entityField>#ENTITY</entityField> + <columns> + <neonTreeTableColumn> + <name>d728f2d9-c223-47fd-9372-6f49203f68fd</name> + <entityField>PARENTNAME</entityField> + </neonTreeTableColumn> + <neonTreeTableColumn> + <name>860f55a7-8153-4744-b664-73016719cbe1</name> + <entityField>BEGIN_TIME</entityField> + </neonTreeTableColumn> + <neonTreeTableColumn> + <name>1f85b23f-aad0-429b-af97-fc310aed9554</name> + <entityField>END_TIME</entityField> + </neonTreeTableColumn> + <neonTreeTableColumn> + <name>646193df-c713-4b40-85cc-0fbe6f8cb316</name> + <entityField>ORGANISATION_ID</entityField> + </neonTreeTableColumn> + <neonTreeTableColumn> + <name>ca75adc7-5405-40af-bda0-52ae38e61f76</name> + <entityField>STATUS</entityField> + </neonTreeTableColumn> + </columns> + </treeTableViewTemplate> + </children> +</neonView> diff --git a/neonView/VisitRecommendationEdit_view/VisitRecommendationEdit_view.aod b/neonView/VisitRecommendationEdit_view/VisitRecommendationEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..e23697e9b2c4a7c34be6387a84308d922cb82600 --- /dev/null +++ b/neonView/VisitRecommendationEdit_view/VisitRecommendationEdit_view.aod @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.6" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.6"> + <name>VisitRecommendationEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <size>SMALL</size> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <isEditable v="true" /> + <fields> + <entityFieldLink> + <name>f4c34f77-c8cd-4eeb-a172-2f22a6de4029</name> + <entityField>DUE_DATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>7fcdef72-e823-43cc-a5d1-f6a8e81efd04</name> + <entityField>PRIORITY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>7349c883-e682-449b-8023-2a60f95fd68c</name> + <entityField>INFO</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/VisitRecommendationFilter_view/VisitRecommendationFilter_view.aod b/neonView/VisitRecommendationFilter_view/VisitRecommendationFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..fd33a5b5de963a569ebacd15c97033f1dd756857 --- /dev/null +++ b/neonView/VisitRecommendationFilter_view/VisitRecommendationFilter_view.aod @@ -0,0 +1,51 @@ +<?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>VisitRecommendationFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Table</name> + <favoriteActionGroup1>newEntryGroup</favoriteActionGroup1> + <entityField>#ENTITY</entityField> + <isCreatable v="true" /> + <isDeletable v="true" /> + <isEditable v="true" /> + <columns> + <neonTableColumn> + <name>a87306f5-45b1-4969-ab2b-c6d17b54c4de</name> + <entityField>PRIORITY_ICON</entityField> + </neonTableColumn> + <neonTableColumn> + <name>44659323-f1b5-4b29-afbf-eac2e7219e30</name> + <entityField>ORGANISATION_NAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>703fad3a-2d5f-47b4-8cc3-edf14c08afef</name> + <entityField>ORGANISATION_ADDRESS</entityField> + </neonTableColumn> + <neonTableColumn> + <name>964bed99-4474-4017-b3cf-d6d51eb5b445</name> + <entityField>PRIORITY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>96ff7755-4d9f-4706-982c-aeafda8b0618</name> + <entityField>PRIORITY_SOURCE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>85536cbf-d252-486e-a7ca-74b3ee9486c5</name> + <entityField>DUE_DATE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>e11dc9c2-73fe-4b21-96cb-01bbe69f6bd7</name> + <entityField>INFO</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/process/AttributeRegistry_basic/process.js b/process/AttributeRegistry_basic/process.js index 141c192f3f3cccfc5f424b8e2b3f1fb94fa9679d..cacb5a18c5652984a98533ed93ff819bc030ed6e 100644 --- a/process/AttributeRegistry_basic/process.js +++ b/process/AttributeRegistry_basic/process.js @@ -18,3 +18,10 @@ $AttributeRegistry.targetGroup$competitior = function(){return "1d30d0ab-6103-49 $AttributeRegistry.departments = function(){return "87d4ff5b-0ab6-4534-be26-76c6ef486072";}; $AttributeRegistry.salesprojectType = function(){return "fd3963bc-8e60-411a-9911-b97eb73e5cf7";}; $AttributeRegistry.responsibleADsupervisor = function(){return "c0b26482-c0aa-413d-a9c3-f44c56bd04a9";}; + +$AttributeRegistry.visitPlanFrequency = function(){return "547b8b9d-88ba-4590-9e01-34d2a58116cc";}; +$AttributeRegistry.visitPlanFrequency$monthly = function(){return "8c100817-1d2b-4fc7-8fdd-fd0370e19385";}; +$AttributeRegistry.visitPlanFrequency$semiannually = function(){return "46d87ef7-a3fb-4918-98df-c8ed2cd3ca2b";}; +$AttributeRegistry.visitPlanFrequency$quarterly = function(){return "22722783-aa87-418f-9686-9b97c0639cae";}; +$AttributeRegistry.visitPlanFrequency$yearly = function(){return "a9575350-c1e7-4f96-b0ed-a8f52cc8b123";}; +$AttributeRegistry.visitPlanPointOfContact = function(){return "7d78320a-31c6-4c24-992a-a583f47caeb5";}; diff --git a/process/KeywordRegistry_basic/process.js b/process/KeywordRegistry_basic/process.js index ef388740925395165fe54ddfa16363c629e6312c..bd18dea7a28be466e76b93d3dd453952f5d69764 100644 --- a/process/KeywordRegistry_basic/process.js +++ b/process/KeywordRegistry_basic/process.js @@ -16,6 +16,9 @@ * $KeywordRegistry.activityDirection() */ function $KeywordRegistry(){} +// this function can also be found as StringUtils.pad36() in Util_lib and is just here to avoid an import because this registry is heavily used. +$KeywordRegistry._autoPad = function(pKey){return (pKey + " ").slice(0, 36)}; + $KeywordRegistry.attributeType = function(){return "AttributeType";}; $KeywordRegistry.keywordAttributeType = function(){return "KeywordAttributeType";}; $KeywordRegistry.contractPayment = function(){return "ContractPayment";}; @@ -95,6 +98,7 @@ $KeywordRegistry.salesprojectProbability = function(){return "SalesprojectProbab $KeywordRegistry.activityCategory = function(){return "ActivityCategory";}; $KeywordRegistry.activityCategory$mail = function(){return "MAIL";}; $KeywordRegistry.activityCategory$letter = function(){return "LETTER";}; +$KeywordRegistry.activityCategory$visit = function(){return "VISIT";}; $KeywordRegistry.addressType = function(){return "AddressType";}; $KeywordRegistry.addressType$private = function(){return "HOMEADDR";}; @@ -266,3 +270,20 @@ $KeywordRegistry.workflowActivityType$eventBasedGateway = function(){return "eve $KeywordRegistry.workflowActivityType$boundaryEvent = function(){return "boundaryEvent";}; $KeywordRegistry.workflowActivityType$intermediateCatchEvent = function(){return "intermediateCatchEvent";}; $KeywordRegistry.workflowActivityType$intermediateThrowEvent = function(){return "intermediateThrowEvent";}; +$KeywordRegistry.exportTemplateSeparator$tab = function(){return "TAB";}; + +$KeywordRegistry.visitRecommendationPriority = function(){return $KeywordRegistry._autoPad("VisitRecommendationPriority");}; +$KeywordRegistry.visitRecommendationPriority$critical = function(){return $KeywordRegistry._autoPad("VISITPRIOCRITICAL");}; +$KeywordRegistry.visitRecommendationPriority$veryHigh = function(){return $KeywordRegistry._autoPad("VISITPRIOCVERYHIGH");}; +$KeywordRegistry.visitRecommendationPriority$high = function(){return $KeywordRegistry._autoPad("VISITPRIOHIGH");}; +$KeywordRegistry.visitRecommendationPriority$medium = function(){return $KeywordRegistry._autoPad("VISITPRIOMEDIUM");}; +$KeywordRegistry.visitRecommendationPriority$low = function(){return $KeywordRegistry._autoPad("VISITPRIOLOW");}; + +$KeywordRegistry.visitPlanEntryStatus = function(){return $KeywordRegistry._autoPad("VisitPlanEntryStatus");}; +$KeywordRegistry.visitPlanEntryStatus$planned = function(){return $KeywordRegistry._autoPad("VISITSTATUSPLANNED");}; +$KeywordRegistry.visitPlanEntryStatus$Appointmentarranged = function(){return $KeywordRegistry._autoPad("VISITSTATUSAPPPLANED");}; +$KeywordRegistry.visitPlanEntryStatus$Visitreportcreated = function(){return $KeywordRegistry._autoPad("VISITSTATUSREPORTCREATED");}; + +$KeywordRegistry.visitRecommendationPrioSource = function(){return $KeywordRegistry._autoPad("VisitRecommendationPrioSource");}; +$KeywordRegistry.visitRecommendationPrioSource$visitFrequency = function(){return $KeywordRegistry._autoPad("VISITFREQUENCY");}; +$KeywordRegistry.visitRecommendationPrioSource$manual = function(){return $KeywordRegistry._autoPad("MANUAL");}; \ No newline at end of file