本文整理汇总了PHP中CRM_Event_DAO_Event::find方法的典型用法代码示例。如果您正苦于以下问题:PHP CRM_Event_DAO_Event::find方法的具体用法?PHP CRM_Event_DAO_Event::find怎么用?PHP CRM_Event_DAO_Event::find使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CRM_Event_DAO_Event
的用法示例。
在下文中一共展示了CRM_Event_DAO_Event::find方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: browse
/**
* Browse all event templates.
*/
public function browse()
{
//get all event templates.
$allEventTemplates = array();
$eventTemplate = new CRM_Event_DAO_Event();
$eventTypes = CRM_Event_PseudoConstant::eventType();
$participantRoles = CRM_Event_PseudoConstant::participantRole();
$participantListings = CRM_Event_PseudoConstant::participantListing();
//find all event templates.
$eventTemplate->is_template = TRUE;
$eventTemplate->find();
while ($eventTemplate->fetch()) {
CRM_Core_DAO::storeValues($eventTemplate, $allEventTemplates[$eventTemplate->id]);
//get listing types.
if ($eventTemplate->participant_listing_id) {
$allEventTemplates[$eventTemplate->id]['participant_listing'] = $participantListings[$eventTemplate->participant_listing_id];
}
//get participant role
if ($eventTemplate->default_role_id) {
$allEventTemplates[$eventTemplate->id]['participant_role'] = $participantRoles[$eventTemplate->default_role_id];
}
//get event type.
if (isset($eventTypes[$eventTemplate->event_type_id])) {
$allEventTemplates[$eventTemplate->id]['event_type'] = $eventTypes[$eventTemplate->event_type_id];
}
//form all action links
$action = array_sum(array_keys($this->links()));
//add action links.
$allEventTemplates[$eventTemplate->id]['action'] = CRM_Core_Action::formLink(self::links(), $action, array('id' => $eventTemplate->id), ts('more'), FALSE, 'eventTemplate.manage.action', 'Event', $eventTemplate->id);
}
$this->assign('rows', $allEventTemplates);
$session = CRM_Core_Session::singleton();
$session->pushUserContext(CRM_Utils_System::url(CRM_Utils_System::currentPath(), 'reset=1&action=browse'));
}
示例2: retrieve
/**
* Takes a bunch of params that are needed to match certain criteria and
* retrieves the relevant objects. Typically the valid params are only
* contact_id. We'll tweak this function to be more full featured over a period
* of time. This is the inverse function of create. It also stores all the retrieved
* values in the default array
*
* @param array $params (reference ) an assoc array of name/value pairs
* @param array $defaults (reference ) an assoc array to hold the flattened values
*
* @return object CRM_Event_BAO_ManageEvent object
* @access public
* @static
*/
static function retrieve(&$params, &$defaults)
{
$event = new CRM_Event_DAO_Event();
$event->copyValues($params);
if ($event->find(true)) {
CRM_Core_DAO::storeValues($event, $defaults);
return $event;
}
return null;
}
示例3: updateRecords
/**
* Updates contacts affected by the option value passed.
*
* @param int $optionValueId
* The option value id.
* @param int $action
* The action describing whether prefix/suffix was UPDATED or DELETED.
*
* @return bool
*/
public static function updateRecords(&$optionValueId, $action)
{
//finding group name
$optionValue = new CRM_Core_DAO_OptionValue();
$optionValue->id = $optionValueId;
$optionValue->find(TRUE);
$optionGroup = new CRM_Core_DAO_OptionGroup();
$optionGroup->id = $optionValue->option_group_id;
$optionGroup->find(TRUE);
// group name
$gName = $optionGroup->name;
// value
$value = $optionValue->value;
// get the proper group name & affected field name
// todo: this may no longer be needed for individuals - check inputs
$individuals = array('gender' => 'gender_id', 'individual_prefix' => 'prefix_id', 'individual_suffix' => 'suffix_id', 'communication_style' => 'communication_style_id');
$contributions = array('payment_instrument' => 'payment_instrument_id');
$activities = array('activity_type' => 'activity_type_id');
$participant = array('participant_role' => 'role_id');
$eventType = array('event_type' => 'event_type_id');
$aclRole = array('acl_role' => 'acl_role_id');
$all = array_merge($individuals, $contributions, $activities, $participant, $eventType, $aclRole);
$fieldName = '';
foreach ($all as $name => $id) {
if ($gName == $name) {
$fieldName = $id;
}
}
if ($fieldName == '') {
return TRUE;
}
if (array_key_exists($gName, $individuals)) {
$contactDAO = new CRM_Contact_DAO_Contact();
$contactDAO->{$fieldName} = $value;
$contactDAO->find();
while ($contactDAO->fetch()) {
if ($action == CRM_Core_Action::DELETE) {
$contact = new CRM_Contact_DAO_Contact();
$contact->id = $contactDAO->id;
$contact->find(TRUE);
// make sure dates doesn't get reset
$contact->birth_date = CRM_Utils_Date::isoToMysql($contact->birth_date);
$contact->deceased_date = CRM_Utils_Date::isoToMysql($contact->deceased_date);
$contact->{$fieldName} = 'NULL';
$contact->save();
}
}
return TRUE;
}
if (array_key_exists($gName, $contributions)) {
$contribution = new CRM_Contribute_DAO_Contribution();
$contribution->{$fieldName} = $value;
$contribution->find();
while ($contribution->fetch()) {
if ($action == CRM_Core_Action::DELETE) {
$contribution->{$fieldName} = 'NULL';
$contribution->save();
}
}
return TRUE;
}
if (array_key_exists($gName, $activities)) {
$activity = new CRM_Activity_DAO_Activity();
$activity->{$fieldName} = $value;
$activity->find();
while ($activity->fetch()) {
$activity->delete();
}
return TRUE;
}
//delete participant role, type and event type option value
if (array_key_exists($gName, $participant)) {
$participantValue = new CRM_Event_DAO_Participant();
$participantValue->{$fieldName} = $value;
if ($participantValue->find(TRUE)) {
return FALSE;
}
return TRUE;
}
//delete event type option value
if (array_key_exists($gName, $eventType)) {
$event = new CRM_Event_DAO_Event();
$event->{$fieldName} = $value;
if ($event->find(TRUE)) {
return FALSE;
}
return TRUE;
}
//delete acl_role option value
if (array_key_exists($gName, $aclRole)) {
//.........这里部分代码省略.........
示例4: getContext
/**
* The function returns the component(Event/Contribute..), given the google-order-no and merchant-private-data
*
* @param xml $xml_response response send by google in xml format
* @param array $privateData contains the name value pair of <merchant-private-data>
* @param int $orderNo <order-total> send by google
* @param string $root root of xml-response
*
* @return array context of this call (test, module, payment processor id)
* @static
*/
static function getContext($xml_response, $privateData, $orderNo, $root)
{
require_once 'CRM/Contribute/DAO/Contribution.php';
$isTest = NULL;
$module = NULL;
if ($root == 'new-order-notification') {
$contributionID = $privateData['contributionID'];
$contribution = new CRM_Contribute_DAO_Contribution();
$contribution->id = $contributionID;
if (!$contribution->find(TRUE)) {
CRM_Core_Error::debug_log_message("Could not find contribution record: {$contributionID}");
echo "Failure: Could not find contribution record for {$contributionID}<p>";
exit;
}
if (stristr($contribution->source, ts('Online Contribution'))) {
$module = 'Contribute';
} elseif (stristr($contribution->source, ts('Online Event Registration'))) {
$module = 'Event';
}
$isTest = $contribution->is_test;
} else {
$contribution = new CRM_Contribute_DAO_Contribution();
$contribution->invoice_id = $orderNo;
if (!$contribution->find(TRUE)) {
CRM_Core_Error::debug_log_message("Could not find contribution record with invoice id: {$orderNo}");
echo "Failure: Could not find contribution record with invoice id: {$orderNo} <p>";
exit;
}
if (stristr($contribution->source, ts('Online Contribution'))) {
$module = 'Contribute';
} elseif (stristr($contribution->source, ts('Online Event Registration'))) {
$module = 'Event';
}
$isTest = $contribution->is_test;
}
if ($contribution->contribution_status_id == 1) {
//contribution already handled.
exit;
}
if ($module == 'Contribute') {
if (!$contribution->contribution_page_id) {
CRM_Core_Error::debug_log_message("Could not find contribution page for contribution record: {$contributionID}");
echo "Failure: Could not find contribution page for contribution record: {$contributionID}<p>";
exit;
}
// get the payment processor id from contribution page
$paymentProcessorID = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_ContributionPage', $contribution->contribution_page_id, 'payment_processor_id');
} else {
if ($root == 'new-order-notification') {
$eventID = $privateData['eventID'];
} else {
list($eventID, $participantID) = explode(CRM_Core_DAO::VALUE_SEPARATOR, $contribution->trxn_id);
}
if (!$eventID) {
CRM_Core_Error::debug_log_message("Could not find event ID");
echo "Failure: Could not find eventID<p>";
exit;
}
// we are in event mode
// make sure event exists and is valid
require_once 'CRM/Event/DAO/Event.php';
$event = new CRM_Event_DAO_Event();
$event->id = $eventID;
if (!$event->find(TRUE)) {
CRM_Core_Error::debug_log_message("Could not find event: {$eventID}");
echo "Failure: Could not find event: {$eventID}<p>";
exit;
}
// get the payment processor id from contribution page
$paymentProcessorID = $event->payment_processor_id;
}
if (!$paymentProcessorID) {
CRM_Core_Error::debug_log_message("Could not find payment processor for contribution record: {$contributionID}");
echo "Failure: Could not find payment processor for contribution record: {$contributionID}<p>";
exit;
}
return array($isTest, $module, $paymentProcessorID);
}
示例5: del
/**
* Function to delete the event
*
* @param int $id event id
*
* @access public
* @static
*
*/
static function del($id)
{
if (!$id) {
return null;
}
require_once 'CRM/Utils/Hook.php';
CRM_Utils_Hook::pre('delete', 'Event', $id, CRM_Core_DAO::$_nullArray);
require_once 'CRM/Core/BAO/CustomGroup.php';
$extends = array('event');
$groupTree = CRM_Core_BAO_CustomGroup::getGroupDetail(null, null, $extends);
foreach ($groupTree as $values) {
$query = "DELETE FROM " . $values['table_name'] . " WHERE entity_id = " . $id;
$params = array(1 => array($values['table_name'], 'string'), 2 => array($id, 'integer'));
CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray);
}
$dependencies = array('CRM_Core_DAO_OptionGroup' => array('name' => 'civicrm_event.amount.' . $id), 'CRM_Core_DAO_UFJoin' => array('entity_id' => $id, 'entity_table' => 'civicrm_event'));
require_once 'CRM/Core/BAO/OptionGroup.php';
foreach ($dependencies as $daoName => $values) {
require_once str_replace('_', DIRECTORY_SEPARATOR, $daoName) . ".php";
eval('$dao = new ' . $daoName . '( );');
if ($daoName == 'CRM_Core_DAO_OptionGroup') {
$dao->name = $values['name'];
$dao->find();
while ($dao->fetch()) {
CRM_Core_BAO_OptionGroup::del($dao->id);
}
} else {
foreach ($values as $fieldName => $fieldValue) {
$dao->{$fieldName} = $fieldValue;
}
$dao->find();
while ($dao->fetch()) {
$dao->delete();
}
}
}
require_once 'CRM/Core/OptionGroup.php';
CRM_Core_OptionGroup::deleteAssoc("civicrm_event.amount.{$id}.discount.%", "LIKE");
// price set cleanup, CRM-5527
require_once 'CRM/Price/BAO/Set.php';
CRM_Price_BAO_Set::removeFrom('civicrm_event', $id);
require_once 'CRM/Event/DAO/Event.php';
$event = new CRM_Event_DAO_Event();
$event->id = $id;
if ($event->find(true)) {
$locBlockId = $event->loc_block_id;
$result = $event->delete();
if (!is_null($locBlockId)) {
self::deleteEventLocBlock($locBlockId, $id);
}
CRM_Utils_Hook::post('delete', 'Event', $id, $event);
return $result;
}
return null;
}
示例6: del
/**
* Function to delete the event
*
* @param int $id event id
*
* @return mixed|null
* @access public
* @static
*
*/
static function del($id)
{
if (!$id) {
return NULL;
}
CRM_Utils_Hook::pre('delete', 'Event', $id, CRM_Core_DAO::$_nullArray);
$extends = array('event');
$groupTree = CRM_Core_BAO_CustomGroup::getGroupDetail(NULL, NULL, $extends);
foreach ($groupTree as $values) {
$query = "DELETE FROM " . $values['table_name'] . " WHERE entity_id = " . $id;
$params = array(1 => array($values['table_name'], 'string'), 2 => array($id, 'integer'));
CRM_Core_DAO::executeQuery($query, CRM_Core_DAO::$_nullArray);
}
// price set cleanup, CRM-5527
CRM_Price_BAO_PriceSet::removeFrom('civicrm_event', $id);
$event = new CRM_Event_DAO_Event();
$event->id = $id;
if ($event->find(TRUE)) {
$locBlockId = $event->loc_block_id;
$result = $event->delete();
if (!is_null($locBlockId)) {
self::deleteEventLocBlock($locBlockId, $id);
}
CRM_Utils_Hook::post('delete', 'Event', $id, $event);
return $result;
}
return NULL;
}
示例7: getContext
/**
*
* /**
* The function returns the component(Event/Contribute..)and whether it is Test or not
*
* @param array $privateData
* Contains the name-value pairs of transaction related data.
* @param int $orderNo
* <order-total> send by google.
*
* @return array
* context of this call (test, component, payment processor id)
*/
public static function getContext($privateData, $orderNo)
{
$component = NULL;
$isTest = NULL;
$contributionID = $privateData['contributionID'];
$contribution = new CRM_Contribute_DAO_Contribution();
$contribution->id = $contributionID;
if (!$contribution->find(TRUE)) {
CRM_Core_Error::debug_log_message("Could not find contribution record: {$contributionID}");
echo "Failure: Could not find contribution record for {$contributionID}<p>";
exit;
}
if (stristr($contribution->source, 'Online Contribution')) {
$component = 'contribute';
} elseif (stristr($contribution->source, 'Online Event Registration')) {
$component = 'event';
}
$isTest = $contribution->is_test;
$duplicateTransaction = 0;
if ($contribution->contribution_status_id == 1) {
//contribution already handled. (some processors do two notifications so this could be valid)
$duplicateTransaction = 1;
}
if ($component == 'contribute') {
if (!$contribution->contribution_page_id) {
CRM_Core_Error::debug_log_message("Could not find contribution page for contribution record: {$contributionID}");
echo "Failure: Could not find contribution page for contribution record: {$contributionID}<p>";
exit;
}
} else {
$eventID = $privateData['eventID'];
if (!$eventID) {
CRM_Core_Error::debug_log_message("Could not find event ID");
echo "Failure: Could not find eventID<p>";
exit;
}
// we are in event mode
// make sure event exists and is valid
$event = new CRM_Event_DAO_Event();
$event->id = $eventID;
if (!$event->find(TRUE)) {
CRM_Core_Error::debug_log_message("Could not find event: {$eventID}");
echo "Failure: Could not find event: {$eventID}<p>";
exit;
}
}
return array($isTest, $component, $duplicateTransaction);
}
示例8: deleteSet
/**
* Delete the price set.
*
* @param int $id
* Price Set id.
*
* @return bool
* false if fields exist for this set, true if the
* set could be deleted
*
*/
public static function deleteSet($id)
{
// remove from all inactive forms
$usedBy = self::getUsedBy($id);
if (isset($usedBy['civicrm_event'])) {
foreach ($usedBy['civicrm_event'] as $eventId => $unused) {
$eventDAO = new CRM_Event_DAO_Event();
$eventDAO->id = $eventId;
$eventDAO->find();
while ($eventDAO->fetch()) {
self::removeFrom('civicrm_event', $eventDAO->id);
}
}
}
// delete price fields
$priceField = new CRM_Price_DAO_PriceField();
$priceField->price_set_id = $id;
$priceField->find();
while ($priceField->fetch()) {
// delete options first
CRM_Price_BAO_PriceField::deleteField($priceField->id);
}
$set = new CRM_Price_DAO_PriceSet();
$set->id = $id;
return $set->delete();
}
示例9: testEventGeneration
/**
* Testing Event Generation through Entity Recursion.
*/
public function testEventGeneration()
{
//Event set initial params
$daoEvent = new CRM_Event_DAO_Event();
$daoEvent->title = 'Test event for Recurring Entity';
$daoEvent->event_type_id = 3;
$daoEvent->is_public = 1;
$daoEvent->start_date = date('YmdHis', strtotime('2014-10-26 10:30:00'));
$daoEvent->end_date = date('YmdHis', strtotime('2014-10-28 10:30:00'));
$daoEvent->created_date = date('YmdHis');
$daoEvent->is_active = 1;
$daoEvent->save();
$this->assertDBNotNull('CRM_Event_DAO_Event', $daoEvent->id, 'id', 'id', 'Check DB if event was created');
//Create tell a friend for event
$daoTellAFriend = new CRM_Friend_DAO_Friend();
$daoTellAFriend->entity_table = 'civicrm_event';
$daoTellAFriend->entity_id = $daoEvent->id;
// join with event
$daoTellAFriend->title = 'Testing tell a friend';
$daoTellAFriend->is_active = 1;
$daoTellAFriend->save();
$this->assertDBNotNull('CRM_Friend_DAO_Friend', $daoTellAFriend->id, 'id', 'id', 'Check DB if tell a friend was created');
// time to use recursion
$recursion = new CRM_Core_BAO_RecurringEntity();
$recursion->entity_id = $daoEvent->id;
$recursion->entity_table = 'civicrm_event';
$recursion->dateColumns = array('start_date');
$recursion->schedule = array('entity_value' => $daoEvent->id, 'start_action_date' => $daoEvent->start_date, 'start_action_condition' => 'monday', 'repetition_frequency_unit' => 'week', 'repetition_frequency_interval' => 1, 'start_action_offset' => 4, 'used_for' => 'event');
$recursion->linkedEntities = array(array('table' => 'civicrm_tell_friend', 'findCriteria' => array('entity_id' => $recursion->entity_id, 'entity_table' => 'civicrm_event'), 'linkedColumns' => array('entity_id'), 'isRecurringEntityRecord' => TRUE));
$interval = $recursion->getInterval($daoEvent->start_date, $daoEvent->end_date);
$recursion->intervalDateColumns = array('end_date' => $interval);
$generatedEntities = $recursion->generate();
$this->assertArrayHasKey('civicrm_event', $generatedEntities, 'Check if generatedEntities has civicrm_event as required key');
$expectedDates = array('20141027103000' => '20141029103000', '20141103103000' => '20141105103000', '20141110103000' => '20141112103000', '20141117103000' => '20141119103000');
$this->assertCount($recursion->schedule['start_action_offset'], $generatedEntities['civicrm_event'], 'Check if the number of events created are right');
$actualDates = array();
foreach ($generatedEntities['civicrm_event'] as $key => $val) {
$this->assertDBNotNull('CRM_Event_DAO_Event', $val, 'id', 'id', 'Check if repeating events were created.');
$startDate = date('YmdHis', strtotime(CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $val, 'start_date', 'id')));
$endDate = date('YmdHis', strtotime(CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $val, 'end_date', 'id')));
$actualDates[$startDate] = $endDate;
}
$resultDates = array_diff($actualDates, $expectedDates);
$this->assertEquals(0, count($resultDates), "Check if all the value in expected array matches actual array");
foreach ($generatedEntities['civicrm_tell_friend'] as $key => $val) {
$this->assertDBNotNull('CRM_Friend_DAO_Friend', $val, 'id', 'id', 'Check if friends were created in loop');
$this->assertDBCompareValue('CRM_Friend_DAO_Friend', $val, 'entity_id', 'id', $generatedEntities['civicrm_event'][$key], 'Check DB if correct FK was maintained with event for Friend');
}
$this->assertCount($recursion->schedule['start_action_offset'], $generatedEntities['civicrm_tell_friend'], 'Check if the number of tell a friend records are right');
// set mode to ALL, i.e any change to changing event affects all related recurring activities
$recursion->mode(3);
$daoEvent->find(TRUE);
$daoEvent->title = 'Event Changed';
$daoEvent->save();
// check if other events were affected
foreach ($generatedEntities['civicrm_event'] as $entityID) {
$this->assertDBCompareValue('CRM_Event_DAO_Event', $entityID, 'title', 'id', 'Event Changed', 'Check if title was updated');
}
end($generatedEntities['civicrm_event']);
$key = key($generatedEntities['civicrm_event']);
end($generatedEntities['civicrm_tell_friend']);
$actKey = key($generatedEntities['civicrm_tell_friend']);
//Check if both(event/tell a friend) keys are same
$this->assertEquals($key, $actKey, "Check if both the keys are same");
//Cross check event exists before we test deletion
$searchParamsEventBeforeDelete = array('entity_id' => $generatedEntities['civicrm_event'][$key], 'entity_table' => 'civicrm_event');
$expectedValuesEventBeforeDelete = array('entity_id' => $generatedEntities['civicrm_event'][$key], 'entity_table' => 'civicrm_event');
$this->assertDBCompareValues('CRM_Core_DAO_RecurringEntity', $searchParamsEventBeforeDelete, $expectedValuesEventBeforeDelete);
//Cross check event exists before we test deletion
$searchParamsTellAFriendBeforeDelete = array('entity_id' => $generatedEntities['civicrm_tell_friend'][$actKey], 'entity_table' => 'civicrm_tell_friend');
$expectedValuesTellAFriendBeforeDelete = array('entity_id' => $generatedEntities['civicrm_tell_friend'][$actKey], 'entity_table' => 'civicrm_tell_friend');
$this->assertDBCompareValues('CRM_Core_DAO_RecurringEntity', $searchParamsTellAFriendBeforeDelete, $expectedValuesTellAFriendBeforeDelete);
//Delete an event from recurring set and respective linked entity should be deleted from civicrm_recurring_entity_table
$daoRecurEvent = new CRM_Event_DAO_Event();
$daoRecurEvent->id = $generatedEntities['civicrm_event'][$key];
if ($daoRecurEvent->find(TRUE)) {
$daoRecurEvent->delete();
$daoRecurEvent->free();
}
//Check if this event_id was deleted
$this->assertDBNull('CRM_Event_DAO_Event', $generatedEntities['civicrm_event'][$key], 'id', 'id', 'Check if event was deleted');
$searchParams = array('entity_id' => $generatedEntities['civicrm_event'][$key], 'entity_table' => 'civicrm_event');
$compareParams = array();
$this->assertDBCompareValues('CRM_Core_DAO_RecurringEntity', $searchParams, $compareParams);
//Find tell_a_friend id if that was deleted from civicrm
$searchActParams = array('entity_id' => $generatedEntities['civicrm_tell_friend'][$actKey], 'entity_table' => 'civicrm_tell_friend');
$compareActParams = array();
$this->assertDBCompareValues('CRM_Friend_DAO_Friend', $searchActParams, $compareActParams);
}
示例10: getContext
/**
* The function returns whether this transaction has already been handled.
*
* @param string @component
* event/contribute
* @param array $post_data_exp
* Contains the name-value pairs of transaction response data.
* @param string $dt_trxn_id
* Transaction ID from DT response.
*
* @return boolean
* Has this transaction been handled? TRUE/FALSE.
* @static
*/
static function getContext($component, $post_data_exp, $dt_trxn_id)
{
require_once 'CRM/Contribute/DAO/Contribution.php';
$contributionID = $post_data_exp['contributionID'];
$contribution = new CRM_Contribute_DAO_Contribution();
$contribution->id = $contributionID;
/*
* @TODO For recurring?
* if(new contrib)
* $contribution->invoice_id = $dt_trxn_id;
*/
if (!$contribution->find(TRUE)) {
CRM_Core_Error::debug_log_message("Could not find contribution record: {$contributionID}");
print "Failure: Could not find contribution record for {$contributionID}<p>";
exit;
}
$duplicate_transaction = FALSE;
if ($contribution->contribution_status_id == 1) {
// Contribution already handled.
$duplicate_transaction = TRUE;
}
if ($component == 'contribute') {
if (empty($contribution->contribution_page_id)) {
CRM_Core_Error::debug_log_message("Could not find contribution page for contribution record: {$contributionID}");
print "Failure: Could not find contribution page for contribution record: {$contributionID}<p>";
exit;
}
} else {
if (!empty($post_data_exp['eventID'])) {
require_once 'CRM/Event/DAO/Event.php';
$eventID = $post_data_exp['eventID'];
// Make sure event exists and is valid.
$event = new CRM_Event_DAO_Event();
$event->id = $eventID;
if (!$event->find(TRUE)) {
CRM_Core_Error::debug_log_message("Could not find event: {$eventID}");
print "Failure: Could not find event: {$eventID}<p>";
exit;
}
} else {
CRM_Core_Error::debug_log_message("Could not find event ID");
print "Failure: Could not find eventID<p>";
exit;
}
}
return $duplicate_transaction;
}
示例11: getContext
/**
/**
* The function returns the component(Event/Contribute..)and whether it is Test or not
*
* @param array $privateData contains the name-value pairs of transaction related data
* @param int $orderNo <order-total> send by google
*
* @return array context of this call (test, component, payment processor id)
* @static
*/
static function getContext($privateData, $orderNo)
{
require_once 'CRM/Contribute/DAO/Contribution.php';
$component = null;
$isTest = null;
$contributionID = $privateData['contributionID'];
$contribution = new CRM_Contribute_DAO_Contribution();
$contribution->id = $contributionID;
if (!$contribution->find(true)) {
CRM_Core_Error::debug_log_message("Could not find contribution record: {$contributionID}");
echo "Failure: Could not find contribution record for {$contributionID}<p>";
exit;
}
if (stristr($contribution->source, 'Online Contribution')) {
$component = 'contribute';
} elseif (stristr($contribution->source, 'Online Event Registration')) {
$component = 'event';
}
$isTest = $contribution->is_test;
$duplicateTransaction = 0;
if ($contribution->contribution_status_id == 1) {
//contribution already handled. (some processors do two notifications so this could be valid)
$duplicateTransaction = 1;
}
if ($component == 'contribute') {
if (!$contribution->contribution_page_id) {
CRM_Core_Error::debug_log_message("Could not find contribution page for contribution record: {$contributionID}");
echo "Failure: Could not find contribution page for contribution record: {$contributionID}<p>";
exit;
}
// get the payment processor id from contribution page
$paymentProcessorID = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_ContributionPage', $contribution->contribution_page_id, 'payment_processor_id');
} else {
$eventID = $privateData['eventID'];
if (!$eventID) {
CRM_Core_Error::debug_log_message("Could not find event ID");
echo "Failure: Could not find eventID<p>";
exit;
}
// we are in event mode
// make sure event exists and is valid
require_once 'CRM/Event/DAO/Event.php';
$event = new CRM_Event_DAO_Event();
$event->id = $eventID;
if (!$event->find(true)) {
CRM_Core_Error::debug_log_message("Could not find event: {$eventID}");
echo "Failure: Could not find event: {$eventID}<p>";
exit;
}
// get the payment processor id from contribution page
$paymentProcessorID = $event->payment_processor_id;
}
if (!$paymentProcessorID) {
CRM_Core_Error::debug_log_message("Could not find payment processor for contribution record: {$contributionID}");
echo "Failure: Could not find payment processor for contribution record: {$contributionID}<p>";
exit;
}
return array($isTest, $component, $paymentProcessorID, $duplicateTransaction);
}
示例12: loadObjects
function loadObjects(&$input, &$ids, &$objects, $required)
{
$contribution =& $objects['contribution'];
$objects['membership'] = null;
$objects['contributionRecur'] = null;
$objects['contributionType'] = null;
$objects['event'] = null;
$objects['participant'] = null;
$objects['pledge_payment'] = null;
require_once 'CRM/Contribute/DAO/ContributionType.php';
$contributionType = new CRM_Contribute_DAO_ContributionType();
$contributionType->id = $contribution->contribution_type_id;
if (!$contributionType->find(true)) {
CRM_Core_Error::debug_log_message("Could not find contribution type record: {$contributionTypeID}");
echo "Failure: Could not find contribution type record for {$contributionTypeID}<p>";
return false;
}
$objects['contributionType'] = $contributionType;
$paymentProcessorID = null;
if ($input['component'] == 'contribute') {
// retrieve the other optional objects first so
// stuff down the line can use this info and do things
// CRM-6056
if (isset($ids['membership'])) {
require_once 'CRM/Member/DAO/Membership.php';
$membership = new CRM_Member_DAO_Membership();
$membership->id = $ids['membership'];
if (!$membership->find(true)) {
CRM_Core_Error::debug_log_message("Could not find membership record: {$membershipID}");
echo "Failure: Could not find membership record: {$membershipID}<p>";
return false;
}
$membership->join_date = CRM_Utils_Date::isoToMysql($membership->join_date);
$membership->start_date = CRM_Utils_Date::isoToMysql($membership->start_date);
$membership->end_date = CRM_Utils_Date::isoToMysql($membership->end_date);
$membership->reminder_date = CRM_Utils_Date::isoToMysql($membership->reminder_date);
$objects['membership'] =& $membership;
}
if (isset($ids['pledge_payment'])) {
require_once 'CRM/Pledge/DAO/Payment.php';
$objects['pledge_payment'] = array();
foreach ($ids['pledge_payment'] as $key => $paymentID) {
$payment = new CRM_Pledge_DAO_Payment();
$payment->id = $paymentID;
if (!$payment->find(true)) {
CRM_Core_Error::debug_log_message("Could not find pledge payment record: {$pledge_paymentID}");
echo "Failure: Could not find pledge payment record: {$pledge_paymentID}<p>";
return false;
}
$objects['pledge_payment'][] = $payment;
}
}
if (isset($ids['contributionRecur'])) {
require_once 'CRM/Contribute/DAO/ContributionRecur.php';
$recur = new CRM_Contribute_DAO_ContributionRecur();
$recur->id = $ids['contributionRecur'];
if (!$recur->find(true)) {
CRM_Core_Error::debug_log_message("Could not find recur record: {$contributionRecurID}");
echo "Failure: Could not find recur record: {$contributionRecurID}<p>";
return false;
}
$objects['contributionRecur'] =& $recur;
//get payment processor id from recur object.
$paymentProcessorID = $recur->payment_processor_id;
}
//for normal contribution get the payment processor id.
if (!$paymentProcessorID) {
if ($contribution->contribution_page_id) {
// get the payment processor id from contribution page
$paymentProcessorID = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_ContributionPage', $contribution->contribution_page_id, 'payment_processor_id');
}
//fail to load payment processor id.
if (!$paymentProcessorID && !$contribution->contribution_page_id && !CRM_Utils_Array::value('pledge_payment', $ids)) {
$loadObjectSuccess = true;
if ($required) {
$loadObjectSuccess = false;
CRM_Core_Error::debug_log_message("Could not find contribution page for contribution record: {$contributionID}");
echo "Failure: Could not find contribution page for contribution record: {$contributionID}<p>";
}
return $loadObjectSuccess;
}
}
} else {
// we are in event mode
// make sure event exists and is valid
require_once 'CRM/Event/DAO/Event.php';
$event = new CRM_Event_DAO_Event();
$event->id = $ids['event'];
if ($ids['event'] && !$event->find(true)) {
CRM_Core_Error::debug_log_message("Could not find event: {$eventID}");
echo "Failure: Could not find event: {$eventID}<p>";
return false;
}
$objects['event'] =& $event;
require_once 'CRM/Event/DAO/Participant.php';
$participant = new CRM_Event_DAO_Participant();
$participant->id = $ids['participant'];
if ($ids['participant'] && !$participant->find(true)) {
CRM_Core_Error::debug_log_message("Could not find participant: {$participantID}");
echo "Failure: Could not find participant: {$participantID}<p>";
//.........这里部分代码省略.........