From 0e09eaf5e1776e671e6caf2771849b29e2261660 Mon Sep 17 00:00:00 2001 From: Pradeep Nayak Date: Thu, 21 Mar 2013 06:28:40 +0530 Subject: [PATCH] -- fixed for CRM-12127, for api fixes --- CRM/Member/BAO/MembershipType.php | 41 ++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 14 deletions(-) diff --git a/CRM/Member/BAO/MembershipType.php b/CRM/Member/BAO/MembershipType.php index 93366dfc49..c8218459d1 100644 --- a/CRM/Member/BAO/MembershipType.php +++ b/CRM/Member/BAO/MembershipType.php @@ -684,7 +684,7 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType { $fieldParams['is_display_amounts'] = $fieldParams['is_required'] = 0; $fieldParams['weight'] = $fieldParams['option_weight'][1] = 1; $fieldParams['option_label'][1] = $params['name']; - $fieldParams['option_description'][1] = $params['description']; + $fieldParams['option_description'][1] = CRM_Utils_Array::value('description', $params); $fieldParams['membership_type_id'][1] = $membershipTypeId; $fieldParams['option_amount'][1] = empty($params['minimum_fee']) ? 0 : $params['minimum_fee']; @@ -727,7 +727,7 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType { } } $results['financial_type_id'] = CRM_Utils_Array::value('financial_type_id', $params); - $results['description'] = $params['description']; + $results['description'] = CRM_Utils_Array::value('description', $params); CRM_Price_BAO_FieldValue::add($results, $optionsIds); } } @@ -746,21 +746,34 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType { else { $amount = 0; } + + $updateValues = array( + 2 => array('financial_type_id', 'financial_type_id', 'Integer'), + 3 => array('label', 'name', 'String'), + 4 => array('amount', 'minimum_fee', 'Float'), + 5 => array('description', 'description', 'String'), + ); + + $queryParams = array(1 => array($membershipTypeId, 'Integer')); + foreach ($updateValues as $key => $value) { + if (array_key_exists($value[1], $params)) { + $updateFields[] = "cpfv." . $value[0] . " = %$key"; + if ($value[1] == 'minimum_fee') { + $fieldValue = $amount; + } + else { + $fieldValue = $params[$value[1]]; + } + $queryParams[$key] = array($fieldValue, $value[2]); + } + } + $query = "UPDATE `civicrm_price_field_value` cpfv INNER JOIN civicrm_price_field cpf on cpf.id = cpfv.price_field_id INNER JOIN civicrm_price_set cps on cps.id = cpf.price_set_id -SET cpfv.financial_type_id = %2, -cpfv.label = %3, -cpfv.amount = %4, -cpfv.description = %5 -WHERE cpfv.membership_type_id = %1 AND cps.is_quick_config = 1 AND cps.name != 'default_membership_type_amount'"; - $params = array(1 => array($membershipTypeId, 'Integer'), - 2 => array($params['financial_type_id'], 'Integer'), - 3 => array($params['name'], 'String'), - 4 => array($amount, 'Float'), - 5 => array($params['description'], 'String'), - ); - CRM_Core_DAO::executeQuery($query, $params); +SET " . implode(' , ', $updateFields) . " WHERE cpfv.membership_type_id = %1 +AND cps.is_quick_config = 1 AND cps.name != 'default_membership_type_amount'"; + CRM_Core_DAO::executeQuery($query, $queryParams); } } -- 2.25.1