Use XCM to create non-shared address records.

This commit is contained in:
Jens Schuppe 2019-01-07 11:51:02 +01:00
parent c7cfba78e7
commit ffd99317df

View file

@ -306,6 +306,7 @@ function civicrm_api3_twingle_donation_Submit($params) {
// Exclude address for now when retrieving/creating the individual contact // Exclude address for now when retrieving/creating the individual contact
// and an organisation is given, as we are checking organisation address // and an organisation is given, as we are checking organisation address
// first and share it with the individual. // first and share it with the individual.
if (!empty($params['organization_name'])) {
$submitted_address = array(); $submitted_address = array();
foreach (array( foreach (array(
'street_address', 'street_address',
@ -319,6 +320,7 @@ function civicrm_api3_twingle_donation_Submit($params) {
unset($params[$address_component]); unset($params[$address_component]);
} }
} }
}
// Get the ID of the contact matching the given contact data, or create a // Get the ID of the contact matching the given contact data, or create a
// new contact if none exists for the given contact data. // new contact if none exists for the given contact data.
@ -388,8 +390,11 @@ function civicrm_api3_twingle_donation_Submit($params) {
// Address is not shared, use submitted address with configured location // Address is not shared, use submitted address with configured location
// type. // type.
if (!$address_shared && !empty($submitted_address)) { if (!$address_shared && !empty($submitted_address)) {
$submitted_address['contact_id'] = $contact_id; // Do not use `Address.create` API action in order for XCM to decide
civicrm_api3('Address', 'create', $submitted_address); // whether to create an address.
civicrm_api3('Contact', 'getorcreate', array(
'id' => $contact_id,
) + $submitted_address);
} }
// Create employer relationship between organization and individual. // Create employer relationship between organization and individual.