From ffb23256776afe5c44f9e6587564981849ec1bbf Mon Sep 17 00:00:00 2001 From: "m.mansour" <m.mansour@mmansour.aditosoftware.local> Date: Thu, 18 Jul 2019 18:19:07 +0200 Subject: [PATCH] Belege fixed vertriebsprojekt and changed to objects like offer --- .../Data_alias/basic/2019.1.4/changelog.xml | 2 +- .../basic/2019.1.4/update_Salesorder.xml | 3 +- aliasDefinition/Data_alias/Data_alias.aod | 54 ++++----- .../translate4log/property.js | 8 -- entity/Context_entity/Context_entity.aod | 6 + entity/Object_entity/Object_entity.aod | 6 + entity/Offer_entity/Offer_entity.aod | 5 + entity/Order_entity/Order_entity.aod | 105 ++++++++++++++---- .../children/whitelist/valueProcess.js | 4 + .../object_rowid/displayValueProcess.js | 11 ++ .../object_rowid/linkedContextProcess.js | 5 + .../object_rowid/mandatoryProcess.js | 7 ++ .../entityfields/object_rowid/titleProcess.js | 21 ++++ .../entityfields/object_rowid/valueProcess.js | 8 ++ .../object_type/displayValueProcess.js | 10 ++ .../object_type/mandatoryProcess.js | 7 ++ .../entityfields/object_type/valueProcess.js | 19 ++++ .../children/contactid_param/valueProcess.js | 10 ++ .../children/objecttype_param/valueProcess.js | 4 + .../possibleconnectiontypes/valueProcess.js | 3 + .../salesproject_id/displayValueProcess.js | 5 - .../salesproject_id/stateProcess.js | 13 --- .../salesproject_id/valueProcess.js | 7 -- .../children/contactid_param/valueProcess.js | 5 + .../recordcontainers/db/conditionProcess.js | 8 +- .../recordcontainers/db/fromClauseProcess.js | 2 +- .../recordcontainers/db/onDBDelete.js | 2 +- .../recordcontainers/db/onDBInsert.js | 12 +- .../object_rowid.displayvalue/expression.js | 4 + .../Salesproject_entity.aod | 12 +- neonView/OrderEdit_view/OrderEdit_view.aod | 12 +- 31 files changed, 278 insertions(+), 102 deletions(-) delete mode 100644 aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/salesproject_id/customproperties/translate4log/property.js create mode 100644 entity/Order_entity/entityfields/contexts/children/whitelist/valueProcess.js create mode 100644 entity/Order_entity/entityfields/object_rowid/displayValueProcess.js create mode 100644 entity/Order_entity/entityfields/object_rowid/linkedContextProcess.js create mode 100644 entity/Order_entity/entityfields/object_rowid/mandatoryProcess.js create mode 100644 entity/Order_entity/entityfields/object_rowid/titleProcess.js create mode 100644 entity/Order_entity/entityfields/object_rowid/valueProcess.js create mode 100644 entity/Order_entity/entityfields/object_type/displayValueProcess.js create mode 100644 entity/Order_entity/entityfields/object_type/mandatoryProcess.js create mode 100644 entity/Order_entity/entityfields/object_type/valueProcess.js create mode 100644 entity/Order_entity/entityfields/objects/children/contactid_param/valueProcess.js create mode 100644 entity/Order_entity/entityfields/objects/children/objecttype_param/valueProcess.js create mode 100644 entity/Order_entity/entityfields/possibleconnectiontypes/valueProcess.js delete mode 100644 entity/Order_entity/entityfields/salesproject_id/displayValueProcess.js delete mode 100644 entity/Order_entity/entityfields/salesproject_id/stateProcess.js delete mode 100644 entity/Order_entity/entityfields/salesproject_id/valueProcess.js create mode 100644 entity/Order_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js create mode 100644 entity/Order_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js diff --git a/.liquibase/Data_alias/basic/2019.1.4/changelog.xml b/.liquibase/Data_alias/basic/2019.1.4/changelog.xml index e08a486b996..b1975265893 100644 --- a/.liquibase/Data_alias/basic/2019.1.4/changelog.xml +++ b/.liquibase/Data_alias/basic/2019.1.4/changelog.xml @@ -83,7 +83,6 @@ <include relativeToChangelogFile="true" file="update_Salesproject_Forecast.xml"/> <include relativeToChangelogFile="true" file="update_Offer.xml"/> - <include relativeToChangelogFile="true" file="update_Salesorder.xml"/> <include relativeToChangelogFile="true" file="update_Salesproject_Competition.xml"/> <include relativeToChangelogFile="true" file="update_Salesproject_Member.xml"/> <include relativeToChangelogFile="true" file="update_Memberrole_InternExtern.xml"/> @@ -187,4 +186,5 @@ <include relativeToChangelogFile="true" file="create_ordertype_keyword.xml"/> <include relativeToChangelogFile="true" file="create_dunninglevel_keyword.xml"/> + <include relativeToChangelogFile="true" file="update_Salesorder.xml"/> </databaseChangeLog> diff --git a/.liquibase/Data_alias/basic/2019.1.4/update_Salesorder.xml b/.liquibase/Data_alias/basic/2019.1.4/update_Salesorder.xml index d29fe7b6f37..0a03c722c22 100644 --- a/.liquibase/Data_alias/basic/2019.1.4/update_Salesorder.xml +++ b/.liquibase/Data_alias/basic/2019.1.4/update_Salesorder.xml @@ -1,6 +1,6 @@ <?xml version="1.1" encoding="UTF-8" standalone="no"?> <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> - <changeSet author="m.mansour" id="1fc81acb-5347-4ff4-89c8-868fcb486d7e"> + <changeSet author="m.mansour" id="a48f9e54-16ac-4bb8-8f2a-395f3035c55e"> <addColumn tableName="SALESORDER"> <column name="OBJECT_TYPE" type="NVARCHAR(63)"> @@ -11,6 +11,7 @@ <column name="OBJECT_TYPE" value="Salesproject" /> <where>OBJECT_ROWID = '0833465c-8851-4fbb-b7e3-8c1d73c903da' </where> </update> + <addNotNullConstraint tableName="SALESORDER" diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod index bae8b488090..5a18b0f65be 100644 --- a/aliasDefinition/Data_alias/Data_alias.aod +++ b/aliasDefinition/Data_alias/Data_alias.aod @@ -4399,32 +4399,6 @@ </customBooleanProperty> </customProperties> </entityFieldDb> - <entityFieldDb> - <name>SALESPROJECT_ID</name> - <dbName></dbName> - <primaryKey v="false" /> - <columnType v="1" /> - <size v="36" /> - <scale v="0" /> - <notNull v="false" /> - <isUnique v="false" /> - <index v="false" /> - <documentation></documentation> - <title>Salesproject</title> - <description></description> - <customProperties> - <customBooleanProperty> - <name>log</name> - <global v="false" /> - <property v="true" /> - </customBooleanProperty> - <customJDitoProperty> - <name>translate4Log</name> - <global v="false" /> - <property>%aditoprj%/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/salesproject_id/customproperties/translate4log/property.js</property> - </customJDitoProperty> - </customProperties> - </entityFieldDb> <entityFieldDb> <name>STATUS</name> <dbName></dbName> @@ -4722,6 +4696,34 @@ <title></title> <description></description> </entityFieldDb> + <entityFieldDb> + <name>OBJECT_TYPE</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="63" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>OBJECT_ROWID</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> </entityFields> </entityDb> <entityDb> diff --git a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/salesproject_id/customproperties/translate4log/property.js b/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/salesproject_id/customproperties/translate4log/property.js deleted file mode 100644 index d92ff2dc841..00000000000 --- a/aliasDefinition/Data_alias/aliasdefinitionsub/entitygroup/entities/salesorder/entityfields/salesproject_id/customproperties/translate4log/property.js +++ /dev/null @@ -1,8 +0,0 @@ -import("Loghistory_lib"); -import("system.vars"); -import("system.result"); -import("Salesproject_lib"); - -var params = Translate4LogParams.load(); -var id = params.value; -result.string(Salesproject.getSalesProjectTitleById(id)); diff --git a/entity/Context_entity/Context_entity.aod b/entity/Context_entity/Context_entity.aod index b4361237ebe..6cad5fcef7d 100644 --- a/entity/Context_entity/Context_entity.aod +++ b/entity/Context_entity/Context_entity.aod @@ -65,6 +65,12 @@ <fieldName>Contexts</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>98695ca8-7f46-489d-a479-f856f6d2b5ca</name> + <entityName>Order_entity</entityName> + <fieldName>Contexts</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> <children> <entityParameter> diff --git a/entity/Object_entity/Object_entity.aod b/entity/Object_entity/Object_entity.aod index f15093d9532..7396acca1bd 100644 --- a/entity/Object_entity/Object_entity.aod +++ b/entity/Object_entity/Object_entity.aod @@ -198,6 +198,12 @@ <fieldName>Objects</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>6a7a34e0-22ae-4bd7-b762-84a332a0a937</name> + <entityName>Order_entity</entityName> + <fieldName>Objects</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> <children> <entityParameter> diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod index e9400dd1aa5..ff5478a884d 100644 --- a/entity/Offer_entity/Offer_entity.aod +++ b/entity/Offer_entity/Offer_entity.aod @@ -646,6 +646,11 @@ <titleProcess>%aditoprj%/entity/Offer_entity/entityfields/object_rowid/titleProcess.js</titleProcess> <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/object_rowid/valueProcess.js</valueProcess> <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/object_rowid/displayValueProcess.js</displayValueProcess> + <onValueChangeTypes> + <element>MASK</element> + <element>PROCESS</element> + <element>PROCESS_SETVALUE</element> + </onValueChangeTypes> </entityField> <entityField> <name>OBJECT_TYPE</name> diff --git a/entity/Order_entity/Order_entity.aod b/entity/Order_entity/Order_entity.aod index e9c71dfe2f6..ecb08c01ed0 100644 --- a/entity/Order_entity/Order_entity.aod +++ b/entity/Order_entity/Order_entity.aod @@ -65,17 +65,6 @@ <element>MASK</element> </onValueChangeTypes> </entityField> - <entityField> - <name>SALESPROJECT_ID</name> - <title>Salesproject</title> - <consumer>Salesprojects</consumer> - <linkedContext>Salesproject</linkedContext> - <mandatory v="true" /> - <state>INVISIBLE</state> - <stateProcess>%aditoprj%/entity/Order_entity/entityfields/salesproject_id/stateProcess.js</stateProcess> - <valueProcess>%aditoprj%/entity/Order_entity/entityfields/salesproject_id/valueProcess.js</valueProcess> - <displayValueProcess>%aditoprj%/entity/Order_entity/entityfields/salesproject_id/displayValueProcess.js</displayValueProcess> - </entityField> <entityField> <name>STATUS</name> <title>Status</title> @@ -161,12 +150,6 @@ <valueProcess>%aditoprj%/entity/Order_entity/entityfields/totalgross/valueProcess.js</valueProcess> <displayValueProcess>%aditoprj%/entity/Order_entity/entityfields/totalgross/displayValueProcess.js</displayValueProcess> </entityField> - <entityParameter> - <name>SalesprojectId_param</name> - <expose v="true" /> - <mandatory v="false" /> - <description>PARAMETER</description> - </entityParameter> <entityField> <name>LANGUAGE</name> <title>Language</title> @@ -207,7 +190,7 @@ <entityParameter> <name>ContactId_param</name> <expose v="true" /> - <mandatory v="false" /> + <mandatory v="true" /> <description>PARAMETER</description> </entityParameter> <entityField> @@ -273,8 +256,14 @@ <dependency> <name>dependency</name> <entityName>Salesproject_entity</entityName> - <fieldName>#PROVIDER</fieldName> + <fieldName>Salesprojects</fieldName> </dependency> + <children> + <entityParameter> + <name>ContactId_param</name> + <valueProcess>%aditoprj%/entity/Order_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> </entityConsumer> <entityField> <name>ADDRESS</name> @@ -546,6 +535,76 @@ </entityParameter> </children> </entityConsumer> + <entityField> + <name>OBJECT_ROWID</name> + <title>Link</title> + <consumer>Objects</consumer> + <linkedContextProcess>%aditoprj%/entity/Order_entity/entityfields/object_rowid/linkedContextProcess.js</linkedContextProcess> + <mandatory v="true" /> + <mandatoryProcess>%aditoprj%/entity/Order_entity/entityfields/object_rowid/mandatoryProcess.js</mandatoryProcess> + <titleProcess>%aditoprj%/entity/Order_entity/entityfields/object_rowid/titleProcess.js</titleProcess> + <valueProcess>%aditoprj%/entity/Order_entity/entityfields/object_rowid/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/Order_entity/entityfields/object_rowid/displayValueProcess.js</displayValueProcess> + <onValueChangeTypes> + <element>MASK</element> + <element>PROCESS</element> + <element>PROCESS_SETVALUE</element> + </onValueChangeTypes> + </entityField> + <entityField> + <name>OBJECT_TYPE</name> + <title>Connection Type</title> + <consumer>Contexts</consumer> + <mandatoryProcess>%aditoprj%/entity/Order_entity/entityfields/object_type/mandatoryProcess.js</mandatoryProcess> + <state>INVISIBLE</state> + <valueProcess>%aditoprj%/entity/Order_entity/entityfields/object_type/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/Order_entity/entityfields/object_type/displayValueProcess.js</displayValueProcess> + </entityField> + <entityConsumer> + <name>Objects</name> + <dependency> + <name>dependency</name> + <entityName>Object_entity</entityName> + <fieldName>FilteredObjects</fieldName> + </dependency> + <children> + <entityParameter> + <name>ContactId_param</name> + <valueProcess>%aditoprj%/entity/Order_entity/entityfields/objects/children/contactid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>ObjectType_param</name> + <valueProcess>%aditoprj%/entity/Order_entity/entityfields/objects/children/objecttype_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>Contexts</name> + <dependency> + <name>dependency</name> + <entityName>Context_entity</entityName> + <fieldName>Context</fieldName> + </dependency> + <children> + <entityParameter> + <name>Whitelist</name> + <valueProcess>%aditoprj%/entity/Order_entity/entityfields/contexts/children/whitelist/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityParameter> + <name>PossibleConnectionTypes</name> + <valueProcess>%aditoprj%/entity/Order_entity/entityfields/possibleconnectiontypes/valueProcess.js</valueProcess> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>ObjectRowId_param</name> + <expose v="true" /> + </entityParameter> + <entityParameter> + <name>ObjectType_param</name> + <expose v="true" /> + </entityParameter> </entityFields> <recordContainers> <dbRecordContainer> @@ -719,6 +778,14 @@ <name>PAYDUEDATE.value</name> <recordfield>SALESORDER.PAYDUEDATE</recordfield> </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>OBJECT_ROWID.value</name> + <recordfield>SALESORDER.OBJECT_ROWID</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>OBJECT_ROWID.displayValue</name> + <expression>%aditoprj%/entity/Order_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js</expression> + </dbRecordFieldMapping> </recordFieldMappings> </dbRecordContainer> <indexRecordContainer> diff --git a/entity/Order_entity/entityfields/contexts/children/whitelist/valueProcess.js b/entity/Order_entity/entityfields/contexts/children/whitelist/valueProcess.js new file mode 100644 index 00000000000..928bc6a94ca --- /dev/null +++ b/entity/Order_entity/entityfields/contexts/children/whitelist/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$param.PossibleConnectionTypes")) \ No newline at end of file diff --git a/entity/Order_entity/entityfields/object_rowid/displayValueProcess.js b/entity/Order_entity/entityfields/object_rowid/displayValueProcess.js new file mode 100644 index 00000000000..8946bb43f89 --- /dev/null +++ b/entity/Order_entity/entityfields/object_rowid/displayValueProcess.js @@ -0,0 +1,11 @@ +import("system.neon"); +import("system.vars"); +import("system.db"); +import("system.result"); +import("Context_lib"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) { + result.string(""); +} else if (vars.exists("$field.OBJECT_TYPE") && vars.get("$field.OBJECT_TYPE")) { + result.string(db.cell(ContextUtils.getNameSql(vars.get("$field.OBJECT_TYPE"), vars.get("$field.OBJECT_ROWID")))); +} \ No newline at end of file diff --git a/entity/Order_entity/entityfields/object_rowid/linkedContextProcess.js b/entity/Order_entity/entityfields/object_rowid/linkedContextProcess.js new file mode 100644 index 00000000000..0d20a44e4ae --- /dev/null +++ b/entity/Order_entity/entityfields/object_rowid/linkedContextProcess.js @@ -0,0 +1,5 @@ +import("system.vars"); +import("system.result"); +import("Context_lib"); + +result.string(ContextUtils.getContextName(vars.get("$field.OBJECT_TYPE"))) diff --git a/entity/Order_entity/entityfields/object_rowid/mandatoryProcess.js b/entity/Order_entity/entityfields/object_rowid/mandatoryProcess.js new file mode 100644 index 00000000000..4736fe4bfc8 --- /dev/null +++ b/entity/Order_entity/entityfields/object_rowid/mandatoryProcess.js @@ -0,0 +1,7 @@ +import("system.vars"); +import("system.result"); +import("Contact_lib"); + +var type = ContactUtils.getContactType(vars.get("$field.CONTACT_ID"), vars.get("$field.CONTACT_PERSON_ID"), vars.get("$field.CONTACT_ORG_ID")); + +result.string(type != 2); diff --git a/entity/Order_entity/entityfields/object_rowid/titleProcess.js b/entity/Order_entity/entityfields/object_rowid/titleProcess.js new file mode 100644 index 00000000000..cf72d33d286 --- /dev/null +++ b/entity/Order_entity/entityfields/object_rowid/titleProcess.js @@ -0,0 +1,21 @@ +import("system.translate"); +import("system.result"); +import("system.vars"); +import("Context_lib"); + +var possibleTypes = vars.getString("$param.PossibleConnectionTypes"); +var title = translate.text("Link"); + +if (possibleTypes) +{ + possibleTypes = JSON.parse(possibleTypes); + if (possibleTypes.length == 1) + { + var contextTitle = ContextUtils.getTitle(possibleTypes[0]); + if (contextTitle) + title = contextTitle; + } +} + +result.string(title); + \ No newline at end of file diff --git a/entity/Order_entity/entityfields/object_rowid/valueProcess.js b/entity/Order_entity/entityfields/object_rowid/valueProcess.js new file mode 100644 index 00000000000..487f3796607 --- /dev/null +++ b/entity/Order_entity/entityfields/object_rowid/valueProcess.js @@ -0,0 +1,8 @@ +import("system.logging"); +import("system.neon"); +import("system.vars"); +import("system.result"); + +logging.log("--- " + JSON.stringify(vars.get("$sys.recordstate"), vars.exists("$param.ObjectRowId_param"), null, "\t")) +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.ObjectRowId_param") && vars.get("$param.ObjectRowId_param")) + result.string(vars.get("$param.ObjectRowId_param")); \ No newline at end of file diff --git a/entity/Order_entity/entityfields/object_type/displayValueProcess.js b/entity/Order_entity/entityfields/object_type/displayValueProcess.js new file mode 100644 index 00000000000..d7b4dedc2e4 --- /dev/null +++ b/entity/Order_entity/entityfields/object_type/displayValueProcess.js @@ -0,0 +1,10 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); +import("system.project"); + +if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$field.OBJECT_TYPE")) { + result.string(""); +} else if (vars.exists("$field.OBJECT_TYPE") && vars.get("$field.OBJECT_TYPE")) { + result.string(project.getDataModel(project.DATAMODEL_KIND_CONTEXT, vars.get("$field.OBJECT_TYPE"))[1]); +} diff --git a/entity/Order_entity/entityfields/object_type/mandatoryProcess.js b/entity/Order_entity/entityfields/object_type/mandatoryProcess.js new file mode 100644 index 00000000000..4736fe4bfc8 --- /dev/null +++ b/entity/Order_entity/entityfields/object_type/mandatoryProcess.js @@ -0,0 +1,7 @@ +import("system.vars"); +import("system.result"); +import("Contact_lib"); + +var type = ContactUtils.getContactType(vars.get("$field.CONTACT_ID"), vars.get("$field.CONTACT_PERSON_ID"), vars.get("$field.CONTACT_ORG_ID")); + +result.string(type != 2); diff --git a/entity/Order_entity/entityfields/object_type/valueProcess.js b/entity/Order_entity/entityfields/object_type/valueProcess.js new file mode 100644 index 00000000000..55bd8cc69a8 --- /dev/null +++ b/entity/Order_entity/entityfields/object_type/valueProcess.js @@ -0,0 +1,19 @@ +import("system.neon"); +import("system.vars"); +import("system.result"); +import("Context_lib") + +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && !vars.get("$this.value")) +{ + if (vars.exists("$param.ObjectType_param") && vars.get("$param.ObjectType_param")) + { + result.string(vars.get("$param.ObjectType_param")); + } + else if (vars.exists("$param.PossibleConnectionTypes") && vars.get("$param.PossibleConnectionTypes")) + { + var possible = JSON.parse(vars.getString("$param.PossibleConnectionTypes")); + if (possible.length > 0) + result.string(possible[0]); + } +} + \ No newline at end of file diff --git a/entity/Order_entity/entityfields/objects/children/contactid_param/valueProcess.js b/entity/Order_entity/entityfields/objects/children/contactid_param/valueProcess.js new file mode 100644 index 00000000000..c5efd0f6d8a --- /dev/null +++ b/entity/Order_entity/entityfields/objects/children/contactid_param/valueProcess.js @@ -0,0 +1,10 @@ +import("system.result"); +import("system.vars"); +import("Contact_lib"); + +if (vars.get("$field.CONTACT_ID")) +{ + var ids = ContactUtils.getPersOrgIds(vars.getString("$field.CONTACT_ID")); + if (ids.length >= 3 && ids[2]) + result.string(ids[2]); +} \ No newline at end of file diff --git a/entity/Order_entity/entityfields/objects/children/objecttype_param/valueProcess.js b/entity/Order_entity/entityfields/objects/children/objecttype_param/valueProcess.js new file mode 100644 index 00000000000..4238ef7d331 --- /dev/null +++ b/entity/Order_entity/entityfields/objects/children/objecttype_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("system.vars"); + +result.string(vars.get("$field.OBJECT_TYPE")); \ No newline at end of file diff --git a/entity/Order_entity/entityfields/possibleconnectiontypes/valueProcess.js b/entity/Order_entity/entityfields/possibleconnectiontypes/valueProcess.js new file mode 100644 index 00000000000..e4878ba3eac --- /dev/null +++ b/entity/Order_entity/entityfields/possibleconnectiontypes/valueProcess.js @@ -0,0 +1,3 @@ +import("system.result"); + +result.object(["Salesproject"]); \ No newline at end of file diff --git a/entity/Order_entity/entityfields/salesproject_id/displayValueProcess.js b/entity/Order_entity/entityfields/salesproject_id/displayValueProcess.js deleted file mode 100644 index 65afbf6e950..00000000000 --- a/entity/Order_entity/entityfields/salesproject_id/displayValueProcess.js +++ /dev/null @@ -1,5 +0,0 @@ -import("system.vars"); -import("system.result"); -import("Salesproject_lib"); - -result.string(Salesproject.getSalesProjectTitleById(vars.getString("$field.SALESPROJECT_ID"))); \ No newline at end of file diff --git a/entity/Order_entity/entityfields/salesproject_id/stateProcess.js b/entity/Order_entity/entityfields/salesproject_id/stateProcess.js deleted file mode 100644 index a88395a1cc7..00000000000 --- a/entity/Order_entity/entityfields/salesproject_id/stateProcess.js +++ /dev/null @@ -1,13 +0,0 @@ -import("system.neon"); -import("system.result"); -import("system.vars"); - - -switch (vars.get("$sys.recordstate")) -{ - case neon.OPERATINGSTATE_NEW: - result.object(neon.COMPONENTSTATE_EDITABLE); - break; - default: - result.object(neon.COMPONENTSTATE_READONLY); -} \ No newline at end of file diff --git a/entity/Order_entity/entityfields/salesproject_id/valueProcess.js b/entity/Order_entity/entityfields/salesproject_id/valueProcess.js deleted file mode 100644 index 2bc1715fbb0..00000000000 --- a/entity/Order_entity/entityfields/salesproject_id/valueProcess.js +++ /dev/null @@ -1,7 +0,0 @@ -import("system.result"); -import("system.vars"); - -if (vars.exists("$param.SalesprojectId_param")) -{ - result.string(vars.get("$param.SalesprojectId_param")); -} \ No newline at end of file diff --git a/entity/Order_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js b/entity/Order_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js new file mode 100644 index 00000000000..9232f51b2e0 --- /dev/null +++ b/entity/Order_entity/entityfields/salesprojects/children/contactid_param/valueProcess.js @@ -0,0 +1,5 @@ +import("system.vars"); +import("system.result"); +import("Entity_lib"); + +result.string(ProcessHandlingUtils.getOnValidationValue(vars.get("$field.CONTACT_ORG_ID"))); diff --git a/entity/Order_entity/recordcontainers/db/conditionProcess.js b/entity/Order_entity/recordcontainers/db/conditionProcess.js index 11dd858114e..708518b4c62 100644 --- a/entity/Order_entity/recordcontainers/db/conditionProcess.js +++ b/entity/Order_entity/recordcontainers/db/conditionProcess.js @@ -1,9 +1,15 @@ +import("system.vars"); import("system.db"); import("system.result"); import("Sql_lib"); var cond = new SqlCondition(); -cond.andPrepareVars("SALESORDER.SALESPROJECT_ID", "$param.SalesprojectId_param"); +if(vars.exists("$param.ContactId_param") && vars.get("$param.ContactId_param")) + cond.andPrepareVars("SALESORDER.CONTACT_ID", "$param.ContactId_param"); +else { + cond.andPrepareVars("SALESORDER.OBJECT_ROWID", "$param.ObjectRowId_param"); + cond.andPrepareVars("SALESORDEER.OBJECT_TYPE", "$param.ObjectType_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/Order_entity/recordcontainers/db/fromClauseProcess.js b/entity/Order_entity/recordcontainers/db/fromClauseProcess.js index 4b856fef61d..c0acd1b6df7 100644 --- a/entity/Order_entity/recordcontainers/db/fromClauseProcess.js +++ b/entity/Order_entity/recordcontainers/db/fromClauseProcess.js @@ -4,4 +4,4 @@ result.string("SALESORDER \n\ left join CONTACT on CONTACT.CONTACTID = SALESORDER.CONTACT_ID \n\ left join ORGANISATION on ORGANISATION.ORGANISATIONID = CONTACT.ORGANISATION_ID \n\ left join PERSON on PERSON.PERSONID = CONTACT.PERSON_ID \n\ - left join SALESPROJECT on SALESPROJECTID = SALESPROJECT_ID"); \ No newline at end of file + left join SALESPROJECT on SALESPROJECTID = SALESORDER.OBJECT_ROWID"); \ No newline at end of file diff --git a/entity/Order_entity/recordcontainers/db/onDBDelete.js b/entity/Order_entity/recordcontainers/db/onDBDelete.js index 2a29a4332ab..775affb9539 100644 --- a/entity/Order_entity/recordcontainers/db/onDBDelete.js +++ b/entity/Order_entity/recordcontainers/db/onDBDelete.js @@ -1,4 +1,4 @@ import("system.vars"); import("system.db"); -db.deleteData("SALESORDERITEM", "SALESORDERITEM.SALESORDER_ID = '" + vars.getString("$field.SALESORDERID") + "'"); \ No newline at end of file +db.deleteData("SALESORDERITEM", "SALESORDERITEM.SALESORDER_ID = '" + vars.getString("$field.OFFER_ID") + "'"); \ No newline at end of file diff --git a/entity/Order_entity/recordcontainers/db/onDBInsert.js b/entity/Order_entity/recordcontainers/db/onDBInsert.js index 940a4ff0f9a..f40d760016e 100644 --- a/entity/Order_entity/recordcontainers/db/onDBInsert.js +++ b/entity/Order_entity/recordcontainers/db/onDBInsert.js @@ -1,12 +1,6 @@ import("system.neon"); import("system.vars"); -import("Sql_lib"); -import("Order_lib"); +import("Offer_lib"); -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.OfferId_param")) -{ - var orderId = vars.getString("$field.SALESORDERID"); - var offerId = vars.getString("$param.OfferId_param"); - - OrderUtils.copyOfferItemsToOrder(offerId, orderId); //copy all offerItems -} +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.OfferOriginal_Id_param")) + OfferUtils.copyOfferItems(vars.getString("$param.OfferOriginal_Id_param"), vars.get("$field.OFFER_ID")); diff --git a/entity/Order_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js b/entity/Order_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js new file mode 100644 index 00000000000..4ac0690f62f --- /dev/null +++ b/entity/Order_entity/recordcontainers/db/recordfieldmappings/object_rowid.displayvalue/expression.js @@ -0,0 +1,4 @@ +import("system.result"); +import("Context_lib"); + +result.string(ContextUtils.getNameSubselectSql("OBJECT_TYPE", "OBJECT_ROWID")) \ No newline at end of file diff --git a/entity/Salesproject_entity/Salesproject_entity.aod b/entity/Salesproject_entity/Salesproject_entity.aod index c767317136d..f98437a49d7 100644 --- a/entity/Salesproject_entity/Salesproject_entity.aod +++ b/entity/Salesproject_entity/Salesproject_entity.aod @@ -17,12 +17,6 @@ <entityProvider> <name>#PROVIDER</name> <dependencies> - <entityDependency> - <name>497657f7-ebd7-4c9c-b8ab-da447a1556e5</name> - <entityName>Order_entity</entityName> - <fieldName>Salesprojects</fieldName> - <isConsumer v="false" /> - </entityDependency> <entityDependency> <name>f010781d-453d-4df3-b330-75c1336e4d4c</name> <entityName>Object_entity</entityName> @@ -434,6 +428,12 @@ <fieldName>Salesprojects</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>cb529e29-37cb-4e8d-9e89-f15cff56df68</name> + <entityName>Order_entity</entityName> + <fieldName>Salesprojects</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> <children> <entityParameter> diff --git a/neonView/OrderEdit_view/OrderEdit_view.aod b/neonView/OrderEdit_view/OrderEdit_view.aod index 5b0773ec480..3c6ebeeba30 100644 --- a/neonView/OrderEdit_view/OrderEdit_view.aod +++ b/neonView/OrderEdit_view/OrderEdit_view.aod @@ -40,10 +40,6 @@ <name>7ab3eb65-b713-4251-9eb1-3119432565f5</name> <entityField>LANGUAGE</entityField> </entityFieldLink> - <entityFieldLink> - <name>ac6f81a2-5012-461a-bcf1-4534182b0973</name> - <entityField>SALESPROJECT_ID</entityField> - </entityFieldLink> <entityFieldLink> <name>cf2fd509-eaa5-4b35-8775-063f31dafc2c</name> <entityField>OFFER_ID</entityField> @@ -80,6 +76,14 @@ <name>c14ed3d5-0442-4b3e-8410-2a3285a2e8fd</name> <entityField>CANCELLATION</entityField> </entityFieldLink> + <entityFieldLink> + <name>c9efcb50-ed61-453b-baa3-02071d99e4b0</name> + <entityField>OBJECT_ROWID</entityField> + </entityFieldLink> + <entityFieldLink> + <name>acb42613-102e-42cc-984f-5820b36ad2a8</name> + <entityField>OBJECT_TYPE</entityField> + </entityFieldLink> </fields> </genericViewTemplate> <neonViewReference> -- GitLab