diff --git a/entity/Organisation_entity/Organisation_entity.aod b/entity/Organisation_entity/Organisation_entity.aod index 6bb2df593c28e5a15da6e2d156fd1219ce8e5d57..deb5ee3641707df2ff19f0184fdd0833ac0f6016 100644 --- a/entity/Organisation_entity/Organisation_entity.aod +++ b/entity/Organisation_entity/Organisation_entity.aod @@ -1601,7 +1601,7 @@ <additionalFieldNameAliases> <element>email</element> </additionalFieldNameAliases> - <isMultiValued v="true" /> + <isMultiValued v="false" /> </indexRecordFieldMapping> <indexRecordFieldMapping> <name>STANDARD_PHONE_COMMUNICATION.value</name> @@ -1609,7 +1609,7 @@ <additionalFieldNameAliases> <element>phone</element> </additionalFieldNameAliases> - <isMultiValued v="true" /> + <isMultiValued v="false" /> </indexRecordFieldMapping> <indexRecordFieldMapping> <name>ADDRESS_ID.displayValue</name> diff --git a/entity/Organisation_entity/recordcontainers/index/query.js b/entity/Organisation_entity/recordcontainers/index/query.js index e860656afa302d7770bf1415039757fa9d833d48..0bc707c216716ac660c5975697b5747f6622bd42 100644 --- a/entity/Organisation_entity/recordcontainers/index/query.js +++ b/entity/Organisation_entity/recordcontainers/index/query.js @@ -15,17 +15,18 @@ You may want to check out if your change affects other modules. However adding m */ var commMediumPhoneIds = CommUtil.getMediumIdsByCategory("PHONE"); +var commMediumMailIds = CommUtil.getMediumIdsByCategory("EMAIL"); var sqlHelper = new SqlMaskingUtils(); var querySelect = newSelect([ "CONTACT.CONTACTID", sqlHelper.concat(["ORGANISATION.NAME", "'|'", "ORGANISATION.CUSTOMERCODE"]), sqlHelper.concat([ - sqlHelper.concat(["defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO", "'-'" - ,"defaultAddress.COUNTRY", "defaultAddress.ZIP", "defaultAddress.CITY"]), + sqlHelper.concat(["standardAddress.ADDRESS", "standardAddress.BUILDINGNO", "'-'" + ,"standardAddress.COUNTRY", "standardAddress.ZIP", "standardAddress.CITY"]), sqlHelper.concat(["'" + translate.text("Phone") + ":'", "(" + CommUtil.getStandardSubSqlPhone() + ")"]), sqlHelper.concat(["'" + translate.text("Email") + ":'", "(" + CommUtil.getStandardSubSqlMail() + ")"]) ], " | "), - sqlHelper.concat([sqlHelper.cast("defaultAddress.LAT", SQLTYPES.VARCHAR, 16), sqlHelper.cast("defaultAddress.LON", SQLTYPES.VARCHAR, 16)], ","), + sqlHelper.concat([sqlHelper.cast("standardAddress.LAT", SQLTYPES.VARCHAR, 16), sqlHelper.cast("standardAddress.LON", SQLTYPES.VARCHAR, 16)], ","), //additional indexed fields "ORGANISATION.NAME", sqlHelper.trim("ORGANISATION.ORGANISATIONID"),//trim to enable filter patterns like: >> -organisationid_value:0<< @@ -35,19 +36,27 @@ var querySelect = newSelect([ "ADDRESS.COUNTRY", "ADDRESS.ZIP", "ADDRESS.CITY", - "COMMUNICATION.ADDR", - "PHONE.ADDR", - sqlHelper.concat([sqlHelper.concat(["defaultAddress.ADDRESS", "defaultAddress.BUILDINGNO"]) - ,sqlHelper.concat(["defaultAddress.COUNTRY", "defaultAddress.ZIP", "defaultAddress.CITY"]) + "standardEmail.ADDR", + "standardPhone.ADDR", + sqlHelper.concat([sqlHelper.concat(["standardAddress.ADDRESS", "standardAddress.BUILDINGNO"]) + ,sqlHelper.concat(["standardAddress.COUNTRY", "standardAddress.ZIP", "standardAddress.CITY"]) ], " - ") ]) .from("ORGANISATION") .join("CONTACT", "CONTACT.ORGANISATION_ID = ORGANISATION.ORGANISATIONID and CONTACT.PERSON_ID is null") - .leftJoin("ADDRESS", "defaultAddress.ADDRESSID = CONTACT.ADDRESS_ID", "defaultAddress") + .leftJoin("ADDRESS", "standardAddress.ADDRESSID = CONTACT.ADDRESS_ID", "standardAddress") .leftJoin("ADDRESS", "ADDRESS.CONTACT_ID = CONTACT.CONTACTID") .leftJoin("COMMUNICATION", "COMMUNICATION.CONTACT_ID = CONTACT.CONTACTID") - .leftJoin("COMMUNICATION", newWhere("phone.CONTACT_ID = CONTACT.CONTACTID") - .and(["COMMUNICATION", "MEDIUM_ID", "phone"], commMediumPhoneIds, SqlBuilder.IN()), "phone") + //standardMail is not multi valued and can only old one value (the standard email address) + .leftJoin("COMMUNICATION", newWhere("standardEmail.CONTACT_ID = CONTACT.CONTACTID") + .and(["COMMUNICATION", "MEDIUM_ID", "standardEmail"], commMediumMailIds, SqlBuilder.IN()) + .and(["COMMUNICATION", "ISSTANDARD", "standardEmail"], "1") + , "standardEmail") + //standardPhone is not multi valued and can only old one value (the standard phone number) + .leftJoin("COMMUNICATION", newWhere("standardPhone.CONTACT_ID = CONTACT.CONTACTID") + .and(["COMMUNICATION", "MEDIUM_ID", "standardPhone"], commMediumPhoneIds, SqlBuilder.IN()) + .and(["COMMUNICATION", "ISSTANDARD", "standardPhone"], "1") + , "standardPhone") .where("CONTACT.STATUS", $KeywordRegistry.contactStatus$inactive(), SqlBuilder.NOT_EQUAL()); if (vars.exists("$local.idvalue") && vars.get("$local.idvalue") && vars.get("$local.idvalue").length > 0)