| Server IP : 172.67.201.108 / Your IP : 216.73.216.11 Web Server : Apache/2.4.68 (Amazon Linux) OpenSSL/3.5.5 System : Linux ip-172-31-69-123.ec2.internal 6.1.176-223.369.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Jul 24 13:34:27 UTC 2026 x86_64 User : ec2-user ( 1000) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/tgnewdev/admin/rpt/ |
Upload File : |
<?php include('mod/_mod_security.php'); ?>
<?php
$criteria = '';
$filter = '';
$sql = "SELECT e.*
FROM events e
WHERE e.id = :id
";
$stmt = $db->prepare($sql);
$stmt->execute([
':id' => $_GET['event_id'],
]);
$row_event = $stmt->fetch(PDO::FETCH_OBJ);
if (!$row_event) :
echo 'Invalid event ID!';
exit();
endif;
$filter .= '<br> Event Name: ' . $row_event->name;
$filter .= '<br> Start Time: ' . nzdate_display_datetime($row_event->start_time_local);
$criteria .= ' AND e.id = ' . nz($_GET['event_id'], '0');
switch ($_POST['tea_sort_1'] ?? '') :
case 'First Name':
$sort_rank = 'p.cust_first_name ASC';
$filter .= '<br> Primary Sort/Rank: ' . 'First Name';
break;
case 'Last Name':
$sort_rank = 'p.cust_last_name ASC';
$filter .= '<br> Primary Sort/Rank: ' . 'Last Name';
break;
case 'Ticket Tier':
$sort_rank = 'p.sku_description ASC';
$filter .= '<br> Primary Sort/Rank: ' . 'Ticket Tier';
break;
default:
$sort_rank = 'p.cust_first_name ASC';
$filter .= '<br> Primary Sort/Rank: ' . 'First Name';
endswitch;
switch ($_POST['tea_sort_2'] ?? '') :
case 'First Name':
$sort_rank .= ', p.cust_first_name ASC';
$filter .= '<br> Secondary Sort/Rank: ' . 'First Name';
break;
case 'Last Name':
$sort_rank .= ', p.cust_last_name ASC';
$filter .= '<br> Secondary Sort/Rank: ' . 'Last Name';
break;
case 'Ticket Tier':
$sort_rank .= ', p.sku_description ASC';
$filter .= '<br> Secondary Sort/Rank: ' . 'Ticket Tier';
break;
default:
$sort_rank .= ', p.cust_last_name ASC';
$filter .= '<br> Secondary Sort/Rank: ' . 'Last Name';
endswitch;
switch ($_POST['tea_sort_3'] ?? '') :
case 'First Name':
$sort_rank .= ', p.cust_first_name ASC';
$filter .= '<br> Tertiary Sort/Rank: ' . 'First Name';
break;
case 'Last Name':
$sort_rank .= ', p.cust_last_name ASC';
$filter .= '<br> Tertiary Sort/Rank: ' . 'Last Name';
break;
case 'Ticket Tier':
$sort_rank .= ', p.sku_description ASC';
$filter .= '<br> Tertiary Sort/Rank: ' . 'Ticket Tier';
break;
default:
$sort_rank .= ', p.sku_description ASC';
$filter .= '<br> Tertiary Sort/Rank: ' . 'Ticket Tier';
endswitch;
$slug_start_position = strlen(APP_BASE_USER_SITE_SECURE . 'events/') + 1;
$sql = "SELECT
e.id,
e.name,
e.slug,
e.start_time_local,
e.location_id,
p.cust_first_name,
p.cust_last_name,
p.cust_email,
p.cust_street_1,
p.cust_street_2,
p.cust_city,
p.cust_state,
p.cust_zip,
p.cust_phone,
p.sku_description,
p.qty,
p.refunded
FROM events e
JOIN payments p ON (p.reference_id = e.id AND p.reference_type = 'event')
WHERE e.status = 1
$criteria
ORDER BY $sort_rank
";
//error_log($sql);
$result = $db->query($sql) or die('Database Error!');
$row_count = $result->rowCount();
if ($row_count <= 0) :
echo 'No data for report!';
exit();
endif;
$rpt = get_report_class($_POST['output_format']);
$rpt->set_report_title('Ticketed Event Attendees');
$rpt->report_start();
$rpt->header_start();
if (!empty($filter)) :
$rpt->header_row_start();
$rpt->header_cell_add('Filters: '.$filter, ['colspan'=>'13', 'class'=>'large']);
$rpt->header_row_end();
endif;
$rpt->header_row_start();
$rpt->header_cell_add('First Name', ['width'=>'120']);
$rpt->header_cell_add('Last Name', ['width'=>'120']);
$rpt->header_cell_add('Ticket Tier', ['width'=>'120']);
$rpt->header_cell_add('Qty', ['width'=>'65']);
$rpt->header_cell_add('Qty Att.', ['width'=>'65']);
$rpt->header_cell_add('Refunded', ['width'=>'65']);
$rpt->header_cell_add('Email', ['width'=>'120']);
$rpt->header_cell_add('Phone', ['width'=>'120']);
$rpt->header_cell_add('Address', ['width'=>'120']);
$rpt->header_cell_add('Address 2', ['width'=>'120']);
$rpt->header_cell_add('City', ['width'=>'120']);
$rpt->header_cell_add('State', ['width'=>'120']);
$rpt->header_cell_add('Zip', ['width'=>'120']);
$rpt->header_row_end();
$rpt->header_end();
$rpt->data_start();
$rows = $result->fetchAll(PDO::FETCH_OBJ);
$total_attendees = array_sum(array_column($rows, 'qty'));
$rpt->data_row_start();
$rpt->data_cell_add('Total attendees', ['style' => 'font-size:125%; font-weight:bold;']);
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add($total_attendees, ['align'=>'right', 'style' => 'font-size:125%; font-weight:bold;']);
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_row_end();
foreach ($rows as $row) :
$rpt->data_row_start();
$rpt->data_cell_add($row->cust_first_name);
$rpt->data_cell_add($row->cust_last_name);
$rpt->data_cell_add($row->sku_description);
$rpt->data_cell_add($row->qty, ['align'=>'right']);
$rpt->data_cell_add('');
$rpt->data_cell_add($row->refunded === 1 ? 'REFUNDED' : '');
$rpt->data_cell_add($row->cust_email);
$rpt->data_cell_add($row->cust_phone);
$rpt->data_cell_add($row->cust_street_1);
$rpt->data_cell_add($row->cust_street_2);
$rpt->data_cell_add($row->cust_city);
$rpt->data_cell_add($row->cust_state);
$rpt->data_cell_add($row->cust_zip);
$rpt->data_row_end();
endforeach;
$rpt->data_row_start();
$rpt->data_cell_add('Total attendees', ['style' => 'font-size:125%; font-weight:bold;']);
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add($total_attendees, ['align'=>'right', 'style' => 'font-size:125%; font-weight:bold;']);
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_cell_add('');
$rpt->data_row_end();
$rpt->data_end();
$rpt->report_end();
$rpt->output_report();