$unassigned_family_list = get_var('unassignedFamilies',array('POST'));
if ($assignedHT_list || $unassignedHT_list) {
- $sql = "INSERT INTO tc_companionship_sandbox (district) VALUES (\"$district\")";
+ $sql = "INSERT INTO tc_companionship_sandbox (tc_companionship,district) VALUES (\"NULL\",\"$district\")";
$this->db2->query($sql,__LINE__,__FILE__);
$companionship_sandbox = mysql_insert_id();
while ($this->db->next_record()) {
$companionship = $this->db->f('companionship');
$district = $this->db->f('district');
- $sql = "INSERT INTO tc_companionship_sandbox (district) VALUES (\"$district\")";
+ $sql = "INSERT INTO tc_companionship_sandbox (tc_companionship,district) VALUES (\"$companionship\",\"$district\")";
$this->db2->query($sql,__LINE__,__FILE__);
$companionship_sandbox = mysql_insert_id();
- $sql = "SELECT * FROM tc_companion WHERE companionship=$companionship AND valid=1";
+ $sql = "SELECT * FROM tc_companion AS tc JOIN tc_individual AS ti WHERE tc.individual=ti.individual AND tc.companionship=$companionship AND tc.valid=1 AND ti.valid=1";
$this->db2->query($sql,__LINE__,__FILE__);
while ($this->db2->next_record()) {
$individual = $this->db2->f('individual');
while ($this->db2->next_record()) {
$family_name = $this->db2->f('name') . " Family";
$family_id = $this->db2->f('tc_family');
+ $tc_companionship = $this->db2->f('tc_companionship');
$sandbox_table_data .= "<tr>";
- $sandbox_table_data .= "<td align=\"Left\">$family_name</td>";
+ $sandbox_table_data .= "<td align=\"Left\" width=\"1000\">$family_name</td>";
# get 12 months visit data for given family
- for($m=12; $m >= 0; $m--) {
+ for($m=$this->sandbox_stats_num_months; $m >= 0; $m--) {
$month = $this->current_month - $m;
$year = $this->current_year;
if($month <= 0) { $remainder = $month; $month = 12 + $remainder; $year=$year-1; }
$month_end = "$year"."-"."$month"."-"."31";
$month = "$month"."/"."$year";
- $sql = "SELECT * FROM tc_visit WHERE date >= '$month_start' AND date <= '$month_end' AND companionship!=0 AND family=". $family_id;
+ if ($this->sandbox_visits_comp_only == 0) {
+ $sql = "SELECT * FROM tc_visit WHERE date >= '$month_start' AND date <= '$month_end' AND companionship!=0 AND family=". $family_id;
+ } else {
+ $sql = "SELECT * FROM tc_visit WHERE date >= '$month_start' AND date <= '$month_end' AND companionship=$tc_companionship AND family=". $family_id;
+ }
$query_id = $this->db3->query($sql,__LINE__,__FILE__);
if($this->db3->next_record()) {
$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');
$this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ppi_sched&action=save'));
$this->t->set_var('title',$this->ppi_frequency_label . ' PPI Scheduler');
- $indiv_width=500; $phone_width=25; $pri_width=10; $notes_width=128; $ppi_date_width=20;
- $table_width=$indiv_width + $phone_width + $pri_width + $notes_width + $ppi_date_width;
- $header_row = "<th width=$indiv_width><font size=-2>individual 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=$ppi_date_width><font size=-2>Last PPI</th>";
- $header_row.= "<th width=$notes_width><font size=-2>Scheduling Notes</th>";
+ $header_row = "<th ><font size=-2>Individual Name</th>";
+ $header_row.= "<th><font size=-2>Phone</th>";
+ $header_row.= "<th><font size=-2>Priority</th>";
+ $header_row.= "<th><font size=-2>Last PPI</th>";
+ $header_row.= "<th><font size=-2>Scheduling Notes</th>";
$table_data=""; $completed_data=""; $totals_data="";
$year = date('Y');
array_multisort($indiv_name, $individual);
// APPOINTMENT TABLE
- $date_width=250; $time_width=100; $indiv_width=200; $location_width=100;
- $appt_table_width=$date_width + $time_width + $indiv_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=$indiv_width><font size=-2>Individual</th>";
- $appt_header_row.= "<th width=$location_width><font size=-2>Location</th>";
+ $appt_header_row = "<th><font size=-2>Date</th>";
+ $appt_header_row.= "<th><font size=-2>Time</th>";
+ $appt_header_row.= "<th><font size=-2>Individual</th>";
+ $appt_header_row.= "<th><font size=-2>Location</th>";
$appt_table_data = "";
$table_data="";
$appt_table_data = "";
// Display a scheduling table for this presidency member
- $district_number = '*';
- $district_name = $presidency_name;
- $not_completed_table_title = "District ".$district_number.": ".$district_name.": All indivs with " . $this->ppi_frequency_label . " PPI Not Completed";
- $appt_table_title = "District ".$district_number.": ".$district_name.": ".$this->ppi_frequency_label." PPI Appointment Slots";
+ $not_completed_table_title = "All individuals with " . $this->ppi_frequency_label . " PPI Not Completed";
+ $appt_table_title = $presidency_name . ": " . $this->ppi_frequency_label." PPI Appointment Slots";
$this->t->set_var('not_completed_table_title',$not_completed_table_title);
$this->t->set_var('appt_table_title',$appt_table_title);
}
$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->set_var('lang_save','Save Appts for ' . $presidency_name);
+
$this->t->fp('apptlist','appt_list',True);
}
}
} // End for individuals Loop
- $completed_table_title = "District ".$district_number.": ".$district_name.": All indivs with " . $this->ppi_frequency_label . " PPI Completed";
- $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>Individual</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>PPI Notes</th>";
+ $completed_table_title = "All individuals with " . $this->ppi_frequency_label . " PPI Completed";
+ $completed_header_row = "<th><font size=-2>Individual</th>";
+ $completed_header_row.= "<th><font size=-2>Phone</th>";
+ $completed_header_row.= "<th><font size=-2>Date</th>";
+ $completed_header_row.= "<th><font size=-2>PPI Notes</th>";
$this->t->set_var('completed_table_title',$completed_table_title);
- $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->set_var('lang_save','Save Pri / Notes');
$this->t->fp('indivlist','individual_list',True);
- $indivs_width=300; $totals_width=100;
- $totals_table_width=$indivs_width + $totals_width;
- $totals_header_row = "<th width=$indivs_width><font size=-2>Individuals</th>";
- $totals_header_row.= "<th width=$totals_width><font size=-2>$year</th>";
+ $totals_header_row = "<th><font size=-2>Individuals</th>";
+ $totals_header_row.= "<th><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 Individuals with " . $this->ppi_frequency_label . " PPIs completed:</b></font></td>";
$totals_data.= "<td align=center><font size=-2><b>$indivs_with_yearly_ppi / $total_indivs</b></font></td>";
$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->set_var('ppi_frequency_label',$this->ppi_frequency_label);
$this->t->pfp('out','ppi_sched_t');
$this->save_sessiondata();
$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('/tc/index.php','menuaction=tc.tc.int_view'));
$this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.int_sched&action=save'));
$this->t->set_var('title','Hometeaching Interviews Scheduler');
- $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 = "<th width=$indiv_width><font size=-2>Individual</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>";
+ $header_row = "<th><font size=-2>Individual</th>";
+ $header_row.= "<th><font size=-2>Phone</th>";
+ $header_row.= "<th><font size=-2>Priority</th>";
+ $header_row.= "<th><font size=-2>Last Interview</th>";
+ $header_row.= "<th><font size=-2>Scheduling Notes</th>";
$table_data=""; $completed_data=""; $totals_data="";
$year = date('Y');
// APPOINTMENT TABLE
$district = 1;
- $date_width=250; $time_width=100; $indiv_width=200; $location_width=100;
- $appt_table_width=$date_width + $time_width + $indiv_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=$indiv_width><font size=-2>Individual</th>";
- $appt_header_row.= "<th width=$location_width><font size=-2>Location</th>";
+ $appt_header_row = "<th><font size=-2>Date</th>";
+ $appt_header_row.= "<th><font size=-2>Time</th>";
+ $appt_header_row.= "<th><font size=-2>Individual</th>";
+ $appt_header_row.= "<th><font size=-2>Location</th>";
$appt_table_data = "";
$total_comps=0; $comps_with_quarterly_int=0;
$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
}
}
- $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>Individual</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>";
+ $completed_header_row = "<th><font size=-2>Individual</th>";
+ $completed_header_row.= "<th><font size=-2>Phone</th>";
+ $completed_header_row.= "<th><font size=-2>Date</th>";
+ $completed_header_row.= "<th><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->set_var('lang_save_appt','Save Appts for ' . $districts[$d]['name']);
+ $this->t->set_var('lang_save_pri_notes','Save Pri / Notes for '. $districts[$d]['name']);
$this->t->fp('indivlist','individual_list',True);
} // End for each district loop
- $indivs_width=300; $totals_width=100;
- $totals_table_width=$indivs_width + $totals_width;
- $totals_header_row = "<th width=$indivs_width><font size=-2>Individuals</th>";
- $totals_header_row.= "<th width=$totals_width><font size=-2>$year</th>";
+ $totals_header_row = "<th><font size=-2>Individuals</th>";
+ $totals_header_row.= "<th><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>";
$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();
$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('/tc/index.php','menuaction=tc.tc.vis_view'));
$this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.vis_sched&action=save'));
$this->t->set_var('title','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>";
+ $header_row = "<th><font size=-2>Family Name</th>";
+ $header_row.= "<th><font size=-2>Phone</th>";
+ $header_row.= "<th><font size=-2>Priority</th>";
+ $header_row.= "<th><font size=-2>Last Visit</th>";
+ $header_row.= "<th><font size=-2>Scheduling Notes</th>";
$table_data=""; $completed_data=""; $totals_data="";
$year = date('Y');
}
// 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_header_row = "<th><font size=-2>Date</th>";
+ $appt_header_row.= "<th><font size=-2>Time</th>";
+ $appt_header_row.= "<th><font size=-2>Family</th>";
+ $appt_header_row.= "<th><font size=-2>Location</th>";
$appt_table_data = "";
// Find out what the President ID is
$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
}
}
- $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>";
+ $completed_header_row = "<th><font size=-2>Family Name</th>";
+ $completed_header_row.= "<th><font size=-2>Phone</th>";
+ $completed_header_row.= "<th><font size=-2>Date</th>";
+ $completed_header_row.= "<th><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_header_row = "<th><font size=-2>Families</th>";
+ $totals_header_row.= "<th><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>";
$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->set_var('lang_save_appt','Save Appts');
+ $this->t->set_var('lang_save_pri_notes','Save Pri / Notes');
$this->t->fp('apptlist','appt_list',True);
$this->t->pfp('out','vis_sched_t');
// Update an existing appointment
if($appointment < $this->max_appointments)
{
+ // If we deleted the appointment, we still need to send a cancellation to the right people
+ // Make a note of the old email now in case we need it later
+ $old_indiv_email = "";
+ $sql = "SELECT * FROM tc_appointment where appointment='$appointment'";
+ $this->db->query($sql,__LINE__,__FILE__);
+ if($this->db->next_record()) {
+ $old_individual = $this->db->f('individual');
+ $old_family = $this->db->f('family');
+ if($old_individual > 0) {
+ $sql = "SELECT * FROM tc_individual where individual='$old_individual'";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ if($this->db2->next_record()) {
+ $old_indiv_email = $this->db2->f('email');
+ }
+ }
+ if($old_family > 0) {
+ $sql = "SELECT * FROM tc_family WHERE family='$old_family'";
+ $this->db2->query($sql,__LINE__,__FILE__);
+ if($this->db2->next_record()) {
+ $old_individual = $this->db2->f('individual');
+ $sql = "SELECT * FROM tc_individual where individual='$old_individual'";
+ $this->db3->query($sql,__LINE__,__FILE__);
+ if($this->db3->next_record()) {
+ $old_indiv_email = $this->db3->f('email');
+ }
+ }
+ }
+ }
+
//Only perform a database update if we have made a change to this appointment
$sql = "SELECT * FROM tc_appointment where " .
"appointment='$appointment'" .
" WHERE appointment=" . $appointment,__LINE__,__FILE__);
// Email the appointment
- $this->email_appt($appointment);
+ $this->email_appt($appointment, $old_indiv_email);
}
}
$this->save_sessiondata();
}
- function email_appt($appointment)
+ function email_appt($appointment, $old_indiv_email)
{
//print "Emailing notification of appointment: $appointment <br>";
$appt_name = "";
$phone = "";
$uid = $this->db->f('uid');
-
+
// Extract the year, month, day, hours, minutes, seconds from the appointment time
$appt_date = $this->db->f('date');
$date_array = explode("-",$appt_date);
if($this->db2->next_record()) {
$indiv_name = $this->db2->f('name');
$phone = $this->db2->f('phone');
+ $indiv_email = $this->db2->f('email');
+ if(($this->email_individual_appt == 1) && ($indiv_email != "")) {
+ $email .= ", $indiv_email";
+ }
$appt_name = $indiv_name . " Interview";
$duration = $this->default_ppi_appt_duration * 60;
}
$phone = $this->db3->f('phone');
$family_name = $this->db3->f('name');
$phone = $this->db3->f('phone');
+ $indiv_email = $this->db3->f('email');
+ if(($this->email_individual_appt == 1) && ($indiv_email != "")) {
+ $email .= ", $indiv_email";
+ }
}
$appt_name = $family_name . " Family Visit";
$duration = $this->default_visit_appt_duration * 60;
if(($uid == 0) && ($appt_name != "")) {
// Create a new calendar item for this appointment, since this must be the first time we
// are sending it out.
- print "Sent new appointment to " . $interviewer . " at " . $email . " for " . $appt_name . "<br>";
+ print "Sent new appointment for " . $interviewer . " to '" . $email . "' for " . $appt_name . "<br>";
$uid = rand() . rand(); // Generate a random identifier for this appointment
$subject = "Created: $appt_name";
} else if(($uid != 0) && ($appt_name == "")) {
// Remove the calendar item for this appointment since it has already been sent
// and there is no name we have changed it to.
- print "Sent deleted appointment to " . $interviewer . " at " . $email . " for " . $appt_date . " " . $appt_time . "<br>";
+ if(($this->email_individual_appt == 1) && ($old_indiv_email != "")) {
+ $email .= ", $old_indiv_email";
+ }
+ print "Sent deleted appointment for " . $interviewer . " to '" . $email . "' for " . $appt_date . " " . $appt_time . "<br>";
$subject = "Canceled: $appt_date $appt_time";
$this->db->query("UPDATE tc_appointment set" .
$dtend, $date, $location, $subject, $subject, $uid);
} else if($uid != 0) {
// Update the existing appointment since we have changed it
- print "Sent updated appointment to " . $interviewer . " at " . $email . " for " . $appt_name . "<br>";
+ print "Sent updated appointment for " . $interviewer . " to '" . $email . "' for " . $appt_name . "<br>";
$subject = "Canceled: $appt_date $appt_time";
$action = "CANCEL";