Merge pull request #5010 from eileenmcnaughton/rebase2
[civicrm-core.git] / CRM / Member / BAO / MembershipType.php
index 3dc72ad39fbf3fbc8b0b2d2004c49bf300c0a5df..20e467c80045977b68005b83b0130af94e60b9a3 100644 (file)
@@ -128,10 +128,20 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType {
     if ($id) {
       self::updateAllPriceFieldValue($id, $params);
     }
-
+    self::flush();
     return $membershipType;
   }
 
+  /**
+   * Flush anywhere that membership types might be cached
+   * @throws \CiviCRM_API3_Exception
+   */
+  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));
+  }
+
   /**
    * Delete membership Types
    *
@@ -144,12 +154,12 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType {
     //check dependencies
     $check = FALSE;
     $status = array();
-    $dependancy = array(
+    $dependency = array(
       'Membership' => 'membership_type_id',
       'MembershipBlock' => 'membership_type_default',
     );
 
-    foreach ($dependancy as $name => $field) {
+    foreach ($dependency as $name => $field) {
       $baoString = 'CRM_Member_BAO_' . $name;
       $dao = new $baoString();
       $dao->$field = $membershipTypeId;
@@ -414,16 +424,11 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType {
       }
     }
 
-    $membershipDates = array();
-
-    $dates = array(
-      'start_date' => 'startDate',
-      'end_date' => 'endDate',
-      'join_date' => 'joinDate',
+    $membershipDates = array(
+      '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'),
     );
-    foreach ($dates as $varName => $valName) {
-      $membershipDates[$varName] = CRM_Utils_Date::customFormat($$valName, '%Y%m%d');
-    }
 
     return $membershipDates;
   }