'Pending from approval' => ['Registered', 'Cancelled'],
];
- /**
- */
- public function __construct() {
- parent::__construct();
- }
-
/**
* Takes an associative array and creates a participant object.
*
* @param bool $checkPermission
* Is this a permissioned retrieval?
*
+ * @deprecated only called from event search, but without most of the details
+ * returned. Event search should call stop using this & get the metadata
+ * a better way.
+ *
* @return array
* array of importable Fields
*/
// Split status and status id into 2 fields
// Fixme: it would be better to leave as 1 field and intelligently handle both during import
+ // note import undoes this - it is still here in case the search usage uses it.
$participantStatus = [
'participant_status' => [
'title' => ts('Participant Status'),
// Split role and role id into 2 fields
// Fixme: it would be better to leave as 1 field and intelligently handle both during import
+ // note import undoes this - it is still here in case the search usage uses it.
$participantRole = [
'participant_role' => [
'title' => ts('Participant Role'),
*
* @param array $defaults
* @param string $property
- * @param string $lookup
+ * @param string[] $lookup
* @param bool $reverse
*
* @return bool
}
//thumb rule is if we triggering primary participant need to triggered additional
- $allParticipantIds = $primaryANDAdditonalIds = [];
+ $allParticipantIds = $primaryANDAdditionalIds = [];
foreach ($participantIds as $id) {
$allParticipantIds[] = $id;
if (self::isPrimaryParticipant($id)) {
}
if (!empty($additionalIds)) {
$allParticipantIds = array_merge($allParticipantIds, $additionalIds);
- $primaryANDAdditonalIds[$id] = $additionalIds;
+ $primaryANDAdditionalIds[$id] = $additionalIds;
}
}
}
}
//check is it primary and has additional.
- if (array_key_exists($participantId, $primaryANDAdditonalIds)) {
- foreach ($primaryANDAdditonalIds[$participantId] as $additionalId) {
+ if (array_key_exists($participantId, $primaryANDAdditionalIds)) {
+ foreach ($primaryANDAdditionalIds[$participantId] as $additionalId) {
if ($emailType) {
$mail = self::sendTransitionParticipantMail($additionalId,
) {
return $mailSent;
}
+
$toEmail = $contactDetails['email'] ?? NULL;
if ($toEmail) {
*
* @return string
*/
- public function updateStatusMessage($participantId, $statusChangeTo, $fromStatusId) {
+ public static function updateStatusMessage($participantId, $statusChangeTo, $fromStatusId) {
$statusMsg = NULL;
$results = self::transitionParticipants([$participantId],
$statusChangeTo, $fromStatusId, TRUE
* @param int $newStatusId
* New status.
*
- * @return bool
- * true if allowed
+ * @return array
*/
public static function getValidAdditionalIds($participantId, $oldStatusId, $newStatusId) {
$details['ineligible_message'] = ts('This event registration can not be transferred or cancelled. Contact the event organizer if you have questions.');
return $details;
}
- //verify participant status is still Registered
- if ($details['status'] != 'Registered') {
+ // Verify participant status is one that can be self-cancelled
+ if (!in_array($details['status'], ['Registered', 'Pending from pay later', 'On waitlist'])) {
$details['eligible'] = FALSE;
- $details['ineligible_message'] = "You cannot transfer or cancel your registration for " . $eventTitle . ' as you are not currently registered for this event.';
+ $details['ineligible_message'] = ts('You cannot transfer or cancel your registration for %1 as you are not currently registered for this event.', [1 => $eventTitle]);
return $details;
}
// Determine if it's too late to self-service cancel/transfer.