Table of Contents

Context

The Conference Participant Report is a custom report that we believe was built using the Participant Detail Report as a base. What it effectively does is adds all price fields in price sets that match a certain naming convention such as civicrm_price_set.title LIKE 'conference%2019%' example:

//LCD 1902 limit to events and conferences
            $query = "
              SELECT id
              FROM civicrm_price_set
              WHERE is_active = 1
                AND extends LIKE '%1%'
                AND title LIKE 'conference%2018%'
";

Currently the Filters and display Columns are similar to the Participant Detail report, and the report can be configured to filter on certain events, among other things. See the Current Solution section for more details.

What is this report used for?

Several Chorus America staff members run this report, export the data, and then do various things with it once exported. The use cases are varied and many, below are a few examples:

  • One CA staffer runs this report weekly and uses it to build a weekly report to the rest of Chorus America staff. He also tracks the registration flow week over week, using this report to populate a master spreadsheet. The data that is gleaned from the report is massaged after it is exported, it is not likely that a report could be built in CiviCRM to fulfill how this staffer wants to track this data.
  • Ed uses this report to create a mail-merge of sorts to make name badges for the conference. He also needs some of the price field info, as there is a "bunch of logic in the name badges" (for instance) that cannot be currently replicated in Civi to print badges straight out of Civi.
  • Ed also uses an export of this report to print envelopes with a complete listing of all the conference options participants have chosen.

Current Solution

  • The current implementation is a custom report at: /sites/default/files/civicrm/custom_php/CRM/Report/Form/Event/CustomParticipantListing.php
  • The code is a bewildering multi-dimensional array... but pretty straightforward implementation.
  • Most columns are not configurable by user.
  • Group-by Participant.
  • Example Hard-code: "Participant Fee Level" -
//LCD 1902 limit to events and conferences
            $query = "
              SELECT id
              FROM civicrm_price_set
              WHERE is_active = 1
                AND extends LIKE '%1%'
                AND title LIKE 'conference%2018%'
";
  • Events are selectable as a report Filter.

What are the problems with the current implementation?

  • The report is slow to load, presumably because of all the extra price fields being added to the report.
  • The price fields are not configurable for display in the "Columns" tab of the report. Since all staff members export the data to do what they need to with it, it's workable so far but would be much improved if the price fields to be displayed could be customized for each use case.
  • There is a problem with exporting as CSV: special characters get botched. Export as Excel extension is problematic as it drops data from the export. Note: Addressing this issue is out of scope for this project, for now.
  • There are new price sets and fields configured for each new conference every year, and so the hard-coded $query needs to be updated by a developer each year to look for the new price sets.
  • Each price field in the report display manifests in two fields: the quantity for that field, and the total price for that field. The quantity is not of particular interest to Chorus America staff, as it's always binary: 0 or 1 quantity for that conference option.
  • There are a bunch of extra email fields at the end of the columns (after price set fields) that are unnecessary.
  • Price set fields can't be chosen in field mappings, which is why this has been historically done as a report with these added price fields tacked on.

Original Client Request

From Feb 13 on-site notes by MZD:

(URGENT) Report instance 82 - Event Report; wants some customizations, especially making fields configurable. What is the process for the annual update to which event is displayed? Can all price-fields be added dynamically?

Feature Directory

What is a Project Lab Feature Context?


Updated: 3-21-2019