Merge pull request #15141 from colemanw/permission
[civicrm-core.git] / api / v3 / Membership.php
index 7d9b86ac49e0515f037a2db452df53b2b3d51238..42f5249895da6baa87dabcdeb60d90178a71b9cb 100644 (file)
@@ -117,6 +117,8 @@ function civicrm_api3_membership_create($params) {
     }
     else {
       // 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.
       $calcDates = CRM_Member_BAO_MembershipType::getRenewalDatesForMembershipType(
         $params['id'],
         NULL,
@@ -132,10 +134,10 @@ function civicrm_api3_membership_create($params) {
   }
 
   // Fixme: This code belongs in the BAO
+  $ids = [];
   if (empty($params['id'])) {
     $params['action'] = CRM_Core_Action::ADD;
     // we need user id during add mode
-    $ids = [];
     if (!empty($params['contact_id'])) {
       $ids['userId'] = $params['contact_id'];
     }
@@ -143,10 +145,11 @@ function civicrm_api3_membership_create($params) {
   else {
     // edit mode
     $params['action'] = CRM_Core_Action::UPDATE;
-    // $ids['membership'] is required in CRM_Price_BAO_LineItem::processPriceSet
+    // @todo remove $ids['membership'] is required in CRM_Price_BAO_LineItem::processPriceSet
     $ids['membership'] = $params['id'];
   }
 
+  // @todo stop passing $ids (membership and userId may be set above)
   $membershipBAO = CRM_Member_BAO_Membership::create($params, $ids, TRUE);
 
   if (array_key_exists('is_error', $membershipBAO)) {
@@ -280,7 +283,6 @@ function _civicrm_api3_membership_get_customv2behaviour(&$params, $membershipTyp
   return $membershipValues;
 }
 
-
 /**
  * Non-standard behaviour inherited from v2.
  *