/**
* Static holder for the default Membership Type.
+ * @var int
*/
- static $_defaultMembershipType = NULL;
+ public static $_defaultMembershipType = NULL;
- static $_membershipTypeInfo = array();
+ public static $_membershipTypeInfo = [];
/**
* Class constructor.
* @return \CRM_Member_DAO_MembershipType
* @throws \CiviCRM_API3_Exception
*/
- public static function add(&$params, $ids = array()) {
+ public static function add(&$params, $ids = []) {
// DEPRECATED Check if membershipType ID was passed in via $ids
if (empty($params['id'])) {
if (isset($ids['membershipType'])) {
if ($membershipTypeId) {
// on update we may need to retrieve some details for the price field function - otherwise we get e-notices on attempts to retrieve
// name etc - the presence of previous id tells us this is an update
- $params = array_merge(civicrm_api3('membership_type', 'getsingle', array('id' => $membershipType->id)), $params);
+ $params = array_merge(civicrm_api3('membership_type', 'getsingle', ['id' => $membershipType->id]), $params);
}
self::createMembershipPriceField($params, $previousID, $membershipType->id);
// update all price field value for quick config when membership type is set CRM-11718
*/
public static function flush() {
CRM_Member_PseudoConstant::membershipType(NULL, TRUE);
- civicrm_api3('membership', 'getfields', array('cache_clear' => 1, 'fieldname' => 'membership_type_id'));
- civicrm_api3('profile', 'getfields', array('action' => 'submit', 'cache_clear' => 1));
+ civicrm_api3('membership', 'getfields', ['cache_clear' => 1, 'fieldname' => 'membership_type_id']);
+ civicrm_api3('profile', 'getfields', ['action' => 'submit', 'cache_clear' => 1]);
+ Civi::cache('metadata')->clear();
}
/**
public static function del($membershipTypeId) {
// Check dependencies.
$check = FALSE;
- $status = array();
- $dependency = array(
+ $status = [];
+ $dependency = [
'Membership' => 'membership_type_id',
'MembershipBlock' => 'membership_type_default',
- );
+ ];
foreach ($dependency as $name => $field) {
$baoString = 'CRM_Member_BAO_' . $name;
if (in_array('Membership', $status)) {
$findMembersURL = CRM_Utils_System::url('civicrm/member/search', 'reset=1');
$deleteURL = CRM_Utils_System::url('civicrm/contact/search/advanced', 'reset=1');
- $message .= '<br/>' . ts('%3. There are some contacts who have this membership type assigned to them. Search for contacts with this membership type from <a href=\'%1\'>Find Members</a>. If you are still getting this message after deleting these memberships, there may be contacts in the Trash (deleted) with this membership type. Try using <a href="%2">Advanced Search</a> and checking "Search in Trash".', array(
+ $message .= '<br/>' . ts('%3. There are some contacts who have this membership type assigned to them. Search for contacts with this membership type from <a href=\'%1\'>Find Members</a>. If you are still getting this message after deleting these memberships, there may be contacts in the Trash (deleted) with this membership type. Try using <a href="%2">Advanced Search</a> and checking "Search in Trash".', [
1 => $findMembersURL,
2 => $deleteURL,
3 => $cnt,
- ));
+ ]);
$cnt++;
}
if (in_array('MembershipBlock', $status)) {
$deleteURL = CRM_Utils_System::url('civicrm/admin/contribute', 'reset=1');
- $message .= ts('%2. This Membership Type is used in an <a href=\'%1\'>Online Contribution page</a>. Uncheck this membership type in the Memberships tab.', array(
+ $message .= ts('%2. This Membership Type is used in an <a href=\'%1\'>Online Contribution page</a>. Uncheck this membership type in the Memberships tab.', [
1 => $deleteURL,
2 => $cnt,
- ));
+ ]);
throw new CRM_Core_Exception($message);
}
}
* An array of membershipType-details.
*/
public static function convertDayFormat(&$membershipType) {
- $periodDays = array(
+ $periodDays = [
'fixed_period_start_day',
'fixed_period_rollover_day',
- );
+ ];
foreach ($membershipType as $id => $details) {
foreach ($periodDays as $pDay) {
if (!empty($details[$pDay])) {
if ($details[$pDay] > 31) {
$month = substr($details[$pDay], 0, strlen($details[$pDay]) - 2);
$day = substr($details[$pDay], -2);
- $monthMap = array(
+ $monthMap = [
'1' => 'Jan',
'2' => 'Feb',
'3' => 'Mar',
'10' => 'Oct',
'11' => 'Nov',
'12' => 'Dec',
- );
+ ];
$membershipType[$id][$pDay] = $monthMap[$month] . ' ' . $day;
}
else {
/**
* Get membership Types.
*
+ * @deprecated use getAllMembershipTypes.
+ *
* @param bool $public
*
* @return array
*/
public static function getMembershipTypes($public = TRUE) {
- $membershipTypes = array();
+ $membershipTypes = [];
$membershipType = new CRM_Member_DAO_MembershipType();
$membershipType->is_active = 1;
if ($public) {
/**
* Get membership Type Details.
*
+ * @deprecated use getMembershipType.
+ *
* @param int $membershipTypeId
*
* @return array|null
*/
public static function getMembershipTypeDetails($membershipTypeId) {
- $membershipTypeDetails = array();
+ $membershipTypeDetails = [];
$membershipType = new CRM_Member_DAO_MembershipType();
$membershipType->is_active = 1;
$membershipTypeDetails = self::getMembershipTypeDetails($membershipTypeId);
// Convert all dates to 'Y-m-d' format.
- foreach (array(
+ foreach ([
'joinDate',
'startDate',
'endDate',
- ) as $dateParam) {
+ ] as $dateParam) {
if (!empty($$dateParam)) {
$$dateParam = CRM_Utils_Date::processDate($$dateParam, NULL, FALSE, 'Y-m-d');
}
}
}
- $membershipDates = array(
+ $membershipDates = [
'start_date' => CRM_Utils_Date::customFormat($startDate, '%Y%m%d'),
'end_date' => CRM_Utils_Date::customFormat($endDate, '%Y%m%d'),
'join_date' => CRM_Utils_Date::customFormat($joinDate, '%Y%m%d'),
- );
+ ];
return $membershipDates;
}
* array fo the start date, end date and join date of the membership
*/
public static function getRenewalDatesForMembershipType($membershipId, $changeToday = NULL, $membershipTypeID = NULL, $numRenewTerms = 1) {
- $params = array('id' => $membershipId);
+ $params = ['id' => $membershipId];
$membershipDetails = CRM_Member_BAO_Membership::getValues($params, $values);
$membershipDetails = $membershipDetails[$membershipId];
$statusID = $membershipDetails->status_id;
- $membershipDates = array();
+ $membershipDates = [];
if (!empty($membershipDetails->join_date)) {
$membershipDates['join_date'] = CRM_Utils_Date::customFormat($membershipDetails->join_date, '%Y%m%d');
}
return $membershipDates;
}
- /**
- * @deprecated Please use the Membership API
- * Retrieve all Membership Types associated with an Organization
- *
- * @param int $orgID
- * Id of Organization.
- *
- * @return array
- * array of the details of membership types
- */
- public static function getMembershipTypesByOrg($orgID) {
- CRM_Core_Error::deprecatedFunctionWarning('membership_type api');
- $memberTypesSameParentOrg = civicrm_api3('MembershipType', 'get', array(
- 'member_of_contact_id' => $orgID,
- 'options' => array(
- 'limit' => 0,
- ),
- ));
- return CRM_Utils_Array::value('values', $memberTypesSameParentOrg, array());
- }
-
/**
* Retrieve all Membership Types with Member of Contact id.
*
* array of the details of membership types with Member of Contact id
*/
public static function getMemberOfContactByMemTypes($membershipTypes) {
- $memTypeOrganizations = array();
+ $memTypeOrganizations = [];
if (empty($membershipTypes)) {
return $memTypeOrganizations;
}
* @return array
*/
public static function getMembershipTypeOrganization($membershipTypeId = NULL) {
- $allMembershipTypes = array();
+ $allMembershipTypes = [];
$membershipType = new CRM_Member_DAO_MembershipType();
*/
public static function getMembershipTypeInfo() {
if (!self::$_membershipTypeInfo) {
- $orgs = $types = array();
+ $orgs = $types = [];
$query = 'SELECT memType.id, memType.name, memType.member_of_contact_id, c.sort_name
FROM civicrm_membership_type memType INNER JOIN civicrm_contact c ON c.id = memType.member_of_contact_id
$types[$dao->member_of_contact_id][$dao->id] = $dao->name;
}
- self::$_membershipTypeInfo = array($orgs, $types);
+ self::$_membershipTypeInfo = [$orgs, $types];
}
return self::$_membershipTypeInfo;
}
-
/**
* @param array $params
* @param int $previousID
}
$fieldLabel = 'Membership Amount';
$optionsIds = NULL;
- $fieldParams = array(
+ $fieldParams = [
'price_set_id ' => $priceSetId,
'name' => $fieldName,
- );
- $results = array();
+ ];
+ $results = [];
CRM_Price_BAO_PriceField::retrieve($fieldParams, $results);
if (empty($results)) {
- $fieldParams = array();
+ $fieldParams = [];
$fieldParams['label'] = $fieldLabel;
$fieldParams['name'] = $fieldName;
$fieldParams['price_set_id'] = $priceSetId;
}
else {
$fieldID = $results['id'];
- $fieldValueParams = array(
+ $fieldValueParams = [
'price_field_id' => $fieldID,
'membership_type_id' => $membershipTypeId,
- );
- $results = array();
+ ];
+ $results = [];
CRM_Price_BAO_PriceFieldValue::retrieve($fieldValueParams, $results);
if (!empty($results)) {
$results['label'] = $results['name'] = $params['name'];
$optionsIds['id'] = $results['id'];
}
else {
- $results = array(
+ $results = [
'price_field_id' => $fieldID,
'name' => $params['name'],
'label' => $params['name'],
'amount' => empty($params['minimum_fee']) ? 0 : $params['minimum_fee'],
'membership_type_id' => $membershipTypeId,
'is_active' => 1,
- );
+ ];
}
if ($previousID) {
* @param array $params
*/
public static function updateAllPriceFieldValue($membershipTypeId, $params) {
- $defaults = array();
- $fieldsToUpdate = array(
+ $defaults = [];
+ $fieldsToUpdate = [
'financial_type_id' => 'financial_type_id',
'name' => 'label',
'minimum_fee' => 'amount',
'description' => 'description',
'visibility' => 'visibility_id',
- );
+ ];
$priceFieldValueBAO = new CRM_Price_BAO_PriceFieldValue();
$priceFieldValueBAO->membership_type_id = $membershipTypeId;
$priceFieldValueBAO->find();
while ($priceFieldValueBAO->fetch()) {
- $updateParams = array(
+ $updateParams = [
'id' => $priceFieldValueBAO->id,
'price_field_id' => $priceFieldValueBAO->price_field_id,
- );
+ ];
//Get priceset details.
- $fieldParams = array('fid' => $priceFieldValueBAO->price_field_id);
+ $fieldParams = ['fid' => $priceFieldValueBAO->price_field_id];
$setID = CRM_Price_BAO_PriceSet::getSetId($fieldParams);
- $setParams = array('id' => $setID);
+ $setParams = ['id' => $setID];
$setValues = CRM_Price_BAO_PriceSet::retrieve($setParams, $defaults);
if (!empty($setValues->is_quick_config) && $setValues->name != 'default_membership_type_amount') {
foreach ($fieldsToUpdate as $key => $value) {
}
}
+ /**
+ * Cached wrapper for membership types.
+ *
+ * Since this is used from the batched script caching helps.
+ *
+ * @throws \CiviCRM_API3_Exception
+ */
+ public static function getAllMembershipTypes() {
+ if (!Civi::cache('metadata')->has(__CLASS__ . __FUNCTION__)) {
+ Civi::cache('metadata')->set(__CLASS__ . __FUNCTION__, civicrm_api3('MembershipType', 'get', ['options' => ['limit' => 0, 'sort' => 'weight']])['values']);
+ }
+ return Civi::cache('metadata')->get(__CLASS__ . __FUNCTION__);
+ }
+
+ /**
+ * Get a specific membership type (leveraging the cache).
+ *
+ * @param int $id
+ *
+ * @return mixed
+ * @throws \CiviCRM_API3_Exception
+ */
+ public static function getMembershipType($id) {
+ return self::getAllMembershipTypes()[$id];
+ }
+
}