private $query_nomination_process_gift_receipt;
private $query_nomination_process_adhoc;
+ private $query_discussion_process_old_membership;
private $query_discussion_process_donations;
- private $query_discussion_process_gift_receipt;
private $query_discussion_process_adhoc;
/**
private $discussion_process_contrib_end_date;
private $discussion_process_adhoc_access_group_id;
private $discussion_process_adhoc_no_access_group_id;
+ private $discussion_process_donation_amount;
/**
* Constructor for this authentication source.
'membership_monthly_rate',
'student_membership_monthly_rate',
+ 'query_discussion_process_old_membership',
'query_discussion_process_donations',
- 'query_discussion_process_gift_receipt',
'query_discussion_process_adhoc',
'discussion_process_active',
'discussion_process_contrib_start_date',
'discussion_process_contrib_end_date',
'discussion_process_adhoc_access_group_id',
- 'discussion_process_adhoc_no_access_group_id',]
+ 'discussion_process_adhoc_no_access_group_id',
+ 'discussion_process_donation_amount',]
as $param) {
if (!array_key_exists($param, $config)) {
return $this->query_db($query_name, $parameters);
};
+ $old_membership_query = $donation_query;
+
$compare_res = function ($result, $amount) {
foreach ($result[0] as $key => $value) {
if (intval($value) >= $amount) {
return false;
};
+ // set dates here, used by helper functions below
+ $nomination_process_start_date = $this->nomination_process_contrib_start_date;
+ $nomination_process_end_date = $this->nomination_process_contrib_end_date;
+ $discussion_process_start_date = $this->discussion_process_contrib_start_date;
+ $discussion_process_end_date = $this->discussion_process_contrib_end_date;
+
+
// looks for memberships / comparable donations in time window. also
// looks for a membership or donation (included as a param) that
// occurred up to a year before, and that would have carried over into
// the person was, or would have been, a member during the configured
// time window.
$nomination_process_analyze_history = function ($selective_donations_history)
- use ($start_date, $end_date) {
+ use ($nomination_process_start_date, $nomination_process_end_date) {
$eligible = false;
- $start_date_obj = new \DateTime($start_date);
- $end_date_obj = new \DateTime($end_date);
+ $start_date_obj = new \DateTime($nomination_process_start_date);
+ $end_date_obj = new \DateTime($nomination_process_end_date);
foreach ($selective_donations_history as $row) {
};
$discussion_process_analyze_history = function ($selective_donations_history)
- use ($start_date, $end_date) {
+ use ($discussion_process_start_date, $discussion_process_end_date) {
$eligible = false;
$total = 0;
- $start_date_obj = new \DateTime($start_date);
- $end_date_obj = new \DateTime($end_date);
+ $start_date_obj = new \DateTime($discussion_process_start_date);
+ $end_date_obj = new \DateTime($discussion_process_end_date);
foreach ($selective_donations_history as $row) {
$member_type_id = $row['member_type_id'];
$receive_date_obj = new \DateTime($row['receive_date']);
- if (($receive_date_obj > $start_date_obj) && ($receive_date < $end_date_obj)) {
+ if (($receive_date_obj > $start_date_obj) && ($receive_date_obj < $end_date_obj)) {
$total += $amount;
}
}
- if ($total >= 120) {
+ if ($total >= $this->discussion_process_donation_amount) {
return true;
} else {
return false;
// nomination form participation specific checks
//
- $start_date = $this->nomination_process_contrib_start_date;
- $end_date = $this->nomination_process_contrib_end_date;
-
- $donation_params = ['start_date' => $start_date, 'end_date' => $end_date];
- $gift_member_params = ['start_date' => $start_date, 'end_date' => $end_date, 'gift_redeem_page_id' => intval($this->gift_redeem_page_id)];
+ $donation_params = ['start_date' => $nomination_process_start_date, 'end_date' => $nomination_process_end_date];
+ $gift_member_params = ['start_date' => $nomination_process_start_date, 'end_date' => $nomination_process_end_date, 'gift_redeem_page_id' => intval($this->gift_redeem_page_id)];
$adhoc_params = ['adhoc_access_group_id' => intval($this->nomination_process_adhoc_access_group_id)];
if ($this->nomination_process_active != 'true' ) {
// discussion form participation specific checks
//
- $start_date = $this->discussion_process_contrib_start_date;
- $end_date = $this->discussion_process_contrib_end_date;
-
- $donation_params = ['start_date' => $start_date, 'end_date' => $end_date];
- $gift_member_params = ['start_date' => $start_date, 'end_date' => $end_date, 'gift_redeem_page_id' => intval($this->gift_redeem_page_id)];
+ $donation_params = ['start_date' => $discussion_process_start_date, 'end_date' => $discussion_process_end_date];
+ $old_member_params = $donation_params;
$adhoc_params = ['adhoc_access_group_id' => intval($this->discussion_process_adhoc_access_group_id)];
$adhoc_params_no = ['adhoc_access_group_id' => intval($this->discussion_process_adhoc_no_access_group_id)];
': Not eligible for board nominee discussion process.');
$attributes['discussion_process'] = ['false'];
- } elseif ($discussion_process_analyze_history($donation_query('query_discussion_process_donations', $donation_params))
- || $compare_res($donation_query('query_discussion_process_gift_receipt', $gift_member_params), 1)) {
+ } elseif ($compare_res($old_membership_query('query_discussion_process_old_membership', $old_member_params), 1)
+ || $discussion_process_analyze_history($donation_query('query_discussion_process_donations', $donation_params))) {
$attributes['discussion_process'] = ['true'];