<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.5 |
+ | CiviCRM version 4.6 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
protected $_memTypeSelected;
- /*
+ /**
* Display name of the member
+ *
+ * @var string
*/
protected $_memberDisplayName = NULL;
- /*
- * email of the person paying for the membership (used for receipts)
- */
+ /**
+ * email of the person paying for the membership (used for receipts)
+ */
protected $_memberEmail = NULL;
- /*
- * Contact ID of the member
- */
- protected $_contactID = NULL;
+ /**
+ * Contact ID of the member
+ *
+ * @var int
+ */
+ public $_contactID = NULL;
- /*
- * Display name of the person paying for the membership (used for receipts)
- */
+ /**
+ * Display name of the person paying for the membership (used for receipts)
+ *
+ * @var string
+ */
protected $_contributorDisplayName = NULL;
- /*
+ /**
* email of the person paying for the membership (used for receipts)
*/
protected $_contributorEmail = NULL;
- /*
- * email of the person paying for the membership (used for receipts)
- */
+ /**
+ * email of the person paying for the membership (used for receipts)
+ *
+ * @var int
+ */
protected $_contributorContactID = NULL;
- /*
+ /**
* ID of the person the receipt is to go to
+ *
+ * @var int
*/
protected $_receiptContactId = NULL;
- /*
+ /**
* Keep a class variable for ALL membeshipID's so
* postProcess hook function can do something with it
+ *
+ * @var array
*/
protected $_membershipIDs = array();
return CRM_Custom_Form_CustomData::preProcess($this);
}
+ parent::preProcess();
// get price set id.
$this->_priceSetId = CRM_Utils_Array::value('priceSetId', $_GET);
$this->set('priceSetId', $this->_priceSetId);
$this->assign('priceSetId', $this->_priceSetId);
- // action
- $this->_action = CRM_Utils_Request::retrieve('action', 'String', $this, FALSE, 'add');
- $this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this);
- $this->_contactID = CRM_Utils_Request::retrieve('cid', 'Positive', $this);
- $this->_processors = array();
- $this->assign('contactID', $this->_contactID);
-
// check for edit permission
if (!CRM_Core_Permission::checkActionPermission('CiviMember', $this->_action)) {
- CRM_Core_Error::fatal(ts('You do not have permission to access this page'));
+ CRM_Core_Error::fatal(ts('You do not have permission to access this page.'));
}
if ($this->_action & CRM_Core_Action::DELETE) {
}
}
- $this->_context = CRM_Utils_Request::retrieve('context', 'String', $this);
- $this->assign('context', $this->_context);
-
- if ($this->_id) {
- $this->_memType = CRM_Core_DAO::getFieldValue('CRM_Member_DAO_Membership', $this->_id, 'membership_type_id');
- $this->_membershipIDs[] = $this->_id;
- }
-
- $this->_mode = CRM_Utils_Request::retrieve('mode', 'String', $this);
- $this->assign('membershipMode', $this->_mode);
-
- if ($this->_mode) {
- $this->_paymentProcessor = array('billing_mode' => 1);
- $validProcessors = array();
- $processors = CRM_Core_PseudoConstant::paymentProcessor(FALSE, FALSE, 'billing_mode IN ( 1, 3 )');
-
- foreach ($processors as $ppID => $label) {
- $paymentProcessor = CRM_Financial_BAO_PaymentProcessor::getPayment($ppID, $this->_mode);
- if ($paymentProcessor['payment_processor_type'] == 'PayPal' && !$paymentProcessor['user_name']) {
- continue;
- }
- elseif ($paymentProcessor['payment_processor_type'] == 'Dummy' && $this->_mode == 'live') {
- continue;
- }
- else {
- $paymentObject = CRM_Core_Payment::singleton($this->_mode, $paymentProcessor, $this);
- $error = $paymentObject->checkConfig();
- if (empty($error)) {
- $validProcessors[$ppID] = $label;
- }
- $paymentObject = NULL;
- }
- }
- if (empty($validProcessors)) {
- CRM_Core_Error::fatal(ts('Could not find valid payment processor for this page'));
- }
- else {
- $this->_processors = $validProcessors;
- }
- // also check for billing information
- // get the billing location type
- $locationTypes = CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id', array(), 'validate');
- // CRM-8108 remove ts around Billing location type
- //$this->_bltID = array_search( ts('Billing'), $locationTypes );
- $this->_bltID = array_search('Billing', $locationTypes);
- if (!$this->_bltID) {
- CRM_Core_Error::fatal(ts('Please set a location type of %1', array(1 => 'Billing')));
- }
- $this->set('bltID', $this->_bltID);
- $this->assign('bltID', $this->_bltID);
-
- $this->_fields = array();
-
- CRM_Core_Payment_Form::setCreditCardFields($this);
-
- // this required to show billing block
- $this->assign_by_ref('paymentProcessor', $paymentProcessor);
- $this->assign('hidePayPalExpress', TRUE);
- }
-
if ($this->_action & CRM_Core_Action::ADD) {
if (!CRM_Member_BAO_Membership::statusAvailabilty($this->_contactID)) {
// all possible statuses are disabled - redirect back to contact form
);
}
$this->assign('onlinePendingContributionId', $this->_onlinePendingContributionId);
- $this->_fromEmails = CRM_Core_BAO_Email::getFromEmail();
$this->setPageTitle(ts('Membership'));
-
-
- parent::preProcess();
}
/**
- * This function sets the default values for the form. MobileProvider that in edit/view mode
+ * Set default values for the form. MobileProvider that in edit/view mode
* the default values are retrieved from the database
*
- * @access public
*
* @return void
*/
}
/**
- * Function to build the form
+ * Build the form object
*
* @return void
- * @access public
*/
public function buildQuickForm() {
if ($this->_cdType) {
}
$this->assign('taxRates', json_encode(CRM_Core_PseudoConstant::getTaxRates()));
+ $config = CRM_Core_Config::singleton();
+ $this->assign('currency', $config->defaultCurrencySymbol);
+ $invoiceSettings = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::CONTRIBUTE_PREFERENCES_NAME, 'contribution_invoice_settings');
+ $invoicing = CRM_Utils_Array::value('invoicing', $invoiceSettings);
+ if (isset($invoicing)) {
+ $this->assign('taxTerm', CRM_Utils_Array::value('tax_term', $invoiceSettings));
+ }
// build price set form.
$buildPriceSet = FALSE;
if ($this->_priceSetId || !empty($_POST['price_set_id'])) {
if ($buildPriceSet) {
$this->add('select', 'price_set_id', ts('Choose price set'),
array(
- '' => ts('Choose price set')
+ '' => ts('Choose price set'),
) + $priceSets,
NULL, array('onchange' => "buildAmount( this.value );")
);
}
if ($this->_context == 'standalone') {
- $this->addEntityRef('contact_id', ts('Contact'), array('create' => TRUE, 'api' => array('extra' => array('email'))), TRUE);
+ $this->addEntityRef('contact_id', ts('Contact'), array(
+ 'create' => TRUE,
+ 'api' => array('extra' => array('email')),
+ ), TRUE);
}
$selOrgMemType[0][0] = $selMemTypeOrg[0] = ts('- select -');
'id',
'auto_renew',
'duration_unit',
- 'duration_interval'
+ 'duration_interval',
) as $fld) {
$this->_recurMembershipTypes[$recurMembershipTypes->id][$fld] = $recurMembershipTypes->$fld;
}
CRM_Core_DAO::getAttribute('CRM_Member_DAO_Membership', 'max_related')
);
- $sel = & $this->addElement('hierselect',
+ $sel = &$this->addElement('hierselect',
'membership_type_id',
ts('Membership Organization and Type'),
$memTypeJs
foreach ($statusNames as $val => $name) {
if (in_array($name, array(
'In Progress',
- 'Overdue'
+ 'Overdue',
))
) {
continue;
$this->addSelect('soft_credit_type_id', array('entity' => 'contribution_soft'));
$this->addEntityRef('soft_credit_contact_id', ts('Payment From'), array('create' => TRUE));
-
$this->addElement('checkbox',
'send_receipt',
ts('Send Confirmation and Receipt?'), NULL,
$this->add('select', 'from_email_address', ts('Receipt From'), $this->_fromEmails);
$this->add('textarea', 'receipt_text_signup', ts('Receipt Message'));
- if ($this->_mode) {
-
- $this->add('select', 'payment_processor_id',
- ts('Payment Processor'),
- $this->_processors, TRUE,
- array('onChange' => "buildAutoRenew( null, this.value );")
- );
- CRM_Core_Payment_Form::buildCreditCard($this, TRUE);
- }
// Retrieve the name and email of the contact - this will be the TO for receipt email
if ($this->_contactID) {
}
/**
- * Function for validation
+ * Validation
*
- * @param array $params (ref.) an assoc array of name/value pairs
+ * @param array $params
+ * (ref.) an assoc array of name/value pairs.
*
* @param $files
* @param $self
*
* @throws CiviCRM_API3_Exception
- * @return mixed true or array of errors
- * @access public
- * @static
+ * @return bool|array
+ * mixed true or array of errors
*/
- static function formRule($params, $files, $self) {
+ public static function formRule($params, $files, $self) {
$errors = array();
$priceSetId = CRM_Utils_Array::value('price_set_id', $params);
));
$tmp_statuses = $result['values'];
$status_ids = array();
- foreach($tmp_statuses as $cur_stat) {
+ foreach ($tmp_statuses as $cur_stat) {
$status_ids[] = $cur_stat['id'];
}
- if (empty($params['status_id']) || in_array( $params['status_id'] , $status_ids) == false) {
+ if (empty($params['status_id']) || in_array($params['status_id'], $status_ids) == FALSE) {
$errors['status_id'] = ts('Please enter a status that does NOT represent a current membership status.');
- $errors['is_override'] = ts('This must be checked because you set an End Date for a lifetime membership');
+ $errors['is_override'] = ts('This must be checked because you set an End Date for a lifetime membership');
}
}
else {
}
if (isset($params['is_override']) &&
- $params['is_override'] && empty($params['status_id'])) {
+ $params['is_override'] && empty($params['status_id'])
+ ) {
$errors['status_id'] = ts('Please enter the status.');
}
}
/**
- * Function to process the form
+ * Process the form submission
*
- * @access public
*
* @return void
*/
$$dateVariable = CRM_Utils_Date::processDate($formValues[$dateField]);
}
- $memTypeNumTerms = empty($termsByType) ? CRM_Utils_Array::value('num_terms', $formValues) : NULL;
+ $memTypeNumTerms = empty($termsByType) ? CRM_Utils_Array::value('num_terms', $formValues) : NULL;
$calcDates = array();
foreach ($this->_memTypeSelected as $memType) {
if (!$this->_onlinePendingContributionId) {
if (empty($formValues['source'])) {
- $params['contribution_source'] = ts('%1 Membership: Offline signup (by %2)', array(1 => $membershipType, 2 => $userName));
+ $params['contribution_source'] = ts('%1 Membership: Offline signup (by %2)', array(
+ 1 => $membershipType,
+ 2 => $userName,
+ ));
}
else {
- $params['contribution_source'] = $formValues['source'];
+ $params['contribution_source'] = $formValues['source'];
}
- }
+ }
if (empty($params['is_override']) &&
CRM_Utils_Array::value('contribution_status_id', $params) == array_search('Pending', CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'))
//get the payment processor id as per mode.
$params['payment_processor_id'] = $this->_params['payment_processor_id'] = $formValues['payment_processor_id'] = $this->_paymentProcessor['id'];
-
$now = date('YmdHis');
$fields = array();
$this->_params['ip_address'] = CRM_Utils_System::ipAddress();
$this->_params['amount'] = $params['total_amount'];
$this->_params['currencyID'] = $config->defaultCurrency;
+ $this->_params['description'] = ts('Office Credit Card Membership Signup Contribution');
$this->_params['payment_action'] = 'Sale';
$this->_params['invoiceID'] = md5(uniqid(rand(), TRUE));
$this->_params['financial_type_id'] = $params['financial_type_id'];
$result = CRM_Contribute_BAO_Contribution::transitionComponents($params, TRUE);
if (!empty($result) && !empty($params['contribution_id'])) {
$lineItem = array();
- $lineItems = CRM_Price_BAO_LineItem::getLineItems($params['contribution_id'], 'contribution');
+ $lineItems = CRM_Price_BAO_LineItem::getLineItems($params['contribution_id'], 'contribution', NULL, TRUE, TRUE);
$itemId = key($lineItems);
$priceSetId = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceField', $lineItems[$itemId]['price_field_id'], 'price_set_id');
$fieldType = NULL;
$lineItem[$priceSetId] = $lineItems;
$contributionBAO = new CRM_Contribute_BAO_Contribution();
$contributionBAO->id = $params['contribution_id'];
+ $contributionBAO->contact_id = $params['contact_id'];
$contributionBAO->find();
CRM_Price_BAO_LineItem::processPriceSet($params['contribution_id'], $lineItem, $contributionBAO, 'civicrm_membership');
//display end date w/ status message.
$endDate = $membership->end_date;
- $membershipStatues = CRM_Member_PseudoConstant::membershipStatus();
if (!in_array($membership->status_id, array(
- array_search('Cancelled', $membershipStatues),
- array_search('Expired', $membershipStatues),
+ // CRM-15475
+ array_search('Cancelled', CRM_Member_PseudoConstant::membershipStatus(NULL, " name = 'Cancelled' ", 'name', FALSE, TRUE)),
+ array_search('Expired', CRM_Member_PseudoConstant::membershipStatus()),
))
) {
$cancelled = FALSE;
}
if (!empty($lineItem[$priceSetId])) {
- $invoiceSettings = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::CONTRIBUTE_PREFERENCES_NAME,'contribution_invoice_settings');
+ $invoiceSettings = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::CONTRIBUTE_PREFERENCES_NAME, 'contribution_invoice_settings');
$invoicing = CRM_Utils_Array::value('invoicing', $invoiceSettings);
$taxAmount = FALSE;
$totalTaxAmount = 0;
if (isset($value['tax_amount']) && isset($value['tax_rate'])) {
if (isset($dataArray[$value['tax_rate']])) {
$dataArray[$value['tax_rate']] = $dataArray[$value['tax_rate']] + CRM_Utils_Array::value('tax_amount', $value);
- } else {
+ }
+ else {
$dataArray[$value['tax_rate']] = CRM_Utils_Array::value('tax_amount', $value);
}
- }
+ }
}
if ($taxAmount) {
$this->assign('totalTaxAmount', $totalTaxAmount);
foreach ($membershipTypes as $memType => $membershipType) {
$statusMsg[$memType] = ts('%1 membership for %2 has been added.', array(
1 => $membershipType,
- 2 => $this->_memberDisplayName
+ 2 => $this->_memberDisplayName,
));
$membership = $createdMemberships[$memType];
}
/**
- * Function to send email receipt
+ * Send email receipt
*
- * @param object $form form object
- * @param $formValues
- * @param object $membership object
+ * @param CRM_Core_Form $form
+ * Form object.
+ * @param array $formValues
+ * @param object $membership
+ * Object.
*
- * @internal param array $values submitted values
- * @return boolean true if mail was sent successfully
- * @static
+ * @return bool
+ * true if mail was sent successfully
*/
- static function emailReceipt(&$form, &$formValues, &$membership) {
+ public static function emailReceipt(&$form, &$formValues, &$membership) {
// retrieve 'from email id' for acknowledgement
$receiptFrom = $formValues['from_email_address'];
if (empty($lineItem)) {
$form->assign('mem_start_date', CRM_Utils_Date::customFormat($membership->start_date, '%B %E%f, %Y'));
- $form->assign('mem_end_date', CRM_Utils_Date::customFormat($membership->end_date, '%B %E%f, %Y'));
+ if (!CRM_Utils_System::isNull($membership->end_date)) {
+ $form->assign('mem_end_date', CRM_Utils_Date::customFormat($membership->end_date, '%B %E%f, %Y'));
+ }
$form->assign('membership_name', CRM_Member_PseudoConstant::membershipType($membership->membership_type_id));
}
$form->_receiptContactId = $formValues['contact_id'];
}
}
- $template = CRM_Core_Smarty::singleton( );
+ $template = CRM_Core_Smarty::singleton();
$taxAmt = $template->get_template_vars('dataArray');
$eventTaxAmt = $template->get_template_vars('totalTaxAmount');
$prefixValue = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::CONTRIBUTE_PREFERENCES_NAME, 'contribution_invoice_settings');
$invoicing = CRM_Utils_Array::value('invoicing', $prefixValue);
if ((!empty($taxAmt) || isset($eventTaxAmt)) && (isset($invoicing) && isset($prefixValue['is_email_pdf']))) {
- $isEmailPdf = True;
+ $isEmailPdf = TRUE;
}
else {
- $isEmailPdf = False;
+ $isEmailPdf = FALSE;
}
list($mailSend, $subject, $message, $html) = CRM_Core_BAO_MessageTemplate::sendTemplate(
'from' => $receiptFrom,
'toName' => $form->_contributorDisplayName,
'toEmail' => $form->_contributorEmail,
- 'PDFFilename' => ts('receipt').'.pdf',
+ 'PDFFilename' => ts('receipt') . '.pdf',
'isEmailPdf' => $isEmailPdf,
'contributionId' => $formValues['contribution_id'],
- 'isTest' => (bool) ($form->_action & CRM_Core_Action::PREVIEW)
+ 'isTest' => (bool) ($form->_action & CRM_Core_Action::PREVIEW),
)
);
return TRUE;
}
}
-