<?php require_once('../Connections/YBDB.php'); require_once('../Connections/database_functions.php'); $page_individual_history_log = INDIVIDUAL_HISTORY_LOG; // Needs to volunteer at least this amount of defined hours before being considered a member $membership_hours = MEMBERSHIP_HOURS; $membership_days = MEMBERSHIP_DAYS; $purchased_membership_days = PURCHASED_MEMBERSHIP_DAYS; mysql_select_db($database_YBDB, $YBDB); $today = date("Y/m/d"); $year_ago = date("Y/m/d", strtotime("$today -1 year")); $today_date = new DateTime('now'); $past = new DateTime($year_ago); $interval = $today_date->diff($past); $chosen_date = $today; $days_range1 = $interval->days; $days_range2 = 0; // Do some ajax stuff if (isset($_POST['range1'])) { $range1 = $_POST['range1']; $range2 = $_POST['range2']; $choice1 = new DateTime($range1); $interval = $today_date->diff($choice1); $days_range1 = $interval->days; $choice2 = new DateTime($range2); $interval = $today_date->diff($choice2); $days_range2 = $interval->days; $year_ago = $range1; $today = $range2; } /* SELECT contact_id, full_name, email, phone, sort_visits, sort_hours FROM (SELECT contacts.contact_id, CONCAT(last_name, ', ', first_name, ' ',middle_initial) AS full_name, contacts.email AS email, contacts.phone AS phone, COUNT(shop_hours.contact_id) as sort_visits, ROUND(SUM(HOUR(SUBTIME( TIME(time_out), TIME(time_in))) + MINUTE(SUBTIME( TIME(time_out), TIME(time_in)))/60)) AS sort_hours FROM shop_hours LEFT JOIN contacts ON shop_hours.contact_id = contacts.contact_id LEFT JOIN shop_user_roles ON shop_hours.shop_user_role = shop_user_roles.shop_user_role_id WHERE (time_in > DATE_SUB(CURDATE(),INTERVAL 12 MONTH)) AND shop_user_roles.volunteer = 1 GROUP BY contact_id) AS members WHERE sort_hours >= 8 AND sort_visits >= 2 GROUP by contact_id ORDER by sort_hours DESC, sort_visits DESC; SELECT contacts.contact_id, CONCAT(last_name, ', ', first_name, ' ',middle_initial) AS full_name, CONCAT(first_name, ' ', last_name) AS normal_full_name, contacts.email AS email, contacts.phone AS phone, transaction_log.date as sort_hours FROM transaction_log LEFT JOIN contacts ON transaction_log.sold_to = contacts.contact_id WHERE (SUBSTRING_INDEX(date, ' ', 1) >= DATE_SUB(CURDATE(),INTERVAL 365 DAY) AND SUBSTRING_INDEX(date, ' ', 1) <= DATE_SUB(CURDATE(), INTERVAL 0 DAY)) AND (transaction_type="Memberships" AND paid=1); */ // Membership via volunteering $query = "SELECT contact_id, full_name, normal_full_name, email, phone, sort_visits, sort_hours FROM (SELECT contacts.contact_id, CONCAT(last_name, ', ', first_name, ' ',middle_initial) AS full_name, CONCAT(first_name, ' ', last_name) AS normal_full_name, contacts.email AS email, contacts.phone AS phone, COUNT(shop_hours.contact_id) as sort_visits, ROUND(SUM(HOUR(SUBTIME( TIME(time_out), TIME(time_in))) + MINUTE(SUBTIME( TIME(time_out), TIME(time_in)))/60)) AS sort_hours FROM shop_hours LEFT JOIN contacts ON shop_hours.contact_id = contacts.contact_id LEFT JOIN shop_user_roles ON shop_hours.shop_user_role = shop_user_roles.shop_user_role_id WHERE (SUBSTRING_INDEX(time_in, ' ', 1) >= DATE_SUB(CURDATE(),INTERVAL $days_range1 DAY) AND SUBSTRING_INDEX(time_in, ' ', 1) <= DATE_SUB(CURDATE(), INTERVAL $days_range2 DAY)) AND shop_user_roles.volunteer = 1 GROUP BY contact_id) AS members WHERE sort_hours >= $membership_hours AND sort_visits >= $membership_days GROUP by contact_id ORDER by sort_hours DESC, sort_visits DESC;"; $members = mysql_query($query, $YBDB) or die(mysql_error()); $num_member_rows = mysql_num_rows($members); // Purchased Membership $purchase_query = "SELECT contacts.contact_id, CONCAT(last_name, ', ', first_name, ' ',middle_initial) AS full_name, CONCAT(first_name, ' ', last_name) AS normal_full_name, contacts.email AS email, contacts.phone AS phone, MAX(transaction_log.date) AS sort_hours, MAX(SUBSTRING_INDEX(DATE_ADD(date, INTERVAL 365 DAY), ' ', 1)) AS expiration_date FROM transaction_log LEFT JOIN contacts ON transaction_log.sold_to = contacts.contact_id WHERE SUBSTRING_INDEX(date, ' ', 1) <= DATE_ADD(date, INTERVAL 365 DAY) AND (transaction_type='Memberships' AND paid=1) GROUP BY full_name;"; $purchased_membership = mysql_query($purchase_query, $YBDB) or die(mysql_error()); while ($result = mysql_fetch_assoc($purchased_membership)) { $purchased_membership_dictionary[$result['contact_id']] = $result; } ?> <?php include("../include_header_stats.html"); ?> <table class="stats"> <tr valign="top"> </tr> <tr> <td> <table border="1" cellpadding="1" cellspacing="0"> <tr bgcolor="#99CC33" class="yb_standardCENTERbold"> <td colspan="4" height="25">Metrics [<?php echo ">= $membership_days days and >= $membership_hours hours" ?>]</td> </tr> <tr valign="top" bgcolor="#99CC33" class="yb_standardCENTER"> <td width="relative"><?php echo $num_member_rows; ?> Volunteers<br /></td> <td width="relative">Visits<br /></td> <td width="relative">Hours<br /></td> </tr> <?php $purchased = mysql_fetch_assoc($purchased_membership); while ($result = mysql_fetch_assoc($members)) { //do { ?> <tr> <?php if( isset($purchased_membership_dictionary[$result['contact_id']]) ) { ?> <td class="yb_standardRIGHTred"><a href="<?php echo "{$page_individual_history_log}?contact_id=" . $result['contact_id']; ?>"><?php echo $result['full_name']; ?></a><br \>(paid until <?php echo $purchased_membership_dictionary[$result['contact_id']]['expiration_date']; ?>)</td> <?php } else { ?> <td class="yb_standardRIGHTred"><a href="<?php echo "{$page_individual_history_log}?contact_id=" . $result['contact_id']; ?>"><?php echo $result['full_name']; ?></a></td> <?php } ?> <td class="yb_standardRIGHT"><?php echo number_format($result['sort_visits'],0); ?></td> <td class="yb_standardRIGHT"><?php echo number_format($result['sort_hours'],0); ?></td> </tr> <?php } // end WHILE count of recordset ?> </table> </td> </tr> </table> <br \><br \> <div id="range_input">Date Range: <?php echo "$year_ago - $today"; ?></div> <div id="range"></div> <br \> <form method="post" name="range_query"> <input id="members" type="submit" value="Submit" tabindex="14"> </form> <h3>Contact Information</h3> <b>Email Address:</b> <?php mysql_free_result($members); $members = mysql_query($query, $YBDB) or die(mysql_error()); $c = 1; while ($result = mysql_fetch_assoc($members)) { if ($result['email']) { if ($c < $num_member_rows) { echo $result['normal_full_name'] . " <" . $result['email'] . ">, "; } else { echo $result['normal_full_name'] . " <" . $result['email'] . ">"; } } $c++; ?> <?php } // end WHILE count of recordset ?> <p></p> <b>Phone Numbers for Members Without Email Addresses</b><br \> <?php mysql_free_result($members); $members = mysql_query($query, $YBDB) or die(mysql_error()); $c = 1; while ($result = mysql_fetch_assoc($members)) { if ( $result['phone'] && !$result['email'] ) { if ($c < $num_member_rows) { echo $result['normal_full_name'] . ", " . $result['phone'] . "<br />"; } else { echo $result['normal_full_name'] . ", " . $result['phone']; } } $c++; ?> <?php } // end WHILE count of recordset ?> <p></p> <u><b>CSV</b></u><br \> <b>Name, Phone, Email</b><br \> <?php mysql_free_result($members); $members = mysql_query($query, $YBDB) or die(mysql_error()); $c = 1; while ($result = mysql_fetch_assoc($members)) { if ($c < $num_member_rows) { echo $result['normal_full_name'] . ", " . $result['phone'] . ", ". $result['email'] . "<br \>"; } else { echo $result['normal_full_name'] . ", " . $result['phone'] . ", ". $result['email']; } $c++; ?> <?php } // end WHILE count of recordset ?> <?php include("../include_footer.html"); ?> <?php mysql_free_result($members); ?>