diff --git a/entity/Person_entity/Person_entity.aod b/entity/Person_entity/Person_entity.aod index 9ee65df6a8250d8e1ddb0013a32bf3c4883efbed..cc93d6ec372f55d0d72aec8f38f4ed96a29b7992 100644 --- a/entity/Person_entity/Person_entity.aod +++ b/entity/Person_entity/Person_entity.aod @@ -85,6 +85,7 @@ <title>Salutation</title> <consumer>Salutations</consumer> <mandatory v="true" /> + <mandatoryProcess>%aditoprj%/entity/Person_entity/entityfields/salutation/mandatoryProcess.js</mandatoryProcess> <displayValueProcess>%aditoprj%/entity/Person_entity/entityfields/salutation/displayValueProcess.js</displayValueProcess> </entityField> <entityField> diff --git a/entity/Person_entity/entityfields/salutation/mandatoryProcess.js b/entity/Person_entity/entityfields/salutation/mandatoryProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..a8de61cfd8f9059710eea36dd17ba7993b73bb33 --- /dev/null +++ b/entity/Person_entity/entityfields/salutation/mandatoryProcess.js @@ -0,0 +1,11 @@ +import("system.result"); +import("KeywordRegistry_basic"); +import("system.vars"); + + +var sex = vars.get("$field.GENDER") + +if (sex == $KeywordRegistry.personGender$other()) +{ + result.string(false); +} diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod index 6ec6ebd31445fee5aef7ad0f62c9d097b5e07a3b..b06971436e7a962a52bde2d38002e8890b17ee32 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -1741,7 +1741,7 @@ </entry> <entry> <key>${GENDER_OTHER}</key> - <value>Other</value> + <value>Diverse</value> </entry> <entry> <key>Turkey</key> diff --git a/process/Address_lib/process.js b/process/Address_lib/process.js index a9dc6dbda503a8660154d790a17f148fe06757ba..bfe22875176dd2d155b1f4b605f58053b02ebd8f 100644 --- a/process/Address_lib/process.js +++ b/process/Address_lib/process.js @@ -224,7 +224,8 @@ function fetchAddressData( pCondition, pConfig, AddressID, pPerson) "CONTACT.CONTACTPOSITION", "CONTACT.LETTERSALUTATION", "ORGANISATION.NAME", "PERSON.FIRSTNAME", "PERSON.MIDDLENAME", "PERSON.LASTNAME", // 13-18 "PERSON.SALUTATION", "PERSON.TITLE", "PERSON.TITLESUFFIX", // 19-21 "coalesce( CONTACT.ISOLANGUAGE, (select C.ISOLANGUAGE from CONTACT C where C.ORGANISATION_ID = CONTACT.ORGANISATION_ID and PERSON_ID is null))", // 22 - "''", "''", "''", "(select ADDR_FORMAT from AB_COUNTRYINFO where ISO2 = ADDRESS.COUNTRY)", "ADDRESS.ADDR_TYPE" // 23-27 + "''", "''", "''", "(select ADDR_FORMAT from AB_COUNTRYINFO where ISO2 = ADDRESS.COUNTRY)", "ADDRESS.ADDR_TYPE", // 23-27 + "PERSON.GENDER"//28 ]; for (let i=0; i < pConfig.length; i++ ) @@ -406,6 +407,7 @@ function _getAddrData( pData ) if ( sformat == undefined ) sformat = _getSalutation( pData[22] + pData[19] ); //no language defined if ( sformat == undefined ) sformat = _getSalutation( pData[19] + pData[20] ); + if ( sformat == undefined ) sformat = _getSalutation( pData[22] + pData[28] ); // no language specific entry in salutation if ( sformat == undefined || sformat[0] == "" || sformat[1] == "" ) sformat = ["{sa} {ti} {fn} {ln}", "{sa} {ti} {ln}"]; salutation = _formatAddrData( pData, sformat[0] ); @@ -435,11 +437,15 @@ function _getSalutation( pSalutCode ) } else { - var list = db.table("select ISOLANGUAGE, SALUTATION, TITLE, HEADLINE, LETTERSALUTATION from SALUTATION" ); + var list = newSelect(["SALUTATION.ISOLANGUAGE", "SALUTATION.SALUTATION", "SALUTATION.TITLE", "SALUTATION.HEADLINE", "SALUTATION.LETTERSALUTATION", "SALUTATION.SEX"]) + .from("SALUTATION") + .orderBy("SALUTATION.SORT"); + for ( var i = 0; i < list.length; i++ ) { salut[list[i][0] + list[i][1] + list[i][2]] = [list[i][3], list[i][4]]; salut[list[i][1] + list[i][2]] = [list[i][3], list[i][4]]; + salut[list[i][0] + list[i][5]] = [list[i][3], list[i][4]]; } vars.set("$global.Salutation", salut); }