private $query_main;
private $query_membership;
private $query_staff;
+
private $query_nomination_process_donations;
private $query_nomination_process_gift_receipt;
private $query_nomination_process_adhoc;
+ private $query_discussion_process_donations;
+ private $query_discussion_process_gift_receipt;
+ private $query_discussion_process_adhoc;
+
/**
* SQL query parameters, or variables that help determine which attributes
* someone has
private $membership_monthly_rate;
private $student_membership_monthly_rate;
+ private $discussion_process_active;
+ private $discussion_process_contrib_start_date;
+ private $discussion_process_contrib_end_date;
+ private $discussion_process_adhoc_access_group_id;
+ private $discussion_process_adhoc_no_access_group_id;
+
/**
* Constructor for this authentication source.
*
'nomination_process_contrib_end_date',
'nomination_process_adhoc_access_group_id',
'membership_monthly_rate',
- 'student_membership_monthly_rate']
+ 'student_membership_monthly_rate',
+
+ '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',]
as $param) {
if (!array_key_exists($param, $config)) {
return false;
};
+ $discussion_process_analyze_history = function ($selective_donations_history)
+ use ($start_date, $end_date) {
+
+ $eligible = false;
+ $total = 0;
+
+ $start_date_obj = new \DateTime($start_date);
+ $end_date_obj = new \DateTime($end_date);
+
+ foreach ($selective_donations_history as $row) {
+
+ $amount = intval($row['amount']);
+ $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) {
+ $total += $amount;
+ }
+ }
+
+ if ($total >= 120) {
+ return true;
+ } else {
+ return false;
+ }
+ };
+
//
// nomination form participation specific checks
//
$attributes['nomination_process'] = ['false'];
}
+ //
+ // 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)];
+ $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)];
+
+ if ($this->discussion_process_active == 'true' ) {
+ if ($compare_res($donation_query('query_discussion_process_adhoc', $adhoc_params_no), 1)) {
+ Logger::debug('fsfdrupalauth:'.$this->authId.
+ ': Not eligible for board nominee discussion process.');
+ $attributes['discussion_process'] = ['false'];
+
+ } elseif ($compare_res($donation_query('query_discussion_process_adhoc', $adhoc_params), 1)) {
+ $attributes['discussion_process'] = ['true'];
+
+ } elseif ($attributes['is_member'] == ['true']
+ && ($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))) {
+
+ $attributes['discussion_process'] = ['true'];
+
+ } else {
+ Logger::debug('fsfdrupalauth:'.$this->authId.
+ ': Not eligible for board nominee discussion process.');
+ $attributes['discussion_process'] = ['false'];
+ }
+ } else {
+ $attributes['discussion_process'] = ['false'];
+ }
+
//
// query on staff
//