From 9916ee0d749776cdd89b45ccd0cd59f85c8aba21 Mon Sep 17 00:00:00 2001 From: Alan Pippin Date: Sun, 3 Oct 2010 18:24:14 -0600 Subject: [PATCH] Fixed issue with yearly interview scheduling page only showing schedule for the president. It now shows the schedule as defined by the yearly_ppi_interviewer global variable. The PPI update page was also updated to only show interviewers in the drop down that match this as well. --- inc/class.tc.inc.php | 118 +++++++++++++++++--------------- setup/tc_config | 6 ++ templates/default/ppi_sched.tpl | 5 +- 3 files changed, 71 insertions(+), 58 deletions(-) diff --git a/inc/class.tc.inc.php b/inc/class.tc.inc.php index 47dee2e..e5f4a43 100644 --- a/inc/class.tc.inc.php +++ b/inc/class.tc.inc.php @@ -1338,7 +1338,7 @@ class tc $this->t->set_file(array('ppi_sched_t' => 'ppi_sched.tpl')); $this->t->set_block('ppi_sched_t','individual_list','indivlist'); $this->t->set_block('ppi_sched_t','appt_list','apptlist'); - $action = get_var('action',array('GET','POST')); + $action = get_var('action',array('GET','POST')); $this->t->set_var('lang_save','Save Appt / Pri / Notes'); $this->t->set_var('lang_reset','Clear Changes'); @@ -1363,24 +1363,6 @@ class tc $year = date('Y'); - // Get the President - $sql = "SELECT * FROM tc_presidency AS tp JOIN tc_individual AS ti where tp.individual=ti.individual AND tp.president=1 AND tp.valid=1"; - $this->db->query($sql,__LINE__,__FILE__); - if($this->db->next_record()) { - $president_name = $this->db->f('name'); - $president_name_array = explode(",",$president_name); - $president_last_name = $president_name_array[0]; - $president_id = $this->db->f('individual'); - $presidency_id = $this->db->f('presidency'); - $interviewer = $this->db->f('individual'); - $district_number = '*'; - $district_name = $president_name; - $president_address = $this->db->f('address'); - } else { - print "

-E- Unable to locate President in tc_presidency table

"; - return; - } - if($action == 'save') { // Save any changes made to the appointment table $new_data = get_var('appt_notes',array('POST')); @@ -1389,7 +1371,8 @@ class tc $indiv = $entry['individual']; $appointment = $entry['appointment']; $location = $entry['location']; - if($location == "") { $location = "$president_last_name"." home ($president_address)"; } + $presidency_location = $entry['presidency_location']; + if($location == "") { $location = $presidency_location; } if($indiv == 0) { $location = ""; } //Only perform a database update if we have made a change to this appointment @@ -1446,35 +1429,52 @@ class tc $appt_table_width=$date_width + $time_width + $indiv_width + $location_width; $appt_header_row = "Date"; $appt_header_row.= "Time"; - $appt_header_row.= "indiv"; + $appt_header_row.= "Individual"; $appt_header_row.= "Location"; - $appt_table_data = ""; + $appt_table_data = ""; + $table_data=""; $total_indivs=0; $indivs_with_yearly_ppi=0; - // Display a scheduling table for the President - $table_data=""; $appt_table_data=""; - $table_title = "District ".$district_number.": ".$district_name.": All indivs with Yearly PPI Not Completed"; - $appt_table_title = "District ".$district_number.": ".$district_name.": Yearly PPI Appointment Slots"; - $this->t->set_var('table_title',$table_title); - $this->t->set_var('appt_table_title',$appt_table_title); - - // query the database for all the appointments - $sql = "SELECT * FROM tc_appointment where presidency=".$presidency_id." and date>=CURDATE() ORDER BY date ASC, time ASC"; + // Get the President + $sql = "SELECT * FROM tc_presidency AS tp JOIN tc_individual AS ti where tp.individual=ti.individual AND tp.valid=1 AND "; + if($this->yearly_ppi_interviewer == 1) { $sql .= " (tp.president=1)"; } + if($this->yearly_ppi_interviewer == 2) { $sql .= " (tp.president=1 OR tp.counselor=1)"; } + if($this->yearly_ppi_interviewer == 3) { $sql .= " (tp.president=1 OR tp.counselor=1 OR tp.secretary=1)"; } $this->db->query($sql,__LINE__,__FILE__); - while ($this->db->next_record()) { - $appointment = $this->db->f('appointment'); - $indiv = $this->db->f('individual'); - $location = $this->db->f('location'); - if(($location == "") && ($indiv > 0)) { $location = "$president_last_name"." home ($president_address)"; } + $presidency_name = $this->db->f('name'); + $presidency_name_array = explode(",",$presidency_name); + $presidency_last_name = $presidency_name_array[0]; + $presidency_id = $this->db->f('presidency'); + $presidency_address = $this->db->f('address'); + $presidency_location = "$presidency_last_name"." home ($presidency_address)"; + $appt_table_data = ""; + + // Display a scheduling table for this presidency member + $district_number = '*'; + $district_name = $presidency_name; + $table_title = "District ".$district_number.": ".$district_name.": All indivs with Yearly PPI Not Completed"; + $appt_table_title = "District ".$district_number.": ".$district_name.": Yearly PPI Appointment Slots"; + $this->t->set_var('table_title',$table_title); + $this->t->set_var('appt_table_title',$appt_table_title); + + // query the database for all the appointments + $sql = "SELECT * FROM tc_appointment where presidency=".$presidency_id." and date>=CURDATE() ORDER BY date ASC, time ASC"; + $this->db2->query($sql,__LINE__,__FILE__); + + while ($this->db2->next_record()) { + $appointment = $this->db2->f('appointment'); + $indiv = $this->db2->f('individual'); + $location = $this->db2->f('location'); + if(($location == "") && ($indiv > 0)) { $location = $presidency_location; } - $date = $this->db->f('date'); + $date = $this->db2->f('date'); $date_array = explode("-",$date); $year = $date_array[0]; $month = $date_array[1]; $day = $date_array[2]; $day_string = date("l d-M-Y", mktime(0,0,0,$month,$day,$year)); - $time = $this->db->f('time'); + $time = $this->db2->f('time'); $time_array = explode(":",$time); $time_string = date("g:i a", mktime($time_array[0], $time_array[1], $time_array[2])); @@ -1485,14 +1485,14 @@ class tc $appt_table_data.= ''; @@ -1503,12 +1503,13 @@ class tc $tr_color = $this->nextmatchs->alternate_row_color($tr_color); $this->t->set_var('tr_color',$tr_color); + } + $this->t->set_var('appt_table_data',$appt_table_data); + $this->t->set_var('appt_header_row',$appt_header_row); + $this->t->set_var('appt_table_width',$appt_table_width); + $this->t->fp('apptlist','appt_list',True); } - - $this->t->set_var('appt_table_data',$appt_table_data); - $this->t->set_var('appt_header_row',$appt_header_row); - $this->t->set_var('appt_table_width',$appt_table_width); - + // PPI SCHEDULING TABLE $sql = "SELECT * FROM tc_individual AS ti JOIN tc_scheduling_priority AS tsp WHERE ti.scheduling_priority=tsp.scheduling_priority AND steward='$this->default_stewardship' AND valid=1 ORDER BY tsp.priority ASC, ti.name ASC"; $this->db->query($sql,__LINE__,__FILE__); @@ -1604,7 +1605,7 @@ class tc $name_width=175; $phone_width=100; $date_width=100; $notes_width=300; $completed_table_width=$name_width + $phone_width + $date_width + $notes_width; - $completed_header_row = "Individual Name"; + $completed_header_row = "Individual"; $completed_header_row.= "Phone"; $completed_header_row.= "Date"; $completed_header_row.= "PPI Notes"; @@ -1662,7 +1663,7 @@ class tc $indiv_width=500; $phone_width=25; $pri_width=10; $notes_width=128; $int_date_width=20; $table_width=$indiv_width + $phone_width + $pri_width + $notes_width + $int_date_width; - $header_row = "individual Name"; + $header_row = "Individual"; $header_row.= "Phone"; $header_row.= "Priority"; $header_row.= "Last Interview"; @@ -1972,7 +1973,7 @@ class tc $name_width=175; $phone_width=100; $date_width=100; $notes_width=300; $completed_table_width=$name_width + $phone_width + $date_width + $notes_width; - $completed_header_row = "Individual Name"; + $completed_header_row = "Individual"; $completed_header_row.= "Phone"; $completed_header_row.= "Date"; $completed_header_row.= "Interview Notes"; @@ -2356,7 +2357,7 @@ class tc array_multisort($indiv_name, $individual); //var_dump($indiv_name); print "

