diff --git a/.aditoprj/project.version b/.aditoprj/project.version index 83d7930d4d5617115d2d24571b5836876a7e6387..c706c2004f33ff504e7e72a8b03d54abc19442c1 100644 --- a/.aditoprj/project.version +++ b/.aditoprj/project.version @@ -1,3 +1,3 @@ -#This file is generated by ADITO designer. Do NOT delete or modify! -#Tue May 14 15:19:29 CEST 2019 -version=5.1.14 +#This file is generated by ADITO designer. Do NOT delete or modify! +#Tue May 14 15:19:29 CEST 2019 +version=5.1.14 diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 4b4cb0e41a13b48bacb75b77b3e9ab50b0a32a67..4a1ab973694e123dc08a82bf659081bd49e2404e 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -1,6 +1,6 @@ -<component name="InspectionProjectProfileManager"> - <profile version="1.0"> - <option name="myName" value="Project Default" /> - <inspection_tool class="LossyEncoding" enabled="false" level="WARNING" enabled_by_default="false" /> - </profile> +<component name="InspectionProjectProfileManager"> + <profile version="1.0"> + <option name="myName" value="Project Default" /> + <inspection_tool class="LossyEncoding" enabled="false" level="WARNING" enabled_by_default="false" /> + </profile> </component> \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 94a25f7f4cb416c083d265558da75d457237d671..9661ac713428efbad557d3ba3a62216b5bb7d226 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="VcsDirectoryMappings"> - <mapping directory="$PROJECT_DIR$" vcs="Git" /> - </component> +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> </project> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/AditoBasic/ActivityDirectionKeyword_add_icon_attr.xml b/.liquibase/Data_alias/basic/2019.2/AditoBasic/ActivityDirectionKeyword_add_icon_attr.xml index eb2fe92e77c66f859c14fee4050918d3edc4f492..4dea578b8643f4efef26d78ac7f20305bcb920e6 100644 --- a/.liquibase/Data_alias/basic/2019.2/AditoBasic/ActivityDirectionKeyword_add_icon_attr.xml +++ b/.liquibase/Data_alias/basic/2019.2/AditoBasic/ActivityDirectionKeyword_add_icon_attr.xml @@ -1,30 +1,30 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="j-hoermann" id="1599ef6a-6293-40e3-8d6c-6ddfe1028e5e"> - <insert tableName="AB_KEYWORD_ATTRIBUTE"> - <column name="AB_KEYWORD_ATTRIBUTEID" value="e187a585-9ab1-4dd4-a2e9-2db14d4cc3a7"/> - - <column name="NAME" value="icon"/> - <column name="CONTAINER" value="ActivityDirection"/> - <column name="TYPE" value="CHAR_VALUE"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="7770bafa-22f0-4a74-a2cf-5001b620a4b2"/> - <column name="AB_KEYWORD_ENTRY_ID" value="c564719a-18ef-4b9e-b130-dde8b2b518ad"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="e187a585-9ab1-4dd4-a2e9-2db14d4cc3a7"/> - <column name="CHAR_VALUE" value="VAADIN:ARROW_BACKWARD"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="d2ad222a-7a5f-4d4d-ae8c-578ad3359d24"/> - <column name="AB_KEYWORD_ENTRY_ID" value="6f4c6e49-36ca-4b91-ba83-c507203e1eac"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="e187a585-9ab1-4dd4-a2e9-2db14d4cc3a7"/> - <column name="CHAR_VALUE" value="VAADIN:ARROW_FORWARD"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="e82923a6-5245-4d42-871b-91df297bc2ee"/> - <column name="AB_KEYWORD_ENTRY_ID" value="bb386131-ee36-4835-b458-6751f137a941"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="e187a585-9ab1-4dd4-a2e9-2db14d4cc3a7"/> - <column name="CHAR_VALUE" value="VAADIN:SHOP"/> - </insert> - </changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="j-hoermann" id="1599ef6a-6293-40e3-8d6c-6ddfe1028e5e"> + <insert tableName="AB_KEYWORD_ATTRIBUTE"> + <column name="AB_KEYWORD_ATTRIBUTEID" value="e187a585-9ab1-4dd4-a2e9-2db14d4cc3a7"/> + + <column name="NAME" value="icon"/> + <column name="CONTAINER" value="ActivityDirection"/> + <column name="TYPE" value="CHAR_VALUE"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="7770bafa-22f0-4a74-a2cf-5001b620a4b2"/> + <column name="AB_KEYWORD_ENTRY_ID" value="c564719a-18ef-4b9e-b130-dde8b2b518ad"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="e187a585-9ab1-4dd4-a2e9-2db14d4cc3a7"/> + <column name="CHAR_VALUE" value="VAADIN:ARROW_BACKWARD"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="d2ad222a-7a5f-4d4d-ae8c-578ad3359d24"/> + <column name="AB_KEYWORD_ENTRY_ID" value="6f4c6e49-36ca-4b91-ba83-c507203e1eac"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="e187a585-9ab1-4dd4-a2e9-2db14d4cc3a7"/> + <column name="CHAR_VALUE" value="VAADIN:ARROW_FORWARD"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="e82923a6-5245-4d42-871b-91df297bc2ee"/> + <column name="AB_KEYWORD_ENTRY_ID" value="bb386131-ee36-4835-b458-6751f137a941"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="e187a585-9ab1-4dd4-a2e9-2db14d4cc3a7"/> + <column name="CHAR_VALUE" value="VAADIN:SHOP"/> + </insert> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/AditoBasic/create_ab_loghistory.xml b/.liquibase/Data_alias/basic/2019.2/AditoBasic/create_ab_loghistory.xml index d7d65e6c6fc084edc1edd6173ce131458d314848..daaca9fea94ffb1174e994ecc2b50d7b4b8c240a 100644 --- a/.liquibase/Data_alias/basic/2019.2/AditoBasic/create_ab_loghistory.xml +++ b/.liquibase/Data_alias/basic/2019.2/AditoBasic/create_ab_loghistory.xml @@ -1,19 +1,19 @@ -<?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="m.kuhn" id="fbe17fba-5bf7-4203-8f6f-01723e07194c"> - <createTable tableName="AB_LOGHISTORY"> - <column name="USER_NEW" type="NVARCHAR(50)"> - <constraints nullable="false"/> - </column> - <column name="DATE_NEW" type="DATETIME"> - <constraints nullable="false"/> - </column> - <column name="DESCRIPTION" type="NCLOB"/> - <column name="LOGTYPE" type="CHAR(1)"/> - <column name="SOURCE_TABLENAME" type="NVARCHAR(30)"/> - <column name="SOURCE_TABLENAMEID" type="CHAR(36)"/> - <column name="TABLENAME" type="NVARCHAR(30)"/> - <column name="TABLENAMEID" type="CHAR(36)"/> - </createTable> - </changeSet> +<?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="m.kuhn" id="fbe17fba-5bf7-4203-8f6f-01723e07194c"> + <createTable tableName="AB_LOGHISTORY"> + <column name="USER_NEW" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="DATE_NEW" type="DATETIME"> + <constraints nullable="false"/> + </column> + <column name="DESCRIPTION" type="NCLOB"/> + <column name="LOGTYPE" type="CHAR(1)"/> + <column name="SOURCE_TABLENAME" type="NVARCHAR(30)"/> + <column name="SOURCE_TABLENAMEID" type="CHAR(36)"/> + <column name="TABLENAME" type="NVARCHAR(30)"/> + <column name="TABLENAMEID" type="CHAR(36)"/> + </createTable> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AddressType.xml b/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AddressType.xml index 05ba4b1d3994ba0f914d96dfc5ad2e08461876ee..bd7339d0bb6ce128863c200c48c9c66c3566e763 100644 --- a/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AddressType.xml +++ b/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AddressType.xml @@ -1,193 +1,193 @@ -<?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="a.veogl" id="83126524-0cca-4430-8a2c-571a44a7829d"> - <insert tableName="AB_KEYWORD_ATTRIBUTE"> - <column name="AB_KEYWORD_ATTRIBUTEID" value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd"/> - - <column name="NAME" value="organisation"/> - <column name="CONTAINER" value="AddressType"/> - <column name="TYPE" value="BOOL_VALUE"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTE"> - <column name="AB_KEYWORD_ATTRIBUTEID" value="c4c5352b-ff72-4323-80b9-631a24dd7245"/> - - <column name="NAME" value="contact"/> - <column name="CONTAINER" value="AddressType"/> - <column name="TYPE" value="BOOL_VALUE"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="49bb6904-dd20-4ede-aaff-ae80131ed274"/> - - <column name="KEYID" value="b3292432-bca2-4674-8b06-b78b2b06351e"/> - <column name="TITLE" value="Office address"/> - <column name="CONTAINER" value="AddressType"/> - <column name="SORTING" valueNumeric="1"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="a62eae3b-b670-4bf7-a144-696d456cd26a"/> - <column name="AB_KEYWORD_ENTRY_ID" value="49bb6904-dd20-4ede-aaff-ae80131ed274"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd"/> - <column name="BOOL_VALUE" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="f4e88624-f2a8-43a5-b5db-51fa0879314f"/> - <column name="AB_KEYWORD_ENTRY_ID" value="49bb6904-dd20-4ede-aaff-ae80131ed274"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="c4c5352b-ff72-4323-80b9-631a24dd7245"/> - <column name="BOOL_VALUE" valueNumeric="0"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="5213a48a-b6d2-47ee-8409-a4af7477535f"/> - - <column name="KEYID" value="a7466ee5-3fba-40bf-93cf-aa20a2b32ad6"/> - <column name="TITLE" value="Home address"/> - <column name="CONTAINER" value="AddressType"/> - <column name="SORTING" valueNumeric="2"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="f6d6f746-bb2c-48c1-92a9-e5624d0a72e1"/> - <column name="AB_KEYWORD_ENTRY_ID" value="5213a48a-b6d2-47ee-8409-a4af7477535f"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd"/> - <column name="BOOL_VALUE" valueNumeric="0"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="d62d4424-ba6c-4b10-ad83-f7d7c156f814"/> - <column name="AB_KEYWORD_ENTRY_ID" value="5213a48a-b6d2-47ee-8409-a4af7477535f"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="c4c5352b-ff72-4323-80b9-631a24dd7245"/> - <column name="BOOL_VALUE" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="045d0567-4535-4d22-84f2-95b3b0e23000"/> - - <column name="KEYID" value="cf1c4cab-d24e-4690-ba52-54bae711cd47"/> - <column name="TITLE" value="Delivery address"/> - <column name="CONTAINER" value="AddressType"/> - <column name="SORTING" valueNumeric="3"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="0"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="08f2ba6c-22da-447c-9aa8-052fe401f2bd"/> - <column name="AB_KEYWORD_ENTRY_ID" value="045d0567-4535-4d22-84f2-95b3b0e23000"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd"/> - <column name="BOOL_VALUE" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="a02167af-0518-4e3d-80c7-8e25a725c31c"/> - <column name="AB_KEYWORD_ENTRY_ID" value="045d0567-4535-4d22-84f2-95b3b0e23000"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="c4c5352b-ff72-4323-80b9-631a24dd7245"/> - <column name="BOOL_VALUE" valueNumeric="0"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="e62da2f2-6352-4660-b2ff-1e8a552d298a"/> - - <column name="KEYID" value="dd0ddde2-9add-4309-b3ef-0f1dfb6d4aac"/> - <column name="TITLE" value="Post office box"/> - <column name="CONTAINER" value="AddressType"/> - <column name="SORTING" valueNumeric="4"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="0"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="502fd0cf-873e-4a9a-87a9-949c0c3b07af"/> - <column name="AB_KEYWORD_ENTRY_ID" value="e62da2f2-6352-4660-b2ff-1e8a552d298a"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd"/> - <column name="BOOL_VALUE" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="443ffd0a-d5f5-46f8-948e-89d4e6456f4c"/> - <column name="AB_KEYWORD_ENTRY_ID" value="e62da2f2-6352-4660-b2ff-1e8a552d298a"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="c4c5352b-ff72-4323-80b9-631a24dd7245"/> - <column name="BOOL_VALUE" valueNumeric="0"/> - </insert> - <rollback> - <delete tableName="AB_KEYWORD_ATTRIBUTE"> - <where>AB_KEYWORD_ATTRIBUTEID = ?</where> - <whereParams> - <param value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd" /> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ATTRIBUTE"> - <where>AB_KEYWORD_ATTRIBUTEID = ?</where> - <whereParams> - <param value="c4c5352b-ff72-4323-80b9-631a24dd7245" /> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ENTRY"> - <where>AB_KEYWORD_ENTRYID = ?</where> - <whereParams> - <param value="49bb6904-dd20-4ede-aaff-ae80131ed274" /> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> - <whereParams> - <param value="a62eae3b-b670-4bf7-a144-696d456cd26a" /> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> - <whereParams> - <param value="f4e88624-f2a8-43a5-b5db-51fa0879314f" /> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ENTRY"> - <where>AB_KEYWORD_ENTRYID = ?</where> - <whereParams> - <param value="5213a48a-b6d2-47ee-8409-a4af7477535f" /> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> - <whereParams> - <param value="f6d6f746-bb2c-48c1-92a9-e5624d0a72e1" /> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> - <whereParams> - <param value="d62d4424-ba6c-4b10-ad83-f7d7c156f814" /> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ENTRY"> - <where>AB_KEYWORD_ENTRYID = ?</where> - <whereParams> - <param value="045d0567-4535-4d22-84f2-95b3b0e23000" /> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> - <whereParams> - <param value="08f2ba6c-22da-447c-9aa8-052fe401f2bd" /> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> - <whereParams> - <param value="a02167af-0518-4e3d-80c7-8e25a725c31c" /> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ENTRY"> - <where>AB_KEYWORD_ENTRYID = ?</where> - <whereParams> - <param value="e62da2f2-6352-4660-b2ff-1e8a552d298a" /> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> - <whereParams> - <param value="502fd0cf-873e-4a9a-87a9-949c0c3b07af" /> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> - <whereParams> - <param value="443ffd0a-d5f5-46f8-948e-89d4e6456f4c" /> - </whereParams> - </delete> - </rollback> - </changeSet> +<?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="a.veogl" id="83126524-0cca-4430-8a2c-571a44a7829d"> + <insert tableName="AB_KEYWORD_ATTRIBUTE"> + <column name="AB_KEYWORD_ATTRIBUTEID" value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd"/> + + <column name="NAME" value="organisation"/> + <column name="CONTAINER" value="AddressType"/> + <column name="TYPE" value="BOOL_VALUE"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTE"> + <column name="AB_KEYWORD_ATTRIBUTEID" value="c4c5352b-ff72-4323-80b9-631a24dd7245"/> + + <column name="NAME" value="contact"/> + <column name="CONTAINER" value="AddressType"/> + <column name="TYPE" value="BOOL_VALUE"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="49bb6904-dd20-4ede-aaff-ae80131ed274"/> + + <column name="KEYID" value="b3292432-bca2-4674-8b06-b78b2b06351e"/> + <column name="TITLE" value="Office address"/> + <column name="CONTAINER" value="AddressType"/> + <column name="SORTING" valueNumeric="1"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="a62eae3b-b670-4bf7-a144-696d456cd26a"/> + <column name="AB_KEYWORD_ENTRY_ID" value="49bb6904-dd20-4ede-aaff-ae80131ed274"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd"/> + <column name="BOOL_VALUE" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="f4e88624-f2a8-43a5-b5db-51fa0879314f"/> + <column name="AB_KEYWORD_ENTRY_ID" value="49bb6904-dd20-4ede-aaff-ae80131ed274"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="c4c5352b-ff72-4323-80b9-631a24dd7245"/> + <column name="BOOL_VALUE" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="5213a48a-b6d2-47ee-8409-a4af7477535f"/> + + <column name="KEYID" value="a7466ee5-3fba-40bf-93cf-aa20a2b32ad6"/> + <column name="TITLE" value="Home address"/> + <column name="CONTAINER" value="AddressType"/> + <column name="SORTING" valueNumeric="2"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="f6d6f746-bb2c-48c1-92a9-e5624d0a72e1"/> + <column name="AB_KEYWORD_ENTRY_ID" value="5213a48a-b6d2-47ee-8409-a4af7477535f"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd"/> + <column name="BOOL_VALUE" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="d62d4424-ba6c-4b10-ad83-f7d7c156f814"/> + <column name="AB_KEYWORD_ENTRY_ID" value="5213a48a-b6d2-47ee-8409-a4af7477535f"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="c4c5352b-ff72-4323-80b9-631a24dd7245"/> + <column name="BOOL_VALUE" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="045d0567-4535-4d22-84f2-95b3b0e23000"/> + + <column name="KEYID" value="cf1c4cab-d24e-4690-ba52-54bae711cd47"/> + <column name="TITLE" value="Delivery address"/> + <column name="CONTAINER" value="AddressType"/> + <column name="SORTING" valueNumeric="3"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="08f2ba6c-22da-447c-9aa8-052fe401f2bd"/> + <column name="AB_KEYWORD_ENTRY_ID" value="045d0567-4535-4d22-84f2-95b3b0e23000"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd"/> + <column name="BOOL_VALUE" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="a02167af-0518-4e3d-80c7-8e25a725c31c"/> + <column name="AB_KEYWORD_ENTRY_ID" value="045d0567-4535-4d22-84f2-95b3b0e23000"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="c4c5352b-ff72-4323-80b9-631a24dd7245"/> + <column name="BOOL_VALUE" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="e62da2f2-6352-4660-b2ff-1e8a552d298a"/> + + <column name="KEYID" value="dd0ddde2-9add-4309-b3ef-0f1dfb6d4aac"/> + <column name="TITLE" value="Post office box"/> + <column name="CONTAINER" value="AddressType"/> + <column name="SORTING" valueNumeric="4"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="502fd0cf-873e-4a9a-87a9-949c0c3b07af"/> + <column name="AB_KEYWORD_ENTRY_ID" value="e62da2f2-6352-4660-b2ff-1e8a552d298a"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd"/> + <column name="BOOL_VALUE" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="443ffd0a-d5f5-46f8-948e-89d4e6456f4c"/> + <column name="AB_KEYWORD_ENTRY_ID" value="e62da2f2-6352-4660-b2ff-1e8a552d298a"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="c4c5352b-ff72-4323-80b9-631a24dd7245"/> + <column name="BOOL_VALUE" valueNumeric="0"/> + </insert> + <rollback> + <delete tableName="AB_KEYWORD_ATTRIBUTE"> + <where>AB_KEYWORD_ATTRIBUTEID = ?</where> + <whereParams> + <param value="1d5c5d49-0ffd-47fb-af10-542f7cf454cd" /> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ATTRIBUTE"> + <where>AB_KEYWORD_ATTRIBUTEID = ?</where> + <whereParams> + <param value="c4c5352b-ff72-4323-80b9-631a24dd7245" /> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ENTRY"> + <where>AB_KEYWORD_ENTRYID = ?</where> + <whereParams> + <param value="49bb6904-dd20-4ede-aaff-ae80131ed274" /> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> + <whereParams> + <param value="a62eae3b-b670-4bf7-a144-696d456cd26a" /> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> + <whereParams> + <param value="f4e88624-f2a8-43a5-b5db-51fa0879314f" /> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ENTRY"> + <where>AB_KEYWORD_ENTRYID = ?</where> + <whereParams> + <param value="5213a48a-b6d2-47ee-8409-a4af7477535f" /> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> + <whereParams> + <param value="f6d6f746-bb2c-48c1-92a9-e5624d0a72e1" /> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> + <whereParams> + <param value="d62d4424-ba6c-4b10-ad83-f7d7c156f814" /> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ENTRY"> + <where>AB_KEYWORD_ENTRYID = ?</where> + <whereParams> + <param value="045d0567-4535-4d22-84f2-95b3b0e23000" /> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> + <whereParams> + <param value="08f2ba6c-22da-447c-9aa8-052fe401f2bd" /> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> + <whereParams> + <param value="a02167af-0518-4e3d-80c7-8e25a725c31c" /> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ENTRY"> + <where>AB_KEYWORD_ENTRYID = ?</where> + <whereParams> + <param value="e62da2f2-6352-4660-b2ff-1e8a552d298a" /> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> + <whereParams> + <param value="502fd0cf-873e-4a9a-87a9-949c0c3b07af" /> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <where>AB_KEYWORD_ATTRIBUTERELATIONID = ?</where> + <whereParams> + <param value="443ffd0a-d5f5-46f8-948e-89d4e6456f4c" /> + </whereParams> + </delete> + </rollback> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AttributeType.xml b/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AttributeType.xml index afce4587bceb283ab111c963a2d16390135a3240..46eca8125abb762700a6c386ee7b6a8412423f02 100644 --- a/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AttributeType.xml +++ b/.liquibase/Data_alias/basic/2019.2/AditoBasic/init_AttributeType.xml @@ -1,146 +1,146 @@ -<?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="s.listl" id="14dc77c2-067f-4b45-a6ad-f2f973091d64"> - <update tableName="AB_KEYWORD_ENTRY"> - <column name="ISACTIVE" valueNumeric="0"/> - <where>AB_KEYWORD_ENTRYID = ?</where> - <whereParams> - <param value="75a67526-6b7c-400d-b958-e1f8f45466aa"/> - </whereParams> - </update> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="9d2f9605-1a5e-47d3-8920-168f5637e37f"/> - <column name="KEYID" value="KEYWORD"/> - <column name="TITLE" value="Keyword"/> - <column name="CONTAINER" value="AttributeType"/> - <column name="SORTING" valueNumeric="7"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="ee893a1c-d007-46fe-a190-727124c4467b"/> - <column name="KEYID" value="MEMO"/> - <column name="TITLE" value="Memo"/> - <column name="CONTAINER" value="AttributeType"/> - <column name="SORTING" valueNumeric="8"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="191d7293-3b3f-4dc7-bbe2-9da1a897f7df"/> - <column name="KEYID" value="VOID"/> - <column name="TITLE" value="${ATTRIBUTE_VOID}"/> - <column name="CONTAINER" value="AttributeType"/> - <column name="SORTING" valueNumeric="9"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTE"> - <column name="AB_KEYWORD_ATTRIBUTEID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> - <column name="NAME" value="defaultAvatarRepresentation"/> - <column name="CONTAINER" value="AttributeType"/> - <column name="TYPE" value="CHAR_VALUE"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="0c537ea0-6ba2-4d9a-a27c-7c6a6920e303"/> - <column name="AB_KEYWORD_ENTRY_ID" value="972e5eb1-a457-4b75-b966-1183896dac2c"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> - <column name="CHAR_VALUE" value="VAADIN:INPUT"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="8ada9b1e-2f23-4e07-bbd6-16a3b76c5b62"/> - <column name="AB_KEYWORD_ENTRY_ID" value="cb7ecaea-b4e6-460e-9006-4a3d059b9857"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> - <column name="CHAR_VALUE" value="VAADIN:DATE_INPUT"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="2ef73c53-30b4-47f9-94fb-87825e14743a"/> - <column name="AB_KEYWORD_ENTRY_ID" value="14de196a-aaa6-41b9-b503-3df1d45acc1e"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> - <column name="CHAR_VALUE" value="VAADIN:CALC"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="c4cdd0dc-fc7e-443c-9c2f-c3d400ce3a1b"/> - <column name="AB_KEYWORD_ENTRY_ID" value="8a9791c1-655f-4340-91b4-cfdf6372fc75"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> - <column name="CHAR_VALUE" value="VAADIN:CHECK_SQUARE_O"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="5afb11f5-e0eb-45f2-8018-cdf85078a236"/> - <column name="AB_KEYWORD_ENTRY_ID" value="1390813c-6b94-4336-9986-9bcaddab69ac"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> - <column name="CHAR_VALUE" value="VAADIN:COMBOBOX"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="0954628d-e40e-45e0-a808-3194594b431e"/> - <column name="AB_KEYWORD_ENTRY_ID" value="2c188a17-2961-45df-bd68-34b55352375c"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> - <column name="CHAR_VALUE" value="VAADIN:FILE_TREE"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="1516db79-6f15-4683-9314-cddebb29f995"/> - <column name="AB_KEYWORD_ENTRY_ID" value="75a67526-6b7c-400d-b958-e1f8f45466aa"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> - <column name="CHAR_VALUE" value="VAADIN:DOT_CIRCLE"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="091bf881-e599-4baf-915a-e756ae75c52e"/> - <column name="AB_KEYWORD_ENTRY_ID" value="9d2f9605-1a5e-47d3-8920-168f5637e37f"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> - <column name="CHAR_VALUE" value="VAADIN:KEY"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="a85fd75f-7346-41d0-b7fe-6c677bd3f392"/> - <column name="AB_KEYWORD_ENTRY_ID" value="ee893a1c-d007-46fe-a190-727124c4467b"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> - <column name="CHAR_VALUE" value="VAADIN:TEXT_INPUT"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="a35c73d5-2719-422b-872b-1c6c1e0707a0"/> - <column name="AB_KEYWORD_ENTRY_ID" value="191d7293-3b3f-4dc7-bbe2-9da1a897f7df"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> - <column name="CHAR_VALUE" value="VAADIN:TAG"/> - </insert> - <rollback> - <delete tableName="AB_KEYWORD_ENTRY"> - <where>AB_KEYWORD_ENTRYID = ?</where> - <whereParams> - <param value="9d2f9605-1a5e-47d3-8920-168f5637e37f"/> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ENTRY"> - <where>AB_KEYWORD_ENTRYID = ?</where> - <whereParams> - <param value="ee893a1c-d007-46fe-a190-727124c4467b"/> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ENTRY"> - <where>AB_KEYWORD_ENTRYID = ?</where> - <whereParams> - <param value="191d7293-3b3f-4dc7-bbe2-9da1a897f7df"/> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ATTRIBUTE"> - <where>AB_KEYWORD_ATTRIBUTEID = ?</where> - <whereParams> - <param value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> - </whereParams> - </delete> - <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <where>AB_KEYWORD_ATTRIBUTERELATIONID in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)</where> - <whereParams> - <param value="0c537ea0-6ba2-4d9a-a27c-7c6a6920e303"/> - <param value="8ada9b1e-2f23-4e07-bbd6-16a3b76c5b62"/> - <param value="2ef73c53-30b4-47f9-94fb-87825e14743a"/> - <param value="c4cdd0dc-fc7e-443c-9c2f-c3d400ce3a1b"/> - <param value="5afb11f5-e0eb-45f2-8018-cdf85078a236"/> - <param value="0954628d-e40e-45e0-a808-3194594b431e"/> - <param value="1516db79-6f15-4683-9314-cddebb29f995"/> - <param value="091bf881-e599-4baf-915a-e756ae75c52e"/> - <param value="a85fd75f-7346-41d0-b7fe-6c677bd3f392"/> - <param value="a35c73d5-2719-422b-872b-1c6c1e0707a0"/> - </whereParams> - </delete> - </rollback> - </changeSet> +<?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="s.listl" id="14dc77c2-067f-4b45-a6ad-f2f973091d64"> + <update tableName="AB_KEYWORD_ENTRY"> + <column name="ISACTIVE" valueNumeric="0"/> + <where>AB_KEYWORD_ENTRYID = ?</where> + <whereParams> + <param value="75a67526-6b7c-400d-b958-e1f8f45466aa"/> + </whereParams> + </update> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="9d2f9605-1a5e-47d3-8920-168f5637e37f"/> + <column name="KEYID" value="KEYWORD"/> + <column name="TITLE" value="Keyword"/> + <column name="CONTAINER" value="AttributeType"/> + <column name="SORTING" valueNumeric="7"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="ee893a1c-d007-46fe-a190-727124c4467b"/> + <column name="KEYID" value="MEMO"/> + <column name="TITLE" value="Memo"/> + <column name="CONTAINER" value="AttributeType"/> + <column name="SORTING" valueNumeric="8"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="191d7293-3b3f-4dc7-bbe2-9da1a897f7df"/> + <column name="KEYID" value="VOID"/> + <column name="TITLE" value="${ATTRIBUTE_VOID}"/> + <column name="CONTAINER" value="AttributeType"/> + <column name="SORTING" valueNumeric="9"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTE"> + <column name="AB_KEYWORD_ATTRIBUTEID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="NAME" value="defaultAvatarRepresentation"/> + <column name="CONTAINER" value="AttributeType"/> + <column name="TYPE" value="CHAR_VALUE"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="0c537ea0-6ba2-4d9a-a27c-7c6a6920e303"/> + <column name="AB_KEYWORD_ENTRY_ID" value="972e5eb1-a457-4b75-b966-1183896dac2c"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:INPUT"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="8ada9b1e-2f23-4e07-bbd6-16a3b76c5b62"/> + <column name="AB_KEYWORD_ENTRY_ID" value="cb7ecaea-b4e6-460e-9006-4a3d059b9857"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:DATE_INPUT"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="2ef73c53-30b4-47f9-94fb-87825e14743a"/> + <column name="AB_KEYWORD_ENTRY_ID" value="14de196a-aaa6-41b9-b503-3df1d45acc1e"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:CALC"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="c4cdd0dc-fc7e-443c-9c2f-c3d400ce3a1b"/> + <column name="AB_KEYWORD_ENTRY_ID" value="8a9791c1-655f-4340-91b4-cfdf6372fc75"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:CHECK_SQUARE_O"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="5afb11f5-e0eb-45f2-8018-cdf85078a236"/> + <column name="AB_KEYWORD_ENTRY_ID" value="1390813c-6b94-4336-9986-9bcaddab69ac"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:COMBOBOX"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="0954628d-e40e-45e0-a808-3194594b431e"/> + <column name="AB_KEYWORD_ENTRY_ID" value="2c188a17-2961-45df-bd68-34b55352375c"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:FILE_TREE"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="1516db79-6f15-4683-9314-cddebb29f995"/> + <column name="AB_KEYWORD_ENTRY_ID" value="75a67526-6b7c-400d-b958-e1f8f45466aa"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:DOT_CIRCLE"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="091bf881-e599-4baf-915a-e756ae75c52e"/> + <column name="AB_KEYWORD_ENTRY_ID" value="9d2f9605-1a5e-47d3-8920-168f5637e37f"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:KEY"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="a85fd75f-7346-41d0-b7fe-6c677bd3f392"/> + <column name="AB_KEYWORD_ENTRY_ID" value="ee893a1c-d007-46fe-a190-727124c4467b"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:TEXT_INPUT"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="a35c73d5-2719-422b-872b-1c6c1e0707a0"/> + <column name="AB_KEYWORD_ENTRY_ID" value="191d7293-3b3f-4dc7-bbe2-9da1a897f7df"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + <column name="CHAR_VALUE" value="VAADIN:TAG"/> + </insert> + <rollback> + <delete tableName="AB_KEYWORD_ENTRY"> + <where>AB_KEYWORD_ENTRYID = ?</where> + <whereParams> + <param value="9d2f9605-1a5e-47d3-8920-168f5637e37f"/> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ENTRY"> + <where>AB_KEYWORD_ENTRYID = ?</where> + <whereParams> + <param value="ee893a1c-d007-46fe-a190-727124c4467b"/> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ENTRY"> + <where>AB_KEYWORD_ENTRYID = ?</where> + <whereParams> + <param value="191d7293-3b3f-4dc7-bbe2-9da1a897f7df"/> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ATTRIBUTE"> + <where>AB_KEYWORD_ATTRIBUTEID = ?</where> + <whereParams> + <param value="307ecfc6-15c8-4ab9-8afa-e97b90a00c5f"/> + </whereParams> + </delete> + <delete tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <where>AB_KEYWORD_ATTRIBUTERELATIONID in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)</where> + <whereParams> + <param value="0c537ea0-6ba2-4d9a-a27c-7c6a6920e303"/> + <param value="8ada9b1e-2f23-4e07-bbd6-16a3b76c5b62"/> + <param value="2ef73c53-30b4-47f9-94fb-87825e14743a"/> + <param value="c4cdd0dc-fc7e-443c-9c2f-c3d400ce3a1b"/> + <param value="5afb11f5-e0eb-45f2-8018-cdf85078a236"/> + <param value="0954628d-e40e-45e0-a808-3194594b431e"/> + <param value="1516db79-6f15-4683-9314-cddebb29f995"/> + <param value="091bf881-e599-4baf-915a-e756ae75c52e"/> + <param value="a85fd75f-7346-41d0-b7fe-6c677bd3f392"/> + <param value="a35c73d5-2719-422b-872b-1c6c1e0707a0"/> + </whereParams> + </delete> + </rollback> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaign.xml b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaign.xml index 54404f2efe3b9073b0fe44e34f8176c728ac236e..883d0c736976f023f86b4afa974bab468107bb99 100644 --- a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaign.xml +++ b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaign.xml @@ -1,28 +1,28 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="d.lechner" id="campaign_001"> - <createTable tableName="CAMPAIGN"> - <column name="CAMPAIGNID" type="CHAR(36)"> - <constraints primaryKey="true" primaryKeyName="PK_CAMPAIGN_CAMPAIGNID"/> - </column> - <column name="NAME" type="NVARCHAR(50)"> - <constraints nullable="false"/> - </column> - <column name="EMPLOYEE_CONTACT_ID" type="CHAR(36)"> - <constraints nullable="false"/> - </column> - <column name="DESCRIPTION" type="NVARCHAR(500)" /> - <column name="USER_NEW" type="NVARCHAR(50)"> - <constraints nullable="false"/> - </column> - <column name="DATE_NEW" type="DATE"> - <constraints nullable="false"/> - </column> - <column name="USER_EDIT" type="NVARCHAR(50)" /> - <column name="DATE_EDIT" type="DATE" /> - <column name="STATE" type="CHAR(36)"> - <constraints nullable="false"/> - </column> - </createTable> - </changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="d.lechner" id="campaign_001"> + <createTable tableName="CAMPAIGN"> + <column name="CAMPAIGNID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_CAMPAIGN_CAMPAIGNID"/> + </column> + <column name="NAME" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="EMPLOYEE_CONTACT_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="DESCRIPTION" type="NVARCHAR(500)" /> + <column name="USER_NEW" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="DATE_NEW" type="DATE"> + <constraints nullable="false"/> + </column> + <column name="USER_EDIT" type="NVARCHAR(50)" /> + <column name="DATE_EDIT" type="DATE" /> + <column name="STATE" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + </createTable> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignCost.xml b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignCost.xml index 19d63878df285f730940e4578eda5d7793c99194..61fba1b70b8f7a1acf7474150946bed341d4fbca 100644 --- a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignCost.xml +++ b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignCost.xml @@ -1,27 +1,27 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="j.hoermann" id="ca18b650-d221-43bf-988d-7e47101e02be"> - <createTable tableName="CAMPAIGNCOST"> - <column name="CAMPAIGNCOSTID" type="CHAR(36)"> - <constraints primaryKey="true" primaryKeyName="PK_CAMPAIGNCOST_CAMPAIGNCOSTID"/> - </column> - <column name="CAMPAIGN_ID" type="CHAR(36)"> - <constraints nullable="false"/> - </column> - <column name="CAMPAIGNSTEP_ID" type="CHAR(36)"/> - <column name="CATEGORY" type="CHAR(36)"> - <constraints nullable="false"/> - </column> - <column name="NET" type="NUMERIC(14,2)"/> - - <column name="USER_NEW" type="NVARCHAR(50)"> - <constraints nullable="false"/> - </column> - <column name="DATE_NEW" type="DATE"> - <constraints nullable="false"/> - </column> - <column name="USER_EDIT" type="NVARCHAR(50)" /> - <column name="DATE_EDIT" type="DATE"/> - </createTable> - </changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="j.hoermann" id="ca18b650-d221-43bf-988d-7e47101e02be"> + <createTable tableName="CAMPAIGNCOST"> + <column name="CAMPAIGNCOSTID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_CAMPAIGNCOST_CAMPAIGNCOSTID"/> + </column> + <column name="CAMPAIGN_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="CAMPAIGNSTEP_ID" type="CHAR(36)"/> + <column name="CATEGORY" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="NET" type="NUMERIC(14,2)"/> + + <column name="USER_NEW" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="DATE_NEW" type="DATE"> + <constraints nullable="false"/> + </column> + <column name="USER_EDIT" type="NVARCHAR(50)" /> + <column name="DATE_EDIT" type="DATE"/> + </createTable> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignCostCategory.xml b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignCostCategory.xml index cce303ee3c6e5cd61f3707199c572e452cb9ab84..28cca9e5dbfbce3ab43bd8988a7d15ccec7ffff7 100644 --- a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignCostCategory.xml +++ b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignCostCategory.xml @@ -1,32 +1,32 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="j.hoermann" id="17b2f361-6d08-4cd7-80da-53ebf84d06fe"> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="62cb479d-70b2-4cb4-91f5-5d1352f2131b"/> - <column name="KEYID" value="74aabda2-fb1f-4ed3-adcc-9509c533b52c"/> - <column name="TITLE" value="Printing costs"/> - <column name="CONTAINER" value="CampaignManagementCostCategory"/> - <column name="SORTING" valueNumeric="1"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="0"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="73b34a7c-5921-461c-8cf5-17e3aba01bd0"/> - <column name="KEYID" value="3c28d838-8bca-4b2d-82af-335f8a48984f"/> - <column name="TITLE" value="Shipping costs"/> - <column name="CONTAINER" value="CampaignManagementCostCategory"/> - <column name="SORTING" valueNumeric="2"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="0"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="7ef45db6-9151-45da-adb9-8e7759390ecd"/> - <column name="KEYID" value="94e04ba5-3cd4-42c2-85d7-6488dba75cf2"/> - <column name="TITLE" value="Layout costs"/> - <column name="CONTAINER" value="CampaignManagementCostCategory"/> - <column name="SORTING" valueNumeric="3"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="0"/> - </insert> - </changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="j.hoermann" id="17b2f361-6d08-4cd7-80da-53ebf84d06fe"> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="62cb479d-70b2-4cb4-91f5-5d1352f2131b"/> + <column name="KEYID" value="74aabda2-fb1f-4ed3-adcc-9509c533b52c"/> + <column name="TITLE" value="Printing costs"/> + <column name="CONTAINER" value="CampaignManagementCostCategory"/> + <column name="SORTING" valueNumeric="1"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="73b34a7c-5921-461c-8cf5-17e3aba01bd0"/> + <column name="KEYID" value="3c28d838-8bca-4b2d-82af-335f8a48984f"/> + <column name="TITLE" value="Shipping costs"/> + <column name="CONTAINER" value="CampaignManagementCostCategory"/> + <column name="SORTING" valueNumeric="2"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="7ef45db6-9151-45da-adb9-8e7759390ecd"/> + <column name="KEYID" value="94e04ba5-3cd4-42c2-85d7-6488dba75cf2"/> + <column name="TITLE" value="Layout costs"/> + <column name="CONTAINER" value="CampaignManagementCostCategory"/> + <column name="SORTING" valueNumeric="3"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignParticipant.xml b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignParticipant.xml index 2977ad8355fe6e72bc0571a4ef8e89bac7e131fe..0791722ec5de9f9b0b0d953549685f48b3be6d75 100644 --- a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignParticipant.xml +++ b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignParticipant.xml @@ -1,27 +1,27 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="d.lechner" id="campaign_003"> - <createTable tableName="CAMPAIGNPARTICIPANT"> - <column name="CAMPAIGNPARTICIPANTID" type="CHAR(36)"> - <constraints primaryKey="true" primaryKeyName="PK_CAMPAIGNPARTICIPANT_CAMPAIGNPARTICIPANTID"/> - </column> - <column name="CONTACT_ID" type="CHAR(36)"> - <constraints nullable="false"/> - </column> - <column name="CAMPAIGN_ID" type="CHAR(36)"> - <constraints nullable="false"/> - </column> - <column name="CAMPAIGNSTEP_ID" type="CHAR(36)"> - <constraints nullable="false"/> - </column> - <column name="USER_NEW" type="NVARCHAR(50)"> - <constraints nullable="false"/> - </column> - <column name="DATE_NEW" type="DATE"> - <constraints nullable="false"/> - </column> - <column name="USER_EDIT" type="NVARCHAR(50)" /> - <column name="DATE_EDIT" type="DATE" /> - </createTable> - </changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="d.lechner" id="campaign_003"> + <createTable tableName="CAMPAIGNPARTICIPANT"> + <column name="CAMPAIGNPARTICIPANTID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_CAMPAIGNPARTICIPANT_CAMPAIGNPARTICIPANTID"/> + </column> + <column name="CONTACT_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="CAMPAIGN_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="CAMPAIGNSTEP_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="USER_NEW" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="DATE_NEW" type="DATE"> + <constraints nullable="false"/> + </column> + <column name="USER_EDIT" type="NVARCHAR(50)" /> + <column name="DATE_EDIT" type="DATE" /> + </createTable> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignState.xml b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignState.xml index ead502807aa3d421af1242ce059178ce8c2085ac..c77eb356177ae5660a7d6451bc1c88f9f5370eb5 100644 --- a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignState.xml +++ b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignState.xml @@ -1,35 +1,35 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="d.buechler" id="a3212838-7473-4e9d-bbf4-49dec0c1c399"> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="8d95cad1-3ab2-4b6c-9b38-064cb914216d"/> - - <column name="KEYID" value="e04c9c59-0590-463c-a10e-e25c583e9cf2"/> - <column name="TITLE" value="In planning"/> - <column name="CONTAINER" value="CampaignManagementStates"/> - <column name="SORTING" valueNumeric="1"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="3e5036a1-43a1-4bb1-ad56-ed42df7c9538"/> - - <column name="KEYID" value="42e1ee2b-0108-4ccf-ab43-29cbcb0377bf"/> - <column name="TITLE" value="Approved"/> - <column name="CONTAINER" value="CampaignManagementStates"/> - <column name="SORTING" valueNumeric="2"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="0"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="0759da45-5a5b-4163-a3a1-6a19f5a196c5"/> - - <column name="KEYID" value="db1f6e61-07ed-4185-abdb-f9103e5ee3e6"/> - <column name="TITLE" value="Completed"/> - <column name="CONTAINER" value="CampaignManagementStates"/> - <column name="SORTING" valueNumeric="3"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="0"/> - </insert> - </changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="d.buechler" id="a3212838-7473-4e9d-bbf4-49dec0c1c399"> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="8d95cad1-3ab2-4b6c-9b38-064cb914216d"/> + + <column name="KEYID" value="e04c9c59-0590-463c-a10e-e25c583e9cf2"/> + <column name="TITLE" value="In planning"/> + <column name="CONTAINER" value="CampaignManagementStates"/> + <column name="SORTING" valueNumeric="1"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="3e5036a1-43a1-4bb1-ad56-ed42df7c9538"/> + + <column name="KEYID" value="42e1ee2b-0108-4ccf-ab43-29cbcb0377bf"/> + <column name="TITLE" value="Approved"/> + <column name="CONTAINER" value="CampaignManagementStates"/> + <column name="SORTING" valueNumeric="2"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="0759da45-5a5b-4163-a3a1-6a19f5a196c5"/> + + <column name="KEYID" value="db1f6e61-07ed-4185-abdb-f9103e5ee3e6"/> + <column name="TITLE" value="Completed"/> + <column name="CONTAINER" value="CampaignManagementStates"/> + <column name="SORTING" valueNumeric="3"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignStep.xml b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignStep.xml index 377cb13f6c1cf81663d3d3da7ebbd6a9ffb99b24..d369bbae006a25708df647a01ea76b03c2f33866 100644 --- a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignStep.xml +++ b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignStep.xml @@ -1,43 +1,43 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="d.lechner" id="campaign_002"> - <createTable tableName="CAMPAIGNSTEP"> - <column name="CAMPAIGNSTEPID" type="CHAR(36)"> - <constraints primaryKey="true" primaryKeyName="PK_CAMPAIGNSTEP_CAMPAIGNSTEPID"/> - </column> - <column name="CAMPAIGN_ID" type="CHAR(36)"> - <constraints nullable="false"/> - </column> - <column name="EMPLOYEE_CONTACT_ID" type="CHAR(36)"> - <constraints nullable="false"/> - </column> - <column name="NAME" type="NVARCHAR(50)"> - <constraints nullable="false"/> - </column> - <column name="DESCRIPTION" type="NVARCHAR(500)" /> - <column name="DATE_START" type="DATE"> - <constraints nullable="false"/> - </column> - <column name="DATE_END" type="DATE"> - <constraints nullable="false"/> - </column> - <column name="STATE" type="CHAR(36)"> - <constraints nullable="false"/> - </column> - <column name="SORTING" type="INTEGER"> - <constraints nullable="false"/> - </column> - <column name="MAXPARTICIPANTS" type="INTEGER"> - <constraints nullable="false"/> - </column> - <column name="USER_NEW" type="NVARCHAR(50)"> - <constraints nullable="false"/> - </column> - <column name="DATE_NEW" type="DATE"> - <constraints nullable="false"/> - </column> - <column name="USER_EDIT" type="NVARCHAR(50)" /> - <column name="DATE_EDIT" type="DATE" /> - </createTable> - </changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="d.lechner" id="campaign_002"> + <createTable tableName="CAMPAIGNSTEP"> + <column name="CAMPAIGNSTEPID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_CAMPAIGNSTEP_CAMPAIGNSTEPID"/> + </column> + <column name="CAMPAIGN_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="EMPLOYEE_CONTACT_ID" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="NAME" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="DESCRIPTION" type="NVARCHAR(500)" /> + <column name="DATE_START" type="DATE"> + <constraints nullable="false"/> + </column> + <column name="DATE_END" type="DATE"> + <constraints nullable="false"/> + </column> + <column name="STATE" type="CHAR(36)"> + <constraints nullable="false"/> + </column> + <column name="SORTING" type="INTEGER"> + <constraints nullable="false"/> + </column> + <column name="MAXPARTICIPANTS" type="INTEGER"> + <constraints nullable="false"/> + </column> + <column name="USER_NEW" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="DATE_NEW" type="DATE"> + <constraints nullable="false"/> + </column> + <column name="USER_EDIT" type="NVARCHAR(50)" /> + <column name="DATE_EDIT" type="DATE" /> + </createTable> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignStepState.xml b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignStepState.xml index c7560f94c6359a13bcad0a3982955f6a4a49cc2f..78ff4ed6d4cc4d3b88119707ede96b06c66982ce 100644 --- a/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignStepState.xml +++ b/.liquibase/Data_alias/basic/2019.2/CampaignManagement/create_campaignStepState.xml @@ -1,35 +1,35 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="d.buechler" id="d5e7a9a5-d4a9-4425-a930-39ea2574ca47"> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="0dc9b27b-56d8-4650-92ee-bf85a3c67cb3"/> - - <column name="KEYID" value="bbf69673-2ec6-46f8-b231-684a31be9fbd"/> - <column name="TITLE" value="Open"/> - <column name="CONTAINER" value="CampaignManagementStepStates"/> - <column name="SORTING" valueNumeric="1"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="b1f5ea38-1b8c-47a8-a8ad-4c6ed9c26cda"/> - - <column name="KEYID" value="1df0f89b-836d-4242-99cb-334764a7abac"/> - <column name="TITLE" value="Active"/> - <column name="CONTAINER" value="CampaignManagementStepStates"/> - <column name="SORTING" valueNumeric="2"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="0"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="98f4cab1-74b8-4a23-a99a-c3624711beab"/> - - <column name="KEYID" value="2b9904ad-41d0-411c-8c3a-6f31d8e742b3"/> - <column name="TITLE" value="Completed"/> - <column name="CONTAINER" value="CampaignManagementStepStates"/> - <column name="SORTING" valueNumeric="3"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="0"/> - </insert> - </changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="d.buechler" id="d5e7a9a5-d4a9-4425-a930-39ea2574ca47"> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="0dc9b27b-56d8-4650-92ee-bf85a3c67cb3"/> + + <column name="KEYID" value="bbf69673-2ec6-46f8-b231-684a31be9fbd"/> + <column name="TITLE" value="Open"/> + <column name="CONTAINER" value="CampaignManagementStepStates"/> + <column name="SORTING" valueNumeric="1"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="b1f5ea38-1b8c-47a8-a8ad-4c6ed9c26cda"/> + + <column name="KEYID" value="1df0f89b-836d-4242-99cb-334764a7abac"/> + <column name="TITLE" value="Active"/> + <column name="CONTAINER" value="CampaignManagementStepStates"/> + <column name="SORTING" valueNumeric="2"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="98f4cab1-74b8-4a23-a99a-c3624711beab"/> + + <column name="KEYID" value="2b9904ad-41d0-411c-8c3a-6f31d8e742b3"/> + <column name="TITLE" value="Completed"/> + <column name="CONTAINER" value="CampaignManagementStepStates"/> + <column name="SORTING" valueNumeric="3"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/alter_activityLink.xml b/.liquibase/Data_alias/basic/2019.2/alter_activityLink.xml index 108c30fec50d07609f1fc73f106092a0724349ff..b0e1d2c3191060d2ccf070b8b5cc2fbc0d8b0cc0 100644 --- a/.liquibase/Data_alias/basic/2019.2/alter_activityLink.xml +++ b/.liquibase/Data_alias/basic/2019.2/alter_activityLink.xml @@ -1,21 +1,21 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet dbms="derby" author="j.hoermann" id="4e0bce38-7470-4289-a656-2f2e34cefd9c"> - <sql> - ALTER TABLE ACTIVITYLINK ADD COLUMN ACTIVITY_ID_NEW CHAR(36); - UPDATE ACTIVITYLINK SET ACTIVITY_ID_NEW=ACTIVITY_ID; - ALTER TABLE ACTIVITYLINK DROP COLUMN ACTIVITY_ID; - RENAME COLUMN ACTIVITYLINK.ACTIVITY_ID_NEW TO ACTIVITY_ID; - </sql> - </changeSet> - - <changeSet author="j.hoermann" id="9a86323f-a299-42a5-937a-f5e37d0db507"> - <preConditions onFail="CONTINUE"> - <not> - <dbms type="derby" /> - </not> - </preConditions> - - <modifyDataType tableName="ACTIVITYLINK" columnName="ACTIVITY_ID" newDataType="CHAR(36)"/> - </changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet dbms="derby" author="j.hoermann" id="4e0bce38-7470-4289-a656-2f2e34cefd9c"> + <sql> + ALTER TABLE ACTIVITYLINK ADD COLUMN ACTIVITY_ID_NEW CHAR(36); + UPDATE ACTIVITYLINK SET ACTIVITY_ID_NEW=ACTIVITY_ID; + ALTER TABLE ACTIVITYLINK DROP COLUMN ACTIVITY_ID; + RENAME COLUMN ACTIVITYLINK.ACTIVITY_ID_NEW TO ACTIVITY_ID; + </sql> + </changeSet> + + <changeSet author="j.hoermann" id="9a86323f-a299-42a5-937a-f5e37d0db507"> + <preConditions onFail="CONTINUE"> + <not> + <dbms type="derby" /> + </not> + </preConditions> + + <modifyDataType tableName="ACTIVITYLINK" columnName="ACTIVITY_ID" newDataType="CHAR(36)"/> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic.xml b/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic.xml index 6eee124a8c12c2870b013401622c68324bc8f065..c45bb52274659455a005bcf58bfdb79e07db4ed4 100644 --- a/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic.xml +++ b/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic.xml @@ -1,27 +1,27 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet dbms="derby" author="j.hoermann" id="be098ba0-30ed-4e01-893e-928b1ac86923"> - <sql> - ALTER TABLE SALESPROJECT_MILESTONE ADD COLUMN TYPE_NEW VARCHAR(80); - UPDATE SALESPROJECT_MILESTONE SET TYPE_NEW=CHAR(TYPE); - ALTER TABLE SALESPROJECT_MILESTONE DROP COLUMN TYPE; - RENAME COLUMN SALESPROJECT_MILESTONE.TYPE_NEW TO TYPE; - - ALTER TABLE SALESPROJECT_MILESTONE ADD COLUMN VALUE_NEW CHAR(36); - UPDATE SALESPROJECT_MILESTONE SET VALUE_NEW=CHAR(VALUE); - ALTER TABLE SALESPROJECT_MILESTONE DROP COLUMN VALUE; - RENAME COLUMN SALESPROJECT_MILESTONE.VALUE_NEW TO VALUE; - </sql> - </changeSet> - - <changeSet author="j.hoermann" id="f5074961-4aa0-4cd8-8541-7381ddfb0b71"> - <preConditions onFail="CONTINUE"> - <not> - <dbms type="derby" /> - </not> - </preConditions> - - <modifyDataType tableName="SALESPROJECT_MILESTONE" columnName="TYPE" newDataType="NVARCHAR(80)"/> - <modifyDataType tableName="SALESPROJECT_MILESTONE" columnName="VALUE" newDataType="CHAR(36)"/> - </changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet dbms="derby" author="j.hoermann" id="be098ba0-30ed-4e01-893e-928b1ac86923"> + <sql> + ALTER TABLE SALESPROJECT_MILESTONE ADD COLUMN TYPE_NEW VARCHAR(80); + UPDATE SALESPROJECT_MILESTONE SET TYPE_NEW=CHAR(TYPE); + ALTER TABLE SALESPROJECT_MILESTONE DROP COLUMN TYPE; + RENAME COLUMN SALESPROJECT_MILESTONE.TYPE_NEW TO TYPE; + + ALTER TABLE SALESPROJECT_MILESTONE ADD COLUMN VALUE_NEW CHAR(36); + UPDATE SALESPROJECT_MILESTONE SET VALUE_NEW=CHAR(VALUE); + ALTER TABLE SALESPROJECT_MILESTONE DROP COLUMN VALUE; + RENAME COLUMN SALESPROJECT_MILESTONE.VALUE_NEW TO VALUE; + </sql> + </changeSet> + + <changeSet author="j.hoermann" id="f5074961-4aa0-4cd8-8541-7381ddfb0b71"> + <preConditions onFail="CONTINUE"> + <not> + <dbms type="derby" /> + </not> + </preConditions> + + <modifyDataType tableName="SALESPROJECT_MILESTONE" columnName="TYPE" newDataType="NVARCHAR(80)"/> + <modifyDataType tableName="SALESPROJECT_MILESTONE" columnName="VALUE" newDataType="CHAR(36)"/> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/create_documenttemplate.xml b/.liquibase/Data_alias/basic/2019.2/create_documenttemplate.xml index 385f93d9d62f07219383c3178aed1b3af13b173c..87cefabb018c62e79c2504845fbec7e3f09b4127 100644 --- a/.liquibase/Data_alias/basic/2019.2/create_documenttemplate.xml +++ b/.liquibase/Data_alias/basic/2019.2/create_documenttemplate.xml @@ -1,23 +1,23 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="d.lechner" id="documenttemplate-1"> - <createTable tableName="DOCUMENTTEMPLATE"> - <column name="DOCUMENTTEMPLATEID" type="CHAR(36)"> - <constraints primaryKey="true" primaryKeyName="PK_DOCUMENTTEMPLATE_DOCUMENTTEMPLATEID"/> - </column> - <column name="NAME" type="NVARCHAR(50)"/> - <column name="TYPE" type="CHAR(36)"/> - <column name="CLASSIFICATION" type="CHAR(36)"/> - <column name="LANGUAGE" type="CHAR(3)"/> - <column name="DESCRIPTION" type="NVARCHAR(500)"/> - <column name="USER_NEW" type="NVARCHAR(50)"> - <constraints nullable="false"/> - </column> - <column name="DATE_NEW" type="DATE"> - <constraints nullable="false"/> - </column> - <column name="USER_EDIT" type="NVARCHAR(50)" /> - <column name="DATE_EDIT" type="DATE" /> - </createTable> - </changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="d.lechner" id="documenttemplate-1"> + <createTable tableName="DOCUMENTTEMPLATE"> + <column name="DOCUMENTTEMPLATEID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_DOCUMENTTEMPLATE_DOCUMENTTEMPLATEID"/> + </column> + <column name="NAME" type="NVARCHAR(50)"/> + <column name="TYPE" type="CHAR(36)"/> + <column name="CLASSIFICATION" type="CHAR(36)"/> + <column name="LANGUAGE" type="CHAR(3)"/> + <column name="DESCRIPTION" type="NVARCHAR(500)"/> + <column name="USER_NEW" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="DATE_NEW" type="DATE"> + <constraints nullable="false"/> + </column> + <column name="USER_EDIT" type="NVARCHAR(50)" /> + <column name="DATE_EDIT" type="DATE" /> + </createTable> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/create_documenttemplatelink.xml b/.liquibase/Data_alias/basic/2019.2/create_documenttemplatelink.xml index 56241ea4fef88b46608e36d9889a8a47e9e5245c..963bc35f7d01c2c643f7f621ea234a8f53395779 100644 --- a/.liquibase/Data_alias/basic/2019.2/create_documenttemplatelink.xml +++ b/.liquibase/Data_alias/basic/2019.2/create_documenttemplatelink.xml @@ -1,20 +1,20 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="d.lechner" id="documenttemplate-2"> - <createTable tableName="DOCUMENTTEMPLATELINK"> - <column name="DOCUMENTTEMPLATELINKID" type="CHAR(36)"> - <constraints primaryKey="true" primaryKeyName="PK_DOCUMENTTEMPLATELINK_DOCUMENTTEMPLATELINKID"/> - </column> - <column name="DOCUMENTTEMPLATE_ID_PARENT" type="CHAR(36)"/> - <column name="DOCUMENTTEMPLATE_ID_CHILD" type="CHAR(36)"/> - <column name="USER_NEW" type="NVARCHAR(50)"> - <constraints nullable="false"/> - </column> - <column name="DATE_NEW" type="DATE"> - <constraints nullable="false"/> - </column> - <column name="USER_EDIT" type="NVARCHAR(50)" /> - <column name="DATE_EDIT" type="DATE" /> - </createTable> - </changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="d.lechner" id="documenttemplate-2"> + <createTable tableName="DOCUMENTTEMPLATELINK"> + <column name="DOCUMENTTEMPLATELINKID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_DOCUMENTTEMPLATELINK_DOCUMENTTEMPLATELINKID"/> + </column> + <column name="DOCUMENTTEMPLATE_ID_PARENT" type="CHAR(36)"/> + <column name="DOCUMENTTEMPLATE_ID_CHILD" type="CHAR(36)"/> + <column name="USER_NEW" type="NVARCHAR(50)"> + <constraints nullable="false"/> + </column> + <column name="DATE_NEW" type="DATE"> + <constraints nullable="false"/> + </column> + <column name="USER_EDIT" type="NVARCHAR(50)" /> + <column name="DATE_EDIT" type="DATE" /> + </createTable> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/data/AditoBasic/ObjectRelation_exampleData.xml b/.liquibase/Data_alias/basic/2019.2/data/AditoBasic/ObjectRelation_exampleData.xml index e9a0ce04943fdc463a68127bbe377aa382e64091..119a03f02d421382170717bc0448e28716caf32b 100644 --- a/.liquibase/Data_alias/basic/2019.2/data/AditoBasic/ObjectRelation_exampleData.xml +++ b/.liquibase/Data_alias/basic/2019.2/data/AditoBasic/ObjectRelation_exampleData.xml @@ -1,35 +1,35 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="j.hoermann" id="44c06ef1-d9b7-4c5a-a3ee-276ed84caca3"> - <delete tableName="AB_OBJECTRELATION"/> - - <insert tableName="AB_OBJECTRELATION"> - <column name="AB_OBJECTRELATIONID" value="1a67eaa7-21da-4a18-97ab-755ac5cb74f7"/> - <column name="OBJECT1_ROWID" value="ef345d11-a40d-59e0-a24c-afcb6095d2cb"/> - <column name="OBJECT2_ROWID" value="f0fb7676-8183-4bc7-beca-ca32c1e11c10"/> - <column name="AB_OBJECTRELATIONTYPE1" value="c74ad02c-1db9-4f47-8691-aba349dbe316"/> - <column name="AB_OBJECTRELATIONTYPE2" value="b3b85332-1c86-4cd8-a3b9-34c49c51f01a"/> - </insert> - <insert tableName="AB_OBJECTRELATION"> - <column name="AB_OBJECTRELATIONID" value="85ad4578-dce2-49df-a844-d162f1bd9f2f"/> - <column name="OBJECT1_ROWID" value="73d731a2-e7f5-11e8-9f32-f2801f1b9fd1"/> - <column name="OBJECT2_ROWID" value="ef345d11-a40d-59e0-a24c-afcb6095d2cb"/> - <column name="AB_OBJECTRELATIONTYPE1" value="090f6adc-c2b8-44b7-8c61-39dbb5660aa0"/> - <column name="AB_OBJECTRELATIONTYPE2" value="090f6adc-c2b8-44b7-8c61-39dbb5660aa0"/> - </insert> - <insert tableName="AB_OBJECTRELATION"> - <column name="AB_OBJECTRELATIONID" value="5c545235-231f-4082-9e74-4ec4512eb98d"/> - <column name="OBJECT1_ROWID" value="ef345d11-a40d-59e0-a24c-afcb6095d2cb"/> - <column name="OBJECT2_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/> - <column name="AB_OBJECTRELATIONTYPE1" value="9d4739ba-33b0-4e87-b281-561e2cbdd277"/> - <column name="AB_OBJECTRELATIONTYPE2" value="e397b595-38ae-4365-908e-75ee388838eb"/> - </insert> - <insert tableName="AB_OBJECTRELATION"> - <column name="AB_OBJECTRELATIONID" value="4c9bc7f3-c13b-4e55-9c23-012ba40196c9"/> - <column name="OBJECT1_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/> - <column name="OBJECT2_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/> - <column name="AB_OBJECTRELATIONTYPE1" value="3cee0474-504f-43cc-844a-715f1a0db271"/> - <column name="AB_OBJECTRELATIONTYPE2" value="fa879afd-b2c5-4eee-9799-d63c6764b348"/> - </insert> - </changeSet> -</databaseChangeLog> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="j.hoermann" id="44c06ef1-d9b7-4c5a-a3ee-276ed84caca3"> + <delete tableName="AB_OBJECTRELATION"/> + + <insert tableName="AB_OBJECTRELATION"> + <column name="AB_OBJECTRELATIONID" value="1a67eaa7-21da-4a18-97ab-755ac5cb74f7"/> + <column name="OBJECT1_ROWID" value="ef345d11-a40d-59e0-a24c-afcb6095d2cb"/> + <column name="OBJECT2_ROWID" value="f0fb7676-8183-4bc7-beca-ca32c1e11c10"/> + <column name="AB_OBJECTRELATIONTYPE1" value="c74ad02c-1db9-4f47-8691-aba349dbe316"/> + <column name="AB_OBJECTRELATIONTYPE2" value="b3b85332-1c86-4cd8-a3b9-34c49c51f01a"/> + </insert> + <insert tableName="AB_OBJECTRELATION"> + <column name="AB_OBJECTRELATIONID" value="85ad4578-dce2-49df-a844-d162f1bd9f2f"/> + <column name="OBJECT1_ROWID" value="73d731a2-e7f5-11e8-9f32-f2801f1b9fd1"/> + <column name="OBJECT2_ROWID" value="ef345d11-a40d-59e0-a24c-afcb6095d2cb"/> + <column name="AB_OBJECTRELATIONTYPE1" value="090f6adc-c2b8-44b7-8c61-39dbb5660aa0"/> + <column name="AB_OBJECTRELATIONTYPE2" value="090f6adc-c2b8-44b7-8c61-39dbb5660aa0"/> + </insert> + <insert tableName="AB_OBJECTRELATION"> + <column name="AB_OBJECTRELATIONID" value="5c545235-231f-4082-9e74-4ec4512eb98d"/> + <column name="OBJECT1_ROWID" value="ef345d11-a40d-59e0-a24c-afcb6095d2cb"/> + <column name="OBJECT2_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/> + <column name="AB_OBJECTRELATIONTYPE1" value="9d4739ba-33b0-4e87-b281-561e2cbdd277"/> + <column name="AB_OBJECTRELATIONTYPE2" value="e397b595-38ae-4365-908e-75ee388838eb"/> + </insert> + <insert tableName="AB_OBJECTRELATION"> + <column name="AB_OBJECTRELATIONID" value="4c9bc7f3-c13b-4e55-9c23-012ba40196c9"/> + <column name="OBJECT1_ROWID" value="e6da1393-f46b-41a4-826b-2c7d22de2246"/> + <column name="OBJECT2_ROWID" value="b219b58a-f120-42d8-9a64-0b176501eac7"/> + <column name="AB_OBJECTRELATIONTYPE1" value="3cee0474-504f-43cc-844a-715f1a0db271"/> + <column name="AB_OBJECTRELATIONTYPE2" value="fa879afd-b2c5-4eee-9799-d63c6764b348"/> + </insert> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2019.2/data/example_attribute/Attribute.xml b/.liquibase/Data_alias/basic/2019.2/data/example_attribute/Attribute.xml index 5a1fbe81945d022fe8c35cee50a418abe92f43d0..b9658b3b597c8f92e82bb7fccf06d7681c6aac22 100644 --- a/.liquibase/Data_alias/basic/2019.2/data/example_attribute/Attribute.xml +++ b/.liquibase/Data_alias/basic/2019.2/data/example_attribute/Attribute.xml @@ -1,2254 +1,2254 @@ -<?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="s.listl" id="f1b149fb-bd9d-44b7-a334-8f6d77261b95"> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Vertrieb"/> - <column name="ATTRIBUTE_PARENT_ID" value=""/> - <column name="ATTRIBUTE_TYPE" value="VOID "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Präsentation"/> - <column name="ATTRIBUTE_PARENT_ID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="bfc5c9d3-274e-49e9-b8ab-8a4c24987026"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Fachanforderung"/> - <column name="ATTRIBUTE_PARENT_ID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="ae04f4ba-0ddb-4188-9ec1-b9ce2d9b11d8"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Vorteile"/> - <column name="ATTRIBUTE_PARENT_ID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="43a913ce-d73c-48a6-aa4b-ad050e1f1b26"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="flexibel"/> - <column name="ATTRIBUTE_PARENT_ID" value="ae04f4ba-0ddb-4188-9ec1-b9ce2d9b11d8"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="96fc2fe2-8424-4ff2-8eb5-0d054e26af9b"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Referenz"/> - <column name="ATTRIBUTE_PARENT_ID" value="ae04f4ba-0ddb-4188-9ec1-b9ce2d9b11d8"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="746bbd1d-344b-487e-adb5-d232aba57c0e"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Technologie"/> - <column name="ATTRIBUTE_PARENT_ID" value="ae04f4ba-0ddb-4188-9ec1-b9ce2d9b11d8"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="40bbf16f-566d-442c-8423-64be0ae40c81"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Defizite"/> - <column name="ATTRIBUTE_PARENT_ID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="b8179c49-8ef0-4d8e-bcb2-762f9d05563b"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Technologie"/> - <column name="ATTRIBUTE_PARENT_ID" value="40bbf16f-566d-442c-8423-64be0ae40c81"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="4c71d1da-9fff-43fc-b6fd-6fc24696c4bf"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Referenz"/> - <column name="ATTRIBUTE_PARENT_ID" value="40bbf16f-566d-442c-8423-64be0ae40c81"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="3587a98c-03e4-4acc-af89-13b26ce4d956"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Nächste Schritte"/> - <column name="ATTRIBUTE_PARENT_ID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="4"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="ddd06ec5-b0f8-4c12-8753-e7333fcf87cf"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="ToDos"/> - <column name="ATTRIBUTE_PARENT_ID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="5"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="4bb88e18-f160-4bf3-b9b2-d1a413dcecf5"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Nachfassen (WV)"/> - <column name="ATTRIBUTE_PARENT_ID" value="ddd06ec5-b0f8-4c12-8753-e7333fcf87cf"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="e144b3f5-3074-4d92-a645-2b7aa601564c"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Sonstiges (WV)"/> - <column name="ATTRIBUTE_PARENT_ID" value="ddd06ec5-b0f8-4c12-8753-e7333fcf87cf"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="90578c72-fd3a-4b09-8116-31a017b6c623"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Pers. Einschätzung"/> - <column name="ATTRIBUTE_PARENT_ID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="6"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="de6702e0-9253-4d7a-ab20-b8efb963ee63"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Wertung"/> - <column name="ATTRIBUTE_PARENT_ID" value="90578c72-fd3a-4b09-8116-31a017b6c623"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="2d66c8b6-cf6e-44b2-b663-488f3f4d6647"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="30"/> - <column name="ATTRIBUTE_PARENT_ID" value="de6702e0-9253-4d7a-ab20-b8efb963ee63"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="620a0903-6fde-4751-aefa-c398d64c13cc"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="60"/> - <column name="ATTRIBUTE_PARENT_ID" value="de6702e0-9253-4d7a-ab20-b8efb963ee63"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="6e162c86-3b07-4817-8570-ef5598b4f455"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="90"/> - <column name="ATTRIBUTE_PARENT_ID" value="de6702e0-9253-4d7a-ab20-b8efb963ee63"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="ee8c2bff-92c9-456a-a665-c7ccc3960f8d"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Begründung"/> - <column name="ATTRIBUTE_PARENT_ID" value="90578c72-fd3a-4b09-8116-31a017b6c623"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="33937757-d170-4c4f-bca7-2a687b0c3a8a"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Teilnehmer"/> - <column name="ATTRIBUTE_PARENT_ID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="7"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="bae6db6b-259a-4f36-9112-4516b7f8cfeb"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="eigene Firma"/> - <column name="ATTRIBUTE_PARENT_ID" value="33937757-d170-4c4f-bca7-2a687b0c3a8a"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="ffeeca2a-2349-40dc-9b0c-4a8b3447d3df"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Interessent"/> - <column name="ATTRIBUTE_PARENT_ID" value="33937757-d170-4c4f-bca7-2a687b0c3a8a"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="10d2cbd3-9c58-4e9d-9259-d556aba6cf6c"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Kunde"/> - <column name="ATTRIBUTE_PARENT_ID" value="33937757-d170-4c4f-bca7-2a687b0c3a8a"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="6537b5ae-9bfd-455e-8b48-183895b9b461"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Berater"/> - <column name="ATTRIBUTE_PARENT_ID" value="33937757-d170-4c4f-bca7-2a687b0c3a8a"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="4"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="f5e7449a-f61e-4022-aa93-6b3916ddbed7"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Partner"/> - <column name="ATTRIBUTE_PARENT_ID" value="33937757-d170-4c4f-bca7-2a687b0c3a8a"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="5"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="f7aad2b0-021e-48dd-8286-a364d0ac9fca"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Akquise"/> - <column name="ATTRIBUTE_PARENT_ID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="61436f5e-b85a-477e-af8b-5369d12ad742"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Projekt geplant?"/> - <column name="ATTRIBUTE_PARENT_ID" value="f7aad2b0-021e-48dd-8286-a364d0ac9fca"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="913457fc-361c-4af6-ab5a-85a0ad8640e5"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Kein Projekt geplant"/> - <column name="ATTRIBUTE_PARENT_ID" value="f7aad2b0-021e-48dd-8286-a364d0ac9fca"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="eaa9aea2-73f3-48f4-909d-81de5e09a75f"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Planung Projekt offen"/> - <column name="ATTRIBUTE_PARENT_ID" value="f7aad2b0-021e-48dd-8286-a364d0ac9fca"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="7a4282b8-8461-4486-9362-bc72ceb7b5df"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Nächster Kontakt?"/> - <column name="ATTRIBUTE_PARENT_ID" value="f7aad2b0-021e-48dd-8286-a364d0ac9fca"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="4"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="0c86b9ad-1635-46b4-8ac7-3d9b00bc2b01"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Erstkontakt"/> - <column name="ATTRIBUTE_PARENT_ID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="14b71577-42d6-40c0-a377-a11df03aa324"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Produktinteresse"/> - <column name="ATTRIBUTE_PARENT_ID" value="0c86b9ad-1635-46b4-8ac7-3d9b00bc2b01"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="d3f2348b-fad2-4e4c-9ff6-cb22b0a0cd93"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Warengruppe A"/> - <column name="ATTRIBUTE_PARENT_ID" value="14b71577-42d6-40c0-a377-a11df03aa324"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="fb01b321-ec75-486b-a0ef-3adfe99a33b2"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Produkt A1"/> - <column name="ATTRIBUTE_PARENT_ID" value="d3f2348b-fad2-4e4c-9ff6-cb22b0a0cd93"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="149c1c4c-3742-46b5-9a31-7afe22965df7"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Produkt A2"/> - <column name="ATTRIBUTE_PARENT_ID" value="d3f2348b-fad2-4e4c-9ff6-cb22b0a0cd93"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="b49852b7-901d-4d6b-b5d8-b20d75678d4b"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Warengruppe B"/> - <column name="ATTRIBUTE_PARENT_ID" value="14b71577-42d6-40c0-a377-a11df03aa324"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="542ca620-3ad0-49cc-acf9-e31f4542f302"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Produkt B1"/> - <column name="ATTRIBUTE_PARENT_ID" value="b49852b7-901d-4d6b-b5d8-b20d75678d4b"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="3eb8a90f-c17b-441e-9aa8-acde31e4544c"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Produkt B2"/> - <column name="ATTRIBUTE_PARENT_ID" value="b49852b7-901d-4d6b-b5d8-b20d75678d4b"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="9d0949b5-7c87-4663-9229-897057e03192"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Allgemein"/> - <column name="ATTRIBUTE_PARENT_ID" value="14b71577-42d6-40c0-a377-a11df03aa324"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="a689a561-d30f-4215-8faa-97b8df3e5b68"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="ToDo"/> - <column name="ATTRIBUTE_PARENT_ID" value="0c86b9ad-1635-46b4-8ac7-3d9b00bc2b01"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="d0d78243-cc6e-4602-b77c-b3e669da2f01"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Informationen senden"/> - <column name="ATTRIBUTE_PARENT_ID" value="a689a561-d30f-4215-8faa-97b8df3e5b68"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="ec874d78-6231-45d6-a4c2-193756587981"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Warengruppe A (WV)"/> - <column name="ATTRIBUTE_PARENT_ID" value="d0d78243-cc6e-4602-b77c-b3e669da2f01"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="6d4dd325-7f30-4098-a391-ebae4f27988e"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Warengruppe B (WV)"/> - <column name="ATTRIBUTE_PARENT_ID" value="d0d78243-cc6e-4602-b77c-b3e669da2f01"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="f8d8d58e-9381-4e44-aeae-284116ca3613"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Nachfassen (WV)"/> - <column name="ATTRIBUTE_PARENT_ID" value="a689a561-d30f-4215-8faa-97b8df3e5b68"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="d0ae40d2-1a7f-45f6-bb0c-20ce6ae7efe2"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Herkunft"/> - <column name="ATTRIBUTE_PARENT_ID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="4"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="956622a7-03b3-42a4-a7ef-f8936d92cff9"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="persönlich"/> - <column name="ATTRIBUTE_PARENT_ID" value="d0ae40d2-1a7f-45f6-bb0c-20ce6ae7efe2"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="f0f0b150-ea60-46e5-ba4f-727c78c993d0"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Referenz-Kunde"/> - <column name="ATTRIBUTE_PARENT_ID" value="d0ae40d2-1a7f-45f6-bb0c-20ce6ae7efe2"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="c5f8b5f7-ddc0-4c88-bebd-be96fd37bb9c"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Website"/> - <column name="ATTRIBUTE_PARENT_ID" value="d0ae40d2-1a7f-45f6-bb0c-20ce6ae7efe2"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="262a8fbe-d6ef-4949-87ce-6202967136d7"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Messe"/> - <column name="ATTRIBUTE_PARENT_ID" value="d0ae40d2-1a7f-45f6-bb0c-20ce6ae7efe2"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="4"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="67edd12f-93cc-45d4-b86a-b59d19936442"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Anruf"/> - <column name="ATTRIBUTE_PARENT_ID" value="d0ae40d2-1a7f-45f6-bb0c-20ce6ae7efe2"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="5"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="78343572-20fa-454d-ab26-0e1ac0dccc9e"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Vertrag"/> - <column name="ATTRIBUTE_PARENT_ID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="5"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="9b2dd256-fe8e-4edd-9f1e-0a841103a41a"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Dienstleistungsvertrag"/> - <column name="ATTRIBUTE_PARENT_ID" value="78343572-20fa-454d-ab26-0e1ac0dccc9e"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="f001e3a8-b888-49a8-89e1-96ecc503e936"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Wartungsvertrag"/> - <column name="ATTRIBUTE_PARENT_ID" value="78343572-20fa-454d-ab26-0e1ac0dccc9e"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="9c64aefe-23c0-4e64-ada5-02db5f4bcb85"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Rahmenvertrag (WV)"/> - <column name="ATTRIBUTE_PARENT_ID" value="78343572-20fa-454d-ab26-0e1ac0dccc9e"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="c31d3ee4-3e08-4a3e-acdb-5f5d236e01de"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Verwahrungsvereinbarung"/> - <column name="ATTRIBUTE_PARENT_ID" value="78343572-20fa-454d-ab26-0e1ac0dccc9e"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="4"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="15810377-58c8-4e22-8dd1-ed341f7baf0a"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Datenschutzvereinbarung"/> - <column name="ATTRIBUTE_PARENT_ID" value="78343572-20fa-454d-ab26-0e1ac0dccc9e"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="5"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="3a0843a4-0d43-4b97-9fe5-4d4049ec79d3"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Abnahmeerklärung"/> - <column name="ATTRIBUTE_PARENT_ID" value="78343572-20fa-454d-ab26-0e1ac0dccc9e"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="6"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="685a771b-86d9-4493-80f1-de65fc613ea3"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Bekannt durch"/> - <column name="ATTRIBUTE_PARENT_ID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="6"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="c2eb5976-39d0-4098-8e1f-1fff0c910faf"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Bestehender Kontakt"/> - <column name="ATTRIBUTE_PARENT_ID" value="685a771b-86d9-4493-80f1-de65fc613ea3"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="fd8cd4b8-a284-4e1d-accd-310b85577c98"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Empfehlung"/> - <column name="ATTRIBUTE_PARENT_ID" value="685a771b-86d9-4493-80f1-de65fc613ea3"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="941a02f8-577f-40a9-8e43-0ea4d695f254"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Printmedien"/> - <column name="ATTRIBUTE_PARENT_ID" value="685a771b-86d9-4493-80f1-de65fc613ea3"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="593bd38f-704a-480a-add3-22e0af9e2460"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Messe"/> - <column name="ATTRIBUTE_PARENT_ID" value="685a771b-86d9-4493-80f1-de65fc613ea3"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="4"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="8a9ee08c-da32-40b0-93a3-3a388158dd3c"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="ToDo"/> - <column name="ATTRIBUTE_PARENT_ID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="7"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="a559f36c-768b-4fc4-b4f2-7dfd25fadb4a"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Rückruf (WV)"/> - <column name="ATTRIBUTE_PARENT_ID" value="8a9ee08c-da32-40b0-93a3-3a388158dd3c"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="5929874c-ab20-4d18-9d75-083e39f8d576"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Unterlagen senden (WV)"/> - <column name="ATTRIBUTE_PARENT_ID" value="8a9ee08c-da32-40b0-93a3-3a388158dd3c"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="0adcd251-d3d1-4bed-a299-39373c098cad"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Angebot erstellen (WV)"/> - <column name="ATTRIBUTE_PARENT_ID" value="8a9ee08c-da32-40b0-93a3-3a388158dd3c"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="786d0154-acec-4281-8ddc-52772d5ea1ea"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Broschüre zukommen lassen (WV)"/> - <column name="ATTRIBUTE_PARENT_ID" value="8a9ee08c-da32-40b0-93a3-3a388158dd3c"/> - <column name="ATTRIBUTE_TYPE" value="VOID"/> - <column name="SORTING" valueNumeric="4"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Abteilungen"/> - <column name="ATTRIBUTE_TYPE" value="GROUP "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="29e6ddbf-77fd-4fb2-ae20-fdad9495dbd5"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Geschäftsleitung"/> - <column name="ATTRIBUTE_PARENT_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> - <column name="ATTRIBUTE_TYPE" value="VOID "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="c9d81109-4406-4205-8b90-e27acf587cf1"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Vertrieb"/> - <column name="ATTRIBUTE_PARENT_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> - <column name="ATTRIBUTE_TYPE" value="VOID "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="dc1427a9-056a-463a-a07f-f08f820fae0e"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Außendienst"/> - <column name="ATTRIBUTE_PARENT_ID" value="c9d81109-4406-4205-8b90-e27acf587cf1"/> - <column name="ATTRIBUTE_TYPE" value="VOID "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="5999ee67-44a4-4ec6-a4c4-6c6d58b8e50a"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Innendienst"/> - <column name="ATTRIBUTE_PARENT_ID" value="c9d81109-4406-4205-8b90-e27acf587cf1"/> - <column name="ATTRIBUTE_TYPE" value="VOID "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="93de7e9f-3ecd-45e7-aafe-020ab5f3ee79"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Marketing"/> - <column name="ATTRIBUTE_PARENT_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> - <column name="ATTRIBUTE_TYPE" value="VOID "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="e47c7fb1-1072-4f03-a275-e4b6331deec1"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="IT/Service"/> - <column name="ATTRIBUTE_PARENT_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> - <column name="ATTRIBUTE_TYPE" value="VOID "/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="c133a157-0109-4d88-8343-71db25b12fc5"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Produktion"/> - <column name="ATTRIBUTE_PARENT_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> - <column name="ATTRIBUTE_TYPE" value="VOID "/> - <column name="SORTING" valueNumeric="4"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="752d7706-ac6e-4b51-a918-4265531794a4"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Mitbewerber"/> - <column name="ATTRIBUTE_TYPE" value="GROUP "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="8af37871-d407-4414-98ad-e64dbaa5794a"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Preispolitik"/> - <column name="ATTRIBUTE_PARENT_ID" value="752d7706-ac6e-4b51-a918-4265531794a4"/> - <column name="ATTRIBUTE_TYPE" value="KEYWORD "/> - <column name="KEYWORD_CONTAINER" value="SalesprojectPricePolitics"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="558419b2-6113-4060-b88d-cc6324754765"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Stärke"/> - <column name="ATTRIBUTE_PARENT_ID" value="752d7706-ac6e-4b51-a918-4265531794a4"/> - <column name="ATTRIBUTE_TYPE" value="KEYWORD "/> - <column name="KEYWORD_CONTAINER" value="SalesprojectStrength"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="71226196-2812-4d70-b90f-c3e2c14fd4d1"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Schwäche"/> - <column name="ATTRIBUTE_PARENT_ID" value="752d7706-ac6e-4b51-a918-4265531794a4"/> - <column name="ATTRIBUTE_TYPE" value="KEYWORD "/> - <column name="KEYWORD_CONTAINER" value="SalesprojectWeakness"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="0644222a-2b3b-4f5e-a85a-d24c32fa0e72"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Interessen"/> - <column name="ATTRIBUTE_TYPE" value="GROUP "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="53266a7c-58ed-47dc-bbe8-9e00b33cb344"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Kulanz"/> - <column name="ATTRIBUTE_PARENT_ID" value="965823ef-fe63-41f8-9b0b-432f17ac31a7"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="0ecd14d9-837c-47fc-9676-afe71f7e5518"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> - <column name="ATTRIBUTE_NAME" value="Schadensart"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="965823ef-fe63-41f8-9b0b-432f17ac31a7"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> - <column name="ATTRIBUTE_NAME" value="Regulierung"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="10dc7354-cb50-4354-8412-2c35b569e3ad"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Technische Merkmale"/> - <column name="ATTRIBUTE_TYPE" value="GROUP "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="e7e05c6e-6108-44bd-824a-c076dfa5ae93"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="B"/> - <column name="ATTRIBUTE_PARENT_ID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="ed4c3079-51b0-4bb5-b228-55de4309d5ab"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="0 gering"/> - <column name="ATTRIBUTE_PARENT_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="6266b41c-fa20-47b9-bd71-5633015d0796"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="gut"/> - <column name="ATTRIBUTE_PARENT_ID" value="dc52ede6-2b79-488c-b7bb-48877bd5d198"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="dc52ede6-2b79-488c-b7bb-48877bd5d198"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Stimmung"/> - <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> - <column name="SORTING" valueNumeric="6"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Risiko"/> - <column name="ATTRIBUTE_PARENT_ID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> - <column name="SORTING" valueNumeric="4"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="54018b5e-0e02-48d1-873c-1c934d2e97ed"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Rennrad"/> - <column name="ATTRIBUTE_PARENT_ID" value="65f0027d-7939-4342-b531-f31f10c3c045"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="292825e8-fa96-4b7b-8dab-71955ae14571"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="A"/> - <column name="ATTRIBUTE_PARENT_ID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="4fcd8bb8-72fd-48d0-9e64-4c80e5177c36"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="NPO"/> - <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="9e9568c5-ad8a-4c1e-a6e6-72c9b4a3acf7"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> - <column name="ATTRIBUTE_INFO" value="Als Attribut ist der Name aus lib_frame z.B. 'ORG' 'PERS' 'OFFER' etc. zu verwenden."/> - <column name="ATTRIBUTE_NAME" value="Doku Vorlagen Verwendung"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="2b6e3225-9447-4706-9313-62c9463d6671"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Handwerk"/> - <column name="ATTRIBUTE_PARENT_ID" value="da8e8568-63e0-41d3-a83f-2d8ae4982ba5"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="be60e4b3-19b1-48a9-ad5c-c7d38698b4a1"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Dumpingpreis Wettbewerb"/> - <column name="ATTRIBUTE_PARENT_ID" value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="6d15f683-389e-4915-9043-c4cfdf188095"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Vollberechnung"/> - <column name="ATTRIBUTE_PARENT_ID" value="965823ef-fe63-41f8-9b0b-432f17ac31a7"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="ab545654-1fce-4993-b763-0ec469781302"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_INFO" value="Konditionen die bei Angebotserstellung übernommen werden"/> - <column name="ATTRIBUTE_NAME" value="Konditionen"/> - <column name="ATTRIBUTE_TYPE" value="GROUP "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="25e97db1-f796-497d-9842-3efcbb5bebf1"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Sonstiges"/> - <column name="ATTRIBUTE_PARENT_ID" value="0644222a-2b3b-4f5e-a85a-d24c32fa0e72"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="a844a395-e857-447d-b8f8-fa850bbceb82"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Produkttyp"/> - <column name="ATTRIBUTE_PARENT_ID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> - <column name="SORTING" valueNumeric="6"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="b1c552a0-eab9-417d-9f12-039d41603f6d"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="mittel"/> - <column name="ATTRIBUTE_PARENT_ID" value="dc52ede6-2b79-488c-b7bb-48877bd5d198"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="9e20d257-e2a7-4ef7-9253-1d8ed971b7b9"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="D"/> - <column name="ATTRIBUTE_PARENT_ID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="1 mittel"/> - <column name="ATTRIBUTE_PARENT_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="32612c75-b32c-4043-88c4-e8237acf8d5c"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="liebt Geselligkeit"/> - <column name="ATTRIBUTE_PARENT_ID" value="25e97db1-f796-497d-9842-3efcbb5bebf1"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="6db07a20-86bc-48da-8b27-b39bdd73b86b"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Projektverschiebung Kunde"/> - <column name="ATTRIBUTE_PARENT_ID" value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="85c9cdd8-f7a6-4210-840e-fab8628f4dbe"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Qualitätsproblem Kunde"/> - <column name="ATTRIBUTE_PARENT_ID" value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="7c39913b-a07c-4332-96ff-7b34b566ff49"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Wein"/> - <column name="ATTRIBUTE_PARENT_ID" value="7621696c-40ce-4cf2-92ec-74bc940e49ec"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="07fc6730-6c83-4996-bfd9-41c18765a10a"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Wechsel Entscheidungsträger"/> - <column name="ATTRIBUTE_PARENT_ID" value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="4"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="26385e16-6b2f-428c-9c28-1bfa9c2ccf6f"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Finanzdienstleistung"/> - <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="65f0027d-7939-4342-b531-f31f10c3c045"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Sport"/> - <column name="ATTRIBUTE_PARENT_ID" value="0644222a-2b3b-4f5e-a85a-d24c32fa0e72"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="7f01bfa6-ce9d-4964-b1e2-3cd5464d076a"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Gerät/Maschine"/> - <column name="ATTRIBUTE_PARENT_ID" value="a844a395-e857-447d-b8f8-fa850bbceb82"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="e857f9ee-fb27-4507-8381-46ba0a181cef"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Jahresurlaub"/> - <column name="ATTRIBUTE_PARENT_ID" value="acaf54c3-9613-4740-aa22-4f6ebd0d6cb0"/> - <column name="ATTRIBUTE_TYPE" value="NUMBER "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="005b2ec8-68f3-4cbe-b9e5-783526e4c288"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Fernreisen"/> - <column name="ATTRIBUTE_PARENT_ID" value="25e97db1-f796-497d-9842-3efcbb5bebf1"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="4dce5406-9a91-4a92-b55e-d1313c18f9c6"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Teilberechnung"/> - <column name="ATTRIBUTE_PARENT_ID" value="965823ef-fe63-41f8-9b0b-432f17ac31a7"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="9cfa5ce3-f1ae-4d18-9a65-0571f5ffb786"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="PERS"/> - <column name="ATTRIBUTE_PARENT_ID" value="9e9568c5-ad8a-4c1e-a6e6-72c9b4a3acf7"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Beurteilung"/> - <column name="ATTRIBUTE_TYPE" value="GROUP "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Branche"/> - <column name="ATTRIBUTE_PARENT_ID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Zielgruppe"/> - <column name="ATTRIBUTE_PARENT_ID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="bb0c6356-33be-4e7c-a409-9ef5145f7aae"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Dienstleistung"/> - <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="17746b46-2702-447a-b749-a92bfdf4bb38"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Kunde"/> - <column name="ATTRIBUTE_PARENT_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="d0a9eb78-6dcf-48e0-ba91-04a3ba104d26"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Interessent"/> - <column name="ATTRIBUTE_PARENT_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="e4a60941-513f-4e75-a787-f00070ecb00a"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Hersteller"/> - <column name="ATTRIBUTE_PARENT_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="1d30d0ab-6103-4972-84c0-fd23eef15ca1"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Wettbewerber"/> - <column name="ATTRIBUTE_PARENT_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Betreuung"/> - <column name="ATTRIBUTE_TYPE" value="GROUP "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="786148de-56b3-497e-88db-2ff5e4dc0bd7"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Kontaktierung"/> - <column name="ATTRIBUTE_TYPE" value="GROUP "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="1d4c071b-237e-4a11-abff-0acaeaf6f8b1"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Signatur"/> - <column name="ATTRIBUTE_TYPE" value="GROUP "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="79ee6a0f-5192-4db3-9b05-156fd18b01b4"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Bier"/> - <column name="ATTRIBUTE_PARENT_ID" value="7621696c-40ce-4cf2-92ec-74bc940e49ec"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="7621696c-40ce-4cf2-92ec-74bc940e49ec"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Genuss"/> - <column name="ATTRIBUTE_PARENT_ID" value="0644222a-2b3b-4f5e-a85a-d24c32fa0e72"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="a3972e57-d081-463a-a33c-5d4d3af6d8f2"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Motorrad"/> - <column name="ATTRIBUTE_PARENT_ID" value="65f0027d-7939-4342-b531-f31f10c3c045"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="4"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="6819c616-a580-4bd6-ba41-9ba1db569dc4"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Drehzahl (rpm)"/> - <column name="ATTRIBUTE_PARENT_ID" value="10dc7354-cb50-4354-8412-2c35b569e3ad"/> - <column name="ATTRIBUTE_TYPE" value="NUMBER "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="4c28a67b-dbc5-4399-bf33-b52e4cf82ffd"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="ORG"/> - <column name="ATTRIBUTE_PARENT_ID" value="9e9568c5-ad8a-4c1e-a6e6-72c9b4a3acf7"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="2318607b-556a-4537-92f0-9870ee9a9201"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Zigarren"/> - <column name="ATTRIBUTE_PARENT_ID" value="7621696c-40ce-4cf2-92ec-74bc940e49ec"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="43321e69-c8aa-4b0e-9c4e-8cde74f5c0fc"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Verschleißteil"/> - <column name="ATTRIBUTE_PARENT_ID" value="a844a395-e857-447d-b8f8-fa850bbceb82"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="9882c4bc-a3d9-43a9-8238-81ef39387869"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Maschinenbau"/> - <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="e73ed929-8631-46de-b28f-eb1423abb808"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Loyalität"/> - <column name="ATTRIBUTE_PARENT_ID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> - <column name="SORTING" valueNumeric="5"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="b93fc811-e0dc-4e50-9ca6-107f43ac4c0c"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> - <column name="ATTRIBUTE_NAME" value="Tabellen Daten"/> - <column name="ATTRIBUTE_PARENT_ID" value="be31d7a5-9a02-4ae0-8265-916d32c1fccb"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="915d566f-acbe-448c-a7b6-11898adc3880"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Liefersperre"/> - <column name="ATTRIBUTE_TYPE" value="BOOLEAN "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="d14f6eea-8760-43bf-ad3a-e7c3e4416392"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Partner"/> - <column name="ATTRIBUTE_PARENT_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="4"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="f310ae37-5ec3-47c6-839b-a92fc8fcd252"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Geburtstagsliste"/> - <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> - <column name="SORTING" valueNumeric="10"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="62b43c0f-9afb-4b57-8b7d-de38d43a9d47"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Nein"/> - <column name="ATTRIBUTE_PARENT_ID" value="f310ae37-5ec3-47c6-839b-a92fc8fcd252"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="ddf607c0-a45b-4255-bf4e-b2d515df4b86"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Ja"/> - <column name="ATTRIBUTE_PARENT_ID" value="f310ae37-5ec3-47c6-839b-a92fc8fcd252"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="fd3963bc-8e60-411a-9911-b97eb73e5cf7"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Projektart"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="3265f271-2e85-42b2-84af-c9e23e8a1e8c"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Intern"/> - <column name="ATTRIBUTE_PARENT_ID" value="fd3963bc-8e60-411a-9911-b97eb73e5cf7"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="615d3850-ef32-4988-9a8d-7b702b489194"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Partner"/> - <column name="ATTRIBUTE_PARENT_ID" value="fd3963bc-8e60-411a-9911-b97eb73e5cf7"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="be3b5fe2-2146-4eab-80a4-3c1cf4d6156a"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Bestandskunde"/> - <column name="ATTRIBUTE_PARENT_ID" value="fd3963bc-8e60-411a-9911-b97eb73e5cf7"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="87204e4b-2db2-4eb4-b216-5e16b227561e"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Interessent"/> - <column name="ATTRIBUTE_PARENT_ID" value="fd3963bc-8e60-411a-9911-b97eb73e5cf7"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="4a9625ed-0cd9-445f-ae13-5bdbfdf3f38c"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Fussball"/> - <column name="ATTRIBUTE_PARENT_ID" value="65f0027d-7939-4342-b531-f31f10c3c045"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="66271d11-a275-4141-8f84-86ab2ed3fedf"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Förderband"/> - <column name="ATTRIBUTE_PARENT_ID" value="10dc7354-cb50-4354-8412-2c35b569e3ad"/> - <column name="ATTRIBUTE_TYPE" value="BOOLEAN "/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="fa0171cf-2e0d-4ff0-bbe7-8ff083a96593"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> - <column name="ATTRIBUTE_NAME" value="weitere Daten"/> - <column name="ATTRIBUTE_PARENT_ID" value="be31d7a5-9a02-4ae0-8265-916d32c1fccb"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="974bbd28-08b3-41a4-bd74-7d9c3c778249"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="kein Risiko"/> - <column name="ATTRIBUTE_PARENT_ID" value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="5"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="9350afa2-7181-4eb4-b731-3699fe71b0f6"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="schlecht"/> - <column name="ATTRIBUTE_PARENT_ID" value="dc52ede6-2b79-488c-b7bb-48877bd5d198"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="d8949d8f-051b-4f5b-ba61-5af49e9499cc"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Ersatzteil"/> - <column name="ATTRIBUTE_PARENT_ID" value="a844a395-e857-447d-b8f8-fa850bbceb82"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="23a4d394-9fae-4205-a811-730d5109c115"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Segeln"/> - <column name="ATTRIBUTE_PARENT_ID" value="65f0027d-7939-4342-b531-f31f10c3c045"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="b78ef891-16a3-4354-bc95-7b70ef5b4e2e"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Werkzeugwechsler"/> - <column name="ATTRIBUTE_PARENT_ID" value="10dc7354-cb50-4354-8412-2c35b569e3ad"/> - <column name="ATTRIBUTE_TYPE" value="BOOLEAN "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="617da3f5-d8bc-45ff-85a1-258621ea2a0b"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Logistik"/> - <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="7"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="1a3c1c77-e57c-4481-a67f-adf7e084ea90"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="IT"/> - <column name="ATTRIBUTE_PARENT_ID" value="da8e8568-63e0-41d3-a83f-2d8ae4982ba5"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="953e3b5e-0ca7-4215-8dee-b0ba28ef1bf9"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Zahlungsproblem Kunde"/> - <column name="ATTRIBUTE_PARENT_ID" value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="2bdb04cb-4cd3-4454-802c-8e2b4a5e2e36"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Behörde"/> - <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="6"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="30be2556-e09b-4169-be32-d4bafeb89a2f"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Tourismus"/> - <column name="ATTRIBUTE_PARENT_ID" value="da8e8568-63e0-41d3-a83f-2d8ae4982ba5"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="acafca42-8ef4-4c21-abe8-1c2ca358a5aa"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Handel"/> - <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="4"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="79378933-9f74-4391-b876-4528b582661f"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Bauwesen"/> - <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="5"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="c85a5ebe-80fe-4176-a92a-35d2200baa07"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="2 gross"/> - <column name="ATTRIBUTE_PARENT_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="7b687991-601c-4d75-b201-00a6cc9c6b93"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Gewicht (kg)"/> - <column name="ATTRIBUTE_PARENT_ID" value="10dc7354-cb50-4354-8412-2c35b569e3ad"/> - <column name="ATTRIBUTE_TYPE" value="NUMBER "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Bonität"/> - <column name="ATTRIBUTE_PARENT_ID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="da8e8568-63e0-41d3-a83f-2d8ae4982ba5"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Beruf"/> - <column name="ATTRIBUTE_PARENT_ID" value="0644222a-2b3b-4f5e-a85a-d24c32fa0e72"/> - <column name="ATTRIBUTE_TYPE" value="COMBO "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="acaf54c3-9613-4740-aa22-4f6ebd0d6cb0"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Personal"/> - <column name="ATTRIBUTE_TYPE" value="GROUP "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="957d61a4-0038-46e0-b5a3-fc2a5d413004"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="C"/> - <column name="ATTRIBUTE_PARENT_ID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="be31d7a5-9a02-4ae0-8265-916d32c1fccb"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> - <column name="ATTRIBUTE_NAME" value="zusätzliche Daten"/> - <column name="ATTRIBUTE_TYPE" value="GROUP "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="4d4ef830-68e6-4228-9e4f-13614d841328"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Wirtschaft"/> - <column name="ATTRIBUTE_PARENT_ID" value="da8e8568-63e0-41d3-a83f-2d8ae4982ba5"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="bb62ae03-be34-4d34-885c-27591c5bf1b4"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Golf"/> - <column name="ATTRIBUTE_PARENT_ID" value="65f0027d-7939-4342-b531-f31f10c3c045"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="0afb463f-6ce4-4dfb-b093-09a8fcd925a3"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Bauteil"/> - <column name="ATTRIBUTE_PARENT_ID" value="a844a395-e857-447d-b8f8-fa850bbceb82"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="bad29370-3c47-4ac7-8d5d-4e86439000ef"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Mitarbeiterkonto"/> - <column name="ATTRIBUTE_TYPE" value="GROUP "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="97c6f6ec-2ed2-4c26-8612-b524e3ef15db"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="DOCUMENT"/> - <column name="ATTRIBUTE_PARENT_ID" value="9e9568c5-ad8a-4c1e-a6e6-72c9b4a3acf7"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="fffbb6b5-05ea-4f76-83c6-cf2cb29ef576"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="unvollständige Lieferung"/> - <column name="ATTRIBUTE_PARENT_ID" value="0ecd14d9-837c-47fc-9676-afe71f7e5518"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="5c188c8c-14b2-4c66-ad48-65b750e05353"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Qualitätsbeanstandung"/> - <column name="ATTRIBUTE_PARENT_ID" value="0ecd14d9-837c-47fc-9676-afe71f7e5518"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="1"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="3600aba4-01d4-4ca3-a3e7-79e0b946a2b1"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="fehlerhafte Lieferung"/> - <column name="ATTRIBUTE_PARENT_ID" value="0ecd14d9-837c-47fc-9676-afe71f7e5518"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="2"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="66b64741-a896-4404-874a-b83b3525fcff"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Transportschaden"/> - <column name="ATTRIBUTE_PARENT_ID" value="0ecd14d9-837c-47fc-9676-afe71f7e5518"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="0"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="c0fb9a3a-89a5-46a4-9b95-f48c9481375e"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="EVENT"/> - <column name="ATTRIBUTE_PARENT_ID" value="9e9568c5-ad8a-4c1e-a6e6-72c9b4a3acf7"/> - <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> - <column name="SORTING" valueNumeric="3"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Zahlungskondition"/> - <column name="ATTRIBUTE_PARENT_ID" value="ab545654-1fce-4993-b763-0ec469781302"/> - <column name="ATTRIBUTE_TYPE" value="KEYWORD "/> - <column name="KEYWORD_CONTAINER" value="PaymentTerm"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="3a6e11fc-b00a-4cf3-975a-a5e8b60fc5cb"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Lieferkondition"/> - <column name="ATTRIBUTE_PARENT_ID" value="ab545654-1fce-4993-b763-0ec469781302"/> - <column name="ATTRIBUTE_TYPE" value="KEYWORD "/> - <column name="KEYWORD_CONTAINER" value="DeliveryTerm"/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Preisliste"/> - <column name="ATTRIBUTE_PARENT_ID" value="ab545654-1fce-4993-b763-0ec469781302"/> - <column name="ATTRIBUTE_TYPE" value="KEYWORD "/> - <column name="KEYWORD_CONTAINER" value="ProductPricelist"/> -</insert> - -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="e7886e41-252e-414c-a169-5d1481d010c8"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> - <column name="ATTRIBUTE_NAME" value="Lieferant"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="44d53f3a-a8cd-4e79-bc09-a6e17d678e7e"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> - <column name="ATTRIBUTE_NAME" value="Rückantwort Kampagne"/> - <column name="ATTRIBUTE_PARENT_ID" value="786148de-56b3-497e-88db-2ff5e4dc0bd7"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="e8999504-5851-4934-a3f1-fb4b513d41e9"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="schreibt für"/> - <column name="ATTRIBUTE_PARENT_ID" value="1d4c071b-237e-4a11-abff-0acaeaf6f8b1"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="33cb83f1-aee2-469e-b57d-666ac6725f61"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> - <column name="ATTRIBUTE_NAME" value="Unterkampagne von"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="093c7337-c134-4be5-a215-dc94804c3511"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> - <column name="ATTRIBUTE_NAME" value="übergeordnete Kampagne von"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="28fd7a4b-72d8-40ff-a893-a9479abcf19e"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Feiertag"/> - <column name="ATTRIBUTE_PARENT_ID" value="bad29370-3c47-4ac7-8d5d-4e86439000ef"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="14847ea6-b6fd-43f6-a819-af2b1e53177e"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> - <column name="ATTRIBUTE_NAME" value="Innendienst"/> - <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="cd90b9e3-e663-4248-b9ed-4e25ed330c58"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> - <column name="ATTRIBUTE_NAME" value="Aussendienst"/> - <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="7abdc3a7-f46b-4021-b695-7fde6b21c6a4"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> - <column name="ATTRIBUTE_NAME" value="Service"/> - <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="2f963668-9e8c-41d7-aee4-6beaf37492e4"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> - <column name="ATTRIBUTE_NAME" value="Besuchsfrequenz"/> - <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="ff84c147-27c7-4698-83ff-0e25b1d33851"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Vorgesetzter von"/> - <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="d637fc6c-9452-4498-8379-ec71d946cbab"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="berichtet an"/> - <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="6bdb658c-94bc-4e68-aefb-a38483ee68b1"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Gebiet"/> - <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="3e5736c4-93ff-4471-96f5-48bb34ab53d2"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Urlaubsgenehmigung durch"/> - <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<insert tableName="AB_ATTRIBUTE"> - <column name="AB_ATTRIBUTEID" value="3f119858-9d69-4903-a572-d286be151f73"/> - <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> - <column name="ATTRIBUTE_NAME" value="Urlaubsprüfung durch"/> - <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> - <column name="ATTRIBUTE_TYPE" value="TEXT "/> -</insert> -<rollback> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="752d7706-ac6e-4b51-a918-4265531794a4"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="8af37871-d407-4414-98ad-e64dbaa5794a"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="558419b2-6113-4060-b88d-cc6324754765"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="71226196-2812-4d70-b90f-c3e2c14fd4d1"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="0644222a-2b3b-4f5e-a85a-d24c32fa0e72"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="53266a7c-58ed-47dc-bbe8-9e00b33cb344"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="0ecd14d9-837c-47fc-9676-afe71f7e5518"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="965823ef-fe63-41f8-9b0b-432f17ac31a7"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="10dc7354-cb50-4354-8412-2c35b569e3ad"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="e7e05c6e-6108-44bd-824a-c076dfa5ae93"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="ed4c3079-51b0-4bb5-b228-55de4309d5ab"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="6266b41c-fa20-47b9-bd71-5633015d0796"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="dc52ede6-2b79-488c-b7bb-48877bd5d198"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="54018b5e-0e02-48d1-873c-1c934d2e97ed"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="292825e8-fa96-4b7b-8dab-71955ae14571"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="4fcd8bb8-72fd-48d0-9e64-4c80e5177c36"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="9e9568c5-ad8a-4c1e-a6e6-72c9b4a3acf7"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="2b6e3225-9447-4706-9313-62c9463d6671"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="be60e4b3-19b1-48a9-ad5c-c7d38698b4a1"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="6d15f683-389e-4915-9043-c4cfdf188095"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="ab545654-1fce-4993-b763-0ec469781302"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="25e97db1-f796-497d-9842-3efcbb5bebf1"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="a844a395-e857-447d-b8f8-fa850bbceb82"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="b1c552a0-eab9-417d-9f12-039d41603f6d"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="9e20d257-e2a7-4ef7-9253-1d8ed971b7b9"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="32612c75-b32c-4043-88c4-e8237acf8d5c"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="6db07a20-86bc-48da-8b27-b39bdd73b86b"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="85c9cdd8-f7a6-4210-840e-fab8628f4dbe"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="7c39913b-a07c-4332-96ff-7b34b566ff49"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="07fc6730-6c83-4996-bfd9-41c18765a10a"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="26385e16-6b2f-428c-9c28-1bfa9c2ccf6f"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="65f0027d-7939-4342-b531-f31f10c3c045"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="7f01bfa6-ce9d-4964-b1e2-3cd5464d076a"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="e857f9ee-fb27-4507-8381-46ba0a181cef"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="005b2ec8-68f3-4cbe-b9e5-783526e4c288"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="4dce5406-9a91-4a92-b55e-d1313c18f9c6"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="9cfa5ce3-f1ae-4d18-9a65-0571f5ffb786"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="e32cd923-3774-41c1-95d5-57b79e52e568"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="bb0c6356-33be-4e7c-a409-9ef5145f7aae"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="17746b46-2702-447a-b749-a92bfdf4bb38"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="d0a9eb78-6dcf-48e0-ba91-04a3ba104d26"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="e4a60941-513f-4e75-a787-f00070ecb00a"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="1d30d0ab-6103-4972-84c0-fd23eef15ca1"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="83e627b7-39da-4519-8023-ed384d3a0a42"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="786148de-56b3-497e-88db-2ff5e4dc0bd7"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="1d4c071b-237e-4a11-abff-0acaeaf6f8b1"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="79ee6a0f-5192-4db3-9b05-156fd18b01b4"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="7621696c-40ce-4cf2-92ec-74bc940e49ec"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="a3972e57-d081-463a-a33c-5d4d3af6d8f2"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="6819c616-a580-4bd6-ba41-9ba1db569dc4"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="4c28a67b-dbc5-4399-bf33-b52e4cf82ffd"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="2318607b-556a-4537-92f0-9870ee9a9201"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="43321e69-c8aa-4b0e-9c4e-8cde74f5c0fc"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="9882c4bc-a3d9-43a9-8238-81ef39387869"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="e73ed929-8631-46de-b28f-eb1423abb808"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="b93fc811-e0dc-4e50-9ca6-107f43ac4c0c"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="915d566f-acbe-448c-a7b6-11898adc3880"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="d14f6eea-8760-43bf-ad3a-e7c3e4416392"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="f310ae37-5ec3-47c6-839b-a92fc8fcd252"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="62b43c0f-9afb-4b57-8b7d-de38d43a9d47"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="ddf607c0-a45b-4255-bf4e-b2d515df4b86"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="fd3963bc-8e60-411a-9911-b97eb73e5cf7"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="3265f271-2e85-42b2-84af-c9e23e8a1e8c"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="615d3850-ef32-4988-9a8d-7b702b489194"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="be3b5fe2-2146-4eab-80a4-3c1cf4d6156a"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="87204e4b-2db2-4eb4-b216-5e16b227561e"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="4a9625ed-0cd9-445f-ae13-5bdbfdf3f38c"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="66271d11-a275-4141-8f84-86ab2ed3fedf"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="fa0171cf-2e0d-4ff0-bbe7-8ff083a96593"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="974bbd28-08b3-41a4-bd74-7d9c3c778249"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="9350afa2-7181-4eb4-b731-3699fe71b0f6"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="d8949d8f-051b-4f5b-ba61-5af49e9499cc"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="23a4d394-9fae-4205-a811-730d5109c115"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="b78ef891-16a3-4354-bc95-7b70ef5b4e2e"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="617da3f5-d8bc-45ff-85a1-258621ea2a0b"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="1a3c1c77-e57c-4481-a67f-adf7e084ea90"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="953e3b5e-0ca7-4215-8dee-b0ba28ef1bf9"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="2bdb04cb-4cd3-4454-802c-8e2b4a5e2e36"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="30be2556-e09b-4169-be32-d4bafeb89a2f"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="acafca42-8ef4-4c21-abe8-1c2ca358a5aa"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="79378933-9f74-4391-b876-4528b582661f"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="c85a5ebe-80fe-4176-a92a-35d2200baa07"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="7b687991-601c-4d75-b201-00a6cc9c6b93"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="f11f65d0-4352-4f81-85d0-bfd034275e34"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="da8e8568-63e0-41d3-a83f-2d8ae4982ba5"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="acaf54c3-9613-4740-aa22-4f6ebd0d6cb0"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="957d61a4-0038-46e0-b5a3-fc2a5d413004"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="be31d7a5-9a02-4ae0-8265-916d32c1fccb"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="4d4ef830-68e6-4228-9e4f-13614d841328"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="bb62ae03-be34-4d34-885c-27591c5bf1b4"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="0afb463f-6ce4-4dfb-b093-09a8fcd925a3"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="bad29370-3c47-4ac7-8d5d-4e86439000ef"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="97c6f6ec-2ed2-4c26-8612-b524e3ef15db"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="fffbb6b5-05ea-4f76-83c6-cf2cb29ef576"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="5c188c8c-14b2-4c66-ad48-65b750e05353"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="3600aba4-01d4-4ca3-a3e7-79e0b946a2b1"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="66b64741-a896-4404-874a-b83b3525fcff"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="c0fb9a3a-89a5-46a4-9b95-f48c9481375e"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="292fae38-6557-466d-8843-3b1b4a1f6599"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="3a6e11fc-b00a-4cf3-975a-a5e8b60fc5cb"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="e7886e41-252e-414c-a169-5d1481d010c8"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="44d53f3a-a8cd-4e79-bc09-a6e17d678e7e"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="e8999504-5851-4934-a3f1-fb4b513d41e9"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="33cb83f1-aee2-469e-b57d-666ac6725f61"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="093c7337-c134-4be5-a215-dc94804c3511"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="28fd7a4b-72d8-40ff-a893-a9479abcf19e"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="14847ea6-b6fd-43f6-a819-af2b1e53177e"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="cd90b9e3-e663-4248-b9ed-4e25ed330c58"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="7abdc3a7-f46b-4021-b695-7fde6b21c6a4"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="2f963668-9e8c-41d7-aee4-6beaf37492e4"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="ff84c147-27c7-4698-83ff-0e25b1d33851"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="d637fc6c-9452-4498-8379-ec71d946cbab"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="6bdb658c-94bc-4e68-aefb-a38483ee68b1"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="3e5736c4-93ff-4471-96f5-48bb34ab53d2"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID = ?</where> - <whereParams> - <param value="3f119858-9d69-4903-a572-d286be151f73"/> - </whereParams> -</delete> -<delete tableName="AB_ATTRIBUTE"> - <where>AB_ATTRIBUTEID in (?, ?, ?, ?, ?, ?, ?, ?)</where> - <whereParams> - <param value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> - <param value="29e6ddbf-77fd-4fb2-ae20-fdad9495dbd5"/> - <param value="c9d81109-4406-4205-8b90-e27acf587cf1"/> - <param value="dc1427a9-056a-463a-a07f-f08f820fae0e"/> - <param value="5999ee67-44a4-4ec6-a4c4-6c6d58b8e50a"/> - <param value="93de7e9f-3ecd-45e7-aafe-020ab5f3ee79"/> - <param value="e47c7fb1-1072-4f03-a275-e4b6331deec1"/> - <param value="c133a157-0109-4d88-8343-71db25b12fc5"/> - </whereParams> -</delete> -</rollback> - </changeSet> -</databaseChangeLog> +<?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="s.listl" id="f1b149fb-bd9d-44b7-a334-8f6d77261b95"> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Vertrieb"/> + <column name="ATTRIBUTE_PARENT_ID" value=""/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Präsentation"/> + <column name="ATTRIBUTE_PARENT_ID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="bfc5c9d3-274e-49e9-b8ab-8a4c24987026"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Fachanforderung"/> + <column name="ATTRIBUTE_PARENT_ID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="ae04f4ba-0ddb-4188-9ec1-b9ce2d9b11d8"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Vorteile"/> + <column name="ATTRIBUTE_PARENT_ID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="43a913ce-d73c-48a6-aa4b-ad050e1f1b26"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="flexibel"/> + <column name="ATTRIBUTE_PARENT_ID" value="ae04f4ba-0ddb-4188-9ec1-b9ce2d9b11d8"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="96fc2fe2-8424-4ff2-8eb5-0d054e26af9b"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Referenz"/> + <column name="ATTRIBUTE_PARENT_ID" value="ae04f4ba-0ddb-4188-9ec1-b9ce2d9b11d8"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="746bbd1d-344b-487e-adb5-d232aba57c0e"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Technologie"/> + <column name="ATTRIBUTE_PARENT_ID" value="ae04f4ba-0ddb-4188-9ec1-b9ce2d9b11d8"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="40bbf16f-566d-442c-8423-64be0ae40c81"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Defizite"/> + <column name="ATTRIBUTE_PARENT_ID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="b8179c49-8ef0-4d8e-bcb2-762f9d05563b"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Technologie"/> + <column name="ATTRIBUTE_PARENT_ID" value="40bbf16f-566d-442c-8423-64be0ae40c81"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="4c71d1da-9fff-43fc-b6fd-6fc24696c4bf"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Referenz"/> + <column name="ATTRIBUTE_PARENT_ID" value="40bbf16f-566d-442c-8423-64be0ae40c81"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="3587a98c-03e4-4acc-af89-13b26ce4d956"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Nächste Schritte"/> + <column name="ATTRIBUTE_PARENT_ID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="4"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="ddd06ec5-b0f8-4c12-8753-e7333fcf87cf"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="ToDos"/> + <column name="ATTRIBUTE_PARENT_ID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="5"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="4bb88e18-f160-4bf3-b9b2-d1a413dcecf5"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Nachfassen (WV)"/> + <column name="ATTRIBUTE_PARENT_ID" value="ddd06ec5-b0f8-4c12-8753-e7333fcf87cf"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="e144b3f5-3074-4d92-a645-2b7aa601564c"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Sonstiges (WV)"/> + <column name="ATTRIBUTE_PARENT_ID" value="ddd06ec5-b0f8-4c12-8753-e7333fcf87cf"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="90578c72-fd3a-4b09-8116-31a017b6c623"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Pers. Einschätzung"/> + <column name="ATTRIBUTE_PARENT_ID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="6"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="de6702e0-9253-4d7a-ab20-b8efb963ee63"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Wertung"/> + <column name="ATTRIBUTE_PARENT_ID" value="90578c72-fd3a-4b09-8116-31a017b6c623"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="2d66c8b6-cf6e-44b2-b663-488f3f4d6647"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="30"/> + <column name="ATTRIBUTE_PARENT_ID" value="de6702e0-9253-4d7a-ab20-b8efb963ee63"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="620a0903-6fde-4751-aefa-c398d64c13cc"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="60"/> + <column name="ATTRIBUTE_PARENT_ID" value="de6702e0-9253-4d7a-ab20-b8efb963ee63"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="6e162c86-3b07-4817-8570-ef5598b4f455"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="90"/> + <column name="ATTRIBUTE_PARENT_ID" value="de6702e0-9253-4d7a-ab20-b8efb963ee63"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="ee8c2bff-92c9-456a-a665-c7ccc3960f8d"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Begründung"/> + <column name="ATTRIBUTE_PARENT_ID" value="90578c72-fd3a-4b09-8116-31a017b6c623"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="33937757-d170-4c4f-bca7-2a687b0c3a8a"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Teilnehmer"/> + <column name="ATTRIBUTE_PARENT_ID" value="b4e372c5-da95-4c16-9d10-3be1c6a9eddd"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="7"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="bae6db6b-259a-4f36-9112-4516b7f8cfeb"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="eigene Firma"/> + <column name="ATTRIBUTE_PARENT_ID" value="33937757-d170-4c4f-bca7-2a687b0c3a8a"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="ffeeca2a-2349-40dc-9b0c-4a8b3447d3df"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Interessent"/> + <column name="ATTRIBUTE_PARENT_ID" value="33937757-d170-4c4f-bca7-2a687b0c3a8a"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="10d2cbd3-9c58-4e9d-9259-d556aba6cf6c"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Kunde"/> + <column name="ATTRIBUTE_PARENT_ID" value="33937757-d170-4c4f-bca7-2a687b0c3a8a"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="6537b5ae-9bfd-455e-8b48-183895b9b461"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Berater"/> + <column name="ATTRIBUTE_PARENT_ID" value="33937757-d170-4c4f-bca7-2a687b0c3a8a"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="4"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="f5e7449a-f61e-4022-aa93-6b3916ddbed7"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Partner"/> + <column name="ATTRIBUTE_PARENT_ID" value="33937757-d170-4c4f-bca7-2a687b0c3a8a"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="5"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="f7aad2b0-021e-48dd-8286-a364d0ac9fca"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Akquise"/> + <column name="ATTRIBUTE_PARENT_ID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="61436f5e-b85a-477e-af8b-5369d12ad742"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Projekt geplant?"/> + <column name="ATTRIBUTE_PARENT_ID" value="f7aad2b0-021e-48dd-8286-a364d0ac9fca"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="913457fc-361c-4af6-ab5a-85a0ad8640e5"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Kein Projekt geplant"/> + <column name="ATTRIBUTE_PARENT_ID" value="f7aad2b0-021e-48dd-8286-a364d0ac9fca"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="eaa9aea2-73f3-48f4-909d-81de5e09a75f"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Planung Projekt offen"/> + <column name="ATTRIBUTE_PARENT_ID" value="f7aad2b0-021e-48dd-8286-a364d0ac9fca"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="7a4282b8-8461-4486-9362-bc72ceb7b5df"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Nächster Kontakt?"/> + <column name="ATTRIBUTE_PARENT_ID" value="f7aad2b0-021e-48dd-8286-a364d0ac9fca"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="4"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="0c86b9ad-1635-46b4-8ac7-3d9b00bc2b01"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Erstkontakt"/> + <column name="ATTRIBUTE_PARENT_ID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="14b71577-42d6-40c0-a377-a11df03aa324"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Produktinteresse"/> + <column name="ATTRIBUTE_PARENT_ID" value="0c86b9ad-1635-46b4-8ac7-3d9b00bc2b01"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="d3f2348b-fad2-4e4c-9ff6-cb22b0a0cd93"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Warengruppe A"/> + <column name="ATTRIBUTE_PARENT_ID" value="14b71577-42d6-40c0-a377-a11df03aa324"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="fb01b321-ec75-486b-a0ef-3adfe99a33b2"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Produkt A1"/> + <column name="ATTRIBUTE_PARENT_ID" value="d3f2348b-fad2-4e4c-9ff6-cb22b0a0cd93"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="149c1c4c-3742-46b5-9a31-7afe22965df7"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Produkt A2"/> + <column name="ATTRIBUTE_PARENT_ID" value="d3f2348b-fad2-4e4c-9ff6-cb22b0a0cd93"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="b49852b7-901d-4d6b-b5d8-b20d75678d4b"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Warengruppe B"/> + <column name="ATTRIBUTE_PARENT_ID" value="14b71577-42d6-40c0-a377-a11df03aa324"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="542ca620-3ad0-49cc-acf9-e31f4542f302"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Produkt B1"/> + <column name="ATTRIBUTE_PARENT_ID" value="b49852b7-901d-4d6b-b5d8-b20d75678d4b"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="3eb8a90f-c17b-441e-9aa8-acde31e4544c"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Produkt B2"/> + <column name="ATTRIBUTE_PARENT_ID" value="b49852b7-901d-4d6b-b5d8-b20d75678d4b"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="9d0949b5-7c87-4663-9229-897057e03192"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Allgemein"/> + <column name="ATTRIBUTE_PARENT_ID" value="14b71577-42d6-40c0-a377-a11df03aa324"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="a689a561-d30f-4215-8faa-97b8df3e5b68"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="ToDo"/> + <column name="ATTRIBUTE_PARENT_ID" value="0c86b9ad-1635-46b4-8ac7-3d9b00bc2b01"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="d0d78243-cc6e-4602-b77c-b3e669da2f01"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Informationen senden"/> + <column name="ATTRIBUTE_PARENT_ID" value="a689a561-d30f-4215-8faa-97b8df3e5b68"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="ec874d78-6231-45d6-a4c2-193756587981"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Warengruppe A (WV)"/> + <column name="ATTRIBUTE_PARENT_ID" value="d0d78243-cc6e-4602-b77c-b3e669da2f01"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="6d4dd325-7f30-4098-a391-ebae4f27988e"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Warengruppe B (WV)"/> + <column name="ATTRIBUTE_PARENT_ID" value="d0d78243-cc6e-4602-b77c-b3e669da2f01"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="f8d8d58e-9381-4e44-aeae-284116ca3613"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Nachfassen (WV)"/> + <column name="ATTRIBUTE_PARENT_ID" value="a689a561-d30f-4215-8faa-97b8df3e5b68"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="d0ae40d2-1a7f-45f6-bb0c-20ce6ae7efe2"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Herkunft"/> + <column name="ATTRIBUTE_PARENT_ID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="4"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="956622a7-03b3-42a4-a7ef-f8936d92cff9"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="persönlich"/> + <column name="ATTRIBUTE_PARENT_ID" value="d0ae40d2-1a7f-45f6-bb0c-20ce6ae7efe2"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="f0f0b150-ea60-46e5-ba4f-727c78c993d0"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Referenz-Kunde"/> + <column name="ATTRIBUTE_PARENT_ID" value="d0ae40d2-1a7f-45f6-bb0c-20ce6ae7efe2"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="c5f8b5f7-ddc0-4c88-bebd-be96fd37bb9c"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Website"/> + <column name="ATTRIBUTE_PARENT_ID" value="d0ae40d2-1a7f-45f6-bb0c-20ce6ae7efe2"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="262a8fbe-d6ef-4949-87ce-6202967136d7"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Messe"/> + <column name="ATTRIBUTE_PARENT_ID" value="d0ae40d2-1a7f-45f6-bb0c-20ce6ae7efe2"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="4"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="67edd12f-93cc-45d4-b86a-b59d19936442"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Anruf"/> + <column name="ATTRIBUTE_PARENT_ID" value="d0ae40d2-1a7f-45f6-bb0c-20ce6ae7efe2"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="5"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="78343572-20fa-454d-ab26-0e1ac0dccc9e"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Vertrag"/> + <column name="ATTRIBUTE_PARENT_ID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="5"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="9b2dd256-fe8e-4edd-9f1e-0a841103a41a"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Dienstleistungsvertrag"/> + <column name="ATTRIBUTE_PARENT_ID" value="78343572-20fa-454d-ab26-0e1ac0dccc9e"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="f001e3a8-b888-49a8-89e1-96ecc503e936"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Wartungsvertrag"/> + <column name="ATTRIBUTE_PARENT_ID" value="78343572-20fa-454d-ab26-0e1ac0dccc9e"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="9c64aefe-23c0-4e64-ada5-02db5f4bcb85"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Rahmenvertrag (WV)"/> + <column name="ATTRIBUTE_PARENT_ID" value="78343572-20fa-454d-ab26-0e1ac0dccc9e"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="c31d3ee4-3e08-4a3e-acdb-5f5d236e01de"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Verwahrungsvereinbarung"/> + <column name="ATTRIBUTE_PARENT_ID" value="78343572-20fa-454d-ab26-0e1ac0dccc9e"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="4"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="15810377-58c8-4e22-8dd1-ed341f7baf0a"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Datenschutzvereinbarung"/> + <column name="ATTRIBUTE_PARENT_ID" value="78343572-20fa-454d-ab26-0e1ac0dccc9e"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="5"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="3a0843a4-0d43-4b97-9fe5-4d4049ec79d3"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Abnahmeerklärung"/> + <column name="ATTRIBUTE_PARENT_ID" value="78343572-20fa-454d-ab26-0e1ac0dccc9e"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="6"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="685a771b-86d9-4493-80f1-de65fc613ea3"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Bekannt durch"/> + <column name="ATTRIBUTE_PARENT_ID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="6"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="c2eb5976-39d0-4098-8e1f-1fff0c910faf"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Bestehender Kontakt"/> + <column name="ATTRIBUTE_PARENT_ID" value="685a771b-86d9-4493-80f1-de65fc613ea3"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="fd8cd4b8-a284-4e1d-accd-310b85577c98"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Empfehlung"/> + <column name="ATTRIBUTE_PARENT_ID" value="685a771b-86d9-4493-80f1-de65fc613ea3"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="941a02f8-577f-40a9-8e43-0ea4d695f254"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Printmedien"/> + <column name="ATTRIBUTE_PARENT_ID" value="685a771b-86d9-4493-80f1-de65fc613ea3"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="593bd38f-704a-480a-add3-22e0af9e2460"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Messe"/> + <column name="ATTRIBUTE_PARENT_ID" value="685a771b-86d9-4493-80f1-de65fc613ea3"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="4"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="8a9ee08c-da32-40b0-93a3-3a388158dd3c"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="ToDo"/> + <column name="ATTRIBUTE_PARENT_ID" value="a6eee141-5ed6-4b87-986f-29e3fdccaf13"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="7"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="a559f36c-768b-4fc4-b4f2-7dfd25fadb4a"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Rückruf (WV)"/> + <column name="ATTRIBUTE_PARENT_ID" value="8a9ee08c-da32-40b0-93a3-3a388158dd3c"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="5929874c-ab20-4d18-9d75-083e39f8d576"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Unterlagen senden (WV)"/> + <column name="ATTRIBUTE_PARENT_ID" value="8a9ee08c-da32-40b0-93a3-3a388158dd3c"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="0adcd251-d3d1-4bed-a299-39373c098cad"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Angebot erstellen (WV)"/> + <column name="ATTRIBUTE_PARENT_ID" value="8a9ee08c-da32-40b0-93a3-3a388158dd3c"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="786d0154-acec-4281-8ddc-52772d5ea1ea"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Broschüre zukommen lassen (WV)"/> + <column name="ATTRIBUTE_PARENT_ID" value="8a9ee08c-da32-40b0-93a3-3a388158dd3c"/> + <column name="ATTRIBUTE_TYPE" value="VOID"/> + <column name="SORTING" valueNumeric="4"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Abteilungen"/> + <column name="ATTRIBUTE_TYPE" value="GROUP "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="29e6ddbf-77fd-4fb2-ae20-fdad9495dbd5"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Geschäftsleitung"/> + <column name="ATTRIBUTE_PARENT_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="c9d81109-4406-4205-8b90-e27acf587cf1"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Vertrieb"/> + <column name="ATTRIBUTE_PARENT_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="dc1427a9-056a-463a-a07f-f08f820fae0e"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Außendienst"/> + <column name="ATTRIBUTE_PARENT_ID" value="c9d81109-4406-4205-8b90-e27acf587cf1"/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="5999ee67-44a4-4ec6-a4c4-6c6d58b8e50a"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Innendienst"/> + <column name="ATTRIBUTE_PARENT_ID" value="c9d81109-4406-4205-8b90-e27acf587cf1"/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="93de7e9f-3ecd-45e7-aafe-020ab5f3ee79"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Marketing"/> + <column name="ATTRIBUTE_PARENT_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="e47c7fb1-1072-4f03-a275-e4b6331deec1"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="IT/Service"/> + <column name="ATTRIBUTE_PARENT_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="c133a157-0109-4d88-8343-71db25b12fc5"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Produktion"/> + <column name="ATTRIBUTE_PARENT_ID" value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> + <column name="ATTRIBUTE_TYPE" value="VOID "/> + <column name="SORTING" valueNumeric="4"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="752d7706-ac6e-4b51-a918-4265531794a4"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Mitbewerber"/> + <column name="ATTRIBUTE_TYPE" value="GROUP "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="8af37871-d407-4414-98ad-e64dbaa5794a"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Preispolitik"/> + <column name="ATTRIBUTE_PARENT_ID" value="752d7706-ac6e-4b51-a918-4265531794a4"/> + <column name="ATTRIBUTE_TYPE" value="KEYWORD "/> + <column name="KEYWORD_CONTAINER" value="SalesprojectPricePolitics"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="558419b2-6113-4060-b88d-cc6324754765"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Stärke"/> + <column name="ATTRIBUTE_PARENT_ID" value="752d7706-ac6e-4b51-a918-4265531794a4"/> + <column name="ATTRIBUTE_TYPE" value="KEYWORD "/> + <column name="KEYWORD_CONTAINER" value="SalesprojectStrength"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="71226196-2812-4d70-b90f-c3e2c14fd4d1"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Schwäche"/> + <column name="ATTRIBUTE_PARENT_ID" value="752d7706-ac6e-4b51-a918-4265531794a4"/> + <column name="ATTRIBUTE_TYPE" value="KEYWORD "/> + <column name="KEYWORD_CONTAINER" value="SalesprojectWeakness"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="0644222a-2b3b-4f5e-a85a-d24c32fa0e72"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Interessen"/> + <column name="ATTRIBUTE_TYPE" value="GROUP "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="53266a7c-58ed-47dc-bbe8-9e00b33cb344"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Kulanz"/> + <column name="ATTRIBUTE_PARENT_ID" value="965823ef-fe63-41f8-9b0b-432f17ac31a7"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="0ecd14d9-837c-47fc-9676-afe71f7e5518"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> + <column name="ATTRIBUTE_NAME" value="Schadensart"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="965823ef-fe63-41f8-9b0b-432f17ac31a7"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> + <column name="ATTRIBUTE_NAME" value="Regulierung"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="10dc7354-cb50-4354-8412-2c35b569e3ad"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Technische Merkmale"/> + <column name="ATTRIBUTE_TYPE" value="GROUP "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="e7e05c6e-6108-44bd-824a-c076dfa5ae93"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="B"/> + <column name="ATTRIBUTE_PARENT_ID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="ed4c3079-51b0-4bb5-b228-55de4309d5ab"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="0 gering"/> + <column name="ATTRIBUTE_PARENT_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="6266b41c-fa20-47b9-bd71-5633015d0796"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="gut"/> + <column name="ATTRIBUTE_PARENT_ID" value="dc52ede6-2b79-488c-b7bb-48877bd5d198"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="dc52ede6-2b79-488c-b7bb-48877bd5d198"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Stimmung"/> + <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> + <column name="SORTING" valueNumeric="6"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Risiko"/> + <column name="ATTRIBUTE_PARENT_ID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> + <column name="SORTING" valueNumeric="4"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="54018b5e-0e02-48d1-873c-1c934d2e97ed"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Rennrad"/> + <column name="ATTRIBUTE_PARENT_ID" value="65f0027d-7939-4342-b531-f31f10c3c045"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="292825e8-fa96-4b7b-8dab-71955ae14571"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="A"/> + <column name="ATTRIBUTE_PARENT_ID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="4fcd8bb8-72fd-48d0-9e64-4c80e5177c36"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="NPO"/> + <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="9e9568c5-ad8a-4c1e-a6e6-72c9b4a3acf7"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> + <column name="ATTRIBUTE_INFO" value="Als Attribut ist der Name aus lib_frame z.B. 'ORG' 'PERS' 'OFFER' etc. zu verwenden."/> + <column name="ATTRIBUTE_NAME" value="Doku Vorlagen Verwendung"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="2b6e3225-9447-4706-9313-62c9463d6671"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Handwerk"/> + <column name="ATTRIBUTE_PARENT_ID" value="da8e8568-63e0-41d3-a83f-2d8ae4982ba5"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="be60e4b3-19b1-48a9-ad5c-c7d38698b4a1"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Dumpingpreis Wettbewerb"/> + <column name="ATTRIBUTE_PARENT_ID" value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="6d15f683-389e-4915-9043-c4cfdf188095"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Vollberechnung"/> + <column name="ATTRIBUTE_PARENT_ID" value="965823ef-fe63-41f8-9b0b-432f17ac31a7"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="ab545654-1fce-4993-b763-0ec469781302"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_INFO" value="Konditionen die bei Angebotserstellung übernommen werden"/> + <column name="ATTRIBUTE_NAME" value="Konditionen"/> + <column name="ATTRIBUTE_TYPE" value="GROUP "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="25e97db1-f796-497d-9842-3efcbb5bebf1"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Sonstiges"/> + <column name="ATTRIBUTE_PARENT_ID" value="0644222a-2b3b-4f5e-a85a-d24c32fa0e72"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="a844a395-e857-447d-b8f8-fa850bbceb82"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Produkttyp"/> + <column name="ATTRIBUTE_PARENT_ID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> + <column name="SORTING" valueNumeric="6"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="b1c552a0-eab9-417d-9f12-039d41603f6d"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="mittel"/> + <column name="ATTRIBUTE_PARENT_ID" value="dc52ede6-2b79-488c-b7bb-48877bd5d198"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="9e20d257-e2a7-4ef7-9253-1d8ed971b7b9"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="D"/> + <column name="ATTRIBUTE_PARENT_ID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="1 mittel"/> + <column name="ATTRIBUTE_PARENT_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="32612c75-b32c-4043-88c4-e8237acf8d5c"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="liebt Geselligkeit"/> + <column name="ATTRIBUTE_PARENT_ID" value="25e97db1-f796-497d-9842-3efcbb5bebf1"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="6db07a20-86bc-48da-8b27-b39bdd73b86b"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Projektverschiebung Kunde"/> + <column name="ATTRIBUTE_PARENT_ID" value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="85c9cdd8-f7a6-4210-840e-fab8628f4dbe"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Qualitätsproblem Kunde"/> + <column name="ATTRIBUTE_PARENT_ID" value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="7c39913b-a07c-4332-96ff-7b34b566ff49"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Wein"/> + <column name="ATTRIBUTE_PARENT_ID" value="7621696c-40ce-4cf2-92ec-74bc940e49ec"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="07fc6730-6c83-4996-bfd9-41c18765a10a"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Wechsel Entscheidungsträger"/> + <column name="ATTRIBUTE_PARENT_ID" value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="4"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="26385e16-6b2f-428c-9c28-1bfa9c2ccf6f"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Finanzdienstleistung"/> + <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="65f0027d-7939-4342-b531-f31f10c3c045"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Sport"/> + <column name="ATTRIBUTE_PARENT_ID" value="0644222a-2b3b-4f5e-a85a-d24c32fa0e72"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="7f01bfa6-ce9d-4964-b1e2-3cd5464d076a"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Gerät/Maschine"/> + <column name="ATTRIBUTE_PARENT_ID" value="a844a395-e857-447d-b8f8-fa850bbceb82"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="e857f9ee-fb27-4507-8381-46ba0a181cef"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Jahresurlaub"/> + <column name="ATTRIBUTE_PARENT_ID" value="acaf54c3-9613-4740-aa22-4f6ebd0d6cb0"/> + <column name="ATTRIBUTE_TYPE" value="NUMBER "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="005b2ec8-68f3-4cbe-b9e5-783526e4c288"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Fernreisen"/> + <column name="ATTRIBUTE_PARENT_ID" value="25e97db1-f796-497d-9842-3efcbb5bebf1"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="4dce5406-9a91-4a92-b55e-d1313c18f9c6"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Teilberechnung"/> + <column name="ATTRIBUTE_PARENT_ID" value="965823ef-fe63-41f8-9b0b-432f17ac31a7"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="9cfa5ce3-f1ae-4d18-9a65-0571f5ffb786"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="PERS"/> + <column name="ATTRIBUTE_PARENT_ID" value="9e9568c5-ad8a-4c1e-a6e6-72c9b4a3acf7"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Beurteilung"/> + <column name="ATTRIBUTE_TYPE" value="GROUP "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Branche"/> + <column name="ATTRIBUTE_PARENT_ID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Zielgruppe"/> + <column name="ATTRIBUTE_PARENT_ID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="bb0c6356-33be-4e7c-a409-9ef5145f7aae"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Dienstleistung"/> + <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="17746b46-2702-447a-b749-a92bfdf4bb38"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Kunde"/> + <column name="ATTRIBUTE_PARENT_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="d0a9eb78-6dcf-48e0-ba91-04a3ba104d26"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Interessent"/> + <column name="ATTRIBUTE_PARENT_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="e4a60941-513f-4e75-a787-f00070ecb00a"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Hersteller"/> + <column name="ATTRIBUTE_PARENT_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="1d30d0ab-6103-4972-84c0-fd23eef15ca1"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Wettbewerber"/> + <column name="ATTRIBUTE_PARENT_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Betreuung"/> + <column name="ATTRIBUTE_TYPE" value="GROUP "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="786148de-56b3-497e-88db-2ff5e4dc0bd7"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Kontaktierung"/> + <column name="ATTRIBUTE_TYPE" value="GROUP "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="1d4c071b-237e-4a11-abff-0acaeaf6f8b1"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Signatur"/> + <column name="ATTRIBUTE_TYPE" value="GROUP "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="79ee6a0f-5192-4db3-9b05-156fd18b01b4"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Bier"/> + <column name="ATTRIBUTE_PARENT_ID" value="7621696c-40ce-4cf2-92ec-74bc940e49ec"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="7621696c-40ce-4cf2-92ec-74bc940e49ec"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Genuss"/> + <column name="ATTRIBUTE_PARENT_ID" value="0644222a-2b3b-4f5e-a85a-d24c32fa0e72"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="a3972e57-d081-463a-a33c-5d4d3af6d8f2"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Motorrad"/> + <column name="ATTRIBUTE_PARENT_ID" value="65f0027d-7939-4342-b531-f31f10c3c045"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="4"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="6819c616-a580-4bd6-ba41-9ba1db569dc4"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Drehzahl (rpm)"/> + <column name="ATTRIBUTE_PARENT_ID" value="10dc7354-cb50-4354-8412-2c35b569e3ad"/> + <column name="ATTRIBUTE_TYPE" value="NUMBER "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="4c28a67b-dbc5-4399-bf33-b52e4cf82ffd"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="ORG"/> + <column name="ATTRIBUTE_PARENT_ID" value="9e9568c5-ad8a-4c1e-a6e6-72c9b4a3acf7"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="2318607b-556a-4537-92f0-9870ee9a9201"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Zigarren"/> + <column name="ATTRIBUTE_PARENT_ID" value="7621696c-40ce-4cf2-92ec-74bc940e49ec"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="43321e69-c8aa-4b0e-9c4e-8cde74f5c0fc"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Verschleißteil"/> + <column name="ATTRIBUTE_PARENT_ID" value="a844a395-e857-447d-b8f8-fa850bbceb82"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="9882c4bc-a3d9-43a9-8238-81ef39387869"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Maschinenbau"/> + <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="e73ed929-8631-46de-b28f-eb1423abb808"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Loyalität"/> + <column name="ATTRIBUTE_PARENT_ID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> + <column name="SORTING" valueNumeric="5"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="b93fc811-e0dc-4e50-9ca6-107f43ac4c0c"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> + <column name="ATTRIBUTE_NAME" value="Tabellen Daten"/> + <column name="ATTRIBUTE_PARENT_ID" value="be31d7a5-9a02-4ae0-8265-916d32c1fccb"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="915d566f-acbe-448c-a7b6-11898adc3880"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Liefersperre"/> + <column name="ATTRIBUTE_TYPE" value="BOOLEAN "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="d14f6eea-8760-43bf-ad3a-e7c3e4416392"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Partner"/> + <column name="ATTRIBUTE_PARENT_ID" value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="4"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="f310ae37-5ec3-47c6-839b-a92fc8fcd252"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Geburtstagsliste"/> + <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> + <column name="SORTING" valueNumeric="10"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="62b43c0f-9afb-4b57-8b7d-de38d43a9d47"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Nein"/> + <column name="ATTRIBUTE_PARENT_ID" value="f310ae37-5ec3-47c6-839b-a92fc8fcd252"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="ddf607c0-a45b-4255-bf4e-b2d515df4b86"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Ja"/> + <column name="ATTRIBUTE_PARENT_ID" value="f310ae37-5ec3-47c6-839b-a92fc8fcd252"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="fd3963bc-8e60-411a-9911-b97eb73e5cf7"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Projektart"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="3265f271-2e85-42b2-84af-c9e23e8a1e8c"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Intern"/> + <column name="ATTRIBUTE_PARENT_ID" value="fd3963bc-8e60-411a-9911-b97eb73e5cf7"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="615d3850-ef32-4988-9a8d-7b702b489194"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Partner"/> + <column name="ATTRIBUTE_PARENT_ID" value="fd3963bc-8e60-411a-9911-b97eb73e5cf7"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="be3b5fe2-2146-4eab-80a4-3c1cf4d6156a"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Bestandskunde"/> + <column name="ATTRIBUTE_PARENT_ID" value="fd3963bc-8e60-411a-9911-b97eb73e5cf7"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="87204e4b-2db2-4eb4-b216-5e16b227561e"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Interessent"/> + <column name="ATTRIBUTE_PARENT_ID" value="fd3963bc-8e60-411a-9911-b97eb73e5cf7"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="4a9625ed-0cd9-445f-ae13-5bdbfdf3f38c"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Fussball"/> + <column name="ATTRIBUTE_PARENT_ID" value="65f0027d-7939-4342-b531-f31f10c3c045"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="66271d11-a275-4141-8f84-86ab2ed3fedf"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Förderband"/> + <column name="ATTRIBUTE_PARENT_ID" value="10dc7354-cb50-4354-8412-2c35b569e3ad"/> + <column name="ATTRIBUTE_TYPE" value="BOOLEAN "/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="fa0171cf-2e0d-4ff0-bbe7-8ff083a96593"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> + <column name="ATTRIBUTE_NAME" value="weitere Daten"/> + <column name="ATTRIBUTE_PARENT_ID" value="be31d7a5-9a02-4ae0-8265-916d32c1fccb"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="974bbd28-08b3-41a4-bd74-7d9c3c778249"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="kein Risiko"/> + <column name="ATTRIBUTE_PARENT_ID" value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="5"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="9350afa2-7181-4eb4-b731-3699fe71b0f6"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="schlecht"/> + <column name="ATTRIBUTE_PARENT_ID" value="dc52ede6-2b79-488c-b7bb-48877bd5d198"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="d8949d8f-051b-4f5b-ba61-5af49e9499cc"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Ersatzteil"/> + <column name="ATTRIBUTE_PARENT_ID" value="a844a395-e857-447d-b8f8-fa850bbceb82"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="23a4d394-9fae-4205-a811-730d5109c115"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Segeln"/> + <column name="ATTRIBUTE_PARENT_ID" value="65f0027d-7939-4342-b531-f31f10c3c045"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="b78ef891-16a3-4354-bc95-7b70ef5b4e2e"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Werkzeugwechsler"/> + <column name="ATTRIBUTE_PARENT_ID" value="10dc7354-cb50-4354-8412-2c35b569e3ad"/> + <column name="ATTRIBUTE_TYPE" value="BOOLEAN "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="617da3f5-d8bc-45ff-85a1-258621ea2a0b"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Logistik"/> + <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="7"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="1a3c1c77-e57c-4481-a67f-adf7e084ea90"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="IT"/> + <column name="ATTRIBUTE_PARENT_ID" value="da8e8568-63e0-41d3-a83f-2d8ae4982ba5"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="953e3b5e-0ca7-4215-8dee-b0ba28ef1bf9"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Zahlungsproblem Kunde"/> + <column name="ATTRIBUTE_PARENT_ID" value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="2bdb04cb-4cd3-4454-802c-8e2b4a5e2e36"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Behörde"/> + <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="6"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="30be2556-e09b-4169-be32-d4bafeb89a2f"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Tourismus"/> + <column name="ATTRIBUTE_PARENT_ID" value="da8e8568-63e0-41d3-a83f-2d8ae4982ba5"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="acafca42-8ef4-4c21-abe8-1c2ca358a5aa"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Handel"/> + <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="4"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="79378933-9f74-4391-b876-4528b582661f"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Bauwesen"/> + <column name="ATTRIBUTE_PARENT_ID" value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="5"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="c85a5ebe-80fe-4176-a92a-35d2200baa07"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="2 gross"/> + <column name="ATTRIBUTE_PARENT_ID" value="e73ed929-8631-46de-b28f-eb1423abb808"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="7b687991-601c-4d75-b201-00a6cc9c6b93"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Gewicht (kg)"/> + <column name="ATTRIBUTE_PARENT_ID" value="10dc7354-cb50-4354-8412-2c35b569e3ad"/> + <column name="ATTRIBUTE_TYPE" value="NUMBER "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Bonität"/> + <column name="ATTRIBUTE_PARENT_ID" value="e32cd923-3774-41c1-95d5-57b79e52e568"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="da8e8568-63e0-41d3-a83f-2d8ae4982ba5"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Beruf"/> + <column name="ATTRIBUTE_PARENT_ID" value="0644222a-2b3b-4f5e-a85a-d24c32fa0e72"/> + <column name="ATTRIBUTE_TYPE" value="COMBO "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="acaf54c3-9613-4740-aa22-4f6ebd0d6cb0"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Personal"/> + <column name="ATTRIBUTE_TYPE" value="GROUP "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="957d61a4-0038-46e0-b5a3-fc2a5d413004"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="C"/> + <column name="ATTRIBUTE_PARENT_ID" value="f11f65d0-4352-4f81-85d0-bfd034275e34"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="be31d7a5-9a02-4ae0-8265-916d32c1fccb"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> + <column name="ATTRIBUTE_NAME" value="zusätzliche Daten"/> + <column name="ATTRIBUTE_TYPE" value="GROUP "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="4d4ef830-68e6-4228-9e4f-13614d841328"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Wirtschaft"/> + <column name="ATTRIBUTE_PARENT_ID" value="da8e8568-63e0-41d3-a83f-2d8ae4982ba5"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="bb62ae03-be34-4d34-885c-27591c5bf1b4"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Golf"/> + <column name="ATTRIBUTE_PARENT_ID" value="65f0027d-7939-4342-b531-f31f10c3c045"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="0afb463f-6ce4-4dfb-b093-09a8fcd925a3"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Bauteil"/> + <column name="ATTRIBUTE_PARENT_ID" value="a844a395-e857-447d-b8f8-fa850bbceb82"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="bad29370-3c47-4ac7-8d5d-4e86439000ef"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Mitarbeiterkonto"/> + <column name="ATTRIBUTE_TYPE" value="GROUP "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="97c6f6ec-2ed2-4c26-8612-b524e3ef15db"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="DOCUMENT"/> + <column name="ATTRIBUTE_PARENT_ID" value="9e9568c5-ad8a-4c1e-a6e6-72c9b4a3acf7"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="fffbb6b5-05ea-4f76-83c6-cf2cb29ef576"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="unvollständige Lieferung"/> + <column name="ATTRIBUTE_PARENT_ID" value="0ecd14d9-837c-47fc-9676-afe71f7e5518"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="5c188c8c-14b2-4c66-ad48-65b750e05353"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Qualitätsbeanstandung"/> + <column name="ATTRIBUTE_PARENT_ID" value="0ecd14d9-837c-47fc-9676-afe71f7e5518"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="1"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="3600aba4-01d4-4ca3-a3e7-79e0b946a2b1"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="fehlerhafte Lieferung"/> + <column name="ATTRIBUTE_PARENT_ID" value="0ecd14d9-837c-47fc-9676-afe71f7e5518"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="2"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="66b64741-a896-4404-874a-b83b3525fcff"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Transportschaden"/> + <column name="ATTRIBUTE_PARENT_ID" value="0ecd14d9-837c-47fc-9676-afe71f7e5518"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="0"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="c0fb9a3a-89a5-46a4-9b95-f48c9481375e"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="EVENT"/> + <column name="ATTRIBUTE_PARENT_ID" value="9e9568c5-ad8a-4c1e-a6e6-72c9b4a3acf7"/> + <column name="ATTRIBUTE_TYPE" value="COMBOVALUE "/> + <column name="SORTING" valueNumeric="3"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="292fae38-6557-466d-8843-3b1b4a1f6599"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Zahlungskondition"/> + <column name="ATTRIBUTE_PARENT_ID" value="ab545654-1fce-4993-b763-0ec469781302"/> + <column name="ATTRIBUTE_TYPE" value="KEYWORD "/> + <column name="KEYWORD_CONTAINER" value="PaymentTerm"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="3a6e11fc-b00a-4cf3-975a-a5e8b60fc5cb"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Lieferkondition"/> + <column name="ATTRIBUTE_PARENT_ID" value="ab545654-1fce-4993-b763-0ec469781302"/> + <column name="ATTRIBUTE_TYPE" value="KEYWORD "/> + <column name="KEYWORD_CONTAINER" value="DeliveryTerm"/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Preisliste"/> + <column name="ATTRIBUTE_PARENT_ID" value="ab545654-1fce-4993-b763-0ec469781302"/> + <column name="ATTRIBUTE_TYPE" value="KEYWORD "/> + <column name="KEYWORD_CONTAINER" value="ProductPricelist"/> +</insert> + +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="e7886e41-252e-414c-a169-5d1481d010c8"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> + <column name="ATTRIBUTE_NAME" value="Lieferant"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="44d53f3a-a8cd-4e79-bc09-a6e17d678e7e"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> + <column name="ATTRIBUTE_NAME" value="Rückantwort Kampagne"/> + <column name="ATTRIBUTE_PARENT_ID" value="786148de-56b3-497e-88db-2ff5e4dc0bd7"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="e8999504-5851-4934-a3f1-fb4b513d41e9"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="schreibt für"/> + <column name="ATTRIBUTE_PARENT_ID" value="1d4c071b-237e-4a11-abff-0acaeaf6f8b1"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="33cb83f1-aee2-469e-b57d-666ac6725f61"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> + <column name="ATTRIBUTE_NAME" value="Unterkampagne von"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="093c7337-c134-4be5-a215-dc94804c3511"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> + <column name="ATTRIBUTE_NAME" value="übergeordnete Kampagne von"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="28fd7a4b-72d8-40ff-a893-a9479abcf19e"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Feiertag"/> + <column name="ATTRIBUTE_PARENT_ID" value="bad29370-3c47-4ac7-8d5d-4e86439000ef"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="14847ea6-b6fd-43f6-a819-af2b1e53177e"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> + <column name="ATTRIBUTE_NAME" value="Innendienst"/> + <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="cd90b9e3-e663-4248-b9ed-4e25ed330c58"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> + <column name="ATTRIBUTE_NAME" value="Aussendienst"/> + <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="7abdc3a7-f46b-4021-b695-7fde6b21c6a4"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> + <column name="ATTRIBUTE_NAME" value="Service"/> + <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="2f963668-9e8c-41d7-aee4-6beaf37492e4"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="0"/> + <column name="ATTRIBUTE_NAME" value="Besuchsfrequenz"/> + <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="ff84c147-27c7-4698-83ff-0e25b1d33851"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Vorgesetzter von"/> + <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="d637fc6c-9452-4498-8379-ec71d946cbab"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="berichtet an"/> + <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="6bdb658c-94bc-4e68-aefb-a38483ee68b1"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Gebiet"/> + <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="3e5736c4-93ff-4471-96f5-48bb34ab53d2"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Urlaubsgenehmigung durch"/> + <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<insert tableName="AB_ATTRIBUTE"> + <column name="AB_ATTRIBUTEID" value="3f119858-9d69-4903-a572-d286be151f73"/> + <column name="ATTRIBUTE_ACTIVE" valueNumeric="1"/> + <column name="ATTRIBUTE_NAME" value="Urlaubsprüfung durch"/> + <column name="ATTRIBUTE_PARENT_ID" value="83e627b7-39da-4519-8023-ed384d3a0a42"/> + <column name="ATTRIBUTE_TYPE" value="TEXT "/> +</insert> +<rollback> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="752d7706-ac6e-4b51-a918-4265531794a4"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="8af37871-d407-4414-98ad-e64dbaa5794a"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="558419b2-6113-4060-b88d-cc6324754765"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="71226196-2812-4d70-b90f-c3e2c14fd4d1"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="0644222a-2b3b-4f5e-a85a-d24c32fa0e72"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="53266a7c-58ed-47dc-bbe8-9e00b33cb344"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="0ecd14d9-837c-47fc-9676-afe71f7e5518"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="965823ef-fe63-41f8-9b0b-432f17ac31a7"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="10dc7354-cb50-4354-8412-2c35b569e3ad"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="e7e05c6e-6108-44bd-824a-c076dfa5ae93"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="ed4c3079-51b0-4bb5-b228-55de4309d5ab"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="6266b41c-fa20-47b9-bd71-5633015d0796"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="dc52ede6-2b79-488c-b7bb-48877bd5d198"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="691452ec-3b9f-43dc-91a2-645a97b775b2"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="54018b5e-0e02-48d1-873c-1c934d2e97ed"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="292825e8-fa96-4b7b-8dab-71955ae14571"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="4fcd8bb8-72fd-48d0-9e64-4c80e5177c36"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="9e9568c5-ad8a-4c1e-a6e6-72c9b4a3acf7"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="2b6e3225-9447-4706-9313-62c9463d6671"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="be60e4b3-19b1-48a9-ad5c-c7d38698b4a1"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="6d15f683-389e-4915-9043-c4cfdf188095"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="ab545654-1fce-4993-b763-0ec469781302"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="25e97db1-f796-497d-9842-3efcbb5bebf1"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="a844a395-e857-447d-b8f8-fa850bbceb82"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="b1c552a0-eab9-417d-9f12-039d41603f6d"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="9e20d257-e2a7-4ef7-9253-1d8ed971b7b9"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="0a6cbbc0-bd0e-4794-96ef-3d458d5fdb70"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="32612c75-b32c-4043-88c4-e8237acf8d5c"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="6db07a20-86bc-48da-8b27-b39bdd73b86b"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="85c9cdd8-f7a6-4210-840e-fab8628f4dbe"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="7c39913b-a07c-4332-96ff-7b34b566ff49"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="07fc6730-6c83-4996-bfd9-41c18765a10a"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="26385e16-6b2f-428c-9c28-1bfa9c2ccf6f"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="65f0027d-7939-4342-b531-f31f10c3c045"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="7f01bfa6-ce9d-4964-b1e2-3cd5464d076a"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="e857f9ee-fb27-4507-8381-46ba0a181cef"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="005b2ec8-68f3-4cbe-b9e5-783526e4c288"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="4dce5406-9a91-4a92-b55e-d1313c18f9c6"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="9cfa5ce3-f1ae-4d18-9a65-0571f5ffb786"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="e32cd923-3774-41c1-95d5-57b79e52e568"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="7e9927a4-41e4-426f-bddd-c3e9ee3b093e"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="c7d28377-8cb1-4f92-a9ac-ed08041a782b"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="bb0c6356-33be-4e7c-a409-9ef5145f7aae"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="17746b46-2702-447a-b749-a92bfdf4bb38"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="d0a9eb78-6dcf-48e0-ba91-04a3ba104d26"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="e4a60941-513f-4e75-a787-f00070ecb00a"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="1d30d0ab-6103-4972-84c0-fd23eef15ca1"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="83e627b7-39da-4519-8023-ed384d3a0a42"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="786148de-56b3-497e-88db-2ff5e4dc0bd7"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="1d4c071b-237e-4a11-abff-0acaeaf6f8b1"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="79ee6a0f-5192-4db3-9b05-156fd18b01b4"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="7621696c-40ce-4cf2-92ec-74bc940e49ec"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="a3972e57-d081-463a-a33c-5d4d3af6d8f2"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="6819c616-a580-4bd6-ba41-9ba1db569dc4"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="4c28a67b-dbc5-4399-bf33-b52e4cf82ffd"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="2318607b-556a-4537-92f0-9870ee9a9201"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="43321e69-c8aa-4b0e-9c4e-8cde74f5c0fc"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="9882c4bc-a3d9-43a9-8238-81ef39387869"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="e73ed929-8631-46de-b28f-eb1423abb808"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="b93fc811-e0dc-4e50-9ca6-107f43ac4c0c"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="915d566f-acbe-448c-a7b6-11898adc3880"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="d14f6eea-8760-43bf-ad3a-e7c3e4416392"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="f310ae37-5ec3-47c6-839b-a92fc8fcd252"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="62b43c0f-9afb-4b57-8b7d-de38d43a9d47"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="ddf607c0-a45b-4255-bf4e-b2d515df4b86"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="fd3963bc-8e60-411a-9911-b97eb73e5cf7"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="3265f271-2e85-42b2-84af-c9e23e8a1e8c"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="615d3850-ef32-4988-9a8d-7b702b489194"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="be3b5fe2-2146-4eab-80a4-3c1cf4d6156a"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="87204e4b-2db2-4eb4-b216-5e16b227561e"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="4a9625ed-0cd9-445f-ae13-5bdbfdf3f38c"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="66271d11-a275-4141-8f84-86ab2ed3fedf"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="fa0171cf-2e0d-4ff0-bbe7-8ff083a96593"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="974bbd28-08b3-41a4-bd74-7d9c3c778249"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="9350afa2-7181-4eb4-b731-3699fe71b0f6"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="d8949d8f-051b-4f5b-ba61-5af49e9499cc"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="23a4d394-9fae-4205-a811-730d5109c115"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="b78ef891-16a3-4354-bc95-7b70ef5b4e2e"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="617da3f5-d8bc-45ff-85a1-258621ea2a0b"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="1a3c1c77-e57c-4481-a67f-adf7e084ea90"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="953e3b5e-0ca7-4215-8dee-b0ba28ef1bf9"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="2bdb04cb-4cd3-4454-802c-8e2b4a5e2e36"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="30be2556-e09b-4169-be32-d4bafeb89a2f"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="acafca42-8ef4-4c21-abe8-1c2ca358a5aa"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="79378933-9f74-4391-b876-4528b582661f"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="c85a5ebe-80fe-4176-a92a-35d2200baa07"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="7b687991-601c-4d75-b201-00a6cc9c6b93"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="f11f65d0-4352-4f81-85d0-bfd034275e34"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="da8e8568-63e0-41d3-a83f-2d8ae4982ba5"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="acaf54c3-9613-4740-aa22-4f6ebd0d6cb0"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="957d61a4-0038-46e0-b5a3-fc2a5d413004"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="be31d7a5-9a02-4ae0-8265-916d32c1fccb"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="4d4ef830-68e6-4228-9e4f-13614d841328"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="bb62ae03-be34-4d34-885c-27591c5bf1b4"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="0afb463f-6ce4-4dfb-b093-09a8fcd925a3"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="bad29370-3c47-4ac7-8d5d-4e86439000ef"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="97c6f6ec-2ed2-4c26-8612-b524e3ef15db"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="fffbb6b5-05ea-4f76-83c6-cf2cb29ef576"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="5c188c8c-14b2-4c66-ad48-65b750e05353"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="3600aba4-01d4-4ca3-a3e7-79e0b946a2b1"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="66b64741-a896-4404-874a-b83b3525fcff"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="c0fb9a3a-89a5-46a4-9b95-f48c9481375e"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="292fae38-6557-466d-8843-3b1b4a1f6599"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="3a6e11fc-b00a-4cf3-975a-a5e8b60fc5cb"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="97b449a5-d9b4-42ff-b9b0-4f8b27b8a9ec"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="e7886e41-252e-414c-a169-5d1481d010c8"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="44d53f3a-a8cd-4e79-bc09-a6e17d678e7e"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="e8999504-5851-4934-a3f1-fb4b513d41e9"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="33cb83f1-aee2-469e-b57d-666ac6725f61"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="093c7337-c134-4be5-a215-dc94804c3511"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="28fd7a4b-72d8-40ff-a893-a9479abcf19e"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="14847ea6-b6fd-43f6-a819-af2b1e53177e"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="cd90b9e3-e663-4248-b9ed-4e25ed330c58"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="7abdc3a7-f46b-4021-b695-7fde6b21c6a4"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="2f963668-9e8c-41d7-aee4-6beaf37492e4"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="ff84c147-27c7-4698-83ff-0e25b1d33851"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="d637fc6c-9452-4498-8379-ec71d946cbab"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="6bdb658c-94bc-4e68-aefb-a38483ee68b1"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="3e5736c4-93ff-4471-96f5-48bb34ab53d2"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID = ?</where> + <whereParams> + <param value="3f119858-9d69-4903-a572-d286be151f73"/> + </whereParams> +</delete> +<delete tableName="AB_ATTRIBUTE"> + <where>AB_ATTRIBUTEID in (?, ?, ?, ?, ?, ?, ?, ?)</where> + <whereParams> + <param value="87d4ff5b-0ab6-4534-be26-76c6ef486072"/> + <param value="29e6ddbf-77fd-4fb2-ae20-fdad9495dbd5"/> + <param value="c9d81109-4406-4205-8b90-e27acf587cf1"/> + <param value="dc1427a9-056a-463a-a07f-f08f820fae0e"/> + <param value="5999ee67-44a4-4ec6-a4c4-6c6d58b8e50a"/> + <param value="93de7e9f-3ecd-45e7-aafe-020ab5f3ee79"/> + <param value="e47c7fb1-1072-4f03-a275-e4b6331deec1"/> + <param value="c133a157-0109-4d88-8343-71db25b12fc5"/> + </whereParams> +</delete> +</rollback> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2019.2/data/init_DocumentTemplateType.xml b/.liquibase/Data_alias/basic/2019.2/data/init_DocumentTemplateType.xml index fda245a0ac774d96467b1ffc51330cf34f8eebdd..c56da659125b3da25636be69e3c0bc7dbcff0b89 100644 --- a/.liquibase/Data_alias/basic/2019.2/data/init_DocumentTemplateType.xml +++ b/.liquibase/Data_alias/basic/2019.2/data/init_DocumentTemplateType.xml @@ -1,41 +1,41 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="d.lechner" id="documentTemplateType-1"> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="c564719a-18ef-423e-b130-dp88b2b518ad"/> - <column name="KEYID" value="LET"/> - <column name="TITLE" value="Letter"/> - <column name="CONTAINER" value="DocumentTemplateType"/> - <column name="SORTING" valueNumeric="0"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="0"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="6f4c6e49-36ca-4b98-ba83-c507203wawal"/> - <column name="KEYID" value="MAI"/> - <column name="TITLE" value="Mail"/> - <column name="CONTAINER" value="DocumentTemplateType"/> - <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="bb386131-ee36-9771-b458-6751f137a941"/> - <column name="KEYID" value="ATT"/> - <column name="TITLE" value="Attachment"/> - <column name="CONTAINER" value="DocumentTemplateType"/> - <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="bb38aa51-ee36-9771-b458-6751f137a941"/> - <column name="KEYID" value="TEX"/> - <column name="TITLE" value="Text Modular"/> - <column name="CONTAINER" value="DocumentTemplateType"/> - <column name="SORTING" valueNumeric="3"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="0"/> - </insert> - </changeSet> -</databaseChangeLog> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="d.lechner" id="documentTemplateType-1"> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="c564719a-18ef-423e-b130-dp88b2b518ad"/> + <column name="KEYID" value="LET"/> + <column name="TITLE" value="Letter"/> + <column name="CONTAINER" value="DocumentTemplateType"/> + <column name="SORTING" valueNumeric="0"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="6f4c6e49-36ca-4b98-ba83-c507203wawal"/> + <column name="KEYID" value="MAI"/> + <column name="TITLE" value="Mail"/> + <column name="CONTAINER" value="DocumentTemplateType"/> + <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="bb386131-ee36-9771-b458-6751f137a941"/> + <column name="KEYID" value="ATT"/> + <column name="TITLE" value="Attachment"/> + <column name="CONTAINER" value="DocumentTemplateType"/> + <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="bb38aa51-ee36-9771-b458-6751f137a941"/> + <column name="KEYID" value="TEX"/> + <column name="TITLE" value="Text Modular"/> + <column name="CONTAINER" value="DocumentTemplateType"/> + <column name="SORTING" valueNumeric="3"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + </changeSet> +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2019.2/data/init_DocumentTemplateTypeCategory.xml b/.liquibase/Data_alias/basic/2019.2/data/init_DocumentTemplateTypeCategory.xml index 6d75abdd21c241eeafbece321f7774bec687a11e..8c024df8437ab9bd40932f36b6733a6b6e4e0165 100644 --- a/.liquibase/Data_alias/basic/2019.2/data/init_DocumentTemplateTypeCategory.xml +++ b/.liquibase/Data_alias/basic/2019.2/data/init_DocumentTemplateTypeCategory.xml @@ -1,101 +1,101 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="d.lechner" id="documentTemplateTypeCategory-1"> - <insert tableName="AB_KEYWORD_ATTRIBUTE"> - <column name="AB_KEYWORD_ATTRIBUTEID" value="14c2d515-a42f-4618-b534-7a23369d2001"/> - <column name="NAME" value="LET"/> - <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> - <column name="TYPE" value="BOOL_VALUE"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTE"> - <column name="AB_KEYWORD_ATTRIBUTEID" value="14c2d515-a42f-4618-b534-7a23369d2002"/> - <column name="NAME" value="MAI"/> - <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> - <column name="TYPE" value="BOOL_VALUE"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTE"> - <column name="AB_KEYWORD_ATTRIBUTEID" value="14c2d515-a42f-4618-b534-7a23369d2003"/> - <column name="NAME" value="ATT"/> - <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> - <column name="TYPE" value="BOOL_VALUE"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTE"> - <column name="AB_KEYWORD_ATTRIBUTEID" value="14c2d515-a42f-4618-b534-7a23369d2004"/> - <column name="NAME" value="TEX"/> - <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> - <column name="TYPE" value="BOOL_VALUE"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="c564719a-18ef-423e-b130-dp88b2b51123"/> - <column name="KEYID" value="1"/> - <column name="TITLE" value="Single"/> - <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> - <column name="SORTING" valueNumeric="0"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="0"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="63110456-3d8a-4756-9a72-9f94dda182f8"/> - <column name="AB_KEYWORD_ENTRY_ID" value="c564719a-18ef-423e-b130-dp88b2b51123"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d2001"/> - <column name="BOOL_VALUE" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="bb38aa51-ee36-9771-b458-6751f137a999"/> - <column name="AB_KEYWORD_ENTRY_ID" value="c564719a-18ef-423e-b130-dp88b2b51123"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d2002"/> - <column name="BOOL_VALUE" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="6f4c6e49-36ca-4b98-ba83-c507203wa456"/> - <column name="KEYID" value="2"/> - <column name="TITLE" value="Serial"/> - <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> - <column name="SORTING" valueNumeric="1"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="0"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="58334e95-7a89-4255-bf84-0234c386a69f"/> - <column name="AB_KEYWORD_ENTRY_ID" value="6f4c6e49-36ca-4b98-ba83-c507203wa456"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d2001"/> - <column name="BOOL_VALUE" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="850d17ae-b9f4-464f-ba16-9e22f3d8716c"/> - <column name="AB_KEYWORD_ENTRY_ID" value="6f4c6e49-36ca-4b98-ba83-c507203wa456"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d2002"/> - <column name="BOOL_VALUE" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="bb386131-ee36-9771-b458-6751f137a789"/> - <column name="KEYID" value="3"/> - <column name="TITLE" value="Offer Header Text"/> - <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> - <column name="SORTING" valueNumeric="2"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="0"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="5f3352cf-38aa-403a-8d8e-9f1ca40a5dca"/> - <column name="AB_KEYWORD_ENTRY_ID" value="bb386131-ee36-9771-b458-6751f137a789"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d2004"/> - <column name="BOOL_VALUE" valueNumeric="1"/> - </insert> - <insert tableName="AB_KEYWORD_ENTRY"> - <column name="AB_KEYWORD_ENTRYID" value="bb38aa51-ee36-9771-b458-6751f137a999"/> - <column name="KEYID" value="4"/> - <column name="TITLE" value="Offer Footer Text"/> - <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> - <column name="SORTING" valueNumeric="3"/> - <column name="ISACTIVE" valueNumeric="1"/> - <column name="ISESSENTIAL" valueNumeric="0"/> - </insert> - <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> - <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="f8df9595-5932-4e60-ac50-b903dc739e48"/> - <column name="AB_KEYWORD_ENTRY_ID" value="bb38aa51-ee36-9771-b458-6751f137a999"/> - <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d2004"/> - <column name="BOOL_VALUE" valueNumeric="1"/> - </insert> - </changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="d.lechner" id="documentTemplateTypeCategory-1"> + <insert tableName="AB_KEYWORD_ATTRIBUTE"> + <column name="AB_KEYWORD_ATTRIBUTEID" value="14c2d515-a42f-4618-b534-7a23369d2001"/> + <column name="NAME" value="LET"/> + <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> + <column name="TYPE" value="BOOL_VALUE"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTE"> + <column name="AB_KEYWORD_ATTRIBUTEID" value="14c2d515-a42f-4618-b534-7a23369d2002"/> + <column name="NAME" value="MAI"/> + <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> + <column name="TYPE" value="BOOL_VALUE"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTE"> + <column name="AB_KEYWORD_ATTRIBUTEID" value="14c2d515-a42f-4618-b534-7a23369d2003"/> + <column name="NAME" value="ATT"/> + <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> + <column name="TYPE" value="BOOL_VALUE"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTE"> + <column name="AB_KEYWORD_ATTRIBUTEID" value="14c2d515-a42f-4618-b534-7a23369d2004"/> + <column name="NAME" value="TEX"/> + <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> + <column name="TYPE" value="BOOL_VALUE"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="c564719a-18ef-423e-b130-dp88b2b51123"/> + <column name="KEYID" value="1"/> + <column name="TITLE" value="Single"/> + <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> + <column name="SORTING" valueNumeric="0"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="63110456-3d8a-4756-9a72-9f94dda182f8"/> + <column name="AB_KEYWORD_ENTRY_ID" value="c564719a-18ef-423e-b130-dp88b2b51123"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d2001"/> + <column name="BOOL_VALUE" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="bb38aa51-ee36-9771-b458-6751f137a999"/> + <column name="AB_KEYWORD_ENTRY_ID" value="c564719a-18ef-423e-b130-dp88b2b51123"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d2002"/> + <column name="BOOL_VALUE" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="6f4c6e49-36ca-4b98-ba83-c507203wa456"/> + <column name="KEYID" value="2"/> + <column name="TITLE" value="Serial"/> + <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> + <column name="SORTING" valueNumeric="1"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="58334e95-7a89-4255-bf84-0234c386a69f"/> + <column name="AB_KEYWORD_ENTRY_ID" value="6f4c6e49-36ca-4b98-ba83-c507203wa456"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d2001"/> + <column name="BOOL_VALUE" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="850d17ae-b9f4-464f-ba16-9e22f3d8716c"/> + <column name="AB_KEYWORD_ENTRY_ID" value="6f4c6e49-36ca-4b98-ba83-c507203wa456"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d2002"/> + <column name="BOOL_VALUE" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="bb386131-ee36-9771-b458-6751f137a789"/> + <column name="KEYID" value="3"/> + <column name="TITLE" value="Offer Header Text"/> + <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> + <column name="SORTING" valueNumeric="2"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="5f3352cf-38aa-403a-8d8e-9f1ca40a5dca"/> + <column name="AB_KEYWORD_ENTRY_ID" value="bb386131-ee36-9771-b458-6751f137a789"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d2004"/> + <column name="BOOL_VALUE" valueNumeric="1"/> + </insert> + <insert tableName="AB_KEYWORD_ENTRY"> + <column name="AB_KEYWORD_ENTRYID" value="bb38aa51-ee36-9771-b458-6751f137a999"/> + <column name="KEYID" value="4"/> + <column name="TITLE" value="Offer Footer Text"/> + <column name="CONTAINER" value="DocumentTemplateTypeCategory"/> + <column name="SORTING" valueNumeric="3"/> + <column name="ISACTIVE" valueNumeric="1"/> + <column name="ISESSENTIAL" valueNumeric="0"/> + </insert> + <insert tableName="AB_KEYWORD_ATTRIBUTERELATION"> + <column name="AB_KEYWORD_ATTRIBUTERELATIONID" value="f8df9595-5932-4e60-ac50-b903dc739e48"/> + <column name="AB_KEYWORD_ENTRY_ID" value="bb38aa51-ee36-9771-b458-6751f137a999"/> + <column name="AB_KEYWORD_ATTRIBUTE_ID" value="14c2d515-a42f-4618-b534-7a23369d2004"/> + <column name="BOOL_VALUE" valueNumeric="1"/> + </insert> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/miscellaneous/Contact_additionalColumns.xml b/.liquibase/Data_alias/basic/2019.2/miscellaneous/Contact_additionalColumns.xml index 83081ee094303aef88ca871bfbcbc6a55bc6eb61..aca589fdcb35369667600c3674f25f7d804c093c 100644 --- a/.liquibase/Data_alias/basic/2019.2/miscellaneous/Contact_additionalColumns.xml +++ b/.liquibase/Data_alias/basic/2019.2/miscellaneous/Contact_additionalColumns.xml @@ -1,9 +1,9 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - - <changeSet author="j.goderbauer" id="bd41fff1-d139-41ea-ad0f-b30b77d69690"> - <addColumn tableName="CONTACT"> - <column name="LETTERSALUTATION" type="NVARCHAR(200)" /> - </addColumn> - </changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + + <changeSet author="j.goderbauer" id="bd41fff1-d139-41ea-ad0f-b30b77d69690"> + <addColumn tableName="CONTACT"> + <column name="LETTERSALUTATION" type="NVARCHAR(200)" /> + </addColumn> + </changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/_____SYSTEMALIAS/basic/2019.2/create_asys_notificationcontents.xml b/.liquibase/_____SYSTEMALIAS/basic/2019.2/create_asys_notificationcontents.xml index b5195dab42f4d8f2218f945cf10e69a1139b7d06..8cd8c16972458c92f043d4f3831d2aa04c00f7e0 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/2019.2/create_asys_notificationcontents.xml +++ b/.liquibase/_____SYSTEMALIAS/basic/2019.2/create_asys_notificationcontents.xml @@ -1,22 +1,22 @@ -<?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="a.schindlbeck" id="6b25f062-fb39-4230-9348-b67ec5ec45a1"> - <createTable tableName="ASYS_NOTIFICATIONCONTENTS"> - <column name="CONTENTID" type="CHAR(36)"> - <constraints primaryKey="true" primaryKeyName="PK_ASYS_NOTIFICATIONCONTENTS_CONTENTID"/> - </column> - <column name="BACKPACK" type="CLOB"/> - <column name="CAPTION" type="VARCHAR(512)"/> - <column name="CREATIONDATE" type="TIMESTAMP"/> - <column name="DESCRIPTION" type="VARCHAR(1023)"/> - <column name="FORCEDPRIORITY" type="VARCHAR(15)"/> - <column name="ICON_INFO" type="VARCHAR(1023)"/> - <column name="LIFETIME" type="BIGINT"/> - <column name="LINK_INFO" type="VARCHAR(1023)"/> - <column name="ORIGINATORNAME" type="VARCHAR(63)"/> - <column name="RECIPIENTUSERIDS" type="CLOB"/> - <column name="TYPECODE" type="VARCHAR(63)"/> - <column name="VERSION" type="INTEGER"/> - </createTable> -</changeSet> +<?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="a.schindlbeck" id="6b25f062-fb39-4230-9348-b67ec5ec45a1"> + <createTable tableName="ASYS_NOTIFICATIONCONTENTS"> + <column name="CONTENTID" type="CHAR(36)"> + <constraints primaryKey="true" primaryKeyName="PK_ASYS_NOTIFICATIONCONTENTS_CONTENTID"/> + </column> + <column name="BACKPACK" type="CLOB"/> + <column name="CAPTION" type="VARCHAR(512)"/> + <column name="CREATIONDATE" type="TIMESTAMP"/> + <column name="DESCRIPTION" type="VARCHAR(1023)"/> + <column name="FORCEDPRIORITY" type="VARCHAR(15)"/> + <column name="ICON_INFO" type="VARCHAR(1023)"/> + <column name="LIFETIME" type="BIGINT"/> + <column name="LINK_INFO" type="VARCHAR(1023)"/> + <column name="ORIGINATORNAME" type="VARCHAR(63)"/> + <column name="RECIPIENTUSERIDS" type="CLOB"/> + <column name="TYPECODE" type="VARCHAR(63)"/> + <column name="VERSION" type="INTEGER"/> + </createTable> +</changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/_____system_sysdb_version.xml b/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/_____system_sysdb_version.xml index 263bf76d5d876fa69aaabaef1f06f01b5e4e1c01..ff598ae4e91c965763db722428b044ad9cfef8ad 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/_____system_sysdb_version.xml +++ b/.liquibase/_____SYSTEMALIAS/basic/init/data/defaultBlob/_____system_sysdb_version.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <sysDbVersion xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/sysDbVersion/1.2.0"> <name>_____SYSTEM_SYSDB_VERSION</name> - <systemDbVersion>2.6.0</systemDbVersion> + <systemDbVersion>2.7.0</systemDbVersion> </sysDbVersion> diff --git a/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Birgit_Leicht.xml b/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Birgit_Leicht.xml index bd433e735db15f7c46e3d9db516e83fdfe137993..88d3c5a8853f2eb7ae72c97dce81c40df5b93c4d 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Birgit_Leicht.xml +++ b/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Birgit_Leicht.xml @@ -1,112 +1,112 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="j.hoermanns" id="f51b5b01-c172-49b7-97b8-13b54d3aafdb"> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="6f2070f6-26ce-4361-8ad5-df7e8bb09410"/> - <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> - <column name="PROPKEY" value="lastModified"/> - <column name="PROPVAL" value="1544193908535"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="1edd7253-c1a9-4eb1-92b8-ce2ad9262aa9"/> - <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> - <column name="PROPKEY" value="contactID"/> - <column name="PROPVAL" value="d5a2dc64-e503-4aed-a0c6-d54f49b8db87"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="22864525-f580-4ce3-b5d5-2034519cb482"/> - <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> - <column name="PROPKEY" value="name"/> - <column name="PROPVAL" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="0a9afbd0-54c8-4141-834c-a1fad149aeed"/> - <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> - <column name="PROPKEY" value="title"/> - <column name="PROPVAL" value="Birgit Leicht"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PERSONAL"/> - <column name="ID" value="afc7201d-a72d-49d5-842d-04d6192f6302"/> - <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> - <column name="PROPKEY" value="firstname"/> - <column name="PROPVAL" value="Birgit"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PERSONAL"/> - <column name="ID" value="b1832c76-356c-4909-a6ef-bde0c0e1c857"/> - <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> - <column name="PROPKEY" value="lastname"/> - <column name="PROPVAL" value="Leicht"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="ROLE"/> - <column name="ID" value="b091cb95-5976-4b8f-975f-c411b82b5b8c"/> - <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> - <column name="PROPKEY" value="roleNames"/> - <column name="PROPVAL" value="INTERNAL_ADMINISTRATOR"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PASSWORD"/> - <column name="ID" value="48e35d4e-93c9-49e9-bc7e-b1f105bed72d"/> - <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> - <column name="PROPKEY" value="password"/> - <column name="PROPVAL" value="SHA256S:8BA6557C1C12BD7B9FF24147B71ECB36AC04CD6F7F0E7C84677E06C0CA6EAFD5:3FFDE946723B844B3F5B21D3AE1CF87FAC182CC21D1EDA3F76E781C3F63EEE9F"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PASSWORD"/> - <column name="ID" value="8888f771-9e61-4ea8-8e3b-388bcfbdd4bf"/> - <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> - <column name="PROPKEY" value="passwordChanged"/> - <column name="PROPVAL" value="1533122217399"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="e961b7da-561c-436a-a718-8746fa818d30"/> - <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> - <column name="PROPKEY" value="email"/> - <column name="PROPVAL" value="b.leicht@domain.local"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="fb684399-de76-44dd-975d-f3d4d6c95c42"/> - <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> - <column name="PROPKEY" value="calendarID"/> - <column name="PROPVAL" value="b.leicht@domain.local"/> - </insert> - <rollback> - <delete tableName="ASYS_USERS"> - <where>NAME = ?</where> - <whereParams> - <param value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115" /> - </whereParams> - </delete> - </rollback> -</changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="j.hoermanns" id="f51b5b01-c172-49b7-97b8-13b54d3aafdb"> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="6f2070f6-26ce-4361-8ad5-df7e8bb09410"/> + <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> + <column name="PROPKEY" value="lastModified"/> + <column name="PROPVAL" value="1544193908535"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="1edd7253-c1a9-4eb1-92b8-ce2ad9262aa9"/> + <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> + <column name="PROPKEY" value="contactID"/> + <column name="PROPVAL" value="d5a2dc64-e503-4aed-a0c6-d54f49b8db87"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="22864525-f580-4ce3-b5d5-2034519cb482"/> + <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> + <column name="PROPKEY" value="name"/> + <column name="PROPVAL" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="0a9afbd0-54c8-4141-834c-a1fad149aeed"/> + <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> + <column name="PROPKEY" value="title"/> + <column name="PROPVAL" value="Birgit Leicht"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PERSONAL"/> + <column name="ID" value="afc7201d-a72d-49d5-842d-04d6192f6302"/> + <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> + <column name="PROPKEY" value="firstname"/> + <column name="PROPVAL" value="Birgit"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PERSONAL"/> + <column name="ID" value="b1832c76-356c-4909-a6ef-bde0c0e1c857"/> + <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> + <column name="PROPKEY" value="lastname"/> + <column name="PROPVAL" value="Leicht"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="ROLE"/> + <column name="ID" value="b091cb95-5976-4b8f-975f-c411b82b5b8c"/> + <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> + <column name="PROPKEY" value="roleNames"/> + <column name="PROPVAL" value="INTERNAL_ADMINISTRATOR"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PASSWORD"/> + <column name="ID" value="48e35d4e-93c9-49e9-bc7e-b1f105bed72d"/> + <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> + <column name="PROPKEY" value="password"/> + <column name="PROPVAL" value="SHA256S:8BA6557C1C12BD7B9FF24147B71ECB36AC04CD6F7F0E7C84677E06C0CA6EAFD5:3FFDE946723B844B3F5B21D3AE1CF87FAC182CC21D1EDA3F76E781C3F63EEE9F"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PASSWORD"/> + <column name="ID" value="8888f771-9e61-4ea8-8e3b-388bcfbdd4bf"/> + <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> + <column name="PROPKEY" value="passwordChanged"/> + <column name="PROPVAL" value="1533122217399"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="e961b7da-561c-436a-a718-8746fa818d30"/> + <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> + <column name="PROPKEY" value="email"/> + <column name="PROPVAL" value="b.leicht@domain.local"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="fb684399-de76-44dd-975d-f3d4d6c95c42"/> + <column name="NAME" value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115"/> + <column name="PROPKEY" value="calendarID"/> + <column name="PROPVAL" value="b.leicht@domain.local"/> + </insert> + <rollback> + <delete tableName="ASYS_USERS"> + <where>NAME = ?</where> + <whereParams> + <param value="_____USER_63529b4d-695d-45c0-907f-b3bd9d614115" /> + </whereParams> + </delete> + </rollback> +</changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Harold_Smith.xml b/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Harold_Smith.xml index ddb531e267b3b9d8b8096294973a52fd06911178..647680ecf2f91147da4abdc4302d66de55c7734d 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Harold_Smith.xml +++ b/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Harold_Smith.xml @@ -1,112 +1,112 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="j.hoermanns" id="3b2eb88a-7d8f-4b51-a361-29170982d152"> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="63b9438d-1a63-49c9-85c2-6bc28efe87e5"/> - <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> - <column name="PROPKEY" value="lastModified"/> - <column name="PROPVAL" value="1544193908535"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="0eabe917-fcf7-46e4-92d1-f7d326ded6c4"/> - <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> - <column name="PROPKEY" value="contactID"/> - <column name="PROPVAL" value="d105f7f4-afd1-4a98-adc2-13fd6934b7e9"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="a9efc147-d086-477f-b3d5-6eea09c95e2e"/> - <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> - <column name="PROPKEY" value="name"/> - <column name="PROPVAL" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="5064165c-a566-4905-a9ba-6df21c150935"/> - <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> - <column name="PROPKEY" value="title"/> - <column name="PROPVAL" value="Harold Smith"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PERSONAL"/> - <column name="ID" value="efb6610d-8990-40c7-8044-9d3f471fe08c"/> - <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> - <column name="PROPKEY" value="firstname"/> - <column name="PROPVAL" value="Harold"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PERSONAL"/> - <column name="ID" value="95761793-e2e5-439f-9313-e75e4558c8f0"/> - <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> - <column name="PROPKEY" value="lastname"/> - <column name="PROPVAL" value="Smith"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="ROLE"/> - <column name="ID" value="9e7f3f53-3df4-4e6e-b16c-f13f2430c871"/> - <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> - <column name="PROPKEY" value="roleNames"/> - <column name="PROPVAL" value="INTERNAL_ADMINISTRATOR"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PASSWORD"/> - <column name="ID" value="89cda16b-f94f-4b20-8fea-184250de76f2"/> - <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> - <column name="PROPKEY" value="password"/> - <column name="PROPVAL" value="SHA256S:8BA6557C1C12BD7B9FF24147B71ECB36AC04CD6F7F0E7C84677E06C0CA6EAFD5:3FFDE946723B844B3F5B21D3AE1CF87FAC182CC21D1EDA3F76E781C3F63EEE9F"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PASSWORD"/> - <column name="ID" value="70fcb1a9-b13b-4222-afdc-c39de33ffe36"/> - <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> - <column name="PROPKEY" value="passwordChanged"/> - <column name="PROPVAL" value="1533122217399"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="28b90a4a-b098-42cc-bd5c-27cb27988307"/> - <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> - <column name="PROPKEY" value="email"/> - <column name="PROPVAL" value="h.smith@domain.local"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="ce8946ae-eb69-46fe-b63b-d4684c0189bb"/> - <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> - <column name="PROPKEY" value="calendarID"/> - <column name="PROPVAL" value="h.smith@domain.local"/> - </insert> - <rollback> - <delete tableName="ASYS_USERS"> - <where>NAME = ?</where> - <whereParams> - <param value="_____USER_0555b87b-5708-4748-aa88-064e33cab002" /> - </whereParams> - </delete> - </rollback> -</changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="j.hoermanns" id="3b2eb88a-7d8f-4b51-a361-29170982d152"> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="63b9438d-1a63-49c9-85c2-6bc28efe87e5"/> + <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> + <column name="PROPKEY" value="lastModified"/> + <column name="PROPVAL" value="1544193908535"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="0eabe917-fcf7-46e4-92d1-f7d326ded6c4"/> + <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> + <column name="PROPKEY" value="contactID"/> + <column name="PROPVAL" value="d105f7f4-afd1-4a98-adc2-13fd6934b7e9"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="a9efc147-d086-477f-b3d5-6eea09c95e2e"/> + <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> + <column name="PROPKEY" value="name"/> + <column name="PROPVAL" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="5064165c-a566-4905-a9ba-6df21c150935"/> + <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> + <column name="PROPKEY" value="title"/> + <column name="PROPVAL" value="Harold Smith"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PERSONAL"/> + <column name="ID" value="efb6610d-8990-40c7-8044-9d3f471fe08c"/> + <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> + <column name="PROPKEY" value="firstname"/> + <column name="PROPVAL" value="Harold"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PERSONAL"/> + <column name="ID" value="95761793-e2e5-439f-9313-e75e4558c8f0"/> + <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> + <column name="PROPKEY" value="lastname"/> + <column name="PROPVAL" value="Smith"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="ROLE"/> + <column name="ID" value="9e7f3f53-3df4-4e6e-b16c-f13f2430c871"/> + <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> + <column name="PROPKEY" value="roleNames"/> + <column name="PROPVAL" value="INTERNAL_ADMINISTRATOR"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PASSWORD"/> + <column name="ID" value="89cda16b-f94f-4b20-8fea-184250de76f2"/> + <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> + <column name="PROPKEY" value="password"/> + <column name="PROPVAL" value="SHA256S:8BA6557C1C12BD7B9FF24147B71ECB36AC04CD6F7F0E7C84677E06C0CA6EAFD5:3FFDE946723B844B3F5B21D3AE1CF87FAC182CC21D1EDA3F76E781C3F63EEE9F"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PASSWORD"/> + <column name="ID" value="70fcb1a9-b13b-4222-afdc-c39de33ffe36"/> + <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> + <column name="PROPKEY" value="passwordChanged"/> + <column name="PROPVAL" value="1533122217399"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="28b90a4a-b098-42cc-bd5c-27cb27988307"/> + <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> + <column name="PROPKEY" value="email"/> + <column name="PROPVAL" value="h.smith@domain.local"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="ce8946ae-eb69-46fe-b63b-d4684c0189bb"/> + <column name="NAME" value="_____USER_0555b87b-5708-4748-aa88-064e33cab002"/> + <column name="PROPKEY" value="calendarID"/> + <column name="PROPVAL" value="h.smith@domain.local"/> + </insert> + <rollback> + <delete tableName="ASYS_USERS"> + <where>NAME = ?</where> + <whereParams> + <param value="_____USER_0555b87b-5708-4748-aa88-064e33cab002" /> + </whereParams> + </delete> + </rollback> +</changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Herbert_Obermeier.xml b/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Herbert_Obermeier.xml index 9c7211f1f6a8db38ce68e0ca2aae29d305369d0b..d6bfa4cc7aae62e64d57e5a460edbfc20f4a98a1 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Herbert_Obermeier.xml +++ b/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Herbert_Obermeier.xml @@ -1,112 +1,112 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="j.hoermanns" id="f9502718-5fca-4a3c-a439-22b28a6a4866"> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="a501ba6e-4229-4bcc-9587-3e5b3516f1b5"/> - <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> - <column name="PROPKEY" value="lastModified"/> - <column name="PROPVAL" value="1544193908535"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="e7a50a5e-7208-4821-b223-720721067edb"/> - <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> - <column name="PROPKEY" value="contactID"/> - <column name="PROPVAL" value="57d524f6-ad66-4550-be83-fee6e31b7a52"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="3cd16b02-ea88-4a95-b837-95cd4e989094"/> - <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> - <column name="PROPKEY" value="name"/> - <column name="PROPVAL" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="c1114ba2-3a61-460f-868b-af15e1113a87"/> - <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> - <column name="PROPKEY" value="title"/> - <column name="PROPVAL" value="Herbert Obermeier"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PERSONAL"/> - <column name="ID" value="182783dc-9ca6-469c-8f5b-1c732a0c4830"/> - <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> - <column name="PROPKEY" value="firstname"/> - <column name="PROPVAL" value="Herbert"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PERSONAL"/> - <column name="ID" value="3a555e19-4f2e-4327-98cc-515658c7c17f"/> - <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> - <column name="PROPKEY" value="lastname"/> - <column name="PROPVAL" value="Obermeier"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="ROLE"/> - <column name="ID" value="fbd983eb-e30b-4dee-b2c5-d682727a614b"/> - <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> - <column name="PROPKEY" value="roleNames"/> - <column name="PROPVAL" value="INTERNAL_ADMINISTRATOR"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PASSWORD"/> - <column name="ID" value="98a96f11-de67-4efb-8977-5dc459f3f396"/> - <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> - <column name="PROPKEY" value="password"/> - <column name="PROPVAL" value="SHA256S:8BA6557C1C12BD7B9FF24147B71ECB36AC04CD6F7F0E7C84677E06C0CA6EAFD5:3FFDE946723B844B3F5B21D3AE1CF87FAC182CC21D1EDA3F76E781C3F63EEE9F"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PASSWORD"/> - <column name="ID" value="68a5bb62-d0f7-4268-881f-d86466ad67c3"/> - <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> - <column name="PROPKEY" value="passwordChanged"/> - <column name="PROPVAL" value="1533122217399"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="230a9a3b-92d9-474b-a10f-8e5ac63d9a12"/> - <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> - <column name="PROPKEY" value="email"/> - <column name="PROPVAL" value="h.obermeier@domain.local"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="b1ef9091-a7e1-4800-9e7e-ed72aa419124"/> - <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> - <column name="PROPKEY" value="calendarID"/> - <column name="PROPVAL" value="h.obermeier@domain.local"/> - </insert> - <rollback> - <delete tableName="ASYS_USERS"> - <where>NAME = ?</where> - <whereParams> - <param value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65" /> - </whereParams> - </delete> - </rollback> -</changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="j.hoermanns" id="f9502718-5fca-4a3c-a439-22b28a6a4866"> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="a501ba6e-4229-4bcc-9587-3e5b3516f1b5"/> + <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> + <column name="PROPKEY" value="lastModified"/> + <column name="PROPVAL" value="1544193908535"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="e7a50a5e-7208-4821-b223-720721067edb"/> + <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> + <column name="PROPKEY" value="contactID"/> + <column name="PROPVAL" value="57d524f6-ad66-4550-be83-fee6e31b7a52"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="3cd16b02-ea88-4a95-b837-95cd4e989094"/> + <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> + <column name="PROPKEY" value="name"/> + <column name="PROPVAL" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="c1114ba2-3a61-460f-868b-af15e1113a87"/> + <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> + <column name="PROPKEY" value="title"/> + <column name="PROPVAL" value="Herbert Obermeier"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PERSONAL"/> + <column name="ID" value="182783dc-9ca6-469c-8f5b-1c732a0c4830"/> + <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> + <column name="PROPKEY" value="firstname"/> + <column name="PROPVAL" value="Herbert"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PERSONAL"/> + <column name="ID" value="3a555e19-4f2e-4327-98cc-515658c7c17f"/> + <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> + <column name="PROPKEY" value="lastname"/> + <column name="PROPVAL" value="Obermeier"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="ROLE"/> + <column name="ID" value="fbd983eb-e30b-4dee-b2c5-d682727a614b"/> + <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> + <column name="PROPKEY" value="roleNames"/> + <column name="PROPVAL" value="INTERNAL_ADMINISTRATOR"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PASSWORD"/> + <column name="ID" value="98a96f11-de67-4efb-8977-5dc459f3f396"/> + <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> + <column name="PROPKEY" value="password"/> + <column name="PROPVAL" value="SHA256S:8BA6557C1C12BD7B9FF24147B71ECB36AC04CD6F7F0E7C84677E06C0CA6EAFD5:3FFDE946723B844B3F5B21D3AE1CF87FAC182CC21D1EDA3F76E781C3F63EEE9F"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PASSWORD"/> + <column name="ID" value="68a5bb62-d0f7-4268-881f-d86466ad67c3"/> + <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> + <column name="PROPKEY" value="passwordChanged"/> + <column name="PROPVAL" value="1533122217399"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="230a9a3b-92d9-474b-a10f-8e5ac63d9a12"/> + <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> + <column name="PROPKEY" value="email"/> + <column name="PROPVAL" value="h.obermeier@domain.local"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="b1ef9091-a7e1-4800-9e7e-ed72aa419124"/> + <column name="NAME" value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65"/> + <column name="PROPKEY" value="calendarID"/> + <column name="PROPVAL" value="h.obermeier@domain.local"/> + </insert> + <rollback> + <delete tableName="ASYS_USERS"> + <where>NAME = ?</where> + <whereParams> + <param value="_____USER_c8625e26-1597-4ce9-9558-3fb787892e65" /> + </whereParams> + </delete> + </rollback> +</changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Lisa_Sommer.xml b/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Lisa_Sommer.xml index de5783854340aa5e5d8c23c17fb8701841fe5401..127523a4a751669d6f30bf1ef8894a89d96f68d9 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Lisa_Sommer.xml +++ b/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Lisa_Sommer.xml @@ -1,112 +1,112 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="j.hoermanns" id="d0cbed0a-5977-456f-b410-7f4a80c17cfd"> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="f139e953-b295-4bbd-927e-b894ff4d3b67"/> - <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> - <column name="PROPKEY" value="lastModified"/> - <column name="PROPVAL" value="1544193908535"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="0a73d381-b0a1-4156-b9c2-3c6e1d909ff0"/> - <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> - <column name="PROPKEY" value="contactID"/> - <column name="PROPVAL" value="ef345d11-a40d-59e0-a24c-afcb6095d2cb"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="3264f099-27f8-4d8d-a471-01536ef8bdbd"/> - <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> - <column name="PROPKEY" value="name"/> - <column name="PROPVAL" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="54e6a89d-5283-4966-8780-b93cbca97b29"/> - <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> - <column name="PROPKEY" value="title"/> - <column name="PROPVAL" value="Lisa Sommer"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PERSONAL"/> - <column name="ID" value="f3403820-b7ee-4e90-8c4b-881d8ccc223b"/> - <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> - <column name="PROPKEY" value="firstname"/> - <column name="PROPVAL" value="Lisa"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PERSONAL"/> - <column name="ID" value="3cedc3be-ad6d-489a-a8c9-84bf96363229"/> - <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> - <column name="PROPKEY" value="lastname"/> - <column name="PROPVAL" value="Sommer"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="ROLE"/> - <column name="ID" value="9dc8712b-384b-4e62-9fab-22982c1a8acc"/> - <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> - <column name="PROPKEY" value="roleNames"/> - <column name="PROPVAL" value="INTERNAL_ADMINISTRATOR"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PASSWORD"/> - <column name="ID" value="a4de6db6-fc43-4bc4-b3fd-75bb7602a08c"/> - <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> - <column name="PROPKEY" value="password"/> - <column name="PROPVAL" value="SHA256S:8BA6557C1C12BD7B9FF24147B71ECB36AC04CD6F7F0E7C84677E06C0CA6EAFD5:3FFDE946723B844B3F5B21D3AE1CF87FAC182CC21D1EDA3F76E781C3F63EEE9F"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PASSWORD"/> - <column name="ID" value="8479dc65-f3eb-43fe-9161-92e2e5bd7a52"/> - <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> - <column name="PROPKEY" value="passwordChanged"/> - <column name="PROPVAL" value="1533122217399"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="535e6910-1e5c-45dd-89cc-8695266d2563"/> - <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> - <column name="PROPKEY" value="email"/> - <column name="PROPVAL" value="demo@domain.local"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="518fa115-27f6-42af-883d-f234229df8f5"/> - <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> - <column name="PROPKEY" value="calendarID"/> - <column name="PROPVAL" value="demo@domain.local"/> - </insert> - <rollback> - <delete tableName="ASYS_USERS"> - <where>NAME = ?</where> - <whereParams> - <param value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9" /> - </whereParams> - </delete> - </rollback> -</changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="j.hoermanns" id="d0cbed0a-5977-456f-b410-7f4a80c17cfd"> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="f139e953-b295-4bbd-927e-b894ff4d3b67"/> + <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> + <column name="PROPKEY" value="lastModified"/> + <column name="PROPVAL" value="1544193908535"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="0a73d381-b0a1-4156-b9c2-3c6e1d909ff0"/> + <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> + <column name="PROPKEY" value="contactID"/> + <column name="PROPVAL" value="ef345d11-a40d-59e0-a24c-afcb6095d2cb"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="3264f099-27f8-4d8d-a471-01536ef8bdbd"/> + <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> + <column name="PROPKEY" value="name"/> + <column name="PROPVAL" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="54e6a89d-5283-4966-8780-b93cbca97b29"/> + <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> + <column name="PROPKEY" value="title"/> + <column name="PROPVAL" value="Lisa Sommer"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PERSONAL"/> + <column name="ID" value="f3403820-b7ee-4e90-8c4b-881d8ccc223b"/> + <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> + <column name="PROPKEY" value="firstname"/> + <column name="PROPVAL" value="Lisa"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PERSONAL"/> + <column name="ID" value="3cedc3be-ad6d-489a-a8c9-84bf96363229"/> + <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> + <column name="PROPKEY" value="lastname"/> + <column name="PROPVAL" value="Sommer"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="ROLE"/> + <column name="ID" value="9dc8712b-384b-4e62-9fab-22982c1a8acc"/> + <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> + <column name="PROPKEY" value="roleNames"/> + <column name="PROPVAL" value="INTERNAL_ADMINISTRATOR"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PASSWORD"/> + <column name="ID" value="a4de6db6-fc43-4bc4-b3fd-75bb7602a08c"/> + <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> + <column name="PROPKEY" value="password"/> + <column name="PROPVAL" value="SHA256S:8BA6557C1C12BD7B9FF24147B71ECB36AC04CD6F7F0E7C84677E06C0CA6EAFD5:3FFDE946723B844B3F5B21D3AE1CF87FAC182CC21D1EDA3F76E781C3F63EEE9F"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PASSWORD"/> + <column name="ID" value="8479dc65-f3eb-43fe-9161-92e2e5bd7a52"/> + <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> + <column name="PROPKEY" value="passwordChanged"/> + <column name="PROPVAL" value="1533122217399"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="535e6910-1e5c-45dd-89cc-8695266d2563"/> + <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> + <column name="PROPKEY" value="email"/> + <column name="PROPVAL" value="demo@domain.local"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="518fa115-27f6-42af-883d-f234229df8f5"/> + <column name="NAME" value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9"/> + <column name="PROPKEY" value="calendarID"/> + <column name="PROPVAL" value="demo@domain.local"/> + </insert> + <rollback> + <delete tableName="ASYS_USERS"> + <where>NAME = ?</where> + <whereParams> + <param value="_____USER_883d4192-8150-4d64-ad53-d2435c5d63e9" /> + </whereParams> + </delete> + </rollback> +</changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Susanne_Lustig.xml b/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Susanne_Lustig.xml index 6f36cf117b7feda2f6e2d0deb4ef6127ed701bee..d69b80a262fde90f2f6ac552996c9fbd5d8d3ea8 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Susanne_Lustig.xml +++ b/.liquibase/_____SYSTEMALIAS/basic/init/data/example_asys_users/Susanne_Lustig.xml @@ -1,112 +1,112 @@ -<?xml version="1.1" encoding="UTF-8" standalone="no"?> -<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="j.hoermanns" id="88a254de-509f-4eba-a88d-8539ca8cd37f"> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="b5dd10e8-188d-477d-ae61-a3c36da643a8"/> - <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> - <column name="PROPKEY" value="lastModified"/> - <column name="PROPVAL" value="1544193908535"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="7f566326-c405-4238-8974-d92aafab0b80"/> - <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> - <column name="PROPKEY" value="contactID"/> - <column name="PROPVAL" value="1a67eaa7-21da-4a18-97ab-755ac5cb74f7"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="1525c79d-2f48-4fa4-b2e7-1a5a6cb502e8"/> - <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> - <column name="PROPKEY" value="name"/> - <column name="PROPVAL" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="8ee8c986-72da-49d6-87eb-403b0994203a"/> - <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> - <column name="PROPKEY" value="title"/> - <column name="PROPVAL" value="Susanne Lustig"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PERSONAL"/> - <column name="ID" value="2360c964-f456-423c-83f7-79ec57aff10f"/> - <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> - <column name="PROPKEY" value="firstname"/> - <column name="PROPVAL" value="Susanne"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PERSONAL"/> - <column name="ID" value="504e660a-8c64-41e3-99c3-e39b5f2ee0ce"/> - <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> - <column name="PROPKEY" value="lastname"/> - <column name="PROPVAL" value="Lustig"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="ROLE"/> - <column name="ID" value="e753cd61-fcb6-4b89-8f29-93b875ccc388"/> - <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> - <column name="PROPKEY" value="roleNames"/> - <column name="PROPVAL" value="INTERNAL_ADMINISTRATOR"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PASSWORD"/> - <column name="ID" value="e4d362f3-8bc3-4dd5-9b1c-d338017b5aaa"/> - <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> - <column name="PROPKEY" value="password"/> - <column name="PROPVAL" value="SHA256S:8BA6557C1C12BD7B9FF24147B71ECB36AC04CD6F7F0E7C84677E06C0CA6EAFD5:3FFDE946723B844B3F5B21D3AE1CF87FAC182CC21D1EDA3F76E781C3F63EEE9F"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="PASSWORD"/> - <column name="ID" value="a796eef7-72b6-435a-adbc-4e9356fcd35d"/> - <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> - <column name="PROPKEY" value="passwordChanged"/> - <column name="PROPVAL" value="1533122217399"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="8b8a49a6-7909-422d-8d55-5f70503946fe"/> - <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> - <column name="PROPKEY" value="email"/> - <column name="PROPVAL" value="s.lustig@meinefirma.de"/> - </insert> - <insert tableName="ASYS_USERS"> - <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> - <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> - <column name="GROUPID" value="BASIC"/> - <column name="ID" value="665922d4-e0b4-4f36-b907-0e0e73a1bffc"/> - <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> - <column name="PROPKEY" value="calendarID"/> - <column name="PROPVAL" value="s.lustig@meinefirma.de"/> - </insert> - <rollback> - <delete tableName="ASYS_USERS"> - <where>NAME = ?</where> - <whereParams> - <param value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea" /> - </whereParams> - </delete> - </rollback> -</changeSet> +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="j.hoermanns" id="88a254de-509f-4eba-a88d-8539ca8cd37f"> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="b5dd10e8-188d-477d-ae61-a3c36da643a8"/> + <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> + <column name="PROPKEY" value="lastModified"/> + <column name="PROPVAL" value="1544193908535"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="7f566326-c405-4238-8974-d92aafab0b80"/> + <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> + <column name="PROPKEY" value="contactID"/> + <column name="PROPVAL" value="1a67eaa7-21da-4a18-97ab-755ac5cb74f7"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="1525c79d-2f48-4fa4-b2e7-1a5a6cb502e8"/> + <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> + <column name="PROPKEY" value="name"/> + <column name="PROPVAL" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="8ee8c986-72da-49d6-87eb-403b0994203a"/> + <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> + <column name="PROPKEY" value="title"/> + <column name="PROPVAL" value="Susanne Lustig"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PERSONAL"/> + <column name="ID" value="2360c964-f456-423c-83f7-79ec57aff10f"/> + <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> + <column name="PROPKEY" value="firstname"/> + <column name="PROPVAL" value="Susanne"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PERSONAL"/> + <column name="ID" value="504e660a-8c64-41e3-99c3-e39b5f2ee0ce"/> + <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> + <column name="PROPKEY" value="lastname"/> + <column name="PROPVAL" value="Lustig"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="ROLE"/> + <column name="ID" value="e753cd61-fcb6-4b89-8f29-93b875ccc388"/> + <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> + <column name="PROPKEY" value="roleNames"/> + <column name="PROPVAL" value="INTERNAL_ADMINISTRATOR"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PASSWORD"/> + <column name="ID" value="e4d362f3-8bc3-4dd5-9b1c-d338017b5aaa"/> + <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> + <column name="PROPKEY" value="password"/> + <column name="PROPVAL" value="SHA256S:8BA6557C1C12BD7B9FF24147B71ECB36AC04CD6F7F0E7C84677E06C0CA6EAFD5:3FFDE946723B844B3F5B21D3AE1CF87FAC182CC21D1EDA3F76E781C3F63EEE9F"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="PASSWORD"/> + <column name="ID" value="a796eef7-72b6-435a-adbc-4e9356fcd35d"/> + <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> + <column name="PROPKEY" value="passwordChanged"/> + <column name="PROPVAL" value="1533122217399"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="8b8a49a6-7909-422d-8d55-5f70503946fe"/> + <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> + <column name="PROPKEY" value="email"/> + <column name="PROPVAL" value="s.lustig@meinefirma.de"/> + </insert> + <insert tableName="ASYS_USERS"> + <column name="DATE_EDIT" valueDate="2018-12-07T15:45:08.535"/> + <column name="DATE_NEW" valueDate="2018-05-25T09:52:30.361"/> + <column name="GROUPID" value="BASIC"/> + <column name="ID" value="665922d4-e0b4-4f36-b907-0e0e73a1bffc"/> + <column name="NAME" value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea"/> + <column name="PROPKEY" value="calendarID"/> + <column name="PROPVAL" value="s.lustig@meinefirma.de"/> + </insert> + <rollback> + <delete tableName="ASYS_USERS"> + <where>NAME = ?</where> + <whereParams> + <param value="_____USER_7c71ba90-f7a8-4e13-8cbe-e64730dc86ea" /> + </whereParams> + </delete> + </rollback> +</changeSet> </databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/_____SYSTEMALIAS/basic/init/data/insert_asys_system.xml b/.liquibase/_____SYSTEMALIAS/basic/init/data/insert_asys_system.xml index 38d99e05952657760911852cb369a4853b78e69e..ae1ca17581144adecfa0ba8a2043589a187d6063 100644 --- a/.liquibase/_____SYSTEMALIAS/basic/init/data/insert_asys_system.xml +++ b/.liquibase/_____SYSTEMALIAS/basic/init/data/insert_asys_system.xml @@ -7,7 +7,7 @@ <column name="DATE_NEW" valueDate="2018-05-24T14:53:57.763"/> <column name="KIND" valueNumeric="600"/> <column name="NAME" value="_____SYSTEM_SYSDB_VERSION"/> - <column name="TITLE" value="2.6.0"/> + <column name="TITLE" value="2.7.0"/> <column name="USER_EDIT" value="_____DESIGNERANONYM"/> <column name="USER_NEW" value="_____DESIGNERANONYM"/> <column name="XMLDATA" valueBlobFile="defaultBlob/_____system_sysdb_version.xml"/> diff --git a/.liquibase/_____SYSTEMALIAS/changelog.xml b/.liquibase/_____SYSTEMALIAS/changelog.xml index 3b0876c54ea8b7ac1d1ad2e6d15f6cb1c8c68b9d..eff6802896736834f311fff91c44d6ac40bc5c45 100644 --- a/.liquibase/_____SYSTEMALIAS/changelog.xml +++ b/.liquibase/_____SYSTEMALIAS/changelog.xml @@ -1,7 +1,7 @@ -<?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"> - <include file="basic/init/init.xml"/> - <include file="basic/init/init.xml"/> - <include file="basic/2019.2/changelog.xml"/> - <include file="basic/init/system_aliasTestdata.xml"/> -</databaseChangeLog> +<?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"> + <include file="basic/init/init.xml"/> + <include file="basic/init/init.xml"/> + <include file="basic/2019.2/changelog.xml"/> + <include file="basic/init/system_aliasTestdata.xml"/> +</databaseChangeLog> diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/address/entityfields/country/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/address/entityfields/country/customproperties/translate4log/property.js index 3951889f460b2c87e5a592e7241d8aa1e2656033..b7b4c8e045a71a997420bb2da092ded73666e5a2 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/address/entityfields/country/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/address/entityfields/country/customproperties/translate4log/property.js @@ -1,7 +1,7 @@ -import("system.result"); -import("Country_lib"); -import("Loghistory_lib"); - -var params = Translate4LogParams.load(); -var countryName = CountryUtils.getLatinNameByIso2(params.value, params.locale); +import("system.result"); +import("Country_lib"); +import("Loghistory_lib"); + +var params = Translate4LogParams.load(); +var countryName = CountryUtils.getLatinNameByIso2(params.value, params.locale); result.string(countryName); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/contact/entityfields/language/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/contact/entityfields/language/customproperties/translate4log/property.js index 51a8cec57a7a635681f7c183f2fe3c369db8f692..55d6016dbe6d95243137051081e9960282555264 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/contact/entityfields/language/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/contact/entityfields/language/customproperties/translate4log/property.js @@ -1,7 +1,7 @@ -import("system.result"); -import("Loghistory_lib"); -import("Keyword_lib"); - -var params = Translate4LogParams.load(); -var res = LanguageKeywordUtils.getViewValue(params.value, params.locale); +import("system.result"); +import("Loghistory_lib"); +import("Keyword_lib"); + +var params = Translate4LogParams.load(); +var res = LanguageKeywordUtils.getViewValue(params.value, params.locale); result.string(res); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/contact/entityfields/organisation_id/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/contact/entityfields/organisation_id/customproperties/translate4log/property.js index 013c797ac6b08eb3d113c1bb045c0e12cbc51558..633ea8076f023b45b5944ebcb37cdab18455ab1d 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/contact/entityfields/organisation_id/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/contact/entityfields/organisation_id/customproperties/translate4log/property.js @@ -1,8 +1,8 @@ -import("Contact_lib"); -import("system.db"); -import("system.result"); -import("Loghistory_lib"); - -var params = Translate4LogParams.load(); -var res = OrganisationUtils.getNameByContactId(params.value); -result.string(res); +import("Contact_lib"); +import("system.db"); +import("system.result"); +import("Loghistory_lib"); + +var params = Translate4LogParams.load(); +var res = OrganisationUtils.getNameByContactId(params.value); +result.string(res); diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/contact_id/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/contact_id/customproperties/translate4log/property.js index f35d37ab09f059046b3b6f3d672cf01c66fe58c4..26c85ce005d6c71d8ddb60561653f4d1330bd24c 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/contact_id/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/contact_id/customproperties/translate4log/property.js @@ -1,7 +1,7 @@ -import("Contact_lib"); -import("system.result"); -import("Loghistory_lib"); - -var params = Translate4LogParams.load(); -var res = ContactUtils.getFullTitleByContactId(params.value); +import("Contact_lib"); +import("system.result"); +import("Loghistory_lib"); + +var params = Translate4LogParams.load(); +var res = ContactUtils.getFullTitleByContactId(params.value); result.string(res); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/language/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/language/customproperties/translate4log/property.js index 51a8cec57a7a635681f7c183f2fe3c369db8f692..55d6016dbe6d95243137051081e9960282555264 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/language/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/language/customproperties/translate4log/property.js @@ -1,7 +1,7 @@ -import("system.result"); -import("Loghistory_lib"); -import("Keyword_lib"); - -var params = Translate4LogParams.load(); -var res = LanguageKeywordUtils.getViewValue(params.value, params.locale); +import("system.result"); +import("Loghistory_lib"); +import("Keyword_lib"); + +var params = Translate4LogParams.load(); +var res = LanguageKeywordUtils.getViewValue(params.value, params.locale); result.string(res); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/net/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/net/customproperties/translate4log/property.js index b5d36c467b8589e884de0ca28daa71f36b9cb894..496dbb034e1dd3c959289e4e610fc83156416ca6 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/net/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/net/customproperties/translate4log/property.js @@ -1,8 +1,8 @@ -import("system.translate"); -import("system.vars"); -import("system.result"); -import("system.text"); -import("Loghistory_lib"); - -var params = Translate4LogParams.load(); +import("system.translate"); +import("system.vars"); +import("system.result"); +import("system.text"); +import("Loghistory_lib"); + +var params = Translate4LogParams.load(); result.string(text.formatDouble(params.value, translate.text("#,##0.00", params.locale))); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/salesproject_id/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/salesproject_id/customproperties/translate4log/property.js index e6c0e291bce1ba0d265e5577c4d8ad43ebdd6751..c7b37e7e5dcae4e2c4da115790c35aca283d6e74 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/salesproject_id/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/salesproject_id/customproperties/translate4log/property.js @@ -1,11 +1,11 @@ -import("system.result"); -import("system.db"); -import("Sql_lib"); -import("Loghistory_lib"); - -var params = Translate4LogParams.load(); - -var res = db.cell(SqlCondition.begin() - .andPrepare("SALESPROJECT.SALESPROJECTID", params.value) - .buildSql("select PROJECTTITLE from SALESPROJECT")); +import("system.result"); +import("system.db"); +import("Sql_lib"); +import("Loghistory_lib"); + +var params = Translate4LogParams.load(); + +var res = db.cell(SqlCondition.begin() + .andPrepare("SALESPROJECT.SALESPROJECTID", params.value) + .buildSql("select PROJECTTITLE from SALESPROJECT")); result.string(res); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/vat/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/vat/customproperties/translate4log/property.js index b5d36c467b8589e884de0ca28daa71f36b9cb894..496dbb034e1dd3c959289e4e610fc83156416ca6 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/vat/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/offer/entityfields/vat/customproperties/translate4log/property.js @@ -1,8 +1,8 @@ -import("system.translate"); -import("system.vars"); -import("system.result"); -import("system.text"); -import("Loghistory_lib"); - -var params = Translate4LogParams.load(); +import("system.translate"); +import("system.vars"); +import("system.result"); +import("system.text"); +import("Loghistory_lib"); + +var params = Translate4LogParams.load(); result.string(text.formatDouble(params.value, translate.text("#,##0.00", params.locale))); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/product/entityfields/contact_id/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/product/entityfields/contact_id/customproperties/translate4log/property.js index 9f7c5917a2317799200776b01469d749759bd6bb..0046811b3b14af08f749b46cdc3151f2109c0220 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/product/entityfields/contact_id/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/product/entityfields/contact_id/customproperties/translate4log/property.js @@ -1,8 +1,8 @@ -import("Contact_lib"); -import("system.db"); -import("system.result"); -import("Loghistory_lib"); - -var params = Translate4LogParams.load(); -var res = OrganisationUtils.getNameByContactId(params.value); +import("Contact_lib"); +import("system.db"); +import("system.result"); +import("Loghistory_lib"); + +var params = Translate4LogParams.load(); +var res = OrganisationUtils.getNameByContactId(params.value); result.string(res); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/contact_id/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/contact_id/customproperties/translate4log/property.js index f35d37ab09f059046b3b6f3d672cf01c66fe58c4..26c85ce005d6c71d8ddb60561653f4d1330bd24c 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/contact_id/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/contact_id/customproperties/translate4log/property.js @@ -1,7 +1,7 @@ -import("Contact_lib"); -import("system.result"); -import("Loghistory_lib"); - -var params = Translate4LogParams.load(); -var res = ContactUtils.getFullTitleByContactId(params.value); +import("Contact_lib"); +import("system.result"); +import("Loghistory_lib"); + +var params = Translate4LogParams.load(); +var res = ContactUtils.getFullTitleByContactId(params.value); result.string(res); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/language/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/language/customproperties/translate4log/property.js index 51a8cec57a7a635681f7c183f2fe3c369db8f692..55d6016dbe6d95243137051081e9960282555264 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/language/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/language/customproperties/translate4log/property.js @@ -1,7 +1,7 @@ -import("system.result"); -import("Loghistory_lib"); -import("Keyword_lib"); - -var params = Translate4LogParams.load(); -var res = LanguageKeywordUtils.getViewValue(params.value, params.locale); +import("system.result"); +import("Loghistory_lib"); +import("Keyword_lib"); + +var params = Translate4LogParams.load(); +var res = LanguageKeywordUtils.getViewValue(params.value, params.locale); result.string(res); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/salesproject_id/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/salesproject_id/customproperties/translate4log/property.js index bbd18ac96b9ab2e4fea6d490e56490432f36b8ac..d92ff2dc841e7ce025d71bdd381ed45b90924885 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/salesproject_id/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/salesproject_id/customproperties/translate4log/property.js @@ -1,8 +1,8 @@ -import("Loghistory_lib"); -import("system.vars"); -import("system.result"); -import("Salesproject_lib"); - -var params = Translate4LogParams.load(); -var id = params.value; -result.string(Salesproject.getSalesProjectTitleById(id)); +import("Loghistory_lib"); +import("system.vars"); +import("system.result"); +import("Salesproject_lib"); + +var params = Translate4LogParams.load(); +var id = params.value; +result.string(Salesproject.getSalesProjectTitleById(id)); diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesproject/entityfields/contact_id/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesproject/entityfields/contact_id/customproperties/translate4log/property.js index 013c797ac6b08eb3d113c1bb045c0e12cbc51558..633ea8076f023b45b5944ebcb37cdab18455ab1d 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesproject/entityfields/contact_id/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesproject/entityfields/contact_id/customproperties/translate4log/property.js @@ -1,8 +1,8 @@ -import("Contact_lib"); -import("system.db"); -import("system.result"); -import("Loghistory_lib"); - -var params = Translate4LogParams.load(); -var res = OrganisationUtils.getNameByContactId(params.value); -result.string(res); +import("Contact_lib"); +import("system.db"); +import("system.result"); +import("Loghistory_lib"); + +var params = Translate4LogParams.load(); +var res = OrganisationUtils.getNameByContactId(params.value); +result.string(res); diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesproject/entityfields/reasons/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesproject/entityfields/reasons/customproperties/translate4log/property.js index a7737018152259c0bba392dc328acf5db34ef5b1..ae7a4a855253f880b0d6a9ae26530a6644fa8c6e 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesproject/entityfields/reasons/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesproject/entityfields/reasons/customproperties/translate4log/property.js @@ -1,30 +1,30 @@ -import("system.result"); -import("Keyword_lib"); -import("system.text"); -import("Loghistory_lib"); -import("KeywordRegistry_basic") - -var params = Translate4LogParams.load(); -var reasons = params.value; -if (reasons) -{ - reasons = text.decodeMS(reasons); - if (reasons.length) - { - var keywordMap = {}; - KeywordUtils.getEntryNamesAndIdsByContainer( - $KeywordRegistry.salesprojectWonLost(), - params.locale - ).forEach(function (keyword) - { - this[keyword[0]] = keyword[1]; - }, keywordMap); - reasons = reasons.map(function (reasonId) - { - return this[reasonId]; - }, keywordMap).join(", "); - } - else - reasons = ""; -} +import("system.result"); +import("Keyword_lib"); +import("system.text"); +import("Loghistory_lib"); +import("KeywordRegistry_basic") + +var params = Translate4LogParams.load(); +var reasons = params.value; +if (reasons) +{ + reasons = text.decodeMS(reasons); + if (reasons.length) + { + var keywordMap = {}; + KeywordUtils.getEntryNamesAndIdsByContainer( + $KeywordRegistry.salesprojectWonLost(), + params.locale + ).forEach(function (keyword) + { + this[keyword[0]] = keyword[1]; + }, keywordMap); + reasons = reasons.map(function (reasonId) + { + return this[reasonId]; + }, keywordMap).join(", "); + } + else + reasons = ""; +} result.string(reasons); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesproject_member/entityfields/contact_id/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesproject_member/entityfields/contact_id/customproperties/translate4log/property.js index f35d37ab09f059046b3b6f3d672cf01c66fe58c4..26c85ce005d6c71d8ddb60561653f4d1330bd24c 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesproject_member/entityfields/contact_id/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesproject_member/entityfields/contact_id/customproperties/translate4log/property.js @@ -1,7 +1,7 @@ -import("Contact_lib"); -import("system.result"); -import("Loghistory_lib"); - -var params = Translate4LogParams.load(); -var res = ContactUtils.getFullTitleByContactId(params.value); +import("Contact_lib"); +import("system.result"); +import("Loghistory_lib"); + +var params = Translate4LogParams.load(); +var res = ContactUtils.getFullTitleByContactId(params.value); result.string(res); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/task/entityfields/editor_contact_id/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/task/entityfields/editor_contact_id/customproperties/translate4log/property.js index f35d37ab09f059046b3b6f3d672cf01c66fe58c4..26c85ce005d6c71d8ddb60561653f4d1330bd24c 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/task/entityfields/editor_contact_id/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/task/entityfields/editor_contact_id/customproperties/translate4log/property.js @@ -1,7 +1,7 @@ -import("Contact_lib"); -import("system.result"); -import("Loghistory_lib"); - -var params = Translate4LogParams.load(); -var res = ContactUtils.getFullTitleByContactId(params.value); +import("Contact_lib"); +import("system.result"); +import("Loghistory_lib"); + +var params = Translate4LogParams.load(); +var res = ContactUtils.getFullTitleByContactId(params.value); result.string(res); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/task/entityfields/requestor_contact_id/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/task/entityfields/requestor_contact_id/customproperties/translate4log/property.js index f35d37ab09f059046b3b6f3d672cf01c66fe58c4..26c85ce005d6c71d8ddb60561653f4d1330bd24c 100644 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/task/entityfields/requestor_contact_id/customproperties/translate4log/property.js +++ b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/task/entityfields/requestor_contact_id/customproperties/translate4log/property.js @@ -1,7 +1,7 @@ -import("Contact_lib"); -import("system.result"); -import("Loghistory_lib"); - -var params = Translate4LogParams.load(); -var res = ContactUtils.getFullTitleByContactId(params.value); +import("Contact_lib"); +import("system.result"); +import("Loghistory_lib"); + +var params = Translate4LogParams.load(); +var res = ContactUtils.getFullTitleByContactId(params.value); result.string(res); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js b/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js index 55757887e4fe36f49983380be08686380f9d2e35..b2022eb648b08cd5b436a248d35430560222f5e7 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/offer/query.js @@ -1,28 +1,28 @@ -import("system.SQLTYPES"); -import("system.translate"); -import("system.result"); -import("system.vars"); -import("system.calendars"); -import("system.db"); -import("Keyword_lib"); -import("Sql_lib"); -import("KeywordRegistry_basic"); - -var sqlQuery, sqlHelper, queryCondition, affectedIds; -queryCondition = ""; -if (vars.exists("$local.idvalue")) { - affectedIds = vars.get("$local.idvalue"); - queryCondition = "where OFFERID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')"; - //TODO: refactor this for incremental indexer (injections?) -} -sqlHelper = new SqlMaskingUtils(); -sqlQuery = "select OFFERID, " - + sqlHelper.concat([sqlHelper.cast("OFFERCODE", SQLTYPES.CHAR, 10), KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.offerStatus(), "OFFER.STATUS")], " | ") - + " as TITLECOLUMN, " - + sqlHelper.concat(["ORGANISATION.NAME", "'| " + translate.text("Description") + ":'", sqlHelper.castLob("OFFER.INFO", 250)]) - + " as DESCCOLUMN, OFFERCODE, ORGANISATION.NAME, CUSTOMERCODE " - + " from OFFER " - + " join CONTACT on OFFER.CONTACT_ID = CONTACTID " - + " join ORGANISATION on ORGANISATIONID = CONTACT.ORGANISATION_ID " - + queryCondition + " order by OFFERCODE "; +import("system.SQLTYPES"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("system.calendars"); +import("system.db"); +import("Keyword_lib"); +import("Sql_lib"); +import("KeywordRegistry_basic"); + +var sqlQuery, sqlHelper, queryCondition, affectedIds; +queryCondition = ""; +if (vars.exists("$local.idvalue")) { + affectedIds = vars.get("$local.idvalue"); + queryCondition = "where OFFERID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')"; + //TODO: refactor this for incremental indexer (injections?) +} +sqlHelper = new SqlMaskingUtils(); +sqlQuery = "select OFFERID, " + + sqlHelper.concat([sqlHelper.cast("OFFERCODE", SQLTYPES.CHAR, 10), KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.offerStatus(), "OFFER.STATUS")], " | ") + + " as TITLECOLUMN, " + + sqlHelper.concat(["ORGANISATION.NAME", "'| " + translate.text("Description") + ":'", sqlHelper.castLob("OFFER.INFO", 250)]) + + " as DESCCOLUMN, OFFERCODE, ORGANISATION.NAME, CUSTOMERCODE " + + " from OFFER " + + " join CONTACT on OFFER.CONTACT_ID = CONTACTID " + + " join ORGANISATION on ORGANISATIONID = CONTACT.ORGANISATION_ID " + + queryCondition + " order by OFFERCODE "; result.string(sqlQuery); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/indexsearchgroups/organisation/affectedIds.js b/aliasDefinition/Data_alias/indexsearchgroups/organisation/affectedIds.js index 3d5f6ab938f0bce2a12aa26736fbf4f24657e158..2741393ffd7c0907b067f6250129b5db6373eab4 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/organisation/affectedIds.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/organisation/affectedIds.js @@ -1,42 +1,42 @@ -import("system.db"); -import("system.result"); -import("system.vars"); -import("IndexSearch_lib"); -import("Sql_lib"); - -var infoContainer, onUpdFn, tableName, res; - -tableName = vars.get("$local.table"); -idValue = vars.get("$local.idvalue"); -infoContainer = IndexsearchUtils.createAffectedInfoContainer(idValue, null, vars.get("$local.action") - ,function (){return vars.get("$local.columns")} - ,function (){return vars.get("$local.oldvalues")} - ,function (){return vars.get("$local.values")}); - -switch (tableName) -{ - case "CONTACT": - res = [idValue]; - break; - case "ORGANISATION": - res = db.array(db.COLUMN, "select CONTACT.CONTACTID from CONTACT where CONTACT.PERSON_ID is null and CONTACT.ORGANISATION_ID = '" + idValue + "'"); - break; - case "ADDRESS": - res = IndexsearchUtils.getAffectedIdValues("CONTACT_ID", infoContainer, function (id){ - return db.array(db.COLUMN, ["select ADDRESS.CONTACT_ID from ADDRESS where ADDRESS.ADDRESSID = ?", [ - [id, SqlUtils.getSingleColumnType("ADDRESS", "ADDRESSID")] - ]]); - }); - break; - case "COMMUNICATION": - res = IndexsearchUtils.getAffectedIdValues("CONTACT_ID", infoContainer, function (id){ - return db.array(db.COLUMN, ["select COMMUNICATION.CONTACT_ID from COMMUNICATION where COMMUNICATIONID = ?", [ - [id, SqlUtils.getSingleColumnType("COMMUNICATION", "COMMUNICATIONID")] - ]]); - }); - break; -} - -if (res) { - result.object(res); +import("system.db"); +import("system.result"); +import("system.vars"); +import("IndexSearch_lib"); +import("Sql_lib"); + +var infoContainer, onUpdFn, tableName, res; + +tableName = vars.get("$local.table"); +idValue = vars.get("$local.idvalue"); +infoContainer = IndexsearchUtils.createAffectedInfoContainer(idValue, null, vars.get("$local.action") + ,function (){return vars.get("$local.columns")} + ,function (){return vars.get("$local.oldvalues")} + ,function (){return vars.get("$local.values")}); + +switch (tableName) +{ + case "CONTACT": + res = [idValue]; + break; + case "ORGANISATION": + res = db.array(db.COLUMN, "select CONTACT.CONTACTID from CONTACT where CONTACT.PERSON_ID is null and CONTACT.ORGANISATION_ID = '" + idValue + "'"); + break; + case "ADDRESS": + res = IndexsearchUtils.getAffectedIdValues("CONTACT_ID", infoContainer, function (id){ + return db.array(db.COLUMN, ["select ADDRESS.CONTACT_ID from ADDRESS where ADDRESS.ADDRESSID = ?", [ + [id, SqlUtils.getSingleColumnType("ADDRESS", "ADDRESSID")] + ]]); + }); + break; + case "COMMUNICATION": + res = IndexsearchUtils.getAffectedIdValues("CONTACT_ID", infoContainer, function (id){ + return db.array(db.COLUMN, ["select COMMUNICATION.CONTACT_ID from COMMUNICATION where COMMUNICATIONID = ?", [ + [id, SqlUtils.getSingleColumnType("COMMUNICATION", "COMMUNICATIONID")] + ]]); + }); + break; +} + +if (res) { + result.object(res); } \ No newline at end of file diff --git a/aliasDefinition/Data_alias/indexsearchgroups/organisation/query.js b/aliasDefinition/Data_alias/indexsearchgroups/organisation/query.js index f05cf8b21c1fffd80488dc3e08a7c1230fabf526..bbcf88e142807d6dc584df47ee496b22912a63b8 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/organisation/query.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/organisation/query.js @@ -1,33 +1,33 @@ -import("system.translate"); -import("system.result"); -import("system.vars"); -import("system.calendars"); -import("system.db"); -import("Sql_lib"); -import("Communication_lib"); - -var sqlQuery, sqlHelper, queryCondition, affectedIds; -if (vars.exists("$local.idvalue")) { - affectedIds = vars.get("$local.idvalue"); - queryCondition = "where CONTACT.CONTACTID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')"; - //TODO: refactor this for incremental indexer (injections?) -} -sqlHelper = new SqlMaskingUtils(); -sqlQuery = "select CONTACT.CONTACTID " - + "," + sqlHelper.concat(["ORGANISATION.NAME", "'|'", "ORGANISATION.CUSTOMERCODE"]) - + " as TITLECOLUMN " - + "," + sqlHelper.concat([ - sqlHelper.concat(["defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO", "'-'" - ,"defaultAddress.COUNTRY", "defaultAddress.ZIP", "defaultAddress.CITY"]) - ,sqlHelper.concat(["'" + translate.text("Phone") + ":'", "(" + CommUtil.getStandardSubSqlPhone() + ")"]) - ,sqlHelper.concat(["'" + translate.text("Email") + ":'", "(" + CommUtil.getStandardSubSqlMail() + ")"]) - ], " | ") + " as DESCCOLUMN " - //additional indexed fields - + ",ORGANISATION.NAME, COMMUNICATION.ADDR " - + " from ORGANISATION " - + " join CONTACT on CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID and CONTACT.PERSON_ID is null " - + " left join ADDRESS defaultAddress on defaultAddress.ADDRESSID = CONTACT.ADDRESS_ID " - + " left join COMMUNICATION on COMMUNICATION.CONTACT_ID = CONTACT.CONTACTID " - + (queryCondition || "") - + " order by CONTACT.CONTACTID "; +import("system.translate"); +import("system.result"); +import("system.vars"); +import("system.calendars"); +import("system.db"); +import("Sql_lib"); +import("Communication_lib"); + +var sqlQuery, sqlHelper, queryCondition, affectedIds; +if (vars.exists("$local.idvalue")) { + affectedIds = vars.get("$local.idvalue"); + queryCondition = "where CONTACT.CONTACTID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')"; + //TODO: refactor this for incremental indexer (injections?) +} +sqlHelper = new SqlMaskingUtils(); +sqlQuery = "select CONTACT.CONTACTID " + + "," + sqlHelper.concat(["ORGANISATION.NAME", "'|'", "ORGANISATION.CUSTOMERCODE"]) + + " as TITLECOLUMN " + + "," + sqlHelper.concat([ + sqlHelper.concat(["defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO", "'-'" + ,"defaultAddress.COUNTRY", "defaultAddress.ZIP", "defaultAddress.CITY"]) + ,sqlHelper.concat(["'" + translate.text("Phone") + ":'", "(" + CommUtil.getStandardSubSqlPhone() + ")"]) + ,sqlHelper.concat(["'" + translate.text("Email") + ":'", "(" + CommUtil.getStandardSubSqlMail() + ")"]) + ], " | ") + " as DESCCOLUMN " + //additional indexed fields + + ",ORGANISATION.NAME, COMMUNICATION.ADDR " + + " from ORGANISATION " + + " join CONTACT on CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID and CONTACT.PERSON_ID is null " + + " left join ADDRESS defaultAddress on defaultAddress.ADDRESSID = CONTACT.ADDRESS_ID " + + " left join COMMUNICATION on COMMUNICATION.CONTACT_ID = CONTACT.CONTACTID " + + (queryCondition || "") + + " order by CONTACT.CONTACTID "; result.string(sqlQuery); \ No newline at end of file diff --git a/aliasDefinition/Data_alias/indexsearchgroups/person/affectedIds.js b/aliasDefinition/Data_alias/indexsearchgroups/person/affectedIds.js index dcec7271b09b93af609f612ff8c3f69468ec2dc0..488e44a0b18fefa686a5a6640db77c4564faae81 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/person/affectedIds.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/person/affectedIds.js @@ -1,46 +1,46 @@ -import("system.db"); -import("system.result"); -import("system.vars"); -import("IndexSearch_lib"); -import("Sql_lib"); - -var infoContainer, onUpdFn, tableName, res; - -tableName = vars.get("$local.table"); -idValue = vars.get("$local.idvalue"); -infoContainer = IndexsearchUtils.createAffectedInfoContainer(idValue, null, vars.get("$local.action") - ,function (){return vars.get("$local.columns")} - ,function (){return vars.get("$local.oldvalues")} - ,function (){return vars.get("$local.values")}); - -switch (tableName) -{ - case "CONTACT": - res = [idValue]; - break; - case "PERSON": - res = db.array(db.COLUMN, "select CONTACT.CONTACTID from CONTACT where CONTACT.PERSON_ID = '" + idValue + "'"); - break; - case "ORGANISATION": - res = db.array(db.COLUMN, "select CONTACT.CONTACTID from CONTACT where CONTACT.PERSON_ID is not null and CONTACT.ORGANISATION_ID = '" + idValue + "'"); - break; - case "ADDRESS": - res = IndexsearchUtils.getAffectedIdValues("CONTACT_ID", infoContainer, function (id){ - return db.array(db.COLUMN, ["select ADDRESS.CONTACT_ID from ADDRESS where ADDRESS.ADDRESSID = ?", [ - [id, SqlUtils.getSingleColumnType("ADDRESS", "ADDRESSID")] - ]]); - }); - break; - case "COMMUNICATION": - res = IndexsearchUtils.getAffectedIdValues("CONTACT_ID", infoContainer, function (id){ - return db.array(db.COLUMN, ["select COMMUNICATION.CONTACT_ID from COMMUNICATION where COMMUNICATIONID = ?", [ - [id, SqlUtils.getSingleColumnType("COMMUNICATION", "COMMUNICATIONID")] - ]]); - }); - break; -} - -if (res) { - result.object(res); -} +import("system.db"); +import("system.result"); +import("system.vars"); +import("IndexSearch_lib"); +import("Sql_lib"); + +var infoContainer, onUpdFn, tableName, res; + +tableName = vars.get("$local.table"); +idValue = vars.get("$local.idvalue"); +infoContainer = IndexsearchUtils.createAffectedInfoContainer(idValue, null, vars.get("$local.action") + ,function (){return vars.get("$local.columns")} + ,function (){return vars.get("$local.oldvalues")} + ,function (){return vars.get("$local.values")}); + +switch (tableName) +{ + case "CONTACT": + res = [idValue]; + break; + case "PERSON": + res = db.array(db.COLUMN, "select CONTACT.CONTACTID from CONTACT where CONTACT.PERSON_ID = '" + idValue + "'"); + break; + case "ORGANISATION": + res = db.array(db.COLUMN, "select CONTACT.CONTACTID from CONTACT where CONTACT.PERSON_ID is not null and CONTACT.ORGANISATION_ID = '" + idValue + "'"); + break; + case "ADDRESS": + res = IndexsearchUtils.getAffectedIdValues("CONTACT_ID", infoContainer, function (id){ + return db.array(db.COLUMN, ["select ADDRESS.CONTACT_ID from ADDRESS where ADDRESS.ADDRESSID = ?", [ + [id, SqlUtils.getSingleColumnType("ADDRESS", "ADDRESSID")] + ]]); + }); + break; + case "COMMUNICATION": + res = IndexsearchUtils.getAffectedIdValues("CONTACT_ID", infoContainer, function (id){ + return db.array(db.COLUMN, ["select COMMUNICATION.CONTACT_ID from COMMUNICATION where COMMUNICATIONID = ?", [ + [id, SqlUtils.getSingleColumnType("COMMUNICATION", "COMMUNICATIONID")] + ]]); + }); + break; +} + +if (res) { + result.object(res); +} \ No newline at end of file diff --git a/aliasDefinition/Data_alias/indexsearchgroups/person/query.js b/aliasDefinition/Data_alias/indexsearchgroups/person/query.js index e184e55bb1769daf4875b5019d526e381a0cec54..719efe080e627c040b043e12f994c936dcf855c6 100644 --- a/aliasDefinition/Data_alias/indexsearchgroups/person/query.js +++ b/aliasDefinition/Data_alias/indexsearchgroups/person/query.js @@ -1,34 +1,34 @@ -import("system.translate"); -import("system.result"); -import("system.vars"); -import("system.calendars"); -import("system.db"); -import("Sql_lib"); -import("Communication_lib"); - -var sqlQuery, sqlHelper, queryCondition, affectedIds; -if (vars.exists("$local.idvalue")) { - affectedIds = vars.get("$local.idvalue"); - queryCondition = "where CONTACT.CONTACTID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')"; - //TODO: refactor this for incremental indexer (injections?) -} -sqlHelper = new SqlMaskingUtils(); -sqlQuery = "select CONTACT.CONTACTID " - + "," + sqlHelper.concat(["PERSON.SALUTATION", "PERSON.FIRSTNAME", "PERSON.LASTNAME", "'|'", "ORGANISATION.NAME"]) - + " as TITLECOLUMN " - + "," + sqlHelper.concat([ - sqlHelper.concat(["defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO", "'-'" - ,"defaultAddress.COUNTRY", "defaultAddress.ZIP", "defaultAddress.CITY"]) - ,sqlHelper.concat(["'" + translate.text("Phone") + ":'", "(" + CommUtil.getStandardSubSqlPhone() + ")"]) - ,sqlHelper.concat(["'" + translate.text("Email") + ":'", "(" + CommUtil.getStandardSubSqlMail() + ")"]) - ], " | ") + " as DESCCOLUMN " - //additional indexed fields - + ",ORGANISATION.NAME, COMMUNICATION.ADDR " - + " from PERSON " - + " join CONTACT on CONTACT.PERSON_ID = PERSON.PERSONID " - + " join ORGANISATION on CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID " - + " left join ADDRESS defaultAddress on defaultAddress.ADDRESSID = CONTACT.ADDRESS_ID " - + " left join COMMUNICATION on COMMUNICATION.CONTACT_ID = CONTACT.CONTACTID " - + (queryCondition || "") - + " order by CONTACT.CONTACTID "; +import("system.translate"); +import("system.result"); +import("system.vars"); +import("system.calendars"); +import("system.db"); +import("Sql_lib"); +import("Communication_lib"); + +var sqlQuery, sqlHelper, queryCondition, affectedIds; +if (vars.exists("$local.idvalue")) { + affectedIds = vars.get("$local.idvalue"); + queryCondition = "where CONTACT.CONTACTID in ('" + affectedIds.map(function (v){return db.quote(v);}).join("', '") + "')"; + //TODO: refactor this for incremental indexer (injections?) +} +sqlHelper = new SqlMaskingUtils(); +sqlQuery = "select CONTACT.CONTACTID " + + "," + sqlHelper.concat(["PERSON.SALUTATION", "PERSON.FIRSTNAME", "PERSON.LASTNAME", "'|'", "ORGANISATION.NAME"]) + + " as TITLECOLUMN " + + "," + sqlHelper.concat([ + sqlHelper.concat(["defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO", "'-'" + ,"defaultAddress.COUNTRY", "defaultAddress.ZIP", "defaultAddress.CITY"]) + ,sqlHelper.concat(["'" + translate.text("Phone") + ":'", "(" + CommUtil.getStandardSubSqlPhone() + ")"]) + ,sqlHelper.concat(["'" + translate.text("Email") + ":'", "(" + CommUtil.getStandardSubSqlMail() + ")"]) + ], " | ") + " as DESCCOLUMN " + //additional indexed fields + + ",ORGANISATION.NAME, COMMUNICATION.ADDR " + + " from PERSON " + + " join CONTACT on CONTACT.PERSON_ID = PERSON.PERSONID " + + " join ORGANISATION on CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID " + + " left join ADDRESS defaultAddress on defaultAddress.ADDRESSID = CONTACT.ADDRESS_ID " + + " left join COMMUNICATION on COMMUNICATION.CONTACT_ID = CONTACT.CONTACTID " + + (queryCondition || "") + + " order by CONTACT.CONTACTID "; result.string(sqlQuery); \ No newline at end of file diff --git a/aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod b/aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod index a78014b1d0cd10eb39a6f9667ad3a8347db650d0..0c26684b3df443e8214fd8157e3fb00833a33d7c 100644 --- a/aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod +++ b/aliasDefinition/_____SYSTEMALIAS/_____SYSTEMALIAS.aod @@ -1,3178 +1,3178 @@ -<?xml version="1.0" encoding="UTF-8"?> -<aliasDefinition xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/aliasDefinition/1.2.0"> - <name>_____SYSTEMALIAS</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <datasourceType v="0" /> - <aliasDefinitionSub> - <aliasDefDb> - <entityGroup> - <name>entityGroup</name> - <entities> - <entityDb> - <name>ASYS_SYSTEM</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>DATE_EDIT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATE_NEW</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DESCRIPTION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ICON</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2004" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="63" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>KIND</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>NAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>TITLE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>USER_EDIT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>USER_NEW</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>XMLDATA</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2004" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_SEQUENCES</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>ID_GUID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID_HIGH</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID_LOW</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID_TABLE</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="12" /> - <size v="127" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_BINARIES</name> - <idColumn>ID</idColumn> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>BINDATA</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2004" /> - <size v="2147483647" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>CONTAINERNAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="31" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATASIZE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="-5" /> - <size v="19" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATE_EDIT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="29" /> - <scale v="9" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATE_NEW</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="29" /> - <scale v="9" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DESCRIPTION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="127" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>FILENAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="127" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="true" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>KEYWORD</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>MIMETYPE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="127" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>PARENTID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1024" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>PREVIEW</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2004" /> - <size v="2147483647" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ROW_ID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>TABLENAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="127" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>USER_EDIT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>USER_NEW</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_ICONS</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>BINDATA</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2004" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATE_EDIT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATE_NEW</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DESCRIPTION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="127" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ICON_TYPE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>USER_EDIT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>USER_NEW</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_MAILREPOSIT</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>FLAGGED</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>FOLDER</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>MAIL</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>MAILUSER</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>RECEIVEDATE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>RECENT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>RECIPIENT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="2046" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SEEN</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SENDER</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="127" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SENTDATE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SUBJECT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1023" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_MAILREPOSIT_HASH</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>MAILHASH</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="31" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>MAILINFO</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_CALENDARBACKEND</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>CLASSIFICATION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATASETID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DTEND</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DTSTART</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ELEMENTUID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="512" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ENDTIME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ENTRYTYPE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>HASALARM</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ISRECUR</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>LASTMODIFIED</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>MAILBOX</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ORGANIZER</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>OWNER</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>STARTTIME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>STATUS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="32" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SUMMARY</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>TRANSP</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="1" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>VCOMPONENT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_CALENDARLINK</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>DBALIAS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="127" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DBID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1023" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DBIDCOLUMN</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="127" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DBTABLENAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="127" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ENTRYID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="512" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ENTRYSTORE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>FRAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1023" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>TITLE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="2000" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_CALENDARSYNC</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>LASTMODIFIED</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>MASTERUID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="512" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SLAVEUID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="12" /> - <size v="512" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SUSER</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_UIDRESOLVER</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>ENTRY_TYPE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ENTRY_UID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="512" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ENTRY_USER</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_TIMER</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>LASTRUN</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>TIMERID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_FARM</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>ADDRESS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>CLIENTS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>FARMVERSION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="12" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>LICENSE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SENCODING</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SERVERID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>WORKLOAD</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_FARM_CLIENT</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>CHARACTERISTIC</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>CLIENTID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SADDRESS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SERVERID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>USERNAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_AUDIT</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>ALIAS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ATABLENAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="127" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ATIMESTAMP</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>AUSER</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATASETID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1023" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATASETNEWVALUE_BLOB</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2004" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATASETNEWVALUE_CLOB</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATASETNEWVALUE_STRING</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1023" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>LOGTIME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>LOGTYPE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>LOGWRITERUID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="127" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SQLACTION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="1" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>AOCOLUMNNAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="127" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="true" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_SYNCSLAVES</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>ACTIVE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DESCRIPTION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DEVICEID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="40" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>INTERVALL</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>LASTSYNC</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SLAVEUID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="12" /> - <size v="127" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_USERS</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>DATE_EDIT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATE_NEW</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>GROUPID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>NAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>PROPKEY</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1024" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>PROPVAL</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1024" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>PROPVAL_CLOB</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_USERTOKEN</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>DATE_EDIT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATE_NEW</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>GROUP_ID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>LOGIN_USER_ID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>REFERENCE_USER_ID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>USER_EDIT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>USER_NEW</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>VALID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>VALID_FROM</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>VALID_ONCE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>VALID_TO</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_ALIASCONFIG</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>ALIASID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATE_EDIT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATE_NEW</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DESCRIPTION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ICON</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2004" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>KIND</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>NAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SERVERID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>TENANTID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>TITLE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>USER_EDIT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>USER_NEW</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>XMLDATA</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2004" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_NOTIFICATIONS</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>BACKPACK</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>CAPTION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="512" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>CONTENTID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>CREATIONDATE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="-5" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DESCRIPTION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1023" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>FORCEDPRIORITY</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ICON_INFO</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1023" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>LIFETIME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="-5" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>LINK_INFO</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1023" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ORIGINATORNAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>RECIPIENTUSERIDS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>STATE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="16" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>TYPECODE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>USERID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>VERSION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_DASHLETS</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>COLSPAN</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>CONFIGURATION_ID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DASHBOARD_ID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>FRAGMENT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1023" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>PARAMETERS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ROWSPAN</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>TITLE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>X</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>Y</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_DASHLETCONFIGURATIONS</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>CATEGORIES</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DESCRIPTION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="512" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>FRAGMENT</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1023" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>FRAGMENT_CUSTOMIZABLE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ICON</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="true" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>NAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>PARAMETERS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>PREVIEW</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>REQUIRES_CONFIGURATION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>SINGLETON</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>STORE_ROLES</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1023" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>TITLE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>VIEW_NAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_XMPP_OFFLINESTANZA</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>ATIMESTAMP</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>JID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="64" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>STANZA</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_XMPP_HISTORY</name> - <auditSyncConfig> - <name>auditSyncConfig</name> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>ATIMESTAMP</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>CHATMARKER</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="16" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>JID_FROM</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="64" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>JID_TO</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="64" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>MSGMARKER</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="255" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="true" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>MSGTYPE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="16" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>STANZA</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="0" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>AOSYS_CONFIGURATION</name> - <dbName></dbName> - <idGeneratorType v="1" /> - <idGeneratorInterval v="1" /> - <title></title> - <description></description> - <auditSyncConfig> - <name>auditSyncConfig</name> - <auditMode v="0" /> - <syncActive v="false" /> - <syncComplete v="true" /> - <syncDirection v="1" /> - <syncIds></syncIds> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>OPTIONID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>OPTIONNAME</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="12" /> - <size v="128" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="true" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>USERNAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="50" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ROLEID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="60" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DELDATE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="29" /> - <scale v="9" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>OPTIONVALUE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="128" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - <entityDb> - <name>ASYS_NOTIFICATIONCONTENTS</name> - <dbName></dbName> - <idColumn>CONTENTID</idColumn> - <idGeneratorType v="0" /> - <idGeneratorInterval v="1" /> - <documentation></documentation> - <title></title> - <description></description> - <auditSyncConfig> - <name>auditSyncConfig</name> - <auditMode v="0" /> - <syncActive v="false" /> - <syncComplete v="true" /> - <syncDirection v="1" /> - <syncIds></syncIds> - </auditSyncConfig> - <entityFields> - <entityFieldDb> - <name>CONTENTID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="true" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>FORCEDPRIORITY</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="10" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ICON_INFO</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1023" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>CREATIONDATE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="-5" /> - <size v="19" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>LIFETIME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="-5" /> - <size v="19" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DESCRIPTION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1023" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>LINK_INFO</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="1023" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>VERSION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="10" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>RECIPIENTUSERIDS</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="2147483647" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>TYPECODE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>BACKPACK</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="2005" /> - <size v="2147483647" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>CAPTION</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="512" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>ORIGINATORNAME</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="12" /> - <size v="63" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> - </entities> - </entityGroup> - </aliasDefDb> - </aliasDefinitionSub> -</aliasDefinition> +<?xml version="1.0" encoding="UTF-8"?> +<aliasDefinition xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/aliasDefinition/1.2.0"> + <name>_____SYSTEMALIAS</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <datasourceType v="0" /> + <aliasDefinitionSub> + <aliasDefDb> + <entityGroup> + <name>entityGroup</name> + <entities> + <entityDb> + <name>ASYS_SYSTEM</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DESCRIPTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ICON</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2004" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="63" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>KIND</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>NAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TITLE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>XMLDATA</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2004" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_SEQUENCES</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>ID_GUID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID_HIGH</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID_LOW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID_TABLE</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="12" /> + <size v="127" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_BINARIES</name> + <idColumn>ID</idColumn> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>BINDATA</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2004" /> + <size v="2147483647" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CONTAINERNAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="31" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATASIZE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-5" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="29" /> + <scale v="9" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="29" /> + <scale v="9" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DESCRIPTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="127" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>FILENAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="127" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>KEYWORD</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MIMETYPE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="127" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>PARENTID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1024" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>PREVIEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2004" /> + <size v="2147483647" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ROW_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TABLENAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="127" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_ICONS</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>BINDATA</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2004" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DESCRIPTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="127" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ICON_TYPE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_MAILREPOSIT</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>FLAGGED</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>FOLDER</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MAIL</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MAILUSER</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>RECEIVEDATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>RECENT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>RECIPIENT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="2046" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SEEN</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SENDER</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="127" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SENTDATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SUBJECT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_MAILREPOSIT_HASH</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>MAILHASH</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="31" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MAILINFO</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_CALENDARBACKEND</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>CLASSIFICATION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATASETID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DTEND</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DTSTART</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ELEMENTUID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="512" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ENDTIME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ENTRYTYPE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>HASALARM</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ISRECUR</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LASTMODIFIED</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MAILBOX</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ORGANIZER</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>OWNER</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>STARTTIME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>STATUS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="32" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SUMMARY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TRANSP</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="1" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>VCOMPONENT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_CALENDARLINK</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>DBALIAS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="127" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DBID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DBIDCOLUMN</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="127" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DBTABLENAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="127" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ENTRYID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="512" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ENTRYSTORE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>FRAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TITLE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="2000" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_CALENDARSYNC</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>LASTMODIFIED</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MASTERUID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="512" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SLAVEUID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="12" /> + <size v="512" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SUSER</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_UIDRESOLVER</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>ENTRY_TYPE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ENTRY_UID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="512" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ENTRY_USER</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_TIMER</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>LASTRUN</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TIMERID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_FARM</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>ADDRESS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CLIENTS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>FARMVERSION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="12" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LICENSE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SENCODING</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SERVERID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>WORKLOAD</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_FARM_CLIENT</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>CHARACTERISTIC</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CLIENTID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SADDRESS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SERVERID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USERNAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_AUDIT</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>ALIAS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ATABLENAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="127" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ATIMESTAMP</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>AUSER</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATASETID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATASETNEWVALUE_BLOB</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2004" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATASETNEWVALUE_CLOB</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATASETNEWVALUE_STRING</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LOGTIME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LOGTYPE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LOGWRITERUID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="127" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SQLACTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="1" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>AOCOLUMNNAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="127" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_SYNCSLAVES</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>ACTIVE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DESCRIPTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DEVICEID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="40" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>INTERVALL</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LASTSYNC</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SLAVEUID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="12" /> + <size v="127" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_USERS</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>GROUPID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>NAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>PROPKEY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1024" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>PROPVAL</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1024" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>PROPVAL_CLOB</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_USERTOKEN</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>GROUP_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LOGIN_USER_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>REFERENCE_USER_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>VALID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>VALID_FROM</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>VALID_ONCE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>VALID_TO</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_ALIASCONFIG</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>ALIASID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DATE_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DESCRIPTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ICON</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2004" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>KIND</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>NAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SERVERID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TENANTID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TITLE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_EDIT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USER_NEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>XMLDATA</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2004" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_NOTIFICATIONS</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>BACKPACK</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CAPTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="512" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CONTENTID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CREATIONDATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-5" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DESCRIPTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>FORCEDPRIORITY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ICON_INFO</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LIFETIME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-5" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LINK_INFO</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ORIGINATORNAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>RECIPIENTUSERIDS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>STATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="16" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TYPECODE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USERID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>VERSION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_DASHLETS</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>COLSPAN</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CONFIGURATION_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DASHBOARD_ID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>FRAGMENT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>PARAMETERS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ROWSPAN</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TITLE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>X</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>Y</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_DASHLETCONFIGURATIONS</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>CATEGORIES</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DESCRIPTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="512" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>FRAGMENT</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>FRAGMENT_CUSTOMIZABLE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ICON</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="true" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>NAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>PARAMETERS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>PREVIEW</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>REQUIRES_CONFIGURATION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>SINGLETON</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>STORE_ROLES</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TITLE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>VIEW_NAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_XMPP_OFFLINESTANZA</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>ATIMESTAMP</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>JID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="64" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>STANZA</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_XMPP_HISTORY</name> + <auditSyncConfig> + <name>auditSyncConfig</name> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>ATIMESTAMP</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CHATMARKER</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="16" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>JID_FROM</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="64" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>JID_TO</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="64" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MSGMARKER</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="true" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>MSGTYPE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="16" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>STANZA</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="0" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>AOSYS_CONFIGURATION</name> + <dbName></dbName> + <idGeneratorType v="1" /> + <idGeneratorInterval v="1" /> + <title></title> + <description></description> + <auditSyncConfig> + <name>auditSyncConfig</name> + <auditMode v="0" /> + <syncActive v="false" /> + <syncComplete v="true" /> + <syncDirection v="1" /> + <syncIds></syncIds> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>OPTIONID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>OPTIONNAME</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="12" /> + <size v="128" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>USERNAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="50" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ROLEID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="60" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DELDATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="93" /> + <size v="29" /> + <scale v="9" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>OPTIONVALUE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="128" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + <entityDb> + <name>ASYS_NOTIFICATIONCONTENTS</name> + <dbName></dbName> + <idColumn>CONTENTID</idColumn> + <idGeneratorType v="0" /> + <idGeneratorInterval v="1" /> + <documentation></documentation> + <title></title> + <description></description> + <auditSyncConfig> + <name>auditSyncConfig</name> + <auditMode v="0" /> + <syncActive v="false" /> + <syncComplete v="true" /> + <syncDirection v="1" /> + <syncIds></syncIds> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>CONTENTID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>FORCEDPRIORITY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ICON_INFO</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CREATIONDATE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-5" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LIFETIME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="-5" /> + <size v="19" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DESCRIPTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>LINK_INFO</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="1023" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>VERSION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="4" /> + <size v="10" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>RECIPIENTUSERIDS</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="2147483647" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>TYPECODE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>BACKPACK</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2005" /> + <size v="2147483647" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>CAPTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="512" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>ORIGINATORNAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> + </entities> + </entityGroup> + </aliasDefDb> + </aliasDefinitionSub> +</aliasDefinition> diff --git a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod index 0d177e8626540ded4bfa599f68b8485e5fa17b26..245a171eaede18eb3f600361a4abec090b981d07 100644 --- a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod +++ b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod @@ -1,55 +1,55 @@ -<?xml version="1.0" encoding="UTF-8"?> -<application xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/application/1.2.0"> - <name>_____SYSTEM_APPLICATION_NEON</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <entityNode name="_____SYSTEM_COMPANY" kind="200"> - <node name="CONTACTS" kind="123" title="Contactmanagement"> - <icon>VAADIN:CONNECT</icon> - <node name="Group1" kind="123" title=""> - <node name="Person" kind="10077" /> - <node name="Organisation" kind="10077" /> - <node name="Activity" kind="10077" /> - <node name="Task" kind="10077" /> - <node name="INTERNAL_ADMINISTRATOR" kind="159" /> - </node> - </node> - <node name="SALES" kind="123" title="Sales"> - <icon>VAADIN:BRIEFCASE</icon> - <node name="Group2" kind="123" title=""> - <node name="Vertriebsdashboard" kind="10090" /> - <node name="Salesproject" kind="10077" /> - <node name="Offer" kind="10077" /> - <node name="Order" kind="10077" /> - <node name="Contract" kind="10077" /> - <node name="Product" kind="10077" /> - <node name="Turnover" kind="10077" /> - <node name="INTERNAL_ADMINISTRATOR" kind="159" /> - </node> - </node> - <node name="Marketing" kind="123" title="Marketing"> - <icon>VAADIN:GROUP</icon> - <node name="Group4" kind="123" title=""> - <node name="Campaign" kind="10077" /> - <node name="INTERNAL_ADMINISTRATOR" kind="159" /> - </node> - </node> - <node name="ADMINISTRATION" kind="123" title="Administration"> - <icon>VAADIN:CONTROLLER</icon> - <node name="Group3" kind="123" title=""> - <node name="Notification" kind="10077" /> - <node name="Attribute" kind="10077" /> - <node name="DocumentTemplate" kind="10077" /> - <node name="Employee" kind="10077" /> - <node name="KeywordEntry" kind="10077" /> - <node name="KeywordAttribute" kind="10077" /> - <node name="ObjectRelationType" kind="10077" /> - <node name="ClassificationAdmin" kind="10077" /> - <node name="INTERNAL_ADMINISTRATOR" kind="159" /> - </node> - </node> - </entityNode> - <company> - <name>company</name> - <title></title> - </company> -</application> +<?xml version="1.0" encoding="UTF-8"?> +<application xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/application/1.2.0"> + <name>_____SYSTEM_APPLICATION_NEON</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <entityNode name="_____SYSTEM_COMPANY" kind="200"> + <node name="CONTACTS" kind="123" title="Contactmanagement"> + <icon>VAADIN:CONNECT</icon> + <node name="Group1" kind="123" title=""> + <node name="Person" kind="10077" /> + <node name="Organisation" kind="10077" /> + <node name="Activity" kind="10077" /> + <node name="Task" kind="10077" /> + <node name="INTERNAL_ADMINISTRATOR" kind="159" /> + </node> + </node> + <node name="SALES" kind="123" title="Sales"> + <icon>VAADIN:BRIEFCASE</icon> + <node name="Group2" kind="123" title=""> + <node name="Vertriebsdashboard" kind="10090" /> + <node name="Salesproject" kind="10077" /> + <node name="Offer" kind="10077" /> + <node name="Order" kind="10077" /> + <node name="Contract" kind="10077" /> + <node name="Product" kind="10077" /> + <node name="Turnover" kind="10077" /> + <node name="INTERNAL_ADMINISTRATOR" kind="159" /> + </node> + </node> + <node name="Marketing" kind="123" title="Marketing"> + <icon>VAADIN:GROUP</icon> + <node name="Group4" kind="123" title=""> + <node name="Campaign" kind="10077" /> + <node name="INTERNAL_ADMINISTRATOR" kind="159" /> + </node> + </node> + <node name="ADMINISTRATION" kind="123" title="Administration"> + <icon>VAADIN:CONTROLLER</icon> + <node name="Group3" kind="123" title=""> + <node name="Notification" kind="10077" /> + <node name="Attribute" kind="10077" /> + <node name="DocumentTemplate" kind="10077" /> + <node name="Employee" kind="10077" /> + <node name="KeywordEntry" kind="10077" /> + <node name="KeywordAttribute" kind="10077" /> + <node name="ObjectRelationType" kind="10077" /> + <node name="ClassificationAdmin" kind="10077" /> + <node name="INTERNAL_ADMINISTRATOR" kind="159" /> + </node> + </node> + </entityNode> + <company> + <name>company</name> + <title></title> + </company> +</application> diff --git a/entity/360Degree_entity/entityfields/active/dropDownProcess.js b/entity/360Degree_entity/entityfields/active/dropDownProcess.js index 7eff15173e4d7fb99e918373472cf56decbaf018..bc12e10ce67ee0a941506b4c1ee45061f0bec8da 100644 --- a/entity/360Degree_entity/entityfields/active/dropDownProcess.js +++ b/entity/360Degree_entity/entityfields/active/dropDownProcess.js @@ -1,5 +1,5 @@ -import("system.vars"); -import("system.result"); -import("system.translate"); - +import("system.vars"); +import("system.result"); +import("system.translate"); + result.object([["true", translate.text("True")], ["false",translate.text("False")]]); \ No newline at end of file diff --git a/entity/360Degree_entity/entityfields/context_name/valueProcess.js b/entity/360Degree_entity/entityfields/context_name/valueProcess.js index 8c43c3b5ddb6ec03c7926371e2cecce626eb8410..c8249b9af58f6b84e153a29ba499123847ba46be 100644 --- a/entity/360Degree_entity/entityfields/context_name/valueProcess.js +++ b/entity/360Degree_entity/entityfields/context_name/valueProcess.js @@ -1,6 +1,6 @@ -import("system.logging"); -import("system.translate"); -import("system.vars"); -import("system.result"); -logging.log(" -> " + vars.getString("$field.TARGET_CONTEXT")); +import("system.logging"); +import("system.translate"); +import("system.vars"); +import("system.result"); +logging.log(" -> " + vars.getString("$field.TARGET_CONTEXT")); result.string(translate.text(vars.getString("$field.TARGET_CONTEXT"))); \ No newline at end of file diff --git a/entity/360Degree_entity/entityfields/icon/valueProcess.js b/entity/360Degree_entity/entityfields/icon/valueProcess.js index 53cfb3d009757a5271e3c4583befe083d22ea745..fd816d6a0266c5bc480b336ab9b06bb6b64a6fe2 100644 --- a/entity/360Degree_entity/entityfields/icon/valueProcess.js +++ b/entity/360Degree_entity/entityfields/icon/valueProcess.js @@ -1,20 +1,20 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); - -var context = vars.getString("$field.TARGET_CONTEXT"); -switch (context) -{ - case "Salesproject": - result.string("VAADIN:BOOK_DOLLAR"); - break; - case "Offer": - result.string("VAADIN:CART"); - break; - case "Contract": - result.string("VAADIN:FILE_TEXT"); - break; - case "Campaign": - result.string("NEON:GROUP_APPOINTMENT"); - break; +import("system.vars"); +import("system.result"); +import("system.neon"); + +var context = vars.getString("$field.TARGET_CONTEXT"); +switch (context) +{ + case "Salesproject": + result.string("VAADIN:BOOK_DOLLAR"); + break; + case "Offer": + result.string("VAADIN:CART"); + break; + case "Contract": + result.string("VAADIN:FILE_TEXT"); + break; + case "Campaign": + result.string("NEON:GROUP_APPOINTMENT"); + break; } \ No newline at end of file diff --git a/entity/360Degree_entity/entityfields/newmodule/children/newcampaignparticipant/onActionProcess.js b/entity/360Degree_entity/entityfields/newmodule/children/newcampaignparticipant/onActionProcess.js index b4e2d8936bab62bc9dd4fabb953c89196553d6bf..2da9bd242b4a572c7b8e6351c8f8e1e801f16bbf 100644 --- a/entity/360Degree_entity/entityfields/newmodule/children/newcampaignparticipant/onActionProcess.js +++ b/entity/360Degree_entity/entityfields/newmodule/children/newcampaignparticipant/onActionProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("Campaign_lib"); - +import("system.vars"); +import("Campaign_lib"); + CampaignUtils.addParticipant(vars.getString("$param.ObjectRowId_param")); \ No newline at end of file diff --git a/entity/360Degree_entity/entityfields/organisationobjects/children/objecttype_param/valueProcess.js b/entity/360Degree_entity/entityfields/organisationobjects/children/objecttype_param/valueProcess.js index 4c08b444ed989e17cfafc0ba94739f06c17d5538..2fd7cd5c9882122a55934ae57599384bedbeba61 100644 --- a/entity/360Degree_entity/entityfields/organisationobjects/children/objecttype_param/valueProcess.js +++ b/entity/360Degree_entity/entityfields/organisationobjects/children/objecttype_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.object(["Salesproject", "Offer", "Contract", "Campaign"]); \ No newline at end of file diff --git a/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js b/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js index 05350e2675ad54b2bb8422803c3951e3c7af1b1c..1af59e612029614a514ac91e1262b33b9850b423 100644 --- a/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js +++ b/entity/360Degree_entity/entityfields/personobjects/children/objecttype_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.object(["Offer", "Contract", "Campaign"]); \ No newline at end of file diff --git a/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js b/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js index 545b0cad0f767f9840e56bcda691232e22976cf0..b1d24bc5309a054d3e56784549324c982ec8291a 100644 --- a/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js @@ -12,9 +12,9 @@ if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param" var active; var selectMap = ContextUtils.getSelectMap () - if(vars.exists("$local.filter") && vars.get("$local.filter") ) + if(vars.exists("$local.userfilter") && vars.get("$local.userfilter") ) { - var filter = JSON.parse(vars.getString("$local.filter")); + var filter = JSON.parse(vars.getString("$local.userfilter")); if(filter.childs != null && filter.childs.length > 0) { filter.childs.forEach(function(child) diff --git a/entity/Activity_entity/afterUiInit.js b/entity/Activity_entity/afterUiInit.js index 952cd632d70758bac2e56f8a47ff41c38f5eff1a..197890963f947dad1e00b0fcb6541e6b2106bf95 100644 --- a/entity/Activity_entity/afterUiInit.js +++ b/entity/Activity_entity/afterUiInit.js @@ -1,11 +1,11 @@ -import("Context_lib"); -import("Attribute_lib"); -import("system.neon"); -import("system.vars"); -import("ActivityTask_lib"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - ActivityUtils.addLinkRecords("$param.ObjectId_param", "$param.RowId_param", "$param.PresetLinks_param", "$field.PARENT_CONTEXT", "$field.PARENT_ID"); - AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +import("Context_lib"); +import("Attribute_lib"); +import("system.neon"); +import("system.vars"); +import("ActivityTask_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + ActivityUtils.addLinkRecords("$param.ObjectId_param", "$param.RowId_param", "$param.PresetLinks_param", "$field.PARENT_CONTEXT", "$field.PARENT_ID"); + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); } \ No newline at end of file diff --git a/entity/Activity_entity/entityfields/direction_icon/valueProcess.js b/entity/Activity_entity/entityfields/direction_icon/valueProcess.js index 5f9400b7f7159921ac01da7022222d4724785e07..e85335e068c6fbcbc078e01a4a361663c2089a55 100644 --- a/entity/Activity_entity/entityfields/direction_icon/valueProcess.js +++ b/entity/Activity_entity/entityfields/direction_icon/valueProcess.js @@ -1,31 +1,31 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); -import("KeywordRegistry_basic"); -import("Keyword_lib"); - -var direction = vars.getString("$field.DIRECTION"); - -if (direction) -{ - // cache to prevent multiple loading of the same icon-names - if (vars.exists("$context.cache_activity_dir-icon_" + direction) && vars.get("$context.cache_activity_dir-icon_" + direction)) - { - result.string(vars.get("$context.cache_activity_dir-icon_" + direction)); - } - else - { - var res = KeywordUtils.getAttributeRelationsByKey(direction, $KeywordRegistry.activityDirection())["icon"]; - - if (res) - { - result.string(res); - vars.set("$context.cache_activity_dir-icon_" + direction, res); - } - else - { - result.string(""); - vars.set("$context.cache_activity_dir-icon_" + direction, ""); - } - } +import("system.vars"); +import("system.result"); +import("system.neon"); +import("KeywordRegistry_basic"); +import("Keyword_lib"); + +var direction = vars.getString("$field.DIRECTION"); + +if (direction) +{ + // cache to prevent multiple loading of the same icon-names + if (vars.exists("$context.cache_activity_dir-icon_" + direction) && vars.get("$context.cache_activity_dir-icon_" + direction)) + { + result.string(vars.get("$context.cache_activity_dir-icon_" + direction)); + } + else + { + var res = KeywordUtils.getAttributeRelationsByKey(direction, $KeywordRegistry.activityDirection())["icon"]; + + if (res) + { + result.string(res); + vars.set("$context.cache_activity_dir-icon_" + direction, res); + } + else + { + result.string(""); + vars.set("$context.cache_activity_dir-icon_" + direction, ""); + } + } } \ No newline at end of file diff --git a/entity/AddressType_entity/contentTitleProcess.js b/entity/AddressType_entity/contentTitleProcess.js index 554c806f6eba1b0e1f71ea1b1b1b9dc8f032b094..4c4e2663bd53256524a7f8c0e7e725909de92093 100644 --- a/entity/AddressType_entity/contentTitleProcess.js +++ b/entity/AddressType_entity/contentTitleProcess.js @@ -1,5 +1,5 @@ -import("system.vars"); -import("system.translate"); -import("system.result"); - +import("system.vars"); +import("system.translate"); +import("system.result"); + result.string(translate.text(vars.get("$field.TITLE"))); \ No newline at end of file diff --git a/entity/AddressValidation_entity/contentTitleProcess.js b/entity/AddressValidation_entity/contentTitleProcess.js index 137427fc9c938b9d7ad105818377943e2c1a8e0a..30fb575601790eed36da8614b22e5fdbea1fbf25 100644 --- a/entity/AddressValidation_entity/contentTitleProcess.js +++ b/entity/AddressValidation_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.VALUE")); \ No newline at end of file diff --git a/entity/AddressValidation_entity/entityfields/cityvalidation/children/type_param/valueProcess.js b/entity/AddressValidation_entity/entityfields/cityvalidation/children/type_param/valueProcess.js index 1f9eec452781c6cf79d5ed9620ea1f6205fe91b3..084f00d1815908c3c4241fc03c680834e03fc8d5 100644 --- a/entity/AddressValidation_entity/entityfields/cityvalidation/children/type_param/valueProcess.js +++ b/entity/AddressValidation_entity/entityfields/cityvalidation/children/type_param/valueProcess.js @@ -1,4 +1,4 @@ -import("WsValidation_lib"); -import("system.result"); - +import("WsValidation_lib"); +import("system.result"); + result.string(WsValidationType.get().TYPE_CITY.key); \ No newline at end of file diff --git a/entity/AddressValidation_entity/entityfields/cityvalidatior/children/type_param/valueProcess.js b/entity/AddressValidation_entity/entityfields/cityvalidatior/children/type_param/valueProcess.js index c930ba5500de6db2fd4c5be17e9a82eeaf0bbab8..13cff9aeebc26164694f2247135dd422d22e34d9 100644 --- a/entity/AddressValidation_entity/entityfields/cityvalidatior/children/type_param/valueProcess.js +++ b/entity/AddressValidation_entity/entityfields/cityvalidatior/children/type_param/valueProcess.js @@ -1,4 +1,4 @@ -import("WsValidation_lib"); -import("system.result"); - +import("WsValidation_lib"); +import("system.result"); + result.string(AddressValidationType.get().TYPE_CITY.key); \ No newline at end of file diff --git a/entity/AddressValidation_entity/entityfields/zipvalidaton/children/type_param/valueProcess.js b/entity/AddressValidation_entity/entityfields/zipvalidaton/children/type_param/valueProcess.js index c7eee1bb589766b9b53cf172226fed90a5da8087..93426dc98cda1bfc555d22dcbac1929ad4872919 100644 --- a/entity/AddressValidation_entity/entityfields/zipvalidaton/children/type_param/valueProcess.js +++ b/entity/AddressValidation_entity/entityfields/zipvalidaton/children/type_param/valueProcess.js @@ -1,4 +1,4 @@ -import("WsValidation_lib"); -import("system.result"); - +import("WsValidation_lib"); +import("system.result"); + result.string(WsValidationType.get().TYPE_ZIP.key); \ No newline at end of file diff --git a/entity/AddressValidation_entity/entityfields/zipvalidator/children/type_param/valueProcess.js b/entity/AddressValidation_entity/entityfields/zipvalidator/children/type_param/valueProcess.js index 7b6b2602657cd575adc7421c172011c6199de1d0..5f9b21b7b7fa32df271168911f5c488761ea22f4 100644 --- a/entity/AddressValidation_entity/entityfields/zipvalidator/children/type_param/valueProcess.js +++ b/entity/AddressValidation_entity/entityfields/zipvalidator/children/type_param/valueProcess.js @@ -1,4 +1,4 @@ -import("WsValidation_lib"); -import("system.result"); - +import("WsValidation_lib"); +import("system.result"); + result.string(AddressValidationType.get().TYPE_ZIP.key); \ No newline at end of file diff --git a/entity/Address_entity/contentTitleProcess.js b/entity/Address_entity/contentTitleProcess.js index ac434e08fc805cf4625c53597a99c120c44579a3..2f8e2e5b44f1420fe86855aed58f69743a040802 100644 --- a/entity/Address_entity/contentTitleProcess.js +++ b/entity/Address_entity/contentTitleProcess.js @@ -1,6 +1,6 @@ -import("system.vars"); -import("system.result"); -import("PostalAddress_lib"); - -var addr = AddressUtils.formatOneline(vars.get("$field.COUNTRY") , vars.get("$field.ADDRESS") , vars.get("$field.BUILDINGNO") , vars.get("$field.ZIP"), vars.get("$field.CITY")); +import("system.vars"); +import("system.result"); +import("PostalAddress_lib"); + +var addr = AddressUtils.formatOneline(vars.get("$field.COUNTRY") , vars.get("$field.ADDRESS") , vars.get("$field.BUILDINGNO") , vars.get("$field.ZIP"), vars.get("$field.CITY")); result.string(addr); \ No newline at end of file diff --git a/entity/Address_entity/entityfields/addr_type/valueProcess.js b/entity/Address_entity/entityfields/addr_type/valueProcess.js index f029c00849738723a2473eb8c4318e9b776fdc16..c8587c547389fc6e1700d7e41010997e4f05c5a8 100644 --- a/entity/Address_entity/entityfields/addr_type/valueProcess.js +++ b/entity/Address_entity/entityfields/addr_type/valueProcess.js @@ -1,14 +1,14 @@ -import("system.neon"); -import("system.result"); -import("system.vars"); -import("Contact_lib"); -import("KeywordRegistry_basic"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.ContactType_param")) -{ - if (vars.get("$param.ContactType_param") == Contact.TYPES.Organisation) - result.string($KeywordRegistry.addressType$office()); - else - result.string($KeywordRegistry.addressType$private()); -} - +import("system.neon"); +import("system.result"); +import("system.vars"); +import("Contact_lib"); +import("KeywordRegistry_basic"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.ContactType_param")) +{ + if (vars.get("$param.ContactType_param") == Contact.TYPES.Organisation) + result.string($KeywordRegistry.addressType$office()); + else + result.string($KeywordRegistry.addressType$private()); +} + diff --git a/entity/Address_entity/entityfields/address/mandatoryProcess.js b/entity/Address_entity/entityfields/address/mandatoryProcess.js index 7c898f01828b8da4b9712687a66dac8914b3b137..fdba45809693e06d2fa403eb0955864e64ce18c8 100644 --- a/entity/Address_entity/entityfields/address/mandatoryProcess.js +++ b/entity/Address_entity/entityfields/address/mandatoryProcess.js @@ -1,5 +1,5 @@ -import("Entity_lib"); -import("system.result"); -import("AddressEntity_lib"); - +import("Entity_lib"); +import("system.result"); +import("AddressEntity_lib"); + result.object(AddressEntityValidation.isMandatoryField()); \ No newline at end of file diff --git a/entity/Address_entity/entityfields/city/displayValueProcess.js b/entity/Address_entity/entityfields/city/displayValueProcess.js index de2c5e835eaf4fe6dd8b3521b3e17a39c9ac23c1..feac45906bc212c120bbc05a111433398994ddf2 100644 --- a/entity/Address_entity/entityfields/city/displayValueProcess.js +++ b/entity/Address_entity/entityfields/city/displayValueProcess.js @@ -1,5 +1,5 @@ -import("system.vars"); -import("system.result"); - -// needed for instant display name change if value set by neon.setFieldValue +import("system.vars"); +import("system.result"); + +// needed for instant display name change if value set by neon.setFieldValue result.string(vars.get("$this.value")) \ No newline at end of file diff --git a/entity/Address_entity/entityfields/city/mandatoryProcess.js b/entity/Address_entity/entityfields/city/mandatoryProcess.js index 7c898f01828b8da4b9712687a66dac8914b3b137..fdba45809693e06d2fa403eb0955864e64ce18c8 100644 --- a/entity/Address_entity/entityfields/city/mandatoryProcess.js +++ b/entity/Address_entity/entityfields/city/mandatoryProcess.js @@ -1,5 +1,5 @@ -import("Entity_lib"); -import("system.result"); -import("AddressEntity_lib"); - +import("Entity_lib"); +import("system.result"); +import("AddressEntity_lib"); + result.object(AddressEntityValidation.isMandatoryField()); \ No newline at end of file diff --git a/entity/Address_entity/entityfields/city/onValueChange.js b/entity/Address_entity/entityfields/city/onValueChange.js index 5634474c9dabbfeec7a11ee3c23680b765030b4a..b8245bb197f1e070f4011c302f9e7f47168fafa1 100644 --- a/entity/Address_entity/entityfields/city/onValueChange.js +++ b/entity/Address_entity/entityfields/city/onValueChange.js @@ -1,3 +1,3 @@ -import("WsValidation_lib"); - +import("WsValidation_lib"); + WsValidationUtils.setAddressFields(); \ No newline at end of file diff --git a/entity/Address_entity/entityfields/cityvalidation/children/currentvalue_param/valueProcess.js b/entity/Address_entity/entityfields/cityvalidation/children/currentvalue_param/valueProcess.js index 74c070329cde0f8edeabd0e80677b4105b3e256e..b6d717bf6d0a017888c93e57157690f2e1f44f18 100644 --- a/entity/Address_entity/entityfields/cityvalidation/children/currentvalue_param/valueProcess.js +++ b/entity/Address_entity/entityfields/cityvalidation/children/currentvalue_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.CITY")) \ No newline at end of file diff --git a/entity/Address_entity/entityfields/country/displayValueProcess.js b/entity/Address_entity/entityfields/country/displayValueProcess.js index 3eb96b525814164e667c8f223eea3be8de1da0ec..c6d030f60a71e4901c86eaffdc717c4dfc848045 100644 --- a/entity/Address_entity/entityfields/country/displayValueProcess.js +++ b/entity/Address_entity/entityfields/country/displayValueProcess.js @@ -1,8 +1,8 @@ -import("system.vars"); -import("system.result"); -import("Country_lib"); - -//TODO: temporary testing code -> will be replaced with title-mechanic -var isoCode = vars.get("$field.COUNTRY"); -var countryName = CountryUtils.getLatinNameByIso2(isoCode); +import("system.vars"); +import("system.result"); +import("Country_lib"); + +//TODO: temporary testing code -> will be replaced with title-mechanic +var isoCode = vars.get("$field.COUNTRY"); +var countryName = CountryUtils.getLatinNameByIso2(isoCode); result.string(countryName); \ No newline at end of file diff --git a/entity/Address_entity/entityfields/state/mandatoryProcess.js b/entity/Address_entity/entityfields/state/mandatoryProcess.js index 7c898f01828b8da4b9712687a66dac8914b3b137..fdba45809693e06d2fa403eb0955864e64ce18c8 100644 --- a/entity/Address_entity/entityfields/state/mandatoryProcess.js +++ b/entity/Address_entity/entityfields/state/mandatoryProcess.js @@ -1,5 +1,5 @@ -import("Entity_lib"); -import("system.result"); -import("AddressEntity_lib"); - +import("Entity_lib"); +import("system.result"); +import("AddressEntity_lib"); + result.object(AddressEntityValidation.isMandatoryField()); \ No newline at end of file diff --git a/entity/Address_entity/entityfields/zip/displayValueProcess.js b/entity/Address_entity/entityfields/zip/displayValueProcess.js index de2c5e835eaf4fe6dd8b3521b3e17a39c9ac23c1..feac45906bc212c120bbc05a111433398994ddf2 100644 --- a/entity/Address_entity/entityfields/zip/displayValueProcess.js +++ b/entity/Address_entity/entityfields/zip/displayValueProcess.js @@ -1,5 +1,5 @@ -import("system.vars"); -import("system.result"); - -// needed for instant display name change if value set by neon.setFieldValue +import("system.vars"); +import("system.result"); + +// needed for instant display name change if value set by neon.setFieldValue result.string(vars.get("$this.value")) \ No newline at end of file diff --git a/entity/Address_entity/entityfields/zip/mandatoryProcess.js b/entity/Address_entity/entityfields/zip/mandatoryProcess.js index 7c898f01828b8da4b9712687a66dac8914b3b137..fdba45809693e06d2fa403eb0955864e64ce18c8 100644 --- a/entity/Address_entity/entityfields/zip/mandatoryProcess.js +++ b/entity/Address_entity/entityfields/zip/mandatoryProcess.js @@ -1,5 +1,5 @@ -import("Entity_lib"); -import("system.result"); -import("AddressEntity_lib"); - +import("Entity_lib"); +import("system.result"); +import("AddressEntity_lib"); + result.object(AddressEntityValidation.isMandatoryField()); \ No newline at end of file diff --git a/entity/Address_entity/entityfields/zip/onValueChange.js b/entity/Address_entity/entityfields/zip/onValueChange.js index 5634474c9dabbfeec7a11ee3c23680b765030b4a..b8245bb197f1e070f4011c302f9e7f47168fafa1 100644 --- a/entity/Address_entity/entityfields/zip/onValueChange.js +++ b/entity/Address_entity/entityfields/zip/onValueChange.js @@ -1,3 +1,3 @@ -import("WsValidation_lib"); - +import("WsValidation_lib"); + WsValidationUtils.setAddressFields(); \ No newline at end of file diff --git a/entity/Address_entity/entityfields/zipvalidation/children/currentvalue_param/valueProcess.js b/entity/Address_entity/entityfields/zipvalidation/children/currentvalue_param/valueProcess.js index d9e7983e6f2422f678b9a024ace857de80d1dc1c..5b95cc2dbda4676eb8fd41482418b10dcbe6d4e0 100644 --- a/entity/Address_entity/entityfields/zipvalidation/children/currentvalue_param/valueProcess.js +++ b/entity/Address_entity/entityfields/zipvalidation/children/currentvalue_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.ZIP")) \ No newline at end of file diff --git a/entity/Analyses_entity/entityfields/imminent_appointments/valueProcess.js b/entity/Analyses_entity/entityfields/imminent_appointments/valueProcess.js index b27b3c5856e78c3d382a89f5c1ef99589f6a0c96..aaf9f3dd864370fcdaeecdff97c4a25609de69d2 100644 --- a/entity/Analyses_entity/entityfields/imminent_appointments/valueProcess.js +++ b/entity/Analyses_entity/entityfields/imminent_appointments/valueProcess.js @@ -1,55 +1,55 @@ -import("system.SQLTYPES"); -import("system.logging"); -import("system.db"); -import("system.datetime"); -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("Sql_lib"); -import("system.calendars"); -import("Calendar_lib"); - -var pFilter = reset_filterEvent(); -var conditions = []; -var conditioncount = 0; -var user = undefined; -var stati = []; -var entries = []; - -var startnumber = Number(vars.get("$sys.date")); -var endnumber = startnumber + 43200000 ; - -var start = startnumber + ""; -var end = endnumber + ""; - -if ( pFilter.tentative == "true" ) - stati.push(calendars.STATUS_TENTATIVE); - -if ( pFilter.cancelled == "true" ) - stati.push(calendars.STATUS_CANCELLED); - -if ( pFilter.confirmed == "true" ) - stati.push(mapCalendarStatus(calendars.STATUS_CONFIRMED, calendars.getBackendType() )); - -if (getCalendarSystemType(calendars.VEVENT) == calendars.BACKEND_EXCHANGEWS && pFilter.free == "true") - stati.push(calendars.STATUS_FREE); - -if ( pFilter.user != "" ) - user = (pFilter.user).trim(); - -for ( var z = 0; z < stati.length; z++ ) - _addEntryCondition(conditions, ++conditioncount, - { - TYPE: calendars.VEVENT, - START: start, - END: end, - USER: user, - STATUS: stati[z] - }); - -conditions["COUNT"] = String(conditioncount); -entries = calendars.getEntries(conditions); - -logging.log("entries: " + entries.toSource()); - -result.string(entries.length); +import("system.SQLTYPES"); +import("system.logging"); +import("system.db"); +import("system.datetime"); +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Sql_lib"); +import("system.calendars"); +import("Calendar_lib"); + +var pFilter = reset_filterEvent(); +var conditions = []; +var conditioncount = 0; +var user = undefined; +var stati = []; +var entries = []; + +var startnumber = Number(vars.get("$sys.date")); +var endnumber = startnumber + 43200000 ; + +var start = startnumber + ""; +var end = endnumber + ""; + +if ( pFilter.tentative == "true" ) + stati.push(calendars.STATUS_TENTATIVE); + +if ( pFilter.cancelled == "true" ) + stati.push(calendars.STATUS_CANCELLED); + +if ( pFilter.confirmed == "true" ) + stati.push(mapCalendarStatus(calendars.STATUS_CONFIRMED, calendars.getBackendType() )); + +if (getCalendarSystemType(calendars.VEVENT) == calendars.BACKEND_EXCHANGEWS && pFilter.free == "true") + stati.push(calendars.STATUS_FREE); + +if ( pFilter.user != "" ) + user = (pFilter.user).trim(); + +for ( var z = 0; z < stati.length; z++ ) + _addEntryCondition(conditions, ++conditioncount, + { + TYPE: calendars.VEVENT, + START: start, + END: end, + USER: user, + STATUS: stati[z] + }); + +conditions["COUNT"] = String(conditioncount); +entries = calendars.getEntries(conditions); + +logging.log("entries: " + entries.toSource()); + +result.string(entries.length); diff --git a/entity/Analyses_entity/entityfields/new_tasks/valueProcess.js b/entity/Analyses_entity/entityfields/new_tasks/valueProcess.js index cda2d8086a36d27c39b5a0550114ddc79523b719..a0dfa7df8cc8a0a66dedfff78df476f6d4ad1884 100644 --- a/entity/Analyses_entity/entityfields/new_tasks/valueProcess.js +++ b/entity/Analyses_entity/entityfields/new_tasks/valueProcess.js @@ -1,11 +1,11 @@ -import("system.datetime"); -import("system.db"); -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("Sql_lib"); -import("system.SQLTYPES") - -var opentask = db.cell("select count(STATUS) from TASK join AB_KEYWORD_ENTRY on KEYID = STATUS and CONTAINER = 'TaskStatus' and TITLE = 'new' group by KEYID, AB_KEYWORD_ENTRY.TITLE"); - -result.string(opentask); +import("system.datetime"); +import("system.db"); +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Sql_lib"); +import("system.SQLTYPES") + +var opentask = db.cell("select count(STATUS) from TASK join AB_KEYWORD_ENTRY on KEYID = STATUS and CONTAINER = 'TaskStatus' and TITLE = 'new' group by KEYID, AB_KEYWORD_ENTRY.TITLE"); + +result.string(opentask); diff --git a/entity/Analyses_entity/entityfields/overdue_tasks/valueProcess.js b/entity/Analyses_entity/entityfields/overdue_tasks/valueProcess.js index 8c1ab91266ef07d23e924b31ff4e0d21aa363cc8..53c3f09a944fe0289958650a43222d9c005db755 100644 --- a/entity/Analyses_entity/entityfields/overdue_tasks/valueProcess.js +++ b/entity/Analyses_entity/entityfields/overdue_tasks/valueProcess.js @@ -1,13 +1,13 @@ -import("system.db"); -import("system.datetime"); -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("Sql_lib"); - - -var overduetask = db.cell(SqlCondition.begin() - .andPrepare("TASK.MATURITY_DATE", vars.get("$sys.date"), "# < ?") - .buildSql("select count(TASKID) from TASK", "1=2")); - -result.string(overduetask); +import("system.db"); +import("system.datetime"); +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Sql_lib"); + + +var overduetask = db.cell(SqlCondition.begin() + .andPrepare("TASK.MATURITY_DATE", vars.get("$sys.date"), "# < ?") + .buildSql("select count(TASKID) from TASK", "1=2")); + +result.string(overduetask); diff --git a/entity/AnyContact_entity/contentTitleProcess.js b/entity/AnyContact_entity/contentTitleProcess.js index 54d51a48576dbc49bf35a56ce5cf570dd7cea087..a3a5bff300afa4fefc933c828813d8c7cea08afb 100644 --- a/entity/AnyContact_entity/contentTitleProcess.js +++ b/entity/AnyContact_entity/contentTitleProcess.js @@ -1,15 +1,15 @@ -import("system.vars"); -import("system.result"); -import("Util_lib"); -import("Contact_lib"); - -var contact = new Contact(); -contact.organisationName = vars.get("$field.ORGANISATION_NAME"); -contact.salutation = vars.get("$field.PERSON_SALUTATION"); -contact.title = vars.get("$field.PERSON_TITLE"); -contact.firstname = vars.get("$field.PERSON_FIRSTNAME"); -contact.middlename = vars.get("$field.PERSON_MIDDLENAME"); -contact.lastname = vars.get("$field.PERSON_LASTNAME"); - -var renderer = new ContactTitleRenderer(contact); +import("system.vars"); +import("system.result"); +import("Util_lib"); +import("Contact_lib"); + +var contact = new Contact(); +contact.organisationName = vars.get("$field.ORGANISATION_NAME"); +contact.salutation = vars.get("$field.PERSON_SALUTATION"); +contact.title = vars.get("$field.PERSON_TITLE"); +contact.firstname = vars.get("$field.PERSON_FIRSTNAME"); +contact.middlename = vars.get("$field.PERSON_MIDDLENAME"); +contact.lastname = vars.get("$field.PERSON_LASTNAME"); + +var renderer = new ContactTitleRenderer(contact); result.string(renderer.asString()); \ No newline at end of file diff --git a/entity/Appointment_entity/entityfields/attendees/dropDownProcess.js b/entity/Appointment_entity/entityfields/attendees/dropDownProcess.js index e80b803652e64760b3007dd59f7b5c876c5723bb..1ab0229fb447c8119504440ad07ccc53c097b2f9 100644 --- a/entity/Appointment_entity/entityfields/attendees/dropDownProcess.js +++ b/entity/Appointment_entity/entityfields/attendees/dropDownProcess.js @@ -1,14 +1,14 @@ -import("system.vars"); -import("system.result"); -import("system.calendars"); - -var entry = JSON.parse(vars.getString("$param.Entry_param")); -var allUsers = calendars.getFullCalendarUsers(calendars.RIGHT_WRITE); -var results = []; - -for (var i = 0; i < allUsers.length; i++) -{ - results[i] = [allUsers[i][0], allUsers[i][2].paramvalue]; -} - +import("system.vars"); +import("system.result"); +import("system.calendars"); + +var entry = JSON.parse(vars.getString("$param.Entry_param")); +var allUsers = calendars.getFullCalendarUsers(calendars.RIGHT_WRITE); +var results = []; + +for (var i = 0; i < allUsers.length; i++) +{ + results[i] = [allUsers[i][0], allUsers[i][2].paramvalue]; +} + result.object(results); \ No newline at end of file diff --git a/entity/Appointment_entity/entityfields/categories/dropDownProcess.js b/entity/Appointment_entity/entityfields/categories/dropDownProcess.js index 860b69632645f1e9c800ebf118f4a3dfc419b393..e59b81e02e644ea2a579b7a2549605c4444c6206 100644 --- a/entity/Appointment_entity/entityfields/categories/dropDownProcess.js +++ b/entity/Appointment_entity/entityfields/categories/dropDownProcess.js @@ -1,13 +1,13 @@ -import("system.result"); -import("system.translate"); -import("system.calendars"); - -var rawElements = calendars.getElementPrefs()[calendars.ELEM_CATEGORIES_EVENT]; - -var resultName = [[]]; - -for (var i = 0; i < rawElements.length; i++) -{ - resultName[i] = [translate.text(rawElements[i]), translate.text(rawElements[i])]; -} +import("system.result"); +import("system.translate"); +import("system.calendars"); + +var rawElements = calendars.getElementPrefs()[calendars.ELEM_CATEGORIES_EVENT]; + +var resultName = [[]]; + +for (var i = 0; i < rawElements.length; i++) +{ + resultName[i] = [translate.text(rawElements[i]), translate.text(rawElements[i])]; +} result.object(resultName); \ No newline at end of file diff --git a/entity/Appointment_entity/entityfields/classification/dropDownProcess.js b/entity/Appointment_entity/entityfields/classification/dropDownProcess.js index 0c7e252e8ec50fb59f8a58e32fd9627b4dc738e7..7f8cf5bff36828f0a2eef7c253b895f3d4ee530f 100644 --- a/entity/Appointment_entity/entityfields/classification/dropDownProcess.js +++ b/entity/Appointment_entity/entityfields/classification/dropDownProcess.js @@ -1,6 +1,6 @@ -import("system.result"); - -var resObject = new Object(); -resObject["PRIVATE"] = "PRIVATE"; -resObject["PUBLIC"] = "PUBLIC"; +import("system.result"); + +var resObject = new Object(); +resObject["PRIVATE"] = "PRIVATE"; +resObject["PUBLIC"] = "PUBLIC"; result.object( resObject ); \ No newline at end of file diff --git a/entity/Appointment_entity/entityfields/status/dropDownProcess.js b/entity/Appointment_entity/entityfields/status/dropDownProcess.js index 47b47f647f792e0bf424201d3b8cc6648d6459c9..42a85014d1701b3016bb7513e10b8a9ca43b5c16 100644 --- a/entity/Appointment_entity/entityfields/status/dropDownProcess.js +++ b/entity/Appointment_entity/entityfields/status/dropDownProcess.js @@ -1,21 +1,21 @@ -import("system.result"); -import("system.translate"); -import("system.calendars"); - -if( calendars.getBackendType() != calendars.BACKEND_EXCHANGEWS ) -{ - result.object([ - [calendars.STATUS_CONFIRMED, translate.text("Confirmed")], - [calendars.STATUS_TENTATIVE, translate.text("Tentative")], - [calendars.STATUS_CANCELLED, translate.text("Cancelled")] - ]); -} -else -{ - result.object( [ - //[calendars.STATUS_BUSY, translate.text("Gebucht")], - [calendars.STATUS_TENTATIVE, translate.text("Tentative")], - [calendars.STATUS_OOF, translate.text("OutOfOffice")], - [calendars.STATUS_FREE, translate.text("Free")] - ] ); +import("system.result"); +import("system.translate"); +import("system.calendars"); + +if( calendars.getBackendType() != calendars.BACKEND_EXCHANGEWS ) +{ + result.object([ + [calendars.STATUS_CONFIRMED, translate.text("Confirmed")], + [calendars.STATUS_TENTATIVE, translate.text("Tentative")], + [calendars.STATUS_CANCELLED, translate.text("Cancelled")] + ]); +} +else +{ + result.object( [ + //[calendars.STATUS_BUSY, translate.text("Gebucht")], + [calendars.STATUS_TENTATIVE, translate.text("Tentative")], + [calendars.STATUS_OOF, translate.text("OutOfOffice")], + [calendars.STATUS_FREE, translate.text("Free")] + ] ); } \ No newline at end of file diff --git a/entity/AttributeRelation_entity/entityfields/ab_attribute_id/displayValueProcess.js b/entity/AttributeRelation_entity/entityfields/ab_attribute_id/displayValueProcess.js index 83b3cd554d6ce3133c6066d44e75f0410ccf6f44..94afb2968a17080bc784cd59420dcedd6b1b4994 100644 --- a/entity/AttributeRelation_entity/entityfields/ab_attribute_id/displayValueProcess.js +++ b/entity/AttributeRelation_entity/entityfields/ab_attribute_id/displayValueProcess.js @@ -1,7 +1,7 @@ -import("system.vars"); -import("system.result"); -import("Attribute_lib"); - -result.string(AttributeUtil.getFullAttributeName( - vars.get("$field.AB_ATTRIBUTE_ID"), - vars.exists("$param.DisplaySimpleName_param") ? vars.get("$param.DisplaySimpleName_param") : false )); +import("system.vars"); +import("system.result"); +import("Attribute_lib"); + +result.string(AttributeUtil.getFullAttributeName( + vars.get("$field.AB_ATTRIBUTE_ID"), + vars.exists("$param.DisplaySimpleName_param") ? vars.get("$param.DisplaySimpleName_param") : false )); diff --git a/entity/AttributeRelation_entity/entityfields/ab_attribute_id/onValueChange.js b/entity/AttributeRelation_entity/entityfields/ab_attribute_id/onValueChange.js index 1cebe1b3feaf01b51d151221f833a7255541bfb5..c4e7e75a5f0940a6865c1acd8e6efae7e0245c99 100644 --- a/entity/AttributeRelation_entity/entityfields/ab_attribute_id/onValueChange.js +++ b/entity/AttributeRelation_entity/entityfields/ab_attribute_id/onValueChange.js @@ -1,8 +1,8 @@ -import("system.vars"); -import("system.neon"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT || - vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - neon.setFieldValue("$field.VALUE", null); +import("system.vars"); +import("system.neon"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT || + vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + neon.setFieldValue("$field.VALUE", null); } \ No newline at end of file diff --git a/entity/AttributeRelation_entity/entityfields/treeprovider/children/gettree_param/valueProcess.js b/entity/AttributeRelation_entity/entityfields/treeprovider/children/gettree_param/valueProcess.js index cda204045d2aba9ae974e0ce2200ba0cc6c852c0..ed5935fc124e63ff268a7e65d5efceab70ac456e 100644 --- a/entity/AttributeRelation_entity/entityfields/treeprovider/children/gettree_param/valueProcess.js +++ b/entity/AttributeRelation_entity/entityfields/treeprovider/children/gettree_param/valueProcess.js @@ -1,2 +1,2 @@ -import("system.result"); +import("system.result"); result.string(true); \ No newline at end of file diff --git a/entity/AttributeRelation_entity/entityfields/uid/valueProcess.js b/entity/AttributeRelation_entity/entityfields/uid/valueProcess.js index 056f5c94f173d94976edc1ce66ca20d57ecfb0ea..be66a14335762d314daa7d4691f93c77affd8bf0 100644 --- a/entity/AttributeRelation_entity/entityfields/uid/valueProcess.js +++ b/entity/AttributeRelation_entity/entityfields/uid/valueProcess.js @@ -1,7 +1,7 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); -import("system.util"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.vars"); +import("system.result"); +import("system.neon"); +import("system.util"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/AttributeRelation_entity/entityfields/value/contentTypeProcess.js b/entity/AttributeRelation_entity/entityfields/value/contentTypeProcess.js index 55d32c91b7003e4a973558a6460268ef5b6d962b..e692170633914456e09edf154860eb0a1f6842ef 100644 --- a/entity/AttributeRelation_entity/entityfields/value/contentTypeProcess.js +++ b/entity/AttributeRelation_entity/entityfields/value/contentTypeProcess.js @@ -1,6 +1,6 @@ -import("system.vars"); -import("system.result"); -import("Attribute_lib"); - -var attributeType = AttributeUtil.getAttributeType(vars.get("$field.AB_ATTRIBUTE_ID")); +import("system.vars"); +import("system.result"); +import("Attribute_lib"); + +var attributeType = AttributeUtil.getAttributeType(vars.get("$field.AB_ATTRIBUTE_ID")); result.string(AttributeTypeUtil.getContentType(attributeType)); \ No newline at end of file diff --git a/entity/AttributeRelation_entity/entityfields/value/displayValueProcess.js b/entity/AttributeRelation_entity/entityfields/value/displayValueProcess.js index 91fc6107db9e8b3463fb035389501cb7910ce855..0221c92526a7b91af3e98af04c5eb6e84bc1dcb7 100644 --- a/entity/AttributeRelation_entity/entityfields/value/displayValueProcess.js +++ b/entity/AttributeRelation_entity/entityfields/value/displayValueProcess.js @@ -1,26 +1,26 @@ -import("system.db"); -import("system.result"); -import("system.vars"); -import("Attribute_lib"); -import("Keyword_lib"); - -var attrType = AttributeUtil.getAttributeType(vars.get("$field.AB_ATTRIBUTE_ID")); -var value; -if (attrType == $AttributeTypes.COMBO) - value = AttributeUtil.getSimpleAttributeName(vars.get("$field.VALUE")); - -//TODO this is a workaround for keywords, when it's possible to use the consumer remove this else if -else if (attrType == $AttributeTypes.KEYWORD) -{ - var keywordContainer = db.cell( - SqlCondition.begin() - .andPrepareVars("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$field.AB_ATTRIBUTE_ID") - .buildSql("select KEYWORD_CONTAINER from AB_ATTRIBUTE") - ); - value = KeywordUtils.getViewValue(keywordContainer, vars.get("$field.VALUE")); -} - -else - value = vars.get("$field.VALUE"); - -result.string(value); +import("system.db"); +import("system.result"); +import("system.vars"); +import("Attribute_lib"); +import("Keyword_lib"); + +var attrType = AttributeUtil.getAttributeType(vars.get("$field.AB_ATTRIBUTE_ID")); +var value; +if (attrType == $AttributeTypes.COMBO) + value = AttributeUtil.getSimpleAttributeName(vars.get("$field.VALUE")); + +//TODO this is a workaround for keywords, when it's possible to use the consumer remove this else if +else if (attrType == $AttributeTypes.KEYWORD) +{ + var keywordContainer = db.cell( + SqlCondition.begin() + .andPrepareVars("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$field.AB_ATTRIBUTE_ID") + .buildSql("select KEYWORD_CONTAINER from AB_ATTRIBUTE") + ); + value = KeywordUtils.getViewValue(keywordContainer, vars.get("$field.VALUE")); +} + +else + value = vars.get("$field.VALUE"); + +result.string(value); diff --git a/entity/AttributeRelation_entity/entityfields/value/dropDownProcess.js b/entity/AttributeRelation_entity/entityfields/value/dropDownProcess.js index 26adcbcda38f9326940557d75bb7e2197f3ac69e..a5f19038208bd277da4f987e0bb81e157910a0fe 100644 --- a/entity/AttributeRelation_entity/entityfields/value/dropDownProcess.js +++ b/entity/AttributeRelation_entity/entityfields/value/dropDownProcess.js @@ -1,47 +1,47 @@ -import("system.translate"); -import("system.db"); -import("system.result"); -import("system.vars"); -import("Attribute_lib"); -import("Sql_lib"); - -var attributeId = vars.get("$field.AB_ATTRIBUTE_ID"); -var attrType = AttributeUtil.getAttributeType(attributeId); - -if (attrType == $AttributeTypes.COMBO) -{ - var valueSql = SqlCondition.begin() - .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_ACTIVE", "1") - .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID", attributeId) - .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.COMBOVALUE) - .buildSql("select AB_ATTRIBUTEID, ATTRIBUTE_NAME from AB_ATTRIBUTE", "1=2", "order by SORTING asc"); - var valueList = db.table(valueSql); - - result.object(valueList); -} -else if (attrType == $AttributeTypes.BOOLEAN) -{ - result.object([ - ["1", translate.text("Yes")], - ["0", translate.text("No")] - ]); -} - -//TODO this is a workaround for keywords, when it's possible to use the consumer remove this -else if (attrType == $AttributeTypes.KEYWORD) -{ - var attrKeywordSelect = "select KEYWORD_CONTAINER from AB_ATTRIBUTE"; - attrKeywordSelect = SqlCondition.begin() - .andPrepareVars("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$field.AB_ATTRIBUTE_ID") - .buildSql(attrKeywordSelect); - - var sql = SqlCondition.begin() - .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", db.cell(attrKeywordSelect)) - .buildSql("select AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY", "1=2", "order by SORTING asc"); - var keywords = db.table(sql).map(function (row) - { - return [row[0], translate.text(row[1])]; - }); - - result.object(keywords); +import("system.translate"); +import("system.db"); +import("system.result"); +import("system.vars"); +import("Attribute_lib"); +import("Sql_lib"); + +var attributeId = vars.get("$field.AB_ATTRIBUTE_ID"); +var attrType = AttributeUtil.getAttributeType(attributeId); + +if (attrType == $AttributeTypes.COMBO) +{ + var valueSql = SqlCondition.begin() + .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_ACTIVE", "1") + .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID", attributeId) + .andPrepare("AB_ATTRIBUTE.ATTRIBUTE_TYPE", $AttributeTypes.COMBOVALUE) + .buildSql("select AB_ATTRIBUTEID, ATTRIBUTE_NAME from AB_ATTRIBUTE", "1=2", "order by SORTING asc"); + var valueList = db.table(valueSql); + + result.object(valueList); +} +else if (attrType == $AttributeTypes.BOOLEAN) +{ + result.object([ + ["1", translate.text("Yes")], + ["0", translate.text("No")] + ]); +} + +//TODO this is a workaround for keywords, when it's possible to use the consumer remove this +else if (attrType == $AttributeTypes.KEYWORD) +{ + var attrKeywordSelect = "select KEYWORD_CONTAINER from AB_ATTRIBUTE"; + attrKeywordSelect = SqlCondition.begin() + .andPrepareVars("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$field.AB_ATTRIBUTE_ID") + .buildSql(attrKeywordSelect); + + var sql = SqlCondition.begin() + .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", db.cell(attrKeywordSelect)) + .buildSql("select AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY", "1=2", "order by SORTING asc"); + var keywords = db.table(sql).map(function (row) + { + return [row[0], translate.text(row[1])]; + }); + + result.object(keywords); } \ No newline at end of file diff --git a/entity/AttributeRelation_entity/entityfields/value/mandatoryProcess.js b/entity/AttributeRelation_entity/entityfields/value/mandatoryProcess.js index e60d633a87eef5815501eb3cef2e8d7f69c71c04..74867490f68c0e9893aaba0269418c05d73f29cf 100644 --- a/entity/AttributeRelation_entity/entityfields/value/mandatoryProcess.js +++ b/entity/AttributeRelation_entity/entityfields/value/mandatoryProcess.js @@ -1,7 +1,7 @@ -import("system.vars"); -import("system.result"); -import("Attribute_lib"); - -var attributeType = AttributeUtil.getAttributeType(vars.get("$field.AB_ATTRIBUTE_ID")); -var contentType = AttributeTypeUtil.getContentType(attributeType); +import("system.vars"); +import("system.result"); +import("Attribute_lib"); + +var attributeType = AttributeUtil.getAttributeType(vars.get("$field.AB_ATTRIBUTE_ID")); +var contentType = AttributeTypeUtil.getContentType(attributeType); result.string(contentType != null && contentType != "BOOLEAN"); \ No newline at end of file diff --git a/entity/AttributeRelation_entity/entityfields/value/stateProcess.js b/entity/AttributeRelation_entity/entityfields/value/stateProcess.js index 7eb783c7dfa26f85106d4836ba568ea05641bc6b..0b23749b7d7d3fcb6da503602a3d618f05383802 100644 --- a/entity/AttributeRelation_entity/entityfields/value/stateProcess.js +++ b/entity/AttributeRelation_entity/entityfields/value/stateProcess.js @@ -1,14 +1,14 @@ -import("system.neon"); -import("system.vars"); -import("system.result"); -import("Attribute_lib"); - -var attributeType = AttributeUtil.getAttributeType(vars.get("$field.AB_ATTRIBUTE_ID")); -result.string(AttributeTypeUtil.getContentType(attributeType)); -var fieldState; -if (AttributeTypeUtil.getContentType(attributeType) != null) - fieldState = neon.COMPONENTSTATE_EDITABLE; -else - fieldState = neon.COMPONENTSTATE_READONLY; - +import("system.neon"); +import("system.vars"); +import("system.result"); +import("Attribute_lib"); + +var attributeType = AttributeUtil.getAttributeType(vars.get("$field.AB_ATTRIBUTE_ID")); +result.string(AttributeTypeUtil.getContentType(attributeType)); +var fieldState; +if (AttributeTypeUtil.getContentType(attributeType) != null) + fieldState = neon.COMPONENTSTATE_EDITABLE; +else + fieldState = neon.COMPONENTSTATE_READONLY; + result.string(fieldState); \ No newline at end of file diff --git a/entity/AttributeRelation_entity/recordcontainers/jdito/onDelete.js b/entity/AttributeRelation_entity/recordcontainers/jdito/onDelete.js index ceb46c3e0c977ab16c75822061a0472088410aea..eac76c1b1c707289504fde6557435408d6cb6159 100644 --- a/entity/AttributeRelation_entity/recordcontainers/jdito/onDelete.js +++ b/entity/AttributeRelation_entity/recordcontainers/jdito/onDelete.js @@ -1,10 +1,10 @@ -import("system.neon"); -import("system.vars"); -import("Sql_lib"); -import("system.db"); - -if (vars.get("$field.AB_ATTRIBUTE_ID")) -{ - db.deleteData("AB_ATTRIBUTERELATION", SqlCondition.equals("AB_ATTRIBUTERELATION.AB_ATTRIBUTERELATIONID", vars.get("$field.UID"), "1=2")); - neon.refresh(); -} +import("system.neon"); +import("system.vars"); +import("Sql_lib"); +import("system.db"); + +if (vars.get("$field.AB_ATTRIBUTE_ID")) +{ + db.deleteData("AB_ATTRIBUTERELATION", SqlCondition.equals("AB_ATTRIBUTERELATION.AB_ATTRIBUTERELATIONID", vars.get("$field.UID"), "1=2")); + neon.refresh(); +} diff --git a/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js b/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js index a66bb8f178cd09c7df3b9433e7953f9f7ba7fc4d..283a97a64487759a7e09425fa7256a6c4d8dbc50 100644 --- a/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js +++ b/entity/AttributeRelation_entity/recordcontainers/jdito/onInsert.js @@ -1,30 +1,30 @@ -import("system.datetime"); -import("system.util"); -import("system.db"); -import("system.vars"); -import("Attribute_lib"); - -var columns = [ - "AB_ATTRIBUTERELATIONID", - "AB_ATTRIBUTE_ID", - "OBJECT_ROWID", - "OBJECT_TYPE", - "DATE_NEW", - "USER_NEW" -]; -var values = [ - vars.get("$field.UID"), - vars.get("$field.AB_ATTRIBUTE_ID"), - vars.get("$param.ObjectRowId_param"), - vars.get("$param.ObjectType_param"), - vars.get("$field.DATE_NEW"), - vars.get("$field.USER_NEW") -]; -var type = AttributeUtil.getAttributeType(vars.get("$field.AB_ATTRIBUTE_ID")); -var valueField = AttributeTypeUtil.getDatabaseField(type); -if (valueField) -{ - columns.push(valueField); - values.push(vars.get("$field.VALUE")); -} -db.insertData("AB_ATTRIBUTERELATION", columns, null, values); +import("system.datetime"); +import("system.util"); +import("system.db"); +import("system.vars"); +import("Attribute_lib"); + +var columns = [ + "AB_ATTRIBUTERELATIONID", + "AB_ATTRIBUTE_ID", + "OBJECT_ROWID", + "OBJECT_TYPE", + "DATE_NEW", + "USER_NEW" +]; +var values = [ + vars.get("$field.UID"), + vars.get("$field.AB_ATTRIBUTE_ID"), + vars.get("$param.ObjectRowId_param"), + vars.get("$param.ObjectType_param"), + vars.get("$field.DATE_NEW"), + vars.get("$field.USER_NEW") +]; +var type = AttributeUtil.getAttributeType(vars.get("$field.AB_ATTRIBUTE_ID")); +var valueField = AttributeTypeUtil.getDatabaseField(type); +if (valueField) +{ + columns.push(valueField); + values.push(vars.get("$field.VALUE")); +} +db.insertData("AB_ATTRIBUTERELATION", columns, null, values); diff --git a/entity/AttributeRelation_entity/recordcontainers/jdito/onUpdate.js b/entity/AttributeRelation_entity/recordcontainers/jdito/onUpdate.js index b5eefe863b08101fa13a4a85ea32af8582f63f69..9a1bb128fc0ede24a0f3b52240d38fb306f0824c 100644 --- a/entity/AttributeRelation_entity/recordcontainers/jdito/onUpdate.js +++ b/entity/AttributeRelation_entity/recordcontainers/jdito/onUpdate.js @@ -1,29 +1,29 @@ -import("Sql_lib"); -import("system.util"); -import("system.db"); -import("system.vars"); -import("Attribute_lib"); - -var type = AttributeUtil.getAttributeType(vars.get("$field.AB_ATTRIBUTE_ID")); - -var columns = [ - "AB_ATTRIBUTE_ID", - "DATE_EDIT", - "USER_EDIT" -]; -var values = [ - vars.get("$field.AB_ATTRIBUTE_ID"), - vars.get("$field.DATE_EDIT"), - vars.get("$field.USER_EDIT") -]; - -var dbFields = AttributeTypeUtil.getAllDatabaseFields(); -dbFields.forEach(function (row) -{ - columns.push(row); - values.push(""); //set every field but the correct value field to null -}); -values[AttributeTypeUtil.getTypeColumnIndex(type) + 3] = vars.get("$field.VALUE"); - -db.updateData("AB_ATTRIBUTERELATION", columns, null, values, +import("Sql_lib"); +import("system.util"); +import("system.db"); +import("system.vars"); +import("Attribute_lib"); + +var type = AttributeUtil.getAttributeType(vars.get("$field.AB_ATTRIBUTE_ID")); + +var columns = [ + "AB_ATTRIBUTE_ID", + "DATE_EDIT", + "USER_EDIT" +]; +var values = [ + vars.get("$field.AB_ATTRIBUTE_ID"), + vars.get("$field.DATE_EDIT"), + vars.get("$field.USER_EDIT") +]; + +var dbFields = AttributeTypeUtil.getAllDatabaseFields(); +dbFields.forEach(function (row) +{ + columns.push(row); + values.push(""); //set every field but the correct value field to null +}); +values[AttributeTypeUtil.getTypeColumnIndex(type) + 3] = vars.get("$field.VALUE"); + +db.updateData("AB_ATTRIBUTERELATION", columns, null, values, SqlCondition.equals("AB_ATTRIBUTERELATION.AB_ATTRIBUTERELATIONID", vars.get("$field.UID"), "1=2")); \ No newline at end of file diff --git a/entity/AttributeUsage_entity/entityfields/context/children/exclusivecontexts_param/valueProcess.js b/entity/AttributeUsage_entity/entityfields/context/children/exclusivecontexts_param/valueProcess.js index 0b23d14d86d35c1064ce5d3ebad9212800e1a849..ee42105a132434f2c9dd6423e79700b26a560e10 100644 --- a/entity/AttributeUsage_entity/entityfields/context/children/exclusivecontexts_param/valueProcess.js +++ b/entity/AttributeUsage_entity/entityfields/context/children/exclusivecontexts_param/valueProcess.js @@ -1,15 +1,15 @@ -import("system.result"); - -result.object([ - "Organisation", - "Person", - "Contract", - "Product", - "Activity", - "Offer", - "Order", - "Employee", - "Salesproject", - "Campaign", - "DocumentTemplate" +import("system.result"); + +result.object([ + "Organisation", + "Person", + "Contract", + "Product", + "Activity", + "Offer", + "Order", + "Employee", + "Salesproject", + "Campaign", + "DocumentTemplate" ]); \ No newline at end of file diff --git a/entity/AttributeUsage_entity/entityfields/max_count/stateProcess.js b/entity/AttributeUsage_entity/entityfields/max_count/stateProcess.js index 8afb53a33287d435fbe60cf73251c6892d7a4e4a..16e0c210f625a427ac6f0ea423359f58f2508fc4 100644 --- a/entity/AttributeUsage_entity/entityfields/max_count/stateProcess.js +++ b/entity/AttributeUsage_entity/entityfields/max_count/stateProcess.js @@ -1,8 +1,8 @@ -import("system.neon"); -import("system.result"); -import("system.vars"); - -if (vars.exists("$param.SingleSelection_param") && vars.get("$param.SingleSelection_param") == "true") - result.string(neon.COMPONENTSTATE_READONLY); -else +import("system.neon"); +import("system.result"); +import("system.vars"); + +if (vars.exists("$param.SingleSelection_param") && vars.get("$param.SingleSelection_param") == "true") + result.string(neon.COMPONENTSTATE_READONLY); +else result.string(neon.COMPONENTSTATE_EDITABLE); \ No newline at end of file diff --git a/entity/AttributeUsage_entity/entityfields/max_count/valueProcess.js b/entity/AttributeUsage_entity/entityfields/max_count/valueProcess.js index 420c9cb7132ffc0dd8eb048ab2e922ce7d7beb77..027f14558ad58479e94b0e04d374371661ff0f72 100644 --- a/entity/AttributeUsage_entity/entityfields/max_count/valueProcess.js +++ b/entity/AttributeUsage_entity/entityfields/max_count/valueProcess.js @@ -1,5 +1,5 @@ -import("system.result"); -import("system.vars"); - -if (vars.exists("$param.SingleSelection_param") && vars.get("$param.SingleSelection_param") == "true") +import("system.result"); +import("system.vars"); + +if (vars.exists("$param.SingleSelection_param") && vars.get("$param.SingleSelection_param") == "true") result.string("1"); \ No newline at end of file diff --git a/entity/AttributeUsage_entity/entityfields/min_count/stateProcess.js b/entity/AttributeUsage_entity/entityfields/min_count/stateProcess.js index d140eb741f4bc42de2674499e7ef5d6220db0599..e0651acc1a6f748e31b2b0d5b36a6f3a9b6cebdf 100644 --- a/entity/AttributeUsage_entity/entityfields/min_count/stateProcess.js +++ b/entity/AttributeUsage_entity/entityfields/min_count/stateProcess.js @@ -1,8 +1,8 @@ -import("system.neon"); -import("system.result"); -import("system.vars"); - -if (vars.exists("$param.DisableMinCount_param") && vars.get("$param.DisableMinCount_param") == "true") - result.string(neon.COMPONENTSTATE_READONLY); -else +import("system.neon"); +import("system.result"); +import("system.vars"); + +if (vars.exists("$param.DisableMinCount_param") && vars.get("$param.DisableMinCount_param") == "true") + result.string(neon.COMPONENTSTATE_READONLY); +else result.string(neon.COMPONENTSTATE_EDITABLE); \ No newline at end of file diff --git a/entity/AttributeUsage_entity/entityfields/min_count/valueProcess.js b/entity/AttributeUsage_entity/entityfields/min_count/valueProcess.js index 99e89c3d9b5a6d200ccc22a464b30e06d04cab0c..e811e547c5703100af032b39613ed59f85c79a7c 100644 --- a/entity/AttributeUsage_entity/entityfields/min_count/valueProcess.js +++ b/entity/AttributeUsage_entity/entityfields/min_count/valueProcess.js @@ -1,5 +1,5 @@ -import("system.result"); -import("system.vars"); - -if (vars.exists("$param.DisableMinCount_param") && vars.get("$param.DisableMinCount_param") == "true") +import("system.result"); +import("system.vars"); + +if (vars.exists("$param.DisableMinCount_param") && vars.get("$param.DisableMinCount_param") == "true") result.string(""); \ No newline at end of file diff --git a/entity/AttributeUsage_entity/onValidation.js b/entity/AttributeUsage_entity/onValidation.js index 5e0442557341d0d0707a84065fb5246e035f9b73..f35c9b28c229e58d70a79ab48c80cb2b0cb14bfc 100644 --- a/entity/AttributeUsage_entity/onValidation.js +++ b/entity/AttributeUsage_entity/onValidation.js @@ -1,8 +1,8 @@ -import("system.translate"); -import("system.vars"); -import("system.result"); - -var minCount = vars.getString("$field.MIN_COUNT"); -var maxCount = vars.getString("$field.MAX_COUNT"); -if (minCount != "" && maxCount != "" && minCount > maxCount) +import("system.translate"); +import("system.vars"); +import("system.result"); + +var minCount = vars.getString("$field.MIN_COUNT"); +var maxCount = vars.getString("$field.MAX_COUNT"); +if (minCount != "" && maxCount != "" && minCount > maxCount) result.string(translate.text("The minimal count can't be larger than the maximal count!")); \ No newline at end of file diff --git a/entity/Attribute_entity/Attribute_entity.aod b/entity/Attribute_entity/Attribute_entity.aod index 0159ec31d776ccf1f7645911d163d000907fcee4..9cad18c9b67ac3e87ac0a22c5ccd22ed611904bc 100644 --- a/entity/Attribute_entity/Attribute_entity.aod +++ b/entity/Attribute_entity/Attribute_entity.aod @@ -320,6 +320,7 @@ <jDitoRecordContainer> <name>jdito</name> <jDitoRecordAlias>Data_alias</jDitoRecordAlias> + <isFilterable v="true" /> <isSortable v="true" /> <contentProcess>%aditoprj%/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js</contentProcess> <onInsert>%aditoprj%/entity/Attribute_entity/recordcontainers/jdito/onInsert.js</onInsert> diff --git a/entity/Attribute_entity/afterUiInit.js b/entity/Attribute_entity/afterUiInit.js index cf6d710fbaf2fcc77edb6d68976ae12c2dc4fe0f..9c97441ea2bb023f4b3961ac89c89185e9f9954c 100644 --- a/entity/Attribute_entity/afterUiInit.js +++ b/entity/Attribute_entity/afterUiInit.js @@ -1,27 +1,27 @@ -import("system.util"); -import("system.db"); -import("system.neon"); -import("system.vars"); -import("Context_lib"); -import("Attribute_lib"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW - && vars.get("$field.ATTRIBUTE_TYPE").trim() != $AttributeTypes.COMBOVALUE - && vars.exists("$param.AttrParentId_param") && vars.get("$param.AttrParentId_param")) -{ - var parentId = vars.get("$param.AttrParentId_param"); - var attributeId = vars.get("$field.UID"); - - var usageSql = SqlCondition.begin() - .andPrepare("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", parentId) - .buildSql("select OBJECT_TYPE from AB_ATTRIBUTEUSAGE", "1=0"); - var usages = db.array(db.COLUMN, usageSql); - - //preset the usages with the ones from the parent - usages.forEach(function (usage) - { - neon.addRecord("AttributeUsages", { - "OBJECT_TYPE" : usage - }); - }); +import("system.util"); +import("system.db"); +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW + && vars.get("$field.ATTRIBUTE_TYPE").trim() != $AttributeTypes.COMBOVALUE + && vars.exists("$param.AttrParentId_param") && vars.get("$param.AttrParentId_param")) +{ + var parentId = vars.get("$param.AttrParentId_param"); + var attributeId = vars.get("$field.UID"); + + var usageSql = SqlCondition.begin() + .andPrepare("AB_ATTRIBUTEUSAGE.AB_ATTRIBUTE_ID", parentId) + .buildSql("select OBJECT_TYPE from AB_ATTRIBUTEUSAGE", "1=0"); + var usages = db.array(db.COLUMN, usageSql); + + //preset the usages with the ones from the parent + usages.forEach(function (usage) + { + neon.addRecord("AttributeUsages", { + "OBJECT_TYPE" : usage + }); + }); } \ No newline at end of file diff --git a/entity/Attribute_entity/contentTitleProcess.js b/entity/Attribute_entity/contentTitleProcess.js index e55588aa4fb9dea4ee26b065951ab47b1ad43256..b2f10f7ed687546cd8d3295a436be381bc6b7226 100644 --- a/entity/Attribute_entity/contentTitleProcess.js +++ b/entity/Attribute_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.FULL_ATTRIBUTE_NAME")); \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/attribute_active/dropDownProcess.js b/entity/Attribute_entity/entityfields/attribute_active/dropDownProcess.js index 3373b8a886df7267c9205c206442cb2e091128fb..e4c1d8a78277a5e9b51c2d33a8a96bd3f26186cb 100644 --- a/entity/Attribute_entity/entityfields/attribute_active/dropDownProcess.js +++ b/entity/Attribute_entity/entityfields/attribute_active/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object([ - ["1", translate.text("Yes")], - ["0", translate.text("No")] +import("system.translate"); +import("system.result"); + +result.object([ + ["1", translate.text("Yes")], + ["0", translate.text("No")] ]); \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/attribute_parent_id/valueProcess.js b/entity/Attribute_entity/entityfields/attribute_parent_id/valueProcess.js index 6f4ceebb8446e53fd41fee8d92bbd07185d2a4d0..640e5c1e11de0afafb7076b438e0532b6f1ea64c 100644 --- a/entity/Attribute_entity/entityfields/attribute_parent_id/valueProcess.js +++ b/entity/Attribute_entity/entityfields/attribute_parent_id/valueProcess.js @@ -1,6 +1,6 @@ -import("system.neon"); -import("system.result"); -import("system.vars"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.AttrParentId_param") && vars.get("$param.AttrParentId_param") && !vars.get("$this.value")) +import("system.neon"); +import("system.result"); +import("system.vars"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.AttrParentId_param") && vars.get("$param.AttrParentId_param") && !vars.get("$this.value")) result.string(vars.get("$param.AttrParentId_param")); \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/attribute_type/displayValueProcess.js b/entity/Attribute_entity/entityfields/attribute_type/displayValueProcess.js index 8c164c65749178bf883b0548ce4b019169451264..135242ad70557b06374286f7ceb2830a92c9e38b 100644 --- a/entity/Attribute_entity/entityfields/attribute_type/displayValueProcess.js +++ b/entity/Attribute_entity/entityfields/attribute_type/displayValueProcess.js @@ -1,13 +1,13 @@ -import("system.db"); -import("system.neon"); -import("system.result"); -import("system.vars"); -import("Attribute_lib"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$field.ATTRIBUTE_PARENT_ID") != "") -{ - var type = vars.get("$field.ATTRIBUTE_TYPE").trim(); - result.string(KeywordUtils.getViewValue($KeywordRegistry.attributeType(), type)); +import("system.db"); +import("system.neon"); +import("system.result"); +import("system.vars"); +import("Attribute_lib"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$field.ATTRIBUTE_PARENT_ID") != "") +{ + var type = vars.get("$field.ATTRIBUTE_TYPE").trim(); + result.string(KeywordUtils.getViewValue($KeywordRegistry.attributeType(), type)); } \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/attribute_type/stateProcess.js b/entity/Attribute_entity/entityfields/attribute_type/stateProcess.js index 184ef602b204e022ed7be351ad8e3d56b07f61eb..4333493e5382915503ee5910b0b6749c9ab4dbdd 100644 --- a/entity/Attribute_entity/entityfields/attribute_type/stateProcess.js +++ b/entity/Attribute_entity/entityfields/attribute_type/stateProcess.js @@ -1,32 +1,32 @@ -import("system.db"); -import("system.neon"); -import("system.result"); -import("system.vars"); -import("Attribute_lib"); -import("Sql_lib"); - -var type = vars.get("$field.ATTRIBUTE_TYPE").trim(); -var parentType = AttributeUtil.getAttributeType(vars.get("$field.ATTRIBUTE_PARENT_ID")); -var state = neon.COMPONENTSTATE_EDITABLE; -if (parentType == $AttributeTypes.COMBO || parentType == $AttributeTypes.VOID) -{ - state = neon.COMPONENTSTATE_READONLY; -} -else if (AttributeTypeUtil.isGroupType(type)) -{ - var hasSubordinate = db.cell(SqlCondition.begin() - .andPrepareVars("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$field.UID") - .buildSql( - "select exists (" - + "select SUB.AB_ATTRIBUTEID from AB_ATTRIBUTE SUB " - + "where SUB.ATTRIBUTE_PARENT_ID = AB_ATTRIBUTE.AB_ATTRIBUTEID" - + ") from AB_ATTRIBUTE", "1=2" - ) - ) == "true"; - if (hasSubordinate) - state = neon.COMPONENTSTATE_READONLY; -} -else if (AttributeUtil.hasRelations(vars.get("$field.UID"))) - state = neon.COMPONENTSTATE_READONLY; - +import("system.db"); +import("system.neon"); +import("system.result"); +import("system.vars"); +import("Attribute_lib"); +import("Sql_lib"); + +var type = vars.get("$field.ATTRIBUTE_TYPE").trim(); +var parentType = AttributeUtil.getAttributeType(vars.get("$field.ATTRIBUTE_PARENT_ID")); +var state = neon.COMPONENTSTATE_EDITABLE; +if (parentType == $AttributeTypes.COMBO || parentType == $AttributeTypes.VOID) +{ + state = neon.COMPONENTSTATE_READONLY; +} +else if (AttributeTypeUtil.isGroupType(type)) +{ + var hasSubordinate = db.cell(SqlCondition.begin() + .andPrepareVars("AB_ATTRIBUTE.AB_ATTRIBUTEID", "$field.UID") + .buildSql( + "select exists (" + + "select SUB.AB_ATTRIBUTEID from AB_ATTRIBUTE SUB " + + "where SUB.ATTRIBUTE_PARENT_ID = AB_ATTRIBUTE.AB_ATTRIBUTEID" + + ") from AB_ATTRIBUTE", "1=2" + ) + ) == "true"; + if (hasSubordinate) + state = neon.COMPONENTSTATE_READONLY; +} +else if (AttributeUtil.hasRelations(vars.get("$field.UID"))) + state = neon.COMPONENTSTATE_READONLY; + result.string(state) \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/attribute_type/valueProcess.js b/entity/Attribute_entity/entityfields/attribute_type/valueProcess.js index dce209f82e8327acf4eeed9795e5ad9c82e80383..a3645f18505c51382e8956fe2d68b8172b6509e4 100644 --- a/entity/Attribute_entity/entityfields/attribute_type/valueProcess.js +++ b/entity/Attribute_entity/entityfields/attribute_type/valueProcess.js @@ -1,14 +1,14 @@ -import("system.db"); -import("system.neon"); -import("system.result"); -import("system.vars"); -import("Attribute_lib"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$field.ATTRIBUTE_PARENT_ID") != "") -{ - var type = AttributeUtil.getAttributeType(vars.get("$field.ATTRIBUTE_PARENT_ID")); - if (type == $AttributeTypes.COMBO) - result.string($AttributeTypes.COMBOVALUE); - else if (type == $AttributeTypes.VOID) - result.string($AttributeTypes.VOID); +import("system.db"); +import("system.neon"); +import("system.result"); +import("system.vars"); +import("Attribute_lib"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.get("$field.ATTRIBUTE_PARENT_ID") != "") +{ + var type = AttributeUtil.getAttributeType(vars.get("$field.ATTRIBUTE_PARENT_ID")); + if (type == $AttributeTypes.COMBO) + result.string($AttributeTypes.COMBOVALUE); + else if (type == $AttributeTypes.VOID) + result.string($AttributeTypes.VOID); } \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/attributegroup/children/attrparenttype_param/valueProcess.js b/entity/Attribute_entity/entityfields/attributegroup/children/attrparenttype_param/valueProcess.js index fe18eca06c7f87d798bd3e58c7726058b5bf049f..51a4aa93d6b8c3918e9ce88cffe3f2705af2c822 100644 --- a/entity/Attribute_entity/entityfields/attributegroup/children/attrparenttype_param/valueProcess.js +++ b/entity/Attribute_entity/entityfields/attributegroup/children/attrparenttype_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - -result.string(vars.getString("$field.ATTRIBUTE_TYPE").trim()); +import("system.vars"); +import("system.result"); + +result.string(vars.getString("$field.ATTRIBUTE_TYPE").trim()); diff --git a/entity/Attribute_entity/entityfields/attributeusages/children/disablemincount_param/valueProcess.js b/entity/Attribute_entity/entityfields/attributeusages/children/disablemincount_param/valueProcess.js index 0a2e8963712038f5f0e3d895d6a5909ed39704af..633db405769cb96db238f1306f8ea4602097bd06 100644 --- a/entity/Attribute_entity/entityfields/attributeusages/children/disablemincount_param/valueProcess.js +++ b/entity/Attribute_entity/entityfields/attributeusages/children/disablemincount_param/valueProcess.js @@ -1,6 +1,6 @@ -import("system.vars"); -import("system.result"); -import("Attribute_lib") - -var type = vars.get("$field.ATTRIBUTE_TYPE").trim(); +import("system.vars"); +import("system.result"); +import("Attribute_lib") + +var type = vars.get("$field.ATTRIBUTE_TYPE").trim(); result.string(type == $AttributeTypes.VOID); \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/attributeusages/children/singleselection_param/valueProcess.js b/entity/Attribute_entity/entityfields/attributeusages/children/singleselection_param/valueProcess.js index 64160d194837e0d77754fff0f7aed6fe33eac1a8..77d3c0b7132b9fdb199b6ae8763c65d83fce91de 100644 --- a/entity/Attribute_entity/entityfields/attributeusages/children/singleselection_param/valueProcess.js +++ b/entity/Attribute_entity/entityfields/attributeusages/children/singleselection_param/valueProcess.js @@ -1,6 +1,6 @@ -import("system.vars"); -import("system.result"); -import("Attribute_lib") - -var type = vars.get("$field.ATTRIBUTE_TYPE").trim(); +import("system.vars"); +import("system.result"); +import("Attribute_lib") + +var type = vars.get("$field.ATTRIBUTE_TYPE").trim(); result.string(type == $AttributeTypes.VOID || type == $AttributeTypes.BOOLEAN); //using a boolean/void attribute twice wouldn't make sense \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/icon/colorProcess.js b/entity/Attribute_entity/entityfields/icon/colorProcess.js index e5e77fb84866001bdc0e880f4da08f62daa7ef10..302ce429bcdf61217ffa97c1b5b40051b5838f21 100644 --- a/entity/Attribute_entity/entityfields/icon/colorProcess.js +++ b/entity/Attribute_entity/entityfields/icon/colorProcess.js @@ -1,6 +1,6 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); - -if (vars.getString("$field.ATTRIBUTE_ACTIVE") != "1") +import("system.vars"); +import("system.result"); +import("system.neon"); + +if (vars.getString("$field.ATTRIBUTE_ACTIVE") != "1") result.string(neon.PRIORITY_LOW_COLOR); \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/icon/valueProcess.js b/entity/Attribute_entity/entityfields/icon/valueProcess.js index 4a3f34fbf2af9bfbd6bf930e87cad647e20e8085..2438caacca909e4038f8b439897def63017365d2 100644 --- a/entity/Attribute_entity/entityfields/icon/valueProcess.js +++ b/entity/Attribute_entity/entityfields/icon/valueProcess.js @@ -1,11 +1,11 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var type = vars.getString("$field.ATTRIBUTE_TYPE"); -var keywordAttributes = KeywordUtils.getAttributeRelationsByKey(type, $KeywordRegistry.attributeType()) -var icon = keywordAttributes.defaultAvatarRepresentation; - +import("system.vars"); +import("system.result"); +import("system.neon"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var type = vars.getString("$field.ATTRIBUTE_TYPE"); +var keywordAttributes = KeywordUtils.getAttributeRelationsByKey(type, $KeywordRegistry.attributeType()) +var icon = keywordAttributes.defaultAvatarRepresentation; + result.string(icon); \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/keyword_container/dropDownProcess.js b/entity/Attribute_entity/entityfields/keyword_container/dropDownProcess.js index eb0b7bceec298d4c0a80e6ccef3a96e47599b6c2..53d4ce097815409c81e0f6b778eba652137b2b72 100644 --- a/entity/Attribute_entity/entityfields/keyword_container/dropDownProcess.js +++ b/entity/Attribute_entity/entityfields/keyword_container/dropDownProcess.js @@ -1,12 +1,12 @@ -import("system.vars"); -import("system.result"); -import("Keyword_lib"); -import("Attribute_lib"); - -var res = []; -if (vars.get("$field.ATTRIBUTE_TYPE").trim() == $AttributeTypes.KEYWORD) - res = KeywordUtils.getContainerNames().map(function (e) - { - return [e, e];//currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers - }); +import("system.vars"); +import("system.result"); +import("Keyword_lib"); +import("Attribute_lib"); + +var res = []; +if (vars.get("$field.ATTRIBUTE_TYPE").trim() == $AttributeTypes.KEYWORD) + res = KeywordUtils.getContainerNames().map(function (e) + { + return [e, e];//currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers + }); result.object(res); \ No newline at end of file diff --git a/entity/Attribute_entity/entityfields/keyword_container/stateProcess.js b/entity/Attribute_entity/entityfields/keyword_container/stateProcess.js index 1ba0d0dfaee10f1e1c0bb83e38c6ec45fe054138..cbe854fdd8770b66f3b660089035cbfb38fd9aa1 100644 --- a/entity/Attribute_entity/entityfields/keyword_container/stateProcess.js +++ b/entity/Attribute_entity/entityfields/keyword_container/stateProcess.js @@ -1,14 +1,14 @@ -import("system.neon"); -import("system.vars"); -import("system.result"); -import("Attribute_lib"); - -var fieldState; -if (vars.get("$field.ATTRIBUTE_TYPE").trim() == $AttributeTypes.KEYWORD && !AttributeUtil.hasRelations(vars.get("$field.UID"))) - fieldState = neon.COMPONENTSTATE_EDITABLE; -else if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW) - fieldState = neon.COMPONENTSTATE_INVISIBLE; -else - fieldState = neon.COMPONENTSTATE_READONLY; - +import("system.neon"); +import("system.vars"); +import("system.result"); +import("Attribute_lib"); + +var fieldState; +if (vars.get("$field.ATTRIBUTE_TYPE").trim() == $AttributeTypes.KEYWORD && !AttributeUtil.hasRelations(vars.get("$field.UID"))) + fieldState = neon.COMPONENTSTATE_EDITABLE; +else if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW) + fieldState = neon.COMPONENTSTATE_INVISIBLE; +else + fieldState = neon.COMPONENTSTATE_READONLY; + result.string(fieldState); \ No newline at end of file diff --git a/entity/Attribute_entity/onValidation.js b/entity/Attribute_entity/onValidation.js index b29f26919c078f346a53bc819a7f728948aa2dba..1c657ef6317d37e10a6b46d12f5cdc36eb430db5 100644 --- a/entity/Attribute_entity/onValidation.js +++ b/entity/Attribute_entity/onValidation.js @@ -1,22 +1,22 @@ -import("system.translate"); -import("system.db"); -import("system.vars"); -import("system.text"); -import("system.neon"); -import("Sql_lib"); - -//TODO: this should no happen in onValidation; waiting for #1032668 -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - var parentId = vars.get("$field.ATTRIBUTE_PARENT_ID"); - if (parentId) - { - var cond = SqlCondition.begin().andPrepare("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID", parentId); - var maskingHelper = new SqlMaskingUtils(); - var newCodeNumber = db.cell(cond.buildSql("select " + maskingHelper.max("AB_ATTRIBUTE.SORTING") + " from AB_ATTRIBUTE", "1 = 2")); - newCodeNumber = Number(newCodeNumber);//if no number exists till no, start value will be 1 (due to: ++0) - if (isNaN(newCodeNumber)) - throw new TypeError(translate.text("The code number is not a valid number.")); - neon.setFieldValue("$field.SORTING", ++newCodeNumber); - } +import("system.translate"); +import("system.db"); +import("system.vars"); +import("system.text"); +import("system.neon"); +import("Sql_lib"); + +//TODO: this should no happen in onValidation; waiting for #1032668 +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + var parentId = vars.get("$field.ATTRIBUTE_PARENT_ID"); + if (parentId) + { + var cond = SqlCondition.begin().andPrepare("AB_ATTRIBUTE.ATTRIBUTE_PARENT_ID", parentId); + var maskingHelper = new SqlMaskingUtils(); + var newCodeNumber = db.cell(cond.buildSql("select " + maskingHelper.max("AB_ATTRIBUTE.SORTING") + " from AB_ATTRIBUTE", "1 = 2")); + newCodeNumber = Number(newCodeNumber);//if no number exists till no, start value will be 1 (due to: ++0) + if (isNaN(newCodeNumber)) + throw new TypeError(translate.text("The code number is not a valid number.")); + neon.setFieldValue("$field.SORTING", ++newCodeNumber); + } } \ No newline at end of file diff --git a/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js b/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js index 43b6453431cae1c6b0fa6f91acbaf4c576896fdb..bdc684d998324deab4280e11969123e954d593fd 100644 --- a/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Attribute_entity/recordcontainers/jdito/contentProcess.js @@ -69,9 +69,9 @@ else if (parentType) } //when there are filters selected, add them to the conditon -if (vars.exists("$local.filter") && vars.get("$local.filter")) +if (vars.exists("$local.userfilter") && vars.get("$local.userfilter")) { - var filter = vars.get("$local.filter"); + var filter = vars.get("$local.userfilter"); condition.andSqlCondition(JditoFilterUtils.getSqlCondition(filter, "AB_ATTRIBUTE", uidTableAlias)); } diff --git a/entity/Attribute_entity/recordcontainers/jdito/onInsert.js b/entity/Attribute_entity/recordcontainers/jdito/onInsert.js index 4562756bb00d4618c663365b69d352456c6fca71..1409f43794007ac09be06eb16a823a15a24edf50 100644 --- a/entity/Attribute_entity/recordcontainers/jdito/onInsert.js +++ b/entity/Attribute_entity/recordcontainers/jdito/onInsert.js @@ -1,23 +1,23 @@ -import("system.db"); -import("system.vars"); - -var columns = [ - "AB_ATTRIBUTEID", - "ATTRIBUTE_ACTIVE", - "ATTRIBUTE_NAME", - "ATTRIBUTE_PARENT_ID", - "ATTRIBUTE_TYPE", - "KEYWORD_CONTAINER", - "SORTING" -]; -var values = [ - vars.get("$field.UID"), - vars.get("$field.ATTRIBUTE_ACTIVE"), - vars.get("$field.ATTRIBUTE_NAME"), - vars.get("$field.ATTRIBUTE_PARENT_ID"), - vars.get("$field.ATTRIBUTE_TYPE"), - vars.get("$field.KEYWORD_CONTAINER"), - vars.get("$field.SORTING") -]; - +import("system.db"); +import("system.vars"); + +var columns = [ + "AB_ATTRIBUTEID", + "ATTRIBUTE_ACTIVE", + "ATTRIBUTE_NAME", + "ATTRIBUTE_PARENT_ID", + "ATTRIBUTE_TYPE", + "KEYWORD_CONTAINER", + "SORTING" +]; +var values = [ + vars.get("$field.UID"), + vars.get("$field.ATTRIBUTE_ACTIVE"), + vars.get("$field.ATTRIBUTE_NAME"), + vars.get("$field.ATTRIBUTE_PARENT_ID"), + vars.get("$field.ATTRIBUTE_TYPE"), + vars.get("$field.KEYWORD_CONTAINER"), + vars.get("$field.SORTING") +]; + db.insertData("AB_ATTRIBUTE", columns, null, values); \ No newline at end of file diff --git a/entity/Attribute_entity/recordcontainers/jdito/onUpdate.js b/entity/Attribute_entity/recordcontainers/jdito/onUpdate.js index 3f2d1eaa3579ee3f78f4a16bf8af3febf87cc270..b4df87ad9c82f722090de7dbfbe185a62294142f 100644 --- a/entity/Attribute_entity/recordcontainers/jdito/onUpdate.js +++ b/entity/Attribute_entity/recordcontainers/jdito/onUpdate.js @@ -1,24 +1,24 @@ -import("system.logging"); -import("Sql_lib"); -import("system.db"); -import("system.vars"); - -var columns = [ - "ATTRIBUTE_ACTIVE", - "ATTRIBUTE_NAME", - "ATTRIBUTE_PARENT_ID", - "ATTRIBUTE_TYPE", - "KEYWORD_CONTAINER", - "SORTING" -]; -var values = [ - vars.get("$field.ATTRIBUTE_ACTIVE"), - vars.get("$field.ATTRIBUTE_NAME"), - vars.get("$field.ATTRIBUTE_PARENT_ID"), - vars.get("$field.ATTRIBUTE_TYPE"), - vars.get("$field.KEYWORD_CONTAINER"), - vars.get("$field.SORTING") -]; - -db.updateData("AB_ATTRIBUTE", columns, null, values, +import("system.logging"); +import("Sql_lib"); +import("system.db"); +import("system.vars"); + +var columns = [ + "ATTRIBUTE_ACTIVE", + "ATTRIBUTE_NAME", + "ATTRIBUTE_PARENT_ID", + "ATTRIBUTE_TYPE", + "KEYWORD_CONTAINER", + "SORTING" +]; +var values = [ + vars.get("$field.ATTRIBUTE_ACTIVE"), + vars.get("$field.ATTRIBUTE_NAME"), + vars.get("$field.ATTRIBUTE_PARENT_ID"), + vars.get("$field.ATTRIBUTE_TYPE"), + vars.get("$field.KEYWORD_CONTAINER"), + vars.get("$field.SORTING") +]; + +db.updateData("AB_ATTRIBUTE", columns, null, values, SqlCondition.equals("AB_ATTRIBUTE.AB_ATTRIBUTEID", vars.get("$field.UID"), "1=2")); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/afterOperatingState.js b/entity/CampaignAddParticipants_entity/afterOperatingState.js index 0265fbd4f36bc81aea602c4cc6f51140f1c03a7e..7b3a87941df94b918715bd33f85459d155b7f3e2 100644 --- a/entity/CampaignAddParticipants_entity/afterOperatingState.js +++ b/entity/CampaignAddParticipants_entity/afterOperatingState.js @@ -1,2 +1,2 @@ -import("system.logging"); +import("system.logging"); logging.log("hallo"); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaign_id/displayValueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaign_id/displayValueProcess.js index c00610e87398affa17633bef42ef19a0e8b2b067..57879ed0ceff07160592a65933c0bd7a871b2610 100644 --- a/entity/CampaignAddParticipants_entity/entityfields/campaign_id/displayValueProcess.js +++ b/entity/CampaignAddParticipants_entity/entityfields/campaign_id/displayValueProcess.js @@ -1,8 +1,8 @@ -import("system.result"); -import("system.db"); -import("system.vars"); -import("Campaign_lib"); - -var campaignId = vars.get("$field.CAMPAIGN_ID"); -var campaignName = CampaignUtils.getCampaignNameById(campaignId); +import("system.result"); +import("system.db"); +import("system.vars"); +import("Campaign_lib"); + +var campaignId = vars.get("$field.CAMPAIGN_ID"); +var campaignName = CampaignUtils.getCampaignNameById(campaignId); result.string(campaignName); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaign_id/onValueChange.js b/entity/CampaignAddParticipants_entity/entityfields/campaign_id/onValueChange.js index 45222625e116d1ca417a83bca89e9607377bf4a4..6991eccc9143e886238cfb6d745e83359814c62e 100644 --- a/entity/CampaignAddParticipants_entity/entityfields/campaign_id/onValueChange.js +++ b/entity/CampaignAddParticipants_entity/entityfields/campaign_id/onValueChange.js @@ -1,7 +1,7 @@ -import("system.vars"); -import("system.neon"); -import("Campaign_lib"); - -var stepId; -stepId = CampaignUtils.getDefaultCampaignStep(vars.get("$field.CAMPAIGN_ID")); +import("system.vars"); +import("system.neon"); +import("Campaign_lib"); + +var stepId; +stepId = CampaignUtils.getDefaultCampaignStep(vars.get("$field.CAMPAIGN_ID")); neon.setFieldValue("$field.CAMPAIGNSTEP_ID", stepId); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaign_id/valueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaign_id/valueProcess.js index 5deb886b88ee09a8de4bd50ba7167e0a0d4b86fa..082c137b3eab63b5169d135f05d9e3e648751e1f 100644 --- a/entity/CampaignAddParticipants_entity/entityfields/campaign_id/valueProcess.js +++ b/entity/CampaignAddParticipants_entity/entityfields/campaign_id/valueProcess.js @@ -1,8 +1,8 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.exists("$param.currentCampaignId_param") && vars.get("$param.currentCampaignId_param")) -{ - result.string(vars.get("$param.currentCampaignId_param")); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.exists("$param.currentCampaignId_param") && vars.get("$param.currentCampaignId_param")) +{ + result.string(vars.get("$param.currentCampaignId_param")); } \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignparticipants_param/valueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignparticipants_param/valueProcess.js index bc239826083563dbc100924e8cdc0689f2b3335b..15cd7f0e5db1eb1c0ac68bde896c552d9fd7ff01 100644 --- a/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignparticipants_param/valueProcess.js +++ b/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignparticipants_param/valueProcess.js @@ -1,3 +1,3 @@ -import("system.vars"); -import("system.result"); +import("system.vars"); +import("system.result"); result.string(vars.get("$param.campaignParticipants_param")); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignstepid_param/valueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignstepid_param/valueProcess.js index 1ad18e3c6c373a202e9d9bafb9748d57338dc5ec..c082bd783cf9b494980ed91f842fc666d31c0e9c 100644 --- a/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignstepid_param/valueProcess.js +++ b/entity/CampaignAddParticipants_entity/entityfields/campaignanalyses/children/campaignstepid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.CAMPAIGNSTEP_ID")); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaignstep_id/displayValueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaignstep_id/displayValueProcess.js index 42912a8480cc5ba01a619786eda263c6068b51bf..9d81dcbc78fe86c085ef2fbcad457f43eae1f4f0 100644 --- a/entity/CampaignAddParticipants_entity/entityfields/campaignstep_id/displayValueProcess.js +++ b/entity/CampaignAddParticipants_entity/entityfields/campaignstep_id/displayValueProcess.js @@ -1,7 +1,7 @@ -import("system.vars"); -import("Campaign_lib"); -import("system.result"); - -var campaignStepId = vars.get("$field.CAMPAIGNSTEP_ID"); -var campaignStepName = CampaignUtils.getCampaignStepNameById(campaignStepId); +import("system.vars"); +import("Campaign_lib"); +import("system.result"); + +var campaignStepId = vars.get("$field.CAMPAIGNSTEP_ID"); +var campaignStepName = CampaignUtils.getCampaignStepNameById(campaignStepId); result.string(campaignStepName); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaignstepconsumer/children/campaignid_param/valueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaignstepconsumer/children/campaignid_param/valueProcess.js index 0b9f6e82c776f901fe0acc30083d718ab0198e8c..27d5bbe0163d41b511dcb375e8f6fe2a5ad7b4d6 100644 --- a/entity/CampaignAddParticipants_entity/entityfields/campaignstepconsumer/children/campaignid_param/valueProcess.js +++ b/entity/CampaignAddParticipants_entity/entityfields/campaignstepconsumer/children/campaignid_param/valueProcess.js @@ -1,5 +1,5 @@ -import("system.logging"); -import("system.vars"); -import("system.result"); -logging.log("parameter campaignid -> " + vars.getString("$field.CAMPAIGN_ID")); +import("system.logging"); +import("system.vars"); +import("system.result"); +logging.log("parameter campaignid -> " + vars.getString("$field.CAMPAIGN_ID")); result.string(vars.getString("$field.CAMPAIGN_ID")); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js index d001f813402438ca1481d4c2fd03c94b4b341de6..3fe2184695f63723eb59b82ebf21486592a049c6 100644 --- a/entity/CampaignAddParticipants_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js +++ b/entity/CampaignAddParticipants_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js @@ -1,5 +1,5 @@ -import("system.result"); -import("system.vars"); -import("Campaign_lib"); - +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + result.string(CampaignUtils.getParticipantCountForStep(vars.get("$field.CAMPAIGNSTEP_ID"))); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js index cc8e454b27deee27b34ccb9e12c08f4e767c065f..eb835646c71fb97012fc1d90d0e8d8c144b04064 100644 --- a/entity/CampaignAddParticipants_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js +++ b/entity/CampaignAddParticipants_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js @@ -1,5 +1,5 @@ -import("system.result"); -import("system.vars"); -import("Campaign_lib"); - +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + result.string(CampaignUtils.getMaxParticipantCountForStep(vars.get("$field.CAMPAIGNSTEP_ID"))); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/entityfields/isupdate/valueProcess.js b/entity/CampaignAddParticipants_entity/entityfields/isupdate/valueProcess.js index 9d4383e75f361c325a98a53f6338210b5af50468..0df79b84a88d164f59590cc0cf75c454073ea958 100644 --- a/entity/CampaignAddParticipants_entity/entityfields/isupdate/valueProcess.js +++ b/entity/CampaignAddParticipants_entity/entityfields/isupdate/valueProcess.js @@ -1,7 +1,7 @@ -import("system.result"); -import("system.vars"); - -var isUpdate = "false"; -if(vars.exists("$param.isUpdate_param") && vars.get("$param.isUpdate_param") != null) - isUpdate = vars.get("$param.isUpdate_param"); +import("system.result"); +import("system.vars"); + +var isUpdate = "false"; +if(vars.exists("$param.isUpdate_param") && vars.get("$param.isUpdate_param") != null) + isUpdate = vars.get("$param.isUpdate_param"); result.string(isUpdate); \ No newline at end of file diff --git a/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js b/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js index 109ef8e54dcca640ddac6994573261ebe153ca5a..831476ba403437a7daf461addecbe7f25adbd6a2 100644 --- a/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js +++ b/entity/CampaignAddParticipants_entity/recordcontainers/jdito/onInsert.js @@ -1,81 +1,81 @@ -import("system.logging"); -import("system.vars"); -import("system.db"); -import("system.util"); -import("Campaign_lib"); - - -logging.log("CampaignAddPs jdito oninsert -> "); - -var campaignId = vars.getString("$field.CAMPAIGN_ID"); -var newCampaignStepId = vars.getString("$field.CAMPAIGNSTEP_ID"); -var participants = JSON.parse(vars.getString("$param.campaignParticipants_param")); - -var isUpdate = vars.get("$field.isUpdate"); -logging.log("onInsert isUpdate -> " + isUpdate); -var colNamesCampaignParticipantLog = CampaignUtils.getParticipantLogInsertColumnNames(); - -var cols = []; - -if(isUpdate == "true") -{ - cols = [ "CAMPAIGNSTEP_ID", - "USER_EDIT", - "DATE_EDIT" - ]; -} -else -{ - cols = [ "CAMPAIGNPARTICIPANTID" - ,"CONTACT_ID" - ,"CAMPAIGN_ID" - ,"CAMPAIGNSTEP_ID" - ,"USER_NEW" - ,"DATE_NEW" - ]; -} - -var statementArray = []; -var logArray = []; -logging.log("isUpdate -> " + isUpdate); -for (participant in participants) -{ - var campaignParticipantLogId = util.getNewUUID(); - if(isUpdate == "true") - { - let updatedValues = [newCampaignStepId, - vars.get("$sys.user"), - vars.get("$sys.date")]; - - let condition = "CAMPAIGNPARTICIPANTID = '" + participants[participant] + "'"; - logging.log("condition -> " + condition); - let valsCampaignParticipantLog = new Array(participants[participant], campaignId, newCampaignStepId, campaignParticipantLogId, vars.get("$sys.user"), vars.get("$sys.date")); - - statementArray.push(["CAMPAIGNPARTICIPANT", cols, null, updatedValues, condition]); - logArray.push(["CAMPAIGNPARTICIPANTLOG", colNamesCampaignParticipantLog, null, valsCampaignParticipantLog]); - } - else - { - let campaignParticipantId = util.getNewUUID(); - - var valsCampaignParticipant = [ campaignParticipantId - , participants[participant] - , campaignId - , newCampaignStepId - , vars.get("$sys.user") - , vars.get("$sys.date") - ]; - - let valsCampaignParticipantLog = new Array(campaignParticipantId, campaignId, newCampaignStepId, campaignParticipantLogId, vars.get("$sys.user"), vars.get("$sys.date")); - - statementArray.push(["CAMPAIGNPARTICIPANT", cols, null, valsCampaignParticipant]); - logArray.push(["CAMPAIGNPARTICIPANTLOG", colNamesCampaignParticipantLog, null, valsCampaignParticipantLog]); - } -} - -if(isUpdate == "true") - db.updates(statementArray) -else - db.inserts(statementArray); - +import("system.logging"); +import("system.vars"); +import("system.db"); +import("system.util"); +import("Campaign_lib"); + + +logging.log("CampaignAddPs jdito oninsert -> "); + +var campaignId = vars.getString("$field.CAMPAIGN_ID"); +var newCampaignStepId = vars.getString("$field.CAMPAIGNSTEP_ID"); +var participants = JSON.parse(vars.getString("$param.campaignParticipants_param")); + +var isUpdate = vars.get("$field.isUpdate"); +logging.log("onInsert isUpdate -> " + isUpdate); +var colNamesCampaignParticipantLog = CampaignUtils.getParticipantLogInsertColumnNames(); + +var cols = []; + +if(isUpdate == "true") +{ + cols = [ "CAMPAIGNSTEP_ID", + "USER_EDIT", + "DATE_EDIT" + ]; +} +else +{ + cols = [ "CAMPAIGNPARTICIPANTID" + ,"CONTACT_ID" + ,"CAMPAIGN_ID" + ,"CAMPAIGNSTEP_ID" + ,"USER_NEW" + ,"DATE_NEW" + ]; +} + +var statementArray = []; +var logArray = []; +logging.log("isUpdate -> " + isUpdate); +for (participant in participants) +{ + var campaignParticipantLogId = util.getNewUUID(); + if(isUpdate == "true") + { + let updatedValues = [newCampaignStepId, + vars.get("$sys.user"), + vars.get("$sys.date")]; + + let condition = "CAMPAIGNPARTICIPANTID = '" + participants[participant] + "'"; + logging.log("condition -> " + condition); + let valsCampaignParticipantLog = new Array(participants[participant], campaignId, newCampaignStepId, campaignParticipantLogId, vars.get("$sys.user"), vars.get("$sys.date")); + + statementArray.push(["CAMPAIGNPARTICIPANT", cols, null, updatedValues, condition]); + logArray.push(["CAMPAIGNPARTICIPANTLOG", colNamesCampaignParticipantLog, null, valsCampaignParticipantLog]); + } + else + { + let campaignParticipantId = util.getNewUUID(); + + var valsCampaignParticipant = [ campaignParticipantId + , participants[participant] + , campaignId + , newCampaignStepId + , vars.get("$sys.user") + , vars.get("$sys.date") + ]; + + let valsCampaignParticipantLog = new Array(campaignParticipantId, campaignId, newCampaignStepId, campaignParticipantLogId, vars.get("$sys.user"), vars.get("$sys.date")); + + statementArray.push(["CAMPAIGNPARTICIPANT", cols, null, valsCampaignParticipant]); + logArray.push(["CAMPAIGNPARTICIPANTLOG", colNamesCampaignParticipantLog, null, valsCampaignParticipantLog]); + } +} + +if(isUpdate == "true") + db.updates(statementArray) +else + db.inserts(statementArray); + db.inserts(logArray); \ No newline at end of file diff --git a/entity/CampaignCostChart_entity/recordcontainers/jdito/contentProcess.js b/entity/CampaignCostChart_entity/recordcontainers/jdito/contentProcess.js index 148ffa8a083a3719811da1b498be0f36ed1adfda..e6bc1f8b2a23816cdfe1b16473df3c10d1f45cb6 100644 --- a/entity/CampaignCostChart_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/CampaignCostChart_entity/recordcontainers/jdito/contentProcess.js @@ -1,72 +1,72 @@ -import("system.result"); -import("system.util"); -import("Sql_lib"); -import("system.db"); -import("system.translate"); -import("system.vars"); -import("KeywordRegistry_basic"); -import("Keyword_lib"); -import("Campaign_lib"); - -var campaignId = vars.get("$param.CampaignId_param"); -var campaignName = CampaignUtils.getCampaignNameById(campaignId); - -var costSqlSelect = "select CAMPAIGNCOSTID, CAMPAIGNSTEP_ID, CAMPAIGNSTEP.NAME, CATEGORY, " - + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.campaignStepCostCategory(), "CAMPAIGNCOST.CATEGORY") - + ", NET from CAMPAIGNCOST left join CAMPAIGNSTEP on CAMPAIGNSTEP_ID = CAMPAIGNSTEPID"; -var costData = db.table(SqlCondition.begin() - .andPrepare("CAMPAIGNCOST.CAMPAIGN_ID", campaignId) - .buildSql(costSqlSelect, "1=2") -); - -var types = { - FIX : "FIX", - VARIABLE : "VARIABLE" -}; -var campaignCost = {}; - -costData.forEach(function ([costId, stepId, stepName, categoryId, categoryName, netCost]) -{ - let type = stepId - ? types.VARIABLE - : types.FIX; - - if (!(type in this)) - { - let typeName = type == types.FIX - ? translate.text("Fix cost") - : translate.text("Variable costs") - this[type] = new CampaignCostNode("", typeName, 0); - } - if (type == types.VARIABLE && !(stepId in this)) - this[stepId] = new CampaignCostNode(type, translate.text("Step") + ": " + stepName, 0); - - categoryId = categoryId + stepId + type; - if (!(categoryId in this)) - this[categoryId] = new CampaignCostNode(stepId || type, categoryName, 0); - - netCost = Number(netCost); - this[categoryId].value += netCost; - this[type].value += netCost; - if (stepId) - this[stepId].value += netCost; -}, campaignCost); - -var records = []; -for (let i in campaignCost) - records.push([ - i, - campaignCost[i].parent, - i, - campaignCost[i].title, - campaignCost[i].value - ]); - -result.object(records); - -function CampaignCostNode (pParent, pTitle, pValue) -{ - this.parent = pParent; - this.title = pTitle; - this.value = Number(pValue); +import("system.result"); +import("system.util"); +import("Sql_lib"); +import("system.db"); +import("system.translate"); +import("system.vars"); +import("KeywordRegistry_basic"); +import("Keyword_lib"); +import("Campaign_lib"); + +var campaignId = vars.get("$param.CampaignId_param"); +var campaignName = CampaignUtils.getCampaignNameById(campaignId); + +var costSqlSelect = "select CAMPAIGNCOSTID, CAMPAIGNSTEP_ID, CAMPAIGNSTEP.NAME, CATEGORY, " + + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.campaignStepCostCategory(), "CAMPAIGNCOST.CATEGORY") + + ", NET from CAMPAIGNCOST left join CAMPAIGNSTEP on CAMPAIGNSTEP_ID = CAMPAIGNSTEPID"; +var costData = db.table(SqlCondition.begin() + .andPrepare("CAMPAIGNCOST.CAMPAIGN_ID", campaignId) + .buildSql(costSqlSelect, "1=2") +); + +var types = { + FIX : "FIX", + VARIABLE : "VARIABLE" +}; +var campaignCost = {}; + +costData.forEach(function ([costId, stepId, stepName, categoryId, categoryName, netCost]) +{ + let type = stepId + ? types.VARIABLE + : types.FIX; + + if (!(type in this)) + { + let typeName = type == types.FIX + ? translate.text("Fix cost") + : translate.text("Variable costs") + this[type] = new CampaignCostNode("", typeName, 0); + } + if (type == types.VARIABLE && !(stepId in this)) + this[stepId] = new CampaignCostNode(type, translate.text("Step") + ": " + stepName, 0); + + categoryId = categoryId + stepId + type; + if (!(categoryId in this)) + this[categoryId] = new CampaignCostNode(stepId || type, categoryName, 0); + + netCost = Number(netCost); + this[categoryId].value += netCost; + this[type].value += netCost; + if (stepId) + this[stepId].value += netCost; +}, campaignCost); + +var records = []; +for (let i in campaignCost) + records.push([ + i, + campaignCost[i].parent, + i, + campaignCost[i].title, + campaignCost[i].value + ]); + +result.object(records); + +function CampaignCostNode (pParent, pTitle, pValue) +{ + this.parent = pParent; + this.title = pTitle; + this.value = Number(pValue); } \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/afterOperatingState.js b/entity/CampaignCost_entitiy/afterOperatingState.js index d39336402371a7d3f5db536a2e8ca261fa4e7fe3..aadf712515f2c07c00aac89451d56b6cd77bdf39 100644 --- a/entity/CampaignCost_entitiy/afterOperatingState.js +++ b/entity/CampaignCost_entitiy/afterOperatingState.js @@ -1,7 +1,7 @@ -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW) -{ - neon.refreshAll(); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW) +{ + neon.refreshAll(); } \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/alter/children/edit/onActionProcess.js b/entity/CampaignCost_entitiy/entityfields/alter/children/edit/onActionProcess.js index 2f19601f3e8f533982bac2823f085588c6f8dd7e..5808a7a781c569c67472b7a91f7892363330b39a 100644 --- a/entity/CampaignCost_entitiy/entityfields/alter/children/edit/onActionProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/alter/children/edit/onActionProcess.js @@ -1,7 +1,7 @@ -import("system.neon"); -import("system.vars"); - -var params = { - "Uid_param" : vars.get("$sys.uid") -} +import("system.neon"); +import("system.vars"); + +var params = { + "Uid_param" : vars.get("$sys.uid") +} neon.openContext("CampaignCost", "CampaignCostEdit_view", null, neon.OPERATINGSTATE_EDIT, params); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaign_id/displayValueProcess.js b/entity/CampaignCost_entitiy/entityfields/campaign_id/displayValueProcess.js index 12ea2ba316a5f6370d042673bc2c79c8019841f4..2e2d6acf76ae6b1ea51cbcc77db98483695bcbf8 100644 --- a/entity/CampaignCost_entitiy/entityfields/campaign_id/displayValueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/campaign_id/displayValueProcess.js @@ -1,9 +1,9 @@ -import("system.result"); -import("system.db"); -import("system.vars"); -import("Campaign_lib"); - -var campaignId = vars.get("$field.CAMPAIGN_ID"); -var campaignName = CampaignUtils.getCampaignNameById(campaignId); - +import("system.result"); +import("system.db"); +import("system.vars"); +import("Campaign_lib"); + +var campaignId = vars.get("$field.CAMPAIGN_ID"); +var campaignName = CampaignUtils.getCampaignNameById(campaignId); + result.string(campaignName); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaign_id/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/campaign_id/valueProcess.js index aae29913f6603e7e01072a210fe275d8112fabe2..4037fcb024927b70e5a6ca6f7753c70c0cea0728 100644 --- a/entity/CampaignCost_entitiy/entityfields/campaign_id/valueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/campaign_id/valueProcess.js @@ -1,8 +1,8 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.CampaignId_param") && vars.get("$param.CampaignId_param")) -{ - result.string(vars.get("$param.CampaignId_param")); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.CampaignId_param") && vars.get("$param.CampaignId_param")) +{ + result.string(vars.get("$param.CampaignId_param")); } \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaigncostid/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/campaigncostid/valueProcess.js index f6b9da922bcaccb0006690f599c1d3cee4d00c55..622e00f05f77bd63405f4487831518087cc38d27 100644 --- a/entity/CampaignCost_entitiy/entityfields/campaigncostid/valueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/campaigncostid/valueProcess.js @@ -1,7 +1,7 @@ -import("system.neon"); -import("system.util"); -import("system.vars"); -import("system.result"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.neon"); +import("system.util"); +import("system.vars"); +import("system.result"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaigncosts/children/campaignsteps_param/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/campaigncosts/children/campaignsteps_param/valueProcess.js index 742074b164130b0dced0dc645104ededc1501e96..4f08839a6a4d79cdb90175f7b7f194a9902ec27f 100644 --- a/entity/CampaignCost_entitiy/entityfields/campaigncosts/children/campaignsteps_param/valueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/campaigncosts/children/campaignsteps_param/valueProcess.js @@ -1,2 +1,2 @@ -import("system.result"); +import("system.result"); result.string(0) \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaignstep_id/displayValueProcess.js b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/displayValueProcess.js index ee615b672f09af762e082d55eb0dfae53be9a87d..f05a19497e25fe0dc5771521a787dbac10fb5489 100644 --- a/entity/CampaignCost_entitiy/entityfields/campaignstep_id/displayValueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/displayValueProcess.js @@ -1,20 +1,20 @@ -import("system.neon"); -import("system.translate"); -import("system.result"); -import("system.db"); -import("system.vars"); -import("Campaign_lib"); - -if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW) -{ - var campaignStepId = vars.get("$field.CAMPAIGNSTEP_ID"); - if (campaignStepId) - { - var campaignStepName = CampaignUtils.getCampaignStepNameById(campaignStepId); - result.string(translate.text("Step") + ": " + campaignStepName); - } - else - { - result.string(translate.text("Fix cost")); - } +import("system.neon"); +import("system.translate"); +import("system.result"); +import("system.db"); +import("system.vars"); +import("Campaign_lib"); + +if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW) +{ + var campaignStepId = vars.get("$field.CAMPAIGNSTEP_ID"); + if (campaignStepId) + { + var campaignStepName = CampaignUtils.getCampaignStepNameById(campaignStepId); + result.string(translate.text("Step") + ": " + campaignStepName); + } + else + { + result.string(translate.text("Fix cost")); + } } \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaignstep_id/mandatoryProcess.js b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/mandatoryProcess.js index 39c2cd139e0d469ba5a2445c0bb53004299c8632..32de11947a0d476bc467050c0a740461be22b2f7 100644 --- a/entity/CampaignCost_entitiy/entityfields/campaignstep_id/mandatoryProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/mandatoryProcess.js @@ -1,7 +1,7 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); - -result.object((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && - vars.exists("$param.CampaignSteps_param") && vars.get("$param.CampaignSteps_param") == "1" && - vars.exists("$param.CampaignStepId_param") && !vars.get("$param.CampaignStepId_param"))); +import("system.result"); +import("system.neon"); +import("system.vars"); + +result.object((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && + vars.exists("$param.CampaignSteps_param") && vars.get("$param.CampaignSteps_param") == "1" && + vars.exists("$param.CampaignStepId_param") && !vars.get("$param.CampaignStepId_param"))); diff --git a/entity/CampaignCost_entitiy/entityfields/campaignstep_id/onValueChange.js b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/onValueChange.js index a7827c48e458d541031e9d65941ade4fc7e0ff16..6483cdd91c7941e5997f3405fffbddcf3893f23a 100644 --- a/entity/CampaignCost_entitiy/entityfields/campaignstep_id/onValueChange.js +++ b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/onValueChange.js @@ -1,3 +1,3 @@ -import("system.neon"); - +import("system.neon"); + neon.setFieldValue("$field.CATEGORY", ""); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaignstep_id/stateProcess.js b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/stateProcess.js index 93d98b6e6e5e4d2e03ce31e3971571940efccc64..a3d6f4f4d26c42171f5dfaf152074f7039f95afd 100644 --- a/entity/CampaignCost_entitiy/entityfields/campaignstep_id/stateProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/stateProcess.js @@ -1,13 +1,13 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && - vars.exists("$param.CampaignSteps_param") && vars.get("$param.CampaignSteps_param") == "1" && - vars.exists("$param.CampaignStepId_param") && !vars.get("$param.CampaignStepId_param")) -{ - result.string(neon.COMPONENTSTATE_AUTO); -} -else -{ - result.string(neon.COMPONENTSTATE_INVISIBLE); +import("system.result"); +import("system.neon"); +import("system.vars"); +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && + vars.exists("$param.CampaignSteps_param") && vars.get("$param.CampaignSteps_param") == "1" && + vars.exists("$param.CampaignStepId_param") && !vars.get("$param.CampaignStepId_param")) +{ + result.string(neon.COMPONENTSTATE_AUTO); +} +else +{ + result.string(neon.COMPONENTSTATE_INVISIBLE); } \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaignstep_id/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/valueProcess.js index f4a91495ca4454e2b82cb84d6a7b46761f19c88e..30896ea50e4ae6bbc69bb7baaca294418004cb84 100644 --- a/entity/CampaignCost_entitiy/entityfields/campaignstep_id/valueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/campaignstep_id/valueProcess.js @@ -1,8 +1,8 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.CampaignStepId_param") && vars.get("$param.CampaignStepId_param")) -{ - result.string(vars.get("$param.CampaignStepId_param")); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.CampaignStepId_param") && vars.get("$param.CampaignStepId_param")) +{ + result.string(vars.get("$param.CampaignStepId_param")); } \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/campaignsteps_param/documentation.adoc b/entity/CampaignCost_entitiy/entityfields/campaignsteps_param/documentation.adoc index e7434a04e7650f378d9e46cc04b5b0d7518234d3..d74c862542faa32b0e558fa69c33edc0000980f6 100644 --- a/entity/CampaignCost_entitiy/entityfields/campaignsteps_param/documentation.adoc +++ b/entity/CampaignCost_entitiy/entityfields/campaignsteps_param/documentation.adoc @@ -1,2 +1,2 @@ -if 0: show only fix costs +if 0: show only fix costs if 1: show only campaign steps \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/category/displayValueProcess.js b/entity/CampaignCost_entitiy/entityfields/category/displayValueProcess.js index 96536279ef0b858b99687c397622da45f831fa14..c8d7303fadeec6339bcd9065205606caa49e415c 100644 --- a/entity/CampaignCost_entitiy/entityfields/category/displayValueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/category/displayValueProcess.js @@ -1,6 +1,6 @@ -import("system.result"); -import("system.vars"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - +import("system.result"); +import("system.vars"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + result.string(KeywordUtils.getViewValue($KeywordRegistry.campaignStepCostCategory(), vars.get("$this.value"))); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/countparticipants/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/countparticipants/valueProcess.js index 6952bc19fb1c4532ee3588b899bb4be228e0dc60..c8cec9a46f4ad458f2dfb3f8525644fb1a1d5244 100644 --- a/entity/CampaignCost_entitiy/entityfields/countparticipants/valueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/countparticipants/valueProcess.js @@ -1,12 +1,12 @@ -import("system.result"); -import("system.vars"); -import("Campaign_lib"); - -if (vars.get("$field.CAMPAIGNSTEP_ID")) -{ - result.string(CampaignUtils.getParticipantCountForStep(vars.get("$field.CAMPAIGNSTEP_ID"))); -} -else -{ - result.string(CampaignUtils.getParticipantCount(vars.get("$field.CAMPAIGN_ID"))); +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +if (vars.get("$field.CAMPAIGNSTEP_ID")) +{ + result.string(CampaignUtils.getParticipantCountForStep(vars.get("$field.CAMPAIGNSTEP_ID"))); +} +else +{ + result.string(CampaignUtils.getParticipantCount(vars.get("$field.CAMPAIGN_ID"))); } \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/date_edit/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/date_edit/valueProcess.js index 5e6ef059738e0c724a468685333a5e257ac228ce..96630036eca528560c85d9a237044931e7a9197b 100644 --- a/entity/CampaignCost_entitiy/entityfields/date_edit/valueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/date_edit/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) result.string(vars.get("$sys.date")); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/date_new/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/date_new/valueProcess.js index a72892783bf2bd04fe353c47f1be0cb570bbb323..1b1ea7c082a78ebd6e793a5dc644d8920f9522c2 100644 --- a/entity/CampaignCost_entitiy/entityfields/date_new/valueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/date_new/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(vars.get("$sys.date")); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/containername_param/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/containername_param/valueProcess.js index 7a66c852983ef1afe350b0b1637c9859a85e2421..621fdd82097282d2e949cb0402cf1edcbf5610ce 100644 --- a/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/containername_param/valueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/containername_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("KeywordRegistry_basic"); - +import("system.result"); +import("KeywordRegistry_basic"); + result.string($KeywordRegistry.campaignStepCostCategory()); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/excludedkeyidssubquery_param/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/excludedkeyidssubquery_param/valueProcess.js index f9fdcc7295ca3443a1ba782155d529cc5f8103a6..7bf0f39ed06188503867bd1ecca206fece100bc0 100644 --- a/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/excludedkeyidssubquery_param/valueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/keywordcampaignmanagementcostcategory/children/excludedkeyidssubquery_param/valueProcess.js @@ -1,18 +1,18 @@ -import("system.neon"); -import("system.vars"); -import("system.db"); -import("Sql_lib"); -import("system.result"); - -var cond = SqlCondition.begin() - .andPrepareVars("CAMPAIGNCOST.CAMPAIGN_ID", "$field.CAMPAIGN_ID"); - -if (vars.get("$field.CAMPAIGNSTEP_ID")) - cond.andPrepareVars("CAMPAIGNCOST.CAMPAIGNSTEP_ID", "$field.CAMPAIGNSTEP_ID"); -else - cond.and("CAMPAIGNCOST.CAMPAIGNSTEP_ID is null") - -if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW) - cond.andPrepareVars("CAMPAIGNCOST.CAMPAIGNCOSTID", "$field.CAMPAIGNCOSTID", "# <> ?"); - +import("system.neon"); +import("system.vars"); +import("system.db"); +import("Sql_lib"); +import("system.result"); + +var cond = SqlCondition.begin() + .andPrepareVars("CAMPAIGNCOST.CAMPAIGN_ID", "$field.CAMPAIGN_ID"); + +if (vars.get("$field.CAMPAIGNSTEP_ID")) + cond.andPrepareVars("CAMPAIGNCOST.CAMPAIGNSTEP_ID", "$field.CAMPAIGNSTEP_ID"); +else + cond.and("CAMPAIGNCOST.CAMPAIGNSTEP_ID is null") + +if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW) + cond.andPrepareVars("CAMPAIGNCOST.CAMPAIGNCOSTID", "$field.CAMPAIGNCOSTID", "# <> ?"); + result.string(db.translateStatement(cond.buildSql("select CATEGORY from CAMPAIGNCOST", "1=2", "group by CATEGORY"))); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/netperparticipant/titleProcess.js b/entity/CampaignCost_entitiy/entityfields/netperparticipant/titleProcess.js index fc36199cca341dd1e3923ebb223ab28f3efa5ccf..c5ea14f73ec9a5870c7c5e3a7a58e3358107e15d 100644 --- a/entity/CampaignCost_entitiy/entityfields/netperparticipant/titleProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/netperparticipant/titleProcess.js @@ -1,4 +1,4 @@ -import("system.translate"); -import("system.result"); - +import("system.translate"); +import("system.result"); + result.string(translate.text("Cost") + " " + translate.text("per") + " " + translate.text("Participant")); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/netperparticipant/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/netperparticipant/valueProcess.js index f3dedbcae4b8b310a011af1104b8706b3421998b..eea808176cb74be09b41f29a60bb1105115c5af4 100644 --- a/entity/CampaignCost_entitiy/entityfields/netperparticipant/valueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/netperparticipant/valueProcess.js @@ -1,11 +1,11 @@ -import("system.vars"); -import("system.result"); -import("system.eMath"); - -var netto = parseFloat(vars.get("$field.NET")); -var countParticipants = parseFloat(vars.get("$field.countParticipants")); - -if (netto && countParticipants &&countParticipants > 0) - result.string(eMath.roundDec(netto / countParticipants, 2, eMath.ROUND_HALF_UP)); -else +import("system.vars"); +import("system.result"); +import("system.eMath"); + +var netto = parseFloat(vars.get("$field.NET")); +var countParticipants = parseFloat(vars.get("$field.countParticipants")); + +if (netto && countParticipants &&countParticipants > 0) + result.string(eMath.roundDec(netto / countParticipants, 2, eMath.ROUND_HALF_UP)); +else result.string(0); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/stepcosts/children/campaignsteps_param/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/stepcosts/children/campaignsteps_param/valueProcess.js index 0488a23572b30f97174720a23726a09b8b266381..4336563e79c0a64b263cca325ed6285fbbededa7 100644 --- a/entity/CampaignCost_entitiy/entityfields/stepcosts/children/campaignsteps_param/valueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/stepcosts/children/campaignsteps_param/valueProcess.js @@ -1,3 +1,3 @@ -import("system.result"); - +import("system.result"); + result.string(1); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/user_edit/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/user_edit/valueProcess.js index 6af880ae3e0e2b89b4eee8327ed49f1eefe458af..8a93ff7e16a82fb332cf1f6f30c95bec0c74d929 100644 --- a/entity/CampaignCost_entitiy/entityfields/user_edit/valueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/user_edit/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) result.string(vars.get("$sys.user")); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/entityfields/user_new/valueProcess.js b/entity/CampaignCost_entitiy/entityfields/user_new/valueProcess.js index e518bc75a9494e53a83613dedd943106e74fc00a..2615c2bbe71788eb05f1ff93ea8afaa05b40f6fb 100644 --- a/entity/CampaignCost_entitiy/entityfields/user_new/valueProcess.js +++ b/entity/CampaignCost_entitiy/entityfields/user_new/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(vars.get("$sys.user")); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/recordcontainers/db/conditionProcess.js b/entity/CampaignCost_entitiy/recordcontainers/db/conditionProcess.js index ff7f94167b0fbafce7189b2facf299ae60849832..f553af6bac573d4226067d0bf246eada7d0d1dc5 100644 --- a/entity/CampaignCost_entitiy/recordcontainers/db/conditionProcess.js +++ b/entity/CampaignCost_entitiy/recordcontainers/db/conditionProcess.js @@ -1,22 +1,22 @@ -import("system.vars"); -import("system.db"); -import("system.result"); -import("Sql_lib"); - -var cond = SqlCondition.begin() - .andPrepareVars("CAMPAIGNCOST.CAMPAIGNCOSTID", "$param.Uid_param") - .andPrepareVars("CAMPAIGNCOST.CAMPAIGN_ID", "$param.CampaignId_param") - .andPrepareVars("CAMPAIGNCOST.CAMPAIGNSTEP_ID", "$param.CampaignStepId_param"); - -if (vars.exists("$param.CampaignSteps_param") && vars.get("$param.CampaignSteps_param") == "1") -{ - // only step costs - cond.and("CAMPAIGNCOST.CAMPAIGNSTEP_ID is not null"); -} -else -{ - // only fix costs - cond.and("CAMPAIGNCOST.CAMPAIGNSTEP_ID is null"); -} - +import("system.vars"); +import("system.db"); +import("system.result"); +import("Sql_lib"); + +var cond = SqlCondition.begin() + .andPrepareVars("CAMPAIGNCOST.CAMPAIGNCOSTID", "$param.Uid_param") + .andPrepareVars("CAMPAIGNCOST.CAMPAIGN_ID", "$param.CampaignId_param") + .andPrepareVars("CAMPAIGNCOST.CAMPAIGNSTEP_ID", "$param.CampaignStepId_param"); + +if (vars.exists("$param.CampaignSteps_param") && vars.get("$param.CampaignSteps_param") == "1") +{ + // only step costs + cond.and("CAMPAIGNCOST.CAMPAIGNSTEP_ID is not null"); +} +else +{ + // only fix costs + cond.and("CAMPAIGNCOST.CAMPAIGNSTEP_ID is null"); +} + result.string(db.translateCondition(cond.build("1=2"))); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/recordcontainers/db/fromClauseProcess.js b/entity/CampaignCost_entitiy/recordcontainers/db/fromClauseProcess.js index 4d95079d7cb044ddab9f1e475e6921ec8dcfb2f9..e075c4e894903b135e4bd4281da91bdb84c90538 100644 --- a/entity/CampaignCost_entitiy/recordcontainers/db/fromClauseProcess.js +++ b/entity/CampaignCost_entitiy/recordcontainers/db/fromClauseProcess.js @@ -1,3 +1,3 @@ -import("system.result"); - +import("system.result"); + result.string("CAMPAIGNCOST left join CAMPAIGNSTEP on CAMPAIGNCOST.CAMPAIGNSTEP_ID = CAMPAIGNSTEP.CAMPAIGNSTEPID") \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/recordcontainers/db/orderClauseProcess.js b/entity/CampaignCost_entitiy/recordcontainers/db/orderClauseProcess.js index 8538a702d13027d9d9739d9b6652105b87725638..e8abc388f8ef2e8b95dcb0d800030fcfc52701d0 100644 --- a/entity/CampaignCost_entitiy/recordcontainers/db/orderClauseProcess.js +++ b/entity/CampaignCost_entitiy/recordcontainers/db/orderClauseProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("system.db"); - +import("system.result"); +import("system.db"); + result.object({"CAMPAIGNSTEP.SORTING": db.ASCENDING}); \ No newline at end of file diff --git a/entity/CampaignCost_entitiy/recordcontainers/db/recordfieldmappings/category.displayvalue/expression.js b/entity/CampaignCost_entitiy/recordcontainers/db/recordfieldmappings/category.displayvalue/expression.js index 3aa7368fd41339c1bd48a4951acb4ff54b12ef58..4f14958aedfdf8daa195607c5b86e2e66e097ce5 100644 --- a/entity/CampaignCost_entitiy/recordcontainers/db/recordfieldmappings/category.displayvalue/expression.js +++ b/entity/CampaignCost_entitiy/recordcontainers/db/recordfieldmappings/category.displayvalue/expression.js @@ -1,6 +1,6 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.campaignStepCostCategory(), "CAMPAIGNCOST.CATEGORY"); +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.campaignStepCostCategory(), "CAMPAIGNCOST.CATEGORY"); result.string(sql); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/afterOperatingState.js b/entity/CampaignParticipant_entity/afterOperatingState.js index d39336402371a7d3f5db536a2e8ca261fa4e7fe3..aadf712515f2c07c00aac89451d56b6cd77bdf39 100644 --- a/entity/CampaignParticipant_entity/afterOperatingState.js +++ b/entity/CampaignParticipant_entity/afterOperatingState.js @@ -1,7 +1,7 @@ -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW) -{ - neon.refreshAll(); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_VIEW) +{ + neon.refreshAll(); } \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaign_id/displayValueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaign_id/displayValueProcess.js index 12ea2ba316a5f6370d042673bc2c79c8019841f4..2e2d6acf76ae6b1ea51cbcc77db98483695bcbf8 100644 --- a/entity/CampaignParticipant_entity/entityfields/campaign_id/displayValueProcess.js +++ b/entity/CampaignParticipant_entity/entityfields/campaign_id/displayValueProcess.js @@ -1,9 +1,9 @@ -import("system.result"); -import("system.db"); -import("system.vars"); -import("Campaign_lib"); - -var campaignId = vars.get("$field.CAMPAIGN_ID"); -var campaignName = CampaignUtils.getCampaignNameById(campaignId); - +import("system.result"); +import("system.db"); +import("system.vars"); +import("Campaign_lib"); + +var campaignId = vars.get("$field.CAMPAIGN_ID"); +var campaignName = CampaignUtils.getCampaignNameById(campaignId); + result.string(campaignName); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js b/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js index 914e1ea09b29d039e3c94536843f6c2d6186c4a2..2b4f523926b9ec4c9690d04b39c57a218cd7d63a 100644 --- a/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js +++ b/entity/CampaignParticipant_entity/entityfields/campaign_id/onValueChange.js @@ -1,7 +1,7 @@ -import("system.neon"); -import("system.logging"); -import("Campaign_lib"); -import("system.vars"); - -var stepId = CampaignUtils.getDefaultCampaignStep(vars.get("$field.CAMPAIGN_ID")); +import("system.neon"); +import("system.logging"); +import("Campaign_lib"); +import("system.vars"); + +var stepId = CampaignUtils.getDefaultCampaignStep(vars.get("$field.CAMPAIGN_ID")); neon.setFieldValue("$field.CAMPAIGNSTEP_ID", stepId); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaign_id/stateProcess.js b/entity/CampaignParticipant_entity/entityfields/campaign_id/stateProcess.js index ca54a5bcb39a3129766916d2a18ffd04748bee80..613e3f71b7ad6c672c380b0c7805942824de12b0 100644 --- a/entity/CampaignParticipant_entity/entityfields/campaign_id/stateProcess.js +++ b/entity/CampaignParticipant_entity/entityfields/campaign_id/stateProcess.js @@ -1,9 +1,9 @@ -//import("system.neon"); -//import("system.result"); -//import("system.vars"); -// -//if(vars.exists("$param.CampaignId_param") && vars.get("$param.CampaignId_param") != null) -// result.string(neon.COMPONENTSTATE_READONLY); -//else -// result.string(neon.COMPONENTSTATE_EDITABLE); +//import("system.neon"); +//import("system.result"); +//import("system.vars"); +// +//if(vars.exists("$param.CampaignId_param") && vars.get("$param.CampaignId_param") != null) +// result.string(neon.COMPONENTSTATE_READONLY); +//else +// result.string(neon.COMPONENTSTATE_EDITABLE); //todo campaignllokup readonly? \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaign_id/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaign_id/valueProcess.js index 786b8bb1a59bea4737695d019250ba76c377e867..5c44094f8da6b03b16ca1ea656cb5f5bd8cf5d85 100644 --- a/entity/CampaignParticipant_entity/entityfields/campaign_id/valueProcess.js +++ b/entity/CampaignParticipant_entity/entityfields/campaign_id/valueProcess.js @@ -1,14 +1,14 @@ -import("system.neon"); -import("system.result"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && - vars.exists("$param.CampaignId_param") && vars.get("$param.CampaignId_param")) - { - //todo - //Has to be set here because of a bug which prevents loading of the param in the value process - if(vars.exists("$param.CampaignStepId_param") && vars.get("$param.CampaignStepId_param")) - neon.setFieldValue("$field.CAMPAIGNSTEP_ID", vars.get("$param.CampaignStepId_param")); - - result.string(vars.get("$param.CampaignId_param")); +import("system.neon"); +import("system.result"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && + vars.exists("$param.CampaignId_param") && vars.get("$param.CampaignId_param")) + { + //todo + //Has to be set here because of a bug which prevents loading of the param in the value process + if(vars.exists("$param.CampaignStepId_param") && vars.get("$param.CampaignStepId_param")) + neon.setFieldValue("$field.CAMPAIGNSTEP_ID", vars.get("$param.CampaignStepId_param")); + + result.string(vars.get("$param.CampaignId_param")); } \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaignparticipantid/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaignparticipantid/valueProcess.js index f6b9da922bcaccb0006690f599c1d3cee4d00c55..622e00f05f77bd63405f4487831518087cc38d27 100644 --- a/entity/CampaignParticipant_entity/entityfields/campaignparticipantid/valueProcess.js +++ b/entity/CampaignParticipant_entity/entityfields/campaignparticipantid/valueProcess.js @@ -1,7 +1,7 @@ -import("system.neon"); -import("system.util"); -import("system.vars"); -import("system.result"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.neon"); +import("system.util"); +import("system.vars"); +import("system.result"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaignstep_id/displayValueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaignstep_id/displayValueProcess.js index 6a379f5fd6249fc59ea18bfb2a2ad442aa88e7a8..4544724c9bda3d3ba7535d5cd75833df59658a1f 100644 --- a/entity/CampaignParticipant_entity/entityfields/campaignstep_id/displayValueProcess.js +++ b/entity/CampaignParticipant_entity/entityfields/campaignstep_id/displayValueProcess.js @@ -1,7 +1,7 @@ -import("Campaign_lib"); -import("system.vars"); -import("system.db"); -import("system.result"); - - +import("Campaign_lib"); +import("system.vars"); +import("system.db"); +import("system.result"); + + result.string(CampaignUtils.getCampaignStepNameById(vars.get("$field.CAMPAIGNSTEP_ID"))); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js index d001f813402438ca1481d4c2fd03c94b4b341de6..3fe2184695f63723eb59b82ebf21486592a049c6 100644 --- a/entity/CampaignParticipant_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js +++ b/entity/CampaignParticipant_entity/entityfields/campaignstepcurrentparticipantcount/displayValueProcess.js @@ -1,5 +1,5 @@ -import("system.result"); -import("system.vars"); -import("Campaign_lib"); - +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + result.string(CampaignUtils.getParticipantCountForStep(vars.get("$field.CAMPAIGNSTEP_ID"))); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js index cc8e454b27deee27b34ccb9e12c08f4e767c065f..eb835646c71fb97012fc1d90d0e8d8c144b04064 100644 --- a/entity/CampaignParticipant_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js +++ b/entity/CampaignParticipant_entity/entityfields/campaignstepmaxparticipantcount/displayValueProcess.js @@ -1,5 +1,5 @@ -import("system.result"); -import("system.vars"); -import("Campaign_lib"); - +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + result.string(CampaignUtils.getMaxParticipantCountForStep(vars.get("$field.CAMPAIGNSTEP_ID"))); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js index c05a7b59b563a7c1fd3b5cd7f7905c60ee7cbe09..90d07eb4d8a93c6e438b230582858b05be010468 100644 --- a/entity/CampaignParticipant_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js +++ b/entity/CampaignParticipant_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js @@ -1,3 +1,3 @@ -import("system.vars"); -import("system.result"); +import("system.vars"); +import("system.result"); result.string(vars.get("$field.CAMPAIGN_ID")); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/contact_id/displayValueProcess.js b/entity/CampaignParticipant_entity/entityfields/contact_id/displayValueProcess.js index c79f958b803960d5ec825a4f567d82d44c9a20e4..323f588f36dceac1954cb1171ed54eb5049b3279 100644 --- a/entity/CampaignParticipant_entity/entityfields/contact_id/displayValueProcess.js +++ b/entity/CampaignParticipant_entity/entityfields/contact_id/displayValueProcess.js @@ -1,16 +1,16 @@ -import("system.logging"); -import("system.result"); -import("system.vars"); -import("Contact_lib"); -import("system.neon"); - -logging.log("contactid displayvalueValueProcess -> " + vars.getString("$field.CONTACT_ID")); - - -let contactId = vars.getString("$field.CONTACT_ID"); -let displayValue = ""; - -if(contactId != "") - displayValue = ContactUtils.getFullTitleByContactId(contactId); - -result.string(displayValue); +import("system.logging"); +import("system.result"); +import("system.vars"); +import("Contact_lib"); +import("system.neon"); + +logging.log("contactid displayvalueValueProcess -> " + vars.getString("$field.CONTACT_ID")); + + +let contactId = vars.getString("$field.CONTACT_ID"); +let displayValue = ""; + +if(contactId != "") + displayValue = ContactUtils.getFullTitleByContactId(contactId); + +result.string(displayValue); diff --git a/entity/CampaignParticipant_entity/entityfields/contact_id/linkedContextProcess.js b/entity/CampaignParticipant_entity/entityfields/contact_id/linkedContextProcess.js index 6e599325755a49424ba25051c71e5367e50c3be9..5937a308883298d47b5e2feac75c30b1975f61aa 100644 --- a/entity/CampaignParticipant_entity/entityfields/contact_id/linkedContextProcess.js +++ b/entity/CampaignParticipant_entity/entityfields/contact_id/linkedContextProcess.js @@ -1,6 +1,6 @@ -import("system.logging"); -import("system.vars"); -import("system.result"); -import("Contact_lib"); - +import("system.logging"); +import("system.vars"); +import("system.result"); +import("Contact_lib"); + result.string(ContactUtils.getContextByContactId(vars.getString("$field.CONTACT_ID"))); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/contact_id/stateProcess.js b/entity/CampaignParticipant_entity/entityfields/contact_id/stateProcess.js index 5b6862597686b505239e46fb2e47034e558fa50c..aefbe65aa0e63f246ad293afa03a021aa57679af 100644 --- a/entity/CampaignParticipant_entity/entityfields/contact_id/stateProcess.js +++ b/entity/CampaignParticipant_entity/entityfields/contact_id/stateProcess.js @@ -1,12 +1,12 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param")) - //A contact has been provided. Show it in readonly. - fieldState = neon.COMPONENTSTATE_READONLY; -else - //No contact has been provided, therefore let the user select one. - fieldState = neon.COMPONENTSTATE_EDITABLE; - +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param")) + //A contact has been provided. Show it in readonly. + fieldState = neon.COMPONENTSTATE_READONLY; +else + //No contact has been provided, therefore let the user select one. + fieldState = neon.COMPONENTSTATE_EDITABLE; + result.string(fieldState); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js index a84578985ef42c5c0b1b7f9aef780bc586864a38..0a6d659c6ce9833e431b4da628a05a11dcf65dd7 100644 --- a/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js +++ b/entity/CampaignParticipant_entity/entityfields/contact_id/valueProcess.js @@ -1,7 +1,7 @@ -import("system.logging"); -import("system.result"); -import("system.vars"); - -logging.log("$param.ContactId_param -> " + vars.get("$param.ContactId_param")); -if(vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param")) +import("system.logging"); +import("system.result"); +import("system.vars"); + +logging.log("$param.ContactId_param -> " + vars.get("$param.ContactId_param")); +if(vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param")) result.string(vars.get("$param.ContactId_param")); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/contactcontext/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/contactcontext/valueProcess.js index 2e504d63e3b5a3f71b54b072798b3ad09c50984b..c6e221c7440633d683f94fcc2505ba548d581b1b 100644 --- a/entity/CampaignParticipant_entity/entityfields/contactcontext/valueProcess.js +++ b/entity/CampaignParticipant_entity/entityfields/contactcontext/valueProcess.js @@ -1,5 +1,5 @@ -import("system.vars"); -import("system.result"); -import("Contact_lib"); - +import("system.vars"); +import("system.result"); +import("Contact_lib"); + result.string(ContactUtils.getContextByContactId(vars.getString("$field.CONTACT_ID"))); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/date_new/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/date_new/valueProcess.js index a72892783bf2bd04fe353c47f1be0cb570bbb323..1b1ea7c082a78ebd6e793a5dc644d8920f9522c2 100644 --- a/entity/CampaignParticipant_entity/entityfields/date_new/valueProcess.js +++ b/entity/CampaignParticipant_entity/entityfields/date_new/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(vars.get("$sys.date")); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/selectedcampaign/onValueChange.js b/entity/CampaignParticipant_entity/entityfields/selectedcampaign/onValueChange.js index 42ea3ef828ff969d88c3c4752232117c7f7e7e89..2bf64744b6548030c6db0cb825f376192bfdf5e1 100644 --- a/entity/CampaignParticipant_entity/entityfields/selectedcampaign/onValueChange.js +++ b/entity/CampaignParticipant_entity/entityfields/selectedcampaign/onValueChange.js @@ -1,4 +1,4 @@ -import("system.neon"); - - +import("system.neon"); + + neon.setFieldValue("$field.SYSTEMTEMPLATE", templateId); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/entityfields/user_new/valueProcess.js b/entity/CampaignParticipant_entity/entityfields/user_new/valueProcess.js index e518bc75a9494e53a83613dedd943106e74fc00a..2615c2bbe71788eb05f1ff93ea8afaa05b40f6fb 100644 --- a/entity/CampaignParticipant_entity/entityfields/user_new/valueProcess.js +++ b/entity/CampaignParticipant_entity/entityfields/user_new/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(vars.get("$sys.user")); \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/conditionProcess.js b/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/conditionProcess.js index db030eee9a91a5eae552c5cb328e8d26cfdb4eb5..4711d4f3131afab1a3be94a265cfeea89650caf1 100644 --- a/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/conditionProcess.js +++ b/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/conditionProcess.js @@ -1,19 +1,19 @@ -import("system.logging"); -import("system.result"); -import("system.vars"); - -var resultValue; -if(vars.get("$param.CampaignId_param") != null && vars.get("$param.CampaignId_param") != "") -{ - resultValue = "CAMPAIGN_ID = '" + vars.get("$param.CampaignId_param") + "'"; - - if(vars.get("$param.CampaignStepId_param") != null && vars.get("$param.CampaignStepId_param") != "") - resultValue += " AND CAMPAIGNSTEP_ID = '" + vars.get("$param.CampaignStepId_param") + "'"; - - result.string(resultValue); -} -else if(vars.get("$param.CampaignStepId_param") != null && vars.get("$param.CampaignStepId_param") != "") - { - resultValue = "CAMPAIGNSTEP_ID = '" + vars.get("$param.CampaignStepId_param") + "'"; - result.string(resultValue); +import("system.logging"); +import("system.result"); +import("system.vars"); + +var resultValue; +if(vars.get("$param.CampaignId_param") != null && vars.get("$param.CampaignId_param") != "") +{ + resultValue = "CAMPAIGN_ID = '" + vars.get("$param.CampaignId_param") + "'"; + + if(vars.get("$param.CampaignStepId_param") != null && vars.get("$param.CampaignStepId_param") != "") + resultValue += " AND CAMPAIGNSTEP_ID = '" + vars.get("$param.CampaignStepId_param") + "'"; + + result.string(resultValue); +} +else if(vars.get("$param.CampaignStepId_param") != null && vars.get("$param.CampaignStepId_param") != "") + { + resultValue = "CAMPAIGNSTEP_ID = '" + vars.get("$param.CampaignStepId_param") + "'"; + result.string(resultValue); } \ No newline at end of file diff --git a/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/onDBInsert.js b/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/onDBInsert.js index c6903032cc3a3689f688dba12ac13a56c5da533c..847118274289be3fc7b39180b3dcbe19e3b35ccb 100644 --- a/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/onDBInsert.js +++ b/entity/CampaignParticipant_entity/recordcontainers/participantsdbrecordcontainer/onDBInsert.js @@ -1,9 +1,9 @@ -import("system.vars"); -import("Campaign_lib"); - -var campaignId = vars.get("$field.CAMPAIGN_ID"); -var campaignStepId = vars.get("$field.CAMPAIGNSTEP_ID"); -var contactId = vars.get("$field.CONTACT_ID"); -var campaignParticipantId = vars.get("$field.CAMPAIGNPARTICIPANTID"); - +import("system.vars"); +import("Campaign_lib"); + +var campaignId = vars.get("$field.CAMPAIGN_ID"); +var campaignStepId = vars.get("$field.CAMPAIGNSTEP_ID"); +var contactId = vars.get("$field.CONTACT_ID"); +var campaignParticipantId = vars.get("$field.CAMPAIGNPARTICIPANTID"); + CampaignUtils.createLogEntry(campaignId, campaignStepId, contactId, campaignParticipantId); \ No newline at end of file diff --git a/entity/CampaignStep_entity/contentTitleProcess.js b/entity/CampaignStep_entity/contentTitleProcess.js index 33f139bb3d446b844820ecaf7443db266043bc13..89a00550f566e8bb2d7adfd8a974fe1246c36798 100644 --- a/entity/CampaignStep_entity/contentTitleProcess.js +++ b/entity/CampaignStep_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("system.vars"); - +import("system.result"); +import("system.vars"); + result.string(vars.getString("$field.NAME")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/activities/children/objectid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/activities/children/objectid_param/valueProcess.js index 008915f61deac19ccdd40fff81701de63eb3b6a2..5996e99db232db8df50f155732110608e5abff4e 100644 --- a/entity/CampaignStep_entity/entityfields/activities/children/objectid_param/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/activities/children/objectid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("Context_lib"); - +import("system.result"); +import("Context_lib"); + result.string(ContextUtils.getCurrentContextId()); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/activities/children/rowid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/activities/children/rowid_param/valueProcess.js index 73512b5ba01cbb1eb0c5c71d8b3bb16712f8f7bc..a19dff4c80cf1dce0ac43a950c734ebdb56bc01f 100644 --- a/entity/CampaignStep_entity/entityfields/activities/children/rowid_param/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/activities/children/rowid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.CAMPAIGNSTEPID")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaign_id/displayValueProcess.js b/entity/CampaignStep_entity/entityfields/campaign_id/displayValueProcess.js index d31669f144542cf6a53139722e3ae27f91156a19..c876f777295c165cd1b38cba358bfd6a8a6920a7 100644 --- a/entity/CampaignStep_entity/entityfields/campaign_id/displayValueProcess.js +++ b/entity/CampaignStep_entity/entityfields/campaign_id/displayValueProcess.js @@ -1,7 +1,7 @@ -import("system.result"); -import("system.vars"); -import("Campaign_lib"); - -var campaignId = vars.get("$this.value"); -var campaignName = CampaignUtils.getCampaignNameById(campaignId) +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +var campaignId = vars.get("$this.value"); +var campaignName = CampaignUtils.getCampaignNameById(campaignId) result.string(campaignName); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js index 9e7628a2cbd9b8acde9cf67636e0fdeb5843bf83..e9f19f672c6564fd172bcea97a3497bfddfae479 100644 --- a/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/campaign_id/valueProcess.js @@ -1,8 +1,8 @@ -import("system.neon"); -import("system.logging"); -import("system.result"); -import("system.vars"); - -//For creation of new Step in CampaignMainView -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.campaignId_param") && vars.get("$param.campaignId_param")) +import("system.neon"); +import("system.logging"); +import("system.result"); +import("system.vars"); + +//For creation of new Step in CampaignMainView +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.campaignId_param") && vars.get("$param.campaignId_param")) result.string(vars.get("$param.campaignId_param")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignid_param/valueProcess.js index 9dd7e44f4ea3fc9d60c8a5dcbb9d208feb770fab..1f4f342bda1f19d5150d9a791bae96e1ba80d0e4 100644 --- a/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignid_param/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("system.vars"); - +import("system.result"); +import("system.vars"); + result.string(vars.get("$field.CAMPAIGN_ID")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js index 737745c8c91d70a5a56cb216a4586749ea411dda..1925acf1cecf4965abceda892b622a1b017c71df 100644 --- a/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/campaignparticipantsconsumer/children/campaignstepid_param/valueProcess.js @@ -1,6 +1,6 @@ -import("system.logging"); -import("system.result"); -import("system.vars"); - -logging.log("CS_entity_CPCOnsumer_CSId_param: field.CAMPAIGNSTEPID ->" + vars.getString("$field.CAMPAIGNSTEPID")); +import("system.logging"); +import("system.result"); +import("system.vars"); + +logging.log("CS_entity_CPCOnsumer_CSId_param: field.CAMPAIGNSTEPID ->" + vars.getString("$field.CAMPAIGNSTEPID")); result.string(vars.getString("$field.CAMPAIGNSTEPID")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaignstatus/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignstatus/valueProcess.js index b1c6ea17f2c0d193d665398c40a5f8d80722dfae..3458a2fe4d095fe3b07d42f487e40da3252ffd04 100644 --- a/entity/CampaignStep_entity/entityfields/campaignstatus/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/campaignstatus/valueProcess.js @@ -1,7 +1,7 @@ -import("system.result"); -import("system.vars"); -import("Campaign_lib"); - -let campaignId = vars.get("$field.CAMPAIGN_ID"); - +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +let campaignId = vars.get("$field.CAMPAIGN_ID"); + result.string(CampaignUtils.getCampaignStatusByCampaignId(campaignId)) \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js index b2482a5e35fe9e1a55eb568ff5a3798b696dbfbf..d2b6f2f63181b7eb4f033865c30c6d0058a66a44 100644 --- a/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.CAMPAIGN_ID")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignstepid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignstepid_param/valueProcess.js index 533f8ec837ea2f9b588ddf05545ac47cdda23d18..338565e60f882ba76571f3ad005c6d1fa262b045 100644 --- a/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignstepid_param/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/campaignstepcosts/children/campaignstepid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$sys.uid")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/campaignstepid/valueProcess.js b/entity/CampaignStep_entity/entityfields/campaignstepid/valueProcess.js index 4af99287f59a86e98d9b4c552c010fe13c106cc7..7df83b4096e7df4d63cc4d81f8fadf0884444479 100644 --- a/entity/CampaignStep_entity/entityfields/campaignstepid/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/campaignstepid/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/currentmaxparticipantsinfo/valueProcess.js b/entity/CampaignStep_entity/entityfields/currentmaxparticipantsinfo/valueProcess.js index f3447d7251ccdd3bc5fdb2115c62be33268ab094..4f1a6b3964063772f54fc7832e02d53ba052624f 100644 --- a/entity/CampaignStep_entity/entityfields/currentmaxparticipantsinfo/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/currentmaxparticipantsinfo/valueProcess.js @@ -1,7 +1,7 @@ -import("system.result"); -import("system.vars"); -import("Campaign_lib"); - -let currentParticipantsCount = CampaignUtils.getParticipantCountForStep(vars.get("$field.CAMPAIGNSTEPID")); -let maxParticipantsStepCount = vars.get("$field.MAXPARTICIPANTS"); +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +let currentParticipantsCount = CampaignUtils.getParticipantCountForStep(vars.get("$field.CAMPAIGNSTEPID")); +let maxParticipantsStepCount = vars.get("$field.MAXPARTICIPANTS"); result.string(currentParticipantsCount + "/" + maxParticipantsStepCount); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/date_edit/valueProcess.js b/entity/CampaignStep_entity/entityfields/date_edit/valueProcess.js index 5e6ef059738e0c724a468685333a5e257ac228ce..96630036eca528560c85d9a237044931e7a9197b 100644 --- a/entity/CampaignStep_entity/entityfields/date_edit/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/date_edit/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) result.string(vars.get("$sys.date")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/date_end/onValidation.js b/entity/CampaignStep_entity/entityfields/date_end/onValidation.js index 64e94f87c19545092b85dd400847f342bf7aac70..025df561c3168edbbd5401a04e2319685b6be207 100644 --- a/entity/CampaignStep_entity/entityfields/date_end/onValidation.js +++ b/entity/CampaignStep_entity/entityfields/date_end/onValidation.js @@ -1,14 +1,14 @@ -import("system.neon"); -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("Entity_lib"); - -var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.DATE_END")); - -if (DateUtils.validateBeginnBeforeEnd(vars.get("$field.DATE_START"), cEnd) === false) - result.string(DateUtils.getValidationFailString()); -else - { - neon.refresh(["$field.DATE_START"]); +import("system.neon"); +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Entity_lib"); + +var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.DATE_END")); + +if (DateUtils.validateBeginnBeforeEnd(vars.get("$field.DATE_START"), cEnd) === false) + result.string(DateUtils.getValidationFailString()); +else + { + neon.refresh(["$field.DATE_START"]); } \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/date_end/valueProcess.js b/entity/CampaignStep_entity/entityfields/date_end/valueProcess.js index bf2e43999c9b27b5744089cb8d88ec10e1c5feed..b0c6f5d3b5240543f6fefcccee25cd50d5151524 100644 --- a/entity/CampaignStep_entity/entityfields/date_end/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/date_end/valueProcess.js @@ -1,10 +1,10 @@ -import("system.neon"); -import("system.vars"); -import("system.result"); -import("system.datetime"); - -var threeWeeks = datetime.ONE_WEEK * 3; -var inThreeWeeks = datetime.date() + threeWeeks; - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +import("system.neon"); +import("system.vars"); +import("system.result"); +import("system.datetime"); + +var threeWeeks = datetime.ONE_WEEK * 3; +var inThreeWeeks = datetime.date() + threeWeeks; + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) result.string(inThreeWeeks); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/date_new/valueProcess.js b/entity/CampaignStep_entity/entityfields/date_new/valueProcess.js index a72892783bf2bd04fe353c47f1be0cb570bbb323..1b1ea7c082a78ebd6e793a5dc644d8920f9522c2 100644 --- a/entity/CampaignStep_entity/entityfields/date_new/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/date_new/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(vars.get("$sys.date")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/date_start/onValidation.js b/entity/CampaignStep_entity/entityfields/date_start/onValidation.js index 83a6fd0a8f608b725d4f9118179bf7e5c571635a..a72320f6b18e9ce90d9d72453ea4a1e4e1f1fc9f 100644 --- a/entity/CampaignStep_entity/entityfields/date_start/onValidation.js +++ b/entity/CampaignStep_entity/entityfields/date_start/onValidation.js @@ -1,14 +1,14 @@ -import("system.neon"); -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("Entity_lib"); - -var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.DATE_START")); - -if (DateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.DATE_END")) === false) - result.string(DateUtils.getValidationFailString()); -else - { - neon.refresh(["$field.DATE_END"]); +import("system.neon"); +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Entity_lib"); + +var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.DATE_START")); + +if (DateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.DATE_END")) === false) + result.string(DateUtils.getValidationFailString()); +else + { + neon.refresh(["$field.DATE_END"]); } \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/date_start/onValueChange.js b/entity/CampaignStep_entity/entityfields/date_start/onValueChange.js index 8f389856a99f98af690f9391efb4cbba0581c5a5..422fa679b89fc1d0295fe17a4874d41107e9f75a 100644 --- a/entity/CampaignStep_entity/entityfields/date_start/onValueChange.js +++ b/entity/CampaignStep_entity/entityfields/date_start/onValueChange.js @@ -1,2 +1,2 @@ -import("system.logging"); +import("system.logging"); logging.log("date start on value change -> "); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/date_start/valueProcess.js b/entity/CampaignStep_entity/entityfields/date_start/valueProcess.js index 4c1e2142a292fa2ef6fa38dbe2e458d9628af21f..8db07c6f9c7522976263ed4cb81b051ce8fdc084 100644 --- a/entity/CampaignStep_entity/entityfields/date_start/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/date_start/valueProcess.js @@ -1,11 +1,11 @@ -import("Date_lib"); -import("system.neon"); -import("system.vars"); -import("system.result"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) -{ - result.string(DateUtils.getTodayUTC()); -} -else +import("Date_lib"); +import("system.neon"); +import("system.vars"); +import("system.result"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + result.string(DateUtils.getTodayUTC()); +} +else result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/employee_contact_id/displayValueProcess.js b/entity/CampaignStep_entity/entityfields/employee_contact_id/displayValueProcess.js index 037d5e264baf41f4e2b0ebcfce8103d365ee7e13..351d4b3f2c2dd75cb77ecc6ae3e0ec36f0b467de 100644 --- a/entity/CampaignStep_entity/entityfields/employee_contact_id/displayValueProcess.js +++ b/entity/CampaignStep_entity/entityfields/employee_contact_id/displayValueProcess.js @@ -1,5 +1,5 @@ -import("system.vars"); -import("system.result"); -import("Contact_lib"); - +import("system.vars"); +import("system.result"); +import("Contact_lib"); + result.string(ContactUtils.getTitleByContactId(vars.get("$field.EMPLOYEE_CONTACT_ID"))); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/employee_contact_id/valueProcess.js b/entity/CampaignStep_entity/entityfields/employee_contact_id/valueProcess.js index 1e62e7551ccb20b0b0d7aca34f64b6e448b5dda7..0e00e387dfc0f28d5aa51163bd183e450f8535b9 100644 --- a/entity/CampaignStep_entity/entityfields/employee_contact_id/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/employee_contact_id/valueProcess.js @@ -1,7 +1,7 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); -import("Employee_lib"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.result"); +import("system.neon"); +import("system.vars"); +import("Employee_lib"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(EmployeeUtils.getCurrentContactId()); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/keywordstates/children/containername_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/keywordstates/children/containername_param/valueProcess.js index ebd6eccbcbcd1f6e73a292b82a107c78f8b91325..3567518a6daebc37b34b1d557a04f5410c2d0a34 100644 --- a/entity/CampaignStep_entity/entityfields/keywordstates/children/containername_param/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/keywordstates/children/containername_param/valueProcess.js @@ -1,5 +1,5 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + result.string($KeywordRegistry.campaignStepState()); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/maxparticipants/onValidation.js b/entity/CampaignStep_entity/entityfields/maxparticipants/onValidation.js index 378e2a7a10e331996da72cd84e0bc1eb2b8d45b6..7363c5fb269c99197ae38d1032b278818de80d8e 100644 --- a/entity/CampaignStep_entity/entityfields/maxparticipants/onValidation.js +++ b/entity/CampaignStep_entity/entityfields/maxparticipants/onValidation.js @@ -1,10 +1,10 @@ -import("Campaign_lib"); -import("system.result"); -import("Entity_lib"); -import("system.vars"); - -var currentParticipantsCount = parseInt(vars.get("$field.CurrentMaxParticipantsInfo")[0]); -var newMaxParticipantsCount = parseInt(ProcessHandlingUtils.getOnValidationValue(vars.get("$field.MAXPARTICIPANTS"))); - -if(newMaxParticipantsCount < currentParticipantsCount) +import("Campaign_lib"); +import("system.result"); +import("Entity_lib"); +import("system.vars"); + +var currentParticipantsCount = parseInt(vars.get("$field.CurrentMaxParticipantsInfo")[0]); +var newMaxParticipantsCount = parseInt(ProcessHandlingUtils.getOnValidationValue(vars.get("$field.MAXPARTICIPANTS"))); + +if(newMaxParticipantsCount < currentParticipantsCount) result.string(CampaignUtils.getMaxParticipantsValidationMessage()); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/newactivity/onActionProcess.js b/entity/CampaignStep_entity/entityfields/newactivity/onActionProcess.js index 59a786db9b15cca4809d11586ba9adc7b70fea37..27a708a7f1d91ee8129d96f77338a68c1599ba08 100644 --- a/entity/CampaignStep_entity/entityfields/newactivity/onActionProcess.js +++ b/entity/CampaignStep_entity/entityfields/newactivity/onActionProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("ActivityTask_lib"); - +import("system.vars"); +import("ActivityTask_lib"); + ActivityUtils.createNewActivity(vars.getString("$field.CAMPAIGNSTEPID")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/newactivity/tooltipProcess.js b/entity/CampaignStep_entity/entityfields/newactivity/tooltipProcess.js index c71e677c22663c2295e524aa7f3ed3dd571724d7..2cdf4480a4bb519f955eb0f5a3c84ddd7bf3e5f7 100644 --- a/entity/CampaignStep_entity/entityfields/newactivity/tooltipProcess.js +++ b/entity/CampaignStep_entity/entityfields/newactivity/tooltipProcess.js @@ -1,4 +1,4 @@ -import("system.translate"); -import("system.result"); - +import("system.translate"); +import("system.result"); + result.string(translate.text("New activity")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/newtask/onActionProcess.js b/entity/CampaignStep_entity/entityfields/newtask/onActionProcess.js index c674a6a4942409c114993fc541519e0b3c23a236..2bed428662c1f6c8e43bf1f1ab3e0e9a52b81179 100644 --- a/entity/CampaignStep_entity/entityfields/newtask/onActionProcess.js +++ b/entity/CampaignStep_entity/entityfields/newtask/onActionProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("ActivityTask_lib"); - +import("system.vars"); +import("ActivityTask_lib"); + TaskUtils.createNewTask(vars.get("$field.CAMPAIGNSTEPID")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/sorting/valueProcess.js b/entity/CampaignStep_entity/entityfields/sorting/valueProcess.js index 8be188bfa5837c38651100b49d7163c0cf745fb9..6c154f155aefa6c6f90ab008b34aa963657770b7 100644 --- a/entity/CampaignStep_entity/entityfields/sorting/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/sorting/valueProcess.js @@ -1,14 +1,14 @@ -import("system.db"); -import("system.neon"); -import("system.vars"); -import("system.util"); -import("system.result"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - var campaignId = vars.get("$field.CAMPAIGN_ID"); - var latestSortingQuery = "select COUNT(CAMPAIGNSTEPID) from CAMPAIGNSTEP " + - "where CAMPAIGN_ID = '" + campaignId + "'"; - var stepCount = db.cell(latestSortingQuery); - result.string(parseInt(stepCount) + 1); +import("system.db"); +import("system.neon"); +import("system.vars"); +import("system.util"); +import("system.result"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + var campaignId = vars.get("$field.CAMPAIGN_ID"); + var latestSortingQuery = "select COUNT(CAMPAIGNSTEPID) from CAMPAIGNSTEP " + + "where CAMPAIGN_ID = '" + campaignId + "'"; + var stepCount = db.cell(latestSortingQuery); + result.string(parseInt(stepCount) + 1); } \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/state/displayValueProcess.js b/entity/CampaignStep_entity/entityfields/state/displayValueProcess.js index 076a4dc046a745c33652aebad5ffa9c38125f9ef..4eda9361751ab1a50266d6fb8264a35cb808a077 100644 --- a/entity/CampaignStep_entity/entityfields/state/displayValueProcess.js +++ b/entity/CampaignStep_entity/entityfields/state/displayValueProcess.js @@ -1,6 +1,6 @@ -import("system.result"); -import("system.vars"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - +import("system.result"); +import("system.vars"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + result.string(KeywordUtils.getViewValue($KeywordRegistry.campaignStepState(), vars.get("$this.value"))); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/state/valueProcess.js b/entity/CampaignStep_entity/entityfields/state/valueProcess.js index 9524152a718ff70b850fa270593399e3fdc5f5bd..da244c96b11edb16fbfeb5e0a812d5315ae5b659 100644 --- a/entity/CampaignStep_entity/entityfields/state/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/state/valueProcess.js @@ -1,7 +1,7 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); -import("KeywordRegistry_basic"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +import("system.vars"); +import("system.result"); +import("system.neon"); +import("KeywordRegistry_basic"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) result.string($KeywordRegistry.campaignStepState$open()); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/tasks/children/objectid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/tasks/children/objectid_param/valueProcess.js index 008915f61deac19ccdd40fff81701de63eb3b6a2..5996e99db232db8df50f155732110608e5abff4e 100644 --- a/entity/CampaignStep_entity/entityfields/tasks/children/objectid_param/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/tasks/children/objectid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("Context_lib"); - +import("system.result"); +import("Context_lib"); + result.string(ContextUtils.getCurrentContextId()); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/tasks/children/rowid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/tasks/children/rowid_param/valueProcess.js index 73512b5ba01cbb1eb0c5c71d8b3bb16712f8f7bc..a19dff4c80cf1dce0ac43a950c734ebdb56bc01f 100644 --- a/entity/CampaignStep_entity/entityfields/tasks/children/rowid_param/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/tasks/children/rowid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.CAMPAIGNSTEPID")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/tasks/stateProcess.js b/entity/CampaignStep_entity/entityfields/tasks/stateProcess.js index 527624728ab45db1d1e548022197a2e509eee432..24d86976c9030f4f7791d87a88dc253cfdd8d20c 100644 --- a/entity/CampaignStep_entity/entityfields/tasks/stateProcess.js +++ b/entity/CampaignStep_entity/entityfields/tasks/stateProcess.js @@ -1,10 +1,10 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); -import("ActivityTask_lib"); -import("Context_lib"); - -if (TaskUtils.hasTasks(vars.get("$field.CAMPAIGNSTEPID"), ContextUtils.getCurrentContextId())) - result.string(neon.COMPONENTSTATE_EDITABLE); -else +import("system.result"); +import("system.neon"); +import("system.vars"); +import("ActivityTask_lib"); +import("Context_lib"); + +if (TaskUtils.hasTasks(vars.get("$field.CAMPAIGNSTEPID"), ContextUtils.getCurrentContextId())) + result.string(neon.COMPONENTSTATE_EDITABLE); +else result.string(neon.COMPONENTSTATE_INVISIBLE); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/user_edit/valueProcess.js b/entity/CampaignStep_entity/entityfields/user_edit/valueProcess.js index 6af880ae3e0e2b89b4eee8327ed49f1eefe458af..8a93ff7e16a82fb332cf1f6f30c95bec0c74d929 100644 --- a/entity/CampaignStep_entity/entityfields/user_edit/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/user_edit/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) result.string(vars.get("$sys.user")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/user_new/valueProcess.js b/entity/CampaignStep_entity/entityfields/user_new/valueProcess.js index e518bc75a9494e53a83613dedd943106e74fc00a..2615c2bbe71788eb05f1ff93ea8afaa05b40f6fb 100644 --- a/entity/CampaignStep_entity/entityfields/user_new/valueProcess.js +++ b/entity/CampaignStep_entity/entityfields/user_new/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(vars.get("$sys.user")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/imageProcess.js b/entity/CampaignStep_entity/imageProcess.js index c88b7ab04f19f1ebdbb7cfbd189709d3fcd9cbfe..564120b751c4cf7bcbb1d37b01d9ee7d9139ae61 100644 --- a/entity/CampaignStep_entity/imageProcess.js +++ b/entity/CampaignStep_entity/imageProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string("TEXT:" + vars.getString("$field.NAME")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/recordcontainers/db/conditionProcess.js b/entity/CampaignStep_entity/recordcontainers/db/conditionProcess.js index b64ace9707df0605c82aba6306dd622fbc9a2a30..d7a42cb6e4af4d919bc3fedd625e40b64527ab0a 100644 --- a/entity/CampaignStep_entity/recordcontainers/db/conditionProcess.js +++ b/entity/CampaignStep_entity/recordcontainers/db/conditionProcess.js @@ -1,9 +1,9 @@ -import("system.logging"); -import("system.vars"); -import("system.result"); - -if(vars.exists("$param.campaignId_param") && vars.get("$param.campaignId_param")) -{ - logging.log("CampaignStepDBRC_conditionProcess: campaignId_param -> " + vars.get("$param.campaignId_param")); - result.string("CAMPAIGN_ID = '" + vars.getString("$param.campaignId_param") + "'"); -} +import("system.logging"); +import("system.vars"); +import("system.result"); + +if(vars.exists("$param.campaignId_param") && vars.get("$param.campaignId_param")) +{ + logging.log("CampaignStepDBRC_conditionProcess: campaignId_param -> " + vars.get("$param.campaignId_param")); + result.string("CAMPAIGN_ID = '" + vars.getString("$param.campaignId_param") + "'"); +} diff --git a/entity/CampaignStep_entity/recordcontainers/db/orderClauseProcess.js b/entity/CampaignStep_entity/recordcontainers/db/orderClauseProcess.js index 8538a702d13027d9d9739d9b6652105b87725638..e8abc388f8ef2e8b95dcb0d800030fcfc52701d0 100644 --- a/entity/CampaignStep_entity/recordcontainers/db/orderClauseProcess.js +++ b/entity/CampaignStep_entity/recordcontainers/db/orderClauseProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("system.db"); - +import("system.result"); +import("system.db"); + result.object({"CAMPAIGNSTEP.SORTING": db.ASCENDING}); \ No newline at end of file diff --git a/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/campaign_id.displayvalue/expression.js b/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/campaign_id.displayvalue/expression.js index 8b0e58bb166cdf86ae459585247513c7055af3de..e3f80e4da7597dba8871131bf1cd4b455fff111f 100644 --- a/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/campaign_id.displayvalue/expression.js +++ b/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/campaign_id.displayvalue/expression.js @@ -1,4 +1,4 @@ -import("system.result"); - -var res = "select CAMPAIGN.NAME from CAMPAIGN where CAMPAIGN.CAMPAIGNID = CAMPAIGNSTEP.CAMPAIGN_ID"; +import("system.result"); + +var res = "select CAMPAIGN.NAME from CAMPAIGN where CAMPAIGN.CAMPAIGNID = CAMPAIGNSTEP.CAMPAIGN_ID"; result.string(res); \ No newline at end of file diff --git a/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/cost.value/expression.js b/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/cost.value/expression.js index 90244a5bfed8a35a3de7ea631a8414c3d9916c97..1861de75551fbcd468158b8f7be1f003c8c03ce7 100644 --- a/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/cost.value/expression.js +++ b/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/cost.value/expression.js @@ -1,3 +1,3 @@ -import("system.result"); - +import("system.result"); + result.string("(select sum(NET) from CAMPAIGNCOST where CAMPAIGNCOST.CAMPAIGN_ID = CAMPAIGNSTEP.CAMPAIGN_ID and CAMPAIGNCOST.CAMPAIGNSTEP_ID = CAMPAIGNSTEP.CAMPAIGNSTEPID)") \ No newline at end of file diff --git a/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js b/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js index 8b0d07b793542a03718b3ba98c1afd793aa5a345..bb926e234e662a174638dfcabd90a68b299db5ed 100644 --- a/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js +++ b/entity/CampaignStep_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js @@ -1,6 +1,6 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.campaignStepState(), "CAMPAIGNSTEP.STATE"); +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.campaignStepState(), "CAMPAIGNSTEP.STATE"); result.string(sql); \ No newline at end of file diff --git a/entity/Campaign_entity/afterUiInit.js b/entity/Campaign_entity/afterUiInit.js index 031b635db2bf916a03eda91e8db23dc6c8bb5d35..40048a413712450e39dc819e7142ed9b2a48d820 100644 --- a/entity/Campaign_entity/afterUiInit.js +++ b/entity/Campaign_entity/afterUiInit.js @@ -1,9 +1,9 @@ -import("system.neon"); -import("system.vars"); -import("Context_lib"); -import("Attribute_lib"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); -} +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Campaign_entity/contentTitleProcess.js b/entity/Campaign_entity/contentTitleProcess.js index 33f139bb3d446b844820ecaf7443db266043bc13..89a00550f566e8bb2d7adfd8a974fe1246c36798 100644 --- a/entity/Campaign_entity/contentTitleProcess.js +++ b/entity/Campaign_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("system.vars"); - +import("system.result"); +import("system.vars"); + result.string(vars.getString("$field.NAME")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/activities/children/objectid_param/valueProcess.js b/entity/Campaign_entity/entityfields/activities/children/objectid_param/valueProcess.js index 008915f61deac19ccdd40fff81701de63eb3b6a2..5996e99db232db8df50f155732110608e5abff4e 100644 --- a/entity/Campaign_entity/entityfields/activities/children/objectid_param/valueProcess.js +++ b/entity/Campaign_entity/entityfields/activities/children/objectid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("Context_lib"); - +import("system.result"); +import("Context_lib"); + result.string(ContextUtils.getCurrentContextId()); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/activities/children/rowid_param/valueProcess.js b/entity/Campaign_entity/entityfields/activities/children/rowid_param/valueProcess.js index 3814648f507bd77edb266f38a807c1669e8c5f1e..44d452d9b78ba56e5498e9044770c98277bbfb2c 100644 --- a/entity/Campaign_entity/entityfields/activities/children/rowid_param/valueProcess.js +++ b/entity/Campaign_entity/entityfields/activities/children/rowid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.CAMPAIGNID")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/Campaign_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js index 533f8ec837ea2f9b588ddf05545ac47cdda23d18..338565e60f882ba76571f3ad005c6d1fa262b045 100644 --- a/entity/Campaign_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js +++ b/entity/Campaign_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$sys.uid")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/attributes/children/objecttype_param/valueProcess.js b/entity/Campaign_entity/entityfields/attributes/children/objecttype_param/valueProcess.js index e8b4e72e74a0a4696ff39e83135aa6100ef908c0..431bcc952145cb451362fc69754f84ff1514bac5 100644 --- a/entity/Campaign_entity/entityfields/attributes/children/objecttype_param/valueProcess.js +++ b/entity/Campaign_entity/entityfields/attributes/children/objecttype_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("Context_lib"); - -result.string(ContextUtils.getCurrentContextId()); +import("system.result"); +import("Context_lib"); + +result.string(ContextUtils.getCurrentContextId()); diff --git a/entity/Campaign_entity/entityfields/campaigncosts/children/campaignid_param/valueProcess.js b/entity/Campaign_entity/entityfields/campaigncosts/children/campaignid_param/valueProcess.js index c95f5ea0c85673d6f68abfdbef56f55fb63597c1..b1de17feabf44602473081b4b6fdc3413a0a5975 100644 --- a/entity/Campaign_entity/entityfields/campaigncosts/children/campaignid_param/valueProcess.js +++ b/entity/Campaign_entity/entityfields/campaigncosts/children/campaignid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("system.vars"); - +import("system.result"); +import("system.vars"); + result.string(vars.get("$sys.uid")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/campaigncostschart/children/campaignid_param/valueProcess.js b/entity/Campaign_entity/entityfields/campaigncostschart/children/campaignid_param/valueProcess.js index 3814648f507bd77edb266f38a807c1669e8c5f1e..44d452d9b78ba56e5498e9044770c98277bbfb2c 100644 --- a/entity/Campaign_entity/entityfields/campaigncostschart/children/campaignid_param/valueProcess.js +++ b/entity/Campaign_entity/entityfields/campaigncostschart/children/campaignid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.CAMPAIGNID")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/campaignid/valueProcess.js b/entity/Campaign_entity/entityfields/campaignid/valueProcess.js index 4af99287f59a86e98d9b4c552c010fe13c106cc7..7df83b4096e7df4d63cc4d81f8fadf0884444479 100644 --- a/entity/Campaign_entity/entityfields/campaignid/valueProcess.js +++ b/entity/Campaign_entity/entityfields/campaignid/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/campaignparticipants/children/campaignid_param/valueProcess.js b/entity/Campaign_entity/entityfields/campaignparticipants/children/campaignid_param/valueProcess.js index 3814648f507bd77edb266f38a807c1669e8c5f1e..44d452d9b78ba56e5498e9044770c98277bbfb2c 100644 --- a/entity/Campaign_entity/entityfields/campaignparticipants/children/campaignid_param/valueProcess.js +++ b/entity/Campaign_entity/entityfields/campaignparticipants/children/campaignid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.CAMPAIGNID")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/campaignparticipantschart/children/campaignid_param/valueProcess.js b/entity/Campaign_entity/entityfields/campaignparticipantschart/children/campaignid_param/valueProcess.js index 3814648f507bd77edb266f38a807c1669e8c5f1e..44d452d9b78ba56e5498e9044770c98277bbfb2c 100644 --- a/entity/Campaign_entity/entityfields/campaignparticipantschart/children/campaignid_param/valueProcess.js +++ b/entity/Campaign_entity/entityfields/campaignparticipantschart/children/campaignid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.CAMPAIGNID")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js b/entity/Campaign_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js index c95f5ea0c85673d6f68abfdbef56f55fb63597c1..b1de17feabf44602473081b4b6fdc3413a0a5975 100644 --- a/entity/Campaign_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js +++ b/entity/Campaign_entity/entityfields/campaignstepcosts/children/campaignid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("system.vars"); - +import("system.result"); +import("system.vars"); + result.string(vars.get("$sys.uid")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js b/entity/Campaign_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js index ea290bfda9377cc69f8b4c727ccbe2cf83f493de..768818e942f166dad1ed3e200a2ae7bea8d5dad1 100644 --- a/entity/Campaign_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js +++ b/entity/Campaign_entity/entityfields/campaignsteps/children/campaignid_param/valueProcess.js @@ -1,5 +1,5 @@ -import("system.logging"); -import("system.result"); -import("system.vars"); - +import("system.logging"); +import("system.result"); +import("system.vars"); + result.string(vars.getString("$field.CAMPAIGNID")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/campaignstepsreadonly/children/campaignid_param/valueProcess.js b/entity/Campaign_entity/entityfields/campaignstepsreadonly/children/campaignid_param/valueProcess.js index ea290bfda9377cc69f8b4c727ccbe2cf83f493de..768818e942f166dad1ed3e200a2ae7bea8d5dad1 100644 --- a/entity/Campaign_entity/entityfields/campaignstepsreadonly/children/campaignid_param/valueProcess.js +++ b/entity/Campaign_entity/entityfields/campaignstepsreadonly/children/campaignid_param/valueProcess.js @@ -1,5 +1,5 @@ -import("system.logging"); -import("system.result"); -import("system.vars"); - +import("system.logging"); +import("system.result"); +import("system.vars"); + result.string(vars.getString("$field.CAMPAIGNID")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/date_edit/valueProcess.js b/entity/Campaign_entity/entityfields/date_edit/valueProcess.js index 5e6ef059738e0c724a468685333a5e257ac228ce..96630036eca528560c85d9a237044931e7a9197b 100644 --- a/entity/Campaign_entity/entityfields/date_edit/valueProcess.js +++ b/entity/Campaign_entity/entityfields/date_edit/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) result.string(vars.get("$sys.date")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/date_end/displayValueProcess.js b/entity/Campaign_entity/entityfields/date_end/displayValueProcess.js index af009bc99321959dee737e4dd3c6bea039862e1c..d2c1f6c36b48f1dfc713b8bf47b12421b68d04b4 100644 --- a/entity/Campaign_entity/entityfields/date_end/displayValueProcess.js +++ b/entity/Campaign_entity/entityfields/date_end/displayValueProcess.js @@ -1,12 +1,12 @@ -import("system.result"); -import("system.vars"); -import("Campaign_lib"); - -if(vars.exists("$field.CAMPAIGNID") && - vars.get("$field.CAMPAIGNID") != "" && vars.get("$field.CAMPAIGNID") != null) -{ - var capmaignId = vars.get("$field.CAMPAIGNID"); - var campaignStepEndDate = CampaignUtils.getCampaignEndDate(capmaignId); - - result.string(campaignStepEndDate); +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +if(vars.exists("$field.CAMPAIGNID") && + vars.get("$field.CAMPAIGNID") != "" && vars.get("$field.CAMPAIGNID") != null) +{ + var capmaignId = vars.get("$field.CAMPAIGNID"); + var campaignStepEndDate = CampaignUtils.getCampaignEndDate(capmaignId); + + result.string(campaignStepEndDate); } \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/date_new/valueProcess.js b/entity/Campaign_entity/entityfields/date_new/valueProcess.js index a72892783bf2bd04fe353c47f1be0cb570bbb323..1b1ea7c082a78ebd6e793a5dc644d8920f9522c2 100644 --- a/entity/Campaign_entity/entityfields/date_new/valueProcess.js +++ b/entity/Campaign_entity/entityfields/date_new/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(vars.get("$sys.date")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/date_start/displayValueProcess.js b/entity/Campaign_entity/entityfields/date_start/displayValueProcess.js index fd8b8586af122186de41ee63ab69db1c255434eb..3619abd9650a17720a808271fcfa029fe28aac37 100644 --- a/entity/Campaign_entity/entityfields/date_start/displayValueProcess.js +++ b/entity/Campaign_entity/entityfields/date_start/displayValueProcess.js @@ -1,12 +1,12 @@ -import("system.result"); -import("system.vars"); -import("Campaign_lib"); - -if(vars.exists("$field.CAMPAIGNID") && - vars.get("$field.CAMPAIGNID") != "" && vars.get("$field.CAMPAIGNID") != null) -{ - var capmaignId = vars.get("$field.CAMPAIGNID"); - var campaignStepStartDate = CampaignUtils.getCampaignStartDate(capmaignId); - - result.string(campaignStepStartDate); +import("system.result"); +import("system.vars"); +import("Campaign_lib"); + +if(vars.exists("$field.CAMPAIGNID") && + vars.get("$field.CAMPAIGNID") != "" && vars.get("$field.CAMPAIGNID") != null) +{ + var capmaignId = vars.get("$field.CAMPAIGNID"); + var campaignStepStartDate = CampaignUtils.getCampaignStartDate(capmaignId); + + result.string(campaignStepStartDate); } \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/employee_contact_id/displayValueProcess.js b/entity/Campaign_entity/entityfields/employee_contact_id/displayValueProcess.js index 037d5e264baf41f4e2b0ebcfce8103d365ee7e13..351d4b3f2c2dd75cb77ecc6ae3e0ec36f0b467de 100644 --- a/entity/Campaign_entity/entityfields/employee_contact_id/displayValueProcess.js +++ b/entity/Campaign_entity/entityfields/employee_contact_id/displayValueProcess.js @@ -1,5 +1,5 @@ -import("system.vars"); -import("system.result"); -import("Contact_lib"); - +import("system.vars"); +import("system.result"); +import("Contact_lib"); + result.string(ContactUtils.getTitleByContactId(vars.get("$field.EMPLOYEE_CONTACT_ID"))); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/employee_contact_id/valueProcess.js b/entity/Campaign_entity/entityfields/employee_contact_id/valueProcess.js index 008a2ed6a798ca63548aadf7f9d7bcd2d71efb4d..0d83e155507cb0955f8ebc5a4ff4af836b96977e 100644 --- a/entity/Campaign_entity/entityfields/employee_contact_id/valueProcess.js +++ b/entity/Campaign_entity/entityfields/employee_contact_id/valueProcess.js @@ -1,7 +1,7 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); -import("Employee_lib"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +import("system.result"); +import("system.neon"); +import("system.vars"); +import("Employee_lib"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) result.string(EmployeeUtils.getCurrentContactId()); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/keywordstates/children/containername_param/valueProcess.js b/entity/Campaign_entity/entityfields/keywordstates/children/containername_param/valueProcess.js index c4b797e74cbaf5fc02fee2f06791e7bd30cda404..41abc1cac1b0ddcc4c776d8b0c11b179e6ec1d58 100644 --- a/entity/Campaign_entity/entityfields/keywordstates/children/containername_param/valueProcess.js +++ b/entity/Campaign_entity/entityfields/keywordstates/children/containername_param/valueProcess.js @@ -1,5 +1,5 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + result.string($KeywordRegistry.campaignState()); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/newactivity/onActionProcess.js b/entity/Campaign_entity/entityfields/newactivity/onActionProcess.js index 3cc8f6e5013e0a16d03444898c3a7f2cfa366552..7cdc2906347a0c56259a88fdaf4f50c6af4cd86d 100644 --- a/entity/Campaign_entity/entityfields/newactivity/onActionProcess.js +++ b/entity/Campaign_entity/entityfields/newactivity/onActionProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("ActivityTask_lib"); - +import("system.vars"); +import("ActivityTask_lib"); + ActivityUtils.createNewActivity(vars.getString("$field.CAMPAIGNID")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/newactivity/tooltipProcess.js b/entity/Campaign_entity/entityfields/newactivity/tooltipProcess.js index c71e677c22663c2295e524aa7f3ed3dd571724d7..2cdf4480a4bb519f955eb0f5a3c84ddd7bf3e5f7 100644 --- a/entity/Campaign_entity/entityfields/newactivity/tooltipProcess.js +++ b/entity/Campaign_entity/entityfields/newactivity/tooltipProcess.js @@ -1,4 +1,4 @@ -import("system.translate"); -import("system.result"); - +import("system.translate"); +import("system.result"); + result.string(translate.text("New activity")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/newtask/onActionProcess.js b/entity/Campaign_entity/entityfields/newtask/onActionProcess.js index d870f4d21cebf7aeaf34d6b59f2157d03d8e82ff..b8ecfcfc818017e895223988331539a7a61f70c1 100644 --- a/entity/Campaign_entity/entityfields/newtask/onActionProcess.js +++ b/entity/Campaign_entity/entityfields/newtask/onActionProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("ActivityTask_lib"); - +import("system.vars"); +import("ActivityTask_lib"); + TaskUtils.createNewTask(vars.get("$field.CAMPAIGNID")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/participantcount/valueProcess.js b/entity/Campaign_entity/entityfields/participantcount/valueProcess.js index 184e4e80abbaceb98e2b8ecc3dc62ff8111b0d0d..fb0440f377543bfaadc3d9d1226bc5fe348de408 100644 --- a/entity/Campaign_entity/entityfields/participantcount/valueProcess.js +++ b/entity/Campaign_entity/entityfields/participantcount/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("system.vars"); -import("Campaign_lib"); +import("system.result"); +import("system.vars"); +import("Campaign_lib"); result.string(CampaignUtils.getParticipantCount(vars.get("$field.CAMPAIGNID"))); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/remainingruntime/valueProcess.js b/entity/Campaign_entity/entityfields/remainingruntime/valueProcess.js index f1bb2d459a4c0944026218aac403ef0c3195f2e5..22ce8b6b6ffe2386c77b569256296ec97da4849d 100644 --- a/entity/Campaign_entity/entityfields/remainingruntime/valueProcess.js +++ b/entity/Campaign_entity/entityfields/remainingruntime/valueProcess.js @@ -1,2 +1,2 @@ -import("system.result"); +import("system.result"); result.string("4"); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/state/displayValueProcess.js b/entity/Campaign_entity/entityfields/state/displayValueProcess.js index 53f6f8c77cfe099cd4ca554a7b67cb0d9c904aef..686247b7356e156e1c5dc6b70d840c4da9b099e2 100644 --- a/entity/Campaign_entity/entityfields/state/displayValueProcess.js +++ b/entity/Campaign_entity/entityfields/state/displayValueProcess.js @@ -1,6 +1,6 @@ -import("system.result"); -import("system.vars"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - +import("system.result"); +import("system.vars"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + result.string(KeywordUtils.getViewValue($KeywordRegistry.campaignState(), vars.get("$field.STATE"))); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/state/valueProcess.js b/entity/Campaign_entity/entityfields/state/valueProcess.js index 24a86c10cb9eef3178aa13268f2a7106785b9d07..9dff88d91d83c29412096ee051941114a92f82b1 100644 --- a/entity/Campaign_entity/entityfields/state/valueProcess.js +++ b/entity/Campaign_entity/entityfields/state/valueProcess.js @@ -1,7 +1,7 @@ -import("system.neon"); -import("system.vars"); -import("system.result"); -import("KeywordRegistry_basic"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +import("system.neon"); +import("system.vars"); +import("system.result"); +import("KeywordRegistry_basic"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) result.string($KeywordRegistry.campaignState$planning()); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/stepcount/valueProcess.js b/entity/Campaign_entity/entityfields/stepcount/valueProcess.js index f92f5f8867f499e35d14e6502ce910830cd224ed..87f2a9e400ac0434dd1950a09c82a3044b6149af 100644 --- a/entity/Campaign_entity/entityfields/stepcount/valueProcess.js +++ b/entity/Campaign_entity/entityfields/stepcount/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("system.vars"); -import("Campaign_lib"); +import("system.result"); +import("system.vars"); +import("Campaign_lib"); result.string(CampaignUtils.getStepCount(vars.get("$field.CAMPAIGNID"))); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/tasks/children/objectid_param/valueProcess.js b/entity/Campaign_entity/entityfields/tasks/children/objectid_param/valueProcess.js index 008915f61deac19ccdd40fff81701de63eb3b6a2..5996e99db232db8df50f155732110608e5abff4e 100644 --- a/entity/Campaign_entity/entityfields/tasks/children/objectid_param/valueProcess.js +++ b/entity/Campaign_entity/entityfields/tasks/children/objectid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("Context_lib"); - +import("system.result"); +import("Context_lib"); + result.string(ContextUtils.getCurrentContextId()); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/tasks/children/rowid_param/valueProcess.js b/entity/Campaign_entity/entityfields/tasks/children/rowid_param/valueProcess.js index 3814648f507bd77edb266f38a807c1669e8c5f1e..44d452d9b78ba56e5498e9044770c98277bbfb2c 100644 --- a/entity/Campaign_entity/entityfields/tasks/children/rowid_param/valueProcess.js +++ b/entity/Campaign_entity/entityfields/tasks/children/rowid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.CAMPAIGNID")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/tasks/stateProcess.js b/entity/Campaign_entity/entityfields/tasks/stateProcess.js index d77c2eeb195571306ce7f9e977a5f9ad26b47079..e60e2b220695330a386489fe74c57214c290a483 100644 --- a/entity/Campaign_entity/entityfields/tasks/stateProcess.js +++ b/entity/Campaign_entity/entityfields/tasks/stateProcess.js @@ -1,10 +1,10 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); -import("ActivityTask_lib"); -import("Context_lib"); - -if (TaskUtils.hasTasks(vars.get("$field.CAMPAIGNID"), ContextUtils.getCurrentContextId())) - result.string(neon.COMPONENTSTATE_EDITABLE); -else +import("system.result"); +import("system.neon"); +import("system.vars"); +import("ActivityTask_lib"); +import("Context_lib"); + +if (TaskUtils.hasTasks(vars.get("$field.CAMPAIGNID"), ContextUtils.getCurrentContextId())) + result.string(neon.COMPONENTSTATE_EDITABLE); +else result.string(neon.COMPONENTSTATE_INVISIBLE); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/user_edit/valueProcess.js b/entity/Campaign_entity/entityfields/user_edit/valueProcess.js index 6af880ae3e0e2b89b4eee8327ed49f1eefe458af..8a93ff7e16a82fb332cf1f6f30c95bec0c74d929 100644 --- a/entity/Campaign_entity/entityfields/user_edit/valueProcess.js +++ b/entity/Campaign_entity/entityfields/user_edit/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) result.string(vars.get("$sys.user")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/user_new/valueProcess.js b/entity/Campaign_entity/entityfields/user_new/valueProcess.js index e518bc75a9494e53a83613dedd943106e74fc00a..2615c2bbe71788eb05f1ff93ea8afaa05b40f6fb 100644 --- a/entity/Campaign_entity/entityfields/user_new/valueProcess.js +++ b/entity/Campaign_entity/entityfields/user_new/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.util"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(vars.get("$sys.user")); \ No newline at end of file diff --git a/entity/Campaign_entity/imageProcess.js b/entity/Campaign_entity/imageProcess.js index c88b7ab04f19f1ebdbb7cfbd189709d3fcd9cbfe..564120b751c4cf7bcbb1d37b01d9ee7d9139ae61 100644 --- a/entity/Campaign_entity/imageProcess.js +++ b/entity/Campaign_entity/imageProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string("TEXT:" + vars.getString("$field.NAME")); \ No newline at end of file diff --git a/entity/Campaign_entity/recordcontainers/db/onDBDelete.js b/entity/Campaign_entity/recordcontainers/db/onDBDelete.js index af050049af87260fc04101c288c6d52cb1e231aa..1297d0cd21787d017c6790542c0f0e4f97f80a49 100644 --- a/entity/Campaign_entity/recordcontainers/db/onDBDelete.js +++ b/entity/Campaign_entity/recordcontainers/db/onDBDelete.js @@ -1,22 +1,22 @@ -import("system.db"); -import("system.vars"); -import("Sql_lib"); - -var currentId = vars.getString("$field.CAMPAIGNID"); - -if (currentId) -{ - var toDelete = [ - "CAMPAIGNCOST", - "CAMPAIGNPARTICIPANT", - "CAMPAIGNPARTICIPANTLOG", - "CAMPAIGNSTEP", - ]; - - toDelete = toDelete.map(function(pTable) - { - return [pTable, SqlCondition.equals(pTable + ".CAMPAIGN_ID", currentId, "1=2")] - }); - - db.deletes(toDelete); +import("system.db"); +import("system.vars"); +import("Sql_lib"); + +var currentId = vars.getString("$field.CAMPAIGNID"); + +if (currentId) +{ + var toDelete = [ + "CAMPAIGNCOST", + "CAMPAIGNPARTICIPANT", + "CAMPAIGNPARTICIPANTLOG", + "CAMPAIGNSTEP", + ]; + + toDelete = toDelete.map(function(pTable) + { + return [pTable, SqlCondition.equals(pTable + ".CAMPAIGN_ID", currentId, "1=2")] + }); + + db.deletes(toDelete); } \ No newline at end of file diff --git a/entity/Campaign_entity/recordcontainers/db/onDBInsert.js b/entity/Campaign_entity/recordcontainers/db/onDBInsert.js index 1792051b832d740de4c08365b71dd39d2e5a0873..17615bd84b0b8363d1c8ec5beb8ab0f6ab774369 100644 --- a/entity/Campaign_entity/recordcontainers/db/onDBInsert.js +++ b/entity/Campaign_entity/recordcontainers/db/onDBInsert.js @@ -1,35 +1,35 @@ -import("Employee_lib"); -import("system.translate"); -import("KeywordRegistry_basic"); -import("system.util"); -import("system.vars"); -import("system.logging"); -import("system.db"); -import("system.datetime"); - -var threeWeeks = datetime.ONE_WEEK * 3; -var inThreeWeeks = datetime.date() + threeWeeks; - -var campaignId = vars.get("$field.CAMPAIGNID"); -var campaignStepId = util.getNewUUID(); -var campaignStepName = translate.text("Added"); - -var dateNew = vars.get("$sys.date"); -var userNew = vars.get("$sys.user"); - -var dateStart = dateNew; -var dateEnd = inThreeWeeks; - -var description = ""; -var maxParticipants = 100; -var state = $KeywordRegistry.campaignStepState$open(); -var sorting = 1; -var employeeContactId = vars.get("$field.EMPLOYEE_CONTACT_ID"); - - -var columns = ["CAMPAIGN_ID", "CAMPAIGNSTEPID", "NAME", "DATE_NEW", "USER_NEW", - "DATE_START", "DATE_END", "DESCRIPTION", "MAXPARTICIPANTS", "STATE", "SORTING", "EMPLOYEE_CONTACT_ID"]; -var values = [campaignId, campaignStepId, campaignStepName, dateNew, userNew, - dateStart, dateEnd, description, maxParticipants, state, sorting, employeeContactId]; - +import("Employee_lib"); +import("system.translate"); +import("KeywordRegistry_basic"); +import("system.util"); +import("system.vars"); +import("system.logging"); +import("system.db"); +import("system.datetime"); + +var threeWeeks = datetime.ONE_WEEK * 3; +var inThreeWeeks = datetime.date() + threeWeeks; + +var campaignId = vars.get("$field.CAMPAIGNID"); +var campaignStepId = util.getNewUUID(); +var campaignStepName = translate.text("Added"); + +var dateNew = vars.get("$sys.date"); +var userNew = vars.get("$sys.user"); + +var dateStart = dateNew; +var dateEnd = inThreeWeeks; + +var description = ""; +var maxParticipants = 100; +var state = $KeywordRegistry.campaignStepState$open(); +var sorting = 1; +var employeeContactId = vars.get("$field.EMPLOYEE_CONTACT_ID"); + + +var columns = ["CAMPAIGN_ID", "CAMPAIGNSTEPID", "NAME", "DATE_NEW", "USER_NEW", + "DATE_START", "DATE_END", "DESCRIPTION", "MAXPARTICIPANTS", "STATE", "SORTING", "EMPLOYEE_CONTACT_ID"]; +var values = [campaignId, campaignStepId, campaignStepName, dateNew, userNew, + dateStart, dateEnd, description, maxParticipants, state, sorting, employeeContactId]; + db.insertData("CAMPAIGNSTEP", columns, null, values); \ No newline at end of file diff --git a/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/cost.value/expression.js b/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/cost.value/expression.js index cecf6e4f7c03f399083118f9c9b3413277c9204b..35994d1145832f0765cdabbd00c610905bdd66ae 100644 --- a/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/cost.value/expression.js +++ b/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/cost.value/expression.js @@ -1,3 +1,3 @@ -import("system.result"); - +import("system.result"); + result.string("(select sum(NET) from CAMPAIGNCOST where CAMPAIGNCOST.CAMPAIGN_ID = CAMPAIGN.CAMPAIGNID)") \ No newline at end of file diff --git a/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js b/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js index 95d0ac1d4c1893934b7541d57a1f514ae3a95d7c..cf96338344da8b24effa97ed754332065023ba9a 100644 --- a/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js +++ b/entity/Campaign_entity/recordcontainers/db/recordfieldmappings/state.displayvalue/expression.js @@ -1,6 +1,6 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.campaignState(), "CAMPAIGN.STATE"); +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.campaignState(), "CAMPAIGN.STATE"); result.string(sql); \ No newline at end of file diff --git a/entity/Communication_entity/contentTitleProcess.js b/entity/Communication_entity/contentTitleProcess.js index fc5cdece4660a318c904ea9112764015dc95a631..e51e5e38bf6a8c63aa3db8802bcef0f3c748a5f9 100644 --- a/entity/Communication_entity/contentTitleProcess.js +++ b/entity/Communication_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.ADDR")); \ No newline at end of file diff --git a/entity/Communication_entity/entityfields/addr/onValueChange.js b/entity/Communication_entity/entityfields/addr/onValueChange.js index 4517edfecfa0ffcdfd901ecab5be6ed402a90348..82593755b7f91a95c7d063a191d9990782a2ba8e 100644 --- a/entity/Communication_entity/entityfields/addr/onValueChange.js +++ b/entity/Communication_entity/entityfields/addr/onValueChange.js @@ -1,27 +1,27 @@ -import("WsValidation_lib"); -import("system.neon"); -import("KeywordRegistry_basic"); -import("Keyword_lib"); -import("system.vars"); - -var addr = vars.get("$local.value"); - -if (addr) -{ - var commMedium = vars.get("$field.MEDIUM_ID"); - var keywordAttributes = KeywordUtils.getAttributeRelationsByKey(commMedium, $KeywordRegistry.communicationMedium()); - var commCategory = keywordAttributes.contentType || "TEXT"; - - switch (commCategory) - { - case "TELEPHONE": // Phone - if(addr.length > 5) - { - neon.setFieldValue("$field.ADDR", WsValidationUtils.validate(addr, WsValidationType.get().TYPE_PHONE, vars.get("$param.ContactsMainCountry_param"))); - } - break; - default: - - } - +import("WsValidation_lib"); +import("system.neon"); +import("KeywordRegistry_basic"); +import("Keyword_lib"); +import("system.vars"); + +var addr = vars.get("$local.value"); + +if (addr) +{ + var commMedium = vars.get("$field.MEDIUM_ID"); + var keywordAttributes = KeywordUtils.getAttributeRelationsByKey(commMedium, $KeywordRegistry.communicationMedium()); + var commCategory = keywordAttributes.contentType || "TEXT"; + + switch (commCategory) + { + case "TELEPHONE": // Phone + if(addr.length > 5) + { + neon.setFieldValue("$field.ADDR", WsValidationUtils.validate(addr, WsValidationType.get().TYPE_PHONE, vars.get("$param.ContactsMainCountry_param"))); + } + break; + default: + + } + } \ No newline at end of file diff --git a/entity/Contact_entity/entityfields/contactrole/dropDownProcess.js b/entity/Contact_entity/entityfields/contactrole/dropDownProcess.js index 96627ddf00215d0598ae85d2452acfd248cbe52a..1903319eb171d16ef0a0f2abbec471fcfceed321 100644 --- a/entity/Contact_entity/entityfields/contactrole/dropDownProcess.js +++ b/entity/Contact_entity/entityfields/contactrole/dropDownProcess.js @@ -1,9 +1,9 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var res = KeywordUtils.getEntryNamesByContainer($KeywordRegistry.contactContactrole()).map(function (e){ - return [e, e]; //currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers -}); - +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var res = KeywordUtils.getEntryNamesByContainer($KeywordRegistry.contactContactrole()).map(function (e){ + return [e, e]; //currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers +}); + result.object(res); \ No newline at end of file diff --git a/entity/Contact_entity/entityfields/department/dropDownProcess.js b/entity/Contact_entity/entityfields/department/dropDownProcess.js index 77d99fa219eb36618f38dbb344e4a345bb71d331..274a9e59a3e1c498b11367ff8260049bd20e1ccb 100644 --- a/entity/Contact_entity/entityfields/department/dropDownProcess.js +++ b/entity/Contact_entity/entityfields/department/dropDownProcess.js @@ -1,9 +1,9 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var res = KeywordUtils.getEntryNamesByContainer($KeywordRegistry.contactDepartment()).map(function (e){ - return [e, e]; //currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers -}); - +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var res = KeywordUtils.getEntryNamesByContainer($KeywordRegistry.contactDepartment()).map(function (e){ + return [e, e]; //currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers +}); + result.object(res); \ No newline at end of file diff --git a/entity/Contact_entity/entityfields/position/dropDownProcess.js b/entity/Contact_entity/entityfields/position/dropDownProcess.js index a86d6820913b759ac976779f9c045378095b6d24..adcf8f6bac265af20af5daf32e9359f289a44c26 100644 --- a/entity/Contact_entity/entityfields/position/dropDownProcess.js +++ b/entity/Contact_entity/entityfields/position/dropDownProcess.js @@ -1,9 +1,9 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var res = KeywordUtils.getEntryNamesByContainer($KeywordRegistry.contactPosition()).map(function (e){ - return [e, e]; //currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers -}); - +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var res = KeywordUtils.getEntryNamesByContainer($KeywordRegistry.contactPosition()).map(function (e){ + return [e, e]; //currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers +}); + result.object(res); \ No newline at end of file diff --git a/entity/Context_entity/contentTitleProcess.js b/entity/Context_entity/contentTitleProcess.js index 1733703a2a64a8e0b6f083fc6b2f1b82db066ef1..f8e97c460cad5556723aa10c0568936f566f73ea 100644 --- a/entity/Context_entity/contentTitleProcess.js +++ b/entity/Context_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.CONTEXT_NAME")) \ No newline at end of file diff --git a/entity/Contract_entity/Contract_entity.aod b/entity/Contract_entity/Contract_entity.aod index b25cc88d7109dda07cbdedb76ad6fd90062c8dcb..eef24ef3cd3f4d92c04b806e29c050f672321b13 100644 --- a/entity/Contract_entity/Contract_entity.aod +++ b/entity/Contract_entity/Contract_entity.aod @@ -1,499 +1,500 @@ -<?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.5" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.5"> - <name>Contract_entity</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <documentation>%aditoprj%/entity/Contract_entity/documentation.adoc</documentation> - <title>Contract</title> - <contentTitleProcess>%aditoprj%/entity/Contract_entity/contentTitleProcess.js</contentTitleProcess> - <afterUiInit>%aditoprj%/entity/Contract_entity/afterUiInit.js</afterUiInit> - <iconId>VAADIN:FILE_TEXT</iconId> - <titlePlural>Contracts</titlePlural> - <recordContainer>db</recordContainer> - <entityFields> - <entityField> - <name>CONTRACTCODE</name> - <documentation>%aditoprj%/entity/Contract_entity/entityfields/contractcode/documentation.adoc</documentation> - <title>Contract number</title> - <mandatory v="true" /> - <state>READONLY</state> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractcode/valueProcess.js</valueProcess> - <onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractcode/onValidation.js</onValidation> - </entityField> - <entityField> - <name>CONTRACTDUE</name> - <documentation>%aditoprj%/entity/Contract_entity/entityfields/contractdue/documentation.adoc</documentation> - <title>Next due date</title> - <contentType>DATE</contentType> - <resolution>DAY</resolution> - <outputFormat>dd.MM.yyyy</outputFormat> - <inputFormat>dd.MM.yyyy</inputFormat> - <onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractdue/onValidation.js</onValidation> - </entityField> - <entityField> - <name>CONTRACTEND</name> - <documentation>%aditoprj%/entity/Contract_entity/entityfields/contractend/documentation.adoc</documentation> - <title>Contract expiry date</title> - <contentType>DATE</contentType> - <resolution>DAY</resolution> - <outputFormat>dd.MM.yyyy</outputFormat> - <inputFormat>dd.MM.yyyy</inputFormat> - <onValueChange>%aditoprj%/entity/Contract_entity/entityfields/contractend/onValueChange.js</onValueChange> - <onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractend/onValidation.js</onValidation> - </entityField> - <entityField> - <name>CONTRACTID</name> - <searchable v="false" /> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractid/valueProcess.js</valueProcess> - </entityField> - <entityField> - <name>CONTRACTSTART</name> - <documentation>%aditoprj%/entity/Contract_entity/entityfields/contractstart/documentation.adoc</documentation> - <title>Contract start date</title> - <contentType>DATE</contentType> - <resolution>DAY</resolution> - <outputFormat>dd.MM.yyyy</outputFormat> - <inputFormat>dd.MM.yyyy</inputFormat> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractstart/valueProcess.js</valueProcess> - <onValueChange>%aditoprj%/entity/Contract_entity/entityfields/contractstart/onValueChange.js</onValueChange> - <onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractstart/onValidation.js</onValidation> - </entityField> - <entityField> - <name>CONTRACTSTATUS</name> - <title>${CONTRACT_STATUS}</title> - <consumer>ContractStates</consumer> - <displayValueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractstatus/displayValueProcess.js</displayValueProcess> - </entityField> - <entityField> - <name>CONTRACTTYPE</name> - <title>Type of contract</title> - <consumer>ContractTypes</consumer> - <displayValueProcess>%aditoprj%/entity/Contract_entity/entityfields/contracttype/displayValueProcess.js</displayValueProcess> - </entityField> - <entityField> - <name>PAYMENT</name> - <title>Payment method</title> - <consumer>ContractPayments</consumer> - <mandatory v="true" /> - <displayValueProcess>%aditoprj%/entity/Contract_entity/entityfields/payment/displayValueProcess.js</displayValueProcess> - </entityField> - <entityField> - <name>CONTACT_ID</name> - <documentation>%aditoprj%/entity/Contract_entity/entityfields/contact_id/documentation.adoc</documentation> - <title>Connection</title> - <consumer>AnyContacts</consumer> - <linkedContextProcess>%aditoprj%/entity/Contract_entity/entityfields/contact_id/linkedContextProcess.js</linkedContextProcess> - <mandatory v="true" /> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contact_id/valueProcess.js</valueProcess> - <displayValueProcess>%aditoprj%/entity/Contract_entity/entityfields/contact_id/displayValueProcess.js</displayValueProcess> - </entityField> - <entityField> - <name>REMARK</name> - <title>Description</title> - <contentType>LONG_TEXT</contentType> - </entityField> - <entityProvider> - <name>Contracts</name> - <fieldType>DEPENDENCY_IN</fieldType> - <recordContainer>db</recordContainer> - <dependencies> - <entityDependency> - <name>6d7c7166-84b4-4da2-9a48-cc1e390ac987</name> - <entityName>Organisation_entity</entityName> - <fieldName>Contracts</fieldName> - <isConsumer v="false" /> - </entityDependency> - <entityDependency> - <name>3698fe59-fd02-427b-8c95-a90c7d8036e5</name> - <entityName>Person_entity</entityName> - <fieldName>Contracts</fieldName> - <isConsumer v="false" /> - </entityDependency> - </dependencies> - <children> - <entityParameter> - <name>ContactId_param</name> - <expose v="true" /> - </entityParameter> - </children> - </entityProvider> - <entityParameter> - <name>ContactId_param</name> - <expose v="true" /> - <mandatory v="false" /> - <description>PARAMETER</description> - </entityParameter> - <entityField> - <name>IMAGE</name> - <contentType>IMAGE</contentType> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/image/valueProcess.js</valueProcess> - </entityField> - <entityFieldGroup> - <name>CONTRACTCODE_DISPLAY_fieldGroup</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js</valueProcess> - <documentation>%aditoprj%/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/documentation.adoc</documentation> - <description>FIELDGROUP</description> - <fields> - <element>CONTRACTTYPE</element> - <element>CONTRACTCODE</element> - </fields> - </entityFieldGroup> - <entityConsumer> - <name>Activities</name> - <fieldType>DEPENDENCY_OUT</fieldType> - <dependency> - <name>dependency</name> - <entityName>Activity_entity</entityName> - <fieldName>LinkedObjects</fieldName> - </dependency> - <children> - <entityParameter> - <name>RowId_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/activities/children/rowid_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>ObjectId_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/activities/children/objectid_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>PresetLinks_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/activities/children/presetlinks_param/valueProcess.js</valueProcess> - </entityParameter> - </children> - </entityConsumer> - <entityConsumer> - <name>AnyContacts</name> - <fieldType>DEPENDENCY_OUT</fieldType> - <dependency> - <name>dependency</name> - <entityName>AnyContact_entity</entityName> - <fieldName>#PROVIDER</fieldName> - </dependency> - </entityConsumer> - <entityProvider> - <name>#PROVIDER</name> - <recordContainer>db</recordContainer> - <dependencies> - <entityDependency> - <name>7d8f586a-3ee0-47e8-b328-3b624cf4abfa</name> - <entityName>Object_entity</entityName> - <fieldName>Contracts</fieldName> - <isConsumer v="false" /> - </entityDependency> - </dependencies> - </entityProvider> - <entityField> - <name>CONTACT_ORG_ID</name> - <searchable v="false" /> - </entityField> - <entityField> - <name>CONTACT_PERSON_ID</name> - <searchable v="false" /> - </entityField> - <entityConsumer> - <name>Documents</name> - <fieldType>DEPENDENCY_OUT</fieldType> - <dependency> - <name>dependency</name> - <entityName>Document_entity</entityName> - <fieldName>Documents</fieldName> - </dependency> - <children> - <entityParameter> - <name>AssignmentName_param</name> - <triggerRecalculation v="false" /> - </entityParameter> - <entityParameter> - <name>AssignmentRowId_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js</valueProcess> - <triggerRecalculation v="false" /> - </entityParameter> - <entityParameter> - <name>AssignmentTable_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess> - <triggerRecalculation v="false" /> - </entityParameter> - </children> - </entityConsumer> - <entityConsumer> - <name>MainDocuments</name> - <fieldType>DEPENDENCY_OUT</fieldType> - <stateProcess>%aditoprj%/entity/Contract_entity/entityfields/maindocuments/stateProcess.js</stateProcess> - <dependency> - <name>dependency</name> - <entityName>Document_entity</entityName> - <fieldName>MainDocuments</fieldName> - </dependency> - <children> - <entityParameter> - <name>AssignmentName_param</name> - </entityParameter> - <entityParameter> - <name>AssignmentRowId_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/maindocuments/children/assignmentrowid_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>AssignmentTable_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/maindocuments/children/assignmenttable_param/valueProcess.js</valueProcess> - </entityParameter> - </children> - </entityConsumer> - <entityConsumer> - <name>ContractPayments</name> - <fieldType>DEPENDENCY_OUT</fieldType> - <dependency> - <name>dependency</name> - <entityName>KeywordEntry_entity</entityName> - <fieldName>SpecificContainerKeywords</fieldName> - </dependency> - <children> - <entityParameter> - <name>ContainerName_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractpayments/children/containername_param/valueProcess.js</valueProcess> - <expose v="false" /> - </entityParameter> - </children> - </entityConsumer> - <entityConsumer> - <name>ContractStates</name> - <fieldType>DEPENDENCY_OUT</fieldType> - <dependency> - <name>dependency</name> - <entityName>KeywordEntry_entity</entityName> - <fieldName>SpecificContainerKeywords</fieldName> - </dependency> - <children> - <entityParameter> - <name>ContainerName_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractstates/children/containername_param/valueProcess.js</valueProcess> - <expose v="false" /> - </entityParameter> - </children> - </entityConsumer> - <entityConsumer> - <name>ContractTypes</name> - <fieldType>DEPENDENCY_OUT</fieldType> - <dependency> - <name>dependency</name> - <entityName>KeywordEntry_entity</entityName> - <fieldName>SpecificContainerKeywords</fieldName> - </dependency> - <children> - <entityParameter> - <name>ContainerName_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contracttypes/children/containername_param/valueProcess.js</valueProcess> - <expose v="false" /> - </entityParameter> - </children> - </entityConsumer> - <entityActionField> - <name>newActivity</name> - <fieldType>ACTION</fieldType> - <title>New activity</title> - <onActionProcess>%aditoprj%/entity/Contract_entity/entityfields/newactivity/onActionProcess.js</onActionProcess> - <iconId>NEON:HISTORY</iconId> - <tooltip>New activity</tooltip> - <tooltipProcess>%aditoprj%/entity/Contract_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess> - </entityActionField> - <entityConsumer> - <name>Attributes</name> - <fieldType>DEPENDENCY_OUT</fieldType> - <onValidation>%aditoprj%/entity/Contract_entity/entityfields/attributes/onValidation.js</onValidation> - <dependency> - <name>dependency</name> - <entityName>AttributeRelation_entity</entityName> - <fieldName>AttributeRelations</fieldName> - </dependency> - <children> - <entityParameter> - <name>ObjectRowId_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess> - <expose v="false" /> - <triggerRecalculation v="true" /> - </entityParameter> - <entityParameter> - <name>ObjectType_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess> - <expose v="false" /> - <triggerRecalculation v="true" /> - </entityParameter> - </children> - </entityConsumer> - <entityConsumer> - <name>AttributeTree</name> - <fieldType>DEPENDENCY_OUT</fieldType> - <dependency> - <name>dependency</name> - <entityName>AttributeRelation_entity</entityName> - <fieldName>TreeProvider</fieldName> - </dependency> - <children> - <entityParameter> - <name>ObjectType_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess> - <triggerRecalculation v="true" /> - </entityParameter> - <entityParameter> - <name>ObjectRowId_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess> - <triggerRecalculation v="true" /> - </entityParameter> - </children> - </entityConsumer> - <entityConsumer> - <name>Tasks</name> - <fieldType>DEPENDENCY_OUT</fieldType> - <stateProcess>%aditoprj%/entity/Contract_entity/entityfields/tasks/stateProcess.js</stateProcess> - <dependency> - <name>dependency</name> - <entityName>Task_entity</entityName> - <fieldName>LinkedObjects</fieldName> - </dependency> - <children> - <entityParameter> - <name>ObjectId_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/tasks/children/objectid_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>RowId_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/tasks/children/rowid_param/valueProcess.js</valueProcess> - </entityParameter> - <entityParameter> - <name>PresetLinks_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js</valueProcess> - </entityParameter> - </children> - </entityConsumer> - <entityActionField> - <name>newTask</name> - <fieldType>ACTION</fieldType> - <title>New task</title> - <onActionProcess>%aditoprj%/entity/Contract_entity/entityfields/newtask/onActionProcess.js</onActionProcess> - <iconId>VAADIN:TASKS</iconId> - </entityActionField> - <entityConsumer> - <name>LogHistoryConsumer</name> - <fieldType>DEPENDENCY_OUT</fieldType> - <dependency> - <name>dependency</name> - <entityName>LogHistory_entity</entityName> - <fieldName>LogHistoryProvider</fieldName> - </dependency> - <children> - <entityParameter> - <name>tablenames_param</name> - <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js</valueProcess> - </entityParameter> - </children> - </entityConsumer> - </entityFields> - <recordContainers> - <dbRecordContainer> - <name>db</name> - <alias>Data_alias</alias> - <maximumDbRows v="0" /> - <fromClauseProcess>%aditoprj%/entity/Contract_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess> - <conditionProcess>%aditoprj%/entity/Contract_entity/recordcontainers/db/conditionProcess.js</conditionProcess> - <orderClauseProcess>%aditoprj%/entity/Contract_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess> - <linkInformation> - <linkInformation> - <name>78925203-f1c5-4e7e-9424-1a23500c655d</name> - <tableName>CONTRACT</tableName> - <primaryKey>CONTRACTID</primaryKey> - <isUIDTable v="true" /> - <readonly v="false" /> - </linkInformation> - <linkInformation> - <name>0637150d-c535-41ce-85f3-e9a6b980d195</name> - <tableName>CONTACT</tableName> - <primaryKey>CONTACTID</primaryKey> - <isUIDTable v="false" /> - <readonly v="true" /> - </linkInformation> - <linkInformation> - <name>9ba7de4b-999c-44cc-95ee-0dbdcc35bf0f</name> - <tableName>ORGANISATION</tableName> - <primaryKey>ORGANISATIONID</primaryKey> - <isUIDTable v="false" /> - <readonly v="true" /> - </linkInformation> - <linkInformation> - <name>748d1280-6dd2-4ada-837e-b331166e78d3</name> - <tableName>PERSON</tableName> - <primaryKey>PERSONID</primaryKey> - <isUIDTable v="false" /> - <readonly v="true" /> - </linkInformation> - </linkInformation> - <recordFieldMappings> - <dbRecordFieldMapping> - <name>CONTRACTCODE.value</name> - <recordfield>CONTRACT.CONTRACTCODE</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>CONTRACTDUE.value</name> - <recordfield>CONTRACT.CONTRACTDUE</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>CONTRACTEND.value</name> - <recordfield>CONTRACT.CONTRACTEND</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>CONTRACTID.value</name> - <recordfield>CONTRACT.CONTRACTID</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>CONTRACTSTART.value</name> - <recordfield>CONTRACT.CONTRACTSTART</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>CONTRACTSTATUS.value</name> - <recordfield>CONTRACT.CONTRACTSTATUS</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>CONTRACTTYPE.value</name> - <recordfield>CONTRACT.CONTRACTTYPE</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>PAYMENT.value</name> - <recordfield>CONTRACT.PAYMENT</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>REMARK.value</name> - <recordfield>CONTRACT.REMARK</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>CONTACT_ID.value</name> - <recordfield>CONTRACT.CONTACT_ID</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>CONTACT_ORG_ID.value</name> - <recordfield>CONTACT.ORGANISATION_ID</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>CONTACT_PERSON_ID.value</name> - <recordfield>CONTACT.PERSON_ID</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>PERSON_FIRSTNAME.value</name> - <recordfield>PERSON.FIRSTNAME</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>PERSON_LASTNAME.value</name> - <recordfield>PERSON.LASTNAME</recordfield> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>PAYMENT.displayValue</name> - <expression>%aditoprj%/entity/Contract_entity/recordcontainers/db/recordfieldmappings/payment.displayvalue/expression.js</expression> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>CONTRACTSTATUS.displayValue</name> - <expression>%aditoprj%/entity/Contract_entity/recordcontainers/db/recordfieldmappings/contractstatus.displayvalue/expression.js</expression> - </dbRecordFieldMapping> - <dbRecordFieldMapping> - <name>CONTRACTTYPE.displayValue</name> - <expression>%aditoprj%/entity/Contract_entity/recordcontainers/db/recordfieldmappings/contracttype.displayvalue/expression.js</expression> - </dbRecordFieldMapping> - </recordFieldMappings> - </dbRecordContainer> - </recordContainers> -</entity> +<?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.5" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.5"> + <name>Contract_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/entity/Contract_entity/documentation.adoc</documentation> + <title>Contract</title> + <contentTitleProcess>%aditoprj%/entity/Contract_entity/contentTitleProcess.js</contentTitleProcess> + <afterUiInit>%aditoprj%/entity/Contract_entity/afterUiInit.js</afterUiInit> + <iconId>VAADIN:FILE_TEXT</iconId> + <titlePlural>Contracts</titlePlural> + <recordContainer>db</recordContainer> + <entityFields> + <entityField> + <name>CONTRACTCODE</name> + <documentation>%aditoprj%/entity/Contract_entity/entityfields/contractcode/documentation.adoc</documentation> + <title>Contract number</title> + <mandatory v="true" /> + <state>READONLY</state> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractcode/valueProcess.js</valueProcess> + <onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractcode/onValidation.js</onValidation> + </entityField> + <entityField> + <name>CONTRACTDUE</name> + <documentation>%aditoprj%/entity/Contract_entity/entityfields/contractdue/documentation.adoc</documentation> + <title>Next due date</title> + <contentType>DATE</contentType> + <resolution>DAY</resolution> + <outputFormat>dd.MM.yyyy</outputFormat> + <inputFormat>dd.MM.yyyy</inputFormat> + <onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractdue/onValidation.js</onValidation> + </entityField> + <entityField> + <name>CONTRACTEND</name> + <documentation>%aditoprj%/entity/Contract_entity/entityfields/contractend/documentation.adoc</documentation> + <title>Contract expiry date</title> + <contentType>DATE</contentType> + <resolution>DAY</resolution> + <outputFormat>dd.MM.yyyy</outputFormat> + <inputFormat>dd.MM.yyyy</inputFormat> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractend/valueProcess.js</valueProcess> + <onValueChange>%aditoprj%/entity/Contract_entity/entityfields/contractend/onValueChange.js</onValueChange> + <onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractend/onValidation.js</onValidation> + </entityField> + <entityField> + <name>CONTRACTID</name> + <searchable v="false" /> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractid/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>CONTRACTSTART</name> + <documentation>%aditoprj%/entity/Contract_entity/entityfields/contractstart/documentation.adoc</documentation> + <title>Contract start date</title> + <contentType>DATE</contentType> + <resolution>DAY</resolution> + <outputFormat>dd.MM.yyyy</outputFormat> + <inputFormat>dd.MM.yyyy</inputFormat> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractstart/valueProcess.js</valueProcess> + <onValueChange>%aditoprj%/entity/Contract_entity/entityfields/contractstart/onValueChange.js</onValueChange> + <onValidation>%aditoprj%/entity/Contract_entity/entityfields/contractstart/onValidation.js</onValidation> + </entityField> + <entityField> + <name>CONTRACTSTATUS</name> + <title>${CONTRACT_STATUS}</title> + <consumer>ContractStates</consumer> + <displayValueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractstatus/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>CONTRACTTYPE</name> + <title>Type of contract</title> + <consumer>ContractTypes</consumer> + <displayValueProcess>%aditoprj%/entity/Contract_entity/entityfields/contracttype/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>PAYMENT</name> + <title>Payment method</title> + <consumer>ContractPayments</consumer> + <mandatory v="true" /> + <displayValueProcess>%aditoprj%/entity/Contract_entity/entityfields/payment/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>CONTACT_ID</name> + <documentation>%aditoprj%/entity/Contract_entity/entityfields/contact_id/documentation.adoc</documentation> + <title>Connection</title> + <consumer>AnyContacts</consumer> + <linkedContextProcess>%aditoprj%/entity/Contract_entity/entityfields/contact_id/linkedContextProcess.js</linkedContextProcess> + <mandatory v="true" /> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contact_id/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/Contract_entity/entityfields/contact_id/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>REMARK</name> + <title>Description</title> + <contentType>LONG_TEXT</contentType> + </entityField> + <entityProvider> + <name>Contracts</name> + <fieldType>DEPENDENCY_IN</fieldType> + <recordContainer>db</recordContainer> + <dependencies> + <entityDependency> + <name>6d7c7166-84b4-4da2-9a48-cc1e390ac987</name> + <entityName>Organisation_entity</entityName> + <fieldName>Contracts</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>3698fe59-fd02-427b-8c95-a90c7d8036e5</name> + <entityName>Person_entity</entityName> + <fieldName>Contracts</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + <children> + <entityParameter> + <name>ContactId_param</name> + <expose v="true" /> + </entityParameter> + </children> + </entityProvider> + <entityParameter> + <name>ContactId_param</name> + <expose v="true" /> + <mandatory v="false" /> + <description>PARAMETER</description> + </entityParameter> + <entityField> + <name>IMAGE</name> + <contentType>IMAGE</contentType> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/image/valueProcess.js</valueProcess> + </entityField> + <entityFieldGroup> + <name>CONTRACTCODE_DISPLAY_fieldGroup</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js</valueProcess> + <documentation>%aditoprj%/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/documentation.adoc</documentation> + <description>FIELDGROUP</description> + <fields> + <element>CONTRACTTYPE</element> + <element>CONTRACTCODE</element> + </fields> + </entityFieldGroup> + <entityConsumer> + <name>Activities</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Activity_entity</entityName> + <fieldName>LinkedObjects</fieldName> + </dependency> + <children> + <entityParameter> + <name>RowId_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/activities/children/rowid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>ObjectId_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/activities/children/objectid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>PresetLinks_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/activities/children/presetlinks_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>AnyContacts</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>AnyContact_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + </entityConsumer> + <entityProvider> + <name>#PROVIDER</name> + <recordContainer>db</recordContainer> + <dependencies> + <entityDependency> + <name>7d8f586a-3ee0-47e8-b328-3b624cf4abfa</name> + <entityName>Object_entity</entityName> + <fieldName>Contracts</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + <entityField> + <name>CONTACT_ORG_ID</name> + <searchable v="false" /> + </entityField> + <entityField> + <name>CONTACT_PERSON_ID</name> + <searchable v="false" /> + </entityField> + <entityConsumer> + <name>Documents</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Document_entity</entityName> + <fieldName>Documents</fieldName> + </dependency> + <children> + <entityParameter> + <name>AssignmentName_param</name> + <triggerRecalculation v="false" /> + </entityParameter> + <entityParameter> + <name>AssignmentRowId_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js</valueProcess> + <triggerRecalculation v="false" /> + </entityParameter> + <entityParameter> + <name>AssignmentTable_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js</valueProcess> + <triggerRecalculation v="false" /> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>MainDocuments</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <stateProcess>%aditoprj%/entity/Contract_entity/entityfields/maindocuments/stateProcess.js</stateProcess> + <dependency> + <name>dependency</name> + <entityName>Document_entity</entityName> + <fieldName>MainDocuments</fieldName> + </dependency> + <children> + <entityParameter> + <name>AssignmentName_param</name> + </entityParameter> + <entityParameter> + <name>AssignmentRowId_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/maindocuments/children/assignmentrowid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>AssignmentTable_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/maindocuments/children/assignmenttable_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>ContractPayments</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContainerName_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractpayments/children/containername_param/valueProcess.js</valueProcess> + <expose v="false" /> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>ContractStates</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContainerName_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contractstates/children/containername_param/valueProcess.js</valueProcess> + <expose v="false" /> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>ContractTypes</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContainerName_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/contracttypes/children/containername_param/valueProcess.js</valueProcess> + <expose v="false" /> + </entityParameter> + </children> + </entityConsumer> + <entityActionField> + <name>newActivity</name> + <fieldType>ACTION</fieldType> + <title>New activity</title> + <onActionProcess>%aditoprj%/entity/Contract_entity/entityfields/newactivity/onActionProcess.js</onActionProcess> + <iconId>NEON:HISTORY</iconId> + <tooltip>New activity</tooltip> + <tooltipProcess>%aditoprj%/entity/Contract_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess> + </entityActionField> + <entityConsumer> + <name>Attributes</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <onValidation>%aditoprj%/entity/Contract_entity/entityfields/attributes/onValidation.js</onValidation> + <dependency> + <name>dependency</name> + <entityName>AttributeRelation_entity</entityName> + <fieldName>AttributeRelations</fieldName> + </dependency> + <children> + <entityParameter> + <name>ObjectRowId_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js</valueProcess> + <expose v="false" /> + <triggerRecalculation v="true" /> + </entityParameter> + <entityParameter> + <name>ObjectType_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/attributes/children/objecttype_param/valueProcess.js</valueProcess> + <expose v="false" /> + <triggerRecalculation v="true" /> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>AttributeTree</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>AttributeRelation_entity</entityName> + <fieldName>TreeProvider</fieldName> + </dependency> + <children> + <entityParameter> + <name>ObjectType_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js</valueProcess> + <triggerRecalculation v="true" /> + </entityParameter> + <entityParameter> + <name>ObjectRowId_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js</valueProcess> + <triggerRecalculation v="true" /> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>Tasks</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <stateProcess>%aditoprj%/entity/Contract_entity/entityfields/tasks/stateProcess.js</stateProcess> + <dependency> + <name>dependency</name> + <entityName>Task_entity</entityName> + <fieldName>LinkedObjects</fieldName> + </dependency> + <children> + <entityParameter> + <name>ObjectId_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/tasks/children/objectid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>RowId_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/tasks/children/rowid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>PresetLinks_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityActionField> + <name>newTask</name> + <fieldType>ACTION</fieldType> + <title>New task</title> + <onActionProcess>%aditoprj%/entity/Contract_entity/entityfields/newtask/onActionProcess.js</onActionProcess> + <iconId>VAADIN:TASKS</iconId> + </entityActionField> + <entityConsumer> + <name>LogHistoryConsumer</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>LogHistory_entity</entityName> + <fieldName>LogHistoryProvider</fieldName> + </dependency> + <children> + <entityParameter> + <name>tablenames_param</name> + <valueProcess>%aditoprj%/entity/Contract_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + </entityFields> + <recordContainers> + <dbRecordContainer> + <name>db</name> + <alias>Data_alias</alias> + <maximumDbRows v="0" /> + <fromClauseProcess>%aditoprj%/entity/Contract_entity/recordcontainers/db/fromClauseProcess.js</fromClauseProcess> + <conditionProcess>%aditoprj%/entity/Contract_entity/recordcontainers/db/conditionProcess.js</conditionProcess> + <orderClauseProcess>%aditoprj%/entity/Contract_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess> + <linkInformation> + <linkInformation> + <name>78925203-f1c5-4e7e-9424-1a23500c655d</name> + <tableName>CONTRACT</tableName> + <primaryKey>CONTRACTID</primaryKey> + <isUIDTable v="true" /> + <readonly v="false" /> + </linkInformation> + <linkInformation> + <name>0637150d-c535-41ce-85f3-e9a6b980d195</name> + <tableName>CONTACT</tableName> + <primaryKey>CONTACTID</primaryKey> + <isUIDTable v="false" /> + <readonly v="true" /> + </linkInformation> + <linkInformation> + <name>9ba7de4b-999c-44cc-95ee-0dbdcc35bf0f</name> + <tableName>ORGANISATION</tableName> + <primaryKey>ORGANISATIONID</primaryKey> + <isUIDTable v="false" /> + <readonly v="true" /> + </linkInformation> + <linkInformation> + <name>748d1280-6dd2-4ada-837e-b331166e78d3</name> + <tableName>PERSON</tableName> + <primaryKey>PERSONID</primaryKey> + <isUIDTable v="false" /> + <readonly v="true" /> + </linkInformation> + </linkInformation> + <recordFieldMappings> + <dbRecordFieldMapping> + <name>CONTRACTCODE.value</name> + <recordfield>CONTRACT.CONTRACTCODE</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CONTRACTDUE.value</name> + <recordfield>CONTRACT.CONTRACTDUE</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CONTRACTEND.value</name> + <recordfield>CONTRACT.CONTRACTEND</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CONTRACTID.value</name> + <recordfield>CONTRACT.CONTRACTID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CONTRACTSTART.value</name> + <recordfield>CONTRACT.CONTRACTSTART</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CONTRACTSTATUS.value</name> + <recordfield>CONTRACT.CONTRACTSTATUS</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CONTRACTTYPE.value</name> + <recordfield>CONTRACT.CONTRACTTYPE</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>PAYMENT.value</name> + <recordfield>CONTRACT.PAYMENT</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>REMARK.value</name> + <recordfield>CONTRACT.REMARK</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CONTACT_ID.value</name> + <recordfield>CONTRACT.CONTACT_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CONTACT_ORG_ID.value</name> + <recordfield>CONTACT.ORGANISATION_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CONTACT_PERSON_ID.value</name> + <recordfield>CONTACT.PERSON_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>PERSON_FIRSTNAME.value</name> + <recordfield>PERSON.FIRSTNAME</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>PERSON_LASTNAME.value</name> + <recordfield>PERSON.LASTNAME</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>PAYMENT.displayValue</name> + <expression>%aditoprj%/entity/Contract_entity/recordcontainers/db/recordfieldmappings/payment.displayvalue/expression.js</expression> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CONTRACTSTATUS.displayValue</name> + <expression>%aditoprj%/entity/Contract_entity/recordcontainers/db/recordfieldmappings/contractstatus.displayvalue/expression.js</expression> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CONTRACTTYPE.displayValue</name> + <expression>%aditoprj%/entity/Contract_entity/recordcontainers/db/recordfieldmappings/contracttype.displayvalue/expression.js</expression> + </dbRecordFieldMapping> + </recordFieldMappings> + </dbRecordContainer> + </recordContainers> +</entity> diff --git a/entity/Contract_entity/afterUiInit.js b/entity/Contract_entity/afterUiInit.js index 031b635db2bf916a03eda91e8db23dc6c8bb5d35..40048a413712450e39dc819e7142ed9b2a48d820 100644 --- a/entity/Contract_entity/afterUiInit.js +++ b/entity/Contract_entity/afterUiInit.js @@ -1,9 +1,9 @@ -import("system.neon"); -import("system.vars"); -import("Context_lib"); -import("Attribute_lib"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); -} +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Contract_entity/contentTitleProcess.js b/entity/Contract_entity/contentTitleProcess.js index 46f60176775fe07563734ff5f62aa714afa71e45..302a1d406e496a03d1f78d114d81592e4cf79582 100644 --- a/entity/Contract_entity/contentTitleProcess.js +++ b/entity/Contract_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.CONTRACTCODE_DISPLAY_fieldGroup")); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/activities/children/presetlinks_param/valueProcess.js b/entity/Contract_entity/entityfields/activities/children/presetlinks_param/valueProcess.js index 650bf07d2a39d1c673866de4ef9753f13f3ebed3..b1d8819781b580f125854a6830367ac033dad6f4 100644 --- a/entity/Contract_entity/entityfields/activities/children/presetlinks_param/valueProcess.js +++ b/entity/Contract_entity/entityfields/activities/children/presetlinks_param/valueProcess.js @@ -1,13 +1,13 @@ -import("system.vars"); -import("system.result"); -import("Contact_lib"); - -var contactId = vars.get("$field.CONTACT_ID"); -var links = []; - -if (contactId) -{ - links.push([ContactUtils.getContextByContactId(contactId), contactId]); -} - +import("system.vars"); +import("system.result"); +import("Contact_lib"); + +var contactId = vars.get("$field.CONTACT_ID"); +var links = []; + +if (contactId) +{ + links.push([ContactUtils.getContextByContactId(contactId), contactId]); +} + result.object(links); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/contractend/onValidation.js b/entity/Contract_entity/entityfields/contractend/onValidation.js index 9cfd6fc2f89a9472d2f9822573964a58640e6966..12c8dcb1629bc710a0a2ab8ea59694a2488b568d 100644 --- a/entity/Contract_entity/entityfields/contractend/onValidation.js +++ b/entity/Contract_entity/entityfields/contractend/onValidation.js @@ -1,10 +1,10 @@ -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("Entity_lib"); - -var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTRACTEND")); -var cDue = vars.get("$field.CONTRACTDUE"); - -if (DateUtils.validateBeginnBeforeEnd(vars.get("$field.CONTRACTSTART"), cEnd) === false) +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Entity_lib"); + +var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTRACTEND")); +var cDue = vars.get("$field.CONTRACTDUE"); + +if (DateUtils.validateBeginnBeforeEnd(vars.get("$field.CONTRACTSTART"), cEnd) === false) result.string(DateUtils.getValidationFailString()); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/contractend/valueProcess.js b/entity/Contract_entity/entityfields/contractend/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/entity/Contract_entity/entityfields/contractstart/onValidation.js b/entity/Contract_entity/entityfields/contractstart/onValidation.js index 81cb960ca17d5f47cafe286002b0e4c4b381aba7..cff1fcaa60907332fcb9359a4f8b0866dfbfb287 100644 --- a/entity/Contract_entity/entityfields/contractstart/onValidation.js +++ b/entity/Contract_entity/entityfields/contractstart/onValidation.js @@ -1,10 +1,10 @@ -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("Entity_lib"); - -var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTRACTSTART")); -var cDue = vars.get("$field.CONTRACTDUE"); - -if (DateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.CONTRACTEND")) === false) +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Entity_lib"); + +var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTRACTSTART")); +var cDue = vars.get("$field.CONTRACTDUE"); + +if (DateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.CONTRACTEND")) === false) result.string(DateUtils.getValidationFailString()); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/contractstart/valueProcess.js b/entity/Contract_entity/entityfields/contractstart/valueProcess.js index 7f859f943373ed46e60a1e4786e51216a6a00126..e2eb1642a6585c84aed1018bc17273b0b2b2f048 100644 --- a/entity/Contract_entity/entityfields/contractstart/valueProcess.js +++ b/entity/Contract_entity/entityfields/contractstart/valueProcess.js @@ -1,11 +1,11 @@ -import("system.result"); -import("system.vars"); -import("system.neon"); -import("Date_lib"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) -{ - result.string(DateUtils.getTodayUTC()); -} -else +import("system.result"); +import("system.vars"); +import("system.neon"); +import("Date_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + result.string(DateUtils.getTodayUTC()); +} +else result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js b/entity/Contract_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js index f3a33022dd2768fb78f05bafc713ba43d6272145..820fc8bb5dc0d79c01a18bb305926d9e643fa5a6 100644 --- a/entity/Contract_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js +++ b/entity/Contract_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js @@ -1,10 +1,10 @@ -import("system.vars"); -import("system.result"); -import("Context_lib"); - -var res = []; -res.push({id: vars.get("$field.CONTRACTID"), tableNames: ["AB_ATTRIBUTERELATION"]}); -res.push({id: vars.get("$field.CONTRACTID"), tableNames: ["CONTRACT"]}); - -res = JSON.stringify(res);//currently only strings can be passed as param +import("system.vars"); +import("system.result"); +import("Context_lib"); + +var res = []; +res.push({id: vars.get("$field.CONTRACTID"), tableNames: ["AB_ATTRIBUTERELATION"]}); +res.push({id: vars.get("$field.CONTRACTID"), tableNames: ["CONTRACT"]}); + +res = JSON.stringify(res);//currently only strings can be passed as param result.object(res); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/newactivity/onActionProcess.js b/entity/Contract_entity/entityfields/newactivity/onActionProcess.js index 41a76599f06b678e7f2a3f89f59d0c5e0c0c3004..0ba3fa821c8ce3471e6112997342669ca6f3df08 100644 --- a/entity/Contract_entity/entityfields/newactivity/onActionProcess.js +++ b/entity/Contract_entity/entityfields/newactivity/onActionProcess.js @@ -1,13 +1,13 @@ -import("Contact_lib"); -import("system.vars"); -import("ActivityTask_lib"); - -var contactId = vars.get("$field.CONTACT_ID"); -var links = []; - -if (contactId) -{ - links.push([ContactUtils.getContextByContactId(contactId), contactId]); -} - +import("Contact_lib"); +import("system.vars"); +import("ActivityTask_lib"); + +var contactId = vars.get("$field.CONTACT_ID"); +var links = []; + +if (contactId) +{ + links.push([ContactUtils.getContextByContactId(contactId), contactId]); +} + ActivityUtils.createNewActivity(vars.getString("$field.CONTRACTID"), links); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/newactivity/tooltipProcess.js b/entity/Contract_entity/entityfields/newactivity/tooltipProcess.js index c71e677c22663c2295e524aa7f3ed3dd571724d7..2cdf4480a4bb519f955eb0f5a3c84ddd7bf3e5f7 100644 --- a/entity/Contract_entity/entityfields/newactivity/tooltipProcess.js +++ b/entity/Contract_entity/entityfields/newactivity/tooltipProcess.js @@ -1,4 +1,4 @@ -import("system.translate"); -import("system.result"); - +import("system.translate"); +import("system.result"); + result.string(translate.text("New activity")); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/newtask/onActionProcess.js b/entity/Contract_entity/entityfields/newtask/onActionProcess.js index 7e165e15e52378d09e5723adcb0bedd748d84676..0e02a8b399a30618544a9861daf1249d9a6121cf 100644 --- a/entity/Contract_entity/entityfields/newtask/onActionProcess.js +++ b/entity/Contract_entity/entityfields/newtask/onActionProcess.js @@ -1,13 +1,13 @@ -import("system.vars"); -import("ActivityTask_lib"); -import("Contact_lib"); - -var contactId = vars.get("$field.CONTACT_ID"); -var links = []; - -if (contactId) -{ - links.push([ContactUtils.getContextByContactId(contactId), contactId]); -} - +import("system.vars"); +import("ActivityTask_lib"); +import("Contact_lib"); + +var contactId = vars.get("$field.CONTACT_ID"); +var links = []; + +if (contactId) +{ + links.push([ContactUtils.getContextByContactId(contactId), contactId]); +} + TaskUtils.createNewTask(vars.get("$field.CONTRACTID"), links); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/tasks/children/objectid_param/valueProcess.js b/entity/Contract_entity/entityfields/tasks/children/objectid_param/valueProcess.js index 008915f61deac19ccdd40fff81701de63eb3b6a2..5996e99db232db8df50f155732110608e5abff4e 100644 --- a/entity/Contract_entity/entityfields/tasks/children/objectid_param/valueProcess.js +++ b/entity/Contract_entity/entityfields/tasks/children/objectid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("Context_lib"); - +import("system.result"); +import("Context_lib"); + result.string(ContextUtils.getCurrentContextId()); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js b/entity/Contract_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js index 650bf07d2a39d1c673866de4ef9753f13f3ebed3..b1d8819781b580f125854a6830367ac033dad6f4 100644 --- a/entity/Contract_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js +++ b/entity/Contract_entity/entityfields/tasks/children/presetlinks_param/valueProcess.js @@ -1,13 +1,13 @@ -import("system.vars"); -import("system.result"); -import("Contact_lib"); - -var contactId = vars.get("$field.CONTACT_ID"); -var links = []; - -if (contactId) -{ - links.push([ContactUtils.getContextByContactId(contactId), contactId]); -} - +import("system.vars"); +import("system.result"); +import("Contact_lib"); + +var contactId = vars.get("$field.CONTACT_ID"); +var links = []; + +if (contactId) +{ + links.push([ContactUtils.getContextByContactId(contactId), contactId]); +} + result.object(links); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/tasks/children/rowid_param/valueProcess.js b/entity/Contract_entity/entityfields/tasks/children/rowid_param/valueProcess.js index 645e7585b75cdbb9e83fb8a6e4c572c100ae70da..b86c03c831e258c9d9f51cadb20ac07ec44911cd 100644 --- a/entity/Contract_entity/entityfields/tasks/children/rowid_param/valueProcess.js +++ b/entity/Contract_entity/entityfields/tasks/children/rowid_param/valueProcess.js @@ -1,3 +1,3 @@ -import("system.vars"); -import("system.result"); +import("system.vars"); +import("system.result"); result.string(vars.get("$field.CONTRACTID")); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/tasks/stateProcess.js b/entity/Contract_entity/entityfields/tasks/stateProcess.js index f66e3b89565ade4ff0e1b2b982a17f2fd328f02f..1b34404a3884f0b970939e41fdf6853c392ecd3e 100644 --- a/entity/Contract_entity/entityfields/tasks/stateProcess.js +++ b/entity/Contract_entity/entityfields/tasks/stateProcess.js @@ -1,10 +1,10 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); -import("ActivityTask_lib"); -import("Context_lib"); - -if(TaskUtils.hasTasks(vars.get("$field.CONTRACTID"), ContextUtils.getCurrentContextId())) - result.string(neon.COMPONENTSTATE_EDITABLE); -else +import("system.result"); +import("system.neon"); +import("system.vars"); +import("ActivityTask_lib"); +import("Context_lib"); + +if(TaskUtils.hasTasks(vars.get("$field.CONTRACTID"), ContextUtils.getCurrentContextId())) + result.string(neon.COMPONENTSTATE_EDITABLE); +else result.string(neon.COMPONENTSTATE_INVISIBLE); \ No newline at end of file diff --git a/entity/Contract_entity/recordcontainers/db/orderClauseProcess.js b/entity/Contract_entity/recordcontainers/db/orderClauseProcess.js index 07f2fb663f3b7fd1e616836207c8764572658947..cfe464b971c47fc4f1dea11bc77114d3428444d2 100644 --- a/entity/Contract_entity/recordcontainers/db/orderClauseProcess.js +++ b/entity/Contract_entity/recordcontainers/db/orderClauseProcess.js @@ -1,6 +1,6 @@ -import("system.result"); -import("system.db"); - -result.object({ - "CONTRACT.CONTRACTCODE": db.DESCENDING +import("system.result"); +import("system.db"); + +result.object({ + "CONTRACT.CONTRACTCODE": db.DESCENDING }); \ No newline at end of file diff --git a/entity/Countries_Entity/contentTitleProcess.js b/entity/Countries_Entity/contentTitleProcess.js index b23edec46e0092a426e1a7376ce817c42fd35b4d..306773d09e58a3d1944bebc9bb0173b132b75738 100644 --- a/entity/Countries_Entity/contentTitleProcess.js +++ b/entity/Countries_Entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("system.vars"); - +import("system.result"); +import("system.vars"); + result.string(vars.get("$field.NAME_TRANSLATED")); \ No newline at end of file diff --git a/entity/DocumentTemplateTypeCategory_entity/contentTitleProcess.js b/entity/DocumentTemplateTypeCategory_entity/contentTitleProcess.js index 554c806f6eba1b0e1f71ea1b1b1b9dc8f032b094..4c4e2663bd53256524a7f8c0e7e725909de92093 100644 --- a/entity/DocumentTemplateTypeCategory_entity/contentTitleProcess.js +++ b/entity/DocumentTemplateTypeCategory_entity/contentTitleProcess.js @@ -1,5 +1,5 @@ -import("system.vars"); -import("system.translate"); -import("system.result"); - +import("system.vars"); +import("system.translate"); +import("system.result"); + result.string(translate.text(vars.get("$field.TITLE"))); \ No newline at end of file diff --git a/entity/DocumentTemplateTypeCategory_entity/recordcontainers/db/conditionProcess.js b/entity/DocumentTemplateTypeCategory_entity/recordcontainers/db/conditionProcess.js index dc7d1be863628e131e9e10c6ea401aa9aca87e12..46f1441022bed2e08868bfc58f6818ced09bfeda 100644 --- a/entity/DocumentTemplateTypeCategory_entity/recordcontainers/db/conditionProcess.js +++ b/entity/DocumentTemplateTypeCategory_entity/recordcontainers/db/conditionProcess.js @@ -1,25 +1,25 @@ -import("system.logging"); -import("system.db"); -import("system.vars"); -import("system.result"); -import("KeywordRegistry_basic"); -import("Sql_lib"); -import("Keyword_lib"); - -var cond = SqlCondition.begin() - .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", $KeywordRegistry.documentTemplateTypeCategory()); - -var usageFilter = vars.get("$param.usageFilter_param"); -if (usageFilter) -{ - var keywordAttribute = new KeywordAttribute($KeywordRegistry.documentTemplateTypeCategory(), usageFilter); - cond.andAttachPrepared(SqlCondition.begin() - .andPrepare("AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ATTRIBUTE_ID", keywordAttribute.id) - .andPrepare("AB_KEYWORD_ATTRIBUTERELATION." + keywordAttribute.dbField, "1") - .buildSql("AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID in (\n\ - select AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ENTRY_ID \n\ - from AB_KEYWORD_ATTRIBUTERELATION ", null, ")")); -} - -cond = db.translateStatement(cond.build("1 = 2")); +import("system.logging"); +import("system.db"); +import("system.vars"); +import("system.result"); +import("KeywordRegistry_basic"); +import("Sql_lib"); +import("Keyword_lib"); + +var cond = SqlCondition.begin() + .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", $KeywordRegistry.documentTemplateTypeCategory()); + +var usageFilter = vars.get("$param.usageFilter_param"); +if (usageFilter) +{ + var keywordAttribute = new KeywordAttribute($KeywordRegistry.documentTemplateTypeCategory(), usageFilter); + cond.andAttachPrepared(SqlCondition.begin() + .andPrepare("AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ATTRIBUTE_ID", keywordAttribute.id) + .andPrepare("AB_KEYWORD_ATTRIBUTERELATION." + keywordAttribute.dbField, "1") + .buildSql("AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID in (\n\ + select AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ENTRY_ID \n\ + from AB_KEYWORD_ATTRIBUTERELATION ", null, ")")); +} + +cond = db.translateStatement(cond.build("1 = 2")); result.string(cond); \ No newline at end of file diff --git a/entity/DocumentTemplateTypeCategory_entity/titleProcess.js b/entity/DocumentTemplateTypeCategory_entity/titleProcess.js index 554c806f6eba1b0e1f71ea1b1b1b9dc8f032b094..4c4e2663bd53256524a7f8c0e7e725909de92093 100644 --- a/entity/DocumentTemplateTypeCategory_entity/titleProcess.js +++ b/entity/DocumentTemplateTypeCategory_entity/titleProcess.js @@ -1,5 +1,5 @@ -import("system.vars"); -import("system.translate"); -import("system.result"); - +import("system.vars"); +import("system.translate"); +import("system.result"); + result.string(translate.text(vars.get("$field.TITLE"))); \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/afterUiInit.js b/entity/DocumentTemplate_entity/afterUiInit.js index 031b635db2bf916a03eda91e8db23dc6c8bb5d35..40048a413712450e39dc819e7142ed9b2a48d820 100644 --- a/entity/DocumentTemplate_entity/afterUiInit.js +++ b/entity/DocumentTemplate_entity/afterUiInit.js @@ -1,9 +1,9 @@ -import("system.neon"); -import("system.vars"); -import("Context_lib"); -import("Attribute_lib"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); -} +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/DocumentTemplate_entity/contentTitleProcess.js b/entity/DocumentTemplate_entity/contentTitleProcess.js index 50558aa1c66aa3d4589060db47e5ab49a46eadbd..e7185d981056a9950a37b0cce1f2ef04a40f94c6 100644 --- a/entity/DocumentTemplate_entity/contentTitleProcess.js +++ b/entity/DocumentTemplate_entity/contentTitleProcess.js @@ -1,5 +1,5 @@ -import("system.vars"); -import("system.translate"); -import("system.result"); - -result.string(translate.text(vars.get("$field.NAME"))); +import("system.vars"); +import("system.translate"); +import("system.result"); + +result.string(translate.text(vars.get("$field.NAME"))); diff --git a/entity/DocumentTemplate_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/DocumentTemplate_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js index 8664993b9e558e2315aca8e89fb11698b5a6b2bf..67b75101e52e109f54ed5fccd1dd7ae185cde4a3 100644 --- a/entity/DocumentTemplate_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js +++ b/entity/DocumentTemplate_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.DOCUMENTTEMPLATEID")); \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/entityfields/attributes/children/objecttype_param/valueProcess.js b/entity/DocumentTemplate_entity/entityfields/attributes/children/objecttype_param/valueProcess.js index e8b4e72e74a0a4696ff39e83135aa6100ef908c0..431bcc952145cb451362fc69754f84ff1514bac5 100644 --- a/entity/DocumentTemplate_entity/entityfields/attributes/children/objecttype_param/valueProcess.js +++ b/entity/DocumentTemplate_entity/entityfields/attributes/children/objecttype_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("Context_lib"); - -result.string(ContextUtils.getCurrentContextId()); +import("system.result"); +import("Context_lib"); + +result.string(ContextUtils.getCurrentContextId()); diff --git a/entity/DocumentTemplate_entity/entityfields/bindata/onValueChange.js b/entity/DocumentTemplate_entity/entityfields/bindata/onValueChange.js index ca1705e355c1a2199a9f6ef5ffe027958db1a83f..0c002c6fff77b1e5cdd022c0fe4f09e75a1604fd 100644 --- a/entity/DocumentTemplate_entity/entityfields/bindata/onValueChange.js +++ b/entity/DocumentTemplate_entity/entityfields/bindata/onValueChange.js @@ -1,20 +1,20 @@ -import("system.logging"); -import("system.vars"); -import("system.neon"); -import("Entity_lib"); -import("Document_lib"); - -var uploadValue = DocumentUtil.getFilenameFromUpload(ProcessHandlingUtils.getOnValidationValue(vars.get("$field.BINDATA"))); - -logging.log(uploadValue.length) - -if(!(vars.get("$field.NAME") != null && vars.get("$field.NAME") != "")) -{ - if(uploadValue.length <= 40) - { - neon.setFieldValue("$field.NAME", uploadValue); - }else{ - var limit = uploadValue.length - 40; - neon.setFieldValue("$field.NAME", uploadValue.substr(0, uploadValue.length - limit)); - } +import("system.logging"); +import("system.vars"); +import("system.neon"); +import("Entity_lib"); +import("Document_lib"); + +var uploadValue = DocumentUtil.getFilenameFromUpload(ProcessHandlingUtils.getOnValidationValue(vars.get("$field.BINDATA"))); + +logging.log(uploadValue.length) + +if(!(vars.get("$field.NAME") != null && vars.get("$field.NAME") != "")) +{ + if(uploadValue.length <= 40) + { + neon.setFieldValue("$field.NAME", uploadValue); + }else{ + var limit = uploadValue.length - 40; + neon.setFieldValue("$field.NAME", uploadValue.substr(0, uploadValue.length - limit)); + } } \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/entityfields/classification/displayValueProcess.js b/entity/DocumentTemplate_entity/entityfields/classification/displayValueProcess.js index 3fa63d8f1e264fdb9df414a564214a57a2a58868..715bdd9a83ba9c638791549b005d81756cf3d62c 100644 --- a/entity/DocumentTemplate_entity/entityfields/classification/displayValueProcess.js +++ b/entity/DocumentTemplate_entity/entityfields/classification/displayValueProcess.js @@ -1,6 +1,6 @@ -import("system.result"); -import("system.vars"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - +import("system.result"); +import("system.vars"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + result.string(KeywordUtils.getViewValue($KeywordRegistry.documentTemplateTypeCategory(), vars.get("$field.CLASSIFICATION"))); \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/entityfields/classification/stateProcess.js b/entity/DocumentTemplate_entity/entityfields/classification/stateProcess.js index bada82b49dcfafa93649cba6f1e0d966fba0f665..aa77e44499178abf82f427f63122eebf5bf373f6 100644 --- a/entity/DocumentTemplate_entity/entityfields/classification/stateProcess.js +++ b/entity/DocumentTemplate_entity/entityfields/classification/stateProcess.js @@ -1,8 +1,8 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); - -if(vars.get("$field.TYPE") != "") -{ - result.string(neon.COMPONENTSTATE_EDITABLE); +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$field.TYPE") != "") +{ + result.string(neon.COMPONENTSTATE_EDITABLE); } \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/entityfields/date_new/valueProcess.js b/entity/DocumentTemplate_entity/entityfields/date_new/valueProcess.js index 8ee28e84edb9930de54975f81e8cb5a13c9aa02f..9477aae8647e69beb635ccbbe3a5aed9e7dc693e 100644 --- a/entity/DocumentTemplate_entity/entityfields/date_new/valueProcess.js +++ b/entity/DocumentTemplate_entity/entityfields/date_new/valueProcess.js @@ -1,6 +1,6 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(vars.get("$sys.date")); \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js b/entity/DocumentTemplate_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js index 8664993b9e558e2315aca8e89fb11698b5a6b2bf..67b75101e52e109f54ed5fccd1dd7ae185cde4a3 100644 --- a/entity/DocumentTemplate_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js +++ b/entity/DocumentTemplate_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.DOCUMENTTEMPLATEID")); \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js b/entity/DocumentTemplate_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js index 4fccd6bbf06c0613f12b6dd668116698fada04e4..8ab4359b85b27479e25988e20e6aec7e43c728ba 100644 --- a/entity/DocumentTemplate_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js +++ b/entity/DocumentTemplate_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js @@ -1,2 +1,2 @@ -import("system.result"); +import("system.result"); result.string("DOCUMENTTEMPLATE"); \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/entityfields/documenttemplateid/valueProcess.js b/entity/DocumentTemplate_entity/entityfields/documenttemplateid/valueProcess.js index 86ef789e064a4016f2d12c432498dc23474807aa..a2378ee42b3638db13001b2890b78669e5c65d9e 100644 --- a/entity/DocumentTemplate_entity/entityfields/documenttemplateid/valueProcess.js +++ b/entity/DocumentTemplate_entity/entityfields/documenttemplateid/valueProcess.js @@ -1,7 +1,7 @@ -import("system.util"); -import("system.vars"); -import("system.result"); -import("system.neon"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.util"); +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/entityfields/documenttemplatetypecategory/children/usagefilter_param/valueProcess.js b/entity/DocumentTemplate_entity/entityfields/documenttemplatetypecategory/children/usagefilter_param/valueProcess.js index 362313e65fdfab456319665cf556658958e5b5ab..050147b39d8baca5acddc42294bd3664097d79e8 100644 --- a/entity/DocumentTemplate_entity/entityfields/documenttemplatetypecategory/children/usagefilter_param/valueProcess.js +++ b/entity/DocumentTemplate_entity/entityfields/documenttemplatetypecategory/children/usagefilter_param/valueProcess.js @@ -1,7 +1,7 @@ -import("system.logging"); -import("system.vars"); -import("system.result"); - -logging.log("aufruf"); - +import("system.logging"); +import("system.vars"); +import("system.result"); + +logging.log("aufruf"); + result.object(vars.get("$field.TYPE")); \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/entityfields/keyworddocumenttemplatetype/children/containername_param/valueProcess.js b/entity/DocumentTemplate_entity/entityfields/keyworddocumenttemplatetype/children/containername_param/valueProcess.js index d01f72a9ca9c8d5200473ded7df761fc013de5fe..f5632ab952642e5153309ca385d45fc66984627a 100644 --- a/entity/DocumentTemplate_entity/entityfields/keyworddocumenttemplatetype/children/containername_param/valueProcess.js +++ b/entity/DocumentTemplate_entity/entityfields/keyworddocumenttemplatetype/children/containername_param/valueProcess.js @@ -1,5 +1,5 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -result.string($KeywordRegistry.documentTemplateType()); +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string($KeywordRegistry.documentTemplateType()); diff --git a/entity/DocumentTemplate_entity/entityfields/type/stateProcess.js b/entity/DocumentTemplate_entity/entityfields/type/stateProcess.js index 49d3d53d991cc1a864d6db072347af1800f035cf..3735d6d4411513b42cb2148c43028f223f3e4a8c 100644 --- a/entity/DocumentTemplate_entity/entityfields/type/stateProcess.js +++ b/entity/DocumentTemplate_entity/entityfields/type/stateProcess.js @@ -1,7 +1,7 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); -if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT) -{ - result.string(neon.COMPONENTSTATE_READONLY); +import("system.result"); +import("system.neon"); +import("system.vars"); +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_EDIT) +{ + result.string(neon.COMPONENTSTATE_READONLY); } \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/entityfields/user_new/valueProcess.js b/entity/DocumentTemplate_entity/entityfields/user_new/valueProcess.js index dda83cfd00e13df5c6da64151f5d1e6d932a681e..ad6636be180fbc3dd74567a8751bc69af1f287ff 100644 --- a/entity/DocumentTemplate_entity/entityfields/user_new/valueProcess.js +++ b/entity/DocumentTemplate_entity/entityfields/user_new/valueProcess.js @@ -1,6 +1,6 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(vars.get("$sys.user")); \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/recordcontainers/db/conditionProcess.js b/entity/DocumentTemplate_entity/recordcontainers/db/conditionProcess.js index 98f1298fa355374b4ce435e8cb69f792a19228e1..8d6aafedbb0d42f6d6510d799470bc9a2bab2885 100644 --- a/entity/DocumentTemplate_entity/recordcontainers/db/conditionProcess.js +++ b/entity/DocumentTemplate_entity/recordcontainers/db/conditionProcess.js @@ -1,10 +1,10 @@ -import("system.result"); -import("system.vars"); -import("system.db"); -import("Sql_lib"); - -var cond = SqlCondition.begin() - .andPrepareVars("DOCUMENTTEMPLATE.TYPE", "$param.DocumentTemplateType_param") - .andPrepareVars("DOCUMENTTEMPLATE.CLASSIFICATION", "$param.DocumentTemplateTypeClassification_param"); - +import("system.result"); +import("system.vars"); +import("system.db"); +import("Sql_lib"); + +var cond = SqlCondition.begin() + .andPrepareVars("DOCUMENTTEMPLATE.TYPE", "$param.DocumentTemplateType_param") + .andPrepareVars("DOCUMENTTEMPLATE.CLASSIFICATION", "$param.DocumentTemplateTypeClassification_param"); + result.string(db.translateStatement(cond.build("1=1"))); \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/recordcontainers/db/onDBUpdate.js b/entity/DocumentTemplate_entity/recordcontainers/db/onDBUpdate.js index 429cc8a2e1cdf354250f0753f78fde2b58f6810a..6f1b4b78d0896454293828f1250160c9261cfa7e 100644 --- a/entity/DocumentTemplate_entity/recordcontainers/db/onDBUpdate.js +++ b/entity/DocumentTemplate_entity/recordcontainers/db/onDBUpdate.js @@ -1,32 +1,32 @@ -import("system.util"); -import("system.vars"); -import("system.db"); -import("Document_lib"); - -//TODO - Function - -var bindataUpload = DocumentUtil.getBindataFromUpload(vars.get("$field.BINDATA")); -var filename = ""; -var bindata = ""; - -if(bindataUpload != "") -{ - bindata = bindataUpload; - filename = DocumentUtil.getFilenameFromUpload(vars.get("$field.BINDATA")); -} -else if(vars.get("$field.TYPE").trim() == "MAI" && vars.get("$field.htmlText") != "") -{ - filename = vars.get("$field.NAME") + ".html"; - bindata = util.encodeBase64String(vars.get("$field.htmlText")); -} -else if(vars.get("$field.TYPE").trim() == "TEX" && vars.get("$field.texText") != "") -{ - filename = vars.get("$field.NAME") + ".txt"; - bindata = util.encodeBase64String(vars.get("$field.texText")); -} - -if(bindata != "" && filename != "") -{ - var binaryId = db.cell("select ID from ASYS_BINARIES where ROW_ID = '" + vars.get("$field.DOCUMENTTEMPLATEID") + "'", "_____SYSTEMALIAS"); - db.updateBinary(binaryId, "", bindata, filename, "", "", "_____SYSTEMALIAS"); +import("system.util"); +import("system.vars"); +import("system.db"); +import("Document_lib"); + +//TODO - Function + +var bindataUpload = DocumentUtil.getBindataFromUpload(vars.get("$field.BINDATA")); +var filename = ""; +var bindata = ""; + +if(bindataUpload != "") +{ + bindata = bindataUpload; + filename = DocumentUtil.getFilenameFromUpload(vars.get("$field.BINDATA")); +} +else if(vars.get("$field.TYPE").trim() == "MAI" && vars.get("$field.htmlText") != "") +{ + filename = vars.get("$field.NAME") + ".html"; + bindata = util.encodeBase64String(vars.get("$field.htmlText")); +} +else if(vars.get("$field.TYPE").trim() == "TEX" && vars.get("$field.texText") != "") +{ + filename = vars.get("$field.NAME") + ".txt"; + bindata = util.encodeBase64String(vars.get("$field.texText")); +} + +if(bindata != "" && filename != "") +{ + var binaryId = db.cell("select ID from ASYS_BINARIES where ROW_ID = '" + vars.get("$field.DOCUMENTTEMPLATEID") + "'", "_____SYSTEMALIAS"); + db.updateBinary(binaryId, "", bindata, filename, "", "", "_____SYSTEMALIAS"); } \ No newline at end of file diff --git a/entity/DocumentTemplate_entity/titleProcess.js b/entity/DocumentTemplate_entity/titleProcess.js index 50558aa1c66aa3d4589060db47e5ab49a46eadbd..e7185d981056a9950a37b0cce1f2ef04a40f94c6 100644 --- a/entity/DocumentTemplate_entity/titleProcess.js +++ b/entity/DocumentTemplate_entity/titleProcess.js @@ -1,5 +1,5 @@ -import("system.vars"); -import("system.translate"); -import("system.result"); - -result.string(translate.text(vars.get("$field.NAME"))); +import("system.vars"); +import("system.translate"); +import("system.result"); + +result.string(translate.text(vars.get("$field.NAME"))); diff --git a/entity/Document_entity/entityfields/documents/children/assignmentname_param/valueProcess.js b/entity/Document_entity/entityfields/documents/children/assignmentname_param/valueProcess.js index 3e4bf7585b2ca4628118e46818683fc51bfcf1c5..f002ad73ad354a03117ff02c9f303e30b7fa453f 100644 --- a/entity/Document_entity/entityfields/documents/children/assignmentname_param/valueProcess.js +++ b/entity/Document_entity/entityfields/documents/children/assignmentname_param/valueProcess.js @@ -1,3 +1,3 @@ -import("system.result"); - +import("system.result"); + result.string("DOCUMENT"); \ No newline at end of file diff --git a/entity/Document_entity/entityfields/downloadsinglefileaction/onActionProcess.js b/entity/Document_entity/entityfields/downloadsinglefileaction/onActionProcess.js index a09e33e8f53dbe4fa9bf5ffa49f2eccaeec439dd..cb680339a304a772903d66b521a97809f90288f2 100644 --- a/entity/Document_entity/entityfields/downloadsinglefileaction/onActionProcess.js +++ b/entity/Document_entity/entityfields/downloadsinglefileaction/onActionProcess.js @@ -1,2 +1,2 @@ -import("Document_lib"); -DocumentUtil.downloadSelectedDocuments(); +import("Document_lib"); +DocumentUtil.downloadSelectedDocuments(); diff --git a/entity/Document_entity/entityfields/is_main_document/dropDownProcess.js b/entity/Document_entity/entityfields/is_main_document/dropDownProcess.js index b88d5392d1a40aa827f90e9dfcdd26303c4b1baa..1324968dfff10e56efe6268f8520572d56f21d1b 100644 --- a/entity/Document_entity/entityfields/is_main_document/dropDownProcess.js +++ b/entity/Document_entity/entityfields/is_main_document/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object([ - ["1", translate.text("Yes")] - ,["0", translate.text("No")] +import("system.translate"); +import("system.result"); + +result.object([ + ["1", translate.text("Yes")] + ,["0", translate.text("No")] ]); \ No newline at end of file diff --git a/entity/Document_entity/entityfields/maindocuments/children/assignmentname_param/valueProcess.js b/entity/Document_entity/entityfields/maindocuments/children/assignmentname_param/valueProcess.js index 3e4bf7585b2ca4628118e46818683fc51bfcf1c5..f002ad73ad354a03117ff02c9f303e30b7fa453f 100644 --- a/entity/Document_entity/entityfields/maindocuments/children/assignmentname_param/valueProcess.js +++ b/entity/Document_entity/entityfields/maindocuments/children/assignmentname_param/valueProcess.js @@ -1,3 +1,3 @@ -import("system.result"); - +import("system.result"); + result.string("DOCUMENT"); \ No newline at end of file diff --git a/entity/EmployeeRole_entity/entityfields/role/dropDownProcess.js b/entity/EmployeeRole_entity/entityfields/role/dropDownProcess.js index a5239bc7f631e7132c4133d2d882c1f2428dc2a4..e52145c8011337d56bd0cd3a5e9eea62f3562493 100644 --- a/entity/EmployeeRole_entity/entityfields/role/dropDownProcess.js +++ b/entity/EmployeeRole_entity/entityfields/role/dropDownProcess.js @@ -1,27 +1,27 @@ -import("system.translate"); -import("system.vars"); -import("system.result"); -import("system.tools"); - -var selectedRole = vars.get("$field.ROLE"); -var roles = []; -var allRoles = tools.getAllRoles([tools.ROLE_INTERNAL, tools.ROLE_PROJECT, tools.ROLE_XMPP]); -var excludeRoles = { - "INTERNAL_GROUPWARE" : true, - "INTERNAL_SNMP" : true, - "INTERNAL_DESIGNER" : true, - "INTERNAL_TECHNICAL" : true -}; - -if (tools.existUsers(vars.get("$param.UserTitle_param"))) -{ - var userRoles = tools.getRoles(vars.get("$param.UserTitle_param")); - for (let i in userRoles) - excludeRoles[userRoles[i]] = true; -} - -for (let roleId in allRoles) - if (!excludeRoles[roleId] || roleId == selectedRole) - roles.push([roleId, translate.text(allRoles[roleId][0])]); - +import("system.translate"); +import("system.vars"); +import("system.result"); +import("system.tools"); + +var selectedRole = vars.get("$field.ROLE"); +var roles = []; +var allRoles = tools.getAllRoles([tools.ROLE_INTERNAL, tools.ROLE_PROJECT, tools.ROLE_XMPP]); +var excludeRoles = { + "INTERNAL_GROUPWARE" : true, + "INTERNAL_SNMP" : true, + "INTERNAL_DESIGNER" : true, + "INTERNAL_TECHNICAL" : true +}; + +if (tools.existUsers(vars.get("$param.UserTitle_param"))) +{ + var userRoles = tools.getRoles(vars.get("$param.UserTitle_param")); + for (let i in userRoles) + excludeRoles[userRoles[i]] = true; +} + +for (let roleId in allRoles) + if (!excludeRoles[roleId] || roleId == selectedRole) + roles.push([roleId, translate.text(allRoles[roleId][0])]); + result.object(roles); \ No newline at end of file diff --git a/entity/EmployeeRole_entity/recordcontainers/jdito/onInsert.js b/entity/EmployeeRole_entity/recordcontainers/jdito/onInsert.js index 5286ead89b8157c574973a93fd3f38f79c81568d..858533482982aa254802ba5f033ff5f098b0ca5f 100644 --- a/entity/EmployeeRole_entity/recordcontainers/jdito/onInsert.js +++ b/entity/EmployeeRole_entity/recordcontainers/jdito/onInsert.js @@ -1,23 +1,23 @@ -import("system.result"); -import("system.vars"); -import("system.tools"); - -var userTitle = vars.exists("$param.UserTitle_param") && vars.get("$param.UserTitle_param"); -var role = vars.get("$field.ROLE"); - -if (userTitle && tools.existUsers(userTitle)) -{ - var user = tools.getUser(userTitle); - var roles = tools.getRoles(userTitle); - var roleObj = {}; - roles = [role].concat(roles) - .filter(function (role) - { - var exists = role in roleObj; - roleObj[role] = true; - return !exists; - }); - user[tools.ROLES] = roles; - - tools.updateUser(user); +import("system.result"); +import("system.vars"); +import("system.tools"); + +var userTitle = vars.exists("$param.UserTitle_param") && vars.get("$param.UserTitle_param"); +var role = vars.get("$field.ROLE"); + +if (userTitle && tools.existUsers(userTitle)) +{ + var user = tools.getUser(userTitle); + var roles = tools.getRoles(userTitle); + var roleObj = {}; + roles = [role].concat(roles) + .filter(function (role) + { + var exists = role in roleObj; + roleObj[role] = true; + return !exists; + }); + user[tools.ROLES] = roles; + + tools.updateUser(user); } \ No newline at end of file diff --git a/entity/Employee_entity/Employee_entity.aod b/entity/Employee_entity/Employee_entity.aod index 84dfd7afd61de055e61fb858231381fed435c3d9..9dcc179921c139373348914c015f9883c2f82380 100644 --- a/entity/Employee_entity/Employee_entity.aod +++ b/entity/Employee_entity/Employee_entity.aod @@ -276,6 +276,7 @@ <jDitoRecordContainer> <name>jdito</name> <jDitoRecordAlias>Data_alias</jDitoRecordAlias> + <isFilterable v="true" /> <contentProcess>%aditoprj%/entity/Employee_entity/recordcontainers/jdito/contentProcess.js</contentProcess> <onInsert>%aditoprj%/entity/Employee_entity/recordcontainers/jdito/onInsert.js</onInsert> <onUpdate>%aditoprj%/entity/Employee_entity/recordcontainers/jdito/onUpdate.js</onUpdate> diff --git a/entity/Employee_entity/afterUiInit.js b/entity/Employee_entity/afterUiInit.js index 031b635db2bf916a03eda91e8db23dc6c8bb5d35..40048a413712450e39dc819e7142ed9b2a48d820 100644 --- a/entity/Employee_entity/afterUiInit.js +++ b/entity/Employee_entity/afterUiInit.js @@ -1,9 +1,9 @@ -import("system.neon"); -import("system.vars"); -import("Context_lib"); -import("Attribute_lib"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); -} +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Employee_entity/contentTitleProcess.js b/entity/Employee_entity/contentTitleProcess.js index cfe8dbda0147ed4ce85bc5394e118459edb315d1..2cb5fabc5425ebd133fdb7348d64547af9480c7b 100644 --- a/entity/Employee_entity/contentTitleProcess.js +++ b/entity/Employee_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string((vars.get("$field.FIRSTNAME") + " " + vars.get("$field.LASTNAME")).trim()); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/Employee_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js index 21dc251f63b3ae3e77d8bcdd3a36b384f7f6e6d3..f4d7eb4900a127dd45ad283f2d900f2b758fedbb 100644 --- a/entity/Employee_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js +++ b/entity/Employee_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js @@ -1,5 +1,5 @@ -import("Employee_lib"); -import("system.vars"); -import("system.result"); - +import("Employee_lib"); +import("system.vars"); +import("system.result"); + result.string(EmployeeUtils.sliceUserId(vars.get("$field.UID"))); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js b/entity/Employee_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js index 21dc251f63b3ae3e77d8bcdd3a36b384f7f6e6d3..f4d7eb4900a127dd45ad283f2d900f2b758fedbb 100644 --- a/entity/Employee_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js +++ b/entity/Employee_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js @@ -1,5 +1,5 @@ -import("Employee_lib"); -import("system.vars"); -import("system.result"); - +import("Employee_lib"); +import("system.vars"); +import("system.result"); + result.string(EmployeeUtils.sliceUserId(vars.get("$field.UID"))); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/contact_id/onValidation.js b/entity/Employee_entity/entityfields/contact_id/onValidation.js index e061f78317ebce5e121c09b11c3eda7a53e6db39..85570ffd23ebfe46de48db2edea248890a037a79 100644 --- a/entity/Employee_entity/entityfields/contact_id/onValidation.js +++ b/entity/Employee_entity/entityfields/contact_id/onValidation.js @@ -1,12 +1,12 @@ -import("system.result"); -import("system.vars"); -import("system.tools"); -import("system.translate"); - -var contactId = vars.get("$field.CONTACT_ID"); -var isTaken = tools.getUserByAttribute(tools.CONTACTID, [contactId]); -isTaken = isTaken - ? isTaken[tools.NAME] != vars.get("$field.UID") - : false; -if (contactId && isTaken) +import("system.result"); +import("system.vars"); +import("system.tools"); +import("system.translate"); + +var contactId = vars.get("$field.CONTACT_ID"); +var isTaken = tools.getUserByAttribute(tools.CONTACTID, [contactId]); +isTaken = isTaken + ? isTaken[tools.NAME] != vars.get("$field.UID") + : false; +if (contactId && isTaken) result.string(translate.text("The person is already associated with another employee!")); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/department/displayValueProcess.js b/entity/Employee_entity/entityfields/department/displayValueProcess.js index 30234aac2753fd812e7778c6c9977e2fb25d0f72..054924b0a34bb4c52b0b3ffe2648ecfedb2aedf7 100644 --- a/entity/Employee_entity/entityfields/department/displayValueProcess.js +++ b/entity/Employee_entity/entityfields/department/displayValueProcess.js @@ -1,5 +1,5 @@ -import("system.result"); -import("system.vars"); -import("Attribute_lib"); - +import("system.result"); +import("system.vars"); +import("Attribute_lib"); + result.string(AttributeUtil.getFullAttributeName(vars.get("$field.DEPARTMENT"))); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/departments/children/attrparentid_param/valueProcess.js b/entity/Employee_entity/entityfields/departments/children/attrparentid_param/valueProcess.js index 69955f29620ecadd6e6b02b1a8029c3eec423f3b..69d5189f033b57b9df7bc2b150851c4785abfeee 100644 --- a/entity/Employee_entity/entityfields/departments/children/attrparentid_param/valueProcess.js +++ b/entity/Employee_entity/entityfields/departments/children/attrparentid_param/valueProcess.js @@ -1,2 +1,2 @@ -import("system.result"); +import("system.result"); result.string("87d4ff5b-0ab6-4534-be26-76c6ef486072"); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/departments/children/attrparenttype_param/valueProcess.js b/entity/Employee_entity/entityfields/departments/children/attrparenttype_param/valueProcess.js index 2a8c15df42a4200e8e35bd2f54a0e4dd4b63a127..67a485769c386a03ada03f1ecb2c774b87fcd091 100644 --- a/entity/Employee_entity/entityfields/departments/children/attrparenttype_param/valueProcess.js +++ b/entity/Employee_entity/entityfields/departments/children/attrparenttype_param/valueProcess.js @@ -1,3 +1,3 @@ -import("system.result"); -import("Attribute_lib"); +import("system.result"); +import("Attribute_lib"); result.string($AttributeTypes.VOID); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js b/entity/Employee_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js index 21dc251f63b3ae3e77d8bcdd3a36b384f7f6e6d3..f4d7eb4900a127dd45ad283f2d900f2b758fedbb 100644 --- a/entity/Employee_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js +++ b/entity/Employee_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js @@ -1,5 +1,5 @@ -import("Employee_lib"); -import("system.vars"); -import("system.result"); - +import("Employee_lib"); +import("system.vars"); +import("system.result"); + result.string(EmployeeUtils.sliceUserId(vars.get("$field.UID"))); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/email_address/dropDownProcess.js b/entity/Employee_entity/entityfields/email_address/dropDownProcess.js index 86e13a471ac3d9d215b44bac65e2b56db437509e..da419b6e5ea563cb1659058ed6999d65218ce082 100644 --- a/entity/Employee_entity/entityfields/email_address/dropDownProcess.js +++ b/entity/Employee_entity/entityfields/email_address/dropDownProcess.js @@ -1,26 +1,26 @@ -import("Communication_lib"); -import("system.neon"); -import("system.vars"); -import("system.db"); -import("system.result"); -import("Sql_lib"); - -var contactId = vars.get("$field.CONTACT_ID"); -if (contactId) -{ - var sql = SqlCondition.begin() - .andPrepare("COMMUNICATION.CONTACT_ID", contactId) - .and("COMMUNICATION.MEDIUM_ID in ('" + CommUtil.getMediumIdsByCategory("EMAIL").join("', '") + "')") - .buildSql("select ADDR, ADDR from COMMUNICATION"); - - var addresses = db.table(sql); - - //include the currently set email address - var currentAddress = vars.get("$field.EMAIL_ADDRESS"); - if (currentAddress && !addresses.some(function (row) {return row[0] == currentAddress;})) - { - addresses.push([currentAddress, currentAddress]); - } - - result.object(addresses); +import("Communication_lib"); +import("system.neon"); +import("system.vars"); +import("system.db"); +import("system.result"); +import("Sql_lib"); + +var contactId = vars.get("$field.CONTACT_ID"); +if (contactId) +{ + var sql = SqlCondition.begin() + .andPrepare("COMMUNICATION.CONTACT_ID", contactId) + .and("COMMUNICATION.MEDIUM_ID in ('" + CommUtil.getMediumIdsByCategory("EMAIL").join("', '") + "')") + .buildSql("select ADDR, ADDR from COMMUNICATION"); + + var addresses = db.table(sql); + + //include the currently set email address + var currentAddress = vars.get("$field.EMAIL_ADDRESS"); + if (currentAddress && !addresses.some(function (row) {return row[0] == currentAddress;})) + { + addresses.push([currentAddress, currentAddress]); + } + + result.object(addresses); } \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/email_address/onValidation.js b/entity/Employee_entity/entityfields/email_address/onValidation.js index bab7f655340a24e0b80308afb856dca0e41762da..764555dd20f91fd2aa2ffe24759cc4e9ae954a30 100644 --- a/entity/Employee_entity/entityfields/email_address/onValidation.js +++ b/entity/Employee_entity/entityfields/email_address/onValidation.js @@ -1,13 +1,13 @@ -import("Entity_lib"); -import("system.result"); -import("system.vars"); -import("system.tools"); -import("system.translate"); - -var email = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.EMAIL_ADDRESS")); -var isTaken = tools.getUserByAttribute(tools.EMAIL, [email]); -isTaken = isTaken - ? isTaken[tools.NAME] != vars.get("$field.UID") - : false; -if (email && isTaken) +import("Entity_lib"); +import("system.result"); +import("system.vars"); +import("system.tools"); +import("system.translate"); + +var email = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.EMAIL_ADDRESS")); +var isTaken = tools.getUserByAttribute(tools.EMAIL, [email]); +isTaken = isTaken + ? isTaken[tools.NAME] != vars.get("$field.UID") + : false; +if (email && isTaken) result.string(translate.text("Email must be unique!")); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/employeeroles/children/usertitle_param/valueProcess.js b/entity/Employee_entity/entityfields/employeeroles/children/usertitle_param/valueProcess.js index 94f61859cc64100bb6a6dcd445efc67835002c1a..8277e40dbed6182072da25bc84dd18666f3f9b86 100644 --- a/entity/Employee_entity/entityfields/employeeroles/children/usertitle_param/valueProcess.js +++ b/entity/Employee_entity/entityfields/employeeroles/children/usertitle_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.TITLE")); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/isactive/dropDownProcess.js b/entity/Employee_entity/entityfields/isactive/dropDownProcess.js index 2ce6bd157cf099c253f6dcac83d83af8a1f08720..7ae1ab2b4f2ce2228273b9c5a937ebf89b3631dd 100644 --- a/entity/Employee_entity/entityfields/isactive/dropDownProcess.js +++ b/entity/Employee_entity/entityfields/isactive/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object({ - "true" : translate.text("Yes"), - "false" : translate.text("No") +import("system.translate"); +import("system.result"); + +result.object({ + "true" : translate.text("Yes"), + "false" : translate.text("No") }); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/title/onValidation.js b/entity/Employee_entity/entityfields/title/onValidation.js index 98e95a5e362e36df26315c31b2bb5325011a9937..c2f5d678bf70ff8cd9f8b9ae68c94ea9eef3dfe3 100644 --- a/entity/Employee_entity/entityfields/title/onValidation.js +++ b/entity/Employee_entity/entityfields/title/onValidation.js @@ -1,17 +1,17 @@ -import("system.translate"); -import("system.neon"); -import("system.result"); -import("system.vars"); -import("system.tools"); -import("Entity_lib"); - -var title = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.TITLE")); -var isOldTitle = false; -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) -{ - let oldTitle = tools.getUserByAttribute(tools.NAME, [vars.get("$field.UID")], tools.PROFILE_TITLE); - oldTitle = oldTitle && oldTitle[tools.TITLE]; - isOldTitle = title == oldTitle; -} -if (!isOldTitle && title != "" && tools.existUsers(title)) +import("system.translate"); +import("system.neon"); +import("system.result"); +import("system.vars"); +import("system.tools"); +import("Entity_lib"); + +var title = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.TITLE")); +var isOldTitle = false; +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) +{ + let oldTitle = tools.getUserByAttribute(tools.NAME, [vars.get("$field.UID")], tools.PROFILE_TITLE); + oldTitle = oldTitle && oldTitle[tools.TITLE]; + isOldTitle = title == oldTitle; +} +if (!isOldTitle && title != "" && tools.existUsers(title)) result.string(translate.text("Username already exists!")); \ No newline at end of file diff --git a/entity/Employee_entity/entityfields/uid/valueProcess.js b/entity/Employee_entity/entityfields/uid/valueProcess.js index a0af11c4780ff9d1d8bdcc3379b24b22681a8e14..31fc7e8b416b12880ccd68363ce8a188f9bc158f 100644 --- a/entity/Employee_entity/entityfields/uid/valueProcess.js +++ b/entity/Employee_entity/entityfields/uid/valueProcess.js @@ -1,7 +1,7 @@ -import("system.tools"); -import("system.neon"); -import("system.vars"); -import("system.result"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +import("system.tools"); +import("system.neon"); +import("system.vars"); +import("system.result"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) result.string(tools.generateNewUserName()); \ No newline at end of file diff --git a/entity/Employee_entity/recordcontainers/jdito/contentProcess.js b/entity/Employee_entity/recordcontainers/jdito/contentProcess.js index 363e27ae998d795abfb0bbc1863f2e0f231a21a8..64059e4ae143647ad013d5580caabade0125f502 100644 --- a/entity/Employee_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Employee_entity/recordcontainers/jdito/contentProcess.js @@ -35,7 +35,7 @@ users = users.map(function (user) ]; }); -var filter = vars.exists("$local.filter") && vars.get("$local.filter"); +var filter = vars.exists("$local.userfilter") && vars.get("$local.userfilter"); //TODO: this is a workaround that filters the records manually, it should be possible to filter the users with a tools.* method users = JditoFilterUtils.filterRecords(["UID", "TITLE", "ISACTIVE", "FIRSTNAME", "LASTNAME", "EMAIL_ADDRESS", "", "DESCRIPTION", "CONTACT_ID", "", "DEPARTMENT"], users, filter); diff --git a/entity/Employee_entity/recordcontainers/jdito/onInsert.js b/entity/Employee_entity/recordcontainers/jdito/onInsert.js index 550621cd85e24e75075260e194d2011feb3c1487..8902b43befdc346b3e1e5d8595b3861c3bd82147 100644 --- a/entity/Employee_entity/recordcontainers/jdito/onInsert.js +++ b/entity/Employee_entity/recordcontainers/jdito/onInsert.js @@ -1,24 +1,24 @@ -import("system.neon"); -import("system.vars"); -import("system.tools"); -import("Employee_lib"); - -var user = {}; -var params = []; //this has to be an array -params[tools.FIRSTNAME] = vars.get("$field.FIRSTNAME"); -params[tools.LASTNAME] = vars.get("$field.LASTNAME"); -params[tools.EMAIL] = vars.get("$field.EMAIL_ADDRESS"); -params[tools.CALENDARID] = vars.get("$field.EMAIL_ADDRESS"); -params[tools.CONTACTID] = vars.get("$field.CONTACT_ID"); -params[tools.DESCRIPTION] = vars.get("$field.DESCRIPTION"); -params[tools.ISACTIVE] = vars.get("$field.ISACTIVE"); -params.department = vars.get("$field.DEPARTMENT"); - -user[tools.TITLE] = vars.get("$field.TITLE"); -user[tools.PARAMS] = params; - -if (vars.get("$field.PASSWORD") && vars.get("$field.PASSWORD") == vars.get("$field.CONFIRM_PASSWORD")) -{ - user[tools.PASSWORD] = vars.getString("$field.PASSWORD"); -} +import("system.neon"); +import("system.vars"); +import("system.tools"); +import("Employee_lib"); + +var user = {}; +var params = []; //this has to be an array +params[tools.FIRSTNAME] = vars.get("$field.FIRSTNAME"); +params[tools.LASTNAME] = vars.get("$field.LASTNAME"); +params[tools.EMAIL] = vars.get("$field.EMAIL_ADDRESS"); +params[tools.CALENDARID] = vars.get("$field.EMAIL_ADDRESS"); +params[tools.CONTACTID] = vars.get("$field.CONTACT_ID"); +params[tools.DESCRIPTION] = vars.get("$field.DESCRIPTION"); +params[tools.ISACTIVE] = vars.get("$field.ISACTIVE"); +params.department = vars.get("$field.DEPARTMENT"); + +user[tools.TITLE] = vars.get("$field.TITLE"); +user[tools.PARAMS] = params; + +if (vars.get("$field.PASSWORD") && vars.get("$field.PASSWORD") == vars.get("$field.CONFIRM_PASSWORD")) +{ + user[tools.PASSWORD] = vars.getString("$field.PASSWORD"); +} tools.insertUser(user, vars.get("$field.UID")); \ No newline at end of file diff --git a/entity/Employee_entity/recordcontainers/jdito/onUpdate.js b/entity/Employee_entity/recordcontainers/jdito/onUpdate.js index 2eb1cf2e7619e1c305a7f61d232bee85f9b2c8da..6553a5d7c8c9aaa8cafcbb9a44b3c43a3a011f6c 100644 --- a/entity/Employee_entity/recordcontainers/jdito/onUpdate.js +++ b/entity/Employee_entity/recordcontainers/jdito/onUpdate.js @@ -1,38 +1,38 @@ -import("system.db"); -import("system.vars"); -import("system.tools"); -import("Person_lib"); -import("Entity_lib"); - -// TODO: this is a workaround for missing possibility to react on changes of fields not connected to record Contqainer #1030023 -FieldChanges.assimilateChangeAndDispose("$field.IMAGE", function (state, value) -{ - var personId = db.cell(SqlCondition.begin() - .andPrepareVars("CONTACT.CONTACTID", "$field.CONTACT_ID") - .buildSql("select PERSON_ID from CONTACT") - ); - if (state == FieldChanges.STATE_CHANGED()) - PersUtils.setImage(personId, value); - else - PersUtils.removeImage(personId); -}); - -var user = tools.getUserByAttribute(tools.NAME, vars.get("$field.UID")); - -user[tools.TITLE] = vars.get("$field.TITLE"); -user[tools.PARAMS][tools.ISACTIVE] = vars.get("$field.ISACTIVE"); -user[tools.PARAMS][tools.FIRSTNAME] = vars.get("$field.FIRSTNAME"); -user[tools.PARAMS][tools.LASTNAME] = vars.get("$field.LASTNAME"); -user[tools.PARAMS][tools.EMAIL] = vars.get("$field.EMAIL_ADDRESS"); -user[tools.PARAMS][tools.CALENDARID] = vars.get("$field.EMAIL_ADDRESS"); -user[tools.PARAMS][tools.CONTACTID] = vars.get("$field.CONTACT_ID"); -user[tools.PARAMS][tools.DESCRIPTION] = vars.get("$field.DESCRIPTION"); -user[tools.PARAMS].department = vars.get("$field.DEPARTMENT"); - -if (vars.exists("$param.PasswordChange_param") && vars.get("$param.PasswordChange_param") - && vars.get("$field.PASSWORD") == vars.get("$field.CONFIRM_PASSWORD")) -{ - user[tools.PASSWORD] = vars.getString("$field.PASSWORD"); -} - +import("system.db"); +import("system.vars"); +import("system.tools"); +import("Person_lib"); +import("Entity_lib"); + +// TODO: this is a workaround for missing possibility to react on changes of fields not connected to record Contqainer #1030023 +FieldChanges.assimilateChangeAndDispose("$field.IMAGE", function (state, value) +{ + var personId = db.cell(SqlCondition.begin() + .andPrepareVars("CONTACT.CONTACTID", "$field.CONTACT_ID") + .buildSql("select PERSON_ID from CONTACT") + ); + if (state == FieldChanges.STATE_CHANGED()) + PersUtils.setImage(personId, value); + else + PersUtils.removeImage(personId); +}); + +var user = tools.getUserByAttribute(tools.NAME, vars.get("$field.UID")); + +user[tools.TITLE] = vars.get("$field.TITLE"); +user[tools.PARAMS][tools.ISACTIVE] = vars.get("$field.ISACTIVE"); +user[tools.PARAMS][tools.FIRSTNAME] = vars.get("$field.FIRSTNAME"); +user[tools.PARAMS][tools.LASTNAME] = vars.get("$field.LASTNAME"); +user[tools.PARAMS][tools.EMAIL] = vars.get("$field.EMAIL_ADDRESS"); +user[tools.PARAMS][tools.CALENDARID] = vars.get("$field.EMAIL_ADDRESS"); +user[tools.PARAMS][tools.CONTACTID] = vars.get("$field.CONTACT_ID"); +user[tools.PARAMS][tools.DESCRIPTION] = vars.get("$field.DESCRIPTION"); +user[tools.PARAMS].department = vars.get("$field.DEPARTMENT"); + +if (vars.exists("$param.PasswordChange_param") && vars.get("$param.PasswordChange_param") + && vars.get("$field.PASSWORD") == vars.get("$field.CONFIRM_PASSWORD")) +{ + user[tools.PASSWORD] = vars.getString("$field.PASSWORD"); +} + tools.updateUser(user); \ No newline at end of file diff --git a/entity/Gender_keyword/contentTitleProcess.js b/entity/Gender_keyword/contentTitleProcess.js index 63922c5bc87b4a72ed6f772f9247dc47c484366e..1f367b66017160db9cce252da65f484548d633bc 100644 --- a/entity/Gender_keyword/contentTitleProcess.js +++ b/entity/Gender_keyword/contentTitleProcess.js @@ -1,5 +1,5 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); - +import("system.vars"); +import("system.result"); +import("system.neon"); + result.string(vars.getString("$field.VALUE")); \ No newline at end of file diff --git a/entity/KeywordAttribute_entity/contentTitleProcess.js b/entity/KeywordAttribute_entity/contentTitleProcess.js index 28fd67de270b497ba718dd4e91766bd22936f67e..005148ba3525d43af9bb97dda0d07e49a5e8cd88 100644 --- a/entity/KeywordAttribute_entity/contentTitleProcess.js +++ b/entity/KeywordAttribute_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.NAME")); \ No newline at end of file diff --git a/entity/KeywordAttribute_entity/entityfields/container/dropDownProcess.js b/entity/KeywordAttribute_entity/entityfields/container/dropDownProcess.js index 50a930c3f4bcd04477c5c217fe2fb7c26294309e..97ebc5fbaf0bdada4d7571bc882fcdc9fa2d99a5 100644 --- a/entity/KeywordAttribute_entity/entityfields/container/dropDownProcess.js +++ b/entity/KeywordAttribute_entity/entityfields/container/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.result"); -import("Keyword_lib"); - -var res = KeywordUtils.getContainerNames().map(function(e){ - return [e, e];//currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers -}); +import("system.result"); +import("Keyword_lib"); + +var res = KeywordUtils.getContainerNames().map(function(e){ + return [e, e];//currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers +}); result.object(res); \ No newline at end of file diff --git a/entity/KeywordEntry_entity/contentTitleProcess.js b/entity/KeywordEntry_entity/contentTitleProcess.js index a907335e8d11cf3ec8c18651257f5ab8d96a29b9..bc531db79113dcc9bd32bf90b4f9a983768f25a1 100644 --- a/entity/KeywordEntry_entity/contentTitleProcess.js +++ b/entity/KeywordEntry_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.TITLE_TRANSLATED")); \ No newline at end of file diff --git a/entity/KeywordEntry_entity/entityfields/container/dropDownProcess.js b/entity/KeywordEntry_entity/entityfields/container/dropDownProcess.js index 50a930c3f4bcd04477c5c217fe2fb7c26294309e..97ebc5fbaf0bdada4d7571bc882fcdc9fa2d99a5 100644 --- a/entity/KeywordEntry_entity/entityfields/container/dropDownProcess.js +++ b/entity/KeywordEntry_entity/entityfields/container/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.result"); -import("Keyword_lib"); - -var res = KeywordUtils.getContainerNames().map(function(e){ - return [e, e];//currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers -}); +import("system.result"); +import("Keyword_lib"); + +var res = KeywordUtils.getContainerNames().map(function(e){ + return [e, e];//currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers +}); result.object(res); \ No newline at end of file diff --git a/entity/KeywordEntry_entity/entityfields/excludedkeyidssubquery_param/documentation.adoc b/entity/KeywordEntry_entity/entityfields/excludedkeyidssubquery_param/documentation.adoc index 5eb6c62c6b9086cf2b3f9818d2ea97612d585d6f..55fde66fa9fdb8f3dfebb3341ea9f95471189c32 100644 --- a/entity/KeywordEntry_entity/entityfields/excludedkeyidssubquery_param/documentation.adoc +++ b/entity/KeywordEntry_entity/entityfields/excludedkeyidssubquery_param/documentation.adoc @@ -1,2 +1,2 @@ -Can be filled with a subquery-string, which delivers KeyIds to exclude. +Can be filled with a subquery-string, which delivers KeyIds to exclude. The subquery is used insade a "KEYID not in(...)" \ No newline at end of file diff --git a/entity/KeywordEntry_entity/entityfields/isactive/dropDownProcess.js b/entity/KeywordEntry_entity/entityfields/isactive/dropDownProcess.js index e212979b8e77ec7c357dfbc0104882c01fcb7215..89a5a5ca23dcc6e07fca72ddc1ab28514de63d39 100644 --- a/entity/KeywordEntry_entity/entityfields/isactive/dropDownProcess.js +++ b/entity/KeywordEntry_entity/entityfields/isactive/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object([ - ["1", translate.text("Yes")] - ,["0", translate.text("No")] +import("system.translate"); +import("system.result"); + +result.object([ + ["1", translate.text("Yes")] + ,["0", translate.text("No")] ]); \ No newline at end of file diff --git a/entity/KeywordEntry_entity/entityfields/isessential/dropDownProcess.js b/entity/KeywordEntry_entity/entityfields/isessential/dropDownProcess.js index e212979b8e77ec7c357dfbc0104882c01fcb7215..89a5a5ca23dcc6e07fca72ddc1ab28514de63d39 100644 --- a/entity/KeywordEntry_entity/entityfields/isessential/dropDownProcess.js +++ b/entity/KeywordEntry_entity/entityfields/isessential/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object([ - ["1", translate.text("Yes")] - ,["0", translate.text("No")] +import("system.translate"); +import("system.result"); + +result.object([ + ["1", translate.text("Yes")] + ,["0", translate.text("No")] ]); \ No newline at end of file diff --git a/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js b/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js index e027aee8210372b3f4626d5286fc48df714de49c..3556304c4a0eb7ff3ae8f89d2840654fe7902359 100644 --- a/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js +++ b/entity/KeywordEntry_entity/recordcontainers/db/conditionProcess.js @@ -1,18 +1,18 @@ -import("system.logging"); -import("system.vars"); -import("system.db"); -import("system.result"); -import("Sql_lib"); - -var cond = SqlCondition.begin().andPrepareVars("AB_KEYWORD_ENTRY.CONTAINER", "$param.ContainerName_param"); - -if (vars.get("$param.OnlyActives_param") == "true") -{ - cond.andPrepare("AB_KEYWORD_ENTRY.ISACTIVE", "1"); -} - -if (vars.exists("$param.ExcludedKeyIdsSubquery_param") && vars.get("$param.ExcludedKeyIdsSubquery_param")) - cond.and("AB_KEYWORD_ENTRY.KEYID not in (" + vars.get("$param.ExcludedKeyIdsSubquery_param") + ")"); - -var condStr = db.translateCondition(cond.build("1 = 1")); +import("system.logging"); +import("system.vars"); +import("system.db"); +import("system.result"); +import("Sql_lib"); + +var cond = SqlCondition.begin().andPrepareVars("AB_KEYWORD_ENTRY.CONTAINER", "$param.ContainerName_param"); + +if (vars.get("$param.OnlyActives_param") == "true") +{ + cond.andPrepare("AB_KEYWORD_ENTRY.ISACTIVE", "1"); +} + +if (vars.exists("$param.ExcludedKeyIdsSubquery_param") && vars.get("$param.ExcludedKeyIdsSubquery_param")) + cond.and("AB_KEYWORD_ENTRY.KEYID not in (" + vars.get("$param.ExcludedKeyIdsSubquery_param") + ")"); + +var condStr = db.translateCondition(cond.build("1 = 1")); result.string(condStr); \ No newline at end of file diff --git a/entity/Language_entity/contentTitleProcess.js b/entity/Language_entity/contentTitleProcess.js index 0bc07dc560d4fbded80b1ef21c4a4b5ca8bd7767..a8d34966166bd01737ad4154c6b6e119b4873d03 100644 --- a/entity/Language_entity/contentTitleProcess.js +++ b/entity/Language_entity/contentTitleProcess.js @@ -1,7 +1,7 @@ -import("system.result"); -import("system.translate"); -import("system.vars"); - -var latinName = vars.get("$field.NAME_LATIN"); -latinName = translate.text(latinName); +import("system.result"); +import("system.translate"); +import("system.vars"); + +var latinName = vars.get("$field.NAME_LATIN"); +latinName = translate.text(latinName); result.string(latinName); \ No newline at end of file diff --git a/entity/Language_entity/entityfields/isactive/dropDownProcess.js b/entity/Language_entity/entityfields/isactive/dropDownProcess.js index e212979b8e77ec7c357dfbc0104882c01fcb7215..89a5a5ca23dcc6e07fca72ddc1ab28514de63d39 100644 --- a/entity/Language_entity/entityfields/isactive/dropDownProcess.js +++ b/entity/Language_entity/entityfields/isactive/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object([ - ["1", translate.text("Yes")] - ,["0", translate.text("No")] +import("system.translate"); +import("system.result"); + +result.object([ + ["1", translate.text("Yes")] + ,["0", translate.text("No")] ]); \ No newline at end of file diff --git a/entity/LogHistory_entity/entityfields/icon/valueProcess.js b/entity/LogHistory_entity/entityfields/icon/valueProcess.js index 677fa0aa9e6302772450e50b059ae01c359026f8..99ead80ca86db298117227846aab3b893c0a89c6 100644 --- a/entity/LogHistory_entity/entityfields/icon/valueProcess.js +++ b/entity/LogHistory_entity/entityfields/icon/valueProcess.js @@ -1,3 +1,3 @@ -import("system.result"); - +import("system.result"); + result.string("NEON:HISTORY"); \ No newline at end of file diff --git a/entity/LogHistory_entity/imageProcess.js b/entity/LogHistory_entity/imageProcess.js index 610fc40230c25cd0b6dca3b6ffb82580d97f2e4c..1206221d6b2098453563589d3414163150d452e0 100644 --- a/entity/LogHistory_entity/imageProcess.js +++ b/entity/LogHistory_entity/imageProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.getString("$field.ICON")); \ No newline at end of file diff --git a/entity/LogHistory_entity/recordcontainers/jdito/contentProcess.js b/entity/LogHistory_entity/recordcontainers/jdito/contentProcess.js index 523c016b478bd19e674247a3beee6a1ea5298975..73d3aecdffa0a77be4d0e06e20d75ff9899bf602 100644 --- a/entity/LogHistory_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/LogHistory_entity/recordcontainers/jdito/contentProcess.js @@ -31,9 +31,9 @@ var tableNameCond = _getTableNameCondition(); recordCond.andSqlCondition(tableNameCond); //user defined filter -if (vars.exists("$local.filter") && vars.get("$local.filter")) +if (vars.exists("$local.userfilter") && vars.get("$local.userfilter")) { - var filter = vars.get("$local.filter"); + var filter = vars.get("$local.userfilter"); recordCond.andSqlCondition((JditoFilterUtils.getSqlCondition(filter, "AB_LOGHISTORY"))); } diff --git a/entity/Notification_entity/entityfields/creationdate/valueProcess.js b/entity/Notification_entity/entityfields/creationdate/valueProcess.js index 139597f9cb07c5d48bed18984ec4747f4b4f3438..99a8091366e2ac7f301452706d5cfdff5e320a0d 100644 --- a/entity/Notification_entity/entityfields/creationdate/valueProcess.js +++ b/entity/Notification_entity/entityfields/creationdate/valueProcess.js @@ -1,2 +1,2 @@ - - + + diff --git a/entity/Notification_entity/entityfields/icon/valueProcess.js b/entity/Notification_entity/entityfields/icon/valueProcess.js index 42ceb3e11613a838e987a9b09441b3fa952aa307..28c2122fd95b29e93f8f4a6aa1846a5bff8e8bd4 100644 --- a/entity/Notification_entity/entityfields/icon/valueProcess.js +++ b/entity/Notification_entity/entityfields/icon/valueProcess.js @@ -1,10 +1,10 @@ -import("system.logging"); -import("system.vars"); -import("system.result"); -import("system.notification"); - -if(vars.get("$field.TYPECODE")) -{ - var type = notification.getType(vars.get("$field.TYPECODE")); - result.string(type["icon"]); +import("system.logging"); +import("system.vars"); +import("system.result"); +import("system.notification"); + +if(vars.get("$field.TYPECODE")) +{ + var type = notification.getType(vars.get("$field.TYPECODE")); + result.string(type["icon"]); } \ No newline at end of file diff --git a/entity/Notification_entity/entityfields/linkcontext/valueProcess.js b/entity/Notification_entity/entityfields/linkcontext/valueProcess.js index 71498f96ff2cb46740fedae074f4e986d88ce781..3dcc062b9a3b6de7e32e95abdd2d7c078f603673 100644 --- a/entity/Notification_entity/entityfields/linkcontext/valueProcess.js +++ b/entity/Notification_entity/entityfields/linkcontext/valueProcess.js @@ -1,7 +1,7 @@ -import("system.logging"); -import("system.vars"); -import("system.result"); -import("system.text"); - -var context = text.decodeMS(vars.get("$field.LINKINFO"))[0]; +import("system.logging"); +import("system.vars"); +import("system.result"); +import("system.text"); + +var context = text.decodeMS(vars.get("$field.LINKINFO"))[0]; result.string(context); \ No newline at end of file diff --git a/entity/Notification_entity/entityfields/linkid/valueProcess.js b/entity/Notification_entity/entityfields/linkid/valueProcess.js index ed81b20aacd0ecad75448115a86b4845defd114f..29f6561049edd9fc795bdd543574d18034fcfe7f 100644 --- a/entity/Notification_entity/entityfields/linkid/valueProcess.js +++ b/entity/Notification_entity/entityfields/linkid/valueProcess.js @@ -1,7 +1,7 @@ -import("system.logging"); -import("system.vars"); -import("system.result"); -import("system.text"); - -var id = text.decodeMS(vars.get("$field.LINKINFO"))[1]; +import("system.logging"); +import("system.vars"); +import("system.result"); +import("system.text"); + +var id = text.decodeMS(vars.get("$field.LINKINFO"))[1]; result.string(id); \ No newline at end of file diff --git a/entity/Notification_entity/entityfields/state/displayValueProcess.js b/entity/Notification_entity/entityfields/state/displayValueProcess.js index 7e736b667632a0590db5625794ae3d632963be83..49214bff4823c3cf56a345f32ea5a02e30275cb8 100644 --- a/entity/Notification_entity/entityfields/state/displayValueProcess.js +++ b/entity/Notification_entity/entityfields/state/displayValueProcess.js @@ -1,6 +1,6 @@ -import("system.translate"); -import("system.result"); -import("system.vars"); - - +import("system.translate"); +import("system.result"); +import("system.vars"); + + result.string(translate.text(vars.get("$this.value"))); \ No newline at end of file diff --git a/entity/Notification_entity/entityfields/typecode/displayValueProcess.js b/entity/Notification_entity/entityfields/typecode/displayValueProcess.js index 51ef6ebf74100633cdd031a8c82d9f91e7faf599..76e8d769dc2a82a791668c8df8783f1bfee95141 100644 --- a/entity/Notification_entity/entityfields/typecode/displayValueProcess.js +++ b/entity/Notification_entity/entityfields/typecode/displayValueProcess.js @@ -1,28 +1,28 @@ -import("system.result"); -import("system.translate"); -import("system.vars"); - -var PREFIX = "_____SYSTEM_"; -var typecode = vars.get("$field.TYPECODE"); - -switch(typecode) -{ - case PREFIX + "NOTIFICATION_PHONECALL": - result.string(translate.text("Phonecall")); - break; - - case PREFIX + "NOTIFICATION_EMAIL": - result.string(translate.text("Email")); - break; - - case PREFIX + "NOTIFICATION_APPOINTMENT": - result.string(translate.text("Appointment")); - break; - - case PREFIX + "NOTIFICATION_TODO": - result.string(translate.text("Todo")); - break; - - default: - result.string(typecode); +import("system.result"); +import("system.translate"); +import("system.vars"); + +var PREFIX = "_____SYSTEM_"; +var typecode = vars.get("$field.TYPECODE"); + +switch(typecode) +{ + case PREFIX + "NOTIFICATION_PHONECALL": + result.string(translate.text("Phonecall")); + break; + + case PREFIX + "NOTIFICATION_EMAIL": + result.string(translate.text("Email")); + break; + + case PREFIX + "NOTIFICATION_APPOINTMENT": + result.string(translate.text("Appointment")); + break; + + case PREFIX + "NOTIFICATION_TODO": + result.string(translate.text("Todo")); + break; + + default: + result.string(typecode); } \ No newline at end of file diff --git a/entity/Notification_entity/recordcontainers/db/conditionProcess.js b/entity/Notification_entity/recordcontainers/db/conditionProcess.js index 31f26547b3faf99eaa911946fdc2cd184a94f2ad..fcad3c62e555278c407311dbed18f954b85b5182 100644 --- a/entity/Notification_entity/recordcontainers/db/conditionProcess.js +++ b/entity/Notification_entity/recordcontainers/db/conditionProcess.js @@ -1,10 +1,10 @@ -import("system.logging"); -import("system.result"); -import("system.vars"); -import("system.util"); -import("system.tools"); - -var user = tools.getCurrentUser(); -var userid = user["name"]; - +import("system.logging"); +import("system.result"); +import("system.vars"); +import("system.util"); +import("system.tools"); + +var user = tools.getCurrentUser(); +var userid = user["name"]; + result.object("ASYS_NOTIFICATIONS.CONTENTID = ASYS_NOTIFICATIONCONTENTS.CONTENTID and USERID = '" + userid + "'"); \ No newline at end of file diff --git a/entity/Notification_entity/recordcontainers/db/orderClauseProcess.js b/entity/Notification_entity/recordcontainers/db/orderClauseProcess.js index eb0a11a5c9c14b8f6bb5a190072f67c23b064661..15d1007bb140ce734179a58e7bd41488577d72ea 100644 --- a/entity/Notification_entity/recordcontainers/db/orderClauseProcess.js +++ b/entity/Notification_entity/recordcontainers/db/orderClauseProcess.js @@ -1,7 +1,7 @@ -import("system.result"); -import("system.db"); - -result.object({ - "ASYS_NOTIFICATIONS.STATE": db.DESCENDING, - "ASYS_NOTIFICATIONCONTENTS.CREATIONDATE": db.DESCENDING +import("system.result"); +import("system.db"); + +result.object({ + "ASYS_NOTIFICATIONS.STATE": db.DESCENDING, + "ASYS_NOTIFICATIONCONTENTS.CREATIONDATE": db.DESCENDING }); \ No newline at end of file diff --git a/entity/ObjectRelationType_entity/contentTitleProcess.js b/entity/ObjectRelationType_entity/contentTitleProcess.js index dbc0c500302fcbb7dfe706e35445f9f01952daa5..cd7851439d8295db5e24a5bc37568cabe955ece9 100644 --- a/entity/ObjectRelationType_entity/contentTitleProcess.js +++ b/entity/ObjectRelationType_entity/contentTitleProcess.js @@ -1,12 +1,12 @@ -import("system.translate"); -import("system.vars"); -import("system.result"); - -if (vars.exists("$param.OnlyFirstSide_param") && vars.get("$param.OnlyFirstSide_param") == "1" && vars.get("$field.DIRECTION") != "same") -{ - result.string(translate.text(vars.get("$field.SOURCE_RELATION_TITLE")) + " -> " + translate.text(vars.get("$field.DEST_RELATION_TITLE"))); -} -else -{ - result.string(translate.text(vars.get("$field.SOURCE_RELATION_TITLE"))); +import("system.translate"); +import("system.vars"); +import("system.result"); + +if (vars.exists("$param.OnlyFirstSide_param") && vars.get("$param.OnlyFirstSide_param") == "1" && vars.get("$field.DIRECTION") != "same") +{ + result.string(translate.text(vars.get("$field.SOURCE_RELATION_TITLE")) + " -> " + translate.text(vars.get("$field.DEST_RELATION_TITLE"))); +} +else +{ + result.string(translate.text(vars.get("$field.SOURCE_RELATION_TITLE"))); } \ No newline at end of file diff --git a/entity/ObjectRelationType_entity/entityfields/hierarchy/dropDownProcess.js b/entity/ObjectRelationType_entity/entityfields/hierarchy/dropDownProcess.js index b88d5392d1a40aa827f90e9dfcdd26303c4b1baa..1324968dfff10e56efe6268f8520572d56f21d1b 100644 --- a/entity/ObjectRelationType_entity/entityfields/hierarchy/dropDownProcess.js +++ b/entity/ObjectRelationType_entity/entityfields/hierarchy/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object([ - ["1", translate.text("Yes")] - ,["0", translate.text("No")] +import("system.translate"); +import("system.result"); + +result.object([ + ["1", translate.text("Yes")] + ,["0", translate.text("No")] ]); \ No newline at end of file diff --git a/entity/ObjectRelationType_entity/entityfields/type2enabled_proxy/dropDownProcess.js b/entity/ObjectRelationType_entity/entityfields/type2enabled_proxy/dropDownProcess.js index b88d5392d1a40aa827f90e9dfcdd26303c4b1baa..1324968dfff10e56efe6268f8520572d56f21d1b 100644 --- a/entity/ObjectRelationType_entity/entityfields/type2enabled_proxy/dropDownProcess.js +++ b/entity/ObjectRelationType_entity/entityfields/type2enabled_proxy/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object([ - ["1", translate.text("Yes")] - ,["0", translate.text("No")] +import("system.translate"); +import("system.result"); + +result.object([ + ["1", translate.text("Yes")] + ,["0", translate.text("No")] ]); \ No newline at end of file diff --git a/entity/ObjectTree_entity/entityfields/target_id/linkedContextProcess.js b/entity/ObjectTree_entity/entityfields/target_id/linkedContextProcess.js index 215d53285d594413acd924470d6bfd2d8e735ee8..8f812cd90b8b6be781c68688717578eb0399d5d8 100644 --- a/entity/ObjectTree_entity/entityfields/target_id/linkedContextProcess.js +++ b/entity/ObjectTree_entity/entityfields/target_id/linkedContextProcess.js @@ -1,8 +1,8 @@ -import("system.vars"); -import("system.result"); -import("Context_lib"); - -if (vars.get("$field.TARGET_CONTEXT")) -{ - result.string(ContextUtils.getContextName(vars.get("$field.TARGET_CONTEXT"))); +import("system.vars"); +import("system.result"); +import("Context_lib"); + +if (vars.get("$field.TARGET_CONTEXT")) +{ + result.string(ContextUtils.getContextName(vars.get("$field.TARGET_CONTEXT"))); } \ No newline at end of file diff --git a/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js b/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js index ede1d023d2d8dfb3229471990bf55e0de4d7f78f..d94c0ac96e703f7a0495ba13066eac844918954a 100644 --- a/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js @@ -33,7 +33,7 @@ if (uidParam) } else { - var filter = vars.get("$local.filter") + var filter = vars.get("$local.userfilter") var selectedRelationType = null; if (filter) diff --git a/entity/Object_entity/contentTitleProcess.js b/entity/Object_entity/contentTitleProcess.js index db324a8efc44accafcbb2c0dcb4c18ce7f4846ad..cd548a0e6c2b2faa1d150c4aa79fd724ed22f7ad 100644 --- a/entity/Object_entity/contentTitleProcess.js +++ b/entity/Object_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.TITLE")) \ No newline at end of file diff --git a/entity/Object_entity/entityfields/allobjects/targetConsumerProcess.js b/entity/Object_entity/entityfields/allobjects/targetConsumerProcess.js index 8ba22ed45d1674ebb7da780fa596b38df518d035..905a269297630a92ed1063402ffd941baa2ddd56 100644 --- a/entity/Object_entity/entityfields/allobjects/targetConsumerProcess.js +++ b/entity/Object_entity/entityfields/allobjects/targetConsumerProcess.js @@ -1,10 +1,10 @@ -import("system.vars"); -import("system.result"); -import("Context_lib"); - -if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param")) -{ - var consumer = ContextUtils.getContextConsumer(vars.get("$param.ObjectType_param")); - if (consumer) - result.string(consumer); +import("system.vars"); +import("system.result"); +import("Context_lib"); + +if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param")) +{ + var consumer = ContextUtils.getContextConsumer(vars.get("$param.ObjectType_param")); + if (consumer) + result.string(consumer); } \ No newline at end of file diff --git a/entity/Object_entity/entityfields/filteredobjects/targetConsumerProcess.js b/entity/Object_entity/entityfields/filteredobjects/targetConsumerProcess.js index 8ba22ed45d1674ebb7da780fa596b38df518d035..905a269297630a92ed1063402ffd941baa2ddd56 100644 --- a/entity/Object_entity/entityfields/filteredobjects/targetConsumerProcess.js +++ b/entity/Object_entity/entityfields/filteredobjects/targetConsumerProcess.js @@ -1,10 +1,10 @@ -import("system.vars"); -import("system.result"); -import("Context_lib"); - -if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param")) -{ - var consumer = ContextUtils.getContextConsumer(vars.get("$param.ObjectType_param")); - if (consumer) - result.string(consumer); +import("system.vars"); +import("system.result"); +import("Context_lib"); + +if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param")) +{ + var consumer = ContextUtils.getContextConsumer(vars.get("$param.ObjectType_param")); + if (consumer) + result.string(consumer); } \ No newline at end of file diff --git a/entity/Offer_entity/afterUiInit.js b/entity/Offer_entity/afterUiInit.js index ac1ce38fae75b5e38fc7043f5710ce3fd07ce7be..e30b0b283b229b405cc9ac5bcedcecbfd38128d9 100644 --- a/entity/Offer_entity/afterUiInit.js +++ b/entity/Offer_entity/afterUiInit.js @@ -1,9 +1,9 @@ -import("system.neon"); -import("system.vars"); -import("Context_lib"); -import("Attribute_lib"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); -} +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Offer_entity/entityfields/documenttemplatetex/children/documenttemplatetype_param/valueProcess.js b/entity/Offer_entity/entityfields/documenttemplatetex/children/documenttemplatetype_param/valueProcess.js index 90d0786d0d58c1664a2c481e5583a260dd7da783..361c9a219045f0f73c9d32749357157e8501d650 100644 --- a/entity/Offer_entity/entityfields/documenttemplatetex/children/documenttemplatetype_param/valueProcess.js +++ b/entity/Offer_entity/entityfields/documenttemplatetex/children/documenttemplatetype_param/valueProcess.js @@ -1,2 +1,2 @@ -import("system.result"); +import("system.result"); result.string("TEX"); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/documenttemplatetex/children/documenttemplatetypeclassification_param/valueProcess.js b/entity/Offer_entity/entityfields/documenttemplatetex/children/documenttemplatetypeclassification_param/valueProcess.js index 9738198122152a6fbabc4dd57c08ec73cb8b6e39..914d4b9ca3bbe36b785cb5426cdf04fa2690ba67 100644 --- a/entity/Offer_entity/entityfields/documenttemplatetex/children/documenttemplatetypeclassification_param/valueProcess.js +++ b/entity/Offer_entity/entityfields/documenttemplatetex/children/documenttemplatetypeclassification_param/valueProcess.js @@ -1,2 +1,2 @@ -import("system.result"); +import("system.result"); result.string("3") \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/documenttemplatetext/children/documenttemplatetypeclassification_param/valueProcess.js b/entity/Offer_entity/entityfields/documenttemplatetext/children/documenttemplatetypeclassification_param/valueProcess.js index 7f6a588e3153735de6e83ab226ebb0941991ad63..a46ac9a3378678da98d0d297323d08fc1e7b9d07 100644 --- a/entity/Offer_entity/entityfields/documenttemplatetext/children/documenttemplatetypeclassification_param/valueProcess.js +++ b/entity/Offer_entity/entityfields/documenttemplatetext/children/documenttemplatetypeclassification_param/valueProcess.js @@ -1,2 +1,2 @@ -import("system.result"); +import("system.result"); result.string("3"); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/header/valueProcess.js b/entity/Offer_entity/entityfields/header/valueProcess.js index 508e3cb15b8c84962d2b371ab25377589620370b..653e89fd1dd644b7c243895b39e3ac25edb940ba 100644 --- a/entity/Offer_entity/entityfields/header/valueProcess.js +++ b/entity/Offer_entity/entityfields/header/valueProcess.js @@ -1,20 +1,20 @@ -import("system.result"); -import("system.vars"); -import("system.neon"); -import("system.db"); -import("system.util"); - -if(vars.exists("$param.OfferHeader_param") && vars.get("$param.OfferHeader_param")) - result.string(vars.get("$param.OfferHeader_param")); - -else if(vars.get("$this.value")) - result.string(vars.get("$this.value")); - -else if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) - result.string("gerne bieten wir Ihnen wie folgt an:") - -if (vars.get("$field.chooseTEXHeader") != "") -{ - var binaryId = db.cell("select ID from ASYS_BINARIES where ROW_ID = '" + vars.get("$field.chooseTEXHeader") + "'", "_____SYSTEMALIAS"); - result.string(util.decodeBase64String(db.getBinaryContent(binaryId, "_____SYSTEMALIAS"))); +import("system.result"); +import("system.vars"); +import("system.neon"); +import("system.db"); +import("system.util"); + +if(vars.exists("$param.OfferHeader_param") && vars.get("$param.OfferHeader_param")) + result.string(vars.get("$param.OfferHeader_param")); + +else if(vars.get("$this.value")) + result.string(vars.get("$this.value")); + +else if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) + result.string("gerne bieten wir Ihnen wie folgt an:") + +if (vars.get("$field.chooseTEXHeader") != "") +{ + var binaryId = db.cell("select ID from ASYS_BINARIES where ROW_ID = '" + vars.get("$field.chooseTEXHeader") + "'", "_____SYSTEMALIAS"); + result.string(util.decodeBase64String(db.getBinaryContent(binaryId, "_____SYSTEMALIAS"))); } \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js b/entity/Offer_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js index f6fdb0fbfa306482f48611c8049f39fb20a854a3..b558bb290eb1cf9b5af5699279bf6b1917df6339 100644 --- a/entity/Offer_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js +++ b/entity/Offer_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js @@ -1,10 +1,10 @@ -import("system.vars"); -import("system.result"); -import("Context_lib"); - -var res = []; -res.push({id: vars.get("$field.OFFERID"), tableNames: ["AB_ATTRIBUTERELATION", "OFFERITEM"]}); -res.push({id: vars.get("$field.OFFERID"), tableNames: ["OFFER"]}); - -res = JSON.stringify(res);//currently only strings can be passed as param +import("system.vars"); +import("system.result"); +import("Context_lib"); + +var res = []; +res.push({id: vars.get("$field.OFFERID"), tableNames: ["AB_ATTRIBUTERELATION", "OFFERITEM"]}); +res.push({id: vars.get("$field.OFFERID"), tableNames: ["OFFER"]}); + +res = JSON.stringify(res);//currently only strings can be passed as param result.object(res); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/offerdate/valueProcess.js b/entity/Offer_entity/entityfields/offerdate/valueProcess.js index 6b67243627ceda867da63df21c0600d67442cbbf..ca8dba6244410a798f6b9b014cec006703259d9a 100644 --- a/entity/Offer_entity/entityfields/offerdate/valueProcess.js +++ b/entity/Offer_entity/entityfields/offerdate/valueProcess.js @@ -1,11 +1,11 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); -import("Date_lib"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) -{ - result.string(DateUtils.getTodayUTC()); -} -else +import("system.vars"); +import("system.result"); +import("system.neon"); +import("Date_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + result.string(DateUtils.getTodayUTC()); +} +else result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/Offer_entity/recordcontainers/db/orderClauseProcess.js b/entity/Offer_entity/recordcontainers/db/orderClauseProcess.js index 1208b5ef06821f02683cfabf23bfc18c89d3d934..8db035bd2fa423b1c64319487d9d51a3ecfaae4b 100644 --- a/entity/Offer_entity/recordcontainers/db/orderClauseProcess.js +++ b/entity/Offer_entity/recordcontainers/db/orderClauseProcess.js @@ -1,7 +1,7 @@ -import("system.result"); -import("system.db"); - -result.object({ - "OFFER.OFFERCODE": db.DESCENDING, - "OFFER.VERSNR": db.DESCENDING +import("system.result"); +import("system.db"); + +result.object({ + "OFFER.OFFERCODE": db.DESCENDING, + "OFFER.VERSNR": db.DESCENDING }); \ No newline at end of file diff --git a/entity/Offeritem_entity/entityfields/optional/dropDownProcess.js b/entity/Offeritem_entity/entityfields/optional/dropDownProcess.js index b88d5392d1a40aa827f90e9dfcdd26303c4b1baa..1324968dfff10e56efe6268f8520572d56f21d1b 100644 --- a/entity/Offeritem_entity/entityfields/optional/dropDownProcess.js +++ b/entity/Offeritem_entity/entityfields/optional/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object([ - ["1", translate.text("Yes")] - ,["0", translate.text("No")] +import("system.translate"); +import("system.result"); + +result.object([ + ["1", translate.text("Yes")] + ,["0", translate.text("No")] ]); \ No newline at end of file diff --git a/entity/Order_entity/afterUiInit.js b/entity/Order_entity/afterUiInit.js index ac1ce38fae75b5e38fc7043f5710ce3fd07ce7be..e30b0b283b229b405cc9ac5bcedcecbfd38128d9 100644 --- a/entity/Order_entity/afterUiInit.js +++ b/entity/Order_entity/afterUiInit.js @@ -1,9 +1,9 @@ -import("system.neon"); -import("system.vars"); -import("Context_lib"); -import("Attribute_lib"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); -} +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Order_entity/contentTitleProcess.js b/entity/Order_entity/contentTitleProcess.js index 4fd9ebcce2d9cb3ac8262986d7e3424e6a934d3d..68e68c1f458568bb982e4e4ca205ede596738785 100644 --- a/entity/Order_entity/contentTitleProcess.js +++ b/entity/Order_entity/contentTitleProcess.js @@ -1,5 +1,5 @@ -import("system.translate"); -import("system.vars"); -import("system.result"); - -result.string(vars.get("$field.OrderCode_VersNr_fieldgroup")); +import("system.translate"); +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.OrderCode_VersNr_fieldgroup")); diff --git a/entity/Order_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/Order_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js index 2d458f3d3e14b4d4de7e16459e7ca915b9aafa16..14fab25fcad86ba4b15695d50b353e6146d09d77 100644 --- a/entity/Order_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js +++ b/entity/Order_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.SALESORDERID")); \ No newline at end of file diff --git a/entity/Order_entity/entityfields/attributes/children/objecttype_param/valueProcess.js b/entity/Order_entity/entityfields/attributes/children/objecttype_param/valueProcess.js index 008915f61deac19ccdd40fff81701de63eb3b6a2..5996e99db232db8df50f155732110608e5abff4e 100644 --- a/entity/Order_entity/entityfields/attributes/children/objecttype_param/valueProcess.js +++ b/entity/Order_entity/entityfields/attributes/children/objecttype_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("Context_lib"); - +import("system.result"); +import("Context_lib"); + result.string(ContextUtils.getCurrentContextId()); \ No newline at end of file diff --git a/entity/Order_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js b/entity/Order_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js index 2d458f3d3e14b4d4de7e16459e7ca915b9aafa16..14fab25fcad86ba4b15695d50b353e6146d09d77 100644 --- a/entity/Order_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js +++ b/entity/Order_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.SALESORDERID")); \ No newline at end of file diff --git a/entity/Order_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js b/entity/Order_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js index 008915f61deac19ccdd40fff81701de63eb3b6a2..5996e99db232db8df50f155732110608e5abff4e 100644 --- a/entity/Order_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js +++ b/entity/Order_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("Context_lib"); - +import("system.result"); +import("Context_lib"); + result.string(ContextUtils.getCurrentContextId()); \ No newline at end of file diff --git a/entity/Order_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js b/entity/Order_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js index b5acc0e5c7cd1d3b12b79af369bdeb74e5b2fce2..330f295e531bcbfcc893cb021d313a15a279abfb 100644 --- a/entity/Order_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js +++ b/entity/Order_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js @@ -1,10 +1,10 @@ -import("system.vars"); -import("system.result"); -import("Context_lib"); - -var res = []; -res.push({id: vars.get("$field.SALESORDERID"), tableNames: ["AB_ATTRIBUTERELATION", "SALESORDERITEM", "PRODUCT"]}); -res.push({id: vars.get("$field.SALESORDERID"), tableNames: ["SALESORDER"]}); - -res = JSON.stringify(res);//currently only strings can be passed as param +import("system.vars"); +import("system.result"); +import("Context_lib"); + +var res = []; +res.push({id: vars.get("$field.SALESORDERID"), tableNames: ["AB_ATTRIBUTERELATION", "SALESORDERITEM", "PRODUCT"]}); +res.push({id: vars.get("$field.SALESORDERID"), tableNames: ["SALESORDER"]}); + +res = JSON.stringify(res);//currently only strings can be passed as param result.object(res); \ No newline at end of file diff --git a/entity/Order_entity/entityfields/salesorderdate/valueProcess.js b/entity/Order_entity/entityfields/salesorderdate/valueProcess.js index 6b67243627ceda867da63df21c0600d67442cbbf..ca8dba6244410a798f6b9b014cec006703259d9a 100644 --- a/entity/Order_entity/entityfields/salesorderdate/valueProcess.js +++ b/entity/Order_entity/entityfields/salesorderdate/valueProcess.js @@ -1,11 +1,11 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); -import("Date_lib"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) -{ - result.string(DateUtils.getTodayUTC()); -} -else +import("system.vars"); +import("system.result"); +import("system.neon"); +import("Date_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + result.string(DateUtils.getTodayUTC()); +} +else result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/Order_entity/entityfields/tasks/stateProcess.js b/entity/Order_entity/entityfields/tasks/stateProcess.js index 712bf69e9725d83a9d77d7569b0b83917e404d8e..01f44a309055b0f28943b5325e8cfd59c2dac06e 100644 --- a/entity/Order_entity/entityfields/tasks/stateProcess.js +++ b/entity/Order_entity/entityfields/tasks/stateProcess.js @@ -1,10 +1,10 @@ -import("system.result"); -import("system.neon"); -import("system.vars"); -import("ActivityTask_lib"); -import("Context_lib"); - -if(TaskUtils.hasTasks(vars.get("$field.SALESORDERID"), ContextUtils.getCurrentContextId())) - result.string(neon.COMPONENTSTATE_EDITABLE); -else +import("system.result"); +import("system.neon"); +import("system.vars"); +import("ActivityTask_lib"); +import("Context_lib"); + +if(TaskUtils.hasTasks(vars.get("$field.SALESORDERID"), ContextUtils.getCurrentContextId())) + result.string(neon.COMPONENTSTATE_EDITABLE); +else result.string(neon.COMPONENTSTATE_INVISIBLE); \ No newline at end of file diff --git a/entity/Order_entity/recordcontainers/db/orderClauseProcess.js b/entity/Order_entity/recordcontainers/db/orderClauseProcess.js index 0a999f92f57acc25ef6cab045a745b37f1cac1ea..e214b63f100778e2e4761ca1a8a5a25c20e13e53 100644 --- a/entity/Order_entity/recordcontainers/db/orderClauseProcess.js +++ b/entity/Order_entity/recordcontainers/db/orderClauseProcess.js @@ -1,7 +1,7 @@ -import("system.result"); -import("system.db"); - -result.object({ - "SALESORDER.SALESORDERCODE": db.DESCENDING, - "SALESORDER.VERSNR": db.DESCENDING +import("system.result"); +import("system.db"); + +result.object({ + "SALESORDER.SALESORDERCODE": db.DESCENDING, + "SALESORDER.VERSNR": db.DESCENDING }); \ No newline at end of file diff --git a/entity/Orderitem_entity/entityfields/optional/dropDownProcess.js b/entity/Orderitem_entity/entityfields/optional/dropDownProcess.js index b88d5392d1a40aa827f90e9dfcdd26303c4b1baa..1324968dfff10e56efe6268f8520572d56f21d1b 100644 --- a/entity/Orderitem_entity/entityfields/optional/dropDownProcess.js +++ b/entity/Orderitem_entity/entityfields/optional/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object([ - ["1", translate.text("Yes")] - ,["0", translate.text("No")] +import("system.translate"); +import("system.result"); + +result.object([ + ["1", translate.text("Yes")] + ,["0", translate.text("No")] ]); \ No newline at end of file diff --git a/entity/Orderitem_entity/entityfields/quantity/valueProcess.js b/entity/Orderitem_entity/entityfields/quantity/valueProcess.js index 51d655d5bff03c5552b7f5aabbb9b271a1db5e03..1eb874ba4469528a091ef6adf85705a74c464546 100644 --- a/entity/Orderitem_entity/entityfields/quantity/valueProcess.js +++ b/entity/Orderitem_entity/entityfields/quantity/valueProcess.js @@ -1,10 +1,10 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) -{ - result.string("1"); -} -else +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + result.string("1"); +} +else result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/Organisation_entity/afterUiInit.js b/entity/Organisation_entity/afterUiInit.js index 031b635db2bf916a03eda91e8db23dc6c8bb5d35..40048a413712450e39dc819e7142ed9b2a48d820 100644 --- a/entity/Organisation_entity/afterUiInit.js +++ b/entity/Organisation_entity/afterUiInit.js @@ -1,9 +1,9 @@ -import("system.neon"); -import("system.vars"); -import("Context_lib"); -import("Attribute_lib"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); -} +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Organisation_entity/contentTitleProcess.js b/entity/Organisation_entity/contentTitleProcess.js index 28fd67de270b497ba718dd4e91766bd22936f67e..005148ba3525d43af9bb97dda0d07e49a5e8cd88 100644 --- a/entity/Organisation_entity/contentTitleProcess.js +++ b/entity/Organisation_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.NAME")); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/addtocampaign/onActionProcess.js b/entity/Organisation_entity/entityfields/addtocampaign/onActionProcess.js index 90dbbcdf2911e2f7f594f6cf5aaf910cfb4a8cec..44dc17d6535e270d1a46d97643d22e3825bc9208 100644 --- a/entity/Organisation_entity/entityfields/addtocampaign/onActionProcess.js +++ b/entity/Organisation_entity/entityfields/addtocampaign/onActionProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("Campaign_lib"); - +import("system.vars"); +import("Campaign_lib"); + CampaignUtils.addParticipant(vars.getString("$field.CONTACTID")); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/onActionProcess.js b/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/onActionProcess.js index 104558a4d9b4ed76ef4e24ae184815401dbc2749..0b0e3bc3a17fe233d2c2228be8179104e38e6906 100644 --- a/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/onActionProcess.js +++ b/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/onActionProcess.js @@ -1,10 +1,10 @@ -import("system.vars"); -import("system.logging"); -import("system.logging"); -import("system.neon"); -import("Campaign_lib"); - -if(vars.exists("$sys.selection")) //selektierte IDs als Array -{ - CampaignUtils.addParticipants(vars.getString("$sys.selection")); +import("system.vars"); +import("system.logging"); +import("system.logging"); +import("system.neon"); +import("Campaign_lib"); + +if(vars.exists("$sys.selection")) //selektierte IDs als Array +{ + CampaignUtils.addParticipants(vars.getString("$sys.selection")); } \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js b/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js index 497a88278adfae851d54cddb2968601c0cc58aaf..57283da6acec06f88e11a59fa92ba03cb2713f85 100644 --- a/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js +++ b/entity/Organisation_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js @@ -1,4 +1,4 @@ -import("system.translate"); -import("system.result"); - +import("system.translate"); +import("system.result"); + result.string(translate.text("Add the selection to a campaign")); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js b/entity/Organisation_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js index 17ba5b0226b9dfea75bf805ada3e957ad6da28eb..1d6e1ab67bba4c79cec93ef491eba9b948e766c8 100644 --- a/entity/Organisation_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js +++ b/entity/Organisation_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js @@ -1,10 +1,10 @@ -import("system.vars"); -import("system.result"); -import("Context_lib"); - -var res = []; -res.push({id: vars.get("$field.CONTACTID"), tableNames: ["CONTACT", "COMMUNICATION", "ADDRESS", "AB_ATTRIBUTERELATION"]}); -res.push({id: vars.get("$field.ORGANISATIONID"), tableNames: ["ORGANISATION"]}); - -res = JSON.stringify(res);//currently only strings can be passed as param +import("system.vars"); +import("system.result"); +import("Context_lib"); + +var res = []; +res.push({id: vars.get("$field.CONTACTID"), tableNames: ["CONTACT", "COMMUNICATION", "ADDRESS", "AB_ATTRIBUTERELATION"]}); +res.push({id: vars.get("$field.ORGANISATIONID"), tableNames: ["ORGANISATION"]}); + +res = JSON.stringify(res);//currently only strings can be passed as param result.object(res); \ No newline at end of file diff --git a/entity/Organisation_entity/entityfields/status/valueProcess.js b/entity/Organisation_entity/entityfields/status/valueProcess.js index ab590b059440372f55b8c6d73d0c47eae06ca396..ae552040e295ab248c1b09dfffe818f5b4d26612 100644 --- a/entity/Organisation_entity/entityfields/status/valueProcess.js +++ b/entity/Organisation_entity/entityfields/status/valueProcess.js @@ -1,7 +1,7 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); -import("KeywordRegistry_basic"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +import("system.vars"); +import("system.result"); +import("system.neon"); +import("KeywordRegistry_basic"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) result.string($KeywordRegistry.contactStatus$active()); \ No newline at end of file diff --git a/entity/Organisation_entity/recordcontainers/db/orderClauseProcess.js b/entity/Organisation_entity/recordcontainers/db/orderClauseProcess.js index effa3a63f928c2539626177c5bd96c67de96ba78..16ee318626b4c3b98953a0696ef9e2f083a6e492 100644 --- a/entity/Organisation_entity/recordcontainers/db/orderClauseProcess.js +++ b/entity/Organisation_entity/recordcontainers/db/orderClauseProcess.js @@ -1,6 +1,6 @@ -import("system.result"); -import("system.db"); - -result.object({ - "ORGANISATION.NAME": db.ASCENDING +import("system.result"); +import("system.db"); + +result.object({ + "ORGANISATION.NAME": db.ASCENDING }); \ No newline at end of file diff --git a/entity/PermissionAction_entity/PermissionAction_entity.aod b/entity/PermissionAction_entity/PermissionAction_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..07521d06a95969a3e89ca266169349db68fc6324 --- /dev/null +++ b/entity/PermissionAction_entity/PermissionAction_entity.aod @@ -0,0 +1,83 @@ +<?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.5" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.5"> + <name>PermissionAction_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <iconId>VAADIN:SHIELD</iconId> + <recordContainer>db</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + <dependencies> + <entityDependency> + <name>754e3cfc-7bc8-4dfa-a56e-1a4d12570fb2</name> + <entityName>PermissionDetail_entity</entityName> + <fieldName>PermissionActions</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + <entityField> + <name>AB_PERMISSIONACTIONID</name> + <title>Permission Action</title> + <valueProcess>%aditoprj%/entity/PermissionAction_entity/entityfields/ab_permissionactionid/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>AB_PERMISSION_ID</name> + <title>Parent Permission Action</title> + </entityField> + <entityField> + <name>ACTION</name> + <title>Action</title> + </entityField> + <entityProvider> + <name>PermissionActions</name> + <fieldType>DEPENDENCY_IN</fieldType> + <recordContainer>db</recordContainer> + <dependencies> + <entityDependency> + <name>504fe751-0e93-4ce3-aed7-26a669fd8ce4</name> + <entityName>Permission_entity</entityName> + <fieldName>PermissionPermissionActions</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + <entityParameter> + <name>PermissionId_param</name> + <expose v="true" /> + <triggerRecalculation v="true" /> + <mandatory v="true" /> + <description>PARAMETER</description> + </entityParameter> + </entityFields> + <recordContainers> + <dbRecordContainer> + <name>db</name> + <alias>Data_alias</alias> + <conditionProcess>%aditoprj%/entity/PermissionAction_entity/recordcontainers/db/conditionProcess.js</conditionProcess> + <linkInformation> + <linkInformation> + <name>164b4d98-4458-40ed-8fa9-f29aef333372</name> + <tableName>AB_PERMISSIONACTION</tableName> + <primaryKey>AB_PERMISSIONACTIONID</primaryKey> + <isUIDTable v="false" /> + <readonly v="false" /> + </linkInformation> + </linkInformation> + <recordFieldMappings> + <dbRecordFieldMapping> + <name>AB_PERMISSION_ID.value</name> + <recordfield>AB_PERMISSIONACTION.AB_PERMISSION_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>AB_PERMISSIONACTIONID.value</name> + <recordfield>AB_PERMISSIONACTION.AB_PERMISSIONACTIONID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>ACTION.value</name> + <recordfield>AB_PERMISSIONACTION.ACTION</recordfield> + </dbRecordFieldMapping> + </recordFieldMappings> + </dbRecordContainer> + </recordContainers> +</entity> diff --git a/entity/PermissionAction_entity/entityfields/ab_permissionactionid/valueProcess.js b/entity/PermissionAction_entity/entityfields/ab_permissionactionid/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..11b755b5848286f96ecb1bfe998ec711f663c476 --- /dev/null +++ b/entity/PermissionAction_entity/entityfields/ab_permissionactionid/valueProcess.js @@ -0,0 +1,7 @@ +import("system.neon"); +import("system.result"); +import("system.util"); +import("system.vars"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW) + result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/PermissionAction_entity/recordcontainers/db/conditionProcess.js b/entity/PermissionAction_entity/recordcontainers/db/conditionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d858d1cb48bdd1e12e8acb0f0c711d2acaf4a061 --- /dev/null +++ b/entity/PermissionAction_entity/recordcontainers/db/conditionProcess.js @@ -0,0 +1,6 @@ +import("system.vars"); +import("system.db"); +import("system.result"); + +if (vars.get("$param.PermissionId_param")) + result.string(db.translateCondition("AB_PERMISSION_ID = '" + vars.get("$param.PermissionId_param") + "'")); \ No newline at end of file diff --git a/entity/PermissionAdmin_entity/PermissionAdmin_entity.aod b/entity/PermissionAdmin_entity/PermissionAdmin_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..1f84089a781507fb1291250ba9603cdc959d6bdf --- /dev/null +++ b/entity/PermissionAdmin_entity/PermissionAdmin_entity.aod @@ -0,0 +1,34 @@ +<?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.5" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.5"> + <name>PermissionAdmin_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <title>Permission Admin</title> + <iconId>VAADIN:SHIELD</iconId> + <recordContainer>JDito</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>UID</name> + </entityField> + <entityConsumer> + <name>PermissionSets</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>PermissionSet_entity</entityName> + <fieldName>PermissionSets</fieldName> + </dependency> + </entityConsumer> + </entityFields> + <recordContainers> + <jDitoRecordContainer> + <name>JDito</name> + <contentProcess>%aditoprj%/entity/PermissionAdmin_entity/recordcontainers/jdito/contentProcess.js</contentProcess> + <recordFields> + <element>UID.value</element> + </recordFields> + </jDitoRecordContainer> + </recordContainers> +</entity> diff --git a/entity/PermissionAdmin_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionAdmin_entity/recordcontainers/jdito/contentProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..ee599add3a511c978b05deb3405295f88221653f --- /dev/null +++ b/entity/PermissionAdmin_entity/recordcontainers/jdito/contentProcess.js @@ -0,0 +1,2 @@ +import("system.result"); +result.object([["0"]]) \ No newline at end of file diff --git a/entity/PermissionDetail_entity/PermissionDetail_entity.aod b/entity/PermissionDetail_entity/PermissionDetail_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..0691776bc29d39e12b55c276bfedc21ae6b84925 --- /dev/null +++ b/entity/PermissionDetail_entity/PermissionDetail_entity.aod @@ -0,0 +1,167 @@ +<?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.5" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.5"> + <name>PermissionDetail_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <title>Permission Detail</title> + <contentTitleProcess>%aditoprj%/entity/PermissionDetail_entity/contentTitleProcess.js</contentTitleProcess> + <iconIdProcess>%aditoprj%/entity/PermissionDetail_entity/iconIdProcess.js</iconIdProcess> + <recordContainer>jDito</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>CONDITION</name> + <title>Condition</title> + </entityField> + <entityField> + <name>ACTION</name> + <title>Action</title> + <searchable v="false" /> + </entityField> + <entityField> + <name>ROLE</name> + <title>Role</title> + <consumer>Roles</consumer> + <linkedContext>Role</linkedContext> + <groupable v="true" /> + <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/role/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>ENTITY</name> + <title>Entity</title> + <consumer>MetaData</consumer> + <linkedContext>PermissionMetaData</linkedContext> + <groupable v="true" /> + <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>FIELD</name> + <title>Field</title> + <groupable v="true" /> + </entityField> + <entityField> + <name>UID</name> + <title>PermissionId</title> + </entityField> + <entityField> + <name>ICON</name> + </entityField> + <entityField> + <name>ACCESSTYPE</name> + <title>Access type</title> + <consumer>KeywordAccessType</consumer> + <groupable v="true" /> + </entityField> + <entityField> + <name>CONDTYPE</name> + <title>Condition Type</title> + <consumer>KeywordConditionType</consumer> + <displayValueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js</displayValueProcess> + </entityField> + <entityField> + <name>PARENT</name> + <title>Parent</title> + </entityField> + <entityProvider> + <name>Permissions</name> + <fieldType>DEPENDENCY_IN</fieldType> + <recordContainer>jDito</recordContainer> + <dependencies> + <entityDependency> + <name>b1a6483c-e7b1-4eb7-aa22-d0e9d0ef0b49</name> + <entityName>Role_entity</entityName> + <fieldName>Permissions</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>cc0e9a4d-5d82-4407-bc4e-698dcfae5c86</name> + <entityName>PermissionMetaData_entity</entityName> + <fieldName>PermissionDetails</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + <entityParameter> + <name>RoleTitle_param</name> + <expose v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityConsumer> + <name>Roles</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Role_entity</entityName> + <fieldName>Roles</fieldName> + </dependency> + </entityConsumer> + <entityConsumer> + <name>MetaData</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>PermissionMetaData_entity</entityName> + <fieldName>MetaData</fieldName> + </dependency> + </entityConsumer> + <entityParameter> + <name>EntityTitle_param</name> + <expose v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityConsumer> + <name>KeywordConditionType</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContainerName_param</name> + <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/keywordconditiontype/children/containername_param/valueProcess.js</valueProcess> + <expose v="false" /> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>KeywordAccessType</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>KeywordEntry_entity</entityName> + <fieldName>SpecificContainerKeywords</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContainerName_param</name> + <valueProcess>%aditoprj%/entity/PermissionDetail_entity/entityfields/keywordaccesstype/children/containername_param/valueProcess.js</valueProcess> + <expose v="false" /> + </entityParameter> + </children> + </entityConsumer> + </entityFields> + <recordContainers> + <jDitoRecordContainer> + <name>jDito</name> + <jDitoRecordAlias>Data_alias</jDitoRecordAlias> + <contentProcess>%aditoprj%/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js</contentProcess> + <onInsert>%aditoprj%/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js</onInsert> + <onUpdate>%aditoprj%/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js</onUpdate> + <onDelete>%aditoprj%/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js</onDelete> + <recordFields> + <element>UID.value</element> + <element>ENTITY.value</element> + <element>ROLE.value</element> + <element>FIELD.value</element> + <element>CONDITION.value</element> + <element>ACTION.value</element> + <element>ACCESSTYPE.value</element> + <element>CONDTYPE.value</element> + <element>PARENT.value</element> + </recordFields> + </jDitoRecordContainer> + </recordContainers> +</entity> diff --git a/entity/PermissionDetail_entity/contentTitleProcess.js b/entity/PermissionDetail_entity/contentTitleProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e4b7814a7354a12ceef5db2fef5ebf78b8a9c1c8 --- /dev/null +++ b/entity/PermissionDetail_entity/contentTitleProcess.js @@ -0,0 +1,32 @@ +import("system.logging"); +import("system.vars"); +import("system.result"); + +var res = ""; + +switch (vars.get("$field.ACCESSTYPE")) { + case "E": + if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) { + res += vars.get("$field.ENTITY"); + } else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) { + res += vars.get("$field.ROLE"); + } + break; + case "R": + res += "Record"; + break; + case "F": + res += vars.get("$field.FIELD"); + break; + default: + res += "Permission"; + break; +} + +if (vars.get("$field.CONDITION") != "") { + res += " - conditional"; +} else { + res += " - default"; +} + +result.string(res); \ No newline at end of file diff --git a/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js b/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..8d0ed5002abe588d334cf6a609d98472d5d13bf5 --- /dev/null +++ b/entity/PermissionDetail_entity/entityfields/condtype/displayValueProcess.js @@ -0,0 +1,6 @@ +import("system.result"); +import("system.vars"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +//result.string(KeywordUtils.getViewValue($KeywordRegistry.permissionConditionType(), vars.get("$field.CONDTYPE"))); diff --git a/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js b/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..ace2def782d998df24500b8fb7e0792e651e77da --- /dev/null +++ b/entity/PermissionDetail_entity/entityfields/entity/valueProcess.js @@ -0,0 +1,7 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.exists("$param.EntityTitle_param")) { + result.string(vars.getString("$param.EntityTitle_param")); +} \ No newline at end of file diff --git a/entity/PermissionDetail_entity/entityfields/keywordaccesstype/children/containername_param/valueProcess.js b/entity/PermissionDetail_entity/entityfields/keywordaccesstype/children/containername_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..001676e488f0830a3c8b6cd52416b9d9d850bf03 --- /dev/null +++ b/entity/PermissionDetail_entity/entityfields/keywordaccesstype/children/containername_param/valueProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string($KeywordRegistry.permissionAccessType()); diff --git a/entity/PermissionDetail_entity/entityfields/keywordconditiontype/children/containername_param/valueProcess.js b/entity/PermissionDetail_entity/entityfields/keywordconditiontype/children/containername_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..206253174b14d4712d7af1706aaab0cf57b8a945 --- /dev/null +++ b/entity/PermissionDetail_entity/entityfields/keywordconditiontype/children/containername_param/valueProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string($KeywordRegistry.permissionConditionType()); diff --git a/entity/PermissionDetail_entity/entityfields/role/valueProcess.js b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..ce210d3aefbd85ebf0b4fc106ea5a25976284f1b --- /dev/null +++ b/entity/PermissionDetail_entity/entityfields/role/valueProcess.js @@ -0,0 +1,7 @@ +import("system.vars"); +import("system.result"); +import("system.neon"); + +if((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && vars.exists("$param.RoleTitle_param")) { + result.string(vars.getString("$param.RoleTitle_param")); +} \ No newline at end of file diff --git a/entity/PermissionDetail_entity/iconIdProcess.js b/entity/PermissionDetail_entity/iconIdProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..a1d937f1db6a42a70921758a3cf759f1701701ad --- /dev/null +++ b/entity/PermissionDetail_entity/iconIdProcess.js @@ -0,0 +1,21 @@ +import("system.vars"); +import("system.result"); + +switch (vars.get("$field.ACCESSTYPE")) { + case "E": + if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) { + result.string("VAADIN:CONNECT"); + } else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) { + result.string("VAADIN:USER_CHECK"); + } + break; + case "R": + result.string("VAADIN:FILE_TEXT_O") + break; + case "F": + result.string("VAADIN:COMBOBOX"); + break; + default: + result.string("VAADIN:SHIELD"); + break; +} diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..a51aa5d57003fd61351658c3da295a55015c6949 --- /dev/null +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/contentProcess.js @@ -0,0 +1,122 @@ +import("system.util"); +import("system.vars"); +import("system.db"); +import("system.result"); +import("Permission_lib"); + +var selectedPermission = vars.get("$local.idvalues"); +var sqlStr; +var whereCond = ""; + +if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) { + whereCond = " where AB_PERMISSIONSET.ROLE_ID = '" + vars.getString("$param.RoleTitle_param") + "'"; +} else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) { + whereCond = " where AB_PERMISSIONSET.ENTITY_ID = '" + vars.getString("$param.EntityTitle_param") + "'"; +} + +sqlStr = + "select AB_PERMISSION.AB_PERMISSIONID, AB_PERMISSIONSET.ENTITY_ID, AB_PERMISSIONSET.ROLE_ID," + + " AB_PERMISSIONSET.FIELD_ID, AB_PERMISSION.COND, AB_PERMISSIONACTION.ACTION, AB_PERMISSIONSET.ACCESSTYPE, AB_PERMISSION.CONDTYPE from AB_PERMISSIONSET" + + " join AB_PERMISSION on AB_PERMISSION.AB_PERMISSIONSET_ID = AB_PERMISSIONSET.AB_PERMISSIONSETID" + + " join AB_PERMISSIONACTION on AB_PERMISSIONACTION.AB_PERMISSION_ID = AB_PERMISSION.AB_PERMISSIONID" + + whereCond + + " order by AB_PERMISSION.AB_PERMISSIONID"; + +var sqlRes = db.table(sqlStr); +var permissionTable = PermissionUtil.convertArrToObj(sqlRes); + +// group all permissions by permissionid and condition, concat actions +var groupedPermissionTable = [], concatAction; +for (let i = 0; i < permissionTable.length - 1; i++) { + for (let j = i + 1; j < permissionTable.length; j++) { + if (permissionTable[i].permissionid == permissionTable[j].permissionid && permissionTable[i].cond == permissionTable[j].cond) { + var currPermId = permissionTable[i].permissionid; + var indexCurrPermGrouped = PermissionUtil.indexOfPermId(groupedPermissionTable, currPermId); + if (indexCurrPermGrouped > -1) { + // permissionset got already grouped before + // concat current action with the actions which got already grouped + concatAction = groupedPermissionTable[indexCurrPermGrouped].action + "," + permissionTable[j].action; + groupedPermissionTable[indexCurrPermGrouped].action = concatAction; + break; + } else { + concatAction = permissionTable[i].action + "," + permissionTable[j].action; + groupedPermissionTable.push(permissionTable[i]); + groupedPermissionTable[groupedPermissionTable.length-1].action = concatAction; + break; + } + } + } +} + +var res = []; +var permissionTableOrigin = PermissionUtil.convertArrToObj(sqlRes); + +// no permission selected, return all permission entrys +if (selectedPermission == null) { + for each (let entry in groupedPermissionTable) { + res = prepareResultArray(entry, res); + } + + for each (let entry in permissionTableOrigin) { + if (PermissionUtil.indexOfPermId(PermissionUtil.convertArrToObj(res), entry.permissionid) == -1) { + res = prepareResultArray(entry, res); + } + } +} else { // permission selected, return only the selected permission entry + for each (let entry in groupedPermissionTable) { + if (selectedPermission == entry.permissionid) { + res = prepareResultArray(entry, res); + break; + } + } + + for each (let entry in permissionTableOrigin) { + if (selectedPermission == entry.permissionid) { + if (PermissionUtil.indexOfPermId(PermissionUtil.convertArrToObj(res), entry.permissionid) == -1) { + res = prepareResultArray(entry, res); + break; + } + } + } +} + +result.object(res.sort(sortFunction)); + +function prepareResultArray(pEntry, pRes) { + var rootPermission = ""; + if (pEntry.accesstype != "E") { + if (pEntry.accesstype == "F" && pEntry.cond != "") { + rootPermission = PermissionUtil.getRootFieldPermission(pEntry.permissionid); + if (rootPermission == "") { + rootPermission = PermissionUtil.getRootPermission(pEntry.permissionid); + } + } else + rootPermission = PermissionUtil.getRootPermission(pEntry.permissionid); + } + pRes.push([pEntry.permissionid, pEntry.entity, pEntry.role, pEntry.field, pEntry.cond, pEntry.action, pEntry.accesstype, pEntry.condtype, rootPermission]); + return pRes; +} + +// used to sort result array: Entity -> Records -> Fields +function sortFunction(a, b) { + if (a[6] == b[6] && a[6] != "F" && a[6] != "R") + return 0; + else if (a[6] == "E") + return -1; + else if (b[6] == "E") + return 1; + else if (a[6] == "R" && b[6] == "F") + return -1; + else if (a[6] == "F" && b[6] == "R") + return 1; + else if (a[6] == "R" && b[6] == "R" && a[4] == "") + return -1; + else if (a[6] == "R" && b[6] == "R" && b[4] == "") + return 1; + else if (a[6] == "F" && b[6] == "F" && a[4] == "") + return -1; + else if (a[6] == "F" && b[6] == "F" && b[4] == "") + return 1; + else + return 0; +} \ No newline at end of file diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js new file mode 100644 index 0000000000000000000000000000000000000000..59f34513d50ae94649a05009129dc06d4ba77fe6 --- /dev/null +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onDelete.js @@ -0,0 +1,49 @@ +import("system.db"); +import("system.vars"); +import("Permission_lib"); + +var permId = vars.get("$field.UID"); +var accessType = vars.get("$field.ACCESSTYPE"); +var parentPermSetId = PermissionUtil.getParentPermissionSet(permId); +var linkedActions = PermissionUtil.getAllChildPermissionActions(permId); + +var sqlCondDelAction = SqlCondition.begin() +.and("AB_PERMISSIONACTION.AB_PERMISSIONACTIONID in ('" + linkedActions.join("','") + "')") +.build(); +var sqlCondDelPerm = SqlCondition.begin() +.and("AB_PERMISSION.AB_PERMISSIONID = '" + permId + "'") +.build(); +var sqlCondDelPermSet = SqlCondition.begin() +.and("AB_PERMISSIONSET.AB_PERMISSIONSETID = '" + parentPermSetId + "'") +.build(); + +switch (accessType) { + case "E": + var allPermSets = PermissionUtil.getAllChildPermissionSets(parentPermSetId); + allPermSets.push(parentPermSetId); + var allPerms = PermissionUtil.getAllPermissions(allPermSets); + var allPermActions = PermissionUtil.getAllPermissionActions(allPerms); + + sqlCondDelAction = SqlCondition.begin() + .and("AB_PERMISSIONACTION.AB_PERMISSIONACTIONID in ('" + allPermActions.join("','") + "')") + .build(); + sqlCondDelPerm = SqlCondition.begin() + .and("AB_PERMISSION.AB_PERMISSIONID in ('" + allPerms.join("','") + "')") + .build(); + sqlCondDelPermSet = SqlCondition.begin() + .and("AB_PERMISSIONSET.AB_PERMISSIONSETID in ('" + allPermSets.join("','") + "')") + .build(); + + db.deleteData("AB_PERMISSIONACTION", sqlCondDelAction); // delete all actions + db.deleteData("AB_PERMISSION", sqlCondDelPerm); // delete all permissions + db.deleteData("AB_PERMISSIONSET", sqlCondDelPermSet); // delete all permission sets + break; + default: + db.deleteData("AB_PERMISSIONACTION", sqlCondDelAction); // delete all actions of the selected permission + db.deleteData("AB_PERMISSION", sqlCondDelPerm); // delete the selected permission + break; +} + +if (PermissionUtil.permSetIsEmpty(parentPermSetId)) { + db.deleteData("AB_PERMISSIONSET", sqlCondDelPermSet); // delete empty permissionset +} diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js new file mode 100644 index 0000000000000000000000000000000000000000..72d8888bbd4d20ea90dd5467ddcfe8ba2b0916ef --- /dev/null +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onInsert.js @@ -0,0 +1,88 @@ +import("system.logging"); +import("system.neon"); +import("system.util"); +import("system.db"); +import("system.vars"); +import("Permission_lib"); + +logging.log("---INSERT---"); + +var table, cols, vals; +var sqlExt = ""; +var permissionid = util.getNewUUID(); +var role = vars.get("$field.ROLE"); +var entity = vars.get("$field.ENTITY"); +var field = vars.get("$field.FIELD"); +var accesstype = vars.get("$field.ACCESSTYPE").trim(); +var condtype = vars.get("$field.CONDTYPE").trim(); +var condition = vars.get("$field.CONDITION"); +var action = vars.get("$field.ACTION"); + +if (checkInput([role, entity, accesstype, condtype, action])) { + // calculate accesstype + // TODO: calculation of accesstype not needed + // $field.ACCESSTYPE should only allow input according to inserted field (->F) or action (view,create) (->E) otherwise (->R) + if (checkInput([field])) + sqlExt += " and FIELD_ID = '" + field + "'"; + else if (action.includes("view") || action.includes("create")) + sqlExt += " and ACCESSTYPE = 'E'"; + else + sqlExt += " and ACCESSTYPE = 'R'"; + + var sqlStr = "select AB_PERMISSIONSETID from AB_PERMISSIONSET where ENTITY_ID = '" + entity + "' and ROLE_ID = '" + role + "'" + sqlExt; + var permissionsetid = db.cell(sqlStr); + + if (permissionsetid == "") { + // no fitting permissionset found - insert new permissionset + var rootpermissionset; + if (accesstype == "E") { + rootpermissionset = ""; + } else { + rootpermissionset = PermissionUtil.getRootPermissionSet(role, entity); + } + permissionsetid = PermissionUtil.insertNewPermissionSet(rootpermissionset, entity, role, field, accesstype) + } + + // check if a new permissions is needed or an existing one can be used + var existingPermId = permExists(role, entity, field, accesstype, condtype, condition); + logging.log(existingPermId); + if (existingPermId != "") { + // update + permissionid = existingPermId; + } else { + // permission doesnt exist -> insert new permission + // new permissionid is needed to link actions to the permission in the next step + permissionid = PermissionUtil.insertNewPermission(permissionsetid, condition, condtype) + } + + // insert new permissionaction + var actionNew = action.split(","); + logging.log("action new: " + actionNew.toSource()); + for each (let permaction in actionNew) { + PermissionUtil.insertNewPermissionAction(permissionid, permaction); + } +} + +// checks input array if each element is a valid input, returns true if valid, otherwise false +function checkInput(pInputArr) { + for each (var input in pInputArr) { + if (input == undefined || input == null || input == "") + return false; + } + return true; +} + +// returns the permission(id) with given parameters, otherwise returns empty string +function permExists(pRole, pEntity, pField, pAccesstype, pCondtype, pCondition) { + var sqlExt = ""; + if (pCondition != null && pCondition != undefined && pCondition != "") + sqlExt += " and COND = '" + pCondition + "'"; + if (pField != null && pField != undefined && pField != "") + sqlExt += " and FIELD_ID = '" + pField + "'"; + var sqlStr = "select AB_PERMISSION.AB_PERMISSIONID from AB_PERMISSIONSET" + + " join AB_PERMISSION on AB_PERMISSION.AB_PERMISSIONSET_ID = AB_PERMISSIONSET.AB_PERMISSIONSETID" + + " where ENTITY_ID = '" + pEntity + "' and ROLE_ID = '" + pRole + "'" + + " and ACCESSTYPE = '" + pAccesstype + "' and CONDTYPE = '" + pCondtype + "'" + sqlExt; + var permId = db.cell(sqlStr); + return permId; +} \ No newline at end of file diff --git a/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js b/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js new file mode 100644 index 0000000000000000000000000000000000000000..3bf18cf748a56f0ebebae3cf95246455ec586b31 --- /dev/null +++ b/entity/PermissionDetail_entity/recordcontainers/jdito/onUpdate.js @@ -0,0 +1,35 @@ +import("system.logging"); +import("system.util"); +import("system.db"); +import("system.vars"); +import("Permission_lib"); + +logging.log("---UPDATE---"); + +var table, cols, vals, cond; + +var permissionid = vars.get("$field.UID"); +logging.log("permissionid: " + permissionid); +var actionNew = vars.get("$field.ACTION").split(","); +var entityNew = vars.get("$field.ENTITY"); +var permCond = vars.get("$field.CONDITION"); +var permCondType = vars.get("$field.CONDTYPE").trim(); +var diff = PermissionUtil.getActionDiff(permissionid, actionNew); + +if (diff.length > 0) { + // delete all linked permission actions + table = "AB_PERMISSIONACTION"; + cond = SqlCondition.begin().and("AB_PERMISSION_ID = '" + permissionid + "'").build(); + var dbDeletes = db.deleteData(table, cond); + + // insert the different actions + cols = db.getColumns(table); + for each (var action in actionNew) { + PermissionUtil.insertNewPermissionAction(permissionid, action); + } +} + +PermissionUtil.updateIfDiff(permissionid, permCond, "COND", "AB_PERMISSION"); // updates COND if the new cond is different to COND in DB +PermissionUtil.updateIfDiff(permissionid, permCondType, "CONDTYPE", "AB_PERMISSION"); // updates CONDTYPE if the new condtype is different to CONDTYPE in DB +// entity of children has to be changed/deleted/ignored? +// PermissionUtil.updateIfDiff(PermissionUtil.getParentPermissionSet(permissionid), entityNew, "ENTITY_ID", "AB_PERMISSIONSET"); diff --git a/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod b/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..b08bb2b6f9cf0577331f4b31893a85c4d405df30 --- /dev/null +++ b/entity/PermissionMetaData_entity/PermissionMetaData_entity.aod @@ -0,0 +1,94 @@ +<?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.5" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.5"> + <name>PermissionMetaData_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:CONNECT</icon> + <title>Entities</title> + <contentTitleProcess>%aditoprj%/entity/PermissionMetaData_entity/contentTitleProcess.js</contentTitleProcess> + <iconIdProcess>%aditoprj%/entity/PermissionMetaData_entity/iconIdProcess.js</iconIdProcess> + <recordContainer>jDito</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>TITLE</name> + <title>Title</title> + </entityField> + <entityField> + <name>DESCRIPTION</name> + <title>Description</title> + </entityField> + <entityField> + <name>UID</name> + <title>Name</title> + </entityField> + <entityProvider> + <name>MetaData</name> + <fieldType>DEPENDENCY_IN</fieldType> + <recordContainer>jDito</recordContainer> + <dependencies> + <entityDependency> + <name>3b2c9421-5ff0-49a3-99f0-6790f17bd76c</name> + <entityName>PermissionDetail_entity</entityName> + <fieldName>MetaData</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + <children> + <entityParameter> + <name>EntityName_param</name> + <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/metadata/children/entityname_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityProvider> + <entityConsumer> + <name>PermissionOverviews</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>PermissionOverview_entity</entityName> + <fieldName>PermissionOverviews</fieldName> + </dependency> + <children> + <entityParameter> + <name>EntityTitle_param</name> + <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entitytitle_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>PermissionDetails</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>PermissionDetail_entity</entityName> + <fieldName>Permissions</fieldName> + </dependency> + <children> + <entityParameter> + <name>EntityTitle_param</name> + <valueProcess>%aditoprj%/entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entitytitle_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityParameter> + <name>EntityName_param</name> + <expose v="true" /> + <description>PARAMETER</description> + </entityParameter> + </entityFields> + <recordContainers> + <jDitoRecordContainer> + <name>jDito</name> + <jDitoRecordAlias>Data_alias</jDitoRecordAlias> + <isPageable v="false" /> + <contentProcess>%aditoprj%/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js</contentProcess> + <recordFields> + <element>UID.value</element> + <element>TITLE.value</element> + <element>DESCRIPTION.value</element> + </recordFields> + </jDitoRecordContainer> + </recordContainers> +</entity> diff --git a/entity/PermissionMetaData_entity/contentTitleProcess.js b/entity/PermissionMetaData_entity/contentTitleProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..3ef775221bdfb9a2437415fee17f99c35f7b206f --- /dev/null +++ b/entity/PermissionMetaData_entity/contentTitleProcess.js @@ -0,0 +1,3 @@ +import("system.vars"); +import("system.result"); +result.string(vars.get("$field.UID")); \ No newline at end of file diff --git a/entity/PermissionMetaData_entity/entityfields/metadata/children/entityname_param/valueProcess.js b/entity/PermissionMetaData_entity/entityfields/metadata/children/entityname_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f7920ec1e28cce2af69f1ef57710f594d31d2553 --- /dev/null +++ b/entity/PermissionMetaData_entity/entityfields/metadata/children/entityname_param/valueProcess.js @@ -0,0 +1,3 @@ +import("system.vars"); +import("system.result"); +result.string(vars.get("$field.TITLE")); \ No newline at end of file diff --git a/entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entitytitle_param/valueProcess.js b/entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entitytitle_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2c71e53a498b1ad3d5a0f915aacb4a836b81657f --- /dev/null +++ b/entity/PermissionMetaData_entity/entityfields/permissiondetails/children/entitytitle_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.UID")); \ No newline at end of file diff --git a/entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entitytitle_param/valueProcess.js b/entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entitytitle_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2c71e53a498b1ad3d5a0f915aacb4a836b81657f --- /dev/null +++ b/entity/PermissionMetaData_entity/entityfields/permissionoverviews/children/entitytitle_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.UID")); \ No newline at end of file diff --git a/entity/PermissionMetaData_entity/iconIdProcess.js b/entity/PermissionMetaData_entity/iconIdProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..4e92d3f9ca4e6171b3065b5925dc0c3d6a3f4206 --- /dev/null +++ b/entity/PermissionMetaData_entity/iconIdProcess.js @@ -0,0 +1,17 @@ +import("system.logging"); +import("system.result"); +import("system.project"); +import("system.vars"); + +var currEntity = vars.get("$field.UID"); + +if (currEntity != undefined && currEntity != null && currEntity != "") { + var entityInfo = project.getDataModel(project.DATAMODEL_KIND_ENTITY, currEntity); + if (entityInfo[5] != "") { + result.string(entityInfo[5]); + } else { + result.string("VAADIN:CONNECT"); + } +} else { + result.string("VAADIN:CONNECT"); +} \ No newline at end of file diff --git a/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..3e7bd18d57ed6e83408d3197fbeda39780fc352c --- /dev/null +++ b/entity/PermissionMetaData_entity/recordcontainers/jdito/contentProcess.js @@ -0,0 +1,22 @@ +import("system.vars"); +import("system.result"); +import("system.project"); + +var entities = project.getDataModels(project.DATAMODEL_KIND_ENTITY); +var selectedEntity = vars.get("$local.idvalues"); +var res = []; + +if (selectedEntity == null) { + for each (let entity in entities) { + res.push([entity[0], entity[1], entity[2]]); + } +} else { + for each (let entity in entities) { + if (entity[0] == selectedEntity) { + res.push([entity[0], entity[1], entity[2]]); + break; + } + } +} + +result.object(res.sort()); \ No newline at end of file diff --git a/entity/PermissionOverview_entity/PermissionOverview_entity.aod b/entity/PermissionOverview_entity/PermissionOverview_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..a3fced035b67d564fa7f67a64416f441e3cebb42 --- /dev/null +++ b/entity/PermissionOverview_entity/PermissionOverview_entity.aod @@ -0,0 +1,94 @@ +<?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.5" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.5"> + <name>PermissionOverview_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <title>Permission Overview</title> + <iconIdProcess>%aditoprj%/entity/PermissionOverview_entity/iconIdProcess.js</iconIdProcess> + <recordContainer>jDito</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>ENTITY</name> + <titleProcess>%aditoprj%/entity/PermissionOverview_entity/entityfields/entity/titleProcess.js</titleProcess> + </entityField> + <entityField> + <name>ACTION_VIEW</name> + <title>View</title> + <contentType>IMAGE</contentType> + </entityField> + <entityField> + <name>ACTION_CREATE</name> + <title>Create</title> + <contentType>IMAGE</contentType> + </entityField> + <entityField> + <name>ACTION_READ</name> + <title>Read</title> + <contentType>IMAGE</contentType> + </entityField> + <entityField> + <name>ACTION_EDIT</name> + <title>Edit</title> + <contentType>IMAGE</contentType> + </entityField> + <entityField> + <name>ACTION_DELETE</name> + <title>Delete</title> + <contentType>IMAGE</contentType> + </entityField> + <entityField> + <name>CONDTYPE</name> + </entityField> + <entityField> + <name>UID</name> + <title>Permission Set ID</title> + </entityField> + <entityProvider> + <name>PermissionOverviews</name> + <fieldType>DEPENDENCY_IN</fieldType> + <recordContainer>jDito</recordContainer> + <dependencies> + <entityDependency> + <name>b9f4df41-74e9-41d2-bfe6-1427ae7c8c36</name> + <entityName>Role_entity</entityName> + <fieldName>PermissionOverviews</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>ac8eb318-8d26-43a0-9463-e1c3741c7710</name> + <entityName>PermissionMetaData_entity</entityName> + <fieldName>PermissionOverviews</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + <entityParameter> + <name>RoleTitle_param</name> + <expose v="true" /> + <description>PARAMETER</description> + </entityParameter> + <entityParameter> + <name>EntityTitle_param</name> + <expose v="true" /> + <description>PARAMETER</description> + </entityParameter> + </entityFields> + <recordContainers> + <jDitoRecordContainer> + <name>jDito</name> + <jDitoRecordAlias>Data_alias</jDitoRecordAlias> + <contentProcess>%aditoprj%/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js</contentProcess> + <recordFields> + <element>UID.value</element> + <element>ENTITY.value</element> + <element>ACTION_VIEW.value</element> + <element>ACTION_CREATE.value</element> + <element>ACTION_READ.value</element> + <element>ACTION_EDIT.value</element> + <element>ACTION_DELETE.value</element> + </recordFields> + </jDitoRecordContainer> + </recordContainers> +</entity> diff --git a/entity/PermissionOverview_entity/entityfields/entity/titleProcess.js b/entity/PermissionOverview_entity/entityfields/entity/titleProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..14b6d13ed4713f1788bed57bcbc480c390e34f84 --- /dev/null +++ b/entity/PermissionOverview_entity/entityfields/entity/titleProcess.js @@ -0,0 +1,8 @@ +import("system.result"); +import("system.vars"); + +if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) { + result.string("Entity"); +} else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) { + result.string("Role"); +} \ No newline at end of file diff --git a/entity/PermissionOverview_entity/iconIdProcess.js b/entity/PermissionOverview_entity/iconIdProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..df51be0f8f1a0e175ed2c78421459b46cc76721d --- /dev/null +++ b/entity/PermissionOverview_entity/iconIdProcess.js @@ -0,0 +1,8 @@ +import("system.vars"); +import("system.result"); + +if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) { + result.string("VAADIN:CONNECT"); +} else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) { + result.string("VAADIN:USER_CHECK"); +} \ No newline at end of file diff --git a/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..a9d0a7060ae6dbc00807de6d3f087c83482033e3 --- /dev/null +++ b/entity/PermissionOverview_entity/recordcontainers/jdito/contentProcess.js @@ -0,0 +1,107 @@ +import("system.vars"); +import("system.result"); +import("system.db"); +import("Permission_lib"); + +var res = []; +var roleTitle = ""; +var entityTitle = ""; +var sqlCond = ""; +var sqlStr = ""; + +if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) { + roleTitle = vars.getString("$param.RoleTitle_param"); + sqlCond = " where ROLE_ID = '" + roleTitle + "'"; + sqlStr = "select distinct ENTITY_ID from AB_PERMISSIONSET" + sqlCond; +} else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) { + entityTitle = vars.getString("$param.EntityTitle_param"); + sqlCond = " where ENTITY_ID = '" + entityTitle + "'"; + sqlStr = "select distinct ROLE_ID from AB_PERMISSIONSET" + sqlCond; +} + +var rolesOrEntities = db.array(db.COLUMN, sqlStr); +var entityPermSetId = ""; +for each (var entry in rolesOrEntities) { // entry contains either a role or an entity, depending on which param exists + if (vars.exists("$param.RoleTitle_param") && vars.get("$param.RoleTitle_param")) { + entityPermSetId = PermissionUtil.getRootPermissionSet(roleTitle, entry); + } else if (vars.exists("$param.EntityTitle_param") && vars.get("$param.EntityTitle_param")) { + entityPermSetId = PermissionUtil.getRootPermissionSet(entry, entityTitle); + } + var recordPermSetId = PermissionUtil.getChildRecordPermissionSet(entityPermSetId); + var currOverview = [entityPermSetId, entry, "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE", "VAADIN:CLOSE"]; + + // default entity permissions + currOverview = prepareOverview(entityPermSetId, currOverview, "default"); + + // conditional record permissions + currOverview = prepareOverview(recordPermSetId, currOverview, "conditional"); + + // default record permissions + currOverview = prepareOverview(recordPermSetId, currOverview, "default"); + + res.push(currOverview); +} +result.object(res); + +function prepareOverview(pPermSetId, pCurrOverview, pMode) { + var permId, defaultPermActionId, conditionalPermActionId = [], currOverview; + switch (pMode) { + case "default": + permId = PermissionUtil.getDefaultPermission(pPermSetId); + defaultPermActionId = PermissionUtil.getPermissionAction(permId); + currOverview = pCurrOverview; + + if (PermissionUtil.getPermissionCondType(permId) == "true") { + for each (let actionSets in defaultPermActionId) { + switch (PermissionUtil.resolvePermissionActionId(actionSets)) { + case "view": + currOverview[2] = "VAADIN:CIRCLE"; + break; + case "create": + currOverview[3] = "VAADIN:CIRCLE"; + break; + case "read": + currOverview[4] = "VAADIN:CIRCLE"; + break; + case "edit": + currOverview[5] = "VAADIN:CIRCLE"; + break; + case "delete": + currOverview[6] = "VAADIN:CIRCLE"; + break; + } + } + } + break; + case "conditional": + permId = PermissionUtil.getConditionalPermission(pPermSetId); + for each (let perm in permId) { + conditionalPermActionId.push(PermissionUtil.getPermissionAction(perm)); + } + currOverview = pCurrOverview; + + for each (let actionSets in conditionalPermActionId) { + for each (let action in actionSets) { + switch (PermissionUtil.resolvePermissionActionId(action)) { + case "view": + currOverview[2] = "VAADIN:CIRCLE_THIN"; + break; + case "create": + currOverview[3] = "VAADIN:CIRCLE_THIN"; + break; + case "read": + currOverview[4] = "VAADIN:CIRCLE_THIN"; + break; + case "edit": + currOverview[5] = "VAADIN:CIRCLE_THIN"; + break; + case "delete": + currOverview[6] = "VAADIN:CIRCLE_THIN"; + break; + } + } + } + break; + } + return currOverview; +} \ No newline at end of file diff --git a/entity/PermissionSet_entity/PermissionSet_entity.aod b/entity/PermissionSet_entity/PermissionSet_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..cd1ac606d770e98ce5efd718723c8e78b1c799d1 --- /dev/null +++ b/entity/PermissionSet_entity/PermissionSet_entity.aod @@ -0,0 +1,107 @@ +<?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.5" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.5"> + <name>PermissionSet_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <title>Permission Set</title> + <contentTitleProcess>%aditoprj%/entity/PermissionSet_entity/contentTitleProcess.js</contentTitleProcess> + <iconId>VAADIN:SHIELD</iconId> + <recordContainer>db</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>AB_PERMISSIONSETID</name> + <title>Permission Set</title> + <valueProcess>%aditoprj%/entity/PermissionSet_entity/entityfields/ab_permissionsetid/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>AB_PERMISSIONSET_ID</name> + <title>Parent Permission</title> + </entityField> + <entityField> + <name>ENTITY_ID</name> + <title>Entity</title> + </entityField> + <entityField> + <name>ROLE_ID</name> + <title>Role</title> + </entityField> + <entityField> + <name>FIELD_ID</name> + <title>Field</title> + </entityField> + <entityField> + <name>ACCESSTYPE</name> + <title>Access Type</title> + </entityField> + <entityProvider> + <name>PermissionSets</name> + <fieldType>DEPENDENCY_IN</fieldType> + <dependencies> + <entityDependency> + <name>fb648b04-2815-42b6-a63a-188d26f39955</name> + <entityName>PermissionAdmin_entity</entityName> + <fieldName>PermissionSets</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + <entityConsumer> + <name>Permissions</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Permission_entity</entityName> + <fieldName>Permissions</fieldName> + </dependency> + <children> + <entityParameter> + <name>PermissionSetId_param</name> + <valueProcess>%aditoprj%/entity/PermissionSet_entity/entityfields/permissions/children/permissionsetid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + </entityFields> + <recordContainers> + <dbRecordContainer> + <name>db</name> + <alias>Data_alias</alias> + <linkInformation> + <linkInformation> + <name>a9991ed6-0f6a-4da3-b54c-0b1a3c9cf885</name> + <tableName>AB_PERMISSIONSET</tableName> + <primaryKey>AB_PERMISSIONSETID</primaryKey> + <isUIDTable v="false" /> + <readonly v="false" /> + </linkInformation> + </linkInformation> + <recordFieldMappings> + <dbRecordFieldMapping> + <name>AB_PERMISSIONSET_ID.value</name> + <recordfield>AB_PERMISSIONSET.AB_PERMISSIONSET_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>AB_PERMISSIONSETID.value</name> + <recordfield>AB_PERMISSIONSET.AB_PERMISSIONSETID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>ACCESSTYPE.value</name> + <recordfield>AB_PERMISSIONSET.ACCESSTYPE</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>ENTITY_ID.value</name> + <recordfield>AB_PERMISSIONSET.ENTITY_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>FIELD_ID.value</name> + <recordfield>AB_PERMISSIONSET.FIELD_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>ROLE_ID.value</name> + <recordfield>AB_PERMISSIONSET.ROLE_ID</recordfield> + </dbRecordFieldMapping> + </recordFieldMappings> + </dbRecordContainer> + </recordContainers> +</entity> diff --git a/entity/PermissionSet_entity/contentTitleProcess.js b/entity/PermissionSet_entity/contentTitleProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..cf6c802b90a0c12278ab252aba5b7f1af09f3731 --- /dev/null +++ b/entity/PermissionSet_entity/contentTitleProcess.js @@ -0,0 +1,18 @@ +import("system.vars"); +import("system.result"); + +var res = ""; + +switch (vars.get("$field.ACCESSTYPE")) { + case "E": + res += vars.get("$field.ENTITY_ID"); + break; + case "R": + res += "Record"; + break; + case "F": + res += vars.get("$field.FIELD_ID"); + break; +} + +result.string(res); \ No newline at end of file diff --git a/entity/PermissionSet_entity/entityfields/ab_permissionsetid/valueProcess.js b/entity/PermissionSet_entity/entityfields/ab_permissionsetid/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..099961e8eac8ab65338d5205add7b7b0401acb2f --- /dev/null +++ b/entity/PermissionSet_entity/entityfields/ab_permissionsetid/valueProcess.js @@ -0,0 +1,7 @@ +import("system.neon"); +import("system.result"); +import("system.util"); +import("system.vars"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW) + result.string(util.getNewUUID()); diff --git a/entity/PermissionSet_entity/entityfields/permissions/children/permissionsetid_param/valueProcess.js b/entity/PermissionSet_entity/entityfields/permissions/children/permissionsetid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..75cc39f22364c97ce32192a1d0c354b7c9b2e27b --- /dev/null +++ b/entity/PermissionSet_entity/entityfields/permissions/children/permissionsetid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.vars"); + +result.string(vars.get("$field.AB_PERMISSIONSETID")); \ No newline at end of file diff --git a/entity/Permission_entity/Permission_entity.aod b/entity/Permission_entity/Permission_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..4ae5db01e9cd609ad93ed1007bf53f8a7da858b6 --- /dev/null +++ b/entity/Permission_entity/Permission_entity.aod @@ -0,0 +1,100 @@ +<?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.5" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.5"> + <name>Permission_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <iconId>VAADIN:SHIELD</iconId> + <recordContainer>db</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>AB_PERMISSIONID</name> + <title>Permission</title> + <valueProcess>%aditoprj%/entity/Permission_entity/entityfields/ab_permissionid/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>AB_PERMISSIONSET_ID</name> + <title>Parent Permission</title> + </entityField> + <entityField> + <name>COND</name> + <title>Condition</title> + </entityField> + <entityField> + <name>CONDTYPE</name> + <title>Condition Type</title> + </entityField> + <entityConsumer> + <name>PermissionPermissionActions</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>PermissionAction_entity</entityName> + <fieldName>PermissionActions</fieldName> + </dependency> + <children> + <entityParameter> + <name>PermissionId_param</name> + <valueProcess>%aditoprj%/entity/Permission_entity/entityfields/permissionpermissionactions/children/permissionid_param/valueProcess.js</valueProcess> + <expose v="false" /> + <mandatory v="false" /> + </entityParameter> + </children> + </entityConsumer> + <entityProvider> + <name>Permissions</name> + <fieldType>DEPENDENCY_IN</fieldType> + <recordContainer>db</recordContainer> + <dependencies> + <entityDependency> + <name>f902d1b2-15c4-4fbc-93c4-17f76625e746</name> + <entityName>PermissionSet_entity</entityName> + <fieldName>Permissions</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + <entityParameter> + <name>PermissionSetId_param</name> + <expose v="true" /> + <triggerRecalculation v="true" /> + <mandatory v="true" /> + <description>PARAMETER</description> + </entityParameter> + </entityFields> + <recordContainers> + <dbRecordContainer> + <name>db</name> + <alias>Data_alias</alias> + <conditionProcess>%aditoprj%/entity/Permission_entity/recordcontainers/db/conditionProcess.js</conditionProcess> + <linkInformation> + <linkInformation> + <name>2061cedc-6d6f-4515-9ef8-8af77aba483e</name> + <tableName>AB_PERMISSION</tableName> + <primaryKey>AB_PERMISSIONID</primaryKey> + <isUIDTable v="false" /> + <readonly v="false" /> + </linkInformation> + </linkInformation> + <recordFieldMappings> + <dbRecordFieldMapping> + <name>COND.value</name> + <recordfield>AB_PERMISSION.COND</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>CONDTYPE.value</name> + <recordfield>AB_PERMISSION.CONDTYPE</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>AB_PERMISSIONID.value</name> + <recordfield>AB_PERMISSION.AB_PERMISSIONID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>AB_PERMISSIONSET_ID.value</name> + <recordfield>AB_PERMISSION.AB_PERMISSIONSET_ID</recordfield> + </dbRecordFieldMapping> + </recordFieldMappings> + </dbRecordContainer> + </recordContainers> +</entity> diff --git a/entity/Permission_entity/entityfields/ab_permissionid/valueProcess.js b/entity/Permission_entity/entityfields/ab_permissionid/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..11b755b5848286f96ecb1bfe998ec711f663c476 --- /dev/null +++ b/entity/Permission_entity/entityfields/ab_permissionid/valueProcess.js @@ -0,0 +1,7 @@ +import("system.neon"); +import("system.result"); +import("system.util"); +import("system.vars"); + +if(vars.get("$sys.operatingstate") == neon.OPERATINGSTATE_NEW) + result.string(util.getNewUUID()); \ No newline at end of file diff --git a/entity/Permission_entity/entityfields/permissionpermissionactions/children/permissionid_param/valueProcess.js b/entity/Permission_entity/entityfields/permissionpermissionactions/children/permissionid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..81cf4a044a683c7ccf5a3d4988fca7b5c0bbf3c2 --- /dev/null +++ b/entity/Permission_entity/entityfields/permissionpermissionactions/children/permissionid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.vars"); + +result.string(vars.get("$field.AB_PERMISSIONID")); \ No newline at end of file diff --git a/entity/Permission_entity/recordcontainers/db/conditionProcess.js b/entity/Permission_entity/recordcontainers/db/conditionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e3b2aadeab4e4fb4d304c110430f8e8393fb808a --- /dev/null +++ b/entity/Permission_entity/recordcontainers/db/conditionProcess.js @@ -0,0 +1,6 @@ +import("system.vars"); +import("system.db"); +import("system.result"); + +if (vars.exists("$param.PermissionSetId_param") && vars.get("$param.PermissionSetId_param")) + result.string(db.translateCondition("AB_PERMISSIONSET_ID = '" + vars.get("$param.PermissionSetId_param") + "'")); \ No newline at end of file diff --git a/entity/Person_entity/afterUiInit.js b/entity/Person_entity/afterUiInit.js index 031b635db2bf916a03eda91e8db23dc6c8bb5d35..40048a413712450e39dc819e7142ed9b2a48d820 100644 --- a/entity/Person_entity/afterUiInit.js +++ b/entity/Person_entity/afterUiInit.js @@ -1,9 +1,9 @@ -import("system.neon"); -import("system.vars"); -import("Context_lib"); -import("Attribute_lib"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); -} +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Person_entity/contentTitleProcess.js b/entity/Person_entity/contentTitleProcess.js index abaa3df1566528e8dc3e5aad91ac26ab26fe5418..68305e82bfdac45f9d0e8f2f92c77e6a01b1b6de 100644 --- a/entity/Person_entity/contentTitleProcess.js +++ b/entity/Person_entity/contentTitleProcess.js @@ -1,16 +1,16 @@ -import("system.vars"); -import("system.result"); -import("Util_lib"); -import("Contact_lib"); - -//do not use "FULL_NAME_fieldGroup" here since the field group must not include the orgname -var contact = new Contact(); -contact.salutation = vars.get("$field.SALUTATION"); -contact.title = vars.get("$field.TITLE"); -contact.firstname = vars.get("$field.FIRSTNAME"); -contact.middlename = vars.get("$field.MIDDLENAME"); -contact.lastname = vars.get("$field.LASTNAME"); -contact.organisationName = vars.get("$field.ORGANISATION_NAME"); - -var renderer = new ContactTitleRenderer(contact, null); +import("system.vars"); +import("system.result"); +import("Util_lib"); +import("Contact_lib"); + +//do not use "FULL_NAME_fieldGroup" here since the field group must not include the orgname +var contact = new Contact(); +contact.salutation = vars.get("$field.SALUTATION"); +contact.title = vars.get("$field.TITLE"); +contact.firstname = vars.get("$field.FIRSTNAME"); +contact.middlename = vars.get("$field.MIDDLENAME"); +contact.lastname = vars.get("$field.LASTNAME"); +contact.organisationName = vars.get("$field.ORGANISATION_NAME"); + +var renderer = new ContactTitleRenderer(contact, null); result.string(renderer.asString()); \ No newline at end of file diff --git a/entity/Person_entity/entityfields/address_id/valueProcess.js b/entity/Person_entity/entityfields/address_id/valueProcess.js index 96d98eb54f978592c408e075a0e8b8249e6daedc..b889cabd69681fb9ce8c0e756e68eb1833d4eeb0 100644 --- a/entity/Person_entity/entityfields/address_id/valueProcess.js +++ b/entity/Person_entity/entityfields/address_id/valueProcess.js @@ -1,14 +1,14 @@ -import("system.result"); -import("system.vars"); -import("StandardObject_lib"); - -// Check if the standard address is already set. -if (!vars.get("$field.ADDRESS_ID")) -{ - var possibleStandardAddressID = new StandardObject("Address", null, "Person", vars.get("$field.PERSONID")) - .onPersonValueChange(vars.get("$field.ORGANISATION_ID")); - - // If a possible standard addrss was found it should get applied to the field. - if (possibleStandardAddressID) - result.string(possibleStandardAddressID); +import("system.result"); +import("system.vars"); +import("StandardObject_lib"); + +// Check if the standard address is already set. +if (!vars.get("$field.ADDRESS_ID")) +{ + var possibleStandardAddressID = new StandardObject("Address", null, "Person", vars.get("$field.PERSONID")) + .onPersonValueChange(vars.get("$field.ORGANISATION_ID")); + + // If a possible standard addrss was found it should get applied to the field. + if (possibleStandardAddressID) + result.string(possibleStandardAddressID); } \ No newline at end of file diff --git a/entity/Person_entity/entityfields/addtocampaign/onActionProcess.js b/entity/Person_entity/entityfields/addtocampaign/onActionProcess.js index 90dbbcdf2911e2f7f594f6cf5aaf910cfb4a8cec..44dc17d6535e270d1a46d97643d22e3825bc9208 100644 --- a/entity/Person_entity/entityfields/addtocampaign/onActionProcess.js +++ b/entity/Person_entity/entityfields/addtocampaign/onActionProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("Campaign_lib"); - +import("system.vars"); +import("Campaign_lib"); + CampaignUtils.addParticipant(vars.getString("$field.CONTACTID")); \ No newline at end of file diff --git a/entity/Person_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/Person_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js index babb0e1760093b90e065d2202e4c0f871f3b6940..3d9e27e02fddb7859929d550e3fec80b3bdbf585 100644 --- a/entity/Person_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js +++ b/entity/Person_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - -result.string(vars.get("$field.CONTACTID")); +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.CONTACTID")); diff --git a/entity/Person_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js b/entity/Person_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js index babb0e1760093b90e065d2202e4c0f871f3b6940..3d9e27e02fddb7859929d550e3fec80b3bdbf585 100644 --- a/entity/Person_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js +++ b/entity/Person_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - -result.string(vars.get("$field.CONTACTID")); +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.CONTACTID")); diff --git a/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js b/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js index 497a88278adfae851d54cddb2968601c0cc58aaf..57283da6acec06f88e11a59fa92ba03cb2713f85 100644 --- a/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js +++ b/entity/Person_entity/entityfields/campaignactiongroup/children/addtocampaignfromtable/tooltipProcess.js @@ -1,4 +1,4 @@ -import("system.translate"); -import("system.result"); - +import("system.translate"); +import("system.result"); + result.string(translate.text("Add the selection to a campaign")); \ No newline at end of file diff --git a/entity/Person_entity/entityfields/contactandorganisationaddresses/children/organisationid_param/valueProcess.js b/entity/Person_entity/entityfields/contactandorganisationaddresses/children/organisationid_param/valueProcess.js index a3b647281edc9773de45eec7b7d8afe949f3eba2..9218a320118ee40a2c10d9ab91e5333afc9d0586 100644 --- a/entity/Person_entity/entityfields/contactandorganisationaddresses/children/organisationid_param/valueProcess.js +++ b/entity/Person_entity/entityfields/contactandorganisationaddresses/children/organisationid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.ORGANISATION_ID")); \ No newline at end of file diff --git a/entity/Person_entity/entityfields/contactrole/dropDownProcess.js b/entity/Person_entity/entityfields/contactrole/dropDownProcess.js index 96627ddf00215d0598ae85d2452acfd248cbe52a..1903319eb171d16ef0a0f2abbec471fcfceed321 100644 --- a/entity/Person_entity/entityfields/contactrole/dropDownProcess.js +++ b/entity/Person_entity/entityfields/contactrole/dropDownProcess.js @@ -1,9 +1,9 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var res = KeywordUtils.getEntryNamesByContainer($KeywordRegistry.contactContactrole()).map(function (e){ - return [e, e]; //currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers -}); - +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var res = KeywordUtils.getEntryNamesByContainer($KeywordRegistry.contactContactrole()).map(function (e){ + return [e, e]; //currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers +}); + result.object(res); \ No newline at end of file diff --git a/entity/Person_entity/entityfields/department/dropDownProcess.js b/entity/Person_entity/entityfields/department/dropDownProcess.js index 77d99fa219eb36618f38dbb344e4a345bb71d331..274a9e59a3e1c498b11367ff8260049bd20e1ccb 100644 --- a/entity/Person_entity/entityfields/department/dropDownProcess.js +++ b/entity/Person_entity/entityfields/department/dropDownProcess.js @@ -1,9 +1,9 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var res = KeywordUtils.getEntryNamesByContainer($KeywordRegistry.contactDepartment()).map(function (e){ - return [e, e]; //currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers -}); - +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var res = KeywordUtils.getEntryNamesByContainer($KeywordRegistry.contactDepartment()).map(function (e){ + return [e, e]; //currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers +}); + result.object(res); \ No newline at end of file diff --git a/entity/Person_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js b/entity/Person_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js index 4941f4e681715d0769512fba14d11801e4fc5d1f..55a2ffde25da29e08fa81b0713e470531ef7a57d 100644 --- a/entity/Person_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js +++ b/entity/Person_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js @@ -1,10 +1,10 @@ -import("system.vars"); -import("system.result"); -import("Context_lib"); - -var res = []; -res.push({id: vars.get("$field.CONTACTID"), tableNames: ["CONTACT", "COMMUNICATION", "ADDRESS", "AB_ATTRIBUTERELATION"]}); -res.push({id: vars.get("$field.PERSONID"), tableNames: ["PERSON"]}); - -res = JSON.stringify(res);//currently only strings can be passed as param +import("system.vars"); +import("system.result"); +import("Context_lib"); + +var res = []; +res.push({id: vars.get("$field.CONTACTID"), tableNames: ["CONTACT", "COMMUNICATION", "ADDRESS", "AB_ATTRIBUTERELATION"]}); +res.push({id: vars.get("$field.PERSONID"), tableNames: ["PERSON"]}); + +res = JSON.stringify(res);//currently only strings can be passed as param result.object(res); \ No newline at end of file diff --git a/entity/Person_entity/entityfields/organisation_id/onValueChange.js b/entity/Person_entity/entityfields/organisation_id/onValueChange.js index 928e32fa1fd71adc77ebb8a845d07a137cf372f1..81b4d673d8b8a4aa60d6efbd43c769daf9de5b6b 100644 --- a/entity/Person_entity/entityfields/organisation_id/onValueChange.js +++ b/entity/Person_entity/entityfields/organisation_id/onValueChange.js @@ -1,16 +1,16 @@ -import("system.logging"); -import("system.result"); -import("system.vars"); -import("system.neon"); -import("StandardObject_lib"); - -if (!vars.get("$field.ADDRESS_ID") || StandardObject.isOrganisationAddress(vars.get("$field.ADDRESS_ID"))) -{ - logging.log(vars.get("$field.ADDRESS_ID")) - var possibleStandardAddressID = new StandardObject("Address", null, "Person", vars.get("$field.PERSONID")) - .onPersonValueChange(vars.get("$field.ORGANISATION_ID")); - - // If a possible standard addrss was found it should get applied to the field. - if (possibleStandardAddressID) - neon.setFieldValue("$field.ADDRESS_ID", possibleStandardAddressID); +import("system.logging"); +import("system.result"); +import("system.vars"); +import("system.neon"); +import("StandardObject_lib"); + +if (!vars.get("$field.ADDRESS_ID") || StandardObject.isOrganisationAddress(vars.get("$field.ADDRESS_ID"))) +{ + logging.log(vars.get("$field.ADDRESS_ID")) + var possibleStandardAddressID = new StandardObject("Address", null, "Person", vars.get("$field.PERSONID")) + .onPersonValueChange(vars.get("$field.ORGANISATION_ID")); + + // If a possible standard addrss was found it should get applied to the field. + if (possibleStandardAddressID) + neon.setFieldValue("$field.ADDRESS_ID", possibleStandardAddressID); } \ No newline at end of file diff --git a/entity/Person_entity/entityfields/position/dropDownProcess.js b/entity/Person_entity/entityfields/position/dropDownProcess.js index a86d6820913b759ac976779f9c045378095b6d24..adcf8f6bac265af20af5daf32e9359f289a44c26 100644 --- a/entity/Person_entity/entityfields/position/dropDownProcess.js +++ b/entity/Person_entity/entityfields/position/dropDownProcess.js @@ -1,9 +1,9 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -var res = KeywordUtils.getEntryNamesByContainer($KeywordRegistry.contactPosition()).map(function (e){ - return [e, e]; //currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers -}); - +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +var res = KeywordUtils.getEntryNamesByContainer($KeywordRegistry.contactPosition()).map(function (e){ + return [e, e]; //currently the first column is ID, second view value - which is the same because there is no ID for keyword-containers +}); + result.object(res); \ No newline at end of file diff --git a/entity/Prod2prod_entity/entityfields/optional/dropDownProcess.js b/entity/Prod2prod_entity/entityfields/optional/dropDownProcess.js index b88d5392d1a40aa827f90e9dfcdd26303c4b1baa..1324968dfff10e56efe6268f8520572d56f21d1b 100644 --- a/entity/Prod2prod_entity/entityfields/optional/dropDownProcess.js +++ b/entity/Prod2prod_entity/entityfields/optional/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object([ - ["1", translate.text("Yes")] - ,["0", translate.text("No")] +import("system.translate"); +import("system.result"); + +result.object([ + ["1", translate.text("Yes")] + ,["0", translate.text("No")] ]); \ No newline at end of file diff --git a/entity/Prod2prod_entity/entityfields/takeprice/dropDownProcess.js b/entity/Prod2prod_entity/entityfields/takeprice/dropDownProcess.js index b88d5392d1a40aa827f90e9dfcdd26303c4b1baa..1324968dfff10e56efe6268f8520572d56f21d1b 100644 --- a/entity/Prod2prod_entity/entityfields/takeprice/dropDownProcess.js +++ b/entity/Prod2prod_entity/entityfields/takeprice/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object([ - ["1", translate.text("Yes")] - ,["0", translate.text("No")] +import("system.translate"); +import("system.result"); + +result.object([ + ["1", translate.text("Yes")] + ,["0", translate.text("No")] ]); \ No newline at end of file diff --git a/entity/Product_entity/afterUiInit.js b/entity/Product_entity/afterUiInit.js index 031b635db2bf916a03eda91e8db23dc6c8bb5d35..40048a413712450e39dc819e7142ed9b2a48d820 100644 --- a/entity/Product_entity/afterUiInit.js +++ b/entity/Product_entity/afterUiInit.js @@ -1,9 +1,9 @@ -import("system.neon"); -import("system.vars"); -import("Context_lib"); -import("Attribute_lib"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); -} +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Product_entity/contentTitleProcess.js b/entity/Product_entity/contentTitleProcess.js index 4f684f8c2a25b7c72fb953b045428c87e7271751..6433ecc48d17f9f793fb7198cc754b43243be5d6 100644 --- a/entity/Product_entity/contentTitleProcess.js +++ b/entity/Product_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.PRODUCTNAME")); \ No newline at end of file diff --git a/entity/Product_entity/entityfields/advertising/dropDownProcess.js b/entity/Product_entity/entityfields/advertising/dropDownProcess.js index f31ec18e895bf707037b8c3986728f184322152e..a3de7af1049c76fa7f5d88af79c5b06882612d0f 100644 --- a/entity/Product_entity/entityfields/advertising/dropDownProcess.js +++ b/entity/Product_entity/entityfields/advertising/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object([ - ["Y", translate.text("Yes")] - ,["N", translate.text("No")] +import("system.translate"); +import("system.result"); + +result.object([ + ["Y", translate.text("Yes")] + ,["N", translate.text("No")] ]); \ No newline at end of file diff --git a/entity/Product_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js b/entity/Product_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js index 7ba31ad1ef4e48a4004091b122ef98b05f98db8d..7598a4d5c3157ac172221db5e6889680dca1aa9b 100644 --- a/entity/Product_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js +++ b/entity/Product_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js @@ -1,10 +1,10 @@ -import("system.vars"); -import("system.result"); -import("Context_lib"); - -var res = []; -res.push({id: vars.get("$field.PRODUCTID"), tableNames: ["AB_ATTRIBUTERELATION", "PRODUCTPRICE", "ORGANISATION"]}); // TEXTBLOCK missing -res.push({id: vars.get("$field.PRODUCTID"), tableNames: ["PRODUCT"]}); - -res = JSON.stringify(res);//currently only strings can be passed as param +import("system.vars"); +import("system.result"); +import("Context_lib"); + +var res = []; +res.push({id: vars.get("$field.PRODUCTID"), tableNames: ["AB_ATTRIBUTERELATION", "PRODUCTPRICE", "ORGANISATION"]}); // TEXTBLOCK missing +res.push({id: vars.get("$field.PRODUCTID"), tableNames: ["PRODUCT"]}); + +res = JSON.stringify(res);//currently only strings can be passed as param result.object(res); \ No newline at end of file diff --git a/entity/Product_entity/entityfields/status/dropDownProcess.js b/entity/Product_entity/entityfields/status/dropDownProcess.js index b88d5392d1a40aa827f90e9dfcdd26303c4b1baa..1324968dfff10e56efe6268f8520572d56f21d1b 100644 --- a/entity/Product_entity/entityfields/status/dropDownProcess.js +++ b/entity/Product_entity/entityfields/status/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object([ - ["1", translate.text("Yes")] - ,["0", translate.text("No")] +import("system.translate"); +import("system.result"); + +result.object([ + ["1", translate.text("Yes")] + ,["0", translate.text("No")] ]); \ No newline at end of file diff --git a/entity/Product_entity/recordcontainers/db/orderClauseProcess.js b/entity/Product_entity/recordcontainers/db/orderClauseProcess.js index 9413afd74b16e991bf4cfb744a9d335e1648c839..677983a0818e8c98692291df7ea56279c1f3fa13 100644 --- a/entity/Product_entity/recordcontainers/db/orderClauseProcess.js +++ b/entity/Product_entity/recordcontainers/db/orderClauseProcess.js @@ -1,6 +1,6 @@ -import("system.result"); -import("system.db"); - -result.object({ - "PRODUCT.PRODUCTCODE": db.ASCENDING +import("system.result"); +import("system.db"); + +result.object({ + "PRODUCT.PRODUCTCODE": db.ASCENDING }); \ No newline at end of file diff --git a/entity/Productprice_entity/entityfields/buysell/dropDownProcess.js b/entity/Productprice_entity/entityfields/buysell/dropDownProcess.js index 827f2d7a130b4b475d4a486628908a9c5929df90..ca188d4d686e0b72292134c55555cf77b77180fa 100644 --- a/entity/Productprice_entity/entityfields/buysell/dropDownProcess.js +++ b/entity/Productprice_entity/entityfields/buysell/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object([ - ["SP", translate.text("SP")] - , ["PP", translate.text("PP")] +import("system.translate"); +import("system.result"); + +result.object([ + ["SP", translate.text("SP")] + , ["PP", translate.text("PP")] ]); \ No newline at end of file diff --git a/entity/Productprice_entity/entityfields/buysell/valueProcess.js b/entity/Productprice_entity/entityfields/buysell/valueProcess.js index f8481bc40d44f280c10a48148b53c71f1b5d0247..01ee58248bff468509662ad0996dbe1677f50c87 100644 --- a/entity/Productprice_entity/entityfields/buysell/valueProcess.js +++ b/entity/Productprice_entity/entityfields/buysell/valueProcess.js @@ -1,6 +1,6 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) result.string("SP"); \ No newline at end of file diff --git a/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js b/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js index b659c0bc4d1a64ec7a7e22a2132763523003f5e9..d471ab772a44717ed2cc4dab0d9314ad3b2b1d74 100644 --- a/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js +++ b/entity/Productprice_entity/entityfields/fromquantity/valueProcess.js @@ -1,8 +1,8 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) - result.string("1"); -else +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) + result.string("1"); +else result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/Productprice_entity/entityfields/price/valueProcess.js b/entity/Productprice_entity/entityfields/price/valueProcess.js index 79b1b6752e24ab20067845ce191ee075eab584f2..d3ae757ad3cd88baacbe57711bcef341c43ea6f4 100644 --- a/entity/Productprice_entity/entityfields/price/valueProcess.js +++ b/entity/Productprice_entity/entityfields/price/valueProcess.js @@ -1,6 +1,6 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) result.string("0"); \ No newline at end of file diff --git a/entity/Productprice_entity/entityfields/productprices/titlePluralProcess.js b/entity/Productprice_entity/entityfields/productprices/titlePluralProcess.js index 6d9df5d404b2a6e464b204029df540f71e8c5a0b..ef01df1172a2eaa1fdd872f2ddb390779359cff4 100644 --- a/entity/Productprice_entity/entityfields/productprices/titlePluralProcess.js +++ b/entity/Productprice_entity/entityfields/productprices/titlePluralProcess.js @@ -1,7 +1,7 @@ -import("system.vars"); -import("system.translate"); -import("system.result"); - -//title should be "Conditions" in Organisation -if (vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param")) +import("system.vars"); +import("system.translate"); +import("system.result"); + +//title should be "Conditions" in Organisation +if (vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param")) result.string(translate.text("Conditions")); \ No newline at end of file diff --git a/entity/Productprice_entity/entityfields/valid_from/onValidation.js b/entity/Productprice_entity/entityfields/valid_from/onValidation.js index 6d142999dafedcbed0a2eeca9725a0d82f3ba72f..5ce849d2e8bcbeebffe0f55d327e380f6d74b257 100644 --- a/entity/Productprice_entity/entityfields/valid_from/onValidation.js +++ b/entity/Productprice_entity/entityfields/valid_from/onValidation.js @@ -1,9 +1,9 @@ -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("Entity_lib"); - -var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.VALID_FROM")); - -if (DateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.VALID_TO")) === false) +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Entity_lib"); + +var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.VALID_FROM")); + +if (DateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.VALID_TO")) === false) result.string(DateUtils.getValidationFailString()); \ No newline at end of file diff --git a/entity/Productprice_entity/entityfields/valid_from/valueProcess.js b/entity/Productprice_entity/entityfields/valid_from/valueProcess.js index 7f859f943373ed46e60a1e4786e51216a6a00126..e2eb1642a6585c84aed1018bc17273b0b2b2f048 100644 --- a/entity/Productprice_entity/entityfields/valid_from/valueProcess.js +++ b/entity/Productprice_entity/entityfields/valid_from/valueProcess.js @@ -1,11 +1,11 @@ -import("system.result"); -import("system.vars"); -import("system.neon"); -import("Date_lib"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) -{ - result.string(DateUtils.getTodayUTC()); -} -else +import("system.result"); +import("system.vars"); +import("system.neon"); +import("Date_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + result.string(DateUtils.getTodayUTC()); +} +else result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/Productprice_entity/entityfields/valid_to/onValidation.js b/entity/Productprice_entity/entityfields/valid_to/onValidation.js index 28693efe69f97ec8a33fddd928127117866f264a..a25d6a1147f17bff05f894c55618532bd96a0807 100644 --- a/entity/Productprice_entity/entityfields/valid_to/onValidation.js +++ b/entity/Productprice_entity/entityfields/valid_to/onValidation.js @@ -1,9 +1,9 @@ -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("Entity_lib"); - -var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.VALID_TO")); - -if (DateUtils.validateBeginnBeforeEnd(vars.get("$field.VALID_FROM"), cEnd) === false) +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Entity_lib"); + +var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.VALID_TO")); + +if (DateUtils.validateBeginnBeforeEnd(vars.get("$field.VALID_FROM"), cEnd) === false) result.string(DateUtils.getValidationFailString()); \ No newline at end of file diff --git a/entity/Productprice_entity/entityfields/vat/valueProcess.js b/entity/Productprice_entity/entityfields/vat/valueProcess.js index 79b1b6752e24ab20067845ce191ee075eab584f2..d3ae757ad3cd88baacbe57711bcef341c43ea6f4 100644 --- a/entity/Productprice_entity/entityfields/vat/valueProcess.js +++ b/entity/Productprice_entity/entityfields/vat/valueProcess.js @@ -1,6 +1,6 @@ -import("system.vars"); -import("system.result"); -import("system.neon"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +import("system.vars"); +import("system.result"); +import("system.neon"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) result.string("0"); \ No newline at end of file diff --git a/entity/Role_entity/Role_entity.aod b/entity/Role_entity/Role_entity.aod new file mode 100644 index 0000000000000000000000000000000000000000..f67054398e250b23a01af37fa94a0e6b1d0c891e --- /dev/null +++ b/entity/Role_entity/Role_entity.aod @@ -0,0 +1,90 @@ +<?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.5" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.5"> + <name>Role_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:USER_CHECK</icon> + <title>Roles</title> + <contentTitleProcess>%aditoprj%/entity/Role_entity/contentTitleProcess.js</contentTitleProcess> + <iconId>VAADIN:USER_CHECK</iconId> + <recordContainer>jDito</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>ROLETITLE</name> + <title>Title</title> + </entityField> + <entityField> + <name>ROLETYPE</name> + <title>Type</title> + </entityField> + <entityField> + <name>ROLEDESCRIPTION</name> + <title>Description</title> + </entityField> + <entityField> + <name>UID</name> + </entityField> + <entityField> + <name>USERCOUNT</name> + </entityField> + <entityConsumer> + <name>Permissions</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>PermissionDetail_entity</entityName> + <fieldName>Permissions</fieldName> + </dependency> + <children> + <entityParameter> + <name>RoleTitle_param</name> + <valueProcess>%aditoprj%/entity/Role_entity/entityfields/permissions/children/roletitle_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>PermissionOverviews</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>PermissionOverview_entity</entityName> + <fieldName>PermissionOverviews</fieldName> + </dependency> + <children> + <entityParameter> + <name>RoleTitle_param</name> + <valueProcess>%aditoprj%/entity/Role_entity/entityfields/permissionoverviews/children/roletitle_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityProvider> + <name>Roles</name> + <fieldType>DEPENDENCY_IN</fieldType> + <recordContainer>jDito</recordContainer> + <dependencies> + <entityDependency> + <name>64d800d0-4db5-4b95-ab6a-9197b83cc09c</name> + <entityName>PermissionDetail_entity</entityName> + <fieldName>Roles</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + </entityFields> + <recordContainers> + <jDitoRecordContainer> + <name>jDito</name> + <jDitoRecordAlias>Data_alias</jDitoRecordAlias> + <contentProcess>%aditoprj%/entity/Role_entity/recordcontainers/jdito/contentProcess.js</contentProcess> + <recordFields> + <element>UID.value</element> + <element>ROLETITLE.value</element> + <element>ROLETYPE.value</element> + <element>ROLEDESCRIPTION.value</element> + <element>USERCOUNT.value</element> + </recordFields> + </jDitoRecordContainer> + </recordContainers> +</entity> diff --git a/entity/Role_entity/contentTitleProcess.js b/entity/Role_entity/contentTitleProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e0504aa037f722756ed5ec305e131fdec6d05b54 --- /dev/null +++ b/entity/Role_entity/contentTitleProcess.js @@ -0,0 +1,3 @@ +import("system.vars"); +import("system.result"); +result.string(vars.get("$field.ROLETITLE")); \ No newline at end of file diff --git a/entity/Role_entity/entityfields/permissionoverviews/children/roletitle_param/valueProcess.js b/entity/Role_entity/entityfields/permissionoverviews/children/roletitle_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2c71e53a498b1ad3d5a0f915aacb4a836b81657f --- /dev/null +++ b/entity/Role_entity/entityfields/permissionoverviews/children/roletitle_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.UID")); \ No newline at end of file diff --git a/entity/Role_entity/entityfields/permissions/children/roletitle_param/valueProcess.js b/entity/Role_entity/entityfields/permissions/children/roletitle_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..2c71e53a498b1ad3d5a0f915aacb4a836b81657f --- /dev/null +++ b/entity/Role_entity/entityfields/permissions/children/roletitle_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.UID")); \ No newline at end of file diff --git a/entity/Role_entity/recordcontainers/jdito/contentProcess.js b/entity/Role_entity/recordcontainers/jdito/contentProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d0d7a7bd99d501767243942d7ab9e90ad536c93e --- /dev/null +++ b/entity/Role_entity/recordcontainers/jdito/contentProcess.js @@ -0,0 +1,27 @@ +import("system.translate"); +import("system.vars"); +import("system.result"); +import("system.tools"); + +var lang = vars.get("$sys.clientlanguage");//e.g. "de" +var country = vars.get("$sys.clientcountry");//e.g. "DE" +locale = country ? lang + "_" + country : lang; +var selectedRole = vars.get("$local.idvalues"); +var roles = tools.getAllRoles(); +var res = []; + +if (selectedRole == null) { + for each (let role in roles) { + res.push([role[1] + "_" + role[0], role[0], role[1], role[2], 0]); + } +} else { + for each (let role in roles) { + if (role[1] + "_" + role[0] == selectedRole) { + let numberOfUsersInSelectedRole = tools.getUsersWithRole(selectedRole).length; + res.push([role[1] + "_" + role[0], role[0], role[1], role[2], numberOfUsersInSelectedRole + translate.text(" User", locale)]); + break; + } + } +} + +result.object(res.sort()); \ No newline at end of file diff --git a/entity/SalesprojectAnalyses_entity/entityfields/overall_forecast/valueProcess.js b/entity/SalesprojectAnalyses_entity/entityfields/overall_forecast/valueProcess.js index 3bd92b4f6f69e42d1a38d3123c35175e1c38e12a..ee0d25216e614abb98916577c77e51f3460f1995 100644 --- a/entity/SalesprojectAnalyses_entity/entityfields/overall_forecast/valueProcess.js +++ b/entity/SalesprojectAnalyses_entity/entityfields/overall_forecast/valueProcess.js @@ -1,13 +1,13 @@ -import("system.datetime"); -import("system.db"); -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("Sql_lib"); -import("system.SQLTYPES") - -var forecast = db.cell(SqlCondition.begin() - .andPrepare("SALESPROJECT_FORECAST.DATE_START", datetime.toDate(vars.get("$sys.date"), "yyyy"), "year(#) = ?", SQLTYPES.INTEGER) - .buildSql("select sum(VOLUME) from SALESPROJECT_FORECAST", "1=2")); - +import("system.datetime"); +import("system.db"); +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Sql_lib"); +import("system.SQLTYPES") + +var forecast = db.cell(SqlCondition.begin() + .andPrepare("SALESPROJECT_FORECAST.DATE_START", datetime.toDate(vars.get("$sys.date"), "yyyy"), "year(#) = ?", SQLTYPES.INTEGER) + .buildSql("select sum(VOLUME) from SALESPROJECT_FORECAST", "1=2")); + result.string(forecast); \ No newline at end of file diff --git a/entity/SalesprojectAnalyses_entity/recordcontainers/jdito/contentProcess.js b/entity/SalesprojectAnalyses_entity/recordcontainers/jdito/contentProcess.js index 82cab2177f7b315ead9d1eb3e67520d5c3385869..5644063ebfe273c2a884aaf47543397e52f015ad 100644 --- a/entity/SalesprojectAnalyses_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/SalesprojectAnalyses_entity/recordcontainers/jdito/contentProcess.js @@ -1,33 +1,33 @@ -import("system.logging"); -import("system.vars"); -import("system.datetime"); -import("system.db"); -import("system.result"); -import("system.translate"); -import("Data_lib"); -import("Keyword_lib"); -import("Money_lib"); -import("KeywordRegistry_basic"); - -// load data - -var phases = db.table("select KEYID, AB_KEYWORD_ENTRY.TITLE, count(PHASE), AB_KEYWORD_ENTRY.SORTING \n\ -from SALESPROJECT join AB_KEYWORD_ENTRY on KEYID = PHASE and CONTAINER = 'SalesprojectPhase' and SORTING <> 7 \n\ -group by KEYID, AB_KEYWORD_ENTRY.TITLE, AB_KEYWORD_ENTRY.SORTING order by SORTING"); - -for(i = 0; i < phases.length; i++){ - if(phases[i][1] == "${SALESPROJECT_OFFER}"){ - phases[i][1] = "Offer"; - } -} - -result.object(phases); - - - - - - - - - +import("system.logging"); +import("system.vars"); +import("system.datetime"); +import("system.db"); +import("system.result"); +import("system.translate"); +import("Data_lib"); +import("Keyword_lib"); +import("Money_lib"); +import("KeywordRegistry_basic"); + +// load data + +var phases = db.table("select KEYID, AB_KEYWORD_ENTRY.TITLE, count(PHASE), AB_KEYWORD_ENTRY.SORTING \n\ +from SALESPROJECT join AB_KEYWORD_ENTRY on KEYID = PHASE and CONTAINER = 'SalesprojectPhase' and SORTING <> 7 \n\ +group by KEYID, AB_KEYWORD_ENTRY.TITLE, AB_KEYWORD_ENTRY.SORTING order by SORTING"); + +for(i = 0; i < phases.length; i++){ + if(phases[i][1] == "${SALESPROJECT_OFFER}"){ + phases[i][1] = "Offer"; + } +} + +result.object(phases); + + + + + + + + + diff --git a/entity/SalesprojectClassificationEntry_entity/entityfields/value/dropDownProcess.js b/entity/SalesprojectClassificationEntry_entity/entityfields/value/dropDownProcess.js index 57c7437c6aa05047d04e92079a651a62d45e805c..5d0ee97ca4895600cfb0dbf6575ce679df16c9f6 100644 --- a/entity/SalesprojectClassificationEntry_entity/entityfields/value/dropDownProcess.js +++ b/entity/SalesprojectClassificationEntry_entity/entityfields/value/dropDownProcess.js @@ -1,8 +1,8 @@ -import("system.result"); -import("system.vars"); -import("Keyword_lib"); - -var type = vars.get("$field.TYPE"); -if (type) { - result.object(LegacyKeywordUtils.getStandardArray(type)); +import("system.result"); +import("system.vars"); +import("Keyword_lib"); + +var type = vars.get("$field.TYPE"); +if (type) { + result.object(LegacyKeywordUtils.getStandardArray(type)); } \ No newline at end of file diff --git a/entity/SalesprojectCompetition_entity/entityfields/attributes/children/filteredattributes_param/valueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/attributes/children/filteredattributes_param/valueProcess.js index 76d502d1caf3f69fdc72c4fb9b90c4ce9631375f..4c3c4db34af5e5049ddd9303f9fb7d53a835809b 100644 --- a/entity/SalesprojectCompetition_entity/entityfields/attributes/children/filteredattributes_param/valueProcess.js +++ b/entity/SalesprojectCompetition_entity/entityfields/attributes/children/filteredattributes_param/valueProcess.js @@ -1,7 +1,7 @@ -import("system.result"); - -result.object([ - '8af37871-d407-4414-98ad-e64dbaa5794a', // Price politics - '558419b2-6113-4060-b88d-cc6324754765', // Strength - '71226196-2812-4d70-b90f-c3e2c14fd4d1' // Weakness +import("system.result"); + +result.object([ + '8af37871-d407-4414-98ad-e64dbaa5794a', // Price politics + '558419b2-6113-4060-b88d-cc6324754765', // Strength + '71226196-2812-4d70-b90f-c3e2c14fd4d1' // Weakness ]); \ No newline at end of file diff --git a/entity/SalesprojectForecast_entity/entityfields/date_start/valueProcess.js b/entity/SalesprojectForecast_entity/entityfields/date_start/valueProcess.js index 7f859f943373ed46e60a1e4786e51216a6a00126..e2eb1642a6585c84aed1018bc17273b0b2b2f048 100644 --- a/entity/SalesprojectForecast_entity/entityfields/date_start/valueProcess.js +++ b/entity/SalesprojectForecast_entity/entityfields/date_start/valueProcess.js @@ -1,11 +1,11 @@ -import("system.result"); -import("system.vars"); -import("system.neon"); -import("Date_lib"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) -{ - result.string(DateUtils.getTodayUTC()); -} -else +import("system.result"); +import("system.vars"); +import("system.neon"); +import("Date_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + result.string(DateUtils.getTodayUTC()); +} +else result.string(vars.get("$this.value")); \ No newline at end of file diff --git a/entity/SalesprojectForecast_entity/entityfields/volume/titleProcess.js b/entity/SalesprojectForecast_entity/entityfields/volume/titleProcess.js index f7b76c335483a7410366d5c56db6ae8ba7917091..2f7e4592c80cd966c399f5a8b8bab59257d92337 100644 --- a/entity/SalesprojectForecast_entity/entityfields/volume/titleProcess.js +++ b/entity/SalesprojectForecast_entity/entityfields/volume/titleProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("system.translate"); - +import("system.result"); +import("system.translate"); + result.string(translate.text("${VOLUME_MONEY}") + " (" + translate.text("${EURO_SIGN}") + ")"); \ No newline at end of file diff --git a/entity/SalesprojectMilestone_entity/contentTitleProcess.js b/entity/SalesprojectMilestone_entity/contentTitleProcess.js index 658e8105ef136f6e374f80363f1c1d0ace5fba7e..474d304708cb9ee5be375f81044a2529c335641a 100644 --- a/entity/SalesprojectMilestone_entity/contentTitleProcess.js +++ b/entity/SalesprojectMilestone_entity/contentTitleProcess.js @@ -1,10 +1,10 @@ -import("system.vars"); -import("system.translate"); -import("system.result"); - -if (vars.exists("$field.TYPE") && vars.get("$field.TYPE")) -{ - result.string(translate.text("Milestones") + " " + translate.text(vars.get("$field.TYPE"))); -} -else +import("system.vars"); +import("system.translate"); +import("system.result"); + +if (vars.exists("$field.TYPE") && vars.get("$field.TYPE")) +{ + result.string(translate.text("Milestones") + " " + translate.text(vars.get("$field.TYPE"))); +} +else result.string(translate.text("Milestones")); \ No newline at end of file diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod index a6fd70bdd13356369bb73e9bec5abc46410d98c8..cfce7d604131e4600e11dbf1748e921cb08cd4d0 100644 --- a/entity/Salesproject_entity/Salesproject_entity.aod +++ b/entity/Salesproject_entity/Salesproject_entity.aod @@ -5,6 +5,7 @@ <title>Salesproject</title> <contentTitleProcess>%aditoprj%/entity/Salesproject_entity/contentTitleProcess.js</contentTitleProcess> <afterUiInit>%aditoprj%/entity/Salesproject_entity/afterUiInit.js</afterUiInit> + <onValidation>%aditoprj%/entity/Salesproject_entity/onValidation.js</onValidation> <afterOperatingState>%aditoprj%/entity/Salesproject_entity/afterOperatingState.js</afterOperatingState> <iconId>VAADIN:BOOK_DOLLAR</iconId> <titlePlural>Salesprojects</titlePlural> @@ -35,7 +36,6 @@ <outputFormat>dd.MM.yyyy</outputFormat> <inputFormat>dd.MM.yyyy</inputFormat> <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/enddate/valueProcess.js</valueProcess> - <onValidation>%aditoprj%/entity/Salesproject_entity/entityfields/enddate/onValidation.js</onValidation> </entityField> <entityField> <name>INFO</name> @@ -86,7 +86,6 @@ <inputFormat>dd.MM.yyyy</inputFormat> <mandatory v="true" /> <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/startdate/valueProcess.js</valueProcess> - <onValidation>%aditoprj%/entity/Salesproject_entity/entityfields/startdate/onValidation.js</onValidation> </entityField> <entityField> <name>STATE</name> @@ -108,6 +107,7 @@ <outputFormat>0</outputFormat> <inputFormat>0</inputFormat> <titleProcess>%aditoprj%/entity/Salesproject_entity/entityfields/volume/titleProcess.js</titleProcess> + <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/volume/displayValueProcess.js</displayValueProcess> </entityField> <entityConsumer> <name>Organisations</name> diff --git a/entity/Salesproject_entity/afterUiInit.js b/entity/Salesproject_entity/afterUiInit.js index ac1ce38fae75b5e38fc7043f5710ce3fd07ce7be..e30b0b283b229b405cc9ac5bcedcecbfd38128d9 100644 --- a/entity/Salesproject_entity/afterUiInit.js +++ b/entity/Salesproject_entity/afterUiInit.js @@ -1,9 +1,9 @@ -import("system.neon"); -import("system.vars"); -import("Context_lib"); -import("Attribute_lib"); - -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) -{ - AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); -} +import("system.neon"); +import("system.vars"); +import("Context_lib"); +import("Attribute_lib"); + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) +{ + AttributeRelationUtils.presetMandatoryAttributes(ContextUtils.getCurrentContextId(), "Attributes"); +} diff --git a/entity/Salesproject_entity/contentTitleProcess.js b/entity/Salesproject_entity/contentTitleProcess.js index 96a0a030e216f22364464faa38814240f086e885..5465ff4efe7615371cc39ef88551a10e36412f4c 100644 --- a/entity/Salesproject_entity/contentTitleProcess.js +++ b/entity/Salesproject_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.PROJECTTITLE")); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js b/entity/Salesproject_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js index 2b119ebfa1944164fd2a1cb645511740bec9015e..48a285123e08e29f74151f2b81b6758c8b28463a 100644 --- a/entity/Salesproject_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js +++ b/entity/Salesproject_entity/entityfields/attributes/children/objectrowid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.SALESPROJECTID")); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/attributes/children/objecttype_param/valueProcess.js b/entity/Salesproject_entity/entityfields/attributes/children/objecttype_param/valueProcess.js index e8b4e72e74a0a4696ff39e83135aa6100ef908c0..431bcc952145cb451362fc69754f84ff1514bac5 100644 --- a/entity/Salesproject_entity/entityfields/attributes/children/objecttype_param/valueProcess.js +++ b/entity/Salesproject_entity/entityfields/attributes/children/objecttype_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("Context_lib"); - -result.string(ContextUtils.getCurrentContextId()); +import("system.result"); +import("Context_lib"); + +result.string(ContextUtils.getCurrentContextId()); diff --git a/entity/Salesproject_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js b/entity/Salesproject_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js index 2b119ebfa1944164fd2a1cb645511740bec9015e..48a285123e08e29f74151f2b81b6758c8b28463a 100644 --- a/entity/Salesproject_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js +++ b/entity/Salesproject_entity/entityfields/attributetree/children/objectrowid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.SALESPROJECTID")); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js b/entity/Salesproject_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js index e8b4e72e74a0a4696ff39e83135aa6100ef908c0..431bcc952145cb451362fc69754f84ff1514bac5 100644 --- a/entity/Salesproject_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js +++ b/entity/Salesproject_entity/entityfields/attributetree/children/objecttype_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("Context_lib"); - -result.string(ContextUtils.getCurrentContextId()); +import("system.result"); +import("Context_lib"); + +result.string(ContextUtils.getCurrentContextId()); diff --git a/entity/Salesproject_entity/entityfields/enddate/onValidation.js b/entity/Salesproject_entity/entityfields/enddate/onValidation.js deleted file mode 100644 index d1b85c480d185c06004adb867f43be8907e6b75f..0000000000000000000000000000000000000000 --- a/entity/Salesproject_entity/entityfields/enddate/onValidation.js +++ /dev/null @@ -1,9 +0,0 @@ -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("Entity_lib"); - -var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.ENDDATE")); - -if (DateUtils.validateBeginnBeforeEnd(vars.get("$field.STARTDATE"), cEnd) === false) - result.string(DateUtils.getValidationFailString()); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/enddate/valueProcess.js b/entity/Salesproject_entity/entityfields/enddate/valueProcess.js index 9cd6d6bfeb34744525ad8934e0fb07ab27a742ec..4cfebdb8acb8403994a4c535f0319cca81bd7017 100644 --- a/entity/Salesproject_entity/entityfields/enddate/valueProcess.js +++ b/entity/Salesproject_entity/entityfields/enddate/valueProcess.js @@ -6,6 +6,4 @@ import("Date_lib"); if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) { result.string(DateUtils.getDateIncrementedByYears(DateUtils.getTodayUTC(), 1)); -} -else - result.string(vars.get("$this.value")); \ No newline at end of file +} \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/inactivetime/valueProcess.js b/entity/Salesproject_entity/entityfields/inactivetime/valueProcess.js index 6b34c36109ff89747f452c0fde2be42f8fcc974d..ac06e819274086b19cdb2c46e8b93252b4e6277d 100644 --- a/entity/Salesproject_entity/entityfields/inactivetime/valueProcess.js +++ b/entity/Salesproject_entity/entityfields/inactivetime/valueProcess.js @@ -1,20 +1,20 @@ -import("system.datetime"); -import("system.translate"); -import("system.result"); -import("system.vars"); -import("ActivityTask_lib"); -import("Date_lib"); - -var entryDate = ActivityUtils.getLastActivityDate(vars.get("$field.SALESPROJECTID")); -if (!entryDate) - entryDate = vars.get("$field.STARTDATE"); - -var roleoutDate = vars.getString("$field.ENDDATE"); -var daysPassed ; -if (!roleoutDate || roleoutDate < datetime.date()) - daysPassed = 0; -else - daysPassed = DateUtils.getDayDifference(entryDate); - -if (daysPassed != null) +import("system.datetime"); +import("system.translate"); +import("system.result"); +import("system.vars"); +import("ActivityTask_lib"); +import("Date_lib"); + +var entryDate = ActivityUtils.getLastActivityDate(vars.get("$field.SALESPROJECTID")); +if (!entryDate) + entryDate = vars.get("$field.STARTDATE"); + +var roleoutDate = vars.getString("$field.ENDDATE"); +var daysPassed ; +if (!roleoutDate || roleoutDate < datetime.date()) + daysPassed = 0; +else + daysPassed = DateUtils.getDayDifference(entryDate); + +if (daysPassed != null) result.string(daysPassed); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js b/entity/Salesproject_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js index 97523412f94b7d77b72b9a0973be454ca2a0bf04..316546cb5cd3f41b3b4106b3a5bd45e2c09bec5b 100644 --- a/entity/Salesproject_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js +++ b/entity/Salesproject_entity/entityfields/loghistoryconsumer/children/tablenames_param/valueProcess.js @@ -1,10 +1,10 @@ -import("system.vars"); -import("system.result"); -import("Context_lib"); - -var res = []; -res.push({id: vars.get("$field.SALESPROJECTID"), tableNames: ["AB_ATTRIBUTERELATION", "ACTIVITY"]}); -res.push({id: vars.get("$field.SALESPROJECTID"), tableNames: ["SALESPROJECT"]}); - -res = JSON.stringify(res);//currently only strings can be passed as param +import("system.vars"); +import("system.result"); +import("Context_lib"); + +var res = []; +res.push({id: vars.get("$field.SALESPROJECTID"), tableNames: ["AB_ATTRIBUTERELATION", "ACTIVITY"]}); +res.push({id: vars.get("$field.SALESPROJECTID"), tableNames: ["SALESPROJECT"]}); + +res = JSON.stringify(res);//currently only strings can be passed as param result.object(res); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/reasons/dropDownProcess.js b/entity/Salesproject_entity/entityfields/reasons/dropDownProcess.js index 650da662b99acacb43ca5af76c2556762f8a33f1..6708ee09d016cdd6a5ea50a1a9a16cda5074a68a 100644 --- a/entity/Salesproject_entity/entityfields/reasons/dropDownProcess.js +++ b/entity/Salesproject_entity/entityfields/reasons/dropDownProcess.js @@ -1,5 +1,5 @@ -import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - +import("system.result"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + result.object(KeywordUtils.getEntryNamesAndIdsByContainer("SalesprojectWonLost")); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/remainingtime/valueProcess.js b/entity/Salesproject_entity/entityfields/remainingtime/valueProcess.js index c93dbc277c9c3767b856d939b4a5dd9bdc678016..f043e7089116780530bbd3a666bb1e00a411a9ab 100644 --- a/entity/Salesproject_entity/entityfields/remainingtime/valueProcess.js +++ b/entity/Salesproject_entity/entityfields/remainingtime/valueProcess.js @@ -1,15 +1,15 @@ -import("system.datetime"); -import("system.eMath"); -import("system.vars"); -import("system.result"); - -var roleoutDate = vars.getString("$field.ENDDATE"); -var res = 0; - -if (roleoutDate) -{ - dateDiff = eMath.subInt(roleoutDate, datetime.date());//diff in ms - if (dateDiff > 0)//negative remaining time is pointless, so let's just show 0 - res = eMath.divInt(dateDiff, datetime.ONE_DAY); -} +import("system.datetime"); +import("system.eMath"); +import("system.vars"); +import("system.result"); + +var roleoutDate = vars.getString("$field.ENDDATE"); +var res = 0; + +if (roleoutDate) +{ + dateDiff = eMath.subInt(roleoutDate, datetime.date());//diff in ms + if (dateDiff > 0)//negative remaining time is pointless, so let's just show 0 + res = eMath.divInt(dateDiff, datetime.ONE_DAY); +} result.string(res); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/runtime/valueProcess.js b/entity/Salesproject_entity/entityfields/runtime/valueProcess.js index 95c1884c758e81fabdeadcafcc2208a8e9747805..4de13aa71c83d16018fc47ffc508f427d9a3ea08 100644 --- a/entity/Salesproject_entity/entityfields/runtime/valueProcess.js +++ b/entity/Salesproject_entity/entityfields/runtime/valueProcess.js @@ -1,17 +1,17 @@ -import("system.datetime"); -import("system.eMath"); -import("system.vars"); -import("system.result"); - -var startDate = vars.getString("$field.STARTDATE"); -var endDate = vars.getString("$field.ENDDATE"); -if (!endDate || datetime.date() < endDate) - endDate = datetime.date(); - -var dateDiff = eMath.subInt(endDate, startDate);//diff in ms -if (dateDiff > 0) - dateDiff = eMath.divInt(dateDiff, datetime.ONE_DAY); -else - dateDiff = 0; - +import("system.datetime"); +import("system.eMath"); +import("system.vars"); +import("system.result"); + +var startDate = vars.getString("$field.STARTDATE"); +var endDate = vars.getString("$field.ENDDATE"); +if (!endDate || datetime.date() < endDate) + endDate = datetime.date(); + +var dateDiff = eMath.subInt(endDate, startDate);//diff in ms +if (dateDiff > 0) + dateDiff = eMath.divInt(dateDiff, datetime.ONE_DAY); +else + dateDiff = 0; + result.string(dateDiff); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/startdate/onValidation.js b/entity/Salesproject_entity/entityfields/startdate/onValidation.js deleted file mode 100644 index ab28629c8c2499b2993f38a7b7bda86ba83adf79..0000000000000000000000000000000000000000 --- a/entity/Salesproject_entity/entityfields/startdate/onValidation.js +++ /dev/null @@ -1,10 +0,0 @@ -import("system.neon"); -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("Entity_lib"); - -var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.STARTDATE")); - -if (DateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.ENDDATE")) === false) - result.string(DateUtils.getValidationFailString()); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/startdate/valueProcess.js b/entity/Salesproject_entity/entityfields/startdate/valueProcess.js index 6b67243627ceda867da63df21c0600d67442cbbf..e4ef3a804fc5b107cf7312e8133b2ee149882fdd 100644 --- a/entity/Salesproject_entity/entityfields/startdate/valueProcess.js +++ b/entity/Salesproject_entity/entityfields/startdate/valueProcess.js @@ -6,6 +6,4 @@ import("Date_lib"); if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) { result.string(DateUtils.getTodayUTC()); -} -else - result.string(vars.get("$this.value")); \ No newline at end of file +} \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/state/valueProcess.js b/entity/Salesproject_entity/entityfields/state/valueProcess.js index abb032b5aee7f5975d2638190fb6f782adc4e219..9836e0f1a934f72506ef3e4bbb4c513c7441ee6e 100644 --- a/entity/Salesproject_entity/entityfields/state/valueProcess.js +++ b/entity/Salesproject_entity/entityfields/state/valueProcess.js @@ -1,6 +1,7 @@ +import("system.logging"); import("system.neon"); import("system.vars"); import("system.result"); - +logging.log(vars.get("$field.STARTDATE")) if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) result.string("483bcaeb-1e5b-4772-b54e-7d7d8aa65712"); //Open \ No newline at end of file diff --git a/entity/Salesproject_entity/onValidation.js b/entity/Salesproject_entity/onValidation.js new file mode 100644 index 0000000000000000000000000000000000000000..de8d3eaf90926cec053f92d16e35d4b8d5fd9fab --- /dev/null +++ b/entity/Salesproject_entity/onValidation.js @@ -0,0 +1,9 @@ +import("system.result"); +import("Date_lib"); +import("system.vars"); + +var startDate = vars.get("$field.STARTDATE"); +var endDate = vars.get("$field.ENDDATE"); + +if (DateUtils.validateBeginnBeforeEnd(startDate, endDate) === false) + result.string(DateUtils.getValidationFailString()); \ No newline at end of file diff --git a/entity/Salesproject_entity/recordcontainers/db/orderClauseProcess.js b/entity/Salesproject_entity/recordcontainers/db/orderClauseProcess.js index 319594ed7e2cd8b1860d7426852261155c9cf13b..71ac17c11183c3560820cbe2df01dccddd1e3b4d 100644 --- a/entity/Salesproject_entity/recordcontainers/db/orderClauseProcess.js +++ b/entity/Salesproject_entity/recordcontainers/db/orderClauseProcess.js @@ -1,6 +1,6 @@ -import("system.result"); -import("system.db"); - -result.object({ - "SALESPROJECT.PROJECTTITLE": db.ASCENDING +import("system.result"); +import("system.db"); + +result.object({ + "SALESPROJECT.PROJECTTITLE": db.ASCENDING }); \ No newline at end of file diff --git a/entity/SalutationDistinct_entity/contentTitleProcess.js b/entity/SalutationDistinct_entity/contentTitleProcess.js index 16c85500b5355a72548030867e3d300661e9d4aa..2c71e53a498b1ad3d5a0f915aacb4a836b81657f 100644 --- a/entity/SalutationDistinct_entity/contentTitleProcess.js +++ b/entity/SalutationDistinct_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.UID")); \ No newline at end of file diff --git a/entity/SalutationTitleDistinct_entity/contentTitleProcess.js b/entity/SalutationTitleDistinct_entity/contentTitleProcess.js index 16c85500b5355a72548030867e3d300661e9d4aa..2c71e53a498b1ad3d5a0f915aacb4a836b81657f 100644 --- a/entity/SalutationTitleDistinct_entity/contentTitleProcess.js +++ b/entity/SalutationTitleDistinct_entity/contentTitleProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$field.UID")); \ No newline at end of file diff --git a/entity/Stock_entity/entityfields/in_out/dropDownProcess.js b/entity/Stock_entity/entityfields/in_out/dropDownProcess.js index b74e336ebe8445103a66ba54e683e94ebccfd5b9..7208b0e3c5dff167cb8b2ec947d7452276316cdd 100644 --- a/entity/Stock_entity/entityfields/in_out/dropDownProcess.js +++ b/entity/Stock_entity/entityfields/in_out/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.result"); -import("system.translate"); - -result.object([ - ["1", translate.text("IN")], - ["0", translate.text("OUT")] +import("system.result"); +import("system.translate"); + +result.object([ + ["1", translate.text("IN")], + ["0", translate.text("OUT")] ]); \ No newline at end of file diff --git a/entity/Task_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js b/entity/Task_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js index c95f5ea0c85673d6f68abfdbef56f55fb63597c1..b1de17feabf44602473081b4b6fdc3413a0a5975 100644 --- a/entity/Task_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js +++ b/entity/Task_entity/entityfields/documents/children/assignmentrowid_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("system.vars"); - +import("system.result"); +import("system.vars"); + result.string(vars.get("$sys.uid")); \ No newline at end of file diff --git a/entity/Task_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js b/entity/Task_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js index d3aecacb237b618671518dc550354184d3a3d4e3..dfebd33cba03daf10f8ef6ef9873e2861b19876a 100644 --- a/entity/Task_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js +++ b/entity/Task_entity/entityfields/documents/children/assignmenttable_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.result"); -import("system.vars"); - +import("system.result"); +import("system.vars"); + result.string("TASK"); \ No newline at end of file diff --git a/entity/Task_entity/entityfields/filteronlyowntask_param/valueProcess.js b/entity/Task_entity/entityfields/filteronlyowntask_param/valueProcess.js index e0f3ec47e2b963a577204e41d9847dd6ad0725a8..49227f04c1137a33783d118fe92a6ff45f348065 100644 --- a/entity/Task_entity/entityfields/filteronlyowntask_param/valueProcess.js +++ b/entity/Task_entity/entityfields/filteronlyowntask_param/valueProcess.js @@ -1,3 +1,3 @@ -import("system.result"); - +import("system.result"); + result.string(false); \ No newline at end of file diff --git a/entity/Task_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js b/entity/Task_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js index 74e588ab40311a8579dc8f58638aea090d8746b0..de24aee0cb1eb3f406c0071ab0ffe2e9eec88b75 100644 --- a/entity/Task_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js +++ b/entity/Task_entity/entityfields/loghistories/children/tablenames_param/valueProcess.js @@ -1,9 +1,9 @@ -import("system.vars"); -import("system.result"); -import("Context_lib"); - -var res = []; -res.push({id: vars.get("$field.TASKID"), tableNames: ["TASK"]}); - -res = JSON.stringify(res);//currently only strings can be passed as param +import("system.vars"); +import("system.result"); +import("Context_lib"); + +var res = []; +res.push({id: vars.get("$field.TASKID"), tableNames: ["TASK"]}); + +res = JSON.stringify(res);//currently only strings can be passed as param result.object(res); \ No newline at end of file diff --git a/entity/Task_entity/entityfields/maindocuments/stateProcess.js b/entity/Task_entity/entityfields/maindocuments/stateProcess.js index 5458354c9a9f66b8f11aa4e84682bbc666bea207..788c43bfb9e51fb5bcf1c53dde9d810595835cf3 100644 --- a/entity/Task_entity/entityfields/maindocuments/stateProcess.js +++ b/entity/Task_entity/entityfields/maindocuments/stateProcess.js @@ -1,14 +1,14 @@ -import("system.result"); -import("system.db"); -import("system.vars"); -import("system.neon"); -import("Sql_lib"); - -if (0 == db.getBinaryCount("TASK", "DOCUMENT", vars.get("$sys.uid"), SqlUtils.getSystemAlias(), "MAINDOCUMENT")) -{ - result.string(neon.COMPONENTSTATE_INVISIBLE); -} -else -{ - result.string(neon.COMPONENTSTATE_EDITABLE); +import("system.result"); +import("system.db"); +import("system.vars"); +import("system.neon"); +import("Sql_lib"); + +if (0 == db.getBinaryCount("TASK", "DOCUMENT", vars.get("$sys.uid"), SqlUtils.getSystemAlias(), "MAINDOCUMENT")) +{ + result.string(neon.COMPONENTSTATE_INVISIBLE); +} +else +{ + result.string(neon.COMPONENTSTATE_EDITABLE); } \ No newline at end of file diff --git a/entity/Task_entity/entityfields/maturity_date/onValidation.js b/entity/Task_entity/entityfields/maturity_date/onValidation.js index c9150833ab7afe40eb4f700569d03ad1e0ba8706..dec89edbf15b366b3ac13922619e585f8c1a0ab3 100644 --- a/entity/Task_entity/entityfields/maturity_date/onValidation.js +++ b/entity/Task_entity/entityfields/maturity_date/onValidation.js @@ -1,9 +1,9 @@ -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("Entity_lib"); - -var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.MATURITY_DATE")); - -if (DateUtils.validateBeginnBeforeEnd(vars.get("$field.START_DATE"), cEnd) === false) +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Entity_lib"); + +var cEnd = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.MATURITY_DATE")); + +if (DateUtils.validateBeginnBeforeEnd(vars.get("$field.START_DATE"), cEnd) === false) result.string(DateUtils.getValidationFailString()); \ No newline at end of file diff --git a/entity/Task_entity/entityfields/maturity_date/valueProcess.js b/entity/Task_entity/entityfields/maturity_date/valueProcess.js index 080e7e81c25ffad28875eee2a0525bfc2a7f768d..d205c6478586ec9f272f1abe52d5fdd3414d7634 100644 --- a/entity/Task_entity/entityfields/maturity_date/valueProcess.js +++ b/entity/Task_entity/entityfields/maturity_date/valueProcess.js @@ -1,12 +1,12 @@ -import("system.eMath"); -import("system.datetime"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) -{ - var startDate = vars.get("$field.START_DATE"); - var presetVal = eMath.addInt(startDate, datetime.ONE_WEEK); - result.string(presetVal); +import("system.eMath"); +import("system.datetime"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + var startDate = vars.get("$field.START_DATE"); + var presetVal = eMath.addInt(startDate, datetime.ONE_WEEK); + result.string(presetVal); } \ No newline at end of file diff --git a/entity/Task_entity/entityfields/priority_icon/colorProcess.js b/entity/Task_entity/entityfields/priority_icon/colorProcess.js index f15523e7246f5c3c3c6336802201bbdc9c1ad65b..a78d7b1ee74f2a6200bdd2982e818d40102d5020 100644 --- a/entity/Task_entity/entityfields/priority_icon/colorProcess.js +++ b/entity/Task_entity/entityfields/priority_icon/colorProcess.js @@ -1,21 +1,21 @@ -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.taskPriority$low(): - result.string(neon.PRIORITY_LOW_COLOR); - break; - case $KeywordRegistry.taskPriority$medium(): - result.string(neon.PRIORITY_MEDIUM_COLOR); - break; - case $KeywordRegistry.taskPriority$high(): - result.string(neon.PRIORITY_HIGH_COLOR); - break; -} - +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.taskPriority$low(): + result.string(neon.PRIORITY_LOW_COLOR); + break; + case $KeywordRegistry.taskPriority$medium(): + result.string(neon.PRIORITY_MEDIUM_COLOR); + break; + case $KeywordRegistry.taskPriority$high(): + result.string(neon.PRIORITY_HIGH_COLOR); + break; +} + diff --git a/entity/Task_entity/entityfields/priority_icon/valueProcess.js b/entity/Task_entity/entityfields/priority_icon/valueProcess.js index 5b0877f532698524100e6621a47e0559c094f45e..1d877139db73d94e330e88594b9476b9afc85b9d 100644 --- a/entity/Task_entity/entityfields/priority_icon/valueProcess.js +++ b/entity/Task_entity/entityfields/priority_icon/valueProcess.js @@ -1,20 +1,20 @@ -import("system.vars"); -import("KeywordRegistry_basic"); -import("system.result"); - -switch(vars.getString("$field.STATUS")) -{ - case $KeywordRegistry.taskStatus$new(): - result.string("NEON:STATUS_NOT_STARTED"); - break; - case $KeywordRegistry.taskStatus$inProcess(): - result.string("NEON:STATUS_IN_PROGRESS"); - break; - case $KeywordRegistry.taskStatus$waiting(): - result.string("NEON:STATUS_WAITING"); - break; - case $KeywordRegistry.taskStatus$ended(): - result.string("NEON:STATUS_DONE"); - break; -} - +import("system.vars"); +import("KeywordRegistry_basic"); +import("system.result"); + +switch(vars.getString("$field.STATUS")) +{ + case $KeywordRegistry.taskStatus$new(): + result.string("NEON:STATUS_NOT_STARTED"); + break; + case $KeywordRegistry.taskStatus$inProcess(): + result.string("NEON:STATUS_IN_PROGRESS"); + break; + case $KeywordRegistry.taskStatus$waiting(): + result.string("NEON:STATUS_WAITING"); + break; + case $KeywordRegistry.taskStatus$ended(): + result.string("NEON:STATUS_DONE"); + break; +} + diff --git a/entity/Task_entity/entityfields/protectionlevel/dropDownProcess.js b/entity/Task_entity/entityfields/protectionlevel/dropDownProcess.js index d1e073b04225f1399a3243e951d4f7d81937ec4e..b7afd80d5b3bea244cfac3ecc4c5989660fff356 100644 --- a/entity/Task_entity/entityfields/protectionlevel/dropDownProcess.js +++ b/entity/Task_entity/entityfields/protectionlevel/dropDownProcess.js @@ -1,7 +1,7 @@ -import("system.translate"); -import("system.result"); - -result.object([ - ["1", translate.text("Yes")] - ,["0", translate.text("No")] +import("system.translate"); +import("system.result"); + +result.object([ + ["1", translate.text("Yes")] + ,["0", translate.text("No")] ]); \ No newline at end of file diff --git a/entity/Task_entity/entityfields/start_date/onValidation.js b/entity/Task_entity/entityfields/start_date/onValidation.js index 1953e078675ae172044ed6a888bdf05b846c131b..afad30d552400a5cb23f3c668ef9514209a8e7b4 100644 --- a/entity/Task_entity/entityfields/start_date/onValidation.js +++ b/entity/Task_entity/entityfields/start_date/onValidation.js @@ -1,10 +1,10 @@ -import("system.neon"); -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("Entity_lib"); - -var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.START_DATE")); - -if (DateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.MATURITY_DATE")) === false) +import("system.neon"); +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Entity_lib"); + +var cStart = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.START_DATE")); + +if (DateUtils.validateBeginnBeforeEnd(cStart, vars.get("$field.MATURITY_DATE")) === false) result.string(DateUtils.getValidationFailString()); \ No newline at end of file diff --git a/entity/Task_entity/entityfields/start_date/valueProcess.js b/entity/Task_entity/entityfields/start_date/valueProcess.js index 5b098ba003d06ee9125c54f3f53559b2155ea8e3..331eb9c3b542df4d726b2e1c2bb1c5718f93fa1b 100644 --- a/entity/Task_entity/entityfields/start_date/valueProcess.js +++ b/entity/Task_entity/entityfields/start_date/valueProcess.js @@ -1,12 +1,12 @@ -import("system.datetime"); -import("system.result"); -import("system.neon"); -import("system.vars"); - -if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) -{ - var presetVal = datetime.date(); - //TODO: depending on what happens in #1032274 we need to manually set the resolution to MINUTES or not (which means we've to set everything smaller than MINUTES (Seconds, etc.) to zero) - presetVal = Math.floor(presetVal / datetime.ONE_MINUTE) * datetime.ONE_MINUTE; - result.string(presetVal); +import("system.datetime"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + var presetVal = datetime.date(); + //TODO: depending on what happens in #1032274 we need to manually set the resolution to MINUTES or not (which means we've to set everything smaller than MINUTES (Seconds, etc.) to zero) + presetVal = Math.floor(presetVal / datetime.ONE_MINUTE) * datetime.ONE_MINUTE; + result.string(presetVal); } \ No newline at end of file diff --git a/entity/Task_entity/recordcontainers/db/conditionProcess.js b/entity/Task_entity/recordcontainers/db/conditionProcess.js index 923b39eb1ad3e4f8da08275b3786b33bf2ed135c..1aa0331dada93a3eaae1f0b074c473132e0c7efc 100644 --- a/entity/Task_entity/recordcontainers/db/conditionProcess.js +++ b/entity/Task_entity/recordcontainers/db/conditionProcess.js @@ -1,29 +1,29 @@ -import("Employee_lib"); -import("system.vars"); -import("system.db"); -import("system.result"); -import("Sql_lib"); - -var cond = new SqlCondition(); -var alternativeFallbackCondition = "1 = 1"; - -if (vars.getString("$param.FilterOnlyOwnTask_param") == "true") -{ - var ownContactId = EmployeeUtils.getCurrentContactId(); - if (ownContactId) - cond.andPrepareIfSet("TASK.EDITOR_CONTACT_ID", ownContactId); - else - alternativeFallbackCondition = "1 = 2"; -} -if (vars.exists("$param.RowId_param") && vars.get("$param.RowId_param") && vars.exists("$param.ObjectId_param") && vars.get("$param.ObjectId_param")) -{ - var activityLinkCond = SqlCondition.begin().andPrepareVars("TASKLINK.OBJECT_ROWID", "$param.RowId_param") - .andPrepareVars("TASKLINK.OBJECT_TYPE", "$param.ObjectId_param"); - - // TODO: more performant way than IN. Maybe a join? - cond.and(db.translateStatement(activityLinkCond.buildSql("TASK.TASKID in (select TASKLINK.TASK_ID from TASKLINK", "1=2", ")"))) -} - -//TODO: use a preparedCondition when available #1030812 #1034026 -var resCond = db.translateCondition(cond.build(alternativeFallbackCondition)); -result.string(resCond); +import("Employee_lib"); +import("system.vars"); +import("system.db"); +import("system.result"); +import("Sql_lib"); + +var cond = new SqlCondition(); +var alternativeFallbackCondition = "1 = 1"; + +if (vars.getString("$param.FilterOnlyOwnTask_param") == "true") +{ + var ownContactId = EmployeeUtils.getCurrentContactId(); + if (ownContactId) + cond.andPrepareIfSet("TASK.EDITOR_CONTACT_ID", ownContactId); + else + alternativeFallbackCondition = "1 = 2"; +} +if (vars.exists("$param.RowId_param") && vars.get("$param.RowId_param") && vars.exists("$param.ObjectId_param") && vars.get("$param.ObjectId_param")) +{ + var activityLinkCond = SqlCondition.begin().andPrepareVars("TASKLINK.OBJECT_ROWID", "$param.RowId_param") + .andPrepareVars("TASKLINK.OBJECT_TYPE", "$param.ObjectId_param"); + + // TODO: more performant way than IN. Maybe a join? + cond.and(db.translateStatement(activityLinkCond.buildSql("TASK.TASKID in (select TASKLINK.TASK_ID from TASKLINK", "1=2", ")"))) +} + +//TODO: use a preparedCondition when available #1030812 #1034026 +var resCond = db.translateCondition(cond.build(alternativeFallbackCondition)); +result.string(resCond); diff --git a/entity/TurnoverTree_entity/entityfields/maxyear_param/documentation.adoc b/entity/TurnoverTree_entity/entityfields/maxyear_param/documentation.adoc index fcbd74f60e6720f1d9085e894eb9220ec9ce8e85..41c0e56728a0d6285cef115daaeea42e8701490c 100644 --- a/entity/TurnoverTree_entity/entityfields/maxyear_param/documentation.adoc +++ b/entity/TurnoverTree_entity/entityfields/maxyear_param/documentation.adoc @@ -1,3 +1,3 @@ -this parameter is for setting the maximum year to show. - +this parameter is for setting the maximum year to show. + The default is the current year. \ No newline at end of file diff --git a/entity/TurnoverTree_entity/entityfields/maxyear_param/valueProcess.js b/entity/TurnoverTree_entity/entityfields/maxyear_param/valueProcess.js index 652de6453d7648618499d56b211e46eccefc2493..47266266859432316da688566e9dc790e07b41db 100644 --- a/entity/TurnoverTree_entity/entityfields/maxyear_param/valueProcess.js +++ b/entity/TurnoverTree_entity/entityfields/maxyear_param/valueProcess.js @@ -1,5 +1,5 @@ -import("system.result"); -import("system.vars"); -import("system.datetime"); - +import("system.result"); +import("system.vars"); +import("system.datetime"); + result.string(datetime.toDate(vars.get("$sys.date"), "yyyy")); \ No newline at end of file diff --git a/entity/TurnoverTree_entity/entityfields/yearcounttoshow_param/documentation.adoc b/entity/TurnoverTree_entity/entityfields/yearcounttoshow_param/documentation.adoc index a0783738ca4add70cc06867ecfe633dd35f7d086..e4e887b1aad3a8f3b8fc952430af42cce83e779d 100644 --- a/entity/TurnoverTree_entity/entityfields/yearcounttoshow_param/documentation.adoc +++ b/entity/TurnoverTree_entity/entityfields/yearcounttoshow_param/documentation.adoc @@ -1,3 +1,3 @@ -This parameter is for setting the number of years to show. - +This parameter is for setting the number of years to show. + Default is 4. \ No newline at end of file diff --git a/entity/TurnoverTree_entity/entityfields/yearcounttoshow_param/valueProcess.js b/entity/TurnoverTree_entity/entityfields/yearcounttoshow_param/valueProcess.js index 02fc6e39ebb2c279000ffa389aa42a31bc2f6076..a27733d4726f7a86fa1f9e4b956d6462d47adf5b 100644 --- a/entity/TurnoverTree_entity/entityfields/yearcounttoshow_param/valueProcess.js +++ b/entity/TurnoverTree_entity/entityfields/yearcounttoshow_param/valueProcess.js @@ -1,3 +1,3 @@ -import("system.result"); - +import("system.result"); + result.string("4"); \ No newline at end of file diff --git a/entity/TurnoverTree_entity/recordcontainers/jdito/contentProcess.js b/entity/TurnoverTree_entity/recordcontainers/jdito/contentProcess.js index e9ab2d319ba83e196acb2e09e5122e5767c62f30..84bc46e9e44282f8b28d87aaffd23ce01e78fd45 100644 --- a/entity/TurnoverTree_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/TurnoverTree_entity/recordcontainers/jdito/contentProcess.js @@ -1,106 +1,106 @@ -import("Turnover_lib"); -import("system.vars"); -import("system.result"); -import("Money_lib"); -import("Util_lib"); -import("system.datetime"); -import("KeywordRegistry_basic"); -import("Keyword_lib"); -import("system.translate"); - -var turnoverCategory = translate.text('Turnover'); -var forecastCategory = translate.text('Forecast'); - -var maxYear = parseInt(vars.get("$param.MaxYear_param")); -var yearCountToShow = parseInt(vars.get("$param.YearCountToShow_param")); -var minYear = maxYear - yearCountToShow + 1; - -var turnover = TurnoverUtil.getTurnoverData(maxYear, yearCountToShow); -var forecast = TurnoverUtil.getForecastData(maxYear, yearCountToShow); - -var columns = { - type: 0, - year: 1, - month: 2, - discount: 3, - vat: 4, - price: 5, - quantity: 6, - groupcodeId: 7, - groupcodeName: 8 -}; - -// combine both data sources - - -var treeData = []; -var countData = {}; - -turnover.forEach(function(row) -{ - var monthDate = new Date(row[columns.year], row[columns.month]-1); - monthDate = datetime.toDate(monthDate.getTime(), "MMM yyyy", "UTC"); - _addCount([row[columns.year], [row[columns.month], monthDate], [row[columns.groupcodeId], row[columns.groupcodeName]]], row[columns.type], row[columns.year], row[columns.month], - MoneyUtils.getGross( - (row[columns.vat] ? parseFloat(row[columns.vat]) : 0.0), - (row[columns.price] ? parseFloat(row[columns.price]) : 0.0), - (row[columns.quantity] ? parseFloat(row[columns.quantity]) : 0.0), - (row[columns.discount] ? parseFloat(row[columns.discount]) : 0.0))); -}); - -forecast.forEach(function(row) -{ - var monthDate = new Date(row[columns.year], row[columns.month]-1); - monthDate = datetime.toDate(monthDate.getTime(), "MMM yyyy", "UTC"); - _addCount([row[columns.year], [row[columns.month], monthDate], [row[columns.groupcodeId], row[columns.groupcodeName]]], row[columns.type], row[columns.year], row[columns.month], row[columns.price]); -}); - -// create tree -for (let key in countData) { - var countDataSet = countData[key]; - treeData.push([key, countDataSet.parent, countDataSet.groupName, countDataSet.category, countDataSet[turnoverCategory], countDataSet[forecastCategory], parseInt(countDataSet.year), parseInt(countDataSet.month), parseInt(countDataSet.layer)]); -} - -treeData = TreeUtils.treeOrderBy(treeData, 8, [[6, true], [7, false], [2, false]]) -result.object(treeData); - -/** - * add the counts to countData for the given key and value - * @param {Array} pKeys an array containing all keys for this value. If the x-value for one key is different from the key-value: add an array [key, value] instead of only the key - * the first key is year - * @param {String} pCategory the category to add - * @param {integer} pYear the year - * @param {integer} pMonth the month - * @param {float} pValue the value to display - */ -function _addCount(pKeys, pCategory, pYear, pMonth, pValue) { - var key = ""; - - for (let i = 0; i < pKeys.length; i++) { - let keyId; - let keyName; - - if (typeof pKeys[i] != "object") - { - keyId = pKeys[i]; - keyName = pKeys[i]; - } - else // handle array: first is id seccond is name for X-value - { - keyId = pKeys[i][0]; - keyName = pKeys[i][1]; - } - var parent = key; - - key += ";" + keyId; - - if (countData[key] == undefined) - { - countData[key] = {parent: parent, category: pCategory, groupName: keyName, data: pKeys[i], year: pYear, month: pMonth, layer: i}; // keys[0] is the category - countData[key][forecastCategory] = 0.0; - countData[key][turnoverCategory] = 0.0; - } - - countData[key][pCategory] += parseFloat(pValue); - } +import("Turnover_lib"); +import("system.vars"); +import("system.result"); +import("Money_lib"); +import("Util_lib"); +import("system.datetime"); +import("KeywordRegistry_basic"); +import("Keyword_lib"); +import("system.translate"); + +var turnoverCategory = translate.text('Turnover'); +var forecastCategory = translate.text('Forecast'); + +var maxYear = parseInt(vars.get("$param.MaxYear_param")); +var yearCountToShow = parseInt(vars.get("$param.YearCountToShow_param")); +var minYear = maxYear - yearCountToShow + 1; + +var turnover = TurnoverUtil.getTurnoverData(maxYear, yearCountToShow); +var forecast = TurnoverUtil.getForecastData(maxYear, yearCountToShow); + +var columns = { + type: 0, + year: 1, + month: 2, + discount: 3, + vat: 4, + price: 5, + quantity: 6, + groupcodeId: 7, + groupcodeName: 8 +}; + +// combine both data sources + + +var treeData = []; +var countData = {}; + +turnover.forEach(function(row) +{ + var monthDate = new Date(row[columns.year], row[columns.month]-1); + monthDate = datetime.toDate(monthDate.getTime(), "MMM yyyy", "UTC"); + _addCount([row[columns.year], [row[columns.month], monthDate], [row[columns.groupcodeId], row[columns.groupcodeName]]], row[columns.type], row[columns.year], row[columns.month], + MoneyUtils.getGross( + (row[columns.vat] ? parseFloat(row[columns.vat]) : 0.0), + (row[columns.price] ? parseFloat(row[columns.price]) : 0.0), + (row[columns.quantity] ? parseFloat(row[columns.quantity]) : 0.0), + (row[columns.discount] ? parseFloat(row[columns.discount]) : 0.0))); +}); + +forecast.forEach(function(row) +{ + var monthDate = new Date(row[columns.year], row[columns.month]-1); + monthDate = datetime.toDate(monthDate.getTime(), "MMM yyyy", "UTC"); + _addCount([row[columns.year], [row[columns.month], monthDate], [row[columns.groupcodeId], row[columns.groupcodeName]]], row[columns.type], row[columns.year], row[columns.month], row[columns.price]); +}); + +// create tree +for (let key in countData) { + var countDataSet = countData[key]; + treeData.push([key, countDataSet.parent, countDataSet.groupName, countDataSet.category, countDataSet[turnoverCategory], countDataSet[forecastCategory], parseInt(countDataSet.year), parseInt(countDataSet.month), parseInt(countDataSet.layer)]); +} + +treeData = TreeUtils.treeOrderBy(treeData, 8, [[6, true], [7, false], [2, false]]) +result.object(treeData); + +/** + * add the counts to countData for the given key and value + * @param {Array} pKeys an array containing all keys for this value. If the x-value for one key is different from the key-value: add an array [key, value] instead of only the key + * the first key is year + * @param {String} pCategory the category to add + * @param {integer} pYear the year + * @param {integer} pMonth the month + * @param {float} pValue the value to display + */ +function _addCount(pKeys, pCategory, pYear, pMonth, pValue) { + var key = ""; + + for (let i = 0; i < pKeys.length; i++) { + let keyId; + let keyName; + + if (typeof pKeys[i] != "object") + { + keyId = pKeys[i]; + keyName = pKeys[i]; + } + else // handle array: first is id seccond is name for X-value + { + keyId = pKeys[i][0]; + keyName = pKeys[i][1]; + } + var parent = key; + + key += ";" + keyId; + + if (countData[key] == undefined) + { + countData[key] = {parent: parent, category: pCategory, groupName: keyName, data: pKeys[i], year: pYear, month: pMonth, layer: i}; // keys[0] is the category + countData[key][forecastCategory] = 0.0; + countData[key][turnoverCategory] = 0.0; + } + + countData[key][pCategory] += parseFloat(pValue); + } } \ No newline at end of file diff --git a/entity/Turnover_entity/entityfields/turnover_tree/children/maxyear_param/valueProcess.js b/entity/Turnover_entity/entityfields/turnover_tree/children/maxyear_param/valueProcess.js index 55220f39547358d4ac27319394796362654d50fc..0c4b80a35219a342f7c821dcbe957380ae526cc2 100644 --- a/entity/Turnover_entity/entityfields/turnover_tree/children/maxyear_param/valueProcess.js +++ b/entity/Turnover_entity/entityfields/turnover_tree/children/maxyear_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$param.MaxYear_param")); \ No newline at end of file diff --git a/entity/Turnover_entity/entityfields/turnover_tree/children/yearcounttoshow_param/valueProcess.js b/entity/Turnover_entity/entityfields/turnover_tree/children/yearcounttoshow_param/valueProcess.js index 6769ee4809dd12cbe5af03ca76deeb956e801965..4747aca3e08e3fc4736fd25c5d54ca19e935d529 100644 --- a/entity/Turnover_entity/entityfields/turnover_tree/children/yearcounttoshow_param/valueProcess.js +++ b/entity/Turnover_entity/entityfields/turnover_tree/children/yearcounttoshow_param/valueProcess.js @@ -1,4 +1,4 @@ -import("system.vars"); -import("system.result"); - +import("system.vars"); +import("system.result"); + result.string(vars.get("$param.YearCountToShow_param")); \ No newline at end of file diff --git a/entity/Turnover_entity/recordcontainers/jdito/contentProcess.js b/entity/Turnover_entity/recordcontainers/jdito/contentProcess.js index 4f94c77a16d4c1158c06232d605d56ad62009d08..6083d605bc6b79bd6de1d3e68bb0c03b70bdc358 100644 --- a/entity/Turnover_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Turnover_entity/recordcontainers/jdito/contentProcess.js @@ -1,116 +1,116 @@ -import("Turnover_lib"); -import("system.vars"); -import("system.result"); -import("Money_lib"); -import("system.datetime"); -import("KeywordRegistry_basic"); -import("Keyword_lib"); -import("system.translate"); - -var turnoverCategory = translate.text('Turnover'); -var forecastCategory = translate.text('Forecast'); - -var maxYear = parseInt(vars.get("$param.MaxYear_param")); -var yearCountToShow = parseInt(vars.get("$param.YearCountToShow_param")); -var minYear = maxYear - yearCountToShow + 1; - -var data = TurnoverUtil.getTurnoverAndForecastData(maxYear, yearCountToShow); - -var columns = { - type: 0, - year: 1, - month: 2, - discount: 3, - vat: 4, - price: 5, - quantity: 6, - groupcodeId: 7, - groupcodeName: 8 -}; - -var chartData = []; -var countData = {} - -var monthDate; - -// add all months for all years -for (let y = minYear; y <= maxYear; y++) -{ - for (let m = 0; m < 12; m++) - { - monthDate = new Date(y, m-1); - monthDate = datetime.toDate(monthDate.getTime(), "MMM yyyy", "UTC"); - _addCount([forecastCategory, ""+y, [m, monthDate]], 0.0); - _addCount([turnoverCategory, ""+y, [m, monthDate]], 0.0); - } -} - -data.forEach(function(row) -{ - monthDate = new Date(row[columns.year], row[columns.month]-1); - monthDate = datetime.toDate(monthDate.getTime(), "MMM yyyy", "UTC"); - - switch(row[columns.type]) - { - case forecastCategory: - _addCount([row[columns.type], row[columns.year], [row[columns.month], monthDate], [row[columns.groupcodeId], row[columns.groupcodeName]]], row[columns.price]); - break; - case turnoverCategory: - _addCount([row[columns.type], row[columns.year], [row[columns.month], monthDate], [row[columns.groupcodeId], row[columns.groupcodeName]]], - MoneyUtils.getGross( - (row[columns.vat] ? parseFloat(row[columns.vat]) : 0.0), - (row[columns.price] ? parseFloat(row[columns.price]) : 0.0), - (row[columns.quantity] ? parseFloat(row[columns.quantity]) : 0.0), - (row[columns.discount] ? parseFloat(row[columns.discount]) : 0.0))); - break; - } -}); - -for (let key in countData) { - var countDataSet = countData[key]; - chartData.push([key, countDataSet.parent, countDataSet.category, countDataSet.x, countDataSet.count]); -} - -result.object(chartData); - -/** - * add the counts to countData for the given key and value - * @param {Array} pKeys an array containing all keys for this value. If the x-value for one key is different from the key-value: add an array [key, value] instead of only the key - * the first key is the Category - * @param {float} pValue the value to display - */ -function _addCount(pKeys, pValue) { - var key = ""; - - for (let i = 0; i < pKeys.length; i++) { - let keyId; - let keyName; - - if (typeof pKeys[i] != "object") - { - keyId = pKeys[i]; - keyName = pKeys[i]; - } - else // handle array: first is id seccond is name for X-value - { - keyId = pKeys[i][0]; - keyName = pKeys[i][1]; - } - var parent = key; - if (i < 2) - { - parent = "" - } - - key += ";" + keyId; - if (i > 0) - { - if (countData[key] == undefined) - { - countData[key] = {parent: parent, count: 0.0, category: pKeys[0], x: keyName}; // keys[0] is the category - } - - countData[key].count += parseFloat(pValue); - } - } +import("Turnover_lib"); +import("system.vars"); +import("system.result"); +import("Money_lib"); +import("system.datetime"); +import("KeywordRegistry_basic"); +import("Keyword_lib"); +import("system.translate"); + +var turnoverCategory = translate.text('Turnover'); +var forecastCategory = translate.text('Forecast'); + +var maxYear = parseInt(vars.get("$param.MaxYear_param")); +var yearCountToShow = parseInt(vars.get("$param.YearCountToShow_param")); +var minYear = maxYear - yearCountToShow + 1; + +var data = TurnoverUtil.getTurnoverAndForecastData(maxYear, yearCountToShow); + +var columns = { + type: 0, + year: 1, + month: 2, + discount: 3, + vat: 4, + price: 5, + quantity: 6, + groupcodeId: 7, + groupcodeName: 8 +}; + +var chartData = []; +var countData = {} + +var monthDate; + +// add all months for all years +for (let y = minYear; y <= maxYear; y++) +{ + for (let m = 0; m < 12; m++) + { + monthDate = new Date(y, m-1); + monthDate = datetime.toDate(monthDate.getTime(), "MMM yyyy", "UTC"); + _addCount([forecastCategory, ""+y, [m, monthDate]], 0.0); + _addCount([turnoverCategory, ""+y, [m, monthDate]], 0.0); + } +} + +data.forEach(function(row) +{ + monthDate = new Date(row[columns.year], row[columns.month]-1); + monthDate = datetime.toDate(monthDate.getTime(), "MMM yyyy", "UTC"); + + switch(row[columns.type]) + { + case forecastCategory: + _addCount([row[columns.type], row[columns.year], [row[columns.month], monthDate], [row[columns.groupcodeId], row[columns.groupcodeName]]], row[columns.price]); + break; + case turnoverCategory: + _addCount([row[columns.type], row[columns.year], [row[columns.month], monthDate], [row[columns.groupcodeId], row[columns.groupcodeName]]], + MoneyUtils.getGross( + (row[columns.vat] ? parseFloat(row[columns.vat]) : 0.0), + (row[columns.price] ? parseFloat(row[columns.price]) : 0.0), + (row[columns.quantity] ? parseFloat(row[columns.quantity]) : 0.0), + (row[columns.discount] ? parseFloat(row[columns.discount]) : 0.0))); + break; + } +}); + +for (let key in countData) { + var countDataSet = countData[key]; + chartData.push([key, countDataSet.parent, countDataSet.category, countDataSet.x, countDataSet.count]); +} + +result.object(chartData); + +/** + * add the counts to countData for the given key and value + * @param {Array} pKeys an array containing all keys for this value. If the x-value for one key is different from the key-value: add an array [key, value] instead of only the key + * the first key is the Category + * @param {float} pValue the value to display + */ +function _addCount(pKeys, pValue) { + var key = ""; + + for (let i = 0; i < pKeys.length; i++) { + let keyId; + let keyName; + + if (typeof pKeys[i] != "object") + { + keyId = pKeys[i]; + keyName = pKeys[i]; + } + else // handle array: first is id seccond is name for X-value + { + keyId = pKeys[i][0]; + keyName = pKeys[i][1]; + } + var parent = key; + if (i < 2) + { + parent = "" + } + + key += ";" + keyId; + if (i > 0) + { + if (countData[key] == undefined) + { + countData[key] = {parent: parent, count: 0.0, category: pKeys[0], x: keyName}; // keys[0] is the category + } + + countData[key].count += parseFloat(pValue); + } + } } \ No newline at end of file diff --git a/neonContext/AddressValidation/AddressValidation.aod b/neonContext/AddressValidation/AddressValidation.aod index 7542f8466fc2c7dbfbf84c32253d970b121a2517..d43f7cb1f25330eae082d2747da7329723a40093 100644 --- a/neonContext/AddressValidation/AddressValidation.aod +++ b/neonContext/AddressValidation/AddressValidation.aod @@ -1,13 +1,13 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>AddressValidation</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <lookupview>AddressValidationLookup_view</lookupview> - <entity>AddressValidation_entity</entity> - <references> - <neonViewReference> - <name>a093b522-3dc9-4c77-85f1-46ed07bd4be7</name> - <view>AddressValidationLookup_view</view> - </neonViewReference> - </references> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>AddressValidation</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <lookupview>AddressValidationLookup_view</lookupview> + <entity>AddressValidation_entity</entity> + <references> + <neonViewReference> + <name>a093b522-3dc9-4c77-85f1-46ed07bd4be7</name> + <view>AddressValidationLookup_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/AttributeRelation/AttributeRelation.aod b/neonContext/AttributeRelation/AttributeRelation.aod index 680b6ddc1b202031673cde193e35068683d620ff..ea75439e7a635ccae6bd4864815ff8590f693569 100644 --- a/neonContext/AttributeRelation/AttributeRelation.aod +++ b/neonContext/AttributeRelation/AttributeRelation.aod @@ -1,26 +1,26 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>AttributeRelation</name> - <title>Attributes</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <editview>AttributeRelationTreeEdit_view</editview> - <entity>AttributeRelation_entity</entity> - <references> - <neonViewReference> - <name>55f89863-72b0-4179-8494-b1e320d79de9</name> - <view>AttributeRelationTree_view</view> - </neonViewReference> - <neonViewReference> - <name>591d27d7-e963-4ff0-9d82-2e24b18e6b5c</name> - <view>AttributeRelationTreeEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>5628f945-6b08-494c-9e7c-ca1c67517b12</name> - <view>AttributeRelationMultiEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>b50638d0-30ec-4166-80c0-ab6d0f2180a1</name> - <view>AttributeRelationPreviewList</view> - </neonViewReference> - </references> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>AttributeRelation</name> + <title>Attributes</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <editview>AttributeRelationTreeEdit_view</editview> + <entity>AttributeRelation_entity</entity> + <references> + <neonViewReference> + <name>55f89863-72b0-4179-8494-b1e320d79de9</name> + <view>AttributeRelationTree_view</view> + </neonViewReference> + <neonViewReference> + <name>591d27d7-e963-4ff0-9d82-2e24b18e6b5c</name> + <view>AttributeRelationTreeEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>5628f945-6b08-494c-9e7c-ca1c67517b12</name> + <view>AttributeRelationMultiEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>b50638d0-30ec-4166-80c0-ab6d0f2180a1</name> + <view>AttributeRelationPreviewList</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/Campaign/Campaign.aod b/neonContext/Campaign/Campaign.aod index 9d15d6f3ac8be8cd6778f29fa97c0d0bd5376317..1b5f5b67a5385aed1c1b73cc35b076d27d5d22cd 100644 --- a/neonContext/Campaign/Campaign.aod +++ b/neonContext/Campaign/Campaign.aod @@ -1,39 +1,39 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>Campaign</name> - <title>Campaign</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>VAADIN:GROUP</icon> - <mainview>CampaignMain_view</mainview> - <filterview>CampaignFilter_view</filterview> - <editview>CampaignEdit_view</editview> - <preview>CampaignPreview_view</preview> - <lookupview>CampaignFilter_view</lookupview> - <entity>Campaign_entity</entity> - <references> - <neonViewReference> - <name>7a90a8ed-62e9-47c1-9c8c-2b1019e31da0</name> - <view>CampaignFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>b4750aec-8ad6-419b-9b44-2848d90b68d0</name> - <view>CampaignMain_view</view> - </neonViewReference> - <neonViewReference> - <name>678bda6a-42f2-49c3-8527-5289e70645a2</name> - <view>CampaignEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>2fffb548-0b4f-4986-9b50-aefa2e00bade</name> - <view>CampaignPreview_view</view> - </neonViewReference> - <neonViewReference> - <name>4a5377cc-af00-49c7-aad2-ac93e2752b3f</name> - <view>CampaignCost_view</view> - </neonViewReference> - <neonViewReference> - <name>484d39ea-5135-4bb2-a12d-cb7114e2981c</name> - <view>CampaignCharts_view</view> - </neonViewReference> - </references> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>Campaign</name> + <title>Campaign</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:GROUP</icon> + <mainview>CampaignMain_view</mainview> + <filterview>CampaignFilter_view</filterview> + <editview>CampaignEdit_view</editview> + <preview>CampaignPreview_view</preview> + <lookupview>CampaignFilter_view</lookupview> + <entity>Campaign_entity</entity> + <references> + <neonViewReference> + <name>7a90a8ed-62e9-47c1-9c8c-2b1019e31da0</name> + <view>CampaignFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>b4750aec-8ad6-419b-9b44-2848d90b68d0</name> + <view>CampaignMain_view</view> + </neonViewReference> + <neonViewReference> + <name>678bda6a-42f2-49c3-8527-5289e70645a2</name> + <view>CampaignEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>2fffb548-0b4f-4986-9b50-aefa2e00bade</name> + <view>CampaignPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>4a5377cc-af00-49c7-aad2-ac93e2752b3f</name> + <view>CampaignCost_view</view> + </neonViewReference> + <neonViewReference> + <name>484d39ea-5135-4bb2-a12d-cb7114e2981c</name> + <view>CampaignCharts_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/CampaignAddParticipants/CampaignAddParticipants.aod b/neonContext/CampaignAddParticipants/CampaignAddParticipants.aod index 28d85596318e2b2c9ead40ee288098f4e00d2461..6e318ad900eb0f92ff64d9dfe4728768395b75a9 100644 --- a/neonContext/CampaignAddParticipants/CampaignAddParticipants.aod +++ b/neonContext/CampaignAddParticipants/CampaignAddParticipants.aod @@ -1,17 +1,17 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>CampaignAddParticipants</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <editview>CampaignAddParticipantsEdit_view</editview> - <entity>CampaignAddParticipants_entity</entity> - <references> - <neonViewReference> - <name>c4f11246-9c24-4c1c-8e53-96acabf04bab</name> - <view>CampaignAddParticipantsEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>87d572bd-f2ce-4283-8db0-a7d9f9441fa0</name> - <view>campaignParticipantMessage_view</view> - </neonViewReference> - </references> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>CampaignAddParticipants</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <editview>CampaignAddParticipantsEdit_view</editview> + <entity>CampaignAddParticipants_entity</entity> + <references> + <neonViewReference> + <name>c4f11246-9c24-4c1c-8e53-96acabf04bab</name> + <view>CampaignAddParticipantsEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>87d572bd-f2ce-4283-8db0-a7d9f9441fa0</name> + <view>campaignParticipantMessage_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/CampaignAnalysis/CampaignAnalysis.aod b/neonContext/CampaignAnalysis/CampaignAnalysis.aod index 8d1ff1b7b9aaf49a169817f8f9ac4fc619969095..3f49a2f3ca6d42c3564d1aeb740fbad539091b23 100644 --- a/neonContext/CampaignAnalysis/CampaignAnalysis.aod +++ b/neonContext/CampaignAnalysis/CampaignAnalysis.aod @@ -1,12 +1,12 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>CampaignAnalysis</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <entity>CampaignAnalysis_entity</entity> - <references> - <neonViewReference> - <name>ebb2a4e0-5e0e-4749-8ed8-7aa3b8cae3fc</name> - <view>CampaignStepCurrentMaxParticipants_view</view> - </neonViewReference> - </references> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>CampaignAnalysis</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <entity>CampaignAnalysis_entity</entity> + <references> + <neonViewReference> + <name>ebb2a4e0-5e0e-4749-8ed8-7aa3b8cae3fc</name> + <view>CampaignStepCurrentMaxParticipants_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/CampaignCost/CampaignCost.aod b/neonContext/CampaignCost/CampaignCost.aod index 65fbbf22993e1e6edd229db2c3303370dc0b5004..f0c5cc501488cb4a3280fcbe8d1ae786fda36a01 100644 --- a/neonContext/CampaignCost/CampaignCost.aod +++ b/neonContext/CampaignCost/CampaignCost.aod @@ -1,26 +1,26 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>CampaignCost</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterview>CampaignCostFilter_view</filterview> - <editview>CampaignCostEdit_view</editview> - <entity>CampaignCost_entitiy</entity> - <references> - <neonViewReference> - <name>fa4ac7f7-4f30-42ba-86b2-99e86597734f</name> - <view>CampaignCostFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>34fefde3-d3cf-4a64-92e2-fe1150c286eb</name> - <view>CampaignCostEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>01137074-b129-42bc-86b7-82afc356923b</name> - <view>CampaignGroupedCostFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>a4f131e8-2371-4070-83f7-fd69dfd6a7df</name> - <view>CampaignCostExtendedFilter_view</view> - </neonViewReference> - </references> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>CampaignCost</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterview>CampaignCostFilter_view</filterview> + <editview>CampaignCostEdit_view</editview> + <entity>CampaignCost_entitiy</entity> + <references> + <neonViewReference> + <name>fa4ac7f7-4f30-42ba-86b2-99e86597734f</name> + <view>CampaignCostFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>34fefde3-d3cf-4a64-92e2-fe1150c286eb</name> + <view>CampaignCostEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>01137074-b129-42bc-86b7-82afc356923b</name> + <view>CampaignGroupedCostFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>a4f131e8-2371-4070-83f7-fd69dfd6a7df</name> + <view>CampaignCostExtendedFilter_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/CampaignCostChart/CampaignCostChart.aod b/neonContext/CampaignCostChart/CampaignCostChart.aod index a7a868378f8c090c93002ec738d965c303271acd..f6456d66e5ff98579321af7f2a95fd9c826c68f0 100644 --- a/neonContext/CampaignCostChart/CampaignCostChart.aod +++ b/neonContext/CampaignCostChart/CampaignCostChart.aod @@ -1,12 +1,12 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>CampaignCostChart</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <entity>CampaignCostChart_entity</entity> - <references> - <neonViewReference> - <name>c859b91d-d802-49c6-b330-5f66e80fe5c6</name> - <view>CampaignCostChart_view</view> - </neonViewReference> - </references> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>CampaignCostChart</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <entity>CampaignCostChart_entity</entity> + <references> + <neonViewReference> + <name>c859b91d-d802-49c6-b330-5f66e80fe5c6</name> + <view>CampaignCostChart_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/CampaignParticipant/CampaignParticipant.aod b/neonContext/CampaignParticipant/CampaignParticipant.aod index 5595651c789c73c72702acf557fa2711d3c9523e..1b6561a8c52c87023db698bea1b37d3badaa3f62 100644 --- a/neonContext/CampaignParticipant/CampaignParticipant.aod +++ b/neonContext/CampaignParticipant/CampaignParticipant.aod @@ -1,23 +1,23 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>CampaignParticipant</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterview>CampaignParticipantFilter_view</filterview> - <editview>CampaignParticipantEdit_view</editview> - <preview>CampaignParticipantPreview_view</preview> - <entity>CampaignParticipant_entity</entity> - <references> - <neonViewReference> - <name>2937d001-c1c8-40a0-9eac-f575fcc7c251</name> - <view>CampaignParticipantFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>e52a3270-3a6c-48be-bf91-8b6118ccf57c</name> - <view>CampaignParticipantEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>1b11a31b-4ca3-49ad-a312-4d31b9d986b1</name> - <view>CampaignParticipantPreview_view</view> - </neonViewReference> - </references> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>CampaignParticipant</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterview>CampaignParticipantFilter_view</filterview> + <editview>CampaignParticipantEdit_view</editview> + <preview>CampaignParticipantPreview_view</preview> + <entity>CampaignParticipant_entity</entity> + <references> + <neonViewReference> + <name>2937d001-c1c8-40a0-9eac-f575fcc7c251</name> + <view>CampaignParticipantFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>e52a3270-3a6c-48be-bf91-8b6118ccf57c</name> + <view>CampaignParticipantEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>1b11a31b-4ca3-49ad-a312-4d31b9d986b1</name> + <view>CampaignParticipantPreview_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/CampaignParticipantChart/CampaignParticipantChart.aod b/neonContext/CampaignParticipantChart/CampaignParticipantChart.aod index 9f0506d6c9470c242a3cb21476da5a73e3b7d4e6..bc067819e04d86dac1e3b1643ad7974b1884bf76 100644 --- a/neonContext/CampaignParticipantChart/CampaignParticipantChart.aod +++ b/neonContext/CampaignParticipantChart/CampaignParticipantChart.aod @@ -1,12 +1,12 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>CampaignParticipantChart</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <entity>CampaignParticipantChart_entity</entity> - <references> - <neonViewReference> - <name>820b8b1b-9b8e-47f9-a5b8-f0afb934909b</name> - <view>CampaignParticipantChart_view</view> - </neonViewReference> - </references> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>CampaignParticipantChart</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <entity>CampaignParticipantChart_entity</entity> + <references> + <neonViewReference> + <name>820b8b1b-9b8e-47f9-a5b8-f0afb934909b</name> + <view>CampaignParticipantChart_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/CampaignStep/CampaignStep.aod b/neonContext/CampaignStep/CampaignStep.aod index 86578e3723f513b599c88a4092df08c78fb51ed8..abe2f42c3795888b0cbacf267f537eeecfcef1d5 100644 --- a/neonContext/CampaignStep/CampaignStep.aod +++ b/neonContext/CampaignStep/CampaignStep.aod @@ -1,46 +1,46 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>CampaignStep</name> - <title>Campaign Step</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <mainview>CampaignStepMain_view</mainview> - <filterview>CampaignStepFilter_view</filterview> - <editview>CampaignStepEdit_view</editview> - <preview>CampaignStepPreview_view</preview> - <lookupview>CampaignStepLookup_view</lookupview> - <entity>CampaignStep_entity</entity> - <references> - <neonViewReference> - <name>9c8fa482-9c3b-4ea8-82b0-91979cc2936d</name> - <view>CampaignStepFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>c11ece8f-3ddf-416f-8b22-eaa2dda085eb</name> - <view>CampaignStepEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>3de647e9-f3fb-47c8-8ba8-093f3e00a41c</name> - <view>CampaignStepPreview_view</view> - </neonViewReference> - <neonViewReference> - <name>b0b74015-6ed3-4ad4-bd72-b4017fe85e54</name> - <view>CampaignStepMain_view</view> - </neonViewReference> - <neonViewReference> - <name>bd922414-bd4c-4313-8564-85f27156159e</name> - <view>CampaignStepAnalysis_view</view> - </neonViewReference> - <neonViewReference> - <name>c1be17f6-c4ca-4d9d-8c3a-0cc8f75906f6</name> - <view>CampaignStepAddParticipants_view</view> - </neonViewReference> - <neonViewReference> - <name>ad879f25-4659-49d0-81ed-2e09c8b11ac1</name> - <view>CampaignStepParticipnatsPerStep_view</view> - </neonViewReference> - <neonViewReference> - <name>b69f5e66-42ce-41a9-8877-66e8f82875e8</name> - <view>CampaignStepLookup_view</view> - </neonViewReference> - </references> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>CampaignStep</name> + <title>Campaign Step</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <mainview>CampaignStepMain_view</mainview> + <filterview>CampaignStepFilter_view</filterview> + <editview>CampaignStepEdit_view</editview> + <preview>CampaignStepPreview_view</preview> + <lookupview>CampaignStepLookup_view</lookupview> + <entity>CampaignStep_entity</entity> + <references> + <neonViewReference> + <name>9c8fa482-9c3b-4ea8-82b0-91979cc2936d</name> + <view>CampaignStepFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>c11ece8f-3ddf-416f-8b22-eaa2dda085eb</name> + <view>CampaignStepEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>3de647e9-f3fb-47c8-8ba8-093f3e00a41c</name> + <view>CampaignStepPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>b0b74015-6ed3-4ad4-bd72-b4017fe85e54</name> + <view>CampaignStepMain_view</view> + </neonViewReference> + <neonViewReference> + <name>bd922414-bd4c-4313-8564-85f27156159e</name> + <view>CampaignStepAnalysis_view</view> + </neonViewReference> + <neonViewReference> + <name>c1be17f6-c4ca-4d9d-8c3a-0cc8f75906f6</name> + <view>CampaignStepAddParticipants_view</view> + </neonViewReference> + <neonViewReference> + <name>ad879f25-4659-49d0-81ed-2e09c8b11ac1</name> + <view>CampaignStepParticipnatsPerStep_view</view> + </neonViewReference> + <neonViewReference> + <name>b69f5e66-42ce-41a9-8877-66e8f82875e8</name> + <view>CampaignStepLookup_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/DocumentTemplateTypeCategory/DocumentTemplateTypeCategory.aod b/neonContext/DocumentTemplateTypeCategory/DocumentTemplateTypeCategory.aod index 134d52984b4704c31830c35690989fc0816974f4..ad75f71610b6d0e768955aff86aa94ae59e410f8 100644 --- a/neonContext/DocumentTemplateTypeCategory/DocumentTemplateTypeCategory.aod +++ b/neonContext/DocumentTemplateTypeCategory/DocumentTemplateTypeCategory.aod @@ -1,6 +1,6 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>DocumentTemplateTypeCategory</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <entity>DocumentTemplateTypeCategory_entity</entity> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>DocumentTemplateTypeCategory</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <entity>DocumentTemplateTypeCategory_entity</entity> +</neonContext> diff --git a/neonContext/IndexSearchContext/IndexSearchContext.aod b/neonContext/IndexSearchContext/IndexSearchContext.aod index b379419b4084feb116cf5d2213ad5f07954fa607..e4175a52588fee1c41dd9d3581a3b550340c9475 100644 --- a/neonContext/IndexSearchContext/IndexSearchContext.aod +++ b/neonContext/IndexSearchContext/IndexSearchContext.aod @@ -1,12 +1,12 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>IndexSearchContext</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <entity>IndexSearchEntity</entity> - <references> - <neonViewReference> - <name>2648f63d-7a43-4049-81b0-a3486ed15db6</name> - <view>IndexSearchView</view> - </neonViewReference> - </references> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>IndexSearchContext</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <entity>IndexSearchEntity</entity> + <references> + <neonViewReference> + <name>2648f63d-7a43-4049-81b0-a3486ed15db6</name> + <view>IndexSearchView</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/LogHistory/LogHistory.aod b/neonContext/LogHistory/LogHistory.aod index 179d44bff14cd005a74965ccc19a1650f0315b00..6030a3ba89a5597122d9e95db549cf968926c1c4 100644 --- a/neonContext/LogHistory/LogHistory.aod +++ b/neonContext/LogHistory/LogHistory.aod @@ -1,19 +1,19 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>LogHistory</name> - <title>LogHistory</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterview>LogHistoryFilter_view</filterview> - <preview>LogHistoryPreview_view</preview> - <entity>LogHistory_entity</entity> - <references> - <neonViewReference> - <name>76df2f61-4176-4648-81c7-33da90b76967</name> - <view>LogHistoryFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>32181ad2-2766-4d52-a04b-4b74bcbd2453</name> - <view>LogHistoryPreview_view</view> - </neonViewReference> - </references> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>LogHistory</name> + <title>LogHistory</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterview>LogHistoryFilter_view</filterview> + <preview>LogHistoryPreview_view</preview> + <entity>LogHistory_entity</entity> + <references> + <neonViewReference> + <name>76df2f61-4176-4648-81c7-33da90b76967</name> + <view>LogHistoryFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>32181ad2-2766-4d52-a04b-4b74bcbd2453</name> + <view>LogHistoryPreview_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/Notification/Notification.aod b/neonContext/Notification/Notification.aod index 96109dc523d021e92a5c9c2a010ecc2867a3db81..9fcb18be4a95c4774bec70b8c0d7444c06d939e0 100644 --- a/neonContext/Notification/Notification.aod +++ b/neonContext/Notification/Notification.aod @@ -1,19 +1,19 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>Notification</name> - <title></title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterview>NotificationFilter_view</filterview> - <preview>NotificationPreview_view</preview> - <entity>Notification_entity</entity> - <references> - <neonViewReference> - <name>110703ad-3509-4472-90e6-6825a05ff55b</name> - <view>NotificationFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>f47542b9-ccf9-4487-ae3f-cdfda61cff3a</name> - <view>NotificationPreview_view</view> - </neonViewReference> - </references> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>Notification</name> + <title></title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterview>NotificationFilter_view</filterview> + <preview>NotificationPreview_view</preview> + <entity>Notification_entity</entity> + <references> + <neonViewReference> + <name>110703ad-3509-4472-90e6-6825a05ff55b</name> + <view>NotificationFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>f47542b9-ccf9-4487-ae3f-cdfda61cff3a</name> + <view>NotificationPreview_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/ObjectTree/ObjectTree.aod b/neonContext/ObjectTree/ObjectTree.aod index a8f24a44156098989667e38818ddd4491116b862..5b1961601a4a984b69369972c03aa3f6cfea3f93 100644 --- a/neonContext/ObjectTree/ObjectTree.aod +++ b/neonContext/ObjectTree/ObjectTree.aod @@ -1,18 +1,18 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>ObjectTree</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterview>ObjectTreeFilter_view</filterview> - <editview>ObjectTreeEdit_view</editview> - <entity>ObjectTree_entity</entity> - <references> - <neonViewReference> - <name>0c9fc36e-e3f7-4198-b675-5d9ddb177611</name> - <view>ObjectTreeFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>1122516a-5f1c-4f08-9995-02acaee2a0cd</name> - <view>ObjectTreeEdit_view</view> - </neonViewReference> - </references> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>ObjectTree</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterview>ObjectTreeFilter_view</filterview> + <editview>ObjectTreeEdit_view</editview> + <entity>ObjectTree_entity</entity> + <references> + <neonViewReference> + <name>0c9fc36e-e3f7-4198-b675-5d9ddb177611</name> + <view>ObjectTreeFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>1122516a-5f1c-4f08-9995-02acaee2a0cd</name> + <view>ObjectTreeEdit_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/Permission/Permission.aod b/neonContext/Permission/Permission.aod new file mode 100644 index 0000000000000000000000000000000000000000..9bf0b1f28c2e3fef505c2b3c35540c99c7e7a640 --- /dev/null +++ b/neonContext/Permission/Permission.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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>Permission</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <mainview>PermissionMain_view</mainview> + <filterview>PermissionFilter_view</filterview> + <editview>PermissionEdit_view</editview> + <preview>PermissionPreview_view</preview> + <entity>Permission_entity</entity> + <references> + <neonViewReference> + <name>213eac8e-fab6-43ea-83be-94ab26e0b252</name> + <view>PermissionMain_view</view> + </neonViewReference> + <neonViewReference> + <name>f33c6b95-272e-4561-bf04-91cbd58c2499</name> + <view>PermissionFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>03b59ef0-f628-451a-a01e-800ca07baa67</name> + <view>PermissionEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>ea9569b9-1d57-4826-970e-142ea2104350</name> + <view>PermissionPreview_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/PermissionAction/PermissionAction.aod b/neonContext/PermissionAction/PermissionAction.aod new file mode 100644 index 0000000000000000000000000000000000000000..35d1cdbe1bb32cf8fcbd2d7512c903b498096f93 --- /dev/null +++ b/neonContext/PermissionAction/PermissionAction.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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>PermissionAction</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <mainview>PermissionActionMain_view</mainview> + <filterview>PermissionActionFilter_view</filterview> + <editview>PermissionActionEdit_view</editview> + <preview>PermissionActionPreview_view</preview> + <entity>PermissionAction_entity</entity> + <references> + <neonViewReference> + <name>5a7d27cc-ccc9-4b5a-af6d-1837d3bf8288</name> + <view>PermissionActionMain_view</view> + </neonViewReference> + <neonViewReference> + <name>5604d7b7-f37b-4995-a795-876cf2be244c</name> + <view>PermissionActionFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>65501724-1b07-46c3-864c-eb3ecae7f5c7</name> + <view>PermissionActionEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>63c1333e-af91-4293-9eef-b8e313aaa876</name> + <view>PermissionActionPreview_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/PermissionAdmin/PermissionAdmin.aod b/neonContext/PermissionAdmin/PermissionAdmin.aod new file mode 100644 index 0000000000000000000000000000000000000000..ea66aa44019d568774bcac3778c19cd30c10e739 --- /dev/null +++ b/neonContext/PermissionAdmin/PermissionAdmin.aod @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>PermissionAdmin</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <mainview>PermissionAdminMain_view</mainview> + <entity>PermissionAdmin_entity</entity> + <references> + <neonViewReference> + <name>8f545d49-e62f-438d-8d14-edcd966d6cd5</name> + <view>PermissionAdminMain_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/PermissionDetail/PermissionDetail.aod b/neonContext/PermissionDetail/PermissionDetail.aod new file mode 100644 index 0000000000000000000000000000000000000000..0171b40c635836a23f3f86aae32679e862632fe3 --- /dev/null +++ b/neonContext/PermissionDetail/PermissionDetail.aod @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>PermissionDetail</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterview>PermissionDetailFilter_view</filterview> + <editview>PermissionDetailEdit_view</editview> + <preview>PermissionDetailPreview_view</preview> + <entity>PermissionDetail_entity</entity> + <references> + <neonViewReference> + <name>8bc31f13-496b-44c1-a1a3-5e459be137fe</name> + <view>PermissionDetailFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>550b619e-6fee-4cac-99e2-03df74953988</name> + <view>PermissionDetailPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>59e99c7a-8c8f-456c-968b-56237de5296b</name> + <view>PermissionDetailEdit_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/PermissionMetaData/PermissionMetaData.aod b/neonContext/PermissionMetaData/PermissionMetaData.aod new file mode 100644 index 0000000000000000000000000000000000000000..2939d0f61d64265042c7cde7ad14f5d5adbf4e33 --- /dev/null +++ b/neonContext/PermissionMetaData/PermissionMetaData.aod @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>PermissionMetaData</name> + <title>Entities</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <mainview>PermissionMetaDataMain_view</mainview> + <filterview>PermissionMetaDataFilter_view</filterview> + <preview>PermissionMetaDataPreview_view</preview> + <entity>PermissionMetaData_entity</entity> + <references> + <neonViewReference> + <name>21c6b2c6-24cc-4488-aa71-18d5b7b8afef</name> + <view>PermissionMetaDataFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>fd7a0c7a-a613-4a68-b291-123abaf95523</name> + <view>PermissionMetaDataMain_view</view> + </neonViewReference> + <neonViewReference> + <name>7b3664a4-c7aa-4583-8b15-f9de687ba693</name> + <view>PermissionMetaDataPreview_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/PermissionOverview/PermissionOverview.aod b/neonContext/PermissionOverview/PermissionOverview.aod new file mode 100644 index 0000000000000000000000000000000000000000..08055ed37a62314e6e5bd63563686e351d3d3aa1 --- /dev/null +++ b/neonContext/PermissionOverview/PermissionOverview.aod @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>PermissionOverview</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterview>PermissionOverviewFilter_view</filterview> + <entity>PermissionOverview_entity</entity> + <references> + <neonViewReference> + <name>fb699861-f28f-476f-b9d7-cd4875d31ffd</name> + <view>PermissionOverviewFilter_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/PermissionSet/PermissionSet.aod b/neonContext/PermissionSet/PermissionSet.aod new file mode 100644 index 0000000000000000000000000000000000000000..a74aa0ab4ebcd36f33db9a0d786a3d0017e7241d --- /dev/null +++ b/neonContext/PermissionSet/PermissionSet.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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>PermissionSet</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <mainview>PermissionSetMain_view</mainview> + <filterview>PermissionSetFilter_view</filterview> + <editview>PermissionSetEdit_view</editview> + <preview>PermissionSetPreview_view</preview> + <entity>PermissionSet_entity</entity> + <references> + <neonViewReference> + <name>9b826112-967a-4dd1-ab50-e6ca8c9554fd</name> + <view>PermissionSetMain_view</view> + </neonViewReference> + <neonViewReference> + <name>eaa7dbdc-da6f-43a2-acd0-f71d7aaff96c</name> + <view>PermissionSetFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>18b656ef-33f7-40ca-a86b-dfdcfe96b3f2</name> + <view>PermissionSetEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>5b618ffc-1124-46ae-ad88-0b207688689a</name> + <view>PermissionSetPreview_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/Role/Role.aod b/neonContext/Role/Role.aod new file mode 100644 index 0000000000000000000000000000000000000000..83b52f20af9adde7f3b3a9b84d3dd1ff785fcfe2 --- /dev/null +++ b/neonContext/Role/Role.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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>Role</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <mainview>RoleMain_view</mainview> + <filterview>RoleFilter_view</filterview> + <editview>RoleEdit_view</editview> + <preview>RolePreview_view</preview> + <entity>Role_entity</entity> + <references> + <neonViewReference> + <name>579ac132-5324-481c-89e8-94d9a827cc7b</name> + <view>RoleMain_view</view> + </neonViewReference> + <neonViewReference> + <name>b8e6b985-ffe1-4039-bd44-9d58943bc7ff</name> + <view>RoleFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>fbd3c158-4ff0-4057-9d91-b67c6d7d836e</name> + <view>RolePreview_view</view> + </neonViewReference> + <neonViewReference> + <name>3789f10e-479b-4b99-968c-77d3eb5080f4</name> + <view>RoleEdit_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/TurnoverTree/TurnoverTree.aod b/neonContext/TurnoverTree/TurnoverTree.aod index 767e00d8da61a3b203763da6fd71cff72bc26537..dd58059574471965dda75ac4c260bf7e1ca88684 100644 --- a/neonContext/TurnoverTree/TurnoverTree.aod +++ b/neonContext/TurnoverTree/TurnoverTree.aod @@ -1,13 +1,13 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>TurnoverTree</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterview>TurnoverTree_view</filterview> - <entity>TurnoverTree_entity</entity> - <references> - <neonViewReference> - <name>b8135e50-da8e-424c-9073-e721b4822736</name> - <view>TurnoverTree_view</view> - </neonViewReference> - </references> -</neonContext> +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>TurnoverTree</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterview>TurnoverTree_view</filterview> + <entity>TurnoverTree_entity</entity> + <references> + <neonViewReference> + <name>b8135e50-da8e-424c-9073-e721b4822736</name> + <view>TurnoverTree_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonNotificationType/Andis/Andis.aod b/neonNotificationType/Andis/Andis.aod index 45ad2c35dace2106a2710a27626e2841a906efd4..9f75b4b3d537fc8fb18ec5cad4796841fc2287b9 100644 --- a/neonNotificationType/Andis/Andis.aod +++ b/neonNotificationType/Andis/Andis.aod @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonNotificationType xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonNotificationType/1.1.0"> - <name>Andis</name> - <title>Andis Noti</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>VAADIN:COMMENT_ELLIPSIS_O</icon> - <resultFrameNeon></resultFrameNeon> -</neonNotificationType> +<?xml version="1.0" encoding="UTF-8"?> +<neonNotificationType xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonNotificationType/1.1.0"> + <name>Andis</name> + <title>Andis Noti</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:COMMENT_ELLIPSIS_O</icon> + <resultFrameNeon></resultFrameNeon> +</neonNotificationType> diff --git a/neonView/ActivityEdit_view/ActivityEdit_view.aod b/neonView/ActivityEdit_view/ActivityEdit_view.aod index 5397d31aab09aeb55e4e43406fbbfb13614bcd16..53890651d942d11febcae00d9ab2f838d49286ee 100644 --- a/neonView/ActivityEdit_view/ActivityEdit_view.aod +++ b/neonView/ActivityEdit_view/ActivityEdit_view.aod @@ -1,56 +1,56 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>ActivityEdit_view</name> - <title>Activity</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>NEON:HISTORY</icon> - <quickEntry v="3" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Edit</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>290c8b73-4078-47eb-8009-a011f0ae670c</name> - <entityField>SUBJECT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>b90a5d96-9d1f-4eeb-b42c-0debeb7cf260</name> - <entityField>INFO</entityField> - </entityFieldLink> - <entityFieldLink> - <name>d767e312-b28a-42e9-9e7d-b4ad82f25ff0</name> - <entityField>DIRECTION</entityField> - </entityFieldLink> - <entityFieldLink> - <name>a787b6c0-078d-47ff-9bff-eee1623d1760</name> - <entityField>ENTRYDATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>921a6690-43dc-488b-ae0a-4a0ab88a99ab</name> - <entityField>CATEGORY</entityField> - </entityFieldLink> - <entityFieldLink> - <name>91514e62-f4f7-4eb7-84c0-8d94adbb3408</name> - <entityField>RESPONSIBLE</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>868cfbbe-f5f4-48d1-88cd-56207e0e6dcc</name> - <entityField>Links</entityField> - <view>ActivityLinkMultiEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>7fcf9c09-189a-47b7-a171-9975676ed704</name> - <entityField>Attributes</entityField> - <view>AttributeRelationMultiEdit_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>ActivityEdit_view</name> + <title>Activity</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>NEON:HISTORY</icon> + <quickEntry v="3" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Edit</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>290c8b73-4078-47eb-8009-a011f0ae670c</name> + <entityField>SUBJECT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>b90a5d96-9d1f-4eeb-b42c-0debeb7cf260</name> + <entityField>INFO</entityField> + </entityFieldLink> + <entityFieldLink> + <name>d767e312-b28a-42e9-9e7d-b4ad82f25ff0</name> + <entityField>DIRECTION</entityField> + </entityFieldLink> + <entityFieldLink> + <name>a787b6c0-078d-47ff-9bff-eee1623d1760</name> + <entityField>ENTRYDATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>921a6690-43dc-488b-ae0a-4a0ab88a99ab</name> + <entityField>CATEGORY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>91514e62-f4f7-4eb7-84c0-8d94adbb3408</name> + <entityField>RESPONSIBLE</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>868cfbbe-f5f4-48d1-88cd-56207e0e6dcc</name> + <entityField>Links</entityField> + <view>ActivityLinkMultiEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>7fcf9c09-189a-47b7-a171-9975676ed704</name> + <entityField>Attributes</entityField> + <view>AttributeRelationMultiEdit_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/ActivityMain_view/ActivityMain_view.aod b/neonView/ActivityMain_view/ActivityMain_view.aod index 42982d177130846b1e0191092b595131431be22e..7ea15fc932a522b5ea0c67203c8607be8c1d2ae1 100644 --- a/neonView/ActivityMain_view/ActivityMain_view.aod +++ b/neonView/ActivityMain_view/ActivityMain_view.aod @@ -1,38 +1,38 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>ActivityMain_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <masterSlaveLayout> - <name>layout</name> - <master>25da1e58-2fb4-4db4-8a46-9af73074c22c</master> - </masterSlaveLayout> - </layout> - <children> - <neonViewReference> - <name>25da1e58-2fb4-4db4-8a46-9af73074c22c</name> - <entityField>#ENTITY</entityField> - <view>ActivityPreview_view</view> - </neonViewReference> - <neonViewReference> - <name>a3a45cd7-587f-4bc0-9980-e6d1c89a8212</name> - <entityField>#ENTITY</entityField> - <view>ActivityDetail_view</view> - </neonViewReference> - <neonViewReference> - <name>f6c6888a-f3d6-410a-b97b-30c34a9dd6a2</name> - <entityField>ModuleTrees</entityField> - <view>ModuleTree_view</view> - </neonViewReference> - <neonViewReference> - <name>7bab8dbf-b69e-412d-a604-3a6999658e10</name> - <entityField>Documents</entityField> - <view>DocumentFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>f57fb116-d356-47c7-8da6-ee64b4a01b46</name> - <entityField>AttributeTree</entityField> - <view>AttributeRelationTree_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>ActivityMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>25da1e58-2fb4-4db4-8a46-9af73074c22c</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>25da1e58-2fb4-4db4-8a46-9af73074c22c</name> + <entityField>#ENTITY</entityField> + <view>ActivityPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>a3a45cd7-587f-4bc0-9980-e6d1c89a8212</name> + <entityField>#ENTITY</entityField> + <view>ActivityDetail_view</view> + </neonViewReference> + <neonViewReference> + <name>f6c6888a-f3d6-410a-b97b-30c34a9dd6a2</name> + <entityField>ModuleTrees</entityField> + <view>ModuleTree_view</view> + </neonViewReference> + <neonViewReference> + <name>7bab8dbf-b69e-412d-a604-3a6999658e10</name> + <entityField>Documents</entityField> + <view>DocumentFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>f57fb116-d356-47c7-8da6-ee64b4a01b46</name> + <entityField>AttributeTree</entityField> + <view>AttributeRelationTree_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/AddressLookup_view/AddressLookup_view.aod b/neonView/AddressLookup_view/AddressLookup_view.aod index 6b0c5094306af8e955eb39eb3e9949a12c42c0e6..0fa3d4f0858ffc2b0c3d73d28d281b87d68bd7f3 100644 --- a/neonView/AddressLookup_view/AddressLookup_view.aod +++ b/neonView/AddressLookup_view/AddressLookup_view.aod @@ -1,58 +1,58 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>AddressLookup_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>DataTable</name> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>297a27f0-51a0-40d7-a2eb-28fc2b9e5730</name> - <entityField>IS_STANDARD_ICON</entityField> - </neonTableColumn> - <neonTableColumn> - <name>07e3bcf0-30aa-4745-8dd6-ed79dd2d0fa0</name> - <entityField>ADDR_TYPE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>570039fc-c27a-4b06-a93e-16cc712a3d0c</name> - <entityField>ADDRESS</entityField> - </neonTableColumn> - <neonTableColumn> - <name>26ca52ce-91e7-4e76-a37e-6db28b967beb</name> - <entityField>BUILDINGNO</entityField> - </neonTableColumn> - <neonTableColumn> - <name>a54d6306-e9be-41db-9d1c-abeebe5ce77b</name> - <entityField>ZIP</entityField> - </neonTableColumn> - <neonTableColumn> - <name>6a07479c-b4d3-4946-993e-e6ce7dd825ba</name> - <entityField>CITY</entityField> - </neonTableColumn> - <neonTableColumn> - <name>e6d9ced9-eea3-4cdf-9751-74c8f206282f</name> - <entityField>COUNTRY</entityField> - </neonTableColumn> - <neonTableColumn> - <name>820b6ffc-7e56-4982-8f39-4443b0ada876</name> - <entityField>STATE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>9651a718-ab01-4c97-8da0-6e7133f26466</name> - <entityField>REGION</entityField> - </neonTableColumn> - <neonTableColumn> - <name>24f73ac8-ac90-4beb-83fe-bdaa2d0806b6</name> - <entityField>ADDRIDENTIFIER</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>AddressLookup_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>DataTable</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>297a27f0-51a0-40d7-a2eb-28fc2b9e5730</name> + <entityField>IS_STANDARD_ICON</entityField> + </neonTableColumn> + <neonTableColumn> + <name>07e3bcf0-30aa-4745-8dd6-ed79dd2d0fa0</name> + <entityField>ADDR_TYPE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>570039fc-c27a-4b06-a93e-16cc712a3d0c</name> + <entityField>ADDRESS</entityField> + </neonTableColumn> + <neonTableColumn> + <name>26ca52ce-91e7-4e76-a37e-6db28b967beb</name> + <entityField>BUILDINGNO</entityField> + </neonTableColumn> + <neonTableColumn> + <name>a54d6306-e9be-41db-9d1c-abeebe5ce77b</name> + <entityField>ZIP</entityField> + </neonTableColumn> + <neonTableColumn> + <name>6a07479c-b4d3-4946-993e-e6ce7dd825ba</name> + <entityField>CITY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>e6d9ced9-eea3-4cdf-9751-74c8f206282f</name> + <entityField>COUNTRY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>820b6ffc-7e56-4982-8f39-4443b0ada876</name> + <entityField>STATE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>9651a718-ab01-4c97-8da0-6e7133f26466</name> + <entityField>REGION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>24f73ac8-ac90-4beb-83fe-bdaa2d0806b6</name> + <entityField>ADDRIDENTIFIER</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/AppointmentPreview_view/AppointmentPreview_view.aod b/neonView/AppointmentPreview_view/AppointmentPreview_view.aod index 819854f42b0c431257b16eac4e08f468cc9e8a73..b98f1bf94f63ae76b25d22b5d0248ce5531f0c9b 100644 --- a/neonView/AppointmentPreview_view/AppointmentPreview_view.aod +++ b/neonView/AppointmentPreview_view/AppointmentPreview_view.aod @@ -1,31 +1,31 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>AppointmentPreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <documentation>%aditoprj%/neonView/AppointmentPreview_view/documentation.adoc</documentation> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <appointmentPreviewViewTemplate> - <name>Appointments</name> - <summaryField>SUMMARY</summaryField> - <descriptionField>DESCRIPTION</descriptionField> - <beginField>BEGIN</beginField> - <endField>END</endField> - <periodField>STARTEND</periodField> - <attendeesField>ATTENDEES</attendeesField> - <privateField>CLASSIFICATION</privateField> - <transparencyField>TRANSPARENCY</transparencyField> - <statusField>STATUS</statusField> - <locationField>LOCATION</locationField> - <linkField>LINKS</linkField> - <organizerField>ORGANIZER</organizerField> - <categoriesField>CATEGORIES</categoriesField> - <favoriteActionGroup1>PartStatActionGroup</favoriteActionGroup1> - <entityField>#ENTITY</entityField> - </appointmentPreviewViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>AppointmentPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/neonView/AppointmentPreview_view/documentation.adoc</documentation> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <appointmentPreviewViewTemplate> + <name>Appointments</name> + <summaryField>SUMMARY</summaryField> + <descriptionField>DESCRIPTION</descriptionField> + <beginField>BEGIN</beginField> + <endField>END</endField> + <periodField>STARTEND</periodField> + <attendeesField>ATTENDEES</attendeesField> + <privateField>CLASSIFICATION</privateField> + <transparencyField>TRANSPARENCY</transparencyField> + <statusField>STATUS</statusField> + <locationField>LOCATION</locationField> + <linkField>LINKS</linkField> + <organizerField>ORGANIZER</organizerField> + <categoriesField>CATEGORIES</categoriesField> + <favoriteActionGroup1>PartStatActionGroup</favoriteActionGroup1> + <entityField>#ENTITY</entityField> + </appointmentPreviewViewTemplate> + </children> +</neonView> diff --git a/neonView/AttributeEdit_view/AttributeEdit_view.aod b/neonView/AttributeEdit_view/AttributeEdit_view.aod index f78afae6d06272d3077a637ba3bd057ab9a1b512..9e6468058f672c28f88845a0c06c3d362928be4f 100644 --- a/neonView/AttributeEdit_view/AttributeEdit_view.aod +++ b/neonView/AttributeEdit_view/AttributeEdit_view.aod @@ -1,49 +1,49 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>AttributeEdit_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <isSmall v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Edit</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>2d269ed7-a664-40c3-aadb-f274f7c00a66</name> - <entityField>ATTRIBUTE_PARENT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>0c6cd7c6-cced-4719-b0c5-08f8e3d13f2f</name> - <entityField>ATTRIBUTE_NAME</entityField> - </entityFieldLink> - <entityFieldLink> - <name>8cbc6049-2530-4960-b45f-830f3220889e</name> - <entityField>ATTRIBUTE_TYPE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>529f9734-182e-46f3-ad89-14dc5656f307</name> - <entityField>KEYWORD_CONTAINER</entityField> - </entityFieldLink> - <entityFieldLink> - <name>d26696ac-199c-45f0-9147-b75dee3f4b65</name> - <entityField>ATTRIBUTE_ACTIVE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>c8a5f45e-8092-45f4-ac22-681700447235</name> - <entityField>ATTRIBUTE_LEVEL</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>8387ef27-9565-400f-a0d5-ef1d2019b722</name> - <entityField>AttributeUsages</entityField> - <view>AttributeUsageMultiEdit_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>AttributeEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <isSmall v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Edit</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>2d269ed7-a664-40c3-aadb-f274f7c00a66</name> + <entityField>ATTRIBUTE_PARENT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>0c6cd7c6-cced-4719-b0c5-08f8e3d13f2f</name> + <entityField>ATTRIBUTE_NAME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>8cbc6049-2530-4960-b45f-830f3220889e</name> + <entityField>ATTRIBUTE_TYPE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>529f9734-182e-46f3-ad89-14dc5656f307</name> + <entityField>KEYWORD_CONTAINER</entityField> + </entityFieldLink> + <entityFieldLink> + <name>d26696ac-199c-45f0-9147-b75dee3f4b65</name> + <entityField>ATTRIBUTE_ACTIVE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>c8a5f45e-8092-45f4-ac22-681700447235</name> + <entityField>ATTRIBUTE_LEVEL</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>8387ef27-9565-400f-a0d5-ef1d2019b722</name> + <entityField>AttributeUsages</entityField> + <view>AttributeUsageMultiEdit_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/AttributeFilter_view/AttributeFilter_view.aod b/neonView/AttributeFilter_view/AttributeFilter_view.aod index 79fc5402108a04f36332e5e5dbceb2e699619cb5..469cabe73efa8e3461c454e643c70590f8f6c420 100644 --- a/neonView/AttributeFilter_view/AttributeFilter_view.aod +++ b/neonView/AttributeFilter_view/AttributeFilter_view.aod @@ -1,62 +1,62 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>AttributeFilter_view</name> - <title>Attributes</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <layout> - <groupLayout> - <name>layout</name> - </groupLayout> - </layout> - <children> - <treeTableViewTemplate> - <name>AttributeTreeTable</name> - <parentField>ATTRIBUTE_PARENT_ID</parentField> - <favoriteActionGroup1>AttributeActions</favoriteActionGroup1> - <showChildrenCount v="false" /> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>169aceb2-2ff8-42de-ab89-4d3cc15d5747</name> - <entityField>ICON</entityField> - <width v="75" /> - </neonTableColumn> - <neonTableColumn> - <name>a776a053-6712-44f9-943f-da26d1ce11ee</name> - <entityField>ATTRIBUTE_NAME</entityField> - </neonTableColumn> - <neonTableColumn> - <name>b975154d-8bac-4182-9030-e3b3d744c642</name> - <entityField>ATTRIBUTE_TYPE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>ad92d325-6cdb-4fa0-a99b-27c937c89936</name> - <entityField>USAGELIST</entityField> - </neonTableColumn> - </columns> - </treeTableViewTemplate> - <tableViewTemplate> - <name>AttributesTable</name> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>c1ee431e-e4d2-4744-ad8c-2bf2c2eed8d6</name> - <entityField>ICON</entityField> - </neonTableColumn> - <neonTableColumn> - <name>4dae1a23-8798-42ff-998c-7f5fedc7dcc5</name> - <entityField>FULL_ATTRIBUTE_NAME</entityField> - </neonTableColumn> - <neonTableColumn> - <name>ed7598ea-c29c-4d04-9b28-27ee3b28a5b1</name> - <entityField>ATTRIBUTE_TYPE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>cc88ea53-2673-4c6e-ac2e-6766d2698453</name> - <entityField>USAGELIST</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>AttributeFilter_view</name> + <title>Attributes</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <groupLayout> + <name>layout</name> + </groupLayout> + </layout> + <children> + <treeTableViewTemplate> + <name>AttributeTreeTable</name> + <parentField>ATTRIBUTE_PARENT_ID</parentField> + <favoriteActionGroup1>AttributeActions</favoriteActionGroup1> + <showChildrenCount v="false" /> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>169aceb2-2ff8-42de-ab89-4d3cc15d5747</name> + <entityField>ICON</entityField> + <width v="75" /> + </neonTableColumn> + <neonTableColumn> + <name>a776a053-6712-44f9-943f-da26d1ce11ee</name> + <entityField>ATTRIBUTE_NAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>b975154d-8bac-4182-9030-e3b3d744c642</name> + <entityField>ATTRIBUTE_TYPE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>ad92d325-6cdb-4fa0-a99b-27c937c89936</name> + <entityField>USAGELIST</entityField> + </neonTableColumn> + </columns> + </treeTableViewTemplate> + <tableViewTemplate> + <name>AttributesTable</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>c1ee431e-e4d2-4744-ad8c-2bf2c2eed8d6</name> + <entityField>ICON</entityField> + </neonTableColumn> + <neonTableColumn> + <name>4dae1a23-8798-42ff-998c-7f5fedc7dcc5</name> + <entityField>FULL_ATTRIBUTE_NAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>ed7598ea-c29c-4d04-9b28-27ee3b28a5b1</name> + <entityField>ATTRIBUTE_TYPE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>cc88ea53-2673-4c6e-ac2e-6766d2698453</name> + <entityField>USAGELIST</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/AttributePreview_view/AttributePreview_view.aod b/neonView/AttributePreview_view/AttributePreview_view.aod index 30160531d5866274c009a4c3484e169b46909ae4..e710ffaa582ce6ed96579096870168f1ffb72766 100644 --- a/neonView/AttributePreview_view/AttributePreview_view.aod +++ b/neonView/AttributePreview_view/AttributePreview_view.aod @@ -1,43 +1,43 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>AttributePreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <headerFooterLayout> - <name>layout</name> - <header>Head</header> - </headerFooterLayout> - </layout> - <children> - <cardViewTemplate> - <name>Head</name> - <iconField>ICON</iconField> - <titleField>FULL_ATTRIBUTE_NAME</titleField> - <subtitleField>ATTRIBUTE_TYPE</subtitleField> - <entityField>#ENTITY</entityField> - </cardViewTemplate> - <genericViewTemplate> - <name>Details</name> - <showDrawer v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>3de869e9-936b-4215-86de-b1e24f6bfd78</name> - <entityField>ATTRIBUTE_PARENT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>39cf159f-2c34-41a1-bf6d-210d2d1f8df9</name> - <entityField>KEYWORD_CONTAINER</entityField> - </entityFieldLink> - <entityFieldLink> - <name>70953962-9472-484b-ac95-567d2249f42e</name> - <entityField>ATTRIBUTE_ACTIVE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>1b1cfdcb-fcab-4ca9-b0e0-b69fe88b65f0</name> - <entityField>SORTING</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>AttributePreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>Head</header> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>Head</name> + <iconField>ICON</iconField> + <titleField>FULL_ATTRIBUTE_NAME</titleField> + <subtitleField>ATTRIBUTE_TYPE</subtitleField> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>Details</name> + <showDrawer v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>3de869e9-936b-4215-86de-b1e24f6bfd78</name> + <entityField>ATTRIBUTE_PARENT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>39cf159f-2c34-41a1-bf6d-210d2d1f8df9</name> + <entityField>KEYWORD_CONTAINER</entityField> + </entityFieldLink> + <entityFieldLink> + <name>70953962-9472-484b-ac95-567d2249f42e</name> + <entityField>ATTRIBUTE_ACTIVE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>1b1cfdcb-fcab-4ca9-b0e0-b69fe88b65f0</name> + <entityField>SORTING</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/AttributeRelationMultiEdit_view/AttributeRelationMultiEdit_view.aod b/neonView/AttributeRelationMultiEdit_view/AttributeRelationMultiEdit_view.aod index 8f7b33981ff589b147054db2dd34297b00e2fd9e..d766c6ccc0b0b1e7143658e421d7275d3d1dcb76 100644 --- a/neonView/AttributeRelationMultiEdit_view/AttributeRelationMultiEdit_view.aod +++ b/neonView/AttributeRelationMultiEdit_view/AttributeRelationMultiEdit_view.aod @@ -1,26 +1,26 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>AttributeRelationMultiEdit_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <noneLayout> - <name>layout</name> - </noneLayout> - </layout> - <children> - <genericMultipleViewTemplate> - <name>GenericMultiple</name> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>5ccc9c8e-baee-4506-b4cc-3797be0eb237</name> - <entityField>AB_ATTRIBUTE_ID</entityField> - </neonTableColumn> - <neonTableColumn> - <name>ada9c77a-f37b-4021-a01a-a06edd75cb25</name> - <entityField>VALUE</entityField> - </neonTableColumn> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>AttributeRelationMultiEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <noneLayout> + <name>layout</name> + </noneLayout> + </layout> + <children> + <genericMultipleViewTemplate> + <name>GenericMultiple</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>5ccc9c8e-baee-4506-b4cc-3797be0eb237</name> + <entityField>AB_ATTRIBUTE_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>ada9c77a-f37b-4021-a01a-a06edd75cb25</name> + <entityField>VALUE</entityField> + </neonTableColumn> + </columns> + </genericMultipleViewTemplate> + </children> +</neonView> diff --git a/neonView/AttributeRelationTree_view/AttributeRelationTree_view.aod b/neonView/AttributeRelationTree_view/AttributeRelationTree_view.aod index 9aca5c5e4f344b97bea11ba0994634ce74b547f8..5ce8d663976d2bd5689c8336962d2c65947fe4c1 100644 --- a/neonView/AttributeRelationTree_view/AttributeRelationTree_view.aod +++ b/neonView/AttributeRelationTree_view/AttributeRelationTree_view.aod @@ -1,29 +1,29 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>AttributeRelationTree_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <treeTableViewTemplate> - <name>TreeTable</name> - <parentField>PARENT_ID</parentField> - <favoriteActionGroup1>alter</favoriteActionGroup1> - <showChildrenCount v="false" /> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>840551af-5a99-4965-a96a-ed134efb28a9</name> - <entityField>AB_ATTRIBUTE_ID</entityField> - </neonTableColumn> - <neonTableColumn> - <name>7844082c-fd31-4878-9e57-024cb2b2b627</name> - <entityField>VALUE</entityField> - </neonTableColumn> - </columns> - </treeTableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>AttributeRelationTree_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <treeTableViewTemplate> + <name>TreeTable</name> + <parentField>PARENT_ID</parentField> + <favoriteActionGroup1>alter</favoriteActionGroup1> + <showChildrenCount v="false" /> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>840551af-5a99-4965-a96a-ed134efb28a9</name> + <entityField>AB_ATTRIBUTE_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>7844082c-fd31-4878-9e57-024cb2b2b627</name> + <entityField>VALUE</entityField> + </neonTableColumn> + </columns> + </treeTableViewTemplate> + </children> +</neonView> diff --git a/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod b/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod index d32c9d8afbbdbe9a856502e560363b68392735a9..eb4159e1a9171bd511e1c18b88f13ccf214fb94e 100644 --- a/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod +++ b/neonView/AttributeUsageMultiEdit_view/AttributeUsageMultiEdit_view.aod @@ -1,31 +1,31 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>AttributeUsageMultiEdit_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <noneLayout> - <name>layout</name> - </noneLayout> - </layout> - <children> - <genericMultipleViewTemplate> - <name>MultipleEdit</name> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>a2efb4ca-4e8d-4e90-9870-2cebf338d95f</name> - <entityField>OBJECT_TYPE</entityField> - <width v="75" /> - </neonTableColumn> - <neonTableColumn> - <name>4eb1b225-5856-4585-b6dd-401d1334d8ba</name> - <entityField>MIN_COUNT</entityField> - </neonTableColumn> - <neonTableColumn> - <name>16bd5079-6496-4c5f-a821-ae145e1bc981</name> - <entityField>MAX_COUNT</entityField> - </neonTableColumn> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>AttributeUsageMultiEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <noneLayout> + <name>layout</name> + </noneLayout> + </layout> + <children> + <genericMultipleViewTemplate> + <name>MultipleEdit</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>a2efb4ca-4e8d-4e90-9870-2cebf338d95f</name> + <entityField>OBJECT_TYPE</entityField> + <width v="75" /> + </neonTableColumn> + <neonTableColumn> + <name>4eb1b225-5856-4585-b6dd-401d1334d8ba</name> + <entityField>MIN_COUNT</entityField> + </neonTableColumn> + <neonTableColumn> + <name>16bd5079-6496-4c5f-a821-ae145e1bc981</name> + <entityField>MAX_COUNT</entityField> + </neonTableColumn> + </columns> + </genericMultipleViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignAddParticipantsEdit_view/CampaignAddParticipantsEdit_view.aod b/neonView/CampaignAddParticipantsEdit_view/CampaignAddParticipantsEdit_view.aod index 96b44126898eb22f208ec17f823626ea95513c0b..1577d06375511b599aa881c366c6db0249450921 100644 --- a/neonView/CampaignAddParticipantsEdit_view/CampaignAddParticipantsEdit_view.aod +++ b/neonView/CampaignAddParticipantsEdit_view/CampaignAddParticipantsEdit_view.aod @@ -1,48 +1,48 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignAddParticipantsEdit_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <isSmall v="true" /> - <layout> - <headerFooterLayout> - <name>layout</name> - <header>SelectedCampaignInfosScore</header> - </headerFooterLayout> - </layout> - <children> - <scoreCardViewTemplate> - <name>SelectedCampaignInfosScore</name> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>5fb2164c-9433-480a-9d55-726a2b05a549</name> - <entityField>campaignStepCurrentParticipantCount</entityField> - </entityFieldLink> - <entityFieldLink> - <name>d0820091-352f-431f-8d7a-71cb5b576853</name> - <entityField>campaignStepMaxParticipantCount</entityField> - </entityFieldLink> - </fields> - </scoreCardViewTemplate> - <genericViewTemplate> - <name>campaignDetail</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>4968ad35-3651-4654-a1b0-0e3d0fc6165d</name> - <entityField>CAMPAIGN_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>b9016725-1345-4526-88eb-2b05fb4089c8</name> - <entityField>CAMPAIGNSTEP_ID</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>1bfb0564-f81f-4c60-ae5b-1d9778a519ab</name> - <entityField>#ENTITY</entityField> - <view>campaignParticipantMessage_view</view> - </neonViewReference> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignAddParticipantsEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <isSmall v="true" /> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>SelectedCampaignInfosScore</header> + </headerFooterLayout> + </layout> + <children> + <scoreCardViewTemplate> + <name>SelectedCampaignInfosScore</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>5fb2164c-9433-480a-9d55-726a2b05a549</name> + <entityField>campaignStepCurrentParticipantCount</entityField> + </entityFieldLink> + <entityFieldLink> + <name>d0820091-352f-431f-8d7a-71cb5b576853</name> + <entityField>campaignStepMaxParticipantCount</entityField> + </entityFieldLink> + </fields> + </scoreCardViewTemplate> + <genericViewTemplate> + <name>campaignDetail</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>4968ad35-3651-4654-a1b0-0e3d0fc6165d</name> + <entityField>CAMPAIGN_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>b9016725-1345-4526-88eb-2b05fb4089c8</name> + <entityField>CAMPAIGNSTEP_ID</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>1bfb0564-f81f-4c60-ae5b-1d9778a519ab</name> + <entityField>#ENTITY</entityField> + <view>campaignParticipantMessage_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/CampaignCharts_view/CampaignCharts_view.aod b/neonView/CampaignCharts_view/CampaignCharts_view.aod index bb0f266e21de5d8c773a8e3c3f06a91131accb37..5449eba0f590bcaf8c352900f6cfa450726076e7 100644 --- a/neonView/CampaignCharts_view/CampaignCharts_view.aod +++ b/neonView/CampaignCharts_view/CampaignCharts_view.aod @@ -1,23 +1,23 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignCharts_view</name> - <title>Overview</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <neonViewReference> - <name>e96b6827-e47e-4d85-a1fd-b1b52f36fe31</name> - <entityField>CampaignCostsChart</entityField> - <view>CampaignCostChart_view</view> - </neonViewReference> - <neonViewReference> - <name>e6d6c775-3d85-4a59-8df0-d57e7174ed90</name> - <entityField>CampaignParticipantsChart</entityField> - <view>CampaignParticipantChart_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignCharts_view</name> + <title>Overview</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <neonViewReference> + <name>e96b6827-e47e-4d85-a1fd-b1b52f36fe31</name> + <entityField>CampaignCostsChart</entityField> + <view>CampaignCostChart_view</view> + </neonViewReference> + <neonViewReference> + <name>e6d6c775-3d85-4a59-8df0-d57e7174ed90</name> + <entityField>CampaignParticipantsChart</entityField> + <view>CampaignParticipantChart_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/CampaignCostChart_view/CampaignCostChart_view.aod b/neonView/CampaignCostChart_view/CampaignCostChart_view.aod index 70c5e7f5cbc9d4a8de285a96be5014a8cd3f09fb..e308338e19643a241decc8b546f51ca6bfb4d68c 100644 --- a/neonView/CampaignCostChart_view/CampaignCostChart_view.aod +++ b/neonView/CampaignCostChart_view/CampaignCostChart_view.aod @@ -1,21 +1,21 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignCostChart_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <singleDataChartViewTemplate> - <name>SingleDataChart</name> - <chartTitle>Cost</chartTitle> - <chartType>DONUT</chartType> - <xAxis>X</xAxis> - <yAxis>Y</yAxis> - <parentField>PARENT</parentField> - <entityField>#ENTITY</entityField> - </singleDataChartViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignCostChart_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <singleDataChartViewTemplate> + <name>SingleDataChart</name> + <chartTitle>Cost</chartTitle> + <chartType>DONUT</chartType> + <xAxis>X</xAxis> + <yAxis>Y</yAxis> + <parentField>PARENT</parentField> + <entityField>#ENTITY</entityField> + </singleDataChartViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignCostEdit_view/CampaignCostEdit_view.aod b/neonView/CampaignCostEdit_view/CampaignCostEdit_view.aod index 69429a3f8b8cf6be7c4719645893042c7f9499e0..ec20764a7b3f8d89b9117fd4d9743e133d388c2a 100644 --- a/neonView/CampaignCostEdit_view/CampaignCostEdit_view.aod +++ b/neonView/CampaignCostEdit_view/CampaignCostEdit_view.aod @@ -1,32 +1,32 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignCostEdit_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <isSmall v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>EditFields</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>2937d501-ee30-4535-870b-1d5d4ccc21ba</name> - <entityField>CAMPAIGNSTEP_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>bb0e5fb9-e82c-47f7-b6fa-f3e5d4c36649</name> - <entityField>CATEGORY</entityField> - </entityFieldLink> - <entityFieldLink> - <name>23f1ec3b-91b3-44b6-bf2b-a976da6e3778</name> - <entityField>NET</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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignCostEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <isSmall v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>EditFields</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>2937d501-ee30-4535-870b-1d5d4ccc21ba</name> + <entityField>CAMPAIGNSTEP_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>bb0e5fb9-e82c-47f7-b6fa-f3e5d4c36649</name> + <entityField>CATEGORY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>23f1ec3b-91b3-44b6-bf2b-a976da6e3778</name> + <entityField>NET</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignCostExtendedFilter_view/CampaignCostExtendedFilter_view.aod b/neonView/CampaignCostExtendedFilter_view/CampaignCostExtendedFilter_view.aod index 94892da46ddd8019cdca05edd461f0b30d7ff61d..22255e2bacd85a61dda98a6b09953e4ff8e92e70 100644 --- a/neonView/CampaignCostExtendedFilter_view/CampaignCostExtendedFilter_view.aod +++ b/neonView/CampaignCostExtendedFilter_view/CampaignCostExtendedFilter_view.aod @@ -1,36 +1,36 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignCostExtendedFilter_view</name> - <title>Stop costs</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>CampaignCost</name> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>5202d410-fc4d-4109-93b1-8743954a25e2</name> - <entityField>CATEGORY</entityField> - </neonTableColumn> - <neonTableColumn> - <name>b3c90c61-9f12-4b1c-9e27-b88abe77fd4e</name> - <entityField>NET</entityField> - </neonTableColumn> - <neonTableColumn> - <name>3dc61836-42a2-4cd9-b87f-14381d72d01a</name> - <entityField>netPerParticipant</entityField> - </neonTableColumn> - <neonTableColumn> - <name>0f42e172-f2d0-45de-8a39-d0e4609b3393</name> - <entityField>countParticipants</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignCostExtendedFilter_view</name> + <title>Stop costs</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>CampaignCost</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>5202d410-fc4d-4109-93b1-8743954a25e2</name> + <entityField>CATEGORY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>b3c90c61-9f12-4b1c-9e27-b88abe77fd4e</name> + <entityField>NET</entityField> + </neonTableColumn> + <neonTableColumn> + <name>3dc61836-42a2-4cd9-b87f-14381d72d01a</name> + <entityField>netPerParticipant</entityField> + </neonTableColumn> + <neonTableColumn> + <name>0f42e172-f2d0-45de-8a39-d0e4609b3393</name> + <entityField>countParticipants</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignCostFilter_view/CampaignCostFilter_view.aod b/neonView/CampaignCostFilter_view/CampaignCostFilter_view.aod index 8b940f6c9f56259fc92e3c57128293689d54e4ef..422f1322ba2b6403b99060ae132c3d644df13f85 100644 --- a/neonView/CampaignCostFilter_view/CampaignCostFilter_view.aod +++ b/neonView/CampaignCostFilter_view/CampaignCostFilter_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignCostFilter_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>CampaignCost</name> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>651c5bd4-8f87-40d4-9d1f-38549b1e5fdf</name> - <entityField>CATEGORY</entityField> - </neonTableColumn> - <neonTableColumn> - <name>ee4676af-5bb6-4805-99cb-954ef3b178f0</name> - <entityField>NET</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignCostFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>CampaignCost</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>651c5bd4-8f87-40d4-9d1f-38549b1e5fdf</name> + <entityField>CATEGORY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>ee4676af-5bb6-4805-99cb-954ef3b178f0</name> + <entityField>NET</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignCost_view/CampaignCost_view.aod b/neonView/CampaignCost_view/CampaignCost_view.aod index b392d37aa91da50891fa207e1301682c74d93ec1..4f8650c74e57ab1f6006a0637fcb82e415398760 100644 --- a/neonView/CampaignCost_view/CampaignCost_view.aod +++ b/neonView/CampaignCost_view/CampaignCost_view.aod @@ -1,23 +1,23 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignCost_view</name> - <title>Cost</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <neonViewReference> - <name>127a0cab-ec21-47e6-ba6c-c091cb31c794</name> - <entityField>CampaignCosts</entityField> - <view>CampaignCostFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>5830d1ed-c118-4a37-ab65-4727e8312c0a</name> - <entityField>CampaignStepCosts</entityField> - <view>CampaignGroupedCostFilter_view</view> - </neonViewReference> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignCost_view</name> + <title>Cost</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <neonViewReference> + <name>127a0cab-ec21-47e6-ba6c-c091cb31c794</name> + <entityField>CampaignCosts</entityField> + <view>CampaignCostFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>5830d1ed-c118-4a37-ab65-4727e8312c0a</name> + <entityField>CampaignStepCosts</entityField> + <view>CampaignGroupedCostFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/CampaignEdit_view/CampaignEdit_view.aod b/neonView/CampaignEdit_view/CampaignEdit_view.aod index 29d30dd1c512b42a1888a84f9093d38fcbb729f6..5f47c17650ff4ce42601afa92e7ac07903138d7c 100644 --- a/neonView/CampaignEdit_view/CampaignEdit_view.aod +++ b/neonView/CampaignEdit_view/CampaignEdit_view.aod @@ -1,46 +1,46 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignEdit_view</name> - <title>Campaign</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>VAADIN:GROUP</icon> - <isSmall v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Edit</name> - <editMode v="true" /> - <showDrawer v="false" /> - <drawerCaption></drawerCaption> - <entityField>#ENTITY</entityField> - <title>Neue Kampagne</title> - <fields> - <entityFieldLink> - <name>df6356cf-e0bd-4947-8163-736301e622cf</name> - <entityField>NAME</entityField> - </entityFieldLink> - <entityFieldLink> - <name>57992f29-2e55-4f1f-8652-c2817a3b257e</name> - <entityField>EMPLOYEE_CONTACT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>8372cca8-be9f-4910-bebd-64bd41cc7083</name> - <entityField>STATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>114121d3-093a-40e7-9e0e-f187c9eaa5f1</name> - <entityField>DESCRIPTION</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>58b76841-24df-4fce-a05b-580712e8ecdc</name> - <entityField>Attributes</entityField> - <view>AttributeRelationMultiEdit_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignEdit_view</name> + <title>Campaign</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:GROUP</icon> + <isSmall v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Edit</name> + <editMode v="true" /> + <showDrawer v="false" /> + <drawerCaption></drawerCaption> + <entityField>#ENTITY</entityField> + <title>Neue Kampagne</title> + <fields> + <entityFieldLink> + <name>df6356cf-e0bd-4947-8163-736301e622cf</name> + <entityField>NAME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>57992f29-2e55-4f1f-8652-c2817a3b257e</name> + <entityField>EMPLOYEE_CONTACT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>8372cca8-be9f-4910-bebd-64bd41cc7083</name> + <entityField>STATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>114121d3-093a-40e7-9e0e-f187c9eaa5f1</name> + <entityField>DESCRIPTION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>58b76841-24df-4fce-a05b-580712e8ecdc</name> + <entityField>Attributes</entityField> + <view>AttributeRelationMultiEdit_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/CampaignFilter_view/CampaignFilter_view.aod b/neonView/CampaignFilter_view/CampaignFilter_view.aod index ed7926efe8bc7bb0d4856b099538c4d2c351ee4e..510f3135e777676ac27d17b89ee3fc9015d383d8 100644 --- a/neonView/CampaignFilter_view/CampaignFilter_view.aod +++ b/neonView/CampaignFilter_view/CampaignFilter_view.aod @@ -1,44 +1,44 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignFilter_view</name> - <title>Campaign</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>VAADIN:GROUP</icon> - <filterable v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>Campaigns</name> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>8fd2c7a2-37ad-43be-b37a-3cf9d07e71c8</name> - <entityField>#IMAGE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>c384e4df-3f29-45b8-b86d-2c6aa253833f</name> - <entityField>NAME</entityField> - <width v="100" /> - </neonTableColumn> - <neonTableColumn> - <name>a66574f0-f104-4579-b1fe-e9f33cd200be</name> - <entityField>DATE_START</entityField> - <width v="100" /> - </neonTableColumn> - <neonTableColumn> - <name>0153b107-544e-4f9a-a734-431d343abc8e</name> - <entityField>DATE_END</entityField> - <width v="100" /> - </neonTableColumn> - <neonTableColumn> - <name>3f075c57-e61a-4db2-a402-141da6bbf29d</name> - <entityField>STATE</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignFilter_view</name> + <title>Campaign</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:GROUP</icon> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Campaigns</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>8fd2c7a2-37ad-43be-b37a-3cf9d07e71c8</name> + <entityField>#IMAGE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>c384e4df-3f29-45b8-b86d-2c6aa253833f</name> + <entityField>NAME</entityField> + <width v="100" /> + </neonTableColumn> + <neonTableColumn> + <name>a66574f0-f104-4579-b1fe-e9f33cd200be</name> + <entityField>DATE_START</entityField> + <width v="100" /> + </neonTableColumn> + <neonTableColumn> + <name>0153b107-544e-4f9a-a734-431d343abc8e</name> + <entityField>DATE_END</entityField> + <width v="100" /> + </neonTableColumn> + <neonTableColumn> + <name>3f075c57-e61a-4db2-a402-141da6bbf29d</name> + <entityField>STATE</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignGroupedCostFilter_view/CampaignGroupedCostFilter_view.aod b/neonView/CampaignGroupedCostFilter_view/CampaignGroupedCostFilter_view.aod index e3bce2264a0cfdf1ab4378f49c5bc7f799c3c5f3..8cbe7412a2e87a9b98c4365d8f3f7a7e2cd71c7f 100644 --- a/neonView/CampaignGroupedCostFilter_view/CampaignGroupedCostFilter_view.aod +++ b/neonView/CampaignGroupedCostFilter_view/CampaignGroupedCostFilter_view.aod @@ -1,40 +1,40 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignGroupedCostFilter_view</name> - <title>Step costs</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <treeTableViewTemplate> - <name>CostTreeTable</name> - <favoriteActionGroup1>alter</favoriteActionGroup1> - <defaultGroupFields> - <element>CAMPAIGNSTEP_ID</element> - </defaultGroupFields> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>457caff8-0403-425f-839c-62e5d05fe3a1</name> - <entityField>CATEGORY</entityField> - </neonTableColumn> - <neonTableColumn> - <name>2adbd887-f1df-43ff-bde9-12c8273af7a9</name> - <entityField>NET</entityField> - </neonTableColumn> - <neonTableColumn> - <name>f8c6439c-9536-477b-af19-26719902e12e</name> - <entityField>netPerParticipant</entityField> - </neonTableColumn> - <neonTableColumn> - <name>8239e81b-d69c-4ea9-b55d-83e79d1693cf</name> - <entityField>countParticipants</entityField> - </neonTableColumn> - </columns> - </treeTableViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignGroupedCostFilter_view</name> + <title>Step costs</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <treeTableViewTemplate> + <name>CostTreeTable</name> + <favoriteActionGroup1>alter</favoriteActionGroup1> + <defaultGroupFields> + <element>CAMPAIGNSTEP_ID</element> + </defaultGroupFields> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>457caff8-0403-425f-839c-62e5d05fe3a1</name> + <entityField>CATEGORY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>2adbd887-f1df-43ff-bde9-12c8273af7a9</name> + <entityField>NET</entityField> + </neonTableColumn> + <neonTableColumn> + <name>f8c6439c-9536-477b-af19-26719902e12e</name> + <entityField>netPerParticipant</entityField> + </neonTableColumn> + <neonTableColumn> + <name>8239e81b-d69c-4ea9-b55d-83e79d1693cf</name> + <entityField>countParticipants</entityField> + </neonTableColumn> + </columns> + </treeTableViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignMain_view/CampaignMain_view.aod b/neonView/CampaignMain_view/CampaignMain_view.aod index c9465927c542a66e2809f13a711cab9417d81905..b51c454020a2100a132ecad90102c2b225425919 100644 --- a/neonView/CampaignMain_view/CampaignMain_view.aod +++ b/neonView/CampaignMain_view/CampaignMain_view.aod @@ -1,54 +1,54 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignMain_view</name> - <title>Campaign</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <masterSlaveLayout> - <name>layout</name> - <master>3092912e-212f-4e3a-9cde-dca8219f9ad7</master> - </masterSlaveLayout> - </layout> - <children> - <neonViewReference> - <name>3092912e-212f-4e3a-9cde-dca8219f9ad7</name> - <entityField>#ENTITY</entityField> - <view>CampaignPreview_view</view> - </neonViewReference> - <neonViewReference> - <name>400f5a85-2691-47f6-9cc0-e7635828c5a5</name> - <entityField>#ENTITY</entityField> - <view>CampaignCharts_view</view> - </neonViewReference> - <neonViewReference> - <name>ad66a5a6-65fb-45d5-bf62-45661fc16e30</name> - <entityField>CampaignSteps</entityField> - <view>CampaignStepFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>77a8018e-0acc-47fd-b780-28c7fe4f5420</name> - <entityField>CampaignParticipants</entityField> - <view>CampaignParticipantFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>405213b0-e044-4199-9cd3-220c09ac7323</name> - <entityField>#ENTITY</entityField> - <view>CampaignCost_view</view> - </neonViewReference> - <neonViewReference> - <name>90d3d016-63e6-4e8a-98ee-30033bef49fc</name> - <entityField>Activities</entityField> - <view>ActivityFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>e28e5598-9366-4f5a-be8f-70dd3cc0399a</name> - <entityField>Tasks</entityField> - <view>TaskFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>c6237b30-d638-43e3-93c5-fc3abbb87443</name> - <entityField>Attributes</entityField> - <view>AttributeRelationTree_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignMain_view</name> + <title>Campaign</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>3092912e-212f-4e3a-9cde-dca8219f9ad7</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>3092912e-212f-4e3a-9cde-dca8219f9ad7</name> + <entityField>#ENTITY</entityField> + <view>CampaignPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>400f5a85-2691-47f6-9cc0-e7635828c5a5</name> + <entityField>#ENTITY</entityField> + <view>CampaignCharts_view</view> + </neonViewReference> + <neonViewReference> + <name>ad66a5a6-65fb-45d5-bf62-45661fc16e30</name> + <entityField>CampaignSteps</entityField> + <view>CampaignStepFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>77a8018e-0acc-47fd-b780-28c7fe4f5420</name> + <entityField>CampaignParticipants</entityField> + <view>CampaignParticipantFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>405213b0-e044-4199-9cd3-220c09ac7323</name> + <entityField>#ENTITY</entityField> + <view>CampaignCost_view</view> + </neonViewReference> + <neonViewReference> + <name>90d3d016-63e6-4e8a-98ee-30033bef49fc</name> + <entityField>Activities</entityField> + <view>ActivityFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>e28e5598-9366-4f5a-be8f-70dd3cc0399a</name> + <entityField>Tasks</entityField> + <view>TaskFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>c6237b30-d638-43e3-93c5-fc3abbb87443</name> + <entityField>Attributes</entityField> + <view>AttributeRelationTree_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/CampaignParticipantChart_view/CampaignParticipantChart_view.aod b/neonView/CampaignParticipantChart_view/CampaignParticipantChart_view.aod index eb58fcc3ea60134c733adedc6abc8955a1fa6d97..0f372508781e98a757a5ecf703291735e3395a14 100644 --- a/neonView/CampaignParticipantChart_view/CampaignParticipantChart_view.aod +++ b/neonView/CampaignParticipantChart_view/CampaignParticipantChart_view.aod @@ -1,21 +1,21 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignParticipantChart_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <multiDataChartViewTemplate> - <name>MultiDataChart</name> - <chartTitle>Participants</chartTitle> - <chartType>BAR</chartType> - <xAxis>X</xAxis> - <yAxis>Y</yAxis> - <categoryField>CATEGORY</categoryField> - <entityField>#ENTITY</entityField> - </multiDataChartViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignParticipantChart_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <multiDataChartViewTemplate> + <name>MultiDataChart</name> + <chartTitle>Participants</chartTitle> + <chartType>BAR</chartType> + <xAxis>X</xAxis> + <yAxis>Y</yAxis> + <categoryField>CATEGORY</categoryField> + <entityField>#ENTITY</entityField> + </multiDataChartViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignParticipantEdit_view/CampaignParticipantEdit_view.aod b/neonView/CampaignParticipantEdit_view/CampaignParticipantEdit_view.aod index 756b77934700c526ade996f5ac32d8ac50fde1da..59f3b234669e61ada873b2ef8deb02685945a561 100644 --- a/neonView/CampaignParticipantEdit_view/CampaignParticipantEdit_view.aod +++ b/neonView/CampaignParticipantEdit_view/CampaignParticipantEdit_view.aod @@ -1,49 +1,49 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignParticipantEdit_view</name> - <title>Add participant to Campaign</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <isSmall v="true" /> - <layout> - <headerFooterLayout> - <name>layout</name> - <header>CampaignStepInfos_Score</header> - </headerFooterLayout> - </layout> - <children> - <scoreCardViewTemplate> - <name>CampaignStepInfos_Score</name> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>22e3fc0a-a3cb-4de0-92a6-9797bf2fafea</name> - <entityField>campaignStepCurrentParticipantCount</entityField> - </entityFieldLink> - <entityFieldLink> - <name>2bbf0c7e-6a47-4c5a-a2ae-b2ee1ee17d50</name> - <entityField>campaignStepMaxParticipantCount</entityField> - </entityFieldLink> - </fields> - </scoreCardViewTemplate> - <genericViewTemplate> - <name>Generic</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <title></title> - <fields> - <entityFieldLink> - <name>f578bf25-4903-40a9-95c4-5ef673e57f47</name> - <entityField>CAMPAIGN_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>3d03bc59-f0d1-458e-9453-33c00f10c7ce</name> - <entityField>CAMPAIGNSTEP_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>94aa9a4d-e2e5-4a1b-b6f8-4d5aed87fe53</name> - <entityField>CONTACT_ID</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignParticipantEdit_view</name> + <title>Add participant to Campaign</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <isSmall v="true" /> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>CampaignStepInfos_Score</header> + </headerFooterLayout> + </layout> + <children> + <scoreCardViewTemplate> + <name>CampaignStepInfos_Score</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>22e3fc0a-a3cb-4de0-92a6-9797bf2fafea</name> + <entityField>campaignStepCurrentParticipantCount</entityField> + </entityFieldLink> + <entityFieldLink> + <name>2bbf0c7e-6a47-4c5a-a2ae-b2ee1ee17d50</name> + <entityField>campaignStepMaxParticipantCount</entityField> + </entityFieldLink> + </fields> + </scoreCardViewTemplate> + <genericViewTemplate> + <name>Generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <title></title> + <fields> + <entityFieldLink> + <name>f578bf25-4903-40a9-95c4-5ef673e57f47</name> + <entityField>CAMPAIGN_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>3d03bc59-f0d1-458e-9453-33c00f10c7ce</name> + <entityField>CAMPAIGNSTEP_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>94aa9a4d-e2e5-4a1b-b6f8-4d5aed87fe53</name> + <entityField>CONTACT_ID</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignParticipantFilter_view/CampaignParticipantFilter_view.aod b/neonView/CampaignParticipantFilter_view/CampaignParticipantFilter_view.aod index 47076d4fcbfaa6d6a4fc86fd32a52daa75f76456..aa5f57306c64856ae80d020e429ee8577da0f9ba 100644 --- a/neonView/CampaignParticipantFilter_view/CampaignParticipantFilter_view.aod +++ b/neonView/CampaignParticipantFilter_view/CampaignParticipantFilter_view.aod @@ -1,34 +1,34 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignParticipantFilter_view</name> - <title></title> - <description></description> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <treeTableViewTemplate> - <name>ParticipantsTreeTable</name> - <parentField>CAMPAIGNSTEP_ID</parentField> - <favoriteActionGroup1>FilterViewActionGroup</favoriteActionGroup1> - <defaultGroupFields> - <element>CAMPAIGNSTEP_ID</element> - </defaultGroupFields> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>8bfe5a3d-e0c2-4a34-b510-984960c6de6f</name> - <entityField>CONTACT_ID</entityField> - </neonTableColumn> - <neonTableColumn> - <name>feeea168-1cf9-4402-86ad-ede7d511750f</name> - <entityField>CAMPAIGNSTEP_ID</entityField> - </neonTableColumn> - </columns> - </treeTableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignParticipantFilter_view</name> + <title></title> + <description></description> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <treeTableViewTemplate> + <name>ParticipantsTreeTable</name> + <parentField>CAMPAIGNSTEP_ID</parentField> + <favoriteActionGroup1>FilterViewActionGroup</favoriteActionGroup1> + <defaultGroupFields> + <element>CAMPAIGNSTEP_ID</element> + </defaultGroupFields> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>8bfe5a3d-e0c2-4a34-b510-984960c6de6f</name> + <entityField>CONTACT_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>feeea168-1cf9-4402-86ad-ede7d511750f</name> + <entityField>CAMPAIGNSTEP_ID</entityField> + </neonTableColumn> + </columns> + </treeTableViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignParticipantPreview_view/CampaignParticipantPreview_view.aod b/neonView/CampaignParticipantPreview_view/CampaignParticipantPreview_view.aod index 190c14da70064df4cc8189b74fe598b3ffdfb8a4..e7105c39be1581067334d94ef1a560e2da9d4b17 100644 --- a/neonView/CampaignParticipantPreview_view/CampaignParticipantPreview_view.aod +++ b/neonView/CampaignParticipantPreview_view/CampaignParticipantPreview_view.aod @@ -1,26 +1,26 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignParticipantPreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Generic</name> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>012e9f6b-2507-4977-a43d-84aa54be7f6c</name> - <entityField>CONTACT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>1db0779f-5e93-4d80-baad-26c3128f9f5e</name> - <entityField>CONTACTCONTEXT</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignParticipantPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Generic</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>012e9f6b-2507-4977-a43d-84aa54be7f6c</name> + <entityField>CONTACT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>1db0779f-5e93-4d80-baad-26c3128f9f5e</name> + <entityField>CONTACTCONTEXT</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignPreview_view/CampaignPreview_view.aod b/neonView/CampaignPreview_view/CampaignPreview_view.aod index 50e0907a9664d4d1548bc2dadef2b531c69f698c..5ddb4b29f66085f9ce9aec7f625da5776ad194f1 100644 --- a/neonView/CampaignPreview_view/CampaignPreview_view.aod +++ b/neonView/CampaignPreview_view/CampaignPreview_view.aod @@ -1,79 +1,79 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignPreview_view</name> - <title>Campaign</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>VAADIN:GROUP</icon> - <layout> - <headerFooterLayout> - <name>layout</name> - <header>Header</header> - <footer>ScoreCard</footer> - </headerFooterLayout> - </layout> - <children> - <cardViewTemplate> - <name>Header</name> - <iconField>#IMAGE</iconField> - <titleField>NAME</titleField> - <subtitleField>STATE</subtitleField> - <descriptionField>EMPLOYEE_CONTACT_ID</descriptionField> - <favoriteAction1>newActivity</favoriteAction1> - <entityField>#ENTITY</entityField> - <title></title> - </cardViewTemplate> - <genericViewTemplate> - <name>TimespanGeneric</name> - <showDrawer v="true" /> - <drawerCaption>Campaign Period</drawerCaption> - <entityField>#ENTITY</entityField> - <title>Kampagnenzeitraum</title> - <fields> - <entityFieldLink> - <name>1cf03051-be32-4ff8-9788-6dbc024f086f</name> - <entityField>DATE_START</entityField> - </entityFieldLink> - <entityFieldLink> - <name>a52607c9-da9c-4894-acc6-f31024510d6d</name> - <entityField>DATE_END</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>4ae0c7d5-8573-4e4d-a047-2944d82aebe0</name> - <entityField>CampaignStepsReadonly</entityField> - <view>CampaignStepParticipnatsPerStep_view</view> - </neonViewReference> - <genericViewTemplate> - <name>Description</name> - <showDrawer v="true" /> - <hideLabels v="true" /> - <entityField>#ENTITY</entityField> - <title>Beschreibung</title> - <fields> - <entityFieldLink> - <name>d7c993ff-9696-4de8-9ba5-fc7c92a1a22b</name> - <entityField>DESCRIPTION</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <scoreCardViewTemplate> - <name>ScoreCard</name> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>df1b29fd-0d20-4be0-b6a3-785dadb8a35b</name> - <entityField>COST</entityField> - </entityFieldLink> - <entityFieldLink> - <name>53123640-7524-426a-bb5c-16dab64cef76</name> - <entityField>remainingRuntime</entityField> - </entityFieldLink> - <entityFieldLink> - <name>b689668f-1d48-4ff1-95d9-2e217547c853</name> - <entityField>stepCount</entityField> - </entityFieldLink> - </fields> - </scoreCardViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignPreview_view</name> + <title>Campaign</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:GROUP</icon> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>Header</header> + <footer>ScoreCard</footer> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>Header</name> + <iconField>#IMAGE</iconField> + <titleField>NAME</titleField> + <subtitleField>STATE</subtitleField> + <descriptionField>EMPLOYEE_CONTACT_ID</descriptionField> + <favoriteAction1>newActivity</favoriteAction1> + <entityField>#ENTITY</entityField> + <title></title> + </cardViewTemplate> + <genericViewTemplate> + <name>TimespanGeneric</name> + <showDrawer v="true" /> + <drawerCaption>Campaign Period</drawerCaption> + <entityField>#ENTITY</entityField> + <title>Kampagnenzeitraum</title> + <fields> + <entityFieldLink> + <name>1cf03051-be32-4ff8-9788-6dbc024f086f</name> + <entityField>DATE_START</entityField> + </entityFieldLink> + <entityFieldLink> + <name>a52607c9-da9c-4894-acc6-f31024510d6d</name> + <entityField>DATE_END</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>4ae0c7d5-8573-4e4d-a047-2944d82aebe0</name> + <entityField>CampaignStepsReadonly</entityField> + <view>CampaignStepParticipnatsPerStep_view</view> + </neonViewReference> + <genericViewTemplate> + <name>Description</name> + <showDrawer v="true" /> + <hideLabels v="true" /> + <entityField>#ENTITY</entityField> + <title>Beschreibung</title> + <fields> + <entityFieldLink> + <name>d7c993ff-9696-4de8-9ba5-fc7c92a1a22b</name> + <entityField>DESCRIPTION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <scoreCardViewTemplate> + <name>ScoreCard</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>df1b29fd-0d20-4be0-b6a3-785dadb8a35b</name> + <entityField>COST</entityField> + </entityFieldLink> + <entityFieldLink> + <name>53123640-7524-426a-bb5c-16dab64cef76</name> + <entityField>remainingRuntime</entityField> + </entityFieldLink> + <entityFieldLink> + <name>b689668f-1d48-4ff1-95d9-2e217547c853</name> + <entityField>stepCount</entityField> + </entityFieldLink> + </fields> + </scoreCardViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignStepAddParticipants_view/CampaignStepAddParticipants_view.aod b/neonView/CampaignStepAddParticipants_view/CampaignStepAddParticipants_view.aod index 6bd40ef6ee02ab8358a37e0856cb5ba04b5d680a..988f0cb63ac3c30f9249706112421624c4175067 100644 --- a/neonView/CampaignStepAddParticipants_view/CampaignStepAddParticipants_view.aod +++ b/neonView/CampaignStepAddParticipants_view/CampaignStepAddParticipants_view.aod @@ -1,32 +1,32 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignStepAddParticipants_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>CampaignAndStepSelectionGeneric</name> - <editMode v="true" /> - <showDrawer v="false" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>038b2969-8fe9-469f-b823-e7f356b103cd</name> - <entityField>CAMPAIGN_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>62805d6e-3b77-4af3-b282-13720dd615df</name> - <entityField>CAMPAIGNSTEPID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>6c1ec68e-64fd-4eaf-8d74-047e9a8703fa</name> - <entityField>ADDPARTICIPANTSMESSAGE</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepAddParticipants_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>CampaignAndStepSelectionGeneric</name> + <editMode v="true" /> + <showDrawer v="false" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>038b2969-8fe9-469f-b823-e7f356b103cd</name> + <entityField>CAMPAIGN_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>62805d6e-3b77-4af3-b282-13720dd615df</name> + <entityField>CAMPAIGNSTEPID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>6c1ec68e-64fd-4eaf-8d74-047e9a8703fa</name> + <entityField>ADDPARTICIPANTSMESSAGE</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignStepAnalysis_view/CampaignStepAnalysis_view.aod b/neonView/CampaignStepAnalysis_view/CampaignStepAnalysis_view.aod index 90077e93c4182534c269c047f36dfdef150905ed..1d5a9c34dc195da52d32a5e9af8b747920cb45ee 100644 --- a/neonView/CampaignStepAnalysis_view/CampaignStepAnalysis_view.aod +++ b/neonView/CampaignStepAnalysis_view/CampaignStepAnalysis_view.aod @@ -1,24 +1,24 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignStepAnalysis_view</name> - <title>Auswertung</title> - <description>Charts als Übersicht der Kosten des Kampagnenschrittes</description> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>54</name> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>79aa1ec7-815a-4494-9d1c-c8116ea8d952</name> - <entityField>NAME</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepAnalysis_view</name> + <title>Auswertung</title> + <description>Charts als Übersicht der Kosten des Kampagnenschrittes</description> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>54</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>79aa1ec7-815a-4494-9d1c-c8116ea8d952</name> + <entityField>NAME</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignStepCurrentMaxParticipants_view/CampaignStepCurrentMaxParticipants_view.aod b/neonView/CampaignStepCurrentMaxParticipants_view/CampaignStepCurrentMaxParticipants_view.aod index 2fbca914538b480a897fab10d0da5c2a0976cf6f..6eb66819bd6680502c167b9d4161cac7450b6062 100644 --- a/neonView/CampaignStepCurrentMaxParticipants_view/CampaignStepCurrentMaxParticipants_view.aod +++ b/neonView/CampaignStepCurrentMaxParticipants_view/CampaignStepCurrentMaxParticipants_view.aod @@ -1,19 +1,19 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignStepCurrentMaxParticipants_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <singleDataChartViewTemplate> - <name>CurrentToMaxParticipantsChart</name> - <chartType>PIE</chartType> - <xAxis>LABEL</xAxis> - <yAxis>COUNT</yAxis> - <entityField>#ENTITY</entityField> - </singleDataChartViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepCurrentMaxParticipants_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <singleDataChartViewTemplate> + <name>CurrentToMaxParticipantsChart</name> + <chartType>PIE</chartType> + <xAxis>LABEL</xAxis> + <yAxis>COUNT</yAxis> + <entityField>#ENTITY</entityField> + </singleDataChartViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignStepEdit_view/CampaignStepEdit_view.aod b/neonView/CampaignStepEdit_view/CampaignStepEdit_view.aod index 7c5c1ed02a31713ae7a8dabcd98416ca0c4573ae..8ba1266b88ba65e3e5e3bec1f13278c7769e481c 100644 --- a/neonView/CampaignStepEdit_view/CampaignStepEdit_view.aod +++ b/neonView/CampaignStepEdit_view/CampaignStepEdit_view.aod @@ -1,50 +1,50 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignStepEdit_view</name> - <title>Neuer Kampagnenschritt</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <isSmall v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>StepGeneric</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <title>New campaign step</title> - <fields> - <entityFieldLink> - <name>db2e792a-b224-4c93-99ef-96c54c5c703f</name> - <entityField>NAME</entityField> - </entityFieldLink> - <entityFieldLink> - <name>e16e3f66-7e80-4796-acca-6018e86e1b88</name> - <entityField>EMPLOYEE_CONTACT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ea21096b-5885-4f5e-8bd6-c45275b25036</name> - <entityField>DATE_START</entityField> - </entityFieldLink> - <entityFieldLink> - <name>95e538ba-686b-4791-87f0-cd569b8cb456</name> - <entityField>DATE_END</entityField> - </entityFieldLink> - <entityFieldLink> - <name>80c1df2f-2458-4e4c-a6da-9ce56b17bbf0</name> - <entityField>STATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>2447348f-4ed9-4b8c-8b0e-94e663fd781d</name> - <entityField>MAXPARTICIPANTS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>981cf207-6e9b-428e-bd81-0d76b4b2f180</name> - <entityField>DESCRIPTION</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepEdit_view</name> + <title>Neuer Kampagnenschritt</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <isSmall v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>StepGeneric</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <title>New campaign step</title> + <fields> + <entityFieldLink> + <name>db2e792a-b224-4c93-99ef-96c54c5c703f</name> + <entityField>NAME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>e16e3f66-7e80-4796-acca-6018e86e1b88</name> + <entityField>EMPLOYEE_CONTACT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ea21096b-5885-4f5e-8bd6-c45275b25036</name> + <entityField>DATE_START</entityField> + </entityFieldLink> + <entityFieldLink> + <name>95e538ba-686b-4791-87f0-cd569b8cb456</name> + <entityField>DATE_END</entityField> + </entityFieldLink> + <entityFieldLink> + <name>80c1df2f-2458-4e4c-a6da-9ce56b17bbf0</name> + <entityField>STATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>2447348f-4ed9-4b8c-8b0e-94e663fd781d</name> + <entityField>MAXPARTICIPANTS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>981cf207-6e9b-428e-bd81-0d76b4b2f180</name> + <entityField>DESCRIPTION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignStepFilter_view/CampaignStepFilter_view.aod b/neonView/CampaignStepFilter_view/CampaignStepFilter_view.aod index cfd8ed34c219e91f70e4c61455c0db0ae97143da..c444a67c04fbc202b9319894826f14378c654bc5 100644 --- a/neonView/CampaignStepFilter_view/CampaignStepFilter_view.aod +++ b/neonView/CampaignStepFilter_view/CampaignStepFilter_view.aod @@ -1,49 +1,49 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignStepFilter_view</name> - <title>Kampagnenschritte</title> - <description></description> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>StepsTable</name> - <autoNewRow v="true" /> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>5fea2adf-3005-4af0-b83a-a1c932f33a64</name> - <entityField>#IMAGE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>5d52aaef-ec22-4c45-9ac7-eaec5d967283</name> - <entityField>SORTING</entityField> - </neonTableColumn> - <neonTableColumn> - <name>d9ca59de-1441-494a-91f0-1cff91c575de</name> - <entityField>NAME</entityField> - </neonTableColumn> - <neonTableColumn> - <name>0ffcc021-2b58-49f6-91d0-21f4029f744f</name> - <entityField>DATE_START</entityField> - </neonTableColumn> - <neonTableColumn> - <name>2507d34f-3bc2-426c-9acc-d8ae146daee8</name> - <entityField>DATE_END</entityField> - </neonTableColumn> - <neonTableColumn> - <name>4ee7481b-c629-4da2-8d7a-b33e2e10821e</name> - <entityField>CurrentMaxParticipantsInfo</entityField> - </neonTableColumn> - <neonTableColumn> - <name>9fa9d9f4-5851-4125-ba59-09aa2fb07f89</name> - <entityField>STATE</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepFilter_view</name> + <title>Kampagnenschritte</title> + <description></description> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>StepsTable</name> + <autoNewRow v="true" /> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>5fea2adf-3005-4af0-b83a-a1c932f33a64</name> + <entityField>#IMAGE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>5d52aaef-ec22-4c45-9ac7-eaec5d967283</name> + <entityField>SORTING</entityField> + </neonTableColumn> + <neonTableColumn> + <name>d9ca59de-1441-494a-91f0-1cff91c575de</name> + <entityField>NAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>0ffcc021-2b58-49f6-91d0-21f4029f744f</name> + <entityField>DATE_START</entityField> + </neonTableColumn> + <neonTableColumn> + <name>2507d34f-3bc2-426c-9acc-d8ae146daee8</name> + <entityField>DATE_END</entityField> + </neonTableColumn> + <neonTableColumn> + <name>4ee7481b-c629-4da2-8d7a-b33e2e10821e</name> + <entityField>CurrentMaxParticipantsInfo</entityField> + </neonTableColumn> + <neonTableColumn> + <name>9fa9d9f4-5851-4125-ba59-09aa2fb07f89</name> + <entityField>STATE</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignStepLookup_view/CampaignStepLookup_view.aod b/neonView/CampaignStepLookup_view/CampaignStepLookup_view.aod index d5afb6f10dc394d53b113b7512bd1d0c9cb57609..08824b6cb43489fba1d13f816e9cd632488a2ca5 100644 --- a/neonView/CampaignStepLookup_view/CampaignStepLookup_view.aod +++ b/neonView/CampaignStepLookup_view/CampaignStepLookup_view.aod @@ -1,51 +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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignStepLookup_view</name> - <title>Kampagnenschritte</title> - <description></description> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>StepsTable</name> - <autoNewRow v="true" /> - <entityField>#ENTITY</entityField> - <title></title> - <columns> - <neonTableColumn> - <name>fe2a2d1d-6050-4d8a-87ea-ef90febf7ae5</name> - <entityField>#IMAGE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>5d52aaef-ec22-4c45-9ac7-eaec5d967283</name> - <entityField>SORTING</entityField> - </neonTableColumn> - <neonTableColumn> - <name>d9ca59de-1441-494a-91f0-1cff91c575de</name> - <entityField>NAME</entityField> - </neonTableColumn> - <neonTableColumn> - <name>1dc891fe-bbbc-4c91-ae71-4d0372d777bc</name> - <entityField>CAMPAIGN_ID</entityField> - <width v="75" /> - </neonTableColumn> - <neonTableColumn> - <name>0ffcc021-2b58-49f6-91d0-21f4029f744f</name> - <entityField>DATE_START</entityField> - </neonTableColumn> - <neonTableColumn> - <name>2507d34f-3bc2-426c-9acc-d8ae146daee8</name> - <entityField>DATE_END</entityField> - </neonTableColumn> - <neonTableColumn> - <name>9fa9d9f4-5851-4125-ba59-09aa2fb07f89</name> - <entityField>STATE</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepLookup_view</name> + <title>Kampagnenschritte</title> + <description></description> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>StepsTable</name> + <autoNewRow v="true" /> + <entityField>#ENTITY</entityField> + <title></title> + <columns> + <neonTableColumn> + <name>fe2a2d1d-6050-4d8a-87ea-ef90febf7ae5</name> + <entityField>#IMAGE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>5d52aaef-ec22-4c45-9ac7-eaec5d967283</name> + <entityField>SORTING</entityField> + </neonTableColumn> + <neonTableColumn> + <name>d9ca59de-1441-494a-91f0-1cff91c575de</name> + <entityField>NAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>1dc891fe-bbbc-4c91-ae71-4d0372d777bc</name> + <entityField>CAMPAIGN_ID</entityField> + <width v="75" /> + </neonTableColumn> + <neonTableColumn> + <name>0ffcc021-2b58-49f6-91d0-21f4029f744f</name> + <entityField>DATE_START</entityField> + </neonTableColumn> + <neonTableColumn> + <name>2507d34f-3bc2-426c-9acc-d8ae146daee8</name> + <entityField>DATE_END</entityField> + </neonTableColumn> + <neonTableColumn> + <name>9fa9d9f4-5851-4125-ba59-09aa2fb07f89</name> + <entityField>STATE</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignStepMain_view/CampaignStepMain_view.aod b/neonView/CampaignStepMain_view/CampaignStepMain_view.aod index 0c083351809757f1e6c5e4a1395b279506d3a90e..b20d1e30be0a43b54d914ed7866fae28b2d4138d 100644 --- a/neonView/CampaignStepMain_view/CampaignStepMain_view.aod +++ b/neonView/CampaignStepMain_view/CampaignStepMain_view.aod @@ -1,43 +1,43 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignStepMain_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <masterSlaveLayout> - <name>layout</name> - <master>3dfd5e35-275b-412f-8729-2a59e3a2c025</master> - </masterSlaveLayout> - </layout> - <children> - <neonViewReference> - <name>3dfd5e35-275b-412f-8729-2a59e3a2c025</name> - <entityField>#ENTITY</entityField> - <view>CampaignStepPreview_view</view> - </neonViewReference> - <neonViewReference> - <name>f1a098ae-1516-49bc-9982-8f96ec0dbe2b</name> - <entityField>CampaignParticipantsConsumer</entityField> - <view>CampaignParticipantFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>dd0cb348-669f-431a-ba71-65e9a651c922</name> - <entityField>#ENTITY</entityField> - <view>CampaignStepAnalysis_view</view> - </neonViewReference> - <neonViewReference> - <name>a5a2f431-9c55-45d7-8765-100e2d5dbb81</name> - <entityField>CampaignStepCosts</entityField> - <view>CampaignCostExtendedFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>d99ab70c-2a08-408e-a665-1ef566c75650</name> - <entityField>Activities</entityField> - <view>ActivityFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>4fd5e3cc-0696-4fc4-877b-440c0b6c2472</name> - <entityField>Tasks</entityField> - <view>TaskFilter_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>3dfd5e35-275b-412f-8729-2a59e3a2c025</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>3dfd5e35-275b-412f-8729-2a59e3a2c025</name> + <entityField>#ENTITY</entityField> + <view>CampaignStepPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>f1a098ae-1516-49bc-9982-8f96ec0dbe2b</name> + <entityField>CampaignParticipantsConsumer</entityField> + <view>CampaignParticipantFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>dd0cb348-669f-431a-ba71-65e9a651c922</name> + <entityField>#ENTITY</entityField> + <view>CampaignStepAnalysis_view</view> + </neonViewReference> + <neonViewReference> + <name>a5a2f431-9c55-45d7-8765-100e2d5dbb81</name> + <entityField>CampaignStepCosts</entityField> + <view>CampaignCostExtendedFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>d99ab70c-2a08-408e-a665-1ef566c75650</name> + <entityField>Activities</entityField> + <view>ActivityFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>4fd5e3cc-0696-4fc4-877b-440c0b6c2472</name> + <entityField>Tasks</entityField> + <view>TaskFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/CampaignStepParticipnatsPerStep_view/CampaignStepParticipnatsPerStep_view.aod b/neonView/CampaignStepParticipnatsPerStep_view/CampaignStepParticipnatsPerStep_view.aod index 14cbf839e1a26fed98a124332c3fee57a6db2a07..7fbd1b0d163a6d670866a812b7ce3ded018c4c08 100644 --- a/neonView/CampaignStepParticipnatsPerStep_view/CampaignStepParticipnatsPerStep_view.aod +++ b/neonView/CampaignStepParticipnatsPerStep_view/CampaignStepParticipnatsPerStep_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignStepParticipnatsPerStep_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <noneLayout> - <name>layout</name> - </noneLayout> - </layout> - <children> - <titledListViewTemplate> - <name>ParticipantsPerStep</name> - <highlightingField>CurrentMaxParticipantsInfo</highlightingField> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>04ff1319-d06d-4738-a221-5755c016af70</name> - <entityField>NAME</entityField> - </neonTableColumn> - <neonTableColumn> - <name>4ea71a13-4108-47a5-9a28-2256618fdc2c</name> - <entityField>CurrentMaxParticipantsInfo</entityField> - </neonTableColumn> - </columns> - </titledListViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepParticipnatsPerStep_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <noneLayout> + <name>layout</name> + </noneLayout> + </layout> + <children> + <titledListViewTemplate> + <name>ParticipantsPerStep</name> + <highlightingField>CurrentMaxParticipantsInfo</highlightingField> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>04ff1319-d06d-4738-a221-5755c016af70</name> + <entityField>NAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>4ea71a13-4108-47a5-9a28-2256618fdc2c</name> + <entityField>CurrentMaxParticipantsInfo</entityField> + </neonTableColumn> + </columns> + </titledListViewTemplate> + </children> +</neonView> diff --git a/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod b/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod index bec51dae92ef5e4ccf9c73fe9c1a4328006b119e..20b044014d1fc5676e31f97182f988c27d24b250 100644 --- a/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod +++ b/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod @@ -1,69 +1,69 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>CampaignStepPreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <headerFooterLayout> - <name>layout</name> - <header>CampaignStepCard</header> - <footer>KeyScoreInfos</footer> - </headerFooterLayout> - </layout> - <children> - <cardViewTemplate> - <name>CampaignStepCard</name> - <iconField>#IMAGE</iconField> - <titleField>NAME</titleField> - <subtitleField>STATE</subtitleField> - <descriptionField>DESCRIPTION</descriptionField> - <favoriteAction1>newActivity</favoriteAction1> - <entityField>#ENTITY</entityField> - </cardViewTemplate> - <genericViewTemplate> - <name>CampaignStepInfosGeneric</name> - <editMode v="false" /> - <showDrawer v="true" /> - <drawerCaption></drawerCaption> - <entityField>#ENTITY</entityField> - <title>Details</title> - <fields> - <entityFieldLink> - <name>4cbf0232-1dab-47f9-b62a-b539d5035c53</name> - <entityField>DATE_START</entityField> - </entityFieldLink> - <entityFieldLink> - <name>677875bc-6b50-4dd8-b8bf-eba5c0e94c56</name> - <entityField>DATE_END</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <genericViewTemplate> - <name>CampaignId</name> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>cee78c4b-bbac-458a-ab1c-53734ea8c7f0</name> - <entityField>CAMPAIGN_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>0bffa6f8-cb18-47f8-a8f4-08cf9d718114</name> - <entityField>CampaignStatus</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <scoreCardViewTemplate> - <name>KeyScoreInfos</name> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>0af45fb6-7ce8-493e-bdd8-17c4a06aa4f7</name> - <entityField>COST</entityField> - </entityFieldLink> - <entityFieldLink> - <name>dc39a199-a5c1-4a8e-81cc-a85bfca63a9f</name> - <entityField>CurrentMaxParticipantsInfo</entityField> - </entityFieldLink> - </fields> - </scoreCardViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>CampaignStepPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>CampaignStepCard</header> + <footer>KeyScoreInfos</footer> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>CampaignStepCard</name> + <iconField>#IMAGE</iconField> + <titleField>NAME</titleField> + <subtitleField>STATE</subtitleField> + <descriptionField>DESCRIPTION</descriptionField> + <favoriteAction1>newActivity</favoriteAction1> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>CampaignStepInfosGeneric</name> + <editMode v="false" /> + <showDrawer v="true" /> + <drawerCaption></drawerCaption> + <entityField>#ENTITY</entityField> + <title>Details</title> + <fields> + <entityFieldLink> + <name>4cbf0232-1dab-47f9-b62a-b539d5035c53</name> + <entityField>DATE_START</entityField> + </entityFieldLink> + <entityFieldLink> + <name>677875bc-6b50-4dd8-b8bf-eba5c0e94c56</name> + <entityField>DATE_END</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <genericViewTemplate> + <name>CampaignId</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>cee78c4b-bbac-458a-ab1c-53734ea8c7f0</name> + <entityField>CAMPAIGN_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>0bffa6f8-cb18-47f8-a8f4-08cf9d718114</name> + <entityField>CampaignStatus</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <scoreCardViewTemplate> + <name>KeyScoreInfos</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>0af45fb6-7ce8-493e-bdd8-17c4a06aa4f7</name> + <entityField>COST</entityField> + </entityFieldLink> + <entityFieldLink> + <name>dc39a199-a5c1-4a8e-81cc-a85bfca63a9f</name> + <entityField>CurrentMaxParticipantsInfo</entityField> + </entityFieldLink> + </fields> + </scoreCardViewTemplate> + </children> +</neonView> diff --git a/neonView/ContactList_view/ContactList_view.aod b/neonView/ContactList_view/ContactList_view.aod index 975b21a7f63d8917e9e7f2228e8380d1acfb3085..4de98afe0450d5977cbe6fa1acd11aa8bfa44a72 100644 --- a/neonView/ContactList_view/ContactList_view.aod +++ b/neonView/ContactList_view/ContactList_view.aod @@ -11,8 +11,8 @@ <tableViewTemplate> <name>Contacts</name> <hideContentSearch v="true" /> - <isEditable v="false" /> <entityField>#ENTITY</entityField> + <isEditable v="false" /> <columns> <neonTableColumn> <name>ef71b5ad-8581-4845-ae66-7df17d1459e0</name> diff --git a/neonView/ContractEdit_view/ContractEdit_view.aod b/neonView/ContractEdit_view/ContractEdit_view.aod index 305051621158363a459290695f4bccb398ec38e1..f7cfb473bae2ddda0e2929c3f2de10c18973c417 100644 --- a/neonView/ContractEdit_view/ContractEdit_view.aod +++ b/neonView/ContractEdit_view/ContractEdit_view.aod @@ -1,60 +1,60 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>ContractEdit_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Edit</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>5f2ef7a7-d7b5-49a8-86f3-3644036232fb</name> - <entityField>CONTRACTCODE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>3177f8e9-24e9-441f-8c19-b004935a86a9</name> - <entityField>CONTACT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ac160ded-1a06-4664-b8bd-333e01468f61</name> - <entityField>CONTRACTTYPE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>f741bfda-5434-42ab-a5e9-ea1f7e4aaf79</name> - <entityField>CONTRACTSTATUS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>b4a51794-f04c-4cc5-b0bd-ff89d8f5ada9</name> - <entityField>CONTRACTSTART</entityField> - </entityFieldLink> - <entityFieldLink> - <name>2fb49607-d34c-4a19-8c4e-2ec3db395fa9</name> - <entityField>CONTRACTEND</entityField> - </entityFieldLink> - <entityFieldLink> - <name>02d4e542-f7ed-4900-82b3-b096958e1473</name> - <entityField>PAYMENT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>e66d7b82-5b48-46f3-b780-06a5f107faca</name> - <entityField>CONTRACTDUE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>4390abcd-d47e-40b2-85a9-655d39b17e82</name> - <entityField>REMARK</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>49eafd04-4d72-4a11-8818-97407e0fe154</name> - <entityField>Attributes</entityField> - <view>AttributeRelationMultiEdit_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>ContractEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Edit</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>5f2ef7a7-d7b5-49a8-86f3-3644036232fb</name> + <entityField>CONTRACTCODE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>3177f8e9-24e9-441f-8c19-b004935a86a9</name> + <entityField>CONTACT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ac160ded-1a06-4664-b8bd-333e01468f61</name> + <entityField>CONTRACTTYPE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>f741bfda-5434-42ab-a5e9-ea1f7e4aaf79</name> + <entityField>CONTRACTSTATUS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>b4a51794-f04c-4cc5-b0bd-ff89d8f5ada9</name> + <entityField>CONTRACTSTART</entityField> + </entityFieldLink> + <entityFieldLink> + <name>2fb49607-d34c-4a19-8c4e-2ec3db395fa9</name> + <entityField>CONTRACTEND</entityField> + </entityFieldLink> + <entityFieldLink> + <name>02d4e542-f7ed-4900-82b3-b096958e1473</name> + <entityField>PAYMENT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>e66d7b82-5b48-46f3-b780-06a5f107faca</name> + <entityField>CONTRACTDUE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>4390abcd-d47e-40b2-85a9-655d39b17e82</name> + <entityField>REMARK</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>49eafd04-4d72-4a11-8818-97407e0fe154</name> + <entityField>Attributes</entityField> + <view>AttributeRelationMultiEdit_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/ContractMain_view/ContractMain_view.aod b/neonView/ContractMain_view/ContractMain_view.aod index 9f2f8dd29b29aca3f1d20cc4e74a543452d82d63..4cac7d6468bfde4a139feb873ee4f1592ca41b88 100644 --- a/neonView/ContractMain_view/ContractMain_view.aod +++ b/neonView/ContractMain_view/ContractMain_view.aod @@ -1,43 +1,43 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>ContractMain_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <masterSlaveLayout> - <name>layout</name> - <master>50a9de9b-1b4d-4dbd-a2f0-51b376df5b55</master> - </masterSlaveLayout> - </layout> - <children> - <neonViewReference> - <name>50a9de9b-1b4d-4dbd-a2f0-51b376df5b55</name> - <entityField>#ENTITY</entityField> - <view>ContractPreview_view</view> - </neonViewReference> - <neonViewReference> - <name>8c6be607-ccce-4ad7-8dba-875b24d821e7</name> - <entityField>Activities</entityField> - <view>ActivityFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>24fb8357-a6f7-425c-a579-a9251913c8d7</name> - <entityField>Tasks</entityField> - <view>TaskFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>1bf6faf5-9a22-4900-a497-54b6c225584b</name> - <entityField>Documents</entityField> - <view>DocumentFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>940f0dca-aee3-4af6-ae50-9334964ce414</name> - <entityField>AttributeTree</entityField> - <view>AttributeRelationTree_view</view> - </neonViewReference> - <neonViewReference> - <name>fa15c239-7bf6-4ec6-8f62-49e83d7f2d2c</name> - <entityField>LogHistoryConsumer</entityField> - <view>LogHistoryFilter_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>ContractMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>50a9de9b-1b4d-4dbd-a2f0-51b376df5b55</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>50a9de9b-1b4d-4dbd-a2f0-51b376df5b55</name> + <entityField>#ENTITY</entityField> + <view>ContractPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>8c6be607-ccce-4ad7-8dba-875b24d821e7</name> + <entityField>Activities</entityField> + <view>ActivityFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>24fb8357-a6f7-425c-a579-a9251913c8d7</name> + <entityField>Tasks</entityField> + <view>TaskFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>1bf6faf5-9a22-4900-a497-54b6c225584b</name> + <entityField>Documents</entityField> + <view>DocumentFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>940f0dca-aee3-4af6-ae50-9334964ce414</name> + <entityField>AttributeTree</entityField> + <view>AttributeRelationTree_view</view> + </neonViewReference> + <neonViewReference> + <name>fa15c239-7bf6-4ec6-8f62-49e83d7f2d2c</name> + <entityField>LogHistoryConsumer</entityField> + <view>LogHistoryFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/DocumentTemplateEdit_view/DocumentTemplateEdit_view.aod b/neonView/DocumentTemplateEdit_view/DocumentTemplateEdit_view.aod index b5234dd548b0bf391932422e78d422181951f02e..1cc6202cb15454b17ea6f3ad01b4e7e8f330ec6f 100644 --- a/neonView/DocumentTemplateEdit_view/DocumentTemplateEdit_view.aod +++ b/neonView/DocumentTemplateEdit_view/DocumentTemplateEdit_view.aod @@ -1,65 +1,65 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>DocumentTemplateEdit_view</name> - <title>Document Template</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>VAADIN:FILE_FONT</icon> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Details</name> - <editMode v="true" /> - <showDrawer v="false" /> - <entityField>#ENTITY</entityField> - <title></title> - <fields> - <entityFieldLink> - <name>63388992-5b40-4f1e-a2be-aa35bedbfd2e</name> - <entityField>BINDATA</entityField> - </entityFieldLink> - <entityFieldLink> - <name>5e68bfdb-b5c9-4ea0-8f5d-152e36262401</name> - <entityField>NAME</entityField> - </entityFieldLink> - <entityFieldLink> - <name>e3940793-c511-4fb1-93e7-68fb9f614b32</name> - <entityField>TYPE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>de86d66c-8281-4050-946b-a6b35bb01db8</name> - <entityField>CLASSIFICATION</entityField> - </entityFieldLink> - <entityFieldLink> - <name>c25464a6-1111-4f9f-a834-92015c2d87bc</name> - <entityField>LANGUAGE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>850130f7-75b1-42ef-9da9-da98966d6367</name> - <entityField>htmlText</entityField> - </entityFieldLink> - <entityFieldLink> - <name>bf313ea8-821a-4693-8ba2-4246ad8a4f62</name> - <entityField>texText</entityField> - </entityFieldLink> - <entityFieldLink> - <name>0fed8c5c-1be5-4599-938d-31241c4c9395</name> - <entityField>DESCRIPTION</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>2e118acd-473a-4587-9945-a0ca59012f40</name> - <entityField>Links</entityField> - <view>DocumentTemplateLinkMultiEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>8111a7d1-efc0-4588-a5a7-d798b0a8c7bb</name> - <entityField>Attributes</entityField> - <view>AttributeRelationMultiEdit_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>DocumentTemplateEdit_view</name> + <title>Document Template</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:FILE_FONT</icon> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Details</name> + <editMode v="true" /> + <showDrawer v="false" /> + <entityField>#ENTITY</entityField> + <title></title> + <fields> + <entityFieldLink> + <name>63388992-5b40-4f1e-a2be-aa35bedbfd2e</name> + <entityField>BINDATA</entityField> + </entityFieldLink> + <entityFieldLink> + <name>5e68bfdb-b5c9-4ea0-8f5d-152e36262401</name> + <entityField>NAME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>e3940793-c511-4fb1-93e7-68fb9f614b32</name> + <entityField>TYPE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>de86d66c-8281-4050-946b-a6b35bb01db8</name> + <entityField>CLASSIFICATION</entityField> + </entityFieldLink> + <entityFieldLink> + <name>c25464a6-1111-4f9f-a834-92015c2d87bc</name> + <entityField>LANGUAGE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>850130f7-75b1-42ef-9da9-da98966d6367</name> + <entityField>htmlText</entityField> + </entityFieldLink> + <entityFieldLink> + <name>bf313ea8-821a-4693-8ba2-4246ad8a4f62</name> + <entityField>texText</entityField> + </entityFieldLink> + <entityFieldLink> + <name>0fed8c5c-1be5-4599-938d-31241c4c9395</name> + <entityField>DESCRIPTION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>2e118acd-473a-4587-9945-a0ca59012f40</name> + <entityField>Links</entityField> + <view>DocumentTemplateLinkMultiEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>8111a7d1-efc0-4588-a5a7-d798b0a8c7bb</name> + <entityField>Attributes</entityField> + <view>AttributeRelationMultiEdit_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/DocumentTemplateFilter_view/DocumentTemplateFilter_view.aod b/neonView/DocumentTemplateFilter_view/DocumentTemplateFilter_view.aod index 0de215bb5bcf2da1a83c9a2c3c78b766b0050831..32def58fb1b14933cd1e950336da3f0e906a05fc 100644 --- a/neonView/DocumentTemplateFilter_view/DocumentTemplateFilter_view.aod +++ b/neonView/DocumentTemplateFilter_view/DocumentTemplateFilter_view.aod @@ -1,42 +1,42 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>DocumentTemplateFilter_view</name> - <title>Document Template</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>VAADIN:FILE_FONT</icon> - <filterable v="true" /> - <isSmall v="false" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <treeTableViewTemplate> - <name>SearchTree</name> - <parentField>TYPE</parentField> - <defaultGroupFields> - <element>TYPE</element> - </defaultGroupFields> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>c0085121-edf6-4e3e-ace4-d599af4aa2f1</name> - <entityField>NAME</entityField> - </neonTableColumn> - <neonTableColumn> - <name>f163cdaa-ed96-431a-a648-1823b2a8ded6</name> - <entityField>TYPE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>7554151d-a099-4573-89c7-2f2b3070bff6</name> - <entityField>CLASSIFICATION</entityField> - </neonTableColumn> - <neonTableColumn> - <name>65c98ef0-a3cc-4153-a58d-db4776e33532</name> - <entityField>LANGUAGE</entityField> - </neonTableColumn> - </columns> - </treeTableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>DocumentTemplateFilter_view</name> + <title>Document Template</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:FILE_FONT</icon> + <filterable v="true" /> + <isSmall v="false" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <treeTableViewTemplate> + <name>SearchTree</name> + <parentField>TYPE</parentField> + <defaultGroupFields> + <element>TYPE</element> + </defaultGroupFields> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>c0085121-edf6-4e3e-ace4-d599af4aa2f1</name> + <entityField>NAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>f163cdaa-ed96-431a-a648-1823b2a8ded6</name> + <entityField>TYPE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>7554151d-a099-4573-89c7-2f2b3070bff6</name> + <entityField>CLASSIFICATION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>65c98ef0-a3cc-4153-a58d-db4776e33532</name> + <entityField>LANGUAGE</entityField> + </neonTableColumn> + </columns> + </treeTableViewTemplate> + </children> +</neonView> diff --git a/neonView/EmployeeEdit_view/EmployeeEdit_view.aod b/neonView/EmployeeEdit_view/EmployeeEdit_view.aod index 884520ac52fc84868b8337f68b8ee571b17ab20b..b6c1c838d9e000f72fc61f0c7175f27f763487d9 100644 --- a/neonView/EmployeeEdit_view/EmployeeEdit_view.aod +++ b/neonView/EmployeeEdit_view/EmployeeEdit_view.aod @@ -1,69 +1,69 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>EmployeeEdit_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Generic</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>1925ef51-54a8-41e2-aa78-6d95d1ee4b99</name> - <entityField>CONTACT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>9170856b-45c2-4d8a-864d-4db36bfe4a8c</name> - <entityField>ISACTIVE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>7d36467f-8b79-4647-b8e5-5759bdbf37a7</name> - <entityField>FIRSTNAME</entityField> - </entityFieldLink> - <entityFieldLink> - <name>00a2dedb-67f5-4662-b053-bf841b30e365</name> - <entityField>LASTNAME</entityField> - </entityFieldLink> - <entityFieldLink> - <name>9c030b62-bf17-4be1-bcc6-87b304a618c0</name> - <entityField>TITLE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>6155e6b7-ee2c-45b4-87f5-9e506ffc5775</name> - <entityField>EMAIL_ADDRESS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>6abf045b-88f9-40c9-a009-f85538d6fe23</name> - <entityField>DEPARTMENT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>8cffaf75-f2dc-42c5-95d7-1ce1e4927d8a</name> - <entityField>DESCRIPTION</entityField> - </entityFieldLink> - <entityFieldLink> - <name>4ad9c1aa-37a9-46f9-a566-94e5be5c2a7f</name> - <entityField>PASSWORD</entityField> - </entityFieldLink> - <entityFieldLink> - <name>5381db3a-762d-439a-b41b-e4e67edc2099</name> - <entityField>CONFIRM_PASSWORD</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>af8112a3-78d3-436f-b665-ebce595a7c24</name> - <entityField>EmployeeRoles</entityField> - <view>EmployeeRoleEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>07e77840-e140-4ba0-ac09-d8e10e7d88a2</name> - <entityField>Attributes</entityField> - <view>AttributeRelationMultiEdit_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>EmployeeEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>1925ef51-54a8-41e2-aa78-6d95d1ee4b99</name> + <entityField>CONTACT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>9170856b-45c2-4d8a-864d-4db36bfe4a8c</name> + <entityField>ISACTIVE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>7d36467f-8b79-4647-b8e5-5759bdbf37a7</name> + <entityField>FIRSTNAME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>00a2dedb-67f5-4662-b053-bf841b30e365</name> + <entityField>LASTNAME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>9c030b62-bf17-4be1-bcc6-87b304a618c0</name> + <entityField>TITLE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>6155e6b7-ee2c-45b4-87f5-9e506ffc5775</name> + <entityField>EMAIL_ADDRESS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>6abf045b-88f9-40c9-a009-f85538d6fe23</name> + <entityField>DEPARTMENT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>8cffaf75-f2dc-42c5-95d7-1ce1e4927d8a</name> + <entityField>DESCRIPTION</entityField> + </entityFieldLink> + <entityFieldLink> + <name>4ad9c1aa-37a9-46f9-a566-94e5be5c2a7f</name> + <entityField>PASSWORD</entityField> + </entityFieldLink> + <entityFieldLink> + <name>5381db3a-762d-439a-b41b-e4e67edc2099</name> + <entityField>CONFIRM_PASSWORD</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>af8112a3-78d3-436f-b665-ebce595a7c24</name> + <entityField>EmployeeRoles</entityField> + <view>EmployeeRoleEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>07e77840-e140-4ba0-ac09-d8e10e7d88a2</name> + <entityField>Attributes</entityField> + <view>AttributeRelationMultiEdit_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/EmployeeMain_view/EmployeeMain_view.aod b/neonView/EmployeeMain_view/EmployeeMain_view.aod index 66afffaca47467e42f7fdd2a326c4d3996aa8240..540dcb8de17ed3d9789dffeee31229519c8c2266 100644 --- a/neonView/EmployeeMain_view/EmployeeMain_view.aod +++ b/neonView/EmployeeMain_view/EmployeeMain_view.aod @@ -1,33 +1,33 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>EmployeeMain_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <masterSlaveLayout> - <name>layout</name> - <master>f9ae631b-48ad-4d7c-a3a1-6cb00230e5c7</master> - </masterSlaveLayout> - </layout> - <children> - <neonViewReference> - <name>f9ae631b-48ad-4d7c-a3a1-6cb00230e5c7</name> - <entityField>#ENTITY</entityField> - <view>EmployeePreview_view</view> - </neonViewReference> - <neonViewReference> - <name>79a01c28-1eaa-4974-babd-fb6e4d59471b</name> - <entityField>EmployeeRoles</entityField> - <view>EmployeeRoleFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>68e54801-e68f-4797-97d2-368b4b82a7e4</name> - <entityField>AttributeTree</entityField> - <view>AttributeRelationTree_view</view> - </neonViewReference> - <neonViewReference> - <name>169d3ae7-d688-42fd-9097-77bbd9bfb81f</name> - <entityField>Documents</entityField> - <view>DocumentFilter_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>EmployeeMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>f9ae631b-48ad-4d7c-a3a1-6cb00230e5c7</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>f9ae631b-48ad-4d7c-a3a1-6cb00230e5c7</name> + <entityField>#ENTITY</entityField> + <view>EmployeePreview_view</view> + </neonViewReference> + <neonViewReference> + <name>79a01c28-1eaa-4974-babd-fb6e4d59471b</name> + <entityField>EmployeeRoles</entityField> + <view>EmployeeRoleFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>68e54801-e68f-4797-97d2-368b4b82a7e4</name> + <entityField>AttributeTree</entityField> + <view>AttributeRelationTree_view</view> + </neonViewReference> + <neonViewReference> + <name>169d3ae7-d688-42fd-9097-77bbd9bfb81f</name> + <entityField>Documents</entityField> + <view>DocumentFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/EmployeePassword_view/EmployeePassword_view.aod b/neonView/EmployeePassword_view/EmployeePassword_view.aod index ebe5f2c3bc40ae7738a2eb7fe924a144f2075a84..0b4703f5f217db66452a41336612317320174629 100644 --- a/neonView/EmployeePassword_view/EmployeePassword_view.aod +++ b/neonView/EmployeePassword_view/EmployeePassword_view.aod @@ -1,28 +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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>EmployeePassword_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <isSmall v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Password</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>632294e8-f9ec-4bd1-afe4-87e3b5fc84c4</name> - <entityField>PASSWORD</entityField> - </entityFieldLink> - <entityFieldLink> - <name>66a7726a-c226-4d74-95a4-ea88950920bf</name> - <entityField>CONFIRM_PASSWORD</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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>EmployeePassword_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <isSmall v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Password</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>632294e8-f9ec-4bd1-afe4-87e3b5fc84c4</name> + <entityField>PASSWORD</entityField> + </entityFieldLink> + <entityFieldLink> + <name>66a7726a-c226-4d74-95a4-ea88950920bf</name> + <entityField>CONFIRM_PASSWORD</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/IndexSearchView/IndexSearchView.aod b/neonView/IndexSearchView/IndexSearchView.aod index 39cd3e719a428a03ca082d815e5495936be68857..af3752d7ebb8427027337664be5b2836baf1563f 100644 --- a/neonView/IndexSearchView/IndexSearchView.aod +++ b/neonView/IndexSearchView/IndexSearchView.aod @@ -1,32 +1,32 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>IndexSearchView</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <dashletConfigurations> - <neonDashletConfiguration> - <name>IndexSearchDashlet</name> - <title>Indexsearch</title> - <fragment>IndexSearchContext/full</fragment> - <storeRoles /> - <icon>VAADIN:SEARCH</icon> - <categories> - <neonDashletCategory> - <name>indexsearch</name> - <title>Indexsearch</title> - </neonDashletCategory> - </categories> - </neonDashletConfiguration> - </dashletConfigurations> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <indexSearchViewTemplate> - <name>IndexSearchTemplate</name> - <entityField>INDEXSEARCHFIELD</entityField> - <title></title> - </indexSearchViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>IndexSearchView</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <dashletConfigurations> + <neonDashletConfiguration> + <name>IndexSearchDashlet</name> + <title>Indexsearch</title> + <fragment>IndexSearchContext/full</fragment> + <storeRoles /> + <icon>VAADIN:SEARCH</icon> + <categories> + <neonDashletCategory> + <name>indexsearch</name> + <title>Indexsearch</title> + </neonDashletCategory> + </categories> + </neonDashletConfiguration> + </dashletConfigurations> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <indexSearchViewTemplate> + <name>IndexSearchTemplate</name> + <entityField>INDEXSEARCHFIELD</entityField> + <title></title> + </indexSearchViewTemplate> + </children> +</neonView> diff --git a/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod b/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod index e638ae7abde4ea41370b881058de6ddf60251636..2224a8959900a10c9264f328a6458d88f8d92425 100644 --- a/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod +++ b/neonView/KeywordEntryFilter_view/KeywordEntryFilter_view.aod @@ -1,61 +1,61 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>KeywordEntryFilter_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <layout> - <groupLayout> - <name>layout</name> - </groupLayout> - </layout> - <children> - <treeTableViewTemplate> - <name>EntriesTreeTable</name> - <defaultGroupFields> - <element>CONTAINER</element> - </defaultGroupFields> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>aa5612b4-997e-4f0f-8fb1-91e18e32051d</name> - <entityField>TITLE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>6100879d-dc6a-4c7e-b750-f5b7e627f48a</name> - <entityField>KEYID</entityField> - </neonTableColumn> - </columns> - </treeTableViewTemplate> - <tableViewTemplate> - <name>EntriesTable</name> - <entityField>#ENTITY</entityField> - <title></title> - <columns> - <neonTableColumn> - <name>0e85b64c-6ce8-4221-8544-b8b5152a1292</name> - <entityField>#ICON</entityField> - </neonTableColumn> - <neonTableColumn> - <name>7f8c3b75-62dc-4826-bad3-99aa9d471067</name> - <entityField>CONTAINER</entityField> - </neonTableColumn> - <neonTableColumn> - <name>4dc50d75-d856-4fca-bd4d-d79eb3c8769f</name> - <entityField>KEYID</entityField> - </neonTableColumn> - <neonTableColumn> - <name>42d1d488-8739-4101-9aee-087dcc34d51a</name> - <entityField>TITLE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>f4241fa3-907e-4542-b01d-6efa95ac4d0f</name> - <entityField>ISACTIVE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>64a15e98-c6da-4c36-b20b-af1867b15602</name> - <entityField>SORTING</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>KeywordEntryFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <groupLayout> + <name>layout</name> + </groupLayout> + </layout> + <children> + <treeTableViewTemplate> + <name>EntriesTreeTable</name> + <defaultGroupFields> + <element>CONTAINER</element> + </defaultGroupFields> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>aa5612b4-997e-4f0f-8fb1-91e18e32051d</name> + <entityField>TITLE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>6100879d-dc6a-4c7e-b750-f5b7e627f48a</name> + <entityField>KEYID</entityField> + </neonTableColumn> + </columns> + </treeTableViewTemplate> + <tableViewTemplate> + <name>EntriesTable</name> + <entityField>#ENTITY</entityField> + <title></title> + <columns> + <neonTableColumn> + <name>0e85b64c-6ce8-4221-8544-b8b5152a1292</name> + <entityField>#ICON</entityField> + </neonTableColumn> + <neonTableColumn> + <name>7f8c3b75-62dc-4826-bad3-99aa9d471067</name> + <entityField>CONTAINER</entityField> + </neonTableColumn> + <neonTableColumn> + <name>4dc50d75-d856-4fca-bd4d-d79eb3c8769f</name> + <entityField>KEYID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>42d1d488-8739-4101-9aee-087dcc34d51a</name> + <entityField>TITLE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>f4241fa3-907e-4542-b01d-6efa95ac4d0f</name> + <entityField>ISACTIVE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>64a15e98-c6da-4c36-b20b-af1867b15602</name> + <entityField>SORTING</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/LogHistoryFilter_view/LogHistoryFilter_view.aod b/neonView/LogHistoryFilter_view/LogHistoryFilter_view.aod index 6674803a75b4632436ac1c38d6a418efe09091f8..8de8af8aed11c23f39e0fda52b772905b34504c1 100644 --- a/neonView/LogHistoryFilter_view/LogHistoryFilter_view.aod +++ b/neonView/LogHistoryFilter_view/LogHistoryFilter_view.aod @@ -1,42 +1,42 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>LogHistoryFilter_view</name> - <title>Log</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <layout> - <groupLayout> - <name>layout</name> - </groupLayout> - </layout> - <children> - <timelineViewTemplate> - <name>LogHistoryTimeLine</name> - <dateField>DATE_NEW</dateField> - <titleField>USER_NEW</titleField> - <descriptionField>DESCRIPTION</descriptionField> - <iconIdField>#IMAGE</iconIdField> - <entityField>#ENTITY</entityField> - </timelineViewTemplate> - <tableViewTemplate> - <name>LogHistoryTable</name> - <hideContentSearch v="true" /> - <isEditable v="false" /> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>97886728-fbfe-4d32-b5b4-7dce443e1e2c</name> - <entityField>DATE_NEW</entityField> - </neonTableColumn> - <neonTableColumn> - <name>2647a81d-2a50-433a-8dc9-f701a60e10e8</name> - <entityField>USER_NEW</entityField> - </neonTableColumn> - <neonTableColumn> - <name>02a31f8a-2f91-4364-9d2a-898c4b587afa</name> - <entityField>DESCRIPTION</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>LogHistoryFilter_view</name> + <title>Log</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <groupLayout> + <name>layout</name> + </groupLayout> + </layout> + <children> + <timelineViewTemplate> + <name>LogHistoryTimeLine</name> + <dateField>DATE_NEW</dateField> + <titleField>USER_NEW</titleField> + <descriptionField>DESCRIPTION</descriptionField> + <iconIdField>#IMAGE</iconIdField> + <entityField>#ENTITY</entityField> + </timelineViewTemplate> + <tableViewTemplate> + <name>LogHistoryTable</name> + <hideContentSearch v="true" /> + <entityField>#ENTITY</entityField> + <isEditable v="false" /> + <columns> + <neonTableColumn> + <name>97886728-fbfe-4d32-b5b4-7dce443e1e2c</name> + <entityField>DATE_NEW</entityField> + </neonTableColumn> + <neonTableColumn> + <name>2647a81d-2a50-433a-8dc9-f701a60e10e8</name> + <entityField>USER_NEW</entityField> + </neonTableColumn> + <neonTableColumn> + <name>02a31f8a-2f91-4364-9d2a-898c4b587afa</name> + <entityField>DESCRIPTION</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/LogHistoryPreview_view/LogHistoryPreview_view.aod b/neonView/LogHistoryPreview_view/LogHistoryPreview_view.aod index 46ea9f080dffb3fbb5c7a8a7c95e478a8cbb1d49..1c14760344406b1c63eb0a3f1a19a9d7f0f80efc 100644 --- a/neonView/LogHistoryPreview_view/LogHistoryPreview_view.aod +++ b/neonView/LogHistoryPreview_view/LogHistoryPreview_view.aod @@ -1,30 +1,30 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>LogHistoryPreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <headerFooterLayout> - <name>layout</name> - <header>head</header> - </headerFooterLayout> - </layout> - <children> - <cardViewTemplate> - <name>head</name> - <subtitleField>DATE_NEW</subtitleField> - <descriptionField>USER_NEW</descriptionField> - <entityField>#ENTITY</entityField> - </cardViewTemplate> - <genericViewTemplate> - <name>text</name> - <hideLabels v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>f8d426d2-6e87-4c8c-90c1-8af65b24a90f</name> - <entityField>DESCRIPTION</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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>LogHistoryPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>head</header> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>head</name> + <subtitleField>DATE_NEW</subtitleField> + <descriptionField>USER_NEW</descriptionField> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>text</name> + <hideLabels v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>f8d426d2-6e87-4c8c-90c1-8af65b24a90f</name> + <entityField>DESCRIPTION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/NotificationFilter_view/NotificationFilter_view.aod b/neonView/NotificationFilter_view/NotificationFilter_view.aod index 3c4e94ad0b0857e20ef1bea7d40954b0de04002f..013dec87c327a5bc4150e79f87d91ba5bc236441 100644 --- a/neonView/NotificationFilter_view/NotificationFilter_view.aod +++ b/neonView/NotificationFilter_view/NotificationFilter_view.aod @@ -1,48 +1,48 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>NotificationFilter_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>Table</name> - <favoriteActionGroup1>setNotificationState</favoriteActionGroup1> - <entryAction>rowClickAction</entryAction> - <showHeader v="true" /> - <isSaveable v="false" /> - <isEditable v="false" /> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>1cff3be1-523d-4a5a-b7d1-389d7cbb726f</name> - <entityField>ICON</entityField> - </neonTableColumn> - <neonTableColumn> - <name>ebf8b6d5-1057-425d-a57b-d02e25dbd2a4</name> - <entityField>TYPECODE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>0ed20b46-be6a-424c-a583-a3f7496ec3f9</name> - <entityField>CREATIONDATE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>3bf425ed-227c-4768-b339-4794aa0d6063</name> - <entityField>CAPTION</entityField> - </neonTableColumn> - <neonTableColumn> - <name>ff33a6c1-7ac6-4acd-a083-e56a36f89977</name> - <entityField>DESCRIPTION</entityField> - </neonTableColumn> - <neonTableColumn> - <name>5cb09de4-4413-41e5-8a7c-4970a3cf6a62</name> - <entityField>STATE</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>NotificationFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Table</name> + <favoriteActionGroup1>setNotificationState</favoriteActionGroup1> + <entryAction>rowClickAction</entryAction> + <entityField>#ENTITY</entityField> + <isEditable v="false" /> + <showHeader v="true" /> + <isSaveable v="false" /> + <columns> + <neonTableColumn> + <name>1cff3be1-523d-4a5a-b7d1-389d7cbb726f</name> + <entityField>ICON</entityField> + </neonTableColumn> + <neonTableColumn> + <name>ebf8b6d5-1057-425d-a57b-d02e25dbd2a4</name> + <entityField>TYPECODE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>0ed20b46-be6a-424c-a583-a3f7496ec3f9</name> + <entityField>CREATIONDATE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>3bf425ed-227c-4768-b339-4794aa0d6063</name> + <entityField>CAPTION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>ff33a6c1-7ac6-4acd-a083-e56a36f89977</name> + <entityField>DESCRIPTION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>5cb09de4-4413-41e5-8a7c-4970a3cf6a62</name> + <entityField>STATE</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/NotificationPreview_view/NotificationPreview_view.aod b/neonView/NotificationPreview_view/NotificationPreview_view.aod index 4f30158ba8c1271b41d2999ad3514e6e71d4cdac..1a0970fb25aa8c09a593356ba9105a4f634857bc 100644 --- a/neonView/NotificationPreview_view/NotificationPreview_view.aod +++ b/neonView/NotificationPreview_view/NotificationPreview_view.aod @@ -1,20 +1,20 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>NotificationPreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="false" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <cardViewTemplate> - <name>Card</name> - <iconField>#ICON</iconField> - <titleField>CAPTION</titleField> - <descriptionField>DESCRIPTION</descriptionField> - <entityField>#ENTITY</entityField> - </cardViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>NotificationPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="false" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <cardViewTemplate> + <name>Card</name> + <iconField>#ICON</iconField> + <titleField>CAPTION</titleField> + <descriptionField>DESCRIPTION</descriptionField> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + </children> +</neonView> diff --git a/neonView/OfferEdit_view/OfferEdit_view.aod b/neonView/OfferEdit_view/OfferEdit_view.aod index 27b34577ba50603f3da92ad84f61b1b880e62da3..ecc5bd015038ab0de9a0581acb12e4598418fdb9 100644 --- a/neonView/OfferEdit_view/OfferEdit_view.aod +++ b/neonView/OfferEdit_view/OfferEdit_view.aod @@ -1,83 +1,83 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>OfferEdit_view</name> - <title>Offer</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>VAADIN:CART</icon> - <quickEntry v="2" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Edit</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>1b323e80-820d-402a-98d2-f3649ec8e91f</name> - <entityField>CONTACT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>767a9e6e-596b-4903-aa86-7bc0f66cd037</name> - <entityField>STATUS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>768683f3-08c8-4e85-bb4c-7e5c74a8dec0</name> - <entityField>OFFERDATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>64cb7376-3a7c-4ce9-99e8-e70bc91b41d0</name> - <entityField>CURRENCY</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ce72d9f3-66ce-4a5e-a5af-c3a82520141d</name> - <entityField>PROBABILITY</entityField> - </entityFieldLink> - <entityFieldLink> - <name>7ab3eb65-b713-4251-9eb1-3119432565f5</name> - <entityField>LANGUAGE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ac6f81a2-5012-461a-bcf1-4534182b0973</name> - <entityField>SALESPROJECT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>7a9b0943-eb06-4b44-a111-ed4e2749da6a</name> - <entityField>DELIVERYTERMS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>1e98fe37-8d52-4eef-8825-8ea14e7e20b5</name> - <entityField>PAYMENTTERMS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>45ddf7c2-531b-4e18-826d-9c652ecc4d01</name> - <entityField>INFO</entityField> - </entityFieldLink> - <entityFieldLink> - <name>6005aedd-bbfb-452f-bdc8-3b99247022d9</name> - <entityField>chooseTEXHeader</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ed71986f-303c-4118-a895-51ec31ba8775</name> - <entityField>HEADER</entityField> - </entityFieldLink> - <entityFieldLink> - <name>833e6193-fde6-4990-8a26-eaeb0f60de48</name> - <entityField>ChosenAddress</entityField> - </entityFieldLink> - <entityFieldLink> - <name>930dc6e3-a19f-4780-9553-9cfd4a158fd5</name> - <entityField>ADDRESS</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>52f93604-4ec3-427f-b220-27ab63a30560</name> - <entityField>Attributes</entityField> - <view>AttributeRelationMultiEdit_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>OfferEdit_view</name> + <title>Offer</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:CART</icon> + <quickEntry v="2" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Edit</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>1b323e80-820d-402a-98d2-f3649ec8e91f</name> + <entityField>CONTACT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>767a9e6e-596b-4903-aa86-7bc0f66cd037</name> + <entityField>STATUS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>768683f3-08c8-4e85-bb4c-7e5c74a8dec0</name> + <entityField>OFFERDATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>64cb7376-3a7c-4ce9-99e8-e70bc91b41d0</name> + <entityField>CURRENCY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ce72d9f3-66ce-4a5e-a5af-c3a82520141d</name> + <entityField>PROBABILITY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>7ab3eb65-b713-4251-9eb1-3119432565f5</name> + <entityField>LANGUAGE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ac6f81a2-5012-461a-bcf1-4534182b0973</name> + <entityField>SALESPROJECT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>7a9b0943-eb06-4b44-a111-ed4e2749da6a</name> + <entityField>DELIVERYTERMS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>1e98fe37-8d52-4eef-8825-8ea14e7e20b5</name> + <entityField>PAYMENTTERMS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>45ddf7c2-531b-4e18-826d-9c652ecc4d01</name> + <entityField>INFO</entityField> + </entityFieldLink> + <entityFieldLink> + <name>6005aedd-bbfb-452f-bdc8-3b99247022d9</name> + <entityField>chooseTEXHeader</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ed71986f-303c-4118-a895-51ec31ba8775</name> + <entityField>HEADER</entityField> + </entityFieldLink> + <entityFieldLink> + <name>833e6193-fde6-4990-8a26-eaeb0f60de48</name> + <entityField>ChosenAddress</entityField> + </entityFieldLink> + <entityFieldLink> + <name>930dc6e3-a19f-4780-9553-9cfd4a158fd5</name> + <entityField>ADDRESS</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>52f93604-4ec3-427f-b220-27ab63a30560</name> + <entityField>Attributes</entityField> + <view>AttributeRelationMultiEdit_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/OfferMain_view/OfferMain_view.aod b/neonView/OfferMain_view/OfferMain_view.aod index 39f586c0e0ae8c60b84da8d905354bad968568d4..aaa0230453511a4057c980b40f617cedf7441494 100644 --- a/neonView/OfferMain_view/OfferMain_view.aod +++ b/neonView/OfferMain_view/OfferMain_view.aod @@ -1,53 +1,53 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>OfferMain_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <masterSlaveLayout> - <name>layout</name> - <master>5b93621b-c597-4ee8-88d5-3075e3890eb5</master> - </masterSlaveLayout> - </layout> - <children> - <neonViewReference> - <name>5b93621b-c597-4ee8-88d5-3075e3890eb5</name> - <entityField>#ENTITY</entityField> - <view>OfferPreview_view</view> - </neonViewReference> - <neonViewReference> - <name>da7c8cef-a4f0-4614-a330-d81221abe566</name> - <entityField>Offeritems</entityField> - <view>OfferitemFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>e6b12eed-d67e-467c-9302-f6340f901235</name> - <entityField>#ENTITY</entityField> - <view>OfferCoverLetter_view</view> - </neonViewReference> - <neonViewReference> - <name>a3702740-418d-40d5-9415-788542c14abb</name> - <entityField>Activities</entityField> - <view>ActivityFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>f6cbee03-396f-40b5-8022-e5e8cefbb410</name> - <entityField>Tasks</entityField> - <view>TaskFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>e96f2fec-1a98-4380-895a-82ab78ba408a</name> - <entityField>Documents</entityField> - <view>DocumentFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>1e993b34-a5ce-4fe5-a299-9963fe5f1085</name> - <entityField>Attributes</entityField> - <view>AttributeRelationTree_view</view> - </neonViewReference> - <neonViewReference> - <name>d79a0304-4106-4749-b2e1-c5ba005b4448</name> - <entityField>LogHistoryConsumer</entityField> - <view>LogHistoryFilter_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>OfferMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>5b93621b-c597-4ee8-88d5-3075e3890eb5</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>5b93621b-c597-4ee8-88d5-3075e3890eb5</name> + <entityField>#ENTITY</entityField> + <view>OfferPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>da7c8cef-a4f0-4614-a330-d81221abe566</name> + <entityField>Offeritems</entityField> + <view>OfferitemFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>e6b12eed-d67e-467c-9302-f6340f901235</name> + <entityField>#ENTITY</entityField> + <view>OfferCoverLetter_view</view> + </neonViewReference> + <neonViewReference> + <name>a3702740-418d-40d5-9415-788542c14abb</name> + <entityField>Activities</entityField> + <view>ActivityFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>f6cbee03-396f-40b5-8022-e5e8cefbb410</name> + <entityField>Tasks</entityField> + <view>TaskFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>e96f2fec-1a98-4380-895a-82ab78ba408a</name> + <entityField>Documents</entityField> + <view>DocumentFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>1e993b34-a5ce-4fe5-a299-9963fe5f1085</name> + <entityField>Attributes</entityField> + <view>AttributeRelationTree_view</view> + </neonViewReference> + <neonViewReference> + <name>d79a0304-4106-4749-b2e1-c5ba005b4448</name> + <entityField>LogHistoryConsumer</entityField> + <view>LogHistoryFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/OfferPreview_view/OfferPreview_view.aod b/neonView/OfferPreview_view/OfferPreview_view.aod index a28c644d44eab76093e06b9f42354d5dfc181606..2a96c5350752f43a7676c32d86b662661b96bee7 100644 --- a/neonView/OfferPreview_view/OfferPreview_view.aod +++ b/neonView/OfferPreview_view/OfferPreview_view.aod @@ -1,102 +1,102 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>OfferPreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <headerFooterLayout> - <name>layout</name> - <header>Header</header> - </headerFooterLayout> - </layout> - <children> - <cardViewTemplate> - <name>Header</name> - <iconField>IMAGE</iconField> - <titleField>OfferCode_VersNr_fieldgroup</titleField> - <descriptionField>CONTACT_ID</descriptionField> - <favoriteAction1>newActivity</favoriteAction1> - <entityField>#ENTITY</entityField> - </cardViewTemplate> - <genericViewTemplate> - <name>Details</name> - <editMode v="false" /> - <showDrawer v="true" /> - <drawerCaption>Details</drawerCaption> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>8d780ff6-9ca0-4067-b2b1-6e092c62253e</name> - <entityField>STATUS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>df5f1901-d397-42cf-8187-c1435bd1bd88</name> - <entityField>OFFERDATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>49e446b5-015e-45ad-9417-c5c50f9756f1</name> - <entityField>LANGUAGE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ce062531-603e-4c33-8a6b-935d2f07f516</name> - <entityField>ChosenAddress</entityField> - </entityFieldLink> - <entityFieldLink> - <name>447f5c6e-3653-49dd-ba8b-18c21a9bd6f9</name> - <entityField>ADDRESS</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <genericViewTemplate> - <name>Prices</name> - <showDrawer v="true" /> - <drawerCaption>Prices</drawerCaption> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>d7ca2b66-5e7a-4951-a89b-fbeab0f4f798</name> - <entityField>NET</entityField> - </entityFieldLink> - <entityFieldLink> - <name>c50dec3f-5468-4196-be88-a413ae3947de</name> - <entityField>VAT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>43972a26-67f7-4fb5-9107-111731d326af</name> - <entityField>TotalGross</entityField> - </entityFieldLink> - <entityFieldLink> - <name>5e41444b-b092-4406-beb0-bfe05e4db35a</name> - <entityField>CURRENCY</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <genericViewTemplate> - <name>Info</name> - <showDrawer v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>037889c4-136c-4e9e-b8e2-ff4f13af13c1</name> - <entityField>PROBABILITY</entityField> - </entityFieldLink> - <entityFieldLink> - <name>3317b73e-68e8-41a8-a678-89c7c7c8513e</name> - <entityField>SALESPROJECT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>59daee43-0e79-49d8-a36a-5ce4c491def9</name> - <entityField>PAYMENTTERMS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>a3a9ee30-bdd2-4907-b215-d4b4adcc0f1d</name> - <entityField>DELIVERYTERMS</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>b5e6c1b7-8a34-45a5-b4b6-9f61bda485fd</name> - <entityField>MainDocuments</entityField> - <view>DocumentList_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>OfferPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>Header</header> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>Header</name> + <iconField>IMAGE</iconField> + <titleField>OfferCode_VersNr_fieldgroup</titleField> + <descriptionField>CONTACT_ID</descriptionField> + <favoriteAction1>newActivity</favoriteAction1> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>Details</name> + <editMode v="false" /> + <showDrawer v="true" /> + <drawerCaption>Details</drawerCaption> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>8d780ff6-9ca0-4067-b2b1-6e092c62253e</name> + <entityField>STATUS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>df5f1901-d397-42cf-8187-c1435bd1bd88</name> + <entityField>OFFERDATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>49e446b5-015e-45ad-9417-c5c50f9756f1</name> + <entityField>LANGUAGE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ce062531-603e-4c33-8a6b-935d2f07f516</name> + <entityField>ChosenAddress</entityField> + </entityFieldLink> + <entityFieldLink> + <name>447f5c6e-3653-49dd-ba8b-18c21a9bd6f9</name> + <entityField>ADDRESS</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <genericViewTemplate> + <name>Prices</name> + <showDrawer v="true" /> + <drawerCaption>Prices</drawerCaption> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>d7ca2b66-5e7a-4951-a89b-fbeab0f4f798</name> + <entityField>NET</entityField> + </entityFieldLink> + <entityFieldLink> + <name>c50dec3f-5468-4196-be88-a413ae3947de</name> + <entityField>VAT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>43972a26-67f7-4fb5-9107-111731d326af</name> + <entityField>TotalGross</entityField> + </entityFieldLink> + <entityFieldLink> + <name>5e41444b-b092-4406-beb0-bfe05e4db35a</name> + <entityField>CURRENCY</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <genericViewTemplate> + <name>Info</name> + <showDrawer v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>037889c4-136c-4e9e-b8e2-ff4f13af13c1</name> + <entityField>PROBABILITY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>3317b73e-68e8-41a8-a678-89c7c7c8513e</name> + <entityField>SALESPROJECT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>59daee43-0e79-49d8-a36a-5ce4c491def9</name> + <entityField>PAYMENTTERMS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>a3a9ee30-bdd2-4907-b215-d4b4adcc0f1d</name> + <entityField>DELIVERYTERMS</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>b5e6c1b7-8a34-45a5-b4b6-9f61bda485fd</name> + <entityField>MainDocuments</entityField> + <view>DocumentList_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/OfferitemEdit_view/OfferitemEdit_view.aod b/neonView/OfferitemEdit_view/OfferitemEdit_view.aod index e2a37f682b4bad8d064947d60bcb8c9db17d5a07..8d5833c4b69b022ba37ee780ec864e186308b6fc 100644 --- a/neonView/OfferitemEdit_view/OfferitemEdit_view.aod +++ b/neonView/OfferitemEdit_view/OfferitemEdit_view.aod @@ -1,67 +1,67 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>OfferitemEdit_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <isSmall v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Info</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>a1d02350-10ed-4189-ab65-e750121a7efd</name> - <entityField>ITEMPOSITION</entityField> - </entityFieldLink> - <entityFieldLink> - <name>18f778d3-5672-48c5-b0f7-2c062662f9d1</name> - <entityField>PRODUCT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>e280db0c-0ac2-40d4-95c2-b59268c4f663</name> - <entityField>QUANTITY</entityField> - </entityFieldLink> - <entityFieldLink> - <name>f7bb223a-ab77-45b5-b6c0-9c8f4d478999</name> - <entityField>UNIT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>2b635ddb-d52c-4063-af11-aea8eeee151b</name> - <entityField>PRICE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>4f339738-6358-463e-b941-3b2693ab115a</name> - <entityField>DISCOUNT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>c0a22aa4-b09d-4d8b-8d24-1750eb7ba5ca</name> - <entityField>VAT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>e40aa70c-2a6a-4ff4-818f-0a56bc4c63f4</name> - <entityField>OPTIONAL</entityField> - </entityFieldLink> - <entityFieldLink> - <name>8df0d334-f0d8-4905-a7b1-e71576f3b24f</name> - <entityField>INFO</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <genericViewTemplate> - <name>Price</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>9200df17-11e2-4a1a-babb-ea48c6f88a93</name> - <entityField>TotalPrice</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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>OfferitemEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <isSmall v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Info</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>a1d02350-10ed-4189-ab65-e750121a7efd</name> + <entityField>ITEMPOSITION</entityField> + </entityFieldLink> + <entityFieldLink> + <name>18f778d3-5672-48c5-b0f7-2c062662f9d1</name> + <entityField>PRODUCT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>e280db0c-0ac2-40d4-95c2-b59268c4f663</name> + <entityField>QUANTITY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>f7bb223a-ab77-45b5-b6c0-9c8f4d478999</name> + <entityField>UNIT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>2b635ddb-d52c-4063-af11-aea8eeee151b</name> + <entityField>PRICE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>4f339738-6358-463e-b941-3b2693ab115a</name> + <entityField>DISCOUNT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>c0a22aa4-b09d-4d8b-8d24-1750eb7ba5ca</name> + <entityField>VAT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>e40aa70c-2a6a-4ff4-818f-0a56bc4c63f4</name> + <entityField>OPTIONAL</entityField> + </entityFieldLink> + <entityFieldLink> + <name>8df0d334-f0d8-4905-a7b1-e71576f3b24f</name> + <entityField>INFO</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <genericViewTemplate> + <name>Price</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>9200df17-11e2-4a1a-babb-ea48c6f88a93</name> + <entityField>TotalPrice</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/OfferitemFilter_view/OfferitemFilter_view.aod b/neonView/OfferitemFilter_view/OfferitemFilter_view.aod index 7071404ce53d0a5ace58c32883ec2581efc4dfc3..3c8f81ddc0b662f5ec91d7fb6e840514ea785108 100644 --- a/neonView/OfferitemFilter_view/OfferitemFilter_view.aod +++ b/neonView/OfferitemFilter_view/OfferitemFilter_view.aod @@ -1,56 +1,56 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>OfferitemFilter_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <treeTableViewTemplate> - <name>OfferitemsTreeTable</name> - <parentField>ASSIGNEDTO</parentField> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>91e85f61-5e5d-48f8-aeb1-a5740ec07e25</name> - <entityField>ITEMPOSITION</entityField> - </neonTableColumn> - <neonTableColumn> - <name>0d896874-cdb1-42bb-8a47-8ee61def6177</name> - <entityField>PRODUCT_ID</entityField> - </neonTableColumn> - <neonTableColumn> - <name>0b493fd0-d94d-4bfa-8533-ff2ad4af7ffb</name> - <entityField>QUANTITY</entityField> - </neonTableColumn> - <neonTableColumn> - <name>917406b8-f030-417d-a961-f391655526ec</name> - <entityField>UNIT</entityField> - </neonTableColumn> - <neonTableColumn> - <name>14da5a9f-4fed-4977-aec0-823ab665e1cb</name> - <entityField>PRICE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>25d9f682-eb5f-4d96-a040-c3f4522affe7</name> - <entityField>DISCOUNT</entityField> - </neonTableColumn> - <neonTableColumn> - <name>9e2bcb7e-b042-4f13-946c-0a6422412975</name> - <entityField>VAT</entityField> - </neonTableColumn> - <neonTableColumn> - <name>7a3b3ce6-a651-4a2a-acfa-0e990fb0b041</name> - <entityField>OPTIONAL</entityField> - </neonTableColumn> - <neonTableColumn> - <name>e43213db-8867-495f-8305-3472a8906222</name> - <entityField>TotalPrice</entityField> - </neonTableColumn> - </columns> - </treeTableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>OfferitemFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <treeTableViewTemplate> + <name>OfferitemsTreeTable</name> + <parentField>ASSIGNEDTO</parentField> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>91e85f61-5e5d-48f8-aeb1-a5740ec07e25</name> + <entityField>ITEMPOSITION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>0d896874-cdb1-42bb-8a47-8ee61def6177</name> + <entityField>PRODUCT_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>0b493fd0-d94d-4bfa-8533-ff2ad4af7ffb</name> + <entityField>QUANTITY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>917406b8-f030-417d-a961-f391655526ec</name> + <entityField>UNIT</entityField> + </neonTableColumn> + <neonTableColumn> + <name>14da5a9f-4fed-4977-aec0-823ab665e1cb</name> + <entityField>PRICE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>25d9f682-eb5f-4d96-a040-c3f4522affe7</name> + <entityField>DISCOUNT</entityField> + </neonTableColumn> + <neonTableColumn> + <name>9e2bcb7e-b042-4f13-946c-0a6422412975</name> + <entityField>VAT</entityField> + </neonTableColumn> + <neonTableColumn> + <name>7a3b3ce6-a651-4a2a-acfa-0e990fb0b041</name> + <entityField>OPTIONAL</entityField> + </neonTableColumn> + <neonTableColumn> + <name>e43213db-8867-495f-8305-3472a8906222</name> + <entityField>TotalPrice</entityField> + </neonTableColumn> + </columns> + </treeTableViewTemplate> + </children> +</neonView> diff --git a/neonView/OfferitemPreview_view/OfferitemPreview_view.aod b/neonView/OfferitemPreview_view/OfferitemPreview_view.aod index a0fe44f27fcbe8f9e3505e0952877a206b9dbc1c..4a13f1d9332f23905e9790a127a9185844b178fb 100644 --- a/neonView/OfferitemPreview_view/OfferitemPreview_view.aod +++ b/neonView/OfferitemPreview_view/OfferitemPreview_view.aod @@ -1,63 +1,63 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>OfferitemPreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <headerFooterLayout> - <name>layout</name> - <header>Header</header> - </headerFooterLayout> - </layout> - <children> - <cardViewTemplate> - <name>Header</name> - <iconField>IMAGE</iconField> - <titleField>ITEMNAME</titleField> - <subtitleField>PRODUCT_ID</subtitleField> - <entityField>#ENTITY</entityField> - </cardViewTemplate> - <genericViewTemplate> - <name>Info</name> - <showDrawer v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>3b207cf2-c621-4e7d-b7aa-32feace5fe04</name> - <entityField>INFO</entityField> - </entityFieldLink> - <entityFieldLink> - <name>c0c04d1c-90a7-4c0b-9323-1f0783757987</name> - <entityField>GROUPCODEID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>e792d720-187f-4aa1-917c-1c8065222b72</name> - <entityField>QUANTITY</entityField> - </entityFieldLink> - <entityFieldLink> - <name>9e25804b-198d-4505-b276-62bf58482dc6</name> - <entityField>UNIT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>b503187b-db64-4d2f-839f-9e812ee5163e</name> - <entityField>PRICE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>f8043352-f756-4854-9caa-a9aea073e4fe</name> - <entityField>DISCOUNT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>89b426b0-962f-4483-87c3-e6c0e0d0d651</name> - <entityField>VAT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>e25386dc-a740-4f93-a1f0-32317cf5a36a</name> - <entityField>OPTIONAL</entityField> - </entityFieldLink> - <entityFieldLink> - <name>9868560c-41c7-4641-b0f1-627a61b796b3</name> - <entityField>TotalPrice</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - </children> -</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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>OfferitemPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>Header</header> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>Header</name> + <iconField>IMAGE</iconField> + <titleField>ITEMNAME</titleField> + <subtitleField>PRODUCT_ID</subtitleField> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>Info</name> + <showDrawer v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>3b207cf2-c621-4e7d-b7aa-32feace5fe04</name> + <entityField>INFO</entityField> + </entityFieldLink> + <entityFieldLink> + <name>c0c04d1c-90a7-4c0b-9323-1f0783757987</name> + <entityField>GROUPCODEID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>e792d720-187f-4aa1-917c-1c8065222b72</name> + <entityField>QUANTITY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>9e25804b-198d-4505-b276-62bf58482dc6</name> + <entityField>UNIT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>b503187b-db64-4d2f-839f-9e812ee5163e</name> + <entityField>PRICE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>f8043352-f756-4854-9caa-a9aea073e4fe</name> + <entityField>DISCOUNT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>89b426b0-962f-4483-87c3-e6c0e0d0d651</name> + <entityField>VAT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>e25386dc-a740-4f93-a1f0-32317cf5a36a</name> + <entityField>OPTIONAL</entityField> + </entityFieldLink> + <entityFieldLink> + <name>9868560c-41c7-4641-b0f1-627a61b796b3</name> + <entityField>TotalPrice</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/OrderEdit_view/OrderEdit_view.aod b/neonView/OrderEdit_view/OrderEdit_view.aod index b5c58b6fe86174e241216f40a77120f5692fbe20..793b7e2d1fa89ac8302e2622542c1cf5a95e113c 100644 --- a/neonView/OrderEdit_view/OrderEdit_view.aod +++ b/neonView/OrderEdit_view/OrderEdit_view.aod @@ -1,63 +1,63 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>OrderEdit_view</name> - <title>Receipt</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>VAADIN:CART</icon> - <quickEntry v="2" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Edit</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>17536f17-4160-4027-8486-07321692147d</name> - <entityField>OrderCode_VersNr_fieldgroup</entityField> - </entityFieldLink> - <entityFieldLink> - <name>1b323e80-820d-402a-98d2-f3649ec8e91f</name> - <entityField>CONTACT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>767a9e6e-596b-4903-aa86-7bc0f66cd037</name> - <entityField>STATUS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>c1d37263-7cb1-4d0c-9701-be9b44f904e5</name> - <entityField>ORDERDATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>64cb7376-3a7c-4ce9-99e8-e70bc91b41d0</name> - <entityField>CURRENCY</entityField> - </entityFieldLink> - <entityFieldLink> - <name>7ab3eb65-b713-4251-9eb1-3119432565f5</name> - <entityField>LANGUAGE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ac6f81a2-5012-461a-bcf1-4534182b0973</name> - <entityField>SALESPROJECT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ed71986f-303c-4118-a895-51ec31ba8775</name> - <entityField>HEADER</entityField> - </entityFieldLink> - <entityFieldLink> - <name>c4b3c8ed-4625-4785-abc6-c726171ff7f4</name> - <entityField>FOOTER</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>72e2cb25-23e0-4f52-87a3-7c1bd80e99ec</name> - <entityField>Attributes</entityField> - <view>AttributeRelationMultiEdit_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>OrderEdit_view</name> + <title>Receipt</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:CART</icon> + <quickEntry v="2" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Edit</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>17536f17-4160-4027-8486-07321692147d</name> + <entityField>OrderCode_VersNr_fieldgroup</entityField> + </entityFieldLink> + <entityFieldLink> + <name>1b323e80-820d-402a-98d2-f3649ec8e91f</name> + <entityField>CONTACT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>767a9e6e-596b-4903-aa86-7bc0f66cd037</name> + <entityField>STATUS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>c1d37263-7cb1-4d0c-9701-be9b44f904e5</name> + <entityField>ORDERDATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>64cb7376-3a7c-4ce9-99e8-e70bc91b41d0</name> + <entityField>CURRENCY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>7ab3eb65-b713-4251-9eb1-3119432565f5</name> + <entityField>LANGUAGE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ac6f81a2-5012-461a-bcf1-4534182b0973</name> + <entityField>SALESPROJECT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ed71986f-303c-4118-a895-51ec31ba8775</name> + <entityField>HEADER</entityField> + </entityFieldLink> + <entityFieldLink> + <name>c4b3c8ed-4625-4785-abc6-c726171ff7f4</name> + <entityField>FOOTER</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>72e2cb25-23e0-4f52-87a3-7c1bd80e99ec</name> + <entityField>Attributes</entityField> + <view>AttributeRelationMultiEdit_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/OrderMain_view/OrderMain_view.aod b/neonView/OrderMain_view/OrderMain_view.aod index 540b3053f6b23d18eb9e8e7d1558140feaa8c9ed..f5e0ab80ba1b94c02374acd847e0f1f7bb893f19 100644 --- a/neonView/OrderMain_view/OrderMain_view.aod +++ b/neonView/OrderMain_view/OrderMain_view.aod @@ -1,53 +1,53 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>OrderMain_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <masterSlaveLayout> - <name>layout</name> - <master>eea3dc5d-1e30-429e-a3e3-28e463e381b3</master> - </masterSlaveLayout> - </layout> - <children> - <neonViewReference> - <name>eea3dc5d-1e30-429e-a3e3-28e463e381b3</name> - <entityField>#ENTITY</entityField> - <view>OrderPreview_view</view> - </neonViewReference> - <neonViewReference> - <name>7ec102f5-fb45-44a7-9bbf-0eba7f1536d7</name> - <entityField>Activities</entityField> - <view>ActivityFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>351a9b5d-a050-4fb9-b3e4-402dcd84b331</name> - <entityField>Tasks</entityField> - <view>TaskFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>f5455f3f-0743-47d1-bcb7-f2e83526e329</name> - <entityField>Orderitems</entityField> - <view>OrderitemFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>92918210-a64f-49c8-8a04-c82c7a2a0a51</name> - <entityField>#ENTITY</entityField> - <view>OrderDetail_view</view> - </neonViewReference> - <neonViewReference> - <name>1e0af6a9-9bb6-47b5-944b-636d21ac74d2</name> - <entityField>AttributeTree</entityField> - <view>AttributeRelationTree_view</view> - </neonViewReference> - <neonViewReference> - <name>b3014999-da86-45ae-86ae-feb738d62906</name> - <entityField>Documents</entityField> - <view>DocumentFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>b0dea506-7dd9-4de9-9ebe-ecad9965c300</name> - <entityField>LogHistoryConsumer</entityField> - <view>LogHistoryFilter_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>OrderMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>eea3dc5d-1e30-429e-a3e3-28e463e381b3</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>eea3dc5d-1e30-429e-a3e3-28e463e381b3</name> + <entityField>#ENTITY</entityField> + <view>OrderPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>7ec102f5-fb45-44a7-9bbf-0eba7f1536d7</name> + <entityField>Activities</entityField> + <view>ActivityFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>351a9b5d-a050-4fb9-b3e4-402dcd84b331</name> + <entityField>Tasks</entityField> + <view>TaskFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>f5455f3f-0743-47d1-bcb7-f2e83526e329</name> + <entityField>Orderitems</entityField> + <view>OrderitemFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>92918210-a64f-49c8-8a04-c82c7a2a0a51</name> + <entityField>#ENTITY</entityField> + <view>OrderDetail_view</view> + </neonViewReference> + <neonViewReference> + <name>1e0af6a9-9bb6-47b5-944b-636d21ac74d2</name> + <entityField>AttributeTree</entityField> + <view>AttributeRelationTree_view</view> + </neonViewReference> + <neonViewReference> + <name>b3014999-da86-45ae-86ae-feb738d62906</name> + <entityField>Documents</entityField> + <view>DocumentFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>b0dea506-7dd9-4de9-9ebe-ecad9965c300</name> + <entityField>LogHistoryConsumer</entityField> + <view>LogHistoryFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/OrderPreview_view/OrderPreview_view.aod b/neonView/OrderPreview_view/OrderPreview_view.aod index 59a83f1de6e3537425cf7ec1f40daa8f16ddbc52..352904efd6ec6be076644acb8a728aaee2246c4d 100644 --- a/neonView/OrderPreview_view/OrderPreview_view.aod +++ b/neonView/OrderPreview_view/OrderPreview_view.aod @@ -1,86 +1,86 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>OrderPreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <headerFooterLayout> - <name>layout</name> - <header>Header</header> - </headerFooterLayout> - </layout> - <children> - <cardViewTemplate> - <name>Header</name> - <iconField>IMAGE</iconField> - <titleField>OrderCode_VersNr_fieldgroup</titleField> - <descriptionField>CONTACT_ID</descriptionField> - <favoriteAction1>newActivity</favoriteAction1> - <entityField>#ENTITY</entityField> - </cardViewTemplate> - <genericViewTemplate> - <name>Details</name> - <editMode v="false" /> - <showDrawer v="true" /> - <drawerCaption>Details</drawerCaption> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>d7bb0f49-34db-4485-9908-598e83f3e73b</name> - <entityField>ORDERDATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>8d780ff6-9ca0-4067-b2b1-6e092c62253e</name> - <entityField>STATUS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>49e446b5-015e-45ad-9417-c5c50f9756f1</name> - <entityField>LANGUAGE</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <genericViewTemplate> - <name>Prices</name> - <showDrawer v="true" /> - <drawerCaption>Prices</drawerCaption> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>d7ca2b66-5e7a-4951-a89b-fbeab0f4f798</name> - <entityField>NET</entityField> - </entityFieldLink> - <entityFieldLink> - <name>c50dec3f-5468-4196-be88-a413ae3947de</name> - <entityField>VAT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>43972a26-67f7-4fb5-9107-111731d326af</name> - <entityField>TotalGross</entityField> - </entityFieldLink> - <entityFieldLink> - <name>5e41444b-b092-4406-beb0-bfe05e4db35a</name> - <entityField>CURRENCY</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <genericViewTemplate> - <name>Info</name> - <showDrawer v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>3317b73e-68e8-41a8-a678-89c7c7c8513e</name> - <entityField>SALESPROJECT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ca9602d9-03fe-450b-9349-949bf206b4bf</name> - <entityField>OFFER_ID</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>2e68ece3-d98d-49c4-92f9-3e3675ba5cb2</name> - <entityField>MainDocuments</entityField> - <view>DocumentList_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>OrderPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>Header</header> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>Header</name> + <iconField>IMAGE</iconField> + <titleField>OrderCode_VersNr_fieldgroup</titleField> + <descriptionField>CONTACT_ID</descriptionField> + <favoriteAction1>newActivity</favoriteAction1> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>Details</name> + <editMode v="false" /> + <showDrawer v="true" /> + <drawerCaption>Details</drawerCaption> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>d7bb0f49-34db-4485-9908-598e83f3e73b</name> + <entityField>ORDERDATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>8d780ff6-9ca0-4067-b2b1-6e092c62253e</name> + <entityField>STATUS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>49e446b5-015e-45ad-9417-c5c50f9756f1</name> + <entityField>LANGUAGE</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <genericViewTemplate> + <name>Prices</name> + <showDrawer v="true" /> + <drawerCaption>Prices</drawerCaption> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>d7ca2b66-5e7a-4951-a89b-fbeab0f4f798</name> + <entityField>NET</entityField> + </entityFieldLink> + <entityFieldLink> + <name>c50dec3f-5468-4196-be88-a413ae3947de</name> + <entityField>VAT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>43972a26-67f7-4fb5-9107-111731d326af</name> + <entityField>TotalGross</entityField> + </entityFieldLink> + <entityFieldLink> + <name>5e41444b-b092-4406-beb0-bfe05e4db35a</name> + <entityField>CURRENCY</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <genericViewTemplate> + <name>Info</name> + <showDrawer v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>3317b73e-68e8-41a8-a678-89c7c7c8513e</name> + <entityField>SALESPROJECT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ca9602d9-03fe-450b-9349-949bf206b4bf</name> + <entityField>OFFER_ID</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>2e68ece3-d98d-49c4-92f9-3e3675ba5cb2</name> + <entityField>MainDocuments</entityField> + <view>DocumentList_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/OrganisationEditDefaults_view/OrganisationEditDefaults_view.aod b/neonView/OrganisationEditDefaults_view/OrganisationEditDefaults_view.aod index 994f0d4875d113c881c82a419e0065b40a887d8a..79be40269e322482eed1c023b080094ee1d70336 100644 --- a/neonView/OrganisationEditDefaults_view/OrganisationEditDefaults_view.aod +++ b/neonView/OrganisationEditDefaults_view/OrganisationEditDefaults_view.aod @@ -1,32 +1,32 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>OrganisationEditDefaults_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <isSmall v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Edit</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>ccc421c9-3943-4668-a6c7-960753c38562</name> - <entityField>ADDRESS_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>8625fb63-550c-4ad3-9b39-3091762e3f29</name> - <entityField>STANDARD_EMAIL_COMMUNICATION</entityField> - </entityFieldLink> - <entityFieldLink> - <name>a984c913-54e8-492e-928a-3553a1e76726</name> - <entityField>STANDARD_PHONE_COMMUNICATION</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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>OrganisationEditDefaults_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <isSmall v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Edit</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>ccc421c9-3943-4668-a6c7-960753c38562</name> + <entityField>ADDRESS_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>8625fb63-550c-4ad3-9b39-3091762e3f29</name> + <entityField>STANDARD_EMAIL_COMMUNICATION</entityField> + </entityFieldLink> + <entityFieldLink> + <name>a984c913-54e8-492e-928a-3553a1e76726</name> + <entityField>STANDARD_PHONE_COMMUNICATION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/OrganisationEdit_view/OrganisationEdit_view.aod b/neonView/OrganisationEdit_view/OrganisationEdit_view.aod index 080b29e16ea4781a2c803798dcee3674b0ed54b0..c76664fb8d6a2c5648a8ee58f7c6201a780dbb56 100644 --- a/neonView/OrganisationEdit_view/OrganisationEdit_view.aod +++ b/neonView/OrganisationEdit_view/OrganisationEdit_view.aod @@ -1,61 +1,61 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>OrganisationEdit_view</name> - <title>Company</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>VAADIN:BUILDING</icon> - <quickEntry v="1" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Edit</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>05ea829a-07b1-418a-b634-01fbf8bcfcf5</name> - <entityField>NAME</entityField> - </entityFieldLink> - <entityFieldLink> - <name>1208d378-8992-42d8-a919-81ff5c0985d2</name> - <entityField>CUSTOMERCODE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>1af0f937-298b-411d-be16-7ca49446e780</name> - <entityField>INFO</entityField> - </entityFieldLink> - <entityFieldLink> - <name>6009a1a1-0cec-4dc8-b646-99b594dee765</name> - <entityField>LANGUAGE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>2e4b0273-a02a-4afa-9de2-bab48a7af12a</name> - <entityField>STATUS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>edecd4d4-dece-42a6-b25c-c4c4ccb0dd8f</name> - <entityField>TYPE</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>148e3a6c-d30b-470c-84e5-273293348611</name> - <entityField>Addresses</entityField> - <view>AdressMultiEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>6355808f-ee94-4caf-95b1-3848e81c75b7</name> - <entityField>Communications</entityField> - <view>CommunicationMultiEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>2114d459-851a-4ead-b3ec-a81ec78af607</name> - <entityField>Attributes</entityField> - <view>AttributeRelationMultiEdit_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>OrganisationEdit_view</name> + <title>Company</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:BUILDING</icon> + <quickEntry v="1" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Edit</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>05ea829a-07b1-418a-b634-01fbf8bcfcf5</name> + <entityField>NAME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>1208d378-8992-42d8-a919-81ff5c0985d2</name> + <entityField>CUSTOMERCODE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>1af0f937-298b-411d-be16-7ca49446e780</name> + <entityField>INFO</entityField> + </entityFieldLink> + <entityFieldLink> + <name>6009a1a1-0cec-4dc8-b646-99b594dee765</name> + <entityField>LANGUAGE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>2e4b0273-a02a-4afa-9de2-bab48a7af12a</name> + <entityField>STATUS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>edecd4d4-dece-42a6-b25c-c4c4ccb0dd8f</name> + <entityField>TYPE</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>148e3a6c-d30b-470c-84e5-273293348611</name> + <entityField>Addresses</entityField> + <view>AdressMultiEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>6355808f-ee94-4caf-95b1-3848e81c75b7</name> + <entityField>Communications</entityField> + <view>CommunicationMultiEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>2114d459-851a-4ead-b3ec-a81ec78af607</name> + <entityField>Attributes</entityField> + <view>AttributeRelationMultiEdit_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/OrganisationFilter_view/OrganisationFilter_view.aod b/neonView/OrganisationFilter_view/OrganisationFilter_view.aod index 42acbc4358c5d947174cf4c9740b0bd95dfb886d..df147eefc061e862ac333e7ec14a12498dc8e41c 100644 --- a/neonView/OrganisationFilter_view/OrganisationFilter_view.aod +++ b/neonView/OrganisationFilter_view/OrganisationFilter_view.aod @@ -1,74 +1,74 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>OrganisationFilter_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <dashletConfigurations> - <neonDashletConfiguration> - <name>AllOrgsDashlet</name> - <title>Companies</title> - <description>Show all companies</description> - <fragment>Organisation/filter</fragment> - <singleton v="true" /> - <requiresConfiguration v="false" /> - <icon>vaadin:building</icon> - <categories> - <neonDashletCategory> - <name>contactmanagement</name> - <title>Contactmanagement</title> - </neonDashletCategory> - <neonDashletCategory> - <name>org</name> - <title>Company</title> - </neonDashletCategory> - </categories> - </neonDashletConfiguration> - </dashletConfigurations> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>Organisations</name> - <favoriteActionGroup1>campaignActionGroup</favoriteActionGroup1> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>2008e7ac-9e6a-4104-9d5b-da60a10a1c02</name> - <entityField>#IMAGE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>a290a2ca-3236-4eb0-bf51-99f99d8414d6</name> - <entityField>NAME</entityField> - </neonTableColumn> - <neonTableColumn> - <name>f94d2ffe-4fa7-489b-9e94-08f15dbd0a41</name> - <entityField>CUSTOMERCODE</entityField> - <expandRatio v="100" /> - </neonTableColumn> - <neonTableColumn> - <name>b09730e2-5d7d-4b88-aeb9-45fbea6e86c1</name> - <entityField>LANGUAGE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>1908e7ac-9e6a-4104-9d5b-da60a10a1c02</name> - <entityField>STATUS</entityField> - </neonTableColumn> - <neonTableColumn> - <name>2a82ed1e-05bf-408a-82e0-4de6195dad49</name> - <entityField>STANDARD_EMAIL_COMMUNICATION</entityField> - </neonTableColumn> - <neonTableColumn> - <name>213d7434-cac6-42d8-aa3a-d893dc77b7b3</name> - <entityField>STANDARD_PHONE_COMMUNICATION</entityField> - </neonTableColumn> - <neonTableColumn> - <name>067eeef9-9a98-483b-9b4f-67bcc46eca3a</name> - <entityField>ADDRESS_ID</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>OrganisationFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <dashletConfigurations> + <neonDashletConfiguration> + <name>AllOrgsDashlet</name> + <title>Companies</title> + <description>Show all companies</description> + <fragment>Organisation/filter</fragment> + <singleton v="true" /> + <requiresConfiguration v="false" /> + <icon>vaadin:building</icon> + <categories> + <neonDashletCategory> + <name>contactmanagement</name> + <title>Contactmanagement</title> + </neonDashletCategory> + <neonDashletCategory> + <name>org</name> + <title>Company</title> + </neonDashletCategory> + </categories> + </neonDashletConfiguration> + </dashletConfigurations> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Organisations</name> + <favoriteActionGroup1>campaignActionGroup</favoriteActionGroup1> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>2008e7ac-9e6a-4104-9d5b-da60a10a1c02</name> + <entityField>#IMAGE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>a290a2ca-3236-4eb0-bf51-99f99d8414d6</name> + <entityField>NAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>f94d2ffe-4fa7-489b-9e94-08f15dbd0a41</name> + <entityField>CUSTOMERCODE</entityField> + <expandRatio v="100" /> + </neonTableColumn> + <neonTableColumn> + <name>b09730e2-5d7d-4b88-aeb9-45fbea6e86c1</name> + <entityField>LANGUAGE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>1908e7ac-9e6a-4104-9d5b-da60a10a1c02</name> + <entityField>STATUS</entityField> + </neonTableColumn> + <neonTableColumn> + <name>2a82ed1e-05bf-408a-82e0-4de6195dad49</name> + <entityField>STANDARD_EMAIL_COMMUNICATION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>213d7434-cac6-42d8-aa3a-d893dc77b7b3</name> + <entityField>STANDARD_PHONE_COMMUNICATION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>067eeef9-9a98-483b-9b4f-67bcc46eca3a</name> + <entityField>ADDRESS_ID</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/OrganisationMain_view/OrganisationMain_view.aod b/neonView/OrganisationMain_view/OrganisationMain_view.aod index 5d85b9c313e15a741d70ca865e3b199c4999d5cd..5a92246fb578e78c7af3a79e52c6ab34c25b90fa 100644 --- a/neonView/OrganisationMain_view/OrganisationMain_view.aod +++ b/neonView/OrganisationMain_view/OrganisationMain_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>OrganisationMain_view</name> - <title>Attribute</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <masterSlaveLayout> - <name>layout</name> - <master>b29471bb-a6d0-4730-90ef-191f76756fcb</master> - </masterSlaveLayout> - </layout> - <children> - <neonViewReference> - <name>b29471bb-a6d0-4730-90ef-191f76756fcb</name> - <entityField>#ENTITY</entityField> - <view>OrganisationPreview_view</view> - </neonViewReference> - <neonViewReference> - <name>14bb5a70-fec1-4346-a8c2-2dde6fb32822</name> - <entityField>Activities</entityField> - <view>ActivityFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>c10533a6-d185-4b13-84ee-53a468544c03</name> - <entityField>Contact</entityField> - <view>PersonSimpleList_view</view> - </neonViewReference> - <neonViewReference> - <name>ae34787c-dcaf-4fe2-a4e2-35219f138b03</name> - <entityField>360DegreeObjects</entityField> - <view>360DegreeFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>78aee175-d3ac-4378-8b3b-27f44a529aa5</name> - <entityField>Productprices</entityField> - <view>ProductpriceRelation_view</view> - </neonViewReference> - <neonViewReference> - <name>55e04574-bc55-4c9a-a4c4-9ebd287f8ae6</name> - <entityField>Tasks</entityField> - <view>TaskFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>eba90ed2-5e55-4cdb-9e0b-5a09feeb7536</name> - <entityField>Documents</entityField> - <view>DocumentFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>c82aff98-ede5-4d9e-a902-89f71ed7dbb0</name> - <entityField>ObjectTrees</entityField> - <view>ObjectTreeFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>ba50e069-06da-440e-b04a-5a686fcf5303</name> - <entityField>AttributeTree</entityField> - <view>AttributeRelationTree_view</view> - </neonViewReference> - <neonViewReference> - <name>0686ad7e-8dc7-4b10-9df2-bf066ae3a310</name> - <entityField>LogHistoryConsumer</entityField> - <view>LogHistoryFilter_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>OrganisationMain_view</name> + <title>Attribute</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>b29471bb-a6d0-4730-90ef-191f76756fcb</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>b29471bb-a6d0-4730-90ef-191f76756fcb</name> + <entityField>#ENTITY</entityField> + <view>OrganisationPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>14bb5a70-fec1-4346-a8c2-2dde6fb32822</name> + <entityField>Activities</entityField> + <view>ActivityFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>c10533a6-d185-4b13-84ee-53a468544c03</name> + <entityField>Contact</entityField> + <view>PersonSimpleList_view</view> + </neonViewReference> + <neonViewReference> + <name>ae34787c-dcaf-4fe2-a4e2-35219f138b03</name> + <entityField>360DegreeObjects</entityField> + <view>360DegreeFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>78aee175-d3ac-4378-8b3b-27f44a529aa5</name> + <entityField>Productprices</entityField> + <view>ProductpriceRelation_view</view> + </neonViewReference> + <neonViewReference> + <name>55e04574-bc55-4c9a-a4c4-9ebd287f8ae6</name> + <entityField>Tasks</entityField> + <view>TaskFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>eba90ed2-5e55-4cdb-9e0b-5a09feeb7536</name> + <entityField>Documents</entityField> + <view>DocumentFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>c82aff98-ede5-4d9e-a902-89f71ed7dbb0</name> + <entityField>ObjectTrees</entityField> + <view>ObjectTreeFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>ba50e069-06da-440e-b04a-5a686fcf5303</name> + <entityField>AttributeTree</entityField> + <view>AttributeRelationTree_view</view> + </neonViewReference> + <neonViewReference> + <name>0686ad7e-8dc7-4b10-9df2-bf066ae3a310</name> + <entityField>LogHistoryConsumer</entityField> + <view>LogHistoryFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/PermissionActionEdit_view/PermissionActionEdit_view.aod b/neonView/PermissionActionEdit_view/PermissionActionEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..4bdaa43bee0dc7cf01a422e527b3fb09926528d0 --- /dev/null +++ b/neonView/PermissionActionEdit_view/PermissionActionEdit_view.aod @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionActionEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>c2211f64-0134-4fff-b5bf-194fd4580d81</name> + <entityField>AB_PERMISSION_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>5b378d43-5112-4d4d-9207-cd9b2caa7d1d</name> + <entityField>ACTION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/PermissionActionFilter_view/PermissionActionFilter_view.aod b/neonView/PermissionActionFilter_view/PermissionActionFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..2ec89c457b59c100f31e39efa64e21ed5fbf0f0a --- /dev/null +++ b/neonView/PermissionActionFilter_view/PermissionActionFilter_view.aod @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionActionFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Table</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>641efc97-974e-4f8b-972f-54f75c3707a7</name> + <entityField>AB_PERMISSIONACTIONID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>8c116c1f-8323-4c55-8607-05ec9450e2a1</name> + <entityField>AB_PERMISSION_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>e7c5906a-f747-403b-927d-66bcf2eee167</name> + <entityField>ACTION</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/PermissionActionMain_view/PermissionActionMain_view.aod b/neonView/PermissionActionMain_view/PermissionActionMain_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..d61d91733f95aee044a5833824dea203cecb9407 --- /dev/null +++ b/neonView/PermissionActionMain_view/PermissionActionMain_view.aod @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionActionMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>ec5bf5af-b20e-417e-87ac-fa52e069a7ef</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>ec5bf5af-b20e-417e-87ac-fa52e069a7ef</name> + <entityField>#ENTITY</entityField> + <view>PermissionActionPreview_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/PermissionActionPreview_view/PermissionActionPreview_view.aod b/neonView/PermissionActionPreview_view/PermissionActionPreview_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..e43fa1a1b776a70a2f20b9707d2c03de4f5e9c4a --- /dev/null +++ b/neonView/PermissionActionPreview_view/PermissionActionPreview_view.aod @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionActionPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <cardViewTemplate> + <name>Card</name> + <titleField>AB_PERMISSIONACTIONID</titleField> + <subtitleField>AB_PERMISSION_ID</subtitleField> + <descriptionField>ACTION</descriptionField> + <entityField>#ENTITY</entityField> + <title></title> + </cardViewTemplate> + </children> +</neonView> diff --git a/neonView/PermissionAdminMain_view/PermissionAdminMain_view.aod b/neonView/PermissionAdminMain_view/PermissionAdminMain_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..a9dbfbf7fd5f55b1a145d4590325abf7703ba5d6 --- /dev/null +++ b/neonView/PermissionAdminMain_view/PermissionAdminMain_view.aod @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionAdminMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>3549ccf4-0509-41b1-b048-ad3eec217b56</name> + <entityField>PermissionSets</entityField> + <view>PermissionSetFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/PermissionDetailEdit_view/PermissionDetailEdit_view.aod b/neonView/PermissionDetailEdit_view/PermissionDetailEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..ee589a6b0ee1adf1a935a63fa79324052d945c5a --- /dev/null +++ b/neonView/PermissionDetailEdit_view/PermissionDetailEdit_view.aod @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionDetailEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>5f97e770-491f-4d47-b996-98af9d6b3d6c</name> + <entityField>ROLE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>7a2448aa-4e33-43e9-96f0-ccbdda7bce59</name> + <entityField>ENTITY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>33be5e6a-aad9-46ca-81e3-55cb6aba5602</name> + <entityField>FIELD</entityField> + </entityFieldLink> + <entityFieldLink> + <name>340d1206-e5fb-4337-b298-b44286461f8b</name> + <entityField>ACCESSTYPE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>be5b7d60-ec7a-446c-b360-1583d2262d86</name> + <entityField>CONDTYPE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>c5629444-0aba-4880-a4d8-6352aa4d12e5</name> + <entityField>CONDITION</entityField> + </entityFieldLink> + <entityFieldLink> + <name>71e01140-6581-4b5a-8c2c-e8eebe489f38</name> + <entityField>ACTION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/PermissionDetailFilter_view/PermissionDetailFilter_view.aod b/neonView/PermissionDetailFilter_view/PermissionDetailFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..60abad21e7dc53496d3b8c868c781605637451e8 --- /dev/null +++ b/neonView/PermissionDetailFilter_view/PermissionDetailFilter_view.aod @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionDetailFilter_view</name> + <title>Permission Detail</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <groupLayout> + <name>layout</name> + </groupLayout> + </layout> + <children> + <treeViewTemplate> + <name>Treetable</name> + <parentField>PARENT</parentField> + <titleField>#TITLE</titleField> + <descriptionField>ACTION</descriptionField> + <iconField>#ICON</iconField> + <hideContentSearch v="true" /> + <entityField>#ENTITY</entityField> + </treeViewTemplate> + <tableViewTemplate> + <name>Table</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>4c37b7f1-5bd3-48a8-afe3-100f8442f2b5</name> + <entityField>#ICON</entityField> + </neonTableColumn> + <neonTableColumn> + <name>82658f11-fff7-45f9-9f2d-a7953cc524e1</name> + <entityField>ROLE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>50210d1a-bc46-4c0c-805e-5e92dc961843</name> + <entityField>ENTITY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>a1a5e4d1-3fb9-45dc-a59f-22a39cb0786a</name> + <entityField>FIELD</entityField> + </neonTableColumn> + <neonTableColumn> + <name>cb792440-9d70-4e3a-9591-c9a2947a2834</name> + <entityField>ACTION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>9ac7ecfd-a4d5-4fba-b931-7f35c9006330</name> + <entityField>CONDITION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>6083181d-f20e-46a6-9fff-390fce058023</name> + <entityField>ACCESSTYPE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>5ab9440e-0384-4e1f-b931-7a22f4dd5ba6</name> + <entityField>UID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>61d9c9b4-6d4f-4f94-9f39-4fd8ecdb46d5</name> + <entityField>PARENT</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod b/neonView/PermissionDetailPreview_view/PermissionDetailPreview_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..68df6946fe0a94657df7406c4f5c36230a417fa9 --- /dev/null +++ b/neonView/PermissionDetailPreview_view/PermissionDetailPreview_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionDetailPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <cardViewTemplate> + <name>Card</name> + <iconField>#ICON</iconField> + <titleField>#TITLE</titleField> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>Generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>7aa0ce6f-370c-4f50-8498-fd5768e0859c</name> + <entityField>CONDTYPE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>dd33df7a-82e6-49a8-b35f-99d0187970e3</name> + <entityField>CONDITION</entityField> + </entityFieldLink> + <entityFieldLink> + <name>d113c6e9-cb6e-4873-85c8-528de4da4bb7</name> + <entityField>ACTION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/PermissionEdit_view/PermissionEdit_view.aod b/neonView/PermissionEdit_view/PermissionEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..d1520edc9b4b40e33998759ccb083a5cfc21704a --- /dev/null +++ b/neonView/PermissionEdit_view/PermissionEdit_view.aod @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>3fc8953d-ee49-4658-bfdb-02ceabb9d7d0</name> + <entityField>AB_PERMISSIONSET_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>fd3bd753-2584-4303-9d23-724b609fb164</name> + <entityField>COND</entityField> + </entityFieldLink> + <entityFieldLink> + <name>3525447a-16aa-4e53-bb1e-58a9b6b5d963</name> + <entityField>CONDTYPE</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/PermissionFilter_view/PermissionFilter_view.aod b/neonView/PermissionFilter_view/PermissionFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..4c36b8f1bf96cc41ecc79973aff4a42285e3fac1 --- /dev/null +++ b/neonView/PermissionFilter_view/PermissionFilter_view.aod @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Table</name> + <autoNewRow v="false" /> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>fd0ebb2c-8709-48c2-b9c9-b091984ff215</name> + <entityField>AB_PERMISSIONID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>f75af053-64a0-4a32-ae98-aef43e8fd48d</name> + <entityField>AB_PERMISSIONSET_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>4e020af7-16b3-43f5-a6aa-f138a1af84fe</name> + <entityField>COND</entityField> + </neonTableColumn> + <neonTableColumn> + <name>26eb506e-c1af-4c15-86c2-dbdeedd99829</name> + <entityField>CONDTYPE</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/PermissionMain_view/PermissionMain_view.aod b/neonView/PermissionMain_view/PermissionMain_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..1e74ecb5f34bcae6207d9442c2a77077c5045aaf --- /dev/null +++ b/neonView/PermissionMain_view/PermissionMain_view.aod @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>be583013-2f62-44bb-8419-c438c9b6e2bf</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>be583013-2f62-44bb-8419-c438c9b6e2bf</name> + <entityField>#ENTITY</entityField> + <view>PermissionPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>ce0f025d-c465-4c46-ae41-40b66a3a65a7</name> + <entityField>PermissionPermissionActions</entityField> + <view>PermissionActionFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/PermissionMetaDataFilter_view/PermissionMetaDataFilter_view.aod b/neonView/PermissionMetaDataFilter_view/PermissionMetaDataFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..4277245e38f0be366595f6b8eaba03de5a1b6b3f --- /dev/null +++ b/neonView/PermissionMetaDataFilter_view/PermissionMetaDataFilter_view.aod @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionMetaDataFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Table</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>7323f0a6-a8d9-477e-9fdf-fd0eb2710f32</name> + <entityField>#ICON</entityField> + </neonTableColumn> + <neonTableColumn> + <name>fe1de1ae-9479-47e2-b14f-81777a5c119e</name> + <entityField>UID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>6ea976c5-e6be-47fa-869d-03a489f11f20</name> + <entityField>TITLE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>ebc611c2-7413-483e-9194-4303e9ae9b17</name> + <entityField>DESCRIPTION</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/PermissionMetaDataMain_view/PermissionMetaDataMain_view.aod b/neonView/PermissionMetaDataMain_view/PermissionMetaDataMain_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..0a1255ea85f6e8d5de520dbe9945562dba4d4609 --- /dev/null +++ b/neonView/PermissionMetaDataMain_view/PermissionMetaDataMain_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionMetaDataMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>97d01b0c-a5a7-4d1f-8cab-de93552feee5</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>97d01b0c-a5a7-4d1f-8cab-de93552feee5</name> + <entityField>#ENTITY</entityField> + <view>PermissionMetaDataPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>25bb7e77-1fac-49d9-840a-8b524aac0d89</name> + <entityField>PermissionOverviews</entityField> + <view>PermissionOverviewFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>a36d53a8-d10a-433c-8386-b354ad8bbbad</name> + <entityField>PermissionDetails</entityField> + <view>PermissionDetailFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/PermissionMetaDataPreview_view/PermissionMetaDataPreview_view.aod b/neonView/PermissionMetaDataPreview_view/PermissionMetaDataPreview_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..8c308d8a9c9dd9511661bbece2cc2f882d69106f --- /dev/null +++ b/neonView/PermissionMetaDataPreview_view/PermissionMetaDataPreview_view.aod @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionMetaDataPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <cardViewTemplate> + <name>Card</name> + <iconField>#ICON</iconField> + <titleField>UID</titleField> + <subtitleField>TITLE</subtitleField> + <descriptionField>DESCRIPTION</descriptionField> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + </children> +</neonView> diff --git a/neonView/PermissionOverviewFilter_view/PermissionOverviewFilter_view.aod b/neonView/PermissionOverviewFilter_view/PermissionOverviewFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..456775fc326f8a86aa8b75b67e3b1e01bde00649 --- /dev/null +++ b/neonView/PermissionOverviewFilter_view/PermissionOverviewFilter_view.aod @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionOverviewFilter_view</name> + <title>Permission Overview</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Table</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>2d83af69-cafe-471c-92de-0e6e66ba51aa</name> + <entityField>#ICON</entityField> + </neonTableColumn> + <neonTableColumn> + <name>16c4d649-ec91-415d-9768-78d0581ad44a</name> + <entityField>ENTITY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>f3e96f53-fb65-4b98-a189-cead544c17d8</name> + <entityField>ACTION_VIEW</entityField> + </neonTableColumn> + <neonTableColumn> + <name>d21161a7-51e8-4c83-9c92-b6a0d24ddc62</name> + <entityField>ACTION_CREATE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>c5679586-7f99-4ea5-99f4-94422e70c999</name> + <entityField>ACTION_READ</entityField> + </neonTableColumn> + <neonTableColumn> + <name>0699fd7b-d4ac-4ef8-ac19-1cd249ce3251</name> + <entityField>ACTION_EDIT</entityField> + </neonTableColumn> + <neonTableColumn> + <name>f7c3479e-e635-44f1-afc0-45570c4fffe9</name> + <entityField>ACTION_DELETE</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/PermissionPreview_view/PermissionPreview_view.aod b/neonView/PermissionPreview_view/PermissionPreview_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..2991f6b11e2e20b629176ece529726a3cb793cca --- /dev/null +++ b/neonView/PermissionPreview_view/PermissionPreview_view.aod @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <cardViewTemplate> + <name>Card</name> + <iconField></iconField> + <titleField>AB_PERMISSIONID</titleField> + <subtitleField>AB_PERMISSIONSET_ID</subtitleField> + <descriptionField>COND</descriptionField> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + </children> +</neonView> diff --git a/neonView/PermissionSetEdit_view/PermissionSetEdit_view.aod b/neonView/PermissionSetEdit_view/PermissionSetEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..157ca2033eb7d89cffa6fb801f5ad7b8777afbf3 --- /dev/null +++ b/neonView/PermissionSetEdit_view/PermissionSetEdit_view.aod @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionSetEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>1ee315a6-ff9a-4b31-b789-d591b63de3a8</name> + <entityField>AB_PERMISSIONSET_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>512e0f3f-b907-4c7b-9c9f-b3049785e54c</name> + <entityField>ACCESSTYPE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>b77cae1d-b31c-4d66-89c5-8f192ca92a6b</name> + <entityField>ENTITY_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>4e7543bd-9148-490d-a5d0-1147426ab830</name> + <entityField>ROLE_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>50738384-3e3f-4f4c-a551-fb1fd1c8630b</name> + <entityField>FIELD_ID</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/PermissionSetFilter_view/PermissionSetFilter_view.aod b/neonView/PermissionSetFilter_view/PermissionSetFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..0fae1abf24eef141e7b0ec1d702e2e36f407e868 --- /dev/null +++ b/neonView/PermissionSetFilter_view/PermissionSetFilter_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionSetFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <groupLayout> + <name>layout</name> + </groupLayout> + </layout> + <children> + <treeViewTemplate> + <name>Treetable</name> + <parentField>AB_PERMISSIONSET_ID</parentField> + <titleField>#TITLE</titleField> + <descriptionField>ROLE_ID</descriptionField> + <entityField>#ENTITY</entityField> + </treeViewTemplate> + <tableViewTemplate> + <name>Table</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>47eb58d4-da06-408c-bcd1-04f4dbe29990</name> + <entityField>AB_PERMISSIONSETID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>1eb7e7f4-0bcc-4606-b02f-694a9be602a9</name> + <entityField>AB_PERMISSIONSET_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>03009aa0-b334-4ee3-b90d-acb872e3a6b5</name> + <entityField>ROLE_ID</entityField> + <width v="75" /> + </neonTableColumn> + <neonTableColumn> + <name>da15c508-14e9-4041-b673-12cadfa89988</name> + <entityField>ENTITY_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>aa88c597-c427-4d94-b5d5-e434decf8dd1</name> + <entityField>FIELD_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>56f67868-6421-4664-9dcc-e6f578951dba</name> + <entityField>ACCESSTYPE</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/PermissionSetMain_view/PermissionSetMain_view.aod b/neonView/PermissionSetMain_view/PermissionSetMain_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..13a4ee4fcc33ee7fadde7ef31121c2bb3f72df9f --- /dev/null +++ b/neonView/PermissionSetMain_view/PermissionSetMain_view.aod @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionSetMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>8f6399dd-2a33-4f6a-b0f9-cceda7da5d24</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>8f6399dd-2a33-4f6a-b0f9-cceda7da5d24</name> + <entityField>#ENTITY</entityField> + <view>PermissionSetPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>9135a8c5-28aa-4a66-af91-fcdf4c680d1e</name> + <entityField>Permissions</entityField> + <view>PermissionFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/PermissionSetPreview_view/PermissionSetPreview_view.aod b/neonView/PermissionSetPreview_view/PermissionSetPreview_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..e498f92bd54f3b218c02f792dab3424da4e25f82 --- /dev/null +++ b/neonView/PermissionSetPreview_view/PermissionSetPreview_view.aod @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PermissionSetPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <cardViewTemplate> + <name>Card</name> + <iconField>#ICON</iconField> + <titleField>AB_PERMISSIONSETID</titleField> + <subtitleField>ROLE_ID</subtitleField> + <descriptionField>ENTITY_ID</descriptionField> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>Generic</name> + <editMode v="false" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>76a1cfbb-5c30-410c-84c5-c0473282f8ed</name> + <entityField>ACCESSTYPE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>34f3342c-7269-42d2-a24d-cdf962186f19</name> + <entityField>FIELD_ID</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/PersonEditDefaults_view/PersonEditDefaults_view.aod b/neonView/PersonEditDefaults_view/PersonEditDefaults_view.aod index f9e87e7b583b12e2d260fd52cac13c54be1145f8..5b52a8e61550748e3605679e9412fabe2fc844fa 100644 --- a/neonView/PersonEditDefaults_view/PersonEditDefaults_view.aod +++ b/neonView/PersonEditDefaults_view/PersonEditDefaults_view.aod @@ -1,32 +1,32 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>PersonEditDefaults_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <isSmall v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Edit</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>c28f9bd4-5ed4-43cb-a431-3164d862f3e6</name> - <entityField>ADDRESS_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>b3451cde-029d-4339-8b07-8549c06b6796</name> - <entityField>STANDARD_EMAIL_COMMUNICATION</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ca07d91a-a673-438a-8590-874392993efb</name> - <entityField>STANDARD_PHONE_COMMUNICATION</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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PersonEditDefaults_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <isSmall v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Edit</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>c28f9bd4-5ed4-43cb-a431-3164d862f3e6</name> + <entityField>ADDRESS_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>b3451cde-029d-4339-8b07-8549c06b6796</name> + <entityField>STANDARD_EMAIL_COMMUNICATION</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ca07d91a-a673-438a-8590-874392993efb</name> + <entityField>STANDARD_PHONE_COMMUNICATION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/PersonEdit_view/PersonEdit_view.aod b/neonView/PersonEdit_view/PersonEdit_view.aod index 4980ebdd11c47b41d9e8ce026624767dc0eb6463..8c7af6436279d7ecfcb8e2200f24d6cd7dc67a94 100644 --- a/neonView/PersonEdit_view/PersonEdit_view.aod +++ b/neonView/PersonEdit_view/PersonEdit_view.aod @@ -1,90 +1,90 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>PersonEdit_view</name> - <title>Contact</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>VAADIN:USERS</icon> - <quickEntry v="0" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Edit</name> - <editMode v="true" /> - <showDrawer v="false" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>7a647c90-3a1c-4f8d-9ecd-6bdf35ab2f80</name> - <entityField>ORGANISATION_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>8f7b95e8-e15e-4d9b-960a-ecd142c71c9e</name> - <entityField>SALUTATION</entityField> - </entityFieldLink> - <entityFieldLink> - <name>413db0e9-00e8-4fd0-9bdc-8100509e622f</name> - <entityField>TITLE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ac32ab06-5b8f-460d-b136-384e879dd5c1</name> - <entityField>FIRSTNAME</entityField> - </entityFieldLink> - <entityFieldLink> - <name>7222d731-80e0-4ef1-9761-e31dce4ed782</name> - <entityField>MIDDLENAME</entityField> - </entityFieldLink> - <entityFieldLink> - <name>a5ad1cc7-8e97-4828-8eaa-02d0876af35b</name> - <entityField>LASTNAME</entityField> - </entityFieldLink> - <entityFieldLink> - <name>35861eb9-59c3-4317-8164-ee7c53ce397e</name> - <entityField>GENDER</entityField> - </entityFieldLink> - <entityFieldLink> - <name>74de507e-75e0-4957-a4fb-7070fa3c5a4a</name> - <entityField>DATEOFBIRTH</entityField> - </entityFieldLink> - <entityFieldLink> - <name>d8d04e36-de46-48a3-994a-fa72d1f2ea89</name> - <entityField>LANGUAGE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>f8ec0e41-7ead-4c80-878c-df75ce5fce34</name> - <entityField>STATUS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>16b3b029-eed3-45b7-94b0-446c89d70594</name> - <entityField>DEPARTMENT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>720ba110-faa2-4c64-823b-82a2089f337c</name> - <entityField>CONTACTROLE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>7bad6e30-fda3-4ee4-858c-712a60437397</name> - <entityField>POSITION</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>78dcb8dc-61c3-4cf9-a37b-28dbeeb27001</name> - <entityField>PersAddresses</entityField> - <view>AdressMultiEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>fc64789f-b4c6-401e-86e3-f484451c7689</name> - <entityField>Communications</entityField> - <view>CommunicationMultiEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>520f3056-2a24-4469-a86f-76ba80090829</name> - <entityField>Attributes</entityField> - <view>AttributeRelationMultiEdit_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PersonEdit_view</name> + <title>Contact</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:USERS</icon> + <quickEntry v="0" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Edit</name> + <editMode v="true" /> + <showDrawer v="false" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>7a647c90-3a1c-4f8d-9ecd-6bdf35ab2f80</name> + <entityField>ORGANISATION_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>8f7b95e8-e15e-4d9b-960a-ecd142c71c9e</name> + <entityField>SALUTATION</entityField> + </entityFieldLink> + <entityFieldLink> + <name>413db0e9-00e8-4fd0-9bdc-8100509e622f</name> + <entityField>TITLE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ac32ab06-5b8f-460d-b136-384e879dd5c1</name> + <entityField>FIRSTNAME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>7222d731-80e0-4ef1-9761-e31dce4ed782</name> + <entityField>MIDDLENAME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>a5ad1cc7-8e97-4828-8eaa-02d0876af35b</name> + <entityField>LASTNAME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>35861eb9-59c3-4317-8164-ee7c53ce397e</name> + <entityField>GENDER</entityField> + </entityFieldLink> + <entityFieldLink> + <name>74de507e-75e0-4957-a4fb-7070fa3c5a4a</name> + <entityField>DATEOFBIRTH</entityField> + </entityFieldLink> + <entityFieldLink> + <name>d8d04e36-de46-48a3-994a-fa72d1f2ea89</name> + <entityField>LANGUAGE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>f8ec0e41-7ead-4c80-878c-df75ce5fce34</name> + <entityField>STATUS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>16b3b029-eed3-45b7-94b0-446c89d70594</name> + <entityField>DEPARTMENT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>720ba110-faa2-4c64-823b-82a2089f337c</name> + <entityField>CONTACTROLE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>7bad6e30-fda3-4ee4-858c-712a60437397</name> + <entityField>POSITION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>78dcb8dc-61c3-4cf9-a37b-28dbeeb27001</name> + <entityField>PersAddresses</entityField> + <view>AdressMultiEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>fc64789f-b4c6-401e-86e3-f484451c7689</name> + <entityField>Communications</entityField> + <view>CommunicationMultiEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>520f3056-2a24-4469-a86f-76ba80090829</name> + <entityField>Attributes</entityField> + <view>AttributeRelationMultiEdit_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/PersonFilter_view/PersonFilter_view.aod b/neonView/PersonFilter_view/PersonFilter_view.aod index 8eacdad7de7323e951cb19a53f568e9883fb908f..a12d4b9ea3e3458f3f2014a3e76895ce22c06e9b 100644 --- a/neonView/PersonFilter_view/PersonFilter_view.aod +++ b/neonView/PersonFilter_view/PersonFilter_view.aod @@ -1,82 +1,82 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>PersonFilter_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <dashletConfigurations> - <neonDashletConfiguration> - <name>AllContactsDashlet</name> - <title>Contacts</title> - <description>Show all contacts</description> - <fragment>Person/filter</fragment> - <singleton v="true" /> - <requiresConfiguration v="false" /> - <icon>vaadin:users</icon> - <categories> - <neonDashletCategory> - <name>contactmanagement</name> - <title>Contactmanagement</title> - </neonDashletCategory> - <neonDashletCategory> - <name>person</name> - <title>Contact</title> - </neonDashletCategory> - </categories> - </neonDashletConfiguration> - </dashletConfigurations> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>Persons</name> - <favoriteActionGroup1>campaignActionGroup</favoriteActionGroup1> - <hideActions v="false" /> - <showHeader v="true" /> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>210cc6ab-5123-4d8a-8f2e-a6cd91d494ef</name> - <entityField>#IMAGE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>125d04cc-5c7a-4c38-bd0f-b5d02d21067d</name> - <entityField>SALUTATION</entityField> - <collapse v="false" /> - </neonTableColumn> - <neonTableColumn> - <name>2cdfaf73-d3ee-4ad8-83ea-f50acba0335a</name> - <entityField>TITLE</entityField> - <collapse v="true" /> - </neonTableColumn> - <neonTableColumn> - <name>210cc6ab-5023-4d8a-8f2e-a6cd91d994ef</name> - <entityField>FIRSTNAME</entityField> - <collapse v="true" /> - </neonTableColumn> - <neonTableColumn> - <name>187bcb25-db19-4e35-8723-34764166b7bd</name> - <entityField>LASTNAME</entityField> - </neonTableColumn> - <neonTableColumn> - <name>125d04cc-5c7a-4c38-bd3f-b5d02d21067d</name> - <entityField>ORGANISATION_ID</entityField> - </neonTableColumn> - <neonTableColumn> - <name>0a4cc9be-3946-4863-b3a6-a798ff801c83</name> - <entityField>STANDARD_EMAIL_COMMUNICATION</entityField> - </neonTableColumn> - <neonTableColumn> - <name>1b99eaf7-7ce7-4b7d-bb71-f21e6cae4417</name> - <entityField>STANDARD_PHONE_COMMUNICATION</entityField> - </neonTableColumn> - <neonTableColumn> - <name>4e9d69fc-a072-41b9-a089-0a9c5c1e37c2</name> - <entityField>ADDRESS_ID</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PersonFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <dashletConfigurations> + <neonDashletConfiguration> + <name>AllContactsDashlet</name> + <title>Contacts</title> + <description>Show all contacts</description> + <fragment>Person/filter</fragment> + <singleton v="true" /> + <requiresConfiguration v="false" /> + <icon>vaadin:users</icon> + <categories> + <neonDashletCategory> + <name>contactmanagement</name> + <title>Contactmanagement</title> + </neonDashletCategory> + <neonDashletCategory> + <name>person</name> + <title>Contact</title> + </neonDashletCategory> + </categories> + </neonDashletConfiguration> + </dashletConfigurations> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Persons</name> + <favoriteActionGroup1>campaignActionGroup</favoriteActionGroup1> + <hideActions v="false" /> + <entityField>#ENTITY</entityField> + <showHeader v="true" /> + <columns> + <neonTableColumn> + <name>210cc6ab-5123-4d8a-8f2e-a6cd91d494ef</name> + <entityField>#IMAGE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>125d04cc-5c7a-4c38-bd0f-b5d02d21067d</name> + <entityField>SALUTATION</entityField> + <collapse v="false" /> + </neonTableColumn> + <neonTableColumn> + <name>2cdfaf73-d3ee-4ad8-83ea-f50acba0335a</name> + <entityField>TITLE</entityField> + <collapse v="true" /> + </neonTableColumn> + <neonTableColumn> + <name>210cc6ab-5023-4d8a-8f2e-a6cd91d994ef</name> + <entityField>FIRSTNAME</entityField> + <collapse v="true" /> + </neonTableColumn> + <neonTableColumn> + <name>187bcb25-db19-4e35-8723-34764166b7bd</name> + <entityField>LASTNAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>125d04cc-5c7a-4c38-bd3f-b5d02d21067d</name> + <entityField>ORGANISATION_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>0a4cc9be-3946-4863-b3a6-a798ff801c83</name> + <entityField>STANDARD_EMAIL_COMMUNICATION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>1b99eaf7-7ce7-4b7d-bb71-f21e6cae4417</name> + <entityField>STANDARD_PHONE_COMMUNICATION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>4e9d69fc-a072-41b9-a089-0a9c5c1e37c2</name> + <entityField>ADDRESS_ID</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/PersonLookup_view/PersonLookup_view.aod b/neonView/PersonLookup_view/PersonLookup_view.aod index 7d68f4c10251fd9f3feb1eab1c4fc9090b08cd25..9231d1b29870b4400b260f2752f1bdd4dc48bb53 100644 --- a/neonView/PersonLookup_view/PersonLookup_view.aod +++ b/neonView/PersonLookup_view/PersonLookup_view.aod @@ -1,46 +1,46 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>PersonLookup_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>Persons</name> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>9541c336-10e9-4767-b6e5-52b6108d967a</name> - <entityField>#IMAGE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>876baf47-81c8-477a-951c-18df2dd4d972</name> - <entityField>FIRSTNAME</entityField> - </neonTableColumn> - <neonTableColumn> - <name>fb150402-a576-4e21-855c-91dd7574f353</name> - <entityField>LASTNAME</entityField> - </neonTableColumn> - <neonTableColumn> - <name>9760f1eb-8296-4d29-9afc-45c7440a0dc5</name> - <entityField>ORGANISATION_ID</entityField> - </neonTableColumn> - <neonTableColumn> - <name>768f2294-2c4e-4c71-9992-ee9cea299041</name> - <entityField>STANDARD_PHONE_COMMUNICATION</entityField> - </neonTableColumn> - <neonTableColumn> - <name>eb778e57-1f2d-436e-b22a-e92f7a190606</name> - <entityField>STANDARD_EMAIL_COMMUNICATION</entityField> - </neonTableColumn> - <neonTableColumn> - <name>27d03313-3ec6-438f-b79b-724369316ef3</name> - <entityField>ADDRESS_ID</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PersonLookup_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Persons</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>9541c336-10e9-4767-b6e5-52b6108d967a</name> + <entityField>#IMAGE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>876baf47-81c8-477a-951c-18df2dd4d972</name> + <entityField>FIRSTNAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>fb150402-a576-4e21-855c-91dd7574f353</name> + <entityField>LASTNAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>9760f1eb-8296-4d29-9afc-45c7440a0dc5</name> + <entityField>ORGANISATION_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>768f2294-2c4e-4c71-9992-ee9cea299041</name> + <entityField>STANDARD_PHONE_COMMUNICATION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>eb778e57-1f2d-436e-b22a-e92f7a190606</name> + <entityField>STANDARD_EMAIL_COMMUNICATION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>27d03313-3ec6-438f-b79b-724369316ef3</name> + <entityField>ADDRESS_ID</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/PersonMain_view/PersonMain_view.aod b/neonView/PersonMain_view/PersonMain_view.aod index c839e4c1dfff64a863a8d0c23a7b39dc6dba8a11..04377a5d65098f9fc8b2cc7898adc34fc860b6eb 100644 --- a/neonView/PersonMain_view/PersonMain_view.aod +++ b/neonView/PersonMain_view/PersonMain_view.aod @@ -1,58 +1,58 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>PersonMain_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <masterSlaveLayout> - <name>layout</name> - <master>12865531-5e68-4760-a846-8af7b97f9561</master> - </masterSlaveLayout> - </layout> - <children> - <neonViewReference> - <name>12865531-5e68-4760-a846-8af7b97f9561</name> - <entityField>#ENTITY</entityField> - <view>PersonPreview_view</view> - </neonViewReference> - <neonViewReference> - <name>d674b32c-0493-47ea-a51f-dff5d13d237d</name> - <entityField>Activities</entityField> - <view>ActivityFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>e7b8c90f-dc8d-40f1-b4db-1493f845026f</name> - <entityField>360DegreeObjects</entityField> - <view>360DegreeFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>573d2b77-f948-47bc-bac1-621dd824c697</name> - <entityField>Tasks</entityField> - <view>TaskFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>4b50b784-484f-4cdf-a705-4c356da763fa</name> - <entityField>Documents</entityField> - <view>DocumentFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>cb8ff3df-772b-4c12-8814-f9101295b1ba</name> - <entityField>ObjectTrees</entityField> - <view>ObjectTreeFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>cf989bf6-3e49-44fc-ba98-322aae377da3</name> - <entityField>AttributeTree</entityField> - <view>AttributeRelationTree_view</view> - </neonViewReference> - <neonViewReference> - <name>c2606a8b-eac1-412e-893d-bb788d4a5b5c</name> - <entityField>OtherContacts</entityField> - <view>ContactList_view</view> - </neonViewReference> - <neonViewReference> - <name>5754fc3a-c81c-42ba-90ea-2859b10bb391</name> - <entityField>LogHistoryConsumer</entityField> - <view>LogHistoryFilter_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PersonMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>12865531-5e68-4760-a846-8af7b97f9561</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>12865531-5e68-4760-a846-8af7b97f9561</name> + <entityField>#ENTITY</entityField> + <view>PersonPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>d674b32c-0493-47ea-a51f-dff5d13d237d</name> + <entityField>Activities</entityField> + <view>ActivityFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>e7b8c90f-dc8d-40f1-b4db-1493f845026f</name> + <entityField>360DegreeObjects</entityField> + <view>360DegreeFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>573d2b77-f948-47bc-bac1-621dd824c697</name> + <entityField>Tasks</entityField> + <view>TaskFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>4b50b784-484f-4cdf-a705-4c356da763fa</name> + <entityField>Documents</entityField> + <view>DocumentFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>cb8ff3df-772b-4c12-8814-f9101295b1ba</name> + <entityField>ObjectTrees</entityField> + <view>ObjectTreeFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>cf989bf6-3e49-44fc-ba98-322aae377da3</name> + <entityField>AttributeTree</entityField> + <view>AttributeRelationTree_view</view> + </neonViewReference> + <neonViewReference> + <name>c2606a8b-eac1-412e-893d-bb788d4a5b5c</name> + <entityField>OtherContacts</entityField> + <view>ContactList_view</view> + </neonViewReference> + <neonViewReference> + <name>5754fc3a-c81c-42ba-90ea-2859b10bb391</name> + <entityField>LogHistoryConsumer</entityField> + <view>LogHistoryFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/PersonPreview_view/PersonPreview_view.aod b/neonView/PersonPreview_view/PersonPreview_view.aod index eff1b886601523dc24d025511ec35177ff5b26c3..0129686652cafc5ad7de028c01d3d22f01f0e776 100644 --- a/neonView/PersonPreview_view/PersonPreview_view.aod +++ b/neonView/PersonPreview_view/PersonPreview_view.aod @@ -1,71 +1,71 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>PersonPreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <headerFooterLayout> - <name>layout</name> - <header>Header</header> - </headerFooterLayout> - </layout> - <children> - <cardViewTemplate> - <name>Header</name> - <iconField>PICTURE</iconField> - <titleField>FULL_NAME_fieldGroup</titleField> - <descriptionField>ORGANISATION_ID</descriptionField> - <favoriteAction1>newActivity</favoriteAction1> - <entityField>#ENTITY</entityField> - </cardViewTemplate> - <neonViewReference> - <name>5a1b7683-2fec-4763-9b45-e4c7a18d70fd</name> - <entityField>Communications</entityField> - <view>CommunicationList_view</view> - </neonViewReference> - <neonViewReference> - <name>4c4b1e66-fdc2-469c-a553-244b6dbffbe0</name> - <entityField>PersAddresses</entityField> - <view>AddressList_view</view> - </neonViewReference> - <neonViewReference> - <name>38bd1cc7-8b75-4755-8bb2-0177f02bbef5</name> - <entityField>OrgAddresses</entityField> - <view>AddressList_view</view> - </neonViewReference> - <genericViewTemplate> - <name>Info</name> - <showDrawer v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>f9875d78-3d72-47d3-b729-9cf80d236f6e</name> - <entityField>GENDER</entityField> - </entityFieldLink> - <entityFieldLink> - <name>5d4e0828-b7fe-4f54-a47a-f9b5838fb1ae</name> - <entityField>DATEOFBIRTH</entityField> - </entityFieldLink> - <entityFieldLink> - <name>3aa3e89b-91ce-4607-8d76-53ee309a688f</name> - <entityField>LANGUAGE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>278c4e64-6f0f-4ea9-b683-75f272a6c088</name> - <entityField>STATUS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>8ca0067d-4bfa-45b6-89e8-5c58c4e0d6ec</name> - <entityField>DEPARTMENT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>99904332-fa07-411f-b9e8-7d0ae6918aa6</name> - <entityField>CONTACTROLE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>d5cc98c9-9483-4c2d-b0f3-69e25a0474f3</name> - <entityField>POSITION</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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PersonPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>Header</header> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>Header</name> + <iconField>PICTURE</iconField> + <titleField>FULL_NAME_fieldGroup</titleField> + <descriptionField>ORGANISATION_ID</descriptionField> + <favoriteAction1>newActivity</favoriteAction1> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <neonViewReference> + <name>5a1b7683-2fec-4763-9b45-e4c7a18d70fd</name> + <entityField>Communications</entityField> + <view>CommunicationList_view</view> + </neonViewReference> + <neonViewReference> + <name>4c4b1e66-fdc2-469c-a553-244b6dbffbe0</name> + <entityField>PersAddresses</entityField> + <view>AddressList_view</view> + </neonViewReference> + <neonViewReference> + <name>38bd1cc7-8b75-4755-8bb2-0177f02bbef5</name> + <entityField>OrgAddresses</entityField> + <view>AddressList_view</view> + </neonViewReference> + <genericViewTemplate> + <name>Info</name> + <showDrawer v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>f9875d78-3d72-47d3-b729-9cf80d236f6e</name> + <entityField>GENDER</entityField> + </entityFieldLink> + <entityFieldLink> + <name>5d4e0828-b7fe-4f54-a47a-f9b5838fb1ae</name> + <entityField>DATEOFBIRTH</entityField> + </entityFieldLink> + <entityFieldLink> + <name>3aa3e89b-91ce-4607-8d76-53ee309a688f</name> + <entityField>LANGUAGE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>278c4e64-6f0f-4ea9-b683-75f272a6c088</name> + <entityField>STATUS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>8ca0067d-4bfa-45b6-89e8-5c58c4e0d6ec</name> + <entityField>DEPARTMENT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>99904332-fa07-411f-b9e8-7d0ae6918aa6</name> + <entityField>CONTACTROLE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>d5cc98c9-9483-4c2d-b0f3-69e25a0474f3</name> + <entityField>POSITION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/PersonSimpleList_view/PersonSimpleList_view.aod b/neonView/PersonSimpleList_view/PersonSimpleList_view.aod index 1e1136374ab17eeefce549e59f7f85ed5433a432..8e19ab83993f99e0cc98e64ff384e70aeeeb4c3c 100644 --- a/neonView/PersonSimpleList_view/PersonSimpleList_view.aod +++ b/neonView/PersonSimpleList_view/PersonSimpleList_view.aod @@ -1,47 +1,47 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>PersonSimpleList_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>Persons</name> - <favoriteActionGroup1>campaignActionGroup</favoriteActionGroup1> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>d6207ade-29e7-4af0-ba5f-e9ddd799de7b</name> - <entityField>#IMAGE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>1053d3a7-c5ee-4260-86f6-54e820f53e9f</name> - <entityField>SALUTATION</entityField> - </neonTableColumn> - <neonTableColumn> - <name>a7eb48e2-d2a0-4ddb-b197-74ee77896960</name> - <entityField>TITLE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>302d875b-644d-4f75-b8c2-f99bab8ae88d</name> - <entityField>FIRSTNAME</entityField> - </neonTableColumn> - <neonTableColumn> - <name>eacb1707-191c-4f09-b213-fbe87988c523</name> - <entityField>LASTNAME</entityField> - </neonTableColumn> - <neonTableColumn> - <name>38e8ea31-060d-4a4c-aa70-a6752019dcff</name> - <entityField>STANDARD_EMAIL_COMMUNICATION</entityField> - </neonTableColumn> - <neonTableColumn> - <name>60cb743a-7a1f-4faa-92d6-780bd2ad0564</name> - <entityField>STANDARD_PHONE_COMMUNICATION</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>PersonSimpleList_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Persons</name> + <favoriteActionGroup1>campaignActionGroup</favoriteActionGroup1> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>d6207ade-29e7-4af0-ba5f-e9ddd799de7b</name> + <entityField>#IMAGE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>1053d3a7-c5ee-4260-86f6-54e820f53e9f</name> + <entityField>SALUTATION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>a7eb48e2-d2a0-4ddb-b197-74ee77896960</name> + <entityField>TITLE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>302d875b-644d-4f75-b8c2-f99bab8ae88d</name> + <entityField>FIRSTNAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>eacb1707-191c-4f09-b213-fbe87988c523</name> + <entityField>LASTNAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>38e8ea31-060d-4a4c-aa70-a6752019dcff</name> + <entityField>STANDARD_EMAIL_COMMUNICATION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>60cb743a-7a1f-4faa-92d6-780bd2ad0564</name> + <entityField>STANDARD_PHONE_COMMUNICATION</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/Prod2prodFilter_view/Prod2prodFilter_view.aod b/neonView/Prod2prodFilter_view/Prod2prodFilter_view.aod index 1af9aefe816e97e2b921af49e0877b5e844a14db..ce988ce1ef2d711d9a489fe12a0e85d24b0d1325 100644 --- a/neonView/Prod2prodFilter_view/Prod2prodFilter_view.aod +++ b/neonView/Prod2prodFilter_view/Prod2prodFilter_view.aod @@ -1,37 +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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>Prod2prodFilter_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <treeTableViewTemplate> - <name>PartlistTree</name> - <parentField>DEST_ID</parentField> - <favoriteActionGroup1>alter</favoriteActionGroup1> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>43d3c9b0-21ab-4996-8d24-af74a5ee1e1a</name> - <entityField>PRODUCTCODE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>4a80fcac-b962-4af6-93c4-d2f5626fb623</name> - <entityField>QUANTITY</entityField> - </neonTableColumn> - <neonTableColumn> - <name>2382a57f-7bf9-4057-8c3c-51819a06620f</name> - <entityField>OPTIONAL</entityField> - </neonTableColumn> - <neonTableColumn> - <name>3ce55692-e3ff-4448-b7df-9cc121ca47dc</name> - <entityField>TAKEPRICE</entityField> - </neonTableColumn> - </columns> - </treeTableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>Prod2prodFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <treeTableViewTemplate> + <name>PartlistTree</name> + <parentField>DEST_ID</parentField> + <favoriteActionGroup1>alter</favoriteActionGroup1> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>43d3c9b0-21ab-4996-8d24-af74a5ee1e1a</name> + <entityField>PRODUCTCODE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>4a80fcac-b962-4af6-93c4-d2f5626fb623</name> + <entityField>QUANTITY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>2382a57f-7bf9-4057-8c3c-51819a06620f</name> + <entityField>OPTIONAL</entityField> + </neonTableColumn> + <neonTableColumn> + <name>3ce55692-e3ff-4448-b7df-9cc121ca47dc</name> + <entityField>TAKEPRICE</entityField> + </neonTableColumn> + </columns> + </treeTableViewTemplate> + </children> +</neonView> diff --git a/neonView/ProductEdit_view/ProductEdit_view.aod b/neonView/ProductEdit_view/ProductEdit_view.aod index 7aa52918d62670c48297efd7a109e7bf40f31438..20027b6e81447837ee9425792d3954214e92a3b6 100644 --- a/neonView/ProductEdit_view/ProductEdit_view.aod +++ b/neonView/ProductEdit_view/ProductEdit_view.aod @@ -1,68 +1,68 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>ProductEdit_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Edit</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>d5cfa031-1bce-43b3-b1c1-d79a4c1205dc</name> - <entityField>ADVERTISING</entityField> - </entityFieldLink> - <entityFieldLink> - <name>950b57a7-df15-42a3-9f94-3377ed757ba3</name> - <entityField>GROUPCODEID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>77197b19-54ea-493c-8d12-27391cd54a7a</name> - <entityField>MINSTOCK</entityField> - </entityFieldLink> - <entityFieldLink> - <name>472939e5-a69b-4eba-986f-0b47e72d0e9d</name> - <entityField>ORGANISATION_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>cefb3dc8-8d9b-47c4-a0f8-e78e66303ec7</name> - <entityField>PRODUCTCODE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>0019c5bd-368f-457a-b6e3-dd1d12cbe19e</name> - <entityField>PRODUCTNAME</entityField> - </entityFieldLink> - <entityFieldLink> - <name>5882a13d-3f07-4017-ad5b-042ee49c67d4</name> - <entityField>LANGUAGE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>07f4aa57-24e9-4ce2-8b81-c4a3e8bcbce6</name> - <entityField>INFO</entityField> - </entityFieldLink> - <entityFieldLink> - <name>49b07dd2-1ee1-4b80-88a7-daf4879848d2</name> - <entityField>STATUS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>a068f12a-ed45-4997-9e94-c865ccffee2a</name> - <entityField>UNIT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>0c921c3d-df1a-4794-862b-6d190d6ef04e</name> - <entityField>CONTACT_ID</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>34659538-e8a5-4f76-9710-a322548885ef</name> - <entityField>Attributes</entityField> - <view>AttributeRelationMultiEdit_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>ProductEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Edit</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>d5cfa031-1bce-43b3-b1c1-d79a4c1205dc</name> + <entityField>ADVERTISING</entityField> + </entityFieldLink> + <entityFieldLink> + <name>950b57a7-df15-42a3-9f94-3377ed757ba3</name> + <entityField>GROUPCODEID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>77197b19-54ea-493c-8d12-27391cd54a7a</name> + <entityField>MINSTOCK</entityField> + </entityFieldLink> + <entityFieldLink> + <name>472939e5-a69b-4eba-986f-0b47e72d0e9d</name> + <entityField>ORGANISATION_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>cefb3dc8-8d9b-47c4-a0f8-e78e66303ec7</name> + <entityField>PRODUCTCODE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>0019c5bd-368f-457a-b6e3-dd1d12cbe19e</name> + <entityField>PRODUCTNAME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>5882a13d-3f07-4017-ad5b-042ee49c67d4</name> + <entityField>LANGUAGE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>07f4aa57-24e9-4ce2-8b81-c4a3e8bcbce6</name> + <entityField>INFO</entityField> + </entityFieldLink> + <entityFieldLink> + <name>49b07dd2-1ee1-4b80-88a7-daf4879848d2</name> + <entityField>STATUS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>a068f12a-ed45-4997-9e94-c865ccffee2a</name> + <entityField>UNIT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>0c921c3d-df1a-4794-862b-6d190d6ef04e</name> + <entityField>CONTACT_ID</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>34659538-e8a5-4f76-9710-a322548885ef</name> + <entityField>Attributes</entityField> + <view>AttributeRelationMultiEdit_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/ProductMain_view/ProductMain_view.aod b/neonView/ProductMain_view/ProductMain_view.aod index bea0ee6a47b6f8c20c50789f9874a69f0e250e27..44ff539d6aea525dd5b2f9653fd2b80d7b408649 100644 --- a/neonView/ProductMain_view/ProductMain_view.aod +++ b/neonView/ProductMain_view/ProductMain_view.aod @@ -1,58 +1,58 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>ProductMain_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <masterSlaveLayout> - <name>layout</name> - <master>9ff71d55-84be-411e-9637-5dc0eba6c79e</master> - </masterSlaveLayout> - </layout> - <children> - <neonViewReference> - <name>9ff71d55-84be-411e-9637-5dc0eba6c79e</name> - <entityField>#ENTITY</entityField> - <view>ProductPreview_view</view> - </neonViewReference> - <neonViewReference> - <name>41887933-bb9a-48ce-818d-1db815021a36</name> - <entityField>Activities</entityField> - <view>ActivityFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>754b4efe-3ea7-42de-8e35-c85c3a0b4abf</name> - <entityField>Tasks</entityField> - <view>TaskFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>51f37fe5-91e1-4b76-83b3-be0319e871a4</name> - <entityField>#ENTITY</entityField> - <view>ProductDescription_view</view> - </neonViewReference> - <neonViewReference> - <name>7f416115-ff89-45ca-be10-ed568cac266c</name> - <entityField>ProductLinks</entityField> - <view>Prod2prodFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>11c4c5a0-27fa-4748-a6c6-3a667d2f3d8f</name> - <entityField>Productprices</entityField> - <view>ProductpriceFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>616f7cc3-93e7-41ee-8d38-027dd3d4b299</name> - <entityField>Documents</entityField> - <view>DocumentFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>6ee1258f-b571-45c1-b833-f292361b5a04</name> - <entityField>AttributeTree</entityField> - <view>AttributeRelationTree_view</view> - </neonViewReference> - <neonViewReference> - <name>0faf6a9e-b1f3-452d-b7fd-d0c9e3fc25f8</name> - <entityField>LogHistoryConsumer</entityField> - <view>LogHistoryFilter_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>ProductMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>9ff71d55-84be-411e-9637-5dc0eba6c79e</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>9ff71d55-84be-411e-9637-5dc0eba6c79e</name> + <entityField>#ENTITY</entityField> + <view>ProductPreview_view</view> + </neonViewReference> + <neonViewReference> + <name>41887933-bb9a-48ce-818d-1db815021a36</name> + <entityField>Activities</entityField> + <view>ActivityFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>754b4efe-3ea7-42de-8e35-c85c3a0b4abf</name> + <entityField>Tasks</entityField> + <view>TaskFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>51f37fe5-91e1-4b76-83b3-be0319e871a4</name> + <entityField>#ENTITY</entityField> + <view>ProductDescription_view</view> + </neonViewReference> + <neonViewReference> + <name>7f416115-ff89-45ca-be10-ed568cac266c</name> + <entityField>ProductLinks</entityField> + <view>Prod2prodFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>11c4c5a0-27fa-4748-a6c6-3a667d2f3d8f</name> + <entityField>Productprices</entityField> + <view>ProductpriceFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>616f7cc3-93e7-41ee-8d38-027dd3d4b299</name> + <entityField>Documents</entityField> + <view>DocumentFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>6ee1258f-b571-45c1-b833-f292361b5a04</name> + <entityField>AttributeTree</entityField> + <view>AttributeRelationTree_view</view> + </neonViewReference> + <neonViewReference> + <name>0faf6a9e-b1f3-452d-b7fd-d0c9e3fc25f8</name> + <entityField>LogHistoryConsumer</entityField> + <view>LogHistoryFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod b/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod index 19a4436db74b4df7216d312685839c1b7bda5ec4..0ea384be52447172587efbf94eee3a212af5db7d 100644 --- a/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod +++ b/neonView/ProductpriceFilter_view/ProductpriceFilter_view.aod @@ -1,55 +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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>ProductpriceFilter_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>Prices</name> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>44311686-a24a-4cf0-87a0-6e354b3f457a</name> - <entityField>IMAGE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>695ce7be-d738-48a9-833d-e8815c6eff74</name> - <entityField>PRICELIST</entityField> - </neonTableColumn> - <neonTableColumn> - <name>472a96ca-10ff-49c7-b2ae-6550e04c4e6f</name> - <entityField>VALID_FROM</entityField> - </neonTableColumn> - <neonTableColumn> - <name>56b22986-0b94-4e7f-a0e8-c2a0a7281088</name> - <entityField>VALID_TO</entityField> - </neonTableColumn> - <neonTableColumn> - <name>56902ebb-b48b-42f9-b867-fb2b07527461</name> - <entityField>PRICE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>8879e46d-fa53-4769-8bcf-15b65fdf9967</name> - <entityField>CURRENCY</entityField> - </neonTableColumn> - <neonTableColumn> - <name>15a669d9-b089-4134-89a0-129de6e1e68c</name> - <entityField>BUYSELL</entityField> - </neonTableColumn> - <neonTableColumn> - <name>e27ad433-ca4f-4a54-8722-75c9055a202b</name> - <entityField>FROMQUANTITY</entityField> - </neonTableColumn> - <neonTableColumn> - <name>981f29b1-b4c5-4591-8064-21a72f339179</name> - <entityField>VAT</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>ProductpriceFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Prices</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>44311686-a24a-4cf0-87a0-6e354b3f457a</name> + <entityField>IMAGE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>695ce7be-d738-48a9-833d-e8815c6eff74</name> + <entityField>PRICELIST</entityField> + </neonTableColumn> + <neonTableColumn> + <name>472a96ca-10ff-49c7-b2ae-6550e04c4e6f</name> + <entityField>VALID_FROM</entityField> + </neonTableColumn> + <neonTableColumn> + <name>56b22986-0b94-4e7f-a0e8-c2a0a7281088</name> + <entityField>VALID_TO</entityField> + </neonTableColumn> + <neonTableColumn> + <name>56902ebb-b48b-42f9-b867-fb2b07527461</name> + <entityField>PRICE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>8879e46d-fa53-4769-8bcf-15b65fdf9967</name> + <entityField>CURRENCY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>15a669d9-b089-4134-89a0-129de6e1e68c</name> + <entityField>BUYSELL</entityField> + </neonTableColumn> + <neonTableColumn> + <name>e27ad433-ca4f-4a54-8722-75c9055a202b</name> + <entityField>FROMQUANTITY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>981f29b1-b4c5-4591-8064-21a72f339179</name> + <entityField>VAT</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod b/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod index 9d9bef97dfc888c3202b6d6c207c3d3cbf4bf53c..9fa83e1494ed07bcea6728ba922e2345ccf6b478 100644 --- a/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod +++ b/neonView/ProductpriceRelation_view/ProductpriceRelation_view.aod @@ -1,58 +1,58 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>ProductpriceRelation_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>PriceRelations</name> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>44311686-a24a-4cf0-87a0-6e354b3f457a</name> - <entityField>IMAGE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>695ce7be-d738-48a9-833d-e8815c6eff74</name> - <entityField>PRODUCT_ID</entityField> - </neonTableColumn> - <neonTableColumn> - <name>472a96ca-10ff-49c7-b2ae-6550e04c4e6f</name> - <entityField>VALID_FROM</entityField> - </neonTableColumn> - <neonTableColumn> - <name>56b22986-0b94-4e7f-a0e8-c2a0a7281088</name> - <entityField>VALID_TO</entityField> - </neonTableColumn> - <neonTableColumn> - <name>56902ebb-b48b-42f9-b867-fb2b07527461</name> - <entityField>PRICE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>8879e46d-fa53-4769-8bcf-15b65fdf9967</name> - <entityField>CURRENCY</entityField> - </neonTableColumn> - <neonTableColumn> - <name>15a669d9-b089-4134-89a0-129de6e1e68c</name> - <entityField>BUYSELL</entityField> - </neonTableColumn> - <neonTableColumn> - <name>e27ad433-ca4f-4a54-8722-75c9055a202b</name> - <entityField>FROMQUANTITY</entityField> - </neonTableColumn> - <neonTableColumn> - <name>981f29b1-b4c5-4591-8064-21a72f339179</name> - <entityField>VAT</entityField> - </neonTableColumn> - <neonTableColumn> - <name>51a923d8-3893-409b-869e-a4ad9704aa03</name> - <entityField>PRICELIST</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </children> -</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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>ProductpriceRelation_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>PriceRelations</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>44311686-a24a-4cf0-87a0-6e354b3f457a</name> + <entityField>IMAGE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>695ce7be-d738-48a9-833d-e8815c6eff74</name> + <entityField>PRODUCT_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>472a96ca-10ff-49c7-b2ae-6550e04c4e6f</name> + <entityField>VALID_FROM</entityField> + </neonTableColumn> + <neonTableColumn> + <name>56b22986-0b94-4e7f-a0e8-c2a0a7281088</name> + <entityField>VALID_TO</entityField> + </neonTableColumn> + <neonTableColumn> + <name>56902ebb-b48b-42f9-b867-fb2b07527461</name> + <entityField>PRICE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>8879e46d-fa53-4769-8bcf-15b65fdf9967</name> + <entityField>CURRENCY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>15a669d9-b089-4134-89a0-129de6e1e68c</name> + <entityField>BUYSELL</entityField> + </neonTableColumn> + <neonTableColumn> + <name>e27ad433-ca4f-4a54-8722-75c9055a202b</name> + <entityField>FROMQUANTITY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>981f29b1-b4c5-4591-8064-21a72f339179</name> + <entityField>VAT</entityField> + </neonTableColumn> + <neonTableColumn> + <name>51a923d8-3893-409b-869e-a4ad9704aa03</name> + <entityField>PRICELIST</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/RoleEdit_view/RoleEdit_view.aod b/neonView/RoleEdit_view/RoleEdit_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..1a7a3e91b8eb726b78230ae25baa444a5e3f7630 --- /dev/null +++ b/neonView/RoleEdit_view/RoleEdit_view.aod @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>RoleEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>13372a89-9e3c-441f-a80a-2ebb2dd0d54d</name> + <entityField>ROLETITLE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>2818c096-b602-406d-8765-ec85356da84c</name> + <entityField>ROLETYPE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>c1008a40-23d4-43f9-a5f4-e96b9ad4e480</name> + <entityField>ROLEDESCRIPTION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/RoleFilter_view/RoleFilter_view.aod b/neonView/RoleFilter_view/RoleFilter_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..efd3cf70642531944ae33db34a85e54699a06cd4 --- /dev/null +++ b/neonView/RoleFilter_view/RoleFilter_view.aod @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>RoleFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Table</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>29a4128c-c677-4b16-a167-febb20277a23</name> + <entityField>#ICON</entityField> + </neonTableColumn> + <neonTableColumn> + <name>e6d9050e-3139-48cc-b186-085dab1cec89</name> + <entityField>ROLETITLE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>01743397-32b2-4c8a-b947-ba077baf311d</name> + <entityField>ROLETYPE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>7b269530-309a-4599-a392-f6e2651ccb65</name> + <entityField>ROLEDESCRIPTION</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/RoleMain_view/RoleMain_view.aod b/neonView/RoleMain_view/RoleMain_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..3bb133b9f0d0af21545266166b64a43e176e4c78 --- /dev/null +++ b/neonView/RoleMain_view/RoleMain_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>RoleMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>f848bd88-b7b0-46c1-948b-0db0d287ed2a</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>f848bd88-b7b0-46c1-948b-0db0d287ed2a</name> + <entityField>#ENTITY</entityField> + <view>RolePreview_view</view> + </neonViewReference> + <neonViewReference> + <name>58377137-b4fa-40db-8b73-fb14ad4a35b8</name> + <entityField>PermissionOverviews</entityField> + <view>PermissionOverviewFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>269c93e8-4bfd-4470-82a6-cf70d417c5d1</name> + <entityField>Permissions</entityField> + <view>PermissionDetailFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/RolePreview_view/RolePreview_view.aod b/neonView/RolePreview_view/RolePreview_view.aod new file mode 100644 index 0000000000000000000000000000000000000000..520e945404f54891c74746ccf1eb3d87a33a802c --- /dev/null +++ b/neonView/RolePreview_view/RolePreview_view.aod @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>RolePreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <cardViewTemplate> + <name>Card</name> + <iconField>#ICON</iconField> + <titleField>ROLETITLE</titleField> + <subtitleField>USERCOUNT</subtitleField> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>Generic</name> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>2530297a-bcf1-4743-8089-9b1ac411299a</name> + <entityField>ROLEDESCRIPTION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/SalesprojectCompetitionPreview_view/SalesprojectCompetitionPreview_view.aod b/neonView/SalesprojectCompetitionPreview_view/SalesprojectCompetitionPreview_view.aod index a49d5d09c50bdab00dca6c131427d0bfae3c02b1..b36a9970f54d7cc90102f1377c27d062bee24df6 100644 --- a/neonView/SalesprojectCompetitionPreview_view/SalesprojectCompetitionPreview_view.aod +++ b/neonView/SalesprojectCompetitionPreview_view/SalesprojectCompetitionPreview_view.aod @@ -1,49 +1,49 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>SalesprojectCompetitionPreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <headerFooterLayout> - <name>layout</name> - <header>Header</header> - </headerFooterLayout> - </layout> - <children> - <cardViewTemplate> - <name>Header</name> - <iconField>IMAGE</iconField> - <titleField>CONTACT_ID</titleField> - <descriptionField>INFO</descriptionField> - <entityField>#ENTITY</entityField> - </cardViewTemplate> - <genericViewTemplate> - <name>Info</name> - <showDrawer v="true" /> - <drawerCaption>Details</drawerCaption> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>b8f0210d-21fe-4ee8-9364-06f7369a0ef9</name> - <entityField>PHASE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>33d74022-ccf9-47e7-8e24-6a1cedb1274e</name> - <entityField>STATUS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>0519da18-4079-422a-9b65-9ab6dff01f1a</name> - <entityField>DATE_CANCELLED</entityField> - </entityFieldLink> - <entityFieldLink> - <name>1c73d653-0734-4fc7-9965-5b4f35288e02</name> - <entityField>REASON</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>a0ff837d-f2f8-4e14-8246-3acdd6653be0</name> - <entityField>Attributes</entityField> - <view>AttributeRelationPreviewList</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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>SalesprojectCompetitionPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>Header</header> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>Header</name> + <iconField>IMAGE</iconField> + <titleField>CONTACT_ID</titleField> + <descriptionField>INFO</descriptionField> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>Info</name> + <showDrawer v="true" /> + <drawerCaption>Details</drawerCaption> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>b8f0210d-21fe-4ee8-9364-06f7369a0ef9</name> + <entityField>PHASE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>33d74022-ccf9-47e7-8e24-6a1cedb1274e</name> + <entityField>STATUS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>0519da18-4079-422a-9b65-9ab6dff01f1a</name> + <entityField>DATE_CANCELLED</entityField> + </entityFieldLink> + <entityFieldLink> + <name>1c73d653-0734-4fc7-9965-5b4f35288e02</name> + <entityField>REASON</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>a0ff837d-f2f8-4e14-8246-3acdd6653be0</name> + <entityField>Attributes</entityField> + <view>AttributeRelationPreviewList</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod b/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod index b259c9d69e6cd164d272bb9e7da686c512c4f89e..b961c8e1c49243aa5c53a7ff62016f631a4b2653 100644 --- a/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod +++ b/neonView/SalesprojectEdit_view/SalesprojectEdit_view.aod @@ -1,71 +1,71 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>SalesprojectEdit_view</name> - <title>Salesproject</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <icon>VAADIN:FILTER</icon> - <quickEntry v="4" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Edit</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>2bc931ef-03f4-4812-b75f-70070c3dc849</name> - <entityField>PROJECTTITLE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>a68c2b51-4b0d-46b0-b97e-dc87d168cf0a</name> - <entityField>PROJECTCODE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>d0a2027b-1796-4c5c-82f5-6fdb8f178ab5</name> - <entityField>CONTACT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ceaa6824-a100-4552-a3a7-50a84faadaf9</name> - <entityField>INFO</entityField> - </entityFieldLink> - <entityFieldLink> - <name>426a20c1-5d79-417b-bab1-d3100fabb25b</name> - <entityField>STATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>373ba27b-5f27-4c5d-865e-da50447124fa</name> - <entityField>REASONS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>c00b2121-c44d-41a1-8c32-e2339b4dd234</name> - <entityField>PHASE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>13ad6d3f-3a5d-4385-aae6-c454ab7531f4</name> - <entityField>STARTDATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ed4308b5-dd5a-49a1-b748-9a2980291d56</name> - <entityField>ENDDATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>5b3c3dc2-4ca5-45c5-96e5-7196a99dcdce</name> - <entityField>VOLUME</entityField> - </entityFieldLink> - <entityFieldLink> - <name>3836ef6b-64c4-4e0e-8cd6-88f784275b2f</name> - <entityField>PROBABILITY</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>fc97f8c8-ffd0-4d67-b331-eab37ef1dc2b</name> - <entityField>Attributes</entityField> - <view>AttributeRelationMultiEdit_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>SalesprojectEdit_view</name> + <title>Salesproject</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <icon>VAADIN:FILTER</icon> + <quickEntry v="4" /> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Edit</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>2bc931ef-03f4-4812-b75f-70070c3dc849</name> + <entityField>PROJECTTITLE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>a68c2b51-4b0d-46b0-b97e-dc87d168cf0a</name> + <entityField>PROJECTCODE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>d0a2027b-1796-4c5c-82f5-6fdb8f178ab5</name> + <entityField>CONTACT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ceaa6824-a100-4552-a3a7-50a84faadaf9</name> + <entityField>INFO</entityField> + </entityFieldLink> + <entityFieldLink> + <name>426a20c1-5d79-417b-bab1-d3100fabb25b</name> + <entityField>STATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>373ba27b-5f27-4c5d-865e-da50447124fa</name> + <entityField>REASONS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>c00b2121-c44d-41a1-8c32-e2339b4dd234</name> + <entityField>PHASE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>13ad6d3f-3a5d-4385-aae6-c454ab7531f4</name> + <entityField>STARTDATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ed4308b5-dd5a-49a1-b748-9a2980291d56</name> + <entityField>ENDDATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>5b3c3dc2-4ca5-45c5-96e5-7196a99dcdce</name> + <entityField>VOLUME</entityField> + </entityFieldLink> + <entityFieldLink> + <name>3836ef6b-64c4-4e0e-8cd6-88f784275b2f</name> + <entityField>PROBABILITY</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>fc97f8c8-ffd0-4d67-b331-eab37ef1dc2b</name> + <entityField>Attributes</entityField> + <view>AttributeRelationMultiEdit_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod b/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod index ab16cc92a394dc4a9e0101c9937e2f8267e103ff..72c6b1886e9e4afb22b728abde9eb0bb6aeb7170 100644 --- a/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod +++ b/neonView/SalesprojectFilter_view/SalesprojectFilter_view.aod @@ -1,88 +1,88 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>SalesprojectFilter_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <dashletConfigurations> - <neonDashletConfiguration> - <name>AllSalesprojectDashlet</name> - <title>Salesprojects</title> - <description>Show all salesprojects</description> - <fragment>Salesproject/filter</fragment> - <singleton v="true" /> - <requiresConfiguration v="false" /> - <icon>vaadin:filter</icon> - <categories> - <neonDashletCategory> - <name>sales</name> - <title>Sales</title> - </neonDashletCategory> - <neonDashletCategory> - <name>salesproject</name> - <title>Salesproject</title> - </neonDashletCategory> - </categories> - </neonDashletConfiguration> - <neonDashletConfiguration> - <name>OpenSalesprojectsDashlet</name> - <title>Open salesprojects</title> - <description>Show open salesprojects</description> - <fragment>Salesproject/filter?search=W3sibmFtZSI6IlNUQVRFIiwib3BlcmF0b3IiOiJFUVVBTCIsInZhbHVlIjoiMjViMGFjNzctZWY5Mi00ODA5LTgwMmUtYmI5ZDg3ODJmODY1IiwiY29udGVudFR5cGUiOiJURVhUIn1d</fragment> - <singleton v="true" /> - <requiresConfiguration v="false" /> - <icon>vaadin:filter</icon> - <categories> - <neonDashletCategory> - <name>sales</name> - <title>Sales</title> - </neonDashletCategory> - <neonDashletCategory> - <name>salesproject</name> - <title>Salesproject</title> - </neonDashletCategory> - </categories> - </neonDashletConfiguration> - </dashletConfigurations> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>Salesprojects</name> - <entityField>#ENTITY</entityField> - <title></title> - <columns> - <neonTableColumn> - <name>2cbd6486-e1e4-4660-94f9-1b71e29b11ba</name> - <entityField>IMAGE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>6702bb75-1c57-42a7-9cf0-acd7cd8515f5</name> - <entityField>CONTACT_ID</entityField> - </neonTableColumn> - <neonTableColumn> - <name>9f6b967e-5140-420f-84ca-2273920221bd</name> - <entityField>PROJECTTITLE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>fec843c3-f7c0-42c7-8295-50386651edb2</name> - <entityField>STARTDATE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>4cc3c3f1-6f86-434d-8d1d-32a965aa76b2</name> - <entityField>ENDDATE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>2689fee8-bebb-4d7c-b11e-4a7310664977</name> - <entityField>PHASE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>52a851b0-9059-4d57-8ff5-335c819359e8</name> - <entityField>STATE</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>SalesprojectFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <dashletConfigurations> + <neonDashletConfiguration> + <name>AllSalesprojectDashlet</name> + <title>Salesprojects</title> + <description>Show all salesprojects</description> + <fragment>Salesproject/filter</fragment> + <singleton v="true" /> + <requiresConfiguration v="false" /> + <icon>vaadin:filter</icon> + <categories> + <neonDashletCategory> + <name>sales</name> + <title>Sales</title> + </neonDashletCategory> + <neonDashletCategory> + <name>salesproject</name> + <title>Salesproject</title> + </neonDashletCategory> + </categories> + </neonDashletConfiguration> + <neonDashletConfiguration> + <name>OpenSalesprojectsDashlet</name> + <title>Open salesprojects</title> + <description>Show open salesprojects</description> + <fragment>Salesproject/filter?search=W3sibmFtZSI6IlNUQVRFIiwib3BlcmF0b3IiOiJFUVVBTCIsInZhbHVlIjoiMjViMGFjNzctZWY5Mi00ODA5LTgwMmUtYmI5ZDg3ODJmODY1IiwiY29udGVudFR5cGUiOiJURVhUIn1d</fragment> + <singleton v="true" /> + <requiresConfiguration v="false" /> + <icon>vaadin:filter</icon> + <categories> + <neonDashletCategory> + <name>sales</name> + <title>Sales</title> + </neonDashletCategory> + <neonDashletCategory> + <name>salesproject</name> + <title>Salesproject</title> + </neonDashletCategory> + </categories> + </neonDashletConfiguration> + </dashletConfigurations> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Salesprojects</name> + <entityField>#ENTITY</entityField> + <title></title> + <columns> + <neonTableColumn> + <name>2cbd6486-e1e4-4660-94f9-1b71e29b11ba</name> + <entityField>IMAGE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>6702bb75-1c57-42a7-9cf0-acd7cd8515f5</name> + <entityField>CONTACT_ID</entityField> + </neonTableColumn> + <neonTableColumn> + <name>9f6b967e-5140-420f-84ca-2273920221bd</name> + <entityField>PROJECTTITLE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>fec843c3-f7c0-42c7-8295-50386651edb2</name> + <entityField>STARTDATE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>4cc3c3f1-6f86-434d-8d1d-32a965aa76b2</name> + <entityField>ENDDATE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>2689fee8-bebb-4d7c-b11e-4a7310664977</name> + <entityField>PHASE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>52a851b0-9059-4d57-8ff5-335c819359e8</name> + <entityField>STATE</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/TaskEdit_view/TaskEdit_view.aod b/neonView/TaskEdit_view/TaskEdit_view.aod index d0995eb3aba18df0dc69dcdef0e0cfc665ea7165..11e5be41cb21ff7d265807345517101cf5124fb2 100644 --- a/neonView/TaskEdit_view/TaskEdit_view.aod +++ b/neonView/TaskEdit_view/TaskEdit_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>TaskEdit_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <genericViewTemplate> - <name>Edit</name> - <editMode v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>fb5768fe-2dd2-45cd-8d21-f20af279f409</name> - <entityField>SUBJECT</entityField> - </entityFieldLink> - <entityFieldLink> - <name>b31bb2ab-22a6-4bc6-8b6c-d73a1c43283f</name> - <entityField>DESCRIPTION</entityField> - </entityFieldLink> - <entityFieldLink> - <name>b5d6e9ea-355f-49f8-bcc2-f3efd44adb19</name> - <entityField>START_DATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>511acbd5-4ab6-44a9-932d-df4f201896a5</name> - <entityField>MATURITY_DATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>05c54fab-56b8-4cea-8b66-ba26e5dd16cd</name> - <entityField>STATUS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>5fd464a1-d394-4f83-ba6a-386984a5df49</name> - <entityField>PROGRESS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>0f600024-eb83-445c-8eb9-62bcf9e95313</name> - <entityField>PRIORITY</entityField> - </entityFieldLink> - <entityFieldLink> - <name>71d2b122-1687-454a-ae60-7e68aa83106c</name> - <entityField>PROTECTIONLEVEL</entityField> - </entityFieldLink> - <entityFieldLink> - <name>fd41b0ee-cae4-40b5-8aad-45740f4d6268</name> - <entityField>REQUESTOR_CONTACT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>8428cbf6-7df0-4f7e-b6d6-5ab17e266028</name> - <entityField>EDITOR_CONTACT_ID</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>ee35d86f-aef9-4ebd-b90a-d31b32cc3d5f</name> - <entityField>Links</entityField> - <view>TaskLinkMultiEdit_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>TaskEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Edit</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>fb5768fe-2dd2-45cd-8d21-f20af279f409</name> + <entityField>SUBJECT</entityField> + </entityFieldLink> + <entityFieldLink> + <name>b31bb2ab-22a6-4bc6-8b6c-d73a1c43283f</name> + <entityField>DESCRIPTION</entityField> + </entityFieldLink> + <entityFieldLink> + <name>b5d6e9ea-355f-49f8-bcc2-f3efd44adb19</name> + <entityField>START_DATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>511acbd5-4ab6-44a9-932d-df4f201896a5</name> + <entityField>MATURITY_DATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>05c54fab-56b8-4cea-8b66-ba26e5dd16cd</name> + <entityField>STATUS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>5fd464a1-d394-4f83-ba6a-386984a5df49</name> + <entityField>PROGRESS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>0f600024-eb83-445c-8eb9-62bcf9e95313</name> + <entityField>PRIORITY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>71d2b122-1687-454a-ae60-7e68aa83106c</name> + <entityField>PROTECTIONLEVEL</entityField> + </entityFieldLink> + <entityFieldLink> + <name>fd41b0ee-cae4-40b5-8aad-45740f4d6268</name> + <entityField>REQUESTOR_CONTACT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>8428cbf6-7df0-4f7e-b6d6-5ab17e266028</name> + <entityField>EDITOR_CONTACT_ID</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>ee35d86f-aef9-4ebd-b90a-d31b32cc3d5f</name> + <entityField>Links</entityField> + <view>TaskLinkMultiEdit_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/TaskFilter_view/TaskFilter_view.aod b/neonView/TaskFilter_view/TaskFilter_view.aod index 268c1b42d833821c2443c0d287c7ce8537c5f3c1..f9388e1832372893ea2a7dc1316f7a34f6069982 100644 --- a/neonView/TaskFilter_view/TaskFilter_view.aod +++ b/neonView/TaskFilter_view/TaskFilter_view.aod @@ -1,99 +1,99 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>TaskFilter_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <dashletConfigurations> - <neonDashletConfiguration> - <name>mytasks</name> - <title>My tasks</title> - <description>Show my tasks</description> - <fragment>Task/filter</fragment> - <singleton v="true" /> - <requiresConfiguration v="false" /> - <icon>VAADIN:TASKS</icon> - <categories> - <neonDashletCategory> - <name>tasks</name> - <title>Tasks</title> - </neonDashletCategory> - </categories> - <parameters> - <neonDashletParameter> - <name>FilterOnlyOwnTask_param</name> - <value>true</value> - </neonDashletParameter> - </parameters> - </neonDashletConfiguration> - </dashletConfigurations> - <layout> - <groupLayout> - <name>layout</name> - </groupLayout> - </layout> - <children> - <timelineViewTemplate> - <name>TasksTimeline</name> - <dateField>MATURITY_DATE</dateField> - <titleField>SUBJECT_DETAILS</titleField> - <descriptionField>DESCRIPTION</descriptionField> - <iconIdField>PRIORITY_ICON</iconIdField> - <entityField>#ENTITY</entityField> - </timelineViewTemplate> - <tableViewTemplate> - <name>TasksTable</name> - <entityField>#ENTITY</entityField> - <title></title> - <columns> - <neonTableColumn> - <name>3cd319ea-5a06-409c-a7ce-1c87beff62d2</name> - <entityField>PRIORITY_ICON</entityField> - </neonTableColumn> - <neonTableColumn> - <name>591cd079-a8e9-49aa-8a2d-afb643aef079</name> - <entityField>SUBJECT</entityField> - <expandRatio v="100" /> - </neonTableColumn> - <neonTableColumn> - <name>5d11add4-d939-4c8e-9633-efd0c2991837</name> - <entityField>PRIORITY</entityField> - </neonTableColumn> - <neonTableColumn> - <name>154182d8-bc66-4901-a423-7d3a375d4154</name> - <entityField>MATURITY_DATE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>b92dba41-58a2-4c95-aeb4-235c5eaffad7</name> - <entityField>STATUS</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - <treeTableViewTemplate> - <name>TasksTreeTable</name> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>3cd319ea-5a06-409c-a7ce-1c87beff62d2</name> - <entityField>PRIORITY_ICON</entityField> - </neonTableColumn> - <neonTableColumn> - <name>591cd079-a8e9-49aa-8a2d-afb643aef079</name> - <entityField>SUBJECT</entityField> - <expandRatio v="100" /> - </neonTableColumn> - <neonTableColumn> - <name>5d11add4-d939-4c8e-9633-efd0c2991837</name> - <entityField>PRIORITY</entityField> - </neonTableColumn> - <neonTableColumn> - <name>abba0283-ace9-41f2-8b98-df149c2feaf9</name> - <entityField>MATURITY_DATE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>b92dba41-58a2-4c95-aeb4-235c5eaffad7</name> - <entityField>STATUS</entityField> - </neonTableColumn> - </columns> - </treeTableViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>TaskFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterable v="true" /> + <dashletConfigurations> + <neonDashletConfiguration> + <name>mytasks</name> + <title>My tasks</title> + <description>Show my tasks</description> + <fragment>Task/filter</fragment> + <singleton v="true" /> + <requiresConfiguration v="false" /> + <icon>VAADIN:TASKS</icon> + <categories> + <neonDashletCategory> + <name>tasks</name> + <title>Tasks</title> + </neonDashletCategory> + </categories> + <parameters> + <neonDashletParameter> + <name>FilterOnlyOwnTask_param</name> + <value>true</value> + </neonDashletParameter> + </parameters> + </neonDashletConfiguration> + </dashletConfigurations> + <layout> + <groupLayout> + <name>layout</name> + </groupLayout> + </layout> + <children> + <timelineViewTemplate> + <name>TasksTimeline</name> + <dateField>MATURITY_DATE</dateField> + <titleField>SUBJECT_DETAILS</titleField> + <descriptionField>DESCRIPTION</descriptionField> + <iconIdField>PRIORITY_ICON</iconIdField> + <entityField>#ENTITY</entityField> + </timelineViewTemplate> + <tableViewTemplate> + <name>TasksTable</name> + <entityField>#ENTITY</entityField> + <title></title> + <columns> + <neonTableColumn> + <name>3cd319ea-5a06-409c-a7ce-1c87beff62d2</name> + <entityField>PRIORITY_ICON</entityField> + </neonTableColumn> + <neonTableColumn> + <name>591cd079-a8e9-49aa-8a2d-afb643aef079</name> + <entityField>SUBJECT</entityField> + <expandRatio v="100" /> + </neonTableColumn> + <neonTableColumn> + <name>5d11add4-d939-4c8e-9633-efd0c2991837</name> + <entityField>PRIORITY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>154182d8-bc66-4901-a423-7d3a375d4154</name> + <entityField>MATURITY_DATE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>b92dba41-58a2-4c95-aeb4-235c5eaffad7</name> + <entityField>STATUS</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + <treeTableViewTemplate> + <name>TasksTreeTable</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>3cd319ea-5a06-409c-a7ce-1c87beff62d2</name> + <entityField>PRIORITY_ICON</entityField> + </neonTableColumn> + <neonTableColumn> + <name>591cd079-a8e9-49aa-8a2d-afb643aef079</name> + <entityField>SUBJECT</entityField> + <expandRatio v="100" /> + </neonTableColumn> + <neonTableColumn> + <name>5d11add4-d939-4c8e-9633-efd0c2991837</name> + <entityField>PRIORITY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>abba0283-ace9-41f2-8b98-df149c2feaf9</name> + <entityField>MATURITY_DATE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>b92dba41-58a2-4c95-aeb4-235c5eaffad7</name> + <entityField>STATUS</entityField> + </neonTableColumn> + </columns> + </treeTableViewTemplate> + </children> +</neonView> diff --git a/neonView/TaskMainPreview_view/TaskMainPreview_view.aod b/neonView/TaskMainPreview_view/TaskMainPreview_view.aod index eabc0658f245ab06e0985c84158f627434bc73bf..045afbcc2e5316ed6b595ed20a8e0bd8a35cd088 100644 --- a/neonView/TaskMainPreview_view/TaskMainPreview_view.aod +++ b/neonView/TaskMainPreview_view/TaskMainPreview_view.aod @@ -1,51 +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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>TaskMainPreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <cardViewTemplate> - <name>Header</name> - <iconField>PRIORITY_ICON</iconField> - <titleField>SUBJECT</titleField> - <descriptionField>STATUS</descriptionField> - <favoriteAction1>newActivity</favoriteAction1> - <entityField>#ENTITY</entityField> - </cardViewTemplate> - <genericViewTemplate> - <name>Info</name> - <showDrawer v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>f988850e-53ed-443d-bd3d-16946eba656e</name> - <entityField>START_DATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>dda6aefc-9d4f-4d93-9a45-bc97a278c050</name> - <entityField>MATURITY_DATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>a2c82cd5-6dcd-42aa-b650-85369f4e8d39</name> - <entityField>PROGRESS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ebdffed8-4999-4ec1-ac4d-c22514dfed0c</name> - <entityField>PRIORITY</entityField> - </entityFieldLink> - <entityFieldLink> - <name>05de9afc-429e-46a8-8e3b-2ff689ed090e</name> - <entityField>REQUESTOR_CONTACT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>bbf1a736-acf9-4b41-9df9-5675fc6d8943</name> - <entityField>EDITOR_CONTACT_ID</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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>TaskMainPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <cardViewTemplate> + <name>Header</name> + <iconField>PRIORITY_ICON</iconField> + <titleField>SUBJECT</titleField> + <descriptionField>STATUS</descriptionField> + <favoriteAction1>newActivity</favoriteAction1> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>Info</name> + <showDrawer v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>f988850e-53ed-443d-bd3d-16946eba656e</name> + <entityField>START_DATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>dda6aefc-9d4f-4d93-9a45-bc97a278c050</name> + <entityField>MATURITY_DATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>a2c82cd5-6dcd-42aa-b650-85369f4e8d39</name> + <entityField>PROGRESS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ebdffed8-4999-4ec1-ac4d-c22514dfed0c</name> + <entityField>PRIORITY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>05de9afc-429e-46a8-8e3b-2ff689ed090e</name> + <entityField>REQUESTOR_CONTACT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>bbf1a736-acf9-4b41-9df9-5675fc6d8943</name> + <entityField>EDITOR_CONTACT_ID</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/TaskMain_view/TaskMain_view.aod b/neonView/TaskMain_view/TaskMain_view.aod index 05d95e244e2f26139d98380997f77a37dc8c9e15..06d66f34d0c96cdeebfd8d6b5a3289e10a6636b1 100644 --- a/neonView/TaskMain_view/TaskMain_view.aod +++ b/neonView/TaskMain_view/TaskMain_view.aod @@ -1,50 +1,50 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>TaskMain_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <masterSlaveLayout> - <name>layout</name> - <master>339e160e-e482-4be2-9550-fc06131fbffe</master> - </masterSlaveLayout> - </layout> - <children> - <neonViewReference> - <name>339e160e-e482-4be2-9550-fc06131fbffe</name> - <entityField>#ENTITY</entityField> - <view>TaskMainPreview_view</view> - </neonViewReference> - <genericViewTemplate> - <name>details</name> - <showDrawer v="true" /> - <drawerCaption>Detail</drawerCaption> - <entityField>#ENTITY</entityField> - <title>details</title> - <fields> - <entityFieldLink> - <name>e95918f5-d21e-4c99-8d05-d70811aa3d89</name> - <entityField>PROTECTIONLEVEL</entityField> - </entityFieldLink> - <entityFieldLink> - <name>fea59f13-750b-427d-bf33-cc1bead95446</name> - <entityField>DESCRIPTION</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>4211b2cf-3a1f-4447-ad1c-f521d2d3f258</name> - <entityField>ModuleTrees</entityField> - <view>ModuleTree_view</view> - </neonViewReference> - <neonViewReference> - <name>6846f680-84ef-46da-a0ea-6797044cf693</name> - <entityField>Documents</entityField> - <view>DocumentFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>ffa776bd-013c-4d4d-aedd-490625ef0fe1</name> - <entityField>LogHistories</entityField> - <view>LogHistoryFilter_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>TaskMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>339e160e-e482-4be2-9550-fc06131fbffe</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>339e160e-e482-4be2-9550-fc06131fbffe</name> + <entityField>#ENTITY</entityField> + <view>TaskMainPreview_view</view> + </neonViewReference> + <genericViewTemplate> + <name>details</name> + <showDrawer v="true" /> + <drawerCaption>Detail</drawerCaption> + <entityField>#ENTITY</entityField> + <title>details</title> + <fields> + <entityFieldLink> + <name>e95918f5-d21e-4c99-8d05-d70811aa3d89</name> + <entityField>PROTECTIONLEVEL</entityField> + </entityFieldLink> + <entityFieldLink> + <name>fea59f13-750b-427d-bf33-cc1bead95446</name> + <entityField>DESCRIPTION</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>4211b2cf-3a1f-4447-ad1c-f521d2d3f258</name> + <entityField>ModuleTrees</entityField> + <view>ModuleTree_view</view> + </neonViewReference> + <neonViewReference> + <name>6846f680-84ef-46da-a0ea-6797044cf693</name> + <entityField>Documents</entityField> + <view>DocumentFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>ffa776bd-013c-4d4d-aedd-490625ef0fe1</name> + <entityField>LogHistories</entityField> + <view>LogHistoryFilter_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/TaskPreview_view/TaskPreview_view.aod b/neonView/TaskPreview_view/TaskPreview_view.aod index 3e7754748bd6046a93ef3a7e0dc0c29d5b9373ef..ace40fabc50fccd98d90c4a7f93a1d6811a12e4f 100644 --- a/neonView/TaskPreview_view/TaskPreview_view.aod +++ b/neonView/TaskPreview_view/TaskPreview_view.aod @@ -1,65 +1,65 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>TaskPreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <cardViewTemplate> - <name>Header</name> - <iconField>PRIORITY_ICON</iconField> - <titleField>SUBJECT</titleField> - <descriptionField>STATUS</descriptionField> - <favoriteAction1>newActivity</favoriteAction1> - <entityField>#ENTITY</entityField> - </cardViewTemplate> - <genericViewTemplate> - <name>Info</name> - <showDrawer v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>f988850e-53ed-443d-bd3d-16946eba656e</name> - <entityField>START_DATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>dda6aefc-9d4f-4d93-9a45-bc97a278c050</name> - <entityField>MATURITY_DATE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>3c7f0603-f659-47ea-adbf-4a4b0b0c6b37</name> - <entityField>PROGRESS</entityField> - </entityFieldLink> - <entityFieldLink> - <name>ebdffed8-4999-4ec1-ac4d-c22514dfed0c</name> - <entityField>PRIORITY</entityField> - </entityFieldLink> - <entityFieldLink> - <name>d9e4daef-84df-415c-9be7-3238c2760c07</name> - <entityField>PROTECTIONLEVEL</entityField> - </entityFieldLink> - <entityFieldLink> - <name>05de9afc-429e-46a8-8e3b-2ff689ed090e</name> - <entityField>REQUESTOR_CONTACT_ID</entityField> - </entityFieldLink> - <entityFieldLink> - <name>bbf1a736-acf9-4b41-9df9-5675fc6d8943</name> - <entityField>EDITOR_CONTACT_ID</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - <neonViewReference> - <name>8cf85386-d25f-459a-a2a1-991c9e3287b6</name> - <entityField>Links</entityField> - <view>TaskLinkPreviewList_view</view> - </neonViewReference> - <neonViewReference> - <name>2941084f-b72c-4cb2-9d73-5e6827795be2</name> - <entityField>MainDocuments</entityField> - <view>DocumentList_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>TaskPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <cardViewTemplate> + <name>Header</name> + <iconField>PRIORITY_ICON</iconField> + <titleField>SUBJECT</titleField> + <descriptionField>STATUS</descriptionField> + <favoriteAction1>newActivity</favoriteAction1> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + <genericViewTemplate> + <name>Info</name> + <showDrawer v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>f988850e-53ed-443d-bd3d-16946eba656e</name> + <entityField>START_DATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>dda6aefc-9d4f-4d93-9a45-bc97a278c050</name> + <entityField>MATURITY_DATE</entityField> + </entityFieldLink> + <entityFieldLink> + <name>3c7f0603-f659-47ea-adbf-4a4b0b0c6b37</name> + <entityField>PROGRESS</entityField> + </entityFieldLink> + <entityFieldLink> + <name>ebdffed8-4999-4ec1-ac4d-c22514dfed0c</name> + <entityField>PRIORITY</entityField> + </entityFieldLink> + <entityFieldLink> + <name>d9e4daef-84df-415c-9be7-3238c2760c07</name> + <entityField>PROTECTIONLEVEL</entityField> + </entityFieldLink> + <entityFieldLink> + <name>05de9afc-429e-46a8-8e3b-2ff689ed090e</name> + <entityField>REQUESTOR_CONTACT_ID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>bbf1a736-acf9-4b41-9df9-5675fc6d8943</name> + <entityField>EDITOR_CONTACT_ID</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + <neonViewReference> + <name>8cf85386-d25f-459a-a2a1-991c9e3287b6</name> + <entityField>Links</entityField> + <view>TaskLinkPreviewList_view</view> + </neonViewReference> + <neonViewReference> + <name>2941084f-b72c-4cb2-9d73-5e6827795be2</name> + <entityField>MainDocuments</entityField> + <view>DocumentList_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/TurnoverChart_view/TurnoverChart_view.aod b/neonView/TurnoverChart_view/TurnoverChart_view.aod index 5b05bdf764f29741f23e6c8a3f21fce8c55a0082..fd4a76dbc489917060ca85f84c3ad5ac4f2b88f3 100644 --- a/neonView/TurnoverChart_view/TurnoverChart_view.aod +++ b/neonView/TurnoverChart_view/TurnoverChart_view.aod @@ -1,82 +1,82 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>TurnoverChart_view</name> - <title></title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <dashletConfigurations> - <neonDashletConfiguration> - <name>TurnoverDashlet</name> - <title>Turnover</title> - <fragment>Turnover/full</fragment> - <singleton v="true" /> - <storeRoles> - <element>INTERNAL_ADMINISTRATOR</element> - <element>INTERNAL_DASHBOARDSTOREADMIN</element> - </storeRoles> - <icon>VAADIN:CHART</icon> - <categories> - <neonDashletCategory> - <name>turnover</name> - <title>Turnover</title> - </neonDashletCategory> - </categories> - </neonDashletConfiguration> - </dashletConfigurations> - <layout> - <groupLayout> - <name>layout</name> - </groupLayout> - </layout> - <children> - <multiDataChartViewTemplate> - <name>ColumnChart</name> - <chartType>COLUMN</chartType> - <xAxis>X</xAxis> - <yAxis>Y</yAxis> - <parentField>PARENT</parentField> - <categoryField>CATEGORY</categoryField> - <entityField>#ENTITY</entityField> - </multiDataChartViewTemplate> - <multiDataChartViewTemplate> - <name>LineChart</name> - <chartType>LINE</chartType> - <xAxis>X</xAxis> - <yAxis>Y</yAxis> - <parentField>PARENT</parentField> - <categoryField>CATEGORY</categoryField> - <entityField>#ENTITY</entityField> - </multiDataChartViewTemplate> - <multiDataChartViewTemplate> - <name>AreaChart</name> - <chartType>AREA</chartType> - <xAxis>X</xAxis> - <yAxis>Y</yAxis> - <parentField>PARENT</parentField> - <categoryField>CATEGORY</categoryField> - <entityField>#ENTITY</entityField> - </multiDataChartViewTemplate> - <multiDataChartViewTemplate> - <name>BarChart</name> - <chartType>BAR</chartType> - <xAxis>X</xAxis> - <yAxis>Y</yAxis> - <parentField>PARENT</parentField> - <categoryField>CATEGORY</categoryField> - <entityField>#ENTITY</entityField> - </multiDataChartViewTemplate> - <multiDataChartViewTemplate> - <name>SplineChart</name> - <chartType>SPLINE</chartType> - <xAxis>X</xAxis> - <yAxis>Y</yAxis> - <parentField>PARENT</parentField> - <categoryField>CATEGORY</categoryField> - <entityField>#ENTITY</entityField> - </multiDataChartViewTemplate> - <neonViewReference> - <name>b0a9f719-3768-4ce5-9d32-e0f5fa5bf1eb</name> - <entityField>Turnover_tree</entityField> - <view>TurnoverTree_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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>TurnoverChart_view</name> + <title></title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <dashletConfigurations> + <neonDashletConfiguration> + <name>TurnoverDashlet</name> + <title>Turnover</title> + <fragment>Turnover/full</fragment> + <singleton v="true" /> + <storeRoles> + <element>INTERNAL_ADMINISTRATOR</element> + <element>INTERNAL_DASHBOARDSTOREADMIN</element> + </storeRoles> + <icon>VAADIN:CHART</icon> + <categories> + <neonDashletCategory> + <name>turnover</name> + <title>Turnover</title> + </neonDashletCategory> + </categories> + </neonDashletConfiguration> + </dashletConfigurations> + <layout> + <groupLayout> + <name>layout</name> + </groupLayout> + </layout> + <children> + <multiDataChartViewTemplate> + <name>ColumnChart</name> + <chartType>COLUMN</chartType> + <xAxis>X</xAxis> + <yAxis>Y</yAxis> + <parentField>PARENT</parentField> + <categoryField>CATEGORY</categoryField> + <entityField>#ENTITY</entityField> + </multiDataChartViewTemplate> + <multiDataChartViewTemplate> + <name>LineChart</name> + <chartType>LINE</chartType> + <xAxis>X</xAxis> + <yAxis>Y</yAxis> + <parentField>PARENT</parentField> + <categoryField>CATEGORY</categoryField> + <entityField>#ENTITY</entityField> + </multiDataChartViewTemplate> + <multiDataChartViewTemplate> + <name>AreaChart</name> + <chartType>AREA</chartType> + <xAxis>X</xAxis> + <yAxis>Y</yAxis> + <parentField>PARENT</parentField> + <categoryField>CATEGORY</categoryField> + <entityField>#ENTITY</entityField> + </multiDataChartViewTemplate> + <multiDataChartViewTemplate> + <name>BarChart</name> + <chartType>BAR</chartType> + <xAxis>X</xAxis> + <yAxis>Y</yAxis> + <parentField>PARENT</parentField> + <categoryField>CATEGORY</categoryField> + <entityField>#ENTITY</entityField> + </multiDataChartViewTemplate> + <multiDataChartViewTemplate> + <name>SplineChart</name> + <chartType>SPLINE</chartType> + <xAxis>X</xAxis> + <yAxis>Y</yAxis> + <parentField>PARENT</parentField> + <categoryField>CATEGORY</categoryField> + <entityField>#ENTITY</entityField> + </multiDataChartViewTemplate> + <neonViewReference> + <name>b0a9f719-3768-4ce5-9d32-e0f5fa5bf1eb</name> + <entityField>Turnover_tree</entityField> + <view>TurnoverTree_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/TurnoverTree_view/TurnoverTree_view.aod b/neonView/TurnoverTree_view/TurnoverTree_view.aod index caa1df078ff99337f41287ff7ba3a67511fade52..3c604de5df8861a74e8d06e19d5629713ad06659 100644 --- a/neonView/TurnoverTree_view/TurnoverTree_view.aod +++ b/neonView/TurnoverTree_view/TurnoverTree_view.aod @@ -1,33 +1,33 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>TurnoverTree_view</name> - <title>Tree</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <treeTableViewTemplate> - <name>turnover</name> - <parentField>PARENT</parentField> - <entityField>#ENTITY</entityField> - <title>Tree</title> - <columns> - <neonTableColumn> - <name>3925d6aa-6a42-4cdc-84c3-e96ce2eff27b</name> - <entityField>GROUP</entityField> - </neonTableColumn> - <neonTableColumn> - <name>bc75d6a3-b226-4b28-8090-7142a264552a</name> - <entityField>FORECASTPRICE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>d56ec015-556a-4fd6-bf43-c127b10b07bc</name> - <entityField>TURNOVERPRICE</entityField> - </neonTableColumn> - </columns> - </treeTableViewTemplate> - </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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>TurnoverTree_view</name> + <title>Tree</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <treeTableViewTemplate> + <name>turnover</name> + <parentField>PARENT</parentField> + <entityField>#ENTITY</entityField> + <title>Tree</title> + <columns> + <neonTableColumn> + <name>3925d6aa-6a42-4cdc-84c3-e96ce2eff27b</name> + <entityField>GROUP</entityField> + </neonTableColumn> + <neonTableColumn> + <name>bc75d6a3-b226-4b28-8090-7142a264552a</name> + <entityField>FORECASTPRICE</entityField> + </neonTableColumn> + <neonTableColumn> + <name>d56ec015-556a-4fd6-bf43-c127b10b07bc</name> + <entityField>TURNOVERPRICE</entityField> + </neonTableColumn> + </columns> + </treeTableViewTemplate> + </children> +</neonView> diff --git a/neonView/campaignParticipantMessage_view/campaignParticipantMessage_view.aod b/neonView/campaignParticipantMessage_view/campaignParticipantMessage_view.aod index 2ed214ff37cc2b033dba2655cd3f551364924647..d572a2cda31b48dd8e7d6f26aba474aec5e5031b 100644 --- a/neonView/campaignParticipantMessage_view/campaignParticipantMessage_view.aod +++ b/neonView/campaignParticipantMessage_view/campaignParticipantMessage_view.aod @@ -1,23 +1,23 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>campaignParticipantMessage_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <noneLayout> - <name>layout</name> - </noneLayout> - </layout> - <children> - <genericViewTemplate> - <name>Message_view</name> - <hideLabels v="true" /> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>bc1db862-a448-47f6-b534-2ce28dc993a8</name> - <entityField>campaignParticipantMessage</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - </children> -</neonView> +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> + <name>campaignParticipantMessage_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <noneLayout> + <name>layout</name> + </noneLayout> + </layout> + <children> + <genericViewTemplate> + <name>Message_view</name> + <hideLabels v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>bc1db862-a448-47f6-b534-2ce28dc993a8</name> + <entityField>campaignParticipantMessage</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod index 3e5bbf87dec599e4e0be6ba8428dd5cbee05fced..38c660583524e33a6a1ef768509ef7c4590cf56e 100644 --- a/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod +++ b/preferences/_____PREFERENCES_PROJECT/_____PREFERENCES_PROJECT.aod @@ -1,100 +1,100 @@ -<?xml version="1.0" encoding="UTF-8"?> -<preferences xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="3.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/preferences/3.1.0"> - <name>_____PREFERENCES_PROJECT</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <projectName>xRM-Basic2019</projectName> - <jditoMaxContentSize v="57671680" /> - <calendarCategoriesEvent> - <entry> - <key>Meeting</key> - <value></value> - </entry> - <entry> - <key>Organisation</key> - <value></value> - </entry> - <entry> - <key>auswärts</key> - <value></value> - </entry> - <entry> - <key>Urlaub</key> - <value></value> - </entry> - </calendarCategoriesEvent> - <clientSearchOptimizedForSpeed v="true" /> - <clientSearchExcludeForIgnorecase v="true" /> - <blobHandlingMethod>DATABASE</blobHandlingMethod> - <databaseAuditGetOldValueLobs v="false" /> - <indexsearchGlobalEnabled v="true" /> - <indexsearchFullIndexerEnabled v="true" /> - <indexsearchFullIndexerInterval v="0" /> - <indexsearchIncrementingIndexerEnabled v="true" /> - <indexsearchIncrementingIndexerInterval v="1000" /> - <indexsearchIncrementingIndexerBunchSize v="250" /> - <indexsearchMaximumHits v="50000" /> - <customProperties> - <customBooleanProperty> - <name>addressValidation.enable</name> - <property v="false" /> - </customBooleanProperty> - <customStringProperty> - <name>addressValidation.url</name> - <property>https://services.aditosoftware.local/services/rest/ws_checkAddress</property> - </customStringProperty> - <customStringProperty> - <name>addressValidation.user</name> - <property>Admin</property> - </customStringProperty> - <customStringProperty> - <name>addressValidation.pw</name> - <property>a</property> - </customStringProperty> - <customStringProperty> - <name>addressValidation.countryParamName</name> - <property>country</property> - </customStringProperty> - <customBooleanProperty> - <name>zipCityValidation.enable</name> - <property v="false" /> - </customBooleanProperty> - <customStringProperty> - <name>zipCityValidation.url</name> - <property>https://services.aditosoftware.local/services/rest/ws_checkZipCity</property> - </customStringProperty> - <customStringProperty> - <name>zipCityValidation.user</name> - <property>Admin</property> - </customStringProperty> - <customStringProperty> - <name>zipCityValidation.pw</name> - <property>a</property> - </customStringProperty> - <customStringProperty> - <name>zipCityValidation.countryParamName</name> - <property>country</property> - </customStringProperty> - <customBooleanProperty> - <name>phoneValidation.enable</name> - <description></description> - <property v="false" /> - </customBooleanProperty> - <customStringProperty> - <name>phoneValidation.url</name> - <description></description> - <property>https://services.aditosoftware.local/services/rest/ws_checkPhoneNumber</property> - </customStringProperty> - <customStringProperty> - <name>phoneValidation.user</name> - <property>Admin</property> - </customStringProperty> - <customStringProperty> - <name>phoneValidation.pw</name> - <property>a</property> - </customStringProperty> - <customStringProperty> - <name>phoneValidation.countryParamName</name> - <property>Country</property> - </customStringProperty> - </customProperties> -</preferences> +<?xml version="1.0" encoding="UTF-8"?> +<preferences xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="3.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/preferences/3.1.0"> + <name>_____PREFERENCES_PROJECT</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <projectName>xRM-Basic2019</projectName> + <jditoMaxContentSize v="57671680" /> + <calendarCategoriesEvent> + <entry> + <key>Meeting</key> + <value></value> + </entry> + <entry> + <key>Organisation</key> + <value></value> + </entry> + <entry> + <key>auswärts</key> + <value></value> + </entry> + <entry> + <key>Urlaub</key> + <value></value> + </entry> + </calendarCategoriesEvent> + <clientSearchOptimizedForSpeed v="true" /> + <clientSearchExcludeForIgnorecase v="true" /> + <blobHandlingMethod>DATABASE</blobHandlingMethod> + <databaseAuditGetOldValueLobs v="false" /> + <indexsearchGlobalEnabled v="true" /> + <indexsearchFullIndexerEnabled v="true" /> + <indexsearchFullIndexerInterval v="0" /> + <indexsearchIncrementingIndexerEnabled v="true" /> + <indexsearchIncrementingIndexerInterval v="1000" /> + <indexsearchIncrementingIndexerBunchSize v="250" /> + <indexsearchMaximumHits v="50000" /> + <customProperties> + <customBooleanProperty> + <name>addressValidation.enable</name> + <property v="false" /> + </customBooleanProperty> + <customStringProperty> + <name>addressValidation.url</name> + <property>https://services.aditosoftware.local/services/rest/ws_checkAddress</property> + </customStringProperty> + <customStringProperty> + <name>addressValidation.user</name> + <property>Admin</property> + </customStringProperty> + <customStringProperty> + <name>addressValidation.pw</name> + <property>a</property> + </customStringProperty> + <customStringProperty> + <name>addressValidation.countryParamName</name> + <property>country</property> + </customStringProperty> + <customBooleanProperty> + <name>zipCityValidation.enable</name> + <property v="false" /> + </customBooleanProperty> + <customStringProperty> + <name>zipCityValidation.url</name> + <property>https://services.aditosoftware.local/services/rest/ws_checkZipCity</property> + </customStringProperty> + <customStringProperty> + <name>zipCityValidation.user</name> + <property>Admin</property> + </customStringProperty> + <customStringProperty> + <name>zipCityValidation.pw</name> + <property>a</property> + </customStringProperty> + <customStringProperty> + <name>zipCityValidation.countryParamName</name> + <property>country</property> + </customStringProperty> + <customBooleanProperty> + <name>phoneValidation.enable</name> + <description></description> + <property v="false" /> + </customBooleanProperty> + <customStringProperty> + <name>phoneValidation.url</name> + <description></description> + <property>https://services.aditosoftware.local/services/rest/ws_checkPhoneNumber</property> + </customStringProperty> + <customStringProperty> + <name>phoneValidation.user</name> + <property>Admin</property> + </customStringProperty> + <customStringProperty> + <name>phoneValidation.pw</name> + <property>a</property> + </customStringProperty> + <customStringProperty> + <name>phoneValidation.countryParamName</name> + <property>Country</property> + </customStringProperty> + </customProperties> +</preferences> diff --git a/process/Address_lib/Address_lib.aod b/process/Address_lib/Address_lib.aod index 5e7cbd6ac0376eb634046a65ee1b9468154061fc..f1d2ad1146f593b323332e7d74dadd2c2cc28179 100644 --- a/process/Address_lib/Address_lib.aod +++ b/process/Address_lib/Address_lib.aod @@ -1,9 +1,9 @@ -<?xml version="1.0" encoding="UTF-8"?> -<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> - <name>Address_lib</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <process>%aditoprj%/process/Address_lib/process.js</process> - <variants> - <element>LIBRARY</element> - </variants> -</process> +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> + <name>Address_lib</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/Address_lib/process.js</process> + <variants> + <element>LIBRARY</element> + </variants> +</process> diff --git a/process/Address_lib/process.js b/process/Address_lib/process.js index 072f226e175d506f8ba24ba06c398cda77f54792..2b4406c8124819a4ec41bf95302450c8de6de8c4 100644 --- a/process/Address_lib/process.js +++ b/process/Address_lib/process.js @@ -1,473 +1,473 @@ -import("system.swing"); -import("system.text"); -import("system.db"); -import("system.logging"); -import("system.vars"); -import("system.translate"); -import("Attribute_lib"); -import("Sql_lib"); -import("Util_lib"); - -/* -* Creates a Address Object -* -* @param {String} pRelationID req relationid for which address should be retrieved -* @param {String} pAddressID opt addressid for which address should be retrieved -* @param {boolean} pPerson whether the address is from a person, not an organisation -* -* @return {String} the formatted address -*/ - -function AddrObject( pRelationID, pPerson, pAddressID ) -{ - this.Data = fetchAddressData( [ pRelationID ] , [["", "addressformat", ""]], pAddressID, pPerson ); - this.fmt = this.Data[0][0][26]; - - /* - * creates a formatted address - * - * @param {boolean} pCountry whether the country should be displayed - * @param {String} pFormat a fixed format for the address - * - * @return {String} formatted address - */ - this.getFormattedAddress = function( pCountry, pFormat ) - { - return _formatAddrData( _getAddrData( this.Data[0][0] ), pFormat, pCountry ); - } -} - -/* -* creates address data -* -* @param {String} pCondition req SQL-Where-Condition -* @param {String [[]]} pConfig req ( name, functionality, details ) -* @param {String} pSenderID opt UserRelationID -* @param {String} pAddressID opt addressid -* -* @return {[]} Daten -*/ -function getAddressesData( pCondition, pConfig, pSenderID, pAddressID ) -{ - var returndata = []; - var senderconfig = []; - var employeeconfig = []; - var config = []; - for ( var i = 0; i < pConfig.length; i++ ) - { - var type = pConfig[i][1].split("."); - switch( type[0] ) - { - case "employee": - employeeconfig.push([pConfig[i][0], type[1], pConfig[i][2]]); - break; - case "sender": - senderconfig.push([pConfig[i][0], type[1], pConfig[i][2]]); - break; - default: - config.push(pConfig[i]); - break; - } - } - var data = getAddressData( pCondition, config, pAddressID ); - if ( pSenderID == undefined ) pSenderID = vars.get("$global.user").relationid; - if ( senderconfig.length > 0 ) - var senderdata = getAddressData( [ pSenderID ], senderconfig ); - if ( employeeconfig.length > 0 ) - var employeedata = getAddressData( [ vars.get("$global.user").relationid ], employeeconfig ); - if ( data.length > 0 && ( senderconfig.length > 0 || employeeconfig.length > 0 ) ) - { - var ze = data[0]; - if ( employeeconfig.length > 0 ) ze = ze.concat( employeedata[0] ); - if ( senderconfig.length > 0 ) ze = ze.concat( senderdata[0] ); - returndata.push(ze); - for ( i = 1; i < data.length; i++ ) - { - ze = data[i]; - if ( employeeconfig.length > 0 ) ze = ze.concat( employeedata[1] ); - if ( senderconfig.length > 0 ) ze = ze.concat( senderdata[1] ); - returndata.push(ze); - } - return returndata; - } - else return data; -} - -/* -* creates -* -* @param {String} pCondition req SQL-Where-Condition -* @param {String [[]]} pConfig req ( name, functionality, details ) -* @param {String} AddressID opt addressid -* -* @return {[]} Daten -*/ -function getAddressData( pCondition, pConfig, AddressID ) -{ - return setAddressData( fetchAddressData( pCondition, pConfig, AddressID ) ); -} - -/* -* reads data from the database -* -* @param {String} pCondition req SQL-Where-Condition -* @param {String [[]]} pConfig req ( name, functionality, details ) -* @param {String} AddressID opt addressid -* @param {boolean} pPerson opt if private person -* -* @return {[]} data -*/ -function fetchAddressData( pCondition, pConfig, AddressID, pPerson ) -{ - if ( typeof(pCondition) == "object") pCondition = "CONTACT.CONTACTID in ('" + pCondition.join("','") + "')"; - if ( pConfig.length > 0 ) - { - var header = []; - var fields = []; - var output = []; - var pos = 0; - var posaddrfields = -1; - var functionCalls = []; - var addrfields = ["case when CONTACT.PERSON_ID is null then 1 else case when " + SqlMaskingUtils.prototype.trim("CONTACT.ORGANISATION_ID") + " = '0' then 2 else 3 end end", //0 - "ADDRESS.ADDRESS", "ADDRESS.BUILDINGNO", "ADDRESS.ZIP", "ADDRESS.CITY", "ADDRESS.COUNTRY", "ADDRESS.ADDRESSADDITION", // 1-6 - "ADDRESS.ADDRIDENTIFIER", "ADDRESS.DISTRICT", "ADDRESS.REGION", "ADDRESS.STATE", "CONTACT.DEPARTMENT", "CONTACT.CONTACTROLE", // 7-12 - "CONTACT.POSITION", "CONTACT.LETTERSALUTATION", "ORGANISATION.NAME", "PERSON.FIRSTNAME", "PERSON.MIDDLENAME", "PERSON.LASTNAME", // 13-18 - "PERSON.SALUTATION", "PERSON.TITLE", "PERSON.TITLESUFFIX", // 19-21 - "coalesce( CONTACT.LANGUAGE, (select C.LANGUAGE from CONTACT C where C.ORGANISATION_ID = CONTACT.ORGANISATION_ID and PERSON_ID is null))", // 22 - "''", "''", "''", "(select ADDR_FORMAT from AB_COUNTRYINFO where ISO2 = ADDRESS.COUNTRY)", "ADDRESS.ADDR_TYPE"]; // 23-27 - - for (var i=0; i < pConfig.length; i++ ) - { - switch( pConfig[i][1] ) - { - case "fieldname": // database fields - fields.push( pConfig[i][2] ); - output.push([pos++, pConfig[i][1]]); - header.push( pConfig[i][0] ); - break; - case "function": // adito SQL functions - fields.push( evalScript("Address_lib.fetchAddressData", vars.resolveVariables(pConfig[i][2]), {}, ["Attribute_lib", "Sql_lib", "Keyword_lib", "Person_lib"], true) ); - output.push([pos++, pConfig[i][1]]); - header.push( pConfig[i][0] ); - break; - case "afunction": // adito functions - try - { - fields.push( "'" + evalScript("Address_lib.fetchAddressData", vars.resolveVariables(pConfig[i][2]), {}, ["Attribute_lib", "Sql_lib", "Keyword_lib", "Person_lib"], true).replace(new RegExp("'","g"), "''") + "'" ); - output.push([pos++, pConfig[i][1]]); - header.push( pConfig[i][0] ); - } - catch( err ) - { - logging.log( err ) - } - break; - case "select": // Subselects - fields.push( "(" + vars.resolveVariables(pConfig[i][2]) + " )" ); - output.push([pos++, pConfig[i][1]]); - header.push( pConfig[i][0] ); - break; - case "addressformat": // Addressformat - if ( posaddrfields == -1 ) - { - var sortfields = ["ORGANISATION.NAME", "PERSON.LASTNAME"]; - fields.push( addrfields.join(", ") ); - posaddrfields = pos; - pos += addrfields.length; - } - output.push([posaddrfields, pConfig[i][1], pConfig[i][2]]); - header.push( pConfig[i][0] ); - break; - case "resolveIDFunction": - var configJSON = pConfig[i][2]; - fields.push( configJSON.rowIDField ); - - functionCalls.push([pos, - configJSON.resolveFunction, - configJSON.imports, - configJSON.localVars]); - - output.push([pos++, pConfig[i][1]]); - header.push( pConfig[i][0] ); - break; - } - } - if (!pPerson) { - var sqlstr = "select " + fields.join(",") - + " from CONTACT join ORGANISATION on CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID " - + " left join PERSON on CONTACT.PERSON_ID = PERSON.PERSONID " - + " left join ADDRESS on CONTACT.ADDRESS_ID = "; - } else { - - sqlstr = "select " + fields.join(",") - + " from CONTACT join PERSON on CONTACT.PERSON_ID = PERSON.PERSONID " - + " left join ORGANISATION on CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID " - + " left join ADDRESS on CONTACT.ADDRESS_ID = "; - } - - if ( AddressID != undefined && AddressID != "" ) sqlstr += "'" + AddressID + "'"; - else sqlstr += "ADDRESS.ADDRESSID"; - if ( pCondition != "" ) sqlstr += " where " + pCondition; - var data = db.table(sqlstr + (sortfields != undefined ? " order by " + sortfields.join(", ") : "" )); - - // loop over all returned datasets - for( var j = 0; j < data.length; j++) - { - // loop over all possible resolveFunction entries - for( var k = 0; k < functionCalls.length; k++ ) - { - // get the local variables, which should be present in the function call - var localVars = functionCalls[k][3]; - // add the row id value to the localVars Object so the funtion can gather the data for this dataset - localVars.rowIDValue = data[j][ functionCalls[k][0] ]; - // replace the row id with its base64 string - data[j][ functionCalls[k][0] ] = evalScript("Address_lib.fetchAddressData.resolveFunction", - vars.resolveVariables( functionCalls[k][1]+"()" ), - localVars, - functionCalls[k][2], // imports - true); - } - } - - if ( data.length == 0 ) - { - logging.log("Address_lib: " + pCondition, logging.ERROR); - data = [[]]; - for ( i = 0; i < addrfields.length + fields.length; i++ ) data[0].push("Err."); - } - data = [ data, output, header, addrfields ]; - } - return data; -} - -/* -* reads data from the database -* -* @param {String [[]]} pData req array of data -* -* @return {String [[]]} data -*/ -function setAddressData( pData ) -{ - var sqlresult = pData[0]; - var data = []; - if ( sqlresult.length > 0 ) - { - var output = pData[1]; - var header = pData[2]; - var addrfields = pData[3]; - data.push( header ); - for ( var i = 0; i < sqlresult.length; i++ ) - { - var addrdata = []; - var row = []; - for ( var z = 0; z < header.length; z++ ) - { - switch( output[z][1] ) - { - case "fieldname": - case "function": - case "afunction": - case "resolveIDFunction": - case "select": - row[z] = sqlresult[i][output[z][0]]; - break; - case "addressformat": - if (addrdata.length == 0) addrdata = _getAddrData( sqlresult[i].slice(output[z][0], output[z][0] + addrfields.length) ); - row[z] = _formatAddrData( addrdata, output[z][2] ); - break; - } - } - data.push( row ); - } - } - return data; -} -/* -* -* returns formatted address data -* -* @param {String [[]]} pData req data -* -* @return {String [[]]} formatted data -*/ -function _getAddrData( pData ) -{ - var lettersalutation = pData[14]; - var salutation = pData[19]; - var sformat = ""; - switch( Number(pData[0]) ) - { - case 1: - if ( lettersalutation == "" ) - { - sformat = _getSalutation( pData[22] ); - if ( sformat != undefined && sformat[1] != "" ) lettersalutation = _formatAddrData( pData, sformat[1] ); - else lettersalutation = "Sehr geehrte Damen und Herren"; - } - break; - case 2: - // private -> orgname deleted - pData[15] = ""; - case 3: - sformat = _getSalutation( pData[22] + pData[19] + pData[20] ); - //no language defined - if ( sformat == undefined ) sformat = _getSalutation( pData[19] + pData[20] ); - // no language specific entry in salutation - if ( sformat == undefined || sformat[0] == "" || sformat[1] == "" ) sformat = ["{sa} {ti} {fn} {la}", "{sa} {ti} {ln}"]; - salutation = _formatAddrData( pData, sformat[0] ); - // lettersalutation if none existent yet - if( lettersalutation == "" ) lettersalutation = _formatAddrData( pData, sformat[1] ); - } - - pData[23] = salutation; - pData[24] = lettersalutation; - pData[25] = _getCountryName(pData[5]); - return pData; -} - -/* -* returns a formatted salutation -* -* @param {String} pSalutCode req salutation code -* -* @return {String} translated salutation -*/ -function _getSalutation( pSalutCode ) -{ - var salut = new Object(); - if (vars.exists("$global.Salutation")) { - salut = vars.get("$global.Salutation"); - } - else - { - var list = db.table("select LANGUAGE, SALUTATION, TITLE, HEADLINE, LETTERSALUTATION from SALUTATION" ); - for ( var i = 0; i < list.length; i++ ) - { - salut[list[i][0] + list[i][1] + list[i][2]] = [list[i][3], list[i][4]]; - salut[list[i][1] + list[i][2]] = [list[i][3], list[i][4]]; - } - vars.set("$global.Salutation", salut); - } - return salut[pSalutCode]; -} - -/* -* returns country names -* -* @param {String} pCountryCode req countrycode -* -* @return {String} translated countryname -*/ -function _getCountryName(pCountryCode) -{ - var countryname = new Object(); - if ( vars.exists("$global.CountryName")) countryname = vars.get("$global.CountryName"); - else - { - var list = db.table("select ISO2, NAME_NATIVE from AB_COUNTRYINFO" ); - for (var i=0; i < list.length; i++ ) countryname[list[i][0]] = translate.text(list[i][1]); - vars.set("$global.CountryName", countryname); - } - return countryname[pCountryCode]; -} - -/* -* returns a formatted address -* -* @param {String [[]]} pAddrData req Address data -* @param {String} pFormat opt given format -* @param {boolean} pCountry if the country should be displayed -* -* @return {String} formatted address -*/ -function _formatAddrData( pAddrData, pFormat, pCountry ) -{ - var placeholerInfo = { - "street": {dataPosition: 1}, - "buildingno": {dataPosition: 2}, - "zip": {dataPosition: 3}, - "city": {dataPosition: 4}, - "district": {dataPosition: 8}, - "region": {dataPosition: 9}, - "state": {dataPosition: 10}, - "firstname": {dataPosition: 16}, - "middlename": {dataPosition: 17}, - "lastname": {dataPosition: 18}, - "saluation": {dataPosition: 19}, - "title": {dataPosition: 20}, - "suffix": {dataPosition: 21}, - "country": {dataPosition: 25}, - "organisation name": {dataPosition: 15}, - "salutation_name": {dataPosition: 23}, - "letter salutation": {dataPosition: 24} - }; - - var format = pFormat || pAddrData[26]; - format = _mapFormatPlaceholderTitles(format, pAddrData, pCountry); - - var res = format; - for (var placeholder in placeholerInfo) - { - var currentAddrData = pAddrData[placeholerInfo[placeholder].dataPosition]; - if (currentAddrData != undefined) - { - res = res.replace(new RegExp("{" + placeholder + "}", "g"), currentAddrData); - res = res.replace(new RegExp("{" + placeholder.toUpperCase() + "}", "g"), currentAddrData.toUpperCase()); - } - } - - res = res.replace(/^\n/, ""); // CR am Anfang entfernen; - res = res.replace(/ /g, " "); // doppelte leerzeichen entfernen - res = res.replace(/\\n/ig, "\n"); // newline marker ersetzen - res = res.replace(/ *\n */g, "\n");// leerzeichen am ende und Anfang entfernen - res = res.replace(/\s(?=\s)/g, ""); // leerzeilen rauswerfen - return res; -} - -/* -* returns the new format -* -* @param {String [[]]} pAddrData req Daten -* @param {String} pFormat req the format string -* @param {boolean} pCountry if the country should be displayed -* -* @return {String} new formate -* -N – Name - salutation -O – Organisation - orgname -A – Street Address Line(s) - address + buildingno -D – Dependent locality - district / region -C – City or Locality - city -S – Administrative area - state -Z – Zip or postal code - zip -X – Sorting code - not available -*/ -function _mapFormatPlaceholderTitles(pFormat, pAddrData, pCountry) -{ - //gstatic-paceholders - pFormat = pFormat.replace(new RegExp("%N", "g"), "{salutation_name}"); - pFormat = pFormat.replace(new RegExp("%A", "g"), "{address_street buildingno}"); - pFormat = pFormat.replace(new RegExp("%C", "g"), "{city}"); - pFormat = pFormat.replace(new RegExp("%S", "g"), "{state}"); - pFormat = pFormat.replace(new RegExp("%Z", "g"), "{zip}"); - pFormat = pFormat.replace(new RegExp("%O", "g"), "{organisation_name}"); - pFormat = pFormat.replace(new RegExp("%X", "g"), ""); - pFormat = pFormat.replace(new RegExp("%n", "g"), "\n"); - - //shortform adito-placeholders - pFormat = pFormat.replace(new RegExp("{fn}", "g"), "{firstname}"); - pFormat = pFormat.replace(new RegExp("{ln}", "g"), "{lpFormattname}"); - pFormat = pFormat.replace(new RegExp("{ti}", "g"), "{title}"); - pFormat = pFormat.replace(new RegExp("{sa}", "g"), "{salutation}"); - - if (pAddrData[8] == pAddrData[9]) - pFormat = pFormat.replace(new RegExp("%D", "g"), "{district}"); - else - pFormat = pFormat.replace(new RegExp("%D", "g"), "{district} \n {region}"); - - if(pCountry == undefined || pCountry == null || pCountry == true) - pFormat = pFormat + "\n {country}"; - - return pFormat; +import("system.swing"); +import("system.text"); +import("system.db"); +import("system.logging"); +import("system.vars"); +import("system.translate"); +import("Attribute_lib"); +import("Sql_lib"); +import("Util_lib"); + +/* +* Creates a Address Object +* +* @param {String} pRelationID req relationid for which address should be retrieved +* @param {String} pAddressID opt addressid for which address should be retrieved +* @param {boolean} pPerson whether the address is from a person, not an organisation +* +* @return {String} the formatted address +*/ + +function AddrObject( pRelationID, pPerson, pAddressID ) +{ + this.Data = fetchAddressData( [ pRelationID ] , [["", "addressformat", ""]], pAddressID, pPerson ); + this.fmt = this.Data[0][0][26]; + + /* + * creates a formatted address + * + * @param {boolean} pCountry whether the country should be displayed + * @param {String} pFormat a fixed format for the address + * + * @return {String} formatted address + */ + this.getFormattedAddress = function( pCountry, pFormat ) + { + return _formatAddrData( _getAddrData( this.Data[0][0] ), pFormat, pCountry ); + } +} + +/* +* creates address data +* +* @param {String} pCondition req SQL-Where-Condition +* @param {String [[]]} pConfig req ( name, functionality, details ) +* @param {String} pSenderID opt UserRelationID +* @param {String} pAddressID opt addressid +* +* @return {[]} Daten +*/ +function getAddressesData( pCondition, pConfig, pSenderID, pAddressID ) +{ + var returndata = []; + var senderconfig = []; + var employeeconfig = []; + var config = []; + for ( var i = 0; i < pConfig.length; i++ ) + { + var type = pConfig[i][1].split("."); + switch( type[0] ) + { + case "employee": + employeeconfig.push([pConfig[i][0], type[1], pConfig[i][2]]); + break; + case "sender": + senderconfig.push([pConfig[i][0], type[1], pConfig[i][2]]); + break; + default: + config.push(pConfig[i]); + break; + } + } + var data = getAddressData( pCondition, config, pAddressID ); + if ( pSenderID == undefined ) pSenderID = vars.get("$global.user").relationid; + if ( senderconfig.length > 0 ) + var senderdata = getAddressData( [ pSenderID ], senderconfig ); + if ( employeeconfig.length > 0 ) + var employeedata = getAddressData( [ vars.get("$global.user").relationid ], employeeconfig ); + if ( data.length > 0 && ( senderconfig.length > 0 || employeeconfig.length > 0 ) ) + { + var ze = data[0]; + if ( employeeconfig.length > 0 ) ze = ze.concat( employeedata[0] ); + if ( senderconfig.length > 0 ) ze = ze.concat( senderdata[0] ); + returndata.push(ze); + for ( i = 1; i < data.length; i++ ) + { + ze = data[i]; + if ( employeeconfig.length > 0 ) ze = ze.concat( employeedata[1] ); + if ( senderconfig.length > 0 ) ze = ze.concat( senderdata[1] ); + returndata.push(ze); + } + return returndata; + } + else return data; +} + +/* +* creates +* +* @param {String} pCondition req SQL-Where-Condition +* @param {String [[]]} pConfig req ( name, functionality, details ) +* @param {String} AddressID opt addressid +* +* @return {[]} Daten +*/ +function getAddressData( pCondition, pConfig, AddressID ) +{ + return setAddressData( fetchAddressData( pCondition, pConfig, AddressID ) ); +} + +/* +* reads data from the database +* +* @param {String} pCondition req SQL-Where-Condition +* @param {String [[]]} pConfig req ( name, functionality, details ) +* @param {String} AddressID opt addressid +* @param {boolean} pPerson opt if private person +* +* @return {[]} data +*/ +function fetchAddressData( pCondition, pConfig, AddressID, pPerson ) +{ + if ( typeof(pCondition) == "object") pCondition = "CONTACT.CONTACTID in ('" + pCondition.join("','") + "')"; + if ( pConfig.length > 0 ) + { + var header = []; + var fields = []; + var output = []; + var pos = 0; + var posaddrfields = -1; + var functionCalls = []; + var addrfields = ["case when CONTACT.PERSON_ID is null then 1 else case when " + SqlMaskingUtils.prototype.trim("CONTACT.ORGANISATION_ID") + " = '0' then 2 else 3 end end", //0 + "ADDRESS.ADDRESS", "ADDRESS.BUILDINGNO", "ADDRESS.ZIP", "ADDRESS.CITY", "ADDRESS.COUNTRY", "ADDRESS.ADDRESSADDITION", // 1-6 + "ADDRESS.ADDRIDENTIFIER", "ADDRESS.DISTRICT", "ADDRESS.REGION", "ADDRESS.STATE", "CONTACT.DEPARTMENT", "CONTACT.CONTACTROLE", // 7-12 + "CONTACT.POSITION", "CONTACT.LETTERSALUTATION", "ORGANISATION.NAME", "PERSON.FIRSTNAME", "PERSON.MIDDLENAME", "PERSON.LASTNAME", // 13-18 + "PERSON.SALUTATION", "PERSON.TITLE", "PERSON.TITLESUFFIX", // 19-21 + "coalesce( CONTACT.LANGUAGE, (select C.LANGUAGE from CONTACT C where C.ORGANISATION_ID = CONTACT.ORGANISATION_ID and PERSON_ID is null))", // 22 + "''", "''", "''", "(select ADDR_FORMAT from AB_COUNTRYINFO where ISO2 = ADDRESS.COUNTRY)", "ADDRESS.ADDR_TYPE"]; // 23-27 + + for (var i=0; i < pConfig.length; i++ ) + { + switch( pConfig[i][1] ) + { + case "fieldname": // database fields + fields.push( pConfig[i][2] ); + output.push([pos++, pConfig[i][1]]); + header.push( pConfig[i][0] ); + break; + case "function": // adito SQL functions + fields.push( evalScript("Address_lib.fetchAddressData", vars.resolveVariables(pConfig[i][2]), {}, ["Attribute_lib", "Sql_lib", "Keyword_lib", "Person_lib"], true) ); + output.push([pos++, pConfig[i][1]]); + header.push( pConfig[i][0] ); + break; + case "afunction": // adito functions + try + { + fields.push( "'" + evalScript("Address_lib.fetchAddressData", vars.resolveVariables(pConfig[i][2]), {}, ["Attribute_lib", "Sql_lib", "Keyword_lib", "Person_lib"], true).replace(new RegExp("'","g"), "''") + "'" ); + output.push([pos++, pConfig[i][1]]); + header.push( pConfig[i][0] ); + } + catch( err ) + { + logging.log( err ) + } + break; + case "select": // Subselects + fields.push( "(" + vars.resolveVariables(pConfig[i][2]) + " )" ); + output.push([pos++, pConfig[i][1]]); + header.push( pConfig[i][0] ); + break; + case "addressformat": // Addressformat + if ( posaddrfields == -1 ) + { + var sortfields = ["ORGANISATION.NAME", "PERSON.LASTNAME"]; + fields.push( addrfields.join(", ") ); + posaddrfields = pos; + pos += addrfields.length; + } + output.push([posaddrfields, pConfig[i][1], pConfig[i][2]]); + header.push( pConfig[i][0] ); + break; + case "resolveIDFunction": + var configJSON = pConfig[i][2]; + fields.push( configJSON.rowIDField ); + + functionCalls.push([pos, + configJSON.resolveFunction, + configJSON.imports, + configJSON.localVars]); + + output.push([pos++, pConfig[i][1]]); + header.push( pConfig[i][0] ); + break; + } + } + if (!pPerson) { + var sqlstr = "select " + fields.join(",") + + " from CONTACT join ORGANISATION on CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID " + + " left join PERSON on CONTACT.PERSON_ID = PERSON.PERSONID " + + " left join ADDRESS on CONTACT.ADDRESS_ID = "; + } else { + + sqlstr = "select " + fields.join(",") + + " from CONTACT join PERSON on CONTACT.PERSON_ID = PERSON.PERSONID " + + " left join ORGANISATION on CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID " + + " left join ADDRESS on CONTACT.ADDRESS_ID = "; + } + + if ( AddressID != undefined && AddressID != "" ) sqlstr += "'" + AddressID + "'"; + else sqlstr += "ADDRESS.ADDRESSID"; + if ( pCondition != "" ) sqlstr += " where " + pCondition; + var data = db.table(sqlstr + (sortfields != undefined ? " order by " + sortfields.join(", ") : "" )); + + // loop over all returned datasets + for( var j = 0; j < data.length; j++) + { + // loop over all possible resolveFunction entries + for( var k = 0; k < functionCalls.length; k++ ) + { + // get the local variables, which should be present in the function call + var localVars = functionCalls[k][3]; + // add the row id value to the localVars Object so the funtion can gather the data for this dataset + localVars.rowIDValue = data[j][ functionCalls[k][0] ]; + // replace the row id with its base64 string + data[j][ functionCalls[k][0] ] = evalScript("Address_lib.fetchAddressData.resolveFunction", + vars.resolveVariables( functionCalls[k][1]+"()" ), + localVars, + functionCalls[k][2], // imports + true); + } + } + + if ( data.length == 0 ) + { + logging.log("Address_lib: " + pCondition, logging.ERROR); + data = [[]]; + for ( i = 0; i < addrfields.length + fields.length; i++ ) data[0].push("Err."); + } + data = [ data, output, header, addrfields ]; + } + return data; +} + +/* +* reads data from the database +* +* @param {String [[]]} pData req array of data +* +* @return {String [[]]} data +*/ +function setAddressData( pData ) +{ + var sqlresult = pData[0]; + var data = []; + if ( sqlresult.length > 0 ) + { + var output = pData[1]; + var header = pData[2]; + var addrfields = pData[3]; + data.push( header ); + for ( var i = 0; i < sqlresult.length; i++ ) + { + var addrdata = []; + var row = []; + for ( var z = 0; z < header.length; z++ ) + { + switch( output[z][1] ) + { + case "fieldname": + case "function": + case "afunction": + case "resolveIDFunction": + case "select": + row[z] = sqlresult[i][output[z][0]]; + break; + case "addressformat": + if (addrdata.length == 0) addrdata = _getAddrData( sqlresult[i].slice(output[z][0], output[z][0] + addrfields.length) ); + row[z] = _formatAddrData( addrdata, output[z][2] ); + break; + } + } + data.push( row ); + } + } + return data; +} +/* +* +* returns formatted address data +* +* @param {String [[]]} pData req data +* +* @return {String [[]]} formatted data +*/ +function _getAddrData( pData ) +{ + var lettersalutation = pData[14]; + var salutation = pData[19]; + var sformat = ""; + switch( Number(pData[0]) ) + { + case 1: + if ( lettersalutation == "" ) + { + sformat = _getSalutation( pData[22] ); + if ( sformat != undefined && sformat[1] != "" ) lettersalutation = _formatAddrData( pData, sformat[1] ); + else lettersalutation = "Sehr geehrte Damen und Herren"; + } + break; + case 2: + // private -> orgname deleted + pData[15] = ""; + case 3: + sformat = _getSalutation( pData[22] + pData[19] + pData[20] ); + //no language defined + if ( sformat == undefined ) sformat = _getSalutation( pData[19] + pData[20] ); + // no language specific entry in salutation + if ( sformat == undefined || sformat[0] == "" || sformat[1] == "" ) sformat = ["{sa} {ti} {fn} {la}", "{sa} {ti} {ln}"]; + salutation = _formatAddrData( pData, sformat[0] ); + // lettersalutation if none existent yet + if( lettersalutation == "" ) lettersalutation = _formatAddrData( pData, sformat[1] ); + } + + pData[23] = salutation; + pData[24] = lettersalutation; + pData[25] = _getCountryName(pData[5]); + return pData; +} + +/* +* returns a formatted salutation +* +* @param {String} pSalutCode req salutation code +* +* @return {String} translated salutation +*/ +function _getSalutation( pSalutCode ) +{ + var salut = new Object(); + if (vars.exists("$global.Salutation")) { + salut = vars.get("$global.Salutation"); + } + else + { + var list = db.table("select LANGUAGE, SALUTATION, TITLE, HEADLINE, LETTERSALUTATION from SALUTATION" ); + for ( var i = 0; i < list.length; i++ ) + { + salut[list[i][0] + list[i][1] + list[i][2]] = [list[i][3], list[i][4]]; + salut[list[i][1] + list[i][2]] = [list[i][3], list[i][4]]; + } + vars.set("$global.Salutation", salut); + } + return salut[pSalutCode]; +} + +/* +* returns country names +* +* @param {String} pCountryCode req countrycode +* +* @return {String} translated countryname +*/ +function _getCountryName(pCountryCode) +{ + var countryname = new Object(); + if ( vars.exists("$global.CountryName")) countryname = vars.get("$global.CountryName"); + else + { + var list = db.table("select ISO2, NAME_NATIVE from AB_COUNTRYINFO" ); + for (var i=0; i < list.length; i++ ) countryname[list[i][0]] = translate.text(list[i][1]); + vars.set("$global.CountryName", countryname); + } + return countryname[pCountryCode]; +} + +/* +* returns a formatted address +* +* @param {String [[]]} pAddrData req Address data +* @param {String} pFormat opt given format +* @param {boolean} pCountry if the country should be displayed +* +* @return {String} formatted address +*/ +function _formatAddrData( pAddrData, pFormat, pCountry ) +{ + var placeholerInfo = { + "street": {dataPosition: 1}, + "buildingno": {dataPosition: 2}, + "zip": {dataPosition: 3}, + "city": {dataPosition: 4}, + "district": {dataPosition: 8}, + "region": {dataPosition: 9}, + "state": {dataPosition: 10}, + "firstname": {dataPosition: 16}, + "middlename": {dataPosition: 17}, + "lastname": {dataPosition: 18}, + "saluation": {dataPosition: 19}, + "title": {dataPosition: 20}, + "suffix": {dataPosition: 21}, + "country": {dataPosition: 25}, + "organisation name": {dataPosition: 15}, + "salutation_name": {dataPosition: 23}, + "letter salutation": {dataPosition: 24} + }; + + var format = pFormat || pAddrData[26]; + format = _mapFormatPlaceholderTitles(format, pAddrData, pCountry); + + var res = format; + for (var placeholder in placeholerInfo) + { + var currentAddrData = pAddrData[placeholerInfo[placeholder].dataPosition]; + if (currentAddrData != undefined) + { + res = res.replace(new RegExp("{" + placeholder + "}", "g"), currentAddrData); + res = res.replace(new RegExp("{" + placeholder.toUpperCase() + "}", "g"), currentAddrData.toUpperCase()); + } + } + + res = res.replace(/^\n/, ""); // CR am Anfang entfernen; + res = res.replace(/ /g, " "); // doppelte leerzeichen entfernen + res = res.replace(/\\n/ig, "\n"); // newline marker ersetzen + res = res.replace(/ *\n */g, "\n");// leerzeichen am ende und Anfang entfernen + res = res.replace(/\s(?=\s)/g, ""); // leerzeilen rauswerfen + return res; +} + +/* +* returns the new format +* +* @param {String [[]]} pAddrData req Daten +* @param {String} pFormat req the format string +* @param {boolean} pCountry if the country should be displayed +* +* @return {String} new formate +* +N – Name - salutation +O – Organisation - orgname +A – Street Address Line(s) - address + buildingno +D – Dependent locality - district / region +C – City or Locality - city +S – Administrative area - state +Z – Zip or postal code - zip +X – Sorting code - not available +*/ +function _mapFormatPlaceholderTitles(pFormat, pAddrData, pCountry) +{ + //gstatic-paceholders + pFormat = pFormat.replace(new RegExp("%N", "g"), "{salutation_name}"); + pFormat = pFormat.replace(new RegExp("%A", "g"), "{address_street buildingno}"); + pFormat = pFormat.replace(new RegExp("%C", "g"), "{city}"); + pFormat = pFormat.replace(new RegExp("%S", "g"), "{state}"); + pFormat = pFormat.replace(new RegExp("%Z", "g"), "{zip}"); + pFormat = pFormat.replace(new RegExp("%O", "g"), "{organisation_name}"); + pFormat = pFormat.replace(new RegExp("%X", "g"), ""); + pFormat = pFormat.replace(new RegExp("%n", "g"), "\n"); + + //shortform adito-placeholders + pFormat = pFormat.replace(new RegExp("{fn}", "g"), "{firstname}"); + pFormat = pFormat.replace(new RegExp("{ln}", "g"), "{lpFormattname}"); + pFormat = pFormat.replace(new RegExp("{ti}", "g"), "{title}"); + pFormat = pFormat.replace(new RegExp("{sa}", "g"), "{salutation}"); + + if (pAddrData[8] == pAddrData[9]) + pFormat = pFormat.replace(new RegExp("%D", "g"), "{district}"); + else + pFormat = pFormat.replace(new RegExp("%D", "g"), "{district} \n {region}"); + + if(pCountry == undefined || pCountry == null || pCountry == true) + pFormat = pFormat + "\n {country}"; + + return pFormat; } \ No newline at end of file diff --git a/process/Calendar_lib/process.js b/process/Calendar_lib/process.js index 2c0288ceafb3eee49c338e30c930c6e8792c3267..9e2f42f747062eecc0d1b07064c8236f92e3b185 100644 --- a/process/Calendar_lib/process.js +++ b/process/Calendar_lib/process.js @@ -1,1907 +1,1907 @@ -import("system.neon"); -import("system.vars"); -import("system.db"); -import("system.translate"); -import("system.datetime"); -import("system.swing"); -import("system.eMath"); -import("system.calendars"); -import("system.logging"); -import("system.tools"); -import("system.text"); -import("system.question"); -import("system.SQLTYPES"); -import("system.result"); -import("Util_lib"); -import("system.util") - - -/** - * @class - **/ -function CalendarUtil(){} - - -/* - * Erzeugt und öffnet ein neues Aufgabenobjekt (mit einem Link). - * - * @param {String} pSummary opt die Zusammenfassung - * @param {String} pDescription opt die Beschreibung - * @param {Boolean} pWithLink opt TRUE legt eine Verknüpfung zu $image.frametable - * @param {String[][]} pWithLink opt pWithLink[0]: Name des Frames - * pWithLink[1]: ID des angezeigten Datensatzes - * pWithLink[2]: Verknüpfungstitel - * @param {String} pUser opt der Benutzer ( Login ) - * @param {[]} pAffectedUsers opt die betroffenen Benutzer ( Login ) - * @param {date} pStart opt Beginn der Aufgabe - * @param {date} pDuration opt Dauer - * @param {integer} pCategory opt ( calendars.CATEGORIES , encoded(String) z.B.: text.encodeMS(["Service"]) ) - * @param {String} pStatus opt Status des Termins ( calendars.STATUS_TENTATIVE, calendars.STATUS_CONFIRMED, calendars.STATUS_CANCELLED ) - * @param {Array{[]} pComps4Refresh opt die zu aktualisierenden Komponenten - * - * @return {void} - */ -CalendarUtil.newTodo = function(pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus, pComps4Refresh) -{ - var todo = createEntry( calendars.VTODO, pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus ); - var prompts = []; - prompts["comp4refresh"] = []; - - if (pComps4Refresh == undefined) - pComps4Refresh = ["$comp.Aufgabe", "$comp.tbl_Aufgabe"]; - - for (var i = 0; i < pComps4Refresh.length; i++) - { - if ( vars.exists(pComps4Refresh[i])) prompts["comp4refresh"].push(pComps4Refresh[i]); - } - if(vars.getString("$sys.scope") == "vaadin") - neon.openCalendarEntry([todo], null, neon.OPERATINGSTATE_NEW, null) - else - { - if (vars.exists("$sys.currentwindow")) - prompts["window"] = vars.getString("$sys.currentwindow"); - if (vars.exists("$sys.currentimage")) - prompts["image"] = vars.getString("$sys.currentimage"); - - swing.openCalendarEntry([todo], null, false, prompts); - } -} - -/* - * Erzeugt eine neue Aufgabe (mit einem Link). - * - * @param {String} pSummary opt die Zusammenfassung - * @param {String} pDescription opt die Beschreibung - * @param {Boolean} pWithLink opt TRUE legt eine Verknüpfung zu $image.frametable - * @param {String[][]} pWithLink opt pWithLink[0]: Name des Frames - * pWithLink[1]: ID des angezeigten Datensatzes - * pWithLink[2]: Verknüpfungstitel - * @param {String} pUser opt der Benutzer ( Login ) - * @param {[]} pAffectedUsers opt die betroffenen Benutzer ( Login ) - * @param {date} pStart opt Beginn der Aufagebe - * @param {integer} pGroupType opt ( calendars.GROUP_SINGLE , calendars.GROUP_MULTI ) - * @param {date} pDuration opt Dauer - * @param {integer} pCategory opt ( calendars.CATEGORIES , encoded(String) z.B.: text.encodeMS(["Service"]) ) - * @param {String} pStatus opt Status der Aufgabe ( calendars.STATUS_TENTATIVE, calendars.STATUS_CONFIRMED, calendars.STATUS_CANCELLED ) - * @param {String} pPriority opt Priorität der Aufgabe - * @param {String} pReminder opt Erinnerung der Aufgabe - * - * @return {void} - */ - -CalendarUtil.newSilentTodo = function(pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pGroupType, pCategory, pStatus, pPriority, pReminder) -{ - if ( pGroupType == undefined ) pGroupType = calendars.GROUP_SINGLE; - var todo = createEntry( calendars.VTODO, pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus, pPriority, pReminder ); - - return calendars.insert([todo],calendars.GROUP_SINGLE); -} - -/* - * Erzeugt und öffnet ein neues Terminnobjekt mit einem Link. - * - * @param {String} pSummary opt die Zusammenfassung - * @param {String} pDescription opt die Beschreibung - * @param {Boolean} pWithLink opt TRUE legt eine Verknüpfung zu $image.frametable - * @param {String[][]} pWithLink opt pWithLink[0]: Name des Frames - * pWithLink[1]: ID des angezeigten Datensatzes - * pWithLink[2]: Verknüpfungstitel - * @param {String} pUser opt der Benutzer ( Login ) - * @param {[]} pAffectedUsers opt die betroffenen Benutzer ( Login ) - * @param {date} pStart opt Beginn der Aufagebe - * @param {date} pDuration opt Dauer - * @param {integer} pCategory opt ( calendars.CATEGORIES , encoded(String) z.B.: text.encodeMS(["Service"]) ) - * @param {String} pStatus opt Status des Termins ( calendars.STATUS_TENTATIVE, calendars.STATUS_CONFIRMED, calendars.STATUS_CANCELLED ) - * @param {Array{[]} pComps4Refresh opt die zu aktualisierenden Komponenten - * - * @return {void} - */ -CalendarUtil.newEvent = function( pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus, pComps4Refresh, pWorklistId) -{ - var event = createEntry( calendars.VEVENT, pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus ); - - var prompts = []; - prompts["comp4refresh"] = []; - if (pComps4Refresh == undefined) - pComps4Refresh = ["$comp.Aufgabe", "$comp.tbl_Termine"]; - for (i = 0; i < pComps4Refresh.length; i++) - { - if ( vars.exists(pComps4Refresh[i])) prompts["comp4refresh"].push(pComps4Refresh[i]); - } - - if(vars.getString("$sys.scope") == "vaadin") - neon.openCalendarEntry([event],"", neon.OPERATINGSTATE_NEW, null) - else - { - prompts["window"] = vars.getString("$sys.currentwindow"); - prompts["image"] = vars.getString("$sys.currentimage"); - if (pWorklistId != undefined) - prompts["worklistId"] = pWorklistId; - swing.openCalendarEntry([event], null, false, prompts); - } -} - - -/* - * Erzeugt einen neuen Termineintrag (mit einem Link). - * - * @param {String} pSummary opt die Zusammenfassung - * @param {String} pDescription opt die Beschreibung - * @param {Boolean} pWithLink opt TRUE legt eine Verknüpfung zu $image.frametable - * @param {String[][]} pWithLink opt pWithLink[0]: Name des Frames - * pWithLink[1]: ID des angezeigten Datensatzes - * pWithLink[2]: Verknüpfungstitel - * @param {String} pUser opt der Benutzer ( Login ) - * @param {[]} pAffectedUsers opt die betroffenen Benutzer ( Login ) - * @param {date} pStart opt Beginn des Termins - * @param {date} pDuration opt Dauer - * @param {integer} pGroupType opt ( calendars.GROUP_SINGLE , calendars.GROUP_MULTI ) - * @param {integer} pCategory opt ( calendars.CATEGORIES , encoded(String) z.B.: text.encodeMS(["Service"]) ) - * @param {String} pStatus opt Status des Termins ( calendars.STATUS_TENTATIVE, calendars.STATUS_CONFIRMED, calendars.STATUS_CANCELLED ) - * @param {String} pReminder opt Erinnerung des Termins - * - * @return {void} - */ -CalendarUtil.newSilentEvent = function( pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pGroupType, pCategory, pStatus, pReminder) -{ - if ( pGroupType == undefined ) pGroupType = calendars.GROUP_SINGLE; - var event = createEntry( calendars.VEVENT, pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus, undefined, pReminder ); - return calendars.insert( [event] , pGroupType ); -} - -/* - * Erzeugt ein neues Aufgaben- / Termin-Objekt (mit einem Link). - * - * @param {date} pType req Augabe oder Termin ( calendars.VTODO, calendars.VEVENT ) - * @param {String} pSummary opt die Zusammenfassung - * @param {String} pDescription opt die Beschreibung - * @param {Boolean} pWithLink opt TRUE legt eine Verknüpfung zu $image.frametable - * @param {String[][]} pWithLink opt pWithLink[0]: Name des Frames - * pWithLink[1]: ID des angezeigten Datensatzes - * pWithLink[2]: Verknüpfungstitel - * @param {String} pUser opt der Benutzer ( Login ) - * @param {[]} pAffectedUsers opt die betroffenen Benutzer ( [ Login ] ) - * @param {date} pStart opt Beginn - * @param {date} pDuration opt Dauer - * @param {integer} pCategory opt ( calendars.CATEGORIES , encoded(String) z.B.: text.encodeMS(["Service"]) ) - * @param {String} pStatus opt Status des Termins ( calendars.STATUS_TENTATIVE, calendars.STATUS_CONFIRMED, calendars.STATUS_CANCELLED ) - * @param {String} pPriority opt Priorität - * @param {String} pReminder opt Erinnerung - * -@return {Object} das EntryObjekt - */ -CalendarUtil.createEntry = function( pType, pSummary, pDescription, pWithLink, pAppLinkContext, pAppLinkId, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus, pPriority, pReminder ) -{ - var Entry = {}; - var framename; - var framdata; - var dbid; - var linktitle; - if ( pSummary == undefined || pSummary == null ) pSummary = ""; - if ( pDescription == undefined || pDescription == null ) - { - if(vars.getString("$sys.scope") == "vaadin") - pDescription = neon.getImageContent(vars.getString("$sys.currententityname")); - else - pDescription = swing.getImageContent(); - } - if ( pUser == undefined || pUser == null ) pUser = vars.getString("$sys.user"); - //kein translate.key hier, weil es sich um einen rein technischen Wert handelt: - if ( pStart == undefined ) pStart = datetime.toLong(datetime.toDate(parseInt(vars.getString("$sys.date")) + datetime.ONE_HOUR, "dd.MM.yyyy HH:00"), "dd.MM.yyyy HH:mm"); - if ( pCategory == undefined || pCategory == null ) pCategory = ""; - - if (pAffectedUsers == null || pAffectedUsers == undefined ) - { - Entry[calendars.AFFECTEDUSERS] = ""; - } - else - { - Entry[calendars.AFFECTEDUSERS] = text.encodeMS(calendars.getCalendarUsers(pAffectedUsers)); - } - Entry[calendars.TYPE] = pType; - Entry[calendars.DTSTART] = pStart; - if ( pType == calendars.VEVENT ) - { - if ( pDuration == undefined ) - pDuration = datetime.ONE_HOUR; - - Entry[calendars.DTEND] = String ( eMath.addInt( pStart, pDuration) ); - - if ( pStatus == undefined ) - pStatus = calendars.STATUS_CONFIRMED; - - pStatus = mapCalendarStatus(pStatus, calendars.getBackendType() ); - } - else if ( pType == calendars.VTODO ) - { - //kein translate.key hier, weil es sich um einen rein technischen Wert handelt: - if ( pDuration != undefined ) - Entry[calendars.DUE] = String ( eMath.addInt( pStart, pDuration) ); - else - Entry[calendars.DUE] = datetime.toLong(datetime.toDate(pStart, "dd.MM.yyyy 23:59") - ,"dd.MM.yyyy HH:mm"); - - if ( pStatus == undefined ) - pStatus = calendars.STATUS_NEEDSACTION; - - pStatus = mapCalendarStatus(pStatus, calendars.getBackendTypeTasks() ); - - } - - Entry[calendars.USER] = calendars.getCalendarUser(pUser); - Entry[calendars.DESCRIPTION] = pDescription; - Entry[calendars.SUMMARY] = pSummary; - Entry[calendars.STATUS] = pStatus; - Entry[calendars.CLASSIFICATION] = calendars.CLASSIFICATION_PUBLIC; - Entry[calendars.CATEGORIES] = pCategory; - - - if( pPriority != undefined ) - { - Entry[calendars.PRIORITY] = pPriority; - } - - if( pReminder != undefined) - { - Entry[calendars.HASREMINDER] = "true"; - Entry[calendars.REMINDER_DURATION] = pReminder; - } - else - Entry[calendars.HASREMINDER] = "false"; - - - if (pWithLink == false) - { - Entry[calendars.LINKS] = "0"; - } - else - { - var fd = new FrameData(); - if ( typeof(pWithLink) == "object" ) - { - for ( var li = 0; li < pWithLink.length; li++ ) - { - framename = pWithLink[li][0]; - framdata = fd.getData("name", framename, ["table","idcolumn","title"])[0]; - dbid = pWithLink[li][1]; - linktitle = framdata[2] + " - " + pWithLink[li][2]; - - Entry["LINK_ALIAS_" + ( li + 1 )] = vars.getString("$sys.dbalias"); - Entry["LINK_TABLE_" + ( li + 1 )] = framdata[0]; - Entry["LINK_IDCOLUMN_" + ( li + 1 )] = framdata[1]; - Entry["LINK_DBID_" + ( li + 1 )] = dbid; - Entry["LINK_FRAME_" + ( li + 1 )] = "comp." + framename; - Entry["LINK_TITLE_" + ( li + 1 )] = linktitle; - } - Entry[calendars.LINKS] = pWithLink.length.toString(); - } - else - { - if ( pWithLink == true || pWithLink == undefined ) - { - framename = vars.getString("$sys.currentimagename"); - framdata = fd.getData("name", framename, ["table","idcolumn","title"])[0]; - dbid = vars.getString("$comp.idcolumn"); - linktitle = framdata[2] + " - " + swing.getImageContent(); - } - Entry[calendars.LINKS] = "1"; - Entry["LINK_ALIAS_1"] = vars.getString("$sys.dbalias"); - Entry["LINK_TABLE_1"] = framdata[0]; - Entry["LINK_IDCOLUMN_1"] = framdata[1]; - Entry["LINK_DBID_1"] = dbid; - Entry["LINK_FRAME_1"] = "comp." + framename; - Entry["LINK_TITLE_1"] = linktitle; - } - } - - -if(pAppLinkContext && pAppLinkId) -{ - Entry["AppLinkContext"] = pAppLinkContext; - Entry["AppLinkId"] = pAppLinkId; -} - return Entry; -} - -/* - * Liefert den CalendarStatus übersetzt zurück. - * @param {String} pStatus req Status - * @param {String} pLanguage opt Sprache - * @param {String} pKind opt ToDo oder Event - * - * @return {String} übersetzte Status - */ -function getCalendarStatus( pStatus, pLanguage, pKind) -{ - //kein mappen des Status, da wirklich verschiedene Dinge angezeigt werden sollen - switch ( pStatus ) - { - case calendars.STATUS_BUSY: - return translate.text("Gebucht", pLanguage) - case calendars.STATUS_CANCELLED: - if(pKind == "ToDo" && pKind != undefined) return translate.text("Zurückgestellt", pLanguage) - return translate.text("Abgesagt", pLanguage) - case calendars.STATUS_COMPLETED: - return translate.text("Erledigt", pLanguage) - case calendars.STATUS_CONFIRMED: - return translate.text("Bestätigt", pLanguage) - case calendars.STATUS_FREE: - return translate.text("frei", pLanguage) - case calendars.STATUS_INPROCESS: - return translate.text("In Bearbeitung", pLanguage) - case calendars.STATUS_NEEDSACTION: - return translate.text("Nicht begonnen", pLanguage) - case calendars.STATUS_OOF: - return translate.text("Außer Haus", pLanguage) - case calendars.STATUS_TENTATIVE: - return translate.text("Vorläufig", pLanguage) - default: - return ""; - } -} - -/* - * Zu einer übergebenen Priorität wird ihre Bedeutung übersetzt und zurückgegeben. - * - * @param {String} pPriority req Priorität - * @param {String} pLanguage opt Sprache - * - * @return (String) übersetzte Bedeutung einer Priorität - */ -function getCalendarPriority(pPriority, pLanguage) -{ - switch(pPriority) - { - case "9": - return translate.text("niedrig", pLanguage); - break; - case "5": - return translate.text("normal", pLanguage); - break; - case "1": - return translate.text("hoch", pLanguage); - break; - default: - return translate.text("keine", pLanguage); - break; - } -} - -/* - * Liefert zum Objekt verknüpfte Aufgaben aus dem Kalender. - * - * @param {String} pFrame req Name des Frames - * @param {String} pDBID req ID des verknüpften Datensatzes - * @param {String} pAlias opt - * @param {String} pLanguage opt Sprache - * - * @return {[]} mit Aufgaben aus Kalender - */ -function getLinkedToDos (pFrame, pDBID, pAlias, pLanguage ) -{ - if (pAlias == undefined ) pAlias = vars.getString("$sys.dbalias"); - var tab = []; - var status = " and STATUS in ('NEEDS-ACTION', 'IN-PROCESS')"; - var exists = []; - var zustaendig = ""; - var today = getDate(vars.getString("$sys.date")); - var filtervalues = ["", "false"]; - if ( vars.exists("$image.FilterValuesT") ) - { - filtervalues = vars.get("$image.FilterValuesT"); - zustaendig = filtervalues[0] - if (filtervalues[1] == "true") status = " and STATUS in ('COMPLETED', 'CANCELLED')"; - } - - var entryids = db.table("select ENTRYID, OWNER from ASYS_CALENDARLINK " - + "join ASYS_CALENDARBACKEND on ELEMENTUID = ENTRYID where FRAME = 'comp." + pFrame + "' " - + "and ENTRYID is not null " - + "and ENTRYTYPE = " + calendars.VTODO + " " - + "and DBID = '" + pDBID + "' " - + status, pAlias); - - for (var i = 0; i < entryids.length; i++) - { - if ( exists.indexOf(entryids[i][0]) == -1) - { - try - { - var entry = calendars.getEntry(entryids[i][0], null, getTitleCalenderUser( entryids[i][1] ), calendars.VTODO); - var entr = new Array; - status = ""; - var user = tools.getUserByAttribute(tools.CALENDARID, entry[calendars.USER2]["paramvalue"].substr("mailto:".length)) - if(user == null) user = entry[calendars.USER2]["cn"]; - else user = user[tools.TITLE] - if ((user == zustaendig || zustaendig == "")) - { - entr[0] = text.encodeMS([entry[calendars.ID], user]); - var due = getDate(entry[calendars.DUE]); - if (due < today ) entr[1] = "-1769402"; - else if (due > today) entr[1] = "-16777216"; else entr[1] = "-16744020"; - entr[2] = "-1"; // Hintergrundfarbe - entr[3] = text.decodeMS(entry[calendars.AFFECTEDUSERS]).length; - entr[4] = entry[calendars.DUE] - entr[5] = getCalendarStatus( entry[calendars.STATUS], pLanguage, "ToDo"); - entr[6] = entry[calendars.SUMMARY] - entr[7] = getRealName([entry[calendars.ORGANIZER2]]); - entr[8] = getRealName(entry[calendars.ATTENDEES]); - entr[9] = entry[calendars.DESCRIPTION]; - entr[10] = entry[calendars.PRIORITY]; - tab.push(entr); - exists.push(entryids[i][0]); - } - } - catch (ex) - { - logging.log(ex); - } - } - } - array_mDimSort(tab, 4, false); //Sortierung nach Fälligkeitsdatum - return tab; -} - -/* - * Anzeige des Aufgaben-Filter - * - * @param {Object} pFilter req - * - * @return string Anzeige - */ -function show_filterLinkedToDos(pFilter) -{ - var retstring = ""; - if (pFilter[0] != "") - { - var userp = tools.getUser( pFilter[0] )[tools.PARAMS]; - retstring = translate.text("Aufgaben von") + " " + userp[tools.FIRSTNAME] + " " + userp[tools.LASTNAME]; - } - if (pFilter[1] == "true") retstring += ", " + translate.text("erledigt / zurückgestellt"); - - return retstring -} - -/* - * Liefert zum Objekt verknüpfte Events aus dem Kalender. - * - * @param {String} pFrame req Name des Frames - * @param {String} pDBID req ID des verknüpften Datensatzes - * @param {Object} pFilter opt - * @param {String} pAlias opt - * @param {String} pUser opt Benutzer - * - * @return {[]} mit Events aus Kalender - */ -function getLinkedEvents (pFrame, pDBID, pFilter, pAlias, pUser ) -{ - if ( pFilter == "" || pFilter == undefined) - pFilter = reset_filterEvent(); - - var tab = []; - var exists = []; - var conditions = []; - var today = getDate(vars.getString("$sys.date")); - var conditioncount = 0; - var stati = []; - - if ( pFilter.tentative == "true" ) - stati.push(mapCalendarStatus(calendars.STATUS_TENTATIVE, calendars.getBackendType() )); - - if ( pFilter.cancelled == "true" ) - stati.push(mapCalendarStatus(calendars.STATUS_CANCELLED, calendars.getBackendType() )); - - if ( pFilter.confirmed == "true" ) - stati.push(mapCalendarStatus(calendars.STATUS_CONFIRMED, calendars.getBackendType() )); - - if (calendars.getBackendType() == calendars.BACKEND_EXCHANGEWS) - stati.push(calendars.STATUS_FREE); - - if (pAlias == undefined ) pAlias = vars.getString("$sys.dbalias"); - - var entryids = db.table(["select ENTRYID, OWNER " - + "from ASYS_CALENDARLINK " - + "join ASYS_CALENDARBACKEND on ELEMENTUID = ENTRYID where FRAME = 'comp." - + pFrame + "' and ENTRYID is not null and ENTRYTYPE = " + calendars.VEVENT - + " and DBID = '" + pDBID + "' and DTSTART >= ?", - [ [ String(pFilter.datefrom - datetime.ONE_WEEK), SQLTYPES.DATE ]]], pAlias ); - - /* - * Check for rights before constructing condition otherwise you'll get an error by opening linked Data - */ - var userToRead = [] - if(pUser != undefined) - { - userToRead = getCalendarUsers( calendars.RIGHT_READ_APPOINTMENT, pUser ); - } - else - { - userToRead = calendars.getDisplayCalendarUsers(calendars.RIGHT_READ_APPOINTMENT); - } - var userMap = {}; - for (let i = 0; i < userToRead.length; i++) - { - userMap[userToRead[i][1]] = true; - } - - for ( var i = 0;i < entryids.length; i++) - { - var user = getTitleCalenderUser(entryids[i][1]); - if(userMap[user]) - { - for ( var z = 0; z < stati.length; z++ ) - _addEntryCondition(conditions, String(++conditioncount), - { - TYPE: calendars.VEVENT, - START: pFilter.datefrom, - END: pFilter.dateto, - USER: user, - STATUS: stati[z], - UID: entryids[i][0] - }); - } else continue - } - conditions["COUNT"] = String(conditioncount); - - var entries = calendars.getExpandedEntries(conditions, pFilter.datefrom, pFilter.dateto); - for ( let i = 0; i < entries.length; i++) - { - for (var j = 0; j < entries[i].length; j++) - { - var entry = entries[i][j]; - if( exists.indexOf(entry[calendars.ID]) == -1 && ( pFilter.category == "" || text.decodeMS(entry[calendars.CATEGORIES]).indexOf(pFilter.category) > 0)) - { - var entr = new Array; - var start = getDate(entry[calendars.DTSTART]); - var end = getDate(entry[calendars.DTEND]); - user = tools.getUserByAttribute(tools.CALENDARID, entry[calendars.USER2]["paramvalue"].substr("mailto:".length)) - if(user == null) user = entry[calendars.USER2]["cn"]; - else user = user[tools.TITLE] - entr[0] = text.encodeMS([entry[calendars.ID], user , entry[calendars.RECURRENCEID]]); - if (end < today) entr[1] = "-6710887" ; - else if (start <= today && end >= today ) entr[1] = "-16744020" ; - else entr[1] = "-16777216"; - entr[2] = "-1" - entr[3] = text.decodeMS(entry[calendars.AFFECTEDUSERS]).length; - entr[4] = entry[calendars.DTSTART] - entr[5] = entry[calendars.DTEND] - entr[6] = entry[calendars.SUMMARY] - entr[7] = getRealName([entry[calendars.ORGANIZER2]]); - entr[8] = getRealName(entry[calendars.ATTENDEES]); - entr[9] = entry[calendars.DESCRIPTION] - tab.push(entr); - exists.push(entry[calendars.ID]); - } - } - } - array_mDimSort(tab, 4, false); - return tab; -} - -/* - * Liefert Aufgaben aus dem Kalender. - * - * @param {Object} pFilter req - * @param {String} pLanguage opt - * @param {bool} pShortForm opt wenn true wird nur die kurzversion geladen - * - * @return {[]} mit allen aufgaben aus dem Kalender - */ -function getTodos( pFilter, pLanguage, pShortForm ) -{ - if ( pFilter == "" ) pFilter = reset_filterToDo(); - var tab = []; - var today = getDate (vars.getString("$sys.date")); - var conditions = []; - var conditioncount = 0; - var user = pFilter.user; - var stati = []; - var status = []; - var exists = []; - var entries = []; - - if ( pFilter.needs_action == "true" ) - { - stati.push(mapCalendarStatus(calendars.STATUS_NEEDSACTION, calendars.getBackendTypeTasks() )); - status.push("NEEDS-ACTION"); - } - if ( pFilter.in_process == "true" ) - { - stati.push(mapCalendarStatus(calendars.STATUS_INPROCESS, calendars.getBackendTypeTasks() )); - status.push("IN-PROCESS"); - } - if ( pFilter.completed == "true" ) - { - stati.push(mapCalendarStatus(calendars.STATUS_COMPLETED, calendars.getBackendTypeTasks() )); - status.push("COMPLETED"); - } - if ( pFilter.cancelled == "true" ) - { - stati.push(mapCalendarStatus(calendars.STATUS_CANCELLED, calendars.getBackendTypeTasks() )); - status.push("CANCELLED"); - } - if (pFilter.delegated == "true" ) - { - var from = [pFilter.datefrom, SQLTYPES.TIMESTAMP]; - var to = [pFilter.dateto, SQLTYPES.TIMESTAMP]; - setAllCalendarGrant(); - user = calendars.getCalendarUser(user); - user = db.table(["select ELEMENTUID, OWNER from ASYS_CALENDARBACKEND where ENTRYTYPE = 2 and OWNER != '" + user + "' and ORGANIZER = '" - + user + "' and STATUS in ('" + status.join("', '") + "') and (( STARTTIME >= ? and STARTTIME <= ?) or " - + "( ENDTIME >= ? and ENDTIME <= ? ) or ( STARTTIME >= ? and ENDTIME <= ? ))", [from, to, from, to, from, to]] ); - - for (let i = 0; i < user.length; i++ ) - { - try - { - entries.push([calendars.getEntry(user[i][0], null, getTitleCalenderUser(user[i][1]), calendars.VTODO)]); - } - catch(err){ - logging.log(err); - } - } - setCalendarGrant(); - } - else - { - if ( typeof( pFilter.user ) != "object" ) user = [user.trim()]; - for (let i = 0; i < user.length; i++ ) - for ( var z = 0; z < stati.length; z++ ) - _addEntryCondition(conditions, ++conditioncount, - { - TYPE: calendars.VTODO, - START: pFilter.datefrom, - END: pFilter.dateto, - USER: user[i], - STATUS: stati[z] - }); - - conditions["COUNT"] = String(conditioncount); - entries = calendars.getEntries(conditions); - } - - for (i = 0; i < entries.length; i++) - { - var entry = entries[i][0]; - user = tools.getUserByAttribute(tools.CALENDARID, entry[calendars.USER2]["paramvalue"].substr("mailto:".length)) - if (user == null) user = entry[calendars.USER2]["cn"]; - else user = user[tools.TITLE] - if ( !(user != vars.getString("$sys.user") && entry[calendars.CLASSIFICATION] == calendars.CLASSIFICATION_PRIVATE) // no privat - && !( pFilter.delegated == "true" && ( isAffectedUser( entry, pFilter.user) || exists.indexOf(entry[calendars.ID]) > -1 ) ) // no duplicate - && ( pFilter.category == "" || text.decodeMS(entry[calendars.CATEGORIES]).indexOf( pFilter.category ) > -1 ) ) // Filter category - { - var entr = []; - var links = entry[calendars.LINKS]; - var due = entry[calendars.DUE] != "" ? getDate(entry[calendars.DUE]) : ""; - entr[0] = text.encodeMS([entry[calendars.ID], user]); - if (due == today ) entr[1] = "-16744020" ; - else if(due == "") entr[1] = "-13395712"; - else if (due > today ) entr[1] = "-16777216"; - else entr[1] = "-1769402"; - if (entry[calendars.PRIORITY] == "1") entr[2] = "-100"; - entr[3] = entry[calendars.ATTENDEES].length; - entr[4] = entry[calendars.DUE]; - - if (pShortForm) - { - entr[5] = entry[calendars.SUMMARY]; - entr[6] = entry[calendars.DESCRIPTION]; - } - else - { - entr[5] = getCalendarStatus( entry[calendars.STATUS], pLanguage, "ToDo"); - entr[6] = getCalendarPriority( entry[calendars.PRIORITY], pLanguage); - entr[7] = entry[calendars.SUMMARY]; - entr[8] = getRealName( [ entry[calendars.ORGANIZER2] ] ); - entr[9] = getRealName( entry[calendars.ATTENDEES] ); - if (links == undefined) entr[10] = ""; else entr[10] = links; - entr[11] = entry[calendars.DESCRIPTION]; - entr[12] = entry[calendars.CREATED]; - } - - tab.push(entr); - if ( pFilter.delegated == "true" ) exists.push(entry[calendars.ID]); - } - } - - if (pShortForm) - sortArray(tab, -1, 4, 1, 5); - else - sortArray(tab, -1, 4, 1, 12 ); - - return tab; -} - -/* - * Fügt eine Condition hinzu - * - * @param {[]} pConditions req die Conditions - * @param {Integer} pIndex req Index der Condition - * @param {Object} pValues req - * - * @return {void} - */ -function _addEntryCondition(pConditions, pIndex, pValues) -{ - var params = ["TYPE", "START", "END", "USER", "STATUS", "UID"]; - - for (var i = 0; i < params.length; i++) - if (pValues[params[i]] != undefined) pConditions[params[i] + "_" + pIndex] = pValues[params[i]]; -} -CalendarUtil.addEntryCondition = function(pConditions, pIndex, pValues) -{ - _addEntryCondition(pConditions, pIndex, pValues); -} - -/* - * Liefert Events zu bestimmten Usern/Daten in einem Array. - * - * @param {Object} pFilter req - * @param {String} pLanguage opt - * @param {bool} pShortForm opt wenn true wird nur die kurzversion geladen - * - * @return {[]} - * [0] ID - * [1] Vordergrundfarbe - * [2] Hintergrundfarbe - * [3] Start - * [4] Ende - * [5] Betreff - * [6] Inhalt - * [7] User - * [8] Anzahl Verknüpfungen - * [9] Klassifikation (privat/öffentlich) - */ -function getEvents( pFilter, pLanguage, pShortForm ) -{ - if ( pFilter == "" ) pFilter = reset_filterEvent(); - var tab = []; - var conditions = []; - var today = getDate(vars.getString("$sys.date")); - var conditioncount = 0; - var stati = []; - var user = undefined; - if ( pFilter.tentative == "true" ) stati.push(calendars.STATUS_TENTATIVE); - if ( pFilter.cancelled == "true" ) stati.push(calendars.STATUS_CANCELLED); - if ( pFilter.confirmed == "true" ) - stati.push(mapCalendarStatus(calendars.STATUS_CONFIRMED, calendars.getBackendType() )); - - if (getCalendarSystemType(calendars.VEVENT) == calendars.BACKEND_EXCHANGEWS && pFilter.free == "true") - stati.push(calendars.STATUS_FREE); - - if ( pFilter.user != "" ) user = (pFilter.user).trim(); - - for ( var z = 0; z < stati.length; z++ ) - _addEntryCondition(conditions, String(++conditioncount), - { - TYPE: calendars.VEVENT, - START: pFilter.datefrom, - END: pFilter.dateto, - USER: user, - STATUS: stati[z] - }); - - conditions["COUNT"] = String(conditioncount); - - var entries = calendars.getExpandedEntries(conditions, pFilter.datefrom, pFilter.dateto); - for ( var i = 0;i < entries.length; i++) - { - for (var j = 0; j < entries[i].length; j++) - { - var entry = entries[i][j]; - if( pFilter.category == "" || text.decodeMS(entry[calendars.CATEGORIES]).indexOf(pFilter.category) > -1 ) - { - var entr = new Array; - var start = getDate(entry[calendars.DTSTART]); - var end = getDate(entry[calendars.DTEND]); - - user = tools.getUserByAttribute(tools.CALENDARID, entry[calendars.USER2]["paramvalue"].substr("mailto:".length)) - if(user == null) user = entry[calendars.USER2]["cn"]; - else user = user[tools.TITLE] - entr[0] = text.encodeMS([ entry[calendars.ID], user, entry[calendars.RECURRENCEID]]); - if (end < today ) entr[1] ="-6710887" ; - else if (start > today) entr[1] = "-16777216"; - else entr[1] = "-16744020" ; - entr[2] = "-1" - entr[3] = entry[calendars.ATTENDEES].length; - entr[4] = entry[calendars.DTSTART]; - entr[5] = entry[calendars.DTEND]; - entr[6] = entry[calendars.SUMMARY]; - - if (!pShortForm) - { - entr[7] = getRealName([entry[calendars.ORGANIZER2]]); - entr[8] = getRealName(entry[calendars.ATTENDEES]); - entr[9] = getCalendarStatus( entry[calendars.STATUS], pLanguage ); - if (entry[calendars.LINKS] == undefined) entr[10] = ""; - else entr[10] = entry[calendars.LINKS]; - entr[11] = entry[calendars.DESCRIPTION]; - } - tab.push( entr ); - } - } - } - sortArray(tab, -1, 4, 1, 6 ); - return tab; -} - -/* - * Liefert den echten Namen anhand des Logins zurück - * - * @param {Array}[]} pUserMap req pUserMap - * - * @return String - */ -function getRealName(pUserMap) -{ - var resultName = []; - var RealNames = getRealNameObject(pUserMap); - - for ( var realname in RealNames ) resultName.push(RealNames[realname]); - return resultName.join(", \n"); -} - -/* - * Liefert den echten Namen anhand des Logins zurück - * - * @param {Array}[]} pUserMap req pUserMap - * - * @return Object - */ -function getRealNameObject(pUserMap) -{ - var resultObject = {}; - var realname = ""; - - for ( let i = 0; i < pUserMap.length; i++ ) - { - let user = tools.getUserByAttribute(tools.CALENDARID, [pUserMap[i]["paramvalue"].substr("mailto:".length)]) - if ( user != null ) - { - if(vars.exists("$global.firstLastName") && vars.get("$global.firstLastName")) - realname = user[tools.PARAMS][tools.LASTNAME] + " " + user[tools.PARAMS][tools.FIRSTNAME]; - else realname = user[tools.PARAMS][tools.FIRSTNAME] + " " + user[tools.PARAMS][tools.LASTNAME]; - } - else //Der User existiert nicht im System - { - realname = pUserMap[i]["cn"] + " " + pUserMap[i]["paramvalue"]; - } - resultObject[pUserMap[i]["cn"]] = realname; - } - return resultObject; -} - - -/* - * Gibt an ob der User im Calendarobject vorhanden ist - * - * @param {Object} pEntry req Calendarobject - * @param {String} pUser req Title - * - * @return Object - */ -function isAffectedUser( pEntry, pUser) -{ - var usermap = pEntry[calendars.ATTENDEES]; - - for ( var i = 0; i < usermap.length; i++ ) - if( usermap[i]["cn"] == pUser ) - return true; - return false; -} - -/* - * Liefert das Datum ohne Urzeit zurück - * - * @param {String} datetimeIn req DatumZeit - * - * @return {date} - */ -function getDate( datetimeIn ) -{ - if ( datetimeIn != "") - return datetime.clearTime(datetimeIn); - else return ""; -} - -/* - * Setzt den Aufgaben-Filter - * - * @param {Object} pFilter req - * - * @return {image} - */ -function filterToDo( pFilter ) -{ - var error = true; - var von = pFilter.datefrom; - var bis = pFilter.dateto; - if ( pFilter == "" ) pFilter = reset_filterToDo(); - do - { - vars.set("$local.relation_id", pFilter.user); - vars.set("$local.edt_von", pFilter.datefrom); - vars.set("$local.edt_bis", pFilter.dateto); - vars.set("$local.category", pFilter.category); - vars.set("$local.delegated", pFilter.delegated); - vars.set("$local.needs_action", pFilter.needs_action); - vars.set("$local.in_process", pFilter.in_process); - vars.set("$local.completed", pFilter.completed); - vars.set("$local.cancelled", pFilter.cancelled); - var res = swing.askUserQuestion(translate.text("Bitte Filterbedingungen setzen"), "DLG_TASK_FILTER"); - if( res != null ) - { - pFilter.user = res["DLG_TASK_FILTER.relation_id"]; - pFilter.datefrom = res["DLG_TASK_FILTER.edt_von"]; - pFilter.dateto = res["DLG_TASK_FILTER.edt_bis"]; - pFilter.category = res["DLG_TASK_FILTER.category"]; - pFilter.delegated = res["DLG_TASK_FILTER.delegated"]; - pFilter.needs_action = res["DLG_TASK_FILTER.needs_action"]; - pFilter.in_process = res["DLG_TASK_FILTER.in_process"]; - pFilter.completed = res["DLG_TASK_FILTER.completed"]; - pFilter.cancelled = res["DLG_TASK_FILTER.cancelled"]; - if (pFilter.datefrom != "" && pFilter.dateto != "" && pFilter.dateto >= pFilter.datefrom ) error = false; - else question.showMessage(translate.text("Bitte Datumseingabe prüfen!")) - } - else - { - pFilter.datefrom = von; - pFilter.dateto = bis; - error = false; - } - } - while ( error ) - return pFilter; -} - -/* - * Setzt den Aufgaben-Filter - * - * @param {Object} pFilter req - * - * @return {image} - */ -function filterToDo_Neon( pFilter ) -{ - var error = true; - var von = pFilter.datefrom; - var bis = pFilter.dateto; - if ( pFilter == "" ) pFilter = reset_filterToDo(); - do - { - var prompts = { - FILTER_TEXT: translate.text("Bitte Filterbedingungen setzen"), - RESPONSIBLE: pFilter.user, - DATE_FROM: pFilter.datefrom, - DATE_TO: pFilter.dateto, - CATEGORY_TODO: pFilter.category, - DELEGATED: pFilter.delegated, - NEEDS_ACTION: pFilter.needs_action, - IN_PROCESS: pFilter.in_process, - COMPLETED: pFilter.completed, - CANCELLED: pFilter.cancelled - } - - var buttons = { - "ok" : translate.text("OK"), - "": translate.text("Abbrechen") - }; - var defaultButton = "ok"; - - var res = question.openDialog("DLG_FILTER_TODO_Neon", prompts, buttons, defaultButton); - - if( res.button != null ) - { - pFilter.user = res.RESPONSIBLE; - pFilter.datefrom = res.DATE_FROM; - pFilter.dateto = res.DATE_TO; - pFilter.category = res.CATEGORY_TODO; - pFilter.delegated = res.DELEGATED; - pFilter.needs_action = res.NEEDS_ACTION; - pFilter.in_process = res.IN_PROCESS; - pFilter.completed = res.COMPLETED; - pFilter.cancelled = res.CANCELLED; - if (pFilter.datefrom != "" && pFilter.dateto != "" && pFilter.dateto >= pFilter.datefrom ) error = false; - else question.showMessage(translate.text("Bitte Datumseingabe prüfen!")) - } - else - { - pFilter.datefrom = von; - pFilter.dateto = bis; - error = false; - } - } - while ( error ) - return pFilter; -} - - -/* - * Anzeige des Aufgaben-Filter - * - * @param {Object} pFilter req - * - * @return string Anzeige - */ -function show_filterToDo(pFilter) -{ - var retstring = ""; - var userp = tools.getUser( pFilter.user )[tools.PARAMS]; - if (pFilter.user != "") retstring = (translate.text("Aufgaben von") + " " + userp[tools.FIRSTNAME] + " " + userp[tools.LASTNAME]); - if (pFilter.datefrom != "") retstring += ", " + datetime.toDate(pFilter.datefrom, translate.text("dd.MM.yyyy")); - if (pFilter.dateto != "") retstring += " - " + datetime.toDate(pFilter.dateto, translate.text("dd.MM.yyyy")); - if (pFilter.category != "") retstring += ", " + translate.text("Kategorie") + " " + pFilter.category; - if (pFilter.delegated == "true") retstring += ", " + translate.text("delegiert"); - if (pFilter.needs_action == "true") retstring += ", " + translate.text("Nicht begonnen"); - if (pFilter.in_process == "true") retstring += ", " + translate.text("In Bearbeitung"); - if (pFilter.completed == "true") retstring += ", " + translate.text("Erledigt"); - if (pFilter.cancelled == "true") retstring += ", " + translate.text("Zurückgestellt"); - - return retstring -} - -/* - * Setzt den Aufgaben-Filter zurück - * - * @return {filter} - */ -function reset_filterToDo() -{ - var today = getDate (vars.getString("$sys.date")); - - return pFilter = { - user: vars.getString("$sys.user"), - datefrom: String(eMath.subInt(today, 720 * datetime.ONE_DAY)), - dateto: String(eMath.addInt(eMath.addInt(today, 3 * datetime.ONE_DAY) - ,datetime.ONE_DAY - datetime.ONE_MINUTE)), - category: "", - delegated: "", - needs_action: "true", - in_process: "true", - completed: "", - cancelled: "" - }; -} - -/* - * Setzt den Event-Filter - * - * @param {Object} pFilter req - * - * @return {image} - */ -function filterEvent( pFilter ) -{ - var error = true; - var von = pFilter.datefrom; - var bis = pFilter.dateto; - if ( pFilter == "" ) pFilter = reset_filterEvent(); - do - { - vars.set("$local.relation_id", pFilter.user); - vars.set("$local.edt_von", pFilter.datefrom); - vars.set("$local.edt_bis", pFilter.dateto); - vars.set("$local.category", pFilter.category); - vars.set("$local.tentative", pFilter.tentative); - vars.set("$local.confirmed", pFilter.confirmed); - vars.set("$local.cancelled", pFilter.cancelled); - vars.set("$local.free", pFilter.free); - var res = swing.askUserQuestion(translate.text("Bitte Filterbedingungen setzen"), "DLG_EVENT_FILTER"); - if( res != null ) - { - pFilter.user = res["DLG_EVENT_FILTER.relation_id"]; - pFilter.datefrom = res["DLG_EVENT_FILTER.edt_von"]; - pFilter.dateto = res["DLG_EVENT_FILTER.edt_bis"]; - pFilter.category = res["DLG_EVENT_FILTER.category"]; - pFilter.tentative = res["DLG_EVENT_FILTER.tentative"]; - pFilter.confirmed = res["DLG_EVENT_FILTER.confirmed"]; - pFilter.cancelled = res["DLG_EVENT_FILTER.cancelled"]; - pFilter.free = res["DLG_EVENT_FILTER.free"]; - if (pFilter.datefrom != "" && pFilter.dateto != "" && pFilter.dateto >= pFilter.datefrom ) error = false; - else question.showMessage(translate.text("Bitte Datumseingabe prüfen!")) - } - else - { - pFilter.datefrom = von; - pFilter.dateto = bis; - error = false; - } - } - while ( error ) - return pFilter; -} - -/* - * Setzt den Event-Filter - * - * @param {Object} pFilter req - * - * @return {image} - */ -function filterEvent_Neon( pFilter ) -{ - var error = true; - var von = pFilter.datefrom; - var bis = pFilter.dateto; - if ( pFilter == "" ) pFilter = reset_filterEvent(); - do - { - var buttons = { - "ok" : translate.text("OK"), - "": translate.text("Abbrechen") - }; - var defaultButton = "ok"; - - var prompts = { - FILTER_TEXT: translate.text("Bitte Filterbedingungen setzen"), - RESPONSIBLE_APPOINTMENT: pFilter.user, - DATE_FROM: pFilter.datefrom, - DATE_TO: pFilter.dateto, - CATEGORY_APPOINTMENT: pFilter.category, - TENTATIVE: pFilter.tentative, - CONFIRMED: pFilter.confirmed, - CANCELLED: pFilter.cancelled - } - var res = question.openDialog("DLG_FILTER_APPOINTMENT_Neon", prompts, buttons, defaultButton); - if( res.button != null ) - { - pFilter.user = res.RESPONSIBLE_APPOINTMENT; - pFilter.datefrom = res.DATE_FROM; - pFilter.dateto = res.DATE_TO; - pFilter.category = res.CATEGORY_APPOINTMENT; - pFilter.tentative = res.TENTATIVE; - pFilter.confirmed = res.CONFIRMED; - pFilter.cancelled = res.CANCELLED; - if (pFilter.datefrom != "" && pFilter.dateto != "" && pFilter.dateto >= pFilter.datefrom ) error = false; - else question.showMessage(translate.text("Bitte Datumseingabe prüfen!")) - } - else - { - pFilter.datefrom = von; - pFilter.dateto = bis; - error = false; - } - } - while ( error ) - return pFilter; -} - -/* - * Anzeige des Event-Filter - * - * @param {Object} pFilter req - * - * @return string Anzeige - */ -function show_filterEvent(pFilter) -{ - var retstring = ""; - - var userp = tools.getUser( pFilter.user )[tools.PARAMS]; - if (pFilter.user != "") retstring = translate.text("Termine von") + " " + userp[tools.FIRSTNAME] + " " + userp[tools.LASTNAME]; - if (pFilter.datefrom != "") retstring += ", " + datetime.toDate(pFilter.datefrom, translate.text("dd.MM.yyyy")); - if (pFilter.dateto != "") retstring += " - " + datetime.toDate(pFilter.dateto, translate.text("dd.MM.yyyy")); - if (pFilter.category == "true") retstring += ", " + translate.text("Kategorie") + " " + pFilter.category; - if (pFilter.tentative == "true") retstring += ", " + translate.text("Vorläufig"); - if (pFilter.confirmed == "true") retstring += ", " + translate.text("Bestätigt"); - if (pFilter.cancelled == "true") retstring += ", " + translate.text("Abgesagt"); - - return retstring -} - -/* - * Setzt den Event-Filter zurück - * - * @return {filter} - */ -function reset_filterEvent() -{ - var today = getDate (vars.getString("$sys.date")); - - return pFilter = { - user: vars.getString("$sys.user"), - datefrom: String(today), //nur die Termine ab heute anzeigen, - //die von vor einer Woche sind uninteressant - dateto: String(eMath.addInt(eMath.addInt(today, datetime.ONE_WEEK) - ,datetime.ONE_DAY - datetime.ONE_MINUTE)), - category: "", - tentative: "true", - confirmed: "true", - cancelled: "", - free: "true" - }; -} - -/* - * Setzt den Aufgaben-Filter in Tab Aufgaben - * - * @return {image} - */ -function filterLinkedToDo() -{ - var filtervalues = ["", "false"]; - vars.set("$local.CalenderUser", getCalenderUser( calendars.RIGHT_READ_TASK )); - - //Vorbelegen der Werte, wenn bereits gewählt wurde: - if(vars.exists("$image.FilterValuesT")) - { - filtervalues = vars.get("$image.FilterValuesT"); - vars.set("$local.relation_id", filtervalues[0]); - vars.set("$local.done", filtervalues[1]); - } - - var res = swing.askUserQuestion(translate.text("Bitte Filterbedingungen setzen"), "DLG_TASK_DATE_LINKED_FILTER"); - - if( res != null && res != undefined && res != "") - { - filtervalues[0] = res["DLG_TASK_DATE_LINKED_FILTER.relation_id"]; - filtervalues[1] = res["DLG_TASK_DATE_LINKED_FILTER.done"] - } - vars.set("$image.FilterValuesT", filtervalues ); - - return(filtervalues); -} - -/* - * Setzt den Aufgabe-Filter zurück - * - * @return {image} - */ -function resetfilterLinkedToDo() -{ - var filtervalues = ["", "false"]; - - vars.set("$image.FilterValuesT", filtervalues ); - -} - -/* - * setzt die Kalenderrechte - * - * @return {void} - */ -function setCalendarGrant() -{ - calendars.resetCalendarUser(); - var user_read_todo = []; - var user_write_todo = []; // ["Admin"] - var user_read_event = []; - var user_write_event = []; - var tree = {}; - var data = db.table("select THEMEID, THEME.THEME_ID, LOGIN, STATUS from THEME " - + " left join EMPLOYEE on EMPLOYEE.THEME_ID = THEMEID left join RELATION on RELATION_ID = RELATIONID and STATUS = 1" - +" where KIND = 2"); - for ( let i = 0; i < data.length; i++) - { - if ( tree[data[i][0]] == undefined ) tree[data[i][0]] = { - pid: data[i][1], - isuser: false - }; - if ( data[i][2] != "" && data[i][3] != "" ) tree[data[i][2]] = { - pid: data[i][0], - isuser: true - }; - } - - var user = vars.getString("$sys.user"); - // Lese- und Schreibrechte auf Kalender aus Datentabelle holen - data = db.table("select HASRIGHTFOR, TODO_RIGHTS, EVENT_RIGHTS from AOSYS_CALENDAR_RIGHTS where LOGIN = '" + user + "'"); - for ( var i = 0; i < data.length; i++ ) - if(tree[data[i][0]] != undefined) - tree[data[i][0]].grants = data[i].slice(1); - - for ( login in tree ) - { - if( tree[login].isuser ) - { - var grantstodo = __getGrants( login, 0 ); - var grantsevent = __getGrants( login, 1 ); - if ( grantstodo.length + grantsevent.length > 0 ) - { - if ( grantstodo == "1" || grantstodo == "3") user_read_todo.push(login); - if ( grantstodo == "2" || grantstodo == "3") user_write_todo.push(login); - if ( grantsevent == "1" || grantsevent == "3") user_read_event.push(login); - if ( grantsevent == "2" || grantsevent == "3") user_write_event.push(login); - } - } - } - calendars.setCalendarUser(user_read_todo, calendars.RIGHT_READ_TASK, true, calendars.SORTSTRATEGY_NATURAL ); - calendars.setCalendarUser(user_write_todo, calendars.RIGHT_WRITE_TASK, true, calendars.SORTSTRATEGY_NATURAL ); - calendars.setCalendarUser(user_read_event, calendars.RIGHT_READ_APPOINTMENT, true, calendars.SORTSTRATEGY_NATURAL ); - calendars.setCalendarUser(user_write_event, calendars.RIGHT_WRITE_APPOINTMENT, true, calendars.SORTSTRATEGY_NATURAL ); - - //********** Ressourcen in Kalender einfügen ************ - var ressource = tools.getUsersWithRole("PROJECT_Ressource"); - calendars.setCalendarUser( ressource, calendars.RIGHT_READ_APPOINTMENT | calendars.RIGHT_WRITE_APPOINTMENT ); - - //add all users from support-role since support-action-tasks (sp_supportAktionen) generates tasks for all support-role members - //and if you're a member you are allowed to edit these - if (tools.hasRole(user, "PROJECT_Support")) - { - var support = tools.getUsersWithRole("PROJECT_Support"); - calendars.setCalendarUser( support, calendars.RIGHT_WRITE_TASK | calendars.RIGHT_READ_TASK ); - } - - function __getGrants( pKey, pIndex ) - { - var grants = []; - if ( tree[pKey].grants != undefined && tree[pKey].grants[pIndex]) grants = tree[pKey].grants[pIndex]; - else if ( tree[pKey].pid != "" ) grants = __getGrants( tree[pKey].pid, pIndex ); - return grants; - } -} - -/* - * setzt Recht für alle Kalender - * - * @return {void} - */ -function setAllCalendarGrant() -{ - calendars.resetCalendarUser(); - var users = tools.getStoredUsers(); - var calendar_user = []; - for ( var i = 0; i < users.length; i++ ) calendar_user.push( users[i][1] ); - calendars.setCalendarUser(calendar_user, calendars.RIGHT_READ_TASK | calendars.RIGHT_WRITE_TASK, false, calendars.SORTSTRATEGY_NATURAL ); -} - -/* - * gibt die Logins der user, die den übergebenen User als Attribute eingetragen haben, zurück - * - * @param {[]} pUsers req Logins - * @param {String []} pAttrName req AttributeName für Employee - * @param {String []} pFields opt - * - * @return {String []} Logins - */ -function getUsersbyAttr( pUsers, pAttrName, pFields ) -{ - if (typeof(pAttrName) == "string") pAttrName = [pAttrName] - - if ( pFields == undefined ) - { - pFields = ["LOGIN"]; - } - - var sqlstr = "select " + pFields.join(", ") + " from ATTRLINK join ATTR on ATTRLINK.ATTR_ID = ATTRID and OBJECT_ID = 12 " - + "and ATTRNAME in ('" + pAttrName.join("','") + "') " - + " join EMPLOYEE on EMPLOYEEID = ATTRLINK.ROW_ID join RELATION on RELATION_ID = RELATIONID join PERS on PERS_ID = PERSID" - + " where VALUE_ID in (select EMPLOYEEID from EMPLOYEE where LOGIN in ('" + pUsers.join("','") + "'))" - + ""; - - if(pFields.length == 1) - return db.array(db.COLUMN, sqlstr); - else - return db.table(sqlstr); -} - -/* - * Gibt die Anzahl der verknüpften Aufgaben und Termine zurück. - * - * @param {String} pID req - * @param {String} pFrame req - * - * @return {String} text - */ -function countLinkedTodoEvent(pID, pFrame) -{ - var today = getDate (vars.getString("$sys.date")); - var datefrom = String(today); - var dateto = String(eMath.addInt(today, datetime.ONE_WEEK)); - - var str = "select count(distinct ELEMENTUID) from ASYS_CALENDARLINK join ASYS_CALENDARBACKEND on ELEMENTUID = ASYS_CALENDARLINK.ENTRYID " - + " where FRAME = 'comp." + pFrame + "' and ELEMENTUID is not null and DBID = '" + pID + "'"; - var rettask = db.cell(str + "and ENTRYTYPE = " + calendars.VTODO + " and STATUS in ('" - + mapCalendarStatus(calendars.STATUS_NEEDSACTION, calendars.getBackendTypeTasks() ) + "', '" - + mapCalendarStatus(calendars.STATUS_INPROCESS, calendars.getBackendTypeTasks() ) + "')"); - - var eventStatusList = [ - mapCalendarStatus(calendars.STATUS_CONFIRMED, calendars.getBackendType() ) - ,mapCalendarStatus(calendars.STATUS_TENTATIVE, calendars.getBackendType() ) - ]; - - if (calendars.getBackendType() == calendars.BACKEND_EXCHANGEWS) - eventStatusList.push(calendars.STATUS_FREE); - - var retevent = db.cell([str + " and ENTRYTYPE = " + calendars.VEVENT + " and STATUS in ('" + eventStatusList.join("', '") + "')" - + " and DTSTART >= ? and DTEND <= ?", - [ [ String(datefrom), SQLTYPES.DATE ], [String(dateto), SQLTYPES.DATE ] ]]); - - result.string(translate.withArguments("&Aufg / Term (%0/%1)", [rettask, retevent])); -} - -/* - * Gibt die Anzahl der verknüpften Aufgaben zurück. - * - * @param {String} pID req - * @param {String} pFrame req - * - * @return {String} text - */ -function countLinkedTodo(pID, pFrame) -{ - var str = "select count(distinct ELEMENTUID) " - + "from ASYS_CALENDARLINK " - + "join ASYS_CALENDARBACKEND on ELEMENTUID = ASYS_CALENDARLINK.ENTRYID " - + " where FRAME = 'comp." + pFrame + "' " - + "and ELEMENTUID is not null and DBID = '" + pID + "'"; - - var rettask = db.cell(str + "and ENTRYTYPE = " + calendars.VTODO - + " and STATUS in ('" - + mapCalendarStatus(calendars.STATUS_NEEDSACTION, calendars.getBackendTypeTasks() ) + "', '" - + mapCalendarStatus(calendars.STATUS_INPROCESS, calendars.getBackendTypeTasks() ) + "')" - + ""); - - result.string(translate.withArguments("&Aufgaben (%0)", [rettask])); -} - -/* - * Gibt die Überschneidungen von Termine zurück. - * - * @param {Date} pStart req - * @param {Date} pEnd req - * @param {Array} pUsers req - * - * @return {String Array} Termine - */ -function getOverlappingEvents(pStart, pEnd, pUsers ) -{ - var resultEvents = new Array(); - var users = pUsers; - if (calendars.getBackendType() == calendars.BACKEND_DB && pStart != "" && pEnd != "" && users.length > 0) - { - calendars.clearCache(); - for (var u = 0; u < users.length; u++) - { - var localuid = vars.get("$image.entry")[calendars.ID] - var condition = new Array(); - condition["COUNT"] = "1"; - condition["TYPE_1"] = calendars.VFREEBUSY; - condition["USER_1"] = users[u][0]; - condition["START_1"] = pStart; - condition["END_1"] = pEnd; - - var fbsall = calendars.getEntries(condition); - for (var j = 0; j < fbsall.length; j++) - { - var fbs = fbsall[j]; - for (var i = 0; i < fbs.length; i++) - { - var next = fbs[i]; - var uid = next[calendars.ID]; - var sum = next[calendars.SUMMARY]; - if (uid != localuid) - { - var freebusy = next[calendars.FREEBUSY]; - var freebusyDec = text.decodeMS(freebusy); - var match = false; - for (var k = 0; k < freebusyDec.length; k++) - { - var freebusyInstance = text.decodeMS(freebusyDec[k]); - if (!freebusyInstance[0].equals("FREE")) - { - match = true; - } - } - if (match) resultEvents.push([users[u][2], sum != null && sum.length > 0 ? sum : "?", uid]); - } - } - } - } - } - return resultEvents; -} - -/* - * Überprüft den Eintrag, wenn eine neue Aufgaben angelegt wird darauf, ob private Aufgaben für andere erstellt werden - * - * @param {String[]} pUser die Liste der User, denen die Aufgabe zugewiesen werden soll - * @param {String} pClassification die Klassifizierung der Aufgabe - "PRIVATE" - * - * @return {Boolean} ob der Eintrag in der Konstellation möglich ist, wenn nicht wird eine Meldung ausgegeben - */ -function checkEntry(pUser, pClassification ) -{ - if( pClassification == "PRIVATE" && - ( pUser.length > 1 || text.decodeMS(pUser[0][0])[1] != "CN:" + vars.getString("$sys.user"))) - { - question.showMessage(translate.text("Eine private Aufgabe kann nicht jemand anderem zugewiesen werden.")); - return false; - } - else - { - return true; - } -} - -/* - * Verschiebt ein Calendareintrag - * - * @param {String[]} pIDs req die zu verschiebenden Ids mit den Calenderinformationen (Multistring) - * @param {String} pTblCompName opt die Komponente die aktualisiert werden soll - * - * @return {void} - */ -function shiftEntry(pIDs, pTblCompName) -{ - var datenew = swing.askUserQuestion(translate.text("Verschieben auf Datum?"), "DLG_DATE"); - if (datenew != null ) - { - var grantedUsers = calendars.getDisplayCalendarUsers(calendars.RIGHT_WRITE_TASK); - var usermap = {}; - var granted = true; - for (let i = 0; i < grantedUsers.length; i++) - { - usermap[grantedUsers[i][1]] = true; - } - - datenew = datetime.clearTime(datenew["DLG_DATE.Edit_date"]); - if (datenew <= vars.getString("$sys.today")) - question.showMessage(translate.text("nur Verschiebung in die Zukunft erlaubt!")); - else - { - for (var i = 0, j = pIDs.length; i < j; i++) - { - var id = text.decodeMS(pIDs[i]); - var entry = calendars.getEntry(id[0], null, id [1], calendars.VTODO); - var affectedUsers = entry[calendars.ATTENDEES]; - - granted = hasGrantForEntryByObject(affectedUsers, usermap); - if(granted) - { - //Zeitdifferenz von Aufgabenstart und -ende - var dateDiff = eMath.subInt(entry[calendars.DUE], entry[calendars.DTSTART]); - - //Startzeit der Aufgabe - var startTime = eMath.subInt(entry[calendars.DTSTART] - , datetime.clearTime(entry[calendars.DTSTART])); - - entry[calendars.DTSTART] = eMath.addInt(datenew, startTime); - entry[calendars.DUE] = eMath.addInt(entry[calendars.DTSTART], dateDiff); - calendars.update( [ entry ] ); - } - else - question.showMessage(translate.text("Keine Berechtigung zum Verschieben der Aufgabe")); - } - } - } -} - -/* - * Gibt eine Aufgabe weiter - * - * @param {String} pIDs die ID der Aufgabe, welche weitergegeben werden soll - * @param {String} pTblCompName die Komponente der Aufgaben, die aktualisiert werden soll - * - * @return {void} - */ -function handOverToDo(pIDs, pTblCompName) -{ - var calendar_user = ""; - var users = getCalenderUser( calendars.RIGHT_WRITE_TASK ); - var publicCount = 0; - var privateCount = 0; - var notGrantedCount = 0; - - var grantedUsers = calendars.getDisplayCalendarUsers(calendars.RIGHT_WRITE_TASK); - var userMap = {}; - var granted = true; - for (let i = 0; i < grantedUsers.length; i++) - { - userMap[grantedUsers[i][1]] = true; - } - - if (pIDs.length == 1) // only one todo and private - { - var id = text.decodeMS( pIDs[0] ); - var entry = calendars.getEntry( id[0], null, id[1] ); - if(entry[calendars.CLASSIFICATION] == calendars.CLASSIFICATION_PRIVATE) - { - question.showMessage(translate.text("Kein Weitergeben von privaten Aufgaben möglich!")); - return; - } - } - - for ( let i = 0; i < users.length; i++) if (pIDs.length > 0 || users[i][0] != id[1]) calendar_user += "|" + users[i][1]; - var selection = swing.askQuestion(translate.text("Benutzer auswählen"), swing.QUESTION_COMBOBOX, calendar_user); - if (selection != null) - { - for ( let i = 0; i < users.length; i++) - { - if ( selection == users[i][1] ) - { - selection = users[i]; - break; - } - } - for( let i = 0; i < pIDs.length; i++) - { - let id = text.decodeMS( pIDs[i] ); - let entry = calendars.getEntry( id[0], null, id[1] ); - if(entry[calendars.CLASSIFICATION] == calendars.CLASSIFICATION_PRIVATE) privateCount++; - else //Nur öffentliche Aufgabe kann weiter gegeben werden. - { - // User austauschen - var usermap = entry[calendars.ATTENDEES]; - var affectedusers = []; - - granted = hasGrantForEntryByObject(usermap, userMap); - - for (var ui = 0; ui < usermap.length; ui++) - { - var login_cn = usermap[ui]["cn"]; - var user = tools.getUserByAttribute(tools.CALENDARID, usermap[ui]["paramvalue"].substr("mailto:".length)) - if (user == null) user = login_cn; - else user = user[tools.TITLE] - - if ( user == id[1] ) affectedusers.push(selection[0]); - else if ( user != selection[0] ) affectedusers.push(user); - } - if(granted) - { - entry[calendars.AFFECTEDUSERS] = text.encodeMS(calendars.getCalendarUsers(affectedusers)); - calendars.update([entry]); - publicCount++; - } - else notGrantedCount++ - } - } - question.showMessage(translate.withArguments("%0 Aufgabe(n) erfolgreich weitergegeben an: %1" - + (privateCount == 0 ? "" : "\n%2 private Aufgabe(n) können nicht weitergegeben werden.") - +(notGrantedCount == 0 ? "" : "\n%3 Aufgabe(n) können aufgrund fehlender Berechtigung nicht weitergegeben werden."), - [publicCount, selection[1], privateCount, notGrantedCount])); - - } -} - -// ToDo prüfen !! -/* - * Verschiebt die Kalendereinträge bei Login-Änderung - * - * @param {String} pNewlogin req - * @param {String} pOldlogin req - * @param {String} pNewCalendarID req - * @param {String} pOldCalendarID req - * - * @return {void} - */ -function moveCalendarData ( pNewlogin, pOldlogin, pNewCalendarID, pOldCalendarID ) -{ - var newcaluser = text.encodeMS(["mailto:" + pNewCalendarID, "CN:" + pNewlogin]); - var oldcaluser = text.encodeMS(["mailto:" + pOldCalendarID, "CN:" + pOldlogin]); - db.runStatement("update ASYS_CALENDARBACKEND set OWNER = '" + newcaluser + "' where OWNER = '" + oldcaluser + "'"); - db.runStatement("update ASYS_CALENDARBACKEND set ORGANIZER = '" + newcaluser + "' where ORGANIZER = '" + oldcaluser + "'"); - - if(pNewCalendarID != pOldCalendarID) //Nur wenn sich die E-Mailadresse geändert hat - { - //Messenger-Historien - db.runStatement("update ASYS_XMPP_HISTORY set JID_FROM = '" + pNewCalendarID +"' where JID_FROM = '" + pOldCalendarID +"'", "_____SYSTEMALIAS"); - db.runStatement("update ASYS_XMPP_HISTORY set JID_TO = '" + pNewCalendarID +"' where JID_TO = '" + pOldCalendarID +"'", "_____SYSTEMALIAS"); - } -} - -/* - * Löst den CalenderUser in lesbarer From auf - * - * @param {String} pValue req - * - * @return {String} übersetzten Wert - */ -function getCalUser( pValue ) -{ - var realname = pValue; - var user = tools.getUser( text.decodeMS(pValue)[1].split(":")[1] ); - if ( user != null ) - { - realname = user[tools.PARAMS][tools.FIRSTNAME] + " " + user[tools.PARAMS][tools.LASTNAME]; - } - return realname; -} - -/* - * Gibt den Login eines CalenderUser zurück - * - * @param {String} pCalendarUser req - * - * @return {String} Title - */ -function getTitleCalenderUser( pCalendarUser ) -{ - var data = text.decodeMS(pCalendarUser) - for ( var i = 0; i < data.length; i++ ) - { - //if login changes we have to check calendarid - if ( data[i].substr(0, "mailto:".length).toUpperCase() == "MAILTO:" ) - { - var user = tools.getUserByAttribute(tools.CALENDARID, [data[i].substr("mailto:".length)]); - if (user != null ) - return user[tools.TITLE]; - } - - if ( data[i].substr(0, 3).toUpperCase() == "CN:" ) - return data[i].substr(3); - } - return ""; -} - - -/* - * Gibt den richtigen Status zum Prüfen je nach Backend zurück - * - * - * @param {String} pStatus req die konstante für den zu prüfenden status, - * z.B. calendars.STATUS_INPROCESS - * - * @param {String} pCalendarType req die konstante für den typen des Termin- oder Aufgabenbackends, - * z.B. calendars.BACKEND_DB - * - * @return {String} Konstanten für den Kalender (Backend-Typen), gibt es den status im backend nicht - * wird null geliefert - */ -function mapCalendarStatus(pStatus, pCalendarType) -{ - switch (pCalendarType) - { - //case calendars.BACKEND_EXCHANGE: - case calendars.BACKEND_EXCHANGEWS: - if (pStatus == calendars.STATUS_CONFIRMED) - return calendars.STATUS_BUSY; - else - return pStatus; - default: - if (pStatus == calendars.STATUS_OOF)//nur bei exchange - return null; - else - return pStatus; - } -} - -/* - * Sets the imagevariable with affectedusers - * - * @param {Object} pEntry req the Entry of Tasks or Appointments - * - * @return {void} - * - */ -function setAffectedUsersImage(pEntry) -{ - var affectedUsers = []; - var usermap = pEntry[calendars.ATTENDEES]; - var realnames = getRealNameObject(usermap); - - for ( var i = 0; i < usermap.length; i++ ) - { - affectedUsers.push([ text.encodeMS( [usermap[i]["paramvalue"], "CN:" + usermap[i]["cn"]] ), realnames[usermap[i]["cn"]] ]); - } - - vars.set("$image.affectedusers", affectedUsers); - return affectedUsers; -} - -/* - * Opens calendar links - * - * @param {String} pEntryID req the ID of the link - * - * @return {void} - * - */ -function openCalendarLinks(pEntryID) -{ - var openFramesObj = {}; - if (typeof(pEntryID) == "object") - openFramesObj = pEntryID; - else - { - var links = db.table("SELECT FRAME, DBIDCOLUMN, DBID FROM ASYS_CALENDARLINK WHERE ENTRYID = '" + pEntryID + "'"); - for (var i = 0; i < links.length; i++) - { - var frame = links[i][0].substr( 5 );//remove comp. so the frame can be opened with openFrame - if ( openFramesObj[frame] == undefined ) openFramesObj[frame] = { - IDField: links[i][1], - IDs: [] - }; - openFramesObj[frame].IDs.push(links[i][2]); - } - } - - for ( frame in openFramesObj) - { - var condition = openFramesObj[frame].IDField + " in ('" + openFramesObj[frame].IDs.join("', '") + "')"; - var framemode = openFramesObj[frame].IDs.length > 1 ? swing.FRAMEMODE_TABLE_SELECTION : swing.FRAMEMODE_SHOW; - - if ( vars.getString("$global.upwardLink") == "link") - { - swing.openLinkedFrame(frame, condition, swing.WINDOW_CURRENT, framemode, "", null, false, { - autoclose: true - } ); - } - else - { - swing.openFrame(frame, condition, swing.WINDOW_CURRENT, framemode, null, false); - } - } -} - -/** - * Returns the "real" calendar system/backend type (BackendType & SyncBackendType) - * - * @param {Number} pScope - The needed scope (e.g. "calendars.VEVENT", "calendars.VTODO") - * @return {Number} - The backend type (calendars.BACKEND_*) - */ -function getCalendarSystemType (pScope) -{ - // Check sync backend type - if (calendars.getSyncBackendType() != calendars.BACKEND_NONE && calendars.getSyncBackendType() != 3) - { - var scope = calendars.getSyncBackendTypeScope(); - if (scope.length == 1 && scope[0] == pScope) // Scope.length = 1 -> VEVENT *OR* VTODO - return calendars.getSyncBackendType(); - else if (scope.length == 2) // Scope.length = 2 -> Both - return calendars.getSyncBackendType(); - // Scope.length = 0 -> Nothing selected -> Skip this block - } - - // Fallback to backend type (event) - if (calendars.getBackendType() != calendars.BACKEND_NONE && pScope === calendars.VEVENT) - return calendars.getBackendType(); - - // Second fallback to backend type (todo) - if (calendars.getBackendTypeTasks() != calendars.BACKEND_NONE && pScope === calendars.VTODO) - return calendars.getBackendTypeTasks(); - - // Everything is none - return calendars.BACKEND_NONE; -} - -function hasGrantForEntryByMS(pAffectedUsers, pUserMap) -{ - for (let i = 0; i < pAffectedUsers.length; i++) - { - var calUser = getTitleCalenderUser( pAffectedUsers[i][0]); - if(pUserMap[calUser] == undefined) - { - return false; - break; - } - else - return true; - } -} - -function hasGrantForEntryByObject(pAffectedUsers, pUserMap) -{ - for (let i = 0; i < pAffectedUsers.length; i++) - { - calUser = tools.getUserByAttribute(tools.CALENDARID, pAffectedUsers[i]["paramvalue"].substr("mailto:".length)) - if (calUser == null) calUser = pAffectedUsers[i]["cn"]; - else calUser = calUser[tools.TITLE] - if(pUserMap[calUser] == undefined) - { - return false; - break; - } - else - return true; - } -} +import("system.neon"); +import("system.vars"); +import("system.db"); +import("system.translate"); +import("system.datetime"); +import("system.swing"); +import("system.eMath"); +import("system.calendars"); +import("system.logging"); +import("system.tools"); +import("system.text"); +import("system.question"); +import("system.SQLTYPES"); +import("system.result"); +import("Util_lib"); +import("system.util") + + +/** + * @class + **/ +function CalendarUtil(){} + + +/* + * Erzeugt und öffnet ein neues Aufgabenobjekt (mit einem Link). + * + * @param {String} pSummary opt die Zusammenfassung + * @param {String} pDescription opt die Beschreibung + * @param {Boolean} pWithLink opt TRUE legt eine Verknüpfung zu $image.frametable + * @param {String[][]} pWithLink opt pWithLink[0]: Name des Frames + * pWithLink[1]: ID des angezeigten Datensatzes + * pWithLink[2]: Verknüpfungstitel + * @param {String} pUser opt der Benutzer ( Login ) + * @param {[]} pAffectedUsers opt die betroffenen Benutzer ( Login ) + * @param {date} pStart opt Beginn der Aufgabe + * @param {date} pDuration opt Dauer + * @param {integer} pCategory opt ( calendars.CATEGORIES , encoded(String) z.B.: text.encodeMS(["Service"]) ) + * @param {String} pStatus opt Status des Termins ( calendars.STATUS_TENTATIVE, calendars.STATUS_CONFIRMED, calendars.STATUS_CANCELLED ) + * @param {Array{[]} pComps4Refresh opt die zu aktualisierenden Komponenten + * + * @return {void} + */ +CalendarUtil.newTodo = function(pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus, pComps4Refresh) +{ + var todo = createEntry( calendars.VTODO, pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus ); + var prompts = []; + prompts["comp4refresh"] = []; + + if (pComps4Refresh == undefined) + pComps4Refresh = ["$comp.Aufgabe", "$comp.tbl_Aufgabe"]; + + for (var i = 0; i < pComps4Refresh.length; i++) + { + if ( vars.exists(pComps4Refresh[i])) prompts["comp4refresh"].push(pComps4Refresh[i]); + } + if(vars.getString("$sys.scope") == "vaadin") + neon.openCalendarEntry([todo], null, neon.OPERATINGSTATE_NEW, null) + else + { + if (vars.exists("$sys.currentwindow")) + prompts["window"] = vars.getString("$sys.currentwindow"); + if (vars.exists("$sys.currentimage")) + prompts["image"] = vars.getString("$sys.currentimage"); + + swing.openCalendarEntry([todo], null, false, prompts); + } +} + +/* + * Erzeugt eine neue Aufgabe (mit einem Link). + * + * @param {String} pSummary opt die Zusammenfassung + * @param {String} pDescription opt die Beschreibung + * @param {Boolean} pWithLink opt TRUE legt eine Verknüpfung zu $image.frametable + * @param {String[][]} pWithLink opt pWithLink[0]: Name des Frames + * pWithLink[1]: ID des angezeigten Datensatzes + * pWithLink[2]: Verknüpfungstitel + * @param {String} pUser opt der Benutzer ( Login ) + * @param {[]} pAffectedUsers opt die betroffenen Benutzer ( Login ) + * @param {date} pStart opt Beginn der Aufagebe + * @param {integer} pGroupType opt ( calendars.GROUP_SINGLE , calendars.GROUP_MULTI ) + * @param {date} pDuration opt Dauer + * @param {integer} pCategory opt ( calendars.CATEGORIES , encoded(String) z.B.: text.encodeMS(["Service"]) ) + * @param {String} pStatus opt Status der Aufgabe ( calendars.STATUS_TENTATIVE, calendars.STATUS_CONFIRMED, calendars.STATUS_CANCELLED ) + * @param {String} pPriority opt Priorität der Aufgabe + * @param {String} pReminder opt Erinnerung der Aufgabe + * + * @return {void} + */ + +CalendarUtil.newSilentTodo = function(pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pGroupType, pCategory, pStatus, pPriority, pReminder) +{ + if ( pGroupType == undefined ) pGroupType = calendars.GROUP_SINGLE; + var todo = createEntry( calendars.VTODO, pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus, pPriority, pReminder ); + + return calendars.insert([todo],calendars.GROUP_SINGLE); +} + +/* + * Erzeugt und öffnet ein neues Terminnobjekt mit einem Link. + * + * @param {String} pSummary opt die Zusammenfassung + * @param {String} pDescription opt die Beschreibung + * @param {Boolean} pWithLink opt TRUE legt eine Verknüpfung zu $image.frametable + * @param {String[][]} pWithLink opt pWithLink[0]: Name des Frames + * pWithLink[1]: ID des angezeigten Datensatzes + * pWithLink[2]: Verknüpfungstitel + * @param {String} pUser opt der Benutzer ( Login ) + * @param {[]} pAffectedUsers opt die betroffenen Benutzer ( Login ) + * @param {date} pStart opt Beginn der Aufagebe + * @param {date} pDuration opt Dauer + * @param {integer} pCategory opt ( calendars.CATEGORIES , encoded(String) z.B.: text.encodeMS(["Service"]) ) + * @param {String} pStatus opt Status des Termins ( calendars.STATUS_TENTATIVE, calendars.STATUS_CONFIRMED, calendars.STATUS_CANCELLED ) + * @param {Array{[]} pComps4Refresh opt die zu aktualisierenden Komponenten + * + * @return {void} + */ +CalendarUtil.newEvent = function( pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus, pComps4Refresh, pWorklistId) +{ + var event = createEntry( calendars.VEVENT, pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus ); + + var prompts = []; + prompts["comp4refresh"] = []; + if (pComps4Refresh == undefined) + pComps4Refresh = ["$comp.Aufgabe", "$comp.tbl_Termine"]; + for (i = 0; i < pComps4Refresh.length; i++) + { + if ( vars.exists(pComps4Refresh[i])) prompts["comp4refresh"].push(pComps4Refresh[i]); + } + + if(vars.getString("$sys.scope") == "vaadin") + neon.openCalendarEntry([event],"", neon.OPERATINGSTATE_NEW, null) + else + { + prompts["window"] = vars.getString("$sys.currentwindow"); + prompts["image"] = vars.getString("$sys.currentimage"); + if (pWorklistId != undefined) + prompts["worklistId"] = pWorklistId; + swing.openCalendarEntry([event], null, false, prompts); + } +} + + +/* + * Erzeugt einen neuen Termineintrag (mit einem Link). + * + * @param {String} pSummary opt die Zusammenfassung + * @param {String} pDescription opt die Beschreibung + * @param {Boolean} pWithLink opt TRUE legt eine Verknüpfung zu $image.frametable + * @param {String[][]} pWithLink opt pWithLink[0]: Name des Frames + * pWithLink[1]: ID des angezeigten Datensatzes + * pWithLink[2]: Verknüpfungstitel + * @param {String} pUser opt der Benutzer ( Login ) + * @param {[]} pAffectedUsers opt die betroffenen Benutzer ( Login ) + * @param {date} pStart opt Beginn des Termins + * @param {date} pDuration opt Dauer + * @param {integer} pGroupType opt ( calendars.GROUP_SINGLE , calendars.GROUP_MULTI ) + * @param {integer} pCategory opt ( calendars.CATEGORIES , encoded(String) z.B.: text.encodeMS(["Service"]) ) + * @param {String} pStatus opt Status des Termins ( calendars.STATUS_TENTATIVE, calendars.STATUS_CONFIRMED, calendars.STATUS_CANCELLED ) + * @param {String} pReminder opt Erinnerung des Termins + * + * @return {void} + */ +CalendarUtil.newSilentEvent = function( pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pGroupType, pCategory, pStatus, pReminder) +{ + if ( pGroupType == undefined ) pGroupType = calendars.GROUP_SINGLE; + var event = createEntry( calendars.VEVENT, pSummary, pDescription, pWithLink, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus, undefined, pReminder ); + return calendars.insert( [event] , pGroupType ); +} + +/* + * Erzeugt ein neues Aufgaben- / Termin-Objekt (mit einem Link). + * + * @param {date} pType req Augabe oder Termin ( calendars.VTODO, calendars.VEVENT ) + * @param {String} pSummary opt die Zusammenfassung + * @param {String} pDescription opt die Beschreibung + * @param {Boolean} pWithLink opt TRUE legt eine Verknüpfung zu $image.frametable + * @param {String[][]} pWithLink opt pWithLink[0]: Name des Frames + * pWithLink[1]: ID des angezeigten Datensatzes + * pWithLink[2]: Verknüpfungstitel + * @param {String} pUser opt der Benutzer ( Login ) + * @param {[]} pAffectedUsers opt die betroffenen Benutzer ( [ Login ] ) + * @param {date} pStart opt Beginn + * @param {date} pDuration opt Dauer + * @param {integer} pCategory opt ( calendars.CATEGORIES , encoded(String) z.B.: text.encodeMS(["Service"]) ) + * @param {String} pStatus opt Status des Termins ( calendars.STATUS_TENTATIVE, calendars.STATUS_CONFIRMED, calendars.STATUS_CANCELLED ) + * @param {String} pPriority opt Priorität + * @param {String} pReminder opt Erinnerung + * +@return {Object} das EntryObjekt + */ +CalendarUtil.createEntry = function( pType, pSummary, pDescription, pWithLink, pAppLinkContext, pAppLinkId, pUser, pAffectedUsers, pStart, pDuration, pCategory, pStatus, pPriority, pReminder ) +{ + var Entry = {}; + var framename; + var framdata; + var dbid; + var linktitle; + if ( pSummary == undefined || pSummary == null ) pSummary = ""; + if ( pDescription == undefined || pDescription == null ) + { + if(vars.getString("$sys.scope") == "vaadin") + pDescription = neon.getImageContent(vars.getString("$sys.currententityname")); + else + pDescription = swing.getImageContent(); + } + if ( pUser == undefined || pUser == null ) pUser = vars.getString("$sys.user"); + //kein translate.key hier, weil es sich um einen rein technischen Wert handelt: + if ( pStart == undefined ) pStart = datetime.toLong(datetime.toDate(parseInt(vars.getString("$sys.date")) + datetime.ONE_HOUR, "dd.MM.yyyy HH:00"), "dd.MM.yyyy HH:mm"); + if ( pCategory == undefined || pCategory == null ) pCategory = ""; + + if (pAffectedUsers == null || pAffectedUsers == undefined ) + { + Entry[calendars.AFFECTEDUSERS] = ""; + } + else + { + Entry[calendars.AFFECTEDUSERS] = text.encodeMS(calendars.getCalendarUsers(pAffectedUsers)); + } + Entry[calendars.TYPE] = pType; + Entry[calendars.DTSTART] = pStart; + if ( pType == calendars.VEVENT ) + { + if ( pDuration == undefined ) + pDuration = datetime.ONE_HOUR; + + Entry[calendars.DTEND] = String ( eMath.addInt( pStart, pDuration) ); + + if ( pStatus == undefined ) + pStatus = calendars.STATUS_CONFIRMED; + + pStatus = mapCalendarStatus(pStatus, calendars.getBackendType() ); + } + else if ( pType == calendars.VTODO ) + { + //kein translate.key hier, weil es sich um einen rein technischen Wert handelt: + if ( pDuration != undefined ) + Entry[calendars.DUE] = String ( eMath.addInt( pStart, pDuration) ); + else + Entry[calendars.DUE] = datetime.toLong(datetime.toDate(pStart, "dd.MM.yyyy 23:59") + ,"dd.MM.yyyy HH:mm"); + + if ( pStatus == undefined ) + pStatus = calendars.STATUS_NEEDSACTION; + + pStatus = mapCalendarStatus(pStatus, calendars.getBackendTypeTasks() ); + + } + + Entry[calendars.USER] = calendars.getCalendarUser(pUser); + Entry[calendars.DESCRIPTION] = pDescription; + Entry[calendars.SUMMARY] = pSummary; + Entry[calendars.STATUS] = pStatus; + Entry[calendars.CLASSIFICATION] = calendars.CLASSIFICATION_PUBLIC; + Entry[calendars.CATEGORIES] = pCategory; + + + if( pPriority != undefined ) + { + Entry[calendars.PRIORITY] = pPriority; + } + + if( pReminder != undefined) + { + Entry[calendars.HASREMINDER] = "true"; + Entry[calendars.REMINDER_DURATION] = pReminder; + } + else + Entry[calendars.HASREMINDER] = "false"; + + + if (pWithLink == false) + { + Entry[calendars.LINKS] = "0"; + } + else + { + var fd = new FrameData(); + if ( typeof(pWithLink) == "object" ) + { + for ( var li = 0; li < pWithLink.length; li++ ) + { + framename = pWithLink[li][0]; + framdata = fd.getData("name", framename, ["table","idcolumn","title"])[0]; + dbid = pWithLink[li][1]; + linktitle = framdata[2] + " - " + pWithLink[li][2]; + + Entry["LINK_ALIAS_" + ( li + 1 )] = vars.getString("$sys.dbalias"); + Entry["LINK_TABLE_" + ( li + 1 )] = framdata[0]; + Entry["LINK_IDCOLUMN_" + ( li + 1 )] = framdata[1]; + Entry["LINK_DBID_" + ( li + 1 )] = dbid; + Entry["LINK_FRAME_" + ( li + 1 )] = "comp." + framename; + Entry["LINK_TITLE_" + ( li + 1 )] = linktitle; + } + Entry[calendars.LINKS] = pWithLink.length.toString(); + } + else + { + if ( pWithLink == true || pWithLink == undefined ) + { + framename = vars.getString("$sys.currentimagename"); + framdata = fd.getData("name", framename, ["table","idcolumn","title"])[0]; + dbid = vars.getString("$comp.idcolumn"); + linktitle = framdata[2] + " - " + swing.getImageContent(); + } + Entry[calendars.LINKS] = "1"; + Entry["LINK_ALIAS_1"] = vars.getString("$sys.dbalias"); + Entry["LINK_TABLE_1"] = framdata[0]; + Entry["LINK_IDCOLUMN_1"] = framdata[1]; + Entry["LINK_DBID_1"] = dbid; + Entry["LINK_FRAME_1"] = "comp." + framename; + Entry["LINK_TITLE_1"] = linktitle; + } + } + + +if(pAppLinkContext && pAppLinkId) +{ + Entry["AppLinkContext"] = pAppLinkContext; + Entry["AppLinkId"] = pAppLinkId; +} + return Entry; +} + +/* + * Liefert den CalendarStatus übersetzt zurück. + * @param {String} pStatus req Status + * @param {String} pLanguage opt Sprache + * @param {String} pKind opt ToDo oder Event + * + * @return {String} übersetzte Status + */ +function getCalendarStatus( pStatus, pLanguage, pKind) +{ + //kein mappen des Status, da wirklich verschiedene Dinge angezeigt werden sollen + switch ( pStatus ) + { + case calendars.STATUS_BUSY: + return translate.text("Gebucht", pLanguage) + case calendars.STATUS_CANCELLED: + if(pKind == "ToDo" && pKind != undefined) return translate.text("Zurückgestellt", pLanguage) + return translate.text("Abgesagt", pLanguage) + case calendars.STATUS_COMPLETED: + return translate.text("Erledigt", pLanguage) + case calendars.STATUS_CONFIRMED: + return translate.text("Bestätigt", pLanguage) + case calendars.STATUS_FREE: + return translate.text("frei", pLanguage) + case calendars.STATUS_INPROCESS: + return translate.text("In Bearbeitung", pLanguage) + case calendars.STATUS_NEEDSACTION: + return translate.text("Nicht begonnen", pLanguage) + case calendars.STATUS_OOF: + return translate.text("Außer Haus", pLanguage) + case calendars.STATUS_TENTATIVE: + return translate.text("Vorläufig", pLanguage) + default: + return ""; + } +} + +/* + * Zu einer übergebenen Priorität wird ihre Bedeutung übersetzt und zurückgegeben. + * + * @param {String} pPriority req Priorität + * @param {String} pLanguage opt Sprache + * + * @return (String) übersetzte Bedeutung einer Priorität + */ +function getCalendarPriority(pPriority, pLanguage) +{ + switch(pPriority) + { + case "9": + return translate.text("niedrig", pLanguage); + break; + case "5": + return translate.text("normal", pLanguage); + break; + case "1": + return translate.text("hoch", pLanguage); + break; + default: + return translate.text("keine", pLanguage); + break; + } +} + +/* + * Liefert zum Objekt verknüpfte Aufgaben aus dem Kalender. + * + * @param {String} pFrame req Name des Frames + * @param {String} pDBID req ID des verknüpften Datensatzes + * @param {String} pAlias opt + * @param {String} pLanguage opt Sprache + * + * @return {[]} mit Aufgaben aus Kalender + */ +function getLinkedToDos (pFrame, pDBID, pAlias, pLanguage ) +{ + if (pAlias == undefined ) pAlias = vars.getString("$sys.dbalias"); + var tab = []; + var status = " and STATUS in ('NEEDS-ACTION', 'IN-PROCESS')"; + var exists = []; + var zustaendig = ""; + var today = getDate(vars.getString("$sys.date")); + var filtervalues = ["", "false"]; + if ( vars.exists("$image.FilterValuesT") ) + { + filtervalues = vars.get("$image.FilterValuesT"); + zustaendig = filtervalues[0] + if (filtervalues[1] == "true") status = " and STATUS in ('COMPLETED', 'CANCELLED')"; + } + + var entryids = db.table("select ENTRYID, OWNER from ASYS_CALENDARLINK " + + "join ASYS_CALENDARBACKEND on ELEMENTUID = ENTRYID where FRAME = 'comp." + pFrame + "' " + + "and ENTRYID is not null " + + "and ENTRYTYPE = " + calendars.VTODO + " " + + "and DBID = '" + pDBID + "' " + + status, pAlias); + + for (var i = 0; i < entryids.length; i++) + { + if ( exists.indexOf(entryids[i][0]) == -1) + { + try + { + var entry = calendars.getEntry(entryids[i][0], null, getTitleCalenderUser( entryids[i][1] ), calendars.VTODO); + var entr = new Array; + status = ""; + var user = tools.getUserByAttribute(tools.CALENDARID, entry[calendars.USER2]["paramvalue"].substr("mailto:".length)) + if(user == null) user = entry[calendars.USER2]["cn"]; + else user = user[tools.TITLE] + if ((user == zustaendig || zustaendig == "")) + { + entr[0] = text.encodeMS([entry[calendars.ID], user]); + var due = getDate(entry[calendars.DUE]); + if (due < today ) entr[1] = "-1769402"; + else if (due > today) entr[1] = "-16777216"; else entr[1] = "-16744020"; + entr[2] = "-1"; // Hintergrundfarbe + entr[3] = text.decodeMS(entry[calendars.AFFECTEDUSERS]).length; + entr[4] = entry[calendars.DUE] + entr[5] = getCalendarStatus( entry[calendars.STATUS], pLanguage, "ToDo"); + entr[6] = entry[calendars.SUMMARY] + entr[7] = getRealName([entry[calendars.ORGANIZER2]]); + entr[8] = getRealName(entry[calendars.ATTENDEES]); + entr[9] = entry[calendars.DESCRIPTION]; + entr[10] = entry[calendars.PRIORITY]; + tab.push(entr); + exists.push(entryids[i][0]); + } + } + catch (ex) + { + logging.log(ex); + } + } + } + array_mDimSort(tab, 4, false); //Sortierung nach Fälligkeitsdatum + return tab; +} + +/* + * Anzeige des Aufgaben-Filter + * + * @param {Object} pFilter req + * + * @return string Anzeige + */ +function show_filterLinkedToDos(pFilter) +{ + var retstring = ""; + if (pFilter[0] != "") + { + var userp = tools.getUser( pFilter[0] )[tools.PARAMS]; + retstring = translate.text("Aufgaben von") + " " + userp[tools.FIRSTNAME] + " " + userp[tools.LASTNAME]; + } + if (pFilter[1] == "true") retstring += ", " + translate.text("erledigt / zurückgestellt"); + + return retstring +} + +/* + * Liefert zum Objekt verknüpfte Events aus dem Kalender. + * + * @param {String} pFrame req Name des Frames + * @param {String} pDBID req ID des verknüpften Datensatzes + * @param {Object} pFilter opt + * @param {String} pAlias opt + * @param {String} pUser opt Benutzer + * + * @return {[]} mit Events aus Kalender + */ +function getLinkedEvents (pFrame, pDBID, pFilter, pAlias, pUser ) +{ + if ( pFilter == "" || pFilter == undefined) + pFilter = reset_filterEvent(); + + var tab = []; + var exists = []; + var conditions = []; + var today = getDate(vars.getString("$sys.date")); + var conditioncount = 0; + var stati = []; + + if ( pFilter.tentative == "true" ) + stati.push(mapCalendarStatus(calendars.STATUS_TENTATIVE, calendars.getBackendType() )); + + if ( pFilter.cancelled == "true" ) + stati.push(mapCalendarStatus(calendars.STATUS_CANCELLED, calendars.getBackendType() )); + + if ( pFilter.confirmed == "true" ) + stati.push(mapCalendarStatus(calendars.STATUS_CONFIRMED, calendars.getBackendType() )); + + if (calendars.getBackendType() == calendars.BACKEND_EXCHANGEWS) + stati.push(calendars.STATUS_FREE); + + if (pAlias == undefined ) pAlias = vars.getString("$sys.dbalias"); + + var entryids = db.table(["select ENTRYID, OWNER " + + "from ASYS_CALENDARLINK " + + "join ASYS_CALENDARBACKEND on ELEMENTUID = ENTRYID where FRAME = 'comp." + + pFrame + "' and ENTRYID is not null and ENTRYTYPE = " + calendars.VEVENT + + " and DBID = '" + pDBID + "' and DTSTART >= ?", + [ [ String(pFilter.datefrom - datetime.ONE_WEEK), SQLTYPES.DATE ]]], pAlias ); + + /* + * Check for rights before constructing condition otherwise you'll get an error by opening linked Data + */ + var userToRead = [] + if(pUser != undefined) + { + userToRead = getCalendarUsers( calendars.RIGHT_READ_APPOINTMENT, pUser ); + } + else + { + userToRead = calendars.getDisplayCalendarUsers(calendars.RIGHT_READ_APPOINTMENT); + } + var userMap = {}; + for (let i = 0; i < userToRead.length; i++) + { + userMap[userToRead[i][1]] = true; + } + + for ( var i = 0;i < entryids.length; i++) + { + var user = getTitleCalenderUser(entryids[i][1]); + if(userMap[user]) + { + for ( var z = 0; z < stati.length; z++ ) + _addEntryCondition(conditions, String(++conditioncount), + { + TYPE: calendars.VEVENT, + START: pFilter.datefrom, + END: pFilter.dateto, + USER: user, + STATUS: stati[z], + UID: entryids[i][0] + }); + } else continue + } + conditions["COUNT"] = String(conditioncount); + + var entries = calendars.getExpandedEntries(conditions, pFilter.datefrom, pFilter.dateto); + for ( let i = 0; i < entries.length; i++) + { + for (var j = 0; j < entries[i].length; j++) + { + var entry = entries[i][j]; + if( exists.indexOf(entry[calendars.ID]) == -1 && ( pFilter.category == "" || text.decodeMS(entry[calendars.CATEGORIES]).indexOf(pFilter.category) > 0)) + { + var entr = new Array; + var start = getDate(entry[calendars.DTSTART]); + var end = getDate(entry[calendars.DTEND]); + user = tools.getUserByAttribute(tools.CALENDARID, entry[calendars.USER2]["paramvalue"].substr("mailto:".length)) + if(user == null) user = entry[calendars.USER2]["cn"]; + else user = user[tools.TITLE] + entr[0] = text.encodeMS([entry[calendars.ID], user , entry[calendars.RECURRENCEID]]); + if (end < today) entr[1] = "-6710887" ; + else if (start <= today && end >= today ) entr[1] = "-16744020" ; + else entr[1] = "-16777216"; + entr[2] = "-1" + entr[3] = text.decodeMS(entry[calendars.AFFECTEDUSERS]).length; + entr[4] = entry[calendars.DTSTART] + entr[5] = entry[calendars.DTEND] + entr[6] = entry[calendars.SUMMARY] + entr[7] = getRealName([entry[calendars.ORGANIZER2]]); + entr[8] = getRealName(entry[calendars.ATTENDEES]); + entr[9] = entry[calendars.DESCRIPTION] + tab.push(entr); + exists.push(entry[calendars.ID]); + } + } + } + array_mDimSort(tab, 4, false); + return tab; +} + +/* + * Liefert Aufgaben aus dem Kalender. + * + * @param {Object} pFilter req + * @param {String} pLanguage opt + * @param {bool} pShortForm opt wenn true wird nur die kurzversion geladen + * + * @return {[]} mit allen aufgaben aus dem Kalender + */ +function getTodos( pFilter, pLanguage, pShortForm ) +{ + if ( pFilter == "" ) pFilter = reset_filterToDo(); + var tab = []; + var today = getDate (vars.getString("$sys.date")); + var conditions = []; + var conditioncount = 0; + var user = pFilter.user; + var stati = []; + var status = []; + var exists = []; + var entries = []; + + if ( pFilter.needs_action == "true" ) + { + stati.push(mapCalendarStatus(calendars.STATUS_NEEDSACTION, calendars.getBackendTypeTasks() )); + status.push("NEEDS-ACTION"); + } + if ( pFilter.in_process == "true" ) + { + stati.push(mapCalendarStatus(calendars.STATUS_INPROCESS, calendars.getBackendTypeTasks() )); + status.push("IN-PROCESS"); + } + if ( pFilter.completed == "true" ) + { + stati.push(mapCalendarStatus(calendars.STATUS_COMPLETED, calendars.getBackendTypeTasks() )); + status.push("COMPLETED"); + } + if ( pFilter.cancelled == "true" ) + { + stati.push(mapCalendarStatus(calendars.STATUS_CANCELLED, calendars.getBackendTypeTasks() )); + status.push("CANCELLED"); + } + if (pFilter.delegated == "true" ) + { + var from = [pFilter.datefrom, SQLTYPES.TIMESTAMP]; + var to = [pFilter.dateto, SQLTYPES.TIMESTAMP]; + setAllCalendarGrant(); + user = calendars.getCalendarUser(user); + user = db.table(["select ELEMENTUID, OWNER from ASYS_CALENDARBACKEND where ENTRYTYPE = 2 and OWNER != '" + user + "' and ORGANIZER = '" + + user + "' and STATUS in ('" + status.join("', '") + "') and (( STARTTIME >= ? and STARTTIME <= ?) or " + + "( ENDTIME >= ? and ENDTIME <= ? ) or ( STARTTIME >= ? and ENDTIME <= ? ))", [from, to, from, to, from, to]] ); + + for (let i = 0; i < user.length; i++ ) + { + try + { + entries.push([calendars.getEntry(user[i][0], null, getTitleCalenderUser(user[i][1]), calendars.VTODO)]); + } + catch(err){ + logging.log(err); + } + } + setCalendarGrant(); + } + else + { + if ( typeof( pFilter.user ) != "object" ) user = [user.trim()]; + for (let i = 0; i < user.length; i++ ) + for ( var z = 0; z < stati.length; z++ ) + _addEntryCondition(conditions, ++conditioncount, + { + TYPE: calendars.VTODO, + START: pFilter.datefrom, + END: pFilter.dateto, + USER: user[i], + STATUS: stati[z] + }); + + conditions["COUNT"] = String(conditioncount); + entries = calendars.getEntries(conditions); + } + + for (i = 0; i < entries.length; i++) + { + var entry = entries[i][0]; + user = tools.getUserByAttribute(tools.CALENDARID, entry[calendars.USER2]["paramvalue"].substr("mailto:".length)) + if (user == null) user = entry[calendars.USER2]["cn"]; + else user = user[tools.TITLE] + if ( !(user != vars.getString("$sys.user") && entry[calendars.CLASSIFICATION] == calendars.CLASSIFICATION_PRIVATE) // no privat + && !( pFilter.delegated == "true" && ( isAffectedUser( entry, pFilter.user) || exists.indexOf(entry[calendars.ID]) > -1 ) ) // no duplicate + && ( pFilter.category == "" || text.decodeMS(entry[calendars.CATEGORIES]).indexOf( pFilter.category ) > -1 ) ) // Filter category + { + var entr = []; + var links = entry[calendars.LINKS]; + var due = entry[calendars.DUE] != "" ? getDate(entry[calendars.DUE]) : ""; + entr[0] = text.encodeMS([entry[calendars.ID], user]); + if (due == today ) entr[1] = "-16744020" ; + else if(due == "") entr[1] = "-13395712"; + else if (due > today ) entr[1] = "-16777216"; + else entr[1] = "-1769402"; + if (entry[calendars.PRIORITY] == "1") entr[2] = "-100"; + entr[3] = entry[calendars.ATTENDEES].length; + entr[4] = entry[calendars.DUE]; + + if (pShortForm) + { + entr[5] = entry[calendars.SUMMARY]; + entr[6] = entry[calendars.DESCRIPTION]; + } + else + { + entr[5] = getCalendarStatus( entry[calendars.STATUS], pLanguage, "ToDo"); + entr[6] = getCalendarPriority( entry[calendars.PRIORITY], pLanguage); + entr[7] = entry[calendars.SUMMARY]; + entr[8] = getRealName( [ entry[calendars.ORGANIZER2] ] ); + entr[9] = getRealName( entry[calendars.ATTENDEES] ); + if (links == undefined) entr[10] = ""; else entr[10] = links; + entr[11] = entry[calendars.DESCRIPTION]; + entr[12] = entry[calendars.CREATED]; + } + + tab.push(entr); + if ( pFilter.delegated == "true" ) exists.push(entry[calendars.ID]); + } + } + + if (pShortForm) + sortArray(tab, -1, 4, 1, 5); + else + sortArray(tab, -1, 4, 1, 12 ); + + return tab; +} + +/* + * Fügt eine Condition hinzu + * + * @param {[]} pConditions req die Conditions + * @param {Integer} pIndex req Index der Condition + * @param {Object} pValues req + * + * @return {void} + */ +function _addEntryCondition(pConditions, pIndex, pValues) +{ + var params = ["TYPE", "START", "END", "USER", "STATUS", "UID"]; + + for (var i = 0; i < params.length; i++) + if (pValues[params[i]] != undefined) pConditions[params[i] + "_" + pIndex] = pValues[params[i]]; +} +CalendarUtil.addEntryCondition = function(pConditions, pIndex, pValues) +{ + _addEntryCondition(pConditions, pIndex, pValues); +} + +/* + * Liefert Events zu bestimmten Usern/Daten in einem Array. + * + * @param {Object} pFilter req + * @param {String} pLanguage opt + * @param {bool} pShortForm opt wenn true wird nur die kurzversion geladen + * + * @return {[]} + * [0] ID + * [1] Vordergrundfarbe + * [2] Hintergrundfarbe + * [3] Start + * [4] Ende + * [5] Betreff + * [6] Inhalt + * [7] User + * [8] Anzahl Verknüpfungen + * [9] Klassifikation (privat/öffentlich) + */ +function getEvents( pFilter, pLanguage, pShortForm ) +{ + if ( pFilter == "" ) pFilter = reset_filterEvent(); + var tab = []; + var conditions = []; + var today = getDate(vars.getString("$sys.date")); + var conditioncount = 0; + var stati = []; + var user = undefined; + if ( pFilter.tentative == "true" ) stati.push(calendars.STATUS_TENTATIVE); + if ( pFilter.cancelled == "true" ) stati.push(calendars.STATUS_CANCELLED); + if ( pFilter.confirmed == "true" ) + stati.push(mapCalendarStatus(calendars.STATUS_CONFIRMED, calendars.getBackendType() )); + + if (getCalendarSystemType(calendars.VEVENT) == calendars.BACKEND_EXCHANGEWS && pFilter.free == "true") + stati.push(calendars.STATUS_FREE); + + if ( pFilter.user != "" ) user = (pFilter.user).trim(); + + for ( var z = 0; z < stati.length; z++ ) + _addEntryCondition(conditions, String(++conditioncount), + { + TYPE: calendars.VEVENT, + START: pFilter.datefrom, + END: pFilter.dateto, + USER: user, + STATUS: stati[z] + }); + + conditions["COUNT"] = String(conditioncount); + + var entries = calendars.getExpandedEntries(conditions, pFilter.datefrom, pFilter.dateto); + for ( var i = 0;i < entries.length; i++) + { + for (var j = 0; j < entries[i].length; j++) + { + var entry = entries[i][j]; + if( pFilter.category == "" || text.decodeMS(entry[calendars.CATEGORIES]).indexOf(pFilter.category) > -1 ) + { + var entr = new Array; + var start = getDate(entry[calendars.DTSTART]); + var end = getDate(entry[calendars.DTEND]); + + user = tools.getUserByAttribute(tools.CALENDARID, entry[calendars.USER2]["paramvalue"].substr("mailto:".length)) + if(user == null) user = entry[calendars.USER2]["cn"]; + else user = user[tools.TITLE] + entr[0] = text.encodeMS([ entry[calendars.ID], user, entry[calendars.RECURRENCEID]]); + if (end < today ) entr[1] ="-6710887" ; + else if (start > today) entr[1] = "-16777216"; + else entr[1] = "-16744020" ; + entr[2] = "-1" + entr[3] = entry[calendars.ATTENDEES].length; + entr[4] = entry[calendars.DTSTART]; + entr[5] = entry[calendars.DTEND]; + entr[6] = entry[calendars.SUMMARY]; + + if (!pShortForm) + { + entr[7] = getRealName([entry[calendars.ORGANIZER2]]); + entr[8] = getRealName(entry[calendars.ATTENDEES]); + entr[9] = getCalendarStatus( entry[calendars.STATUS], pLanguage ); + if (entry[calendars.LINKS] == undefined) entr[10] = ""; + else entr[10] = entry[calendars.LINKS]; + entr[11] = entry[calendars.DESCRIPTION]; + } + tab.push( entr ); + } + } + } + sortArray(tab, -1, 4, 1, 6 ); + return tab; +} + +/* + * Liefert den echten Namen anhand des Logins zurück + * + * @param {Array}[]} pUserMap req pUserMap + * + * @return String + */ +function getRealName(pUserMap) +{ + var resultName = []; + var RealNames = getRealNameObject(pUserMap); + + for ( var realname in RealNames ) resultName.push(RealNames[realname]); + return resultName.join(", \n"); +} + +/* + * Liefert den echten Namen anhand des Logins zurück + * + * @param {Array}[]} pUserMap req pUserMap + * + * @return Object + */ +function getRealNameObject(pUserMap) +{ + var resultObject = {}; + var realname = ""; + + for ( let i = 0; i < pUserMap.length; i++ ) + { + let user = tools.getUserByAttribute(tools.CALENDARID, [pUserMap[i]["paramvalue"].substr("mailto:".length)]) + if ( user != null ) + { + if(vars.exists("$global.firstLastName") && vars.get("$global.firstLastName")) + realname = user[tools.PARAMS][tools.LASTNAME] + " " + user[tools.PARAMS][tools.FIRSTNAME]; + else realname = user[tools.PARAMS][tools.FIRSTNAME] + " " + user[tools.PARAMS][tools.LASTNAME]; + } + else //Der User existiert nicht im System + { + realname = pUserMap[i]["cn"] + " " + pUserMap[i]["paramvalue"]; + } + resultObject[pUserMap[i]["cn"]] = realname; + } + return resultObject; +} + + +/* + * Gibt an ob der User im Calendarobject vorhanden ist + * + * @param {Object} pEntry req Calendarobject + * @param {String} pUser req Title + * + * @return Object + */ +function isAffectedUser( pEntry, pUser) +{ + var usermap = pEntry[calendars.ATTENDEES]; + + for ( var i = 0; i < usermap.length; i++ ) + if( usermap[i]["cn"] == pUser ) + return true; + return false; +} + +/* + * Liefert das Datum ohne Urzeit zurück + * + * @param {String} datetimeIn req DatumZeit + * + * @return {date} + */ +function getDate( datetimeIn ) +{ + if ( datetimeIn != "") + return datetime.clearTime(datetimeIn); + else return ""; +} + +/* + * Setzt den Aufgaben-Filter + * + * @param {Object} pFilter req + * + * @return {image} + */ +function filterToDo( pFilter ) +{ + var error = true; + var von = pFilter.datefrom; + var bis = pFilter.dateto; + if ( pFilter == "" ) pFilter = reset_filterToDo(); + do + { + vars.set("$local.relation_id", pFilter.user); + vars.set("$local.edt_von", pFilter.datefrom); + vars.set("$local.edt_bis", pFilter.dateto); + vars.set("$local.category", pFilter.category); + vars.set("$local.delegated", pFilter.delegated); + vars.set("$local.needs_action", pFilter.needs_action); + vars.set("$local.in_process", pFilter.in_process); + vars.set("$local.completed", pFilter.completed); + vars.set("$local.cancelled", pFilter.cancelled); + var res = swing.askUserQuestion(translate.text("Bitte Filterbedingungen setzen"), "DLG_TASK_FILTER"); + if( res != null ) + { + pFilter.user = res["DLG_TASK_FILTER.relation_id"]; + pFilter.datefrom = res["DLG_TASK_FILTER.edt_von"]; + pFilter.dateto = res["DLG_TASK_FILTER.edt_bis"]; + pFilter.category = res["DLG_TASK_FILTER.category"]; + pFilter.delegated = res["DLG_TASK_FILTER.delegated"]; + pFilter.needs_action = res["DLG_TASK_FILTER.needs_action"]; + pFilter.in_process = res["DLG_TASK_FILTER.in_process"]; + pFilter.completed = res["DLG_TASK_FILTER.completed"]; + pFilter.cancelled = res["DLG_TASK_FILTER.cancelled"]; + if (pFilter.datefrom != "" && pFilter.dateto != "" && pFilter.dateto >= pFilter.datefrom ) error = false; + else question.showMessage(translate.text("Bitte Datumseingabe prüfen!")) + } + else + { + pFilter.datefrom = von; + pFilter.dateto = bis; + error = false; + } + } + while ( error ) + return pFilter; +} + +/* + * Setzt den Aufgaben-Filter + * + * @param {Object} pFilter req + * + * @return {image} + */ +function filterToDo_Neon( pFilter ) +{ + var error = true; + var von = pFilter.datefrom; + var bis = pFilter.dateto; + if ( pFilter == "" ) pFilter = reset_filterToDo(); + do + { + var prompts = { + FILTER_TEXT: translate.text("Bitte Filterbedingungen setzen"), + RESPONSIBLE: pFilter.user, + DATE_FROM: pFilter.datefrom, + DATE_TO: pFilter.dateto, + CATEGORY_TODO: pFilter.category, + DELEGATED: pFilter.delegated, + NEEDS_ACTION: pFilter.needs_action, + IN_PROCESS: pFilter.in_process, + COMPLETED: pFilter.completed, + CANCELLED: pFilter.cancelled + } + + var buttons = { + "ok" : translate.text("OK"), + "": translate.text("Abbrechen") + }; + var defaultButton = "ok"; + + var res = question.openDialog("DLG_FILTER_TODO_Neon", prompts, buttons, defaultButton); + + if( res.button != null ) + { + pFilter.user = res.RESPONSIBLE; + pFilter.datefrom = res.DATE_FROM; + pFilter.dateto = res.DATE_TO; + pFilter.category = res.CATEGORY_TODO; + pFilter.delegated = res.DELEGATED; + pFilter.needs_action = res.NEEDS_ACTION; + pFilter.in_process = res.IN_PROCESS; + pFilter.completed = res.COMPLETED; + pFilter.cancelled = res.CANCELLED; + if (pFilter.datefrom != "" && pFilter.dateto != "" && pFilter.dateto >= pFilter.datefrom ) error = false; + else question.showMessage(translate.text("Bitte Datumseingabe prüfen!")) + } + else + { + pFilter.datefrom = von; + pFilter.dateto = bis; + error = false; + } + } + while ( error ) + return pFilter; +} + + +/* + * Anzeige des Aufgaben-Filter + * + * @param {Object} pFilter req + * + * @return string Anzeige + */ +function show_filterToDo(pFilter) +{ + var retstring = ""; + var userp = tools.getUser( pFilter.user )[tools.PARAMS]; + if (pFilter.user != "") retstring = (translate.text("Aufgaben von") + " " + userp[tools.FIRSTNAME] + " " + userp[tools.LASTNAME]); + if (pFilter.datefrom != "") retstring += ", " + datetime.toDate(pFilter.datefrom, translate.text("dd.MM.yyyy")); + if (pFilter.dateto != "") retstring += " - " + datetime.toDate(pFilter.dateto, translate.text("dd.MM.yyyy")); + if (pFilter.category != "") retstring += ", " + translate.text("Kategorie") + " " + pFilter.category; + if (pFilter.delegated == "true") retstring += ", " + translate.text("delegiert"); + if (pFilter.needs_action == "true") retstring += ", " + translate.text("Nicht begonnen"); + if (pFilter.in_process == "true") retstring += ", " + translate.text("In Bearbeitung"); + if (pFilter.completed == "true") retstring += ", " + translate.text("Erledigt"); + if (pFilter.cancelled == "true") retstring += ", " + translate.text("Zurückgestellt"); + + return retstring +} + +/* + * Setzt den Aufgaben-Filter zurück + * + * @return {filter} + */ +function reset_filterToDo() +{ + var today = getDate (vars.getString("$sys.date")); + + return pFilter = { + user: vars.getString("$sys.user"), + datefrom: String(eMath.subInt(today, 720 * datetime.ONE_DAY)), + dateto: String(eMath.addInt(eMath.addInt(today, 3 * datetime.ONE_DAY) + ,datetime.ONE_DAY - datetime.ONE_MINUTE)), + category: "", + delegated: "", + needs_action: "true", + in_process: "true", + completed: "", + cancelled: "" + }; +} + +/* + * Setzt den Event-Filter + * + * @param {Object} pFilter req + * + * @return {image} + */ +function filterEvent( pFilter ) +{ + var error = true; + var von = pFilter.datefrom; + var bis = pFilter.dateto; + if ( pFilter == "" ) pFilter = reset_filterEvent(); + do + { + vars.set("$local.relation_id", pFilter.user); + vars.set("$local.edt_von", pFilter.datefrom); + vars.set("$local.edt_bis", pFilter.dateto); + vars.set("$local.category", pFilter.category); + vars.set("$local.tentative", pFilter.tentative); + vars.set("$local.confirmed", pFilter.confirmed); + vars.set("$local.cancelled", pFilter.cancelled); + vars.set("$local.free", pFilter.free); + var res = swing.askUserQuestion(translate.text("Bitte Filterbedingungen setzen"), "DLG_EVENT_FILTER"); + if( res != null ) + { + pFilter.user = res["DLG_EVENT_FILTER.relation_id"]; + pFilter.datefrom = res["DLG_EVENT_FILTER.edt_von"]; + pFilter.dateto = res["DLG_EVENT_FILTER.edt_bis"]; + pFilter.category = res["DLG_EVENT_FILTER.category"]; + pFilter.tentative = res["DLG_EVENT_FILTER.tentative"]; + pFilter.confirmed = res["DLG_EVENT_FILTER.confirmed"]; + pFilter.cancelled = res["DLG_EVENT_FILTER.cancelled"]; + pFilter.free = res["DLG_EVENT_FILTER.free"]; + if (pFilter.datefrom != "" && pFilter.dateto != "" && pFilter.dateto >= pFilter.datefrom ) error = false; + else question.showMessage(translate.text("Bitte Datumseingabe prüfen!")) + } + else + { + pFilter.datefrom = von; + pFilter.dateto = bis; + error = false; + } + } + while ( error ) + return pFilter; +} + +/* + * Setzt den Event-Filter + * + * @param {Object} pFilter req + * + * @return {image} + */ +function filterEvent_Neon( pFilter ) +{ + var error = true; + var von = pFilter.datefrom; + var bis = pFilter.dateto; + if ( pFilter == "" ) pFilter = reset_filterEvent(); + do + { + var buttons = { + "ok" : translate.text("OK"), + "": translate.text("Abbrechen") + }; + var defaultButton = "ok"; + + var prompts = { + FILTER_TEXT: translate.text("Bitte Filterbedingungen setzen"), + RESPONSIBLE_APPOINTMENT: pFilter.user, + DATE_FROM: pFilter.datefrom, + DATE_TO: pFilter.dateto, + CATEGORY_APPOINTMENT: pFilter.category, + TENTATIVE: pFilter.tentative, + CONFIRMED: pFilter.confirmed, + CANCELLED: pFilter.cancelled + } + var res = question.openDialog("DLG_FILTER_APPOINTMENT_Neon", prompts, buttons, defaultButton); + if( res.button != null ) + { + pFilter.user = res.RESPONSIBLE_APPOINTMENT; + pFilter.datefrom = res.DATE_FROM; + pFilter.dateto = res.DATE_TO; + pFilter.category = res.CATEGORY_APPOINTMENT; + pFilter.tentative = res.TENTATIVE; + pFilter.confirmed = res.CONFIRMED; + pFilter.cancelled = res.CANCELLED; + if (pFilter.datefrom != "" && pFilter.dateto != "" && pFilter.dateto >= pFilter.datefrom ) error = false; + else question.showMessage(translate.text("Bitte Datumseingabe prüfen!")) + } + else + { + pFilter.datefrom = von; + pFilter.dateto = bis; + error = false; + } + } + while ( error ) + return pFilter; +} + +/* + * Anzeige des Event-Filter + * + * @param {Object} pFilter req + * + * @return string Anzeige + */ +function show_filterEvent(pFilter) +{ + var retstring = ""; + + var userp = tools.getUser( pFilter.user )[tools.PARAMS]; + if (pFilter.user != "") retstring = translate.text("Termine von") + " " + userp[tools.FIRSTNAME] + " " + userp[tools.LASTNAME]; + if (pFilter.datefrom != "") retstring += ", " + datetime.toDate(pFilter.datefrom, translate.text("dd.MM.yyyy")); + if (pFilter.dateto != "") retstring += " - " + datetime.toDate(pFilter.dateto, translate.text("dd.MM.yyyy")); + if (pFilter.category == "true") retstring += ", " + translate.text("Kategorie") + " " + pFilter.category; + if (pFilter.tentative == "true") retstring += ", " + translate.text("Vorläufig"); + if (pFilter.confirmed == "true") retstring += ", " + translate.text("Bestätigt"); + if (pFilter.cancelled == "true") retstring += ", " + translate.text("Abgesagt"); + + return retstring +} + +/* + * Setzt den Event-Filter zurück + * + * @return {filter} + */ +function reset_filterEvent() +{ + var today = getDate (vars.getString("$sys.date")); + + return pFilter = { + user: vars.getString("$sys.user"), + datefrom: String(today), //nur die Termine ab heute anzeigen, + //die von vor einer Woche sind uninteressant + dateto: String(eMath.addInt(eMath.addInt(today, datetime.ONE_WEEK) + ,datetime.ONE_DAY - datetime.ONE_MINUTE)), + category: "", + tentative: "true", + confirmed: "true", + cancelled: "", + free: "true" + }; +} + +/* + * Setzt den Aufgaben-Filter in Tab Aufgaben + * + * @return {image} + */ +function filterLinkedToDo() +{ + var filtervalues = ["", "false"]; + vars.set("$local.CalenderUser", getCalenderUser( calendars.RIGHT_READ_TASK )); + + //Vorbelegen der Werte, wenn bereits gewählt wurde: + if(vars.exists("$image.FilterValuesT")) + { + filtervalues = vars.get("$image.FilterValuesT"); + vars.set("$local.relation_id", filtervalues[0]); + vars.set("$local.done", filtervalues[1]); + } + + var res = swing.askUserQuestion(translate.text("Bitte Filterbedingungen setzen"), "DLG_TASK_DATE_LINKED_FILTER"); + + if( res != null && res != undefined && res != "") + { + filtervalues[0] = res["DLG_TASK_DATE_LINKED_FILTER.relation_id"]; + filtervalues[1] = res["DLG_TASK_DATE_LINKED_FILTER.done"] + } + vars.set("$image.FilterValuesT", filtervalues ); + + return(filtervalues); +} + +/* + * Setzt den Aufgabe-Filter zurück + * + * @return {image} + */ +function resetfilterLinkedToDo() +{ + var filtervalues = ["", "false"]; + + vars.set("$image.FilterValuesT", filtervalues ); + +} + +/* + * setzt die Kalenderrechte + * + * @return {void} + */ +function setCalendarGrant() +{ + calendars.resetCalendarUser(); + var user_read_todo = []; + var user_write_todo = []; // ["Admin"] + var user_read_event = []; + var user_write_event = []; + var tree = {}; + var data = db.table("select THEMEID, THEME.THEME_ID, LOGIN, STATUS from THEME " + + " left join EMPLOYEE on EMPLOYEE.THEME_ID = THEMEID left join RELATION on RELATION_ID = RELATIONID and STATUS = 1" + +" where KIND = 2"); + for ( let i = 0; i < data.length; i++) + { + if ( tree[data[i][0]] == undefined ) tree[data[i][0]] = { + pid: data[i][1], + isuser: false + }; + if ( data[i][2] != "" && data[i][3] != "" ) tree[data[i][2]] = { + pid: data[i][0], + isuser: true + }; + } + + var user = vars.getString("$sys.user"); + // Lese- und Schreibrechte auf Kalender aus Datentabelle holen + data = db.table("select HASRIGHTFOR, TODO_RIGHTS, EVENT_RIGHTS from AOSYS_CALENDAR_RIGHTS where LOGIN = '" + user + "'"); + for ( var i = 0; i < data.length; i++ ) + if(tree[data[i][0]] != undefined) + tree[data[i][0]].grants = data[i].slice(1); + + for ( login in tree ) + { + if( tree[login].isuser ) + { + var grantstodo = __getGrants( login, 0 ); + var grantsevent = __getGrants( login, 1 ); + if ( grantstodo.length + grantsevent.length > 0 ) + { + if ( grantstodo == "1" || grantstodo == "3") user_read_todo.push(login); + if ( grantstodo == "2" || grantstodo == "3") user_write_todo.push(login); + if ( grantsevent == "1" || grantsevent == "3") user_read_event.push(login); + if ( grantsevent == "2" || grantsevent == "3") user_write_event.push(login); + } + } + } + calendars.setCalendarUser(user_read_todo, calendars.RIGHT_READ_TASK, true, calendars.SORTSTRATEGY_NATURAL ); + calendars.setCalendarUser(user_write_todo, calendars.RIGHT_WRITE_TASK, true, calendars.SORTSTRATEGY_NATURAL ); + calendars.setCalendarUser(user_read_event, calendars.RIGHT_READ_APPOINTMENT, true, calendars.SORTSTRATEGY_NATURAL ); + calendars.setCalendarUser(user_write_event, calendars.RIGHT_WRITE_APPOINTMENT, true, calendars.SORTSTRATEGY_NATURAL ); + + //********** Ressourcen in Kalender einfügen ************ + var ressource = tools.getUsersWithRole("PROJECT_Ressource"); + calendars.setCalendarUser( ressource, calendars.RIGHT_READ_APPOINTMENT | calendars.RIGHT_WRITE_APPOINTMENT ); + + //add all users from support-role since support-action-tasks (sp_supportAktionen) generates tasks for all support-role members + //and if you're a member you are allowed to edit these + if (tools.hasRole(user, "PROJECT_Support")) + { + var support = tools.getUsersWithRole("PROJECT_Support"); + calendars.setCalendarUser( support, calendars.RIGHT_WRITE_TASK | calendars.RIGHT_READ_TASK ); + } + + function __getGrants( pKey, pIndex ) + { + var grants = []; + if ( tree[pKey].grants != undefined && tree[pKey].grants[pIndex]) grants = tree[pKey].grants[pIndex]; + else if ( tree[pKey].pid != "" ) grants = __getGrants( tree[pKey].pid, pIndex ); + return grants; + } +} + +/* + * setzt Recht für alle Kalender + * + * @return {void} + */ +function setAllCalendarGrant() +{ + calendars.resetCalendarUser(); + var users = tools.getStoredUsers(); + var calendar_user = []; + for ( var i = 0; i < users.length; i++ ) calendar_user.push( users[i][1] ); + calendars.setCalendarUser(calendar_user, calendars.RIGHT_READ_TASK | calendars.RIGHT_WRITE_TASK, false, calendars.SORTSTRATEGY_NATURAL ); +} + +/* + * gibt die Logins der user, die den übergebenen User als Attribute eingetragen haben, zurück + * + * @param {[]} pUsers req Logins + * @param {String []} pAttrName req AttributeName für Employee + * @param {String []} pFields opt + * + * @return {String []} Logins + */ +function getUsersbyAttr( pUsers, pAttrName, pFields ) +{ + if (typeof(pAttrName) == "string") pAttrName = [pAttrName] + + if ( pFields == undefined ) + { + pFields = ["LOGIN"]; + } + + var sqlstr = "select " + pFields.join(", ") + " from ATTRLINK join ATTR on ATTRLINK.ATTR_ID = ATTRID and OBJECT_ID = 12 " + + "and ATTRNAME in ('" + pAttrName.join("','") + "') " + + " join EMPLOYEE on EMPLOYEEID = ATTRLINK.ROW_ID join RELATION on RELATION_ID = RELATIONID join PERS on PERS_ID = PERSID" + + " where VALUE_ID in (select EMPLOYEEID from EMPLOYEE where LOGIN in ('" + pUsers.join("','") + "'))" + + ""; + + if(pFields.length == 1) + return db.array(db.COLUMN, sqlstr); + else + return db.table(sqlstr); +} + +/* + * Gibt die Anzahl der verknüpften Aufgaben und Termine zurück. + * + * @param {String} pID req + * @param {String} pFrame req + * + * @return {String} text + */ +function countLinkedTodoEvent(pID, pFrame) +{ + var today = getDate (vars.getString("$sys.date")); + var datefrom = String(today); + var dateto = String(eMath.addInt(today, datetime.ONE_WEEK)); + + var str = "select count(distinct ELEMENTUID) from ASYS_CALENDARLINK join ASYS_CALENDARBACKEND on ELEMENTUID = ASYS_CALENDARLINK.ENTRYID " + + " where FRAME = 'comp." + pFrame + "' and ELEMENTUID is not null and DBID = '" + pID + "'"; + var rettask = db.cell(str + "and ENTRYTYPE = " + calendars.VTODO + " and STATUS in ('" + + mapCalendarStatus(calendars.STATUS_NEEDSACTION, calendars.getBackendTypeTasks() ) + "', '" + + mapCalendarStatus(calendars.STATUS_INPROCESS, calendars.getBackendTypeTasks() ) + "')"); + + var eventStatusList = [ + mapCalendarStatus(calendars.STATUS_CONFIRMED, calendars.getBackendType() ) + ,mapCalendarStatus(calendars.STATUS_TENTATIVE, calendars.getBackendType() ) + ]; + + if (calendars.getBackendType() == calendars.BACKEND_EXCHANGEWS) + eventStatusList.push(calendars.STATUS_FREE); + + var retevent = db.cell([str + " and ENTRYTYPE = " + calendars.VEVENT + " and STATUS in ('" + eventStatusList.join("', '") + "')" + + " and DTSTART >= ? and DTEND <= ?", + [ [ String(datefrom), SQLTYPES.DATE ], [String(dateto), SQLTYPES.DATE ] ]]); + + result.string(translate.withArguments("&Aufg / Term (%0/%1)", [rettask, retevent])); +} + +/* + * Gibt die Anzahl der verknüpften Aufgaben zurück. + * + * @param {String} pID req + * @param {String} pFrame req + * + * @return {String} text + */ +function countLinkedTodo(pID, pFrame) +{ + var str = "select count(distinct ELEMENTUID) " + + "from ASYS_CALENDARLINK " + + "join ASYS_CALENDARBACKEND on ELEMENTUID = ASYS_CALENDARLINK.ENTRYID " + + " where FRAME = 'comp." + pFrame + "' " + + "and ELEMENTUID is not null and DBID = '" + pID + "'"; + + var rettask = db.cell(str + "and ENTRYTYPE = " + calendars.VTODO + + " and STATUS in ('" + + mapCalendarStatus(calendars.STATUS_NEEDSACTION, calendars.getBackendTypeTasks() ) + "', '" + + mapCalendarStatus(calendars.STATUS_INPROCESS, calendars.getBackendTypeTasks() ) + "')" + + ""); + + result.string(translate.withArguments("&Aufgaben (%0)", [rettask])); +} + +/* + * Gibt die Überschneidungen von Termine zurück. + * + * @param {Date} pStart req + * @param {Date} pEnd req + * @param {Array} pUsers req + * + * @return {String Array} Termine + */ +function getOverlappingEvents(pStart, pEnd, pUsers ) +{ + var resultEvents = new Array(); + var users = pUsers; + if (calendars.getBackendType() == calendars.BACKEND_DB && pStart != "" && pEnd != "" && users.length > 0) + { + calendars.clearCache(); + for (var u = 0; u < users.length; u++) + { + var localuid = vars.get("$image.entry")[calendars.ID] + var condition = new Array(); + condition["COUNT"] = "1"; + condition["TYPE_1"] = calendars.VFREEBUSY; + condition["USER_1"] = users[u][0]; + condition["START_1"] = pStart; + condition["END_1"] = pEnd; + + var fbsall = calendars.getEntries(condition); + for (var j = 0; j < fbsall.length; j++) + { + var fbs = fbsall[j]; + for (var i = 0; i < fbs.length; i++) + { + var next = fbs[i]; + var uid = next[calendars.ID]; + var sum = next[calendars.SUMMARY]; + if (uid != localuid) + { + var freebusy = next[calendars.FREEBUSY]; + var freebusyDec = text.decodeMS(freebusy); + var match = false; + for (var k = 0; k < freebusyDec.length; k++) + { + var freebusyInstance = text.decodeMS(freebusyDec[k]); + if (!freebusyInstance[0].equals("FREE")) + { + match = true; + } + } + if (match) resultEvents.push([users[u][2], sum != null && sum.length > 0 ? sum : "?", uid]); + } + } + } + } + } + return resultEvents; +} + +/* + * Überprüft den Eintrag, wenn eine neue Aufgaben angelegt wird darauf, ob private Aufgaben für andere erstellt werden + * + * @param {String[]} pUser die Liste der User, denen die Aufgabe zugewiesen werden soll + * @param {String} pClassification die Klassifizierung der Aufgabe - "PRIVATE" + * + * @return {Boolean} ob der Eintrag in der Konstellation möglich ist, wenn nicht wird eine Meldung ausgegeben + */ +function checkEntry(pUser, pClassification ) +{ + if( pClassification == "PRIVATE" && + ( pUser.length > 1 || text.decodeMS(pUser[0][0])[1] != "CN:" + vars.getString("$sys.user"))) + { + question.showMessage(translate.text("Eine private Aufgabe kann nicht jemand anderem zugewiesen werden.")); + return false; + } + else + { + return true; + } +} + +/* + * Verschiebt ein Calendareintrag + * + * @param {String[]} pIDs req die zu verschiebenden Ids mit den Calenderinformationen (Multistring) + * @param {String} pTblCompName opt die Komponente die aktualisiert werden soll + * + * @return {void} + */ +function shiftEntry(pIDs, pTblCompName) +{ + var datenew = swing.askUserQuestion(translate.text("Verschieben auf Datum?"), "DLG_DATE"); + if (datenew != null ) + { + var grantedUsers = calendars.getDisplayCalendarUsers(calendars.RIGHT_WRITE_TASK); + var usermap = {}; + var granted = true; + for (let i = 0; i < grantedUsers.length; i++) + { + usermap[grantedUsers[i][1]] = true; + } + + datenew = datetime.clearTime(datenew["DLG_DATE.Edit_date"]); + if (datenew <= vars.getString("$sys.today")) + question.showMessage(translate.text("nur Verschiebung in die Zukunft erlaubt!")); + else + { + for (var i = 0, j = pIDs.length; i < j; i++) + { + var id = text.decodeMS(pIDs[i]); + var entry = calendars.getEntry(id[0], null, id [1], calendars.VTODO); + var affectedUsers = entry[calendars.ATTENDEES]; + + granted = hasGrantForEntryByObject(affectedUsers, usermap); + if(granted) + { + //Zeitdifferenz von Aufgabenstart und -ende + var dateDiff = eMath.subInt(entry[calendars.DUE], entry[calendars.DTSTART]); + + //Startzeit der Aufgabe + var startTime = eMath.subInt(entry[calendars.DTSTART] + , datetime.clearTime(entry[calendars.DTSTART])); + + entry[calendars.DTSTART] = eMath.addInt(datenew, startTime); + entry[calendars.DUE] = eMath.addInt(entry[calendars.DTSTART], dateDiff); + calendars.update( [ entry ] ); + } + else + question.showMessage(translate.text("Keine Berechtigung zum Verschieben der Aufgabe")); + } + } + } +} + +/* + * Gibt eine Aufgabe weiter + * + * @param {String} pIDs die ID der Aufgabe, welche weitergegeben werden soll + * @param {String} pTblCompName die Komponente der Aufgaben, die aktualisiert werden soll + * + * @return {void} + */ +function handOverToDo(pIDs, pTblCompName) +{ + var calendar_user = ""; + var users = getCalenderUser( calendars.RIGHT_WRITE_TASK ); + var publicCount = 0; + var privateCount = 0; + var notGrantedCount = 0; + + var grantedUsers = calendars.getDisplayCalendarUsers(calendars.RIGHT_WRITE_TASK); + var userMap = {}; + var granted = true; + for (let i = 0; i < grantedUsers.length; i++) + { + userMap[grantedUsers[i][1]] = true; + } + + if (pIDs.length == 1) // only one todo and private + { + var id = text.decodeMS( pIDs[0] ); + var entry = calendars.getEntry( id[0], null, id[1] ); + if(entry[calendars.CLASSIFICATION] == calendars.CLASSIFICATION_PRIVATE) + { + question.showMessage(translate.text("Kein Weitergeben von privaten Aufgaben möglich!")); + return; + } + } + + for ( let i = 0; i < users.length; i++) if (pIDs.length > 0 || users[i][0] != id[1]) calendar_user += "|" + users[i][1]; + var selection = swing.askQuestion(translate.text("Benutzer auswählen"), swing.QUESTION_COMBOBOX, calendar_user); + if (selection != null) + { + for ( let i = 0; i < users.length; i++) + { + if ( selection == users[i][1] ) + { + selection = users[i]; + break; + } + } + for( let i = 0; i < pIDs.length; i++) + { + let id = text.decodeMS( pIDs[i] ); + let entry = calendars.getEntry( id[0], null, id[1] ); + if(entry[calendars.CLASSIFICATION] == calendars.CLASSIFICATION_PRIVATE) privateCount++; + else //Nur öffentliche Aufgabe kann weiter gegeben werden. + { + // User austauschen + var usermap = entry[calendars.ATTENDEES]; + var affectedusers = []; + + granted = hasGrantForEntryByObject(usermap, userMap); + + for (var ui = 0; ui < usermap.length; ui++) + { + var login_cn = usermap[ui]["cn"]; + var user = tools.getUserByAttribute(tools.CALENDARID, usermap[ui]["paramvalue"].substr("mailto:".length)) + if (user == null) user = login_cn; + else user = user[tools.TITLE] + + if ( user == id[1] ) affectedusers.push(selection[0]); + else if ( user != selection[0] ) affectedusers.push(user); + } + if(granted) + { + entry[calendars.AFFECTEDUSERS] = text.encodeMS(calendars.getCalendarUsers(affectedusers)); + calendars.update([entry]); + publicCount++; + } + else notGrantedCount++ + } + } + question.showMessage(translate.withArguments("%0 Aufgabe(n) erfolgreich weitergegeben an: %1" + + (privateCount == 0 ? "" : "\n%2 private Aufgabe(n) können nicht weitergegeben werden.") + +(notGrantedCount == 0 ? "" : "\n%3 Aufgabe(n) können aufgrund fehlender Berechtigung nicht weitergegeben werden."), + [publicCount, selection[1], privateCount, notGrantedCount])); + + } +} + +// ToDo prüfen !! +/* + * Verschiebt die Kalendereinträge bei Login-Änderung + * + * @param {String} pNewlogin req + * @param {String} pOldlogin req + * @param {String} pNewCalendarID req + * @param {String} pOldCalendarID req + * + * @return {void} + */ +function moveCalendarData ( pNewlogin, pOldlogin, pNewCalendarID, pOldCalendarID ) +{ + var newcaluser = text.encodeMS(["mailto:" + pNewCalendarID, "CN:" + pNewlogin]); + var oldcaluser = text.encodeMS(["mailto:" + pOldCalendarID, "CN:" + pOldlogin]); + db.runStatement("update ASYS_CALENDARBACKEND set OWNER = '" + newcaluser + "' where OWNER = '" + oldcaluser + "'"); + db.runStatement("update ASYS_CALENDARBACKEND set ORGANIZER = '" + newcaluser + "' where ORGANIZER = '" + oldcaluser + "'"); + + if(pNewCalendarID != pOldCalendarID) //Nur wenn sich die E-Mailadresse geändert hat + { + //Messenger-Historien + db.runStatement("update ASYS_XMPP_HISTORY set JID_FROM = '" + pNewCalendarID +"' where JID_FROM = '" + pOldCalendarID +"'", "_____SYSTEMALIAS"); + db.runStatement("update ASYS_XMPP_HISTORY set JID_TO = '" + pNewCalendarID +"' where JID_TO = '" + pOldCalendarID +"'", "_____SYSTEMALIAS"); + } +} + +/* + * Löst den CalenderUser in lesbarer From auf + * + * @param {String} pValue req + * + * @return {String} übersetzten Wert + */ +function getCalUser( pValue ) +{ + var realname = pValue; + var user = tools.getUser( text.decodeMS(pValue)[1].split(":")[1] ); + if ( user != null ) + { + realname = user[tools.PARAMS][tools.FIRSTNAME] + " " + user[tools.PARAMS][tools.LASTNAME]; + } + return realname; +} + +/* + * Gibt den Login eines CalenderUser zurück + * + * @param {String} pCalendarUser req + * + * @return {String} Title + */ +function getTitleCalenderUser( pCalendarUser ) +{ + var data = text.decodeMS(pCalendarUser) + for ( var i = 0; i < data.length; i++ ) + { + //if login changes we have to check calendarid + if ( data[i].substr(0, "mailto:".length).toUpperCase() == "MAILTO:" ) + { + var user = tools.getUserByAttribute(tools.CALENDARID, [data[i].substr("mailto:".length)]); + if (user != null ) + return user[tools.TITLE]; + } + + if ( data[i].substr(0, 3).toUpperCase() == "CN:" ) + return data[i].substr(3); + } + return ""; +} + + +/* + * Gibt den richtigen Status zum Prüfen je nach Backend zurück + * + * + * @param {String} pStatus req die konstante für den zu prüfenden status, + * z.B. calendars.STATUS_INPROCESS + * + * @param {String} pCalendarType req die konstante für den typen des Termin- oder Aufgabenbackends, + * z.B. calendars.BACKEND_DB + * + * @return {String} Konstanten für den Kalender (Backend-Typen), gibt es den status im backend nicht + * wird null geliefert + */ +function mapCalendarStatus(pStatus, pCalendarType) +{ + switch (pCalendarType) + { + //case calendars.BACKEND_EXCHANGE: + case calendars.BACKEND_EXCHANGEWS: + if (pStatus == calendars.STATUS_CONFIRMED) + return calendars.STATUS_BUSY; + else + return pStatus; + default: + if (pStatus == calendars.STATUS_OOF)//nur bei exchange + return null; + else + return pStatus; + } +} + +/* + * Sets the imagevariable with affectedusers + * + * @param {Object} pEntry req the Entry of Tasks or Appointments + * + * @return {void} + * + */ +function setAffectedUsersImage(pEntry) +{ + var affectedUsers = []; + var usermap = pEntry[calendars.ATTENDEES]; + var realnames = getRealNameObject(usermap); + + for ( var i = 0; i < usermap.length; i++ ) + { + affectedUsers.push([ text.encodeMS( [usermap[i]["paramvalue"], "CN:" + usermap[i]["cn"]] ), realnames[usermap[i]["cn"]] ]); + } + + vars.set("$image.affectedusers", affectedUsers); + return affectedUsers; +} + +/* + * Opens calendar links + * + * @param {String} pEntryID req the ID of the link + * + * @return {void} + * + */ +function openCalendarLinks(pEntryID) +{ + var openFramesObj = {}; + if (typeof(pEntryID) == "object") + openFramesObj = pEntryID; + else + { + var links = db.table("SELECT FRAME, DBIDCOLUMN, DBID FROM ASYS_CALENDARLINK WHERE ENTRYID = '" + pEntryID + "'"); + for (var i = 0; i < links.length; i++) + { + var frame = links[i][0].substr( 5 );//remove comp. so the frame can be opened with openFrame + if ( openFramesObj[frame] == undefined ) openFramesObj[frame] = { + IDField: links[i][1], + IDs: [] + }; + openFramesObj[frame].IDs.push(links[i][2]); + } + } + + for ( frame in openFramesObj) + { + var condition = openFramesObj[frame].IDField + " in ('" + openFramesObj[frame].IDs.join("', '") + "')"; + var framemode = openFramesObj[frame].IDs.length > 1 ? swing.FRAMEMODE_TABLE_SELECTION : swing.FRAMEMODE_SHOW; + + if ( vars.getString("$global.upwardLink") == "link") + { + swing.openLinkedFrame(frame, condition, swing.WINDOW_CURRENT, framemode, "", null, false, { + autoclose: true + } ); + } + else + { + swing.openFrame(frame, condition, swing.WINDOW_CURRENT, framemode, null, false); + } + } +} + +/** + * Returns the "real" calendar system/backend type (BackendType & SyncBackendType) + * + * @param {Number} pScope - The needed scope (e.g. "calendars.VEVENT", "calendars.VTODO") + * @return {Number} - The backend type (calendars.BACKEND_*) + */ +function getCalendarSystemType (pScope) +{ + // Check sync backend type + if (calendars.getSyncBackendType() != calendars.BACKEND_NONE && calendars.getSyncBackendType() != 3) + { + var scope = calendars.getSyncBackendTypeScope(); + if (scope.length == 1 && scope[0] == pScope) // Scope.length = 1 -> VEVENT *OR* VTODO + return calendars.getSyncBackendType(); + else if (scope.length == 2) // Scope.length = 2 -> Both + return calendars.getSyncBackendType(); + // Scope.length = 0 -> Nothing selected -> Skip this block + } + + // Fallback to backend type (event) + if (calendars.getBackendType() != calendars.BACKEND_NONE && pScope === calendars.VEVENT) + return calendars.getBackendType(); + + // Second fallback to backend type (todo) + if (calendars.getBackendTypeTasks() != calendars.BACKEND_NONE && pScope === calendars.VTODO) + return calendars.getBackendTypeTasks(); + + // Everything is none + return calendars.BACKEND_NONE; +} + +function hasGrantForEntryByMS(pAffectedUsers, pUserMap) +{ + for (let i = 0; i < pAffectedUsers.length; i++) + { + var calUser = getTitleCalenderUser( pAffectedUsers[i][0]); + if(pUserMap[calUser] == undefined) + { + return false; + break; + } + else + return true; + } +} + +function hasGrantForEntryByObject(pAffectedUsers, pUserMap) +{ + for (let i = 0; i < pAffectedUsers.length; i++) + { + calUser = tools.getUserByAttribute(tools.CALENDARID, pAffectedUsers[i]["paramvalue"].substr("mailto:".length)) + if (calUser == null) calUser = pAffectedUsers[i]["cn"]; + else calUser = calUser[tools.TITLE] + if(pUserMap[calUser] == undefined) + { + return false; + break; + } + else + return true; + } +} diff --git a/process/Campaign_lib/Campaign_lib.aod b/process/Campaign_lib/Campaign_lib.aod index 6cff8443c7403caa3bbdc859ee356e248dc54018..83b9c5a4ec0b34750b9e2a89f22bf88d762bad2f 100644 --- a/process/Campaign_lib/Campaign_lib.aod +++ b/process/Campaign_lib/Campaign_lib.aod @@ -1,9 +1,9 @@ -<?xml version="1.0" encoding="UTF-8"?> -<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> - <name>Campaign_lib</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <process>%aditoprj%/process/Campaign_lib/process.js</process> - <variants> - <element>LIBRARY</element> - </variants> -</process> +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> + <name>Campaign_lib</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/Campaign_lib/process.js</process> + <variants> + <element>LIBRARY</element> + </variants> +</process> diff --git a/process/Campaign_lib/process.js b/process/Campaign_lib/process.js index fc875f9b7770588efd2caf260adb7a5feae174b9..ae5d92cdea9a404ced9c93f06960655154a12d6c 100644 --- a/process/Campaign_lib/process.js +++ b/process/Campaign_lib/process.js @@ -1,252 +1,252 @@ -import("system.translate"); -import("system.logging"); -import("system.vars"); -import("system.db"); -import("system.neon"); -import("Sql_lib"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -/** - * Methods for campaignmanagement. - * Do not create an instance of this! - * - * @class - */ -function CampaignUtils() {} - -/** - * Add one Contact (Person or Organistaion) to a Campaign - * - * @param {String} pContactId req ContactId - */ -CampaignUtils.addParticipant = function(pContactId) -{ - _CampaignUtils._openAddParticipantContext("CampaignParticipant", pContactId, "ContactId_param", "CampaignParticipantEdit_view"); -} - -/** - * Add many Contacts (Person or Organistaion) to a Campaign - * - * @param {String} pRowIds req ContactIds - */ -CampaignUtils.addParticipants = function(pRowIds) -{ - _CampaignUtils._openAddParticipantContext("CampaignAddParticipants", pRowIds, "campaignParticipants_param", "CampaignAddParticipantsEdit_view"); -} - -/** - * todo - */ -CampaignUtils.getCampaignNameById = function(pCampaignId) -{ - let selectQuery = "select CAMPAIGN.NAME from CAMPAIGN"; - let conditionField = "CAMPAIGN.CAMPAIGNID"; - let defaultValue = ""; - - return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignId, defaultValue); -} - -/** - * todo - */ -CampaignUtils.getCampaignStepNameById = function(pCampaignStepId) -{ - let selectQuery = "select CAMPAIGNSTEP.NAME from CAMPAIGNSTEP"; - let conditionField = "CAMPAIGNSTEP.CAMPAIGNSTEPID"; - let defaultValue = ""; - - return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignStepId, defaultValue); -} - -/** - * todo - */ -CampaignUtils.getParticipantCountForStep = function(pCampaignStepId) -{ - let selectQuery = "select count(*) from CAMPAIGNPARTICIPANT"; - let conditionField = "CAMPAIGNPARTICIPANT.CAMPAIGNSTEP_ID"; - let defaultValue = 0; - - return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignStepId, defaultValue); -} - -/** - * todo - */ -CampaignUtils.getParticipantCount = function(pCampaignId) -{ - let selectQuery = "select count(*) from CAMPAIGNPARTICIPANT"; - let conditionField = "CAMPAIGNPARTICIPANT.CAMPAIGN_ID"; - let defaultValue = 0; - - return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignId, defaultValue); -} - -/** - * todo - */ -CampaignUtils.getMaxParticipantCountForStep = function(pCampaignStepId) -{ - let selectQuery = "select MAXPARTICIPANTS from CAMPAIGNSTEP"; - let conditionField = "CAMPAIGNSTEP.CAMPAIGNSTEPID"; - let defaultValue = 0; - - return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignStepId, defaultValue); -} - -/** - * todo - */ -CampaignUtils.getStepCount = function(pCampaignId) -{ - let selectQuery = "select count(*) from CAMPAIGNSTEP"; - let conditionField = "CAMPAIGNSTEP.CAMPAIGN_ID"; - let defaultValue = 0; - - return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignId, defaultValue); -} - -/** - * todo - */ -CampaignUtils.getCampaignStatusByCampaignId = function(pCampaignId) -{ - let selectQuery = "select CAMPAIGN.STATE from CAMPAIGN"; - let conditionField = "CAMPAIGN.CAMPAIGNID"; - let defaultValue = ""; - - let campaignState = $KeywordRegistry.campaignState(); - let statusId = _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignId, defaultValue); - return KeywordUtils.getViewValue(campaignState, statusId); -} - -/** - * todo - */ -CampaignUtils.createLogEntry = function(pCampaignId, pCampaignStepId, pContactId, pCampaignParticipantId) -{ - let colsCampaignParticipantLog = CampaignUtils.getParticipantLogInsertColumnNames(); - - let valsCampaignParticipantLog = new Array(pCampaignId, pCampaignStepId, pContactId, pCampaignParticipantId, vars.get("$sys.user"), vars.get("$sys.date")); - - let rows = db.insertData("CAMPAIGNPARTICIPANTLOG", colsCampaignParticipantLog, null, valsCampaignParticipantLog); - return (rows == 1); -} - -/** - * todo - */ -CampaignUtils.getParticipantLogInsertColumnNames = function() -{ - return ["CAMPAIGNPARTICIPANT_ID", "CAMPAIGN_ID", "CAMPAIGNSTEP_ID", "CAMPAIGNPARTICIPANTLOGID", "USER_NEW", "DATE_NEW"]; -} - -/** - * todo - */ -CampaignUtils.openSetCampaignStepView = function(pParticipantIds, pCampaignId, pCampaignStepId) -{ - var params = {}; - - params["campaignParticipants_param"] = pParticipantIds; - params["currentCampaignId_param"] = pCampaignId; - params["currentCampaignStepId_param"] = pCampaignStepId; - params["isUpdate_param"] = true; - - - - neon.openContext("CampaignAddParticipants", "CampaignAddParticipantsEdit_view", null, neon.OPERATINGSTATE_NEW, params); -} - -/** - * todo - */ -CampaignUtils.getDefaultCampaignStep = function(pCampaignId) -{ - let selectQuery = "select CAMPAIGNSTEPID from CAMPAIGNSTEP " + - "where CAMPAIGNSTEP.CAMPAIGN_ID = '" + pCampaignId + "' " + - "order by CAMPAIGNSTEP.SORTING asc"; - - - return db.cell(selectQuery) -} - -/** - * todo - */ -CampaignUtils.getCampaignStartDate = function(pCapmaignId) -{ - var campaignIdCondition = SqlCondition.begin() - .andPrepare("CAMPAIGNSTEP.CAMPAIGN_ID", pCapmaignId); - // TODO: Fetch first 1 rows only will not work with all dbms! Maybe just remove it, because db.cell always uses only the first row - return db.cell(campaignIdCondition.buildSql("SELECT DATE_START, SORTING FROM ADITO.CAMPAIGNSTEP", "1=2", "order by SORTING ASC FETCH FIRST 1 ROWS ONLY")); -} - -/** - * todo - */ -CampaignUtils.getCampaignEndDate = function(pCapmaignId) -{ - var campaignIdCondition = SqlCondition.begin() - .andPrepare("CAMPAIGNSTEP.CAMPAIGN_ID", pCapmaignId); - - // TODO: Fetch first 1 rows only will not work with all dbms! Maybe just remove it, because db.cell always uses only the first row - return db.cell(campaignIdCondition.buildSql("SELECT DATE_END, SORTING FROM CAMPAIGNSTEP", "1=2", "order by SORTING ASC FETCH FIRST 1 ROWS ONLY")); -} - -/** - * todo - */ -CampaignUtils.getMaxParticipantsValidationMessage = function() -{ - //todo how/where should this text be stored? - return translate.text("The max participants count has to be equal or greater than the count of the current participants!"); -} - -/** - * Methods for campaignmanagement. - * Do not create an instance of this! - * - * @ignore - * @class - */ -function _CampaignUtils() {} - -/** - * Open EditView to Add Participants to a Campaignstep - * - * @param {String} pContext req name of the context - * @param {String} pRowIds req Contact-Ids - * @param {String} pEntityParam req parameter for the entity (CAMPAIGNSTEP) - * @param {String} pView req targeting view - * - */ -_CampaignUtils._openAddParticipantContext = function(pContext, pRowIds, pEntityParam, pView) -{ - var params = {}; - - if (pRowIds) - { - params[pEntityParam] = pRowIds; - } - params["isUpdate_param"] = false; - - logging.log("pRowsIds" + pRowIds); - neon.openContext(pContext, null, null, neon.OPERATINGSTATE_NEW, params); -} - -/** - * todo - */ -_CampaignUtils._loadSingleValueFromDb = function(pSelectQuery, pConditionField, pConditionValue, pDefaultValue) -{ - let res = pDefaultValue; - if (pConditionValue) - { - res = db.cell(SqlCondition.begin() - .andPrepare(pConditionField, pConditionValue) - .buildSql(pSelectQuery)); - } - return res; +import("system.translate"); +import("system.logging"); +import("system.vars"); +import("system.db"); +import("system.neon"); +import("Sql_lib"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +/** + * Methods for campaignmanagement. + * Do not create an instance of this! + * + * @class + */ +function CampaignUtils() {} + +/** + * Add one Contact (Person or Organistaion) to a Campaign + * + * @param {String} pContactId req ContactId + */ +CampaignUtils.addParticipant = function(pContactId) +{ + _CampaignUtils._openAddParticipantContext("CampaignParticipant", pContactId, "ContactId_param", "CampaignParticipantEdit_view"); +} + +/** + * Add many Contacts (Person or Organistaion) to a Campaign + * + * @param {String} pRowIds req ContactIds + */ +CampaignUtils.addParticipants = function(pRowIds) +{ + _CampaignUtils._openAddParticipantContext("CampaignAddParticipants", pRowIds, "campaignParticipants_param", "CampaignAddParticipantsEdit_view"); +} + +/** + * todo + */ +CampaignUtils.getCampaignNameById = function(pCampaignId) +{ + let selectQuery = "select CAMPAIGN.NAME from CAMPAIGN"; + let conditionField = "CAMPAIGN.CAMPAIGNID"; + let defaultValue = ""; + + return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignId, defaultValue); +} + +/** + * todo + */ +CampaignUtils.getCampaignStepNameById = function(pCampaignStepId) +{ + let selectQuery = "select CAMPAIGNSTEP.NAME from CAMPAIGNSTEP"; + let conditionField = "CAMPAIGNSTEP.CAMPAIGNSTEPID"; + let defaultValue = ""; + + return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignStepId, defaultValue); +} + +/** + * todo + */ +CampaignUtils.getParticipantCountForStep = function(pCampaignStepId) +{ + let selectQuery = "select count(*) from CAMPAIGNPARTICIPANT"; + let conditionField = "CAMPAIGNPARTICIPANT.CAMPAIGNSTEP_ID"; + let defaultValue = 0; + + return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignStepId, defaultValue); +} + +/** + * todo + */ +CampaignUtils.getParticipantCount = function(pCampaignId) +{ + let selectQuery = "select count(*) from CAMPAIGNPARTICIPANT"; + let conditionField = "CAMPAIGNPARTICIPANT.CAMPAIGN_ID"; + let defaultValue = 0; + + return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignId, defaultValue); +} + +/** + * todo + */ +CampaignUtils.getMaxParticipantCountForStep = function(pCampaignStepId) +{ + let selectQuery = "select MAXPARTICIPANTS from CAMPAIGNSTEP"; + let conditionField = "CAMPAIGNSTEP.CAMPAIGNSTEPID"; + let defaultValue = 0; + + return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignStepId, defaultValue); +} + +/** + * todo + */ +CampaignUtils.getStepCount = function(pCampaignId) +{ + let selectQuery = "select count(*) from CAMPAIGNSTEP"; + let conditionField = "CAMPAIGNSTEP.CAMPAIGN_ID"; + let defaultValue = 0; + + return _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignId, defaultValue); +} + +/** + * todo + */ +CampaignUtils.getCampaignStatusByCampaignId = function(pCampaignId) +{ + let selectQuery = "select CAMPAIGN.STATE from CAMPAIGN"; + let conditionField = "CAMPAIGN.CAMPAIGNID"; + let defaultValue = ""; + + let campaignState = $KeywordRegistry.campaignState(); + let statusId = _CampaignUtils._loadSingleValueFromDb(selectQuery, conditionField, pCampaignId, defaultValue); + return KeywordUtils.getViewValue(campaignState, statusId); +} + +/** + * todo + */ +CampaignUtils.createLogEntry = function(pCampaignId, pCampaignStepId, pContactId, pCampaignParticipantId) +{ + let colsCampaignParticipantLog = CampaignUtils.getParticipantLogInsertColumnNames(); + + let valsCampaignParticipantLog = new Array(pCampaignId, pCampaignStepId, pContactId, pCampaignParticipantId, vars.get("$sys.user"), vars.get("$sys.date")); + + let rows = db.insertData("CAMPAIGNPARTICIPANTLOG", colsCampaignParticipantLog, null, valsCampaignParticipantLog); + return (rows == 1); +} + +/** + * todo + */ +CampaignUtils.getParticipantLogInsertColumnNames = function() +{ + return ["CAMPAIGNPARTICIPANT_ID", "CAMPAIGN_ID", "CAMPAIGNSTEP_ID", "CAMPAIGNPARTICIPANTLOGID", "USER_NEW", "DATE_NEW"]; +} + +/** + * todo + */ +CampaignUtils.openSetCampaignStepView = function(pParticipantIds, pCampaignId, pCampaignStepId) +{ + var params = {}; + + params["campaignParticipants_param"] = pParticipantIds; + params["currentCampaignId_param"] = pCampaignId; + params["currentCampaignStepId_param"] = pCampaignStepId; + params["isUpdate_param"] = true; + + + + neon.openContext("CampaignAddParticipants", "CampaignAddParticipantsEdit_view", null, neon.OPERATINGSTATE_NEW, params); +} + +/** + * todo + */ +CampaignUtils.getDefaultCampaignStep = function(pCampaignId) +{ + let selectQuery = "select CAMPAIGNSTEPID from CAMPAIGNSTEP " + + "where CAMPAIGNSTEP.CAMPAIGN_ID = '" + pCampaignId + "' " + + "order by CAMPAIGNSTEP.SORTING asc"; + + + return db.cell(selectQuery) +} + +/** + * todo + */ +CampaignUtils.getCampaignStartDate = function(pCapmaignId) +{ + var campaignIdCondition = SqlCondition.begin() + .andPrepare("CAMPAIGNSTEP.CAMPAIGN_ID", pCapmaignId); + // TODO: Fetch first 1 rows only will not work with all dbms! Maybe just remove it, because db.cell always uses only the first row + return db.cell(campaignIdCondition.buildSql("SELECT DATE_START, SORTING FROM ADITO.CAMPAIGNSTEP", "1=2", "order by SORTING ASC FETCH FIRST 1 ROWS ONLY")); +} + +/** + * todo + */ +CampaignUtils.getCampaignEndDate = function(pCapmaignId) +{ + var campaignIdCondition = SqlCondition.begin() + .andPrepare("CAMPAIGNSTEP.CAMPAIGN_ID", pCapmaignId); + + // TODO: Fetch first 1 rows only will not work with all dbms! Maybe just remove it, because db.cell always uses only the first row + return db.cell(campaignIdCondition.buildSql("SELECT DATE_END, SORTING FROM CAMPAIGNSTEP", "1=2", "order by SORTING ASC FETCH FIRST 1 ROWS ONLY")); +} + +/** + * todo + */ +CampaignUtils.getMaxParticipantsValidationMessage = function() +{ + //todo how/where should this text be stored? + return translate.text("The max participants count has to be equal or greater than the count of the current participants!"); +} + +/** + * Methods for campaignmanagement. + * Do not create an instance of this! + * + * @ignore + * @class + */ +function _CampaignUtils() {} + +/** + * Open EditView to Add Participants to a Campaignstep + * + * @param {String} pContext req name of the context + * @param {String} pRowIds req Contact-Ids + * @param {String} pEntityParam req parameter for the entity (CAMPAIGNSTEP) + * @param {String} pView req targeting view + * + */ +_CampaignUtils._openAddParticipantContext = function(pContext, pRowIds, pEntityParam, pView) +{ + var params = {}; + + if (pRowIds) + { + params[pEntityParam] = pRowIds; + } + params["isUpdate_param"] = false; + + logging.log("pRowsIds" + pRowIds); + neon.openContext(pContext, null, null, neon.OPERATINGSTATE_NEW, params); +} + +/** + * todo + */ +_CampaignUtils._loadSingleValueFromDb = function(pSelectQuery, pConditionField, pConditionValue, pDefaultValue) +{ + let res = pDefaultValue; + if (pConditionValue) + { + res = db.cell(SqlCondition.begin() + .andPrepare(pConditionField, pConditionValue) + .buildSql(pSelectQuery)); + } + return res; } \ No newline at end of file diff --git a/process/Contact_lib/process.js b/process/Contact_lib/process.js index af62133929989b629878eaaf37939bd9c7ed8392..9db41fc6d453cbda9df6b68a85835c6f956c22ea 100644 --- a/process/Contact_lib/process.js +++ b/process/Contact_lib/process.js @@ -1,528 +1,528 @@ -import("system.translate"); -import("system.neon"); -import("system.vars"); -import("system.result"); -import("system.db"); -import("Sql_lib"); -import("Util_lib"); -import("Context_lib"); - -/** - * a static Utility class for organisations - * - * Do not create an instance of this! - * @class - */ -function OrganisationUtils() {} - -/* - * retrieves the name of an organisation with a select statement - * - * @param {String} pOrganisationId the ID of the organisation that shall be searched in the database; - * - * @return {String} the name of the organisation - */ -OrganisationUtils.getNameByOrganisationId = function(pOrganisationId) -{ - var orgname = ""; - if (pOrganisationId) - { - orgname = db.cell(SqlCondition.begin() - .andPrepare("ORGANISATION.ORGANISATIONID", pOrganisationId) - .buildSql("select ORGANISATION.NAME from ORGANISATION")); - } - return orgname; -}; - -/* - * retrieves the name of an organisation with a select statement - * - * @param {String} pContactId the ID of the corresponding org-contact of the organisation that shall be searched in the database; - * - * @return {String} the name of the organisation - */ -OrganisationUtils.getNameByContactId = function(pContactId) -{ - var orgname = ""; - if (pContactId) - { - orgname = db.cell(SqlCondition.begin() - .andPrepare("CONTACT.CONTACTID", pContactId) - .buildSql("select ORGANISATION.NAME \n\ - from ORGANISATION \n\ - join CONTACT on (CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID and CONTACT.PERSON_ID is null)")); - } - return orgname; -}; - -/** - * a static Utility class for contacts - * - * Do not create an instance of this! - * @class - */ -function ContactUtils() {} - -/* - * validates if a ORGANISATION_ID in a person-contact is correct [=>does not already exist] or not [=>does already exist] - * this is done by checking the database for entires that do already exist with this combination of ORGANISATIONID and PERSONID - * gives different messages for private persons and contacts that do already exist - * - * @param {String} pPersonId the ID of the person that shall be searched in the database - * @param {String} pOrganisationId the ID of the organisation that shall be searched in the database; - * if this is an empty string it will be treated as private-dummy-organisation - * @param {String} [pOwnContactId] the CONTACTID of your current record; this is only needed when in EDIT-mode since you don't want to get a message - * for your own CONTACT; - * (if you do a lookup if a organisation-person-combination does already exist you'l get your own contact which you want to exclude) - * - * @return {String} translated text that describes whats the problem or null if there was no problem and everything is fine - * - */ -ContactUtils.validateIfAlreadyExists = function(pPersonId, pOrganisationId, pOwnContactId) -{ - if (!pPersonId) - return null; - if (pOrganisationId == "") - pOrganisationId = "0"; - var cond = SqlCondition.begin() - .andPrepare("CONTACT.PERSON_ID", pPersonId) - .andPrepare("CONTACT.ORGANISATION_ID", pOrganisationId) - //exclude the own since we do not want a "is not valid"-message for our own entry (on EDIT-mode) - .andPrepareIfSet("CONTACT.CONTACTID", pOwnContactId, "# != ?"); - - var sql = cond.buildSql("select CONTACT.CONTACTID from CONTACT"); - var alreadyExistantContactId = db.cell(sql); - if (alreadyExistantContactId) - if (pOrganisationId.trim() == "0") - return translate.text("This private person doeas already exist and can not be created once more."); - else - return translate.text("This combination of person and organisation does already exist and can not be created once more."); - - return null; -}; - -/** - * Get the type of contact. <br> - * In recordstate NEW or EDIT it loads the person- / orgid from the db.<br> - * But in the other states it uses the values pPersId, pOrgId directly (for performance).<br> - * <br> - * It only checks if pPersId / pOrgId are not empty. <br> - * Based on which parameter is empty / not empty it return s the type of the contact. <br> - * <br> - * !!It does not check if the person / org ids really exist!! <br> - * !!And it does not check if really any contact with this person / org ids exist!! <br> - * <br> - * <br> - * It is meant to be used by entitys, where you can load person and org with the DataRecord. <br> - * This saves an extra select from CONTACT. <br> - * <br> - * <br> - * @param {String} pContactId - * @param {String} pPersId selected from the CONTACT table - * @param {String} pOrgId selected from the CONTACT table - * <br> - * @return {Integer} <br>0 if both ids are empty <br> - * 1 if organisation <br> - * 2 if privat person <br> - * 3 if person of an organisation <br> - */ -ContactUtils.getContactType = function(pContactId, pPersId, pOrgId) -{ - if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) - { - return ContactUtils.getContactTypeByContactId(pContactId); - } - else - { - return ContactUtils.getContactTypeByPersOrg(pPersId, pOrgId); - } -} - -/** - * get the type of contact for a relationId <br> - * If you already have persId and orgId from the CONTACT table, use getContactTypeByPersOrg() <br> - * @param {String} pContactId - * <br> - * @return {Integer} 0 if relationId not found <br> - * 1 if organisation <br> - * 2 if privat person <br> - * 3 if person of an organisation <br> - */ -ContactUtils.getContactTypeByContactId = function(pContactId) -{ - var relationData = ContactUtils.getPersOrgIds(pContactId); - if (relationData[0]) - { - return this.getContactTypeByPersOrg(relationData[1], relationData[2]); - } - else - { - return 0; - } -} - -/** - * Get the type of contact. <br> - * It only checks if the parameters are not empty. <br> - * Based on which parameter is empty / not empty it return s the type of the contact. <br> - * <br> - * !!It does not check if the person / org ids really exist!! <br> - * !!And it does not check if really any contact with this person / org ids exist!! <br> - * <br> - * This function is more performant than getContactTypeByContactId, <br> - * because it doesn't load something from the db. <br> - * <br> - * It is meant to be used by entitys, where you can load person and org with the DataRecord. <br> - * This saves an extra select from CONTACT. <br> - * <br> - * @param {String} pPersId selected from the CONTACT table - * @param {String} pOrgId selected from the CONTACT table - * <br> - * @return {Integer} <br>0 if both ids are empty <br> - * 1 if organisation <br> - * 2 if privat person <br> - * 3 if person of an organisation <br> - */ -ContactUtils.getContactTypeByPersOrg = function(pPersId, pOrgId) -{ - if (!pPersId) - { - if (!pOrgId) { - return 0; // both are empty - } - return 1; // Organisation da PERSON_ID leer - } - else - { - if (pOrgId.replace(/\s/g,"") == "0" ) - { - return 2; // Privatperson da PERSON_ID nicht leer und ORGANISATION_ID.trim() = '0' - } - else - { - return 3; // Person einer Organisation da PERSON_ID nicht leer und ORGANISATION_ID nicht '0' - } - } -} - -/** - * return the corresponding context of the contact - * - * It only checks if the parameters are not empty. <br> - * Based on which parameter is empty / not empty it return s the type of the contact. <br> - * <br> - * !!It does not check if the person / org ids really exist!! <br> - * !!And it does not check if really any contact with this person / org ids exist!! <br> - * <br> - * This function is more performant than getContextByContactId, <br> - * because it doesn't load something from the db. <br> - * <br> - * It is meant to be used by entitys, where you can load person and org with the DataRecord. <br> - * This saves an extra select from CONTACT. <br> - * <br> - * - * @param {String} pPersId selected from the CONTACT table - * @param {String} pOrgId selected from the CONTACT table - * - * @return {String} contextname or "" if both ids are empty - */ -ContactUtils.getContextByPersOrg = function(pPersId, pOrgId) -{ - switch (ContactUtils.getContactTypeByPersOrg(pPersId, pOrgId)) - { - case 1: // Org - return ContextUtils.getContextName("Organisation"); - case 2: // private Person - case 3: // Person - return ContextUtils.getContextName("Person"); - default: - return ""; - } -} - -/** - * return the corresponding context of the contact <br> - * If you already have persId and orgId from the CONTACT table, use getContextByPersOrg() <br> - * - * @param {String} pContactId - * @return {String} contextname or "" if contact not found - */ -ContactUtils.getContextByContactId = function(pContactId) -{ - var relationData = ContactUtils.getPersOrgIds(pContactId); - return ContactUtils.getContextByPersOrg(relationData[1], relationData[2]) -} - -/** - * get the person- and org-id from a contact as array - * - * @param {String} pContactId - * @return {String[]} result as [contactid, persid, orgid] if one of them is null in the db, "" will be returned as the id. - */ -ContactUtils.getPersOrgIds = function(pContactId) -{ - if (pContactId) { - return db.array(db.ROW, - SqlCondition.begin() - .andPrepare("CONTACT.CONTACTID", pContactId) - .buildSql("select CONTACTID, PERSON_ID, ORGANISATION_ID from CONTACT", "1=0")); - } - - return []; -} - -/** - * get the name of the person or organisation - * - * @param {String} pContactId the contact id where pers-name or orgname shall be loaded - * - * @return {String} the name or "" - */ -ContactUtils.getFullTitleByContactId = function(pContactId) -{ - if (pContactId) - { - var data = db.array(db.ROW, SqlCondition.begin() - .andPrepare("CONTACT.CONTACTID", pContactId) - .buildSql("select ORGANISATION.NAME, PERSON.SALUTATION, PERSON.TITLE, PERSON.FIRSTNAME, PERSON.MIDDLENAME, PERSON.LASTNAME " - + "from CONTACT CONTACT " - + "join ORGANISATION on ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID " - + "left join PERSON on PERSON.PERSONID = CONTACT.PERSON_ID", "1 = 2")); - if (data.length == 0) - return ""; - var contact = new Contact(); - [contact.organisationName, contact.salutation, contact.title, contact.firstname, contact.middlename, contact.lastname] = data; - var renderer = new ContactTitleRenderer(contact); - return renderer.asString(); - } - - return ""; -} - -/** - * get the name of the person - * do not use this for a mass of data (e.g. in a loop) since this will be slow due to select-time - * - * @param {String} pPersonId the id of the person where the data shall be loaded - * - * @return {String} the name or "" - */ -ContactUtils.getTitleByPersonId = function(pPersonId) -{ - if (pPersonId) - { - var data = db.array(db.ROW, SqlCondition.begin() - .andPrepare("PERSON.PERSONID", pPersonId) - .buildSql("select PERSON.SALUTATION, PERSON.TITLE, PERSON.FIRSTNAME, PERSON.MIDDLENAME, PERSON.LASTNAME " - + "from PERSON", "1 = 2")); - if (data.length == 0) - return ""; - var contact = new Contact(); - [contact.salutation, contact.title, contact.firstname, contact.middlename, contact.lastname] = data; - var renderer = new ContactTitleRenderer(contact); - return renderer.asString(); - } - - return ""; -} - -/** - * get the name of the person - * do not use this for a mass of data (e.g. in a loop) since this will be slow due to select-time - * - * @param {String} pContactId the id of the contact entry with the person where the data shall be loaded - * - * @return {String} the name or "" - */ -ContactUtils.getTitleByContactId = function(pContactId) -{ - if (pContactId) - { - var personId = db.cell(SqlCondition.begin() - .andPrepare("CONTACT.CONTACTID", pContactId) - .buildSql("select CONTACT.PERSON_ID from CONTACT ", "1 = 2")); - if (personId) - return ContactUtils.getTitleByPersonId(personId); - } - - return ""; -} - -/** - * returns the from string for the contact joined with org, person, address - * - * @return {String} - */ -ContactUtils.getFullContactString = function() -{ - return " CONTACT join ORGANISATION on ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID" - + " left join PERSON on PERSON.PERSONID = CONTACT.PERSON_ID" - + " left join ADDRESS on ADDRESS.ADDRESSID = CONTACT.ADDRESS_ID"; -} - -/** - * get the addressid of the default address - * - * @return {String} the ID or "" if no default address exists - */ -ContactUtils.getDefaultAddressId = function(pContactId) -{ - return db.cell(SqlCondition.begin().andPrepare("CONTACT.CONTACTID", pContactId) - .buildSql("select ADDRESS_ID from CONTACT", "1=2")); -} - -/** - * object for handling of a single contact - * provides static- and instance-functions - * - * @class - * - */ -function Contact() -{ - //storage for information - this.salutation = ""; - this.title = ""; - this.firstname= ""; - this.middlename = ""; - this.lastname = ""; - this.suffix = ""; - - this.customercode = ""; - this.organisationName = ""; - - this._contactType = Contact.TYPES.Auto; -} - -/** - * sets the contactType of a contact - * reserved for future implementation - * - * @param {String} pContactType contactType that shall be set; value of Contact.TYPES. - * - * @return void - */ -Contact.prototype.setContactType = function (pContactType) -{ - if (! ObjectUtils.existsValue(Contact.TYPES, pContactType)) - throw new TypeError("the given contact type is not a valid value and not a contact type"); - - this._contactType = pContactType; -}; - -/** - * returns the contactType of a contact - * reserved for future implementation - * - * @return {String} the contactType is a value of Contact.TYPES. - */ -Contact.prototype.getContactType = function () -{ - return this._contactType; -}; - -/** - * constants for types of Contacts - * use only within functions - * reserved for future implementation - * - * @static - */ -Contact.TYPES = { - Organisation: "organisation", - Contact: "contact", - Private: "private", - Auto: null -}; - -/** - * creates a new Contact-object with a preset of DB-columns - * - * @static - */ -Contact.createWithColumnPreset = function() -{ - var contact = new Contact(); - contact.salutation = "PERSON.SALUTATION"; - contact.title = "PERSON.TITLE"; - contact.firstname= "PERSON.FIRSTNAME"; - contact.middlename = "PERSON.MIDDLENAME"; - contact.lastname = "PERSON.LASTNAME"; - contact.suffix = "PERSON.TITLESUFFIX"; - contact.customercode = "ORGANISATION.CUSTOMERCODE"; - contact.organisationName = "ORGANISATION.NAME"; - return contact; -}; - -/** - * object for rendering a Contact-object into text representation or an sql that represents the text - * provides static- and instance-functions - * - * @param {Contact} pContact The Contact-object to render - * @param {Number} pOptions additional options for rendering; use values of ContactTitleRenderer.OPTIONS and pass them by bitwise OR concatination; e.g.: - * OPTION_1 | OPTION_2 | OPTION_5 - * - * @class - * - */ -function ContactTitleRenderer(pContact, pOptions) -{ - this.contact = pContact; - if (pOptions !== undefined)//null means null which is "no option"; so check exactly for undefined to check if default option has to be set - this._options = pOptions; - else - this._options = ContactTitleRenderer.OPTIONS.IncludeOrganisation; - - //function that renders the contact into a sql expression (e.g. for a subselect) - this._asSqlFn = function(){ - var maskingUtil = new SqlMaskingUtils(); - var res = maskingUtil.concat([this.contact.salutation, this.contact.title, this.contact.firstname, this.contact.middlename, this.contact.lastname].filter(function (e){ - return e != ""; - }), " "); - if (this._options & ContactTitleRenderer.OPTIONS.IncludeOrganisation && this.contact.organisationName) - res = maskingUtil.concat([res, this.contact.organisationName], " | "); - return res; - }; - - //function that renders the contact into a text (e.g. for a displayValue) - this._asStringFn = function (){ - var res = StringUtils.concat(" ", [this.contact.salutation, this.contact.title, this.contact.firstname, this.contact.middlename, this.contact.lastname]); - - if (this._options & ContactTitleRenderer.OPTIONS.IncludeOrganisation && this.contact.organisationName) - res = StringUtils.concat(" | ", [res, this.contact.organisationName]); - return res; - } -} - -/** - * constants for options for the ContactTitleRenderer - * use only within functions - * - * @static - */ -ContactTitleRenderer.OPTIONS = { - NoOption: 0, - IncludeOrganisation: 1 -}; - -/** - * function that renders the contact into a sql expression (e.g. for a subselect) - * what this function exactly does depends on specified values and options specified in the Renderer-object - * - * @return {String} sql-expression that can be placed inside a select statement - */ -ContactTitleRenderer.prototype.asSql = function () -{ - return this._asSqlFn.apply(this, arguments); -}; - -/** - * function that renders the contact into text - * what this function exactly does depends on specified values and options specified in the Renderer-object - * - * @return {String} rendered values as text - */ -ContactTitleRenderer.prototype.asString = function () -{ - return this._asStringFn.apply(this, arguments); -}; +import("system.translate"); +import("system.neon"); +import("system.vars"); +import("system.result"); +import("system.db"); +import("Sql_lib"); +import("Util_lib"); +import("Context_lib"); + +/** + * a static Utility class for organisations + * + * Do not create an instance of this! + * @class + */ +function OrganisationUtils() {} + +/* + * retrieves the name of an organisation with a select statement + * + * @param {String} pOrganisationId the ID of the organisation that shall be searched in the database; + * + * @return {String} the name of the organisation + */ +OrganisationUtils.getNameByOrganisationId = function(pOrganisationId) +{ + var orgname = ""; + if (pOrganisationId) + { + orgname = db.cell(SqlCondition.begin() + .andPrepare("ORGANISATION.ORGANISATIONID", pOrganisationId) + .buildSql("select ORGANISATION.NAME from ORGANISATION")); + } + return orgname; +}; + +/* + * retrieves the name of an organisation with a select statement + * + * @param {String} pContactId the ID of the corresponding org-contact of the organisation that shall be searched in the database; + * + * @return {String} the name of the organisation + */ +OrganisationUtils.getNameByContactId = function(pContactId) +{ + var orgname = ""; + if (pContactId) + { + orgname = db.cell(SqlCondition.begin() + .andPrepare("CONTACT.CONTACTID", pContactId) + .buildSql("select ORGANISATION.NAME \n\ + from ORGANISATION \n\ + join CONTACT on (CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID and CONTACT.PERSON_ID is null)")); + } + return orgname; +}; + +/** + * a static Utility class for contacts + * + * Do not create an instance of this! + * @class + */ +function ContactUtils() {} + +/* + * validates if a ORGANISATION_ID in a person-contact is correct [=>does not already exist] or not [=>does already exist] + * this is done by checking the database for entires that do already exist with this combination of ORGANISATIONID and PERSONID + * gives different messages for private persons and contacts that do already exist + * + * @param {String} pPersonId the ID of the person that shall be searched in the database + * @param {String} pOrganisationId the ID of the organisation that shall be searched in the database; + * if this is an empty string it will be treated as private-dummy-organisation + * @param {String} [pOwnContactId] the CONTACTID of your current record; this is only needed when in EDIT-mode since you don't want to get a message + * for your own CONTACT; + * (if you do a lookup if a organisation-person-combination does already exist you'l get your own contact which you want to exclude) + * + * @return {String} translated text that describes whats the problem or null if there was no problem and everything is fine + * + */ +ContactUtils.validateIfAlreadyExists = function(pPersonId, pOrganisationId, pOwnContactId) +{ + if (!pPersonId) + return null; + if (pOrganisationId == "") + pOrganisationId = "0"; + var cond = SqlCondition.begin() + .andPrepare("CONTACT.PERSON_ID", pPersonId) + .andPrepare("CONTACT.ORGANISATION_ID", pOrganisationId) + //exclude the own since we do not want a "is not valid"-message for our own entry (on EDIT-mode) + .andPrepareIfSet("CONTACT.CONTACTID", pOwnContactId, "# != ?"); + + var sql = cond.buildSql("select CONTACT.CONTACTID from CONTACT"); + var alreadyExistantContactId = db.cell(sql); + if (alreadyExistantContactId) + if (pOrganisationId.trim() == "0") + return translate.text("This private person doeas already exist and can not be created once more."); + else + return translate.text("This combination of person and organisation does already exist and can not be created once more."); + + return null; +}; + +/** + * Get the type of contact. <br> + * In recordstate NEW or EDIT it loads the person- / orgid from the db.<br> + * But in the other states it uses the values pPersId, pOrgId directly (for performance).<br> + * <br> + * It only checks if pPersId / pOrgId are not empty. <br> + * Based on which parameter is empty / not empty it return s the type of the contact. <br> + * <br> + * !!It does not check if the person / org ids really exist!! <br> + * !!And it does not check if really any contact with this person / org ids exist!! <br> + * <br> + * <br> + * It is meant to be used by entitys, where you can load person and org with the DataRecord. <br> + * This saves an extra select from CONTACT. <br> + * <br> + * <br> + * @param {String} pContactId + * @param {String} pPersId selected from the CONTACT table + * @param {String} pOrgId selected from the CONTACT table + * <br> + * @return {Integer} <br>0 if both ids are empty <br> + * 1 if organisation <br> + * 2 if privat person <br> + * 3 if person of an organisation <br> + */ +ContactUtils.getContactType = function(pContactId, pPersId, pOrgId) +{ + if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) + { + return ContactUtils.getContactTypeByContactId(pContactId); + } + else + { + return ContactUtils.getContactTypeByPersOrg(pPersId, pOrgId); + } +} + +/** + * get the type of contact for a relationId <br> + * If you already have persId and orgId from the CONTACT table, use getContactTypeByPersOrg() <br> + * @param {String} pContactId + * <br> + * @return {Integer} 0 if relationId not found <br> + * 1 if organisation <br> + * 2 if privat person <br> + * 3 if person of an organisation <br> + */ +ContactUtils.getContactTypeByContactId = function(pContactId) +{ + var relationData = ContactUtils.getPersOrgIds(pContactId); + if (relationData[0]) + { + return this.getContactTypeByPersOrg(relationData[1], relationData[2]); + } + else + { + return 0; + } +} + +/** + * Get the type of contact. <br> + * It only checks if the parameters are not empty. <br> + * Based on which parameter is empty / not empty it return s the type of the contact. <br> + * <br> + * !!It does not check if the person / org ids really exist!! <br> + * !!And it does not check if really any contact with this person / org ids exist!! <br> + * <br> + * This function is more performant than getContactTypeByContactId, <br> + * because it doesn't load something from the db. <br> + * <br> + * It is meant to be used by entitys, where you can load person and org with the DataRecord. <br> + * This saves an extra select from CONTACT. <br> + * <br> + * @param {String} pPersId selected from the CONTACT table + * @param {String} pOrgId selected from the CONTACT table + * <br> + * @return {Integer} <br>0 if both ids are empty <br> + * 1 if organisation <br> + * 2 if privat person <br> + * 3 if person of an organisation <br> + */ +ContactUtils.getContactTypeByPersOrg = function(pPersId, pOrgId) +{ + if (!pPersId) + { + if (!pOrgId) { + return 0; // both are empty + } + return 1; // Organisation da PERSON_ID leer + } + else + { + if (pOrgId.replace(/\s/g,"") == "0" ) + { + return 2; // Privatperson da PERSON_ID nicht leer und ORGANISATION_ID.trim() = '0' + } + else + { + return 3; // Person einer Organisation da PERSON_ID nicht leer und ORGANISATION_ID nicht '0' + } + } +} + +/** + * return the corresponding context of the contact + * + * It only checks if the parameters are not empty. <br> + * Based on which parameter is empty / not empty it return s the type of the contact. <br> + * <br> + * !!It does not check if the person / org ids really exist!! <br> + * !!And it does not check if really any contact with this person / org ids exist!! <br> + * <br> + * This function is more performant than getContextByContactId, <br> + * because it doesn't load something from the db. <br> + * <br> + * It is meant to be used by entitys, where you can load person and org with the DataRecord. <br> + * This saves an extra select from CONTACT. <br> + * <br> + * + * @param {String} pPersId selected from the CONTACT table + * @param {String} pOrgId selected from the CONTACT table + * + * @return {String} contextname or "" if both ids are empty + */ +ContactUtils.getContextByPersOrg = function(pPersId, pOrgId) +{ + switch (ContactUtils.getContactTypeByPersOrg(pPersId, pOrgId)) + { + case 1: // Org + return ContextUtils.getContextName("Organisation"); + case 2: // private Person + case 3: // Person + return ContextUtils.getContextName("Person"); + default: + return ""; + } +} + +/** + * return the corresponding context of the contact <br> + * If you already have persId and orgId from the CONTACT table, use getContextByPersOrg() <br> + * + * @param {String} pContactId + * @return {String} contextname or "" if contact not found + */ +ContactUtils.getContextByContactId = function(pContactId) +{ + var relationData = ContactUtils.getPersOrgIds(pContactId); + return ContactUtils.getContextByPersOrg(relationData[1], relationData[2]) +} + +/** + * get the person- and org-id from a contact as array + * + * @param {String} pContactId + * @return {String[]} result as [contactid, persid, orgid] if one of them is null in the db, "" will be returned as the id. + */ +ContactUtils.getPersOrgIds = function(pContactId) +{ + if (pContactId) { + return db.array(db.ROW, + SqlCondition.begin() + .andPrepare("CONTACT.CONTACTID", pContactId) + .buildSql("select CONTACTID, PERSON_ID, ORGANISATION_ID from CONTACT", "1=0")); + } + + return []; +} + +/** + * get the name of the person or organisation + * + * @param {String} pContactId the contact id where pers-name or orgname shall be loaded + * + * @return {String} the name or "" + */ +ContactUtils.getFullTitleByContactId = function(pContactId) +{ + if (pContactId) + { + var data = db.array(db.ROW, SqlCondition.begin() + .andPrepare("CONTACT.CONTACTID", pContactId) + .buildSql("select ORGANISATION.NAME, PERSON.SALUTATION, PERSON.TITLE, PERSON.FIRSTNAME, PERSON.MIDDLENAME, PERSON.LASTNAME " + + "from CONTACT CONTACT " + + "join ORGANISATION on ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID " + + "left join PERSON on PERSON.PERSONID = CONTACT.PERSON_ID", "1 = 2")); + if (data.length == 0) + return ""; + var contact = new Contact(); + [contact.organisationName, contact.salutation, contact.title, contact.firstname, contact.middlename, contact.lastname] = data; + var renderer = new ContactTitleRenderer(contact); + return renderer.asString(); + } + + return ""; +} + +/** + * get the name of the person + * do not use this for a mass of data (e.g. in a loop) since this will be slow due to select-time + * + * @param {String} pPersonId the id of the person where the data shall be loaded + * + * @return {String} the name or "" + */ +ContactUtils.getTitleByPersonId = function(pPersonId) +{ + if (pPersonId) + { + var data = db.array(db.ROW, SqlCondition.begin() + .andPrepare("PERSON.PERSONID", pPersonId) + .buildSql("select PERSON.SALUTATION, PERSON.TITLE, PERSON.FIRSTNAME, PERSON.MIDDLENAME, PERSON.LASTNAME " + + "from PERSON", "1 = 2")); + if (data.length == 0) + return ""; + var contact = new Contact(); + [contact.salutation, contact.title, contact.firstname, contact.middlename, contact.lastname] = data; + var renderer = new ContactTitleRenderer(contact); + return renderer.asString(); + } + + return ""; +} + +/** + * get the name of the person + * do not use this for a mass of data (e.g. in a loop) since this will be slow due to select-time + * + * @param {String} pContactId the id of the contact entry with the person where the data shall be loaded + * + * @return {String} the name or "" + */ +ContactUtils.getTitleByContactId = function(pContactId) +{ + if (pContactId) + { + var personId = db.cell(SqlCondition.begin() + .andPrepare("CONTACT.CONTACTID", pContactId) + .buildSql("select CONTACT.PERSON_ID from CONTACT ", "1 = 2")); + if (personId) + return ContactUtils.getTitleByPersonId(personId); + } + + return ""; +} + +/** + * returns the from string for the contact joined with org, person, address + * + * @return {String} + */ +ContactUtils.getFullContactString = function() +{ + return " CONTACT join ORGANISATION on ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID" + + " left join PERSON on PERSON.PERSONID = CONTACT.PERSON_ID" + + " left join ADDRESS on ADDRESS.ADDRESSID = CONTACT.ADDRESS_ID"; +} + +/** + * get the addressid of the default address + * + * @return {String} the ID or "" if no default address exists + */ +ContactUtils.getDefaultAddressId = function(pContactId) +{ + return db.cell(SqlCondition.begin().andPrepare("CONTACT.CONTACTID", pContactId) + .buildSql("select ADDRESS_ID from CONTACT", "1=2")); +} + +/** + * object for handling of a single contact + * provides static- and instance-functions + * + * @class + * + */ +function Contact() +{ + //storage for information + this.salutation = ""; + this.title = ""; + this.firstname= ""; + this.middlename = ""; + this.lastname = ""; + this.suffix = ""; + + this.customercode = ""; + this.organisationName = ""; + + this._contactType = Contact.TYPES.Auto; +} + +/** + * sets the contactType of a contact + * reserved for future implementation + * + * @param {String} pContactType contactType that shall be set; value of Contact.TYPES. + * + * @return void + */ +Contact.prototype.setContactType = function (pContactType) +{ + if (! ObjectUtils.existsValue(Contact.TYPES, pContactType)) + throw new TypeError("the given contact type is not a valid value and not a contact type"); + + this._contactType = pContactType; +}; + +/** + * returns the contactType of a contact + * reserved for future implementation + * + * @return {String} the contactType is a value of Contact.TYPES. + */ +Contact.prototype.getContactType = function () +{ + return this._contactType; +}; + +/** + * constants for types of Contacts + * use only within functions + * reserved for future implementation + * + * @static + */ +Contact.TYPES = { + Organisation: "organisation", + Contact: "contact", + Private: "private", + Auto: null +}; + +/** + * creates a new Contact-object with a preset of DB-columns + * + * @static + */ +Contact.createWithColumnPreset = function() +{ + var contact = new Contact(); + contact.salutation = "PERSON.SALUTATION"; + contact.title = "PERSON.TITLE"; + contact.firstname= "PERSON.FIRSTNAME"; + contact.middlename = "PERSON.MIDDLENAME"; + contact.lastname = "PERSON.LASTNAME"; + contact.suffix = "PERSON.TITLESUFFIX"; + contact.customercode = "ORGANISATION.CUSTOMERCODE"; + contact.organisationName = "ORGANISATION.NAME"; + return contact; +}; + +/** + * object for rendering a Contact-object into text representation or an sql that represents the text + * provides static- and instance-functions + * + * @param {Contact} pContact The Contact-object to render + * @param {Number} pOptions additional options for rendering; use values of ContactTitleRenderer.OPTIONS and pass them by bitwise OR concatination; e.g.: + * OPTION_1 | OPTION_2 | OPTION_5 + * + * @class + * + */ +function ContactTitleRenderer(pContact, pOptions) +{ + this.contact = pContact; + if (pOptions !== undefined)//null means null which is "no option"; so check exactly for undefined to check if default option has to be set + this._options = pOptions; + else + this._options = ContactTitleRenderer.OPTIONS.IncludeOrganisation; + + //function that renders the contact into a sql expression (e.g. for a subselect) + this._asSqlFn = function(){ + var maskingUtil = new SqlMaskingUtils(); + var res = maskingUtil.concat([this.contact.salutation, this.contact.title, this.contact.firstname, this.contact.middlename, this.contact.lastname].filter(function (e){ + return e != ""; + }), " "); + if (this._options & ContactTitleRenderer.OPTIONS.IncludeOrganisation && this.contact.organisationName) + res = maskingUtil.concat([res, this.contact.organisationName], " | "); + return res; + }; + + //function that renders the contact into a text (e.g. for a displayValue) + this._asStringFn = function (){ + var res = StringUtils.concat(" ", [this.contact.salutation, this.contact.title, this.contact.firstname, this.contact.middlename, this.contact.lastname]); + + if (this._options & ContactTitleRenderer.OPTIONS.IncludeOrganisation && this.contact.organisationName) + res = StringUtils.concat(" | ", [res, this.contact.organisationName]); + return res; + } +} + +/** + * constants for options for the ContactTitleRenderer + * use only within functions + * + * @static + */ +ContactTitleRenderer.OPTIONS = { + NoOption: 0, + IncludeOrganisation: 1 +}; + +/** + * function that renders the contact into a sql expression (e.g. for a subselect) + * what this function exactly does depends on specified values and options specified in the Renderer-object + * + * @return {String} sql-expression that can be placed inside a select statement + */ +ContactTitleRenderer.prototype.asSql = function () +{ + return this._asSqlFn.apply(this, arguments); +}; + +/** + * function that renders the contact into text + * what this function exactly does depends on specified values and options specified in the Renderer-object + * + * @return {String} rendered values as text + */ +ContactTitleRenderer.prototype.asString = function () +{ + return this._asStringFn.apply(this, arguments); +}; diff --git a/process/Country_lib/Country_lib.aod b/process/Country_lib/Country_lib.aod index 7097e51847d7c7bb604c4435f916620d3a2ccf04..294e20f8843c7cf1c88e5824f93b1fac4a0af8f3 100644 --- a/process/Country_lib/Country_lib.aod +++ b/process/Country_lib/Country_lib.aod @@ -1,9 +1,9 @@ -<?xml version="1.0" encoding="UTF-8"?> -<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> - <name>Country_lib</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <process>%aditoprj%/process/Country_lib/process.js</process> - <variants> - <element>LIBRARY</element> - </variants> -</process> +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> + <name>Country_lib</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/Country_lib/process.js</process> + <variants> + <element>LIBRARY</element> + </variants> +</process> diff --git a/process/Country_lib/process.js b/process/Country_lib/process.js index 67f674c97d8e655ddf53b3ecdf639d6a2dbf4892..e6d27683051774ad6e0a02ffc138297904d896a3 100644 --- a/process/Country_lib/process.js +++ b/process/Country_lib/process.js @@ -1,30 +1,30 @@ -import("system.db"); -import("system.translate"); -import("Sql_lib"); - -/** - * provides functions for miscellaneous interactions with countrydata - * Do not create an instance of this! - * - * @class - * @static - */ -function CountryUtils() {} - -/** -* loads the translated latin name of an entry within the countryinfos by a provided ISO2-code -* -* @param {String} pIso2 the uppercase ISO2 code whoes latin name shall be retriefed, e.g."DE" -* @param {String} [pLocale=current client/server language] specifies the locale for translating -* -* @return {String} the translated country name in the latin version -* -*/ -CountryUtils.getLatinNameByIso2 = function(pIso2, pLocale) -{ - var countryName = db.cell(SqlCondition.begin() - .andPrepare("AB_COUNTRYINFO.ISO2", pIso2) - .buildSql("select AB_COUNTRYINFO.NAME_LATIN from AB_COUNTRYINFO")); - countryName = pLocale ? translate.text(countryName, pLocale) : translate.text(countryName); - return countryName; +import("system.db"); +import("system.translate"); +import("Sql_lib"); + +/** + * provides functions for miscellaneous interactions with countrydata + * Do not create an instance of this! + * + * @class + * @static + */ +function CountryUtils() {} + +/** +* loads the translated latin name of an entry within the countryinfos by a provided ISO2-code +* +* @param {String} pIso2 the uppercase ISO2 code whoes latin name shall be retriefed, e.g."DE" +* @param {String} [pLocale=current client/server language] specifies the locale for translating +* +* @return {String} the translated country name in the latin version +* +*/ +CountryUtils.getLatinNameByIso2 = function(pIso2, pLocale) +{ + var countryName = db.cell(SqlCondition.begin() + .andPrepare("AB_COUNTRYINFO.ISO2", pIso2) + .buildSql("select AB_COUNTRYINFO.NAME_LATIN from AB_COUNTRYINFO")); + countryName = pLocale ? translate.text(countryName, pLocale) : translate.text(countryName); + return countryName; }; \ No newline at end of file diff --git a/process/Data_lib/process.js b/process/Data_lib/process.js index f6c7d2295ac9082b8a94fc01dcd6a3ba9e53322f..f104e2381fd2edec355dce026cb008f35a106c79 100644 --- a/process/Data_lib/process.js +++ b/process/Data_lib/process.js @@ -1,428 +1,428 @@ -import("system.util"); - -/** - * This class is for data which is built in a children -> parent - way. Each "row" consists of one UID and one parentId.<br> - * The class makes sure that even if you add an child multiple times, the ID is corrected, so that the resulting array has only unique id's.<br> - * <br> - * Keep in mind for performance reasons that as soon, as you add a seccond item withe the same UID as an already added child, a tree-object is buiilt internally.<br> - * If you only add unique children, this class will just push them to a simple array.<br> - * <br> - * Note that if you add an item two times, only the data-array of the second item is used! It will overwrite the data from the first one!<br> - * <br> - * The UID's and parentID's in the generated array may not be the same as you added. If you need to know what you added, simply provide an ID also as data.<br> - * <br> - * When to use this class:<br> - * - you want to fill a Treetable or MultiDataChart<br> - * - and it should be possible to add the same children several times<br> - * <br> - * When NOT to use this class:<br> - * - you need a Tree-Object for your logic and / or want to do additional stuff with the tree -> use "DataTree" directly, because ReferencingData doesn't build always a tree.<br> - * - * @param {String} pRootId the Id you use as parentId for the root elements. The parentId for base elements will be changed to "" when using toArray(). - * - * @example - * var myResult = ReferencingData.begin("myRoot") - * .add("1", "myRoot", ["itemId1", "value"]) - * .add("2", "myRoot", ["itemId2", "value"]) - * .add("3", "2", ["itemId3", "value"]) - * .add("4", "2", ["itemId4", "value"]) - * .add("5", "4", ["itemId5", "value"]) - * .add("5", "3", ["itemId5", "value"]) // Now you added id "5" a seccond time. As soon as you do this, a tree will be generated internally to resolve the ID's. - * .toArray(); - * - * results in: - * [ - * [ - * "eb2c88a3-ba9d-4991-acf5-7476e7dc5628", // note that the IDs are now new UUIDs - * "", // note that the parentId is now "" - * "itemId1", - * "value" - * ], - * [ - * "f245bfdf-6e3b-4c83-8c4b-14225acce7b3", - * "", - * "itemId2", - * "value" - * ], - * [ - * "054e605e-6224-4cc5-8f02-04c6a6d7965d", - * "f245bfdf-6e3b-4c83-8c4b-14225acce7b3", - * "itemId3", - * "value" - * ], - * [ - * "818641ca-bcf3-415b-8c0e-e2e55430d4d8", - * "054e605e-6224-4cc5-8f02-04c6a6d7965d", - * "itemId5", - * "value" - * ], - * [ - * "c8e81040-c9e1-4f74-bd0f-fb4615ae6bec", - * "f245bfdf-6e3b-4c83-8c4b-14225acce7b3", - * "itemId4", - * "value" - * ], - * [ - * "55eeb384-e5dd-4759-b70d-c2a289762168", - * "c8e81040-c9e1-4f74-bd0f-fb4615ae6bec", - * "itemId5", - * "value" - * ] - * ] - * - * @class - */ -function ReferencingData(pRootId) -{ - this._data = []; - this._uids = {}; - this._rootId = pRootId; -} - -/** - * creates a new ReferencingData-object - * - * @param {String} pRootId the Id you use as parentId for the root elements. The parentId for base elements will be changed to "" when using toArray(). - * @return {ReferencingData} the new instance - */ -ReferencingData.begin = function(pRootId) -{ var referencingData = new ReferencingData(pRootId); - return referencingData; -} - -/** - * Add an array of data. It will be added row by row to the already added data. - * - * @param {Array} pData the data in the form: [ [uid, parentId, [data...], [uid2, parentId2, [data2...] ] - * @return {ReferencingData} this - */ -ReferencingData.prototype.addArray = function(pData) -{ - pData.forEach(function(pRow) - { - this.add(pRow[0], pRow[1], pRow.splice(2)); - }, this); // make "this" also available inside of the forEach - - return this; -} - -/** - * Add one row. If the uid already exists, the data is converted internally to a tree to resolve the ids. - * - * @param {String} pUid the id of the row - * @param {String} pParentId the parentId of the row - * @param {Array} pData the data - * @return {ReferencingData} this - */ -ReferencingData.prototype.add = function(pUid, pParentId, pData) -{ - if (this._dataTree == undefined && this._uids[pUid] == undefined) - { - this._uids[pUid] = true; - this._data.push([pUid, pParentId].concat(pData)); - } else { - this._convertToTree(); // convert to tree if not already a tree - this._dataTree.add(pUid, pParentId, pData); - } - return this; -} - -/** - * Get an array of the added data with already resolved, unique uid's. - * @param {Integer} [pMaxDepth=undefined] If it is set AND if the internal tree-object is used, this option can limit the depth of the tree. - * This is especially to prevent stack overflows if a children-parent-loop exists. - * If you only added unique items, this parameter is ignored! - * @return {Array} [ [uid, parentId, [data...], [uid2, parentId2, [data2...] ] - */ -ReferencingData.prototype.toArray = function(pMaxDepth) -{ - if (this._dataTree == undefined) - { - return this._data; - } - else - { - return this._dataTree.toArray(pMaxDepth); - } -} - -/** - * switch to tree if the tree is not already used. - * - * @ignore - */ -ReferencingData.prototype._convertToTree = function() -{ - if (this._dataTree == undefined) - { - this._dataTree = DataTree.begin(this._rootId) - .addArray(this._data); - this._data = undefined; - } -} - -/** - * This class is for creating a tree structure. - * @param {String} pRootId the Id you use as parentId for the root elements. The parentId for base elements will be changed to "" when using toArray(). - * - * @example - * - * var myResult = DataTree.begin("myRoot") - * .add("1", "myRoot", ["itemId1", "value"]) - * .add("2", "myRoot", ["itemId2", "value"]) - * .add("3", "2", ["itemId3", "value"]) - * .add("4", "2", ["itemId4", "value"]) - * .add("5", "4", ["itemId5", "value"]) - * .add("5", "3", ["itemId5", "value"]) // Now you added id "5" a seccond time. - * .getTreeObject(); - * results in: - * - * ({ - * 1:{ - * data:[ - * "itemId1", - * "value" - * ], - * parent:"myRoot", - * ids:[ - * - * ] - * }, - * 2:{ - * data:[ - * "itemId2", - * "value" - * ], - * parent:"myRoot", - * ids:[ - * "3", - * "4" - * ] - * }, - * 3:{ - * data:[ - * "itemId3", - * "value" - * ], - * parent:"2", - * ids:[ - * "5" - * ] - * }, - * 4:{ - * data:[ - * "itemId4", - * "value" - * ], - * parent:"2", - * ids:[ - * "5" - * ] - * }, - * 5:{ - * data:[ - * "itemId5", - * "value" - * ], - * parent:"3", - * ids:[ - * - * ] - * }, - * myRoot:{ - * ids:[ - * "1", - * "2" - * ], - * parent:"9f034e84-39a8-4239-ba06-ccc604654477" - * } - *}) - * - * TODO: evtl check-funktion anbieten - * - * @class - */ -function DataTree(pRootId) -{ - this._dataTree = { - - }; - - this._resultData = []; - this.rootId = pRootId; - this.baseId = util.getNewUUID(); -} - -/** - * creates a new DataTree-object - * - * @param {String} pRootId the Id you use as parentId for the root elements. The parentId for base elements will be changed to "" when using toArray(). - * @return {DataTree} the new instance - */ -DataTree.begin = function(pRootId) -{ - return new DataTree(pRootId); -} - -/** - * Get the tree object. See the example of the class. - * @return {Object} the tree-object - * ({ - * GENERATED_UUID:{ - * data:[ - * ... - * ... - * ], - * parent:"parentId", - * ids:[ - * "childid1", - * "childid2", - * .... - * ] - * }, - * ... - * ) - */ -DataTree.prototype.getTreeObject = function() -{ - return this._dataTree; -} - -/** - * Add one row. - * Note that if you add an item two times, only the data-array of the second item is used! It will overwrite the data from the first one! - * - * @param {String} pUid the id of the row - * @param {String} pParentId the parentId of the row - * @param {Array} pData the data - * @param {DataTree~manipulateNode} [pManipulateNodeFn=undefined] callback for manipulating the Node. Attention: Use with caution. You can corrupt the tree. - * @return {DataTree} this - */ -DataTree.prototype.add = function(pUid, pParentId, pData, pManipulateNodeFn) -{ - if (this._dataTree[pParentId] == undefined) - { - // create parent node. It will be replaced later, if the actual parent is added. - this._dataTree[pParentId] = { - ids: [], - parent: this.baseId - } - } - this._dataTree[pParentId].ids.push(pUid); - - if (pManipulateNodeFn != undefined) - pManipulateNodeFn(pParentId, this._dataTree[pParentId]); - - var tmpIds = []; - // node already created as parent by a childNode. - if (this._dataTree[pUid] != undefined && this._dataTree[pUid].parent == this.baseId) - { - // tmp-save already added ids of the node - tmpIds = this._dataTree[pUid].ids; - } - - this._dataTree[pUid] = { - data: pData, - parent: pParentId - } - - if (this._dataTree[pUid].ids == undefined) - { - this._dataTree[pUid].ids = tmpIds; - } - - // callback to provide a hook for manipulating the node. (e.g. for adding additional node data) - if (pManipulateNodeFn != undefined) - pManipulateNodeFn(pUid, this._dataTree[pUid]); - - return this; -} - -/** - * Add an array of data. It will be added row by row to the already added data. - * Note that if you add an item two times, only the data-array of the second item is used! It will overwrite the data from the first one! - * - * @param {Array} pData the data in the form: [ [uid, parentId, [data...], [uid2, parentId2, [data2...] ] - * @param {DataTree~manipulateNode} [pManipulateNodeFn=undefined] callback for manipulating the Node. Attention: Use with caution. You can corrupt the tree. - * - * @return {DataTree} this - */ -DataTree.prototype.addArray = function(pData, pManipulateNodeFn) -{ - pData.forEach(function(pRow) - { - this.add(pRow[0], pRow[1], pRow.splice(2), pManipulateNodeFn); - }, this); - - return this; -} - -/** - * Get an array of the added data with already resolved, unique uid's. - * @param {Integer} [pMaxDepth=undefined] If it is set, this option can limit the depth of the tree. - * This is especially to prevent stack overflows if a children-parent-loop exists. - * @return {Array} [ [uid, parentId, [data...], [uid2, parentId2, [data2...] ] - */ -DataTree.prototype.toArray = function(pMaxDepth) -{ - var that = this; - // TODO: maybe implement without recursion to prevent stack overflow even on deep milestones... - var treeArray = []; - var tree = this._dataTree; - - // in this function Ids are just concatenated. This is bad, because it results in very long strings. - // Because of this the concatenated id's are maped to new uids in the resulting array - var uidMap = {}; - __push(this.rootId, tree[this.rootId], 0); - - function __push(pParent, pNode, pDepth) { - if (pNode != undefined) - { - for (var i = 0; i < pNode.ids.length; i++) { - if (pNode.parent == that.baseId) - { - // set UUID to "" if it is a root-node - pParent = ""; - } - - var nextUid = pParent + pNode.ids[i]; - __addRow(nextUid, pParent, tree[pNode.ids[i]].data); - - if (pMaxDepth == undefined || pDepth < pMaxDepth) - __push(nextUid, tree[pNode.ids[i]], pDepth+1); - } - } - } - - function __addRow(pUid, pParentId, pRowdata) - { - uidMap[pUid] = util.getNewUUID(); - if (uidMap[pParentId] == undefined) { - // The root node has "" as ID. - if (pParentId == "") - { - uidMap[pParentId] = ""; - } - else - { - uidMap[pParentId] = util.getNewUUID(); - } - } - - treeArray.push([uidMap[pUid], uidMap[pParentId]].concat(pRowdata)); - } - - return treeArray; -} - -/** - * Manipulate a node with this callback - * You get the uid of the node and the node. - * You can do anything you want, with the node. - * - * But if you modify parent or ids, the tree may corrupt. - * - * @callback DataTree~manipulateNode - * @param {String} pUid - * @param {Object} pNode +import("system.util"); + +/** + * This class is for data which is built in a children -> parent - way. Each "row" consists of one UID and one parentId.<br> + * The class makes sure that even if you add an child multiple times, the ID is corrected, so that the resulting array has only unique id's.<br> + * <br> + * Keep in mind for performance reasons that as soon, as you add a seccond item withe the same UID as an already added child, a tree-object is buiilt internally.<br> + * If you only add unique children, this class will just push them to a simple array.<br> + * <br> + * Note that if you add an item two times, only the data-array of the second item is used! It will overwrite the data from the first one!<br> + * <br> + * The UID's and parentID's in the generated array may not be the same as you added. If you need to know what you added, simply provide an ID also as data.<br> + * <br> + * When to use this class:<br> + * - you want to fill a Treetable or MultiDataChart<br> + * - and it should be possible to add the same children several times<br> + * <br> + * When NOT to use this class:<br> + * - you need a Tree-Object for your logic and / or want to do additional stuff with the tree -> use "DataTree" directly, because ReferencingData doesn't build always a tree.<br> + * + * @param {String} pRootId the Id you use as parentId for the root elements. The parentId for base elements will be changed to "" when using toArray(). + * + * @example + * var myResult = ReferencingData.begin("myRoot") + * .add("1", "myRoot", ["itemId1", "value"]) + * .add("2", "myRoot", ["itemId2", "value"]) + * .add("3", "2", ["itemId3", "value"]) + * .add("4", "2", ["itemId4", "value"]) + * .add("5", "4", ["itemId5", "value"]) + * .add("5", "3", ["itemId5", "value"]) // Now you added id "5" a seccond time. As soon as you do this, a tree will be generated internally to resolve the ID's. + * .toArray(); + * + * results in: + * [ + * [ + * "eb2c88a3-ba9d-4991-acf5-7476e7dc5628", // note that the IDs are now new UUIDs + * "", // note that the parentId is now "" + * "itemId1", + * "value" + * ], + * [ + * "f245bfdf-6e3b-4c83-8c4b-14225acce7b3", + * "", + * "itemId2", + * "value" + * ], + * [ + * "054e605e-6224-4cc5-8f02-04c6a6d7965d", + * "f245bfdf-6e3b-4c83-8c4b-14225acce7b3", + * "itemId3", + * "value" + * ], + * [ + * "818641ca-bcf3-415b-8c0e-e2e55430d4d8", + * "054e605e-6224-4cc5-8f02-04c6a6d7965d", + * "itemId5", + * "value" + * ], + * [ + * "c8e81040-c9e1-4f74-bd0f-fb4615ae6bec", + * "f245bfdf-6e3b-4c83-8c4b-14225acce7b3", + * "itemId4", + * "value" + * ], + * [ + * "55eeb384-e5dd-4759-b70d-c2a289762168", + * "c8e81040-c9e1-4f74-bd0f-fb4615ae6bec", + * "itemId5", + * "value" + * ] + * ] + * + * @class + */ +function ReferencingData(pRootId) +{ + this._data = []; + this._uids = {}; + this._rootId = pRootId; +} + +/** + * creates a new ReferencingData-object + * + * @param {String} pRootId the Id you use as parentId for the root elements. The parentId for base elements will be changed to "" when using toArray(). + * @return {ReferencingData} the new instance + */ +ReferencingData.begin = function(pRootId) +{ var referencingData = new ReferencingData(pRootId); + return referencingData; +} + +/** + * Add an array of data. It will be added row by row to the already added data. + * + * @param {Array} pData the data in the form: [ [uid, parentId, [data...], [uid2, parentId2, [data2...] ] + * @return {ReferencingData} this + */ +ReferencingData.prototype.addArray = function(pData) +{ + pData.forEach(function(pRow) + { + this.add(pRow[0], pRow[1], pRow.splice(2)); + }, this); // make "this" also available inside of the forEach + + return this; +} + +/** + * Add one row. If the uid already exists, the data is converted internally to a tree to resolve the ids. + * + * @param {String} pUid the id of the row + * @param {String} pParentId the parentId of the row + * @param {Array} pData the data + * @return {ReferencingData} this + */ +ReferencingData.prototype.add = function(pUid, pParentId, pData) +{ + if (this._dataTree == undefined && this._uids[pUid] == undefined) + { + this._uids[pUid] = true; + this._data.push([pUid, pParentId].concat(pData)); + } else { + this._convertToTree(); // convert to tree if not already a tree + this._dataTree.add(pUid, pParentId, pData); + } + return this; +} + +/** + * Get an array of the added data with already resolved, unique uid's. + * @param {Integer} [pMaxDepth=undefined] If it is set AND if the internal tree-object is used, this option can limit the depth of the tree. + * This is especially to prevent stack overflows if a children-parent-loop exists. + * If you only added unique items, this parameter is ignored! + * @return {Array} [ [uid, parentId, [data...], [uid2, parentId2, [data2...] ] + */ +ReferencingData.prototype.toArray = function(pMaxDepth) +{ + if (this._dataTree == undefined) + { + return this._data; + } + else + { + return this._dataTree.toArray(pMaxDepth); + } +} + +/** + * switch to tree if the tree is not already used. + * + * @ignore + */ +ReferencingData.prototype._convertToTree = function() +{ + if (this._dataTree == undefined) + { + this._dataTree = DataTree.begin(this._rootId) + .addArray(this._data); + this._data = undefined; + } +} + +/** + * This class is for creating a tree structure. + * @param {String} pRootId the Id you use as parentId for the root elements. The parentId for base elements will be changed to "" when using toArray(). + * + * @example + * + * var myResult = DataTree.begin("myRoot") + * .add("1", "myRoot", ["itemId1", "value"]) + * .add("2", "myRoot", ["itemId2", "value"]) + * .add("3", "2", ["itemId3", "value"]) + * .add("4", "2", ["itemId4", "value"]) + * .add("5", "4", ["itemId5", "value"]) + * .add("5", "3", ["itemId5", "value"]) // Now you added id "5" a seccond time. + * .getTreeObject(); + * results in: + * + * ({ + * 1:{ + * data:[ + * "itemId1", + * "value" + * ], + * parent:"myRoot", + * ids:[ + * + * ] + * }, + * 2:{ + * data:[ + * "itemId2", + * "value" + * ], + * parent:"myRoot", + * ids:[ + * "3", + * "4" + * ] + * }, + * 3:{ + * data:[ + * "itemId3", + * "value" + * ], + * parent:"2", + * ids:[ + * "5" + * ] + * }, + * 4:{ + * data:[ + * "itemId4", + * "value" + * ], + * parent:"2", + * ids:[ + * "5" + * ] + * }, + * 5:{ + * data:[ + * "itemId5", + * "value" + * ], + * parent:"3", + * ids:[ + * + * ] + * }, + * myRoot:{ + * ids:[ + * "1", + * "2" + * ], + * parent:"9f034e84-39a8-4239-ba06-ccc604654477" + * } + *}) + * + * TODO: evtl check-funktion anbieten + * + * @class + */ +function DataTree(pRootId) +{ + this._dataTree = { + + }; + + this._resultData = []; + this.rootId = pRootId; + this.baseId = util.getNewUUID(); +} + +/** + * creates a new DataTree-object + * + * @param {String} pRootId the Id you use as parentId for the root elements. The parentId for base elements will be changed to "" when using toArray(). + * @return {DataTree} the new instance + */ +DataTree.begin = function(pRootId) +{ + return new DataTree(pRootId); +} + +/** + * Get the tree object. See the example of the class. + * @return {Object} the tree-object + * ({ + * GENERATED_UUID:{ + * data:[ + * ... + * ... + * ], + * parent:"parentId", + * ids:[ + * "childid1", + * "childid2", + * .... + * ] + * }, + * ... + * ) + */ +DataTree.prototype.getTreeObject = function() +{ + return this._dataTree; +} + +/** + * Add one row. + * Note that if you add an item two times, only the data-array of the second item is used! It will overwrite the data from the first one! + * + * @param {String} pUid the id of the row + * @param {String} pParentId the parentId of the row + * @param {Array} pData the data + * @param {DataTree~manipulateNode} [pManipulateNodeFn=undefined] callback for manipulating the Node. Attention: Use with caution. You can corrupt the tree. + * @return {DataTree} this + */ +DataTree.prototype.add = function(pUid, pParentId, pData, pManipulateNodeFn) +{ + if (this._dataTree[pParentId] == undefined) + { + // create parent node. It will be replaced later, if the actual parent is added. + this._dataTree[pParentId] = { + ids: [], + parent: this.baseId + } + } + this._dataTree[pParentId].ids.push(pUid); + + if (pManipulateNodeFn != undefined) + pManipulateNodeFn(pParentId, this._dataTree[pParentId]); + + var tmpIds = []; + // node already created as parent by a childNode. + if (this._dataTree[pUid] != undefined && this._dataTree[pUid].parent == this.baseId) + { + // tmp-save already added ids of the node + tmpIds = this._dataTree[pUid].ids; + } + + this._dataTree[pUid] = { + data: pData, + parent: pParentId + } + + if (this._dataTree[pUid].ids == undefined) + { + this._dataTree[pUid].ids = tmpIds; + } + + // callback to provide a hook for manipulating the node. (e.g. for adding additional node data) + if (pManipulateNodeFn != undefined) + pManipulateNodeFn(pUid, this._dataTree[pUid]); + + return this; +} + +/** + * Add an array of data. It will be added row by row to the already added data. + * Note that if you add an item two times, only the data-array of the second item is used! It will overwrite the data from the first one! + * + * @param {Array} pData the data in the form: [ [uid, parentId, [data...], [uid2, parentId2, [data2...] ] + * @param {DataTree~manipulateNode} [pManipulateNodeFn=undefined] callback for manipulating the Node. Attention: Use with caution. You can corrupt the tree. + * + * @return {DataTree} this + */ +DataTree.prototype.addArray = function(pData, pManipulateNodeFn) +{ + pData.forEach(function(pRow) + { + this.add(pRow[0], pRow[1], pRow.splice(2), pManipulateNodeFn); + }, this); + + return this; +} + +/** + * Get an array of the added data with already resolved, unique uid's. + * @param {Integer} [pMaxDepth=undefined] If it is set, this option can limit the depth of the tree. + * This is especially to prevent stack overflows if a children-parent-loop exists. + * @return {Array} [ [uid, parentId, [data...], [uid2, parentId2, [data2...] ] + */ +DataTree.prototype.toArray = function(pMaxDepth) +{ + var that = this; + // TODO: maybe implement without recursion to prevent stack overflow even on deep milestones... + var treeArray = []; + var tree = this._dataTree; + + // in this function Ids are just concatenated. This is bad, because it results in very long strings. + // Because of this the concatenated id's are maped to new uids in the resulting array + var uidMap = {}; + __push(this.rootId, tree[this.rootId], 0); + + function __push(pParent, pNode, pDepth) { + if (pNode != undefined) + { + for (var i = 0; i < pNode.ids.length; i++) { + if (pNode.parent == that.baseId) + { + // set UUID to "" if it is a root-node + pParent = ""; + } + + var nextUid = pParent + pNode.ids[i]; + __addRow(nextUid, pParent, tree[pNode.ids[i]].data); + + if (pMaxDepth == undefined || pDepth < pMaxDepth) + __push(nextUid, tree[pNode.ids[i]], pDepth+1); + } + } + } + + function __addRow(pUid, pParentId, pRowdata) + { + uidMap[pUid] = util.getNewUUID(); + if (uidMap[pParentId] == undefined) { + // The root node has "" as ID. + if (pParentId == "") + { + uidMap[pParentId] = ""; + } + else + { + uidMap[pParentId] = util.getNewUUID(); + } + } + + treeArray.push([uidMap[pUid], uidMap[pParentId]].concat(pRowdata)); + } + + return treeArray; +} + +/** + * Manipulate a node with this callback + * You get the uid of the node and the node. + * You can do anything you want, with the node. + * + * But if you modify parent or ids, the tree may corrupt. + * + * @callback DataTree~manipulateNode + * @param {String} pUid + * @param {Object} pNode */ \ No newline at end of file diff --git a/process/Employee_lib/process.js b/process/Employee_lib/process.js index 0bf4983884d5b4ddf0c7071c58387a1e9ed929bd..2be8c9f21461ec1c98e0daaa7b4bf9edee59fd56 100644 --- a/process/Employee_lib/process.js +++ b/process/Employee_lib/process.js @@ -1,116 +1,116 @@ -import("system.db"); -import("Sql_lib"); -import("system.tools"); - -/** - * Provides functions for employees and users.j - * - * Do not create an instance of this! - * - * @class - */ -function EmployeeUtils () {} - -/** - * Returns the contact id of the current user - * - * @return the contact id - */ -EmployeeUtils.getCurrentContactId = function () -{ - var user = tools.getCurrentUser(); - return user ? user[tools.PARAMS][tools.CONTACTID] : null; -} - -/** - * Returns the username id of the current user - * - * @return the username - */ -EmployeeUtils.getCurrentUserName = function () -{ - var user = tools.getCurrentUser(); - return user ? user[tools.TITLE] : null; -} - -EmployeeUtils.sliceUserId = function (pUserId) -{ - return pUserId.slice(-36); -} - -/** - * generates a username from the firstname and lastname with the given structure - * - * @param {String} pFirstName - * @param {String} pLastName - * @param {String} pStructure the structure of the username, special characters: - * f - one letter of the firstname in lowercase - * F - one letter of the firstname in uppsercase - * l - one letter of the lastname in lowercase - * L - one letter of the lastname in uppsercase - * f+ - the complete firstname in lowercase - * F+ - the complete firstname - * l+ - the complete lastname in lowercae - * L+ - the complete lastname - * - * @return {String} the generated username - */ -EmployeeUtils.generateUserName = function (pFirstName, pLastName, pStructure) -{ - if (!pStructure || (!pFirstName && !pLastName)) - return null; - - var firstNameIndex = 0; - var lastNameIndex = 0; - var userName = pStructure.replace(/(f\+|l\+|f|l)/ig, function (type) - { - switch (type) - { - case "f+": - return pFirstName.toLowerCase() || ""; - case "F+": - return pFirstName || ""; - case "l+": - return pLastName.toLowerCase() || ""; - case "L+": - return pLastName || ""; - case "f": - return pFirstName.charAt(firstNameIndex++).toLowerCase() || ""; - case "F": - return pFirstName.charAt(firstNameIndex++).toUpperCase() || ""; - case "l": - return pLastName.charAt(lastNameIndex++).toLowerCase() || ""; - case "L": - return pLastName.charAt(lastNameIndex++).toUpperCase() || ""; - } - }); - - return userName; -} - -/** - * checks if an employee is used somewhere - * - * @param {String} pContactId the contact id of the user - * - * @return {boolean} if the employee has relations - */ -EmployeeUtils.hasRelations = function (pContactId) -{ - //sql queries with selects on tables where an employee can be used - var queries = [ - SqlCondition.begin() - .andPrepare("ACTIVITY.RESPONSIBLE", pContactId) - .buildSql("select 1 from ACTIVITY"), - SqlCondition.begin() - .andPrepare("TASK.REQUESTOR_CONTACT_ID", pContactId) - .buildSql("select 1 from TASK"), - SqlCondition.begin() - .andPrepare("TIMETRACKING.CONTACT_ID", pContactId) - .buildSql("select 1 from TIMETRACKING") - ]; - return queries.some(function (sql) - { - return db.cell(sql) != ""; - }); +import("system.db"); +import("Sql_lib"); +import("system.tools"); + +/** + * Provides functions for employees and users.j + * + * Do not create an instance of this! + * + * @class + */ +function EmployeeUtils () {} + +/** + * Returns the contact id of the current user + * + * @return the contact id + */ +EmployeeUtils.getCurrentContactId = function () +{ + var user = tools.getCurrentUser(); + return user ? user[tools.PARAMS][tools.CONTACTID] : null; +} + +/** + * Returns the username id of the current user + * + * @return the username + */ +EmployeeUtils.getCurrentUserName = function () +{ + var user = tools.getCurrentUser(); + return user ? user[tools.TITLE] : null; +} + +EmployeeUtils.sliceUserId = function (pUserId) +{ + return pUserId.slice(-36); +} + +/** + * generates a username from the firstname and lastname with the given structure + * + * @param {String} pFirstName + * @param {String} pLastName + * @param {String} pStructure the structure of the username, special characters: + * f - one letter of the firstname in lowercase + * F - one letter of the firstname in uppsercase + * l - one letter of the lastname in lowercase + * L - one letter of the lastname in uppsercase + * f+ - the complete firstname in lowercase + * F+ - the complete firstname + * l+ - the complete lastname in lowercae + * L+ - the complete lastname + * + * @return {String} the generated username + */ +EmployeeUtils.generateUserName = function (pFirstName, pLastName, pStructure) +{ + if (!pStructure || (!pFirstName && !pLastName)) + return null; + + var firstNameIndex = 0; + var lastNameIndex = 0; + var userName = pStructure.replace(/(f\+|l\+|f|l)/ig, function (type) + { + switch (type) + { + case "f+": + return pFirstName.toLowerCase() || ""; + case "F+": + return pFirstName || ""; + case "l+": + return pLastName.toLowerCase() || ""; + case "L+": + return pLastName || ""; + case "f": + return pFirstName.charAt(firstNameIndex++).toLowerCase() || ""; + case "F": + return pFirstName.charAt(firstNameIndex++).toUpperCase() || ""; + case "l": + return pLastName.charAt(lastNameIndex++).toLowerCase() || ""; + case "L": + return pLastName.charAt(lastNameIndex++).toUpperCase() || ""; + } + }); + + return userName; +} + +/** + * checks if an employee is used somewhere + * + * @param {String} pContactId the contact id of the user + * + * @return {boolean} if the employee has relations + */ +EmployeeUtils.hasRelations = function (pContactId) +{ + //sql queries with selects on tables where an employee can be used + var queries = [ + SqlCondition.begin() + .andPrepare("ACTIVITY.RESPONSIBLE", pContactId) + .buildSql("select 1 from ACTIVITY"), + SqlCondition.begin() + .andPrepare("TASK.REQUESTOR_CONTACT_ID", pContactId) + .buildSql("select 1 from TASK"), + SqlCondition.begin() + .andPrepare("TIMETRACKING.CONTACT_ID", pContactId) + .buildSql("select 1 from TIMETRACKING") + ]; + return queries.some(function (sql) + { + return db.cell(sql) != ""; + }); } \ No newline at end of file diff --git a/process/JditoFilter_lib/process.js b/process/JditoFilter_lib/process.js index b0d87290367674e1b07707e977875f954d5165f2..0213e4a5e60a773f2e795c228508c8137bde848e 100644 --- a/process/JditoFilter_lib/process.js +++ b/process/JditoFilter_lib/process.js @@ -97,7 +97,7 @@ function JditoFilterUtils () {} * @param {Array} pColumns one dimensional array with all column names (only the columns with the idValue, displayValue columns should be null or ""), * the order has to match the columns of the recordFields property in the recordcontainer * @param {Array} pRecords two dimensional array with all records - * @param {String|Object} pFilter the value of $local.filter + * @param {String|Object} pFilter the value of $local.userfilter * * @return {Array} the filtered records */ @@ -117,19 +117,25 @@ JditoFilterUtils.filterRecords = function (pColumns, pRecords, pFilter) /** * builds an sql condition from the given filter * - * @param {String|Object} pFilter the filter as JSON + * @param {Object} pFilter the filter object * @param {String} pTable the database table * @param {String} [pTableAlias=null] the database table alias - * @param {Object} [pColumnMap=null] custom mapping for the fields to the DB columns, this is necessary - * if the fields are from different tables + * @param {Object} [pColumnMap=null] Custom mapping for the fields to the DB columns, this is necessary + * if the fields are from different tables. Structure has to be like this: + * { + * FIELD1 : "TABLE1.COLUMN1", + * FIELD2 : ["TABLE2", "COLUMN2", "TABLE2ALIAS"] //do it like this if the table has an alias + * } * * @example - * if (vars.exists("$local.filter") && vars.get("$local.filter")) + * var condition = SqlCondition.begin(); + * if (vars.exists("$local.userfilter") && vars.get("$local.userfilter")) * { - * var filter = vars.get("$local.filter"); + * var filter = vars.get("$local.userfilter"); * condition.andSqlCondition((JditoFilterUtils.getSqlCondition(filter, "AB_ATTRIBUTE"))); * } - * + * var attributeSql = condition.buildSql("select AB_ATTRIBUTEID from AB_ATTRIBUTE"); + * * @return {SqlCondition} the SqlCondition object */ JditoFilterUtils.getSqlCondition = function (pFilter, pTable, pTableAlias, pColumnMap) @@ -138,8 +144,6 @@ JditoFilterUtils.getSqlCondition = function (pFilter, pTable, pTableAlias, pColu if (!pFilter) return condition; - if (pFilter.length) //check if pFilter is a string - pFilter = pFilter; if (!pColumnMap) pColumnMap = {}; diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js index 20f2d485c8d13b46d12e2c516a721448d347addf..3fc2480b3ec4284445c8a65ddefd6c5eef9ecaef 100644 --- a/process/Keyword_lib/process.js +++ b/process/Keyword_lib/process.js @@ -1,697 +1,697 @@ -import("system.vars"); -import("system.SQLTYPES"); -import("system.db"); -import("system.translate"); -import("system.neon"); -import("Sql_lib"); - -/** - * provides methods for interactions with keywords - * - * @class - */ -function KeywordUtils(){} - -/** -* resolves KEYIDs of a keywordentry into the specific title -* -* @param {String} pContainerName name of the keyword container that shall be resolved -* @param {String} pDbFieldName name fo the database field where the KEYID-value is stored -* @param {String} [pLocale=current client language] specifies the locale for translating the title; can be false if nothing shalle be translated -* -* @return {String} a SQL-expression (case-when-statement) that resolves the KEYID into the title -*/ -KeywordUtils.getResolvedTitleSqlPart = function(pContainerName, pDbFieldName, pLocale) -{ - var cond = SqlCondition.begin().andPrepare("AB_KEYWORD_ENTRY.CONTAINER", pContainerName); - var keywordData = db.table(cond.buildSql(("select AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY"))); - var resSql = SqlUtils.getResolvingCaseWhen(keywordData, pDbFieldName, pLocale); - return db.translateStatement(resSql); -}; - -/** - * returns a specific name (translated) - this is normally the view-value - of a given keyword; - * <br/>if the key could not be found an empty string "" is returned - * @param {String} keywordContainer specifies the type of the keyword and therefore the list elements; e.g. "COUNTRY" - * @param {String} key id value of the keyword where the view-value shall be searched - * @param {String} [locale=locale depending on current client/servercontext] Language-value for translations - * @return {String} representation of the translated name of the keyword-key - * @example - * var histMedium; - * histMedium = vars.get("$field.MEDIUM"); - * if (histMedium){ - * result.string(vars.get("$field.SUBJECT") + " (" + LegacyKeywordUtils.getViewValue("ACTIVITY.MEDIUM", histMedium) + ")"); - * } - */ -KeywordUtils.getViewValue = function(keywordContainer, key, locale) -{ - if (!key) - return ""; - - var sql = SqlCondition.begin() - .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", keywordContainer) - .andPrepare("AB_KEYWORD_ENTRY.KEYID", key) - .buildSql("select AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY"); - var originalTitle = db.cell(sql); - if (originalTitle == "") - return ""; - var translatedTitle = locale ? translate.text(originalTitle, locale) : translate.text(originalTitle); - return translatedTitle; -}; - -/** - * collects possible and defined keyword-attributes per keyword entry and returns them - * - * @param {String} pEntryId id that identifies the keyword-entry whoes attributes are collected - * @return {Object} key-value-pair of the keyword-attributes; contains all attribute-keys for the keywords-entries container; - * if there is no value set for a key the null-value is given - */ -KeywordUtils.getAttributeRelationsByEntryId = function(pEntryId) -{ - var cond = SqlCondition.begin() - .andPrepare("AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID", pEntryId); - - return KeywordUtils._getKeywordAttributeRelations(cond); -}; - -/** - * collects possible and defined keyword-attributes per keyword entry and returns them - * - * @param {String} pKeyId the key of an element within a containerName - this is the value that is stored in the reference-table (e.g. "DE") - * @param {String} pContainerName specifies the type of the keyword and therefore the list elements; - * e.g. "COUNTRY"; use an entry of the $KeywordRegistry here - * @return {Object} key-value-pair of the keyword-attributes; contains all attribute-keys for the keywords-entries container; - * if there is no value set for a key the null-value is given - */ -KeywordUtils.getAttributeRelationsByKey = function(pKeyId, pContainerName) -{ - var cond = SqlCondition.begin() - .andPrepare("AB_KEYWORD_ENTRY.KEYID", pKeyId) - .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", pContainerName); - - return KeywordUtils._getKeywordAttributeRelations(cond); -}; - -/** - * internal function that collects possible and defined keyword-attributes per keyword entry and returns them - * - * @param {SqlCondition} pSqlCondition condition that shrinks a resultset to one AB_KEYWORD_ENTRY - * @return {Object} SQL-Condition object that filters - */ -KeywordUtils._getKeywordAttributeRelations = function (pSqlCondition) -{ - var cond = pSqlCondition; - var sql = cond.buildSql("select AB_KEYWORD_ATTRIBUTE.NAME, AB_KEYWORD_ATTRIBUTE.TYPE, \n\ - AB_KEYWORD_ATTRIBUTERELATION.CHAR_VALUE, AB_KEYWORD_ATTRIBUTERELATION.NUMBER_VALUE, AB_KEYWORD_ATTRIBUTERELATION.BOOL_VALUE \n\ - from AB_KEYWORD_ENTRY \n\ - join AB_KEYWORD_ATTRIBUTE on (AB_KEYWORD_ATTRIBUTE.CONTAINER = AB_KEYWORD_ENTRY.CONTAINER) \n\ - left join AB_KEYWORD_ATTRIBUTERELATION \n\ - on (AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ATTRIBUTE_ID = AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_ATTRIBUTEID\n\ - and AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ENTRY_ID = AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID)"); - - var data = db.table(sql); - var res = {}; - var name, type, charVal, numVal, boolVal; - - for (var i = 0, l = data.length; i < l; i++) - { - [name, type, charVal, numVal, boolVal] = data[i]; - name = name.trim(); - type = type.trim(); - var parsedValue = null; - switch(type) - { - case "NUMBER_VALUE": - parsedValue = numVal == "" ? null : Number(numVal); - break; - case "BOOL_VALUE": - parsedValue = boolVal == "" ? null : (boolVal == "1"); - break; - case "CHAR_VALUE": - parsedValue = charVal == "" ? null : charVal; - break; - } - - res[name] = parsedValue; - } - return res; -}; - -/** -* provides a distinctive list of all keyword-container-names in the system -* -* @return {String[]} containerNames as 1D-Array -*/ -KeywordUtils.getContainerNames = function() -{ - var list = db.array(db.COLUMN, "select distinct AB_KEYWORD_ENTRY.CONTAINER from AB_KEYWORD_ENTRY order by AB_KEYWORD_ENTRY.CONTAINER asc"); - return list; -}; - -/** -* provides a translated list of keyword-entry-titles in the system filtered by a containerName; -* usefull for lists where the key is the name which is then a editable displayValue -* -* @param {String} pContainerName name of the keyword container for filtering -* @param {String} [pLocale=locale depending on current client/servercontext] Language-value for translations -* -* @return {String[]} translated titles as 1D-Array -*/ -KeywordUtils.getEntryNamesByContainer = function(pContainerName, pLocale) -{ - var sql = SqlCondition.begin() - .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", pContainerName) - .buildSql("select AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY", null, "order by AB_KEYWORD_ENTRY.SORTING asc, AB_KEYWORD_ENTRY.TITLE asc") - var list = db.array(db.COLUMN, sql).map(function (v){ - return pLocale ? translate.text(v, pLocale) : translate.text(v); - }); - return list; -}; - - -/** -* provides a translated list of keyword-entry-titles and its ids in the system filtered by a containerName; -* usefull for lists where the key is the name which is then a editable displayValue -* -* @param {String} pContainerName name of the keyword container for filtering -* * @param {String} [pLocale=locale depending on current client/servercontext] Language-value for translations -* -* @return {String[]} 2D-Array in the form of [[id1, translatedTitle1], [idN, translatedTitleN]] -*/ -KeywordUtils.getEntryNamesAndIdsByContainer = function(pContainerName, pLocale) -{ - var sql = SqlCondition.begin() - .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", pContainerName) - .buildSql("select AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID, AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY", null, "order by AB_KEYWORD_ENTRY.SORTING asc, AB_KEYWORD_ENTRY.TITLE asc") - - var list = db.table(sql).map(function (elem){ - elem[1] = pLocale ? translate.text(elem[1], pLocale) : translate.text(elem[1]); - return elem; - }); - return list; -}; - -/** - * checks, if a specific keyword exists - * - * @param {String} pKeyId the key of an element within a containerName - this is the value that is stored in the reference-table (e.g. "DE") - * @param {String} pContainerName specifies the type of the keyword and therefore the list elements; - * e.g. "COUNTRY"; use an entry of the $KeywordRegistry here - * - * @return {Boolean} - */ -KeywordUtils.exists = function(pKeyId, pContainerName) -{ - var sql = SqlCondition.begin() - .andPrepare("AB_KEYWORD_ENTRY.KEYID", pKeyId) - .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", pContainerName) - .buildSql("select count(*) from AB_KEYWORD_ENTRY", "1=2") - return parseInt(db.cell(sql)) > 0; -}; - -/** - * get the translated container name. - * - * @param {String} pContainerName specifies the type of the keyword and therefore the list elements; - * e.g. "COUNTRY"; use an entry of the $KeywordRegistry here - * @return translated name, if it exists in the switch case - */ -KeywordUtils.getTranslatedContainer = function(pContainerName) -{ - switch (pContainerName) - { - case "SalesprojectPhase": - return translate.text("Phase"); - case "SalesprojectState": - return translate.text("State"); - break; - default: - return "Please add " + pContainerName + " to the switch case in Salesproject_lib"; - } - -} - -/** - * object that provides featrues for a single keyword attribute; initalizes itself on creation with a specific keyword-attribute - * - * @param {String} pContainerName specifies the type of the keyword and therefore the list elements; - * e.g. "COUNTRY"; use an entry of the $KeywordRegistry here - * @param {String} pAttributeName the name of the keyword attribute that shall be initalized - * - * @class - */ -function KeywordAttribute(pContainerName, pAttributeName) -{ - this.container = pContainerName; - this.attribute = pAttributeName; - - var sql = SqlCondition.begin() - .andPrepare("AB_KEYWORD_ATTRIBUTE.CONTAINER", pContainerName) - .andPrepare("AB_KEYWORD_ATTRIBUTE.NAME", pAttributeName) - .buildSql("select AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_ATTRIBUTEID, AB_KEYWORD_ATTRIBUTE.TYPE from AB_KEYWORD_ATTRIBUTE"); - - var keywordAttrData = db.array(db.ROW, sql); - - if (keywordAttrData.length == 0) - throw new Error(translate.withArguments("no keyword attribute \"%0\" found in keyword container \"%1\"", [this.attribute, this.container])); - - this.id = keywordAttrData[0]; - this.type = keywordAttrData[1]; - this.dbField = this.type.trim(); -} - -KeywordAttribute.prototype.getValue = function(pKeyId) -{ - var sql = SqlCondition.begin() - .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", this.container) - .andPrepare("AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ATTRIBUTE_ID", this.id) - .andPrepare("AB_KEYWORD_ENTRY.KEYID", pKeyId) - .buildSql("select " + this.dbField + " from AB_KEYWORD_ENTRY join AB_KEYWORD_ATTRIBUTERELATION on AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID = AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ENTRY_ID"); - - return db.cell(sql); -} - -/** - * provides methods for interactions with the sepcial-keywords "LANGUAGE" - * - * @class - */ -function LanguageKeywordUtils(){} - -/** -* resolves Languagecode into the latin name -* -* @param {String} pDbFieldName name fo the database field where the ISO3-value is stored -* @param {String} [pLocale=current client language] specifies the locale for translating the title; can be false if nothing shalle be translated -* -* @return {String} a SQL-expression (case-when-statement) -*/ -LanguageKeywordUtils.getResolvedTitleSqlPart = function(pDbFieldName, pLocale) -{ - var data = db.table("select AB_LANGUAGE.ISO3, AB_LANGUAGE.NAME_LATIN from AB_LANGUAGE"); - var resSql = SqlUtils.getResolvingCaseWhen(data, pDbFieldName, pLocale); - return db.translateStatement(resSql); -}; - -/** - * returns a specific name (translated) - this is normally the view-value of a language - * - * @param {String} key id value of the language where the view-value shall be searched - * @param {String} [locale=locale depending on current client/servercontext] Language-value for translations - * - * @return {String} representation of the translated name - * - */ -LanguageKeywordUtils.getViewValue = function(key, locale) -{ - if (!key) - return ""; - - var sql = SqlCondition.begin() - .andPrepare("AB_LANGUAGE.ISO3", key) - .buildSql("select AB_LANGUAGE.NAME_LATIN from AB_LANGUAGE"); - var originalTitle = db.cell(sql); - if (originalTitle == "") - return ""; - var translatedTitle = locale ? translate.text(originalTitle, locale) : translate.text(originalTitle); - return translatedTitle; -}; - - -/** - * provides methods for interactions with legcy keywords - * @deprecated use instead the new meachanism via the KeywordUtils - * - * @class - */ -function LegacyKeywordUtils(){} - -(function(){//scope for private functions - - - /** - * returns the default case for keyword-arrays (id and translated name) - * @param {String} keywordType specifies the type of the keyword and therefore the list elements; e.g. "COUNTRY" - * @return {Array} a 2D array in form of [["id1", "name1"], ["idN", "nameN"]] - * @example - * var items; - * - * items = LegacyKeywordUtils.getStandardArray("ADDRESS.TYPE"); - * result.object(items); - */ - LegacyKeywordUtils.getStandardArray = function(keywordType){ - return LegacyKeywordUtils.createKeyword(keywordType).toArray(["id", "name"]); - } - - /** - * same as getStandardArray but also returns the custom properties - * @param {String} keywordType specifies the type of the keyword and therefore the list elements; e.g. "COUNTRY" - * @return {Array} a 2D array in form of [["id1", "name1", {"prop1":"prop"}], ["idN", "nameN", {"prop1":"prop"}]] - * @example - * var items; - * - * items = LegacyKeywordUtils.getStandardArray("ADDRESS.TYPE"); - * result.object(items); - */ - LegacyKeywordUtils.getStandardArrayProps = function(keywordType){ - return LegacyKeywordUtils.createKeyword(keywordType).toArray(["id", "name", "customProperties"]); - } - - /** - * get a Keyword by type and key - * @param {String} keywordType specifies the type of the keyword and therefore the list elements; e.g. "COUNTRY" - * @param {String} key the key for the keyword ("1", "2", "3", etc.) - * @return {Array} a 2D array in form of [["id1", "name1", properties1], ["idN", "nameN", propertiesN]] - * @example - * var item = LegacyKeywordUtils.get("ADDRESS.TYPE", "1"); - * result.object(item); - */ - LegacyKeywordUtils.get = function(keywordType, key){ - return LegacyKeywordUtils.createKeyword(keywordType).getPropsForKey(key, ["id", "name", "customProperties"]); - } - - /** - * returns a specific name (translated) - this is normally the view-value - of a given keyword; - * <br/>if the key could not be found an empty string "" is returned - * @param {String} keywordType specifies the type of the keyword and therefore the list elements; e.g. "COUNTRY" - * @param {String} key id value of the keyword where the view-value shall be searched - * @return {String} representation of the translated name of the keyword-key - * @example - * var histMedium; - * histMedium = vars.get("$field.MEDIUM"); - * if (histMedium){ - * result.string(vars.get("$field.SUBJECT") + " (" + LegacyKeywordUtils.getViewValue("ACTIVITY.MEDIUM", histMedium) + ")"); - * } - */ - LegacyKeywordUtils.getViewValue = function(keywordType, key){ - var k = LegacyKeywordUtils.createKeyword(keywordType); - return k.getPropForKey(key, "name") || ""; - } - - /** - * creates an object with methods for interacting with an specific keyword - * @param {String} keywordType specifies the type of the keyword and therefore the list elements; e.g. "COUNTRY" - * @param {String} translationLocale locale (like e.g. "de_DE") for translation of the keywordtitle - * @return {Object} object with the following methods: - * <br/>- toArray - * <br/>- get - * <br/>- getPropForKey - * <br/>- getPropsForKey - * <br/>- filter - */ - LegacyKeywordUtils.createKeyword = function(keywordType, translationLocale){ - var valueContainer, _toArrayFn, _getPropForKeyFn, _getPropsForKeyFn; - - var locale; - if (translationLocale) - locale = translationLocale; - else - { - var lang = vars.get("$sys.clientlanguage");//e.g. "de" - var country = vars.get("$sys.clientcountry");//e.g. "DE" - locale = country ? lang + "_" + country : lang; - } - - switch (keywordType){ - case "ACTIVITY.CATEGORY": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("0", translate.text("Visit", locale), null, {defaultAvatarRepresentation: "VAADIN:TRAIN"}) - ,_createKeywordEntry("1", translate.text("E-Mail", locale), null, {defaultAvatarRepresentation: "VAADIN:AT"}) - ,_createKeywordEntry("2", translate.text("Phone", locale), null, {defaultAvatarRepresentation: "VAADIN:PHONE"}) - ,_createKeywordEntry("3", translate.text("Online-Meeting", locale), null, {defaultAvatarRepresentation: "VAADIN:GLOBE_WIRE"}) - ]); - break; - case "COMMUNICATION.MEDIUM": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("0", translate.text("Mobile", locale), null, {category: "PHONE", contentType: "TELEPHONE"}) - ,_createKeywordEntry("1", translate.text("E-Mail", locale), null, {category: "EMAIL", contentType: "EMAIL"}) - ,_createKeywordEntry("2", translate.text("Phone", locale), null, {category: "PHONE", contentType: "TELEPHONE"}) - ,_createKeywordEntry("3", translate.text("Internet", locale), null, {category: "OTHER", contentType: "LINK"}) - ]); - break; - case "ADDRESS.TYPE": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("1", translate.text("Office address", locale), null, {org: true, person: false}) - ,_createKeywordEntry("2", translate.text("Home address", locale), null, {org: false, person: true}) - ,_createKeywordEntry("3", translate.text("Delivery address", locale), null, {org: true, person: true}) - ,_createKeywordEntry("4", translate.text("Post office box", locale), null, {org: true, person: true}) - ]); - break; - case "SALESPROJECT.PRICE_POLITICS": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("1", translate.text("Abomodel", locale)) - ,_createKeywordEntry("2", translate.text("High price strategy", locale)) - ,_createKeywordEntry("3", translate.text("Low price strategy", locale)) - ]); - break; - case "SALESPROJECT.STRENGTH": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("1", translate.text("Strength 1", locale)) - ,_createKeywordEntry("2", translate.text("Strength 2", locale)) - ,_createKeywordEntry("3", translate.text("Strength 3", locale)) - ]); - break; - case "SALESPROJECT.WEAKNESS": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("1", translate.text("Weakness 1", locale)) - ,_createKeywordEntry("2", translate.text("Weakness 2", locale)) - ,_createKeywordEntry("3", translate.text("Weakness 3", locale)) - ]); - break; - case "SALESPROJECT.STATE": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("1", translate.text("Open", locale)) - ,_createKeywordEntry("2", translate.text("Postponed", locale)) - ,_createKeywordEntry("3", translate.text("Aborted", locale)) - ,_createKeywordEntry("4", translate.text("Partial order", locale)) - ,_createKeywordEntry("5", translate.text("Order", locale)) - ,_createKeywordEntry("6", translate.text("Lost", locale)) - ]); - break; - case "SALESPROJECT.PHASE": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("1", translate.text("NQC", locale)) - ,_createKeywordEntry("2", translate.text("MAL", locale)) - ,_createKeywordEntry("3", translate.text("MQL", locale)) - ,_createKeywordEntry("4", translate.text("SAL", locale)) - ,_createKeywordEntry("5", translate.text("SQO", locale)) - ,_createKeywordEntry("6", translate.text("Offer", locale)) - ,_createKeywordEntry("7", translate.text("Negotiation", locale)) - ,_createKeywordEntry("8", translate.text("Project decision", locale)) - ,_createKeywordEntry("9", translate.text("Negotiation", locale)) - ,_createKeywordEntry("10", translate.text("Workshop", locale)) - ,_createKeywordEntry("11", translate.text("Presentation follow-up", locale)) - ,_createKeywordEntry("12", translate.text("Presentation preparation", locale)) - ,_createKeywordEntry("13", translate.text("Deliver opinion", locale)) - ,_createKeywordEntry("14", translate.text("Specifications in progress", locale)) - ,_createKeywordEntry("15", translate.text("Waiting for requirements", locale)) - ,_createKeywordEntry("16", translate.text("Lead", locale)) - ]); - break; - case "SALESPROJECT.MILESTONE.TYPE": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("1", translate.text("Phase", locale), null, {keyword: "SALESPROJECT.PHASE"}) - ,_createKeywordEntry("2", translate.text("State", locale), null, {keyword: "SALESPROJECT.STATE"}) - ]); - break; - case "SALESPROJECT.CLASS": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("1", translate.text("Class A", locale), null, { - keywords: - [["CLASS.BRANCHE", translate.text("Industry", locale)], - ["CLASS.BASED", translate.text("Base", locale)]] - }) - ,_createKeywordEntry("2", translate.text("Class B", locale), null, { - keywords: - [["CLASS.BUDGET", translate.text("Budget (Project)", locale)], - ["CLASS.STANDARD", translate.text("Standard / Individual", locale)]] - }) - ,_createKeywordEntry("3", translate.text("Class C", locale), null, { - keywords: - [["CLASS.PROJSTART", translate.text("Projectstart", locale)]] - }) - ]); - break; - case "CLASS.BRANCHE": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("1", translate.text("Industry 1", locale), null, {points: 50}) - ,_createKeywordEntry("2", translate.text("Industry 2", locale), null, {points: 16.6}) - ,_createKeywordEntry("3", translate.text("Industry 3", locale), null, {points: 50}) - ]); - break; - case "CLASS.BASED": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("1", translate.text("Germany", locale), null, {points: 20}) - ,_createKeywordEntry("2", translate.text("Austria", locale), null, {points: 7.5}) - ,_createKeywordEntry("3", translate.text("Other", locale), null, {points: 0}) - ]); - break; - case "CLASS.BUDGET": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("1", translate.text("From", locale) + "350T\u20ac", null, {points: 50}) - ,_createKeywordEntry("2", "200" + translate.text("to", locale) + "349T\u20ac", null, {points: 30}) - ,_createKeywordEntry("3", "0" + translate.text("to", locale) + "3199T\u20ac", null, {points: 0}) - ]); - break; - case "CLASS.STANDARD": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("1", translate.text("Individual", locale), null, {points: 25}) - ,_createKeywordEntry("2", translate.text("Standard", locale), null, {points: 12.5}) - ]); - break; - case "CLASS.PROJSTART": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("1", translate.text("in 6 Months", locale), null, {points: 30}) - ,_createKeywordEntry("2", translate.text("in 12 Months", locale), null, {points: 20}) - ,_createKeywordEntry("3", translate.text("no Project planned", locale), null, {points: 0}) - ]); - break; - case "OFFER.PROBABILITY": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("1", translate.text("0 %", locale), null, {percentValue: 0}) - ,_createKeywordEntry("2", translate.text("25 %", locale), null, {percentValue: 25}) - ,_createKeywordEntry("3", translate.text("50 %", locale), null, {percentValue: 50}) - ,_createKeywordEntry("4", translate.text("75 %", locale), null, {percentValue: 75}) - ,_createKeywordEntry("5", translate.text("100 %", locale), null, {percentValue: 100}) - ]); - break; - case "TASK.PRIORITY": - valueContainer = _createKeywordEntriesContainer([ - _createKeywordEntry("0", translate.text("{$TASK_PRIORITY_NONE}", locale), null, {defaultAvatarRepresentation: null}) - ,_createKeywordEntry("1", translate.text("{$TASK_PRIORITY_LOW}", locale), null, {defaultAvatarRepresentation: "VAADIN:ARROW_DOWN"}) - ,_createKeywordEntry("2", translate.text("{$TASK_PRIORITY_NORMAL}", locale), null, {defaultAvatarRepresentation: null}) - ,_createKeywordEntry("3", translate.text("{$TASK_PRIORITY_HIGH}", locale), null, {defaultAvatarRepresentation: "VAADIN:EXCLAMATION"}) - ]); - break; - default: - throw new Error(translate.withArguments("[%0]the given keyword \"%1\" has no match with the possible keywordlist", [ - arguments.callee.name, keywordType - ])); - break; - } - - - _getPropForKeyFn = function(key, field, isCustom) { - var keyObject; - if (valueContainer[key] == undefined) - return undefined; - if (isCustom) - keyObject = valueContainer[key]["customProperties"]; - else - keyObject = valueContainer[key]; - - if (keyObject == undefined) - return undefined; - return keyObject[field]; - }; - - _getPropsForKeyFn = function(key, fields) { - var keyObject, i, currentRow, currentField; - - keyObject = valueContainer[key]; - if (keyObject == undefined) - return [];//TODO: throw error instead? - currentRow = []; - for (i = 0; i < fields.length; i++){ - currentField = fields[i]; - //check if the passed fieldnames match the existing fieldnames (<=> properties in the object) - //to prevent errors and unexpected behaviour - if (keyObject[currentField]) - currentRow.push(keyObject[currentField]); - else - currentRow.push(""); - } - return currentRow; - }; - - _toArrayFn = function(fields){ - var res, id, currentRow; - - res = []; - if (!fields) - fields = ["id", "name"]; - else if (typeof(fields) == "string"){ - for (id in valueContainer){ - res.push(_getPropForKeyFn(id, fields)); - } - return res; - } - - for (id in valueContainer){ - currentRow = _getPropsForKeyFn(id, fields); - res.push(currentRow); - } - return res; - }; - - _existsFn = function(key){ - return (valueContainer[key] != undefined); - }; - - return { - /** - * toArray - * @ignore - */ - toArray: _toArrayFn - ,getPropForKey: _getPropForKeyFn - ,getPropsForKey: _getPropsForKeyFn - ,filter: function (callbackFn, thisArg){ - for (id in valueContainer){ - if (false == callbackFn.call(thisArg, valueContainer[id].id, valueContainer[id].name, valueContainer[id].customProperties, - valueContainer[id], valueContainer)){ - delete valueContainer[id]; - } - } - return this; - } - ,exists: _existsFn - }; - }; - - /** - * internal function for creating an object that represents a keyword entry - * @param {String} id represents the key of an entry; a KeywordEntriesContainer can contain the same key only once - * @param {String} name represents the translated name of an entry; this is in most cases the view-value - * @param {String} [description=""] description text for describing the keyword - * @param {Object} [customProperties=null] an Object with additional properties; these can be virtually anything - * @return {Object} object that represents a single keyword entry; normally severel entries are cumulated in a "keywordEntriesContainer" - */ - function _createKeywordEntry(id, name, description, customProperties){ - //TODO: verify if mandatory-checks are really that usefull or can at least be made easier - if (!id) - throw new Error(translate.withArguments("the param \"%0\" in \"%1\" is mandatory and has to be set", [ - "id", arguments.callee.name - ])); - if (!name) - throw new Error(translate.withArguments("the param \"%0\" in \"%1\" is mandatory and has to be set", [ - "name", arguments.callee.name - ])); - - return { - id: id - ,name: name - ,description: description || "" - ,customProperties: customProperties - }; - } - - /** - * internal function for creating an object that represents a container of several keywordEntries - * @param {Array} keywordEntries an Array of keywordEntry-objects (as they are created by "_createKeywordEntry" - * @return {Object} object that contains several keywordEntries - */ - function _createKeywordEntriesContainer(keywordEntries){ - var res, i, l, id; - - res = {}; - for (i = 0, l = keywordEntries.length; i < l; i++){ - id = keywordEntries[i].id; - if (res[id] != undefined){ - throw new Error("the given id is not unique since it already exists"); - } - res[id] = keywordEntries[i]; - } - return res; - } -})(); +import("system.vars"); +import("system.SQLTYPES"); +import("system.db"); +import("system.translate"); +import("system.neon"); +import("Sql_lib"); + +/** + * provides methods for interactions with keywords + * + * @class + */ +function KeywordUtils(){} + +/** +* resolves KEYIDs of a keywordentry into the specific title +* +* @param {String} pContainerName name of the keyword container that shall be resolved +* @param {String} pDbFieldName name fo the database field where the KEYID-value is stored +* @param {String} [pLocale=current client language] specifies the locale for translating the title; can be false if nothing shalle be translated +* +* @return {String} a SQL-expression (case-when-statement) that resolves the KEYID into the title +*/ +KeywordUtils.getResolvedTitleSqlPart = function(pContainerName, pDbFieldName, pLocale) +{ + var cond = SqlCondition.begin().andPrepare("AB_KEYWORD_ENTRY.CONTAINER", pContainerName); + var keywordData = db.table(cond.buildSql(("select AB_KEYWORD_ENTRY.KEYID, AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY"))); + var resSql = SqlUtils.getResolvingCaseWhen(keywordData, pDbFieldName, pLocale); + return db.translateStatement(resSql); +}; + +/** + * returns a specific name (translated) - this is normally the view-value - of a given keyword; + * <br/>if the key could not be found an empty string "" is returned + * @param {String} keywordContainer specifies the type of the keyword and therefore the list elements; e.g. "COUNTRY" + * @param {String} key id value of the keyword where the view-value shall be searched + * @param {String} [locale=locale depending on current client/servercontext] Language-value for translations + * @return {String} representation of the translated name of the keyword-key + * @example + * var histMedium; + * histMedium = vars.get("$field.MEDIUM"); + * if (histMedium){ + * result.string(vars.get("$field.SUBJECT") + " (" + LegacyKeywordUtils.getViewValue("ACTIVITY.MEDIUM", histMedium) + ")"); + * } + */ +KeywordUtils.getViewValue = function(keywordContainer, key, locale) +{ + if (!key) + return ""; + + var sql = SqlCondition.begin() + .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", keywordContainer) + .andPrepare("AB_KEYWORD_ENTRY.KEYID", key) + .buildSql("select AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY"); + var originalTitle = db.cell(sql); + if (originalTitle == "") + return ""; + var translatedTitle = locale ? translate.text(originalTitle, locale) : translate.text(originalTitle); + return translatedTitle; +}; + +/** + * collects possible and defined keyword-attributes per keyword entry and returns them + * + * @param {String} pEntryId id that identifies the keyword-entry whoes attributes are collected + * @return {Object} key-value-pair of the keyword-attributes; contains all attribute-keys for the keywords-entries container; + * if there is no value set for a key the null-value is given + */ +KeywordUtils.getAttributeRelationsByEntryId = function(pEntryId) +{ + var cond = SqlCondition.begin() + .andPrepare("AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID", pEntryId); + + return KeywordUtils._getKeywordAttributeRelations(cond); +}; + +/** + * collects possible and defined keyword-attributes per keyword entry and returns them + * + * @param {String} pKeyId the key of an element within a containerName - this is the value that is stored in the reference-table (e.g. "DE") + * @param {String} pContainerName specifies the type of the keyword and therefore the list elements; + * e.g. "COUNTRY"; use an entry of the $KeywordRegistry here + * @return {Object} key-value-pair of the keyword-attributes; contains all attribute-keys for the keywords-entries container; + * if there is no value set for a key the null-value is given + */ +KeywordUtils.getAttributeRelationsByKey = function(pKeyId, pContainerName) +{ + var cond = SqlCondition.begin() + .andPrepare("AB_KEYWORD_ENTRY.KEYID", pKeyId) + .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", pContainerName); + + return KeywordUtils._getKeywordAttributeRelations(cond); +}; + +/** + * internal function that collects possible and defined keyword-attributes per keyword entry and returns them + * + * @param {SqlCondition} pSqlCondition condition that shrinks a resultset to one AB_KEYWORD_ENTRY + * @return {Object} SQL-Condition object that filters + */ +KeywordUtils._getKeywordAttributeRelations = function (pSqlCondition) +{ + var cond = pSqlCondition; + var sql = cond.buildSql("select AB_KEYWORD_ATTRIBUTE.NAME, AB_KEYWORD_ATTRIBUTE.TYPE, \n\ + AB_KEYWORD_ATTRIBUTERELATION.CHAR_VALUE, AB_KEYWORD_ATTRIBUTERELATION.NUMBER_VALUE, AB_KEYWORD_ATTRIBUTERELATION.BOOL_VALUE \n\ + from AB_KEYWORD_ENTRY \n\ + join AB_KEYWORD_ATTRIBUTE on (AB_KEYWORD_ATTRIBUTE.CONTAINER = AB_KEYWORD_ENTRY.CONTAINER) \n\ + left join AB_KEYWORD_ATTRIBUTERELATION \n\ + on (AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ATTRIBUTE_ID = AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_ATTRIBUTEID\n\ + and AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ENTRY_ID = AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID)"); + + var data = db.table(sql); + var res = {}; + var name, type, charVal, numVal, boolVal; + + for (var i = 0, l = data.length; i < l; i++) + { + [name, type, charVal, numVal, boolVal] = data[i]; + name = name.trim(); + type = type.trim(); + var parsedValue = null; + switch(type) + { + case "NUMBER_VALUE": + parsedValue = numVal == "" ? null : Number(numVal); + break; + case "BOOL_VALUE": + parsedValue = boolVal == "" ? null : (boolVal == "1"); + break; + case "CHAR_VALUE": + parsedValue = charVal == "" ? null : charVal; + break; + } + + res[name] = parsedValue; + } + return res; +}; + +/** +* provides a distinctive list of all keyword-container-names in the system +* +* @return {String[]} containerNames as 1D-Array +*/ +KeywordUtils.getContainerNames = function() +{ + var list = db.array(db.COLUMN, "select distinct AB_KEYWORD_ENTRY.CONTAINER from AB_KEYWORD_ENTRY order by AB_KEYWORD_ENTRY.CONTAINER asc"); + return list; +}; + +/** +* provides a translated list of keyword-entry-titles in the system filtered by a containerName; +* usefull for lists where the key is the name which is then a editable displayValue +* +* @param {String} pContainerName name of the keyword container for filtering +* @param {String} [pLocale=locale depending on current client/servercontext] Language-value for translations +* +* @return {String[]} translated titles as 1D-Array +*/ +KeywordUtils.getEntryNamesByContainer = function(pContainerName, pLocale) +{ + var sql = SqlCondition.begin() + .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", pContainerName) + .buildSql("select AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY", null, "order by AB_KEYWORD_ENTRY.SORTING asc, AB_KEYWORD_ENTRY.TITLE asc") + var list = db.array(db.COLUMN, sql).map(function (v){ + return pLocale ? translate.text(v, pLocale) : translate.text(v); + }); + return list; +}; + + +/** +* provides a translated list of keyword-entry-titles and its ids in the system filtered by a containerName; +* usefull for lists where the key is the name which is then a editable displayValue +* +* @param {String} pContainerName name of the keyword container for filtering +* * @param {String} [pLocale=locale depending on current client/servercontext] Language-value for translations +* +* @return {String[]} 2D-Array in the form of [[id1, translatedTitle1], [idN, translatedTitleN]] +*/ +KeywordUtils.getEntryNamesAndIdsByContainer = function(pContainerName, pLocale) +{ + var sql = SqlCondition.begin() + .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", pContainerName) + .buildSql("select AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID, AB_KEYWORD_ENTRY.TITLE from AB_KEYWORD_ENTRY", null, "order by AB_KEYWORD_ENTRY.SORTING asc, AB_KEYWORD_ENTRY.TITLE asc") + + var list = db.table(sql).map(function (elem){ + elem[1] = pLocale ? translate.text(elem[1], pLocale) : translate.text(elem[1]); + return elem; + }); + return list; +}; + +/** + * checks, if a specific keyword exists + * + * @param {String} pKeyId the key of an element within a containerName - this is the value that is stored in the reference-table (e.g. "DE") + * @param {String} pContainerName specifies the type of the keyword and therefore the list elements; + * e.g. "COUNTRY"; use an entry of the $KeywordRegistry here + * + * @return {Boolean} + */ +KeywordUtils.exists = function(pKeyId, pContainerName) +{ + var sql = SqlCondition.begin() + .andPrepare("AB_KEYWORD_ENTRY.KEYID", pKeyId) + .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", pContainerName) + .buildSql("select count(*) from AB_KEYWORD_ENTRY", "1=2") + return parseInt(db.cell(sql)) > 0; +}; + +/** + * get the translated container name. + * + * @param {String} pContainerName specifies the type of the keyword and therefore the list elements; + * e.g. "COUNTRY"; use an entry of the $KeywordRegistry here + * @return translated name, if it exists in the switch case + */ +KeywordUtils.getTranslatedContainer = function(pContainerName) +{ + switch (pContainerName) + { + case "SalesprojectPhase": + return translate.text("Phase"); + case "SalesprojectState": + return translate.text("State"); + break; + default: + return "Please add " + pContainerName + " to the switch case in Salesproject_lib"; + } + +} + +/** + * object that provides featrues for a single keyword attribute; initalizes itself on creation with a specific keyword-attribute + * + * @param {String} pContainerName specifies the type of the keyword and therefore the list elements; + * e.g. "COUNTRY"; use an entry of the $KeywordRegistry here + * @param {String} pAttributeName the name of the keyword attribute that shall be initalized + * + * @class + */ +function KeywordAttribute(pContainerName, pAttributeName) +{ + this.container = pContainerName; + this.attribute = pAttributeName; + + var sql = SqlCondition.begin() + .andPrepare("AB_KEYWORD_ATTRIBUTE.CONTAINER", pContainerName) + .andPrepare("AB_KEYWORD_ATTRIBUTE.NAME", pAttributeName) + .buildSql("select AB_KEYWORD_ATTRIBUTE.AB_KEYWORD_ATTRIBUTEID, AB_KEYWORD_ATTRIBUTE.TYPE from AB_KEYWORD_ATTRIBUTE"); + + var keywordAttrData = db.array(db.ROW, sql); + + if (keywordAttrData.length == 0) + throw new Error(translate.withArguments("no keyword attribute \"%0\" found in keyword container \"%1\"", [this.attribute, this.container])); + + this.id = keywordAttrData[0]; + this.type = keywordAttrData[1]; + this.dbField = this.type.trim(); +} + +KeywordAttribute.prototype.getValue = function(pKeyId) +{ + var sql = SqlCondition.begin() + .andPrepare("AB_KEYWORD_ENTRY.CONTAINER", this.container) + .andPrepare("AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ATTRIBUTE_ID", this.id) + .andPrepare("AB_KEYWORD_ENTRY.KEYID", pKeyId) + .buildSql("select " + this.dbField + " from AB_KEYWORD_ENTRY join AB_KEYWORD_ATTRIBUTERELATION on AB_KEYWORD_ENTRY.AB_KEYWORD_ENTRYID = AB_KEYWORD_ATTRIBUTERELATION.AB_KEYWORD_ENTRY_ID"); + + return db.cell(sql); +} + +/** + * provides methods for interactions with the sepcial-keywords "LANGUAGE" + * + * @class + */ +function LanguageKeywordUtils(){} + +/** +* resolves Languagecode into the latin name +* +* @param {String} pDbFieldName name fo the database field where the ISO3-value is stored +* @param {String} [pLocale=current client language] specifies the locale for translating the title; can be false if nothing shalle be translated +* +* @return {String} a SQL-expression (case-when-statement) +*/ +LanguageKeywordUtils.getResolvedTitleSqlPart = function(pDbFieldName, pLocale) +{ + var data = db.table("select AB_LANGUAGE.ISO3, AB_LANGUAGE.NAME_LATIN from AB_LANGUAGE"); + var resSql = SqlUtils.getResolvingCaseWhen(data, pDbFieldName, pLocale); + return db.translateStatement(resSql); +}; + +/** + * returns a specific name (translated) - this is normally the view-value of a language + * + * @param {String} key id value of the language where the view-value shall be searched + * @param {String} [locale=locale depending on current client/servercontext] Language-value for translations + * + * @return {String} representation of the translated name + * + */ +LanguageKeywordUtils.getViewValue = function(key, locale) +{ + if (!key) + return ""; + + var sql = SqlCondition.begin() + .andPrepare("AB_LANGUAGE.ISO3", key) + .buildSql("select AB_LANGUAGE.NAME_LATIN from AB_LANGUAGE"); + var originalTitle = db.cell(sql); + if (originalTitle == "") + return ""; + var translatedTitle = locale ? translate.text(originalTitle, locale) : translate.text(originalTitle); + return translatedTitle; +}; + + +/** + * provides methods for interactions with legcy keywords + * @deprecated use instead the new meachanism via the KeywordUtils + * + * @class + */ +function LegacyKeywordUtils(){} + +(function(){//scope for private functions + + + /** + * returns the default case for keyword-arrays (id and translated name) + * @param {String} keywordType specifies the type of the keyword and therefore the list elements; e.g. "COUNTRY" + * @return {Array} a 2D array in form of [["id1", "name1"], ["idN", "nameN"]] + * @example + * var items; + * + * items = LegacyKeywordUtils.getStandardArray("ADDRESS.TYPE"); + * result.object(items); + */ + LegacyKeywordUtils.getStandardArray = function(keywordType){ + return LegacyKeywordUtils.createKeyword(keywordType).toArray(["id", "name"]); + } + + /** + * same as getStandardArray but also returns the custom properties + * @param {String} keywordType specifies the type of the keyword and therefore the list elements; e.g. "COUNTRY" + * @return {Array} a 2D array in form of [["id1", "name1", {"prop1":"prop"}], ["idN", "nameN", {"prop1":"prop"}]] + * @example + * var items; + * + * items = LegacyKeywordUtils.getStandardArray("ADDRESS.TYPE"); + * result.object(items); + */ + LegacyKeywordUtils.getStandardArrayProps = function(keywordType){ + return LegacyKeywordUtils.createKeyword(keywordType).toArray(["id", "name", "customProperties"]); + } + + /** + * get a Keyword by type and key + * @param {String} keywordType specifies the type of the keyword and therefore the list elements; e.g. "COUNTRY" + * @param {String} key the key for the keyword ("1", "2", "3", etc.) + * @return {Array} a 2D array in form of [["id1", "name1", properties1], ["idN", "nameN", propertiesN]] + * @example + * var item = LegacyKeywordUtils.get("ADDRESS.TYPE", "1"); + * result.object(item); + */ + LegacyKeywordUtils.get = function(keywordType, key){ + return LegacyKeywordUtils.createKeyword(keywordType).getPropsForKey(key, ["id", "name", "customProperties"]); + } + + /** + * returns a specific name (translated) - this is normally the view-value - of a given keyword; + * <br/>if the key could not be found an empty string "" is returned + * @param {String} keywordType specifies the type of the keyword and therefore the list elements; e.g. "COUNTRY" + * @param {String} key id value of the keyword where the view-value shall be searched + * @return {String} representation of the translated name of the keyword-key + * @example + * var histMedium; + * histMedium = vars.get("$field.MEDIUM"); + * if (histMedium){ + * result.string(vars.get("$field.SUBJECT") + " (" + LegacyKeywordUtils.getViewValue("ACTIVITY.MEDIUM", histMedium) + ")"); + * } + */ + LegacyKeywordUtils.getViewValue = function(keywordType, key){ + var k = LegacyKeywordUtils.createKeyword(keywordType); + return k.getPropForKey(key, "name") || ""; + } + + /** + * creates an object with methods for interacting with an specific keyword + * @param {String} keywordType specifies the type of the keyword and therefore the list elements; e.g. "COUNTRY" + * @param {String} translationLocale locale (like e.g. "de_DE") for translation of the keywordtitle + * @return {Object} object with the following methods: + * <br/>- toArray + * <br/>- get + * <br/>- getPropForKey + * <br/>- getPropsForKey + * <br/>- filter + */ + LegacyKeywordUtils.createKeyword = function(keywordType, translationLocale){ + var valueContainer, _toArrayFn, _getPropForKeyFn, _getPropsForKeyFn; + + var locale; + if (translationLocale) + locale = translationLocale; + else + { + var lang = vars.get("$sys.clientlanguage");//e.g. "de" + var country = vars.get("$sys.clientcountry");//e.g. "DE" + locale = country ? lang + "_" + country : lang; + } + + switch (keywordType){ + case "ACTIVITY.CATEGORY": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("0", translate.text("Visit", locale), null, {defaultAvatarRepresentation: "VAADIN:TRAIN"}) + ,_createKeywordEntry("1", translate.text("E-Mail", locale), null, {defaultAvatarRepresentation: "VAADIN:AT"}) + ,_createKeywordEntry("2", translate.text("Phone", locale), null, {defaultAvatarRepresentation: "VAADIN:PHONE"}) + ,_createKeywordEntry("3", translate.text("Online-Meeting", locale), null, {defaultAvatarRepresentation: "VAADIN:GLOBE_WIRE"}) + ]); + break; + case "COMMUNICATION.MEDIUM": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("0", translate.text("Mobile", locale), null, {category: "PHONE", contentType: "TELEPHONE"}) + ,_createKeywordEntry("1", translate.text("E-Mail", locale), null, {category: "EMAIL", contentType: "EMAIL"}) + ,_createKeywordEntry("2", translate.text("Phone", locale), null, {category: "PHONE", contentType: "TELEPHONE"}) + ,_createKeywordEntry("3", translate.text("Internet", locale), null, {category: "OTHER", contentType: "LINK"}) + ]); + break; + case "ADDRESS.TYPE": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("1", translate.text("Office address", locale), null, {org: true, person: false}) + ,_createKeywordEntry("2", translate.text("Home address", locale), null, {org: false, person: true}) + ,_createKeywordEntry("3", translate.text("Delivery address", locale), null, {org: true, person: true}) + ,_createKeywordEntry("4", translate.text("Post office box", locale), null, {org: true, person: true}) + ]); + break; + case "SALESPROJECT.PRICE_POLITICS": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("1", translate.text("Abomodel", locale)) + ,_createKeywordEntry("2", translate.text("High price strategy", locale)) + ,_createKeywordEntry("3", translate.text("Low price strategy", locale)) + ]); + break; + case "SALESPROJECT.STRENGTH": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("1", translate.text("Strength 1", locale)) + ,_createKeywordEntry("2", translate.text("Strength 2", locale)) + ,_createKeywordEntry("3", translate.text("Strength 3", locale)) + ]); + break; + case "SALESPROJECT.WEAKNESS": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("1", translate.text("Weakness 1", locale)) + ,_createKeywordEntry("2", translate.text("Weakness 2", locale)) + ,_createKeywordEntry("3", translate.text("Weakness 3", locale)) + ]); + break; + case "SALESPROJECT.STATE": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("1", translate.text("Open", locale)) + ,_createKeywordEntry("2", translate.text("Postponed", locale)) + ,_createKeywordEntry("3", translate.text("Aborted", locale)) + ,_createKeywordEntry("4", translate.text("Partial order", locale)) + ,_createKeywordEntry("5", translate.text("Order", locale)) + ,_createKeywordEntry("6", translate.text("Lost", locale)) + ]); + break; + case "SALESPROJECT.PHASE": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("1", translate.text("NQC", locale)) + ,_createKeywordEntry("2", translate.text("MAL", locale)) + ,_createKeywordEntry("3", translate.text("MQL", locale)) + ,_createKeywordEntry("4", translate.text("SAL", locale)) + ,_createKeywordEntry("5", translate.text("SQO", locale)) + ,_createKeywordEntry("6", translate.text("Offer", locale)) + ,_createKeywordEntry("7", translate.text("Negotiation", locale)) + ,_createKeywordEntry("8", translate.text("Project decision", locale)) + ,_createKeywordEntry("9", translate.text("Negotiation", locale)) + ,_createKeywordEntry("10", translate.text("Workshop", locale)) + ,_createKeywordEntry("11", translate.text("Presentation follow-up", locale)) + ,_createKeywordEntry("12", translate.text("Presentation preparation", locale)) + ,_createKeywordEntry("13", translate.text("Deliver opinion", locale)) + ,_createKeywordEntry("14", translate.text("Specifications in progress", locale)) + ,_createKeywordEntry("15", translate.text("Waiting for requirements", locale)) + ,_createKeywordEntry("16", translate.text("Lead", locale)) + ]); + break; + case "SALESPROJECT.MILESTONE.TYPE": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("1", translate.text("Phase", locale), null, {keyword: "SALESPROJECT.PHASE"}) + ,_createKeywordEntry("2", translate.text("State", locale), null, {keyword: "SALESPROJECT.STATE"}) + ]); + break; + case "SALESPROJECT.CLASS": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("1", translate.text("Class A", locale), null, { + keywords: + [["CLASS.BRANCHE", translate.text("Industry", locale)], + ["CLASS.BASED", translate.text("Base", locale)]] + }) + ,_createKeywordEntry("2", translate.text("Class B", locale), null, { + keywords: + [["CLASS.BUDGET", translate.text("Budget (Project)", locale)], + ["CLASS.STANDARD", translate.text("Standard / Individual", locale)]] + }) + ,_createKeywordEntry("3", translate.text("Class C", locale), null, { + keywords: + [["CLASS.PROJSTART", translate.text("Projectstart", locale)]] + }) + ]); + break; + case "CLASS.BRANCHE": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("1", translate.text("Industry 1", locale), null, {points: 50}) + ,_createKeywordEntry("2", translate.text("Industry 2", locale), null, {points: 16.6}) + ,_createKeywordEntry("3", translate.text("Industry 3", locale), null, {points: 50}) + ]); + break; + case "CLASS.BASED": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("1", translate.text("Germany", locale), null, {points: 20}) + ,_createKeywordEntry("2", translate.text("Austria", locale), null, {points: 7.5}) + ,_createKeywordEntry("3", translate.text("Other", locale), null, {points: 0}) + ]); + break; + case "CLASS.BUDGET": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("1", translate.text("From", locale) + "350T\u20ac", null, {points: 50}) + ,_createKeywordEntry("2", "200" + translate.text("to", locale) + "349T\u20ac", null, {points: 30}) + ,_createKeywordEntry("3", "0" + translate.text("to", locale) + "3199T\u20ac", null, {points: 0}) + ]); + break; + case "CLASS.STANDARD": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("1", translate.text("Individual", locale), null, {points: 25}) + ,_createKeywordEntry("2", translate.text("Standard", locale), null, {points: 12.5}) + ]); + break; + case "CLASS.PROJSTART": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("1", translate.text("in 6 Months", locale), null, {points: 30}) + ,_createKeywordEntry("2", translate.text("in 12 Months", locale), null, {points: 20}) + ,_createKeywordEntry("3", translate.text("no Project planned", locale), null, {points: 0}) + ]); + break; + case "OFFER.PROBABILITY": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("1", translate.text("0 %", locale), null, {percentValue: 0}) + ,_createKeywordEntry("2", translate.text("25 %", locale), null, {percentValue: 25}) + ,_createKeywordEntry("3", translate.text("50 %", locale), null, {percentValue: 50}) + ,_createKeywordEntry("4", translate.text("75 %", locale), null, {percentValue: 75}) + ,_createKeywordEntry("5", translate.text("100 %", locale), null, {percentValue: 100}) + ]); + break; + case "TASK.PRIORITY": + valueContainer = _createKeywordEntriesContainer([ + _createKeywordEntry("0", translate.text("{$TASK_PRIORITY_NONE}", locale), null, {defaultAvatarRepresentation: null}) + ,_createKeywordEntry("1", translate.text("{$TASK_PRIORITY_LOW}", locale), null, {defaultAvatarRepresentation: "VAADIN:ARROW_DOWN"}) + ,_createKeywordEntry("2", translate.text("{$TASK_PRIORITY_NORMAL}", locale), null, {defaultAvatarRepresentation: null}) + ,_createKeywordEntry("3", translate.text("{$TASK_PRIORITY_HIGH}", locale), null, {defaultAvatarRepresentation: "VAADIN:EXCLAMATION"}) + ]); + break; + default: + throw new Error(translate.withArguments("[%0]the given keyword \"%1\" has no match with the possible keywordlist", [ + arguments.callee.name, keywordType + ])); + break; + } + + + _getPropForKeyFn = function(key, field, isCustom) { + var keyObject; + if (valueContainer[key] == undefined) + return undefined; + if (isCustom) + keyObject = valueContainer[key]["customProperties"]; + else + keyObject = valueContainer[key]; + + if (keyObject == undefined) + return undefined; + return keyObject[field]; + }; + + _getPropsForKeyFn = function(key, fields) { + var keyObject, i, currentRow, currentField; + + keyObject = valueContainer[key]; + if (keyObject == undefined) + return [];//TODO: throw error instead? + currentRow = []; + for (i = 0; i < fields.length; i++){ + currentField = fields[i]; + //check if the passed fieldnames match the existing fieldnames (<=> properties in the object) + //to prevent errors and unexpected behaviour + if (keyObject[currentField]) + currentRow.push(keyObject[currentField]); + else + currentRow.push(""); + } + return currentRow; + }; + + _toArrayFn = function(fields){ + var res, id, currentRow; + + res = []; + if (!fields) + fields = ["id", "name"]; + else if (typeof(fields) == "string"){ + for (id in valueContainer){ + res.push(_getPropForKeyFn(id, fields)); + } + return res; + } + + for (id in valueContainer){ + currentRow = _getPropsForKeyFn(id, fields); + res.push(currentRow); + } + return res; + }; + + _existsFn = function(key){ + return (valueContainer[key] != undefined); + }; + + return { + /** + * toArray + * @ignore + */ + toArray: _toArrayFn + ,getPropForKey: _getPropForKeyFn + ,getPropsForKey: _getPropsForKeyFn + ,filter: function (callbackFn, thisArg){ + for (id in valueContainer){ + if (false == callbackFn.call(thisArg, valueContainer[id].id, valueContainer[id].name, valueContainer[id].customProperties, + valueContainer[id], valueContainer)){ + delete valueContainer[id]; + } + } + return this; + } + ,exists: _existsFn + }; + }; + + /** + * internal function for creating an object that represents a keyword entry + * @param {String} id represents the key of an entry; a KeywordEntriesContainer can contain the same key only once + * @param {String} name represents the translated name of an entry; this is in most cases the view-value + * @param {String} [description=""] description text for describing the keyword + * @param {Object} [customProperties=null] an Object with additional properties; these can be virtually anything + * @return {Object} object that represents a single keyword entry; normally severel entries are cumulated in a "keywordEntriesContainer" + */ + function _createKeywordEntry(id, name, description, customProperties){ + //TODO: verify if mandatory-checks are really that usefull or can at least be made easier + if (!id) + throw new Error(translate.withArguments("the param \"%0\" in \"%1\" is mandatory and has to be set", [ + "id", arguments.callee.name + ])); + if (!name) + throw new Error(translate.withArguments("the param \"%0\" in \"%1\" is mandatory and has to be set", [ + "name", arguments.callee.name + ])); + + return { + id: id + ,name: name + ,description: description || "" + ,customProperties: customProperties + }; + } + + /** + * internal function for creating an object that represents a container of several keywordEntries + * @param {Array} keywordEntries an Array of keywordEntry-objects (as they are created by "_createKeywordEntry" + * @return {Object} object that contains several keywordEntries + */ + function _createKeywordEntriesContainer(keywordEntries){ + var res, i, l, id; + + res = {}; + for (i = 0, l = keywordEntries.length; i < l; i++){ + id = keywordEntries[i].id; + if (res[id] != undefined){ + throw new Error("the given id is not unique since it already exists"); + } + res[id] = keywordEntries[i]; + } + return res; + } +})(); diff --git a/process/Loghistory_lib/Loghistory_lib.aod b/process/Loghistory_lib/Loghistory_lib.aod index 454f37cd2f2f3108e77c6eb547d95229067e1eca..3d8b998d84e79743ce85304f494f2a46073580d2 100644 --- a/process/Loghistory_lib/Loghistory_lib.aod +++ b/process/Loghistory_lib/Loghistory_lib.aod @@ -1,9 +1,9 @@ -<?xml version="1.0" encoding="UTF-8"?> -<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> - <name>Loghistory_lib</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <process>%aditoprj%/process/Loghistory_lib/process.js</process> - <variants> - <element>LIBRARY</element> - </variants> -</process> +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> + <name>Loghistory_lib</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/Loghistory_lib/process.js</process> + <variants> + <element>LIBRARY</element> + </variants> +</process> diff --git a/process/Loghistory_lib/process.js b/process/Loghistory_lib/process.js index 82dd062bfb143960ac4cee6be365595276e4401d..88d811340f29cd9caaa27a4cb6a97a28be0a001b 100644 --- a/process/Loghistory_lib/process.js +++ b/process/Loghistory_lib/process.js @@ -1,421 +1,421 @@ -import("system.vars"); -import("system.util"); -import("system.logging"); -import("system.project"); -import("system.calendars"); -import("system.db"); -import("system.process"); -import("system.text"); -import("system.datetime"); -import("system.translate"); -import("system.SQLTYPES"); -import("Keyword_lib"); -import("Attribute_lib"); -import("Sql_lib"); -import("Attribute_lib"); -import("Contact_lib"); -import("AddressEntity_lib"); -import("Util_lib"); -import("KeywordRegistry_basic"); - -/** - * object for writing the LogHistory based on audit-changes - * this object will be probably only usefull within the "process_audit"-process - * - * @param {String} pTable name of logged-table - * @param {String} pUser name of the user that performed that change - * @param {String[]} pColumns columns that have been changed - * @param {String[]} pNewValues if available the new values that correspond to pColumns - * @param {String[]} pOldValues if available the existing values that correspond to pColumns - * @param {String} pTimeStamp timestamp when the change has been audited - * @param {String} pAction the SQL-action of what was done (insert/update/delete) - * @param {String} pIdValue primaryKey value of the reocrd that has been audited - * - * @class - */ -function LogHistoryExecutor(pTable, pUser, pColumns, pNewValues, pOldValues, pTimeStamp, pAction, pIdValue) -{ - this.structureDefinitionAlias = "Data_alias";//alias where the definition of what shall be logged is stored - this.oldValues = pOldValues || []; - this.newValues = pNewValues || []; - this.affectedTable = pTable.toUpperCase(); - this.triggeringUser = pUser; - this.timestamp = pTimeStamp; - this.sqlAction = pAction; - this.idValue = pIdValue; - this.columns = pColumns.map(function (v){ - return v.toUpperCase(); - }); - this.translationLanguage = LogHistoryExecutor.TRANSLATION_LANGUAGE(); -} - -/* -* returns a constant value in which language the logging shall be done; -* if you change that value this will affect only new entries not existing ones -* -* @return {String} locale value that can be passed to translate.* methods -*/ -LogHistoryExecutor.TRANSLATION_LANGUAGE = function() -{ - return "DE_de"; -}; - -/* -* executes the logging action into the AB_LOGHIST table -* this is the main function to use -* -* @return null -*/ -LogHistoryExecutor.prototype.execute = function () -{ - var references = {}; - var columnStructure = {}; - var primaryKey = ""; - var somethingTolog = false; - - var structure = project.getAliasDefinitionStructure(this.structureDefinitionAlias, this.affectedTable); - if (structure) - { - columnStructure = structure.tables[this.affectedTable].columns; - for (var column in columnStructure) - { - if (columnStructure[column].tableRef) - references[column] = { - table: columnStructure[column].tableRef, - id: "" - }; - if (columnStructure[column].primaryKey) - primaryKey = column; - if (columnStructure[column].log) - somethingTolog = true; - } - } - - if (!somethingTolog) - return null; - - if (this.affectedTable == "AB_LOGHISTORY")//this would cause an endless logging-loop otherwise - throw new Error(translate.withArguments("the \"%0\" table is configured to get logged but this is the logging-stoarge itself and cannot be monitored", ["AB_LOGHISTORY"])); - - var idvalue = this.idValue; - var description = []; - var extra = []; - extra["COMMUNICATION"] = { - IDs: ["CONTACT_ID", "MEDIUM_ID"], - RefTable: "CONTACT", - Description: translate.text("Communication", this.translationLanguage) - }; - extra["AB_ATTRIBUTERELATION"] = { - IDs: ["OBJECT_ROWID", "AB_ATTRIBUTE_ID"], - Description: translate.text("Attribute", this.translationLanguage) - }; - - if (extra[this.affectedTable]) - { - var conf = extra[this.affectedTable]; - var oldvalues = {}; - var newvalues = {}; - - for(i = 0; i < this.columns.length; i++ ) - { - if (this.sqlAction == 'D' || this.sqlAction == 'U') oldvalues[this.columns[i]] = this.oldValues[i]; - if (this.sqlAction == 'I' || this.sqlAction == 'U') newvalues[this.columns[i]] = this.newValues[i]; - } - if (this.sqlAction == 'D') newvalues = oldvalues; - if ((this.sqlAction == 'D' || this.sqlAction == 'I') && newvalues[conf.IDs[1]]) - { - idvalue = newvalues[conf.IDs[0]]; - var data = this._getDataForExtras(newvalues[conf.IDs[1]], newvalues); - description.push(translate.withArguments("%0 \"%1\"", [conf.Description + " " + data[0] + ":", data[1]], this.translationLanguage)); - } - if (this.sqlAction == 'U') - { - var ids = db.array(db.ROW, "select " + conf.IDs.join(", ") + " from " + this.affectedTable + " where " + this.affectedTable + "ID = '" + idvalue + "'"); - idvalue = ids[0]; - var oldid = ids[1]; - if (oldvalues[conf.IDs[1]]) oldid = oldvalues[conf.IDs[1]]; - var olddata = this._getDataForExtras(oldid, oldvalues); - var newdata = this._getDataForExtras(ids[1], newvalues); - if (newdata[1] && olddata[1]) - { - if (olddata[0] == newdata[0]) - description.push(translate.withArguments("%0 from \"%1\" to \"%2\"", [conf.Description + " " + olddata[0], olddata[1], newdata[1]], this.translationLanguage)); - else - description.push(translate.withArguments("%0 from \"%1\" to %2 \"%3\"", [conf.Description + " " + olddata[0], olddata[1], conf.Description + " " + newdata[0] , newdata[1]], this.translationLanguage)); - } - else if(this.affectedTable == "COMMUNICATION" && olddata[0] != newdata[0])//fyi: no change of the "Standard"-flag will be logged - { - description.push(translate.withArguments("%0 from \"%1\" to \"%2\"", [conf.Description, olddata[0], newdata[0]], this.translationLanguage)); - } - } - if (conf.RefTable) this.affectedTable = conf.RefTable; - } //no extra tables - else - { - if (this.affectedTable == "ASYS_CALENDARBACKEND") - { - var entrytypePosition = this.columns.indexOf("ENTRYTYPE"); - if (entrytypePosition > -1 && this.newValues[entrytypePosition] == calendars.VEVENT) - return null; - } - - for (var i = 0; i < this.columns.length; i++) - { - if (this.affectedTable == "ASYS_CALENDARBACKEND" && this.columns[i] == "VCOMPONENT") - this._getCalendarDescription(i); - - if (references[this.columns[i]]) - { - if (this.sqlAction == "I") references[this.columns[i]].id = this.newValues[i]; - if (this.sqlAction == "D") references[this.columns[i]].id = this.oldValues[i]; - } - - var logfield = columnStructure[this.columns[i]]; - if (logfield && logfield.log) - { - if (this.sqlAction != 'I' && this.oldValues[i] != "") - this.oldValues[i] = this._getFormattedValue(this.columns[i], logfield, this.oldValues[i]); - if (this.sqlAction != 'D' && this.newValues[i] != "") - this.newValues[i] = this._getFormattedValue(this.columns[i], logfield, this.newValues[i]); - - var logfieldTitle = (logfield.title ? translate.text(logfield.title, this.translationLanguage) : translate.text("Value", this.translationLanguage)); - if (this.sqlAction == 'U' && this.oldValues[i] != this.newValues[i]) - { - if (this.oldValues[i] == "[CLOB]" || this.oldValues[i] == "") - description.push(translate.withArguments("%0 \"%1\"", [logfieldTitle + ":", this.newValues[i]], this.translationLanguage)); - else - description.push(translate.withArguments("%0 from \"%1\" to \"%2\"", [logfieldTitle + ":", this.oldValues[i], this.newValues[i]], this.translationLanguage)); - - } - if (this.sqlAction == 'I' && this.newValues[i] != "" && this.newValues[i] != "[CLOB]") - description.push(logfieldTitle + ": \"" + this.newValues[i] + "\""); - if (this.sqlAction == 'D' && this.oldValues[i] != "" && this.oldValues[i] != "[CLOB]") - description.push(logfieldTitle + ": \"" + this.oldValues[i] + "\""); - } - } - if (this.sqlAction == "U") - { - for (var index in references) references[index].id = db.cell("select " + index + " from " + this.affectedTable + " where " + primaryKey + " = '" + this.idValue + "'"); - } - } - - if (description.length > 0) - { - if (this.sqlAction == 'I') description = translate.withArguments("%0 added.", [description.join(",\n")], this.translationLanguage); - else if (this.sqlAction == 'U') description = translate.withArguments("%0 modified.", [description.join(",\n")], this.translationLanguage); - else if (this.sqlAction == 'D') description = translate.withArguments("%0 deleted.", [description.join(",\n")], this.translationLanguage); - for (index in references) - { - if (references[index].id != "") - { - this._addEntryForInsert(references[index].table.trim(), references[index].id, this.affectedTable.trim(), idvalue, description); - idvalue = ""; - } - } - if (idvalue != "") - { - this._addEntryForInsert(this.affectedTable.trim(), idvalue, "", "", description); - } - } - this._insertLoghistEntry(); - return null; -}; - -/* -* adds an entry that shall be inserted into the AB_LOGHIST-table -* that information is collected and later inserted within one transaction via the "_insertLoghistEntry"-function -* -* @param {String} pTablename name of the table that is logged -* @param {String} pTablenameId UID-value of the entry that is logged -* @param {String} pSourceTablename reserved for future | specifies if the origin of a change was somewhere else (which table) -* @param {String} pSourceTablenameId reserved for future | specifies if the origin of a change was somewhere else (which id in that ref-table) -* @param {String} pDescription text that describes the changes that have been done -* -* @return void -*/ -LogHistoryExecutor.prototype._addEntryForInsert = function (pTablename, pTablenameId, pSourceTablename, pSourceTablenameId, pDescription) -{ - if (this.toInsert == undefined) - { - //the "SOURCE_TABLENAME" and "SOURCE_TABLENAMEID" are reserved for later usage in the change-notification-subscriptions //TODO: check if they are really needed - this.toInsert = { - statements: [] - ,cols: ["LOGTYPE","TABLENAME","TABLENAMEID","DESCRIPTION", "SOURCE_TABLENAME", "SOURCE_TABLENAMEID", "DATE_NEW","USER_NEW"] - }; - this.toInsert.types = db.getColumnTypes("AB_LOGHISTORY", this.toInsert.cols);//load only once for better performance - } - - var vals = [this.sqlAction, pTablename, pTablenameId, pDescription, pSourceTablename, pSourceTablenameId, this.timestamp, this.triggeringUser]; - this.toInsert.statements.push(["AB_LOGHISTORY", this.toInsert.cols, this.toInsert.types, vals]); -}; - -/* -* inserts the pending entries into the AB_LOGHIST-table within one transaction -* elements have to be added before this via the "_addEntryForInsert"-function oterwise nothing will happen -* -* @return void -*/ -LogHistoryExecutor.prototype._insertLoghistEntry = function () -{ - if (this.toInsert && this.toInsert.statements) - db.inserts(this.toInsert.statements); -}; - - -/* -* collects data for the tables with "extra"-cases -* -* @param {String} pId the table id -* @param {Object} pValues key-value maps of values -* -* @return {Array} has either zero (tabledefinition not found) or 2 elements: first ist somehow a title while the second element is a resolved value -*/ -LogHistoryExecutor.prototype._getDataForExtras = function(pId, pValues) -{ - var data = []; - - if (this.affectedTable == "AB_ATTRIBUTERELATION") - { - data[0] = AttributeUtil.getFullAttributeName(pId); - data[1] = AttributeRelationUtils.selectAttributeValue(pId, pValues, true); - } - else if (this.affectedTable == "COMMUNICATION") - { - data[0] = KeywordUtils.getViewValue($KeywordRegistry.communicationMedium(), pId); - data[1] = pValues["ADDR"]; - } - return data; -}; - - -/* -* Creates the description for changes in the calendar -* -* @param {String} pIndex calendarfield index (position) within the values -* -* @return {String} the description of the action -*/ -LogHistoryExecutor.prototype._getCalendarDescription = function (pIndex) -{ - if (this.sqlAction != "D") this.newValues[pIndex] = _getEntry("DESCRIPTION:", this.newValues[pIndex]); - if (this.sqlAction != "I") this.oldValues[pIndex] = _getEntry("DESCRIPTION:", this.oldValues[pIndex]); - - function _getEntry(pWert, pVcomponent) - { - var value = pVcomponent.toString().match(new RegExp(pWert + ".+\r")); - if (value != null) return value.toString().replace(pWert, "").replace(/\\R\\N/g, "\r\n"); - else return ""; - } -}; - -/* -* determines if a value has to be formatted and if so, performs that formatting strategy -* this depends mostly on the configuration; if a: -* - keyword is set, the view value of the keyword is retrieved -* - translate4Log process is set, that process will be executed -* - autoMapTrueFalse4Log is set, the raw value will be tried to translate to a "yes" or "no" text based on common cases -* - the field is a TIMESTAMP field the raw long-value will be formatted -* -* @param {Object} pDescription the structureConfig of one specific field which is logged -* @param {String} pColumnName name of the column whoes value shall be formatted -* @param {String} pValue raw value that shall be formatted -* -* @return {String} if necessary the formattedValue otherwise the original value -*/ -LogHistoryExecutor.prototype._getFormattedValue = function (pColumnName, pDescription, pValue) -{ - if (pDescription.keyword != null && pDescription.keyword != "") - { - if (/^(; \d*)*$/.test(pValue)) - { - pValue = text.decodeMS(pValue); - for (let i = 0; i < pValue.length; i++) - { - if (!isNaN(pValue[i])) pValue[i] = getKeyName(pValue[i], pDescription.keyword);//TODO: keyword - } - pValue = pValue.join(", "); - } - else pValue = KeywordUtils.getViewValue(pDescription.keyword, pValue, this.translationLanguage); - } - else if (pDescription.translate4Log != null && pDescription.translate4Log != "") - { - var params = Translate4LogParams.generateParams(this.idValue, pValue.toString(), this.sqlAction, this.translationLanguage); - var scriptId = "LogHistoryExecutor._getFormattedValue." - + this.structureDefinitionAlias + "." + this.affectedTable + "." + pColumnName + ".translate4Log"; - pValue = process.executeScript(scriptId, pDescription.translate4Log, params, vars.get("$sys.dbalias")); - } - else if (pDescription.columnType == String(SQLTYPES.TIMESTAMP) || pDescription.columnType == String(SQLTYPES.DATE)) - pValue = datetime.toDate(pValue, translate.text("dd.MM.yyyy", this.translationLanguage), "Europe/Berlin");//TODO: timezone? - else if (pDescription.autoMapTrueFalse4Log) - { - switch (pValue.toLowerCase()) - { - case "true": - case "t": - case "y": - case "1": - pValue = translate.text("Yes", this.translationLanguage); - break; - case "false": - case "f": - case "n": - case "0": - case "2": - pValue = translate.text("No", this.translationLanguage); - break; - default: - break; - } - } - return pValue; -} - - -/** - * object for easier handling of the parameters that are provided within the translate4Log-process for auditing - * - * @example - * import("system.result"); - * import("Loghistory_lib"); - * import("Keyword_lib"); - * - * var params = Translate4LogParams.load(); - * var res = LanguageKeywordUtils.getViewValue(params.value, params.locale); - * result.string(res); - * @class - */ -function Translate4LogParams() -{ - //watch out the Translate4LogParams.generateParams function - this.rowId = vars.get("$local.rowId"); - this.value = vars.get("$local.value"); - this.action = vars.get("$local.action"); - this.locale = vars.get("$local.locale"); -} - - -/** - * function for generating the parameters which can be passed to another process - * the parameters should be self explaing since every single of them is a parametervalue that will be passed to anotherProcess - * - * @static - */ -Translate4LogParams.generateParams = function (pRowId, pValue, pAction, pLocale) -{ - //watch out the Translate4LogParams-constructor function - var res = { - rowId: pRowId, - value: pValue, - action: pAction, - locale: pLocale - }; - return res;//store in variable for autocomplete of the ADITO designer -}; - -/** - * creates an instnace of Translate4LogParams and loads the data - */ -Translate4LogParams.load = function() -{ - return new Translate4LogParams(); +import("system.vars"); +import("system.util"); +import("system.logging"); +import("system.project"); +import("system.calendars"); +import("system.db"); +import("system.process"); +import("system.text"); +import("system.datetime"); +import("system.translate"); +import("system.SQLTYPES"); +import("Keyword_lib"); +import("Attribute_lib"); +import("Sql_lib"); +import("Attribute_lib"); +import("Contact_lib"); +import("AddressEntity_lib"); +import("Util_lib"); +import("KeywordRegistry_basic"); + +/** + * object for writing the LogHistory based on audit-changes + * this object will be probably only usefull within the "process_audit"-process + * + * @param {String} pTable name of logged-table + * @param {String} pUser name of the user that performed that change + * @param {String[]} pColumns columns that have been changed + * @param {String[]} pNewValues if available the new values that correspond to pColumns + * @param {String[]} pOldValues if available the existing values that correspond to pColumns + * @param {String} pTimeStamp timestamp when the change has been audited + * @param {String} pAction the SQL-action of what was done (insert/update/delete) + * @param {String} pIdValue primaryKey value of the reocrd that has been audited + * + * @class + */ +function LogHistoryExecutor(pTable, pUser, pColumns, pNewValues, pOldValues, pTimeStamp, pAction, pIdValue) +{ + this.structureDefinitionAlias = "Data_alias";//alias where the definition of what shall be logged is stored + this.oldValues = pOldValues || []; + this.newValues = pNewValues || []; + this.affectedTable = pTable.toUpperCase(); + this.triggeringUser = pUser; + this.timestamp = pTimeStamp; + this.sqlAction = pAction; + this.idValue = pIdValue; + this.columns = pColumns.map(function (v){ + return v.toUpperCase(); + }); + this.translationLanguage = LogHistoryExecutor.TRANSLATION_LANGUAGE(); +} + +/* +* returns a constant value in which language the logging shall be done; +* if you change that value this will affect only new entries not existing ones +* +* @return {String} locale value that can be passed to translate.* methods +*/ +LogHistoryExecutor.TRANSLATION_LANGUAGE = function() +{ + return "DE_de"; +}; + +/* +* executes the logging action into the AB_LOGHIST table +* this is the main function to use +* +* @return null +*/ +LogHistoryExecutor.prototype.execute = function () +{ + var references = {}; + var columnStructure = {}; + var primaryKey = ""; + var somethingTolog = false; + + var structure = project.getAliasDefinitionStructure(this.structureDefinitionAlias, this.affectedTable); + if (structure) + { + columnStructure = structure.tables[this.affectedTable].columns; + for (var column in columnStructure) + { + if (columnStructure[column].tableRef) + references[column] = { + table: columnStructure[column].tableRef, + id: "" + }; + if (columnStructure[column].primaryKey) + primaryKey = column; + if (columnStructure[column].log) + somethingTolog = true; + } + } + + if (!somethingTolog) + return null; + + if (this.affectedTable == "AB_LOGHISTORY")//this would cause an endless logging-loop otherwise + throw new Error(translate.withArguments("the \"%0\" table is configured to get logged but this is the logging-stoarge itself and cannot be monitored", ["AB_LOGHISTORY"])); + + var idvalue = this.idValue; + var description = []; + var extra = []; + extra["COMMUNICATION"] = { + IDs: ["CONTACT_ID", "MEDIUM_ID"], + RefTable: "CONTACT", + Description: translate.text("Communication", this.translationLanguage) + }; + extra["AB_ATTRIBUTERELATION"] = { + IDs: ["OBJECT_ROWID", "AB_ATTRIBUTE_ID"], + Description: translate.text("Attribute", this.translationLanguage) + }; + + if (extra[this.affectedTable]) + { + var conf = extra[this.affectedTable]; + var oldvalues = {}; + var newvalues = {}; + + for(i = 0; i < this.columns.length; i++ ) + { + if (this.sqlAction == 'D' || this.sqlAction == 'U') oldvalues[this.columns[i]] = this.oldValues[i]; + if (this.sqlAction == 'I' || this.sqlAction == 'U') newvalues[this.columns[i]] = this.newValues[i]; + } + if (this.sqlAction == 'D') newvalues = oldvalues; + if ((this.sqlAction == 'D' || this.sqlAction == 'I') && newvalues[conf.IDs[1]]) + { + idvalue = newvalues[conf.IDs[0]]; + var data = this._getDataForExtras(newvalues[conf.IDs[1]], newvalues); + description.push(translate.withArguments("%0 \"%1\"", [conf.Description + " " + data[0] + ":", data[1]], this.translationLanguage)); + } + if (this.sqlAction == 'U') + { + var ids = db.array(db.ROW, "select " + conf.IDs.join(", ") + " from " + this.affectedTable + " where " + this.affectedTable + "ID = '" + idvalue + "'"); + idvalue = ids[0]; + var oldid = ids[1]; + if (oldvalues[conf.IDs[1]]) oldid = oldvalues[conf.IDs[1]]; + var olddata = this._getDataForExtras(oldid, oldvalues); + var newdata = this._getDataForExtras(ids[1], newvalues); + if (newdata[1] && olddata[1]) + { + if (olddata[0] == newdata[0]) + description.push(translate.withArguments("%0 from \"%1\" to \"%2\"", [conf.Description + " " + olddata[0], olddata[1], newdata[1]], this.translationLanguage)); + else + description.push(translate.withArguments("%0 from \"%1\" to %2 \"%3\"", [conf.Description + " " + olddata[0], olddata[1], conf.Description + " " + newdata[0] , newdata[1]], this.translationLanguage)); + } + else if(this.affectedTable == "COMMUNICATION" && olddata[0] != newdata[0])//fyi: no change of the "Standard"-flag will be logged + { + description.push(translate.withArguments("%0 from \"%1\" to \"%2\"", [conf.Description, olddata[0], newdata[0]], this.translationLanguage)); + } + } + if (conf.RefTable) this.affectedTable = conf.RefTable; + } //no extra tables + else + { + if (this.affectedTable == "ASYS_CALENDARBACKEND") + { + var entrytypePosition = this.columns.indexOf("ENTRYTYPE"); + if (entrytypePosition > -1 && this.newValues[entrytypePosition] == calendars.VEVENT) + return null; + } + + for (var i = 0; i < this.columns.length; i++) + { + if (this.affectedTable == "ASYS_CALENDARBACKEND" && this.columns[i] == "VCOMPONENT") + this._getCalendarDescription(i); + + if (references[this.columns[i]]) + { + if (this.sqlAction == "I") references[this.columns[i]].id = this.newValues[i]; + if (this.sqlAction == "D") references[this.columns[i]].id = this.oldValues[i]; + } + + var logfield = columnStructure[this.columns[i]]; + if (logfield && logfield.log) + { + if (this.sqlAction != 'I' && this.oldValues[i] != "") + this.oldValues[i] = this._getFormattedValue(this.columns[i], logfield, this.oldValues[i]); + if (this.sqlAction != 'D' && this.newValues[i] != "") + this.newValues[i] = this._getFormattedValue(this.columns[i], logfield, this.newValues[i]); + + var logfieldTitle = (logfield.title ? translate.text(logfield.title, this.translationLanguage) : translate.text("Value", this.translationLanguage)); + if (this.sqlAction == 'U' && this.oldValues[i] != this.newValues[i]) + { + if (this.oldValues[i] == "[CLOB]" || this.oldValues[i] == "") + description.push(translate.withArguments("%0 \"%1\"", [logfieldTitle + ":", this.newValues[i]], this.translationLanguage)); + else + description.push(translate.withArguments("%0 from \"%1\" to \"%2\"", [logfieldTitle + ":", this.oldValues[i], this.newValues[i]], this.translationLanguage)); + + } + if (this.sqlAction == 'I' && this.newValues[i] != "" && this.newValues[i] != "[CLOB]") + description.push(logfieldTitle + ": \"" + this.newValues[i] + "\""); + if (this.sqlAction == 'D' && this.oldValues[i] != "" && this.oldValues[i] != "[CLOB]") + description.push(logfieldTitle + ": \"" + this.oldValues[i] + "\""); + } + } + if (this.sqlAction == "U") + { + for (var index in references) references[index].id = db.cell("select " + index + " from " + this.affectedTable + " where " + primaryKey + " = '" + this.idValue + "'"); + } + } + + if (description.length > 0) + { + if (this.sqlAction == 'I') description = translate.withArguments("%0 added.", [description.join(",\n")], this.translationLanguage); + else if (this.sqlAction == 'U') description = translate.withArguments("%0 modified.", [description.join(",\n")], this.translationLanguage); + else if (this.sqlAction == 'D') description = translate.withArguments("%0 deleted.", [description.join(",\n")], this.translationLanguage); + for (index in references) + { + if (references[index].id != "") + { + this._addEntryForInsert(references[index].table.trim(), references[index].id, this.affectedTable.trim(), idvalue, description); + idvalue = ""; + } + } + if (idvalue != "") + { + this._addEntryForInsert(this.affectedTable.trim(), idvalue, "", "", description); + } + } + this._insertLoghistEntry(); + return null; +}; + +/* +* adds an entry that shall be inserted into the AB_LOGHIST-table +* that information is collected and later inserted within one transaction via the "_insertLoghistEntry"-function +* +* @param {String} pTablename name of the table that is logged +* @param {String} pTablenameId UID-value of the entry that is logged +* @param {String} pSourceTablename reserved for future | specifies if the origin of a change was somewhere else (which table) +* @param {String} pSourceTablenameId reserved for future | specifies if the origin of a change was somewhere else (which id in that ref-table) +* @param {String} pDescription text that describes the changes that have been done +* +* @return void +*/ +LogHistoryExecutor.prototype._addEntryForInsert = function (pTablename, pTablenameId, pSourceTablename, pSourceTablenameId, pDescription) +{ + if (this.toInsert == undefined) + { + //the "SOURCE_TABLENAME" and "SOURCE_TABLENAMEID" are reserved for later usage in the change-notification-subscriptions //TODO: check if they are really needed + this.toInsert = { + statements: [] + ,cols: ["LOGTYPE","TABLENAME","TABLENAMEID","DESCRIPTION", "SOURCE_TABLENAME", "SOURCE_TABLENAMEID", "DATE_NEW","USER_NEW"] + }; + this.toInsert.types = db.getColumnTypes("AB_LOGHISTORY", this.toInsert.cols);//load only once for better performance + } + + var vals = [this.sqlAction, pTablename, pTablenameId, pDescription, pSourceTablename, pSourceTablenameId, this.timestamp, this.triggeringUser]; + this.toInsert.statements.push(["AB_LOGHISTORY", this.toInsert.cols, this.toInsert.types, vals]); +}; + +/* +* inserts the pending entries into the AB_LOGHIST-table within one transaction +* elements have to be added before this via the "_addEntryForInsert"-function oterwise nothing will happen +* +* @return void +*/ +LogHistoryExecutor.prototype._insertLoghistEntry = function () +{ + if (this.toInsert && this.toInsert.statements) + db.inserts(this.toInsert.statements); +}; + + +/* +* collects data for the tables with "extra"-cases +* +* @param {String} pId the table id +* @param {Object} pValues key-value maps of values +* +* @return {Array} has either zero (tabledefinition not found) or 2 elements: first ist somehow a title while the second element is a resolved value +*/ +LogHistoryExecutor.prototype._getDataForExtras = function(pId, pValues) +{ + var data = []; + + if (this.affectedTable == "AB_ATTRIBUTERELATION") + { + data[0] = AttributeUtil.getFullAttributeName(pId); + data[1] = AttributeRelationUtils.selectAttributeValue(pId, pValues, true); + } + else if (this.affectedTable == "COMMUNICATION") + { + data[0] = KeywordUtils.getViewValue($KeywordRegistry.communicationMedium(), pId); + data[1] = pValues["ADDR"]; + } + return data; +}; + + +/* +* Creates the description for changes in the calendar +* +* @param {String} pIndex calendarfield index (position) within the values +* +* @return {String} the description of the action +*/ +LogHistoryExecutor.prototype._getCalendarDescription = function (pIndex) +{ + if (this.sqlAction != "D") this.newValues[pIndex] = _getEntry("DESCRIPTION:", this.newValues[pIndex]); + if (this.sqlAction != "I") this.oldValues[pIndex] = _getEntry("DESCRIPTION:", this.oldValues[pIndex]); + + function _getEntry(pWert, pVcomponent) + { + var value = pVcomponent.toString().match(new RegExp(pWert + ".+\r")); + if (value != null) return value.toString().replace(pWert, "").replace(/\\R\\N/g, "\r\n"); + else return ""; + } +}; + +/* +* determines if a value has to be formatted and if so, performs that formatting strategy +* this depends mostly on the configuration; if a: +* - keyword is set, the view value of the keyword is retrieved +* - translate4Log process is set, that process will be executed +* - autoMapTrueFalse4Log is set, the raw value will be tried to translate to a "yes" or "no" text based on common cases +* - the field is a TIMESTAMP field the raw long-value will be formatted +* +* @param {Object} pDescription the structureConfig of one specific field which is logged +* @param {String} pColumnName name of the column whoes value shall be formatted +* @param {String} pValue raw value that shall be formatted +* +* @return {String} if necessary the formattedValue otherwise the original value +*/ +LogHistoryExecutor.prototype._getFormattedValue = function (pColumnName, pDescription, pValue) +{ + if (pDescription.keyword != null && pDescription.keyword != "") + { + if (/^(; \d*)*$/.test(pValue)) + { + pValue = text.decodeMS(pValue); + for (let i = 0; i < pValue.length; i++) + { + if (!isNaN(pValue[i])) pValue[i] = getKeyName(pValue[i], pDescription.keyword);//TODO: keyword + } + pValue = pValue.join(", "); + } + else pValue = KeywordUtils.getViewValue(pDescription.keyword, pValue, this.translationLanguage); + } + else if (pDescription.translate4Log != null && pDescription.translate4Log != "") + { + var params = Translate4LogParams.generateParams(this.idValue, pValue.toString(), this.sqlAction, this.translationLanguage); + var scriptId = "LogHistoryExecutor._getFormattedValue." + + this.structureDefinitionAlias + "." + this.affectedTable + "." + pColumnName + ".translate4Log"; + pValue = process.executeScript(scriptId, pDescription.translate4Log, params, vars.get("$sys.dbalias")); + } + else if (pDescription.columnType == String(SQLTYPES.TIMESTAMP) || pDescription.columnType == String(SQLTYPES.DATE)) + pValue = datetime.toDate(pValue, translate.text("dd.MM.yyyy", this.translationLanguage), "Europe/Berlin");//TODO: timezone? + else if (pDescription.autoMapTrueFalse4Log) + { + switch (pValue.toLowerCase()) + { + case "true": + case "t": + case "y": + case "1": + pValue = translate.text("Yes", this.translationLanguage); + break; + case "false": + case "f": + case "n": + case "0": + case "2": + pValue = translate.text("No", this.translationLanguage); + break; + default: + break; + } + } + return pValue; +} + + +/** + * object for easier handling of the parameters that are provided within the translate4Log-process for auditing + * + * @example + * import("system.result"); + * import("Loghistory_lib"); + * import("Keyword_lib"); + * + * var params = Translate4LogParams.load(); + * var res = LanguageKeywordUtils.getViewValue(params.value, params.locale); + * result.string(res); + * @class + */ +function Translate4LogParams() +{ + //watch out the Translate4LogParams.generateParams function + this.rowId = vars.get("$local.rowId"); + this.value = vars.get("$local.value"); + this.action = vars.get("$local.action"); + this.locale = vars.get("$local.locale"); +} + + +/** + * function for generating the parameters which can be passed to another process + * the parameters should be self explaing since every single of them is a parametervalue that will be passed to anotherProcess + * + * @static + */ +Translate4LogParams.generateParams = function (pRowId, pValue, pAction, pLocale) +{ + //watch out the Translate4LogParams-constructor function + var res = { + rowId: pRowId, + value: pValue, + action: pAction, + locale: pLocale + }; + return res;//store in variable for autocomplete of the ADITO designer +}; + +/** + * creates an instnace of Translate4LogParams and loads the data + */ +Translate4LogParams.load = function() +{ + return new Translate4LogParams(); }; \ No newline at end of file diff --git a/process/Organisation_lib/process.js b/process/Organisation_lib/process.js index ba6c5b3c1d7054f5a32763b404e08e68e690c815..d510de69cb12a4505a04faabc0740167729326d8 100644 --- a/process/Organisation_lib/process.js +++ b/process/Organisation_lib/process.js @@ -1,181 +1,181 @@ -import("Util_lib"); -import("system.datetime"); -import("system.translate"); -import("system.db"); -import("Binary_lib"); -import("Report_lib"); -import("Sql_lib"); -import("Keyword_lib"); -import("Attribute_lib"); -import("PostalAddress_lib"); -import("Communication_lib"); -import("KeywordRegistry_basic"); - -/** - * a static Utility class for the Org context. - * - * Do not create an instance of this! - * @class - */ -function OrgUtils() {} - -/** - * returns the image for a organisation - * - * @param {String} pOrgId the id of the organisation. - * @param {String} pDefaultText the text, to use for default image generation. - * @return {String} base64 coded String of the image. If none existed, the given String is used to create an image. - */ -OrgUtils.getImage = function(pOrgId, pDefaultText) -{ - return ImageUtils.get("ORGANISATION", "IMAGE", pOrgId, pDefaultText); -} - -/** - * sets the image of a organisation - * - * @param {String} pOrgId the id of the organisation. - * @param {String} pImageDateBase64 base64 coded String of the image. - * @return {Boolean} if image could be set - */ -OrgUtils.setImage = function(pOrgId, pImageDateBase64) -{ - return ImageUtils.set("ORGANISATION", "IMAGE", pOrgId, pImageDateBase64, "OrgImage", "Image of the organisation"); -} - -/** - * deletes the image of a organisation - * - * @param {String} pOrgId the id of the organisation. - * @return {Boolean} if image could be removed - */ -OrgUtils.removeImage = function(pOrgId) -{ - return ImageUtils.remove("ORGANISATION", "IMAGE", pOrgId); -} - -/** - * opens the org-report - * - * @param {String} pOrgId the id of the organization - */ -OrgUtils.openOrgReport = function(pOrgId) -{ - var relationId = pOrgId; - - //org info - var info = db.cell(SqlCondition.begin() - .andPrepare("ORGANISATION.ORGANISATIONID", pOrgId) - .buildSql("select ORGANISATION.INFO from ORGANISATION")); - - //communication data of the organization - var commSql = "select MEDIUM_ID, ADDR from COMMUNICATION"; - commSql = SqlCondition.begin() - .andPrepare("COMMUNICATION.CONTACT_ID", relationId) - .and("STANDARD = 1") - .buildSql(commSql); - var commData = db.table(commSql); - - //resolve keyword - commData.forEach(function (row) - { - row[0] = KeywordUtils.getViewValue($KeywordRegistry.communicationMedium(), row[0]); - }); - commData = ReportData.begin(["KINDOFCOMM", "COMMVALUE"]).add(commData); - - //select people from the organization - - var persSql = "select SALUTATION, TITLE, FIRSTNAME, LASTNAME " - + ",CONTACTROLE as PERSFUNCITON, DEPARTMENT as PERSDEPARTMENT " - + ",(" + CommUtil.getStandardSubSqlMail() + ")" - + ",(" + CommUtil.getStandardSubSqlPhone() + ")" - + ",ORGANISATION_ID, CONTACTID " - + "from PERSON join CONTACT on PERSONID = PERSON_ID"; - persSql = SqlCondition.begin() - .andPrepare("CONTACT.ORGANISATION_ID", pOrgId) - .and("CONTACT.STATUS = '" + $KeywordRegistry.contactStatus$active() + "'") //TODO: replace this with something that isn't a hard coded id - .buildSql(persSql, "", " order by PERSON.LASTNAME asc"); - var persData = db.table(persSql); - - for (let i = 0; i < persData.length; i++) - { - _joinArrayVals(persData[i], 0, 4); //join the full name together - _joinArrayVals(persData[i], 3, 2, "\n"); //join communication together - } - persData = ReportData.begin(["PERSNAMECOMPLETE", "PERSFUNCTION", "PERSDEPARTMENT", "PERSCOMM", "ORGANISATION_ID", "CONTACT_ID"]).add(persData); - - var histSql = "select ENTRYDATE, CATEGORY, FIRSTNAME, LASTNAME, INFO from ACTIVITY " - + " join ACTIVITYLINK on ACTIVITYLINK.ACTIVITY_ID = ACTIVITYID " - + " join CONTACT on ACTIVITYLINK.OBJECT_ROWID = CONTACTID" - + " left join PERSON on CONTACT.PERSON_ID = PERSONID"; - histSql = SqlCondition.begin() - .andPrepare("CONTACT.ORGANISATION_ID", pOrgId) //= all activities linked to the organization or an employee - .buildSql(histSql, "", "order by ENTRYDATE desc"); - var histData = db.table(histSql); - - var dateFormat = translate.text("dd.MM.yyyy"); - histData.forEach(function (row) - { - row[0] = datetime.toDate(row[0], dateFormat); - row[1] = KeywordUtils.getViewValue($KeywordRegistry.activityCategory(), row[1]); - _joinArrayVals(row, 2, 2); - }); - histData = ReportData.begin(["ENTRYDATE", "MEDIUM", "LOGIN", "INFO"]).add(histData); - - var attr = AttributeRelationUtils.getAllAttributes(pOrgId) - .map(function (row) {return row[1] ? row.join(": ") : row[0]}) - .join("\n"); - - //tasks - var taskSql = "select TASK.SUBJECT, TASK.DESCRIPTION, TASK.STATUS, FIRSTNAME, LASTNAME from TASK" - + " join CONTACT on EDITOR_CONTACT_ID = CONTACTID" - + " left join PERSON on CONTACT.PERSON_ID = PERSONID"; - taskSql = SqlCondition.begin() - .andPrepare("CONTACT.ORGANISATION_ID", pOrgId) - .buildSql(taskSql); - var taskData = db.table(taskSql); - - taskData.forEach(function (row) - { - row[2] = KeywordUtils.getViewValue($KeywordRegistry.taskStatus(), row[2]); - _joinArrayVals(row, 3, 2); //join FIRSTNAME and LASTNAME together - }); - taskData = ReportData.begin(["SUBJECT", "INFOTEXT", "STATUS", "RESPONSIBLE"]).add(taskData); - - var params = { - "ORGAddr" : AddressUtils.getAddress(relationId).toString(), //TODO: use new address logic when available - "ORGAttr" : attr, - "INFO" : info - }; - - var orgReport = new Report("Organisation_report", params); - - //add subreport data - orgReport.addSubReportData("subdataComm", commData); - orgReport.addSubReportData("subdataPers", persData); - orgReport.addSubReportData("subdataHist", histData); - orgReport.addSubReportData("subdataTask", taskData); - - //add logo - //TODO: use an function to get the image when available - var imgData = [ - "meineFirma | Konrad-Zuse-Straße 4 | DE 84144 Geisenhausen", - "base64:iVBORw0KGgoAAAANSUhEUgAAAM4AAABRCAYAAACaL5lSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDA4QzAyM0IwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDA4QzAyM0MwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDhDMDIzOTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDhDMDIzQTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhF3nYoAAAlvSURBVHja7J1fjBXVHcfPJQJRoe1urQYJRBYlMUJisqwvGNjY3WgEUtN2CeWBIGb3Ju6LElsW+gA8AHe1UfuwTcBASB/Q7CZNG0tjw2pWU15kNzEBJFnLqmvQBNEbU0pbX+jve+9vlrOzM/fOnTtz78zs95P8cv/MOTPnzJzvnN/5zZ+Tu3XrliGE1MYC7gJCKBxCKBxCKBxCKBxCKBxCCIVDCIVDCIVDCIVDyDzmDq8/d+1/PY5trRB7VGyt2BqxVWLLxe4RW6JpbohdF7sq9qnYpNhFsY/Evoi6QKeOvMAWQKITToQ8LPaEWKfYBrFlVdL/SO1BsU3W/1+JnRMbE3tP7DIPHcmicLrFfia2VWxlBOuD4H6pNi32tthfxM7yEJIsCAc9yw6x7WJLYyozhNgvtlPsLbHT2hMRkjrhYPzynNhu/d4IIMxesafEToqdiGMcREhcwnlKe4AtTaoDhHpArF1sSOwdHlYSN/WGo/Niv2+iaGy2aFnyPKwkqT1OTmyf2pIE1Qdh7t+J/VjsqBgfbyWJEU5OXaMDCa0ThHxYbJHYIYqHJMVV25dg0dgc0LIS0nTh5FPWGPdxzEOaLRxEz/YkbEwTxG3bo2UnpOHCQci3XwffaWONln0FDzdptHBwcXNLiuu5RetASMOE02nKdwSknd1aF0IaIpwdGXFzVmhdCIldOLjLeXuG6rtd60RIrMLBowFLM1TfpVonQmITDh5C25rBOm/VuhESi3Dw5ObKDNZ5pdaNkFiE05nhenfy0JM4hIMI1IYM13uD4QVREoNw8DaaZRmu9zKtIyGh8HusYG3UG/pJ6w/NKy89O/P70j+nzSsn/zTz+5EHV5oHlt9rep58fFa+sQ8vmEtXps35C5/4+12PrTMP3H9v6dMGeZAX6/Cp49tsAiRK4TTsnrS771xsdj3TZTrWPeQrCtiljmnzhzfPmH//538zyyC0/l9tLonSC6wT1tmxzgxJ3q+//a4pdSTzx1Vb1SjR/Hr3L3xFY4MeCWnt3wf7d/iKxgYC+83un7vTruLhJ1H3OMsbsfHnpbdAo0Yv8rcPzpsz74/P6i3QU0AgtgA2b1pvPhQXDHltd+7MB+MzPQrSIa/tukE0mzeuN6f+/O6cOuZyubrr0tvb12bK73nDZ/cbbxwfzWKD2Tnw2l75KIiN/rHwYibvwggyobSfcO6Ju3COINDYX5axjsuNKo1PYLue+eksATy9scN0rF1T6q0AxkkYL9l8dvWaOXX1XfPZl9dK+W23zxJY1HXsUtEANK7RBDf+s1reakyJOFa7/utz6ivr6ZLlmTxBhHXVGvawmsfYYxYjf//HrHENBIMexVnmFs2cwIJr+WO33cKo64gGNKXfBzPcZo479Z2voqnU4zQENGz0DpWAaJAOLpoNxGa7dn6cv/jJbHfv/vtiqYu4ZhDN6pQd/5rdLUk/mPETQ109zo2GCOf8hUDpPr4yHTqvu8exAgQ3DCERC+d63BtGT1Ktt3G45uHK+VybmYPbDbSEc52Hn0QtnKtxb7jSuKZaWojOHvfUkt8JKjSijmT+jXEwqdOmeHuc/4bOe7OOvK46etLb24eoWI8pv4/aHhSP+IWZNRx9RX/mJd3xasvlP2wDUSo7wlUaQ8jyYrUKhClnvewceO2Yltkr4maHq0vLEXkz5SijU8duJ6jgXpf8btPfe937Q5YXNU+LpilYaSY0zUiVsrdrObD+FmsR8o1Uyx+kx5mcByeNSa/GLzauB6XdtRgH66w21rqR9aDRDJu5YWGsf1yF5pe3YeWsU2QoW6DQt6a94hLNzP6AYFRY4y7RGN0Hwypav/UXrLwtrsU91fIHFc7FeSCci67G2KIHGQehqL1CDmbK0TLnbFSQtH11brtPbdDaRqu5Hept82hAzShnveDEgN5ltZzNc2pePaFTJ5S9Fel89sewfs876zPlR+GdywAFFZcX7VYPtj5E/kCuGubcxPSBWb1D+iuto01BDwp2YreGl0vo923SEIf17LTXOqhhaHe7c+qa5VUYJRdOvg94uGxRlhMXMStdJu+u41oNyjgRMNzdoq7SNucPdc3y2pC7rBPJNtulQvkkTd7cnp2vx3iHyydUcFP2nzXkD9TjYIKmcxnubc4ZaxIqbazO2XnQbowunB0KV6m9ju2PusdALn/bfZZsVjnrZTCCtPZ+8hyHqLinLMEajzQDbtG48hcr5Q/a44AxU55zM4uMefi4Xg13FtJQJ6Qh2o16IqxwAi5ri7mcsd5vVsNguyhp/co44fPdzZTur7aQxZ0wwW5DqioczO6Mq4dZfO/Aex5uhcO3VqOr5l6EpVih0RcrbL/R5ayHqSj2RwURhdqeFZWzx5s1i62ScDAlOh706s+gcC4npHHVSoshoRDB9Fjjw7qpdq8apkTH7M5LM75fnTNeUc74rSxn5kTjXFtyGLDHUAhE1HDHeCDhYGWYEr13nginBQPwIBcfWc5UsdcKLmyLYoVB3h192mR/GvRRnwE4y5n+3qbdcnErBSvaoxbOmNjJLO9cRKGsgWehylX7rmZdlU9LOdM2RtS7ClqiFg44IfbXtO6thQvvuBkgWd7auePuRqcN8Zi5faGsWaSlnIlAw9yOS1vQIIEjmDb7frkogwMOcNWGTPnNMGl7O8zknYsX/UA+76p2NpcGB/93WBslzugFn+QTzapMWsqZMPLW/sI9ae7l3ToOChxxq2UO0HfEXjXpegAMZX118aKFNwM2SvjAqzXqUvRohPi/tdkv4khLORPU64yoONxjHNyVsD7MbUU5rzd67Nr/eqU8+8UOp2Sf/VbsiN/CU0deYKsioVgQIs9RsUMpqNshLSshkRPmZR23tFF+L7bPJG/69hsqmKNaVkISIRxHPHCBvhHbk6CAwaSOw47x0JIkCscBDfRzU76frdnTuSNcPqRBDEISLRyjDfWSKUdzMCV6o+edQagcF2hPmOzf4UAyJByn8R405bsMMCU6ZneO+8bQf5nyfXSnzdznawhJhXAcxtQQL8fszpioNurnefCMEB53wJ3bvDpOMiEch7NqGHNgotpOU54+MOw7DPCOgHMqSjyEdpmHjmRROA6X1YZ07IPpAzETGqJwmJ8GU21g1gAnpI1QMt6wiZcF4r1niJLhbTQfcfxCkkQuyFwghJDZLOAuIITCIYTCIYTCIYTCIYTCIYRQOIRQOIRQOIRQOIRQOISQWvi/AAMA9UczDEaG0p8AAAAASUVORK5CYII=" - ]; - params["myAddr"] = imgData[0]; - orgReport.addImage("myLogo", imgData[1]); - - orgReport.openReport(); - - /* - * merges multiple columns in an two-dimensional array into one - */ - function _joinArrayVals (pArr, pIndex, pHowMany, pJoinSeparator) - { - if (pJoinSeparator == undefined) - pJoinSeparator = " "; - pArr.splice(pIndex, pHowMany, ArrayUtils.joinNonEmptyFields( - pArr.slice(pIndex, pIndex + pHowMany), pJoinSeparator) - ); - } +import("Util_lib"); +import("system.datetime"); +import("system.translate"); +import("system.db"); +import("Binary_lib"); +import("Report_lib"); +import("Sql_lib"); +import("Keyword_lib"); +import("Attribute_lib"); +import("PostalAddress_lib"); +import("Communication_lib"); +import("KeywordRegistry_basic"); + +/** + * a static Utility class for the Org context. + * + * Do not create an instance of this! + * @class + */ +function OrgUtils() {} + +/** + * returns the image for a organisation + * + * @param {String} pOrgId the id of the organisation. + * @param {String} pDefaultText the text, to use for default image generation. + * @return {String} base64 coded String of the image. If none existed, the given String is used to create an image. + */ +OrgUtils.getImage = function(pOrgId, pDefaultText) +{ + return ImageUtils.get("ORGANISATION", "IMAGE", pOrgId, pDefaultText); +} + +/** + * sets the image of a organisation + * + * @param {String} pOrgId the id of the organisation. + * @param {String} pImageDateBase64 base64 coded String of the image. + * @return {Boolean} if image could be set + */ +OrgUtils.setImage = function(pOrgId, pImageDateBase64) +{ + return ImageUtils.set("ORGANISATION", "IMAGE", pOrgId, pImageDateBase64, "OrgImage", "Image of the organisation"); +} + +/** + * deletes the image of a organisation + * + * @param {String} pOrgId the id of the organisation. + * @return {Boolean} if image could be removed + */ +OrgUtils.removeImage = function(pOrgId) +{ + return ImageUtils.remove("ORGANISATION", "IMAGE", pOrgId); +} + +/** + * opens the org-report + * + * @param {String} pOrgId the id of the organization + */ +OrgUtils.openOrgReport = function(pOrgId) +{ + var relationId = pOrgId; + + //org info + var info = db.cell(SqlCondition.begin() + .andPrepare("ORGANISATION.ORGANISATIONID", pOrgId) + .buildSql("select ORGANISATION.INFO from ORGANISATION")); + + //communication data of the organization + var commSql = "select MEDIUM_ID, ADDR from COMMUNICATION"; + commSql = SqlCondition.begin() + .andPrepare("COMMUNICATION.CONTACT_ID", relationId) + .and("STANDARD = 1") + .buildSql(commSql); + var commData = db.table(commSql); + + //resolve keyword + commData.forEach(function (row) + { + row[0] = KeywordUtils.getViewValue($KeywordRegistry.communicationMedium(), row[0]); + }); + commData = ReportData.begin(["KINDOFCOMM", "COMMVALUE"]).add(commData); + + //select people from the organization + + var persSql = "select SALUTATION, TITLE, FIRSTNAME, LASTNAME " + + ",CONTACTROLE as PERSFUNCITON, DEPARTMENT as PERSDEPARTMENT " + + ",(" + CommUtil.getStandardSubSqlMail() + ")" + + ",(" + CommUtil.getStandardSubSqlPhone() + ")" + + ",ORGANISATION_ID, CONTACTID " + + "from PERSON join CONTACT on PERSONID = PERSON_ID"; + persSql = SqlCondition.begin() + .andPrepare("CONTACT.ORGANISATION_ID", pOrgId) + .and("CONTACT.STATUS = '" + $KeywordRegistry.contactStatus$active() + "'") //TODO: replace this with something that isn't a hard coded id + .buildSql(persSql, "", " order by PERSON.LASTNAME asc"); + var persData = db.table(persSql); + + for (let i = 0; i < persData.length; i++) + { + _joinArrayVals(persData[i], 0, 4); //join the full name together + _joinArrayVals(persData[i], 3, 2, "\n"); //join communication together + } + persData = ReportData.begin(["PERSNAMECOMPLETE", "PERSFUNCTION", "PERSDEPARTMENT", "PERSCOMM", "ORGANISATION_ID", "CONTACT_ID"]).add(persData); + + var histSql = "select ENTRYDATE, CATEGORY, FIRSTNAME, LASTNAME, INFO from ACTIVITY " + + " join ACTIVITYLINK on ACTIVITYLINK.ACTIVITY_ID = ACTIVITYID " + + " join CONTACT on ACTIVITYLINK.OBJECT_ROWID = CONTACTID" + + " left join PERSON on CONTACT.PERSON_ID = PERSONID"; + histSql = SqlCondition.begin() + .andPrepare("CONTACT.ORGANISATION_ID", pOrgId) //= all activities linked to the organization or an employee + .buildSql(histSql, "", "order by ENTRYDATE desc"); + var histData = db.table(histSql); + + var dateFormat = translate.text("dd.MM.yyyy"); + histData.forEach(function (row) + { + row[0] = datetime.toDate(row[0], dateFormat); + row[1] = KeywordUtils.getViewValue($KeywordRegistry.activityCategory(), row[1]); + _joinArrayVals(row, 2, 2); + }); + histData = ReportData.begin(["ENTRYDATE", "MEDIUM", "LOGIN", "INFO"]).add(histData); + + var attr = AttributeRelationUtils.getAllAttributes(pOrgId) + .map(function (row) {return row[1] ? row.join(": ") : row[0]}) + .join("\n"); + + //tasks + var taskSql = "select TASK.SUBJECT, TASK.DESCRIPTION, TASK.STATUS, FIRSTNAME, LASTNAME from TASK" + + " join CONTACT on EDITOR_CONTACT_ID = CONTACTID" + + " left join PERSON on CONTACT.PERSON_ID = PERSONID"; + taskSql = SqlCondition.begin() + .andPrepare("CONTACT.ORGANISATION_ID", pOrgId) + .buildSql(taskSql); + var taskData = db.table(taskSql); + + taskData.forEach(function (row) + { + row[2] = KeywordUtils.getViewValue($KeywordRegistry.taskStatus(), row[2]); + _joinArrayVals(row, 3, 2); //join FIRSTNAME and LASTNAME together + }); + taskData = ReportData.begin(["SUBJECT", "INFOTEXT", "STATUS", "RESPONSIBLE"]).add(taskData); + + var params = { + "ORGAddr" : AddressUtils.getAddress(relationId).toString(), //TODO: use new address logic when available + "ORGAttr" : attr, + "INFO" : info + }; + + var orgReport = new Report("Organisation_report", params); + + //add subreport data + orgReport.addSubReportData("subdataComm", commData); + orgReport.addSubReportData("subdataPers", persData); + orgReport.addSubReportData("subdataHist", histData); + orgReport.addSubReportData("subdataTask", taskData); + + //add logo + //TODO: use an function to get the image when available + var imgData = [ + "meineFirma | Konrad-Zuse-Straße 4 | DE 84144 Geisenhausen", + "base64:iVBORw0KGgoAAAANSUhEUgAAAM4AAABRCAYAAACaL5lSAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MDA4QzAyM0IwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MDA4QzAyM0MwREIwMTFFNEFGMDREM0VEMjExRjlBRTIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDowMDhDMDIzOTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDowMDhDMDIzQTBEQjAxMUU0QUYwNEQzRUQyMTFGOUFFMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhF3nYoAAAlvSURBVHja7J1fjBXVHcfPJQJRoe1urQYJRBYlMUJisqwvGNjY3WgEUtN2CeWBIGb3Ju6LElsW+gA8AHe1UfuwTcBASB/Q7CZNG0tjw2pWU15kNzEBJFnLqmvQBNEbU0pbX+jve+9vlrOzM/fOnTtz78zs95P8cv/MOTPnzJzvnN/5zZ+Tu3XrliGE1MYC7gJCKBxCKBxCKBxCKBxCKBxCCIVDCIVDCIVDCIVDyDzmDq8/d+1/PY5trRB7VGyt2BqxVWLLxe4RW6JpbohdF7sq9qnYpNhFsY/Evoi6QKeOvMAWQKITToQ8LPaEWKfYBrFlVdL/SO1BsU3W/1+JnRMbE3tP7DIPHcmicLrFfia2VWxlBOuD4H6pNi32tthfxM7yEJIsCAc9yw6x7WJLYyozhNgvtlPsLbHT2hMRkjrhYPzynNhu/d4IIMxesafEToqdiGMcREhcwnlKe4AtTaoDhHpArF1sSOwdHlYSN/WGo/Niv2+iaGy2aFnyPKwkqT1OTmyf2pIE1Qdh7t+J/VjsqBgfbyWJEU5OXaMDCa0ThHxYbJHYIYqHJMVV25dg0dgc0LIS0nTh5FPWGPdxzEOaLRxEz/YkbEwTxG3bo2UnpOHCQci3XwffaWONln0FDzdptHBwcXNLiuu5RetASMOE02nKdwSknd1aF0IaIpwdGXFzVmhdCIldOLjLeXuG6rtd60RIrMLBowFLM1TfpVonQmITDh5C25rBOm/VuhESi3Dw5ObKDNZ5pdaNkFiE05nhenfy0JM4hIMI1IYM13uD4QVREoNw8DaaZRmu9zKtIyGh8HusYG3UG/pJ6w/NKy89O/P70j+nzSsn/zTz+5EHV5oHlt9rep58fFa+sQ8vmEtXps35C5/4+12PrTMP3H9v6dMGeZAX6/Cp49tsAiRK4TTsnrS771xsdj3TZTrWPeQrCtiljmnzhzfPmH//538zyyC0/l9tLonSC6wT1tmxzgxJ3q+//a4pdSTzx1Vb1SjR/Hr3L3xFY4MeCWnt3wf7d/iKxgYC+83un7vTruLhJ1H3OMsbsfHnpbdAo0Yv8rcPzpsz74/P6i3QU0AgtgA2b1pvPhQXDHltd+7MB+MzPQrSIa/tukE0mzeuN6f+/O6cOuZyubrr0tvb12bK73nDZ/cbbxwfzWKD2Tnw2l75KIiN/rHwYibvwggyobSfcO6Ju3COINDYX5axjsuNKo1PYLue+eksATy9scN0rF1T6q0AxkkYL9l8dvWaOXX1XfPZl9dK+W23zxJY1HXsUtEANK7RBDf+s1reakyJOFa7/utz6ivr6ZLlmTxBhHXVGvawmsfYYxYjf//HrHENBIMexVnmFs2cwIJr+WO33cKo64gGNKXfBzPcZo479Z2voqnU4zQENGz0DpWAaJAOLpoNxGa7dn6cv/jJbHfv/vtiqYu4ZhDN6pQd/5rdLUk/mPETQ109zo2GCOf8hUDpPr4yHTqvu8exAgQ3DCERC+d63BtGT1Ktt3G45uHK+VybmYPbDbSEc52Hn0QtnKtxb7jSuKZaWojOHvfUkt8JKjSijmT+jXEwqdOmeHuc/4bOe7OOvK46etLb24eoWI8pv4/aHhSP+IWZNRx9RX/mJd3xasvlP2wDUSo7wlUaQ8jyYrUKhClnvewceO2Yltkr4maHq0vLEXkz5SijU8duJ6jgXpf8btPfe937Q5YXNU+LpilYaSY0zUiVsrdrObD+FmsR8o1Uyx+kx5mcByeNSa/GLzauB6XdtRgH66w21rqR9aDRDJu5YWGsf1yF5pe3YeWsU2QoW6DQt6a94hLNzP6AYFRY4y7RGN0Hwypav/UXrLwtrsU91fIHFc7FeSCci67G2KIHGQehqL1CDmbK0TLnbFSQtH11brtPbdDaRqu5Hept82hAzShnveDEgN5ltZzNc2pePaFTJ5S9Fel89sewfs876zPlR+GdywAFFZcX7VYPtj5E/kCuGubcxPSBWb1D+iuto01BDwp2YreGl0vo923SEIf17LTXOqhhaHe7c+qa5VUYJRdOvg94uGxRlhMXMStdJu+u41oNyjgRMNzdoq7SNucPdc3y2pC7rBPJNtulQvkkTd7cnp2vx3iHyydUcFP2nzXkD9TjYIKmcxnubc4ZaxIqbazO2XnQbowunB0KV6m9ju2PusdALn/bfZZsVjnrZTCCtPZ+8hyHqLinLMEajzQDbtG48hcr5Q/a44AxU55zM4uMefi4Xg13FtJQJ6Qh2o16IqxwAi5ri7mcsd5vVsNguyhp/co44fPdzZTur7aQxZ0wwW5DqioczO6Mq4dZfO/Aex5uhcO3VqOr5l6EpVih0RcrbL/R5ayHqSj2RwURhdqeFZWzx5s1i62ScDAlOh706s+gcC4npHHVSoshoRDB9Fjjw7qpdq8apkTH7M5LM75fnTNeUc74rSxn5kTjXFtyGLDHUAhE1HDHeCDhYGWYEr13nginBQPwIBcfWc5UsdcKLmyLYoVB3h192mR/GvRRnwE4y5n+3qbdcnErBSvaoxbOmNjJLO9cRKGsgWehylX7rmZdlU9LOdM2RtS7ClqiFg44IfbXtO6thQvvuBkgWd7auePuRqcN8Zi5faGsWaSlnIlAw9yOS1vQIIEjmDb7frkogwMOcNWGTPnNMGl7O8zknYsX/UA+76p2NpcGB/93WBslzugFn+QTzapMWsqZMPLW/sI9ae7l3ToOChxxq2UO0HfEXjXpegAMZX118aKFNwM2SvjAqzXqUvRohPi/tdkv4khLORPU64yoONxjHNyVsD7MbUU5rzd67Nr/eqU8+8UOp2Sf/VbsiN/CU0deYKsioVgQIs9RsUMpqNshLSshkRPmZR23tFF+L7bPJG/69hsqmKNaVkISIRxHPHCBvhHbk6CAwaSOw47x0JIkCscBDfRzU76frdnTuSNcPqRBDEISLRyjDfWSKUdzMCV6o+edQagcF2hPmOzf4UAyJByn8R405bsMMCU6ZneO+8bQf5nyfXSnzdznawhJhXAcxtQQL8fszpioNurnefCMEB53wJ3bvDpOMiEch7NqGHNgotpOU54+MOw7DPCOgHMqSjyEdpmHjmRROA6X1YZ07IPpAzETGqJwmJ8GU21g1gAnpI1QMt6wiZcF4r1niJLhbTQfcfxCkkQuyFwghJDZLOAuIITCIYTCIYTCIYTCIYTCIYRQOIRQOIRQOIRQOIRQOISQWvi/AAMA9UczDEaG0p8AAAAASUVORK5CYII=" + ]; + params["myAddr"] = imgData[0]; + orgReport.addImage("myLogo", imgData[1]); + + orgReport.openReport(); + + /* + * merges multiple columns in an two-dimensional array into one + */ + function _joinArrayVals (pArr, pIndex, pHowMany, pJoinSeparator) + { + if (pJoinSeparator == undefined) + pJoinSeparator = " "; + pArr.splice(pIndex, pHowMany, ArrayUtils.joinNonEmptyFields( + pArr.slice(pIndex, pIndex + pHowMany), pJoinSeparator) + ); + } } \ No newline at end of file diff --git a/process/Permission_lib/Permission_lib.aod b/process/Permission_lib/Permission_lib.aod new file mode 100644 index 0000000000000000000000000000000000000000..0128621f7ef4c8fe1264d04c0d17fd8cbb9db78b --- /dev/null +++ b/process/Permission_lib/Permission_lib.aod @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> + <name>Permission_lib</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/Permission_lib/process.js</process> + <variants> + <element>LIBRARY</element> + <element>EXECUTABLE</element> + </variants> +</process> diff --git a/process/Permission_lib/process.js b/process/Permission_lib/process.js new file mode 100644 index 0000000000000000000000000000000000000000..f449d69f2013aeb385a55fcf8f98afc8a85de834 --- /dev/null +++ b/process/Permission_lib/process.js @@ -0,0 +1,465 @@ +import("system.util"); +import("system.db"); +import("Sql_lib"); + +/** + * Provides functions to work with permissions. + * Don't instanciate this! + * + * @class + */ +function PermissionUtil () {} + +/** + * Returns the ids of all subordinated permission sets of a given parent permission set. + * + * @param {String} pPermissionSetId the id of the parent permission set + * + * @result {String[]} array with the ids of every subordinated permission set + */ +PermissionUtil.getAllChildPermissionSets = function (pPermissionSetId) +{ + return db.array(db.COLUMN, SqlCondition.begin() + .and("AB_PERMISSIONSET_ID = '" + pPermissionSetId + "'") + .buildSql("select AB_PERMISSIONSETID from AB_PERMISSIONSET") + ); +} + +/** + * Returns the id of the subordinated permission set with accesstype 'record' of a given permission set. + * + * @param {String} pPermissionSetId the id of the parent permission set + * + * @result {String} id of subordinated permission set + */ +PermissionUtil.getChildRecordPermissionSet = function (pPermissionSetId) +{ + return db.array(db.COLUMN, SqlCondition.begin() + .and("AB_PERMISSIONSET_ID = '" + pPermissionSetId + "'") + .and("ACCESSTYPE = 'R'") + .buildSql("select AB_PERMISSIONSETID from AB_PERMISSIONSET") + ); +} + +/** + * Returns all subordinated permissions of a given permission set. + * + * @param {String} pPermissionSetId the id of the parent permission set + * + * @result {String[]} array with the ids of every subordinated permission + */ +PermissionUtil.getAllChildPermissions = function (pPermissionSetId) +{ + return db.array(db.COLUMN, SqlCondition.begin() + .and("AB_PERMISSIONSET.AB_PERMISSIONSETID = '" + pPermissionSetId + "'") + .buildSql("select AB_PERMISSION.AB_PERMISSIONID from AB_PERMISSION" + + " join AB_PERMISSIONSET on AB_PERMISSIONSET.AB_PERMISSIONSETID = AB_PERMISSION.AB_PERMISSIONSET_ID") + ); +} + +/** + * Returns all subordinated permission actions of a given permission set. + * + * @param {String} pPermissionSetId the id of the parent permission set + * + * @result {String[]} array with the ids of every subordinated permission action + */ +PermissionUtil.getAllChildPermissionActions = function (pPermissionSetId) +{ + return db.array(db.COLUMN, SqlCondition.begin() + .and("AB_PERMISSION.AB_PERMISSIONSET_ID = '" + pPermissionSetId + "'") + .buildSql("select AB_PERMISSIONACTION.AB_PERMISSIONACTIONID from AB_PERMISSIONACTION" + + " join AB_PERMISSION on AB_PERMISSION.AB_PERMISSIONID = AB_PERMISSIONACTION.AB_PERMISSION_ID") + ); +} + +/** + * Returns all subordinated permission actions of a given permission. + * + * @param {String} pPermissionId the id of the parent permission + * + * @result {String[]} array with the ids of every subordinated permission action + */ +PermissionUtil.getAllChildPermissionActions = function (pPermissionId) +{ + return db.array(db.COLUMN, SqlCondition.begin() + .and("AB_PERMISSION_ID = '" + pPermissionId + "'") + .buildSql("select AB_PERMISSIONACTIONID from AB_PERMISSIONACTION") + ); +} + +/** + * Returns the action a given permission action id. + * + * @param {String} pPermissionActionId the id of the action + * + * @result {String} action name as readable string of the given permission action id + */ +PermissionUtil.resolvePermissionActionId = function (pPermissionActionId) +{ + return db.cell(SqlCondition.begin() + .and("AB_PERMISSIONACTIONID = '" + pPermissionActionId + "'") + .buildSql("select AB_PERMISSIONACTION.ACTION from AB_PERMISSIONACTION") + ); +} + +/** + * Converts a given array to an object with properties permissionid, entity, role, field, cond, action, accesstype. + * + * @param {String[]} pArr the array which should be converted to an object. + * + * @result {{}} converted object + */ +PermissionUtil.convertArrToObj = function(pArr) { + var ret = pArr.map(function(x) { + return { + "permissionid": x[0], + "entity": x[1], + "role": x[2], + "field": x[3], + "cond": x[4], + "action": x[5], + "accesstype": x[6], + "condtype": x[7] + } + }); + return ret; +} + +/** + * Returns the first index at which a given permissionid can be found in the array, or -1 if it is not present. + * + * @param {String} pPermId the id of the permission + * + * @param {String[]} pPermTable permission table + * + * @result {int} returns the position (index) of the searched permission in the table, otherwise returns -1 if not found + */ +PermissionUtil.indexOfPermId = function(pPermTable, pPermId) { + var notFound = -1; + for (var i = 0; i < pPermTable.length; i++) { + if(pPermTable[i].permissionid == pPermId) + return i; + } + return notFound; +} + +/** + * Checks a permission if the given actions are different to the actions in the database. + * + * @param {String} pPermId permission id to which the actions are linked to + * + * @param {String[]} pActionNew array of strings of new actions + * + * @result {String[]} returns the different elements + */ +PermissionUtil.getActionDiff = function(pPermId, pActionNew) { + var sqlStr = "select ACTION from AB_PERMISSIONACTION where AB_PERMISSION_ID = '" + pPermId + "'"; + var actionOld = db.array(db.COLUMN, sqlStr); + + return arrDiff(actionOld, pActionNew); +} + +/** + * Checks if the given string is different to the string of a column in the given database table. + * + * @param {String} pId the id + * + * @param {String} pString string which has to be checked if different + * + * @param {String} pDbCol column to which the string is compared + * + * @param {String} pDbTable database table + * + * @result {Boolean} returns true if different, otherwise false + */ +PermissionUtil.isDiff = function(pId, pString, pDbCol, pDbTable) { + var sqlStr = "select " + pDbCol + " from " + pDbTable + " where " + pDbTable + "ID = '" + pId + "'"; + var stringDb = db.cell(sqlStr); + return stringDb != pString ? true : false; +} + +/** + * Updates the value of the column in table if the values are different. + * + * @param {String} pId the id + * + * @param {String} pValue string which gets checked if different + * + * @param {String} pDbCol column to which the string is compared + * + * @param {String} pDbTable database table + * + * @result {Integer} number of records that were updated + */ +PermissionUtil.updateIfDiff = function(pId, pValue, pDbCol, pDbTable) { + if (PermissionUtil.isDiff(pId, pValue, pDbCol, pDbTable)) { + var cols = [pDbCol]; + var vals = [pValue]; + var cond = SqlCondition.begin().and(pDbTable + "ID = '" + pId + "'").build(); + return db.updateData(pDbTable, cols, null, vals, cond); + } + return 0; +} + +/** + * Gets the default permission of the root permission set. + * + * @param {String} pPermId the id of the permission + * + * @result {String} returns the id of the default permission of the root permission set + */ +PermissionUtil.getRootPermission = function(pPermId) { + var sqlStr = "select AB_PERMISSIONSET_ID from AB_PERMISSION where AB_PERMISSIONID = '" + pPermId + "'"; + var parentPermSet = db.array(db.ROW, sqlStr); + + while (parentPermSet[0] != "") { + sqlStr = "select AB_PERMISSIONSET_ID, AB_PERMISSIONSETID from AB_PERMISSIONSET where AB_PERMISSIONSETID = '" + parentPermSet[0] + "'"; + parentPermSet = db.array(db.ROW, sqlStr); + } + + sqlStr = "select AB_PERMISSIONID from AB_PERMISSION where AB_PERMISSIONSET_ID = '" + parentPermSet[1] + "'"; + return db.cell(sqlStr); +} + +/** + * Gets the default field permission of the root field permission set. + * + * @param {String} pPermId the id of the field permission + * + * @result {String} returns the id of the default field permission of the root field permission set + */ +PermissionUtil.getRootFieldPermission = function(pPermId) { + var sqlStr = "select AB_PERMISSIONSET_ID from AB_PERMISSION where AB_PERMISSIONID = '" + pPermId + "'"; + var parentFieldPermSet = db.array(db.ROW, sqlStr); + + sqlStr = "select AB_PERMISSIONID from AB_PERMISSION where AB_PERMISSIONSET_ID = '" + parentFieldPermSet + "' and cond is null"; + return db.cell(sqlStr); +} + +/** + * Gets the default permission of a given permission set. + * + * @param {String} pPermSetId the id of the permission set + * + * @result {String} returns the id of the default permission of a given permission set + */ +PermissionUtil.getDefaultPermission = function(pPermSetId) { + var sqlStr = "select AB_PERMISSIONID from AB_PERMISSION" + + " where AB_PERMISSIONSET_ID = '" + pPermSetId + "'" + + " and COND is null" + return db.cell(sqlStr); +} + +/** + * Gets the conditional permissions of a given permission set. + * + * @param {String} pPermSetId the id of the permission set + * + * @result {String[]} returns the ids of the conditional permissions of a given permission set + */ +PermissionUtil.getConditionalPermission = function(pPermSetId) { + var sqlStr = "select AB_PERMISSIONID from AB_PERMISSION" + + " where AB_PERMISSIONSET_ID = '" + pPermSetId + "'" + + " and COND is not null" + return db.table(sqlStr); +} + +/** + * Gets the permission actions of a given permission. + * + * @param {String} pPermId the id of the permission + * + * @result {String[]} returns the ids of linked actions of a given permission + */ +PermissionUtil.getPermissionAction = function(pPermId) { + var sqlStr = "select AB_PERMISSIONACTIONID from AB_PERMISSIONACTION" + + " where AB_PERMISSION_ID = '" + pPermId + "'" + return db.table(sqlStr); +} + +/** + * Gets the root permission set of a entity-role-combination. + * + * @param {String} pRole the id of a role + * + * @param {String} pEntity the id of an entity + * + * @result {String} returns the id of the root permission set of the given entity-role-combination + */ +PermissionUtil.getRootPermissionSet = function(pRole, pEntity) { + var sqlStr = "select AB_PERMISSIONSETID from AB_PERMISSIONSET" + + " where ROLE_ID = '" + pRole + "' and ENTITY_ID = '" + pEntity +"' and ACCESSTYPE = 'E'"; + return db.cell(sqlStr); +} + +/** + * Gets the parent permission set of a permission. + * + * @param {String} pPermId the id of the permission + * + * @result {String} returns the id of the parent permission set of the given permission + */ +PermissionUtil.getParentPermissionSet = function(pPermId) { + var sqlStr = "select AB_PERMISSIONSET_ID from AB_PERMISSION" + + " where AB_PERMISSIONID = '" + pPermId + "'"; + return db.cell(sqlStr); +} + +/** + * Checks if the given permission has any children left. + * + * @param {String} pPermSetId the id of the permission set + * + * @result {Boolean} returns true if permission set has no children, otherwise false + */ +PermissionUtil.permSetIsEmpty = function(pPermSetId) { + var subSets = PermissionUtil.getAllChildPermissionSets(pPermSetId); + var subPerms = PermissionUtil.getAllChildPermissions(pPermSetId); + var subActions = PermissionUtil.getAllChildPermissionActions(pPermSetId); + + if (subActions.length == 0 && subPerms == 0 && subSets == 0) + return true; + return false; +} + +/** + * Returns all permissions of the given permission sets. + * + * @param {String[]} pPermSetIds the ids of the permission sets + * + * @result {String[]} returns ids of all permissions + */ +PermissionUtil.getAllPermissions = function(pPermSetIds) { + return db.table("select AB_PERMISSIONID from AB_PERMISSION where AB_PERMISSION.AB_PERMISSIONSET_ID in ('" + pPermSetIds.join("','") + "')"); +} + +/** + * Returns all permission actions of the given permissions. + * + * @param {String[]} pPermIds the ids of the permissions + * + * @result {String[]} returns ids of all permission actions + */ +PermissionUtil.getAllPermissionActions = function(pPermIds) { + return db.table("select AB_PERMISSIONACTIONID from AB_PERMISSIONACTION where AB_PERMISSIONACTION.AB_PERMISSION_ID in ('" + pPermIds.join("','") + "')"); +} + +/** + * Returns the condition type of the given permissions. + * + * @param {String} pPermId the id of the permission + * + * @result {String} returns the value of condition type (true or false) + */ +PermissionUtil.getPermissionCondType = function(pPermId) { + return db.cell("select CONDTYPE from AB_PERMISSION where AB_PERMISSION.AB_PERMISSIONID = '" + pPermId + "'"); +} + +/** + * Checks if the given actions are already linked to the permission. + * + * @param {String} pPermId the id of the permission + * + * @param {String} pActionNew actions which have to be checked if updated + * + * @result {String[]} returns the element which is a duplicate, otherwise null + */ +PermissionUtil.containsDuplicateActions = function(pPermId, pActionNew) { + var sqlStr = "select ACTION from AB_PERMISSIONACTION where AB_PERMISSION_ID = '" + pPermId + "'"; + var actionsOld = db.array(db.COLUMN, sqlStr); + var actionsNew = pActionNew.split(","); + var res = null + + res = actionsOld.filter(function(val) { + return actionsNew.indexOf(val) != -1; + }); + + return res; +} + +/** + * Inserts a new instance of a permission set into AB_PERMISSIONSET. + * + * @param {String} pParentPermSet The parent permission set, empty if root node + * + * @param {String} pEntity The entity to which the PermissionSet is linked + * + * @param {String} pRole The Role to which the PermissionSet is linked + * + * @param {String} pField The Field to which the PermissionSet is linked + * + * @param {String} pAccessType Entity, Record or Field (E, R, F) + * + * @result {Integer} returns the id of the inserted permission set + */ +PermissionUtil.insertNewPermissionSet = function(pParentPermSet, pEntity, pRole, pField, pAccessType) { + var table = "AB_PERMISSIONSET"; + var cols = db.getColumns(table); + var permsetid = util.getNewUUID(); + var vals = [permsetid, pParentPermSet, pAccessType, pEntity, pField, pRole]; + db.insertData(table, cols, null, vals); + return permsetid; +} + +/** + * Inserts a new instance of a permission into AB_PERMISSION. + * + * @param {String} pParentPermSet The parent permission set + * + * @param {String} pCond The entity to which the PermissionSet is linked + * + * @param {String} pCondType The Role to which the PermissionSet is linked + * + * @result {Integer} returns the id of the inserted permission + */ +PermissionUtil.insertNewPermission = function(pParentPermSet, pCond, pCondType) { + var table = "AB_PERMISSION"; + var cols = db.getColumns(table); + var permid = util.getNewUUID(); + var vals = [permid, pParentPermSet, pCond, pCondType]; + db.insertData(table, cols, null, vals); + return permid; +} + +/** + * Inserts a new instance of a permission action into AB_PERMISSIONACTION. + * + * @param {String} pParentPerm The parent permission + * + * @param {String} pAction Action (view, create,...) + * + * @result {Integer} returns the id of the inserted permission action + */ +PermissionUtil.insertNewPermissionAction = function(pParentPerm, pAction) { + var table = "AB_PERMISSIONACTION"; + var cols = db.getColumns(table); + var permactionid = util.getNewUUID(); + var vals = [permactionid, pParentPerm, pAction]; + db.insertData(table, cols, null, vals); + return permactionid; +} + +// arrDiff calculates different elements of two arrays and returns them as array, otherwise empty array +function arrDiff (arr1, arr2) { + var helperArr = [], diff = []; + + for (let i = 0; i < arr1.length; i++) { + helperArr[arr1[i]] = true; + } + + for (let i = 0; i < arr2.length; i++) { + if (helperArr[arr2[i]]) { + delete helperArr[arr2[i]]; + } + else { + helperArr[arr2[i]] = true; + } + } + + for (var k in helperArr) { + diff.push(k); + } + + return diff; +} \ No newline at end of file diff --git a/process/PostalAddress_lib/process.js b/process/PostalAddress_lib/process.js index 48d3b89455fda48b3970397073af600921c8295c..757eed6adaa34dd390c1584e4686863d3866e03b 100644 --- a/process/PostalAddress_lib/process.js +++ b/process/PostalAddress_lib/process.js @@ -1,271 +1,271 @@ -import("KeywordRegistry_basic"); -import("system.db"); -import("Sql_lib"); -import("Contact_lib"); -import("Keyword_lib"); -import("Util_lib"); -/** - * Methods for addresses. - * Todo: evtl. übernahme / anpassung der Adresslib aus altem Basic. 1030856 - * - * Do not create an instance of this! - * - * @class - */ -function AddressUtils(){} - -/** - * format the Address in one line - * - * @param {String} pCountry - * @param {String} pAddressLine - * @param {String} pBuildingNo - * @param {String} pZipCode - * @param {String} pCity - * @param {String} pAddressIdentifier - * - * @return {String} - */ -AddressUtils.formatOneline = function (pCountry, pAddressLine, pBuildingNo, pZipCode, pCity, pAddressIdentifier) -{ - //request (and resulting change) was made here to NOT include Country int othe title - return StringUtils.concat(", ", [pAddressLine, pBuildingNo, pZipCode, pCity, pAddressIdentifier]); -}; - -/** - * format the Address in one line as a sql statement - * - * @return {String} sql expression that can be used within a select statement - */ -AddressUtils.formatOnelineSql = function () -{ - //request (and resulting change) was made here to NOT include Country int othe title - var maskingHelper = new SqlMaskingUtils(); - var sqlExpression = maskingHelper.concat(["ADDRESS.ADDRESS", "ADDRESS.BUILDINGNO", "ADDRESS.ZIP", "ADDRESS.CITY", "ADDRESS.ADDRIDENTIFIER"], ", "); - return sqlExpression; -}; - - -/** - * returns the formatted address by the ADDRESSID as one line - * - * TODO: Dummy method! Übernahme der Adresslib aus altem Basic - * - * @params {String} pAddressId ADDRESSID of the address which shall be loaded - * - * @return {String} formatted address - */ -AddressUtils.getFormattedOnlineAddressById = function(pAddressId) -{ - var addrId = pAddressId; - var addr = ""; - if (addrId) - { - var select = "select ADDRESS.COUNTRY, ADDRESS.ADDRESS, ADDRESS.BUILDINGNO, ADDRESS.ZIP, ADDRESS.CITY, ADDRESS.ADDRIDENTIFIER from ADDRESS "; - var addrData = db.array(db.ROW, - SqlCondition.begin() - .andPrepare("ADDRESS.ADDRESSID", addrId) - .buildSql(select)); - - addr = AddressUtils.formatOneline.apply(this, addrData); - } - return addr; -} - -/** - * Returns the formatted standard address for the contact. - * - * TODO: Dummy method! Übernahme der Adresslib aus altem Basic - * - * @return {String} - */ -AddressUtils.getAddress = function(pContactId) { - var address = db.array(db.ROW, SqlCondition.begin().andPrepare("CONTACT.CONTACTID", pContactId).buildSql('select CONTACTID, ADDRESS, BUILDINGNO, ZIP, CITY, "NAME", FIRSTNAME, LASTNAME, TITLE from' + ContactUtils.getFullContactString(), "1=0")); - - // TODO: currently there are some relations without standard address. Use Hardcoded one. - if (!address[1]) { - var dummyAddress = db.array(db.ROW, SqlCondition.begin().andPrepare("ADDRESS.ADDRESSID", '97d37aea-d7f8-4436-bb31-875439f5f7f1').buildSql('select ADDRESS, BUILDINGNO, ZIP, CITY from ADDRESS', "1=0")); - address[1] = dummyAddress[0]; - address[2] = dummyAddress[1]; - address[3] = dummyAddress[2]; - address[4] = dummyAddress[3]; - - } - var type = ContactUtils.getContactTypeByContactId(pContactId); - - return AddressUtils.formatAddress(type, address[1], address[2], address[3], address[4], address[5], address[6], address[7], address[8]); -} - -/** - * Returns the formatted address. - * - * TODO: Dummy method! Übernahme der Adresslib aus altem Basic - * - * @return {String} - */ -AddressUtils.getAddressById = function(pAddressId) { - var address = db.array(db.ROW, SqlCondition.begin() - .andPrepare("ADDRESS.ADDRESSID", pAddressId) - .buildSql("select CONTACT_ID, ADDRESS, BUILDINGNO, ZIP, CITY from " - + "ADDRESS", "1=0")); - - // TODO: currently there are some relations without standard address. Use Hardcoded one. - if (!address[1]) { - var dummyAddress = db.array(db.ROW, SqlCondition.begin().andPrepare("ADDRESS.ADDRESSID", '97d37aea-d7f8-4436-bb31-875439f5f7f1').buildSql('select CONTACT_ID, ADDRESS, BUILDINGNO, ZIP, CITY from ADDRESS', "1=0")); - address[0] = dummyAddress[0]; - address[1] = dummyAddress[1]; - address[2] = dummyAddress[2]; - address[3] = dummyAddress[3]; - address[4] = dummyAddress[4]; - - } - var type = ContactUtils.getContactTypeByContactId(address[0]); - - if (address[0]) - { - var names = db.array(db.ROW, SqlCondition.begin() - .andPrepare("CONTACT.CONTACTID", address[0]) - .buildSql("select ORGANISATION.NAME, FIRSTNAME, LASTNAME, TITLE from CONTACT left join PERSON on PERSONID = PERSON_ID left join ORGANISATION on ORGANISATIONID = ORGANISATION_ID" - , "1=0")); - return AddressUtils.formatAddress(type, address[1], address[2], address[3], address[4], names[0], names[1], names[2], names[3]); - } - - return ""; -} - -/** - * TODO: Dummy method! - * - * Returns the formatted address. - * - * TODO: Dummy method! Übernahme der Adresslib aus altem Basic und Nutzung von den Platzhaltern in Zukunft! - * - * @return {String} - */ -AddressUtils.formatAddress = function(pAddrType, pAddress, pBuildingno, pZip, pCity, pOrgname, pFirstname, pLastname, pTitle) { - var resultAddr = ""; - - // 1 if organisation <br> - // 2 if privat person <br> - // 3 if person of an organisation <br> - switch (pAddrType) - { - case 1: - resultAddr = pOrgname + "\n" + pAddress + " " + pBuildingno + "\n" + pZip + " " + pCity; - break; - case 2: - resultAddr = pTitle + " " + pFirstname + " " + pLastname + "\n" + pAddress + " " + pBuildingno + "\n" + pZip + " " + pCity; - break; - case 3: - resultAddr = pOrgname + "\n" + (pTitle && pFirstname && pLastname ? pTitle + " " + pFirstname + " " + pLastname + "\n" : "") + pAddress + " " + pBuildingno + "\n" + pZip + " " + pCity; - break; - } - - return resultAddr; -} - -/** - * Returns the formatted addresses for the contact. - * - * TODO: Dummy method! Übernahme der Adresslib aus altem Basic - * - * @return {String} - */ -AddressUtils.getAllPossibleAddresses = function(pRelationId) { - var addresses = db.table(SqlCondition.begin().andPrepare("CONTACT.CONTACTID", pRelationId) - .buildSql("select ADDRESSID, ADDR_TYPE, ADDRIDENTIFIER from ADDRESS join CONTACT on CONTACTID = CONTACT_ID or CONTACT_ID = ORGANISATION_ID", "1=0")); - - return addresses.map(function(pAddress) { - return [pAddress[0], KeywordUtils.getViewValue($KeywordRegistry.addressType(), pAddress[1]) + ": " + pAddress[2]]; - }); -} - -/** - * Returns a letter salutation. - * - * TODO: Dummy method! Übernahme der Adresslib aus altem Basic - * - * @return {String} - */ -AddressUtils.getLetterSalutation = function() { - return "Sehr geehrte Damen und Herren"; -} - -/** - * Methods for validating addresses. - * - * Do not create an instance of this! - * - * @class - */ -function AddressValidationUtils(){} - -/** - * loads AB_COUNTRYINFO.REQUIRED_FIELDS from db - * - * @param {String} countryCode - * - * @return {String} A string containing all mandatory fieldCodes - * - * @ignore - */ -AddressValidationUtils._getRequiredFields = function(countryCode) -{ - if (!countryCode) - return ""; - var requiredFields = db.cell(SqlCondition.begin().andPrepare("AB_COUNTRYINFO.ISO2", countryCode) - .buildSql("select AB_COUNTRYINFO.REQUIRED_FIELDS from AB_COUNTRYINFO")); - return requiredFields; -}; - -/** - * check if the requested field is a mandatory field - * - * @param {String} countryCode - * @param {String} fieldCode - * - * @return {Boolean} - */ -AddressValidationUtils.isMandatoryField = function(countryCode, fieldCode) -{ - var requiredFields = this._getRequiredFields(countryCode); - return requiredFields == "" || requiredFields.search(fieldCode) != -1; -}; - -/** - * load the regexp for zip validation from the database - * - * @param {String} countryCode - * - * @return {String} the regexp - */ -AddressValidationUtils._getZipValidationRegEx = function(countryCode) -{ - if (!countryCode) - return ""; - var cond = new SqlCondition(); - cond.andPrepare("AB_COUNTRYINFO.ISO2", countryCode ); - var stmt = cond.buildSql("select AB_COUNTRYINFO.ZIP_REGEX from AB_COUNTRYINFO"); - return db.cell(stmt); -}; - -/** - * check if the zip code is valid - * - * @param {String} countryCode - * @param {String} zipCode - * - * return {Boolean} - */ -AddressValidationUtils.isValidZip = function(countryCode, zipCode) -{ - if (zipCode == "") - return true;//if ZIP is a required field has to be checked in a separate mandatory-field-check -> do not check this here - var regExpVal = this._getZipValidationRegEx(countryCode); - if (regExpVal == "") - return true; - //only an exact match is a correct one -> specify being and end anchors - regExpVal = "^" + regExpVal + "$"; - var regExp = new RegExp(regExpVal); - return regExp.test(zipCode); +import("KeywordRegistry_basic"); +import("system.db"); +import("Sql_lib"); +import("Contact_lib"); +import("Keyword_lib"); +import("Util_lib"); +/** + * Methods for addresses. + * Todo: evtl. übernahme / anpassung der Adresslib aus altem Basic. 1030856 + * + * Do not create an instance of this! + * + * @class + */ +function AddressUtils(){} + +/** + * format the Address in one line + * + * @param {String} pCountry + * @param {String} pAddressLine + * @param {String} pBuildingNo + * @param {String} pZipCode + * @param {String} pCity + * @param {String} pAddressIdentifier + * + * @return {String} + */ +AddressUtils.formatOneline = function (pCountry, pAddressLine, pBuildingNo, pZipCode, pCity, pAddressIdentifier) +{ + //request (and resulting change) was made here to NOT include Country int othe title + return StringUtils.concat(", ", [pAddressLine, pBuildingNo, pZipCode, pCity, pAddressIdentifier]); +}; + +/** + * format the Address in one line as a sql statement + * + * @return {String} sql expression that can be used within a select statement + */ +AddressUtils.formatOnelineSql = function () +{ + //request (and resulting change) was made here to NOT include Country int othe title + var maskingHelper = new SqlMaskingUtils(); + var sqlExpression = maskingHelper.concat(["ADDRESS.ADDRESS", "ADDRESS.BUILDINGNO", "ADDRESS.ZIP", "ADDRESS.CITY", "ADDRESS.ADDRIDENTIFIER"], ", "); + return sqlExpression; +}; + + +/** + * returns the formatted address by the ADDRESSID as one line + * + * TODO: Dummy method! Übernahme der Adresslib aus altem Basic + * + * @params {String} pAddressId ADDRESSID of the address which shall be loaded + * + * @return {String} formatted address + */ +AddressUtils.getFormattedOnlineAddressById = function(pAddressId) +{ + var addrId = pAddressId; + var addr = ""; + if (addrId) + { + var select = "select ADDRESS.COUNTRY, ADDRESS.ADDRESS, ADDRESS.BUILDINGNO, ADDRESS.ZIP, ADDRESS.CITY, ADDRESS.ADDRIDENTIFIER from ADDRESS "; + var addrData = db.array(db.ROW, + SqlCondition.begin() + .andPrepare("ADDRESS.ADDRESSID", addrId) + .buildSql(select)); + + addr = AddressUtils.formatOneline.apply(this, addrData); + } + return addr; +} + +/** + * Returns the formatted standard address for the contact. + * + * TODO: Dummy method! Übernahme der Adresslib aus altem Basic + * + * @return {String} + */ +AddressUtils.getAddress = function(pContactId) { + var address = db.array(db.ROW, SqlCondition.begin().andPrepare("CONTACT.CONTACTID", pContactId).buildSql('select CONTACTID, ADDRESS, BUILDINGNO, ZIP, CITY, "NAME", FIRSTNAME, LASTNAME, TITLE from' + ContactUtils.getFullContactString(), "1=0")); + + // TODO: currently there are some relations without standard address. Use Hardcoded one. + if (!address[1]) { + var dummyAddress = db.array(db.ROW, SqlCondition.begin().andPrepare("ADDRESS.ADDRESSID", '97d37aea-d7f8-4436-bb31-875439f5f7f1').buildSql('select ADDRESS, BUILDINGNO, ZIP, CITY from ADDRESS', "1=0")); + address[1] = dummyAddress[0]; + address[2] = dummyAddress[1]; + address[3] = dummyAddress[2]; + address[4] = dummyAddress[3]; + + } + var type = ContactUtils.getContactTypeByContactId(pContactId); + + return AddressUtils.formatAddress(type, address[1], address[2], address[3], address[4], address[5], address[6], address[7], address[8]); +} + +/** + * Returns the formatted address. + * + * TODO: Dummy method! Übernahme der Adresslib aus altem Basic + * + * @return {String} + */ +AddressUtils.getAddressById = function(pAddressId) { + var address = db.array(db.ROW, SqlCondition.begin() + .andPrepare("ADDRESS.ADDRESSID", pAddressId) + .buildSql("select CONTACT_ID, ADDRESS, BUILDINGNO, ZIP, CITY from " + + "ADDRESS", "1=0")); + + // TODO: currently there are some relations without standard address. Use Hardcoded one. + if (!address[1]) { + var dummyAddress = db.array(db.ROW, SqlCondition.begin().andPrepare("ADDRESS.ADDRESSID", '97d37aea-d7f8-4436-bb31-875439f5f7f1').buildSql('select CONTACT_ID, ADDRESS, BUILDINGNO, ZIP, CITY from ADDRESS', "1=0")); + address[0] = dummyAddress[0]; + address[1] = dummyAddress[1]; + address[2] = dummyAddress[2]; + address[3] = dummyAddress[3]; + address[4] = dummyAddress[4]; + + } + var type = ContactUtils.getContactTypeByContactId(address[0]); + + if (address[0]) + { + var names = db.array(db.ROW, SqlCondition.begin() + .andPrepare("CONTACT.CONTACTID", address[0]) + .buildSql("select ORGANISATION.NAME, FIRSTNAME, LASTNAME, TITLE from CONTACT left join PERSON on PERSONID = PERSON_ID left join ORGANISATION on ORGANISATIONID = ORGANISATION_ID" + , "1=0")); + return AddressUtils.formatAddress(type, address[1], address[2], address[3], address[4], names[0], names[1], names[2], names[3]); + } + + return ""; +} + +/** + * TODO: Dummy method! + * + * Returns the formatted address. + * + * TODO: Dummy method! Übernahme der Adresslib aus altem Basic und Nutzung von den Platzhaltern in Zukunft! + * + * @return {String} + */ +AddressUtils.formatAddress = function(pAddrType, pAddress, pBuildingno, pZip, pCity, pOrgname, pFirstname, pLastname, pTitle) { + var resultAddr = ""; + + // 1 if organisation <br> + // 2 if privat person <br> + // 3 if person of an organisation <br> + switch (pAddrType) + { + case 1: + resultAddr = pOrgname + "\n" + pAddress + " " + pBuildingno + "\n" + pZip + " " + pCity; + break; + case 2: + resultAddr = pTitle + " " + pFirstname + " " + pLastname + "\n" + pAddress + " " + pBuildingno + "\n" + pZip + " " + pCity; + break; + case 3: + resultAddr = pOrgname + "\n" + (pTitle && pFirstname && pLastname ? pTitle + " " + pFirstname + " " + pLastname + "\n" : "") + pAddress + " " + pBuildingno + "\n" + pZip + " " + pCity; + break; + } + + return resultAddr; +} + +/** + * Returns the formatted addresses for the contact. + * + * TODO: Dummy method! Übernahme der Adresslib aus altem Basic + * + * @return {String} + */ +AddressUtils.getAllPossibleAddresses = function(pRelationId) { + var addresses = db.table(SqlCondition.begin().andPrepare("CONTACT.CONTACTID", pRelationId) + .buildSql("select ADDRESSID, ADDR_TYPE, ADDRIDENTIFIER from ADDRESS join CONTACT on CONTACTID = CONTACT_ID or CONTACT_ID = ORGANISATION_ID", "1=0")); + + return addresses.map(function(pAddress) { + return [pAddress[0], KeywordUtils.getViewValue($KeywordRegistry.addressType(), pAddress[1]) + ": " + pAddress[2]]; + }); +} + +/** + * Returns a letter salutation. + * + * TODO: Dummy method! Übernahme der Adresslib aus altem Basic + * + * @return {String} + */ +AddressUtils.getLetterSalutation = function() { + return "Sehr geehrte Damen und Herren"; +} + +/** + * Methods for validating addresses. + * + * Do not create an instance of this! + * + * @class + */ +function AddressValidationUtils(){} + +/** + * loads AB_COUNTRYINFO.REQUIRED_FIELDS from db + * + * @param {String} countryCode + * + * @return {String} A string containing all mandatory fieldCodes + * + * @ignore + */ +AddressValidationUtils._getRequiredFields = function(countryCode) +{ + if (!countryCode) + return ""; + var requiredFields = db.cell(SqlCondition.begin().andPrepare("AB_COUNTRYINFO.ISO2", countryCode) + .buildSql("select AB_COUNTRYINFO.REQUIRED_FIELDS from AB_COUNTRYINFO")); + return requiredFields; +}; + +/** + * check if the requested field is a mandatory field + * + * @param {String} countryCode + * @param {String} fieldCode + * + * @return {Boolean} + */ +AddressValidationUtils.isMandatoryField = function(countryCode, fieldCode) +{ + var requiredFields = this._getRequiredFields(countryCode); + return requiredFields == "" || requiredFields.search(fieldCode) != -1; +}; + +/** + * load the regexp for zip validation from the database + * + * @param {String} countryCode + * + * @return {String} the regexp + */ +AddressValidationUtils._getZipValidationRegEx = function(countryCode) +{ + if (!countryCode) + return ""; + var cond = new SqlCondition(); + cond.andPrepare("AB_COUNTRYINFO.ISO2", countryCode ); + var stmt = cond.buildSql("select AB_COUNTRYINFO.ZIP_REGEX from AB_COUNTRYINFO"); + return db.cell(stmt); +}; + +/** + * check if the zip code is valid + * + * @param {String} countryCode + * @param {String} zipCode + * + * return {Boolean} + */ +AddressValidationUtils.isValidZip = function(countryCode, zipCode) +{ + if (zipCode == "") + return true;//if ZIP is a required field has to be checked in a separate mandatory-field-check -> do not check this here + var regExpVal = this._getZipValidationRegEx(countryCode); + if (regExpVal == "") + return true; + //only an exact match is a correct one -> specify being and end anchors + regExpVal = "^" + regExpVal + "$"; + var regExp = new RegExp(regExpVal); + return regExp.test(zipCode); }; \ No newline at end of file diff --git a/process/Salesproject_lib/process.js b/process/Salesproject_lib/process.js index 81113ff02589099b48858235638a1fade03acb29..2a49ec8798cd0180c3f264d7f6e8a7159c49e5c5 100644 --- a/process/Salesproject_lib/process.js +++ b/process/Salesproject_lib/process.js @@ -1,108 +1,108 @@ -import("Sql_lib"); -import("system.neon"); -import("system.vars"); -import("system.util"); -import("system.translate"); -import("system.db"); -import("system.eMath"); -import("system.question"); -import("Util_lib"); -import("Keyword_lib"); -import("system.neonTools"); -/** - * Methods used by the Salesproject. - * Do not create an instance of this! - * - * @class - */ -function Salesproject() {} - -/** - * Delivers the next valid project number (has to be unique) - * - * @result {String} next valid project number - */ -Salesproject.getNextProjectNumber = function() { - return NumberSequencingUtils.getNextUniqueNumber("PROJECTCODE", "SALESPROJECT"); -} - -/** - * Checks if the passed project number is valid (has to be unique) - * - * @param {String} projectNumber project number to check - * - * @result {Boolean} passed number is valid - */ -Salesproject.validateProjectNumber = function(projectNumber) { - return NumberSequencingUtils.validateUniqueNumber(projectNumber, "PROJECTCODE", "SALESPROJECT"); -} - -/** - * Insert a new milestone. - * - * @param {String} salesprojectId of the salesproject - * @param {Integer} type can be any value of the keyword SALESPROJECT.MILESTONE.TYPE - * @param {Integer} value value of the phase or state - * @param {Boolean} [notifyForecast=false] if true, notify user to update the forecast - * - * @result {Boolean} true if inserted, else false - */ -Salesproject.insertMilestone = function(salesprojectId, type, value, notifyForecast) { - if (KeywordUtils.exists(value, type)) { - db.updateData( - "SALESPROJECT_MILESTONE", - ["DATE_END"], - null, - [vars.get("$sys.date")], - SqlCondition.begin() - .andPrepare("SALESPROJECT_MILESTONE.SALESPROJECT_ID", salesprojectId) - .andPrepare("SALESPROJECT_MILESTONE.TYPE", type) - .and("SALESPROJECT_MILESTONE.DATE_END is null") - .build("1=2")); - - db.insertData( - "SALESPROJECT_MILESTONE", - ["SALESPROJECT_MILESTONEID", "SALESPROJECT_ID", "TYPE", "VALUE", "DATE_START"], - null, - [util.getNewUUID(), salesprojectId, type, value, vars.get("$sys.date")]); - if (notifyForecast) { - Salesproject.notifyToUpdateForecast() - } - return true; - } - return false; -} - -/** - * Notify the user to update the forecast - */ -Salesproject.notifyToUpdateForecast = function() { - if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW) - question.showMessage(translate.text("Please update the ${FORECAST_ENGLISH}."), question.INFORMATION, translate.text("${FORECAST_ENGLISH}")); -} - -/** - * get the title of a salesproject by id - * @param {String} pSalesProjectId - * <br> - * @return {String} title of the salesproject - */ -Salesproject.getSalesProjectTitleById = function(pSalesProjectId) -{ - return db.cell( SqlCondition.begin() - .andPrepare("SALESPROJECT.SALESPROJECTID", pSalesProjectId) - .buildSql("select PROJECTTITLE from SALESPROJECT", "1=0")); -} - -/** - * Create a new Salesproject and open the Salesproject context in NEW-mode - */ -Salesproject.createNewSalesproject= function(pRelationId) -{ - var params = {}; - - if (pRelationId) - params["ContactId_param"] = pRelationId; - - neon.openContext("Salesproject", null, null, neon.OPERATINGSTATE_NEW, params); +import("Sql_lib"); +import("system.neon"); +import("system.vars"); +import("system.util"); +import("system.translate"); +import("system.db"); +import("system.eMath"); +import("system.question"); +import("Util_lib"); +import("Keyword_lib"); +import("system.neonTools"); +/** + * Methods used by the Salesproject. + * Do not create an instance of this! + * + * @class + */ +function Salesproject() {} + +/** + * Delivers the next valid project number (has to be unique) + * + * @result {String} next valid project number + */ +Salesproject.getNextProjectNumber = function() { + return NumberSequencingUtils.getNextUniqueNumber("PROJECTCODE", "SALESPROJECT"); +} + +/** + * Checks if the passed project number is valid (has to be unique) + * + * @param {String} projectNumber project number to check + * + * @result {Boolean} passed number is valid + */ +Salesproject.validateProjectNumber = function(projectNumber) { + return NumberSequencingUtils.validateUniqueNumber(projectNumber, "PROJECTCODE", "SALESPROJECT"); +} + +/** + * Insert a new milestone. + * + * @param {String} salesprojectId of the salesproject + * @param {Integer} type can be any value of the keyword SALESPROJECT.MILESTONE.TYPE + * @param {Integer} value value of the phase or state + * @param {Boolean} [notifyForecast=false] if true, notify user to update the forecast + * + * @result {Boolean} true if inserted, else false + */ +Salesproject.insertMilestone = function(salesprojectId, type, value, notifyForecast) { + if (KeywordUtils.exists(value, type)) { + db.updateData( + "SALESPROJECT_MILESTONE", + ["DATE_END"], + null, + [vars.get("$sys.date")], + SqlCondition.begin() + .andPrepare("SALESPROJECT_MILESTONE.SALESPROJECT_ID", salesprojectId) + .andPrepare("SALESPROJECT_MILESTONE.TYPE", type) + .and("SALESPROJECT_MILESTONE.DATE_END is null") + .build("1=2")); + + db.insertData( + "SALESPROJECT_MILESTONE", + ["SALESPROJECT_MILESTONEID", "SALESPROJECT_ID", "TYPE", "VALUE", "DATE_START"], + null, + [util.getNewUUID(), salesprojectId, type, value, vars.get("$sys.date")]); + if (notifyForecast) { + Salesproject.notifyToUpdateForecast() + } + return true; + } + return false; +} + +/** + * Notify the user to update the forecast + */ +Salesproject.notifyToUpdateForecast = function() { + if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW) + question.showMessage(translate.text("Please update the ${FORECAST_ENGLISH}."), question.INFORMATION, translate.text("${FORECAST_ENGLISH}")); +} + +/** + * get the title of a salesproject by id + * @param {String} pSalesProjectId + * <br> + * @return {String} title of the salesproject + */ +Salesproject.getSalesProjectTitleById = function(pSalesProjectId) +{ + return db.cell( SqlCondition.begin() + .andPrepare("SALESPROJECT.SALESPROJECTID", pSalesProjectId) + .buildSql("select PROJECTTITLE from SALESPROJECT", "1=0")); +} + +/** + * Create a new Salesproject and open the Salesproject context in NEW-mode + */ +Salesproject.createNewSalesproject= function(pRelationId) +{ + var params = {}; + + if (pRelationId) + params["ContactId_param"] = pRelationId; + + neon.openContext("Salesproject", null, null, neon.OPERATINGSTATE_NEW, params); } \ No newline at end of file diff --git a/process/Sql_lib/process.js b/process/Sql_lib/process.js index 161f32c580fca1ec9b6741557140f4bf14cc7c2b..648795e7dc3a49c24247445b7868fb6bfcb8d866 100644 --- a/process/Sql_lib/process.js +++ b/process/Sql_lib/process.js @@ -1,1424 +1,1424 @@ -import("system.logging"); -import("system.translate"); -import("system.vars"); -import("system.util"); -import("system.db"); -import("system.datetime"); -import("system.tools"); -import("system.SQLTYPES"); -import("system.text"); -import("Util_lib"); - -/** - * object for easier handling of conditions; - * With this object you do not have to check if the string is empty or not; - * you don't need to append a "1=1" condition or similar; - * this objects gains most benefit if you have a lot of conditions that are added (or not) depending on tons of JDito-conditions - * - * You can also use SqlCondition.begin(alias) for simpler object creation without new and without the need for an extra variable to save the object. - * - * @class - * @param {String} [alias=the current alias] the database alias where the condition shall be executed later (important for column types of preparedStatements) - * @example - * see others/guide/HowToSqlConditionLib.adoc - */ -function SqlCondition(alias) { - // setting null is only needed to provide autocomplete for the ADITO-designer - this.preparedValues = null; - this._init(); // the properties are initalized in an extra function because init is nearly the same as resetting (clearing) the SqlConditions - this.alias = alias; - - // save, if the last condition was an OR. For better bracket-placement - this._lastWasOr = false; -} - -/** - * Alternative possibility to crate a new condition. - * With this you don't need new SqlCondition and you can use the object directly after it's creation - * --> cleaner code - * - * It is very usefull for the orSqlCondition() and andSqlCondition() because now you can create a new condition inline. - * You can also use it for simple selects without the need to save the conditionObject in an extra variable. - * See Examples! - * - * @param {String} [alias=the current alias] the database alias where the condition shall be executed later (important for column types of preparedStatements) - * @return {SqlCondition} the new SqlCondition-object - * - * @example - * vars mySelect = SqlCondition.begin(alias) - * .and("MYID = '123'") - * .and(SqlCondition.begin() - * .or("NAME = 'Max'") - * .or("NAME = 'Bob'") - * ) - * .buildSql("select * from MYTABLE"); - * - * // Or use it for simple selects: - * var sum = db.cell(SqlCondition.begin() - * .andPrepared("STOCK.PRODUCT_ID", pid) - * .buildSql("select sum(QUANTITY * IN_OUT) from STOCK")); - */ -SqlCondition.begin = function(alias) { - return new SqlCondition(alias); -} - -/** - * checks if conditions have been added to the object - * @return {Boolean} true if conditions have been added, false when not - */ -SqlCondition.prototype.isSet = function() { - if (this._sqlStorage) - return true; - return false; -} - - -/** - * append with SQL-and; no paranthesize of existing conditions is done - * @param {String} cond the condition string which shall be appended - * @return {SqlCondition} current SqlCondition-object - */ -SqlCondition.prototype.and = function(cond) { - if (!cond) - return this; - if (this.isSet()) - this._sqlStorage += " and "; - this._sqlStorage += cond; - return this; -} - -/** - * append with SQL-or; Also paranthesize the existing conditions - * @param {String} cond the condition string which shall be appended - * @return {SqlCondition} current SqlCondition-object - */ -SqlCondition.prototype.or = function(cond) { - if (!cond) - return this; - - if (this.isSet() && !this._lastWasOr) { - this._sqlStorage = "(" + this._sqlStorage + ") or (" + cond + ")"; - this._lastWasOr = true; - - } else if (this.isSet() && this._lastWasOr) { - this._sqlStorage = this._sqlStorage + " or (" + cond + ")"; - this._lastWasOr = true; - - } else { - this._sqlStorage = cond; - } - return this; -} - -/** - * append a prepared-array to this sql condition with SQL-and - * @param {Array} preparedObj a prepared condition-array - * @return {SqlCondition} current SqlCondition-object - */ -SqlCondition.prototype.andAttachPrepared = function(preparedObj) { - this.preparedValues = this.preparedValues.concat(preparedObj[1]); - return this.and(preparedObj[0]); -} - -/** - * append a prepared-array to this sql condition with SQL-or - * @param {Array} preparedObj a prepared condition-array - * @return {SqlCondition} current SqlCondition-object - */ -SqlCondition.prototype.orAttachPrepared = function(preparedObj) { - this.preparedValues.push(preparedObj[1]); - return this.or(preparedObj[0]); -} - -/** - * append another condition with SQL-and - * - * @param {SqlCondition} cond the condition which shall be appended - * @param {String} [alternativeCond=""] condition if the given SqlCondition has none - * @return {SqlCondition} current SqlCondition-object - */ -SqlCondition.prototype.andSqlCondition = function(cond, alternativeCond) { - var otherCondition = cond.toString(alternativeCond); - if (otherCondition.trim() != "") - { - this.and(" ( " + cond.toString(alternativeCond) + " ) "); - if (cond.preparedValues) { - this.preparedValues = this.preparedValues.concat(cond.preparedValues); - } - } - return this; -} - -/** - * append another condition with SQL-or; Also paranthesize the existing conditions - * - * @param {SqlCondition} cond the condition which shall be appended - * @param {String} [alternativeCond=""] condition if the given SqlCondition has none - * @return {SqlCondition} current SqlCondition-object - */ -SqlCondition.prototype.orSqlCondition = function(cond, alternativeCond) { - var otherCondition = cond.toString(alternativeCond); - if (otherCondition.trim() != "") - { - this.or(" ( " + cond.toString(alternativeCond) + " ) "); - if (cond.preparedValues) { - this.preparedValues = this.preparedValues.concat(cond.preparedValues); - } - } - return this; -} - -/** - * same as the "and"-function but with preparedStatement functionality - * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"] - * @param {String} value the value that shall be set into the prepared statement - * @param {String} [cond="# = ?"] the strucutre of the SQL condition as preparedString, you can use a number sign "#" as placeholder for you fieldname; - * e.g. "# > ?"; escaping the number sign is possible with a backslash "\" - * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically; - * The loaded type is cached if no type is given. So it is also safe to use this in a loop. - * e.g. - * for (...) { - * cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?") - * } - * @return {SqlCondition} current SqlCondition-object - */ -SqlCondition.prototype.andPrepare = function(field, value, cond, fieldType) { - cond = this._prepare(field, value, cond, fieldType); - return this.and(cond); -} - -/** - * same as the "or"-function but with preparedStatement functionality - * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"] - * @param {String} value the value that shall be set into the prepared statement - * @param {String} [cond="# = ?"] the strucutre of the SQL condition as preparedString, you can use a number sign "#" as placeholder for you fieldname; - * e.g. "# > ?"; escaping the number sign is possible with a backslash "\" - * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically; - * The loaded type is cached if no type is given. So it is also safe to use this in a loop. - * e.g. - * for (...) { - * cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?") - * } - * @return {SqlCondition} current SqlCondition-object - */ -SqlCondition.prototype.orPrepare = function(field, value, cond, fieldType) { - cond = this._prepare(field, value, cond, fieldType); - return this.or(cond); -} - -/** - * same as the "andPrepare"-function but only applied if the passed "value" is truely - * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"] - * @param {String} value the value that shall be set into the prepared statement - * @param {String} [cond="# = ?"] the strucutre of the SQL condition as preparedString, you can use a number sign "#" as placeholder for you fieldname; - * e.g. "# > ?"; escaping the number sign is possible with a backslash "\" - * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically; - * The loaded type is cached if no type is given. So it is also safe to use this in a loop. - * e.g. - * for (...) { - * cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?") - * } - * @return {SqlCondition} current SqlCondition-object - */ -SqlCondition.prototype.andPrepareIfSet = function(field, value, cond, fieldType) { - if (value) - return this.andPrepare(field, value, cond, fieldType); - return this; -} - -/** - * same as the "orPrepare"-function but only applied if the passed "value" is truely - * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"] - * @param {String} value the value that shall be set into the prepared statement - * @param {String} [cond="# = ?"] the strucutre of the SQL condition as preparedString, you can use a number sign "#" as placeholder for you fieldname; - * e.g. "# > ?"; escaping the number sign is possible with a backslash "\" - * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically; - * The loaded type is cached if no type is given. So it is also safe to use this in a loop. - * e.g. - * for (...) { - * cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?") - * } - * @return {SqlCondition} current SqlCondition-object - */ -SqlCondition.prototype.orPrepareIfSet = function(field, value, cond, fieldType) { - if (value) - return this.orPrepare(field, value, cond, fieldType); - return this; -} - -/** - * same as the "andPrepare"-function but with validation of adito-variables functionality - * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"] - * @param {String} variable the adito-variable that shall be set into the prepared statement - * @param {String} [cond = "# = ?" ] the strucutre of the SQL condition as preparedString, you can use a number sign "#" as placeholder for you fieldname; - * e.g. "# > ?"; escaping the number sign is possible with a backslash "\" - * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically; - * The loaded type is cached if no type is given. So it is also safe to use this in a loop. - * e.g. - * for (...) { - * cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?") - * } - * @return {SqlCondition} current SqlCondition-object - */ -SqlCondition.prototype.andPrepareVars = function(field, variable, cond, fieldType) { - variable = this._checkVars(variable) - if (variable) { - return this.andPrepare(field, variable, cond, fieldType); - } - return this; -} - -/** - * same as the "orPrepare"-function but with validation of adito-variables functionality - * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"] - * @param {String} variable the adito-variable that shall be set into the prepared statement - * @param {String} [cond="# = ?"] the strucutre of the SQL condition as preparedString, you can use a number sign "#" as placeholder for you fieldname; - * e.g. "# > ?"; escaping the number sign is possible with a backslash "\" - * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically; - * The loaded type is cached if no type is given. So it is also safe to use this in a loop. - * e.g. - * for (...) { - * cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?") - * } - * @return {SqlCondition} current SqlCondition-object - */ -SqlCondition.prototype.orPrepareVars = function(field, variable, cond, fieldType) { - variable = this._checkVars(variable) - if (variable) { - return this.orPrepare(field, variable, cond, fieldType); - } - return this; -} - -/** - * ready to use string; does not contain a where keyword at the beginning - * @param {String} [alternativeCond=""] condition that is returned when nothing has been appended. - * @return {String} concatenated SQL-condition; empty string if nothing has been appended or - if passed - the alternativeCond - */ -SqlCondition.prototype.toString = function(alternativeCond) { - if (!this.isSet() && alternativeCond) - return alternativeCond - else - return this._sqlStorage; -} - -/** - * ready to use string; does contain a where keyword at the beginning - * @param {String} [alternativeCond=""] condition that is returned when nothing has been appended. - * @return {SqlCondition} concatenated SQL-condition; empty string if nothing has been appended or - if passed - the alternativeCond - */ -SqlCondition.prototype.toWhereString = function(alternativeCond) { - var cond = this.toString(alternativeCond); - if (cond) - return " where " + cond; - else - return cond; -} - -/** - * ready to use prepared condition; does not contain a where keyword at the beginning - * @param {String} [alternativeCond=""] Condition that is returned when nothing has been appended. - * @return {Array[][][]} Prepared condition with [condition, [[field1, type1], [field2, type2]]] - */ -SqlCondition.prototype.build = function(alternativeCond) { - return [this.toString(alternativeCond), this.preparedValues]; -} - -/** - * ready to use prepared select - * @param {String} pBeforeCondition Part of the sql before the condition without where (e.g. "select FIRSTNAME from PERSON") - * @param {String} [pAlternativeCond=""] Condition that is returned when nothing has been appended. - * @param {String} [pAfterCondition=""] Part of the sql after the condition (e.g. "order by FIRSTNAME"). - * @param {Boolean} [pWithWere=true] true if where should be added to the bginning - * @return {Array[][][]} Prepared condition with [condition, [[field1, type1], [field2, type2]]] - */ -SqlCondition.prototype.buildSql = function(pBeforeCondition, pAlternativeCond, pAfterCondition, pWithWere) { - if (pAfterCondition == undefined) - pAfterCondition = ""; - - if (pWithWere == undefined) - pWithWere = true; - - return [pBeforeCondition + " " + - (pWithWere ? this.toWhereString(pAlternativeCond) : this.toString(pAlternativeCond)) + - " " + pAfterCondition, this.preparedValues]; -} - -/** - * Check if (adito-)variable exists and vars.getString is not empty - * @param {String} variable the variable name (e.g. "$field.CONTACT_ID") - * @return {String | Boolean} The value of the field as string OR false if it doesn't exist. - * - * @ignore - */ -SqlCondition.prototype._checkVars = function(variable) { - if (vars.exists(variable)) { - var value = vars.getString(variable); - if (value) { - return value; - } - } - return false; -} - -/** - * hidden function for composing preparedStatements - * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"] - * @param {String} value the value that shall be set into the prepared statement - * @param {String} cond the strucutre of the SQL condition as preparedString, you can use a number sign "#" as placeholder for you fieldname; - * e.g. "# > ?"; escaping the number sign is possible with a backslash "\" - * Default is "# = ?" - * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically; - * The loaded type is cached if no type is given. So it is also safe to use this in a loop. - * e.g. - * for (...) { - * cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?") - * } - * @return {String} the replaced SQL-condition string (replace # by the fieldname) - * @ignore - */ -SqlCondition.prototype._prepare = function(field, value, cond, fieldType) { - if (value == undefined) - { - throw new Error(translate.withArguments("${SQL_LIB_UNDEFINED_VALUE} field: %0", [field])); - } - - if (cond == undefined) { - cond = "# = ?" - } - - var alias; - - if (typeof field === 'string') - { - alias = field; - } - else - { - alias = field[2] + "." + field[1]; - field = field[0] + "." + field[1]; - } - - var type; - - if (fieldType == undefined) - fieldType = SqlUtils.getSingleColumnType(field, undefined, this.alias); - - //this function looks more complex (and slower) than it actually is - /* the following regex looks like this after javascript-escaping of the backslash: (?<!\\)((?:\\\\)*)# - the regexp searches for the unescaped character and these characters are replaced by the field name - - examples: - --------------------- - | # --match | - | \# --no-match | - | \\# --match | - | \\\# --no-match | - | \\\\# --match | - --------------------- - */ - //use replaceAll because it's faster and supports negative lookbehinds - cond = text.replaceAll(cond, { - //manually readd the replaced backslashes by using a group reference, because they a part of the match and therefore replaced by "replaceAll" - //since the field COULD contain already a group reference (I think this is extremely uncommon; - //probably that never happens but better stay save): escape that references within the fieldname - "(?<!\\\\)((?:\\\\\\\\)*)#": "$1" + text.replaceAll(alias, { - "$1": "\\$1" - }), - //now that we've replaced the correct field placeholder let's replace the escaped number sign "\#" to a normal number sign "#" - "\\\\#": "#" - }); - - - - type = fieldType - this.preparedValues.push([value.toString(), type]); - return cond; -} - - -/** - * function that resets the current SqlCondition as if no conditions would have been added - * this is usefull if you want to reuse the same object over and over - * @return {null} - */ -SqlCondition.prototype.clear = function() { - this._sqlStorage = ""; - this.preparedValues = []; - return this; -} - -/** - * hidden function for initializing all properties for the sql conditions - * @return {null} - * - * @ignore - */ -SqlCondition.prototype._init = function() { - //init only wraps the clear function to avoid confusion in the constructor (and provide better extensibility) - return this.clear(); -} - -// some static functions for often used tasks. They are only provided for very simple tasks. - -/** - * pField = pValue - * @param {String} pField the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" - * @param {String} pValue the value that shall be set into the prepared statement - * @param {String} [pAlternativeCond=""] Condition that is returned when nothing has been appended. - * @param {String} [pAlias=the current alias] the database alias where the condition shall be executed later (important for column types of preparedStatements) - * - * @return {Array[][][]} Prepared condition with [condition, [[field, type]]] - */ -SqlCondition.equals = function(pField, pValue, pAlternativeCond, pAlias) { - return SqlCondition.begin(pAlias).andPrepare(pField, pValue).build(pAlternativeCond); -} - -/** - * pField <> pValue - * @param {String} pField the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" - * @param {String} pValue the value that shall be set into the prepared statement - * @param {String} [pAlternativeCond=""] Condition that is returned when nothing has been appended. - * @param {String} [pAlias=the current alias] the database alias where the condition shall be executed later (important for column types of preparedStatements) - * - * @return {Array[][][]} Prepared condition with [condition, [[field, type]]] - */ -SqlCondition.equalsNot = function(pField, pValue, pAlternativeCond, pAlias) { - return SqlCondition.begin(pAlias).andPrepare(pField, pValue, "# <> ?").build(pAlternativeCond); -} - -/** - *provides functions for masking sql functions - * - * @param {String} [alias=currentAlias] database alias, you can specify null if you have no alias available and you can manually set the dbType property - * - * @class - */ -function SqlMaskingUtils(alias) { - this.alias = null; - Object.defineProperty(this, "alias", { - set: function(v){ - this._alias = v; - if (v != null) - this._dbType = db.getDatabaseType(this._alias); - }, - get: function (){ - return this._alias; - } - }); - this.dbType = null; - //provide the possibility to just set dbType (e.g. for testing) with no association to an alias - Object.defineProperty(this, "dbType", { - set: function(v){ - this._alias = null; - this._dbType = v; - }, - get: function (){ - return this._dbType; - } - }); - - if (alias === undefined) - this.alias = vars.getString("$sys.dbalias"); - else - this.alias = alias; -} - -/** - * returns the concat symbol depending on database type - * @return {String} Concat Symbol - */ -SqlMaskingUtils.prototype.getConcatSymbol = function() { - var concatSymbol; - switch(Number(this.dbType)) { - case db.DBTYPE_SQLSERVER2000: - concatSymbol = " + "; - break; - case db.DBTYPE_MARIADB10: - case db.DBTYPE_MYSQL4: - case db.DBTYPE_ORACLE10_CLUSTER: - case db.DBTYPE_ORACLE10_THIN: - case db.DBTYPE_ORACLE10_OCI: - case db.DBTYPE_POSTGRESQL8: - case db.DBTYPE_DERBY10: - default: - concatSymbol = " || "; - break; - } - return concatSymbol; -} - -/** -* returns the trim function depending on the database behin the given alias -* note that this function does not verifiy where the types of your expression are trimable or not -* -* @param {String} field expression that shall be trimmed -* -* @return {String} -*/ -SqlMaskingUtils.prototype.trim = function(field) { - var dbType, resultStr; - dbType = this.dbType; - switch(dbType) { - case db.DBTYPE_SQLSERVER2000: - resultStr = "ltrim(rtrim(" + field + "))"; - break; - default: - resultStr = "trim(" + field + ")" - break; - } - return resultStr; -} - -/** -* returns the max-value sql expressions depending on the database behind the given alias -* note that this function does not verifiy if the field (and type) usage is valid at all -* -* @param {String} field expression -* -* @return {String} sql-part that can be used in a select -*/ -SqlMaskingUtils.prototype.max = function(field) -{ - return "max(" + field + ")"; -} - -/** -* returns the min-value sql expressions depending on the database behind the given alias -* note that this function does not verifiy if the field (and type) usage is valid at all -* -* @param {String} field expression -* -* @return {String} sql-part that can be used in a select -*/ -SqlMaskingUtils.prototype.min = function(field) -{ - return "min(" + field + ")"; -} - -/** - * masks the function cast of standard sql - * please note that this function does not do any validation if it's possible to cast the expression's datatype you pass to the function in every supported DBMS - * - * Problems: - * Derby has problems with casting to CHAR({> 254}) https://db.apache.org/derby/docs/10.14/ref/rrefsqlj13733.html - * - * @param {String} field name of the database field that shall be castet - * @param {String} [targetDatatype] a SQLTYPES-value of the following: SQLTYPES.CHAR, SQLTYPES.VARCHAR, SQLTYPES.INTEGER, - * SQLTYPES.DECIMAL, SQLTYPES.DATE - * @param {int|int[]} targetLength specifies the length of the target data type; - * <br/>- char/varchar: length - * <br/>- decimal: [length, decimals] - * - * @return {String} sql part to be included in sql-statements - */ -SqlMaskingUtils.prototype.cast = function (field, targetDatatype, targetLength) { - /* Some informations if you want to add supported databaseTypes or dataTypes: - * You should consider using the _mapDefaults function-expression (details in the functions doc) - * However you shouldn't use the function in a "default"-Block of a switch-case because of the following behaviour: - * If a datatype is not supported you just have to NOT specify "sqlDataType" (leave it "undefined") -> an error is then raised - * Therefore you should explicitly define which Data-type is supported and which is not - */ - var dbType, functionName, sqlPart, sqlDataType, _mapDefaults; - dbType = this.dbType; - functionName = "cast";//overwrite this in the "switch (dbType)" if needed with your DBMS - - /** - * handles default-scenarios for mapping input-targetDatatype to a string for a sql-statement - * e.g. SQLTYPES.INTEGER --> int - * @param {Number} dataType input as a value of "SQLTYPES." that will be mapped to a string - * @return {String} the mapped dataType for using in a sql-statement - */ - _mapDefaults = function (dataType) { - var res; - switch(dataType) { - case SQLTYPES.CHAR: - res = "char"; - break; - case SQLTYPES.VARCHAR: - res = "char"; - break; - case SQLTYPES.INTEGER: - res = "int"; - break; - case SQLTYPES.DECIMAL: - res = "decimal"; - break; - case SQLTYPES.DATE: - res = "date"; - break; - } - return res; - } - - switch (dbType) { - case db.DBTYPE_DERBY10: - switch(targetDatatype) { - case SQLTYPES.VARCHAR: - // Because of a Derby bug, you can't cast INTEGER into VARCHAR - // Therefor first cast to char then to varchar - // https://issues.apache.org/jira/browse/DERBY-2072 - field = "rtrim(" + this.cast(field, SQLTYPES.CHAR, targetLength) + ")"; - sqlDataType = "varchar"; - break; - case SQLTYPES.CHAR: - sqlDataType = "char"; - break; - case SQLTYPES.DECIMAL: - case SQLTYPES.INTEGER: - case SQLTYPES.DATE: - sqlDataType = _mapDefaults(targetDatatype); - break; - } - break; - case db.DBTYPE_MARIADB10: - case db.DBTYPE_MYSQL4: - switch(targetDatatype) { - case SQLTYPES.VARCHAR: - case SQLTYPES.CHAR: - case SQLTYPES.INTEGER: - case SQLTYPES.DECIMAL: - case SQLTYPES.DATE: - sqlDataType = _mapDefaults(targetDatatype); - break; - } - break; - case db.DBTYPE_ORACLE10_CLUSTER: - case db.DBTYPE_ORACLE10_THIN: - case db.DBTYPE_ORACLE10_OCI: - switch(targetDatatype) - { - case SQLTYPES.VARCHAR: - datatype = "varchar2"; - break; - case SQLTYPES.INTEGER: - datatype = "number"; - targetLength = "10" - break; - case SQLTYPES.CHAR: - case SQLTYPES.DECIMAL: - case SQLTYPES.DATE: - sqlDataType = _mapDefaults(targetDatatype); - break; - } - break; - case db.DBTYPE_POSTGRESQL8: - switch(targetDatatype) - { - case SQLTYPES.DATE: - case SQLTYPES.DECIMAL: - case SQLTYPES.INTEGER: - case SQLTYPES.CHAR: - case SQLTYPES.VARCHAR: - sqlDataType = _mapDefaults(targetDatatype); - break; - } - break; - case db.DBTYPE_SQLSERVER2000: - case SQLTYPES.DATE: - case SQLTYPES.DECIMAL: - case SQLTYPES.INTEGER: - case SQLTYPES.CHAR: - case SQLTYPES.VARCHAR: - sqlDataType = _mapDefaults(targetDatatype); - break; - case db.DBTYPE_FIREBIRD250: - //TODO: firebird support? - break; - } - - if (sqlDataType == undefined) { - throw new Error(translate.withArguments("${SQL_LIB_UNSUPPORTED_DBTYPE} function: %0", ["SqlMaskingUtils.prototype.cast._mapDefaults"])); - } - - if(targetLength == undefined) - targetLength = ""; - else if(targetLength != "") - { - if(typeof(targetLength == "object") && (targetLength instanceof Array)) - targetLength = "(" + targetLength.join(", ") + ")"; - else - targetLength = "(" + targetLength + ")"; - } - - sqlPart = functionName + "(" + field + " as " + sqlDataType + targetLength + ")"; - return sqlPart; -} - -/** - * masks the cast function for lob datatypes(clob, blob) into varchar or similar - * - * @param {String} field expression that shall be casted - * @param {Integer|Interger[]} targetLength dessired length of the datatype - * decimal: [length, decimals] - * - * @return {String} part of sql-expression that can be used - */ -SqlMaskingUtils.prototype.castLob = function(field, targetLength) { - var res; - switch(this.dbType) { - case db.DBTYPE_ORACLE10_CLUSTER: - case db.DBTYPE_ORACLE10_THIN: - case db.DBTYPE_ORACLE10_OCI: - res = "DBMS_LOB.SUBSTR(" + field + ", " + targetLength + ", 1)"; - break; - default: - res = this.cast(field, SQLTYPES.VARCHAR, targetLength); - break; - } - return res; -} - -/** - * returns the function which determines the length of binary data - * - * @param {String} fieldName name of the checked field - * - * @return {String} - */ -SqlMaskingUtils.prototype.binDataLength = function(fieldName) { - var res; - - switch(this.dbType) { - case db.DBTYPE_MARIADB10: - case db.DBTYPE_MYSQL4: - case db.DBTYPE_ORACLE10_CLUSTER: - case db.DBTYPE_ORACLE10_THIN: - case db.DBTYPE_ORACLE10_OCI: - case db.DBTYPE_POSTGRESQL8: - case db.DBTYPE_DERBY10: - res = "LENGTH(" + fieldName + ")"; - break; - case db.DBTYPE_SQLSERVER2000: - res = "DATALENGTH(" + fieldName + ")"; - break; - } - return res; -} - -/** - * masks the sql function substring - * - * @param {String } field the expression that shall be substringed - * @param {Number} start posistion where the substring starts - * @param {Number} length amount of characters of the expression will be returned by the sql function - * - * @return {String} part of sql-expression that can be used for substringing - */ -SqlMaskingUtils.prototype.substring = function(field, start, length) { - var sqlFnName; - - switch(this.dbType) - { - case db.DBTYPE_ORACLE10_CLUSTER: - case db.DBTYPE_ORACLE10_THIN: - case db.DBTYPE_ORACLE10_OCI: - sqlFnName = "substr"; - break; - case db.DBTYPE_DERBY10: - sqlFnName = "substr"; - break; - case db.DBTYPE_POSTGRESQL8: - sqlFnName = "substr"; - break; - case db.DBTYPE_SQLSERVER2000: - sqlFnName = "substring"; - break; - case db.DBTYPE_MYSQL4: - case db.DBTYPE_MARIADB10: - sqlFnName = "substring"; - break; - default: - throw new Error(translate.withArguments("${SQL_LIB_UNSUPPORTED_DBTYPE} function: %0", ["SqlMaskingUtils.prototype.substring"])); - } - - return sqlFnName + "(" + field + ", " + start + ", " + length + ")"; -} - - -/** -* masks the function concat -* if a sql field is empty no separator will be added -* note that this function will often create a lot of sql-code -* -* @param {Array} fields req fields (or expressions) that should be concatenated -* @param {String} [separatorCharacter=space-character] character for separating the fields; warning: the character will not be quoted -* @param {String} [autoTrimFields=true] autoTrimFields if true the expressions are always trimmed, false no change will be applied -* -* @return {String} part of SQL-querey -*/ -SqlMaskingUtils.prototype.concat = function(fields, separatorCharacter, autoTrimFields) { - var i, concatSql, retSql, isNotEmptyStrSql, isNotNullSql, separatorSql, _isNotEmpty, _trimIfAutoTrimEnabled; - if (fields.length == 0) - return "''"; - else if (fields.length == 1) - return fields[0]; - concatSql = this.getConcatSymbol(); - isNotEmptyStrSql = " != '' "; - isNotNullSql = " is not null "; - separatorSql = separatorCharacter == undefined ? " " : separatorCharacter; - retSql = ""; - if (autoTrimFields == undefined) - autoTrimFields = true; - - switch(this.dbType) - { - case db.DBTYPE_MYSQL4: - case db.DBTYPE_MARIADB10: - retSql = " concat_ws( '" + separatorSql + "'"; - for (i = 0; i < fields.length; i++) { - retSql += ", " + fields[i]; - } - return retSql + ") "; - break; - case db.DBTYPE_ORACLE10_CLUSTER: - case db.DBTYPE_ORACLE10_THIN: - case db.DBTYPE_ORACLE10_OCI: - isNotEmptyStrSql = null; //empty strings are changed to DB-null-values internally in oracle; by specifing JS-null we disable this check - break; - case db.DBTYPE_SQLSERVER2000: - //MS SQL Server supports "concat_ws" (and ignoring null values) from version SQL Server 2017 and newer: - //https://docs.microsoft.com/de-de/sql/t-sql/functions/concat-ws-transact-sql?view=sql-server-2017 - break; - case db.DBTYPE_DERBY10: - break; - default: - throw new Error(translate.withArguments("${SQL_LIB_UNSUPPORTED_DBTYPE} function: %0", ["SqlMaskingUtils.prototype.concat"])); - } - separatorSql = concatSql + "'" + separatorSql + "'"; - _trimIfAutoTrimEnabled = function(f){ - if (autoTrimFields) - return this.trim(f); - else - return f; - } - _trimIfAutoTrimEnabled = _trimIfAutoTrimEnabled.bind(this); - _isNotEmpty = function(f){ - return _trimIfAutoTrimEnabled(f) + isNotEmptyStrSql + " and " + f + isNotNullSql; - } - _isNotEmpty = _isNotEmpty.bind(this); - - for (i = 0; i < fields.length; i++) { - if (retSql != "") - retSql += concatSql; - retSql += "case when " + _isNotEmpty(fields[i]) + " then "; - if ( i < fields.length - 1 ) //Prüfen, ob ein nachfolgender Wert kommt, sonst braucht man keinen Separator - retSql += " case when " + _isNotEmpty(fields[i + 1]) + " then " + _trimIfAutoTrimEnabled(fields[i]) + separatorSql + " else " + _trimIfAutoTrimEnabled(fields[i]) + " end "; - else - retSql += _trimIfAutoTrimEnabled(fields[i]); - //this blank is used just as in the old concat function which means this concat function has the same (wrong) behaviour - //TODO: find way to fix the case when separator is not a whitepsace (e.g. space) - //this concat-function does not work properly if you concat [<<value>>, <<null>>, <<value>>] by comma - retSql += " else ' ' end "; - } - return retSql; -} - -/** - * returns the function for replacing a null value - * - * @param {String} field expression that shall be checked for a null value - * @param {String} [replaceWith=empty string] expression that shall be used if the field contains null - * - * @return {string} - */ -SqlMaskingUtils.prototype.isNull = function(field, replaceWith) { - var retSql; - - if (replaceWith == undefined) - replaceWith = "''"; - switch(this.dbType) { - case db.DBTYPE_SQLSERVER2000: - retSql = "isnull(" + field + ", " + replaceWith + ")"; - break; - case db.DBTYPE_ORACLE10_CLUSTER: - case db.DBTYPE_ORACLE10_OCI: - case db.DBTYPE_ORACLE10_THIN : - retSql = "nvl(" + field + ", " + replaceWith + ")"; - break; - case db.DBTYPE_POSTGRESQL8: - case db.DBTYPE_DERBY10: - case db.DBTYPE_MYSQL4: - case db.DBTYPE_MARIADB10: - default: - retSql = "coalesce(" + field + ", " + replaceWith + ")"; - break; - } - return retSql; -} - -/** - * gets the day from a timestamp - * - * @param {String} pField timestamp to get the day from - * - * @return {String} sql expression that extracts the day from a timestamp - */ -SqlMaskingUtils.prototype.dayFromDate = function(pField) -{ - var retSql = ""; - - switch (this.dbType) - { - case db.DBTYPE_ORACLE10_CLUSTER: - case db.DBTYPE_ORACLE10_THIN: - case db.DBTYPE_ORACLE10_OCI: - retSql = "to_char(" + pField + ",'dd')"; - break; - case db.DBTYPE_DERBY10: - case db.DBTYPE_SQLSERVER2000: - case db.DBTYPE_MYSQL4: - case db.DBTYPE_MARIADB10: - retSql = "DAY(" + pField + ")"; - break; - case db.DBTYPE_POSTGRESQL8: - retSql = "EXTRACT (DAY from " + pField + ")"; - break; - } - return retSql; -} - -/** - * gets the month from a timestamp - * - * @param {String} pField timestamp to get the month from - * - * @return {String} sql expression that extracts the month from a timestamp - */ -SqlMaskingUtils.prototype.monthFromDate = function(pField) -{ - var retSql = ""; - - switch (this.dbType) - { - case db.DBTYPE_ORACLE10_CLUSTER: - case db.DBTYPE_ORACLE10_THIN: - case db.DBTYPE_ORACLE10_OCI: - retSql = "to_char(" + pField + ",'MM')"; - break; - case db.DBTYPE_DERBY10: - case db.DBTYPE_SQLSERVER2000: - case db.DBTYPE_MYSQL4: - case db.DBTYPE_MARIADB10: - retSql = "MONTH(" + pField + ")"; - break; - case db.DBTYPE_POSTGRESQL8: - retSql = "EXTRACT (MONTH FROM " + pField + ")"; - break; - } - return retSql; -} - -/** - * gets the year from a timestamp - * - * @param {String} pField timestamp to get the year from - * - * @return {String} sql expression that extracts the year from a timestamp - */ -SqlMaskingUtils.prototype.yearFromDate = function(pField) -{ - var retSql = ""; - - switch (this.dbType) - { - case db.DBTYPE_ORACLE10_CLUSTER: - case db.DBTYPE_ORACLE10_THIN: - case db.DBTYPE_ORACLE10_OCI: - retSql = "to_char(" + pField + ",'yyyy')"; - break; - case db.DBTYPE_DERBY10: - case db.DBTYPE_SQLSERVER2000: - case db.DBTYPE_MYSQL4: - case db.DBTYPE_MARIADB10: - retSql = "YEAR(" + pField + ")"; - break; - case db.DBTYPE_POSTGRESQL8: - retSql = "EXTRACT (YEAR FROM " + pField + ")"; - break; - } - return retSql; -} - -/** - * functions for various Sql-actions - * Do not create an instance of this! - * - * @class - * @static - */ -function SqlUtils() {} - -/** -* parses given name of table and name of column to clearly find out the tablename and columnanme -* -* @param {String|Array} pFieldOrTableName you've got several possibilites to pass here: -* <br/> 1. the name of the table if also a pColumnName is specified -* <br/> 2. the name of the table and columname as "tablename.columnname" (e.g. "ORGANISATION.NAME") if no pColumnName is specified -* <br/> 3. an array with 2 elements: [tablename, columnname] (e.g. ["ORGANISATION", "NAME"]) if no pColumnName is specified -* <br/> Everything else will raise an error -* -* @param {String} [pColumnName] depending on pFieldOrTableName this should be undefined/null or the name of a column -* -* @return {Object|TypeError} TypeError if something wrong has been passed or returns a object with these properties: -* 1. "table" which is the tablename -* 2. "column" which is the columnname -* e.g. {table: "ORGANISATION", column: "NAME"} -* -* -*/ -SqlUtils._parseFieldQualifier = function(pFieldOrTableName, pColumnName) -{ - var tableName, columnName; - if (pColumnName != undefined) - { - tableName = pFieldOrTableName; - columnName = pColumnName; - } - else - { - var fnName = "SqlUtils._parseFieldQualifier";//for return errors - var fieldVarType = typeof(pFieldOrTableName); - if (fieldVarType == "string") - { - pFieldOrTableName = text.split(pFieldOrTableName, "\\."); - } - else if (fieldVarType != "object") //check for object since there exists JavaArrays and JavaScript arrays which are both valid - { - return new TypeError(translate.withArguments("[%0]%1 has to be a string or array but it is %2", [fnName, "pFieldOrTableName", - fieldVarType])); - } - - if (pFieldOrTableName.hasOwnProperty("length")) - { - if (pFieldOrTableName.length != 2) - return new TypeError(translate.withArguments("[%0]has now an incorrect length; estimated 2 elements but got %1", [ - fnName, pFieldOrTableName.length ])); - - tableName = pFieldOrTableName[0]; - columnName = pFieldOrTableName[1]; - } - else //check for object happens since there exists JavaArrays and JavaScript arrays which are both valid - return new TypeError(translate.withArguments("[%0]%1 is an object but seems not to be a valid array or array-like", [ - fnName, "pFieldOrTableName"])); - } - - if (typeof(columnName) != "string") - return new TypeError(translate.withArguments("[%0]the columnName is not a string after interpreting", [fnName])); - if (typeof(tableName) != "string") - return new TypeError(translate.withArguments("[%0]the tableName is not a string after interpreting", [fnName])); - - return { - table: tableName, - column: columnName - }; -}; - - -/** -* determines if given values match a full field qualifier (name of table and name of column) -* -* @param {String|Array} pFieldOrTableName you've got several possibilites to pass here: -* <br/> 1. the name of the table if also a pColumnName is specified -* <br/> 2. the name of the table and columname as "tablename.columnname" (e.g. "ORGANISATION.NAME") if no pColumnName is specified -* <br/> 3. an array with 2 elements: [tablename, columnname] (e.g. ["ORGANISATION", "NAME"]) if no pColumnName is specified -* <br/> Everything else will raise an error -* -* @param {String} [pColumnName] depending on pFieldOrTableName this should be undefined/null or the name of a column -* -* @return {Boolean} returns true if it's a full qualifier or false if not -* -*/ -SqlUtils.isFullFieldQualifier = function(pFieldOrTableName, pColumnName) -{ - var parsed = SqlUtils._parseFieldQualifier(pFieldOrTableName, pColumnName); - if (parsed instanceof TypeError) - return false; - return true; -}; - -/** -* determines the type of a single database column in a table; if you want to get several columntypes at once use db.getColumnTypes instead -* -* @param {String|Array} pFieldOrTableName you've got several possibilites to pass here: -* <br/> 1. the name of the table if also a pColumnName is specified -* <br/> 2. the name of the table and columname as "tablename.columnname" (e.g. "ORGANISATION.NAME") if no pColumnName is specified -* <br/> 3. an array with 2 elements: [tablename, columnname] (e.g. ["ORGANISATION", "NAME"]) if no pColumnName is specified -* <br/> Everything else will raise an error -* -* @param {String} [pColumnName] depending on pFieldOrTableName this should be undefined/null or the name of a column -* @param {String} [pAlias=the current alias] Database-Aliasname, where the SQL-Statement shall be executed; default is the current dbalias -* -* @throws TypeError if a wrong format is passed as table/column-combination -* -* @return {Number} returns the corresponding SQLTYPES-value -* -*/ -SqlUtils.getSingleColumnType = function(pFieldOrTableName, pColumnName, pAlias) { - var fields = SqlUtils._parseFieldQualifier(pFieldOrTableName, pColumnName); - if (fields instanceof TypeError) - throw fields; - - if (pAlias == undefined) - pAlias = db.getCurrentAlias(); - - return db.getColumnTypes(fields.table, [fields.column], pAlias)[0]; -}; - -/** -* calls a given function for N blocks of sql-data as long as records are available or the paging-process is manually canceled -* -* @param {Object|String} sqlStatement the sql statement that shall be executed -* String: SQL-query in a simple text form -* Object: prepared-sql-query: [sqlStr, [[value1, type1], [valueN, typeN]]] -* @param {Number} blockSize Amount of records that shall be read per block. (you need to specify an ORDER BY in your SQL-query) -* "0" <=> all records -* @param {Function} callbackFn a callback-function that is called for every block and has the following params: -* myCallback(myDataBlockAs2Darray, myLoopCountThatStartsWith1) -* If "false" is returned sqlPageData will abort the paging process and return false -* @param {String} [dbAlias=the current alias] Database-Aliasname, where the SQL-Statement shall be executed; default is the current dbalias -* @param {Number} [timeout=configured dbTimeout in Preferences] Timeout in milliseconds; When it's reached the SQL-Statement will abort; default is in PREFERENCES configured -* @param {Number} [startOffset=0] Position where to begin with the data-reading-process; default is 0 -* -* -* @return {bool} returns whether the function read all available data or not: -* false if the callback-function returned false, otherwise true -* -* @example -* var varValues = [];//you've got access to variables declared with 'var' -* let letValues = [];//you've got access to variables declared with 'let' -* var count = 0;//you cannot overwrite a variable of 'sqlPageData' by accident -* -* var sql = "select ORGNAME from ORGANISATION"; -* var blockSize = 5 * 1000; -* -* var allRows = +db.cell("select count(*) from ORGANISATION"); -* -* sqlPageData(sql, blockSize, function (pData, pRunNo){ -* var j = pData.length;//pData is the current block with data -* logMsg(pRunNo.toString() + "#" + j);//pRunNo is the amount how often the func. has been already called -* //you can calculate the progress easily by: progress = (blockSize* (pRunNo-1) + pData.length) / (allRows - startOffset) -* //example in per cent: -* var startOffset = 0;//we did not pass any startOffset to sqlPageData - this is equivalent to zero -* var progress = (blockSize* (pRunNo-1) + pData.length) / (allRows - startOffset); -* logMsg("progess: " + eMath.roundDec(progress * 100, 2, eMath.ROUND_CEILING) + "%"); -* -* for (var i = 0; i < j; i++) -* { -* varValues.push(pData[i][0]); -* letValues.push(pData[i][0]); -* } -* -* count += pRunNo * 100; -* logMsg("count:" + count);//you cannot overwrite a variable of 'sqlPageData' by accident -* }); -* -* logging.show(letValues);//contains orgnames -* logging.show(varValues);//contains orgnames -*/ -SqlUtils.pageTableData = function(sqlStatement, blockSize, callbackFn, dbAlias, timeout, startOffset) { - return SqlUtils._pageData(null, sqlStatement, blockSize, callbackFn, dbAlias, timeout, startOffset); -}; - -/** -* calls a given function for N blocks of sql-data as long as records are available or the paging-process is manually canceled -* -* @param {Object|String} sqlStatement the sql statement that shall be executed -* String: SQL-query in a simple text form -* Object: prepared-sql-query: [sqlStr, [[value1, type1], [valueN, typeN]]] -* @param {Number} blockSize Amount of records that shall be read per block. (you need to specify an ORDER BY in your SQL-query) -* "0" <=> all records -* @param {Function} callbackFn a callback-function that is called for every block and has the following params: -* myCallback(myColumnDataBlockAsArray, myLoopCountThatStartsWith1) -* If "false" is returned sqlPageData will abort the paging process and return false -* @param {String} [dbAlias=the current alias] Database-Aliasname, where the SQL-Statement shall be executed; default is the current dbalias -* @param {Number} [timeout=configured dbTimeout in Preferences] Timeout in milliseconds; When it's reached the SQL-Statement will abort; default is in PREFERENCES configured -* @param {Number} [startOffset=0] Position where to begin with the data-reading-process; default is 0 -* -* -* @return {bool} returns whether the function read all available data or not: -* false if the callback-function returned false, otherwise true -* -* @example -* similar to sqlTablePageData -> take a look at the example there -*/ -SqlUtils.pageColumnData = function(sqlStatement, blockSize, callbackFn, dbAlias, timeout, startOffset) { - return SqlUtils._pageData(db.COLUMN, sqlStatement, blockSize, callbackFn, dbAlias, timeout, startOffset); -}; - -//internal function for paging through data; for description take a look at sqlArrayPageData -SqlUtils._pageData = function(sqlType ,sqlStatement, blockSize, callbackFn, dbAlias, timeout, startOffset) { - if (dbAlias == undefined) - dbAlias = db.getCurrentAlias(); - if (startOffset == undefined) - startOffset = 0; - - var count = 0; - while (startOffset > -1) { - var data; - if (sqlType == null) { - if (timeout == undefined) - data = db.tablePage(sqlStatement, dbAlias, startOffset, blockSize); - else - data = db.tablePage(sqlStatement, dbAlias, startOffset, blockSize, timeout); - } - else { - if (timeout == undefined) - data = db.arrayPage(sqlType, sqlStatement, dbAlias, startOffset, blockSize); - else - data = db.arrayPage(sqlType, sqlStatement, dbAlias, startOffset, blockSize, timeout); - } - - startOffset += blockSize; - - //this happens when all-records % blockSize == 0 - //we do not want to call the callback-fn - if (data.length == 0) - return true; - else if (data.length < blockSize || blockSize == 0)//blocksize 0 is everything - startOffset = -1;//call callback the last time - - if (callbackFn.call(this, data, ++count) === false) - return false;//callback can return false to manually stop the paging-process - } - return true; -} - -/** - * @return the sytemalias - */ -SqlUtils.getSystemAlias = function() -{ - return "_____SYSTEMALIAS"; -} - -/** - * Builds a SQL IN condition, while accounting for the 1000 elements maximum - * Single conditions are concatenated with OR, which can be devastating for performance! - * - * @param {String} pFieldname req name of the field with table alias - * z.B ORGREL.CONTACTID - * @param {String[]|String[][]} pData req Data as ID Array - * @param {String} pQuoteSymbol opt symbol for quoting values, - * Strings i.e.: ' default is no symbol - * - * @return {String} SQL condition: where VALS in (1,2,3) - */ -SqlUtils.getSqlInStatement = function(pFieldname, pData, pQuoteSymbol) { - if (pData.length == 0) - return " 1 = 2 "; - - var res = ""; - var qs = pQuoteSymbol || ""; - - var MAX_COUNT = 1000; - //pData.length -1 um für den Fall, dass MAX_COUNT == pData.length ist trotzdem nur einen Aufruf - //zu machen - var count = ((pData.length -1) / MAX_COUNT) >> 0;//aus kommazahl eine ganzzahl machen - //<= verwenden, da bei einer Länge von "126" der Vorgang einmal ausgeführt werden soll - for (var i = 0; i <= count; i++) - { - if (i > 0) - res += "or "; - - res += pFieldname + " in (" + qs + pData.slice(i * MAX_COUNT, i * MAX_COUNT + MAX_COUNT) - .join(qs + ", " + qs) + qs + ") "; - } - - //wenn mehrere Zeilen mit "or" verknüpft wurden nochmal klammern - if (count > 0) - res = "(" + res + ")"; - - return res; -} - -/** -* resolves key-value pairs (of strings) into a case when expression -* -* @param {String[][]} pKeyValueArray you've to pass a 2D-Array where each element has at pos0 the key and pos1 the value -* @param {String} pDbFieldName name fo the database field where the KEY-value is stored -* @param {String} [pLocale=current client language] specifies the locale for translating the title; can be false if nothing shalle be translated -* -* @return {String} a SQL-expression (case-when-statement) that resolves the KEYID into the title -> as preparedSatement-elements -*/ -SqlUtils.getResolvingCaseWhen = function(pKeyValueArray, pDbFieldName, pLocale) -{ - var keyData = pKeyValueArray; - if (keyData.length == 0) - return ["''", []]; - - //a helper function for easy translation - var translateValue = function(value){ - if (pLocale === false) - return value; - else if (pLocale) - return translate.text(value, pLocale); - else - return translate.text(value); - }; - - var resSql = "case ", preparedValues = []; - var colTypeKeyId = SQLTYPES.CHAR; - var colTypeTitle = SQLTYPES.NVARCHAR; - for (var i = 0, l = keyData.length; i < l; i++) - { - var translatedTitle = translateValue(keyData[i][1]); - resSql += " when " + pDbFieldName + " = ? then ? " - preparedValues.push([keyData[i][0], colTypeKeyId]); - preparedValues.push([translatedTitle, colTypeTitle]); - } - resSql += " else '' end "; - resSql = [resSql, preparedValues]; - return resSql; -}; - -SqlUtils.exportToLiquibase = function(pAuthor, pTableName, pColumns, pNewUUIDForIndexes) -{ - if(!pNewUUIDForIndexes) - pNewUUIDForIndexes = [] - - var xmlData = <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"> - </databaseChangeLog>; - xmlData.changeSet.@author = pAuthor - xmlData.changeSet.@id = util.getNewUUID() - - var dbData = db.table("select " + pColumns.join(", ") + " from " + pTableName); - var types = db.getColumnTypes(pTableName, pColumns); - - dbData.forEach(function(pRow) { - var node = <insert></insert>; - node.@tableName = pTableName; - - for (let i = 0; i < pColumns.length; i++) - { - var value = ""; - - for (j = 0; j < pNewUUIDForIndexes.length; j++) { - - if (i == pNewUUIDForIndexes[j]) - { - value = util.getNewUUID(); - break; - } - } - - if (!value) - value = pRow[i]; - - var col = <column/>; - col.@name = pColumns[i]; - - if (SQLTYPES.isNumberType(types[i])) - col.@valueNumeric = value; - else - col.@value = value; - - node.appendChild(col); - } - this.appendChild(node); - }, xmlData.changeSet); - - //xmlData.changeSet.push(<insert>6</insert>); - - return xmlData.toXMLString() -}; +import("system.logging"); +import("system.translate"); +import("system.vars"); +import("system.util"); +import("system.db"); +import("system.datetime"); +import("system.tools"); +import("system.SQLTYPES"); +import("system.text"); +import("Util_lib"); + +/** + * object for easier handling of conditions; + * With this object you do not have to check if the string is empty or not; + * you don't need to append a "1=1" condition or similar; + * this objects gains most benefit if you have a lot of conditions that are added (or not) depending on tons of JDito-conditions + * + * You can also use SqlCondition.begin(alias) for simpler object creation without new and without the need for an extra variable to save the object. + * + * @class + * @param {String} [alias=the current alias] the database alias where the condition shall be executed later (important for column types of preparedStatements) + * @example + * see others/guide/HowToSqlConditionLib.adoc + */ +function SqlCondition(alias) { + // setting null is only needed to provide autocomplete for the ADITO-designer + this.preparedValues = null; + this._init(); // the properties are initalized in an extra function because init is nearly the same as resetting (clearing) the SqlConditions + this.alias = alias; + + // save, if the last condition was an OR. For better bracket-placement + this._lastWasOr = false; +} + +/** + * Alternative possibility to crate a new condition. + * With this you don't need new SqlCondition and you can use the object directly after it's creation + * --> cleaner code + * + * It is very usefull for the orSqlCondition() and andSqlCondition() because now you can create a new condition inline. + * You can also use it for simple selects without the need to save the conditionObject in an extra variable. + * See Examples! + * + * @param {String} [alias=the current alias] the database alias where the condition shall be executed later (important for column types of preparedStatements) + * @return {SqlCondition} the new SqlCondition-object + * + * @example + * vars mySelect = SqlCondition.begin(alias) + * .and("MYID = '123'") + * .and(SqlCondition.begin() + * .or("NAME = 'Max'") + * .or("NAME = 'Bob'") + * ) + * .buildSql("select * from MYTABLE"); + * + * // Or use it for simple selects: + * var sum = db.cell(SqlCondition.begin() + * .andPrepared("STOCK.PRODUCT_ID", pid) + * .buildSql("select sum(QUANTITY * IN_OUT) from STOCK")); + */ +SqlCondition.begin = function(alias) { + return new SqlCondition(alias); +} + +/** + * checks if conditions have been added to the object + * @return {Boolean} true if conditions have been added, false when not + */ +SqlCondition.prototype.isSet = function() { + if (this._sqlStorage) + return true; + return false; +} + + +/** + * append with SQL-and; no paranthesize of existing conditions is done + * @param {String} cond the condition string which shall be appended + * @return {SqlCondition} current SqlCondition-object + */ +SqlCondition.prototype.and = function(cond) { + if (!cond) + return this; + if (this.isSet()) + this._sqlStorage += " and "; + this._sqlStorage += cond; + return this; +} + +/** + * append with SQL-or; Also paranthesize the existing conditions + * @param {String} cond the condition string which shall be appended + * @return {SqlCondition} current SqlCondition-object + */ +SqlCondition.prototype.or = function(cond) { + if (!cond) + return this; + + if (this.isSet() && !this._lastWasOr) { + this._sqlStorage = "(" + this._sqlStorage + ") or (" + cond + ")"; + this._lastWasOr = true; + + } else if (this.isSet() && this._lastWasOr) { + this._sqlStorage = this._sqlStorage + " or (" + cond + ")"; + this._lastWasOr = true; + + } else { + this._sqlStorage = cond; + } + return this; +} + +/** + * append a prepared-array to this sql condition with SQL-and + * @param {Array} preparedObj a prepared condition-array + * @return {SqlCondition} current SqlCondition-object + */ +SqlCondition.prototype.andAttachPrepared = function(preparedObj) { + this.preparedValues = this.preparedValues.concat(preparedObj[1]); + return this.and(preparedObj[0]); +} + +/** + * append a prepared-array to this sql condition with SQL-or + * @param {Array} preparedObj a prepared condition-array + * @return {SqlCondition} current SqlCondition-object + */ +SqlCondition.prototype.orAttachPrepared = function(preparedObj) { + this.preparedValues.push(preparedObj[1]); + return this.or(preparedObj[0]); +} + +/** + * append another condition with SQL-and + * + * @param {SqlCondition} cond the condition which shall be appended + * @param {String} [alternativeCond=""] condition if the given SqlCondition has none + * @return {SqlCondition} current SqlCondition-object + */ +SqlCondition.prototype.andSqlCondition = function(cond, alternativeCond) { + var otherCondition = cond.toString(alternativeCond); + if (otherCondition.trim() != "") + { + this.and(" ( " + cond.toString(alternativeCond) + " ) "); + if (cond.preparedValues) { + this.preparedValues = this.preparedValues.concat(cond.preparedValues); + } + } + return this; +} + +/** + * append another condition with SQL-or; Also paranthesize the existing conditions + * + * @param {SqlCondition} cond the condition which shall be appended + * @param {String} [alternativeCond=""] condition if the given SqlCondition has none + * @return {SqlCondition} current SqlCondition-object + */ +SqlCondition.prototype.orSqlCondition = function(cond, alternativeCond) { + var otherCondition = cond.toString(alternativeCond); + if (otherCondition.trim() != "") + { + this.or(" ( " + cond.toString(alternativeCond) + " ) "); + if (cond.preparedValues) { + this.preparedValues = this.preparedValues.concat(cond.preparedValues); + } + } + return this; +} + +/** + * same as the "and"-function but with preparedStatement functionality + * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"] + * @param {String} value the value that shall be set into the prepared statement + * @param {String} [cond="# = ?"] the strucutre of the SQL condition as preparedString, you can use a number sign "#" as placeholder for you fieldname; + * e.g. "# > ?"; escaping the number sign is possible with a backslash "\" + * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically; + * The loaded type is cached if no type is given. So it is also safe to use this in a loop. + * e.g. + * for (...) { + * cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?") + * } + * @return {SqlCondition} current SqlCondition-object + */ +SqlCondition.prototype.andPrepare = function(field, value, cond, fieldType) { + cond = this._prepare(field, value, cond, fieldType); + return this.and(cond); +} + +/** + * same as the "or"-function but with preparedStatement functionality + * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"] + * @param {String} value the value that shall be set into the prepared statement + * @param {String} [cond="# = ?"] the strucutre of the SQL condition as preparedString, you can use a number sign "#" as placeholder for you fieldname; + * e.g. "# > ?"; escaping the number sign is possible with a backslash "\" + * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically; + * The loaded type is cached if no type is given. So it is also safe to use this in a loop. + * e.g. + * for (...) { + * cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?") + * } + * @return {SqlCondition} current SqlCondition-object + */ +SqlCondition.prototype.orPrepare = function(field, value, cond, fieldType) { + cond = this._prepare(field, value, cond, fieldType); + return this.or(cond); +} + +/** + * same as the "andPrepare"-function but only applied if the passed "value" is truely + * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"] + * @param {String} value the value that shall be set into the prepared statement + * @param {String} [cond="# = ?"] the strucutre of the SQL condition as preparedString, you can use a number sign "#" as placeholder for you fieldname; + * e.g. "# > ?"; escaping the number sign is possible with a backslash "\" + * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically; + * The loaded type is cached if no type is given. So it is also safe to use this in a loop. + * e.g. + * for (...) { + * cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?") + * } + * @return {SqlCondition} current SqlCondition-object + */ +SqlCondition.prototype.andPrepareIfSet = function(field, value, cond, fieldType) { + if (value) + return this.andPrepare(field, value, cond, fieldType); + return this; +} + +/** + * same as the "orPrepare"-function but only applied if the passed "value" is truely + * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"] + * @param {String} value the value that shall be set into the prepared statement + * @param {String} [cond="# = ?"] the strucutre of the SQL condition as preparedString, you can use a number sign "#" as placeholder for you fieldname; + * e.g. "# > ?"; escaping the number sign is possible with a backslash "\" + * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically; + * The loaded type is cached if no type is given. So it is also safe to use this in a loop. + * e.g. + * for (...) { + * cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?") + * } + * @return {SqlCondition} current SqlCondition-object + */ +SqlCondition.prototype.orPrepareIfSet = function(field, value, cond, fieldType) { + if (value) + return this.orPrepare(field, value, cond, fieldType); + return this; +} + +/** + * same as the "andPrepare"-function but with validation of adito-variables functionality + * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"] + * @param {String} variable the adito-variable that shall be set into the prepared statement + * @param {String} [cond = "# = ?" ] the strucutre of the SQL condition as preparedString, you can use a number sign "#" as placeholder for you fieldname; + * e.g. "# > ?"; escaping the number sign is possible with a backslash "\" + * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically; + * The loaded type is cached if no type is given. So it is also safe to use this in a loop. + * e.g. + * for (...) { + * cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?") + * } + * @return {SqlCondition} current SqlCondition-object + */ +SqlCondition.prototype.andPrepareVars = function(field, variable, cond, fieldType) { + variable = this._checkVars(variable) + if (variable) { + return this.andPrepare(field, variable, cond, fieldType); + } + return this; +} + +/** + * same as the "orPrepare"-function but with validation of adito-variables functionality + * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"] + * @param {String} variable the adito-variable that shall be set into the prepared statement + * @param {String} [cond="# = ?"] the strucutre of the SQL condition as preparedString, you can use a number sign "#" as placeholder for you fieldname; + * e.g. "# > ?"; escaping the number sign is possible with a backslash "\" + * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically; + * The loaded type is cached if no type is given. So it is also safe to use this in a loop. + * e.g. + * for (...) { + * cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?") + * } + * @return {SqlCondition} current SqlCondition-object + */ +SqlCondition.prototype.orPrepareVars = function(field, variable, cond, fieldType) { + variable = this._checkVars(variable) + if (variable) { + return this.orPrepare(field, variable, cond, fieldType); + } + return this; +} + +/** + * ready to use string; does not contain a where keyword at the beginning + * @param {String} [alternativeCond=""] condition that is returned when nothing has been appended. + * @return {String} concatenated SQL-condition; empty string if nothing has been appended or - if passed - the alternativeCond + */ +SqlCondition.prototype.toString = function(alternativeCond) { + if (!this.isSet() && alternativeCond) + return alternativeCond + else + return this._sqlStorage; +} + +/** + * ready to use string; does contain a where keyword at the beginning + * @param {String} [alternativeCond=""] condition that is returned when nothing has been appended. + * @return {SqlCondition} concatenated SQL-condition; empty string if nothing has been appended or - if passed - the alternativeCond + */ +SqlCondition.prototype.toWhereString = function(alternativeCond) { + var cond = this.toString(alternativeCond); + if (cond) + return " where " + cond; + else + return cond; +} + +/** + * ready to use prepared condition; does not contain a where keyword at the beginning + * @param {String} [alternativeCond=""] Condition that is returned when nothing has been appended. + * @return {Array[][][]} Prepared condition with [condition, [[field1, type1], [field2, type2]]] + */ +SqlCondition.prototype.build = function(alternativeCond) { + return [this.toString(alternativeCond), this.preparedValues]; +} + +/** + * ready to use prepared select + * @param {String} pBeforeCondition Part of the sql before the condition without where (e.g. "select FIRSTNAME from PERSON") + * @param {String} [pAlternativeCond=""] Condition that is returned when nothing has been appended. + * @param {String} [pAfterCondition=""] Part of the sql after the condition (e.g. "order by FIRSTNAME"). + * @param {Boolean} [pWithWere=true] true if where should be added to the bginning + * @return {Array[][][]} Prepared condition with [condition, [[field1, type1], [field2, type2]]] + */ +SqlCondition.prototype.buildSql = function(pBeforeCondition, pAlternativeCond, pAfterCondition, pWithWere) { + if (pAfterCondition == undefined) + pAfterCondition = ""; + + if (pWithWere == undefined) + pWithWere = true; + + return [pBeforeCondition + " " + + (pWithWere ? this.toWhereString(pAlternativeCond) : this.toString(pAlternativeCond)) + + " " + pAfterCondition, this.preparedValues]; +} + +/** + * Check if (adito-)variable exists and vars.getString is not empty + * @param {String} variable the variable name (e.g. "$field.CONTACT_ID") + * @return {String | Boolean} The value of the field as string OR false if it doesn't exist. + * + * @ignore + */ +SqlCondition.prototype._checkVars = function(variable) { + if (vars.exists(variable)) { + var value = vars.getString(variable); + if (value) { + return value; + } + } + return false; +} + +/** + * hidden function for composing preparedStatements + * @param {String | String[]} field the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" or as array with column-alias: ["ORGANISATION", "NAME", "myorgAlias"] + * @param {String} value the value that shall be set into the prepared statement + * @param {String} cond the strucutre of the SQL condition as preparedString, you can use a number sign "#" as placeholder for you fieldname; + * e.g. "# > ?"; escaping the number sign is possible with a backslash "\" + * Default is "# = ?" + * @param {Numeric | Boolean} [fieldType] SQL-column-type; if the fieldType is not given it's loaded automatically; + * The loaded type is cached if no type is given. So it is also safe to use this in a loop. + * e.g. + * for (...) { + * cond.andPrepare("SALESPROJECT_CLASSIFICATION.TYPE", entry, "# <> ?") + * } + * @return {String} the replaced SQL-condition string (replace # by the fieldname) + * @ignore + */ +SqlCondition.prototype._prepare = function(field, value, cond, fieldType) { + if (value == undefined) + { + throw new Error(translate.withArguments("${SQL_LIB_UNDEFINED_VALUE} field: %0", [field])); + } + + if (cond == undefined) { + cond = "# = ?" + } + + var alias; + + if (typeof field === 'string') + { + alias = field; + } + else + { + alias = field[2] + "." + field[1]; + field = field[0] + "." + field[1]; + } + + var type; + + if (fieldType == undefined) + fieldType = SqlUtils.getSingleColumnType(field, undefined, this.alias); + + //this function looks more complex (and slower) than it actually is + /* the following regex looks like this after javascript-escaping of the backslash: (?<!\\)((?:\\\\)*)# + the regexp searches for the unescaped character and these characters are replaced by the field name + + examples: + --------------------- + | # --match | + | \# --no-match | + | \\# --match | + | \\\# --no-match | + | \\\\# --match | + --------------------- + */ + //use replaceAll because it's faster and supports negative lookbehinds + cond = text.replaceAll(cond, { + //manually readd the replaced backslashes by using a group reference, because they a part of the match and therefore replaced by "replaceAll" + //since the field COULD contain already a group reference (I think this is extremely uncommon; + //probably that never happens but better stay save): escape that references within the fieldname + "(?<!\\\\)((?:\\\\\\\\)*)#": "$1" + text.replaceAll(alias, { + "$1": "\\$1" + }), + //now that we've replaced the correct field placeholder let's replace the escaped number sign "\#" to a normal number sign "#" + "\\\\#": "#" + }); + + + + type = fieldType + this.preparedValues.push([value.toString(), type]); + return cond; +} + + +/** + * function that resets the current SqlCondition as if no conditions would have been added + * this is usefull if you want to reuse the same object over and over + * @return {null} + */ +SqlCondition.prototype.clear = function() { + this._sqlStorage = ""; + this.preparedValues = []; + return this; +} + +/** + * hidden function for initializing all properties for the sql conditions + * @return {null} + * + * @ignore + */ +SqlCondition.prototype._init = function() { + //init only wraps the clear function to avoid confusion in the constructor (and provide better extensibility) + return this.clear(); +} + +// some static functions for often used tasks. They are only provided for very simple tasks. + +/** + * pField = pValue + * @param {String} pField the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" + * @param {String} pValue the value that shall be set into the prepared statement + * @param {String} [pAlternativeCond=""] Condition that is returned when nothing has been appended. + * @param {String} [pAlias=the current alias] the database alias where the condition shall be executed later (important for column types of preparedStatements) + * + * @return {Array[][][]} Prepared condition with [condition, [[field, type]]] + */ +SqlCondition.equals = function(pField, pValue, pAlternativeCond, pAlias) { + return SqlCondition.begin(pAlias).andPrepare(pField, pValue).build(pAlternativeCond); +} + +/** + * pField <> pValue + * @param {String} pField the database field as "tablename.columnname"; e.g. "ORGANISATION.NAME" + * @param {String} pValue the value that shall be set into the prepared statement + * @param {String} [pAlternativeCond=""] Condition that is returned when nothing has been appended. + * @param {String} [pAlias=the current alias] the database alias where the condition shall be executed later (important for column types of preparedStatements) + * + * @return {Array[][][]} Prepared condition with [condition, [[field, type]]] + */ +SqlCondition.equalsNot = function(pField, pValue, pAlternativeCond, pAlias) { + return SqlCondition.begin(pAlias).andPrepare(pField, pValue, "# <> ?").build(pAlternativeCond); +} + +/** + *provides functions for masking sql functions + * + * @param {String} [alias=currentAlias] database alias, you can specify null if you have no alias available and you can manually set the dbType property + * + * @class + */ +function SqlMaskingUtils(alias) { + this.alias = null; + Object.defineProperty(this, "alias", { + set: function(v){ + this._alias = v; + if (v != null) + this._dbType = db.getDatabaseType(this._alias); + }, + get: function (){ + return this._alias; + } + }); + this.dbType = null; + //provide the possibility to just set dbType (e.g. for testing) with no association to an alias + Object.defineProperty(this, "dbType", { + set: function(v){ + this._alias = null; + this._dbType = v; + }, + get: function (){ + return this._dbType; + } + }); + + if (alias === undefined) + this.alias = vars.getString("$sys.dbalias"); + else + this.alias = alias; +} + +/** + * returns the concat symbol depending on database type + * @return {String} Concat Symbol + */ +SqlMaskingUtils.prototype.getConcatSymbol = function() { + var concatSymbol; + switch(Number(this.dbType)) { + case db.DBTYPE_SQLSERVER2000: + concatSymbol = " + "; + break; + case db.DBTYPE_MARIADB10: + case db.DBTYPE_MYSQL4: + case db.DBTYPE_ORACLE10_CLUSTER: + case db.DBTYPE_ORACLE10_THIN: + case db.DBTYPE_ORACLE10_OCI: + case db.DBTYPE_POSTGRESQL8: + case db.DBTYPE_DERBY10: + default: + concatSymbol = " || "; + break; + } + return concatSymbol; +} + +/** +* returns the trim function depending on the database behin the given alias +* note that this function does not verifiy where the types of your expression are trimable or not +* +* @param {String} field expression that shall be trimmed +* +* @return {String} +*/ +SqlMaskingUtils.prototype.trim = function(field) { + var dbType, resultStr; + dbType = this.dbType; + switch(dbType) { + case db.DBTYPE_SQLSERVER2000: + resultStr = "ltrim(rtrim(" + field + "))"; + break; + default: + resultStr = "trim(" + field + ")" + break; + } + return resultStr; +} + +/** +* returns the max-value sql expressions depending on the database behind the given alias +* note that this function does not verifiy if the field (and type) usage is valid at all +* +* @param {String} field expression +* +* @return {String} sql-part that can be used in a select +*/ +SqlMaskingUtils.prototype.max = function(field) +{ + return "max(" + field + ")"; +} + +/** +* returns the min-value sql expressions depending on the database behind the given alias +* note that this function does not verifiy if the field (and type) usage is valid at all +* +* @param {String} field expression +* +* @return {String} sql-part that can be used in a select +*/ +SqlMaskingUtils.prototype.min = function(field) +{ + return "min(" + field + ")"; +} + +/** + * masks the function cast of standard sql + * please note that this function does not do any validation if it's possible to cast the expression's datatype you pass to the function in every supported DBMS + * + * Problems: + * Derby has problems with casting to CHAR({> 254}) https://db.apache.org/derby/docs/10.14/ref/rrefsqlj13733.html + * + * @param {String} field name of the database field that shall be castet + * @param {String} [targetDatatype] a SQLTYPES-value of the following: SQLTYPES.CHAR, SQLTYPES.VARCHAR, SQLTYPES.INTEGER, + * SQLTYPES.DECIMAL, SQLTYPES.DATE + * @param {int|int[]} targetLength specifies the length of the target data type; + * <br/>- char/varchar: length + * <br/>- decimal: [length, decimals] + * + * @return {String} sql part to be included in sql-statements + */ +SqlMaskingUtils.prototype.cast = function (field, targetDatatype, targetLength) { + /* Some informations if you want to add supported databaseTypes or dataTypes: + * You should consider using the _mapDefaults function-expression (details in the functions doc) + * However you shouldn't use the function in a "default"-Block of a switch-case because of the following behaviour: + * If a datatype is not supported you just have to NOT specify "sqlDataType" (leave it "undefined") -> an error is then raised + * Therefore you should explicitly define which Data-type is supported and which is not + */ + var dbType, functionName, sqlPart, sqlDataType, _mapDefaults; + dbType = this.dbType; + functionName = "cast";//overwrite this in the "switch (dbType)" if needed with your DBMS + + /** + * handles default-scenarios for mapping input-targetDatatype to a string for a sql-statement + * e.g. SQLTYPES.INTEGER --> int + * @param {Number} dataType input as a value of "SQLTYPES." that will be mapped to a string + * @return {String} the mapped dataType for using in a sql-statement + */ + _mapDefaults = function (dataType) { + var res; + switch(dataType) { + case SQLTYPES.CHAR: + res = "char"; + break; + case SQLTYPES.VARCHAR: + res = "char"; + break; + case SQLTYPES.INTEGER: + res = "int"; + break; + case SQLTYPES.DECIMAL: + res = "decimal"; + break; + case SQLTYPES.DATE: + res = "date"; + break; + } + return res; + } + + switch (dbType) { + case db.DBTYPE_DERBY10: + switch(targetDatatype) { + case SQLTYPES.VARCHAR: + // Because of a Derby bug, you can't cast INTEGER into VARCHAR + // Therefor first cast to char then to varchar + // https://issues.apache.org/jira/browse/DERBY-2072 + field = "rtrim(" + this.cast(field, SQLTYPES.CHAR, targetLength) + ")"; + sqlDataType = "varchar"; + break; + case SQLTYPES.CHAR: + sqlDataType = "char"; + break; + case SQLTYPES.DECIMAL: + case SQLTYPES.INTEGER: + case SQLTYPES.DATE: + sqlDataType = _mapDefaults(targetDatatype); + break; + } + break; + case db.DBTYPE_MARIADB10: + case db.DBTYPE_MYSQL4: + switch(targetDatatype) { + case SQLTYPES.VARCHAR: + case SQLTYPES.CHAR: + case SQLTYPES.INTEGER: + case SQLTYPES.DECIMAL: + case SQLTYPES.DATE: + sqlDataType = _mapDefaults(targetDatatype); + break; + } + break; + case db.DBTYPE_ORACLE10_CLUSTER: + case db.DBTYPE_ORACLE10_THIN: + case db.DBTYPE_ORACLE10_OCI: + switch(targetDatatype) + { + case SQLTYPES.VARCHAR: + datatype = "varchar2"; + break; + case SQLTYPES.INTEGER: + datatype = "number"; + targetLength = "10" + break; + case SQLTYPES.CHAR: + case SQLTYPES.DECIMAL: + case SQLTYPES.DATE: + sqlDataType = _mapDefaults(targetDatatype); + break; + } + break; + case db.DBTYPE_POSTGRESQL8: + switch(targetDatatype) + { + case SQLTYPES.DATE: + case SQLTYPES.DECIMAL: + case SQLTYPES.INTEGER: + case SQLTYPES.CHAR: + case SQLTYPES.VARCHAR: + sqlDataType = _mapDefaults(targetDatatype); + break; + } + break; + case db.DBTYPE_SQLSERVER2000: + case SQLTYPES.DATE: + case SQLTYPES.DECIMAL: + case SQLTYPES.INTEGER: + case SQLTYPES.CHAR: + case SQLTYPES.VARCHAR: + sqlDataType = _mapDefaults(targetDatatype); + break; + case db.DBTYPE_FIREBIRD250: + //TODO: firebird support? + break; + } + + if (sqlDataType == undefined) { + throw new Error(translate.withArguments("${SQL_LIB_UNSUPPORTED_DBTYPE} function: %0", ["SqlMaskingUtils.prototype.cast._mapDefaults"])); + } + + if(targetLength == undefined) + targetLength = ""; + else if(targetLength != "") + { + if(typeof(targetLength == "object") && (targetLength instanceof Array)) + targetLength = "(" + targetLength.join(", ") + ")"; + else + targetLength = "(" + targetLength + ")"; + } + + sqlPart = functionName + "(" + field + " as " + sqlDataType + targetLength + ")"; + return sqlPart; +} + +/** + * masks the cast function for lob datatypes(clob, blob) into varchar or similar + * + * @param {String} field expression that shall be casted + * @param {Integer|Interger[]} targetLength dessired length of the datatype + * decimal: [length, decimals] + * + * @return {String} part of sql-expression that can be used + */ +SqlMaskingUtils.prototype.castLob = function(field, targetLength) { + var res; + switch(this.dbType) { + case db.DBTYPE_ORACLE10_CLUSTER: + case db.DBTYPE_ORACLE10_THIN: + case db.DBTYPE_ORACLE10_OCI: + res = "DBMS_LOB.SUBSTR(" + field + ", " + targetLength + ", 1)"; + break; + default: + res = this.cast(field, SQLTYPES.VARCHAR, targetLength); + break; + } + return res; +} + +/** + * returns the function which determines the length of binary data + * + * @param {String} fieldName name of the checked field + * + * @return {String} + */ +SqlMaskingUtils.prototype.binDataLength = function(fieldName) { + var res; + + switch(this.dbType) { + case db.DBTYPE_MARIADB10: + case db.DBTYPE_MYSQL4: + case db.DBTYPE_ORACLE10_CLUSTER: + case db.DBTYPE_ORACLE10_THIN: + case db.DBTYPE_ORACLE10_OCI: + case db.DBTYPE_POSTGRESQL8: + case db.DBTYPE_DERBY10: + res = "LENGTH(" + fieldName + ")"; + break; + case db.DBTYPE_SQLSERVER2000: + res = "DATALENGTH(" + fieldName + ")"; + break; + } + return res; +} + +/** + * masks the sql function substring + * + * @param {String } field the expression that shall be substringed + * @param {Number} start posistion where the substring starts + * @param {Number} length amount of characters of the expression will be returned by the sql function + * + * @return {String} part of sql-expression that can be used for substringing + */ +SqlMaskingUtils.prototype.substring = function(field, start, length) { + var sqlFnName; + + switch(this.dbType) + { + case db.DBTYPE_ORACLE10_CLUSTER: + case db.DBTYPE_ORACLE10_THIN: + case db.DBTYPE_ORACLE10_OCI: + sqlFnName = "substr"; + break; + case db.DBTYPE_DERBY10: + sqlFnName = "substr"; + break; + case db.DBTYPE_POSTGRESQL8: + sqlFnName = "substr"; + break; + case db.DBTYPE_SQLSERVER2000: + sqlFnName = "substring"; + break; + case db.DBTYPE_MYSQL4: + case db.DBTYPE_MARIADB10: + sqlFnName = "substring"; + break; + default: + throw new Error(translate.withArguments("${SQL_LIB_UNSUPPORTED_DBTYPE} function: %0", ["SqlMaskingUtils.prototype.substring"])); + } + + return sqlFnName + "(" + field + ", " + start + ", " + length + ")"; +} + + +/** +* masks the function concat +* if a sql field is empty no separator will be added +* note that this function will often create a lot of sql-code +* +* @param {Array} fields req fields (or expressions) that should be concatenated +* @param {String} [separatorCharacter=space-character] character for separating the fields; warning: the character will not be quoted +* @param {String} [autoTrimFields=true] autoTrimFields if true the expressions are always trimmed, false no change will be applied +* +* @return {String} part of SQL-querey +*/ +SqlMaskingUtils.prototype.concat = function(fields, separatorCharacter, autoTrimFields) { + var i, concatSql, retSql, isNotEmptyStrSql, isNotNullSql, separatorSql, _isNotEmpty, _trimIfAutoTrimEnabled; + if (fields.length == 0) + return "''"; + else if (fields.length == 1) + return fields[0]; + concatSql = this.getConcatSymbol(); + isNotEmptyStrSql = " != '' "; + isNotNullSql = " is not null "; + separatorSql = separatorCharacter == undefined ? " " : separatorCharacter; + retSql = ""; + if (autoTrimFields == undefined) + autoTrimFields = true; + + switch(this.dbType) + { + case db.DBTYPE_MYSQL4: + case db.DBTYPE_MARIADB10: + retSql = " concat_ws( '" + separatorSql + "'"; + for (i = 0; i < fields.length; i++) { + retSql += ", " + fields[i]; + } + return retSql + ") "; + break; + case db.DBTYPE_ORACLE10_CLUSTER: + case db.DBTYPE_ORACLE10_THIN: + case db.DBTYPE_ORACLE10_OCI: + isNotEmptyStrSql = null; //empty strings are changed to DB-null-values internally in oracle; by specifing JS-null we disable this check + break; + case db.DBTYPE_SQLSERVER2000: + //MS SQL Server supports "concat_ws" (and ignoring null values) from version SQL Server 2017 and newer: + //https://docs.microsoft.com/de-de/sql/t-sql/functions/concat-ws-transact-sql?view=sql-server-2017 + break; + case db.DBTYPE_DERBY10: + break; + default: + throw new Error(translate.withArguments("${SQL_LIB_UNSUPPORTED_DBTYPE} function: %0", ["SqlMaskingUtils.prototype.concat"])); + } + separatorSql = concatSql + "'" + separatorSql + "'"; + _trimIfAutoTrimEnabled = function(f){ + if (autoTrimFields) + return this.trim(f); + else + return f; + } + _trimIfAutoTrimEnabled = _trimIfAutoTrimEnabled.bind(this); + _isNotEmpty = function(f){ + return _trimIfAutoTrimEnabled(f) + isNotEmptyStrSql + " and " + f + isNotNullSql; + } + _isNotEmpty = _isNotEmpty.bind(this); + + for (i = 0; i < fields.length; i++) { + if (retSql != "") + retSql += concatSql; + retSql += "case when " + _isNotEmpty(fields[i]) + " then "; + if ( i < fields.length - 1 ) //Prüfen, ob ein nachfolgender Wert kommt, sonst braucht man keinen Separator + retSql += " case when " + _isNotEmpty(fields[i + 1]) + " then " + _trimIfAutoTrimEnabled(fields[i]) + separatorSql + " else " + _trimIfAutoTrimEnabled(fields[i]) + " end "; + else + retSql += _trimIfAutoTrimEnabled(fields[i]); + //this blank is used just as in the old concat function which means this concat function has the same (wrong) behaviour + //TODO: find way to fix the case when separator is not a whitepsace (e.g. space) + //this concat-function does not work properly if you concat [<<value>>, <<null>>, <<value>>] by comma + retSql += " else ' ' end "; + } + return retSql; +} + +/** + * returns the function for replacing a null value + * + * @param {String} field expression that shall be checked for a null value + * @param {String} [replaceWith=empty string] expression that shall be used if the field contains null + * + * @return {string} + */ +SqlMaskingUtils.prototype.isNull = function(field, replaceWith) { + var retSql; + + if (replaceWith == undefined) + replaceWith = "''"; + switch(this.dbType) { + case db.DBTYPE_SQLSERVER2000: + retSql = "isnull(" + field + ", " + replaceWith + ")"; + break; + case db.DBTYPE_ORACLE10_CLUSTER: + case db.DBTYPE_ORACLE10_OCI: + case db.DBTYPE_ORACLE10_THIN : + retSql = "nvl(" + field + ", " + replaceWith + ")"; + break; + case db.DBTYPE_POSTGRESQL8: + case db.DBTYPE_DERBY10: + case db.DBTYPE_MYSQL4: + case db.DBTYPE_MARIADB10: + default: + retSql = "coalesce(" + field + ", " + replaceWith + ")"; + break; + } + return retSql; +} + +/** + * gets the day from a timestamp + * + * @param {String} pField timestamp to get the day from + * + * @return {String} sql expression that extracts the day from a timestamp + */ +SqlMaskingUtils.prototype.dayFromDate = function(pField) +{ + var retSql = ""; + + switch (this.dbType) + { + case db.DBTYPE_ORACLE10_CLUSTER: + case db.DBTYPE_ORACLE10_THIN: + case db.DBTYPE_ORACLE10_OCI: + retSql = "to_char(" + pField + ",'dd')"; + break; + case db.DBTYPE_DERBY10: + case db.DBTYPE_SQLSERVER2000: + case db.DBTYPE_MYSQL4: + case db.DBTYPE_MARIADB10: + retSql = "DAY(" + pField + ")"; + break; + case db.DBTYPE_POSTGRESQL8: + retSql = "EXTRACT (DAY from " + pField + ")"; + break; + } + return retSql; +} + +/** + * gets the month from a timestamp + * + * @param {String} pField timestamp to get the month from + * + * @return {String} sql expression that extracts the month from a timestamp + */ +SqlMaskingUtils.prototype.monthFromDate = function(pField) +{ + var retSql = ""; + + switch (this.dbType) + { + case db.DBTYPE_ORACLE10_CLUSTER: + case db.DBTYPE_ORACLE10_THIN: + case db.DBTYPE_ORACLE10_OCI: + retSql = "to_char(" + pField + ",'MM')"; + break; + case db.DBTYPE_DERBY10: + case db.DBTYPE_SQLSERVER2000: + case db.DBTYPE_MYSQL4: + case db.DBTYPE_MARIADB10: + retSql = "MONTH(" + pField + ")"; + break; + case db.DBTYPE_POSTGRESQL8: + retSql = "EXTRACT (MONTH FROM " + pField + ")"; + break; + } + return retSql; +} + +/** + * gets the year from a timestamp + * + * @param {String} pField timestamp to get the year from + * + * @return {String} sql expression that extracts the year from a timestamp + */ +SqlMaskingUtils.prototype.yearFromDate = function(pField) +{ + var retSql = ""; + + switch (this.dbType) + { + case db.DBTYPE_ORACLE10_CLUSTER: + case db.DBTYPE_ORACLE10_THIN: + case db.DBTYPE_ORACLE10_OCI: + retSql = "to_char(" + pField + ",'yyyy')"; + break; + case db.DBTYPE_DERBY10: + case db.DBTYPE_SQLSERVER2000: + case db.DBTYPE_MYSQL4: + case db.DBTYPE_MARIADB10: + retSql = "YEAR(" + pField + ")"; + break; + case db.DBTYPE_POSTGRESQL8: + retSql = "EXTRACT (YEAR FROM " + pField + ")"; + break; + } + return retSql; +} + +/** + * functions for various Sql-actions + * Do not create an instance of this! + * + * @class + * @static + */ +function SqlUtils() {} + +/** +* parses given name of table and name of column to clearly find out the tablename and columnanme +* +* @param {String|Array} pFieldOrTableName you've got several possibilites to pass here: +* <br/> 1. the name of the table if also a pColumnName is specified +* <br/> 2. the name of the table and columname as "tablename.columnname" (e.g. "ORGANISATION.NAME") if no pColumnName is specified +* <br/> 3. an array with 2 elements: [tablename, columnname] (e.g. ["ORGANISATION", "NAME"]) if no pColumnName is specified +* <br/> Everything else will raise an error +* +* @param {String} [pColumnName] depending on pFieldOrTableName this should be undefined/null or the name of a column +* +* @return {Object|TypeError} TypeError if something wrong has been passed or returns a object with these properties: +* 1. "table" which is the tablename +* 2. "column" which is the columnname +* e.g. {table: "ORGANISATION", column: "NAME"} +* +* +*/ +SqlUtils._parseFieldQualifier = function(pFieldOrTableName, pColumnName) +{ + var tableName, columnName; + if (pColumnName != undefined) + { + tableName = pFieldOrTableName; + columnName = pColumnName; + } + else + { + var fnName = "SqlUtils._parseFieldQualifier";//for return errors + var fieldVarType = typeof(pFieldOrTableName); + if (fieldVarType == "string") + { + pFieldOrTableName = text.split(pFieldOrTableName, "\\."); + } + else if (fieldVarType != "object") //check for object since there exists JavaArrays and JavaScript arrays which are both valid + { + return new TypeError(translate.withArguments("[%0]%1 has to be a string or array but it is %2", [fnName, "pFieldOrTableName", + fieldVarType])); + } + + if (pFieldOrTableName.hasOwnProperty("length")) + { + if (pFieldOrTableName.length != 2) + return new TypeError(translate.withArguments("[%0]has now an incorrect length; estimated 2 elements but got %1", [ + fnName, pFieldOrTableName.length ])); + + tableName = pFieldOrTableName[0]; + columnName = pFieldOrTableName[1]; + } + else //check for object happens since there exists JavaArrays and JavaScript arrays which are both valid + return new TypeError(translate.withArguments("[%0]%1 is an object but seems not to be a valid array or array-like", [ + fnName, "pFieldOrTableName"])); + } + + if (typeof(columnName) != "string") + return new TypeError(translate.withArguments("[%0]the columnName is not a string after interpreting", [fnName])); + if (typeof(tableName) != "string") + return new TypeError(translate.withArguments("[%0]the tableName is not a string after interpreting", [fnName])); + + return { + table: tableName, + column: columnName + }; +}; + + +/** +* determines if given values match a full field qualifier (name of table and name of column) +* +* @param {String|Array} pFieldOrTableName you've got several possibilites to pass here: +* <br/> 1. the name of the table if also a pColumnName is specified +* <br/> 2. the name of the table and columname as "tablename.columnname" (e.g. "ORGANISATION.NAME") if no pColumnName is specified +* <br/> 3. an array with 2 elements: [tablename, columnname] (e.g. ["ORGANISATION", "NAME"]) if no pColumnName is specified +* <br/> Everything else will raise an error +* +* @param {String} [pColumnName] depending on pFieldOrTableName this should be undefined/null or the name of a column +* +* @return {Boolean} returns true if it's a full qualifier or false if not +* +*/ +SqlUtils.isFullFieldQualifier = function(pFieldOrTableName, pColumnName) +{ + var parsed = SqlUtils._parseFieldQualifier(pFieldOrTableName, pColumnName); + if (parsed instanceof TypeError) + return false; + return true; +}; + +/** +* determines the type of a single database column in a table; if you want to get several columntypes at once use db.getColumnTypes instead +* +* @param {String|Array} pFieldOrTableName you've got several possibilites to pass here: +* <br/> 1. the name of the table if also a pColumnName is specified +* <br/> 2. the name of the table and columname as "tablename.columnname" (e.g. "ORGANISATION.NAME") if no pColumnName is specified +* <br/> 3. an array with 2 elements: [tablename, columnname] (e.g. ["ORGANISATION", "NAME"]) if no pColumnName is specified +* <br/> Everything else will raise an error +* +* @param {String} [pColumnName] depending on pFieldOrTableName this should be undefined/null or the name of a column +* @param {String} [pAlias=the current alias] Database-Aliasname, where the SQL-Statement shall be executed; default is the current dbalias +* +* @throws TypeError if a wrong format is passed as table/column-combination +* +* @return {Number} returns the corresponding SQLTYPES-value +* +*/ +SqlUtils.getSingleColumnType = function(pFieldOrTableName, pColumnName, pAlias) { + var fields = SqlUtils._parseFieldQualifier(pFieldOrTableName, pColumnName); + if (fields instanceof TypeError) + throw fields; + + if (pAlias == undefined) + pAlias = db.getCurrentAlias(); + + return db.getColumnTypes(fields.table, [fields.column], pAlias)[0]; +}; + +/** +* calls a given function for N blocks of sql-data as long as records are available or the paging-process is manually canceled +* +* @param {Object|String} sqlStatement the sql statement that shall be executed +* String: SQL-query in a simple text form +* Object: prepared-sql-query: [sqlStr, [[value1, type1], [valueN, typeN]]] +* @param {Number} blockSize Amount of records that shall be read per block. (you need to specify an ORDER BY in your SQL-query) +* "0" <=> all records +* @param {Function} callbackFn a callback-function that is called for every block and has the following params: +* myCallback(myDataBlockAs2Darray, myLoopCountThatStartsWith1) +* If "false" is returned sqlPageData will abort the paging process and return false +* @param {String} [dbAlias=the current alias] Database-Aliasname, where the SQL-Statement shall be executed; default is the current dbalias +* @param {Number} [timeout=configured dbTimeout in Preferences] Timeout in milliseconds; When it's reached the SQL-Statement will abort; default is in PREFERENCES configured +* @param {Number} [startOffset=0] Position where to begin with the data-reading-process; default is 0 +* +* +* @return {bool} returns whether the function read all available data or not: +* false if the callback-function returned false, otherwise true +* +* @example +* var varValues = [];//you've got access to variables declared with 'var' +* let letValues = [];//you've got access to variables declared with 'let' +* var count = 0;//you cannot overwrite a variable of 'sqlPageData' by accident +* +* var sql = "select ORGNAME from ORGANISATION"; +* var blockSize = 5 * 1000; +* +* var allRows = +db.cell("select count(*) from ORGANISATION"); +* +* sqlPageData(sql, blockSize, function (pData, pRunNo){ +* var j = pData.length;//pData is the current block with data +* logMsg(pRunNo.toString() + "#" + j);//pRunNo is the amount how often the func. has been already called +* //you can calculate the progress easily by: progress = (blockSize* (pRunNo-1) + pData.length) / (allRows - startOffset) +* //example in per cent: +* var startOffset = 0;//we did not pass any startOffset to sqlPageData - this is equivalent to zero +* var progress = (blockSize* (pRunNo-1) + pData.length) / (allRows - startOffset); +* logMsg("progess: " + eMath.roundDec(progress * 100, 2, eMath.ROUND_CEILING) + "%"); +* +* for (var i = 0; i < j; i++) +* { +* varValues.push(pData[i][0]); +* letValues.push(pData[i][0]); +* } +* +* count += pRunNo * 100; +* logMsg("count:" + count);//you cannot overwrite a variable of 'sqlPageData' by accident +* }); +* +* logging.show(letValues);//contains orgnames +* logging.show(varValues);//contains orgnames +*/ +SqlUtils.pageTableData = function(sqlStatement, blockSize, callbackFn, dbAlias, timeout, startOffset) { + return SqlUtils._pageData(null, sqlStatement, blockSize, callbackFn, dbAlias, timeout, startOffset); +}; + +/** +* calls a given function for N blocks of sql-data as long as records are available or the paging-process is manually canceled +* +* @param {Object|String} sqlStatement the sql statement that shall be executed +* String: SQL-query in a simple text form +* Object: prepared-sql-query: [sqlStr, [[value1, type1], [valueN, typeN]]] +* @param {Number} blockSize Amount of records that shall be read per block. (you need to specify an ORDER BY in your SQL-query) +* "0" <=> all records +* @param {Function} callbackFn a callback-function that is called for every block and has the following params: +* myCallback(myColumnDataBlockAsArray, myLoopCountThatStartsWith1) +* If "false" is returned sqlPageData will abort the paging process and return false +* @param {String} [dbAlias=the current alias] Database-Aliasname, where the SQL-Statement shall be executed; default is the current dbalias +* @param {Number} [timeout=configured dbTimeout in Preferences] Timeout in milliseconds; When it's reached the SQL-Statement will abort; default is in PREFERENCES configured +* @param {Number} [startOffset=0] Position where to begin with the data-reading-process; default is 0 +* +* +* @return {bool} returns whether the function read all available data or not: +* false if the callback-function returned false, otherwise true +* +* @example +* similar to sqlTablePageData -> take a look at the example there +*/ +SqlUtils.pageColumnData = function(sqlStatement, blockSize, callbackFn, dbAlias, timeout, startOffset) { + return SqlUtils._pageData(db.COLUMN, sqlStatement, blockSize, callbackFn, dbAlias, timeout, startOffset); +}; + +//internal function for paging through data; for description take a look at sqlArrayPageData +SqlUtils._pageData = function(sqlType ,sqlStatement, blockSize, callbackFn, dbAlias, timeout, startOffset) { + if (dbAlias == undefined) + dbAlias = db.getCurrentAlias(); + if (startOffset == undefined) + startOffset = 0; + + var count = 0; + while (startOffset > -1) { + var data; + if (sqlType == null) { + if (timeout == undefined) + data = db.tablePage(sqlStatement, dbAlias, startOffset, blockSize); + else + data = db.tablePage(sqlStatement, dbAlias, startOffset, blockSize, timeout); + } + else { + if (timeout == undefined) + data = db.arrayPage(sqlType, sqlStatement, dbAlias, startOffset, blockSize); + else + data = db.arrayPage(sqlType, sqlStatement, dbAlias, startOffset, blockSize, timeout); + } + + startOffset += blockSize; + + //this happens when all-records % blockSize == 0 + //we do not want to call the callback-fn + if (data.length == 0) + return true; + else if (data.length < blockSize || blockSize == 0)//blocksize 0 is everything + startOffset = -1;//call callback the last time + + if (callbackFn.call(this, data, ++count) === false) + return false;//callback can return false to manually stop the paging-process + } + return true; +} + +/** + * @return the sytemalias + */ +SqlUtils.getSystemAlias = function() +{ + return "_____SYSTEMALIAS"; +} + +/** + * Builds a SQL IN condition, while accounting for the 1000 elements maximum + * Single conditions are concatenated with OR, which can be devastating for performance! + * + * @param {String} pFieldname req name of the field with table alias + * z.B ORGREL.CONTACTID + * @param {String[]|String[][]} pData req Data as ID Array + * @param {String} pQuoteSymbol opt symbol for quoting values, + * Strings i.e.: ' default is no symbol + * + * @return {String} SQL condition: where VALS in (1,2,3) + */ +SqlUtils.getSqlInStatement = function(pFieldname, pData, pQuoteSymbol) { + if (pData.length == 0) + return " 1 = 2 "; + + var res = ""; + var qs = pQuoteSymbol || ""; + + var MAX_COUNT = 1000; + //pData.length -1 um für den Fall, dass MAX_COUNT == pData.length ist trotzdem nur einen Aufruf + //zu machen + var count = ((pData.length -1) / MAX_COUNT) >> 0;//aus kommazahl eine ganzzahl machen + //<= verwenden, da bei einer Länge von "126" der Vorgang einmal ausgeführt werden soll + for (var i = 0; i <= count; i++) + { + if (i > 0) + res += "or "; + + res += pFieldname + " in (" + qs + pData.slice(i * MAX_COUNT, i * MAX_COUNT + MAX_COUNT) + .join(qs + ", " + qs) + qs + ") "; + } + + //wenn mehrere Zeilen mit "or" verknüpft wurden nochmal klammern + if (count > 0) + res = "(" + res + ")"; + + return res; +} + +/** +* resolves key-value pairs (of strings) into a case when expression +* +* @param {String[][]} pKeyValueArray you've to pass a 2D-Array where each element has at pos0 the key and pos1 the value +* @param {String} pDbFieldName name fo the database field where the KEY-value is stored +* @param {String} [pLocale=current client language] specifies the locale for translating the title; can be false if nothing shalle be translated +* +* @return {String} a SQL-expression (case-when-statement) that resolves the KEYID into the title -> as preparedSatement-elements +*/ +SqlUtils.getResolvingCaseWhen = function(pKeyValueArray, pDbFieldName, pLocale) +{ + var keyData = pKeyValueArray; + if (keyData.length == 0) + return ["''", []]; + + //a helper function for easy translation + var translateValue = function(value){ + if (pLocale === false) + return value; + else if (pLocale) + return translate.text(value, pLocale); + else + return translate.text(value); + }; + + var resSql = "case ", preparedValues = []; + var colTypeKeyId = SQLTYPES.CHAR; + var colTypeTitle = SQLTYPES.NVARCHAR; + for (var i = 0, l = keyData.length; i < l; i++) + { + var translatedTitle = translateValue(keyData[i][1]); + resSql += " when " + pDbFieldName + " = ? then ? " + preparedValues.push([keyData[i][0], colTypeKeyId]); + preparedValues.push([translatedTitle, colTypeTitle]); + } + resSql += " else '' end "; + resSql = [resSql, preparedValues]; + return resSql; +}; + +SqlUtils.exportToLiquibase = function(pAuthor, pTableName, pColumns, pNewUUIDForIndexes) +{ + if(!pNewUUIDForIndexes) + pNewUUIDForIndexes = [] + + var xmlData = <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"> + </databaseChangeLog>; + xmlData.changeSet.@author = pAuthor + xmlData.changeSet.@id = util.getNewUUID() + + var dbData = db.table("select " + pColumns.join(", ") + " from " + pTableName); + var types = db.getColumnTypes(pTableName, pColumns); + + dbData.forEach(function(pRow) { + var node = <insert></insert>; + node.@tableName = pTableName; + + for (let i = 0; i < pColumns.length; i++) + { + var value = ""; + + for (j = 0; j < pNewUUIDForIndexes.length; j++) { + + if (i == pNewUUIDForIndexes[j]) + { + value = util.getNewUUID(); + break; + } + } + + if (!value) + value = pRow[i]; + + var col = <column/>; + col.@name = pColumns[i]; + + if (SQLTYPES.isNumberType(types[i])) + col.@valueNumeric = value; + else + col.@value = value; + + node.appendChild(col); + } + this.appendChild(node); + }, xmlData.changeSet); + + //xmlData.changeSet.push(<insert>6</insert>); + + return xmlData.toXMLString() +}; diff --git a/process/StandardObject_lib/process.js b/process/StandardObject_lib/process.js index 70e8e5c56abe2ef40cd9644ff1668f5cf3524df8..1dd391d70e31b696bf116fea28906174d692d974 100644 --- a/process/StandardObject_lib/process.js +++ b/process/StandardObject_lib/process.js @@ -1,315 +1,315 @@ -import("system.db"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); -import("Contact_lib"); -import("Communication_lib"); - -function StandardObject (pObjectType, pObjectID, pScopeType, pScopeID) { - if (!this._isValidType("object", pObjectType)) - throw new Error("StandardObject: Invalid object type") - if (!this._isValidType("scope", pScopeType)) - throw new Error("StandardObject: Invalid scope type") - - this.objectType = pObjectType - this.objectID = pObjectID - this.scopeType = pScopeType - this.scopeID = pScopeID -} - -StandardObject.CONST_OBJECT_ADDRESS = function () { - return "Address" -} - -StandardObject.CONST_OBJECT_COMMUNICATION = function () { - return "Communication" -} - -StandardObject.CONST_SCOPE_PERSON = function () { - return "Person" -} - -StandardObject.CONST_SCOPE_ORGANISATION = function () { - return "Organisation" -} - -StandardObject.prototype._isValidType = function (pFor, pType) { - var validObjectTypes = ["Address", "Communication"] - var validScopeTypes = ["Person", "Organisation"] - if (pFor === "object") { - return validObjectTypes.indexOf(pType) !== -1 - } else if (pFor === "scope"){ - return validScopeTypes.indexOf(pType) !== -1 - } else { - return false; - } -} - -/** - * Asserts the object type of this instance against the - * given type. - * - * @throws Error if assertion fails. - */ -StandardObject.prototype._assertObjectType = function (pType) { - if (this.objectType !== pType) - throw new Error("Object assertion: Invalid type"); -} - -/** - * Asserts the scope type of this instance against the - * given type. - * - * @throws Error if assertion fails. - */ -StandardObject.prototype._assertScopeType = function (pType) { - if (this.scopeType !== pType) - throw new Error("Scope assertion: Invalid type"); -} - -/** - * Asserts that the object ID is NOT null. - * - * @throws Error if assertion fails. - */ -StandardObject.prototype._assertObjectIdNotNull = function () { - if (this.objectID === null) - throw new Error("Object assertion: ID is null"); -} - -/** - * Asserts that the scope ID is NOT null. - * - * @throws Error if assertion fails. - */ -StandardObject.prototype._assertScopeIdNotNull = function () { - if (this.scopeID === null) - throw new Error("Scope assertion: ID is null"); -} - -/** - * Shall be executed in the `valueProcess` of the `ADDRESS_ID` in the - * `Person` entity. This function will take care about the standard address - * of the linked organisation.o - * - * @param pSelectedOrganisationID The ID of the currently selected organisation. - * @return Standard address to apply to the field or null - * (if no standard address was found) - */ -StandardObject.prototype.onPersonValueChange = function (pSelectedOrganisationID) { - this._assertScopeIdNotNull(); - - // Check if the organisation has an standard address - var addressID = this._getCompanyStandardAddress(pSelectedOrganisationID); - - return addressID; -} - -/** - * Shall be executed on the `onDBInsert` process of the recordContainer - * of the object type (Address or Communication). This algorithm works - * on a "random" basis: Which object gets first inserted will get the - * place as standard. - */ -StandardObject.prototype.onObjectInsert = function () { - this._assertObjectIdNotNull(); - this._assertScopeIdNotNull(); - - if (this.objectType === StandardObject.CONST_OBJECT_ADDRESS()) { - this._onAddressInsert(); - } else if (this.objectType === StandardObject.CONST_OBJECT_COMMUNICATION) { - this._onCommunicationInsert(); - } -} - -/** - * Shall be execute only on the `onDBInsert` process of the recordContainer - * of the `Address` entity. This will set the standard address on the - * contact if it's currently null. - */ -StandardObject.prototype._onAddressInsert = function () { - // Assert - this._assertObjectType(StandardObject.CONST_OBJECT_ADDRESS()); - - if (!this._hasContactStandardAddress(this.scopeID)) { - this._setContactStandardAddress(this.objectID, this.scopeID); - } -} - -StandardObject.prototype.onPersonUpdate = function (pOrganisationID) { - // Assert - this._assertScopeType(StandardObject.CONST_SCOPE_PERSON()); - - var isOrganisationAddress = this._isOrganisationAddress(this.scopeID); - - if (isOrganisationAddress) { - // Update to new address of org - var addressID = this._getCompanyStandardAddress(pOrganisationID); - - this._setContactStandardAddress(addressID, this.scopeID); - } -} - -StandardObject.prototype.onCommunicationInsert = function (pMediumID) { - // Assert - this._assertObjectType(StandardObject.CONST_OBJECT_COMMUNICATION()); - this._assertObjectIdNotNull(); - this._assertScopeIdNotNull(); - - var mediumCategory = this._getMediumCategory(pMediumID); - - var hasStandard = this._hasStandardCommunicationByMedium(this.scopeID, mediumCategory); - if (!hasStandard) { - this._setStandardCommunication(this.objectID, 1); - } -} - -StandardObject.prototype.onCommunicationUpdate = function (pMediumID) { - // Assert - this._assertObjectType(StandardObject.CONST_OBJECT_COMMUNICATION()); - this._assertObjectIdNotNull(); - this._assertScopeIdNotNull(); - - this._setStandardCommunication(this.objectID, 0); - - var mediumCategory = this._getMediumCategory(pMediumID); - - var contactID = this._getContactIdByCommunication(this.objectID); - - var hasStandard = this._hasStandardCommunicationByMedium(contactID, mediumCategory); - if (!hasStandard) - this._setStandardCommunication(this.objectID, 1); -} - -/** - * Checks if the given contact ID has any address ID set. If there is a standard - * address it will return `true`, otherwise `false`. This function asserts that - * it's currently working on a `Address` object. - * - * @param {String} pContactID Contact ID to check. - * @return {Boolean} If the contact ID has standard address. - */ -StandardObject.prototype._hasContactStandardAddress = function (pContactID) { - this._assertObjectType(StandardObject.CONST_OBJECT_ADDRESS()); - - var databaseResult = db.cell("select ADDRESS_ID from CONTACT" - + " where CONTACTID = '" + pContactID + "'"); - - return databaseResult !== ""; -} - -/** - * Will set the given address ID on the given contact ID. This function asserts - * that it's currently working on an `Address` object. - * - * @param {String} pAddressID New address ID to set on the contact. - * @param {String} pContactID The contact ID to set the address ID on. - */ -StandardObject.prototype._setContactStandardAddress = function (pAddressID, pContactID) { - // Assert. - this._assertObjectType(StandardObject.CONST_OBJECT_ADDRESS()); - - // Update data. - db.updateData( - "CONTACT", - ["ADDRESS_ID"], - db.getColumnTypes("CONTACT", ["ADDRESS_ID"]), - [pAddressID], - "CONTACTID = '" + pContactID + "'"); -} - -/** - * Will return the standard address of the given organisation. If the organisation - * has no standard address set it will just return null. - * - * @return Standard address of the organisation or null. - */ -StandardObject.prototype._getCompanyStandardAddress = function (pOrganisationID) { - var addressIdResult = db.cell("select ADDRESS_ID from CONTACT" - + " where ORGANISATION_ID = '" + pOrganisationID + "'" - + " and ADDRESS_ID is not null and PERSON_ID is null"); - - if (addressIdResult === "") - return null; - return addressIdResult; -} - -/** - * Checks if the given contact ID already has a standard set with the given medium - * category. - * - * @param {String} pContactID Contact ID to check. - * @param {String} pMediumCategory Medium category to check. - * @return {Boolean} If the contact already has a standard addres with the given - * medium category. - */ -StandardObject.prototype._hasStandardCommunicationByMedium = function (pContactID, pMediumCategory) { - var dbResult = db.array(db.COLUMN, "select CHAR_VALUE from COMMUNICATION" - + " left join AB_KEYWORD_ENTRY on KEYID = MEDIUM_ID" - + " left join AB_KEYWORD_ATTRIBUTERELATION on AB_KEYWORD_ENTRY_ID = AB_KEYWORD_ENTRYID" - + " where STANDARD = 1 and CONTACT_ID = '" + pContactID + "' and KEYID in ('" + CommUtil.getMediumIdsByCategory(pMediumCategory).join("', '") + "')"); - - return dbResult.indexOf(pMediumCategory) !== -1; -} - -/** - * Resolves the given pMediumID with the category. - * - * @param {String} pMediumID ID of the medium to resolve. - * @return {String} Resovled category. - */ -StandardObject.prototype._getMediumCategory = function (pMediumID) { - var categories = KeywordUtils.getAttributeRelationsByKey(pMediumID, $KeywordRegistry.communicationMedium()) - - return categories.category; -} - -/** - * Will set the given communication ID as standard. (Will update the `STANDARD` - * column.) - * - * @param {String} pCommunicationID The communication ID to set as standard. - * @param {Number} pValue 0 or 1 (boolean) - */ -StandardObject.prototype._setStandardCommunication = function (pCommunicationID, pValue) { - // Assert. - this._assertObjectType(StandardObject.CONST_OBJECT_COMMUNICATION()); - - // Update data. - db.updateData( - "COMMUNICATION", - ["STANDARD"], - db.getColumnTypes("COMMUNICATION", ["STANDARD"]), - [pValue], - "COMMUNICATIONID = '" + pCommunicationID + "'"); -} - -/** - * Will return the Contact ID by the given communication ID. - * - * @param {String} pCommunicationID to get the contact ID for. - * @return The contact ID. - */ -StandardObject.prototype._getContactIdByCommunication = function (pCommunicationID) { - return db.cell("select CONTACT_ID from COMMUNICATION where COMMUNICATIONID = '" + pCommunicationID + "'"); -} - -StandardObject.prototype._isOrganisationAddress = function (pAddressID) { - return StandardObject.isOrganisationAddress(pAddressID); -} - -/** - * Check if the address is a organisation address. - * - * @param {String} pAddressID Communication ID to get the contact ID for. - * @return The contact ID. - */ -StandardObject.isOrganisationAddress = function (pAddressID) { - var contactID = db.cell("select CONTACTID from CONTACT where ADDRESS_ID = '" + pAddressID + "'"); - - if (!contactID) - return false; - - var contactType = ContactUtils.getContactTypeByContactId(contactID); - - return contactType == 1; +import("system.db"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); +import("Contact_lib"); +import("Communication_lib"); + +function StandardObject (pObjectType, pObjectID, pScopeType, pScopeID) { + if (!this._isValidType("object", pObjectType)) + throw new Error("StandardObject: Invalid object type") + if (!this._isValidType("scope", pScopeType)) + throw new Error("StandardObject: Invalid scope type") + + this.objectType = pObjectType + this.objectID = pObjectID + this.scopeType = pScopeType + this.scopeID = pScopeID +} + +StandardObject.CONST_OBJECT_ADDRESS = function () { + return "Address" +} + +StandardObject.CONST_OBJECT_COMMUNICATION = function () { + return "Communication" +} + +StandardObject.CONST_SCOPE_PERSON = function () { + return "Person" +} + +StandardObject.CONST_SCOPE_ORGANISATION = function () { + return "Organisation" +} + +StandardObject.prototype._isValidType = function (pFor, pType) { + var validObjectTypes = ["Address", "Communication"] + var validScopeTypes = ["Person", "Organisation"] + if (pFor === "object") { + return validObjectTypes.indexOf(pType) !== -1 + } else if (pFor === "scope"){ + return validScopeTypes.indexOf(pType) !== -1 + } else { + return false; + } +} + +/** + * Asserts the object type of this instance against the + * given type. + * + * @throws Error if assertion fails. + */ +StandardObject.prototype._assertObjectType = function (pType) { + if (this.objectType !== pType) + throw new Error("Object assertion: Invalid type"); +} + +/** + * Asserts the scope type of this instance against the + * given type. + * + * @throws Error if assertion fails. + */ +StandardObject.prototype._assertScopeType = function (pType) { + if (this.scopeType !== pType) + throw new Error("Scope assertion: Invalid type"); +} + +/** + * Asserts that the object ID is NOT null. + * + * @throws Error if assertion fails. + */ +StandardObject.prototype._assertObjectIdNotNull = function () { + if (this.objectID === null) + throw new Error("Object assertion: ID is null"); +} + +/** + * Asserts that the scope ID is NOT null. + * + * @throws Error if assertion fails. + */ +StandardObject.prototype._assertScopeIdNotNull = function () { + if (this.scopeID === null) + throw new Error("Scope assertion: ID is null"); +} + +/** + * Shall be executed in the `valueProcess` of the `ADDRESS_ID` in the + * `Person` entity. This function will take care about the standard address + * of the linked organisation.o + * + * @param pSelectedOrganisationID The ID of the currently selected organisation. + * @return Standard address to apply to the field or null + * (if no standard address was found) + */ +StandardObject.prototype.onPersonValueChange = function (pSelectedOrganisationID) { + this._assertScopeIdNotNull(); + + // Check if the organisation has an standard address + var addressID = this._getCompanyStandardAddress(pSelectedOrganisationID); + + return addressID; +} + +/** + * Shall be executed on the `onDBInsert` process of the recordContainer + * of the object type (Address or Communication). This algorithm works + * on a "random" basis: Which object gets first inserted will get the + * place as standard. + */ +StandardObject.prototype.onObjectInsert = function () { + this._assertObjectIdNotNull(); + this._assertScopeIdNotNull(); + + if (this.objectType === StandardObject.CONST_OBJECT_ADDRESS()) { + this._onAddressInsert(); + } else if (this.objectType === StandardObject.CONST_OBJECT_COMMUNICATION) { + this._onCommunicationInsert(); + } +} + +/** + * Shall be execute only on the `onDBInsert` process of the recordContainer + * of the `Address` entity. This will set the standard address on the + * contact if it's currently null. + */ +StandardObject.prototype._onAddressInsert = function () { + // Assert + this._assertObjectType(StandardObject.CONST_OBJECT_ADDRESS()); + + if (!this._hasContactStandardAddress(this.scopeID)) { + this._setContactStandardAddress(this.objectID, this.scopeID); + } +} + +StandardObject.prototype.onPersonUpdate = function (pOrganisationID) { + // Assert + this._assertScopeType(StandardObject.CONST_SCOPE_PERSON()); + + var isOrganisationAddress = this._isOrganisationAddress(this.scopeID); + + if (isOrganisationAddress) { + // Update to new address of org + var addressID = this._getCompanyStandardAddress(pOrganisationID); + + this._setContactStandardAddress(addressID, this.scopeID); + } +} + +StandardObject.prototype.onCommunicationInsert = function (pMediumID) { + // Assert + this._assertObjectType(StandardObject.CONST_OBJECT_COMMUNICATION()); + this._assertObjectIdNotNull(); + this._assertScopeIdNotNull(); + + var mediumCategory = this._getMediumCategory(pMediumID); + + var hasStandard = this._hasStandardCommunicationByMedium(this.scopeID, mediumCategory); + if (!hasStandard) { + this._setStandardCommunication(this.objectID, 1); + } +} + +StandardObject.prototype.onCommunicationUpdate = function (pMediumID) { + // Assert + this._assertObjectType(StandardObject.CONST_OBJECT_COMMUNICATION()); + this._assertObjectIdNotNull(); + this._assertScopeIdNotNull(); + + this._setStandardCommunication(this.objectID, 0); + + var mediumCategory = this._getMediumCategory(pMediumID); + + var contactID = this._getContactIdByCommunication(this.objectID); + + var hasStandard = this._hasStandardCommunicationByMedium(contactID, mediumCategory); + if (!hasStandard) + this._setStandardCommunication(this.objectID, 1); +} + +/** + * Checks if the given contact ID has any address ID set. If there is a standard + * address it will return `true`, otherwise `false`. This function asserts that + * it's currently working on a `Address` object. + * + * @param {String} pContactID Contact ID to check. + * @return {Boolean} If the contact ID has standard address. + */ +StandardObject.prototype._hasContactStandardAddress = function (pContactID) { + this._assertObjectType(StandardObject.CONST_OBJECT_ADDRESS()); + + var databaseResult = db.cell("select ADDRESS_ID from CONTACT" + + " where CONTACTID = '" + pContactID + "'"); + + return databaseResult !== ""; +} + +/** + * Will set the given address ID on the given contact ID. This function asserts + * that it's currently working on an `Address` object. + * + * @param {String} pAddressID New address ID to set on the contact. + * @param {String} pContactID The contact ID to set the address ID on. + */ +StandardObject.prototype._setContactStandardAddress = function (pAddressID, pContactID) { + // Assert. + this._assertObjectType(StandardObject.CONST_OBJECT_ADDRESS()); + + // Update data. + db.updateData( + "CONTACT", + ["ADDRESS_ID"], + db.getColumnTypes("CONTACT", ["ADDRESS_ID"]), + [pAddressID], + "CONTACTID = '" + pContactID + "'"); +} + +/** + * Will return the standard address of the given organisation. If the organisation + * has no standard address set it will just return null. + * + * @return Standard address of the organisation or null. + */ +StandardObject.prototype._getCompanyStandardAddress = function (pOrganisationID) { + var addressIdResult = db.cell("select ADDRESS_ID from CONTACT" + + " where ORGANISATION_ID = '" + pOrganisationID + "'" + + " and ADDRESS_ID is not null and PERSON_ID is null"); + + if (addressIdResult === "") + return null; + return addressIdResult; +} + +/** + * Checks if the given contact ID already has a standard set with the given medium + * category. + * + * @param {String} pContactID Contact ID to check. + * @param {String} pMediumCategory Medium category to check. + * @return {Boolean} If the contact already has a standard addres with the given + * medium category. + */ +StandardObject.prototype._hasStandardCommunicationByMedium = function (pContactID, pMediumCategory) { + var dbResult = db.array(db.COLUMN, "select CHAR_VALUE from COMMUNICATION" + + " left join AB_KEYWORD_ENTRY on KEYID = MEDIUM_ID" + + " left join AB_KEYWORD_ATTRIBUTERELATION on AB_KEYWORD_ENTRY_ID = AB_KEYWORD_ENTRYID" + + " where STANDARD = 1 and CONTACT_ID = '" + pContactID + "' and KEYID in ('" + CommUtil.getMediumIdsByCategory(pMediumCategory).join("', '") + "')"); + + return dbResult.indexOf(pMediumCategory) !== -1; +} + +/** + * Resolves the given pMediumID with the category. + * + * @param {String} pMediumID ID of the medium to resolve. + * @return {String} Resovled category. + */ +StandardObject.prototype._getMediumCategory = function (pMediumID) { + var categories = KeywordUtils.getAttributeRelationsByKey(pMediumID, $KeywordRegistry.communicationMedium()) + + return categories.category; +} + +/** + * Will set the given communication ID as standard. (Will update the `STANDARD` + * column.) + * + * @param {String} pCommunicationID The communication ID to set as standard. + * @param {Number} pValue 0 or 1 (boolean) + */ +StandardObject.prototype._setStandardCommunication = function (pCommunicationID, pValue) { + // Assert. + this._assertObjectType(StandardObject.CONST_OBJECT_COMMUNICATION()); + + // Update data. + db.updateData( + "COMMUNICATION", + ["STANDARD"], + db.getColumnTypes("COMMUNICATION", ["STANDARD"]), + [pValue], + "COMMUNICATIONID = '" + pCommunicationID + "'"); +} + +/** + * Will return the Contact ID by the given communication ID. + * + * @param {String} pCommunicationID to get the contact ID for. + * @return The contact ID. + */ +StandardObject.prototype._getContactIdByCommunication = function (pCommunicationID) { + return db.cell("select CONTACT_ID from COMMUNICATION where COMMUNICATIONID = '" + pCommunicationID + "'"); +} + +StandardObject.prototype._isOrganisationAddress = function (pAddressID) { + return StandardObject.isOrganisationAddress(pAddressID); +} + +/** + * Check if the address is a organisation address. + * + * @param {String} pAddressID Communication ID to get the contact ID for. + * @return The contact ID. + */ +StandardObject.isOrganisationAddress = function (pAddressID) { + var contactID = db.cell("select CONTACTID from CONTACT where ADDRESS_ID = '" + pAddressID + "'"); + + if (!contactID) + return false; + + var contactType = ContactUtils.getContactTypeByContactId(contactID); + + return contactType == 1; } \ No newline at end of file diff --git a/process/Turnover_lib/Turnover_lib.aod b/process/Turnover_lib/Turnover_lib.aod index 28bacd7d8eaa8d0f3bd01ed7f72c229487b2372e..1981ae2e5725652ae910bc4b85fb8dc002871de0 100644 --- a/process/Turnover_lib/Turnover_lib.aod +++ b/process/Turnover_lib/Turnover_lib.aod @@ -1,9 +1,9 @@ -<?xml version="1.0" encoding="UTF-8"?> -<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> - <name>Turnover_lib</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <process>%aditoprj%/process/Turnover_lib/process.js</process> - <variants> - <element>LIBRARY</element> - </variants> -</process> +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> + <name>Turnover_lib</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/Turnover_lib/process.js</process> + <variants> + <element>LIBRARY</element> + </variants> +</process> diff --git a/process/Turnover_lib/process.js b/process/Turnover_lib/process.js index 3e61ef64230b04645ea8f06d36784182cd454788..884ee0da64c94eb068f264c3872ef0857745a1d9 100644 --- a/process/Turnover_lib/process.js +++ b/process/Turnover_lib/process.js @@ -1,78 +1,78 @@ -import("system.translate"); -import("KeywordRegistry_basic"); -import("Keyword_lib"); -import("system.SQLTYPES"); -import("system.db"); -import("system.neon"); -import("Context_lib"); - -/** - * Methods used for turnover data. - * Do not create an instance of this! - * - * @class - */ -function TurnoverUtil() {} - -/** - * get all turnover data. - * - * @param {Number} pMaxYear the maximum year - * @param {Number} pYearCount count of years to select - * - * @return {String[][]} - */ -TurnoverUtil.getTurnoverData = function (pMaxYear, pYearCount) -{ - var turnoverCategory = translate.text('Turnover'); - - var minYear = pMaxYear - pYearCount + 1; - - // load data - var data = db.table(SqlCondition.begin() - .and("SALESORDERITEM.OPTIONAL <> 1") - .andPrepare("SALESORDER.SALESORDERDATE", pMaxYear, "year(#) <= ?", SQLTYPES.INTEGER) - .andPrepare("SALESORDER.SALESORDERDATE", minYear, "year(#) >= ?", SQLTYPES.INTEGER) - .buildSql("select '" + turnoverCategory + "', year(SALESORDERDATE) yearNum, month(SALESORDERDATE) monthNum, SALESORDERITEM.DISCOUNT discount, SALESORDERITEM.VAT vat, SALESORDERITEM.PRICE price, sum(SALESORDERITEM.QUANTITY) quantity, SALESORDERITEM.GROUPCODEID prodGroup, (" + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "SALESORDERITEM.GROUPCODEID") + ") prodGroupName \n\ - from SALESORDER \n\ - join SALESORDERITEM on SALESORDERITEM.SALESORDER_ID = SALESORDER.SALESORDERID", "1=2", "group by year(SALESORDERDATE), month(SALESORDERDATE), SALESORDERITEM.GROUPCODEID, SALESORDERITEM.DISCOUNT, SALESORDERITEM.VAT, SALESORDERITEM.PRICE \n\ - order by yearNum, monthNum ")); - - return data; -} - -/** - * get forecast data - * - * @param {Number} pMaxYear the maximum year - * @param {Number} pYearCount count of years to select - * - * @return {String[][]} - */ -TurnoverUtil.getForecastData = function (pMaxYear, pYearCount) -{ - var forecastCategory = translate.text('Forecast'); - - var minYear = pMaxYear - pYearCount + 1; - - // load data - var data = db.table(SqlCondition.begin() - .andPrepare("SALESPROJECT_FORECAST.DATE_START", pMaxYear, "year(#) <= ?", SQLTYPES.INTEGER) - .andPrepare("SALESPROJECT_FORECAST.DATE_START", minYear, "year(#) >= ?", SQLTYPES.INTEGER) - .buildSql("select '" + forecastCategory + "', year(DATE_START) yearNum, month(DATE_START) monthNum, 0 discount, 0 vat, sum(VOLUME) price, 1 quantity, GROUPCODE prodGroup, (" + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "GROUPCODE") + ") prodGroupName from SALESPROJECT_FORECAST", "1=2", " group by year(DATE_START), month(DATE_START), GROUPCODE order by yearNum, monthNum")) - - return data; -} - -/** - * get turnover data - * - * @param {Number} pMaxYear the maximum year - * @param {Number} pYearCount count of years to select - * - * @return {String[][]} - */ -TurnoverUtil.getTurnoverAndForecastData = function (pMaxYear, pYearCount) -{ - return TurnoverUtil.getTurnoverData(pMaxYear, pYearCount).concat(TurnoverUtil.getForecastData(pMaxYear, pYearCount)); +import("system.translate"); +import("KeywordRegistry_basic"); +import("Keyword_lib"); +import("system.SQLTYPES"); +import("system.db"); +import("system.neon"); +import("Context_lib"); + +/** + * Methods used for turnover data. + * Do not create an instance of this! + * + * @class + */ +function TurnoverUtil() {} + +/** + * get all turnover data. + * + * @param {Number} pMaxYear the maximum year + * @param {Number} pYearCount count of years to select + * + * @return {String[][]} + */ +TurnoverUtil.getTurnoverData = function (pMaxYear, pYearCount) +{ + var turnoverCategory = translate.text('Turnover'); + + var minYear = pMaxYear - pYearCount + 1; + + // load data + var data = db.table(SqlCondition.begin() + .and("SALESORDERITEM.OPTIONAL <> 1") + .andPrepare("SALESORDER.SALESORDERDATE", pMaxYear, "year(#) <= ?", SQLTYPES.INTEGER) + .andPrepare("SALESORDER.SALESORDERDATE", minYear, "year(#) >= ?", SQLTYPES.INTEGER) + .buildSql("select '" + turnoverCategory + "', year(SALESORDERDATE) yearNum, month(SALESORDERDATE) monthNum, SALESORDERITEM.DISCOUNT discount, SALESORDERITEM.VAT vat, SALESORDERITEM.PRICE price, sum(SALESORDERITEM.QUANTITY) quantity, SALESORDERITEM.GROUPCODEID prodGroup, (" + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "SALESORDERITEM.GROUPCODEID") + ") prodGroupName \n\ + from SALESORDER \n\ + join SALESORDERITEM on SALESORDERITEM.SALESORDER_ID = SALESORDER.SALESORDERID", "1=2", "group by year(SALESORDERDATE), month(SALESORDERDATE), SALESORDERITEM.GROUPCODEID, SALESORDERITEM.DISCOUNT, SALESORDERITEM.VAT, SALESORDERITEM.PRICE \n\ + order by yearNum, monthNum ")); + + return data; +} + +/** + * get forecast data + * + * @param {Number} pMaxYear the maximum year + * @param {Number} pYearCount count of years to select + * + * @return {String[][]} + */ +TurnoverUtil.getForecastData = function (pMaxYear, pYearCount) +{ + var forecastCategory = translate.text('Forecast'); + + var minYear = pMaxYear - pYearCount + 1; + + // load data + var data = db.table(SqlCondition.begin() + .andPrepare("SALESPROJECT_FORECAST.DATE_START", pMaxYear, "year(#) <= ?", SQLTYPES.INTEGER) + .andPrepare("SALESPROJECT_FORECAST.DATE_START", minYear, "year(#) >= ?", SQLTYPES.INTEGER) + .buildSql("select '" + forecastCategory + "', year(DATE_START) yearNum, month(DATE_START) monthNum, 0 discount, 0 vat, sum(VOLUME) price, 1 quantity, GROUPCODE prodGroup, (" + KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.productGroupcode(), "GROUPCODE") + ") prodGroupName from SALESPROJECT_FORECAST", "1=2", " group by year(DATE_START), month(DATE_START), GROUPCODE order by yearNum, monthNum")) + + return data; +} + +/** + * get turnover data + * + * @param {Number} pMaxYear the maximum year + * @param {Number} pYearCount count of years to select + * + * @return {String[][]} + */ +TurnoverUtil.getTurnoverAndForecastData = function (pMaxYear, pYearCount) +{ + return TurnoverUtil.getTurnoverData(pMaxYear, pYearCount).concat(TurnoverUtil.getForecastData(pMaxYear, pYearCount)); } \ No newline at end of file diff --git a/process/Util_lib/process.js b/process/Util_lib/process.js index ddbb258a847462214bdf71f3c3870b3974d65e65..e058f70342efe42dc5d7fd7c421f16b715690947 100644 --- a/process/Util_lib/process.js +++ b/process/Util_lib/process.js @@ -1,617 +1,617 @@ -import("system.logging"); -import("system.neon"); -import("system.project"); -import("system.process"); -import("system.db"); -import("system.util"); -import("system.translate"); -import("system.text"); -import("system.vars"); -import("system.swing"); -import("system.question"); -import("system.eMath"); -import("system.datetime"); -import("Offer_lib"); -import("Date_lib"); - -/** - * Class containing static utility functions for string-actions - * Do not create an instance of this - * - * @class - */ -function StringUtils(){} - -/** - * concats severel elements by a separator; the separator is only applied if a element is not null and not an empty string ""; - * - * @param {String} pSeparator specifies how the not empty elements shall be concatenated - * @param {String[]} pElements elements that shall be joined by the separator - * - * @return {String} concatenated string; if all elements are empty an emtpy string is returned - * - */ -StringUtils.concat = function(pSeparator, pElements) -{ - var res = pElements.filter(function(e){ - return e != null && e != ""; - }).join(pSeparator); - return res; -}; - -/** - * Class containing static utility functions for numbers - * Do not create an instance of this - * - * @class - */ -function NumberUtils(){} - -/** - * Check iv the value is inside of the min / max values. - * INCLUDING min / max - * - * @param {Number} pValue value to check - * @param {Number} pMin min value INCLUSIVE - * @param {Number} pMax max value INCLUSIVE - * @param {Boolean} [pIgnoreNull=true] return True if pValue is null - * - * @return {Boolean} - */ -NumberUtils.isInside = function(pValue, pMin, pMax, pIgnoreNull) -{ - if (pIgnoreNull == undefined) - pIgnoreNull = true; - - return pValue >= pMin && pValue <= pMax || pIgnoreNull && (pValue == null || isNaN(pValue)); -}; - -/** - * For use in validationProcess. Calls result.string(...) with error message, if number is not inside of the given values - * INCLUDING min / max. - * - * @param {Number} pTitle title to display in error message. Should be the name of the field and it will be translated. - * @param {Number} pValue value to check - * @param {Number} pMin min value INCLUSIVE - * @param {Number} pMax max value INCLUSIVE - * @param {Boolean} [pIgnoreNull=true] return True if pValue is null - * - * @return {String|False} returns the error message or false - * - * @example - * var value = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.DISCOUNT")); <br> - * <br> - * var validationResult = NumberUtils.validateIsBetweenFloat("Discount", value, 0, 100); <br> - * <br> - * if (validationResult) <br> - * { <br> - * result.string(validationResult); <br> - * } <br> - */ -NumberUtils.validateIsBetweenFloat = function(pTitle, pValue, pMin, pMax, pIgnoreNull) -{ - if(pValue.includes(",")) - pValue = pValue.replace(",", "."); - - var discount = parseFloat(pValue); - - if(isNaN(discount)) - return false; - - if (!NumberUtils.isInside(discount, 0, 100, pIgnoreNull)) - { - return (translate.withArguments("${MIN_MAX_ERROR} field: %0, value: %1, min: %2, max: %3", [translate.text(pTitle), discount, pMin, pMax])); - } - return false; -} - -/** - * Class containing static utility functions for use with arrays - * Do not create an instance of this! - * - * @class - */ -function ArrayUtils() {} - -/** - * sorts a two dimensional array by the given index - * - * @param {Array} targetArray the Array to be sorted - * @param {String} index the index of the field to sort by - * @param {Boolean} [sortAsc=false] TRUE sorts ascending, FALSE sorts decending - * @param {Boolean} [isNumber=false] TRUE sorts numerical, FALSE or undefined sorts alphanumerical - * - * @return targetArray - * - * @throws {RangeError} if index is outside pArray.length - * - * - */ -ArrayUtils.sort2d = function(targetArray, index, sortAsc, isNumber) { - if (targetArray.length == 0) - return targetArray; - if (targetArray[0].length == 0) - return targetArray; - if (index >= targetArray[0].length) - throw new RangeError("Index Out Of Bounds: " + index + " >= " + targetArray[0].length); - - var sortFn = function (x, y) { - if ( isNumber ) { - xx = Number(x[index]); - yy = Number(y[index]); - } - else { - xx = x[index]; - yy = y[index]; - - xx = xx.toLowerCase(); - xx = xx.replace(/ä/g,"ae"); - xx = xx.replace(/ö/g,"oe"); - xx = xx.replace(/ü/g,"ue"); - xx = xx.replace(/ß/g,"ss"); - - yy = yy.toLowerCase(); - yy = yy.replace(/ä/g,"ae"); - yy = yy.replace(/ö/g,"oe"); - yy = yy.replace(/ü/g,"ue"); - yy = yy.replace(/ß/g,"ss"); - } - if (xx == yy) - return 0; - if (xx < yy) - return (sortAsc ? -1 : 1); - return (sortAsc ? 1 : -1); - } - - targetArray.sort(sortFn); - return targetArray -} - -/** -* sorts an array up to 6 columns with sortorder -* -* @param {Array} targetArray req the array with data -* @param {Integer} us req the Sortorder for Column 1 = Param u (1=asc, -1=desc) -* @param {Integer} u req the 1 Column -* @param {Integer} vs opt the Sortorder for Column 2 = Param v (1=asc, -1=desc) -* @param {Integer} v opt the 2 Column -* @param {Integer} ws opt the Sortorder for Column 3 = Param w (1=asc, -1=desc) -* @param {Integer} w opt the 3 Column -* @param {Integer} xs opt the Sortorder for Column 4 = Param x (1=asc, -1=desc) -* @param {Integer} x opt the 4 Column -* @param {Integer} ys opt the Sortorder for Column 5 = Param y (1=asc, -1=desc) -* @param {Integer} y opt the 5 Column -* @param {Integer} zs opt the Sortorder for Column 6 = Param z (1=asc, -1=desc) -* @param {Integer} z opt the 6 Column -* -* @return {void} -*/ -ArrayUtils.sortMulti = function(targetArray, us, u, vs, v, ws, w, xs, x, ys, y, zs, z) { - /* - * sort of a two dim array, up to 6 columns - * - * @param {String} a req value 1, first compared element - * @param {String} b req value 2, sencond compared element - * - * @return {Integer} -1 - set a below b, 0 - equal, 1 - set b below a - */ - var sortFn = function(a, b) { - var stringComparison = function(a, b) { - a = a.toLowerCase(); - a = a.replace(/ä/g,"ae"); - a = a.replace(/ö/g,"oe"); - a = a.replace(/ü/g,"ue"); - a = a.replace(/ß/g,"ss"); - - b = b.toLowerCase(); - b = b.replace(/ä/g,"ae"); - b = b.replace(/ö/g,"oe"); - b = b.replace(/ü/g,"ue"); - b = b.replace(/ß/g,"ss"); - - return( a == b ) ? 0 : ( a > b ) ? 1 : -1; - } - - - var swap=0; - - if (isNaN(a[u] - b[u])) // if there is a string in the first compared element - if( isNaN(a[u]) && isNaN(b[u]) ) // if both are strings, - swap = stringComparison(a[u], b[u]); // then: true - false = 1; false - true = -1 - else - swap = (isNaN(a[u]) ? 1 : -1); - else - swap = (a[u] - b[u]); - - if ((v == undefined) || (swap != 0)) - return swap * us; - else - if (isNaN(a[v] - b[v])) - if ((isNaN(a[v])) && (isNaN(b[v]))) - swap = stringComparison(a[v], b[v]); - else - swap = (isNaN(a[v]) ? 1 : -1); - else - swap = (a[v] - b[v]); - - if ((w == undefined) || (swap != 0)) - return swap * vs; - else - if (isNaN(a[w] - b[w])) - if ((isNaN(a[w])) && (isNaN(b[w]))) - swap = stringComparison(a[w], b[w]); - else - swap = (isNaN(a[w]) ? 1 : -1); - else - swap = (a[w] - b[w]); - - if ((x == undefined) || (swap != 0)) - return swap * ws; - else - if (isNaN(a[x] - b[x])) - if ((isNaN(a[x])) && (isNaN(b[x]))) - swap = stringComparison(a[x], b[x]); - else - swap = (isNaN(a[x]) ? 1 : -1); - else - swap = (a[x] - b[x]); - - if ((y == undefined) || (swap != 0)) - return swap * xs; - else - if (isNaN(a[y] - b[y])) - if ((isNaN(a[y])) && (isNaN(b[y]))) - swap = stringComparison(a[y], b[y]); - else - swap = (isNaN(a[y]) ? 1 : -1); - else - swap = (a[y] - b[y]); - - if ((z == undefined) || (swap != 0)) - return swap * ys; - else - if(isNaN(a[z] - b[z])) - if((isNaN(a[z])) && (isNaN(b[z]))) - swap = stringComparison(a[z], b[z]); - else - swap = (isNaN(a[z]) ? 1 : -1); - else - swap = (a[z] - b[z]); - - return swap * zs; - } - - targetArray.sort(sortFn); - return targetArray; -} - -/** -* removes an specific element from an array -* -* @param {Array} targetArray Array from which the element should be removed -* @param {String} elementPos index of the element which should be removed -* -* @return {Array} array containing the deleted element -*/ -ArrayUtils.removeElement = function(targetArray, elementPos) { - return targetArray.splice(elementPos, 1); -} - -/** - * concats arrays column by column; - * see example for more details - * - * @param {Array} array1 you have to pass at least 2 Arrays that shall be concated but you can pass as many as you want - * @param {Array} arrayN you have to pass at least 2 Arrays that shall be concated but you can pass as many as you want - * - * @return {Array} concatenated array - * - * @example - * var a = ["a", "b", "c"]; - * var b = ["A", "B", "C"]; - * logging.show(JSON.stringify(concatArrayColumns(a, b))); - * //[["a","A"],["b","B"],["c","C"]] - * - * logging.show(JSON.stringify(a.concat(b))); - * //["a","b","c","A","B","C"] - */ -ArrayUtils.concatColumns = function(array1, arrayN) { - var res, i, ii, l, ll, inpArr; - res = []; - - for (i = 0, l = arguments.length; i < l; i++) {//this function can handle an "unlimited" amount of functionparams - inpArr = arguments[i]; - for (ii = 0, ll = inpArr.length; ii < ll; ii++) { - if (res[ii] == undefined) - res[ii] = []; - - res[ii] = res[ii].concat(inpArr[ii]); - } - } - return res; -} - - -/** - * returns if an element is in an array; - * this is needed because there is currently no support for Array.prototype.includes() and we cannot easily use a polyfill and extend the Array.prototype - * - * @param {Array} targetArray array where the element should be searched in - * @param {AnyPrimitiveType} element the element which should be looked for - * @param {Boolean} [ignoreStringCase=false] if you've got a string array y - * - * @return {Boolean} true if it has the element - */ -ArrayUtils.hasElement = function(targetArray, element, ignoreStringCase) { - var i, l; - if (ignoreStringCase)//do only once to save ressources and not for every array element - element = element.toString().toLowerCase(); - for (i = 0, l = targetArray.length; i < l; i++) { - if (ignoreStringCase) { - if (targetArray[i].toString().toLowerCase() == element) - return true; - } - else { - if (targetArray[i] == element) - return true; - } - } - return false; -} - -/** - * joins an array but skips empty elements (null, undefined, "") - * - * @param {Array} pArray the array to join - * @param {String} [pSeparator=", "] the separator - * - * @return {String} the resulting string - */ -ArrayUtils.joinNonEmptyFields = function (pArray, pSeparator) -{ - return pArray.filter(function (element) - { - return element !== null && element !== undefined && element !== ""; - }).join(pSeparator); -} - -/** - * Class containing utility functions for use with JSON - * @class - */ -function JSONUtils() { -} - -/** - * A custom JSON.stringify() to - * - keep the functions as string - * - stringify JavaArrays - * - stringify undefined as undefined and not as null - * - * @param {Object} obj the object to stringify - * - * @return {String} the stringified object as string representation - */ -JSONUtils.customStringify = function(obj) { - //stringify part from JSON polyfill: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON - var toString = Object.prototype.toString; - var escMap = { - '"': '\\"', - '\\': '\\\\', - '\b': '\\b', - '\f': '\\f', - '\n': '\\n', - '\r': '\\r', - '\t': '\\t' - }; - var escFunc = function (m) { - return escMap[m] || '\\u' + (m.charCodeAt(0) + 0x10000).toString(16).substr(1); - }; - var escRE = /[\\"\u0000-\u001F\u2028\u2029]/g; - - var stringify = function (value){ - //because: "undefined == null" is true - if (value === undefined) { - return 'undefined'; - } else if (value == null) { - return 'null'; - } else if (typeof value === 'number') { - return isFinite(value) ? value.toString() : 'null'; - } else if (typeof value === 'boolean') { - return value.toString(); - } else if (typeof value === 'object') -{ - //check with "hasOwnProperty" because in JavaArrays using value.toJSON would cause an exception - if (toString.call(value) != '[object Map]' && value.hasOwnProperty("toJSON") && typeof value.toJSON === 'function') { - return value.toString(); - } else if (toString.call(value) === '[object Array]') { - var res = '['; - for (var i = 0; i < value.length; i++) - res += (i ? ', ' : '') + stringify(value[i]); - return res + ']'; - } else if (toString.call(value) === '[object Object]' || toString.call(value) === '[object Map]') { - var tmp = []; - for (var k in value) { - if (hasOwnProperty.call(value, k)) - tmp.push(stringify(k) + ': ' + stringify(value[k])); - } - return '{' + tmp.join(', ') + '}'; - //custom addition to stringify Rhino JavaArrays - } else if (toString.call(value) === '[object JavaArray]') { - return value.toSource().toString(); - } - } - //custom addition for function transform - //JSON.stringify returns null on functions (default) - //instead return source code of funciton for callback-functions - else if (typeof value === 'function') - { - return value.toString(); - } - - return '"' + value.toString().replace(escRE, escFunc) + '"'; - } - - return stringify(obj); -} - -/** - * Class containing functions for Javascript-Objects - * Do not create an instance of this - * - * @class - */ -function ObjectUtils(){} - -/** - * checks if a value exists in the object - * mostly usefull for primitve datatypes - * - * @param pObject {Object} the object where the value is searched - * @param pValue {Boolean|Number|String} the value that is searched - * - * @return {Boolean} true if the value was found, false if not - */ -ObjectUtils.existsValue = function(pObject, pValue) -{ - for (var key in pObject) - { - if (pObject[key] === pValue) - return true; - } - return false; -}; - -/** - * Class containing functions for sequential numbers - * Do not create an instance of this! - * - * @class - */ -function NumberSequencingUtils() {} - -/** - * Delivers the next unique number - * - * @param {String} pColumn database column that contains unique numbers - * @param {String} pTable database table - * @param {Number} [pStartNumber=1000] number to start numeration - * @param {String} [pCondition=no condition] SQL Where Conditon - * - * @result {String} next valid number - */ -NumberSequencingUtils.getNextUniqueNumber = function(pColumn, pTable, pStartNumber, pCondition) { - var maxNum = NumberSequencingUtils.getMaxUniqueNumber(pColumn, pTable, pCondition); - if(maxNum == "0") { - if(pStartNumber == undefined) pStartNumber = 1000; - return pStartNumber; - } - return eMath.addInt(maxNum, "1");//increment currently highest number -} - -/** - * Checks if the passed number is valid (has to be unique) - * - * @param {String} pNumber number to check - * @param {String} pColumn req database column that contains unique numbers - * @param {String} pTable req database table - * @param {String} pCondition opt SQL Where Conditon - * - * @result {boolean} passed number is valid - */ -NumberSequencingUtils.validateUniqueNumber = function(pNumber, pColumn, pTable, pCondition) { - var maxNum = NumberSequencingUtils.getMaxUniqueNumber(pColumn, pTable, pCondition); - return Number(pNumber) > Number(maxNum); -} - -/** - * Delivers the hightest number currently stored in database - * - * @param {String} pColumn req database column that contains unique numbers - * @param {String} pTable req database table - * @param {String} pCondition opt SQL Where Conditon - * - * @result {String} hightest number - */ -NumberSequencingUtils.getMaxUniqueNumber = function(pColumn, pTable, pCondition) { - var condition = ""; - if(pCondition != undefined) - condition += " where " + pCondition; - var maxNum = db.cell("select max(" + pColumn + ") from " + pTable + condition); - return maxNum == "" ? "0" : maxNum; -} - -/** - * functions for trees - */ -function TreeUtils () {} - -/** - * sorts an array in a way that a tree(-table) can be built (parents are added before children) - * This function does not garantee that the order of the children stays the same. If you need this, use TreeUtils.treeOrderBy - * - * consider the use of TreeUtils.treeOrderBy as it may be more performant, but it needs the layernumber of each row. - * - * @param {Array} pArray two-dimensional array to sort - * @param {Number} pUidIndex the index of the uid in a row - * @param {Number} pParentIdIndex the index of the parent id in a row - * - * @return {Array} the sorted array - */ -TreeUtils.sortArrayForTree = function (pArray, pUidIndex, pParentIdIndex) -{ - if (pArray.length <= 1) - return pArray; - var rows = {}; - var allIds = {}; - - pArray.forEach(function (row) {allIds[row[pUidIndex]] = true;}); - var index = 0; - - do { - var oldIndex = index; - pArray.forEach(function (row) - { - if (!(row[pUidIndex] in this) && (row[pParentIdIndex] in this || !allIds[row[pParentIdIndex]])) - this[row[pUidIndex]] = { - data : row, - index : index++ - }; - }, rows); - - /* stop if no new items were added, otherwise incorrect data (for instance - an item that is it's own parent) could cause an infinite loop */ - } while (oldIndex != index); - var sortedArray = new Array(index); - for (let i in rows) - sortedArray[rows[i].index] = rows[i].data; - return sortedArray; -} - -/** - * like TreeUtils.sortArrayForTree, this function garantees that parents are added before children - * But it works in a different way based on the layer number. - * - * It can also sort all children based on the given orderBys. For this you can Probvide an array of Indexes and direction (pOrderByIndexes) - * - * @param {Array} pData two-dimensional array to sort - * @param {Number} pLayerIndex The index of the layernumber-Field - * @param {Array[][]} pOrderByIndexes Array containing arrays of [field-index, direction]. The direction can be true (desc) or false (asc). - * - * @return {Array} the sorted array - */ -TreeUtils.treeOrderBy = function(pData, pLayerIndex, pOrderByIndexes) -{ - pOrderByIndexes = [[pLayerIndex, false]].concat(pOrderByIndexes) - - return pData.sort(function(pRow1, pRow2) - { - for (let i = 0; i < pOrderByIndexes.length; i++) { - var orderBy = pOrderByIndexes[i]; - if (pRow1[orderBy[0]] > pRow2[orderBy[0]]) return (orderBy[1] ? -1 : 1); - if (pRow1[orderBy[0]] < pRow2[orderBy[0]]) return (orderBy[1] ? 1 : -1); - } - - return 0; - }) +import("system.logging"); +import("system.neon"); +import("system.project"); +import("system.process"); +import("system.db"); +import("system.util"); +import("system.translate"); +import("system.text"); +import("system.vars"); +import("system.swing"); +import("system.question"); +import("system.eMath"); +import("system.datetime"); +import("Offer_lib"); +import("Date_lib"); + +/** + * Class containing static utility functions for string-actions + * Do not create an instance of this + * + * @class + */ +function StringUtils(){} + +/** + * concats severel elements by a separator; the separator is only applied if a element is not null and not an empty string ""; + * + * @param {String} pSeparator specifies how the not empty elements shall be concatenated + * @param {String[]} pElements elements that shall be joined by the separator + * + * @return {String} concatenated string; if all elements are empty an emtpy string is returned + * + */ +StringUtils.concat = function(pSeparator, pElements) +{ + var res = pElements.filter(function(e){ + return e != null && e != ""; + }).join(pSeparator); + return res; +}; + +/** + * Class containing static utility functions for numbers + * Do not create an instance of this + * + * @class + */ +function NumberUtils(){} + +/** + * Check iv the value is inside of the min / max values. + * INCLUDING min / max + * + * @param {Number} pValue value to check + * @param {Number} pMin min value INCLUSIVE + * @param {Number} pMax max value INCLUSIVE + * @param {Boolean} [pIgnoreNull=true] return True if pValue is null + * + * @return {Boolean} + */ +NumberUtils.isInside = function(pValue, pMin, pMax, pIgnoreNull) +{ + if (pIgnoreNull == undefined) + pIgnoreNull = true; + + return pValue >= pMin && pValue <= pMax || pIgnoreNull && (pValue == null || isNaN(pValue)); +}; + +/** + * For use in validationProcess. Calls result.string(...) with error message, if number is not inside of the given values + * INCLUDING min / max. + * + * @param {Number} pTitle title to display in error message. Should be the name of the field and it will be translated. + * @param {Number} pValue value to check + * @param {Number} pMin min value INCLUSIVE + * @param {Number} pMax max value INCLUSIVE + * @param {Boolean} [pIgnoreNull=true] return True if pValue is null + * + * @return {String|False} returns the error message or false + * + * @example + * var value = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.DISCOUNT")); <br> + * <br> + * var validationResult = NumberUtils.validateIsBetweenFloat("Discount", value, 0, 100); <br> + * <br> + * if (validationResult) <br> + * { <br> + * result.string(validationResult); <br> + * } <br> + */ +NumberUtils.validateIsBetweenFloat = function(pTitle, pValue, pMin, pMax, pIgnoreNull) +{ + if(pValue.includes(",")) + pValue = pValue.replace(",", "."); + + var discount = parseFloat(pValue); + + if(isNaN(discount)) + return false; + + if (!NumberUtils.isInside(discount, 0, 100, pIgnoreNull)) + { + return (translate.withArguments("${MIN_MAX_ERROR} field: %0, value: %1, min: %2, max: %3", [translate.text(pTitle), discount, pMin, pMax])); + } + return false; +} + +/** + * Class containing static utility functions for use with arrays + * Do not create an instance of this! + * + * @class + */ +function ArrayUtils() {} + +/** + * sorts a two dimensional array by the given index + * + * @param {Array} targetArray the Array to be sorted + * @param {String} index the index of the field to sort by + * @param {Boolean} [sortAsc=false] TRUE sorts ascending, FALSE sorts decending + * @param {Boolean} [isNumber=false] TRUE sorts numerical, FALSE or undefined sorts alphanumerical + * + * @return targetArray + * + * @throws {RangeError} if index is outside pArray.length + * + * + */ +ArrayUtils.sort2d = function(targetArray, index, sortAsc, isNumber) { + if (targetArray.length == 0) + return targetArray; + if (targetArray[0].length == 0) + return targetArray; + if (index >= targetArray[0].length) + throw new RangeError("Index Out Of Bounds: " + index + " >= " + targetArray[0].length); + + var sortFn = function (x, y) { + if ( isNumber ) { + xx = Number(x[index]); + yy = Number(y[index]); + } + else { + xx = x[index]; + yy = y[index]; + + xx = xx.toLowerCase(); + xx = xx.replace(/ä/g,"ae"); + xx = xx.replace(/ö/g,"oe"); + xx = xx.replace(/ü/g,"ue"); + xx = xx.replace(/ß/g,"ss"); + + yy = yy.toLowerCase(); + yy = yy.replace(/ä/g,"ae"); + yy = yy.replace(/ö/g,"oe"); + yy = yy.replace(/ü/g,"ue"); + yy = yy.replace(/ß/g,"ss"); + } + if (xx == yy) + return 0; + if (xx < yy) + return (sortAsc ? -1 : 1); + return (sortAsc ? 1 : -1); + } + + targetArray.sort(sortFn); + return targetArray +} + +/** +* sorts an array up to 6 columns with sortorder +* +* @param {Array} targetArray req the array with data +* @param {Integer} us req the Sortorder for Column 1 = Param u (1=asc, -1=desc) +* @param {Integer} u req the 1 Column +* @param {Integer} vs opt the Sortorder for Column 2 = Param v (1=asc, -1=desc) +* @param {Integer} v opt the 2 Column +* @param {Integer} ws opt the Sortorder for Column 3 = Param w (1=asc, -1=desc) +* @param {Integer} w opt the 3 Column +* @param {Integer} xs opt the Sortorder for Column 4 = Param x (1=asc, -1=desc) +* @param {Integer} x opt the 4 Column +* @param {Integer} ys opt the Sortorder for Column 5 = Param y (1=asc, -1=desc) +* @param {Integer} y opt the 5 Column +* @param {Integer} zs opt the Sortorder for Column 6 = Param z (1=asc, -1=desc) +* @param {Integer} z opt the 6 Column +* +* @return {void} +*/ +ArrayUtils.sortMulti = function(targetArray, us, u, vs, v, ws, w, xs, x, ys, y, zs, z) { + /* + * sort of a two dim array, up to 6 columns + * + * @param {String} a req value 1, first compared element + * @param {String} b req value 2, sencond compared element + * + * @return {Integer} -1 - set a below b, 0 - equal, 1 - set b below a + */ + var sortFn = function(a, b) { + var stringComparison = function(a, b) { + a = a.toLowerCase(); + a = a.replace(/ä/g,"ae"); + a = a.replace(/ö/g,"oe"); + a = a.replace(/ü/g,"ue"); + a = a.replace(/ß/g,"ss"); + + b = b.toLowerCase(); + b = b.replace(/ä/g,"ae"); + b = b.replace(/ö/g,"oe"); + b = b.replace(/ü/g,"ue"); + b = b.replace(/ß/g,"ss"); + + return( a == b ) ? 0 : ( a > b ) ? 1 : -1; + } + + + var swap=0; + + if (isNaN(a[u] - b[u])) // if there is a string in the first compared element + if( isNaN(a[u]) && isNaN(b[u]) ) // if both are strings, + swap = stringComparison(a[u], b[u]); // then: true - false = 1; false - true = -1 + else + swap = (isNaN(a[u]) ? 1 : -1); + else + swap = (a[u] - b[u]); + + if ((v == undefined) || (swap != 0)) + return swap * us; + else + if (isNaN(a[v] - b[v])) + if ((isNaN(a[v])) && (isNaN(b[v]))) + swap = stringComparison(a[v], b[v]); + else + swap = (isNaN(a[v]) ? 1 : -1); + else + swap = (a[v] - b[v]); + + if ((w == undefined) || (swap != 0)) + return swap * vs; + else + if (isNaN(a[w] - b[w])) + if ((isNaN(a[w])) && (isNaN(b[w]))) + swap = stringComparison(a[w], b[w]); + else + swap = (isNaN(a[w]) ? 1 : -1); + else + swap = (a[w] - b[w]); + + if ((x == undefined) || (swap != 0)) + return swap * ws; + else + if (isNaN(a[x] - b[x])) + if ((isNaN(a[x])) && (isNaN(b[x]))) + swap = stringComparison(a[x], b[x]); + else + swap = (isNaN(a[x]) ? 1 : -1); + else + swap = (a[x] - b[x]); + + if ((y == undefined) || (swap != 0)) + return swap * xs; + else + if (isNaN(a[y] - b[y])) + if ((isNaN(a[y])) && (isNaN(b[y]))) + swap = stringComparison(a[y], b[y]); + else + swap = (isNaN(a[y]) ? 1 : -1); + else + swap = (a[y] - b[y]); + + if ((z == undefined) || (swap != 0)) + return swap * ys; + else + if(isNaN(a[z] - b[z])) + if((isNaN(a[z])) && (isNaN(b[z]))) + swap = stringComparison(a[z], b[z]); + else + swap = (isNaN(a[z]) ? 1 : -1); + else + swap = (a[z] - b[z]); + + return swap * zs; + } + + targetArray.sort(sortFn); + return targetArray; +} + +/** +* removes an specific element from an array +* +* @param {Array} targetArray Array from which the element should be removed +* @param {String} elementPos index of the element which should be removed +* +* @return {Array} array containing the deleted element +*/ +ArrayUtils.removeElement = function(targetArray, elementPos) { + return targetArray.splice(elementPos, 1); +} + +/** + * concats arrays column by column; + * see example for more details + * + * @param {Array} array1 you have to pass at least 2 Arrays that shall be concated but you can pass as many as you want + * @param {Array} arrayN you have to pass at least 2 Arrays that shall be concated but you can pass as many as you want + * + * @return {Array} concatenated array + * + * @example + * var a = ["a", "b", "c"]; + * var b = ["A", "B", "C"]; + * logging.show(JSON.stringify(concatArrayColumns(a, b))); + * //[["a","A"],["b","B"],["c","C"]] + * + * logging.show(JSON.stringify(a.concat(b))); + * //["a","b","c","A","B","C"] + */ +ArrayUtils.concatColumns = function(array1, arrayN) { + var res, i, ii, l, ll, inpArr; + res = []; + + for (i = 0, l = arguments.length; i < l; i++) {//this function can handle an "unlimited" amount of functionparams + inpArr = arguments[i]; + for (ii = 0, ll = inpArr.length; ii < ll; ii++) { + if (res[ii] == undefined) + res[ii] = []; + + res[ii] = res[ii].concat(inpArr[ii]); + } + } + return res; +} + + +/** + * returns if an element is in an array; + * this is needed because there is currently no support for Array.prototype.includes() and we cannot easily use a polyfill and extend the Array.prototype + * + * @param {Array} targetArray array where the element should be searched in + * @param {AnyPrimitiveType} element the element which should be looked for + * @param {Boolean} [ignoreStringCase=false] if you've got a string array y + * + * @return {Boolean} true if it has the element + */ +ArrayUtils.hasElement = function(targetArray, element, ignoreStringCase) { + var i, l; + if (ignoreStringCase)//do only once to save ressources and not for every array element + element = element.toString().toLowerCase(); + for (i = 0, l = targetArray.length; i < l; i++) { + if (ignoreStringCase) { + if (targetArray[i].toString().toLowerCase() == element) + return true; + } + else { + if (targetArray[i] == element) + return true; + } + } + return false; +} + +/** + * joins an array but skips empty elements (null, undefined, "") + * + * @param {Array} pArray the array to join + * @param {String} [pSeparator=", "] the separator + * + * @return {String} the resulting string + */ +ArrayUtils.joinNonEmptyFields = function (pArray, pSeparator) +{ + return pArray.filter(function (element) + { + return element !== null && element !== undefined && element !== ""; + }).join(pSeparator); +} + +/** + * Class containing utility functions for use with JSON + * @class + */ +function JSONUtils() { +} + +/** + * A custom JSON.stringify() to + * - keep the functions as string + * - stringify JavaArrays + * - stringify undefined as undefined and not as null + * + * @param {Object} obj the object to stringify + * + * @return {String} the stringified object as string representation + */ +JSONUtils.customStringify = function(obj) { + //stringify part from JSON polyfill: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON + var toString = Object.prototype.toString; + var escMap = { + '"': '\\"', + '\\': '\\\\', + '\b': '\\b', + '\f': '\\f', + '\n': '\\n', + '\r': '\\r', + '\t': '\\t' + }; + var escFunc = function (m) { + return escMap[m] || '\\u' + (m.charCodeAt(0) + 0x10000).toString(16).substr(1); + }; + var escRE = /[\\"\u0000-\u001F\u2028\u2029]/g; + + var stringify = function (value){ + //because: "undefined == null" is true + if (value === undefined) { + return 'undefined'; + } else if (value == null) { + return 'null'; + } else if (typeof value === 'number') { + return isFinite(value) ? value.toString() : 'null'; + } else if (typeof value === 'boolean') { + return value.toString(); + } else if (typeof value === 'object') +{ + //check with "hasOwnProperty" because in JavaArrays using value.toJSON would cause an exception + if (toString.call(value) != '[object Map]' && value.hasOwnProperty("toJSON") && typeof value.toJSON === 'function') { + return value.toString(); + } else if (toString.call(value) === '[object Array]') { + var res = '['; + for (var i = 0; i < value.length; i++) + res += (i ? ', ' : '') + stringify(value[i]); + return res + ']'; + } else if (toString.call(value) === '[object Object]' || toString.call(value) === '[object Map]') { + var tmp = []; + for (var k in value) { + if (hasOwnProperty.call(value, k)) + tmp.push(stringify(k) + ': ' + stringify(value[k])); + } + return '{' + tmp.join(', ') + '}'; + //custom addition to stringify Rhino JavaArrays + } else if (toString.call(value) === '[object JavaArray]') { + return value.toSource().toString(); + } + } + //custom addition for function transform + //JSON.stringify returns null on functions (default) + //instead return source code of funciton for callback-functions + else if (typeof value === 'function') + { + return value.toString(); + } + + return '"' + value.toString().replace(escRE, escFunc) + '"'; + } + + return stringify(obj); +} + +/** + * Class containing functions for Javascript-Objects + * Do not create an instance of this + * + * @class + */ +function ObjectUtils(){} + +/** + * checks if a value exists in the object + * mostly usefull for primitve datatypes + * + * @param pObject {Object} the object where the value is searched + * @param pValue {Boolean|Number|String} the value that is searched + * + * @return {Boolean} true if the value was found, false if not + */ +ObjectUtils.existsValue = function(pObject, pValue) +{ + for (var key in pObject) + { + if (pObject[key] === pValue) + return true; + } + return false; +}; + +/** + * Class containing functions for sequential numbers + * Do not create an instance of this! + * + * @class + */ +function NumberSequencingUtils() {} + +/** + * Delivers the next unique number + * + * @param {String} pColumn database column that contains unique numbers + * @param {String} pTable database table + * @param {Number} [pStartNumber=1000] number to start numeration + * @param {String} [pCondition=no condition] SQL Where Conditon + * + * @result {String} next valid number + */ +NumberSequencingUtils.getNextUniqueNumber = function(pColumn, pTable, pStartNumber, pCondition) { + var maxNum = NumberSequencingUtils.getMaxUniqueNumber(pColumn, pTable, pCondition); + if(maxNum == "0") { + if(pStartNumber == undefined) pStartNumber = 1000; + return pStartNumber; + } + return eMath.addInt(maxNum, "1");//increment currently highest number +} + +/** + * Checks if the passed number is valid (has to be unique) + * + * @param {String} pNumber number to check + * @param {String} pColumn req database column that contains unique numbers + * @param {String} pTable req database table + * @param {String} pCondition opt SQL Where Conditon + * + * @result {boolean} passed number is valid + */ +NumberSequencingUtils.validateUniqueNumber = function(pNumber, pColumn, pTable, pCondition) { + var maxNum = NumberSequencingUtils.getMaxUniqueNumber(pColumn, pTable, pCondition); + return Number(pNumber) > Number(maxNum); +} + +/** + * Delivers the hightest number currently stored in database + * + * @param {String} pColumn req database column that contains unique numbers + * @param {String} pTable req database table + * @param {String} pCondition opt SQL Where Conditon + * + * @result {String} hightest number + */ +NumberSequencingUtils.getMaxUniqueNumber = function(pColumn, pTable, pCondition) { + var condition = ""; + if(pCondition != undefined) + condition += " where " + pCondition; + var maxNum = db.cell("select max(" + pColumn + ") from " + pTable + condition); + return maxNum == "" ? "0" : maxNum; +} + +/** + * functions for trees + */ +function TreeUtils () {} + +/** + * sorts an array in a way that a tree(-table) can be built (parents are added before children) + * This function does not garantee that the order of the children stays the same. If you need this, use TreeUtils.treeOrderBy + * + * consider the use of TreeUtils.treeOrderBy as it may be more performant, but it needs the layernumber of each row. + * + * @param {Array} pArray two-dimensional array to sort + * @param {Number} pUidIndex the index of the uid in a row + * @param {Number} pParentIdIndex the index of the parent id in a row + * + * @return {Array} the sorted array + */ +TreeUtils.sortArrayForTree = function (pArray, pUidIndex, pParentIdIndex) +{ + if (pArray.length <= 1) + return pArray; + var rows = {}; + var allIds = {}; + + pArray.forEach(function (row) {allIds[row[pUidIndex]] = true;}); + var index = 0; + + do { + var oldIndex = index; + pArray.forEach(function (row) + { + if (!(row[pUidIndex] in this) && (row[pParentIdIndex] in this || !allIds[row[pParentIdIndex]])) + this[row[pUidIndex]] = { + data : row, + index : index++ + }; + }, rows); + + /* stop if no new items were added, otherwise incorrect data (for instance + an item that is it's own parent) could cause an infinite loop */ + } while (oldIndex != index); + var sortedArray = new Array(index); + for (let i in rows) + sortedArray[rows[i].index] = rows[i].data; + return sortedArray; +} + +/** + * like TreeUtils.sortArrayForTree, this function garantees that parents are added before children + * But it works in a different way based on the layer number. + * + * It can also sort all children based on the given orderBys. For this you can Probvide an array of Indexes and direction (pOrderByIndexes) + * + * @param {Array} pData two-dimensional array to sort + * @param {Number} pLayerIndex The index of the layernumber-Field + * @param {Array[][]} pOrderByIndexes Array containing arrays of [field-index, direction]. The direction can be true (desc) or false (asc). + * + * @return {Array} the sorted array + */ +TreeUtils.treeOrderBy = function(pData, pLayerIndex, pOrderByIndexes) +{ + pOrderByIndexes = [[pLayerIndex, false]].concat(pOrderByIndexes) + + return pData.sort(function(pRow1, pRow2) + { + for (let i = 0; i < pOrderByIndexes.length; i++) { + var orderBy = pOrderByIndexes[i]; + if (pRow1[orderBy[0]] > pRow2[orderBy[0]]) return (orderBy[1] ? -1 : 1); + if (pRow1[orderBy[0]] < pRow2[orderBy[0]]) return (orderBy[1] ? 1 : -1); + } + + return 0; + }) } \ No newline at end of file diff --git a/process/WsValidation_lib/WsValidation_lib.aod b/process/WsValidation_lib/WsValidation_lib.aod index 521ca5a4571a2b608f148315da4cb4a1efd6f892..87bb88bd27524ebb6e88e2b5f99abad69df32e98 100644 --- a/process/WsValidation_lib/WsValidation_lib.aod +++ b/process/WsValidation_lib/WsValidation_lib.aod @@ -1,9 +1,9 @@ -<?xml version="1.0" encoding="UTF-8"?> -<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> - <name>WsValidation_lib</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <process>%aditoprj%/process/WsValidation_lib/process.js</process> - <variants> - <element>LIBRARY</element> - </variants> -</process> +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> + <name>WsValidation_lib</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/WsValidation_lib/process.js</process> + <variants> + <element>LIBRARY</element> + </variants> +</process> diff --git a/process/_test_clientProcess/_test_clientProcess.aod b/process/_test_clientProcess/_test_clientProcess.aod index f5019c9b8cf2a4ef9af8a2011d967f9f8bf3e421..d9fc5ecafdcd42994d8d78fabbf27d9b1b13dbc7 100644 --- a/process/_test_clientProcess/_test_clientProcess.aod +++ b/process/_test_clientProcess/_test_clientProcess.aod @@ -1,11 +1,11 @@ -<?xml version="1.0" encoding="UTF-8"?> -<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> - <name>_test_clientProcess</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <process>%aditoprj%/process/_test_clientProcess/process.js</process> - <publishAsWebservice v="true" /> - <alias>Data_alias</alias> - <variants> - <element>EXECUTABLE</element> - </variants> -</process> +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> + <name>_test_clientProcess</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/_test_clientProcess/process.js</process> + <publishAsWebservice v="true" /> + <alias>Data_alias</alias> + <variants> + <element>EXECUTABLE</element> + </variants> +</process> diff --git a/process/autostartNeon/process.js b/process/autostartNeon/process.js index 4be138216f2e17ec96f966951ba858c98c2c0c81..241241360ea8e16c258e83342ea241e634733b2b 100644 --- a/process/autostartNeon/process.js +++ b/process/autostartNeon/process.js @@ -1,21 +1,21 @@ -import("system.tools"); -import("system.logging"); -import("system.calendars") -import("system.notification") -import("system.text"); -import("system.util"); - -var users = ["Admin", "Birgit Leicht", "John Doe"] -calendars.addPermissions(users, calendars.VEVENT, ["READ", "WRITE"], null, false, calendars.SORTSTRATEGY_NATURAL); -calendars.setCheckAttendeesOnWrite(false); - -//var user = tools.getCurrentUser(); -//var notis = notification.getUserNotifications(user["name"], null); -// -//var noti = notis[0]; -//logging.log("noti USERID: " + noti); -//logging.log("noti2 USERID: " + noti[notification.USERID.toSource()]); -//notification.updateUserNotificationState(noti[notification.USERID], noti[notification.CONTENTID], notification.STATE_ARCHIVE); -// -//notis = notification.getUserNotifications(user["name"], null); +import("system.tools"); +import("system.logging"); +import("system.calendars") +import("system.notification") +import("system.text"); +import("system.util"); + +var users = ["Admin", "Birgit Leicht", "John Doe"] +calendars.addPermissions(users, calendars.VEVENT, ["READ", "WRITE"], null, false, calendars.SORTSTRATEGY_NATURAL); +calendars.setCheckAttendeesOnWrite(false); + +//var user = tools.getCurrentUser(); +//var notis = notification.getUserNotifications(user["name"], null); +// +//var noti = notis[0]; +//logging.log("noti USERID: " + noti); +//logging.log("noti2 USERID: " + noti[notification.USERID.toSource()]); +//notification.updateUserNotificationState(noti[notification.USERID], noti[notification.CONTENTID], notification.STATE_ARCHIVE); +// +//notis = notification.getUserNotifications(user["name"], null); //logging.log("notifications: " + notis[0][notification.STATE]); \ No newline at end of file diff --git a/process/blobHandler/process.js b/process/blobHandler/process.js index 0e58d547a035e2a6c9a67a31752c5723f3d777c4..ce84590c95bd6ad04f2e89398ca3e688dfdb0cf3 100644 --- a/process/blobHandler/process.js +++ b/process/blobHandler/process.js @@ -1,71 +1,71 @@ -import("Sql_lib"); -import("system.db"); -import("system.result"); -import("system.util"); -import("system.fileIO"); -import("system.vars"); - -var path = vars.get("$sys.serverhome") + "/binaryfiles/" -var operation = null; - -switch (vars.get("$local.operation")) -{ - case "CREATE": - operation = createBlob; - break; - case "DELETE": - operation = deleteBlob; - break; - case "UPDATE": - operation = updateBlob; - break; - case "READ": - operation = readBlob; - break; - default: - break; -} - -if (operation) -{ - operation(path, vars.get("$local.idvalue")); -} - -function createBlob (path, filename) -{ - _writeBlob(path + filename + ".0") -} - -function deleteBlob (path, filename) -{ - fileIO.remove(path + filename + ".0"); -} - -function updateBlob (path, filename) -{ - _writeBlob(path + filename + ".0"); -} - -function readBlob (path, filename) -{ - var fullPath = path + filename + ".0"; - var fromWhereCond = " from ASYS_BINARIES where ID = '" + filename + "'"; - - sqlHelper = new SqlMaskingUtils(); - - if (fileIO.exists(fullPath) && fileIO.canRead(fullPath)) - { - var blob = fileIO.getData(fullPath, util.DATA_BINARY); - result.string(blob); - } - else if (db.cell("select " + sqlHelper.bindataLength("BINDATA") + fromWhereCond) > 0) - { - blob = db.cell("select BINDATA " + fromWhereCond); - result.string(blob); - } -} - -function _writeBlob (fullPath) -{ - fileIO.storeData(fullPath, vars.get("$local.data"), util.DATA_BINARY, false); -} +import("Sql_lib"); +import("system.db"); +import("system.result"); +import("system.util"); +import("system.fileIO"); +import("system.vars"); + +var path = vars.get("$sys.serverhome") + "/binaryfiles/" +var operation = null; + +switch (vars.get("$local.operation")) +{ + case "CREATE": + operation = createBlob; + break; + case "DELETE": + operation = deleteBlob; + break; + case "UPDATE": + operation = updateBlob; + break; + case "READ": + operation = readBlob; + break; + default: + break; +} + +if (operation) +{ + operation(path, vars.get("$local.idvalue")); +} + +function createBlob (path, filename) +{ + _writeBlob(path + filename + ".0") +} + +function deleteBlob (path, filename) +{ + fileIO.remove(path + filename + ".0"); +} + +function updateBlob (path, filename) +{ + _writeBlob(path + filename + ".0"); +} + +function readBlob (path, filename) +{ + var fullPath = path + filename + ".0"; + var fromWhereCond = " from ASYS_BINARIES where ID = '" + filename + "'"; + + sqlHelper = new SqlMaskingUtils(); + + if (fileIO.exists(fullPath) && fileIO.canRead(fullPath)) + { + var blob = fileIO.getData(fullPath, util.DATA_BINARY); + result.string(blob); + } + else if (db.cell("select " + sqlHelper.bindataLength("BINDATA") + fromWhereCond) > 0) + { + blob = db.cell("select BINDATA " + fromWhereCond); + result.string(blob); + } +} + +function _writeBlob (fullPath) +{ + fileIO.storeData(fullPath, vars.get("$local.data"), util.DATA_BINARY, false); +} diff --git a/process/process_audit/process.js b/process/process_audit/process.js index 4b1e7955421b6ef81afdfbb2969dc098370f4bf2..cd61252fde70721975312c684e5066978099d88f 100644 --- a/process/process_audit/process.js +++ b/process/process_audit/process.js @@ -1,18 +1,18 @@ -import("system.logging"); -import("Loghistory_lib"); -import("system.vars"); -import("system.process"); - -var tableName = vars.get("$local.table"); -var id = vars.get("$local.idvalue"); -var columns = vars.get("$local.columns"); -var timestamp = vars.get("$local.timestamp"); -var newvalues = vars.get("$local.values"); -var oldvalues = vars.get("$local.oldvalues"); -var sqlAction = vars.get("$local.action"); -var userLogin = vars.get("$local.user"); - -if (sqlAction != 'X') -{ - (new LogHistoryExecutor(tableName, userLogin, columns, newvalues, oldvalues, timestamp, sqlAction, id)).execute(); -} +import("system.logging"); +import("Loghistory_lib"); +import("system.vars"); +import("system.process"); + +var tableName = vars.get("$local.table"); +var id = vars.get("$local.idvalue"); +var columns = vars.get("$local.columns"); +var timestamp = vars.get("$local.timestamp"); +var newvalues = vars.get("$local.values"); +var oldvalues = vars.get("$local.oldvalues"); +var sqlAction = vars.get("$local.action"); +var userLogin = vars.get("$local.user"); + +if (sqlAction != 'X') +{ + (new LogHistoryExecutor(tableName, userLogin, columns, newvalues, oldvalues, timestamp, sqlAction, id)).execute(); +} diff --git a/process/process_audit/process_audit.aod b/process/process_audit/process_audit.aod index 55b53099a0f6b045a1699cb473417840521a8b09..709a23650090bc28f6c0a2a233f43b8c49d3196b 100644 --- a/process/process_audit/process_audit.aod +++ b/process/process_audit/process_audit.aod @@ -1,7 +1,7 @@ -<?xml version="1.0" encoding="UTF-8"?> -<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> - <name>process_audit</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <process>%aditoprj%/process/process_audit/process.js</process> - <alias>Data_alias</alias> -</process> +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> + <name>process_audit</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/process_audit/process.js</process> + <alias>Data_alias</alias> +</process> diff --git a/process/rebuildIndex_serverProcess/process.js b/process/rebuildIndex_serverProcess/process.js index ba3ab1567c414d31ce8e304269d9f534d32ed974..606019c771f6a2f06731698402eae3d7882ec5e7 100644 --- a/process/rebuildIndex_serverProcess/process.js +++ b/process/rebuildIndex_serverProcess/process.js @@ -1,2 +1,2 @@ -import("system.indexsearch"); +import("system.indexsearch"); indexsearch.runIndexer(null); \ No newline at end of file diff --git a/process/rebuildIndex_serverProcess/rebuildIndex_serverProcess.aod b/process/rebuildIndex_serverProcess/rebuildIndex_serverProcess.aod index 4455787de667d6813030c4d24069f0b2f924f165..58abddf7d2739644ed6a65ea307c98082e68563a 100644 --- a/process/rebuildIndex_serverProcess/rebuildIndex_serverProcess.aod +++ b/process/rebuildIndex_serverProcess/rebuildIndex_serverProcess.aod @@ -1,11 +1,11 @@ -<?xml version="1.0" encoding="UTF-8"?> -<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> - <name>rebuildIndex_serverProcess</name> - <title>rebuild Index</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <process>%aditoprj%/process/rebuildIndex_serverProcess/process.js</process> - <alias>Data_alias</alias> - <variants> - <element>EXECUTABLE</element> - </variants> -</process> +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> + <name>rebuildIndex_serverProcess</name> + <title>rebuild Index</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/rebuildIndex_serverProcess/process.js</process> + <alias>Data_alias</alias> + <variants> + <element>EXECUTABLE</element> + </variants> +</process> diff --git a/process/runIndexer_ws/runIndexer_ws.aod b/process/runIndexer_ws/runIndexer_ws.aod index 2e40ae988b81f3efc48d1d7f0f3898f47fbe4ce0..db6e61aec93c39e7a721a23b9c3378a69beb6adb 100644 --- a/process/runIndexer_ws/runIndexer_ws.aod +++ b/process/runIndexer_ws/runIndexer_ws.aod @@ -1,14 +1,14 @@ -<?xml version="1.0" encoding="UTF-8"?> -<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> - <name>runIndexer_ws</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <process>%aditoprj%/process/runIndexer_ws/process.js</process> - <publishAsWebservice v="true" /> - <style>REST</style> - <loginTypeId>internal.none</loginTypeId> - <restrictedRoles /> - <alias>Data_alias</alias> - <variants> - <element>LIBRARY</element> - </variants> -</process> +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> + <name>runIndexer_ws</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/runIndexer_ws/process.js</process> + <publishAsWebservice v="true" /> + <style>REST</style> + <loginTypeId>internal.none</loginTypeId> + <restrictedRoles /> + <alias>Data_alias</alias> + <variants> + <element>LIBRARY</element> + </variants> +</process> diff --git a/report/Offer_report/reportData.jrxml b/report/Offer_report/reportData.jrxml index 7037fbbb48d0f25cda073aa8ae6cdfc791f82fb8..4f6ded63cf4fc07638c62391ab89f4a93c1a0dd0 100644 --- a/report/Offer_report/reportData.jrxml +++ b/report/Offer_report/reportData.jrxml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="report1" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="e7a916c8-3f9a-497d-84bb-3909b15271ea"> - <property name="ireport.zoom" value="1.0"/> + <property name="ireport.zoom" value="2.1435888100000016"/> + <property name="ireport.x" value="0"/> <property name="ireport.x" value="0"/> <property name="ireport.y" value="0"/> <parameter name="myAddr" class="java.lang.String"/> @@ -24,7 +24,34 @@ <parameter name="OfferDeliveryTerm" class="java.lang.String"/> <parameter name="responsible" class="java.lang.String"/> <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false"> - <defaultValueExpression><![CDATA["C:\\entwicklungszweige\\0.0\\project\\xRM-Basic2019\\report\\Offer_report\\"]]></defaultValueExpression> + <defaultValueExpression><![CDATA["C:\\adito\\0.0\\project\\basic 2019\\report\\Offer_report\\"]]></defaultValueExpression> + </parameter> + <defaultValueExpression><![CDATA["C:\\adito\\0.0\\project\\basic 2019\\report\\Offer_report\\"]]></defaultValueExpression> + </parameter> + <parameter name="adito.datasource.subdata" class="java.lang.Object"/> + <parameter name="SUMITEMSUM" class="java.lang.Double"/> + <parameter name="TOTAL" class="java.lang.String"/> + <parameter name="adito.image.myLogo" class="java.lang.String"/> + <parameter name="printDiscount" class="java.lang.String"/> + <parameter name="directlyResponsible" class="java.lang.String"/> + <queryString> + <![CDATA[]]> + </queryString> + <field name="OFFERITEM_QUANTITY" class="java.lang.String"/> + <field name="OFFERITEM_PRICE" class="java.lang.String"/> + <field name="OFFERITEM_DISCOUNT" class="java.lang.String"/> + <field name="OFFER_OFFERCODE" class="java.lang.String"/> + <field name="OFFER_CURRENCY" class="java.lang.String"/> + <field name="OFFER_OFFERDATE" class="java.lang.String"/> + <field name="OFFER_OFFERID" class="java.lang.String"/> + <field name="OFFERITEM_INFO" class="java.lang.String"/> + <field name="OFFERITEM_ASSIGNEDTO" class="java.lang.String"/> + <field name="OFFERITEM_VAT" class="java.lang.String"/> + <field name="OFFERITEM_ITEMNAME" class="java.lang.String"/> + <field name="OFFERITEM_OPTIONAL" class="java.lang.String"/> + <field name="OFFERITEM_ITEMPOSITION" class="java.lang.String"/> + <field name="OFFERITEM_UNITTEXT" class="java.lang.String"/> + <field name="PRODUCT_PRODUCTCODE" class="java.lang.String"/> </parameter> <parameter name="adito.datasource.subdata" class="java.lang.Object"/> <parameter name="SUMITEMSUM" class="java.lang.Double"/> diff --git a/report/Offer_report/reportData_subreport1.jrxml b/report/Offer_report/reportData_subreport1.jrxml index e0acf51a598f0dd26c9a9866b27cb64ec8ae46b7..45e05cbc8afa6664aeeca709bcf3ec6afcf86df2 100644 --- a/report/Offer_report/reportData_subreport1.jrxml +++ b/report/Offer_report/reportData_subreport1.jrxml @@ -1,40 +1,40 @@ -<?xml version="1.0" encoding="UTF-8"?> -<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="reportData_subreport1" pageWidth="200" pageHeight="802" columnWidth="200" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="65da6912-abcf-40ed-a854-750d851fe857"> - <property name="ireport.zoom" value="6.72749994932561"/> - <property name="ireport.x" value="0"/> - <property name="ireport.y" value="0"/> - <parameter name="PlusSalestax" class="java.lang.String"/> - <queryString> - <![CDATA[]]> - </queryString> - <field name="VAT" class="java.lang.String"/> - <field name="WERT" class="java.lang.Double"/> - <sortField name="VAT" order="Descending"/> - <variable name="WERT_1" class="java.lang.Double" resetType="Group" resetGroup="VAT" calculation="Sum"> - <variableExpression><![CDATA[$F{WERT}]]></variableExpression> - </variable> - <group name="VAT"> - <groupExpression><![CDATA[$F{VAT}]]></groupExpression> - <groupHeader> - <band height="15"> - <textField> - <reportElement x="0" y="0" width="117" height="15" uuid="050d8ed3-fb65-47cd-affd-3334e499ad35"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$P{PlusSalestax} + " (" + $F{VAT} + " %) "]]></textFieldExpression> - </textField> - <textField evaluationTime="Group" evaluationGroup="VAT" pattern="#,##0.00;-#,##0.00"> - <reportElement x="117" y="0" width="80" height="15" uuid="6bba70aa-7399-45b7-805a-1590fbe07209"/> - <textElement textAlignment="Right"> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$V{WERT_1}]]></textFieldExpression> - </textField> - </band> - </groupHeader> - </group> - <background> - <band splitType="Stretch"/> - </background> -</jasperReport> +<?xml version="1.0" encoding="UTF-8"?> +<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="reportData_subreport1" pageWidth="200" pageHeight="802" columnWidth="200" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="65da6912-abcf-40ed-a854-750d851fe857"> + <property name="ireport.zoom" value="6.72749994932561"/> + <property name="ireport.x" value="0"/> + <property name="ireport.y" value="0"/> + <parameter name="PlusSalestax" class="java.lang.String"/> + <queryString> + <![CDATA[]]> + </queryString> + <field name="VAT" class="java.lang.String"/> + <field name="WERT" class="java.lang.Double"/> + <sortField name="VAT" order="Descending"/> + <variable name="WERT_1" class="java.lang.Double" resetType="Group" resetGroup="VAT" calculation="Sum"> + <variableExpression><![CDATA[$F{WERT}]]></variableExpression> + </variable> + <group name="VAT"> + <groupExpression><![CDATA[$F{VAT}]]></groupExpression> + <groupHeader> + <band height="15"> + <textField> + <reportElement x="0" y="0" width="117" height="15" uuid="050d8ed3-fb65-47cd-affd-3334e499ad35"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{PlusSalestax} + " (" + $F{VAT} + " %) "]]></textFieldExpression> + </textField> + <textField evaluationTime="Group" evaluationGroup="VAT" pattern="#,##0.00;-#,##0.00"> + <reportElement x="117" y="0" width="80" height="15" uuid="6bba70aa-7399-45b7-805a-1590fbe07209"/> + <textElement textAlignment="Right"> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$V{WERT_1}]]></textFieldExpression> + </textField> + </band> + </groupHeader> + </group> + <background> + <band splitType="Stretch"/> + </background> +</jasperReport> diff --git a/report/Organisation_report/Aufgaben.jrxml b/report/Organisation_report/Aufgaben.jrxml index 970a22fdbc18e82a97aaf958abb7113c751f3dd8..63b40d5bead6802004bdca6f07ce35ceb3499d28 100644 --- a/report/Organisation_report/Aufgaben.jrxml +++ b/report/Organisation_report/Aufgaben.jrxml @@ -1,54 +1,54 @@ -<?xml version="1.0" encoding="UTF-8"?> -<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Aufgaben" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="85abee76-0173-491f-84c2-385ecdce25bb"> - <property name="ireport.zoom" value="1.6105100000000008"/> - <property name="ireport.x" value="0"/> - <property name="ireport.y" value="0"/> - <field name="STATUS" class="java.lang.String"/> - <field name="SUBJECT" class="java.lang.String"/> - <field name="CREATEDBY" class="java.lang.String"/> - <field name="RESPONSIBLE" class="java.lang.String"/> - <field name="INFOTEXT" class="java.lang.String"/> - <background> - <band splitType="Stretch"/> - </background> - <detail> - <band height="16" splitType="Stretch"> - <textField> - <reportElement x="3" y="0" width="102" height="15" uuid="f4c173de-6106-4330-87c2-b2ce021394ed"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$F{SUBJECT}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement x="118" y="0" width="168" height="15" uuid="389fc04e-a659-4ef9-923c-3ff73f5bfd18"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$F{INFOTEXT}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="296" y="0" width="104" height="15" uuid="e8c8b469-8f88-47f0-8056-4a3fe23fd6e5"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$F{STATUS}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="445" y="0" width="100" height="15" uuid="fd1db5d1-8dc3-43ba-a723-da731405325c"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$F{RESPONSIBLE}]]></textFieldExpression> - </textField> - </band> - <band height="5"> - <line> - <reportElement x="0" y="1" width="555" height="1" uuid="1259315f-6fe1-4e0c-bc4a-81208ef427c6"/> - <graphicElement> - <pen lineWidth="0.75" lineStyle="Dotted"/> - </graphicElement> - </line> - </band> - </detail> -</jasperReport> +<?xml version="1.0" encoding="UTF-8"?> +<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Aufgaben" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="85abee76-0173-491f-84c2-385ecdce25bb"> + <property name="ireport.zoom" value="1.6105100000000008"/> + <property name="ireport.x" value="0"/> + <property name="ireport.y" value="0"/> + <field name="STATUS" class="java.lang.String"/> + <field name="SUBJECT" class="java.lang.String"/> + <field name="CREATEDBY" class="java.lang.String"/> + <field name="RESPONSIBLE" class="java.lang.String"/> + <field name="INFOTEXT" class="java.lang.String"/> + <background> + <band splitType="Stretch"/> + </background> + <detail> + <band height="16" splitType="Stretch"> + <textField> + <reportElement x="3" y="0" width="102" height="15" uuid="f4c173de-6106-4330-87c2-b2ce021394ed"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$F{SUBJECT}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement x="118" y="0" width="168" height="15" uuid="389fc04e-a659-4ef9-923c-3ff73f5bfd18"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$F{INFOTEXT}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="296" y="0" width="104" height="15" uuid="e8c8b469-8f88-47f0-8056-4a3fe23fd6e5"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$F{STATUS}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="445" y="0" width="100" height="15" uuid="fd1db5d1-8dc3-43ba-a723-da731405325c"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$F{RESPONSIBLE}]]></textFieldExpression> + </textField> + </band> + <band height="5"> + <line> + <reportElement x="0" y="1" width="555" height="1" uuid="1259315f-6fe1-4e0c-bc4a-81208ef427c6"/> + <graphicElement> + <pen lineWidth="0.75" lineStyle="Dotted"/> + </graphicElement> + </line> + </band> + </detail> +</jasperReport> diff --git a/report/Organisation_report/Historien.jrxml b/report/Organisation_report/Historien.jrxml index fbae016a324a57139217543c2fc0ae9e20076daf..128e887aa67112c0b176cd1caaeb8b00551f62b7 100644 --- a/report/Organisation_report/Historien.jrxml +++ b/report/Organisation_report/Historien.jrxml @@ -1,53 +1,53 @@ -<?xml version="1.0" encoding="UTF-8"?> -<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Historien" pageWidth="555" pageHeight="572" orientation="Landscape" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="4066531c-fd6e-4cc9-a763-20a1023e8349"> - <property name="ireport.zoom" value="1.2100000000000004"/> - <property name="ireport.x" value="0"/> - <property name="ireport.y" value="0"/> - <field name="ENTRYDATE" class="java.lang.String"/> - <field name="MEDIUM" class="java.lang.String"/> - <field name="LOGIN" class="java.lang.String"/> - <field name="INFO" class="java.lang.String"/> - <background> - <band splitType="Stretch"/> - </background> - <detail> - <band height="17" splitType="Stretch"> - <textField> - <reportElement x="0" y="1" width="100" height="15" uuid="fc8f2d06-0eb7-4fd0-a91c-cda7a85dd06e"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$F{ENTRYDATE}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="103" y="1" width="100" height="15" uuid="d76859d9-0766-497e-9187-33ce879dc4f3"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$F{MEDIUM}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="222" y="1" width="91" height="15" uuid="df383fa6-a716-4f3c-ac97-d2beb7c329ac"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$F{LOGIN}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement x="345" y="1" width="116" height="15" uuid="dd8ad103-b2e2-4fad-afea-81854bf12e47"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$F{INFO}]]></textFieldExpression> - </textField> - </band> - <band height="4"> - <line> - <reportElement x="0" y="2" width="555" height="1" uuid="f895ff04-ead0-48c3-85c1-5f6772d79ab3"/> - <graphicElement> - <pen lineWidth="0.75" lineStyle="Dotted"/> - </graphicElement> - </line> - </band> - </detail> -</jasperReport> +<?xml version="1.0" encoding="UTF-8"?> +<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Historien" pageWidth="555" pageHeight="572" orientation="Landscape" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="4066531c-fd6e-4cc9-a763-20a1023e8349"> + <property name="ireport.zoom" value="1.2100000000000004"/> + <property name="ireport.x" value="0"/> + <property name="ireport.y" value="0"/> + <field name="ENTRYDATE" class="java.lang.String"/> + <field name="MEDIUM" class="java.lang.String"/> + <field name="LOGIN" class="java.lang.String"/> + <field name="INFO" class="java.lang.String"/> + <background> + <band splitType="Stretch"/> + </background> + <detail> + <band height="17" splitType="Stretch"> + <textField> + <reportElement x="0" y="1" width="100" height="15" uuid="fc8f2d06-0eb7-4fd0-a91c-cda7a85dd06e"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$F{ENTRYDATE}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="103" y="1" width="100" height="15" uuid="d76859d9-0766-497e-9187-33ce879dc4f3"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$F{MEDIUM}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="222" y="1" width="91" height="15" uuid="df383fa6-a716-4f3c-ac97-d2beb7c329ac"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$F{LOGIN}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement x="345" y="1" width="116" height="15" uuid="dd8ad103-b2e2-4fad-afea-81854bf12e47"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$F{INFO}]]></textFieldExpression> + </textField> + </band> + <band height="4"> + <line> + <reportElement x="0" y="2" width="555" height="1" uuid="f895ff04-ead0-48c3-85c1-5f6772d79ab3"/> + <graphicElement> + <pen lineWidth="0.75" lineStyle="Dotted"/> + </graphicElement> + </line> + </band> + </detail> +</jasperReport> diff --git a/report/Organisation_report/Kommunikationsdaten.jrxml b/report/Organisation_report/Kommunikationsdaten.jrxml index 550dfb0aa3067baf4b45990b7500b4d7913b43b5..a69e57170703a339e55db8f7c76f42f6e00d2a1d 100644 --- a/report/Organisation_report/Kommunikationsdaten.jrxml +++ b/report/Organisation_report/Kommunikationsdaten.jrxml @@ -1,41 +1,41 @@ -<?xml version="1.0" encoding="UTF-8"?> -<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Kommunikationsdaten" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="c659b407-943a-4427-8fa5-032bff204ff4"> - <property name="ireport.zoom" value="1.6105100000000008"/> - <property name="ireport.x" value="0"/> - <property name="ireport.y" value="0"/> - <field name="KINDOFCOMM" class="java.lang.String"/> - <field name="COMMVALUE" class="java.lang.String"/> - <field name="CLIENTID" class="java.lang.String"/> - <field name="ORGANISATION_ID" class="java.lang.String"/> - <field name="CONTACT_ID" class="java.lang.String"/> - <field name="COMMDATA" class="java.lang.String"/> - <background> - <band splitType="Stretch"/> - </background> - <detail> - <band height="16" splitType="Stretch"> - <textField> - <reportElement x="0" y="1" width="100" height="15" uuid="c356083f-2a5e-4a3e-9b08-c7baf2b1381e"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$F{KINDOFCOMM}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="103" y="1" width="100" height="15" uuid="48bf1f6b-953a-44b6-9ebf-504203afa70d"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$F{COMMVALUE}]]></textFieldExpression> - </textField> - </band> - <band height="6"> - <line> - <reportElement x="0" y="2" width="555" height="1" uuid="632ccf1b-5e1c-49b6-9332-e9992b53e878"/> - <graphicElement> - <pen lineWidth="0.75" lineStyle="Dotted"/> - </graphicElement> - </line> - </band> - </detail> -</jasperReport> +<?xml version="1.0" encoding="UTF-8"?> +<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Kommunikationsdaten" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="c659b407-943a-4427-8fa5-032bff204ff4"> + <property name="ireport.zoom" value="1.6105100000000008"/> + <property name="ireport.x" value="0"/> + <property name="ireport.y" value="0"/> + <field name="KINDOFCOMM" class="java.lang.String"/> + <field name="COMMVALUE" class="java.lang.String"/> + <field name="CLIENTID" class="java.lang.String"/> + <field name="ORGANISATION_ID" class="java.lang.String"/> + <field name="CONTACT_ID" class="java.lang.String"/> + <field name="COMMDATA" class="java.lang.String"/> + <background> + <band splitType="Stretch"/> + </background> + <detail> + <band height="16" splitType="Stretch"> + <textField> + <reportElement x="0" y="1" width="100" height="15" uuid="c356083f-2a5e-4a3e-9b08-c7baf2b1381e"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$F{KINDOFCOMM}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="103" y="1" width="100" height="15" uuid="48bf1f6b-953a-44b6-9ebf-504203afa70d"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$F{COMMVALUE}]]></textFieldExpression> + </textField> + </band> + <band height="6"> + <line> + <reportElement x="0" y="2" width="555" height="1" uuid="632ccf1b-5e1c-49b6-9332-e9992b53e878"/> + <graphicElement> + <pen lineWidth="0.75" lineStyle="Dotted"/> + </graphicElement> + </line> + </band> + </detail> +</jasperReport> diff --git a/report/Organisation_report/Kontaktpersonen.jrxml b/report/Organisation_report/Kontaktpersonen.jrxml index f011ec4b0b31dcd7115f37c513be8fc0262d2e3c..f89b0294b5eb46cd82a5632eef1ad524a3298396 100644 --- a/report/Organisation_report/Kontaktpersonen.jrxml +++ b/report/Organisation_report/Kontaktpersonen.jrxml @@ -1,57 +1,57 @@ -<?xml version="1.0" encoding="UTF-8"?> -<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Kommunikationsdaten" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="c659b407-943a-4427-8fa5-032bff204ff4"> - <property name="ireport.zoom" value="1.6105100000000008"/> - <property name="ireport.x" value="0"/> - <property name="ireport.y" value="0"/> - <field name="PERSNAMECOMPLETE" class="java.lang.String"/> - <field name="PERSFUNCTION" class="java.lang.String"/> - <field name="PERSDEPARTMENT" class="java.lang.String"/> - <field name="PERSCOMM" class="java.lang.String"/> - <field name="CLIENTID" class="java.lang.String"/> - <field name="ORGANISATION_ID" class="java.lang.String"/> - <field name="CONTACT_ID" class="java.lang.String"/> - <field name="COMMDATA" class="java.lang.String"/> - <background> - <band splitType="Stretch"/> - </background> - <detail> - <band height="16" splitType="Stretch"> - <textField isStretchWithOverflow="true"> - <reportElement x="345" y="1" width="116" height="15" uuid="4186db31-3a25-43f2-ae39-abca90ded430"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$F{PERSCOMM}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="0" y="1" width="100" height="15" uuid="c356083f-2a5e-4a3e-9b08-c7baf2b1381e"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$F{PERSNAMECOMPLETE}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="222" y="1" width="91" height="15" uuid="03d2241a-2aa6-4dbf-bad7-94c48837eae6"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$F{PERSDEPARTMENT}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="103" y="1" width="100" height="15" uuid="48bf1f6b-953a-44b6-9ebf-504203afa70d"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$F{PERSFUNCTION}]]></textFieldExpression> - </textField> - </band> - <band height="6"> - <line> - <reportElement x="0" y="2" width="555" height="1" uuid="632ccf1b-5e1c-49b6-9332-e9992b53e878"/> - <graphicElement> - <pen lineWidth="0.75" lineStyle="Dotted"/> - </graphicElement> - </line> - </band> - </detail> -</jasperReport> +<?xml version="1.0" encoding="UTF-8"?> +<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Kommunikationsdaten" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="c659b407-943a-4427-8fa5-032bff204ff4"> + <property name="ireport.zoom" value="1.6105100000000008"/> + <property name="ireport.x" value="0"/> + <property name="ireport.y" value="0"/> + <field name="PERSNAMECOMPLETE" class="java.lang.String"/> + <field name="PERSFUNCTION" class="java.lang.String"/> + <field name="PERSDEPARTMENT" class="java.lang.String"/> + <field name="PERSCOMM" class="java.lang.String"/> + <field name="CLIENTID" class="java.lang.String"/> + <field name="ORGANISATION_ID" class="java.lang.String"/> + <field name="CONTACT_ID" class="java.lang.String"/> + <field name="COMMDATA" class="java.lang.String"/> + <background> + <band splitType="Stretch"/> + </background> + <detail> + <band height="16" splitType="Stretch"> + <textField isStretchWithOverflow="true"> + <reportElement x="345" y="1" width="116" height="15" uuid="4186db31-3a25-43f2-ae39-abca90ded430"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$F{PERSCOMM}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="1" width="100" height="15" uuid="c356083f-2a5e-4a3e-9b08-c7baf2b1381e"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$F{PERSNAMECOMPLETE}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="222" y="1" width="91" height="15" uuid="03d2241a-2aa6-4dbf-bad7-94c48837eae6"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$F{PERSDEPARTMENT}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="103" y="1" width="100" height="15" uuid="48bf1f6b-953a-44b6-9ebf-504203afa70d"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$F{PERSFUNCTION}]]></textFieldExpression> + </textField> + </band> + <band height="6"> + <line> + <reportElement x="0" y="2" width="555" height="1" uuid="632ccf1b-5e1c-49b6-9332-e9992b53e878"/> + <graphicElement> + <pen lineWidth="0.75" lineStyle="Dotted"/> + </graphicElement> + </line> + </band> + </detail> +</jasperReport> diff --git a/report/Organisation_report/reportData.jrxml b/report/Organisation_report/reportData.jrxml index cbe236c19684bb7036fbd56b9a266507c283e251..decb9440da987bf5f7fcce819899f958b8032088 100644 --- a/report/Organisation_report/reportData.jrxml +++ b/report/Organisation_report/reportData.jrxml @@ -1,319 +1,319 @@ -<?xml version="1.0" encoding="UTF-8"?> -<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Kundenstammblatt" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="e7a916c8-3f9a-497d-84bb-3909b15271ea"> - <property name="ireport.zoom" value="1.9487171000000014"/> - <property name="ireport.x" value="0"/> - <property name="ireport.y" value="311"/> - <parameter name="myAddr" class="java.lang.String"/> - <parameter name="ORGAddr" class="java.lang.String"/> - <parameter name="ORGAttr" class="java.lang.String"/> - <parameter name="ORGComm" class="java.lang.String"/> - <parameter name="ORGANISATIONID" class="java.lang.String"/> - <parameter name="RELID" class="java.lang.String"/> - <parameter name="CLIENTID" class="java.lang.String"/> - <parameter name="adito.datasource.subdataTask" class="java.lang.Object"/> - <parameter name="adito.datasource.subdataComm" class="java.lang.Object"/> - <parameter name="adito.datasource.subdataPers" class="java.lang.Object"/> - <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false"> - <defaultValueExpression><![CDATA["C:\\entwicklungszweige\\0.0\\project\\xRM-Basic2019\\report\\Organisation_report\\"]]></defaultValueExpression> - </parameter> - <parameter name="adito.image.myLogo" class="java.lang.String"/> - <parameter name="adito.datasource.subdataHist" class="java.lang.Object"/> - <parameter name="INFO" class="java.lang.String"/> - <background> - <band splitType="Stretch"/> - </background> - <pageHeader> - <band height="106" splitType="Stretch"> - <printWhenExpression><![CDATA[true]]></printWhenExpression> - <image scaleImage="RetainShape" hAlign="Center"> - <reportElement x="182" y="0" width="174" height="50" uuid="3a34d632-09a6-44c2-b8e4-38d8138af87d"/> - <imageExpression><![CDATA[$P{adito.image.myLogo}]]></imageExpression> - </image> - <textField> - <reportElement x="0" y="70" width="555" height="20" forecolor="#999999" uuid="d8a7a770-46d6-4bd7-bc79-a98285ded43e"/> - <textElement textAlignment="Center" verticalAlignment="Middle"> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$P{myAddr}]]></textFieldExpression> - </textField> - <frame> - <reportElement x="0" y="70" width="555" height="20" uuid="53d00eed-675d-4f66-87c0-d945bfd92889"/> - <box> - <pen lineWidth="1.0" lineColor="#666666"/> - <topPen lineWidth="1.0" lineColor="#666666"/> - <leftPen lineWidth="1.0" lineColor="#666666"/> - <bottomPen lineWidth="1.0" lineColor="#666666"/> - <rightPen lineWidth="1.0" lineColor="#666666"/> - </box> - </frame> - </band> - </pageHeader> - <columnHeader> - <band height="80" splitType="Stretch"> - <textField> - <reportElement x="0" y="14" width="167" height="20" forecolor="#999999" uuid="db320a72-fac5-477a-8c9e-19d15a8d250f"/> - <textElement> - <font size="14"/> - </textElement> - <textFieldExpression><![CDATA[$R{Customer Base Sheet}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement x="0" y="46" width="100" height="15" uuid="cbc5f584-e9ee-4062-b6f5-7fd3a6e918f4"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$P{ORGAddr}]]></textFieldExpression> - </textField> - <textField isStretchWithOverflow="true"> - <reportElement x="344" y="61" width="200" height="15" uuid="8d54ea3a-8c35-48a5-a3da-b77ff53591b7"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$P{INFO}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="344" y="46" width="92" height="15" uuid="a73a7562-7435-412e-b987-b8ba0980a7b7"/> - <textElement> - <font size="8" isBold="true"/> - </textElement> - <textFieldExpression><![CDATA[$R{Information}]]></textFieldExpression> - </textField> - </band> - </columnHeader> - <detail> - <band height="39"> - <line> - <reportElement x="0" y="32" width="555" height="1" uuid="7a549c9f-9902-4f32-97eb-297a794d3498"/> - </line> - <textField> - <reportElement x="0" y="15" width="100" height="15" uuid="ef198107-4f82-49ad-96f6-8afb09be58f1"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$R{Type}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="103" y="15" width="100" height="15" uuid="b42a9c7d-fd06-4e16-a32e-61aa3ffcf299"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$R{Value}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="0" y="0" width="103" height="15" forecolor="#0033FF" uuid="7c9e61d7-c823-4fbc-85ee-5a5a73a7999c"/> - <textElement> - <font size="8" isUnderline="true"/> - </textElement> - <textFieldExpression><![CDATA[$R{Communication data}]]></textFieldExpression> - </textField> - </band> - <band height="21"> - <subreport> - <reportElement x="0" y="0" width="544" height="21" uuid="d1da0bc7-7a62-4ceb-886b-dba0ebbef275"/> - <dataSourceExpression><![CDATA[$P{adito.datasource.subdataComm}]]></dataSourceExpression> - <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "Kommunikationsdaten.jasper"]]></subreportExpression> - </subreport> - </band> - <band height="42" splitType="Stretch"> - <textField> - <reportElement x="0" y="0" width="100" height="15" forecolor="#0033FF" uuid="9e3a2dda-7b73-41c5-a840-f356a2373e23"/> - <textElement> - <font size="8" isUnderline="true"/> - </textElement> - <textFieldExpression><![CDATA[$R{Contacts}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="0" y="15" width="100" height="15" uuid="f7f6caee-b1f5-487e-8d1a-738c533b214d"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$R{Name}]]></textFieldExpression> - </textField> - <line> - <reportElement x="0" y="35" width="555" height="1" uuid="4b698800-cc36-4830-8bbf-d040f890ddbf"/> - </line> - <textField> - <reportElement x="103" y="15" width="100" height="15" uuid="e12cde69-8455-4dca-a760-c1eecb9a8034"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$R{Position}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="221" y="15" width="100" height="15" uuid="0a43120b-40f3-4c5a-a7c9-15540fda5ff6"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$R{Department}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="344" y="15" width="160" height="15" uuid="72c93546-9005-4051-9f52-28e10f8f54a5"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$R{Communication data}]]></textFieldExpression> - </textField> - </band> - <band height="21"> - <subreport> - <reportElement x="0" y="0" width="555" height="21" uuid="f08ee4f5-2a1c-49c4-bed3-cb7d377afcd3"/> - <dataSourceExpression><![CDATA[$P{adito.datasource.subdataPers}]]></dataSourceExpression> - <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "Kontaktpersonen.jasper"]]></subreportExpression> - </subreport> - </band> - <band height="40"> - <textField> - <reportElement x="0" y="2" width="100" height="15" forecolor="#0033FF" uuid="60192885-ecfd-46cd-9de1-67cd2e285d1b"/> - <textElement> - <font size="8" isUnderline="true"/> - </textElement> - <textFieldExpression><![CDATA[$R{Activity}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="0" y="19" width="100" height="15" uuid="fbf2402f-6b63-48b9-814d-22d7f49d81db"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$R{Date}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="103" y="19" width="100" height="15" uuid="652de0c2-220e-4bfc-a983-7335638307a5"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$R{Contact type}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="221" y="19" width="100" height="15" uuid="eca234d8-ad5c-4b2e-aecd-81a9adff5f9d"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$R{Employee}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="344" y="19" width="100" height="15" uuid="310e6639-fae6-4724-b353-d793069819b7"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$R{Remark}]]></textFieldExpression> - </textField> - <line> - <reportElement x="0" y="36" width="555" height="1" uuid="419b9760-399c-4478-9a82-c1fd11d72994"/> - </line> - </band> - <band height="24"> - <subreport> - <reportElement x="0" y="0" width="555" height="22" uuid="a47de115-bd5f-4a9f-95a5-2cb170fa0b9a"/> - <dataSourceExpression><![CDATA[$P{adito.datasource.subdataHist}]]></dataSourceExpression> - <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "Historien.jasper"]]></subreportExpression> - </subreport> - </band> - <band height="19"> - <textField> - <reportElement x="0" y="2" width="100" height="15" forecolor="#0033FF" uuid="4b8833cc-3fda-4a75-ae61-83fbfe995f72"> - <printWhenExpression><![CDATA[$P{ORGAttr} != null && !$P{ORGAttr}.equals("")]]></printWhenExpression> - </reportElement> - <textElement> - <font size="8" isUnderline="true"/> - </textElement> - <textFieldExpression><![CDATA[$R{Attributes}]]></textFieldExpression> - </textField> - </band> - <band height="18"> - <textField isStretchWithOverflow="true"> - <reportElement x="10" y="5" width="534" height="13" uuid="1ef0e703-9180-4540-b094-e1bcc9983001"/> - <textElement textAlignment="Left" verticalAlignment="Middle"> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$P{ORGAttr}]]></textFieldExpression> - </textField> - <frame> - <reportElement stretchType="RelativeToBandHeight" x="0" y="2" width="555" height="16" isPrintInFirstWholeBand="true" uuid="62244829-371e-4972-b91d-cca3c857b15e"> - <printWhenExpression><![CDATA[$P{ORGAttr} != null && !$P{ORGAttr}.equals("")]]></printWhenExpression> - </reportElement> - <box> - <pen lineWidth="1.0"/> - <topPen lineWidth="1.0"/> - <leftPen lineWidth="1.0"/> - <bottomPen lineWidth="1.0"/> - <rightPen lineWidth="1.0"/> - </box> - </frame> - </band> - <band height="42"> - <textField> - <reportElement x="0" y="20" width="100" height="15" uuid="ea868aed-1495-42b8-a398-b0a62ac0de80"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$R{Subject}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="117" y="20" width="161" height="15" uuid="a2509776-a2f4-465d-851b-617468e91c3c"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$R{Description}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="295" y="20" width="100" height="15" uuid="b3260378-eced-4883-ad0b-8692a3f83547"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$R{Status}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="444" y="20" width="100" height="15" uuid="653a5cd5-4209-4570-b6c5-037285921d1a"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$R{responsible}]]></textFieldExpression> - </textField> - <textField> - <reportElement x="0" y="4" width="100" height="15" forecolor="#0033FF" uuid="41f65e5b-23a5-4d39-8f9a-267ccab96c76"/> - <textElement> - <font size="8" isUnderline="true"/> - </textElement> - <textFieldExpression><![CDATA[$R{Tasks}]]></textFieldExpression> - </textField> - <line> - <reportElement x="0" y="38" width="555" height="1" uuid="a3b5c9fc-f1a8-41bf-a3a7-efaab215acb8"/> - </line> - </band> - <band height="26"> - <subreport> - <reportElement x="0" y="0" width="555" height="24" uuid="f39de822-874b-4624-89ae-d7300649f0fd"/> - <dataSourceExpression><![CDATA[$P{adito.datasource.subdataTask}]]></dataSourceExpression> - <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "Aufgaben.jasper"]]></subreportExpression> - </subreport> - </band> - </detail> - <pageFooter> - <band height="38" splitType="Stretch"> - <textField pattern="EEEEE dd MMMMM yyyy"> - <reportElement x="378" y="17" width="102" height="20" forecolor="#999999" uuid="84480a49-acb2-48cd-9885-540b816d74f1"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> - </textField> - <textField> - <reportElement x="480" y="17" width="45" height="20" forecolor="#999999" uuid="047a5366-fd18-439d-847d-8a20efb74d34"/> - <textElement textAlignment="Right"> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[$R{Seite}+" "+$V{PAGE_NUMBER}+" "+$R{von}]]></textFieldExpression> - </textField> - <textField evaluationTime="Report"> - <reportElement x="525" y="17" width="30" height="20" forecolor="#999999" uuid="fa23c12f-1e58-45d6-962d-0bbf70bc0032"/> - <textElement> - <font size="8"/> - </textElement> - <textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression> - </textField> - <line> - <reportElement x="0" y="9" width="555" height="1" forecolor="#999999" uuid="b45a4621-34b5-4c70-85e6-4fda980647ce"/> - </line> - </band> - </pageFooter> -</jasperReport> +<?xml version="1.0" encoding="UTF-8"?> +<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Kundenstammblatt" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="e7a916c8-3f9a-497d-84bb-3909b15271ea"> + <property name="ireport.zoom" value="1.9487171000000014"/> + <property name="ireport.x" value="0"/> + <property name="ireport.y" value="311"/> + <parameter name="myAddr" class="java.lang.String"/> + <parameter name="ORGAddr" class="java.lang.String"/> + <parameter name="ORGAttr" class="java.lang.String"/> + <parameter name="ORGComm" class="java.lang.String"/> + <parameter name="ORGANISATIONID" class="java.lang.String"/> + <parameter name="RELID" class="java.lang.String"/> + <parameter name="CLIENTID" class="java.lang.String"/> + <parameter name="adito.datasource.subdataTask" class="java.lang.Object"/> + <parameter name="adito.datasource.subdataComm" class="java.lang.Object"/> + <parameter name="adito.datasource.subdataPers" class="java.lang.Object"/> + <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false"> + <defaultValueExpression><![CDATA["C:\\entwicklungszweige\\0.0\\project\\xRM-Basic2019\\report\\Organisation_report\\"]]></defaultValueExpression> + </parameter> + <parameter name="adito.image.myLogo" class="java.lang.String"/> + <parameter name="adito.datasource.subdataHist" class="java.lang.Object"/> + <parameter name="INFO" class="java.lang.String"/> + <background> + <band splitType="Stretch"/> + </background> + <pageHeader> + <band height="106" splitType="Stretch"> + <printWhenExpression><![CDATA[true]]></printWhenExpression> + <image scaleImage="RetainShape" hAlign="Center"> + <reportElement x="182" y="0" width="174" height="50" uuid="3a34d632-09a6-44c2-b8e4-38d8138af87d"/> + <imageExpression><![CDATA[$P{adito.image.myLogo}]]></imageExpression> + </image> + <textField> + <reportElement x="0" y="70" width="555" height="20" forecolor="#999999" uuid="d8a7a770-46d6-4bd7-bc79-a98285ded43e"/> + <textElement textAlignment="Center" verticalAlignment="Middle"> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{myAddr}]]></textFieldExpression> + </textField> + <frame> + <reportElement x="0" y="70" width="555" height="20" uuid="53d00eed-675d-4f66-87c0-d945bfd92889"/> + <box> + <pen lineWidth="1.0" lineColor="#666666"/> + <topPen lineWidth="1.0" lineColor="#666666"/> + <leftPen lineWidth="1.0" lineColor="#666666"/> + <bottomPen lineWidth="1.0" lineColor="#666666"/> + <rightPen lineWidth="1.0" lineColor="#666666"/> + </box> + </frame> + </band> + </pageHeader> + <columnHeader> + <band height="80" splitType="Stretch"> + <textField> + <reportElement x="0" y="14" width="167" height="20" forecolor="#999999" uuid="db320a72-fac5-477a-8c9e-19d15a8d250f"/> + <textElement> + <font size="14"/> + </textElement> + <textFieldExpression><![CDATA[$R{Customer Base Sheet}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement x="0" y="46" width="100" height="15" uuid="cbc5f584-e9ee-4062-b6f5-7fd3a6e918f4"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{ORGAddr}]]></textFieldExpression> + </textField> + <textField isStretchWithOverflow="true"> + <reportElement x="344" y="61" width="200" height="15" uuid="8d54ea3a-8c35-48a5-a3da-b77ff53591b7"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{INFO}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="344" y="46" width="92" height="15" uuid="a73a7562-7435-412e-b987-b8ba0980a7b7"/> + <textElement> + <font size="8" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{Information}]]></textFieldExpression> + </textField> + </band> + </columnHeader> + <detail> + <band height="39"> + <line> + <reportElement x="0" y="32" width="555" height="1" uuid="7a549c9f-9902-4f32-97eb-297a794d3498"/> + </line> + <textField> + <reportElement x="0" y="15" width="100" height="15" uuid="ef198107-4f82-49ad-96f6-8afb09be58f1"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$R{Type}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="103" y="15" width="100" height="15" uuid="b42a9c7d-fd06-4e16-a32e-61aa3ffcf299"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$R{Value}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="0" width="103" height="15" forecolor="#0033FF" uuid="7c9e61d7-c823-4fbc-85ee-5a5a73a7999c"/> + <textElement> + <font size="8" isUnderline="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{Communication data}]]></textFieldExpression> + </textField> + </band> + <band height="21"> + <subreport> + <reportElement x="0" y="0" width="544" height="21" uuid="d1da0bc7-7a62-4ceb-886b-dba0ebbef275"/> + <dataSourceExpression><![CDATA[$P{adito.datasource.subdataComm}]]></dataSourceExpression> + <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "Kommunikationsdaten.jasper"]]></subreportExpression> + </subreport> + </band> + <band height="42" splitType="Stretch"> + <textField> + <reportElement x="0" y="0" width="100" height="15" forecolor="#0033FF" uuid="9e3a2dda-7b73-41c5-a840-f356a2373e23"/> + <textElement> + <font size="8" isUnderline="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{Contacts}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="15" width="100" height="15" uuid="f7f6caee-b1f5-487e-8d1a-738c533b214d"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$R{Name}]]></textFieldExpression> + </textField> + <line> + <reportElement x="0" y="35" width="555" height="1" uuid="4b698800-cc36-4830-8bbf-d040f890ddbf"/> + </line> + <textField> + <reportElement x="103" y="15" width="100" height="15" uuid="e12cde69-8455-4dca-a760-c1eecb9a8034"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$R{Position}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="221" y="15" width="100" height="15" uuid="0a43120b-40f3-4c5a-a7c9-15540fda5ff6"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$R{Department}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="344" y="15" width="160" height="15" uuid="72c93546-9005-4051-9f52-28e10f8f54a5"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$R{Communication data}]]></textFieldExpression> + </textField> + </band> + <band height="21"> + <subreport> + <reportElement x="0" y="0" width="555" height="21" uuid="f08ee4f5-2a1c-49c4-bed3-cb7d377afcd3"/> + <dataSourceExpression><![CDATA[$P{adito.datasource.subdataPers}]]></dataSourceExpression> + <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "Kontaktpersonen.jasper"]]></subreportExpression> + </subreport> + </band> + <band height="40"> + <textField> + <reportElement x="0" y="2" width="100" height="15" forecolor="#0033FF" uuid="60192885-ecfd-46cd-9de1-67cd2e285d1b"/> + <textElement> + <font size="8" isUnderline="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{Activity}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="19" width="100" height="15" uuid="fbf2402f-6b63-48b9-814d-22d7f49d81db"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$R{Date}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="103" y="19" width="100" height="15" uuid="652de0c2-220e-4bfc-a983-7335638307a5"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$R{Contact type}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="221" y="19" width="100" height="15" uuid="eca234d8-ad5c-4b2e-aecd-81a9adff5f9d"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$R{Employee}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="344" y="19" width="100" height="15" uuid="310e6639-fae6-4724-b353-d793069819b7"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$R{Remark}]]></textFieldExpression> + </textField> + <line> + <reportElement x="0" y="36" width="555" height="1" uuid="419b9760-399c-4478-9a82-c1fd11d72994"/> + </line> + </band> + <band height="24"> + <subreport> + <reportElement x="0" y="0" width="555" height="22" uuid="a47de115-bd5f-4a9f-95a5-2cb170fa0b9a"/> + <dataSourceExpression><![CDATA[$P{adito.datasource.subdataHist}]]></dataSourceExpression> + <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "Historien.jasper"]]></subreportExpression> + </subreport> + </band> + <band height="19"> + <textField> + <reportElement x="0" y="2" width="100" height="15" forecolor="#0033FF" uuid="4b8833cc-3fda-4a75-ae61-83fbfe995f72"> + <printWhenExpression><![CDATA[$P{ORGAttr} != null && !$P{ORGAttr}.equals("")]]></printWhenExpression> + </reportElement> + <textElement> + <font size="8" isUnderline="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{Attributes}]]></textFieldExpression> + </textField> + </band> + <band height="18"> + <textField isStretchWithOverflow="true"> + <reportElement x="10" y="5" width="534" height="13" uuid="1ef0e703-9180-4540-b094-e1bcc9983001"/> + <textElement textAlignment="Left" verticalAlignment="Middle"> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$P{ORGAttr}]]></textFieldExpression> + </textField> + <frame> + <reportElement stretchType="RelativeToBandHeight" x="0" y="2" width="555" height="16" isPrintInFirstWholeBand="true" uuid="62244829-371e-4972-b91d-cca3c857b15e"> + <printWhenExpression><![CDATA[$P{ORGAttr} != null && !$P{ORGAttr}.equals("")]]></printWhenExpression> + </reportElement> + <box> + <pen lineWidth="1.0"/> + <topPen lineWidth="1.0"/> + <leftPen lineWidth="1.0"/> + <bottomPen lineWidth="1.0"/> + <rightPen lineWidth="1.0"/> + </box> + </frame> + </band> + <band height="42"> + <textField> + <reportElement x="0" y="20" width="100" height="15" uuid="ea868aed-1495-42b8-a398-b0a62ac0de80"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$R{Subject}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="117" y="20" width="161" height="15" uuid="a2509776-a2f4-465d-851b-617468e91c3c"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$R{Description}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="295" y="20" width="100" height="15" uuid="b3260378-eced-4883-ad0b-8692a3f83547"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$R{Status}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="444" y="20" width="100" height="15" uuid="653a5cd5-4209-4570-b6c5-037285921d1a"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$R{responsible}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="4" width="100" height="15" forecolor="#0033FF" uuid="41f65e5b-23a5-4d39-8f9a-267ccab96c76"/> + <textElement> + <font size="8" isUnderline="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{Tasks}]]></textFieldExpression> + </textField> + <line> + <reportElement x="0" y="38" width="555" height="1" uuid="a3b5c9fc-f1a8-41bf-a3a7-efaab215acb8"/> + </line> + </band> + <band height="26"> + <subreport> + <reportElement x="0" y="0" width="555" height="24" uuid="f39de822-874b-4624-89ae-d7300649f0fd"/> + <dataSourceExpression><![CDATA[$P{adito.datasource.subdataTask}]]></dataSourceExpression> + <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "Aufgaben.jasper"]]></subreportExpression> + </subreport> + </band> + </detail> + <pageFooter> + <band height="38" splitType="Stretch"> + <textField pattern="EEEEE dd MMMMM yyyy"> + <reportElement x="378" y="17" width="102" height="20" forecolor="#999999" uuid="84480a49-acb2-48cd-9885-540b816d74f1"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> + </textField> + <textField> + <reportElement x="480" y="17" width="45" height="20" forecolor="#999999" uuid="047a5366-fd18-439d-847d-8a20efb74d34"/> + <textElement textAlignment="Right"> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[$R{Seite}+" "+$V{PAGE_NUMBER}+" "+$R{von}]]></textFieldExpression> + </textField> + <textField evaluationTime="Report"> + <reportElement x="525" y="17" width="30" height="20" forecolor="#999999" uuid="fa23c12f-1e58-45d6-962d-0bbf70bc0032"/> + <textElement> + <font size="8"/> + </textElement> + <textFieldExpression><![CDATA[" " + $V{PAGE_NUMBER}]]></textFieldExpression> + </textField> + <line> + <reportElement x="0" y="9" width="555" height="1" forecolor="#999999" uuid="b45a4621-34b5-4c70-85e6-4fda980647ce"/> + </line> + </band> + </pageFooter> +</jasperReport>