+
+ $this->t->set_var('totals',$totals_data);
+ $this->t->set_var('totals_header_row',$totals_header_row);
+ $this->t->set_var('totals_table_width',$totals_table_width);
+
+ $this->t->pfp('out','ppi_sched_t');
+ $this->save_sessiondata();
+
+ }
+
+ function int_sched()
+ {
+ $this->t->set_file(array('int_sched_t' => 'int_sched.tpl'));
+ $this->t->set_block('int_sched_t','elder_list','elderlist');
+ $this->t->set_block('int_sched_t','appt_list','apptlist');
+ $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');
+
+ $this->t->set_var('int_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.int_view'));
+ $this->t->set_var('int_link_title','Hometeaching Interviews');
+
+ $this->t->set_var('schedule_int_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.int_sched'));
+ $this->t->set_var('schedule_int_link_title','Schedule Hometeaching Interviews');
+
+ $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.int_sched&action=save'));
+ $this->t->set_var('title','Hometeaching Interviews Scheduler');
+
+ $elder_width=500; $phone_width=25; $pri_width=10; $notes_width=128; $int_date_width=20;
+ $table_width=$elder_width + $phone_width + $pri_width + $notes_width + $int_date_width;
+ $header_row = "<th width=$elder_width><font size=-2>Elder Name</th>";
+ $header_row.= "<th width=$phone_width><font size=-2>Phone</th>";
+ $header_row.= "<th width=$pri_width><font size=-2>Priority</th>";
+ $header_row.= "<th width=$int_date_width><font size=-2>Last Interview</th>";
+ $header_row.= "<th width=$notes_width><font size=-2>Scheduling Notes</th>";
+ $table_data=""; $completed_data=""; $totals_data="";
+
+ $year = date('Y');
+ $month = date('m');
+ $nextyear = $year + 1;
+ if($month >= 1 && $month <= 3) { $quarter_start=$year."-01-01"; $quarter_end=$year."-04-01"; }
+ if($month >= 4 && $month <= 6) { $quarter_start=$year."-04-01"; $quarter_end=$year."-07-01"; }
+ if($month >= 7 && $month <= 9) { $quarter_start=$year."-07-01"; $quarter_end=$year."-10-01"; }
+ if($month >= 10 && $month <= 12) { $quarter_start=$year."-10-01"; $quarter_end=$nextyear."-01-01"; }
+ //print "year: $year month: $month quarter_start: $quarter_start quarter_end: $quarter_end<br>";
+
+ // create the elder id -> elder name mapping
+ $sql = "SELECT * FROM eq_elder where valid=1 ORDER BY name ASC";
+ $this->db->query($sql,__LINE__,__FILE__);
+ $i=0;
+ $elder_id_data = NULL;
+ $elder_name_data = NULL;
+ while ($this->db->next_record())
+ {
+ $elder_name_data[$i] = $this->db->f('name');
+ $elder_id_data[$i] = $this->db->f('elder');
+ $elderid2name[$elder_id_data[$i]] = $elder_name_data[$i];
+ $i++;
+ }
+ array_multisort($elder_name_data, $elder_id_data);
+
+ if($action == 'save')
+ {
+ // Save any changes made to the appointment table
+ $new_data = get_var('appt_notes',array('POST'));
+ if($new_data != "") {
+ foreach ($new_data as $entry)
+ {
+ $elder = $entry['elder'];
+ $appointment = $entry['appointment'];
+ $location = $entry['location'];
+ if($location == "") {
+ $supervisor = $entry['supervisor'];
+ $supervisor_array = explode(",", $elderid2name[$supervisor]);
+ $supervisor_last_name = $supervisor_array[0];
+ $sql = "SELECT * FROM eq_elder where elder='$supervisor'";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ if($this->db2->next_record()) {
+ $indiv_id = $this->db2->f('indiv_id');
+ }
+ $sql = "SELECT * FROM eq_parent where indiv_id='$indiv_id'";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ if($this->db2->next_record()) {
+ $supervisor_address = $this->db2->f('address');
+ }
+ $location = "$supervisor_last_name"." home ($supervisor_address)";
+ }
+ if($elder == 0) { $location = ""; }
+
+ //print "elder: $elder appointment: $appointment <br>";
+ //Only perform a database update if we have made a change to this appointment
+ $sql = "SELECT * FROM eq_appointment where appointment='$appointment' and elder='$elder' and location='$location'";
+ $this->db->query($sql,__LINE__,__FILE__);
+ if(!$this->db->next_record()) {
+ // Perform database save actions here
+ $this->db->query("UPDATE eq_appointment set " .
+ " elder='" . $elder . "'" .
+ ",location='" . $location . "'" .
+ " WHERE appointment=" . $appointment,__LINE__,__FILE__);
+
+ // Email the appointment
+ $this->email_appt($appointment);
+ }
+ }
+ }
+
+ // Save any changes made to the int notes table
+ $new_data = get_var('int_notes',array('POST'));
+ foreach ($new_data as $entry)
+ {
+ $int_notes = $entry['notes'];
+ $elder_id = $entry['elder_id'];
+ $elder_name = $entry['elder_name'];
+ $int_pri = $entry['pri'];
+ $aaronic = $entry['aaronic'];
+ //print "int_notes: $int_notes elder_name: $elder_name aaronic: $aaronic <Br>";
+ if($aaronic == 0) {
+ // Perform database save actions here
+ $this->db->query("UPDATE eq_elder set " .
+ " int_notes='" . $int_notes . "'" .
+ ",int_pri='" . $int_pri . "'" .
+ " WHERE elder=" . $elder_id,__LINE__,__FILE__);
+ }
+
+ }
+
+ $take_me_to_url = $GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.int_sched');
+ //Header('Location: ' . $take_me_to_url);
+ }
+
+ // Get the Districts
+ $sql = "SELECT * FROM eq_district where valid=1 ORDER BY district ASC";
+ $this->db->query($sql,__LINE__,__FILE__);
+ $i=0;
+ while ($this->db->next_record())
+ {
+ $district = $this->db->f('district');
+ $districts[$i]['district'] = $this->db->f('district');
+ $districts[$i]['name'] = $this->db->f('name');
+ $districts[$i]['supervisor'] = $this->db->f('supervisor');
+ $sql = "SELECT * FROM eq_presidency where district=$district and valid=1";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ if($this->db2->next_record()) {
+ $districts[$i]['presidency'] = $this->db2->f('presidency');
+ }
+ $i++;
+ }
+
+ // APPOINTMENT TABLE
+ $district = 1;
+ $date_width=250; $time_width=100; $elder_width=200; $location_width=100;
+ $appt_table_width=$date_width + $time_width + $elder_width + $location_width;
+ $appt_header_row = "<th width=$date_width><font size=-2>Date</th>";
+ $appt_header_row.= "<th width=$time_width><font size=-2>Time</th>";
+ $appt_header_row.= "<th width=$elder_width><font size=-2>Elder</th>";
+ $appt_header_row.= "<th width=$location_width><font size=-2>Location</th>";
+ $appt_table_data = "";
+
+ $total_comps=0; $comps_with_quarterly_int=0;
+
+ // Display a scheduling table for each district
+ for ($d=0; $d < count($districts); $d++) {
+ $table_data=""; $appt_table_data="";
+ $this->t->set_var('district_number',$districts[$d]['district']);
+ $this->t->set_var('district_name',$districts[$d]['name']);
+ $supervisor = $districts[$d]['supervisor'];
+ $supervisor_array = explode(",", $supervisor);
+ $supervisor_last_name = $supervisor_array[0];
+ $sql = "SELECT * FROM eq_elder where elder='$supervisor'";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ if($this->db2->next_record()) {
+ $indiv_id = $this->db2->f('indiv_id');
+ }
+ $sql = "SELECT * FROM eq_parent where indiv_id='$indiv_id'";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ if($this->db2->next_record()) {
+ $supervisor_address = $this->db2->f('address');
+ }
+ $location = "$supervisor_last_name"." home ($supervisor_address)";
+ $table_title = "District ".$districts[$d]['district'].": ".$districts[$d]['name'].": All Elders with Interviews Not Completed";
+ $appt_table_title = "District ".$districts[$d]['district'].": ".$districts[$d]['name'].": Interview 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 eq_appointment where presidency=".$districts[$d]['presidency']." and date>=CURDATE() ORDER BY date ASC, time ASC";
+ $this->db->query($sql,__LINE__,__FILE__);
+
+ while ($this->db->next_record())
+ {
+ $appointment = $this->db->f('appointment');
+ $elder = $this->db->f('elder');
+ $location = $this->db->f('location');
+ if(($location == "") && ($elder > 0)) { $location = "$supervisor_last_name"." home ($supervisor_address)"; }
+
+ $date = $this->db->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_array = explode(":",$time);
+ $time_string = date("g:i a", mktime($time_array[0], $time_array[1], $time_array[2]));
+
+ $appt_table_data.= "<tr bgcolor=". $this->t->get_var('tr_color') .">";
+ $appt_table_data.= "<td align=center>$day_string</td>";
+ $appt_table_data.= "<td align=center>$time_string</td>";
+
+ $appt_table_data.= '<td align=center><select name=appt_notes['.$appointment.'][elder]>';
+ $appt_table_data.= '<option value=0></option>';
+ for ($i=0; $i < count($elder_id_data); $i++) {
+ $id = $elder_id_data[$i];
+ $name = $elder_name_data[$i];
+ if($elder_id_data[$i] == $elder) { $selected[$id] = 'selected="selected"'; } else { $selected[$id] = ''; }
+ $appt_table_data.= '<option value='.$id.' '.$selected[$id].'>'.$name.'</option>';
+ }
+ $appt_table_data.='</select></td>';
+
+ $appt_table_data.= '<td align=center><input type=text size="35" maxlength="120" ';
+ $appt_table_data.= 'name="appt_notes['.$appointment.'][location]" value="'.$location.'">';
+
+ $appt_table_data.= '<input type=hidden name="appt_notes['.$appointment.'][appointment]" value="'.$appointment.'">';
+ $appt_table_data.= '<input type=hidden name="appt_notes['.$appointment.'][supervisor]" value="'.$supervisor.'">';
+
+ $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);
+
+ // INTERVIEW SCHEDULING TABLE
+
+ // Select all the unique companionship numbers for this district
+ $sql = "SELECT distinct companionship FROM eq_companionship where valid=1 and district=". $districts[$d]['district'];
+ $this->db->query($sql,__LINE__,__FILE__);
+ $j=0; $unique_companionships = '';
+ while ($this->db->next_record())
+ {
+ $unique_companionships[$j]['companionship'] = $this->db->f('companionship');
+ $j++;
+ }
+
+ $i=0;
+ for ($j=0; $j < count($unique_companionships); $j++) {
+ // Select all the companions from each companionship
+ $sql = "SELECT * FROM eq_companionship where valid=1 and ".
+ "companionship=". $unique_companionships[$j]['companionship'];
+ $this->db->query($sql,__LINE__,__FILE__);
+ $k=0; $int_completed=0;
+ $comp = $unique_companionships[$j]['companionship'];
+ $tr_color = $this->nextmatchs->alternate_row_color($tr_color);
+ $this->t->set_var('tr_color',$tr_color);
+ $total_comps++;
+ while ($this->db->next_record())
+ {
+ // Get this companions information
+ $elder_id = $this->db->f('elder');
+ $aaronic_id = $this->db->f('aaronic');
+
+ $sql = "SELECT * FROM eq_elder where elder=$elder_id";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ if($this->db2->next_record())
+ {
+ $elder_id = $this->db2->f('elder');
+ $elder_name = $this->db2->f('name');
+ $elder_phone[$elder_id] = $this->db2->f('phone');
+ $elder_int_pri[$elder_id] = $this->db2->f('int_pri');
+ $elder_int_notes[$elder_id] = $this->db2->f('int_notes');
+ $elder_aaronic = 0;
+ }
+ else {
+ $sql = "SELECT * FROM eq_aaronic where aaronic=$aaronic_id";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ if($this->db2->next_record())
+ {
+ $elder_id = $this->db2->f('aaronic');
+ $elder_name = $this->db2->f('name');
+ $elder_phone[$elder_id] = $this->db2->f('phone');
+ $elder_aaronic = 1;
+ }
+ }
+
+ $id = $elder_id;
+ $name = $elder_name;
+ $phone = $elder_phone[$id];
+ $int_pri = $elder_int_pri[$id];
+ $int_notes = $elder_int_notes[$id];
+ $aaronic = $elder_aaronic;
+
+ // If the companionship has already had its quarterly interview,
+ // Skip the other companion in the companionship.
+ if($int_completed == 1) {
+ $completed_data.= "<tr bgcolor=". $this->t->get_var('tr_color2') ."><td title=\"$phone\"><a href=$link>$name</a></td>";
+ $completed_data.= "<td align=center>$phone</td>";
+ $completed_data.= "<td align=center><a href=".$link.">$date</a></td>";
+ $completed_data.= "<td align=left>$int_notes</td>";
+ $completed_data.= '</tr>';
+ $tr_color2 = $this->nextmatchs->alternate_row_color($tr_color2);
+ $this->t->set_var('tr_color2',$tr_color2);
+ $tr_color = $this->nextmatchs->alternate_row_color($tr_color);
+ $this->t->set_var('tr_color',$tr_color);
+ continue;
+ }
+
+ // If this companionship has had a hometeaching interview this quarter, don't show them on the schedule list
+ $sql = "SELECT * FROM eq_ppi WHERE date >= '$quarter_start' AND date < '$quarter_end' ".
+ "AND elder=" . $id;
+ $this->db2->query($sql,__LINE__,__FILE__);
+
+ if(!$this->db2->next_record()) {
+ $sql = "SELECT * FROM eq_ppi WHERE elder=" . $id . " ORDER BY date DESC";
+ $this->db3->query($sql,__LINE__,__FILE__);
+ if($this->db3->next_record()) { $date = $this->db3->f('date'); } else { $date = ""; }
+ $link_data['menuaction'] = 'eq.eq.int_update';
+ $link_data['elder'] = $id;
+ $link_data['aaronic'] = 0;
+ $link_data['name'] = $name;
+ $link_data['ppi'] = '';
+ $link_data['action'] = 'add';
+ $link_data['interviewer'] = $districts[$d]['supervisor'];
+ $link = $GLOBALS['phpgw']->link('/eq/index.php',$link_data);
+ $table_data.= "<tr bgcolor=". $this->t->get_var('tr_color') ."><td title=\"$phone\"><a href=$link>$name</a></td>";
+ $table_data.= "<td align=center>$phone</td>";
+ $table_data.= "<td align=center>";
+ if($aaronic == 0) {
+ $table_data.= '<select name=int_notes['.$i.'][pri]>';
+ foreach(range(0,6) as $num) {
+ if($num == 0) { $num = 1; } else {$num = $num*5; }
+ if($int_pri == $num) { $selected[$num] = 'selected="selected"'; } else { $selected[$num] = ''; }
+ $table_data.= '<option value='.$num.' '.$selected[$num].'>'.$num.'</option>';
+ }
+ $table_data.= '</select></td>';
+ }
+ $table_data.= "<td align=center>$date</td>";
+ if($aaronic == 0) {
+ $table_data.= '<td><input type=text size="50" maxlength="128" name="int_notes['.$i.'][notes]" value="'.$int_notes.'">';
+ }
+ $table_data.= '<input type=hidden name="int_notes['.$i.'][elder_id]" value="'.$id.'">';
+ $table_data.= '<input type=hidden name="int_notes['.$i.'][elder_name]" value="'.$name.'">';
+ $table_data.= '<input type=hidden name="int_notes['.$i.'][aaronic]" value="'.$aaronic.'">';
+ $table_data.= '</td>';
+ $table_data.= '</tr>'."\n";
+ $i++;
+ } else {
+ $link_data['menuaction'] = 'eq.eq.int_update';
+ $link_data['interviewer'] = $this->db2->f('interviewer');
+ $link_data['elder'] = $this->db2->f('elder');
+ $link_data['aaronic'] = $this->db2->f('aaronic');
+ $link_data['name'] = $name;
+ $link_data['ppi'] = $this->db2->f('ppi');
+ $link_data['action'] = 'view';
+ $link = $GLOBALS['phpgw']->link('/eq/index.php',$link_data);
+ $comps_with_quarterly_int++;
+ $int_completed=1;
+ $date = $this->db2->f('date');
+ $int_notes = $this->db2->f('notes');
+ if(strlen($int_notes) > 40) { $int_notes = substr($int_notes,0,40) . "..."; }
+ $completed_data.= "<tr bgcolor=". $this->t->get_var('tr_color2') ."><td title=\"$phone\"><a href=$link>$name</a></td>";
+ $completed_data.= "<td align=center>$phone</td>";
+ $completed_data.= "<td align=center><a href=".$link.">$date</a></td>";
+ $completed_data.= "<td align=left>$int_notes</td>";
+ $completed_data.= '</tr>';
+ }
+ }
+ }
+
+ $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 = "<th width=$name_width><font size=-2>Elder Name</th>";
+ $completed_header_row.= "<th width=$phone_width><font size=-2>Phone</th>";
+ $completed_header_row.= "<th width=$date_width><font size=-2>Date</th>";
+ $completed_header_row.= "<th width=$notes_width><font size=-2>Interview Notes</th>";
+
+ $this->t->set_var('table_width',$table_width);
+ $this->t->set_var('header_row',$header_row);
+ $this->t->set_var('table_data',$table_data);
+ $this->t->set_var('completed_header_row',$completed_header_row);
+ $this->t->set_var('completed_table_width',$completed_table_width);
+ $this->t->set_var('completed',$completed_data);
+ $this->t->fp('elderlist','elder_list',True);
+
+ } // End for each district loop
+
+
+ $elders_width=300; $totals_width=100;
+ $totals_table_width=$elders_width + $totals_width;
+ $totals_header_row = "<th width=$elders_width><font size=-2>Elders</th>";
+ $totals_header_row.= "<th width=$totals_width><font size=-2>$year</th>";
+ $totals_data.= "<tr bgcolor=". $this->t->get_var('tr_color') .">";
+ $totals_data.= "<td align=left><font size=-2><b>Total Companionships with interviews completed:</b></font></td>";
+ $totals_data.= "<td align=center><font size=-2><b>$comps_with_quarterly_int / $total_comps</b></font></td>";
+ $percent = ceil(($comps_with_quarterly_int / $total_comps)*100);
+ $tr_color = $this->nextmatchs->alternate_row_color($tr_color);
+ $this->t->set_var('tr_color',$tr_color);
+ $totals_data.= "<tr bgcolor=". $this->t->get_var('tr_color') .">";
+ $totals_data.= "<td align=left><font size=-2><b>Percentage:</b></font></td>";
+ $totals_data.= "<td align=center><font size=-2><b>$percent%</b></font></td>";
+ $totals_data.= "</tr>";
+
+ $this->t->set_var('totals',$totals_data);
+ $this->t->set_var('totals_header_row',$totals_header_row);
+ $this->t->set_var('totals_table_width',$totals_table_width);
+
+ $this->t->pfp('out','int_sched_t');
+ $this->save_sessiondata();
+
+ }
+
+ function vis_sched()
+ {
+ $this->t->set_file(array('vis_sched_t' => 'vis_sched.tpl'));
+ $this->t->set_block('vis_sched_t','family_list','familylist');
+ $this->t->set_block('vis_sched_t','appt_list','apptlist');
+ $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');
+
+ $this->t->set_var('vis_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.vis_view'));
+ $this->t->set_var('vis_link_title','View Yearly Visits');
+
+ $this->t->set_var('schedule_vis_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.vis_sched'));
+ $this->t->set_var('schedule_vis_link_title','Schedule Yearly Visits');
+
+ $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.vis_sched&action=save'));
+ $this->t->set_var('title','EQ Presidency Yearly Visit Scheduler');
+
+ $family_width=500; $phone_width=40; $pri_width=10; $notes_width=128; $visit_date_width=20;
+ $table_width=$family_width + $phone_width + $pri_width + $notes_width + $visit_date_width;
+ $header_row = "<th width=$family_width><font size=-2>Family Name</th>";
+ $header_row.= "<th width=$phone_width><font size=-2>Phone</th>";
+ $header_row.= "<th width=$pri_width><font size=-2>Priority</th>";
+ $header_row.= "<th width=$visit_date_width><font size=-2>Last Visit</th>";
+ $header_row.= "<th width=$notes_width><font size=-2>Scheduling Notes</th>";
+ $table_data=""; $completed_data=""; $totals_data="";
+
+ $year = date('Y');
+
+ // create the family id -> family name mapping
+ $sql = "SELECT * FROM eq_family where valid=1 and elder_id != 0 ORDER BY name ASC";
+ $this->db->query($sql,__LINE__,__FILE__);
+ $i=0;
+ $family_id = NULL;
+ while ($this->db->next_record())
+ {
+ $family_id[$i] = $this->db->f('family');
+ $family_name[$i] = $this->db->f('name');
+ $familyid2name[$family_id[$i]] = $family_name[$i];
+ $sql = "SELECT * FROM eq_parent where family='$family_id[$i]'";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ if($this->db2->next_record()) {
+ $familyid2address[$family_id[$i]] = $this->db2->f('address');
+ }
+ $i++;
+ }
+ array_multisort($family_name, $family_id);
+
+ if($action == 'save')
+ {
+ // Save any changes made to the appointment table
+ $new_data = get_var('appt_notes',array('POST'));
+ if($new_data != "") {
+ foreach ($new_data as $entry)
+ {
+ $family = $entry['family'];
+ $appointment = $entry['appointment'];
+ $location = $entry['location'];
+ if($location == "") {
+ $family_name_array = explode(",", $familyid2name[$family]);
+ $family_last_name = $family_name_array[0];
+ $family_address = $familyid2address[$family];
+ $location = "$family_last_name"." home ($family_address)";
+ }
+ if($family == 0) { $location = ""; }
+
+ //Only perform a database update if we have made a change to this appointment
+ $sql = "SELECT * FROM eq_appointment where appointment='$appointment' and family='$family' and location='$location'";
+ $this->db->query($sql,__LINE__,__FILE__);
+ if(!$this->db->next_record()) {
+ // Perform database save actions here
+ $this->db->query("UPDATE eq_appointment set " .
+ " family='" . $family . "'" .
+ ",location='" . $location . "'" .
+ " WHERE appointment=" . $appointment,__LINE__,__FILE__);
+
+ // Email the appointment
+ $this->email_appt($appointment);
+ }
+ }
+ }
+
+ // Save any changes made to the visit notes table
+ $new_data = get_var('vis_notes',array('POST'));
+ foreach ($new_data as $entry)
+ {
+ $visit_notes = $entry['notes'];
+ $family = $entry['family_id'];
+ $visit_pri = $entry['pri'];
+
+ // Perform database save actions here
+ $this->db->query("UPDATE eq_family set " .
+ " visit_notes='" . $visit_notes . "'" .
+ ",visit_pri='" . $visit_pri . "'" .
+ " WHERE family=" . $family,__LINE__,__FILE__);
+
+ }
+
+ $take_me_to_url = $GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.vis_sched');
+ //Header('Location: ' . $take_me_to_url);
+ }
+
+ // APPOINTMENT TABLE
+ $date_width=250; $time_width=100; $family_width=250; $location_width=100;
+ $appt_table_width=$date_width + $time_width + $family_width + $location_width;
+ $appt_header_row = "<th width=$date_width><font size=-2>Date</th>";
+ $appt_header_row.= "<th width=$time_width><font size=-2>Time</th>";
+ $appt_header_row.= "<th width=$family_width><font size=-2>Family</th>";
+ $appt_header_row.= "<th width=$location_width><font size=-2>Location</th>";
+ $appt_table_data = "";
+
+ // Find out what the EQ Presidency ID is
+ $sql = "SELECT * FROM eq_presidency where eqpres=1 and valid=1";
+ $this->db->query($sql,__LINE__,__FILE__);
+ if($this->db->next_record()) {
+ $presidency_name = $this->db->f('name');
+ $presidency_id = $this->db->f('presidency');
+ } else {
+ print "<hr><font color=red><h3>-E- Unable to locate EQ Presidency in eq_presidency table</h3></font></hr>";
+ return;
+ }
+
+ // query the database for all the appointments
+ $sql = "SELECT * FROM eq_appointment where presidency=$presidency_id and date>=CURDATE() ORDER BY date ASC, time ASC";
+ $this->db->query($sql,__LINE__,__FILE__);
+
+ while ($this->db->next_record())
+ {
+ $appointment = $this->db->f('appointment');
+ $family = $this->db->f('family');
+ $location = $this->db->f('location');
+ $family_name_array = explode(",", $familyid2name[$family]);
+ $family_last_name = $family_name_array[0];
+ $family_address = $familyid2address[$family];
+ if(($location == "") && ($family > 0)) { $location = "$family_last_name"." home ($family_address)"; }
+
+ $date = $this->db->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_array = explode(":",$time);
+ $time_string = date("g:i a", mktime($time_array[0], $time_array[1], $time_array[2]));
+
+ $appt_table_data.= "<tr bgcolor=". $this->t->get_var('tr_color') .">";
+ $appt_table_data.= "<td align=center>$day_string</td>";
+ $appt_table_data.= "<td align=center>$time_string</td>";
+
+ $appt_table_data.= '<td align=center><select name=appt_notes['.$appointment.'][family]>';
+ $appt_table_data.= '<option value=0></option>';
+ for ($i=0; $i < count($family_id); $i++) {
+ $id = $family_id[$i];
+ $name = $family_name[$i];
+ if($family_id[$i] == $family) { $selected[$id] = 'selected="selected"'; } else { $selected[$id] = ''; }
+ $appt_table_data.= '<option value='.$id.' '.$selected[$id].'>'.$name.' Family</option>';
+ }
+ $appt_table_data.='</select></td>';
+
+ $appt_table_data.= '<td align=center><input type=text size="35" maxlength="120" ';
+ $appt_table_data.= 'name="appt_notes['.$appointment.'][location]" value="'.$location.'">';
+
+ $appt_table_data.= '<input type=hidden name="appt_notes['.$appointment.'][appointment]" value="'.$appointment.'">';
+
+ $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);
+
+
+ // VISIT SCHEDULING TABLE
+ $sql = "SELECT * FROM eq_family where valid=1 and elder_id != 0 ORDER BY visit_pri ASC";
+ $this->db->query($sql,__LINE__,__FILE__);
+
+ $total_families=0; $families_with_yearly_visit=0;
+
+ $i=0;
+ $family_id = NULL;
+ $family_name = NULL;
+ $family_phone = NULL;
+ $family_visit_pri = NULL;
+ $family_visit_notes = NULL;
+ while ($this->db->next_record())
+ {
+ $family_id[$i] = $this->db->f('family');
+ $family_name[$i] = $this->db->f('name');
+ $family_phone[$family_id[$i]] = $family_id[$i] . " ERROR";
+ $family_visit_pri[$family_id[$i]] = $this->db->f('visit_pri');
+ $family_visit_notes[$family_id[$i]] = $this->db->f('visit_notes');
+ $i++;
+ $total_families++;
+ }
+
+ $sql = "SELECT * FROM eq_parent where valid=1";
+ $this->db->query($sql,__LINE__,__FILE__);
+ while ($this->db->next_record())
+ {
+ $family = $this->db->f('family');
+ $phone = $this->db->f('phone');
+ $family_phone[$family] = $phone;
+ }
+
+ $max = count($family_id);
+
+ for($i=0; $i < $max; $i++) {
+ $id = $family_id[$i];
+ $name = $family_name[$i];
+ $phone = $family_phone[$id];
+ $vis_pri = $family_visit_pri[$id];
+ $vis_notes = $family_visit_notes[$id];
+
+ // If this family has had a yearly visit this year, don't show them on the schedule list
+ $year_start = $year - 1 . "-12-31"; $year_end = $year + 1 . "-01-01";
+ $sql = "SELECT * FROM eq_visit WHERE date > '$year_start' AND date < '$year_end' ".
+ "AND family=" . $id . " AND companionship=0";
+ $this->db2->query($sql,__LINE__,__FILE__);
+
+ if(!$this->db2->next_record()) {
+ $sql = "SELECT * FROM eq_visit WHERE family=" . $id . " AND companionship=0 ORDER BY date DESC";
+ $this->db->query($sql,__LINE__,__FILE__);
+ if($this->db->next_record()) { $date = $this->db->f('date'); } else { $date = ""; }
+ $link_data['menuaction'] = 'eq.eq.vis_update';
+ $link_data['visit'] = '';
+ $link_data['family'] = $id;
+ $link_data['name'] = $name;
+ $link_data['action'] = 'add';
+ $link = $GLOBALS['phpgw']->link('/eq/index.php',$link_data);
+ $table_data.= "<tr bgcolor=". $this->t->get_var('tr_color') ."><td title=\"$phone\"><a href=$link>$name Family</a></td>";
+ $table_data.= "<td align=center>$phone</td>";
+ $table_data.= "<td align=center>";
+ $table_data.= '<select name=vis_notes['.$i.'][pri]>';
+ foreach(range(0,6) as $num) {
+ if($num == 0) { $num = 1; } else {$num = $num*5; }
+ if($vis_pri == $num) { $selected[$num] = 'selected="selected"'; } else { $selected[$num] = ''; }
+ $table_data.= '<option value='.$num.' '.$selected[$num].'>'.$num.'</option>';
+ }
+ $table_data.= '</select></td>';
+ $table_data.= "<td align=center>$date</td>";
+ $table_data.= '<td><input type=text size="50" maxlength="128" name="vis_notes['.$i.'][notes]" value="'.$vis_notes.'">';
+ $table_data.= '<input type=hidden name="vis_notes['.$i.'][family_id]" value="'.$id.'">';
+ $table_data.= '<input type=hidden name="vis_notes['.$i.'][family_name]" value="'.$name.'">';
+ $table_data.= '</td>';
+ $table_data.= '</tr>';
+ $tr_color = $this->nextmatchs->alternate_row_color($tr_color);
+ $this->t->set_var('tr_color',$tr_color);
+ } else {
+ $link_data['menuaction'] = 'eq.eq.vis_update';
+ $link_data['visit'] = $this->db2->f('visit');
+ $link_data['family'] = $this->db2->f('family');
+ $link_data['name'] = $name;
+ $link_data['date'] = $this->db2->f('date');
+ $link_data['action'] = 'view';
+ $link = $GLOBALS['phpgw']->link('/eq/index.php',$link_data);
+ $families_with_yearly_visit++;
+ $date = $this->db2->f('date');
+ $vis_notes = $this->db2->f('notes');
+ if(strlen($vis_notes) > 40) { $vis_notes = stripslashes(substr($vis_notes,0,40) . "..."); }
+ $completed_data.= "<tr bgcolor=". $this->t->get_var('tr_color2') ."><td title=\"$phone\"><a href=$link>$name Family</a></td>";
+ $completed_data.= "<td align=center>$phone</td>";
+ $completed_data.= "<td align=center><a href=".$link.">$date</a></td>";
+ $completed_data.= "<td align=left>$vis_notes</td>";
+ $completed_data.= '</tr>';
+ $tr_color2 = $this->nextmatchs->alternate_row_color($tr_color2);
+ $this->t->set_var('tr_color2',$tr_color2);
+ }
+ }
+
+ $name_width=190; $phone_width=100; $date_width=100; $notes_width=300;
+ $completed_table_width=$name_width + $phone_width + $date_width + $notes_width;
+ $completed_header_row = "<th width=$name_width><font size=-2>Family Name</th>";
+ $completed_header_row.= "<th width=$phone_width><font size=-2>Phone</th>";
+ $completed_header_row.= "<th width=$date_width><font size=-2>Date</th>";
+ $completed_header_row.= "<th width=$notes_width><font size=-2>Visit Notes</th>";
+
+ $family_width=300; $totals_width=100;
+ $totals_table_width=$family_width + $totals_width;
+ $totals_header_row = "<th width=$family_width><font size=-2>Families</th>";
+ $totals_header_row.= "<th width=$totals_width><font size=-2>$year</th>";
+ $totals_data.= "<tr bgcolor=". $this->t->get_var('tr_color') .">";
+ $totals_data.= "<td align=left><font size=-2><b>Total Families with yearly Visits completed:</b></font></td>";
+ $totals_data.= "<td align=center><font size=-2><b>$families_with_yearly_visit / $total_families</b></font></td>";
+ $percent = ceil(($families_with_yearly_visit / $total_families)*100);
+ $tr_color = $this->nextmatchs->alternate_row_color($tr_color);
+ $this->t->set_var('tr_color',$tr_color);
+ $totals_data.= "<tr bgcolor=". $this->t->get_var('tr_color') .">";
+ $totals_data.= "<td align=left><font size=-2><b>Percentage:</b></font></td>";
+ $totals_data.= "<td align=center><font size=-2><b>$percent%</b></font></td>";
+ $totals_data.= "</tr>";
+
+ $this->t->set_var('table_width',$table_width);
+ $this->t->set_var('header_row',$header_row);
+ $this->t->set_var('table_data',$table_data);
+ $this->t->set_var('totals_header_row',$totals_header_row);
+ $this->t->set_var('totals_table_width',$totals_table_width);
+ $this->t->set_var('completed_header_row',$completed_header_row);
+ $this->t->set_var('completed_table_width',$completed_table_width);
+ $this->t->set_var('completed',$completed_data);
+ $this->t->set_var('totals',$totals_data);
+ $this->t->fp('familylist','family_list',True);
+ $this->t->fp('apptlist','appt_list',True);
+
+ $this->t->pfp('out','vis_sched_t');
+ $this->save_sessiondata();
+
+ }
+
+ function ppi_view()
+ {
+ $this->t->set_file(array('ppi_view_t' => 'ppi_view.tpl'));
+ $this->t->set_block('ppi_view_t','district_list','list');
+
+ $this->t->set_var('linkurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_view'));
+ $num_months = get_var('num_months',array('GET','POST'));
+ if($num_months == '') { $num_months = $this->default_ppi_num_months; }
+ $this->t->set_var('num_months',$num_months);
+ if($num_months == 1) { $this->t->set_var('lang_num_months','Month of History'); }
+ else { $this->t->set_var('lang_num_months','Months of History'); }
+ $this->t->set_var('lang_filter','Filter');
+ $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_view'));
+
+ $this->t->set_var('ppi_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_view'));
+ $this->t->set_var('ppi_link_title','Yearly PPIs');
+
+ $this->t->set_var('schedule_ppi_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_sched'));
+ $this->t->set_var('schedule_ppi_link_title','Schedule Yearly PPIs');
+
+ $this->t->set_var('title','Yearly PPIs');
+ $num_months = get_var('num_months',array('GET','POST'));
+ if($num_months == '') { $num_months = $this->default_ppi_num_years; }
+ $this->t->set_var('num_months',$num_months);
+ if($num_months == 1) { $this->t->set_var('lang_num_months','Year of History'); }
+ else { $this->t->set_var('lang_num_months','Years of History'); }
+
+ $sql = "SELECT * FROM eq_presidency where president=1 and valid=1";
+ $this->db->query($sql,__LINE__,__FILE__);
+ if($this->db->next_record()) {
+ $president_name = $this->db->f('name');
+ $interviewer = $this->db->f('elder');
+ $eqpresppi = 1;
+ } else {
+ print "<hr><font color=red><h3>-E- Unable to locate EQ President in eq_presidency table</h3></font></hr>";
+ return;
+ }
+ $this->t->set_var('district_number','*');
+ $this->t->set_var('district_name',$president_name);
+
+ $sql = "SELECT * FROM eq_elder where valid=1 ORDER BY elder ASC";
+ $this->db->query($sql,__LINE__,__FILE__);
+ $i=0;
+ while ($this->db->next_record())
+ {
+ $elder_id[$i] = $this->db->f('elder');
+ $elder_name[$i] = $this->db->f('name');
+ $elder_phone[$elder_id[$i]] = $this->db->f('phone');
+ $elder_ppi_pri[$elder_id[$i]] = $this->db->f('ppi_pri');
+ $elder_ppi_notes[$elder_id[$i]] = $this->db->f('ppi_notes');
+ $i++;
+ }
+ $total_elders=$i;
+ array_multisort($elder_name, $elder_id);
+ //var_dump($elder_name); print "<br><br>"; var_dump($elder_id);
+
+ $header_row="<th width=$comp_width><font size=-2>Elder Name</th>";
+
+ $elder_width=400; $ppi_width=75; $table_width=$elder_width + $num_months*$ppi_width;
+ $table_data="";
+ for($m=$num_months; $m >= 0; $m--) {
+ $year = date('Y') - $m;
+ $header_row .= "<th width=150><font size=-2>$year</th>";
+ $ppis[$m] = 0;
+ }
+
+ for ($j=0; $j < count($elder_id); $j++) {
+ $id = $elder_id[$j];
+ $name = $elder_name[$j];
+ $phone = $elder_phone[$id];
+
+ $link_data['menuaction'] = 'eq.eq.ppi_update';
+ $link_data['interviewer'] = $interviewer;
+ $link_data['elder'] = $id;
+ $link_data['name'] = $name;
+ $link_data['ppi'] = '';
+ $link_data['eqpresppi'] = $eqpresppi;
+ $link_data['action'] = 'add';
+ $link = $GLOBALS['phpgw']->link('/eq/index.php',$link_data);
+ $this->nextmatchs->template_alternate_row_color(&$this->t);
+ $table_data.= "<tr bgcolor=". $this->t->get_var('tr_color') ."><td title=\"$phone\"><a href=$link>$name</a></td>";
+
+ // Find out how many times PPIs were performed in the past $num_months for this Elder
+ for($m=$num_months; $m >= 0; $m--) {
+ $year = date('Y') - $m;
+ $year_start = $year - 1 . "-12-31"; $year_end = $year + 1 . "-01-01";
+ $sql = "SELECT * FROM eq_ppi WHERE date > '$year_start' AND date < '$year_end' ".
+ "AND elder=" . $id . " AND eqpresppi=1";
+ $this->db2->query($sql,__LINE__,__FILE__);
+
+ if(!$total_ppis[$m]) { $total_ppis[$m] = 0; }
+ if($this->db2->next_record()) {
+ $ppis[$m]++; $total_ppis[$m]++; $ppi_recorded[$companionship][$m]=1;
+ $link_data['menuaction'] = 'eq.eq.ppi_update';
+ $link_data['companionship'] = $companionship;
+ $link_data['interviewer'] = $this->db2->f('interviewer');
+ $link_data['elder'] = $id;
+ $link_data['name'] = $name;
+ $link_data['ppi'] = $this->db2->f('ppi');
+ $link_data['eqpresppi'] = $eqpresppi;
+ $link_data['action'] = 'view';
+ $date = $this->db2->f('date');
+ $date_array = explode("-",$date);
+ $month = $date_array[1];
+ $day = $date_array[2];
+ $link = $GLOBALS['phpgw']->link('/eq/index.php',$link_data);
+ $table_data .= '<td align=center><a href='.$link.'><img src="images/checkmark.gif"> '.$month.'-'.$day.'</a></td>';
+ }
+ else { $table_data .= "<td> </td>"; }
+ }
+ $table_data .= "</tr>\n";
+ }
+ $table_data .= "<tr><td colspan=20><hr></td></tr>";
+
+ $stat_data = "<tr><td><b><font size=-2>$total_elders Elders<br>PPI Totals:</font></b></td>";
+ for($m=$num_months; $m >=0; $m--) {
+ $percent = ceil(($ppis[$m] / $total_elders)*100);
+ $stat_data .= "<td align=center><font size=-2><b>$ppis[$m]<br>$percent%</font></b></td>";
+ }
+ $stat_data .= "</tr>";