From 4643057d6dcf2563d83937ad782565f6458694da Mon Sep 17 00:00:00 2001 From: Johannes Hoermann <j.hoermann@adito.de> Date: Mon, 15 Apr 2019 13:14:02 +0200 Subject: [PATCH] Offer preset address with default address --- entity/Offer_entity/Offer_entity.aod | 3 +++ .../entityfields/chosenaddress/displayValueProcess.js | 5 +++++ .../entityfields/chosenaddress/valueProcess.js | 11 +++++++++++ process/Contact_lib/process.js | 11 +++++++++++ 4 files changed, 30 insertions(+) create mode 100644 entity/Offer_entity/entityfields/chosenaddress/displayValueProcess.js create mode 100644 entity/Offer_entity/entityfields/chosenaddress/valueProcess.js diff --git a/entity/Offer_entity/Offer_entity.aod b/entity/Offer_entity/Offer_entity.aod index 3e594fdf6c..51dc0bd7bf 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 0000000000..698ddd2192 --- /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 0000000000..6ebcf9a49b --- /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 7539546b86..f533b09e7c 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 -- GitLab