diff --git a/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic_Derby.xml b/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic_Derby.xml new file mode 100644 index 0000000000000000000000000000000000000000..fa2c3652ee188650237957106649b056346a3c5c --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic_Derby.xml @@ -0,0 +1,16 @@ +<?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> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic_notDerby.xml b/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic_notDerby.xml new file mode 100644 index 0000000000000000000000000000000000000000..41fdab8d76669d6e338ccad579c2745d9f1efb61 --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.2/change_Milestone_datatype_to_new_Keyword_logic_notDerby.xml @@ -0,0 +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"> + <changeSet dbms="!derby" author="j.hoermann" id="f5074961-4aa0-4cd8-8541-7381ddfb0b71"> + <modifyDataType tableName="SALESPROJECT_MILESTONE" columnName="TYPE" newDataType="NVARCHAR(80)"/> + <modifyDataType tableName="SALESPROJECT_MILESTONE" columnName="VALUE" newDataType="CHAR(36)"/> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/changelog.xml b/.liquibase/Data_alias/basic/2019.2/changelog.xml index 3f53b27640b8b734ca9de296576a1be0d08509fb..2892c7b25296464c0491174e734f1a2927bb5f7a 100644 --- a/.liquibase/Data_alias/basic/2019.2/changelog.xml +++ b/.liquibase/Data_alias/basic/2019.2/changelog.xml @@ -136,8 +136,14 @@ <!-- Derby needs special handling --> <include relativeToChangelogFile="true" file="alter_activityLink_notDerby.xml" /> <include relativeToChangelogFile="true" file="alter_activityLink_Derby.xml" /> + + <include relativeToChangelogFile="true" file="renameCycle_to_Milestone.xml" /> + <!-- Derby needs special handling --> + <include relativeToChangelogFile="true" file="change_Milestone_datatype_to_new_Keyword_logic_notDerby.xml" /> + <include relativeToChangelogFile="true" file="change_Milestone_datatype_to_new_Keyword_logic_Derby.xml" /> + <include relativeToChangelogFile="true" file="update_Milestone_to_new_Keyword.xml" /> <include relativeToChangelogFile="true" file="create_documenttemplate.xml"/> <include relativeToChangelogFile="true" file="create_documenttemplatelink.xml"/> <include relativeToChangelogFile="true" file="data/init_DocumentTemplateType.xml"/> -</databaseChangeLog> \ No newline at end of file +</databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2019.2/renameCycle_to_Milestone.xml b/.liquibase/Data_alias/basic/2019.2/renameCycle_to_Milestone.xml new file mode 100644 index 0000000000000000000000000000000000000000..94183e1d8dc5c55dbd95db8652fc83e37cfe3143 --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.2/renameCycle_to_Milestone.xml @@ -0,0 +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.hoermann" id="da0982c9-8541-43a2-ae3f-cfb179a6b8c3"> + <renameTable oldTableName="SALESPROJECT_CYCLE" newTableName="SALESPROJECT_MILESTONE"/> + <renameColumn tableName="SALESPROJECT_MILESTONE" columnDataType="CHAR(36)" newColumnName="SALESPROJECT_MILESTONEID" oldColumnName="SALESPROJECT_CYCLEID"/> + <dropPrimaryKey tableName="SALESPROJECT_MILESTONE" constraintName="PK_SALESPROJECT_CYCLE_SALESPROJECT_CYCLEID"/> + <addPrimaryKey tableName="SALESPROJECT_MILESTONE" constraintName="PK_SALESPROJECT_MILESTONE_SALESPROJECT_MILESTONEID" columnNames="SALESPROJECT_MILESTONEID"/> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2019.2/update_Milestone_to_new_Keyword.xml b/.liquibase/Data_alias/basic/2019.2/update_Milestone_to_new_Keyword.xml new file mode 100644 index 0000000000000000000000000000000000000000..78058cb375498026ca1ab75ec33e674970b569f2 --- /dev/null +++ b/.liquibase/Data_alias/basic/2019.2/update_Milestone_to_new_Keyword.xml @@ -0,0 +1,135 @@ +<?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="ec9bae68-ca27-4597-9808-fc333246b3a0"> + <update tableName="SALESPROJECT_MILESTONE"> + <column name="TYPE" value="SalesprojectPhase"/> + <where>TYPE = ?</where> + <whereParams> + <param value="1" /> + </whereParams> + </update> + <update tableName="SALESPROJECT_MILESTONE"> + <column name="VALUE" value="9f7d1fa9-7c09-4037-8f7c-8458def14d89"/> + <where>TYPE = ? and VALUE in (?,?,?,?,?,?,?,?,?,?,?)</where> + <whereParams> + <param value="SalesprojectPhase" /> + <param value="1" /> + <param value="7" /> + <param value="8" /> + <param value="9" /> + <param value="10" /> + <param value="11" /> + <param value="12" /> + <param value="13" /> + <param value="14" /> + <param value="15" /> + <param value="16" /> + </whereParams> + </update> + <update tableName="SALESPROJECT_MILESTONE"> + <column name="VALUE" value="292628f1-d9a5-432d-8130-f6690c14a5d4"/> + <where>TYPE = ? and VALUE = ?</where> + <whereParams> + <param value="SalesprojectPhase" /> + <param value="2" /> + </whereParams> + </update> + <update tableName="SALESPROJECT_MILESTONE"> + <column name="VALUE" value="4467b33c-3a68-4c8b-ba4a-1eb666a6c774"/> + <where>TYPE = ? and VALUE = ?</where> + <whereParams> + <param value="SalesprojectPhase" /> + <param value="3" /> + </whereParams> + </update> + <update tableName="SALESPROJECT_MILESTONE"> + <column name="VALUE" value="1e42f183-fb97-415f-9917-b43ca159fde4"/> + <where>TYPE = ? and VALUE = ?</where> + <whereParams> + <param value="SalesprojectPhase" /> + <param value="4" /> + </whereParams> + </update> + <update tableName="SALESPROJECT_MILESTONE"> + <column name="VALUE" value="972a41dc-a8ae-43cd-a03b-522ea84efbfb"/> + <where>TYPE = ? and VALUE = ?</where> + <whereParams> + <param value="SalesprojectPhase" /> + <param value="5" /> + </whereParams> + </update> + <update tableName="SALESPROJECT_MILESTONE"> + <column name="VALUE" value="60d09bb1-7e02-4003-99bf-18b739a577ad"/> + <where>TYPE = ? and VALUE = ?</where> + <whereParams> + <param value="SalesprojectPhase" /> + <param value="6" /> + </whereParams> + </update> + <update tableName="SALESPROJECT_MILESTONE"> + <column name="VALUE" value="213c8184-f930-457e-8605-703baaf21d4a"/> + <where>TYPE = ? and VALUE = ?</where> + <whereParams> + <param value="SalesprojectPhase" /> + <param value="7" /> + </whereParams> + </update> + + + <update tableName="SALESPROJECT_MILESTONE"> + <column name="TYPE" value="SalesprojectState"/> + <where>TYPE = ?</where> + <whereParams> + <param value="2" /> + </whereParams> + </update> + <update tableName="SALESPROJECT_MILESTONE"> + <column name="VALUE" value="483bcaeb-1e5b-4772-b54e-7d7d8aa65712"/> + <where>TYPE = ? and VALUE = ?</where> + <whereParams> + <param value="SalesprojectState" /> + <param value="1" /> + </whereParams> + </update> + <update tableName="SALESPROJECT_MILESTONE"> + <column name="VALUE" value="23d38486-4cce-41ce-a8df-164ad44df706"/> + <where>TYPE = ? and VALUE = ?</where> + <whereParams> + <param value="SalesprojectState" /> + <param value="2" /> + </whereParams> + </update> + <update tableName="SALESPROJECT_MILESTONE"> + <column name="VALUE" value="8916e241-9452-4541-a323-d479ad5f2e4d"/> + <where>TYPE = ? and VALUE = ?</where> + <whereParams> + <param value="SalesprojectState" /> + <param value="3" /> + </whereParams> + </update> + <update tableName="SALESPROJECT_MILESTONE"> + <column name="VALUE" value="1606cf46-a87b-4797-830e-55ebdd70a001"/> + <where>TYPE = ? and VALUE = ?</where> + <whereParams> + <param value="SalesprojectState" /> + <param value="4" /> + </whereParams> + </update> + <update tableName="SALESPROJECT_MILESTONE"> + <column name="VALUE" value="130bb53a-a97e-455e-8f34-8d445e985474"/> + <where>TYPE = ? and VALUE = ?</where> + <whereParams> + <param value="SalesprojectState" /> + <param value="5" /> + </whereParams> + </update> + <update tableName="SALESPROJECT_MILESTONE"> + <column name="VALUE" value="d8a60f60-a4e6-46ee-88ec-bac53e1afedd"/> + <where>TYPE = ? and VALUE = ?</where> + <whereParams> + <param value="SalesprojectState" /> + <param value="6" /> + </whereParams> + </update> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod index ef529844696180457273cb651c7aab32c71db2f5..d26fdda8e4479a0024e96fdaa2beb9813204f954 100644 --- a/aliasDefinition/Data_alias/Data_alias.aod +++ b/aliasDefinition/Data_alias/Data_alias.aod @@ -2702,109 +2702,6 @@ </entityFieldDb> </entityFields> </entityDb> - <entityDb> - <name>SALESPROJECT_CYCLE</name> - <dbName></dbName> - <idColumn>SALESPROJECT_CYCLEID</idColumn> - <idGeneratorType v="0" /> - <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>SALESPROJECT_CYCLEID</name> - <dbName></dbName> - <primaryKey v="true" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="true" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATE_START</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="29" /> - <scale v="9" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>VALUE</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>SALESPROJECT_ID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="true" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>TYPE</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="4" /> - <size v="10" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - <entityFieldDb> - <name>DATE_END</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="93" /> - <size v="29" /> - <scale v="9" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title></title> - <description></description> - </entityFieldDb> - </entityFields> - </entityDb> <entityDb> <name>SALESPROJECT_FORECAST</name> <dbName></dbName> diff --git a/entity/360Degree_entity/entityfields/newmodule/children/newcontract/onActionProcess.js b/entity/360Degree_entity/entityfields/newmodule/children/newcontract/onActionProcess.js index c441f436ac1b006d8c653a13d4095207a9752c56..0593c0ea1d681ac441b346e130c12bfbf7c0564c 100644 --- a/entity/360Degree_entity/entityfields/newmodule/children/newcontract/onActionProcess.js +++ b/entity/360Degree_entity/entityfields/newmodule/children/newcontract/onActionProcess.js @@ -1,5 +1,4 @@ import("system.vars"); import("Contract_lib"); -import("system.logging"); ContractUtils.createNewContract(vars.getString("$param.ObjectRowId_param")); \ No newline at end of file diff --git a/entity/360Degree_entity/entityfields/newmodule/children/newcontract/stateProcess.js b/entity/360Degree_entity/entityfields/newmodule/children/newcontract/stateProcess.js index 45d4c0d1cadf0fd4f0a44a660ff1a9a8e481e879..fc6fedaff886e1b4b13e066605063f5c595b795b 100644 --- a/entity/360Degree_entity/entityfields/newmodule/children/newcontract/stateProcess.js +++ b/entity/360Degree_entity/entityfields/newmodule/children/newcontract/stateProcess.js @@ -1,7 +1,6 @@ import("system.result"); import("system.vars"); import("system.neon"); -import("system.logging"); var contextList = JSON.parse(vars.getString("$param.ObjectType_param")); var found = false; diff --git a/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js b/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js index f74342ef8fe31213bd81788524244cb58c2a2271..5f91637c836c317480dc04958cdc4563b0da8611 100644 --- a/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/360Degree_entity/recordcontainers/jdito/contentProcess.js @@ -1,11 +1,9 @@ -import("system.logging"); import("system.util"); import("system.db"); import("system.vars"); import("system.result"); import("Context_lib"); import("system.translate"); -import("system.logging"); var resultList = []; if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param") && vars.exists("$param.ObjectRowId_param") && vars.get("$param.ObjectRowId_param")) diff --git a/entity/Address_entity/recordcontainers/db/onDBInsert.js b/entity/Address_entity/recordcontainers/db/onDBInsert.js index 4f0f20e26a8335a324327f5df12e37c8399545e3..0b06b98f3f4d02529bd274832a28057377d16bd6 100644 --- a/entity/Address_entity/recordcontainers/db/onDBInsert.js +++ b/entity/Address_entity/recordcontainers/db/onDBInsert.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.vars"); import("StandardObject_lib"); diff --git a/entity/AppointmentLink_entity/entityfields/objectid/displayValueProcess.js b/entity/AppointmentLink_entity/entityfields/objectid/displayValueProcess.js index 844708f89dc0cc824e7651eade24917d5a38e4fb..b603d5545bf136c0f5ab87ec05c4ab83d3ac6cc0 100644 --- a/entity/AppointmentLink_entity/entityfields/objectid/displayValueProcess.js +++ b/entity/AppointmentLink_entity/entityfields/objectid/displayValueProcess.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.db"); import("system.vars"); import("system.result"); diff --git a/entity/AppointmentLink_entity/entityfields/objecttype/displayValueProcess.js b/entity/AppointmentLink_entity/entityfields/objecttype/displayValueProcess.js index 9e7fb9a949fc371e06d22408fb69bf998b9488e7..bc84d07a9f8ab6e9bbfde0de443cd0322a26a69b 100644 --- a/entity/AppointmentLink_entity/entityfields/objecttype/displayValueProcess.js +++ b/entity/AppointmentLink_entity/entityfields/objecttype/displayValueProcess.js @@ -1,11 +1,9 @@ -import("system.logging"); -import("system.result"); -import("system.neon"); -import("system.vars"); -import("system.project"); - -if (vars.exists("$field.OBJECTTYPE") && vars.get("$field.OBJECTTYPE")) -{ - logging.log("objecttype value: " + project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$field.OBJECTTYPE"))[1]); - result.string(project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$field.OBJECTTYPE"))[1]); +import("system.result"); +import("system.neon"); +import("system.vars"); +import("system.project"); + +if (vars.exists("$field.OBJECTTYPE") && vars.get("$field.OBJECTTYPE")) +{ + result.string(project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$field.OBJECTTYPE"))[1]); } \ No newline at end of file diff --git a/entity/Attribute_entity/Attribute_entity.aod b/entity/Attribute_entity/Attribute_entity.aod index 7a53655d326d89c0f289e70d22176c8ed389a346..27bd01462c6cfe52e580468756201a33b84bd200 100644 --- a/entity/Attribute_entity/Attribute_entity.aod +++ b/entity/Attribute_entity/Attribute_entity.aod @@ -278,6 +278,10 @@ </entityParameter> </children> </entityConsumer> + <entityField> + <name>IMAGE</name> + <contentType>IMAGE</contentType> + </entityField> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Attribute_entity/entityfields/name_with_type/valueProcess.js b/entity/Attribute_entity/entityfields/name_with_type/valueProcess.js index d14e07a8442ddff79c9c39b211cd7bd25024f153..747a495cf7bb42324c1fb691b2609eae4e6df7cf 100644 --- a/entity/Attribute_entity/entityfields/name_with_type/valueProcess.js +++ b/entity/Attribute_entity/entityfields/name_with_type/valueProcess.js @@ -1,12 +1,9 @@ -import("system.translate"); -import("system.result"); -import("system.vars"); -import("Attribute_lib"); -import("Keyword_lib"); -import("KeywordRegistry_basic") - -var name = vars.get("$field.ATTRIBUTE_NAME"); -var type = vars.get("$field.ATTRIBUTE_TYPE"); -if (type.trim() != $AttributeTypes.COMBOVALUE) - name += " (" + translate.text("Type") + ": " + KeywordUtils.getViewValue($KeywordRegistry.attributeType(), type) + ")"; +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Attribute_lib"); + +var name = vars.get("$field.ATTRIBUTE_NAME"); +if (vars.get("$field.ATTRIBUTE_TYPE").trim() != $AttributeTypes.COMBOVALUE) + name += " (" + translate.text("Type") + ": " + vars.get("$field.ATTRIBUTE_TYPE.displayValue") + ")"; result.string(name); \ No newline at end of file diff --git a/entity/Communication_entity/recordcontainers/db/onDBUpdate.js b/entity/Communication_entity/recordcontainers/db/onDBUpdate.js index 7e2690d20ab6fcf371c1b12e9e4fa2f4e8a7ef39..30d791c0aa3c8923654612982f95153d38605fca 100644 --- a/entity/Communication_entity/recordcontainers/db/onDBUpdate.js +++ b/entity/Communication_entity/recordcontainers/db/onDBUpdate.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.vars"); import("StandardObject_lib"); diff --git a/entity/Contact_entity/entityfields/address_id/valueProcess.js b/entity/Contact_entity/entityfields/address_id/valueProcess.js index d1d6810b0429c11c9c2a96791677caa7d557f9e8..0ddd690f6cc1711705c2243205b1483a84da6fc8 100644 --- a/entity/Contact_entity/entityfields/address_id/valueProcess.js +++ b/entity/Contact_entity/entityfields/address_id/valueProcess.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.result"); import("system.vars"); import("StandardObject_lib"); diff --git a/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js b/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js index 5739345823bc0b832b6e7814fc7b97291a9f599c..1abc4310f52f05ab4ad9bd7881bf102cdde2fc71 100644 --- a/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js +++ b/entity/Contract_entity/entityfields/contractcode_display_fieldgroup/valueProcess.js @@ -4,7 +4,7 @@ import("system.result"); import("Keyword_lib"); import("KeywordRegistry_basic"); -var contractType = KeywordUtils.getViewValue($KeywordRegistry.contractType(), vars.get("$field.CONTRACTTYPE")); +var contractType = vars.getString("$field.CONTRACTTYPE.displayValue"); var contractCode = vars.get("$field.CONTRACTCODE"); result.string((contractType || translate.text("Contract")) + " " + contractCode); \ No newline at end of file diff --git a/entity/Contract_entity/entityfields/image/valueProcess.js b/entity/Contract_entity/entityfields/image/valueProcess.js index 7d2a0e8c8f6947c8c57a61074628e05f4bb1d7a3..d27cd1b74c498362844ab909c344a4e59a08d389 100644 --- a/entity/Contract_entity/entityfields/image/valueProcess.js +++ b/entity/Contract_entity/entityfields/image/valueProcess.js @@ -1,6 +1,4 @@ import("system.vars"); import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); -result.string("TEXT:" + KeywordUtils.getViewValue($KeywordRegistry.contractType(), vars.getString("$field.CONTRACTTYPE")) ); \ No newline at end of file +result.string("TEXT:" + vars.getString("$field.CONTRACTTYPE.displayValue")); \ No newline at end of file diff --git a/entity/Countries_Entity/entityfields/flag/valueProcess.js b/entity/Countries_Entity/entityfields/flag/valueProcess.js index d0b6d84cce31272ed67c38bf7da65fcfee34abae..d0ca80ab822ee9e0812b9d160ceeac1a6e62fd5c 100644 --- a/entity/Countries_Entity/entityfields/flag/valueProcess.js +++ b/entity/Countries_Entity/entityfields/flag/valueProcess.js @@ -2,6 +2,6 @@ import("system.vars"); import("system.result"); var b64 = vars.get("$field.FLAG_RAW");//TODO !move flags from AB_COUNTRYINFO to binaries (asys_binaries for meta) -var dataUri = "data:image/svg+xml;base64," + b64; +var dataUri = "data:image/svg+xml;base64," + b64;//TODO: currently workaround to get SVGs running result.string("URL:" + dataUri); \ No newline at end of file diff --git a/entity/Document_entity/Document_entity.aod b/entity/Document_entity/Document_entity.aod index 306c111923c03f903008917eb7d17676b05b5069..b25a4678e4d060712e9f1c7e3a3af4a7319601a9 100644 --- a/entity/Document_entity/Document_entity.aod +++ b/entity/Document_entity/Document_entity.aod @@ -96,6 +96,11 @@ <name>DESCRIPTION</name> <title>Beschreibung</title> <contentType>LONG_TEXT</contentType> + <onValueChangeTypes> + <element>MASK</element> + <element>PROCESS</element> + <element>PROCESS_SETVALUE</element> + </onValueChangeTypes> </entityField> <entityField> <name>KEYWORD</name> diff --git a/entity/Document_entity/recordcontainers/jdito/contentProcess.js b/entity/Document_entity/recordcontainers/jdito/contentProcess.js index ccee9b0372c42613f4f3fb78de22b7bfff755ef9..d58680419fb0222dbafbccafa1e60bb03cce7c8a 100644 --- a/entity/Document_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Document_entity/recordcontainers/jdito/contentProcess.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.vars"); import("system.result"); import("system.db"); diff --git a/entity/KeywordEntry_entity/KeywordEntry_entity.aod b/entity/KeywordEntry_entity/KeywordEntry_entity.aod index 0acae5fca576607f197ee4b4692071410183e310..d507d0d138a404daf59354d1e1a1beb40fe0da7c 100644 --- a/entity/KeywordEntry_entity/KeywordEntry_entity.aod +++ b/entity/KeywordEntry_entity/KeywordEntry_entity.aod @@ -368,9 +368,9 @@ <isConsumer v="false" /> </entityDependency> <entityDependency> - <name>1f4a5dd6-38c5-4f62-ad50-61826c9ab4ab</name> - <entityName>DocumentTemplate_entity</entityName> - <fieldName>KeywordDocumentTemplateType</fieldName> + <name>740a9696-d394-48ea-bcbf-a5484a093bde</name> + <entityName>SalesprojectMilestone_entity</entityName> + <fieldName>Keywords</fieldName> <isConsumer v="false" /> </entityDependency> </dependencies> diff --git a/entity/ObjectRelationType_entity/entityfields/dest_object_type/stateProcess.js b/entity/ObjectRelationType_entity/entityfields/dest_object_type/stateProcess.js index d9cbdc51a738f2419cb48403287fd4e881029824..74da791552b4d4a7ea1b5064319c589d9f3bea38 100644 --- a/entity/ObjectRelationType_entity/entityfields/dest_object_type/stateProcess.js +++ b/entity/ObjectRelationType_entity/entityfields/dest_object_type/stateProcess.js @@ -1,10 +1,7 @@ -import("system.logging"); import("system.vars"); import("system.result"); import("system.neon"); -logging.log("hui " + vars.get("$field.Type2Enabled_proxy")) - if (vars.getString("$field.Type2Enabled_proxy") == "0") { result.string(neon.COMPONENTSTATE_DISABLED); diff --git a/entity/ObjectRelationType_entity/recordcontainers/jdito/onDelete.js b/entity/ObjectRelationType_entity/recordcontainers/jdito/onDelete.js index 0c99d246e9ad41792904cece09329cdc6157d746..be2ad9cda09046be0972a65a678891217fa62039 100644 --- a/entity/ObjectRelationType_entity/recordcontainers/jdito/onDelete.js +++ b/entity/ObjectRelationType_entity/recordcontainers/jdito/onDelete.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.vars"); import("system.db"); import("system.translate"); diff --git a/entity/ObjectRelationType_entity/recordcontainers/jdito/onUpdate.js b/entity/ObjectRelationType_entity/recordcontainers/jdito/onUpdate.js index 218578069a6d0ba35654cdeb3c0e264bcdd3721d..e31eccf005c475e5c3fe863126e88a523f991a8f 100644 --- a/entity/ObjectRelationType_entity/recordcontainers/jdito/onUpdate.js +++ b/entity/ObjectRelationType_entity/recordcontainers/jdito/onUpdate.js @@ -1,11 +1,9 @@ import("Entity_lib"); -import("system.logging"); import("system.util"); import("Sql_lib"); import("system.db"); import("system.vars"); -logging.log("---------------------------") var usageCount = db.cell(SqlCondition.begin() .andPrepareVars("AB_OBJECTRELATION.AB_OBJECTRELATIONTYPE1", "$field.UID") .andPrepareVars("AB_OBJECTRELATION.AB_OBJECTRELATIONTYPE2", "$field.DEST_OBJECTRELATIONTYPEID") @@ -48,12 +46,10 @@ if (usageCount <= 0) var type2Enabled = vars.getString("$field.Type2Enabled_proxy"); - logging.log("en " + type2Enabled) // delete, if type2 is empty -> convert it to a "same"-type if (type2Enabled == "0" || ((vars.get("$field.SOURCE_RELATION_TITLE") == vars.get("$field.DEST_RELATION_TITLE") && vars.get("$field.SOURCE_OBJECT_TYPE") == vars.get("$field.DEST_OBJECT_TYPE")) || !vars.get("$field.DEST_OBJECT_TYPE") && !vars.get("$field.DEST_RELATION_TITLE"))) { - logging.log(vars.get("$field.DEST_OBJECTRELATIONTYPEID")) db.deleteData("AB_OBJECTRELATIONTYPE", type2Cond); } else diff --git a/entity/ObjectTree_entity/entityfields/alter/children/insert/onActionProcess.js b/entity/ObjectTree_entity/entityfields/alter/children/insert/onActionProcess.js index 2291f0b04c1ce88263f1ae7df7c42da85ee8b9ff..cbeeeb007e4e98249f4cc3d011932efece2af4b2 100644 --- a/entity/ObjectTree_entity/entityfields/alter/children/insert/onActionProcess.js +++ b/entity/ObjectTree_entity/entityfields/alter/children/insert/onActionProcess.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.result"); import("system.neon"); import("system.vars"); diff --git a/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js b/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js index 850e7a7b8b59fae0b195912f17e30b23807f94f9..b7e9b9983dd60bc75dcbc6f51d4d0bd084536986 100644 --- a/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/ObjectTree_entity/recordcontainers/jdito/contentProcess.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.db"); import("system.translate"); import("system.result"); diff --git a/entity/Object_entity/recordcontainers/jdito/contentProcess.js b/entity/Object_entity/recordcontainers/jdito/contentProcess.js index cc897167253658a76227405133616de5a988b233..4497cff4006889629e44c87348ca9169084ad09b 100644 --- a/entity/Object_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Object_entity/recordcontainers/jdito/contentProcess.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.db"); import("system.vars"); import("system.result"); @@ -11,9 +10,6 @@ if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param" if (vars.exists("$param.ExcludedObjectIds_param") && vars.get("$param.ExcludedObjectIds_param")) excludedIds = JSON.parse(vars.get("$param.ExcludedObjectIds_param")); - logging.log("aa22aa" + vars.get("$param.ExcludedObjectIds_param").toSource()) - logging.log("aa22aa" + vars.get("$param.ObjectType_param").toSource()) - result.object(db.table(ContextUtils.getContextDataSql(vars.get("$param.ObjectType_param"), undefined, false, undefined, false, excludedIds))) } else diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod index 36e8bee336ba4f8af8ccd2b908feffe9ff9e4333..3e594fdf6c0dd8614fd4b85533e42f1ba771bb8c 100644 --- a/entity/Offer_entity/Offer_entity.aod +++ b/entity/Offer_entity/Offer_entity.aod @@ -728,30 +728,23 @@ <onDBDelete>%aditoprj%/entity/Offer_entity/recordcontainers/db/onDBDelete.js</onDBDelete> <linkInformation> <linkInformation> - <name>19634909-a0a3-4fde-b875-e3b2b254e890</name> + <name>fdfae1fd-5eb3-4891-86b7-517803035f23</name> <tableName>OFFER</tableName> <primaryKey>OFFERID</primaryKey> <isUIDTable v="true" /> <readonly v="false" /> </linkInformation> <linkInformation> - <name>1b7e5346-a8ce-4ef6-a227-a4557cba3294</name> + <name>d49d4390-5567-449b-8702-ee97dbfe1700</name> <tableName>CONTACT</tableName> <primaryKey>CONTACTID</primaryKey> <isUIDTable v="false" /> <readonly v="true" /> </linkInformation> <linkInformation> - <name>9c8f49ae-399f-49e8-a18a-fb4b84a360d0</name> - <tableName>ORGANISATION</tableName> - <primaryKey>ORGANISATIONID</primaryKey> - <isUIDTable v="false" /> - <readonly v="true" /> - </linkInformation> - <linkInformation> - <name>35ac875d-66c4-43b0-9293-b034f45260c8</name> - <tableName>PERSON</tableName> - <primaryKey>PERSONID</primaryKey> + <name>d165322e-cdf3-4611-9fea-0e100853ae80</name> + <tableName>SALESPROJECT</tableName> + <primaryKey>SALESPROJECTID</primaryKey> <isUIDTable v="false" /> <readonly v="true" /> </linkInformation> @@ -873,6 +866,10 @@ <name>DATE_EDIT.value</name> <recordfield>OFFER.DATE_EDIT</recordfield> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>SALESPROJECT_ID.displayValue</name> + <recordfield>SALESPROJECT.PROJECTTITLE</recordfield> + </dbRecordFieldMapping> </recordFieldMappings> </dbRecordContainer> </recordContainers> diff --git a/entity/Offer_entity/entityfields/contact_id/onValueChange.js b/entity/Offer_entity/entityfields/contact_id/onValueChange.js index 98ae338e181debb430e224d724a4e4fc430d7f2d..21017ee1ee7962854598b28f6b669380403ecac1 100644 --- a/entity/Offer_entity/entityfields/contact_id/onValueChange.js +++ b/entity/Offer_entity/entityfields/contact_id/onValueChange.js @@ -1,20 +1,19 @@ -import("system.logging"); -import("system.neon"); -import("system.vars"); -import("system.db"); -import("Util_lib"); -import("Entity_lib"); -import("Contact_lib"); - -var contactid = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTACT_ID")); -if(contactid != "") -{ - //Language Preset - var relData = db.array(db.ROW, "select LANGUAGE from CONTACT where CONTACTID = '" + contactid + "'"); - if(relData[0] != "") - neon.setFieldValue("field.LANGUAGE", relData[0]); - - // set $field.CONTATCT_ORG_ID per contactid - var orgid = ContactUtils.getPersOrgIds(contactid); - neon.setFieldValue("$field.CONTACT_ORG_ID", orgid[2]); +import("system.neon"); +import("system.vars"); +import("system.db"); +import("Util_lib"); +import("Entity_lib"); +import("Contact_lib"); + +var contactid = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTACT_ID")); +if(contactid != "") +{ + //Language Preset + var relData = db.array(db.ROW, "select LANGUAGE from CONTACT where CONTACTID = '" + contactid + "'"); + if(relData[0] != "") + neon.setFieldValue("field.LANGUAGE", relData[0]); + + // set $field.CONTATCT_ORG_ID per contactid + var orgid = ContactUtils.getPersOrgIds(contactid); + neon.setFieldValue("$field.CONTACT_ORG_ID", orgid[2]); } \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/image/valueProcess.js b/entity/Offer_entity/entityfields/image/valueProcess.js index 17664f2a052b736ff699cf8cdee04a6b10d73fdc..0b7267521a413a9284fa209c96e92bdea08a20ae 100644 --- a/entity/Offer_entity/entityfields/image/valueProcess.js +++ b/entity/Offer_entity/entityfields/image/valueProcess.js @@ -1,6 +1,4 @@ import("system.vars"); import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); -result.string("TEXT:" + KeywordUtils.getViewValue($KeywordRegistry.offerStatus(), vars.getString("$field.STATUS")) ); \ No newline at end of file +result.string("TEXT:" + vars.get("$field.STATUS.displayValue")); \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/salesproject_id/stateProcess.js b/entity/Offer_entity/entityfields/salesproject_id/stateProcess.js index 1a1eb537b9b727aa99c48fe7236750b5c19c8e5a..1b35d9149a31ff3bebe48f47d48c54f55315e375 100644 --- a/entity/Offer_entity/entityfields/salesproject_id/stateProcess.js +++ b/entity/Offer_entity/entityfields/salesproject_id/stateProcess.js @@ -1,19 +1,17 @@ -import("system.logging"); -import("system.neon"); -import("system.result"); -import("system.vars"); -import("Entity_lib"); - - -switch (vars.get("$sys.recordstate")) -{ - case neon.OPERATINGSTATE_NEW: - //only EDITABLE if $field.CONTACT_ID is set - if(ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTACT_ID"))) - result.object(neon.COMPONENTSTATE_EDITABLE); - else - result.object(neon.COMPONENTSTATE_READONLY); - break; - default: - result.object(neon.COMPONENTSTATE_READONLY); +import("system.neon"); +import("system.result"); +import("system.vars"); +import("Entity_lib"); + +switch (vars.get("$sys.recordstate")) +{ + case neon.OPERATINGSTATE_NEW: + //only EDITABLE if $field.CONTACT_ID is set + if(ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTACT_ID"))) + result.object(neon.COMPONENTSTATE_EDITABLE); + else + result.object(neon.COMPONENTSTATE_READONLY); + break; + default: + result.object(neon.COMPONENTSTATE_READONLY); } \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js b/entity/Offer_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js index 2b24f74fc8720337e690ffb5b66610529cdbb859..f2c342bc94674b7899c756a441619cddb1769980 100644 --- a/entity/Offer_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js +++ b/entity/Offer_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js @@ -1,7 +1,5 @@ -import("system.logging"); -import("system.vars"); -import("system.result"); -import("Entity_lib"); - -var contact = ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTACT_ORG_ID")); -result.string(contact); \ No newline at end of file +import("system.vars"); +import("system.result"); +import("Entity_lib"); + +result.string(ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTACT_ORG_ID"))); \ No newline at end of file diff --git a/entity/Offer_entity/recordcontainers/db/fromClauseProcess.js b/entity/Offer_entity/recordcontainers/db/fromClauseProcess.js index 2c33b4d7a687c225b0539799cc7262fab4048368..73ea32201ab969db8600af5c66bcafa1ad5523f6 100644 --- a/entity/Offer_entity/recordcontainers/db/fromClauseProcess.js +++ b/entity/Offer_entity/recordcontainers/db/fromClauseProcess.js @@ -1,4 +1,4 @@ import("system.result"); result.string("OFFER left join CONTACT on CONTACTID = CONTACT_ID \n\ -left join ORGANISATION on ORGANISATIONID = ORGANISATION_ID left join PERSON on PERSONID = PERSON_ID"); \ No newline at end of file +left join SALESPROJECT on SALESPROJECTID = SALESPROJECT_ID"); \ No newline at end of file diff --git a/entity/Offeritem_entity/entityfields/discount/onValidation.js b/entity/Offeritem_entity/entityfields/discount/onValidation.js index a929b1d08a849904282a2e7c8d3a05bb77a7e4eb..2864ac016f3a9b00e8cc491bcf3fac9204e2ec90 100644 --- a/entity/Offeritem_entity/entityfields/discount/onValidation.js +++ b/entity/Offeritem_entity/entityfields/discount/onValidation.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.result"); import("system.vars"); import("Util_lib"); diff --git a/entity/Order_entity/Order_entity.aod b/entity/Order_entity/Order_entity.aod index 30b9585984658b4e37c7a6c25280bf4221c1cbc6..92de79ba4fa97d6419751e7271a6bc246005e0b2 100644 --- a/entity/Order_entity/Order_entity.aod +++ b/entity/Order_entity/Order_entity.aod @@ -456,30 +456,23 @@ <onDBDelete>%aditoprj%/entity/Order_entity/recordcontainers/db/onDBDelete.js</onDBDelete> <linkInformation> <linkInformation> - <name>f84d86a8-867d-44ea-bce5-3489bbee55a0</name> + <name>c1a83567-58d0-44bd-ae08-14018311a6ae</name> <tableName>SALESORDER</tableName> <primaryKey>SALESORDERID</primaryKey> <isUIDTable v="true" /> <readonly v="false" /> </linkInformation> <linkInformation> - <name>2c489a72-00ee-4bad-929f-25ef82dbc714</name> + <name>7d433584-df9f-4b5b-bae4-f3b0a1962d59</name> <tableName>CONTACT</tableName> <primaryKey>CONTACTID</primaryKey> <isUIDTable v="false" /> <readonly v="true" /> </linkInformation> <linkInformation> - <name>3888fb8c-6d2a-42e6-8abd-e4a9ac7a74ac</name> - <tableName>ORGANISATION</tableName> - <primaryKey>ORGANISATIONID</primaryKey> - <isUIDTable v="false" /> - <readonly v="true" /> - </linkInformation> - <linkInformation> - <name>75470798-2097-41a2-95c2-22cf80d2f0c4</name> - <tableName>PERSON</tableName> - <primaryKey>PERSONID</primaryKey> + <name>33653e5e-df52-413c-9a91-349fd989ab89</name> + <tableName>SALESPROJECT</tableName> + <primaryKey>SALESPROJECTID</primaryKey> <isUIDTable v="false" /> <readonly v="true" /> </linkInformation> @@ -565,6 +558,10 @@ <name>OFFER_ID.value</name> <recordfield>SALESORDER.OFFER_ID</recordfield> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>SALESPROJECT_ID.displayValue</name> + <recordfield>SALESPROJECT.PROJECTTITLE</recordfield> + </dbRecordFieldMapping> </recordFieldMappings> </dbRecordContainer> </recordContainers> diff --git a/entity/Order_entity/entityfields/image/valueProcess.js b/entity/Order_entity/entityfields/image/valueProcess.js index c02371b12bec59c4dcc278169f2d08c6fb919cc0..17507224aefcb223da7f2e3edca6b79ea9281930 100644 --- a/entity/Order_entity/entityfields/image/valueProcess.js +++ b/entity/Order_entity/entityfields/image/valueProcess.js @@ -1,6 +1,4 @@ import("system.vars"); import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); -result.string("TEXT:" + KeywordUtils.getViewValue($KeywordRegistry.salesorderState(), vars.getString("$field.STATUS")) ); +result.string("TEXT:" + vars.getString("$field.STATUS.displayValue")); diff --git a/entity/Order_entity/entityfields/status/displayValueProcess.js b/entity/Order_entity/entityfields/status/displayValueProcess.js index 70976b2e028f23867e8f6addad7cdd3517f3c5e0..4a9b7bcc8b2f66e295eafc8c09f796d693249001 100644 --- a/entity/Order_entity/entityfields/status/displayValueProcess.js +++ b/entity/Order_entity/entityfields/status/displayValueProcess.js @@ -1,6 +1,6 @@ -import("system.result"); -import("system.vars"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); - -result.string(KeywordUtils.getViewValue($KeywordRegistry.salesorderState(), vars.get("$field.STATUS"))); +import("system.result"); +import("system.vars"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); + +result.string(KeywordUtils.getViewValue($KeywordRegistry.salesorderState(), vars.get("$field.STATUS"))); diff --git a/entity/Order_entity/recordcontainers/db/fromClauseProcess.js b/entity/Order_entity/recordcontainers/db/fromClauseProcess.js index 24ccfcf71b16a96c4d72afc35d8340a254b90baf..5972289c6996fa45ee4b680dfa87ef3d2e0c2048 100644 --- a/entity/Order_entity/recordcontainers/db/fromClauseProcess.js +++ b/entity/Order_entity/recordcontainers/db/fromClauseProcess.js @@ -1,3 +1,4 @@ import("system.result"); -result.string("SALESORDER left join CONTACT on CONTACTID = CONTACT_ID left join ORGANISATION on ORGANISATIONID = ORGANISATION_ID"); \ No newline at end of file +result.string("SALESORDER left join CONTACT on CONTACTID = CONTACT_ID \n\ +left join SALESPROJECT on SALESPROJECTID = SALESPROJECT_ID"); \ No newline at end of file diff --git a/entity/Order_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js b/entity/Order_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js index f2b9a0bfd51ec122ed45118cc0db8673efa32eb4..aa54f4f9efa30b7b8af672c9c43e70ed29d54b6c 100644 --- a/entity/Order_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js +++ b/entity/Order_entity/recordcontainers/db/recordfieldmappings/status.displayvalue/expression.js @@ -2,5 +2,4 @@ import("system.result"); import("Keyword_lib"); import("KeywordRegistry_basic"); -var sql = KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesorderState(), "SALESORDER.STATUS"); -result.string(sql); +result.string(KeywordUtils.getResolvedTitleSqlPart($KeywordRegistry.salesorderState(), "SALESORDER.STATUS")); diff --git a/entity/Organisation_entity/entityfields/newappointment/onActionProcess.js b/entity/Organisation_entity/entityfields/newappointment/onActionProcess.js index 475936e13803b10cfb274cf925f189ffbc54049c..fde05a49a0df1146c17e05dc3775b82ea0de6f12 100644 --- a/entity/Organisation_entity/entityfields/newappointment/onActionProcess.js +++ b/entity/Organisation_entity/entityfields/newappointment/onActionProcess.js @@ -1,14 +1,13 @@ -import("system.vars"); -import("system.logging"); -import("system.neon"); -import("system.calendars"); -import("Calendar_lib"); -import("system.date"); -import("Context_lib"); - - -var params = {}; -params["Entry_param"] = JSON.stringify(CalendarUtil.createEntry(calendars.VEVENT, "neue Termin weissu", "", false, ContextUtils.getCurrentContextId(), vars.get("$field.ORGANISATIONID"))); - -neon.openContext("Appointment", "AppointmentEdit_view", null, neon.OPERATINGSTATE_NEW, params); - +import("system.vars"); +import("system.neon"); +import("system.calendars"); +import("Calendar_lib"); +import("system.date"); +import("Context_lib"); + + +var params = {}; +params["Entry_param"] = JSON.stringify(CalendarUtil.createEntry(calendars.VEVENT, "neue Termin weissu", "", false, ContextUtils.getCurrentContextId(), vars.get("$field.ORGANISATIONID"))); + +neon.openContext("Appointment", "AppointmentEdit_view", null, neon.OPERATINGSTATE_NEW, params); + diff --git a/entity/Person_entity/entityfields/address_id/valueProcess.js b/entity/Person_entity/entityfields/address_id/valueProcess.js index 72dfe18cc06b3c7b652af1305f4498c40fc101ae..f5131447594b4ae38c216e849e0bca9324adaa78 100644 --- a/entity/Person_entity/entityfields/address_id/valueProcess.js +++ b/entity/Person_entity/entityfields/address_id/valueProcess.js @@ -1,7 +1,7 @@ -import("system.logging"); import("system.result"); import("system.vars"); import("StandardObject_lib"); + // Check if the standard address is already set. if (vars.get("$field.ADDRESS_ID") === null || vars.get("$field.ADDRESS_ID") === "" || vars.get("$field.ADDRESS_ID") == 0) { var possibleStandardAddressID = new StandardObject("Address", null, "Person", vars.get("$field.PERSONID")) diff --git a/entity/Prod2prod_entity/recordcontainers/jdito/contentProcess.js b/entity/Prod2prod_entity/recordcontainers/jdito/contentProcess.js index eeef1e962f6196a9eb632698f6860c216068cb51..bb5fcc0559027a3fd5ab7534a4cc4a53a2ea2a71 100644 --- a/entity/Prod2prod_entity/recordcontainers/jdito/contentProcess.js +++ b/entity/Prod2prod_entity/recordcontainers/jdito/contentProcess.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.neon"); import("system.result"); import("system.vars"); diff --git a/entity/Productprice_entity/entityfields/image/valueProcess.js b/entity/Productprice_entity/entityfields/image/valueProcess.js index 1a61d32b892076cb93d6b4a4faeec1cf026a9ea8..8ba121f73f08d59b6efda0fbaa02d9761e31b5b3 100644 --- a/entity/Productprice_entity/entityfields/image/valueProcess.js +++ b/entity/Productprice_entity/entityfields/image/valueProcess.js @@ -1,5 +1,4 @@ import("system.vars"); import("system.result"); -import("Keyword_lib"); -result.string("TEXT:" + vars.get("$field.BUYSELL") ); \ No newline at end of file +result.string("TEXT:" + vars.getString("$field.PRICELIST.displayValue")); \ No newline at end of file diff --git a/entity/SalesprojectAnalyses_entity/entityfields/open_salesprojects/valueProcess.js b/entity/SalesprojectAnalyses_entity/entityfields/open_salesprojects/valueProcess.js index d58be99a6a23f3797888dbc9fe370413dad3b9a1..edfcaddcb840d27088338ff6d7b3624ce73938ff 100644 --- a/entity/SalesprojectAnalyses_entity/entityfields/open_salesprojects/valueProcess.js +++ b/entity/SalesprojectAnalyses_entity/entityfields/open_salesprojects/valueProcess.js @@ -1,14 +1,13 @@ -import("system.datetime"); -import("system.db"); -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("system.logging"); -import("Sql_lib"); -import("system.SQLTYPES") - -var opensp = db.cell("select count(STATE) from SALESPROJECT \n\ -join AB_KEYWORD_ENTRY on KEYID = STATE and CONTAINER = 'SalesprojectState' and TITLE = 'Open' \n\ -group by KEYID, AB_KEYWORD_ENTRY.TITLE"); - +import("system.datetime"); +import("system.db"); +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Sql_lib"); +import("system.SQLTYPES") + +var opensp = db.cell("select count(STATE) from SALESPROJECT \n\ +join AB_KEYWORD_ENTRY on KEYID = STATE and CONTAINER = 'SalesprojectState' and TITLE = 'Open' \n\ +group by KEYID, AB_KEYWORD_ENTRY.TITLE"); + result.string(opensp); \ 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 b1f1ae8c0052bfa40c6ffb555ff4197450caf553..48cfc6320620c6baf8bba6379b6dffe9f3cc6e15 100644 --- a/entity/SalesprojectAnalyses_entity/entityfields/overall_forecast/valueProcess.js +++ b/entity/SalesprojectAnalyses_entity/entityfields/overall_forecast/valueProcess.js @@ -1,14 +1,13 @@ -import("system.datetime"); -import("system.db"); -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("system.logging"); -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 * 1000) 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 * 1000) from SALESPROJECT_FORECAST", "1=2")); + result.string(forecast); \ No newline at end of file diff --git a/entity/SalesprojectAnalyses_entity/entityfields/overall_turnover/valueProcess.js b/entity/SalesprojectAnalyses_entity/entityfields/overall_turnover/valueProcess.js index a08d40a129380b9383c59d1a175f75b5e31f5767..9c8e5ea68dc50dc8a1b7f3ddb63eeffa651d316f 100644 --- a/entity/SalesprojectAnalyses_entity/entityfields/overall_turnover/valueProcess.js +++ b/entity/SalesprojectAnalyses_entity/entityfields/overall_turnover/valueProcess.js @@ -1,14 +1,13 @@ -import("system.datetime"); -import("system.db"); -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("system.logging"); -import("Sql_lib"); -import("system.SQLTYPES") - -var turnover = db.cell(SqlCondition.begin() - .andPrepare("SALESORDER.SALESORDERDATE", datetime.toDate(vars.get("$sys.date"), "yyyy"), "year(#) = ?", SQLTYPES.INTEGER) - .buildSql("select sum(NET + VAT) from SALESORDER", "1=2")); - +import("system.datetime"); +import("system.db"); +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Sql_lib"); +import("system.SQLTYPES") + +var turnover = db.cell(SqlCondition.begin() + .andPrepare("SALESORDER.SALESORDERDATE", datetime.toDate(vars.get("$sys.date"), "yyyy"), "year(#) = ?", SQLTYPES.INTEGER) + .buildSql("select sum(NET + VAT) from SALESORDER", "1=2")); + result.string(turnover); \ No newline at end of file diff --git a/entity/SalesprojectAnalyses_entity/entityfields/sent_offers/valueProcess.js b/entity/SalesprojectAnalyses_entity/entityfields/sent_offers/valueProcess.js index c415d73135ceb0683dd670668442589b62e5660a..8d610d08abc6ca281facdb29e790696741a5dd85 100644 --- a/entity/SalesprojectAnalyses_entity/entityfields/sent_offers/valueProcess.js +++ b/entity/SalesprojectAnalyses_entity/entityfields/sent_offers/valueProcess.js @@ -1,13 +1,12 @@ -import("system.datetime"); -import("system.db"); -import("system.result"); -import("system.vars"); -import("Date_lib"); -import("system.logging"); -import("Sql_lib"); -import("system.SQLTYPES") - -var sentoffer = db.cell("select count(STATUS) from OFFER join AB_KEYWORD_ENTRY \n\ -on KEYID = STATUS and CONTAINER = 'OfferStatus' and TITLE = 'Sent' group by KEYID, AB_KEYWORD_ENTRY.TITLE"); - +import("system.datetime"); +import("system.db"); +import("system.result"); +import("system.vars"); +import("Date_lib"); +import("Sql_lib"); +import("system.SQLTYPES") + +var sentoffer = db.cell("select count(STATUS) from OFFER join AB_KEYWORD_ENTRY \n\ +on KEYID = STATUS and CONTAINER = 'OfferStatus' and TITLE = 'Sent' group by KEYID, AB_KEYWORD_ENTRY.TITLE"); + result.string(sentoffer); \ No newline at end of file diff --git a/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod b/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod index f479afb820b077913c99b9e6e8d8b705ea07aad8..2424d7542058a15e42df7b7e48896db39b7a579f 100644 --- a/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod +++ b/entity/SalesprojectCompetition_entity/SalesprojectCompetition_entity.aod @@ -18,6 +18,7 @@ <entityField> <name>INFO</name> <title>Info</title> + <contentType>LONG_TEXT</contentType> </entityField> <entityField> <name>REASON</name> @@ -258,6 +259,12 @@ </entityParameter> </children> </entityConsumer> + <entityField> + <name>IMAGE</name> + <contentType>IMAGE</contentType> + <valueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/image/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/SalesprojectCompetition_entity/entityfields/image/displayValueProcess.js</displayValueProcess> + </entityField> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/SalesprojectCompetition_entity/entityfields/image/displayValueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/image/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/entity/SalesprojectCompetition_entity/entityfields/image/valueProcess.js b/entity/SalesprojectCompetition_entity/entityfields/image/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d071e384e95b26e1b3013d43ac5c4f45ae4cc579 --- /dev/null +++ b/entity/SalesprojectCompetition_entity/entityfields/image/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string("TEXT:" + vars.getString("$field.ORGANISATION_NAME")); \ No newline at end of file diff --git a/entity/SalesprojectCycle_entity/entityfields/type/possibleItemsProcess.js b/entity/SalesprojectCycle_entity/entityfields/type/possibleItemsProcess.js deleted file mode 100644 index effac991d6646dd9c7969dedb551820331abebf9..0000000000000000000000000000000000000000 --- a/entity/SalesprojectCycle_entity/entityfields/type/possibleItemsProcess.js +++ /dev/null @@ -1,6 +0,0 @@ -import("system.result"); -import("system.vars"); -import("Keyword_lib"); - -var items = LegacyKeywordUtils.getStandardArray("SALESPROJECT.CYCLE.TYPE"); -result.object(items); \ No newline at end of file diff --git a/entity/SalesprojectCycle_entity/entityfields/value/possibleItemsProcess.js b/entity/SalesprojectCycle_entity/entityfields/value/possibleItemsProcess.js deleted file mode 100644 index 512b10f2cc7f884a6d5a532ce0223ad938e8fcb0..0000000000000000000000000000000000000000 --- a/entity/SalesprojectCycle_entity/entityfields/value/possibleItemsProcess.js +++ /dev/null @@ -1,20 +0,0 @@ -import("system.result"); -import("system.vars"); -import("Keyword_lib"); - -var items, keyword, type; - -items = []; - -type = vars.getString("$field.TYPE"); - -// load the possible values based on the type. -if (type) { - keyword = LegacyKeywordUtils.get("SALESPROJECT.CYCLE.TYPE", type)[2].keyword; - - if (keyword) { - items = LegacyKeywordUtils.getStandardArray(keyword); - } -} - -result.object(items); diff --git a/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod b/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod index 945e940b05d1be8647b5655996ccf1b92b6d45ea..7a4816bce187d9b02b224a6baed1b8d05867a3f5 100644 --- a/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod +++ b/entity/SalesprojectForecast_entity/SalesprojectForecast_entity.aod @@ -24,6 +24,7 @@ <entityField> <name>INFO</name> <title>Info</title> + <contentType>LONG_TEXT</contentType> </entityField> <entityField> <name>SALESPROJECT_FORECASTID</name> diff --git a/entity/SalesprojectCycle_entity/SalesprojectCycle_entity.aod b/entity/SalesprojectMilestone_entity/SalesprojectMilestone_entity.aod similarity index 51% rename from entity/SalesprojectCycle_entity/SalesprojectCycle_entity.aod rename to entity/SalesprojectMilestone_entity/SalesprojectMilestone_entity.aod index fbf0ff3b285905a417c48780fe7940f73534a02d..d390c31108e434406bb56161e32cbe4d650f5a9f 100644 --- a/entity/SalesprojectCycle_entity/SalesprojectCycle_entity.aod +++ b/entity/SalesprojectMilestone_entity/SalesprojectMilestone_entity.aod @@ -1,6 +1,6 @@ <?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.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.1"> - <name>SalesprojectCycle_entity</name> + <name>SalesprojectMilestone_entity</name> <title>Milestones</title> <majorModelMode>DISTRIBUTED</majorModelMode> <recordContainer>db</recordContainer> @@ -24,24 +24,27 @@ <outputFormat>dd.MM.yyyy</outputFormat> </entityField> <entityField> - <name>SALESPROJECT_CYCLEID</name> - <valueProcess>%aditoprj%/entity/SalesprojectCycle_entity/entityfields/salesproject_cycleid/valueProcess.js</valueProcess> + <name>SALESPROJECT_MILESTONEID</name> + <searchable v="false" /> + <valueProcess>%aditoprj%/entity/SalesprojectMilestone_entity/entityfields/salesproject_milestoneid/valueProcess.js</valueProcess> </entityField> <entityField> <name>SALESPROJECT_ID</name> - <valueProcess>%aditoprj%/entity/SalesprojectCycle_entity/entityfields/salesproject_id/valueProcess.js</valueProcess> + <searchable v="false" /> + <valueProcess>%aditoprj%/entity/SalesprojectMilestone_entity/entityfields/salesproject_id/valueProcess.js</valueProcess> </entityField> <entityField> <name>TYPE</name> <title>Type</title> <mandatory v="true" /> - <possibleItemsProcess>%aditoprj%/entity/SalesprojectCycle_entity/entityfields/type/possibleItemsProcess.js</possibleItemsProcess> + <displayValueProcess>%aditoprj%/entity/SalesprojectMilestone_entity/entityfields/type/displayValueProcess.js</displayValueProcess> </entityField> <entityField> <name>VALUE</name> <title>Milestone</title> + <consumer>Keywords</consumer> <mandatory v="true" /> - <possibleItemsProcess>%aditoprj%/entity/SalesprojectCycle_entity/entityfields/value/possibleItemsProcess.js</possibleItemsProcess> + <displayValueProcess>%aditoprj%/entity/SalesprojectMilestone_entity/entityfields/value/displayValueProcess.js</displayValueProcess> </entityField> <entityParameter> <name>SalesprojectId_param</name> @@ -51,14 +54,14 @@ <description>PARAMETER</description> </entityParameter> <entityProvider> - <name>SalesprojectCycles</name> + <name>SalesprojectMilestones</name> <fieldType>DEPENDENCY_IN</fieldType> <recordContainer>db</recordContainer> <dependencies> <entityDependency> <name>b05e2bdf-5d8b-4ba2-8dba-a8560c255470</name> <entityName>Salesproject_entity</entityName> - <fieldName>SalesprojectCycles</fieldName> + <fieldName>SalesprojectMilestones</fieldName> <isConsumer v="false" /> </entityDependency> </dependencies> @@ -69,19 +72,43 @@ </entityParameter> </children> </entityProvider> + <entityField> + <name>DaysCount</name> + <title>Days count</title> + <valueProcess>%aditoprj%/entity/SalesprojectMilestone_entity/entityfields/dayscount/valueProcess.js</valueProcess> + </entityField> + <entityField> + <name>PARENT</name> + </entityField> + <entityConsumer> + <name>Keywords</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/SalesprojectMilestone_entity/entityfields/keywords/children/containername_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> </entityFields> <recordContainers> <dbRecordContainer> <name>db</name> <title></title> <alias>Data_alias</alias> - <conditionProcess>%aditoprj%/entity/SalesprojectCycle_entity/recordcontainers/db/conditionProcess.js</conditionProcess> - <onDBUpdate>%aditoprj%/entity/SalesprojectCycle_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate> + <conditionProcess>%aditoprj%/entity/SalesprojectMilestone_entity/recordcontainers/db/conditionProcess.js</conditionProcess> + <orderClauseProcess>%aditoprj%/entity/SalesprojectMilestone_entity/recordcontainers/db/orderClauseProcess.js</orderClauseProcess> + <onDBUpdate>%aditoprj%/entity/SalesprojectMilestone_entity/recordcontainers/db/onDBUpdate.js</onDBUpdate> <linkInformation> <linkInformation> <name>464f1fd7-e5b6-4cfc-92f8-4873d4e10ce3</name> - <tableName>SALESPROJECT_CYCLE</tableName> - <primaryKey>SALESPROJECT_CYCLEID</primaryKey> + <tableName>SALESPROJECT_MILESTONE</tableName> + <primaryKey>SALESPROJECT_MILESTONEID</primaryKey> <isUIDTable v="true" /> <readonly v="false" /> </linkInformation> @@ -89,27 +116,31 @@ <recordFieldMappings> <dbRecordFieldMapping> <name>DATE_END.value</name> - <recordfield>SALESPROJECT_CYCLE.DATE_END</recordfield> + <recordfield>SALESPROJECT_MILESTONE.DATE_END</recordfield> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>DATE_START.value</name> - <recordfield>SALESPROJECT_CYCLE.DATE_START</recordfield> + <recordfield>SALESPROJECT_MILESTONE.DATE_START</recordfield> </dbRecordFieldMapping> <dbRecordFieldMapping> - <name>SALESPROJECT_CYCLEID.value</name> - <recordfield>SALESPROJECT_CYCLE.SALESPROJECT_CYCLEID</recordfield> + <name>SALESPROJECT_MILESTONEID.value</name> + <recordfield>SALESPROJECT_MILESTONE.SALESPROJECT_MILESTONEID</recordfield> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>TYPE.value</name> - <recordfield>SALESPROJECT_CYCLE.TYPE</recordfield> + <recordfield>SALESPROJECT_MILESTONE.TYPE</recordfield> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>VALUE.value</name> - <recordfield>SALESPROJECT_CYCLE.VALUE</recordfield> + <recordfield>SALESPROJECT_MILESTONE.VALUE</recordfield> </dbRecordFieldMapping> <dbRecordFieldMapping> <name>SALESPROJECT_ID.value</name> - <recordfield>SALESPROJECT_CYCLE.SALESPROJECT_ID</recordfield> + <recordfield>SALESPROJECT_MILESTONE.SALESPROJECT_ID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>PARENT.value</name> + <expression>%aditoprj%/entity/SalesprojectMilestone_entity/recordcontainers/db/recordfieldmappings/parent.value/expression.js</expression> </dbRecordFieldMapping> </recordFieldMappings> </dbRecordContainer> diff --git a/entity/SalesprojectCycle_entity/recordcontainers/db/conditionProcess.js b/entity/SalesprojectMilestone_entity/conditionProcess.js similarity index 72% rename from entity/SalesprojectCycle_entity/recordcontainers/db/conditionProcess.js rename to entity/SalesprojectMilestone_entity/conditionProcess.js index 01636c9c6c0e376f52c0a692d6d6bd7e8d755e9b..7711ad471a8ed5e095a39703339fdedc6bc6153f 100644 --- a/entity/SalesprojectCycle_entity/recordcontainers/db/conditionProcess.js +++ b/entity/SalesprojectMilestone_entity/conditionProcess.js @@ -4,7 +4,7 @@ import("system.vars"); import("Sql_lib"); var cond = new SqlCondition(); -cond.andPrepareVars("SALESPROJECT_CYCLE.SALESPROJECT_ID", "$param.SalesprojectId_param"); +cond.andPrepareVars("SALESPROJECT_MILESTONE.SALESPROJECT_ID", "$param.SalesprojectId_param"); //TODO: use a preparedCondition when available #1030812 #1034026 result.string(db.translateCondition(cond.build("1 = 1"))); \ No newline at end of file diff --git a/entity/SalesprojectCycle_entity/entityfields/date_edit/valueProcess.js b/entity/SalesprojectMilestone_entity/entityfields/date_edit/valueProcess.js similarity index 100% rename from entity/SalesprojectCycle_entity/entityfields/date_edit/valueProcess.js rename to entity/SalesprojectMilestone_entity/entityfields/date_edit/valueProcess.js diff --git a/entity/SalesprojectCycle_entity/entityfields/date_new/valueProcess.js b/entity/SalesprojectMilestone_entity/entityfields/date_new/valueProcess.js similarity index 100% rename from entity/SalesprojectCycle_entity/entityfields/date_new/valueProcess.js rename to entity/SalesprojectMilestone_entity/entityfields/date_new/valueProcess.js diff --git a/entity/SalesprojectMilestone_entity/entityfields/dayscount/valueProcess.js b/entity/SalesprojectMilestone_entity/entityfields/dayscount/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c8db7ec7ba0e820f2e89fa0c6bb48100073811e5 --- /dev/null +++ b/entity/SalesprojectMilestone_entity/entityfields/dayscount/valueProcess.js @@ -0,0 +1,15 @@ +import("system.result"); +import("system.vars"); +import("system.datetime"); + +var start = parseInt(vars.get("$field.DATE_START")); +var end = vars.get("$field.DATE_END"); + +if (!end) + end = parseInt(vars.get("$sys.date")); + +end = parseInt(end); + +var oneDay = datetime.ONE_DAY; +var diffDays = Math.round(Math.abs((end - start)/(oneDay))); +result.string(diffDays); \ No newline at end of file diff --git a/entity/SalesprojectMilestone_entity/entityfields/keywords/children/containername_param/valueProcess.js b/entity/SalesprojectMilestone_entity/entityfields/keywords/children/containername_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..1b532aec63043fba84acf422369129fb9706bc12 --- /dev/null +++ b/entity/SalesprojectMilestone_entity/entityfields/keywords/children/containername_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.TYPE")); \ No newline at end of file diff --git a/entity/SalesprojectCycle_entity/entityfields/salesproject_id/valueProcess.js b/entity/SalesprojectMilestone_entity/entityfields/salesproject_id/valueProcess.js similarity index 100% rename from entity/SalesprojectCycle_entity/entityfields/salesproject_id/valueProcess.js rename to entity/SalesprojectMilestone_entity/entityfields/salesproject_id/valueProcess.js diff --git a/entity/SalesprojectCycle_entity/entityfields/salesproject_cycleid/valueProcess.js b/entity/SalesprojectMilestone_entity/entityfields/salesproject_milestoneid/valueProcess.js similarity index 100% rename from entity/SalesprojectCycle_entity/entityfields/salesproject_cycleid/valueProcess.js rename to entity/SalesprojectMilestone_entity/entityfields/salesproject_milestoneid/valueProcess.js diff --git a/entity/SalesprojectMilestone_entity/entityfields/type/displayValueProcess.js b/entity/SalesprojectMilestone_entity/entityfields/type/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..20dd9c7dc7b04a439a16a2a9b4cd833c78f3f964 --- /dev/null +++ b/entity/SalesprojectMilestone_entity/entityfields/type/displayValueProcess.js @@ -0,0 +1,5 @@ +import("system.result"); +import("system.vars"); +import("Keyword_lib"); + +result.string(KeywordUtils.getTranslatedContainer(vars.get("$field.TYPE"))); \ No newline at end of file diff --git a/entity/SalesprojectCycle_entity/entityfields/user_edit/valueProcess.js b/entity/SalesprojectMilestone_entity/entityfields/user_edit/valueProcess.js similarity index 100% rename from entity/SalesprojectCycle_entity/entityfields/user_edit/valueProcess.js rename to entity/SalesprojectMilestone_entity/entityfields/user_edit/valueProcess.js diff --git a/entity/SalesprojectCycle_entity/entityfields/user_new/valueProcess.js b/entity/SalesprojectMilestone_entity/entityfields/user_new/valueProcess.js similarity index 100% rename from entity/SalesprojectCycle_entity/entityfields/user_new/valueProcess.js rename to entity/SalesprojectMilestone_entity/entityfields/user_new/valueProcess.js diff --git a/entity/SalesprojectMilestone_entity/entityfields/value/displayValueProcess.js b/entity/SalesprojectMilestone_entity/entityfields/value/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..5a8a9c5933eb25e1aadbbdc66fa8ac545c1d12b5 --- /dev/null +++ b/entity/SalesprojectMilestone_entity/entityfields/value/displayValueProcess.js @@ -0,0 +1,5 @@ +import("system.vars"); +import("system.result"); +import("Keyword_lib"); + +result.string(KeywordUtils.getViewValue(vars.get("$field.TYPE"), vars.get("$field.VALUE"))) \ No newline at end of file diff --git a/entity/SalesprojectCycle_entity/conditionProcess.js b/entity/SalesprojectMilestone_entity/recordcontainers/db/conditionProcess.js similarity index 72% rename from entity/SalesprojectCycle_entity/conditionProcess.js rename to entity/SalesprojectMilestone_entity/recordcontainers/db/conditionProcess.js index 01636c9c6c0e376f52c0a692d6d6bd7e8d755e9b..7711ad471a8ed5e095a39703339fdedc6bc6153f 100644 --- a/entity/SalesprojectCycle_entity/conditionProcess.js +++ b/entity/SalesprojectMilestone_entity/recordcontainers/db/conditionProcess.js @@ -4,7 +4,7 @@ import("system.vars"); import("Sql_lib"); var cond = new SqlCondition(); -cond.andPrepareVars("SALESPROJECT_CYCLE.SALESPROJECT_ID", "$param.SalesprojectId_param"); +cond.andPrepareVars("SALESPROJECT_MILESTONE.SALESPROJECT_ID", "$param.SalesprojectId_param"); //TODO: use a preparedCondition when available #1030812 #1034026 result.string(db.translateCondition(cond.build("1 = 1"))); \ No newline at end of file diff --git a/entity/SalesprojectCycle_entity/recordcontainers/db/onDBUpdate.js b/entity/SalesprojectMilestone_entity/recordcontainers/db/onDBUpdate.js similarity index 100% rename from entity/SalesprojectCycle_entity/recordcontainers/db/onDBUpdate.js rename to entity/SalesprojectMilestone_entity/recordcontainers/db/onDBUpdate.js diff --git a/entity/SalesprojectMilestone_entity/recordcontainers/db/orderClauseProcess.js b/entity/SalesprojectMilestone_entity/recordcontainers/db/orderClauseProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..f05ac4a9bca40cede00cff420feb6e4343d2c2cd --- /dev/null +++ b/entity/SalesprojectMilestone_entity/recordcontainers/db/orderClauseProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +result.object({ + "SALESPROJECT_MILESTONE.DATE_END": false +}); \ No newline at end of file diff --git a/entity/SalesprojectMilestone_entity/recordcontainers/db/recordfieldmappings/parent.value/expression.js b/entity/SalesprojectMilestone_entity/recordcontainers/db/recordfieldmappings/parent.value/expression.js new file mode 100644 index 0000000000000000000000000000000000000000..e5c82e9c86a2c395736339cb57fe1e2fede85a2e --- /dev/null +++ b/entity/SalesprojectMilestone_entity/recordcontainers/db/recordfieldmappings/parent.value/expression.js @@ -0,0 +1,2 @@ +import("system.result"); +result.string("''") \ No newline at end of file diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod index fc82706d6730f269f6bb3b6e4c086aa88e2ae458..a7c8206d47e7428825c0f1c5f304530f20e5f385 100644 --- a/entity/Salesproject_entity/Salesproject_entity.aod +++ b/entity/Salesproject_entity/Salesproject_entity.aod @@ -36,6 +36,7 @@ <entityField> <name>INFO</name> <title>Information</title> + <contentType>LONG_TEXT</contentType> </entityField> <entityField> <name>PHASE</name> @@ -88,6 +89,10 @@ <mandatory v="true" /> <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/state/valueProcess.js</valueProcess> <displayValueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/state/displayValueProcess.js</displayValueProcess> + <onValueChange>%aditoprj%/entity/Salesproject_entity/entityfields/state/onValueChange.js</onValueChange> + <onValueChangeTypes> + <element>MASK</element> + </onValueChangeTypes> </entityField> <entityField> <name>VOLUME</name> @@ -130,18 +135,18 @@ </children> </entityConsumer> <entityConsumer> - <name>SalesprojectCycles</name> + <name>SalesprojectMilestones</name> <title>Milestone</title> <fieldType>DEPENDENCY_OUT</fieldType> <dependency> <name>dependency</name> - <entityName>SalesprojectCycle_entity</entityName> - <fieldName>SalesprojectCycles</fieldName> + <entityName>SalesprojectMilestone_entity</entityName> + <fieldName>SalesprojectMilestones</fieldName> </dependency> <children> <entityParameter> <name>SalesprojectId_param</name> - <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/salesprojectcycles/children/salesprojectid_param/valueProcess.js</valueProcess> + <valueProcess>%aditoprj%/entity/Salesproject_entity/entityfields/salesprojectmilestones/children/salesprojectid_param/valueProcess.js</valueProcess> <triggerRecalculation v="true" /> </entityParameter> </children> diff --git a/entity/Salesproject_entity/entityfields/image/valueProcess.js b/entity/Salesproject_entity/entityfields/image/valueProcess.js index c04626b8e075d07b742f63f4810cde51d710516e..9f3f41e5b0ec89b6d2c4146f107984b702575a95 100644 --- a/entity/Salesproject_entity/entityfields/image/valueProcess.js +++ b/entity/Salesproject_entity/entityfields/image/valueProcess.js @@ -1,6 +1,4 @@ import("system.vars"); import("system.result"); -import("Keyword_lib"); -import("KeywordRegistry_basic"); -result.string("TEXT:" + KeywordUtils.getViewValue($KeywordRegistry.salesprojectState(), vars.getString("$field.STATE")) ); \ No newline at end of file +result.string("TEXT:" + vars.getString("$field.PROJECTTITLE")); \ No newline at end of file diff --git a/entity/Salesproject_entity/entityfields/reasons/possibleItemsProcess.js b/entity/Salesproject_entity/entityfields/reasons/possibleItemsProcess.js index 82ceaf9374045d62c97d1b960f3d336663b4517c..650da662b99acacb43ca5af76c2556762f8a33f1 100644 --- a/entity/Salesproject_entity/entityfields/reasons/possibleItemsProcess.js +++ b/entity/Salesproject_entity/entityfields/reasons/possibleItemsProcess.js @@ -1,6 +1,5 @@ -import("system.logging"); -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/salesprojectcycles/children/salesprojectid_param/valueProcess.js b/entity/Salesproject_entity/entityfields/salesprojectmilestones/children/salesprojectid_param/valueProcess.js similarity index 100% rename from entity/Salesproject_entity/entityfields/salesprojectcycles/children/salesprojectid_param/valueProcess.js rename to entity/Salesproject_entity/entityfields/salesprojectmilestones/children/salesprojectid_param/valueProcess.js diff --git a/entity/Salesproject_entity/entityfields/state/onValueChange.js b/entity/Salesproject_entity/entityfields/state/onValueChange.js new file mode 100644 index 0000000000000000000000000000000000000000..fd8dae9d669334bc145bbc55b693b70a55e63726 --- /dev/null +++ b/entity/Salesproject_entity/entityfields/state/onValueChange.js @@ -0,0 +1,28 @@ +import("system.vars"); +import("Sql_lib"); +import("system.db"); +import("KeywordRegistry_basic"); +import("Keyword_lib"); +import("system.translate"); +import("system.question"); +import("system.neon"); + +if (vars.get("$sys.recordstate") != neon.OPERATINGSTATE_NEW) +{ + var state = vars.get("$field.STATE"); + + // Postponed + if (state == '23d38486-4cce-41ce-a8df-164ad44df706') + { + var stateName = KeywordUtils.getViewValue($KeywordRegistry.salesprojectState(), state); + var clearForecast = question.askYesNo(translate.withArguments("Clear forecast and set state to '%0'?", [stateName]), translate.withArguments("Would you really like to clear the forecast and set the state to '%0'?" + "\n" + translate.text("This cannot be undone!"), [stateName]), false); + + if (!clearForecast) + { + // reset to value from db + neon.setFieldValue("$field.STATE", db.cell(SqlCondition.begin() + .andPrepareVars("SALESPROJECT.SALESPROJECTID", "$field.SALESPROJECTID") + .buildSql("select STATE from SALESPROJECT", "1=2"))); + } + } +} diff --git a/entity/Salesproject_entity/onDBInsert.js b/entity/Salesproject_entity/onDBInsert.js deleted file mode 100644 index 46e16c3d687c541b66574fd13cfaa2c00fff2b87..0000000000000000000000000000000000000000 --- a/entity/Salesproject_entity/onDBInsert.js +++ /dev/null @@ -1,5 +0,0 @@ -import("system.vars"); -import("Salesproject_lib"); - -Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), 1, vars.get("$field.PHASE"), false); -Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), 2, vars.get("$field.STATE"), true); \ No newline at end of file diff --git a/entity/Salesproject_entity/onDBUpdate.js b/entity/Salesproject_entity/onDBUpdate.js deleted file mode 100644 index 514b528e696d35c1b2116d3fa05826d6e030790e..0000000000000000000000000000000000000000 --- a/entity/Salesproject_entity/onDBUpdate.js +++ /dev/null @@ -1,24 +0,0 @@ -import("system.vars"); -import("Salesproject_lib"); - -var typeValue, fieldVar - -// create Milestones if changed -vars.get("$local.changed").forEach(function(fieldName) { - switch (fieldName) { - case "SALESPROJECT.PHASE": - typeValue = 1; - fieldVar = "$field.PHASE"; - break; - case "SALESPROJECT.STATE": - typeValue = 2; - fieldVar = "$field.STATE"; - break; - } - - if (typeValue) { - Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), typeValue, vars.getString(fieldVar), true); - } -}); - - diff --git a/entity/Salesproject_entity/recordcontainers/db/conditionProcess.js b/entity/Salesproject_entity/recordcontainers/db/conditionProcess.js index 49d846ad22819fbcb59e5dd83febe4a886c64412..f3a32a333dafdf4816b96cb701a339e4613f2827 100644 --- a/entity/Salesproject_entity/recordcontainers/db/conditionProcess.js +++ b/entity/Salesproject_entity/recordcontainers/db/conditionProcess.js @@ -1,21 +1,20 @@ -import("system.logging"); -import("system.db"); -import("system.result"); -import("system.vars"); -import("Sql_lib"); - -if(vars.exists("$param.State_param") && vars.get("$param.State_param") && vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param")) -{ - result.string(db.translateCondition( - SqlCondition.begin() - .andPrepareVars("SALESPROJECT.CONTACT_ID", "$param.ContactId_param") - .andPrepareVars("SALESPROJECT.STATE", "$param.State_param") - .build("1 = 2"))); -} -else -{ - result.string(db.translateCondition( - SqlCondition.begin() - .andPrepareVars("SALESPROJECT.CONTACT_ID", "$param.ContactId_param") - .build("1 = 1"))); +import("system.db"); +import("system.result"); +import("system.vars"); +import("Sql_lib"); + +if(vars.exists("$param.State_param") && vars.get("$param.State_param") && vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param")) +{ + result.string(db.translateCondition( + SqlCondition.begin() + .andPrepareVars("SALESPROJECT.CONTACT_ID", "$param.ContactId_param") + .andPrepareVars("SALESPROJECT.STATE", "$param.State_param") + .build("1 = 2"))); +} +else +{ + result.string(db.translateCondition( + SqlCondition.begin() + .andPrepareVars("SALESPROJECT.CONTACT_ID", "$param.ContactId_param") + .build("1 = 1"))); } \ No newline at end of file diff --git a/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js b/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js index 6d045ce9112fca4328a5253e983ff41f722cb449..65d94ab76dadcf8189255ca1a84187d9132b9f1f 100644 --- a/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js +++ b/entity/Salesproject_entity/recordcontainers/db/onDBDelete.js @@ -1,5 +1,4 @@ import("system.db"); -import("system.logging"); import("system.vars"); import("Sql_lib"); @@ -10,7 +9,7 @@ if (currentId) var toDelete = [ "SALESPROJECT_COMPETITION", "SALESPROJECT_CLASSIFICATION", - "SALESPROJECT_CYCLE", + "SALESPROJECT_MILESTONE", "SALESPROJECT_FORECAST", "SALESPROJECT_MEMBER", "SALESPROJECT_SOURCE" diff --git a/entity/Salesproject_entity/recordcontainers/db/onDBInsert.js b/entity/Salesproject_entity/recordcontainers/db/onDBInsert.js index 47067fdfe5c683417c30b9d75a0d753324d8534d..49491bda0074fa9406df07580128dfd6240db2cb 100644 --- a/entity/Salesproject_entity/recordcontainers/db/onDBInsert.js +++ b/entity/Salesproject_entity/recordcontainers/db/onDBInsert.js @@ -1,6 +1,5 @@ import("system.vars"); import("Salesproject_lib"); -// TODO Milestone Value is still an Integer but has to be a String (varchar) -// Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), 1, vars.get("$field.PHASE"), false); -// Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), 2, vars.get("$field.STATE"), true); \ No newline at end of file +Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), "SalesprojectPhase", vars.get("$field.PHASE"), false); +Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), "SalesprojectState", vars.get("$field.STATE"), true); \ No newline at end of file diff --git a/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js b/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js index 2d558ee7cdb5dd210634cf5484ad18187e706d0b..95c901de86dfdf90d075c1311539cfe8971f4886 100644 --- a/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js +++ b/entity/Salesproject_entity/recordcontainers/db/onDBUpdate.js @@ -4,9 +4,11 @@ import("system.vars"); import("Salesproject_lib"); import("Sql_lib"); import("system.db"); +import("system.question"); import("KeywordRegistry_basic"); +import("Keyword_lib"); -var needToUpdateForecast = false; +var needToUpdateForecast = null; // create Milestones if changed vars.get("$local.changed").forEach(function(fieldName) { @@ -17,18 +19,18 @@ vars.get("$local.changed").forEach(function(fieldName) { switch (fieldName) { case "SALESPROJECT.PHASE": - typeValue = 1; + typeValue = "SalesprojectPhase"; fieldVar = "$field.PHASE"; break; case "SALESPROJECT.STATE": // Milestone - typeValue = 2; + typeValue = "SalesprojectState"; fieldVar = "$field.STATE"; - + var state = vars.get(fieldVar); // set COMPETITION / OFFER to Lost // Lost - if ( vars.get("$field.STATE") == 'd8a60f60-a4e6-46ee-88ec-bac53e1afedd') + if (state == 'd8a60f60-a4e6-46ee-88ec-bac53e1afedd') { // set all offers of the salesproject to lost db.updateData("OFFER", ["STATUS"], null, ["a5682630-01ae-4769-8f03-47dc1db44da4"], SqlCondition.equals("OFFER.SALESPROJECT_ID", vars.getString("$field.SALESPROJECTID"), "1=2")); @@ -36,15 +38,22 @@ vars.get("$local.changed").forEach(function(fieldName) { clearReason = false; } // Order - else if (vars.get("$field.STATE") == '130bb53a-a97e-455e-8f34-8d445e985474') + else if (state == '130bb53a-a97e-455e-8f34-8d445e985474') { // set all competitions of the salesproject to lost db.updateData("SALESPROJECT_COMPETITION", ["STATUS"], null, ["ff73172c-8517-4b6e-98cb-43aebacd9af1"], SqlCondition.equals("SALESPROJECT_COMPETITION.SALESPROJECT_ID", vars.getString("$field.SALESPROJECTID"), "1=2")); _updateReasons(); clearReason = false; } + // Postponed + else if (state == '23d38486-4cce-41ce-a8df-164ad44df706') + { + // do not notify as the user just got a question, if he really would like to clear the forecast + needToUpdateForecast = false; + db.deleteData("SALESPROJECT_FORECAST", SqlCondition.equals("SALESPROJECT_FORECAST.SALESPROJECT_ID", vars.getString("$field.SALESPROJECTID"), "1=2")); + } // if state changed, but not to one of the above states - else if (clearReason == undefined) + else { clearReason = true; } @@ -59,9 +68,11 @@ vars.get("$local.changed").forEach(function(fieldName) { if (typeValue) { - needToUpdateForecast = true; - // TODO Milestone Value is still an Integer but has to be a String (varchar) -> use new keywords - //Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), typeValue, vars.getString(fieldVar)); + // only notify, if not explicitely set to false above + if (needToUpdateForecast === null) + needToUpdateForecast = true; + + Salesproject.insertMilestone(vars.getString("$field.SALESPROJECTID"), typeValue, vars.getString(fieldVar)); } }); diff --git a/entity/Stock_entity/entityfields/image/valueProcess.js b/entity/Stock_entity/entityfields/image/valueProcess.js index 0693b6bd4810fe8d10495205a0383559738d533a..7a22eb5dbcdaa6b5c7e0651873ced2a6bdad0623 100644 --- a/entity/Stock_entity/entityfields/image/valueProcess.js +++ b/entity/Stock_entity/entityfields/image/valueProcess.js @@ -1,6 +1,5 @@ import("system.translate"); import("system.vars"); import("system.result"); -import("Keyword_lib"); result.string("TEXT:" + (vars.get("$field.IN_OUT") == "1" ? translate.text("IN") : translate.text("OUT") ) ); \ No newline at end of file diff --git a/entity/Timetracking_entity/Timetracking_entity.aod b/entity/Timetracking_entity/Timetracking_entity.aod index 621e193b43e4142e3a8588ba17876d95cb549f77..5ecb9a7fa6f694d0a682f27818d42801abee4958 100644 --- a/entity/Timetracking_entity/Timetracking_entity.aod +++ b/entity/Timetracking_entity/Timetracking_entity.aod @@ -12,6 +12,11 @@ <name>INFO</name> <title>Description</title> <contentType>LONG_TEXT</contentType> + <onValueChangeTypes> + <element>MASK</element> + <element>PROCESS</element> + <element>PROCESS_SETVALUE</element> + </onValueChangeTypes> </entityField> <entityField> <name>MINUTES</name> diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index 229e6f961210acf0e1d632fbec86621a52623dca..a0432024ef6a0da39d42fb4a6cd489af65cbb879 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -1060,7 +1060,7 @@ <key>Benutzer</key> </entry> <entry> - <key>Schlüsselwort</key> + <key>Schlüsselwort</key> </entry> <entry> <key>{$TASK_PRIORITY_NONE}</key> @@ -1267,7 +1267,7 @@ <key>Jordan</key> </entry> <entry> - <key>Côte d'Ivoire</key> + <key>Côte d'Ivoire</key> </entry> <entry> <key>United Arab Emirates</key> @@ -1636,7 +1636,7 @@ <key>Kazakhstan</key> </entry> <entry> - <key>Ã…land Islands</key> + <key>Åland Islands</key> </entry> <entry> <key>Bahamas</key> @@ -1915,7 +1915,7 @@ <key>Ukraine</key> </entry> <entry> - <key>Curaçao</key> + <key>Curaçao</key> </entry> <entry> <key>Anguilla</key> @@ -2014,7 +2014,7 @@ <key>ended</key> </entry> <entry> - <key>Saint Barthélemy</key> + <key>Saint Barthélemy</key> </entry> <entry> <key>Wallis and Futuna</key> @@ -2032,7 +2032,7 @@ <key>Hungary</key> </entry> <entry> - <key>Réunion</key> + <key>Réunion</key> </entry> <entry> <key>Japan</key> @@ -2440,7 +2440,7 @@ <key>Other Contactroles</key> </entry> <entry> - <key>Bitte Datumseingabe prüfen!</key> + <key>Bitte Datumseingabe prüfen!</key> </entry> <entry> <key>In Bearbeitung</key> @@ -2455,10 +2455,10 @@ <key>Bitte Filterbedingungen setzen</key> </entry> <entry> - <key>Bestätigt</key> + <key>Bestätigt</key> </entry> <entry> - <key>Vorläufig</key> + <key>Vorläufig</key> </entry> <entry> <key>keine</key> @@ -2473,7 +2473,7 @@ <key>&Aufgaben (%0)</key> </entry> <entry> - <key>erledigt / zurückgestellt</key> + <key>erledigt / zurückgestellt</key> </entry> <entry> <key>hoch</key> @@ -2482,7 +2482,7 @@ <key>Keine Berechtigung zum Verschieben der Aufgabe</key> </entry> <entry> - <key>Zurückgestellt</key> + <key>Zurückgestellt</key> </entry> <entry> <key>Erledigt</key> @@ -2494,13 +2494,13 @@ <key>Abgesagt</key> </entry> <entry> - <key>Außer Haus</key> + <key>Außer Haus</key> </entry> <entry> <key>Abbrechen</key> </entry> <entry> - <key>Benutzer auswählen</key> + <key>Benutzer auswählen</key> </entry> <entry> <key>delegiert</key> @@ -2509,7 +2509,7 @@ <key>frei</key> </entry> <entry> - <key>Kein Weitergeben von privaten Aufgaben möglich!</key> + <key>Kein Weitergeben von privaten Aufgaben möglich!</key> </entry> <entry> <key>%0 Aufgabe(n) erfolgreich weitergegeben an: %1</key> @@ -2842,7 +2842,28 @@ <key>ObjectRelationType</key> </entry> <entry> - <key>Documentmanagement</key> + <key>SalesprojectPhase</key> + </entry> + <entry> + <key>SalesprojectState</key> + </entry> + <entry> + <key>Days count</key> + </entry> + <entry> + <key>Clear forecast and set state to \"%0\"?</key> + </entry> + <entry> + <key>Would you like to clear the forecast and set the state to \"%0\"?</key> + </entry> + <entry> + <key>Clear forecast and set state to '%0'?</key> + </entry> + <entry> + <key>Would you really like to clear the forecast and set the state to '%0'?</key> + </entry> + <entry> + <key>This cannot be undone!</key> </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index b8fe7995f96cf36efb54bde3464d85251b8f97f8..bce1b08a3f07dbe742337a261131ee7f0cec7d0b 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -6,6 +6,10 @@ <country></country> <variant></variant> <keyValueMap> + <entry> + <key>SalesprojectState</key> + <value>Status</value> + </entry> <entry> <key>Project management</key> <value>Projektmanagement</value> @@ -46,6 +50,10 @@ <key>Discount %</key> <value>Rabatt %</value> </entry> + <entry> + <key>SalesprojectPhase</key> + <value>Phase</value> + </entry> <entry> <key>Email must be unique!</key> <value>Die E-Mail-Adresse muss eindeutig sein!</value> @@ -3663,6 +3671,28 @@ <entry> <key>Wichtigste Kennzahlen zu den Vertriebsprojekten.</key> </entry> + <entry> + <key>Days count</key> + <value>Anzahl Tage</value> + </entry> + <entry> + <key>Clear forecast and set state to '%0'?</key> + <value>Forecast löschen und status auf '%0' setzen?</value> + </entry> + <entry> + <key>Would you really like to clear the forecast and set the state to '%0'?</key> + <value>Möchten Sie wirklich den Forecast löschen und den status auf '%0' setzen?</value> + </entry> + <entry> + <key>This cannot be undone!</key> + <value>Das kann nicht rückgängig gemacht werden!</value> + </entry> + <entry> + <key>Clear forecast and set state to \"%0\"?</key> + </entry> + <entry> + <key>Would you like to clear the forecast and set the state to \"%0\"?</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod index 1154262c40fa34dbf203fc73f72de099c9c0c220..5468bc8d7d40b5108e4c838fb7eb1ca4281ca1d4 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -2596,46 +2596,46 @@ <key>New module</key> </entry> <entry> - <key>Côte d'Ivoire</key> + <key>Côte d'Ivoire</key> </entry> <entry> - <key>Bitte Datumseingabe prüfen!</key> + <key>Bitte Datumseingabe prüfen!</key> </entry> <entry> - <key>Bestätigt</key> + <key>Bestätigt</key> </entry> <entry> - <key>Vorläufig</key> + <key>Vorläufig</key> </entry> <entry> - <key>Saint Barthélemy</key> + <key>Saint Barthélemy</key> </entry> <entry> - <key>erledigt / zurückgestellt</key> + <key>erledigt / zurückgestellt</key> </entry> <entry> - <key>Zurückgestellt</key> + <key>Zurückgestellt</key> </entry> <entry> - <key>Außer Haus</key> + <key>Außer Haus</key> </entry> <entry> - <key>Benutzer auswählen</key> + <key>Benutzer auswählen</key> </entry> <entry> - <key>Ã…land Islands</key> + <key>Åland Islands</key> </entry> <entry> - <key>Kein Weitergeben von privaten Aufgaben möglich!</key> + <key>Kein Weitergeben von privaten Aufgaben möglich!</key> </entry> <entry> - <key>Curaçao</key> + <key>Curaçao</key> </entry> <entry> - <key>Schlüsselwort</key> + <key>Schlüsselwort</key> </entry> <entry> - <key>Réunion</key> + <key>Réunion</key> </entry> <entry> <key>date of birth must not be in the future</key> diff --git a/neonContext/Activity/Activity.aod b/neonContext/Activity/Activity.aod index 7cadf528888dcd44e0b3aa271f9b7420a78600cc..25ae52541afc98821f91d6cc70a13005028d0803 100644 --- a/neonContext/Activity/Activity.aod +++ b/neonContext/Activity/Activity.aod @@ -21,10 +21,6 @@ <name>9b432ee5-c767-4c47-ad2a-66d2163557d1</name> <view>ActivityEdit_view</view> </neonViewReference> - <neonViewReference> - <name>e0af0a30-934b-4063-a4cf-9ba0c848a4db</name> - <view>ActivityTimeline_view</view> - </neonViewReference> <neonViewReference> <name>23964361-3977-4d2d-8af4-5cac94406d3d</name> <view>ActivityMain_view</view> diff --git a/neonContext/Salesproject/Salesproject.aod b/neonContext/Salesproject/Salesproject.aod index feef4560535219df0acd527d75fd4d3a46569d5c..a5422082d260a0e651632846afbc6b826ae25ff3 100644 --- a/neonContext/Salesproject/Salesproject.aod +++ b/neonContext/Salesproject/Salesproject.aod @@ -26,9 +26,5 @@ <name>c35cc718-94a8-43cf-afe4-f02d251d4e9f</name> <view>SalesprojectEdit_view</view> </neonViewReference> - <neonViewReference> - <name>d7fb7e2b-c932-4b96-be2c-ae5ec3d36beb</name> - <view>SalesprojectCycle_view</view> - </neonViewReference> </references> </neonContext> diff --git a/neonContext/SalesprojectCycle/SalesprojectCycle.aod b/neonContext/SalesprojectCycle/SalesprojectCycle.aod deleted file mode 100644 index 59f07fb175bfea67747b8d4b582d3ece986a0d2b..0000000000000000000000000000000000000000 --- a/neonContext/SalesprojectCycle/SalesprojectCycle.aod +++ /dev/null @@ -1,24 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> - <name>SalesprojectCycle</name> - <description>Milestones of a salesproject</description> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterview>SalesprojectCycleFilter_view</filterview> - <editview>SalesprojectCycleEdit_view</editview> - <preview>SalesprojectCyclePreview_view</preview> - <entity>SalesprojectCycle_entity</entity> - <references> - <neonViewReference> - <name>5de9785c-92cc-4fe1-ae13-8d65b9a68ce0</name> - <view>SalesprojectCycleFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>04073406-1035-4a3b-919b-7e0bfda699e0</name> - <view>SalesprojectCycleEdit_view</view> - </neonViewReference> - <neonViewReference> - <name>b3a4073e-9431-4de1-a4d5-c9d11a71a214</name> - <view>SalesprojectCyclePreview_view</view> - </neonViewReference> - </references> -</neonContext> diff --git a/neonContext/SalesprojectMilestone/SalesprojectMilestone.aod b/neonContext/SalesprojectMilestone/SalesprojectMilestone.aod new file mode 100644 index 0000000000000000000000000000000000000000..3626804e1c32ebcc9f4fbb25529c806c6937080f --- /dev/null +++ b/neonContext/SalesprojectMilestone/SalesprojectMilestone.aod @@ -0,0 +1,14 @@ +<?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>SalesprojectMilestone</name> + <description>Milestones of a salesproject</description> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterview>SalesprojectMilestoneChart_view</filterview> + <entity>SalesprojectMilestone_entity</entity> + <references> + <neonViewReference> + <name>54bee07a-f45d-458a-bfc6-56ba4992b63d</name> + <view>SalesprojectMilestoneChart_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonView/ActivityFilter_view/ActivityFilter_view.aod b/neonView/ActivityFilter_view/ActivityFilter_view.aod index e9f268d0105e123f791eb8715f7fd8f107d2ea6b..fd33556f856997695ea211f98288dd4a7d791259 100644 --- a/neonView/ActivityFilter_view/ActivityFilter_view.aod +++ b/neonView/ActivityFilter_view/ActivityFilter_view.aod @@ -63,6 +63,7 @@ <iconIdField>DIRECTION_ICON</iconIdField> <hideTime v="true" /> <entityField>#ENTITY</entityField> + <maxDBRow v="400" /> </timelineViewTemplate> <tableViewTemplate> <name>ActivitiesTable</name> diff --git a/neonView/ActivityMain_view/ActivityMain_view.aod b/neonView/ActivityMain_view/ActivityMain_view.aod index 5b4191c6e9cf1a0ea8a561619e53f979f6d95c0c..57a928f08c54150ae14580797d167ace94c4aba2 100644 --- a/neonView/ActivityMain_view/ActivityMain_view.aod +++ b/neonView/ActivityMain_view/ActivityMain_view.aod @@ -29,11 +29,6 @@ <entityField>Documents</entityField> <view>DocumentFilter_view</view> </neonViewReference> - <neonViewReference> - <name>6066d539-d392-4688-931a-409c10fa1fbe</name> - <entityField>Links</entityField> - <view>ActivityLinkFilter_view</view> - </neonViewReference> <neonViewReference> <name>8ffd03a7-a841-4674-96bf-04689d46cf48</name> <entityField>Attributes</entityField> diff --git a/neonView/ContractFilter_view/ContractFilter_view.aod b/neonView/ContractFilter_view/ContractFilter_view.aod index 4933b78162863b690531c4dfb8d4d145f8e90a0d..c508588317a7ad788ca44f004382c3120b2f2bc6 100644 --- a/neonView/ContractFilter_view/ContractFilter_view.aod +++ b/neonView/ContractFilter_view/ContractFilter_view.aod @@ -62,14 +62,6 @@ <name>845c3a71-0fa9-4299-9b85-8fa25f92436d</name> <entityField>CONTRACTEND</entityField> </neonTableColumn> - <neonTableColumn> - <name>b72f0fa5-43ba-4852-9dfa-db592193e5a6</name> - <entityField>PAYMENT</entityField> - </neonTableColumn> - <neonTableColumn> - <name>ae80fe48-c0c7-4b53-b014-a25417c6fb35</name> - <entityField>CONTRACTDUE</entityField> - </neonTableColumn> </columns> </tableViewTemplate> </children> diff --git a/neonView/OfferFilter_view/OfferFilter_view.aod b/neonView/OfferFilter_view/OfferFilter_view.aod index 541ac072d5e3df256b4b726da078a091dd94bd8f..ee8f03128aa738e1bdce1f7eb404d0ebd6eeb547 100644 --- a/neonView/OfferFilter_view/OfferFilter_view.aod +++ b/neonView/OfferFilter_view/OfferFilter_view.aod @@ -53,6 +53,10 @@ <name>Offers</name> <entityField>#ENTITY</entityField> <columns> + <neonTableColumn> + <name>5755c4a7-0ec4-4ba8-9fa8-a64c440042f8</name> + <entityField>IMAGE</entityField> + </neonTableColumn> <neonTableColumn> <name>4d40cee3-bcb1-4e67-8c1d-d5fc2e49cc11</name> <entityField>FullOfferCode</entityField> diff --git a/neonView/OrderFilter_view/OrderFilter_view.aod b/neonView/OrderFilter_view/OrderFilter_view.aod index f631fc736b5d10bc66abd6f4ea02ff47273dd088..0c2cb08ffc4b05dab0f2d3a167f55501d47086f1 100644 --- a/neonView/OrderFilter_view/OrderFilter_view.aod +++ b/neonView/OrderFilter_view/OrderFilter_view.aod @@ -53,6 +53,10 @@ <name>Orders</name> <entityField>#ENTITY</entityField> <columns> + <neonTableColumn> + <name>8d4948c3-40cb-45dd-ae04-32ae06458b26</name> + <entityField>IMAGE</entityField> + </neonTableColumn> <neonTableColumn> <name>60b83daa-9349-4bef-94d8-5f1fc350da59</name> <entityField>SALESORDERCODE</entityField> diff --git a/neonView/SalesprojectCompetitionPreview_view/SalesprojectCompetitionPreview_view.aod b/neonView/SalesprojectCompetitionPreview_view/SalesprojectCompetitionPreview_view.aod index ae8dfc222cf2f206b7905db3294cd6c06b599d30..e3f46d0784614e5bfe394425774171e73e0d5b8c 100644 --- a/neonView/SalesprojectCompetitionPreview_view/SalesprojectCompetitionPreview_view.aod +++ b/neonView/SalesprojectCompetitionPreview_view/SalesprojectCompetitionPreview_view.aod @@ -10,7 +10,9 @@ <children> <cardViewTemplate> <name>Header</name> + <iconField>IMAGE</iconField> <titleField>CONTACT_ID</titleField> + <subtitleField>CONTACT_ID</subtitleField> <descriptionField>INFO</descriptionField> <entityField>#ENTITY</entityField> </cardViewTemplate> diff --git a/neonView/SalesprojectCycleEdit_view/SalesprojectCycleEdit_view.aod b/neonView/SalesprojectCycleEdit_view/SalesprojectCycleEdit_view.aod deleted file mode 100644 index de1a3461bb5e7138fb90ae3348fb4f79c2134ebc..0000000000000000000000000000000000000000 --- a/neonView/SalesprojectCycleEdit_view/SalesprojectCycleEdit_view.aod +++ /dev/null @@ -1,35 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>SalesprojectCycleEdit_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>ea501589-7a01-42d3-b0f4-521041554ee7</name> - <entityField>DATE_START</entityField> - </entityFieldLink> - <entityFieldLink> - <name>5df5e35b-4967-4efd-98ac-a57f757e04b4</name> - <entityField>DATE_END</entityField> - </entityFieldLink> - <entityFieldLink> - <name>db138f88-0cc7-42d9-a5d6-2bfc4f13985c</name> - <entityField>TYPE</entityField> - </entityFieldLink> - <entityFieldLink> - <name>71891f0f-e610-4584-8936-f2249e99e7ac</name> - <entityField>VALUE</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - </children> -</neonView> diff --git a/neonView/SalesprojectCycleFilter_view/SalesprojectCycleFilter_view.aod b/neonView/SalesprojectCycleFilter_view/SalesprojectCycleFilter_view.aod deleted file mode 100644 index 55809e21f25a772051eff44caa23f2fdbc259d4a..0000000000000000000000000000000000000000 --- a/neonView/SalesprojectCycleFilter_view/SalesprojectCycleFilter_view.aod +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>SalesprojectCycleFilter_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <filterable v="true" /> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <tableViewTemplate> - <name>Cycles</name> - <autoNewRow v="true" /> - <entityField>#ENTITY</entityField> - <columns> - <neonTableColumn> - <name>1f66befa-a479-437e-b68f-da3cac6fed90</name> - <entityField>DATE_START</entityField> - </neonTableColumn> - <neonTableColumn> - <name>5001e853-a479-4e63-a0c6-3021926402b6</name> - <entityField>TYPE</entityField> - </neonTableColumn> - <neonTableColumn> - <name>8a4c91ad-a1e4-4a94-acad-de232c7b0be7</name> - <entityField>VALUE</entityField> - </neonTableColumn> - </columns> - </tableViewTemplate> - </children> -</neonView> diff --git a/neonView/SalesprojectCyclePreview_view/SalesprojectCyclePreview_view.aod b/neonView/SalesprojectCyclePreview_view/SalesprojectCyclePreview_view.aod deleted file mode 100644 index 41114194e655c15ee0487f9e0a3d7df2d1043f9c..0000000000000000000000000000000000000000 --- a/neonView/SalesprojectCyclePreview_view/SalesprojectCyclePreview_view.aod +++ /dev/null @@ -1,28 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>SalesprojectCyclePreview_view</name> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <cardViewTemplate> - <name>Header</name> - <titleField>VALUE</titleField> - <descriptionField>DATE_START</descriptionField> - <entityField>#ENTITY</entityField> - </cardViewTemplate> - <genericViewTemplate> - <name>Info</name> - <entityField>#ENTITY</entityField> - <fields> - <entityFieldLink> - <name>e77b903f-a06f-4437-9b25-693b6f2aa45f</name> - <entityField>DATE_END</entityField> - </entityFieldLink> - </fields> - </genericViewTemplate> - </children> -</neonView> diff --git a/neonView/SalesprojectCycle_view/SalesprojectCycle_view.aod b/neonView/SalesprojectCycle_view/SalesprojectCycle_view.aod deleted file mode 100644 index edacdea2adf843ed29d30a7eb4850f3bcd4fd932..0000000000000000000000000000000000000000 --- a/neonView/SalesprojectCycle_view/SalesprojectCycle_view.aod +++ /dev/null @@ -1,23 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.1"> - <name>SalesprojectCycle_view</name> - <title>Milestones</title> - <majorModelMode>DISTRIBUTED</majorModelMode> - <layout> - <boxLayout> - <name>layout</name> - </boxLayout> - </layout> - <children> - <neonViewReference> - <name>c68c50b8-6ff9-4be4-ab1e-c8bd9b93f650</name> - <entityField>SalesprojectCycles</entityField> - <view>SalesprojectCycleFilter_view</view> - </neonViewReference> - <neonViewReference> - <name>b172fd14-209d-412f-9250-aeb0f37091b5</name> - <entityField>SalesprojectForecasts</entityField> - <view>SalesprojectForecastFilter_view</view> - </neonViewReference> - </children> -</neonView> diff --git a/neonView/SalesprojectMain_view/SalesprojectMain_view.aod b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod index 4f429107957c57843a11aaff1328c91c90cac815..d2651987d7b1400048898ae5d5ad86b2f5b670d3 100644 --- a/neonView/SalesprojectMain_view/SalesprojectMain_view.aod +++ b/neonView/SalesprojectMain_view/SalesprojectMain_view.aod @@ -59,5 +59,10 @@ <entityField>Documents</entityField> <view>DocumentFilter_view</view> </neonViewReference> + <neonViewReference> + <name>349a82ad-4a83-4718-b37e-b0adf1ddb0b2</name> + <entityField>SalesprojectMilestones</entityField> + <view>SalesprojectMilestoneChart_view</view> + </neonViewReference> </children> </neonView> diff --git a/neonView/ActivityTimeline_view/ActivityTimeline_view.aod b/neonView/SalesprojectMilestoneChart_view/SalesprojectMilestoneChart_view.aod similarity index 60% rename from neonView/ActivityTimeline_view/ActivityTimeline_view.aod rename to neonView/SalesprojectMilestoneChart_view/SalesprojectMilestoneChart_view.aod index 9056b55d310ac4338db187dfe63c8eb50a2dea49..5075336ab8a62209ae9b092900eec7b8f8496614 100644 --- a/neonView/ActivityTimeline_view/ActivityTimeline_view.aod +++ b/neonView/SalesprojectMilestoneChart_view/SalesprojectMilestoneChart_view.aod @@ -1,6 +1,6 @@ <?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>ActivityTimeline_view</name> + <name>SalesprojectMilestoneChart_view</name> <majorModelMode>DISTRIBUTED</majorModelMode> <layout> <boxLayout> @@ -8,13 +8,13 @@ </boxLayout> </layout> <children> - <timelineViewTemplate> - <name>Activities</name> - <dateField>ENTRYDATE</dateField> - <titleField>SUBJECT_DETAILS</titleField> - <descriptionField>INFO</descriptionField> - <iconIdField>DIRECTION_ICON</iconIdField> + <multiDataChartViewTemplate> + <name>MilestoneChart</name> + <chartType>COLUMN</chartType> + <xAxis>VALUE</xAxis> + <yAxis>DaysCount</yAxis> + <categoryField>TYPE</categoryField> <entityField>#ENTITY</entityField> - </timelineViewTemplate> + </multiDataChartViewTemplate> </children> </neonView> diff --git a/neonView/TaskFilter_view/TaskFilter_view.aod b/neonView/TaskFilter_view/TaskFilter_view.aod index 0b8c264401f9179e1080095d019415bb750cfad2..a04bd4d99520afa22000c81decd2b2f623d7caaa 100644 --- a/neonView/TaskFilter_view/TaskFilter_view.aod +++ b/neonView/TaskFilter_view/TaskFilter_view.aod @@ -28,7 +28,7 @@ <children> <timelineViewTemplate> <name>TasksTimeline</name> - <dateField>START_DATE</dateField> + <dateField>MATURITY_DATE</dateField> <titleField>SUBJECT</titleField> <descriptionField>DESCRIPTION</descriptionField> <iconIdField>#ICON</iconIdField> diff --git a/neonView/TaskMain_view/TaskMain_view.aod b/neonView/TaskMain_view/TaskMain_view.aod index 1c962435644b495ed5b00f2f0509b297d5cbc1e7..ac9d30a87c148300144507fe39e7274db8338ba3 100644 --- a/neonView/TaskMain_view/TaskMain_view.aod +++ b/neonView/TaskMain_view/TaskMain_view.aod @@ -41,10 +41,5 @@ <entityField>MainDocuments</entityField> <view>DocumentFilter_view</view> </neonViewReference> - <neonViewReference> - <name>37975d30-f449-4a9f-8eac-81dcad4bbf97</name> - <entityField>Links</entityField> - <view>TaskLinkFilter_view</view> - </neonViewReference> </children> </neonView> diff --git a/process/ActivityTask_lib/process.js b/process/ActivityTask_lib/process.js index 8f7de2b78e5f70871594f05d7cf2f9c83b04c845..f68618c2379dddff760583ee455a00191d06b8a0 100644 --- a/process/ActivityTask_lib/process.js +++ b/process/ActivityTask_lib/process.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.vars"); import("system.util"); import("system.datetime"); diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js index 82ea3eef6b21f0e6a8541a7021808c027235e9ed..881dbcdf80a726edd9f13f4d1ccd402719345ef1 100644 --- a/process/Context_lib/process.js +++ b/process/Context_lib/process.js @@ -6,7 +6,6 @@ import("Keyword_lib"); import("Sql_lib"); import("Proto_lib"); import("Contact_lib"); -import("system.logging"); /** * Methods to manage contexts. @@ -195,11 +194,22 @@ ContextSelector.create = function(pTableName, pIdField, pTitleExpression) return new ContextSelector(pTableName, pIdField, pTitleExpression); }; /** - * @return {String} full id field containing tablename and column + * @param {String} pField the fieldname that shall be returned as full string + * @return {String} full field containing tablename and the column; if the column itself is already a full qualified field that field is returned + */ +ContextSelector.prototype.getFullField = function(pField) +{ + if (SqlUtils.isFullFieldQualifier(pField)) + return pField; + else + return this.tableName + "." + pField; +}; +/** + * @return {String} full id field containing tablename and column; if the column itself is already a full qualified field that field is returned */ ContextSelector.prototype.getFullIdField = function() { - return this.tableName + "." + this.idField; + return this.getFullField(this.idField); }; /** * @return {String} full from-expression with tablename and join-part @@ -347,7 +357,7 @@ ContextUtils.getNameSubselectSql = function(pContextIdDbField, pRowIdDbField) var selectMap = ContextUtils.getSelectMap () for (let contextId in selectMap) { - select += "when '" + contextId + "' then (select " + selectMap[contextId].titleExpression + " from " + selectMap[contextId].getFullFromClause() + (pRowIdDbField ? " where " + selectMap[contextId].idField + " = " + pRowIdDbField : " ") + ") "; + select += "when '" + contextId + "' then (select " + selectMap[contextId].titleExpression + " from " + selectMap[contextId].getFullFromClause() + (pRowIdDbField ? " where " + selectMap[pContextId].getFullIdField() + " = " + pRowIdDbField : " ") + ") "; } select += "else 'Not defined in ContextUtils.getNameSql()!'"; @@ -382,7 +392,7 @@ ContextUtils.getContextDataSql = function(pContextId, pContactId, pWithDate, pAc var cond = SqlCondition.begin(); if (pContactId) { - cond.andPrepare(ownContextSelector.tableName + "." + ownContextSelector.contactIdField, pContactId) + cond.andPrepare(ownContextSelector.getFullField(ownContextSelector.contactIdField), pContactId) } if (pActive != undefined) @@ -408,7 +418,7 @@ ContextUtils.getContextDataSql = function(pContextId, pContactId, pWithDate, pAc pExcludedObjectIds.forEach(function(id) { - this.andPrepare(ownContextSelector.tableName + "." + ownContextSelector.idField, id, "# <> ?"); + this.andPrepare(ownContextSelector.getFullIdField(), id, "# <> ?"); }, exludedIdsCond) cond.andSqlCondition(exludedIdsCond); diff --git a/process/Data_lib/process.js b/process/Data_lib/process.js index fe628720ef18b4a5d94ab82884a9cc3bf2f4cd96..e6802ed44f10df422da714d12f634bafda9918e8 100644 --- a/process/Data_lib/process.js +++ b/process/Data_lib/process.js @@ -366,7 +366,7 @@ DataTree.prototype.addArray = function(pData, pManipulateNodeFn) DataTree.prototype.toArray = function(pMaxDepth) { var that = this; - // TODO: maybe implement without recursion to prevent stack overflow even on deep cycles... + // TODO: maybe implement without recursion to prevent stack overflow even on deep milestones... var treeArray = []; var tree = this._dataTree; diff --git a/process/Keyword_lib/process.js b/process/Keyword_lib/process.js index a4527c2594eb3c43724bfa790cb6de3ffd803294..971a45c6306a22c4b6508ffbe6a0fd8cfc834aa3 100644 --- a/process/Keyword_lib/process.js +++ b/process/Keyword_lib/process.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.vars"); import("system.SQLTYPES"); import("system.db"); @@ -189,6 +188,46 @@ KeywordUtils.getEntryNamesAndIdsByContainer = function(pContainerName) 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 * @@ -434,7 +473,7 @@ function LegacyKeywordUtils(){} ,_createKeywordEntry("16", translate.text("Lead", locale)) ]); break; - case "SALESPROJECT.CYCLE.TYPE": + 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"}) diff --git a/process/Product_lib/process.js b/process/Product_lib/process.js index 4780833eed4d897a49e271e49349fde17c00d5ca..cc2645e75e5f32a2205e6000f598f16c6536b024 100644 --- a/process/Product_lib/process.js +++ b/process/Product_lib/process.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.util"); import("system.SQLTYPES"); import("system.datetime"); diff --git a/process/Salesproject_lib/process.js b/process/Salesproject_lib/process.js index 380aecbc0df64c6f1984150721286c52dfcecdf7..ba78c7709d79f194884fe965eb7a80bf68a00ce1 100644 --- a/process/Salesproject_lib/process.js +++ b/process/Salesproject_lib/process.js @@ -1,3 +1,4 @@ +import("Sql_lib"); import("system.neon"); import("system.vars"); import("system.util"); @@ -40,17 +41,28 @@ Salesproject.validateProjectNumber = function(projectNumber) { * Insert a new milestone. * * @param {String} salesprojectId of the salesproject - * @param {Integer} type can be any value of the keyword SALESPROJECT.CYCLE.TYPE + * @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 if true, notify user to update the forecast + * @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 (LegacyKeywordUtils.createKeyword("SALESPROJECT.CYCLE.TYPE").exists(type)) { + 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_CYCLE", - ["SALESPROJECT_CYCLEID", "SALESPROJECT_ID", "TYPE", "VALUE", "DATE_START"], + "SALESPROJECT_MILESTONE", + ["SALESPROJECT_MILESTONEID", "SALESPROJECT_ID", "TYPE", "VALUE", "DATE_START"], null, [util.getNewUUID(), salesprojectId, type, value, vars.get("$sys.date")]); if (notifyForecast) { @@ -92,4 +104,4 @@ Salesproject.createNewSalesproject= function(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 ffeaa776d32b61b284bf2447b4ded80a40b4c140..4c68f069fb8f6417e6ce3b78795cc4f0cc8b2091 100644 --- a/process/Sql_lib/process.js +++ b/process/Sql_lib/process.js @@ -1033,42 +1033,129 @@ SqlMaskingUtils.prototype.yearFromDate = function(pField) return retSql; } +/** + * functions for various Sql-actions + * Do not create an instance of this! + * + * @class + * @static + */ function SqlUtils() {} -SqlUtils.getSingleColumnType = function(fieldOrTableName, columnName, alias) { - var tableName, fieldVarType; - if (columnName == undefined){ - fieldVarType = typeof(fieldOrTableName); - if (fieldVarType == "string") { - fieldOrTableName = text.split(fieldOrTableName, "\\."); - } else if (fieldVarType != "object") { - throw new TypeError(translate.text("${SQL_LIB_WRONG_FIELD_TYPE}")); +/** +* 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 (fieldOrTableName.hasOwnProperty("length")) { - if (fieldOrTableName.length == 2) { + 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 ])); - } else { - throw new TypeError(translate.text("${SQL_LIB_WRONG_FIELD_TYPE}")) - } - tableName = fieldOrTableName[0]; - columnName = fieldOrTableName[1]; + tableName = pFieldOrTableName[0]; + columnName = pFieldOrTableName[1]; } - else - throw new TypeError(translate.text("${SQL_LIB_WRONG_FIELD_TYPE}")); + 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"])); } - else - tableName = fieldOrTableName; if (typeof(columnName) != "string") - throw new TypeError(translate.text("${SQL_LIB_WRONG_FIELD_TYPE}")); + return new TypeError(translate.withArguments("[%0]the columnName is not a string after interpreting", [fnName])); if (typeof(tableName) != "string") - throw new TypeError(translate.text("${SQL_LIB_WRONG_FIELD_TYPE}")); + return new TypeError(translate.withArguments("[%0]the tableName is not a string after interpreting", [fnName])); - if (alias == undefined) - alias = db.getCurrentAlias(); + 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(tableName, [columnName], alias)[0]; + return db.getColumnTypes(fields.table, [fields.column], pAlias)[0]; }; /** diff --git a/process/StandardObject_lib/process.js b/process/StandardObject_lib/process.js index 4e39fc12e4b74103b26e936065aa1367993c2427..11ad559a925e55d2baa3d5b2c3216b4d30751130 100644 --- a/process/StandardObject_lib/process.js +++ b/process/StandardObject_lib/process.js @@ -1,4 +1,3 @@ -import("system.logging"); import("system.db"); import("Keyword_lib"); import("KeywordRegistry_basic");