X-Git-Url: http://git.pippins.net/embedvideo/.git/%27%20%20%20%20.%20%24GLOBALS%5B%27phpgw%27%5D-%3Elink%28%27inc/jquery/jquery.tablesorter.css%27%29.%27?a=blobdiff_plain;f=inc%2Fclass.tc.inc.php;h=c3a2b7971e8d49c6315d9d12ad9d45d74b96871b;hb=e0b83b187067cb6b9b7ecfbdd65387c3fed0c237;hp=fd885ae33ab0b519bb1bea858d2021d2edd39dc4;hpb=dac99ce35c9d3b885f7cc2584493812923303b3d;p=eq%2F.git
diff --git a/inc/class.tc.inc.php b/inc/class.tc.inc.php
index fd885ae..c3a2b79 100644
--- a/inc/class.tc.inc.php
+++ b/inc/class.tc.inc.php
@@ -15,6 +15,7 @@ class tc
{
var $db;
var $db2;
+ var $db3;
var $t;
var $nextmatchs;
var $grants;
@@ -34,6 +35,7 @@ class tc
var $script_path;
var $max_appointments;
var $max_presidency_members;
+ var $ppi_frequency_label;
var $public_functions = array
(
@@ -66,6 +68,7 @@ class tc
'assign_view' => True,
'assign_update' => True,
'get_time_selection_form' => True,
+ 'ht_sandbox' => True,
);
function tc()
@@ -104,10 +107,34 @@ class tc
$this->current_month = $this->current_month-0; // Make it numeric
$this->current_year = `date '+%Y'`;
$this->current_year = $this->current_year-0; // Make it numeric
+
+ if ($this->ppi_frequency == 12) {
+ $this->ppi_frequency_label = "Annual";
+ } else if ($this->ppi_frequency == 6) {
+ $this->ppi_frequency_label = "Semi-Annual";
+ } else if ($this->ppi_frequency == 3) {
+ $this->ppi_frequency_label = "Quarterly";
+ } else if ($this->ppi_frequency == 1) {
+ $this->ppi_frequency_label = "Monthly";
+ } else {
+ $this->ppi_frequency_label = "Periodic";
+ }
echo parse_navbar();
$this->display_app_header();
}
+
+ function logToFile($func, $msg)
+ {
+ // open file
+ $fd = fopen($this->upload_target_path . "/tc_trace.log", "a");
+ // append date/time to message
+ $str = "[" . date("Y/m/d h:i:s", mktime()) . "] [" . $func . "] " . $msg;
+ // write string
+ fwrite($fd, $str . "\n");
+ // close file
+ fclose($fd);
+ }
function save_sessiondata()
{
@@ -190,7 +217,10 @@ class tc
$this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ht_view'));
$this->t->set_var('title','Hometeaching');
- $sql = "SELECT * FROM tc_district where valid=1 ORDER BY district ASC";
+ $this->t->set_var('ht_sandbox_link',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ht_sandbox'));
+ $this->t->set_var('ht_sandbox_link_title','Hometeaching Sandbox');
+
+ $sql = "SELECT * FROM tc_district AS td JOIN tc_individual AS ti WHERE td.supervisor=ti.individual AND td.valid=1 ORDER BY td.district ASC";
$this->db->query($sql,__LINE__,__FILE__);
$i=0;
while ($this->db->next_record()) {
@@ -200,20 +230,20 @@ class tc
$i++;
}
- $sql = "SELECT * FROM tc_indiv where valid=1 ORDER BY indiv ASC";
+ $sql = "SELECT * FROM tc_individual where valid=1 ORDER BY individual ASC";
$this->db->query($sql,__LINE__,__FILE__);
$i=0;
while ($this->db->next_record()) {
- $indiv_id[$i] = $this->db->f('indiv');
+ $individual[$i] = $this->db->f('individual');
$indiv_name[$i] = $this->db->f('name');
- $indiv_phone[$indiv_id[$i]] = $this->db->f('phone');
+ $indiv_phone[$individual[$i]] = $this->db->f('phone');
$i++;
}
- array_multisort($indiv_name, $indiv_id);
+ array_multisort($indiv_name, $individual);
- // Make an array mapping indiv_ids to indiv_names
- for($i=0; $i < count($indiv_id); $i++) {
- $id = $indiv_id[$i];
+ // Make an array mapping individuals to indiv_names
+ for($i=0; $i < count($individual); $i++) {
+ $id = $individual[$i];
$indivs[$id] = $indiv_name[$i];
}
@@ -242,7 +272,7 @@ class tc
for ($j=0; $j < count($unique_companionships); $j++) {
$companion_table_entry = "";
// Select all the companions in each companionship
- $sql = "SELECT * FROM tc_companionship where valid=1 and ".
+ $sql = "SELECT * FROM tc_companion where valid=1 and ".
"companionship=". $unique_companionships[$j]['companionship'];
$this->db->query($sql,__LINE__,__FILE__);
@@ -250,15 +280,15 @@ class tc
// Get this companions information
if($companion_table_entry != "") { $companion_table_entry .= "
$assignment_name | ";
$header_row="Assignments | Willingness | ";
- $sql = "SELECT * FROM tc_willingness WHERE indiv=".$indiv_id." AND assignment=".$assignment;
+ $sql = "SELECT * FROM tc_willingness WHERE individual=".$individual." AND assignment=".$assignment;
$this->db2->query($sql,__LINE__,__FILE__);
$value = $assignment;
@@ -1325,7 +1698,7 @@ class tc
function ppi_sched()
{
$this->t->set_file(array('ppi_sched_t' => 'ppi_sched.tpl'));
- $this->t->set_block('ppi_sched_t','indiv_list','indivlist');
+ $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'));
@@ -1333,70 +1706,46 @@ class tc
$this->t->set_var('lang_reset','Clear Changes');
$this->t->set_var('ppi_link',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ppi_view'));
- $this->t->set_var('ppi_link_title','Yearly PPIs');
+ $this->t->set_var('ppi_link_title',$this->ppi_frequency_label . ' PPIs');
$this->t->set_var('schedule_ppi_link',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ppi_sched'));
- $this->t->set_var('schedule_ppi_link_title','Schedule Yearly PPIs');
+ $this->t->set_var('schedule_ppi_link_title','Schedule ' . $this->ppi_frequency_label . ' PPIs');
$this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ppi_sched&action=save'));
- $this->t->set_var('title','Yearly 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 = "individual Name | ";
- $header_row.= "Phone | ";
- $header_row.= "Priority | ";
- $header_row.= "Last PPI | ";
- $header_row.= "Scheduling Notes | ";
+ $this->t->set_var('title',$this->ppi_frequency_label . ' PPI Scheduler');
+
+ $header_row = "Individual Name | ";
+ $header_row.= "Phone | ";
+ $header_row.= "Priority | ";
+ $header_row.= "Last PPI | ";
+ $header_row.= "Scheduling Notes | ";
$table_data=""; $completed_data=""; $totals_data="";
$year = date('Y');
-
- // Get the President
- $sql = "SELECT * FROM tc_presidency where president=1 and 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('indiv');
- $presidency_id = $this->db->f('presidency');
- $interviewer = $this->db->f('indiv');
- $district_number = '*';
- $district_name = $president_name;
- $sql = "SELECT * FROM tc_indiv where indiv='$president_id'";
- $this->db2->query($sql,__LINE__,__FILE__);
- if($this->db2->next_record()) {
- $indiv_id = $this->db2->f('indiv_id');
- }
- $sql = "SELECT * FROM tc_indiv where indiv_id='$indiv_id'";
- $this->db2->query($sql,__LINE__,__FILE__);
- if($this->db2->next_record()) {
- $president_address = $this->db2->f('address');
- }
- } else {
- print "
-E- Unable to locate President in tc_presidency table
";
- return;
- }
+ $month = date('m');
+ $period = intval(($month-1)/$this->ppi_frequency) + 1;
+ $start_of_period = ($period-1)*$this->ppi_frequency + 1;
+ $end_of_period = $period * $this->ppi_frequency;
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) {
- $indiv = $entry['indiv'];
+ $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
- $sql = "SELECT * FROM tc_appointment where appointment='$appointment' and indiv='$indiv' and location='$location'";
+ $sql = "SELECT * FROM tc_appointment where appointment='$appointment' and individual='$indiv' and location='$location'";
$this->db->query($sql,__LINE__,__FILE__);
if(!$this->db->next_record()) {
// Perform database save actions here
$this->db->query("UPDATE tc_appointment set " .
- " indiv='" . $indiv . "'" .
+ " individual='" . $indiv . "'" .
",location='" . $location . "'" .
" WHERE appointment=" . $appointment,__LINE__,__FILE__);
// Email the appointment
@@ -1406,18 +1755,20 @@ class tc
}
// Save any changes made to the ppi notes table
- $new_data = get_var('ppi_notes',array('POST'));
+ $new_data = get_var('notes',array('POST'));
foreach ($new_data as $entry) {
- $ppi_notes = $entry['notes'];
- $indiv_id = $entry['indiv_id'];
- $ppi_pri = $entry['pri'];
+ $notes = $entry['notes'];
+ $individual = $entry['individual'];
+ $priority = $entry['pri'];
// Perform database save actions here
- $this->db->query("UPDATE tc_indiv set " .
- " ppi_notes='" . $ppi_notes . "'" .
- ",ppi_pri='" . $ppi_pri . "'" .
- " WHERE indiv=" . $indiv_id,__LINE__,__FILE__);
-
+ $sql = "SELECT * FROM tc_individual WHERE individual='$individual'";
+ $this->db->query($sql,__LINE__,__FILE__);
+ if ($this->db->next_record()) {
+ $scheduling_priority = $this->db->f('scheduling_priority');
+ //$this->logToFile("ppi_sched", "UPDATE tc_scheduling_priority SET priority='$priority', notes=\"$notes\" WHERE scheduling_priority='$scheduling_priority'");
+ $this->db2->query("UPDATE tc_scheduling_priority SET priority='$priority', notes=\"$notes\" WHERE scheduling_priority='$scheduling_priority'", __LINE__, __FILE__);
+ }
}
$take_me_to_url = $GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ppi_sched');
@@ -1425,53 +1776,65 @@ class tc
}
// create the individual id -> individual name mapping
- // TODO: changed this so it picks the quorum dynamically
- $sql = "SELECT * FROM tc_indiv where valid=1 and steward='Elder' ORDER BY name ASC";
+ $sql = "SELECT * FROM tc_individual where valid=1 and steward='$this->default_stewardship' ORDER BY name ASC";
$this->db->query($sql,__LINE__,__FILE__);
$i=0;
- $indiv_id = NULL;
+ $individual = NULL;
$indiv_name = NULL;
while ($this->db->next_record()) {
$indiv_name[$i] = $this->db->f('name');
- $indiv_id[$i] = $this->db->f('indiv');
+ $individual[$i] = $this->db->f('individual');
$i++;
}
- array_multisort($indiv_name, $indiv_id);
+ 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 = "Date | ";
- $appt_header_row.= "Time | ";
- $appt_header_row.= "indiv | ";
- $appt_header_row.= "Location | ";
- $appt_table_data = "";
+ $appt_header_row = "Date | ";
+ $appt_header_row.= "Time | ";
+ $appt_header_row.= "Individual | ";
+ $appt_header_row.= "Location | ";
+ $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('indiv');
- $location = $this->db->f('location');
- if(($location == "") && ($indiv > 0)) { $location = "$president_last_name"." home ($president_address)"; }
-
- $date = $this->db->f('date');
+ $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
+ $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);
+
+ // 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->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]));
@@ -1479,17 +1842,17 @@ class tc
$appt_table_data.= "$day_string | ";
$appt_table_data.= "$time_string | ";
- $appt_table_data.= ' |
---|