Skip to content
Snippets Groups Projects
Commit 599c61ac authored by Eileen's avatar Eileen
Browse files

CRM-13234 add adjust profile api to link related items

parent 874ebab6
No related branches found
No related tags found
No related merge requests found
......@@ -122,6 +122,11 @@ function _civicrm_api3_contribution_create_spec(&$params) {
'api.default' => 0,
'description' => 'Do not add line items by default (if you wish to add your own)',
);
$params['batch_id'] = array(
'title' => 'Batch',
'type' => 1,
'description' => 'Batch which relevant transactions should be added to',
);
}
/**
......
......@@ -155,7 +155,6 @@ function _civicrm_api3_profile_get_spec(&$params) {
*/
function civicrm_api3_profile_submit($params) {
$profileID = _civicrm_api3_profile_getProfileID($params['profile_id']);
if (!CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFGroup', $profileID, 'is_active')) {
//@todo declare pseudoconstant & let api do this
throw new API_Exception('Invalid value for profile_id');
......@@ -198,6 +197,10 @@ function civicrm_api3_profile_submit($params) {
$entity = strtolower(CRM_Utils_Array::value('entity', $field));
if($entity && !in_array($entity, array_merge($contactEntities, $locationEntities))) {
$contactParams['api.' . $entity . '.create'][$fieldName] = $value;
//@todo we are not currently declaring this option
if(isset($params['batch_id']) && strtolower($entity) == 'contribution') {
$contactParams['api.' . $entity . '.create']['batch_id'] = $params['batch_id'];
}
if(isset($params[$entity . '_id'])) {
//todo possibly declare $entity_id in getfields ?
$contactParams['api.' . $entity . '.create']['id'] = $params[$entity . '_id'];
......@@ -207,6 +210,19 @@ function civicrm_api3_profile_submit($params) {
$contactParams[_civicrm_api3_profile_translate_fieldnames_for_bao($fieldName)] = $value;
}
}
if(isset($contactParams['api.contribution.create']) && isset($contactParams['api.membership.create'])) {
$contactParams['api.membership_payment.create'] = array(
'contribution_id' => '$value.api.contribution.create.id',
'membership_id' => '$value.api.membership.create.id'
);
}
if(isset($contactParams['api.contribution.create']) && isset($contactParams['api.participant.create'])) {
$contactParams['api.participant_payment.create'] = array(
'contribution_id' => '$value.api.contribution.create.id',
'participant_id' => '$value.api.participant.create.id'
);
}
$contactParams['contact_id'] = CRM_Utils_Array::value('contact_id', $params);
$contactParams['profile_id'] = $profileID;
......@@ -233,7 +249,7 @@ function civicrm_api3_profile_submit($params) {
$tags = $profileParams['tag'];
unset($profileParams['tag']);
}
return civicrm_api3('contact', 'create', $profileParams);
$ufGroupDetails = array();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment