diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod index 3e594fdf6c0dd8614fd4b85533e42f1ba771bb8c..51dc0bd7bfd69c2c7c0234e4865cb7fe70415659 100644 --- a/entity/Offer_entity/Offer_entity.aod +++ b/entity/Offer_entity/Offer_entity.aod @@ -359,9 +359,12 @@ <title>Choose address</title> <consumer>PossibleAddresses</consumer> <stateProcess>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/stateProcess.js</stateProcess> + <valueProcess>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/valueProcess.js</valueProcess> + <displayValueProcess>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/displayValueProcess.js</displayValueProcess> <onValueChange>%aditoprj%/entity/Offer_entity/entityfields/chosenaddress/onValueChange.js</onValueChange> <onValueChangeTypes> <element>MASK</element> + <element>PROCESS</element> </onValueChangeTypes> </entityField> <entityConsumer> diff --git a/entity/Offer_entity/entityfields/chosenaddress/displayValueProcess.js b/entity/Offer_entity/entityfields/chosenaddress/displayValueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..698ddd21921ba4623f9eeae0c1a61f579da714f5 --- /dev/null +++ b/entity/Offer_entity/entityfields/chosenaddress/displayValueProcess.js @@ -0,0 +1,5 @@ +import("system.vars"); +import("PostalAddress_lib"); +import("system.result"); + +result.string(AddressUtils.getFormattedOnlineAddressById(vars.get("$this.value"))) \ No newline at end of file diff --git a/entity/Offer_entity/entityfields/chosenaddress/valueProcess.js b/entity/Offer_entity/entityfields/chosenaddress/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..6ebcf9a49b9f2a8d6f2a5b7f54b38fb6a2481fce --- /dev/null +++ b/entity/Offer_entity/entityfields/chosenaddress/valueProcess.js @@ -0,0 +1,11 @@ +import("Contact_lib"); +import("system.result"); +import("system.neon"); +import("system.vars"); + +if ((vars.get("$sys.recordstate") == neon.OPERATINGSTATE_NEW || vars.get("$sys.recordstate") == neon.OPERATINGSTATE_EDIT) && !vars.get("$field.ADDRESS")) +{ + var defaultAddressId = ContactUtils.getDefaultAddressId(vars.get("$field.CONTACT_ID")); + if (defaultAddressId) + result.string(defaultAddressId); +} \ No newline at end of file diff --git a/process/Contact_lib/process.js b/process/Contact_lib/process.js index 7539546b86e240ee05c0c28df960fec4ef92a420..f533b09e7c845e0beb0501277af23ea1a42e228b 100644 --- a/process/Contact_lib/process.js +++ b/process/Contact_lib/process.js @@ -332,6 +332,17 @@ ContactUtils.getFullContactString = function() + " left join ADDRESS on ADDRESS.ADDRESSID = CONTACT.ADDRESS_ID"; } +/** + * get the addressid of the default address + * + * @return {String} the ID or "" if no default address exists + */ +ContactUtils.getDefaultAddressId = function(pContactId) +{ + return db.cell(SqlCondition.begin().andPrepare("CONTACT.CONTACTID", pContactId) + .buildSql("select ADDRESS_ID from CONTACT", "1=2")); +} + /** * object for handling of a single contact * provides static- and instance-functions