CRM-13432 - Fix notices for Fixed Period memberships.
[civicrm-core.git] / CRM / Member / Form / MembershipType.php
index e93140e3f3f78ec1b4751aa9e9f5a2a68150b83b..b10e2ae5f51da961e571cb9b788f606d7b072237 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.3                                                |
+ | CiviCRM version 4.4                                                |
  +--------------------------------------------------------------------+
  | Copyright CiviCRM LLC (c) 2004-2013                                |
  +--------------------------------------------------------------------+
@@ -96,7 +96,7 @@ class CRM_Member_Form_MembershipType extends CRM_Member_Form {
 
         $defaults[$per] = array();
         if ($date > 31) {
-          $date                 = ($date < 999) ? '0' . $date : $date;
+          $date                = ($date < 999) ? '0' . $date : $date;
           $defaults[$per]['M'] = substr($date, 0, 2);
           $defaults[$per]['d'] = substr($date, 2, 3);
         }
@@ -146,7 +146,8 @@ class CRM_Member_Form_MembershipType extends CRM_Member_Form {
       CRM_Core_DAO::getAttribute('CRM_Member_DAO_MembershipType', 'duration_interval')
     );
 
-    $dataUrl = CRM_Utils_System::url("civicrm/ajax/rest",
+    $dataUrl = CRM_Utils_System::url(
+      "civicrm/ajax/rest",
       "className=CRM_Contact_Page_AJAX&fnName=getContactList&json=1&context=membershipType&reset=1&org=1",
       FALSE, NULL, FALSE
     );
@@ -324,8 +325,12 @@ class CRM_Member_Form_MembershipType extends CRM_Member_Form {
    */
   public function postProcess() {
     if ($this->_action & CRM_Core_Action::DELETE) {
-      CRM_Utils_Weight::delWeight('CRM_Member_DAO_MembershipType', $this->_id);
+      try{
       CRM_Member_BAO_MembershipType::del($this->_id);
+      }
+      catch(CRM_Core_Exception $e) {
+        CRM_Core_Error::statusBounce($e->getMessage(), NULL, ts('Membership Type Not Deleted'));
+      }
       CRM_Core_Session::setStatus(ts('Selected membership type has been deleted.'), ts('Record Deleted'), 'success');
     }
     else {
@@ -398,8 +403,8 @@ class CRM_Member_Form_MembershipType extends CRM_Member_Form {
         ) {
           $mon          = $params[$per]['M'];
           $dat          = $params[$per]['d'];
-          $mon          = ($mon < 9) ? '0' . $mon : $mon;
-          $dat          = ($dat < 9) ? '0' . $dat : $dat;
+          $mon          = ($mon < 10) ? '0' . $mon : $mon;
+          $dat          = ($dat < 10) ? '0' . $dat : $dat;
           $params[$per] = $mon . $dat;
         }
         else if($per == 'fixed_period_rollover_day' && !empty($params['month_fixed_period_rollover_day'])){
@@ -432,30 +437,28 @@ class CRM_Member_Form_MembershipType extends CRM_Member_Form {
         ), ts('Saved'), 'success');
       $session = CRM_Core_Session::singleton();
       if ($buttonName == $this->getButtonName('upload', 'new')) {
-        CRM_Core_Session::setStatus(ts(' You can add another membership type.'), '', 'info');
-        $session->replaceUserContext(CRM_Utils_System::url('civicrm/admin/member/membershipType',
-            'action=add&reset=1'
-          )
+        $session->replaceUserContext(
+          CRM_Utils_System::url('civicrm/admin/member/membershipType/add', 'action=add&reset=1')
         );
       }
     }
   }
 
-  function checkPreviousPriceField($previousID, $priceSetId, $membershipTypeId, &$optionsIds) {
+  public static function checkPreviousPriceField($previousID, $priceSetId, $membershipTypeId, &$optionsIds) {
     if ($previousID) {
       $editedFieldParams = array(
         'price_set_id ' => $priceSetId,
         'name' => $previousID,
       );
       $editedResults = array();
-      CRM_Price_BAO_Field::retrieve($editedFieldParams, $editedResults);
+      CRM_Price_BAO_PriceField::retrieve($editedFieldParams, $editedResults);
       if (!empty($editedResults)) {
         $editedFieldParams = array(
           'price_field_id' => $editedResults['id'],
           'membership_type_id' => $membershipTypeId,
         );
         $editedResults = array();
-        CRM_Price_BAO_FieldValue::retrieve($editedFieldParams, $editedResults);
+        CRM_Price_BAO_PriceFieldValue::retrieve($editedFieldParams, $editedResults);
         $optionsIds['option_id'][1] = CRM_Utils_Array::value('id', $editedResults);
       }
     }