// Calculate membership dates
// Fixme: This code belongs in the BAO
- if (empty($params['id']) || !empty($params['num_terms'])) {
+ if (!empty($params['num_terms'])) {
// If this is a new membership or we have a specified number of terms calculate membership dates.
- if (empty($params['id'])) {
- // This is a new membership, calculate the membership dates.
- $calcDates = CRM_Member_BAO_MembershipType::getDatesForMembershipType(
- $params['membership_type_id'],
- CRM_Utils_Array::value('join_date', $params),
- CRM_Utils_Array::value('start_date', $params),
- CRM_Utils_Array::value('end_date', $params),
- CRM_Utils_Array::value('num_terms', $params, 1)
- );
- }
- else {
+ if (!empty($params['id'])) {
// This is an existing membership, calculate the membership dates after renewal
// num_terms is treated as a 'special sauce' for is_renewal but this
// isn't really helpful for completing pendings.
CRM_Utils_Array::value('membership_type_id', $params),
$params['num_terms']
);
- }
- foreach (['join_date', 'start_date', 'end_date'] as $date) {
- if (empty($params[$date]) && isset($calcDates[$date])) {
- $params[$date] = $calcDates[$date];
+ foreach (['join_date', 'start_date', 'end_date'] as $date) {
+ if (empty($params[$date]) && isset($calcDates[$date])) {
+ $params[$date] = $calcDates[$date];
+ }
}
}
}
$relationships = [];
foreach ($membershipValues as $membershipId => $values) {
// populate the membership type name for the membership type id
- $membershipType = CRM_Member_BAO_MembershipType::getMembershipTypeDetails($values['membership_type_id']);
+ $membershipType = CRM_Member_BAO_MembershipType::getMembershipTypeDetails($values['membership_type_id']) ?? [];
- $membershipValues[$membershipId]['membership_name'] = $membershipType['name'];
+ if (!empty($membershipType)) {
+ $membershipValues[$membershipId]['membership_name'] = $membershipType['name'];
- if (!empty($membershipType['relationship_type_id'])) {
- $relationships[$membershipType['relationship_type_id']] = $membershipId;
+ if (!empty($membershipType['relationship_type_id'])) {
+ $relationships[$membershipType['relationship_type_id']] = $membershipId;
+ }
}
// populating relationship type name.