"; var_dump($individual); - $header_row="Individual Name"; + $header_row="Individual"; $indiv_width=400; $ppi_width=75; $table_width=$indiv_width + $num_months*$ppi_width; $table_data=""; @@ -2451,7 +2452,10 @@ class tc $notes = get_var('notes',array('GET','POST')); $interview_type = get_var('interview_type',array('GET','POST')); - $sql = "SELECT * FROM tc_presidency AS tp JOIN tc_individual AS ti WHERE tp.individual=ti.individual AND tp.valid=1 AND (tp.president=1 OR tp.counselor=1 OR tp.secretary=1)"; + $sql = "SELECT * FROM tc_presidency AS tp JOIN tc_individual AS ti WHERE tp.individual=ti.individual AND tp.valid=1 AND "; + if($this->yearly_ppi_interviewer == 1) { $sql .= " (tp.president=1)"; } + if($this->yearly_ppi_interviewer == 2) { $sql .= " (tp.president=1 OR tp.counselor=1)"; } + if($this->yearly_ppi_interviewer == 3) { $sql .= " (tp.president=1 OR tp.counselor=1 OR tp.secretary=1)"; } $this->db2->query($sql,__LINE__,__FILE__); while ($this->db2->next_record()) { $indiv = $this->db2->f('individual'); @@ -3517,7 +3521,7 @@ class tc $table_width=$date_width + $time_width + $indiv_width + $family_width + $location_width; $header_row = "Date"; $header_row.= "Time"; - $header_row.= "individual"; + $header_row.= "Individual"; $header_row.= "Family"; $header_row.= "Location"; $table_data = ""; diff --git a/setup/tc_config b/setup/tc_config index a167920..19849a2 100644 --- a/setup/tc_config +++ b/setup/tc_config @@ -33,6 +33,12 @@ $this->time_drop_down_lists = 1; // Examples: Monthly=1 Quarterly=3 Yearly=12 $this->monthly_hometeaching_interview_stats = 3; +// Specify who can hold yearly PPIs +// 1 = EQ President +// 2 = EQ President + Counselors +// 3 = EQ President + Counselors + Secretary +$this->yearly_ppi_interviewer = 2; + // Specify the minute interval increment to use in the time drop down lists $this->time_drop_down_list_inc = 15; diff --git a/templates/default/ppi_sched.tpl b/templates/default/ppi_sched.tpl index 2fe611f..0fc65bf 100644 --- a/templates/default/ppi_sched.tpl +++ b/templates/default/ppi_sched.tpl @@ -12,8 +12,9 @@

- +
+
@@ -37,7 +38,9 @@
+ +
-- 2.34.1