$optionValue = CRM_Core_OptionValue::addOptionValue($params, $this->_gName, $this->_action, $this->_id);
- // CRM-11516
- if (!empty($params['financial_account_id'])) {
- $relationTypeId = key(CRM_Core_PseudoConstant::accountOptionValues('account_relationship', NULL, " AND v.name LIKE 'Asset Account is' "));
- $params = array(
- 'entity_table' => 'civicrm_option_value',
- 'entity_id' => $optionValue->id,
- 'account_relationship' => $relationTypeId,
- 'financial_account_id' => $params['financial_account_id'],
- );
- CRM_Financial_BAO_FinancialTypeAccount::add($params);
- }
-
CRM_Core_Session::setStatus(ts('The %1 \'%2\' has been saved.', array(
1 => $this->_gLabel,
2 => $optionValue->label,
$optionValue->id = $id;
$optionValue->save();
CRM_Core_PseudoConstant::flush();
+
+ // Create relationship for payment intrument options
+ if (!empty($params['financial_account_id'])) {
+ $optionName = civicrm_api3('OptionGroup', 'getvalue', [
+ 'return' => 'name',
+ 'id' => $params['option_group_id'],
+ ]);
+ // Only create relationship for payment intrument options
+ if ($optionName == 'payment_instrument') {
+ $relationTypeId = civicrm_api3('OptionValue', 'getvalue', [
+ 'return' => 'value',
+ 'option_group_id' => 'account_relationship',
+ 'name' => 'Asset Account is',
+ ]);
+ $params = [
+ 'entity_table' => 'civicrm_option_value',
+ 'entity_id' => $optionValue->id,
+ 'account_relationship' => $relationTypeId,
+ 'financial_account_id' => $params['financial_account_id'],
+ ];
+ CRM_Financial_BAO_FinancialTypeAccount::add($params);
+ }
+ }
return $optionValue;
}