diff --git a/entity/Address_entity/Address_entity.aod b/entity/Address_entity/Address_entity.aod index 00000aad7b2afdcb7cba8149e8b086d57b7c954f..56b90af820b6c4e3f2191224dff70d8dcbab6c83 100644 --- a/entity/Address_entity/Address_entity.aod +++ b/entity/Address_entity/Address_entity.aod @@ -116,6 +116,10 @@ <name>OrganisationId_param</name> <expose v="false" /> </entityParameter> + <entityParameter> + <name>ContactIds_param</name> + <expose v="false" /> + </entityParameter> </children> </entityProvider> <entityParameter> @@ -160,6 +164,10 @@ <name>OrganisationId_param</name> <expose v="false" /> </entityParameter> + <entityParameter> + <name>ContactIds_param</name> + <expose v="false" /> + </entityParameter> </children> </entityProvider> <entityProvider> @@ -196,6 +204,10 @@ <name>OrganisationId_param</name> <expose v="false" /> </entityParameter> + <entityParameter> + <name>ContactIds_param</name> + <expose v="false" /> + </entityParameter> </children> </entityProvider> <entityField> @@ -262,6 +274,10 @@ <name>ContactId_param</name> <expose v="true" /> </entityParameter> + <entityParameter> + <name>ContactIds_param</name> + <expose v="false" /> + </entityParameter> </children> </entityProvider> <entityParameter> @@ -451,6 +467,12 @@ <isConsumer v="false" /> </entityDependency> </dependencies> + <children> + <entityParameter> + <name>ContactType_param</name> + <expose v="false" /> + </entityParameter> + </children> </entityProvider> <entityParameter> <name>ContactIds_param</name> diff --git a/entity/Address_entity/entityfields/addr_type/valueProcess.js b/entity/Address_entity/entityfields/addr_type/valueProcess.js index c8587c547389fc6e1700d7e41010997e4f05c5a8..d3d593fcd1f4384590c71fe7be78f8608f8979f4 100644 --- a/entity/Address_entity/entityfields/addr_type/valueProcess.js +++ b/entity/Address_entity/entityfields/addr_type/valueProcess.js @@ -4,7 +4,7 @@ import("system.vars"); import("Contact_lib"); import("KeywordRegistry_basic"); -if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.ContactType_param")) +if (vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW && vars.exists("$param.ContactType_param") && vars.get("$this.value") == null) { if (vars.get("$param.ContactType_param") == Contact.TYPES.Organisation) result.string($KeywordRegistry.addressType$office()); diff --git a/entity/Address_entity/entityfields/contact_id/valueProcess.js b/entity/Address_entity/entityfields/contact_id/valueProcess.js index 27abdb6eceeb6172b053e0e402715b93d11d7a8a..5917f2446dc03e019f1ee5458656d959a7c61feb 100644 --- a/entity/Address_entity/entityfields/contact_id/valueProcess.js +++ b/entity/Address_entity/entityfields/contact_id/valueProcess.js @@ -1,11 +1,22 @@ import("system.result"); import("system.neon"); import("system.vars"); +import("Keyword_lib"); +import("KeywordRegistry_basic"); if(vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW) { - if(vars.exists("$param.ContactId_param") && vars.getString("$param.ContactId_param")) + var contactId = vars.exists("$param.ContactId_param") ? vars.getString("$param.ContactId_param") : ""; + if (vars.exists("$param.ContactIds_param") && vars.getString("$param.ContactIds_param")) { - result.string(vars.getString("$param.ContactId_param")); + var addrType = vars.get("$field.ADDR_TYPE"); + var isOrgType = KeywordUtils.getAttributeRelation(addrType, $KeywordRegistry.addressType(), "organisation"); + var contactIds = vars.get("$param.ContactIds_param"); + + result.string(isOrgType ? contactId : JSON.parse(contactIds)[0]); + } + else if (contactId) + { + result.string(contactId); } } diff --git a/entity/Address_entity/recordcontainers/db/onDBInsert.js b/entity/Address_entity/recordcontainers/db/onDBInsert.js index 079be03fbbc4251354e6778b1556d8c7ae4db676..f6a22d75b08961e7449257ca111a0e2819de0c99 100644 --- a/entity/Address_entity/recordcontainers/db/onDBInsert.js +++ b/entity/Address_entity/recordcontainers/db/onDBInsert.js @@ -1,18 +1,20 @@ +import("KeywordRegistry_basic"); import("DataPrivacy_lib"); import("system.vars"); import("StandardObject_lib"); import("Keyword_lib"); var rowdata = vars.get("$local.rowdata"); - var addrType = rowdata["ADDRESS.ADDR_TYPE"]; -var contacts = vars.get("$param.ContactIds_param"); -if (contacts) + +var typeParam = vars.get("$param.ContactType_param"); + +if (!typeParam && vars.exists("$param.ContactIds_param") && vars.getString("$param.ContactIds_param")) { - contacts = JSON.parse(contacts); + var isOrgType = KeywordUtils.getAttributeRelation(addrType, $KeywordRegistry.addressType(), "organisation"); + typeParam = isOrgType ? "organisation" : "contact"; } -var typeParam = vars.get("$param.ContactType_param"); var scopeType = null if (typeParam === "contact") scopeType = "Person" diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod index 89e84469ddd03a66420504ebcdf9a02f3b4df35c..8d64b13b34e1277230f6c96f0cc6cd334154fbde 100644 --- a/entity/Person_entity/Person_entity.aod +++ b/entity/Person_entity/Person_entity.aod @@ -108,6 +108,7 @@ <entityField> <name>CONTACTID</name> <title>CONTACTID (UID)</title> + <state>INVISIBLE</state> </entityField> <entityProvider> <name>OrganisationRelated</name> diff --git a/entity/QuickEntry_entity/QuickEntry_entity.aod b/entity/QuickEntry_entity/QuickEntry_entity.aod index 877e8dd3ce71b2b13aff2acf106d7b028ff2a576..6f195406724483ccbfd9b390074a07caf45725b1 100644 --- a/entity/QuickEntry_entity/QuickEntry_entity.aod +++ b/entity/QuickEntry_entity/QuickEntry_entity.aod @@ -35,7 +35,6 @@ </entityParameter> <entityParameter> <name>ContactType_param</name> - <valueProcess>%aditoprj%/entity/QuickEntry_entity/entityfields/adresses/children/contacttype_param/valueProcess.js</valueProcess> </entityParameter> </children> </entityConsumer> diff --git a/entity/QuickEntry_entity/entityfields/activities/children/insertlinks_param/valueProcess.js b/entity/QuickEntry_entity/entityfields/activities/children/insertlinks_param/valueProcess.js index 532faa2466b8e7364d222f001f7d979fbcbf92e3..ddaeef0436f73c741b6d05684ee0c5aaba326de6 100644 --- a/entity/QuickEntry_entity/entityfields/activities/children/insertlinks_param/valueProcess.js +++ b/entity/QuickEntry_entity/entityfields/activities/children/insertlinks_param/valueProcess.js @@ -4,9 +4,9 @@ import("system.result"); var links = [ ["Organisation", vars.get("$field.UID")] ]; -//var contactLinks = vars.get("$field.Contacts.insertedRows").map(function (row) -//{ -// return ["Person", row["#UID"]]; -//}); +var contactLinks = vars.get("$field.Contacts.insertedRows").map(function (row) +{ + return ["Person", row["CONTACTID"]]; +}); result.string(JSON.stringify(links.concat(contactLinks))); \ No newline at end of file diff --git a/entity/QuickEntry_entity/entityfields/adresses/children/contactids_param/valueProcess.js b/entity/QuickEntry_entity/entityfields/adresses/children/contactids_param/valueProcess.js index 3753f026865ca9e62dd48ce720d3106a3d2669f2..6257582e02623de19709579d9b09e26af01034a7 100644 --- a/entity/QuickEntry_entity/entityfields/adresses/children/contactids_param/valueProcess.js +++ b/entity/QuickEntry_entity/entityfields/adresses/children/contactids_param/valueProcess.js @@ -1,4 +1,8 @@ import("system.vars"); import("system.result"); -result.string(JSON.stringify(vars.get("$field.Contacts.insertedRows"), null, "\t")); \ No newline at end of file +var contacts = vars.get("$field.Contacts.insertedRows").map(function (row) +{ + return row["CONTACTID"]; +}); +result.string(JSON.stringify(contacts)); diff --git a/entity/QuickEntry_entity/entityfields/adresses/children/contacttype_param/valueProcess.js b/entity/QuickEntry_entity/entityfields/adresses/children/contacttype_param/valueProcess.js deleted file mode 100644 index 5b22485f78ec913ec2c78da936d72e59c8c8c926..0000000000000000000000000000000000000000 --- a/entity/QuickEntry_entity/entityfields/adresses/children/contacttype_param/valueProcess.js +++ /dev/null @@ -1,3 +0,0 @@ -import("system.result"); - -result.string("organisation"); \ No newline at end of file diff --git a/neonView/AttributeLookup_view/AttributeLookup_view.aod b/neonView/AttributeLookup_view/AttributeLookup_view.aod index 95ca44e075940a7a14bab32b3a270774707c59f5..8f7597355bad82c1f426a96098e96c314e0e91db 100644 --- a/neonView/AttributeLookup_view/AttributeLookup_view.aod +++ b/neonView/AttributeLookup_view/AttributeLookup_view.aod @@ -13,7 +13,7 @@ <entityField>#ENTITY</entityField> <columns> <neonTableColumn> - <name>9a69a2af-3186-4180-a665-016c30f1fbdc</name> + <name>20f27051-1ef2-411a-865c-2a711ed39dde</name> <entityField>FULL_ATTRIBUTE_NAME</entityField> </neonTableColumn> </columns> diff --git a/neonView/PersonMultiEdit_view/PersonMultiEdit_view.aod b/neonView/PersonMultiEdit_view/PersonMultiEdit_view.aod index ba34fbe224c0da0c04a221336ce9426869c054d8..7a4031375cbc72d282bcd69ef53b4086986926cf 100644 --- a/neonView/PersonMultiEdit_view/PersonMultiEdit_view.aod +++ b/neonView/PersonMultiEdit_view/PersonMultiEdit_view.aod @@ -32,6 +32,10 @@ <name>e85a4676-806a-41f2-87c6-12cf58bfe896</name> <entityField>LANGUAGE</entityField> </neonTableColumn> + <neonTableColumn> + <name>b70ccea4-672f-4326-9435-97456b39d376</name> + <entityField>CONTACTID</entityField> + </neonTableColumn> </columns> </genericMultipleViewTemplate> </children>