/** * Function to return singleton object * * @return object $_singleton * @access public * @static */ public static function &singleton($contact_id) { if (self::$_singleton === NULL) { self::$_singleton = new CRM_Lidmaatschapwijziging_ConfigMembership($contact_id); } return self::$_singleton; }
function postProcess() { $values = $this->exportValues(); $this->_configMembership = CRM_Lidmaatschapwijziging_ConfigMembership::singleton($this->_contactId); // empty if ('empty' == $this->_request) { // set message $session = CRM_Core_Session::singleton(); $session->setStatus(ts('Voor %1 bestaat geen lidmaatschap !', $this->_display_name), ts('Lidmaatschap Wijziging - Lidmaatschap'), 'warning'); // redirect user $url = CRM_Utils_System::url('civicrm/lidmaatschapwijziging/relationship', 'reset=1&request=choose&cid=' . $this->_contactId); CRM_Utils_System::redirect($url); } // choose if ('choose' == $this->_request) { // set message $session = CRM_Core_Session::singleton(); // redirect user $url = CRM_Utils_System::url('civicrm/lidmaatschapwijziging/membership', 'reset=1&request=update&cid=' . $this->_contactId . '&membership_id=' . $values['membership_id']); CRM_Utils_System::redirect($url); } if ('update' == $this->_request) { // api create membership try { $params = array('version' => 3, 'sequential' => 1, 'contact_id' => $this->_contactId, 'membership_id' => $this->_membershipId, 'membership_type_id' => $values['membership_type_id'], 'source' => $values['source'], 'start_date' => $values['start_date'], 'end_date' => $values['end_date'], 'is_override' => $values['is_override'], 'status_id' => $values['status_id']); // for the custom values in membership, the need to be custom_35 and not huppeldepup foreach ($this->_configMembership->getMembershipCustomFields() as $key => $field) { if (isset($values[$field['name']])) { $params['custom_' . $field['id']] = $values[$field['name']]; } } $result = civicrm_api('Membership', 'create', $params); // check no error if (isset($result['is_error']) and !$result['is_error']) { // if there is no error // set message $session = CRM_Core_Session::singleton(); $session->setStatus(ts('%1 is opgeslagen !', $this->_display_name), ts('Lidmaatschap Wijziging - Lidmaatschap'), 'success'); // redirect user $url = CRM_Utils_System::url('civicrm/lidmaatschapwijziging/relationship', 'reset=1&request=choose&cid=' . $this->_contactId); CRM_Utils_System::redirect($url); } else { // if there is a error // set message $session = CRM_Core_Session::singleton(); $session->setStatus(ts('Er is een error: %1, %2 is niet opgeslagen !', array($result['error_message'], $this->_display_name)), ts('Lidmaatschap Wijziging - Lidmaatschap'), 'error'); // redirect user $url = CRM_Utils_System::url('civicrm/lidmaatschapwijziging/membership', 'reset=1&cid=' . $this->_contactId); CRM_Utils_System::redirect($url); } } catch (CiviCRM_API3_Exception $ex) { throw new Exception('Could not create contact, ' . 'error from Api Contact create: ' . $ex->getMessage()); } } //parent::postProcess(); }