public function process_get($member_id, $subquery) { switch ($member_id) { case "search": return search_member_by_email($subquery); break; case "daily": $member_ids = get_all_member_ids(); foreach ($member_ids as $member_id) { $official_dob = get_team_member_official_dob_by_member_id($member_id); $d = date('m-d', strtotime($official_dob)); $c = date('m-d'); if ($d == $c) { $members = get_other_members_for_team_member($member_id); $this->member_id = $member_id; $this->official_dob = get_team_member_official_dob_by_member_id($member_id); $this->email = get_team_member_email_by_id($member_id); $this->first_name = get_team_member_name_by_team_member_id($member_id); $this->birthday_members = $members; send_daily_birthday_alert($this); } } break; case "weekly": $admin_ids = get_all_admin_ids(); foreach ($admin_ids as $member_id) { if (count(get_upcoming_birthdays($member_id)) > 0) { $members = get_upcoming_birthdays($member_id); $this->member_id = $member_id; $this->email = get_team_member_email_by_id($member_id); $this->first_name = get_team_member_name_by_team_member_id($member_id); $this->birthday_members = $members; send_weekly_birthday_alert($this); } } break; } switch ($subquery) { case "celebrations": $team_member_celebration = get_celebrations_by_member_id($member_id); return $team_member_celebration; break; case "transactions": $transactions = get_member_transactions_by_member_id($member_id); return $transactions; break; case "upcoming-birthdays": $members = get_upcoming_birthdays($member_id); return $members; break; default: $team_members = get_member_details_by_member_id($member_id); return $team_members; break; } }
function get_upcoming_birthdays($member_id) { $current_month = date('m'); $current_date = date('d'); $connection = connect(); $members = get_other_members_for_team_member($member_id); $sql = "SELECT member_id, first_name,last_name,official_dob FROM team_members WHERE member_id in (" . implode(',', $members) . ") and ((Month(official_dob) = " . $current_month . " and Day(official_dob) >= " . $current_date . ") OR Month(official_dob) = " . ($current_month + 1) . ")"; $result = $connection->query($sql); disconnect($connection); $member_details = array(); if ($result->num_rows > 0) { while ($row = $result->fetch_assoc()) { $member_detail = array('id' => $row["member_id"], 'first_name' => $row["first_name"], 'last_name' => $row["last_name"], 'dob' => $row["official_dob"]); $member_details[] = $member_detail; } } usort($member_details, function ($a, $b) { return strcmp(date("m-d", strtotime($a['dob'])), date("m-d", strtotime($b['dob']))); }); return $member_details; }