本文整理汇总了PHP中CRM_Price_BAO_Set类的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Price_BAO_Set类的具体用法?PHP CRM_Price_BAO_Set怎么用?PHP CRM_Price_BAO_Set使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了CRM_Price_BAO_Set类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: create
/**
* takes an associative array and creates a price set object
*
* @param array $params (reference) an assoc array of name/value pairs
*
* @return object CRM_Price_DAO_Set object
* @access public
* @static
*/
static function create(&$params)
{
$priceSetBAO = new CRM_Price_BAO_Set();
$priceSetBAO->copyValues($params);
if (defined('CIVICRM_EVENT_PRICE_SET_DOMAIN_ID') && CIVICRM_EVENT_PRICE_SET_DOMAIN_ID) {
$priceSetBAO->domain_id = CRM_Core_Config::domainID();
}
return $priceSetBAO->save();
}
示例2: create
/**
* takes an associative array and creates a price set object
*
* @param array $params (reference) an assoc array of name/value pairs
*
* @return object CRM_Price_DAO_Set object
* @access public
* @static
*/
static function create(&$params)
{
$priceSetBAO = new CRM_Price_BAO_Set();
$priceSetBAO->copyValues($params);
if (self::eventPriceSetDomainID()) {
$priceSetBAO->domain_id = CRM_Core_Config::domainID();
}
return $priceSetBAO->save();
}
示例3: postProcess
/**
* Process the form when submitted
*
* @return void
* @access public
*/
public function postProcess()
{
if (CRM_Price_BAO_Set::deleteSet($this->_sid)) {
CRM_Core_Session::setStatus(ts('The Price Set \'%1\' has been deleted.', array(1 => $this->_title)));
} else {
CRM_Core_Session::setStatus(ts('The Price Set \'%1\' has not been deleted! You must delete all price fields in this set prior to deleting the set.', array(1 => $this->_title)));
}
}
示例4: preProcess
/**
* pre processing work done here.
*
* gets session variables for group or field id
*
* @param null
*
* @return void
* @access public
*/
function preProcess()
{
// get the controller vars
$groupId = $this->get('groupId');
$fieldId = $this->get('fieldId');
if ($fieldId) {
require_once 'CRM/Price/BAO/Set.php';
$groupTree = CRM_Price_BAO_Set::getSetDetail($groupId);
$this->_groupTree[$groupId]['fields'][$fieldId] = $groupTree[$groupId]['fields'][$fieldId];
$this->assign('preview_type', 'field');
} else {
// group preview
require_once 'CRM/Price/BAO/Set.php';
$this->_groupTree = CRM_Price_BAO_Set::getSetDetail($groupId);
$this->assign('preview_type', 'group');
}
}
示例5: preProcess
/**
* pre processing work done here.
*
* gets session variables for group or field id
*
* @param null
*
* @return void
* @access public
*/
function preProcess()
{
// get the controller vars
$groupId = $this->get('groupId');
$fieldId = $this->get('fieldId');
if ($fieldId) {
$groupTree = CRM_Price_BAO_Set::getSetDetail($groupId);
$this->_groupTree[$groupId]['fields'][$fieldId] = $groupTree[$groupId]['fields'][$fieldId];
$this->assign('preview_type', 'field');
$url = CRM_Utils_System::url('civicrm/admin/price/field', "reset=1&action=browse&sid={$groupId}");
$breadCrumb = array(array('title' => ts('Price Set Fields'), 'url' => $url));
} else {
// group preview
$this->_groupTree = CRM_Price_BAO_Set::getSetDetail($groupId);
$this->assign('preview_type', 'group');
$this->assign('setTitle', CRM_Price_BAO_Set::getTitle($groupId));
$url = CRM_Utils_System::url('civicrm/admin/price', 'reset=1');
$breadCrumb = array(array('title' => ts('Price Sets'), 'url' => $url));
}
CRM_Utils_System::appendBreadCrumb($breadCrumb);
}
示例6: deleteContribution
/**
* Delete the indirect records associated with this contribution first
*
* @return $results no of deleted Contribution on success, false otherwise
* @access public
* @static
*/
static function deleteContribution($id)
{
require_once 'CRM/Utils/Hook.php';
CRM_Utils_Hook::pre('delete', 'Contribution', $id, CRM_Core_DAO::$_nullArray);
require_once 'CRM/Core/Transaction.php';
$transaction = new CRM_Core_Transaction();
$results = null;
//delete activity record
require_once "CRM/Activity/BAO/Activity.php";
$params = array('source_record_id' => $id, 'activity_type_id' => 6);
// activity type id for contribution
CRM_Activity_BAO_Activity::deleteActivity($params);
//delete billing address if exists for this contribution.
self::deleteAddress($id);
//update pledge and pledge payment, CRM-3961
require_once 'CRM/Pledge/BAO/Payment.php';
CRM_Pledge_BAO_Payment::resetPledgePayment($id);
// remove entry from civicrm_price_set_entity, CRM-5095
require_once 'CRM/Price/BAO/Set.php';
if (CRM_Price_BAO_Set::getFor('civicrm_contribution', $id)) {
CRM_Price_BAO_Set::removeFrom('civicrm_contribution', $id);
}
// cleanup line items.
require_once 'CRM/Price/BAO/Field.php';
require_once 'CRM/Event/BAO/ParticipantPayment.php';
$participantId = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment', $id, 'participant_id', 'contribution_id');
// delete any related entity_financial_trxn and financial_trxn records.
require_once 'CRM/Core/BAO/FinancialTrxn.php';
CRM_Core_BAO_FinancialTrxn::deleteFinancialTrxn($id, 'civicrm_contribution');
if ($participantId) {
require_once 'CRM/Price/BAO/LineItem.php';
CRM_Price_BAO_LineItem::deleteLineItems($participantId, 'civicrm_participant');
} else {
require_once 'CRM/Price/BAO/LineItem.php';
CRM_Price_BAO_LineItem::deleteLineItems($id, 'civicrm_contribution');
}
$dao = new CRM_Contribute_DAO_Contribution();
$dao->id = $id;
$results = $dao->delete();
$transaction->commit();
CRM_Utils_Hook::post('delete', 'Contribution', $dao->id, $dao);
// delete the recently created Contribution
require_once 'CRM/Utils/Recent.php';
$contributionRecent = array('id' => $id, 'type' => 'Contribution');
CRM_Utils_Recent::del($contributionRecent);
return $results;
}
示例7: usesPriceSet
/**
* This is sometimes called in a loop (during event search)
* hence we cache the values to prevent repeated calls to the db
*/
static function usesPriceSet($id)
{
require_once 'CRM/Price/BAO/Set.php';
static $usesPriceSet = array();
if (!array_key_exists($id, $usesPriceSet)) {
$usesPriceSet[$id] = CRM_Price_BAO_Set::getFor('civicrm_event', $id);
}
return $usesPriceSet[$id];
}
示例8: postProcess
/**
* Process the form
*
* @return void
* @access public
*/
public function postProcess()
{
// get the submitted form values.
$params = $this->controller->exportValues($this->_name);
if (array_key_exists('payment_processor', $params)) {
if (array_key_exists(CRM_Core_DAO::getFieldValue('CRM_Core_DAO_PaymentProcessor', 'AuthNet', 'id', 'payment_processor_type'), CRM_Utils_Array::value('payment_processor', $params))) {
CRM_Core_Session::setStatus(ts(' Please note that the Authorize.net payment processor only allows recurring contributions and auto-renew memberships with payment intervals from 7-365 days or 1-12 months (i.e. not greater than 1 year).'));
}
}
// check for price set.
$priceSetID = CRM_Utils_Array::value('price_set_id', $params);
// get required fields.
$fields = array('id' => $this->_id, 'is_recur' => FALSE, 'min_amount' => "null", 'max_amount' => "null", 'is_monetary' => FALSE, 'is_pay_later' => FALSE, 'is_recur_interval' => FALSE, 'recur_frequency_unit' => "null", 'default_amount_id' => "null", 'is_allow_other_amount' => FALSE, 'amount_block_is_active' => FALSE);
$resetFields = array();
if ($priceSetID) {
$resetFields = array('min_amount', 'max_amount', 'is_allow_other_amount');
}
if (!CRM_Utils_Array::value('is_recur', $params)) {
$resetFields = array_merge($resetFields, array('is_recur_interval', 'recur_frequency_unit'));
}
foreach ($fields as $field => $defaultVal) {
$val = CRM_Utils_Array::value($field, $params, $defaultVal);
if (in_array($field, $resetFields)) {
$val = $defaultVal;
}
if (in_array($field, array('min_amount', 'max_amount'))) {
$val = CRM_Utils_Rule::cleanMoney($val);
}
$params[$field] = $val;
}
if ($params['is_recur']) {
$params['recur_frequency_unit'] = implode(CRM_Core_DAO::VALUE_SEPARATOR, array_keys($params['recur_frequency_unit']));
$params['is_recur_interval'] = CRM_Utils_Array::value('is_recur_interval', $params, FALSE);
}
if (array_key_exists('payment_processor', $params) && !CRM_Utils_System::isNull($params['payment_processor'])) {
$params['payment_processor'] = implode(CRM_Core_DAO::VALUE_SEPARATOR, array_keys($params['payment_processor']));
} else {
$params['payment_processor'] = 'null';
}
$contributionPage = CRM_Contribute_BAO_ContributionPage::create($params);
$contributionPageID = $contributionPage->id;
// prepare for data cleanup.
$deleteAmountBlk = $deletePledgeBlk = $deletePriceSet = FALSE;
if ($this->_priceSetID) {
$deletePriceSet = TRUE;
}
if ($this->_pledgeBlockID) {
$deletePledgeBlk = TRUE;
}
if (!empty($this->_amountBlock)) {
$deleteAmountBlk = TRUE;
}
if ($contributionPageID) {
if (CRM_Utils_Array::value('amount_block_is_active', $params)) {
// handle price set.
if ($priceSetID) {
// add/update price set.
$deletePriceSet = FALSE;
if (CRM_Utils_Array::value('price_field_id', $params) || CRM_Utils_Array::value('price_field_other', $params)) {
$deleteAmountBlk = TRUE;
}
CRM_Price_BAO_Set::addTo('civicrm_contribution_page', $contributionPageID, $priceSetID);
} else {
$deletePriceSet = FALSE;
// process contribution amount block
$deleteAmountBlk = FALSE;
$labels = CRM_Utils_Array::value('label', $params);
$values = CRM_Utils_Array::value('value', $params);
$default = CRM_Utils_Array::value('default', $params);
$options = array();
for ($i = 1; $i < self::NUM_OPTION; $i++) {
if (isset($values[$i]) && strlen(trim($values[$i])) > 0) {
$options[] = array('label' => trim($labels[$i]), 'value' => CRM_Utils_Rule::cleanMoney(trim($values[$i])), 'weight' => $i, 'is_active' => 1, 'is_default' => $default == $i);
}
}
/* || CRM_Utils_Array::value( 'price_field_value', $params )|| CRM_Utils_Array::value( 'price_field_other', $params )*/
if (!empty($options) || CRM_Utils_Array::value('is_allow_other_amount', $params)) {
$fieldParams['is_quick_config'] = 1;
$noContriAmount = NULL;
$usedPriceSetId = CRM_Price_BAO_Set::getFor('civicrm_contribution_page', $this->_id, 3);
if (!(CRM_Utils_Array::value('price_field_id', $params) || CRM_Utils_Array::value('price_field_other', $params)) && !$usedPriceSetId) {
$pageTitle = strtolower(CRM_Utils_String::munge($this->_values['title'], '_', 245));
$setParams['title'] = $this->_values['title'];
if (!CRM_Core_DAO::getFieldValue('CRM_Price_BAO_Set', $pageTitle, 'id', 'name')) {
$setParams['name'] = $pageTitle;
} elseif (!CRM_Core_DAO::getFieldValue('CRM_Price_BAO_Set', $pageTitle . '_' . $this->_id, 'id', 'name')) {
$setParams['name'] = $pageTitle . '_' . $this->_id;
} else {
$timeSec = explode(".", microtime(true));
$setParams['name'] = $pageTitle . '_' . date('is', $timeSec[0]) . $timeSec[1];
}
$setParams['is_quick_config'] = 1;
$setParams['extends'] = CRM_Core_Component::getComponentID('CiviContribute');
$priceSet = CRM_Price_BAO_Set::create($setParams);
//.........这里部分代码省略.........
示例9: postProcess
/**
* Function to process the form
*
* @access public
*/
public function postProcess()
{
if ($this->_action & CRM_Core_Action::DELETE) {
require_once "CRM/Event/BAO/Participant.php";
CRM_Event_BAO_Participant::deleteParticipant($this->_participantId);
return;
}
// get the submitted form values.
$params = $this->controller->exportValues($this->_name);
// set the contact, when contact is selected
if (CRM_Utils_Array::value('contact_select_id', $params)) {
$this->_contactID = CRM_Utils_Array::value('contact_select_id', $params);
}
$config =& CRM_Core_Config::singleton();
//check if discount is selected
if (CRM_Utils_Array::value('discount_id', $params)) {
$discountId = $params['discount_id'];
} else {
$params['discount_id'] = 'null';
$discountId = null;
}
if ($this->_isPaidEvent) {
//lets carry currency, CRM-4453
$params['fee_currency'] = $config->defaultCurrency;
// fix for CRM-3088
if ($discountId && !empty($this->_values['discount'][$discountId])) {
$params['amount_level'] = $this->_values['discount'][$discountId][$params['amount']]['label'];
$params['amount'] = $this->_values['discount'][$discountId][$params['amount']]['value'];
$this->assign('amount_level', $params['amount_level']);
} else {
if (!isset($params['priceSetId'])) {
$params['amount_level'] = $this->_values['fee'][$params['amount']]['label'];
$params['amount'] = $this->_values['fee'][$params['amount']]['value'];
$this->assign('amount_level', $params['amount_level']);
} else {
if (!$this->_online) {
$lineItem = array();
CRM_Price_BAO_Set::processAmount($this->_values['fee']['fields'], $params, $lineItem[0]);
$this->set('lineItem', $lineItem);
$this->assign('lineItem', $lineItem);
$this->_lineItem = $lineItem;
}
}
}
$params['fee_level'] = $params['amount_level'];
$contributionParams = array();
$contributionParams['total_amount'] = $params['amount'];
}
//fix for CRM-3086
$params['fee_amount'] = $params['amount'];
$this->_params = $params;
unset($params['amount']);
$params['register_date'] = CRM_Utils_Date::processDate($params['register_date'], $params['register_date_time']);
$params['receive_date'] = CRM_Utils_Date::processDate(CRM_Utils_Array::value('receive_date', $params));
$params['contact_id'] = $this->_contactID;
if ($this->_participantId) {
$params['id'] = $this->_participantId;
}
$status = null;
if ($this->_action & CRM_Core_Action::UPDATE) {
$participantBAO =& new CRM_Event_BAO_Participant();
$participantBAO->id = $this->_participantId;
$participantBAO->find();
while ($participantBAO->fetch()) {
$status = $participantBAO->status_id;
$contributionParams['total_amount'] = $participantBAO->fee_amount;
}
$params['discount_id'] = null;
//re-enter the values for UPDATE mode
$params['fee_level'] = $params['amount_level'] = $participantBAO->fee_level;
$params['fee_amount'] = $participantBAO->fee_amount;
}
require_once 'CRM/Contact/BAO/Contact.php';
// Retrieve the name and email of the current user - this will be the FROM for the receipt email
$session =& CRM_Core_Session::singleton();
$userID = $session->get('userID');
list($userName, $userEmail) = CRM_Contact_BAO_Contact_Location::getEmailDetails($userID);
require_once "CRM/Event/BAO/Participant.php";
if ($this->_mode) {
if (!$this->_isPaidEvent) {
CRM_Core_Error::fatal(ts('Selected Event is not Paid Event '));
}
//modify params according to parameter used in create
//participant method (addParticipant)
$params['participant_status_id'] = $params['status_id'];
$params['participant_role_id'] = $params['role_id'];
$params['participant_register_date'] = $params['register_date'];
$params['participant_source'] = $params['source'];
require_once 'CRM/Core/BAO/PaymentProcessor.php';
$this->_paymentProcessor = CRM_Core_BAO_PaymentProcessor::getPayment($this->_params['payment_processor_id'], $this->_mode);
require_once "CRM/Contact/BAO/Contact.php";
$now = date('YmdHis');
$fields = array();
// set email for primary location.
$fields["email-Primary"] = 1;
//.........这里部分代码省略.........
示例10: formRule
//.........这里部分代码省略.........
}
// allow for 0 value.
if (!empty($fields['option_amount'][$index]) || strlen($fields['option_amount'][$index]) > 0) {
$noAmount = 0;
}
if (!empty($fields['option_weight'][$index])) {
$noWeight = 0;
$duplicateIndex = CRM_Utils_Array::key($fields['option_weight'][$index], $fields['option_weight']);
if (!($duplicateIndex === FALSE) && !($duplicateIndex == $index)) {
$errors["option_weight[{$index}]"] = ts('Duplicate weight value');
$_flagOption = 1;
}
}
if ($noLabel && !$noAmount) {
$errors["option_label[{$index}]"] = ts('Label cannot be empty.');
$_flagOption = 1;
}
if (!$noLabel && $noAmount) {
$errors["option_amount[{$index}]"] = ts('Amount cannot be empty.');
$_flagOption = 1;
}
if ($noLabel && $noAmount) {
$countemptyrows++;
$_emptyRow = 1;
} elseif (!empty($fields['option_max_value'][$index]) && !empty($fields['option_count'][$index]) && $fields['option_count'][$index] > $fields['option_max_value'][$index]) {
$errors["option_max_value[{$index}]"] = ts('Participant count can not be greater than max participants.');
$_flagOption = 1;
}
$showBlocks = 'optionField_' . $index;
if ($_flagOption) {
$_showHide->addShow($showBlocks);
$_rowError = 1;
}
if (!empty($_emptyRow)) {
$_showHide->addHide($showBlocks);
} else {
$_showHide->addShow($showBlocks);
}
if ($index == self::NUM_OPTION) {
$hideBlock = 'additionalOption';
$_showHide->addHide($hideBlock);
}
$_flagOption = $_emptyRow = 0;
}
if (!empty($memTypesIDS)) {
// check for checkboxes allowing user to select multiple memberships from same membership organization
if ($fields['html_type'] == 'CheckBox') {
$foundDuplicate = FALSE;
$orgIds = array();
foreach ($memTypesIDS as $key => $val) {
$org = CRM_Member_BAO_MembershipType::getMembershipTypeOrganization($val);
if (in_array($org[$val], $orgIds)) {
$foundDuplicate = TRUE;
break;
}
$orgIds[$val] = $org[$val];
}
if ($foundDuplicate) {
$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.');
}
}
// CRM-10390 - Only one price field in a set can include auto-renew membership options
$foundAutorenew = FALSE;
foreach ($memTypesIDS as $key => $val) {
// see if any price field option values in this price field are for memberships with autorenew
$memTypeDetails = CRM_Member_BAO_MembershipType::getMembershipTypeDetails($val);
if (CRM_Utils_Array::value('auto_renew', $memTypeDetails)) {
$foundAutorenew = TRUE;
break;
}
}
if ($foundAutorenew) {
// if so, check for other fields in this price set which also have auto-renew membership options
$otherFieldAutorenew = CRM_Price_BAO_Set::checkAutoRenewForPriceSet($form->_sid);
if ($otherFieldAutorenew) {
$errors['_qf_default'] = ts('You can include auto-renew membership choices for only one price field in a price set. Another field in this set already contains one or more auto-renew membership options.');
}
}
}
$_showHide->addToTemplate();
if ($countemptyrows == 11) {
$errors['option_label[1]'] = $errors['option_amount[1]'] = ts('Label and value cannot be empty.');
$_flagOption = 1;
}
} elseif (!empty($fields['max_value']) && !empty($fields['count']) && $fields['count'] > $fields['max_value']) {
$errors['max_value'] = ts('Participant count can not be greater than max participants.');
}
// do not process if no option rows were submitted
if (empty($fields['option_amount']) && empty($fields['option_label'])) {
return TRUE;
}
if (empty($fields['option_name'])) {
$fields['option_amount'] = array();
}
if (empty($fields['option_label'])) {
$fields['option_label'] = array();
}
}
return empty($errors) ? TRUE : $errors;
}
示例11: run
/**
* Run the page.
*
* This method is called after the page is created. It checks for the
* type of action and executes that action.
* Finally it calls the parent's run method.
*
* @return void
* @access public
*
*/
function run()
{
//get the event id.
$this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this, true);
$config =& CRM_Core_Config::singleton();
require_once 'CRM/Event/BAO/Event.php';
// ensure that the user has permission to see this page
if (!CRM_Core_Permission::event(CRM_Core_Permission::VIEW, $this->_id)) {
CRM_Core_Error::fatal(ts('You do not have permission to view this event'));
}
$action = CRM_Utils_Request::retrieve('action', 'String', $this, false);
$context = CRM_Utils_Request::retrieve('context', 'String', $this, false, 'register');
$this->assign('context', $context);
// Sometimes we want to suppress the Event Full msg
$noFullMsg = CRM_Utils_Request::retrieve('noFullMsg', 'String', $this, false, 'false');
// set breadcrumb to append to 2nd layer pages
$breadCrumbPath = CRM_Utils_System::url("civicrm/event/info", "id={$this->_id}&reset=1");
$additionalBreadCrumb = "<a href=\"{$breadCrumbPath}\">" . ts('Events') . '</a>';
//retrieve event information
$params = array('id' => $this->_id);
CRM_Event_BAO_Event::retrieve($params, $values['event']);
if (!$values['event']['is_active']) {
// form is inactive, die a fatal death
CRM_Core_Error::fatal(ts('The page you requested is currently unavailable.'));
}
$this->assign('isShowLocation', CRM_Utils_Array::value('is_show_location', $values['event']));
// show event fees.
require_once 'CRM/Price/BAO/Set.php';
if ($this->_id && CRM_Utils_Array::value('is_monetary', $values['event'])) {
// get price set options, - CRM-5209
if ($priceSetId = CRM_Price_BAO_Set::getFor('civicrm_event', $this->_id)) {
$setDetails = CRM_Price_BAO_Set::getSetDetail($priceSetId);
eval("\$priceSetFields = \$setDetails[{$priceSetId}][fields];");
if (is_array($priceSetFields)) {
$fieldCnt = 1;
foreach ($priceSetFields as $fid => $fieldValues) {
if (!is_array($fieldValues['options']) || empty($fieldValues['options'])) {
continue;
}
foreach ($fieldValues['options'] as $optionId => $optionVal) {
$values['feeBlock']['value'][$fieldCnt] = $optionVal['value'];
$values['feeBlock']['label'][$fieldCnt] = $optionVal['description'];
$fieldCnt++;
}
}
}
} else {
//retrieve event fee block.
require_once 'CRM/Core/OptionGroup.php';
require_once 'CRM/Core/BAO/Discount.php';
$discountId = CRM_Core_BAO_Discount::findSet($this->_id, 'civicrm_event');
if ($discountId) {
CRM_Core_OptionGroup::getAssoc(CRM_Core_DAO::getFieldValue('CRM_Core_DAO_Discount', $discountId, 'option_group_id'), $values['feeBlock'], false, 'id');
} else {
CRM_Core_OptionGroup::getAssoc("civicrm_event.amount.{$this->_id}", $values['feeBlock']);
}
}
}
$params = array('entity_id' => $this->_id, 'entity_table' => 'civicrm_event');
require_once 'CRM/Core/BAO/Location.php';
$values['location'] = CRM_Core_BAO_Location::getValues($params, true);
//retrieve custom field information
require_once 'CRM/Core/BAO/CustomGroup.php';
$groupTree =& CRM_Core_BAO_CustomGroup::getTree("Event", $this, $this->_id, 0, $values['event']['event_type_id']);
CRM_Core_BAO_CustomGroup::buildCustomDataView($this, $groupTree);
$this->assign('action', CRM_Core_Action::VIEW);
//To show the event location on maps directly on event info page
$locations =& CRM_Event_BAO_Event::getMapInfo($this->_id);
if (!empty($locations) && CRM_Utils_Array::value('is_map', $values['event'])) {
$this->assign('locations', $locations);
$this->assign('mapProvider', $config->mapProvider);
$this->assign('mapKey', $config->mapAPIKey);
$sumLat = $sumLng = 0;
$maxLat = $maxLng = -400;
$minLat = $minLng = +400;
foreach ($locations as $location) {
$sumLat += $location['lat'];
$sumLng += $location['lng'];
if ($location['lat'] > $maxLat) {
$maxLat = $location['lat'];
}
if ($location['lat'] < $minLat) {
$minLat = $location['lat'];
}
if ($location['lng'] > $maxLng) {
$maxLng = $location['lng'];
}
if ($location['lng'] < $minLng) {
$minLng = $location['lng'];
//.........这里部分代码省略.........
示例12: preProcess
//.........这里部分代码省略.........
// get the billing location type
$locationTypes =& CRM_Core_PseudoConstant::locationType();
$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);
// check for is_monetary status
$isMonetary = CRM_Utils_Array::value('is_monetary', $this->_values);
$isPayLater = CRM_Utils_Array::value('is_pay_later', $this->_values);
if ($isMonetary && (!$isPayLater || CRM_Utils_Array::value('payment_processor_id', $this->_values))) {
$ppID = CRM_Utils_Array::value('payment_processor_id', $this->_values);
if (!$ppID) {
CRM_Core_Error::fatal(ts('A payment processor must be selected for this contribution page (contact the site administrator for assistance).'));
}
require_once 'CRM/Core/BAO/PaymentProcessor.php';
$this->_paymentProcessor = CRM_Core_BAO_PaymentProcessor::getPayment($ppID, $this->_mode);
// check selected payment processor is active
if (empty($this->_paymentProcessor)) {
CRM_Core_Error::fatal(ts('A payment processor configured for this page might be disabled (contact the site administrator for assistance).'));
}
// ensure that processor has a valid config
$this->_paymentObject =& CRM_Core_Payment::singleton($this->_mode, $this->_paymentProcessor, $this);
$error = $this->_paymentObject->checkConfig();
if (!empty($error)) {
CRM_Core_Error::fatal($error);
}
$this->_paymentProcessor['processorName'] = $this->_paymentObject->_processorName;
$this->set('paymentProcessor', $this->_paymentProcessor);
}
// get price info
// CRM-5095
require_once 'CRM/Price/BAO/Set.php';
CRM_Price_BAO_Set::initSet($this, $this->_id, 'civicrm_contribution_page');
// this avoids getting E_NOTICE errors in php
$setNullFields = array('amount_block_is_active', 'honor_block_is_active', 'is_allow_other_amount', 'footer_text');
foreach ($setNullFields as $f) {
if (!isset($this->_values[$f])) {
$this->_values[$f] = null;
}
}
//check if Membership Block is enabled, if Membership Fields are included in profile
//get membership section for this contribution page
require_once 'CRM/Member/BAO/Membership.php';
$this->_membershipBlock = CRM_Member_BAO_Membership::getMembershipBlock($this->_id);
$this->set('membershipBlock', $this->_membershipBlock);
require_once "CRM/Core/BAO/UFField.php";
if ($this->_values['custom_pre_id']) {
$preProfileType = CRM_Core_BAO_UFField::getProfileType($this->_values['custom_pre_id']);
}
if ($this->_values['custom_post_id']) {
$postProfileType = CRM_Core_BAO_UFField::getProfileType($this->_values['custom_post_id']);
}
// also set cancel subscription url
if (CRM_Utils_Array::value('is_recur', $this->_paymentProcessor) && CRM_Utils_Array::value('is_recur', $this->_values)) {
$this->_values['cancelSubscriptionUrl'] = $this->_paymentObject->cancelSubscriptionURL();
}
if ((isset($postProfileType) && $postProfileType == 'Membership' || isset($preProfileType) && $preProfileType == 'Membership') && !$this->_membershipBlock['is_active']) {
CRM_Core_Error::fatal(ts('This page includes a Profile with Membership fields - but the Membership Block is NOT enabled. Please notify the site administrator.'));
}
require_once 'CRM/Pledge/BAO/PledgeBlock.php';
$pledgeBlock = CRM_Pledge_BAO_PledgeBlock::getPledgeBlock($this->_id);
if ($pledgeBlock) {
$this->_values['pledge_block_id'] = CRM_Utils_Array::value('id', $pledgeBlock);
$this->_values['max_reminders'] = CRM_Utils_Array::value('max_reminders', $pledgeBlock);
$this->_values['initial_reminder_day'] = CRM_Utils_Array::value('initial_reminder_day', $pledgeBlock);
示例13: getStatusMsg
/**
* Function to build status message while
* enabling/ disabling various objects
*/
static function getStatusMsg(&$config)
{
$recordID = CRM_Utils_Type::escape($_POST['recordID'], 'Integer');
$recordBAO = CRM_Utils_Type::escape($_POST['recordBAO'], 'String');
$op = CRM_Utils_Type::escape($_POST['op'], 'String');
$show = null;
if ($op == 'disable-enable') {
$status = ts('Are you sure you want to enable this record?');
} else {
switch ($recordBAO) {
case 'CRM_Core_BAO_UFGroup':
require_once str_replace('_', DIRECTORY_SEPARATOR, $recordBAO) . ".php";
$method = 'getUFJoinRecord';
$result = array($recordBAO, $method);
$ufJoin = call_user_func_array($result, array($recordID, true));
if (!empty($ufJoin)) {
$status = ts('This profile is currently used for %1.', array(1 => implode(', ', $ufJoin))) . ' <br/><br/>' . ts('If you disable the profile - it will be removed from these forms and/or modules. Do you want to continue?');
} else {
$status = ts('Are you sure you want to disable this profile?');
}
break;
case 'CRM_Price_BAO_Set':
require_once str_replace('_', DIRECTORY_SEPARATOR, $recordBAO) . ".php";
$usedBy = CRM_Price_BAO_Set::getUsedBy($recordID);
$priceSet = CRM_Price_BAO_Set::getTitle($recordID);
if (!CRM_Utils_System::isNull($usedBy)) {
$template =& CRM_Core_Smarty::singleton();
$template->assign('usedBy', $usedBy);
$comps = array("Event" => "civicrm_event", "Contribution" => "civicrm_contribution_page");
$contexts = array();
foreach ($comps as $name => $table) {
if (array_key_exists($table, $usedBy)) {
$contexts[] = $name;
}
}
$template->assign('contexts', $contexts);
$show = "noButton";
$table = $template->fetch('CRM/Price/Page/table.tpl');
$status = ts('Unable to disable the \'%1\' price set - it is currently in use by one or more active events, contribution pages or contributions.', array(1 => $priceSet)) . "<br/> {$table}";
} else {
$status = ts('Are you sure you want to disable \'%1\' Price Set?', array(1 => $priceSet));
}
break;
case 'CRM_Event_BAO_Event':
$status = ts('Are you sure you want to disable this Event?');
break;
case 'CRM_Core_BAO_UFField':
$status = ts('Are you sure you want to disable this CiviCRM Profile field?');
break;
case 'CRM_Contribute_BAO_ManagePremiums':
$status = ts('Are you sure you want to disable this premium? This action will remove the premium from any contribution pages that currently offer it. However it will not delete the premium record - so you can re-enable it and add it back to your contribution page(s) at a later time.');
break;
case 'CRM_Contact_BAO_RelationshipType':
$status = ts('Are you sure you want to disable this relationship type?') . '<br/><br/>' . ts('Users will no longer be able to select this value when adding or editing relationships between contacts.');
break;
case 'CRM_Contribute_BAO_ContributionType':
$status = ts('Are you sure you want to disable this contribution type?');
break;
case 'CRM_Core_BAO_PaymentProcessor':
$status = ts('Are you sure you want to disable this payment processor?') . ' <br/><br/>' . ts('Users will no longer be able to select this value when adding or editing transaction pages.');
break;
case 'CRM_Core_BAO_PaymentProcessorType':
$status = ts('Are you sure you want to disable this payment processor type?');
break;
case 'CRM_Core_BAO_LocationType':
$status = ts('Are you sure you want to disable this location type?') . ' <br/><br/>' . ts('Users will no longer be able to select this value when adding or editing contact locations.');
break;
case 'CRM_Event_BAO_ParticipantStatusType':
$status = ts('Are you sure you want to disable this Participant Status?') . '<br/><br/> ' . ts('Users will no longer be able to select this value when adding or editing Participant Status.');
break;
case 'CRM_Mailing_BAO_Component':
$status = ts('Are you sure you want to disable this component?');
break;
case 'CRM_Core_BAO_CustomField':
$status = ts('Are you sure you want to disable this custom data field?');
break;
case 'CRM_Core_BAO_CustomGroup':
$status = ts('Are you sure you want to disable this custom data group? Any profile fields that are linked to custom fields of this group will be disabled.');
break;
case 'CRM_Core_BAO_MessageTemplates':
$status = ts('Are you sure you want to disable this message tempate?');
break;
case 'CRM_ACL_BAO_ACL':
$status = ts('Are you sure you want to disable this ACL?');
break;
case 'CRM_ACL_BAO_EntityRole':
$status = ts('Are you sure you want to disable this ACL Role Assignment?');
break;
case 'CRM_Member_BAO_MembershipType':
$status = ts('Are you sure you want to disable this membership type?');
break;
case 'CRM_Member_BAO_MembershipStatus':
$status = ts('Are you sure you want to disable this membership status rule?');
break;
case 'CRM_Price_BAO_Field':
$status = ts('Are you sure you want to disable this price field?');
//.........这里部分代码省略.........
示例14: run
/**
* Run the page.
*
* This method is called after the page is created. It checks for the
* type of action and executes that action.
*
* @param null
*
* @return void
* @access public
*/
function run()
{
require_once 'CRM/Price/BAO/Set.php';
// get the group id
$this->_sid = CRM_Utils_Request::retrieve('sid', 'Positive', $this);
$fid = CRM_Utils_Request::retrieve('fid', 'Positive', $this, false, 0);
$action = CRM_Utils_Request::retrieve('action', 'String', $this, false, 'browse');
// default to 'browse'
if ($this->_sid) {
require_once 'CRM/Price/BAO/Set.php';
CRM_Price_BAO_Set::checkPermission($this->_sid);
}
if ($action & CRM_Core_Action::DELETE) {
require_once 'CRM/Price/BAO/Set.php';
$usedBy =& CRM_Price_BAO_Set::getUsedBy($this->_sid);
if (empty($usedBy)) {
// prompt to delete
$session =& CRM_Core_Session::singleton();
$session->pushUserContext(CRM_Utils_System::url('civicrm/admin/price/field', 'reset=1&action=browse&sid=' . $this->_sid));
$controller =& new CRM_Core_Controller_Simple('CRM_Price_Form_DeleteField', "Delete Price Field", '');
$controller->set('fid', $fid);
$controller->setEmbedded(true);
$controller->process();
$controller->run();
} else {
// add breadcrumb
require_once 'CRM/Price/BAO/Field.php';
$url = CRM_Utils_System::url('civicrm/admin/price/field', 'reset=1');
CRM_Utils_System::appendBreadCrumb(ts('Price'), $url);
$this->assign('usedPriceSetTitle', CRM_Price_BAO_Field::getTitle($fid));
$this->assign('usedBy', $usedBy);
$comps = array("Event" => "civicrm_event", "Contribution" => "civicrm_contribution_page");
$priceSetContexts = array();
foreach ($comps as $name => $table) {
if (array_key_exists($table, $usedBy)) {
$priceSetContexts[] = $name;
}
}
$this->assign('contexts', $priceSetContexts);
}
}
if ($this->_sid) {
$groupTitle = CRM_Price_BAO_Set::getTitle($this->_sid);
$this->assign('sid', $this->_sid);
$this->assign('groupTitle', $groupTitle);
CRM_Utils_System::setTitle(ts('%1 - Price Fields', array(1 => $groupTitle)));
}
// assign vars to templates
$this->assign('action', $action);
// what action to take ?
if ($action & (CRM_Core_Action::UPDATE | CRM_Core_Action::ADD)) {
$this->edit($action);
// no browse for edit/update/view
} else {
if ($action & CRM_Core_Action::PREVIEW) {
$this->preview($fid);
} else {
require_once 'CRM/Price/BAO/Field.php';
$this->browse();
}
}
// Call the parents run method
parent::run();
}
示例15: processPriceSet
/**
* Function to process price set and line items.
*
* @access public
* @return None
*/
function processPriceSet($contributionId, $lineItem)
{
if (!$contributionId || !is_array($lineItem) || CRM_Utils_system::isNull($lineItem)) {
return;
}
require_once 'CRM/Price/BAO/Set.php';
require_once 'CRM/Price/BAO/LineItem.php';
foreach ($lineItem as $priceSetId => $values) {
if (!$priceSetId) {
continue;
}
foreach ($values as $line) {
$line['entity_table'] = 'civicrm_contribution';
$line['entity_id'] = $contributionId;
CRM_Price_BAO_LineItem::create($line);
}
CRM_Price_BAO_Set::addTo('civicrm_contribution', $contributionId, $priceSetId);
}
}