本文整理汇总了PHP中CRM_Price_BAO_Set::getMembershipCount方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Price_BAO_Set::getMembershipCount方法的具体用法?PHP CRM_Price_BAO_Set::getMembershipCount怎么用?PHP CRM_Price_BAO_Set::getMembershipCount使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Price_BAO_Set
的用法示例。
在下文中一共展示了CRM_Price_BAO_Set::getMembershipCount方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: formRule
//.........这里部分代码省略.........
if (!empty($fields['price_' . $priceId]) || $self->_quickConfig && $value['name'] == 'membership_amount' && !CRM_Utils_Array::value('is_required', $self->_membershipBlock)) {
if (CRM_Utils_Array::value('price_' . $priceId, $fields) && is_array($fields['price_' . $priceId])) {
foreach ($fields['price_' . $priceId] as $priceFldVal => $isSet) {
if ($isSet) {
$priceFieldIDS[] = $priceFldVal;
}
}
} elseif (!$value['is_enter_qty'] && CRM_Utils_Array::value('price_' . $priceId, $fields)) {
// The check for {!$value['is_enter_qty']} is done since, quantity fields allow entering
// quantity. And the quantity can't be conisdered as civicrm_price_field_value.id, CRM-9577
$priceFieldIDS[] = $fields['price_' . $priceId];
}
if (CRM_Utils_Array::value('options', $value)) {
foreach ($value['options'] as $val) {
if (CRM_Utils_Array::value('membership_type_id', $val)) {
$priceFieldMemTypes[] = $val['membership_type_id'];
}
}
}
}
}
if (!empty($lifeMember)) {
foreach ($priceFieldIDS as $priceFieldId) {
if (($id = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_FieldValue', $priceFieldId, 'membership_type_id')) && in_array($membershipOrgDetails[$id], $unallowedOrgs)) {
$errors['_qf_default'] = ts('You already have a lifetime membership and cannot select a membership with a shorter term.');
break;
}
}
}
if (!empty($priceFieldIDS)) {
$ids = implode(',', $priceFieldIDS);
$priceFieldIDS['id'] = $fields['priceSetId'];
$self->set('memberPriceFieldIDS', $priceFieldIDS);
$count = CRM_Price_BAO_Set::getMembershipCount($ids);
foreach ($count as $id => $occurance) {
if ($occurance > 1) {
$errors['_qf_default'] = ts('You have selected multiple memberships for the same organization or entity. Please review your selections and choose only one membership per entity. Contact the site administrator if you need assistance.');
}
}
}
if (empty($priceFieldMemTypes)) {
$errors['_qf_default'] = ts('Please select at least one membership option.');
}
}
$fieldId = $memPresent = $membershipLabel = $fieldOption = $proceFieldAmount = NULL;
if ($self->_separateMembershipPayment == 0 && $self->_quickConfig) {
foreach ($self->_priceSet['fields'] as $fieldKey => $fieldVal) {
if ($fieldVal['name'] == 'membership_amount') {
$fieldId = $fieldVal['id'];
$fieldOption = $fields['price_' . $fieldId];
$memPresent = TRUE;
} else {
if (CRM_Utils_Array::value('price_' . $fieldKey, $fields) && $memPresent && ($fieldVal['name'] == 'other_amount' || $fieldVal['name'] == 'contribution_amount')) {
$fieldId = $fieldVal['id'];
if ($fieldVal['name'] == 'other_amount') {
$proceFieldAmount = $self->_submitValues['price_' . $fieldId];
} else {
$proceFieldAmount = $fieldVal['options'][$self->_submitValues['price_' . $fieldId]]['amount'];
}
unset($fields['price_' . $fieldId]);
break;
}
}
}
}
CRM_Price_BAO_Set::processAmount($self->_values['fee'], $fields, $lineItem);
示例2: formRule
/**
* Function for validation
*
* @param array $params (ref.) an assoc array of name/value pairs
*
* @return mixed true or array of errors
* @access public
* @static
*/
public function formRule($params, $files, $self)
{
$errors = array();
$priceSetId = CRM_Utils_Array::value('price_set_id', $params);
if ($priceSetId) {
CRM_Price_BAO_Field::priceSetValidation($priceSetId, $params, $errors);
$priceFieldIDS = array();
foreach ($self->_priceSet['fields'] as $priceIds => $dontCare) {
if (!empty($params['price_' . $priceIds])) {
if (is_array($params['price_' . $priceIds])) {
foreach ($params['price_' . $priceIds] as $priceFldVal => $isSet) {
if ($isSet) {
$priceFieldIDS[] = $priceFldVal;
}
}
} else {
$priceFieldIDS[] = $params['price_' . $priceIds];
}
}
}
if (!empty($priceFieldIDS)) {
$ids = implode(',', $priceFieldIDS);
$count = CRM_Price_BAO_Set::getMembershipCount($ids);
foreach ($count as $id => $occurance) {
if ($occurance > 1) {
$errors['_qf_default'] = ts('Select at most one option associated with the same membership type.');
}
}
foreach ($priceFieldIDS as $priceFieldId) {
if ($id = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_FieldValue', $priceFieldId, 'membership_type_id')) {
$self->_memTypeSelected[$id] = $id;
}
}
}
} elseif (!CRM_Utils_Array::value(1, $params['membership_type_id'])) {
$errors['membership_type_id'] = ts('Please select a membership type.');
} else {
$self->_memTypeSelected[] = $params['membership_type_id'][1];
}
// Return error if empty $self->_memTypeSelected
if ($priceSetId && empty($errors) && empty($self->_memTypeSelected)) {
$errors['_qf_default'] = ts('Select at least one membership option.');
}
if (!empty($errors) && count($self->_memTypeSelected) > 1) {
$memberOfContacts = CRM_Member_BAO_MembershipType::getMemberOfContactByMemTypes($self->_memTypeSelected);
$duplicateMemberOfContacts = array_count_values($memberOfContacts);
foreach ($duplicateMemberOfContacts as $countDuplicate) {
if ($countDuplicate > 1) {
$errors['_qf_default'] = ts('Please do not select more than one membership associated with the same organization.');
}
}
}
//check if contact is selected in standalone mode
if (isset($params['contact_select_id'][1]) && !$params['contact_select_id'][1]) {
$errors['contact[1]'] = ts('Please select a contact or create new contact');
}
if (!empty($errors)) {
return $errors;
}
if ($priceSetId && !$self->_mode && !CRM_Utils_Array::value('record_contribution', $params)) {
$errors['record_contribution'] = ts('Record Membership Payment is required when you using price set.');
}
if (CRM_Utils_Array::value('payment_processor_id', $params)) {
// make sure that credit card number and cvv are valid
if (CRM_Utils_Array::value('credit_card_type', $params)) {
if (CRM_Utils_Array::value('credit_card_number', $params) && !CRM_Utils_Rule::creditCardNumber($params['credit_card_number'], $params['credit_card_type'])) {
$errors['credit_card_number'] = ts("Please enter a valid Credit Card Number");
}
if (CRM_Utils_Array::value('cvv2', $params) && !CRM_Utils_Rule::cvv($params['cvv2'], $params['credit_card_type'])) {
$errors['cvv2'] = ts("Please enter a valid Credit Card Verification Number");
}
}
}
$joinDate = NULL;
if (CRM_Utils_Array::value('join_date', $params)) {
$joinDate = CRM_Utils_Date::processDate($params['join_date']);
foreach ($self->_memTypeSelected as $memType) {
$startDate = NULL;
if (CRM_Utils_Array::value('start_date', $params)) {
$startDate = CRM_Utils_Date::processDate($params['start_date']);
}
// if end date is set, ensure that start date is also set
// and that end date is later than start date
// If selected membership type has duration unit as 'lifetime'
// and end date is set, then give error
$endDate = NULL;
if (CRM_Utils_Array::value('end_date', $params)) {
$endDate = CRM_Utils_Date::processDate($params['end_date']);
}
$membershipDetails = CRM_Member_BAO_MembershipType::getMembershipTypeDetails($memType);
if ($startDate && CRM_Utils_Array::value('period_type', $membershipDetails) == 'rolling') {
//.........这里部分代码省略.........
示例3: formRule
/**
* global form rule
*
* @param array $fields the input form values
* @param array $files the uploaded files if any
* @param array $options additional user data
*
* @return true if no errors, else array of errors
* @access public
* @static
*/
static function formRule($fields, $files, $self)
{
$errors = array();
$amount = self::computeAmount($fields, $self);
//check for atleast one pricefields should be selected
if (CRM_Utils_Array::value('priceSetId', $fields)) {
$priceField = new CRM_Price_DAO_Field();
$priceField->price_set_id = $fields['priceSetId'];
$priceField->find();
$check = array();
while ($priceField->fetch()) {
if (!empty($fields["price_{$priceField->id}"])) {
$check[] = $priceField->id;
}
}
if (empty($check)) {
if ($self->_useForMember == 1) {
$errors['_qf_default'] = ts('Select at least one option from Membership Type(s).');
} else {
$errors['_qf_default'] = ts('Select at least one option from Contribution(s).');
}
}
require_once 'CRM/Price/BAO/Set.php';
if ($self->_useForMember == 1 && !empty($check)) {
$priceFieldIDS = array();
$priceFieldMemTypes = array();
foreach ($self->_priceSet['fields'] as $priceId => $value) {
if (!empty($fields['price_' . $priceId])) {
if (is_array($fields['price_' . $priceId])) {
foreach ($fields['price_' . $priceId] as $priceFldVal => $isSet) {
if ($isSet) {
$priceFieldIDS[] = $priceFldVal;
}
}
} else {
$priceFieldIDS[] = $fields['price_' . $priceId];
}
if (CRM_Utils_Array::value('options', $value)) {
foreach ($value['options'] as $val) {
if (CRM_Utils_Array::value('membership_type_id', $val)) {
$priceFieldMemTypes[] = $val['membership_type_id'];
}
}
}
}
}
$ids = implode(',', $priceFieldIDS);
$priceFieldIDS['id'] = $fields['priceSetId'];
$self->set('memberPriceFieldIDS', $priceFieldIDS);
$count = CRM_Price_BAO_Set::getMembershipCount($ids);
foreach ($count as $id => $occurance) {
if ($occurance > 1) {
$errors['_qf_default'] = ts('You have selected multiple memberships for the same organization or entity. Please review your selections and choose only one membership per entity. Contact the site administrator if you need assistance.');
}
}
if (empty($priceFieldMemTypes)) {
$errors['_qf_default'] = ts('Please select at least one membership option.');
}
}
CRM_Price_BAO_Set::processAmount($self->_values['fee'], $fields, $lineItem);
if ($fields['amount'] < 0) {
$errors['_qf_default'] = ts('Contribution can not be less than zero. Please select the options accordingly');
}
$amount = $fields['amount'];
}
if (isset($fields['selectProduct']) && $fields['selectProduct'] != 'no_thanks' && $self->_values['amount_block_is_active']) {
require_once 'CRM/Contribute/DAO/Product.php';
require_once 'CRM/Utils/Money.php';
$productDAO = new CRM_Contribute_DAO_Product();
$productDAO->id = $fields['selectProduct'];
$productDAO->find(true);
$min_amount = $productDAO->min_contribution;
if ($amount < $min_amount) {
$errors['selectProduct'] = ts('The premium you have selected requires a minimum contribution of %1', array(1 => CRM_Utils_Money::format($min_amount)));
}
}
if ($self->_values['honor_block_is_active'] && CRM_Utils_Array::value('honor_type_id', $fields)) {
// make sure there is a first name and last name if email is not there
if (!CRM_Utils_Array::value('honor_email', $fields)) {
if (!CRM_Utils_Array::value('honor_first_name', $fields) || !CRM_Utils_Array::value('honor_last_name', $fields)) {
$errors['honor_last_name'] = ts('In Honor Of - First Name and Last Name, OR an Email Address is required.');
}
}
}
if (isset($fields['is_recur']) && $fields['is_recur']) {
if ($fields['frequency_interval'] <= 0) {
$errors['frequency_interval'] = ts('Please enter a number for how often you want to make this recurring contribution (EXAMPLE: Every 3 months).');
}
if ($fields['frequency_unit'] == '0') {
//.........这里部分代码省略.........