X-Git-Url: http://git.pippins.net/embedvideo/.git/?a=blobdiff_plain;f=inc%2Fclass.tc.inc.php;h=bcf18e26a79ba6cfb9ee1f9b721ed95a6b287e56;hb=be758016f3cd29cef9b854c3473df80c12668763;hp=031d19fcfc19fa6f0df09b675b14ce72a35d041c;hpb=a7dc2d93b41c38fb9d80f7547a06706e3904e8ab;p=eq%2F.git diff --git a/inc/class.tc.inc.php b/inc/class.tc.inc.php index 031d19f..bcf18e2 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 .= " / "; } $companionship = $this->db->f('companionship'); - $indiv_id = $this->db->f('indiv'); - $name = $indivs[$indiv_id]; - $phone = $indiv_phone[$indiv_id]; + $individual = $this->db->f('individual'); + $name = $indivs[$individual]; + $phone = $indiv_phone[$individual]; $companion_table_entry .= "$name"; } $table_data.= "$companion_table_entry

"; // Get the names of the families assigned this home teaching companionship - $sql = "SELECT * from tc_family where valid=1 AND companionship=".$unique_companionships[$j]['companionship']; + $sql = "SELECT * FROM tc_family AS tf JOIN tc_individual AS ti WHERE tf.individual=ti.individual AND tf.valid=1 AND tf.companionship=".$unique_companionships[$j]['companionship']; $sql = $sql . " ORDER BY name ASC"; $this->db->query($sql,__LINE__,__FILE__); $k=0; @@ -290,7 +320,7 @@ class tc $query_id = $this->db2->query($sql,__LINE__,__FILE__); if($this->db2->num_rows($query_id) == 0) { // We did not find any visits made by the currently assigned companionship, - // look for visits made by any other companionship other than 0. (0 == EQ Presidency Visit) + // look for visits made by any other companionship other than 0. (0 == Presidency Visit) $sql = "SELECT * FROM tc_visit WHERE date >= '$month_start' AND date <= '$month_end' ". " AND companionship!=0". " AND family=". $family_id; @@ -368,6 +398,336 @@ class tc } + function ht_sandbox() + { + $this->t->set_file(array('ht_sandbox_t' => 'ht_sandbox.tpl')); + $this->t->set_block('ht_sandbox_t','comp_list','c_list'); + $this->t->set_block('ht_sandbox_t','district_list','d_list'); + $this->t->set_block('ht_sandbox_t','unassigned_ht_list','uht_list'); + $this->t->set_block('ht_sandbox_t','assigned_ht_list','aht_list'); + $this->t->set_block('ht_sandbox_t','unassigned_family_list','uf_list'); + $this->t->set_block('ht_sandbox_t','assigned_family_list','af_list'); + $this->t->set_block('ht_sandbox_t','district_table_list','dt_list'); + $this->t->set_block('ht_sandbox_t','companionship_table_list','ct_list'); + + $this->t->set_var('submit_action',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ht_sandbox&action=add')); + + $action = get_var('action',array('GET','POST')); + + $this->t->set_var('title','Hometeaching Sandbox'); + + if ($_POST['add']) { + #$this->t->set_var('debug_list',$_POST['add']); + $companionship = get_var('companionship',array('POST')); + $district = get_var('district',array('POST')); + $assignedHT_list = get_var('assignedHT',array('POST')); + $unassignedHT_list = get_var('unassignedHT',array('POST')); + $assigned_family_list = get_var('assignedFamiles',array('POST')); + $unassigned_family_list = get_var('unassignedFamilies',array('POST')); + + if ($assignedHT_list || $unassignedHT_list) { + $sql = "INSERT INTO tc_companionship_sandbox (tc_companionship,district) VALUES (\"NULL\",\"$district\")"; + $this->db2->query($sql,__LINE__,__FILE__); + $companionship_sandbox = mysql_insert_id(); + + foreach ($assignedHT_list as $individual) { + $sql = "INSERT INTO tc_companion_sandbox (individual,companionship) VALUES (\"$individual\",\"$companionship_sandbox\")"; + $this->db->query($sql,__LINE__,__FILE__); + } + foreach ($unassignedHT_list as $individual) { + $sql = "INSERT INTO tc_companion_sandbox (individual,companionship) VALUES (\"$individual\",\"$companionship_sandbox\")"; + $this->db->query($sql,__LINE__,__FILE__); + } + foreach ($assigned_family_list as $family) { + $sql = "UPDATE tc_family_sandbox SET companionship=$companionship_sandbox WHERE family=$family"; + $this->db->query($sql,__LINE__,__FILE__); + } + foreach ($unassigned_family_list as $family) { + $sql = "UPDATE tc_family_sandbox SET companionship=$companionship_sandbox WHERE family=$family"; + $this->db->query($sql,__LINE__,__FILE__); + } + } else { + $this->t->set_var('debug_list','You must select at least one companion!'); + } + } else if ($_POST['delete']) { + #$this->t->set_var('debug_list',$_POST['delete']); + $companionship = get_var('companionship',array('POST')); + #$this->t->set_var('debug_list',$companionship); + + if ($companionship > 0) { + # unassign families + $sql = "UPDATE tc_family_sandbox SET companionship=NULL WHERE companionship=$companionship"; + $this->db->query($sql,__LINE__,__FILE__); + + # remove companions + $sql = "DELETE FROM tc_companion_sandbox WHERE companionship=$companionship"; + $this->db->query($sql,__LINE__,__FILE__); + + # remove companionship + $sql = "DELETE FROM tc_companionship_sandbox WHERE companionship=$companionship"; + $this->db->query($sql,__LINE__,__FILE__); + } else { + $this->t->set_var('debug_list','You must select a companionship to delete!'); + } + } else if ($_POST['update']) { + #$this->t->set_var('debug_list',$_POST['update']); + $companionship = get_var('companionship',array('POST')); + $district = get_var('district',array('POST')); + $assignedHT_list = get_var('assignedHT',array('POST')); + $unassignedHT_list = get_var('unassignedHT',array('POST')); + $assigned_family_list = get_var('assignedFamiles',array('POST')); + $unassigned_family_list = get_var('unassignedFamilies',array('POST')); + #$this->t->set_var('debug_list',$district); + + if ($companionship > 0) { + if ($assignedHT_list || $unassignedHT_list) { + # clear out existing info about companionship + $sql = "UPDATE tc_family_sandbox SET companionship=NULL WHERE companionship=$companionship"; + $this->db->query($sql,__LINE__,__FILE__); + $sql = "DELETE FROM tc_companion_sandbox WHERE companionship=$companionship"; + $this->db->query($sql,__LINE__,__FILE__); + + # set new info about companionship + $sql = "UPDATE tc_companionship_sandbox SET district=$district WHERE companionship=$companionship"; + $this->db->query($sql,__LINE__,__FILE__); + foreach ($assignedHT_list as $individual) { + $sql = "INSERT INTO tc_companion_sandbox (individual,companionship) VALUES (\"$individual\",\"$companionship\")"; + $this->db->query($sql,__LINE__,__FILE__); + } + foreach ($unassignedHT_list as $individual) { + $sql = "INSERT INTO tc_companion_sandbox (individual,companionship) VALUES (\"$individual\",\"$companionship\")"; + $this->db->query($sql,__LINE__,__FILE__); + } + foreach ($assigned_family_list as $family) { + $sql = "UPDATE tc_family_sandbox SET companionship=$companionship WHERE family=$family"; + $this->db->query($sql,__LINE__,__FILE__); + } + foreach ($unassigned_family_list as $family) { + $sql = "UPDATE tc_family_sandbox SET companionship=$companionship WHERE family=$family"; + $this->db->query($sql,__LINE__,__FILE__); + } + } else { + $this->t->set_var('debug_list','You must select at least one companion!'); + } + } else { + $this->t->set_var('debug_list','You must select a companionship to update!'); + } + } else if ($_POST['reset']) { + #$this->t->set_var('debug_list',$_POST['reset']); + + $sql = "TRUNCATE TABLE tc_district_sandbox"; + $this->db->query($sql,__LINE__,__FILE__); + $sql = "TRUNCATE TABLE tc_family_sandbox"; + $this->db->query($sql,__LINE__,__FILE__); + $sql = "TRUNCATE TABLE tc_companion_sandbox"; + $this->db->query($sql,__LINE__,__FILE__); + $sql = "TRUNCATE TABLE tc_companionship_sandbox"; + $this->db->query($sql,__LINE__,__FILE__); + + # populate tc_district_sandbox + $sql = "SELECT * FROM tc_district WHERE valid=1"; + $this->db->query($sql,__LINE__,__FILE__); + while ($this->db->next_record()) { + $district = $this->db->f('district'); + $supervisor = $this->db->f('supervisor'); + $sql = "INSERT INTO tc_district_sandbox (district,supervisor) VALUES (\"$district\",\"$supervisor\")"; + $this->db2->query($sql,__LINE__,__FILE__); + } + + # populate family, companion, and companionship tables + $sql = "SELECT * FROM tc_companionship WHERE valid=1"; + $this->db->query($sql,__LINE__,__FILE__); + while ($this->db->next_record()) { + $companionship = $this->db->f('companionship'); + $district = $this->db->f('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 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'); + $sql = "INSERT INTO tc_companion_sandbox (individual,companionship) VALUES (\"$individual\",\"$companionship_sandbox\")"; + $this->db3->query($sql,__LINE__,__FILE__); + } + + $sql = "SELECT * FROM tc_family WHERE companionship=$companionship AND valid=1"; + $this->db2->query($sql,__LINE__,__FILE__); + while ($this->db2->next_record()) { + $individual = $this->db2->f('individual'); + $family = $this->db2->f('family'); + $sql = "INSERT INTO tc_family_sandbox (tc_family,individual,companionship) VALUES (\"$family\",\"$individual\",\"$companionship_sandbox\")"; + $this->db3->query($sql,__LINE__,__FILE__); + } + } + } + + // get list of companionships + $sql = "SELECT DISTINCT companionship FROM tc_companionship_sandbox ORDER BY companionship ASC"; + $this->db->query($sql,__LINE__,__FILE__); + $unique_companionships = ''; + $unique_companionships[0]['companionship'] = 0; + $this->t->set_var('companionship_list',''); + $this->t->fp('c_list','comp_list',True); + $j=1; + while ($this->db->next_record()) { + $companionship = $this->db->f('companionship'); + $unique_companionships[$j]['companionship'] = $companionship; + $combined_companionship = ""; + $sql = "SELECT * FROM tc_companion_sandbox AS tc JOIN tc_individual AS ti WHERE tc.individual=ti.individual AND tc.companionship=$companionship ORDER BY ti.name ASC"; + $this->db2->query($sql,__LINE__,__FILE__); + while ($this->db2->next_record()) { + if ($combined_companionship == "") { + $combined_companionship .= $this->db2->f('name'); + } else { + $combined_companionship .= " / " . $this->db2->f('name'); + } + } + $this->t->set_var('companionship_list',''); + $this->t->fp('c_list','comp_list',True); + $j++; + } + + # get list of districts + $sql = "SELECT DISTINCT district FROM tc_district_sandbox ORDER BY district ASC"; + $this->db->query($sql,__LINE__,__FILE__); + $districts = ''; + $num_districts=0; + while ($this->db->next_record()) { + $districts[$num_districts] = $this->db->f('district'); + $this->t->set_var('district',''); + $this->t->fp('d_list','district_list',True); + $num_districts++; + } + + # get list of individuals who are and are not home teachers + $sql = "SELECT * FROM tc_individual WHERE steward='$this->default_stewardship' AND valid=1 ORDER BY name ASC"; + $this->db->query($sql,__LINE__,__FILE__); + while ($this->db->next_record()) { + $individual = $this->db->f('individual'); + $name = $this->db->f('name'); + $sql = "SELECT DISTINCT * FROM tc_companion_sandbox WHERE individual=$individual"; + $this->db2->query($sql,__LINE__,__FILE__); + if ($this->db2->next_record()) { + $this->t->set_var('assigned_ht',''); + $this->t->fp('aht_list','assigned_ht_list',True); + } else { + $this->t->set_var('unassigned_ht',''); + $this->t->fp('uht_list','unassigned_ht_list',True); + } + } + + # get list of families who are and are not assigned home teachers + $sql = "SELECT * FROM tc_family_sandbox AS tf JOIN tc_individual AS ti WHERE tf.individual=ti.individual ORDER BY ti.name ASC"; + $this->db->query($sql,__LINE__,__FILE__); + while ($this->db->next_record()) { + $individual = $this->db->f('individual'); + $family = $this->db->f('family'); + $name = $this->db->f('name'); + if ($this->db->f('companionship') != 0) { + $this->t->set_var('assigned_family',''); + $this->t->fp('af_list','assigned_family_list',True); + } else { + $this->t->set_var('unassigned_family',''); + $this->t->fp('uf_list','unassigned_family_list',True); + } + } + + # populate ht districts table + $sandbox_table_data = ""; + + # set up column headers + $sandbox_table_data .= ""; + for ($d = 0; $d < $num_districts; $d++) { + $sandbox_table_data .= ""; + } + + # get each companionship in each district + $sandbox_table_data .= ""; + for ($d = 0; $d < $num_districts; $d++) { + $sandbox_table_data .= ""; + } + $sandbox_table_data .= ""; + + $sandbox_table_data .= "
District " . $districts[$d] . "
"; + $sandbox_table_data .= ""; + $sql = "SELECT DISTINCT companionship FROM tc_companionship_sandbox WHERE district=$districts[$d] ORDER BY companionship ASC"; + $this->db->query($sql,__LINE__,__FILE__); + while ($this->db->next_record()) { + $sandbox_table_data .= ""; + } + + $sandbox_table_data .= "
"; + $companionship = $this->db->f('companionship'); + # get names of companions in this companionship + $sql = "SELECT * FROM tc_companion_sandbox AS tc JOIN tc_individual AS ti WHERE tc.individual=ti.individual AND companionship=$companionship ORDER BY ti.name ASC"; + $this->db2->query($sql,__LINE__,__FILE__); + $companion_names = ""; + while ($this->db2->next_record()) { + if ($companion_names == "") { + $companion_names .= $this->db2->f('name'); + } else { + $companion_names .= " / " . $this->db2->f('name'); + } + } + $this->nextmatchs->template_alternate_row_color(&$this->t); + $sandbox_table_data .= ""; + $sandbox_table_data .= ""; + $sandbox_table_data .= ""; + $sandbox_table_data .= "
$companion_names
"; + + # get families they visit + $sql = "SELECT * FROM tc_companionship_sandbox AS tcp JOIN (tc_family_sandbox AS tf, tc_individual AS ti) WHERE tcp.companionship=$companionship AND tcp.companionship=tf.companionship AND tf.individual=ti.individual"; + $this->db2->query($sql,__LINE__,__FILE__); + 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'); + $this->nextmatchs->template_alternate_row_color(&$this->t); + $sandbox_table_data .= ""; + $sandbox_table_data .= ""; + + # get 12 months visit data for given family + 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; } + if($month < 10) { $month = "0"."$month"; } + $month_start = "$year"."-"."$month"."-"."01"; + $month_end = "$year"."-"."$month"."-"."31"; + $month = "$month"."/"."$year"; + + 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()) { + if($this->db3->f('visited') == 'y') { + $sandbox_table_data .= ""; + } else if($this->db3->f('visited') == 'n') { + $sandbox_table_data .= ""; + } else { + $sandbox_table_data .= ""; + } + } else { + $sandbox_table_data .= ""; + } + } + $sandbox_table_data .= ""; + } + $sandbox_table_data .= "
$family_name  
"; + $sandbox_table_data .= "
"; + $this->t->set_var('district_table',$sandbox_table_data); + + $this->t->pfp('out','ht_sandbox_t'); + $this->save_sessiondata(); + } + + function ht_update() { $this->t->set_file(array('ht_update_t' => 'ht_update.tpl')); @@ -427,20 +787,20 @@ class tc return false; } - $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]; } @@ -466,16 +826,16 @@ class tc // Get this companions information if($companion_table_entry != "") { $companion_table_entry .= " / "; } $companionship = $this->db->f('companionship'); - $indiv_id = $this->db->f('indiv'); - $name = $indivs[$indiv_id]; - $phone = $indiv_phone[$indiv_id]; + $individual = $this->db->f('individual'); + $name = $indivs[$individual]; + $phone = $indiv_phone[$individual]; $companion_table_entry .= "$name"; } $table_data.= "$companion_table_entry

"; // Get the names of the families assigned this home teaching companionship - $sql = "SELECT * from tc_family where valid=1 AND companionship=".$unique_companionships[$j]['companionship']; - $sql = $sql . " ORDER BY name ASC"; + $sql = "SELECT * FROM tc_family AS tf JOIN tc_individual AS ti WHERE tf.individual=ti.individual AND tf.valid=1 AND tf.companionship=".$unique_companionships[$j]['companionship']; + $sql = $sql . " ORDER BY ti.name ASC"; $this->db->query($sql,__LINE__,__FILE__); while ($this->db->next_record()) { $family_name = $this->db->f('name'); @@ -492,7 +852,7 @@ class tc $query_id = $this->db2->query($sql,__LINE__,__FILE__); if($this->db2->num_rows($query_id) == 0) { // We did not find any visits made by the currently assigned companionship, - // look for visits made by any other companionship other than 0. (0 == EQ Presidency Visit) + // look for visits made by any other companionship other than 0. (0 == Presidency Visit) $sql = "SELECT * FROM tc_visit WHERE date >= '$month_start' AND date <= '$month_end' ". " AND companionship!=0". " AND family=". $family_id; @@ -584,7 +944,7 @@ class tc $this->db2->query($sql,__LINE__,__FILE__); if($this->db2->next_record()) { $activity_list[$i]['name'] = $this->db2->f('name'); - $activity_list[$i]['code'] = $this->db2->f('code'); + $activity_list[$i]['abbreviation'] = $this->db2->f('abbreviation'); } $i++; } @@ -638,7 +998,7 @@ class tc $this->db2->query($sql,__LINE__,__FILE__); if($this->db2->next_record()) { $this->t->set_var('name', $this->db2->f('name')); - $this->t->set_var('code', $this->db2->f('code')); + $this->t->set_var('abbreviation', $this->db2->f('abbreviation')); } $this->t->set_var('lang_name','Assignment'); $this->t->set_var('lang_date','Date'); @@ -665,12 +1025,12 @@ class tc $i = 0; while ($this->db->next_record()) { - $part_list[$i]['indiv'] = $this->db->f('indiv'); + $part_list[$i]['individual'] = $this->db->f('individual'); $i++; } for ($i=0; $i < count($part_list); $i++) { - $sql = "SELECT * FROM tc_indiv WHERE indiv=" . $part_list[$i]['indiv']; + $sql = "SELECT * FROM tc_individual WHERE individual=" . $part_list[$i]['individual']; $this->db->query($sql,__LINE__,__FILE__); $this->db->next_record(); $names[$i] = $this->db->f('name'); @@ -679,7 +1039,7 @@ class tc for ($i=0; $i < count($names); $i++) { //$this->nextmatchs->template_alternate_row_color(&$this->t); - $this->t->set_var('indiv_name',$names[$i]); + $this->t->set_var('individual_name',$names[$i]); if(($i+1) % 3 == 0) { $this->t->set_var('table_sep',""); } else { @@ -696,7 +1056,7 @@ class tc function act_update() { $this->t->set_file(array('form' => 'act_update.tpl')); - $this->t->set_block('form','indiv_list','list'); + $this->t->set_block('form','individual_list','list'); $this->t->set_block('form','add','addhandle'); $this->t->set_block('form','edit','edithandle'); $this->t->set_var('lang_done','Done'); @@ -712,18 +1072,18 @@ class tc $this->db->query("UPDATE tc_activity set " . " assignment='" . $activity['assignment'] . "', date='" . $activity['date'] . "'" . - ", notes='" . $activity['notes'] . "'" . + ", notes=\"" . $activity['notes'] . "\"" . " WHERE activity=" . $activity['activity'],__LINE__,__FILE__); // Delete all the individuals who have particiapted in this activity $this->db->query("DELETE from tc_participation where activity=".$activity['activity'],__LINE__,__FILE__); // Re-add the individuals who are checked as having participated in this activity - $indivs = get_var('indiv_name',array('POST')); + $indivs = get_var('individual_name',array('POST')); if(is_array($indivs)) { // Only do the foreach loop if we have a valid array of indivs to work with - foreach ($indivs as $indiv) { - $this->db->query("INSERT INTO tc_participation (indiv,activity) " . - "VALUES (" . $indiv . ",". $activity['activity'] . ")",__LINE__,__FILE__); + foreach ($indivs as $individual) { + $this->db->query("INSERT INTO tc_participation (individual,activity) " . + "VALUES (" . $individual . ",". $activity['activity'] . ")",__LINE__,__FILE__); } } @@ -737,21 +1097,21 @@ class tc $activity['notes']= get_var('notes',array('POST')); $this->db->query("INSERT INTO tc_activity (assignment,date,notes) " . "VALUES ('" . $activity['assignment'] . "','" . - $activity['date'] . "','" . $activity['notes'] . "')",__LINE__,__FILE__); + $activity['date'] . "',\"" . $activity['notes'] . "\")",__LINE__,__FILE__); $sql = "SELECT * FROM tc_activity WHERE assignment='".$activity['assignment']."' " . - " AND date='".$activity['date']."' AND notes='".$activity['notes']."'"; + " AND date='".$activity['date']."' AND notes=\"".$activity['notes']."\""; $this->db->query($sql,__LINE__,__FILE__); if($this->db->next_record()) { //print "activity: " . $this->db->f('activity') . "
"; $activity['activity'] = $this->db->f('activity'); } - $indivs = get_var('indiv_name',array('POST')); - foreach ($indivs as $indiv) + $indivs = get_var('individual_name',array('POST')); + foreach ($indivs as $individual) { - $this->db->query("INSERT INTO tc_participation (indiv,activity) " . - "VALUES (" . $indiv . ",". $activity['activity'] . ")",__LINE__,__FILE__); + $this->db->query("INSERT INTO tc_participation (individual,activity) " . + "VALUES (" . $individual . ",". $activity['activity'] . ")",__LINE__,__FILE__); } $this->act_list(); @@ -792,7 +1152,7 @@ class tc while ($this->db->next_record()) { $assignments[$i]['assignment'] = $this->db->f('assignment'); $assignments[$i]['name'] = $this->db->f('name'); - $assignments[$i]['code'] = $this->db->f('code'); + $assignments[$i]['abbreviation'] = $this->db->f('abbreviation'); $i++; } @@ -812,23 +1172,23 @@ class tc $this->t->set_var('assignment_data',$assignment_data); // Create individual selection boxes - $sql = "SELECT * FROM tc_indiv"; + $sql = "SELECT * FROM tc_individual"; $this->db->query($sql,__LINE__,__FILE__); $i=0; while ($this->db->next_record()) { if($this->db->f('valid') == 1 || $action != 'add') { $indiv_name[$i] = $this->db->f('name'); - $indiv_id[$i] = $this->db->f('indiv'); + $individual[$i] = $this->db->f('individual'); $indiv_valid[$i] = $this->db->f('valid'); $i++; } } - array_multisort($indiv_name, $indiv_id, $indiv_valid); + array_multisort($indiv_name, $individual, $indiv_valid); $j=0; - for ($i=0; $i < count($indiv_id); $i++) { + for ($i=0; $i < count($individual); $i++) { //$this->nextmatchs->template_alternate_row_color(&$this->t); - $sql = "SELECT * FROM tc_participation where activity=". $activity['activity'] . " AND indiv=" . $indiv_id[$i]; + $sql = "SELECT * FROM tc_participation where activity=". $activity['activity'] . " AND individual=" . $individual[$i]; $this->db->query($sql,__LINE__,__FILE__); if($this->db->next_record()) { $this->t->set_var('checked','checked'); @@ -838,15 +1198,15 @@ class tc $checked=0; } if($checked || $indiv_valid[$i] == 1) { - $this->t->set_var('indiv_name',$indiv_name[$i]); - $this->t->set_var('indiv',$indiv_id[$i]); + $this->t->set_var('individual_name',$indiv_name[$i]); + $this->t->set_var('individual',$individual[$i]); if(($j+1) % 3 == 0) { $this->t->set_var('table_sep',""); } else { $this->t->set_var('table_sep',""); } if(($j) % 3 == 0) { $this->nextmatchs->template_alternate_row_color(&$this->t); } - $this->t->fp('list','indiv_list',True); + $this->t->fp('list','individual_list',True); $j++; } } @@ -870,7 +1230,7 @@ class tc $this->t->set_block('assign_view_t','assign_view','list'); $this->t->set_var('lang_name','Assignment Name'); - $this->t->set_var('lang_code','Code'); + $this->t->set_var('lang_code','Abbreviation'); $sql = "SELECT * FROM tc_assignment ORDER BY name ASC"; $this->db->query($sql,__LINE__,__FILE__); @@ -880,14 +1240,14 @@ class tc while ($this->db->next_record()) { $assignment_list[$i]['assignment'] = $this->db->f('assignment'); $assignment_list[$i]['name'] = $this->db->f('name'); - $assignment_list[$i]['code'] = $this->db->f('code'); + $assignment_list[$i]['abbreviation'] = $this->db->f('abbreviation'); $i++; } for ($i=0; $i < count($assignment_list); $i++) { $this->nextmatchs->template_alternate_row_color(&$this->t); $this->t->set_var('name',$assignment_list[$i]['name']); - $this->t->set_var('code',$assignment_list[$i]['code']); + $this->t->set_var('abbreviation',$assignment_list[$i]['abbreviation']); $link_data['menuaction'] = 'tc.tc.assign_update'; $link_data['assignment'] = $assignment_list[$i]['assignment']; @@ -921,10 +1281,10 @@ class tc if($action == 'save') { $assignment['name'] = get_var('name',array('POST')); - $assignment['code'] = get_var('code',array('POST')); + $assignment['abbreviation'] = get_var('abbreviation',array('POST')); $this->db->query("UPDATE tc_assignment set " . " name='" . $assignment['name'] . "'" . - ", code='" . $assignment['code'] . "'" . + ", abbreviation='" . $assignment['abbreviation'] . "'" . " WHERE assignment=" . $assignment['assignment'],__LINE__,__FILE__); $this->assign_view(); @@ -933,10 +1293,10 @@ class tc if($action == 'insert') { $assignment['name'] = get_var('name',array('POST')); - $assignment['code'] = get_var('code',array('POST')); - $this->db->query("INSERT INTO tc_assignment (name,code) " . + $assignment['abbreviation'] = get_var('abbreviation',array('POST')); + $this->db->query("INSERT INTO tc_assignment (name,abbreviation) " . "VALUES ('" . $assignment['name'] . "','" . - $assignment['code'] . "')",__LINE__,__FILE__); + $assignment['abbreviation'] . "')",__LINE__,__FILE__); $this->assign_view(); return false; } @@ -944,7 +1304,7 @@ class tc if($action == 'add') { $assignment['assignment'] = 0; $this->t->set_var('name',''); - $this->t->set_var('code',''); + $this->t->set_var('abbreviation',''); $this->t->set_var('lang_done','Cancel'); $this->t->set_var('lang_action','Adding New Assignment'); $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.assign_update&assignment=' . @@ -957,7 +1317,7 @@ class tc $this->db->query($sql,__LINE__,__FILE__); $this->db->next_record(); $this->t->set_var('name', $this->db->f('name')); - $this->t->set_var('code', $this->db->f('code')); + $this->t->set_var('abbreviation', $this->db->f('abbreviation')); $this->t->set_var('lang_done','Cancel'); $this->t->set_var('lang_action','Editing Assignment'); $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.assign_update&assignment=' . @@ -981,18 +1341,17 @@ class tc { $this->t->set_file(array('par_view_t' => 'par_view.tpl')); $this->t->set_block('par_view_t','header_list','list1'); - $this->t->set_block('par_view_t','indiv_list','list2'); + $this->t->set_block('par_view_t','individual_list','list2'); - // TODO: changed this so it picks the quorum dynamically - $sql = "SELECT * FROM tc_indiv where steward='Elder' and valid=1"; + $sql = "SELECT * FROM tc_individual where steward='$this->default_stewardship' and valid=1"; $this->db->query($sql,__LINE__,__FILE__); $i=0; while ($this->db->next_record()) { - $indiv_name[$i] = $this->db->f('name'); - $indiv_id[$i] = $this->db->f('indiv'); + $individual_name[$i] = $this->db->f('name'); + $individual[$i] = $this->db->f('individual'); $i++; } - array_multisort($indiv_name, $indiv_id); + array_multisort($individual_name, $individual); $sql = "SELECT * FROM tc_activity ORDER BY date DESC"; $this->db->query($sql,__LINE__,__FILE__); @@ -1012,30 +1371,30 @@ class tc while($this->db->next_record()) { $assignment_list[$i]['assignment'] = $this->db->f('assignment'); $assignment_list[$i]['name'] = $this->db->f('name'); - $assignment_list[$i]['code'] = $this->db->f('code'); + $assignment_list[$i]['abbreviation'] = $this->db->f('abbreviation'); $i++; } - $indiv_width=300; $part_width=25; $assignment_width=50; - $total_width=$indiv_width+$part_width; + $individual_width=300; $part_width=25; $assignment_width=50; + $total_width=$individual_width+$part_width; for ($i=0; $i < count($assignment_list); $i++) { $this->t->set_var('assignment_name',$assignment_list[$i]['name']); - $this->t->set_var('assignment_code',$assignment_list[$i]['code']); + $this->t->set_var('assignment_abbreviation',$assignment_list[$i]['abbreviation']); $this->t->fp('list1','header_list',True); $total_width += $assignment_width; } - for ($i=0; $i < count($indiv_id); $i++) { + for ($i=0; $i < count($individual); $i++) { $participated=0; $part_table = ''; $this->nextmatchs->template_alternate_row_color(&$this->t); - $this->t->set_var('indiv_name',$indiv_name[$i]); + $this->t->set_var('individual_name',$individual_name[$i]); for ($j=0; $j < count($assignment_list); $j++) { $date = "0000-00-00"; $checkmark=0; $num_matches=0; for ($k=0; $k < count($activity_list); $k++) { if($assignment_list[$j]['assignment'] == $activity_list[$k]['assignment']) { $sql = "SELECT * FROM tc_participation where " . " activity=" . $activity_list[$k]['activity'] . - " AND indiv=" . $indiv_id[$i]; + " AND individual=" . $individual[$i]; $this->db->query($sql,__LINE__,__FILE__); while($this->db->next_record()) { if($activity_list[$k]['date'] > $date) { @@ -1061,10 +1420,10 @@ class tc $part_table .= ' '; } $this->t->set_var('part_table',$part_table); - $this->t->fp('list2','indiv_list',True); + $this->t->fp('list2','individual_list',True); } $this->t->set_var('total_width',$total_width); - $this->t->set_var('indiv_width',$indiv_width); + $this->t->set_var('individual_width',$individual_width); $this->t->set_var('part_width',$part_width); $this->t->set_var('act_width',$act_width); $this->t->pfp('out','par_view_t'); @@ -1075,7 +1434,7 @@ class tc { $this->t->set_file(array('willing_view_t' => 'willing_view.tpl')); $this->t->set_block('willing_view_t','header_list','list1'); - $this->t->set_block('willing_view_t','indiv_list','list2'); + $this->t->set_block('willing_view_t','individual_list','list2'); $this->t->set_var('lang_filter','Filter'); $this->t->set_var('lang_filter_unwilling','Filter out unwilling individuals:'); @@ -1094,17 +1453,16 @@ class tc } $this->t->set_var('filter_input',$filter_input); - // TODO: changed this so it picks the quorum dynamically - $sql = "SELECT * FROM tc_indiv where steward='Elder' and valid=1"; + $sql = "SELECT * FROM tc_individual where steward='$this->default_stewardship' and valid=1"; $this->db->query($sql,__LINE__,__FILE__); $i=0; while ($this->db->next_record()) { $indiv_name[$i] = $this->db->f('name'); - $indiv_id[$i] = $this->db->f('indiv'); - $indiv_phone[$indiv_id[$i]] = $this->db->f('phone'); + $individual[$i] = $this->db->f('individual'); + $indiv_phone[$individual[$i]] = $this->db->f('phone'); $i++; } - array_multisort($indiv_name, $indiv_id); + array_multisort($indiv_name, $individual); $sql = "SELECT * FROM tc_assignment ORDER BY name ASC"; $this->db->query($sql,__LINE__,__FILE__); @@ -1112,7 +1470,7 @@ class tc while($this->db->next_record()) { $assignment_list[$i]['assignment'] = $this->db->f('assignment'); $assignment_list[$i]['name'] = $this->db->f('name'); - $assignment_list[$i]['code'] = $this->db->f('code'); + $assignment_list[$i]['abbreviation'] = $this->db->f('abbreviation'); $i++; } @@ -1133,23 +1491,23 @@ class tc for ($i=0; $i < count($assignment_list); $i++) { $this->t->set_var('assignment_name',$assignment_list[$i]['name']); - $this->t->set_var('assignment_code',$assignment_list[$i]['code']); + $this->t->set_var('assignment_abbreviation',$assignment_list[$i]['abbreviation']); $this->t->fp('list1','header_list',True); $total_width += $assignment_width; $total_willing[$i] = 0; } - for ($i=0; $i < count($indiv_id); $i++) { + for ($i=0; $i < count($individual); $i++) { $willing_table = ''; $indiv_willing=0; - $this->t->set_var('indiv_name',$indiv_name[$i]); - $this->t->set_var('indiv_phone',$indiv_phone[$indiv_id[$i]]); - $this->t->set_var('editurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.willing_update&indiv_id=' . - $indiv_id[$i] . '&action=' . 'edit')); + $this->t->set_var('individual_name',$indiv_name[$i]); + $this->t->set_var('individual_phone',$indiv_phone[$individual[$i]]); + $this->t->set_var('editurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.willing_update&individual=' . + $individual[$i] . '&action=' . 'edit')); for ($j=0; $j < count($assignment_list); $j++) { $found_willingness=0; $sql = "SELECT * FROM tc_willingness where " . " assignment=" . $assignment_list[$j]['assignment'] . - " AND indiv=" . $indiv_id[$i]; + " AND individual=" . $individual[$i]; $this->db->query($sql,__LINE__,__FILE__); while($this->db->next_record()) { $found_willingness=1; @@ -1163,7 +1521,7 @@ class tc $date = $this->db2->f('date'); $sql = "SELECT * FROM tc_participation where " . " activity=" . $activity . - " AND indiv=". $indiv_id[$i]; + " AND individual=". $individual[$i]; $this->db3->query($sql,__LINE__,__FILE__); if($this->db3->next_record()) { $date_part = $date; @@ -1188,7 +1546,7 @@ class tc } if(($indiv_willing == 1) || ($filter_unwilling == 'n')) { $this->t->set_var('willing_table',$willing_table); - $this->t->fp('list2','indiv_list',True); + $this->t->fp('list2','individual_list',True); $this->nextmatchs->template_alternate_row_color(&$this->t); } } @@ -1200,7 +1558,7 @@ class tc $this->t->set_var('stat_table',$stat_table); $this->t->set_var('total_width',$total_width); - $this->t->set_var('indiv_width',$indiv_width); + $this->t->set_var('individual_width',$indiv_width); $this->t->set_var('willing_width',$willing_width); $this->t->pfp('out','willing_view_t'); $this->save_sessiondata(); @@ -1216,8 +1574,8 @@ class tc $this->t->set_block('willing_update_t','assignment_list','list'); $this->t->set_block('willing_update_t','save','savehandle'); - $indiv_id = get_var('indiv_id',array('GET','POST')); - $this->t->set_var('indiv_id',$indiv_id); + $individual = get_var('individual',array('GET','POST')); + $this->t->set_var('individual',$individual); $action = get_var('action',array('GET','POST')); $this->t->set_var('done_action',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.willing_view')); @@ -1227,7 +1585,7 @@ class tc if($action == 'save') { // Delete all the previous willingness entries for this individual - $this->db->query("DELETE from tc_willingness where indiv=" . $indiv_id ,__LINE__,__FILE__); + $this->db->query("DELETE from tc_willingness where individual=" . $individual ,__LINE__,__FILE__); // Now, add the assignment willingness that is checked for this individual $new_data = get_var('willingness',array('POST')); @@ -1235,9 +1593,9 @@ class tc $data_array = explode("/",$data); $assignment = $data_array[0]; $willing = $data_array[1]; - //print "indiv_id: $indiv_id assignment: $assignment willing: $willing
"; - $this->db->query("INSERT INTO tc_willingness (indiv,assignment,willing) " . - "VALUES (" . $indiv_id .",". $assignment .",'". $willing . "')",__LINE__,__FILE__); + //print "individual: $individual assignment: $assignment willing: $willing
"; + $this->db->query("INSERT INTO tc_willingness (individual,assignment,willing) " . + "VALUES (" . $individual .",". $assignment .",'". $willing . "')",__LINE__,__FILE__); } $this->willing_view(); return false; @@ -1247,11 +1605,11 @@ class tc $table_data=""; // Find out the individual's name - $sql = "SELECT * FROM tc_indiv WHERE indiv=".$indiv_id." AND valid=1"; + $sql = "SELECT * FROM tc_individual WHERE individual=".$individual." AND valid=1"; $this->db->query($sql,__LINE__,__FILE__); if($this->db->next_record()) { $indiv_name = $this->db->f('name'); - $this->t->set_var('indiv_name',$indiv_name); + $this->t->set_var('individual_name',$indiv_name); } // Select all the assignments @@ -1261,13 +1619,13 @@ class tc while ($this->db->next_record()) { $assignment = $this->db->f('assignment'); $assignment_name = $this->db->f('name'); - $assignment_code = $this->db->f('code'); + $assignment_abbreviation = $this->db->f('abbreviation'); $this->nextmatchs->template_alternate_row_color(&$this->t); $table_data.="$assignment_name"; $header_row="AssignmentsWillingness"; - $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 +1683,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 +1691,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 EQ 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 +1740,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 +1761,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 EQ 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 +1827,17 @@ class tc $appt_table_data.= "$day_string"; $appt_table_data.= "$time_string"; - $appt_table_data.= ''; $appt_table_data.= ''; - for ($i=0; $i < count($indiv_id); $i++) { - $id = $indiv_id[$i]; - $name = $indiv_name[$i]; - if($indiv_id[$i] == $indiv) { - $selected[$id] = 'selected="selected"'; - } else { - $selected[$id] = ''; - } - $appt_table_data.= ''; + for ($i=0; $i < count($individual); $i++) { + $id = $individual[$i]; + $name = $indiv_name[$i]; + if($individual[$i] == $indiv) { + $selected[$id] = 'selected="selected"'; + } else { + $selected[$id] = ''; + } + $appt_table_data.= ''; } $appt_table_data.=''; @@ -1500,46 +1848,48 @@ 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->set_var('appt_table_data',$appt_table_data); + $this->t->set_var('appt_header_row',$appt_header_row); + $this->t->set_var('lang_save','Save Appts for ' . $presidency_name); + $this->t->fp('apptlist','appt_list',True); + } + // PPI SCHEDULING TABLE - // TODO: changed this so it picks the quorum dynamically - $sql = "SELECT * FROM tc_indiv where valid=1 and steward='Elder' ORDER BY ppi_pri ASC, name ASC"; + $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__); $i=0; - $indiv_id = NULL; + $individual = NULL; 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_ppi_pri[$indiv_id[$i]] = $this->db->f('ppi_pri'); - $indiv_ppi_notes[$indiv_id[$i]] = $this->db->f('ppi_notes'); + $indiv_phone[$individual[$i]] = $this->db->f('phone'); + $indiv_priority[$individual[$i]] = $this->db->f('priority'); + $indiv_notes[$individual[$i]] = $this->db->f('notes'); $i++; $total_indivs++; } - $max = count($indiv_id); - + $max = count($individual); + for($i=0; $i < $max; $i++) { - $id = $indiv_id[$i]; + $id = $individual[$i]; $name = $indiv_name[$i]; $phone = $indiv_phone[$id]; - $ppi_pri = $indiv_ppi_pri[$id]; - $ppi_notes = $indiv_ppi_notes[$id]; - - // If this individual has had a yearly PPI this year, don't show him on the schedule list - $year_start = $year - 1 . "-12-31"; $year_end = $year + 1 . "-01-01"; - $sql = "SELECT * FROM tc_interview WHERE date > '$year_start' AND date < '$year_end' ". - "AND indiv=" . $id . " AND interview_type='ppi'"; + $priority = $indiv_priority[$id]; + $notes = $indiv_notes[$id]; + + // If this individual has had a PPI this period, don't show him on the schedule list + $year_start = $year . "-" . $start_of_period . "-01"; + $year_end = $year . "-" . $end_of_period . "-31"; + $sql = "SELECT * FROM tc_interview WHERE date >= '$year_start' AND date <= '$year_end' ". + "AND individual=" . $id . " AND interview_type='ppi' ORDER BY date DESC"; $this->db2->query($sql,__LINE__,__FILE__); if(!$this->db2->next_record()) { - $sql = "SELECT * FROM tc_interview WHERE indiv=" . $id . " AND interview_type='ppi' ORDER BY date DESC"; + $sql = "SELECT * FROM tc_interview WHERE individual=" . $id . " AND interview_type='ppi' ORDER BY date DESC"; $this->db->query($sql,__LINE__,__FILE__); if($this->db->next_record()) { $date = $this->db->f('date'); @@ -1547,7 +1897,7 @@ class tc $date = ""; } $link_data['menuaction'] = 'tc.tc.ppi_update'; - $link_data['indiv'] = $id; + $link_data['individual'] = $id; $link_data['name'] = $name; $link_data['interview'] = ''; $link_data['interview_type'] = 1; @@ -1558,12 +1908,12 @@ class tc $this->t->set_var('tr_color',$tr_color); $table_data.= "$name"; $table_data.= "$phone"; - //$table_data.= "$ppi_pri"; + //$table_data.= "$priority"; $table_data.= ""; - $table_data.= ''; foreach(range(0,6) as $num) { if($num == 0) { $num = 1; } else {$num = $num*5; } - if($ppi_pri == $num) { + if($priority == $num) { $selected[$num] = 'selected="selected"'; } else { $selected[$num] = ''; @@ -1572,15 +1922,15 @@ class tc } $table_data.= ''; $table_data.= "$date"; - $table_data.= ''; - $table_data.= ''; - $table_data.= ''; + $table_data.= ''; + $table_data.= ''; + $table_data.= ''; $table_data.= ''; $table_data.= ''; } else { $link_data['menuaction'] = 'tc.tc.ppi_update'; $link_data['interviewer'] = $this->db2->f('interviewer'); - $link_data['indiv'] = $this->db2->f('indiv'); + $link_data['individual'] = $this->db2->f('individual'); $link_data['name'] = $name; $link_data['interview'] = $this->db2->f('interview'); $link_data['interview_type'] = $this->db2->f('interview_type'); @@ -1588,39 +1938,36 @@ class tc $link = $GLOBALS['phpgw']->link('/tc/index.php',$link_data); $indivs_with_yearly_ppi++; $date = $this->db2->f('date'); - $ppi_notes = $this->db2->f('notes'); - if(strlen($ppi_notes) > 40) { $ppi_notes = substr($ppi_notes,0,40) . "..."; } + $notes = $this->db2->f('notes'); + if(strlen($notes) > 40) { $notes = substr($notes,0,40) . "..."; } $tr_color2 = $this->nextmatchs->alternate_row_color($tr_color2); $this->t->set_var('tr_color2',$tr_color2); $completed_data.= "$name"; $completed_data.= "$phone"; $completed_data.= "$date"; - $completed_data.= "$ppi_notes"; + $completed_data.= "$notes"; $completed_data.= ''; } } // End for individuals Loop - $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.= "Phone"; - $completed_header_row.= "Date"; - $completed_header_row.= "PPI Notes"; + $completed_table_title = "All individuals with " . $this->ppi_frequency_label . " PPI Completed"; + $completed_header_row = "Individual"; + $completed_header_row.= "Phone"; + $completed_header_row.= "Date"; + $completed_header_row.= "PPI Notes"; - $this->t->set_var('table_width',$table_width); + $this->t->set_var('completed_table_title',$completed_table_title); $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('indivlist','indiv_list',True); + $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 = "Individuals"; - $totals_header_row.= "$year"; + $totals_header_row = "Individuals"; + $totals_header_row.= "$year"; $totals_data.= ""; - $totals_data.= "Total Individuals with yearly PPIs completed:"; + $totals_data.= "Total Individuals with " . $this->ppi_frequency_label . " PPIs completed:"; $totals_data.= "$indivs_with_yearly_ppi / $total_indivs"; $percent = ceil(($indivs_with_yearly_ppi / $total_indivs)*100); $tr_color = $this->nextmatchs->alternate_row_color($tr_color); @@ -1632,7 +1979,7 @@ class tc $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(); @@ -1642,11 +1989,10 @@ class tc function int_sched() { $this->t->set_file(array('int_sched_t' => 'int_sched.tpl')); - $this->t->set_block('int_sched_t','indiv_list','indivlist'); + $this->t->set_block('int_sched_t','individual_list','indivlist'); $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')); @@ -1658,13 +2004,11 @@ class tc $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 = "individual Name"; - $header_row.= "Phone"; - $header_row.= "Priority"; - $header_row.= "Last Interview"; - $header_row.= "Scheduling Notes"; + $header_row = "Individual"; + $header_row.= "Phone"; + $header_row.= "Priority"; + $header_row.= "Last Interview"; + $header_row.= "Scheduling Notes"; $table_data=""; $completed_data=""; $totals_data=""; $year = date('Y'); @@ -1677,52 +2021,46 @@ class tc //print "year: $year month: $month quarter_start: $quarter_start quarter_end: $quarter_end
"; // create the individual id -> individual name mapping - // TODO: changed this so it picks the quorum dynamically - $sql = "SELECT * FROM tc_indiv where steward='Elder' and valid=1 ORDER BY name ASC"; + $sql = "SELECT * FROM tc_individual where steward='$this->default_stewardship' and valid=1 ORDER BY name ASC"; $this->db->query($sql,__LINE__,__FILE__); $i=0; - $indiv_id_data = NULL; + $individual_data = NULL; $indiv_name_data = NULL; while ($this->db->next_record()) { $indiv_name_data[$i] = $this->db->f('name'); - $indiv_id_data[$i] = $this->db->f('indiv'); - $individ2name[$indiv_id_data[$i]] = $indiv_name_data[$i]; + $individual_data[$i] = $this->db->f('individual'); + $individ2name[$individual_data[$i]] = $indiv_name_data[$i]; $i++; } // add any YM that are home teachers $sql = "SELECT * FROM tc_companionship where valid=1"; $this->db->query($sql,__LINE__,__FILE__); while ($this->db->next_record()) { - $tmp_indiv_id = $this->db->f('indiv'); - $sql = "Select * FROM tc_indiv where indiv='$tmp_indiv_id' and steward='' and valid=1"; + $tmp_individual = $this->db->f('individual'); + $sql = "Select * FROM tc_individual where individual='$tmp_individual' and steward='' and valid=1"; $this->db2->query($sql,__LINE__,__FILE__); while ($this->db2->next_record()) { $indiv_name_data[$i] = $this->db2->f('name'); - $indiv_id_data[$i] = $this->db2->f('indiv'); - $individ2name[$indiv_id_data[$i]] = $indiv_name_data[$i]; + $individual_data[$i] = $this->db2->f('individual'); + $individ2name[$individual_data[$i]] = $indiv_name_data[$i]; $i++; } } - array_multisort($indiv_name_data, $indiv_id_data); + array_multisort($indiv_name_data, $individual_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) { - $indiv = $entry['indiv']; + $indiv = $entry['individual']; $appointment = $entry['appointment']; $location = $entry['location']; if($location == "") { $supervisor = $entry['supervisor']; $supervisor_array = explode(",", $individ2name[$supervisor]); $supervisor_last_name = $supervisor_array[0]; - $sql = "SELECT * FROM tc_indiv where indiv='$supervisor'"; - $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'"; + $sql = "SELECT * FROM tc_individual where individual='$supervisor'"; $this->db2->query($sql,__LINE__,__FILE__); if($this->db2->next_record()) { $supervisor_address = $this->db2->f('address'); @@ -1733,12 +2071,12 @@ class tc //print "indiv: $indiv appointment: $appointment
"; //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 @@ -1748,18 +2086,20 @@ class tc } // Save any changes made to the int notes table - $new_data = get_var('int_notes',array('POST')); + $new_data = get_var('hti_notes',array('POST')); foreach ($new_data as $entry) { - $int_notes = $entry['notes']; - $indiv_id = $entry['indiv_id']; + $hti_notes = $entry['notes']; + $individual = $entry['individual']; $indiv_name = $entry['indiv_name']; - $int_pri = $entry['pri']; - //print "int_notes: $int_notes indiv_name: $indiv_name
"; + $hti_pri = $entry['pri']; + //print "hti_notes: $hti_notes indiv_name: $indiv_name
"; // Perform database save actions here - $this->db->query("UPDATE tc_indiv set " . - " int_notes='" . $int_notes . "'" . - ",int_pri='" . $int_pri . "'" . - " WHERE indiv=" . $indiv_id,__LINE__,__FILE__); + $this->db->query("SELECT * FROM tc_companion WHERE individual=$individual and valid=1",__LINE__,__FILE__); + if ($this->db->next_record()) { + $scheduling_priority = $this->db->f('scheduling_priority'); + //$this->logToFile("int_sched", "UPDATE tc_scheduling_priority SET priority='$hti_pri', notes=\"$hti_notes\" WHERE scheduling_priority='$scheduling_priority'"); + $this->db2->query("UPDATE tc_scheduling_priority SET priority='$hti_pri', notes=\"$hti_notes\" WHERE scheduling_priority='$scheduling_priority'",__LINE__,__FILE__); + } } $take_me_to_url = $GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.int_sched'); @@ -1767,7 +2107,7 @@ class tc } // Get the Districts - $sql = "SELECT * FROM tc_district where valid=1 ORDER BY district ASC"; + $sql = "SELECT * FROM tc_district AS td JOIN (tc_presidency AS tp, tc_individual AS ti) WHERE td.district=tp.district AND 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()) { @@ -1775,22 +2115,16 @@ class tc $districts[$i]['district'] = $this->db->f('district'); $districts[$i]['name'] = $this->db->f('name'); $districts[$i]['supervisor'] = $this->db->f('supervisor'); - $sql = "SELECT * FROM tc_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'); - } + $districts[$i]['presidency'] = $this->db->f('presidency'); $i++; } // 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 = "Date"; - $appt_header_row.= "Time"; - $appt_header_row.= "Individual"; - $appt_header_row.= "Location"; + $appt_header_row = "Date"; + $appt_header_row.= "Time"; + $appt_header_row.= "Individual"; + $appt_header_row.= "Location"; $appt_table_data = ""; $total_comps=0; $comps_with_quarterly_int=0; @@ -1803,12 +2137,7 @@ class tc $supervisor = $districts[$d]['supervisor']; $supervisor_array = explode(",", $supervisor); $supervisor_last_name = $supervisor_array[0]; - $sql = "SELECT * FROM tc_indiv where indiv='$supervisor'"; - $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'"; + $sql = "SELECT * FROM tc_individual where individual='$supervisor'"; $this->db2->query($sql,__LINE__,__FILE__); if($this->db2->next_record()) { $supervisor_address = $this->db2->f('address'); @@ -1825,7 +2154,7 @@ class tc while ($this->db->next_record()) { $appointment = $this->db->f('appointment'); - $indiv = $this->db->f('indiv'); + $indiv = $this->db->f('individual'); $location = $this->db->f('location'); if(($location == "") && ($indiv > 0)) { $location = "$supervisor_last_name"." home ($supervisor_address)"; } @@ -1842,12 +2171,12 @@ class tc $appt_table_data.= "$day_string"; $appt_table_data.= "$time_string"; - $appt_table_data.= ''; $appt_table_data.= ''; - for ($i=0; $i < count($indiv_id_data); $i++) { - $id = $indiv_id_data[$i]; + for ($i=0; $i < count($individual_data); $i++) { + $id = $individual_data[$i]; $name = $indiv_name_data[$i]; - if($indiv_id_data[$i] == $indiv) { + if($individual_data[$i] == $indiv) { $selected[$id] = 'selected="selected"'; } else { $selected[$id] = ''; @@ -1868,7 +2197,6 @@ class tc $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 @@ -1885,7 +2213,7 @@ class tc $i=0; for ($j=0; $j < count($unique_companionships); $j++) { // Select all the companions from each companionship - $sql = "SELECT * FROM tc_companionship where valid=1 and companionship=". $unique_companionships[$j]['companionship']; + $sql = "SELECT * FROM tc_companion AS tc JOIN (tc_scheduling_priority AS tsp, tc_individual AS ti) WHERE tc.scheduling_priority=tsp.scheduling_priority AND tc.individual=ti.individual AND tc.valid=1 AND tc.companionship=". $unique_companionships[$j]['companionship']; $this->db->query($sql,__LINE__,__FILE__); $k=0; $int_completed=0; $comp = $unique_companionships[$j]['companionship']; @@ -1894,22 +2222,13 @@ class tc $total_comps++; while ($this->db->next_record()) { // Get this companions information - $indiv_id = $this->db->f('indiv'); + $individual = $this->db->f('individual'); - $sql = "SELECT * FROM tc_indiv where indiv='$indiv_id'"; - $this->db2->query($sql,__LINE__,__FILE__); - if($this->db2->next_record()) { - $indiv_id = $this->db2->f('indiv'); - $indiv_name = $this->db2->f('name'); - $indiv_phone[$indiv_id] = $this->db2->f('phone'); - $indiv_int_pri[$indiv_id] = $this->db2->f('int_pri'); - $indiv_int_notes[$indiv_id] = $this->db2->f('int_notes'); - } - $id = $indiv_id; - $name = $indiv_name; - $phone = $indiv_phone[$id]; - $int_pri = $indiv_int_pri[$id]; - $int_notes = $indiv_int_notes[$id]; + $id = $this->db->f('individual'); + $name = $this->db->f('name'); + $phone = $this->db->f('phone'); + $hti_pri = $this->db->f('priority'); + $hti_notes = $this->db->f('notes'); // If the companionship has already had its quarterly interview, // Skip the other companion in the companionship. @@ -1917,7 +2236,7 @@ class tc $completed_data.= "$name"; $completed_data.= "$phone"; $completed_data.= "$date"; - $completed_data.= "$int_notes"; + $completed_data.= "$hti_notes"; $completed_data.= ''; $tr_color2 = $this->nextmatchs->alternate_row_color($tr_color2); $this->t->set_var('tr_color2',$tr_color2); @@ -1927,11 +2246,11 @@ class tc } // If this companionship has had a hometeaching interview this quarter, don't show them on the schedule list - $sql = "SELECT * FROM tc_interview WHERE date >= '$quarter_start' AND date < '$quarter_end' AND indiv='$id'"; + $sql = "SELECT * FROM tc_interview WHERE date >= '$quarter_start' AND date < '$quarter_end' AND individual='$id' AND interview_type='hti'"; $this->db2->query($sql,__LINE__,__FILE__); if(!$this->db2->next_record()) { - $sql = "SELECT * FROM tc_interview WHERE indiv='$id' ORDER BY date DESC"; + $sql = "SELECT * FROM tc_interview WHERE individual='$id' AND interview_type='hti' ORDER BY date DESC"; $this->db3->query($sql,__LINE__,__FILE__); if($this->db3->next_record()) { $date = $this->db3->f('date'); @@ -1939,19 +2258,20 @@ class tc $date = ""; } $link_data['menuaction'] = 'tc.tc.int_update'; - $link_data['indiv'] = $id; + $link_data['individual'] = $id; $link_data['name'] = $name; $link_data['interview'] = ''; $link_data['action'] = 'add'; + $link_data['interview_type'] = 'hti'; $link_data['interviewer'] = $districts[$d]['supervisor']; $link = $GLOBALS['phpgw']->link('/tc/index.php',$link_data); $table_data.= "$name"; $table_data.= "$phone"; $table_data.= ""; - $table_data.= ''; foreach(range(0,6) as $num) { if($num == 0) { $num = 1; } else {$num = $num*5; } - if($int_pri == $num) { + if($hti_pri == $num) { $selected[$num] = 'selected="selected"'; } else { $selected[$num] = ''; @@ -1960,56 +2280,53 @@ class tc } $table_data.= ''; $table_data.= "$date"; - $table_data.= ''; - $table_data.= ''; - $table_data.= ''; + $table_data.= ''; + $table_data.= ''; + $table_data.= ''; $table_data.= ''; $table_data.= ''."\n"; $i++; } else { $link_data['menuaction'] = 'tc.tc.int_update'; $link_data['interviewer'] = $this->db2->f('interviewer'); - $link_data['indiv'] = $this->db2->f('indiv'); + $link_data['individual'] = $this->db2->f('individual'); $link_data['name'] = $name; $link_data['interview'] = $this->db2->f('interview'); + $link_data['interview_type'] = 'hti'; $link_data['action'] = 'view'; $link = $GLOBALS['phpgw']->link('/tc/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) . "..."; } + $hti_notes = $this->db2->f('notes'); + if(strlen($hti_notes) > 40) { $hti_notes = substr($hti_notes,0,40) . "..."; } $completed_data.= "$name"; $completed_data.= "$phone"; $completed_data.= "$date"; - $completed_data.= "$int_notes"; + $completed_data.= "$hti_notes"; $completed_data.= ''; } } } - $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.= "Phone"; - $completed_header_row.= "Date"; - $completed_header_row.= "Interview Notes"; + $completed_header_row = "Individual"; + $completed_header_row.= "Phone"; + $completed_header_row.= "Date"; + $completed_header_row.= "Interview Notes"; - $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('indivlist','indiv_list',True); + $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 = "Individuals"; - $totals_header_row.= "$year"; + $totals_header_row = "Individuals"; + $totals_header_row.= "$year"; $totals_data.= ""; $totals_data.= "Total Companionships with interviews completed:"; $totals_data.= "$comps_with_quarterly_int / $total_comps"; @@ -2023,7 +2340,6 @@ class tc $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(); @@ -2037,7 +2353,6 @@ class tc $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')); @@ -2049,19 +2364,17 @@ class tc $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 = "Family Name"; - $header_row.= "Phone"; - $header_row.= "Priority"; - $header_row.= "Last Visit"; - $header_row.= "Scheduling Notes"; + $header_row = "Family Name"; + $header_row.= "Phone"; + $header_row.= "Priority"; + $header_row.= "Last Visit"; + $header_row.= "Scheduling Notes"; $table_data=""; $completed_data=""; $totals_data=""; $year = date('Y'); // create the family id -> family name mapping - $sql = "SELECT * FROM tc_family where valid=1 and indiv_id != 0 and companionship != 0 ORDER BY name ASC"; + $sql = "SELECT * FROM tc_family AS tf JOIN tc_individual AS ti WHERE tf.individual=ti.individual AND tf.valid=1 AND tf.individual != 0 AND tf.companionship != 0 AND ti.steward='$this->default_stewardship' ORDER BY ti.name ASC"; $this->db->query($sql,__LINE__,__FILE__); $i=0; $family_id = NULL; @@ -2069,11 +2382,7 @@ class tc $family_id[$i] = $this->db->f('family'); $family_name[$i] = $this->db->f('name'); $familyid2name[$family_id[$i]] = $family_name[$i]; - $sql = "SELECT * FROM tc_indiv where family='$family_id[$i]'"; - $this->db2->query($sql,__LINE__,__FILE__); - if($this->db2->next_record()) { - $familyid2address[$family_id[$i]] = $this->db2->f('address'); - } + $familyid2address[$family_id[$i]] = $this->db->f('address'); $i++; } array_multisort($family_name, $family_id); @@ -2116,12 +2425,12 @@ class tc $visit_notes = $entry['notes']; $family = $entry['family_id']; $visit_pri = $entry['pri']; - // Perform database save actions here - $this->db->query("UPDATE tc_family set " . - " visit_notes='" . $visit_notes . "'" . - ",visit_pri='" . $visit_pri . "'" . - " WHERE family=" . $family,__LINE__,__FILE__); + $this->db->query("SELECT * FROM tc_family WHERE family='$family'",__LINE__,__FILE__); + if ($this->db->next_record()) { + $scheduling_priority = $this->db->f('scheduling_priority'); + $this->db2->query("UPDATE tc_scheduling_priority SET priority='$visit_pri', notes=\"$visit_notes\" WHERE scheduling_priority='$scheduling_priority'", __LINE__, __FILE__); + } } $take_me_to_url = $GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.vis_sched'); @@ -2129,16 +2438,14 @@ class tc } // 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 = "Date"; - $appt_header_row.= "Time"; - $appt_header_row.= "Family"; - $appt_header_row.= "Location"; + $appt_header_row = "Date"; + $appt_header_row.= "Time"; + $appt_header_row.= "Family"; + $appt_header_row.= "Location"; $appt_table_data = ""; - // Find out what the EQ Presidency ID is - $sql = "SELECT * FROM tc_presidency where president=1 and valid=1"; + // Find out what the President ID is + $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()) { $presidency_name = $this->db->f('name'); @@ -2199,47 +2506,21 @@ class tc $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 tc_family where valid=1 and indiv_id != 0 and companionship != 0 ORDER BY visit_pri ASC, name ASC"; + $sql = "SELECT * FROM tc_family AS tf JOIN (tc_scheduling_priority AS tsp, tc_individual as ti) WHERE tf.scheduling_priority=tsp.scheduling_priority AND tf.individual=ti.individual AND tf.valid=1 AND tf.individual != 0 AND tf.companionship != 0 AND ti.steward='$this->default_stewardship' ORDER BY tsp.priority ASC, ti.name 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++; + while ( $this->db->next_record()) { $total_families++; - } - - $sql = "SELECT * FROM tc_indiv where valid=1"; - $this->db->query($sql,__LINE__,__FILE__); - while ($this->db->next_record()) { - $family = $this->db->f('family'); + $id = $this->db->f('family'); + $name = $this->db->f('name'); $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]; + $vis_pri = $this->db->f('priority'); + $vis_notes = $this->db->f('notes'); // 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"; @@ -2249,9 +2530,9 @@ class tc if(!$this->db2->next_record()) { $sql = "SELECT * FROM tc_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'); + $this->db3->query($sql,__LINE__,__FILE__); + if($this->db3->next_record()) { + $date = $this->db3->f('date'); } else { $date = ""; } @@ -2264,7 +2545,7 @@ class tc $table_data.= "$name Family"; $table_data.= "$phone"; $table_data.= ""; - $table_data.= ''; foreach(range(0,6) as $num) { if($num == 0) { $num = 1; } else {$num = $num*5; } if($vis_pri == $num) { @@ -2276,9 +2557,9 @@ class tc } $table_data.= ''; $table_data.= "$date"; - $table_data.= ''; - $table_data.= ''; - $table_data.= ''; + $table_data.= ''; + $table_data.= ''; + $table_data.= ''; $table_data.= ''; $table_data.= ''; $tr_color = $this->nextmatchs->alternate_row_color($tr_color); @@ -2305,17 +2586,13 @@ class tc } } - $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 = "Family Name"; - $completed_header_row.= "Phone"; - $completed_header_row.= "Date"; - $completed_header_row.= "Visit Notes"; + $completed_header_row = "Family Name"; + $completed_header_row.= "Phone"; + $completed_header_row.= "Date"; + $completed_header_row.= "Visit Notes"; - $family_width=300; $totals_width=100; - $totals_table_width=$family_width + $totals_width; - $totals_header_row = "Families"; - $totals_header_row.= "$year"; + $totals_header_row = "Families"; + $totals_header_row.= "$year"; $totals_data.= ""; $totals_data.= "Total Families with yearly Visits completed:"; $totals_data.= "$families_with_yearly_visit / $total_families"; @@ -2327,16 +2604,15 @@ class tc $totals_data.= "$percent%"; $totals_data.= ""; - $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'); @@ -2361,12 +2637,12 @@ class tc $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ppi_view')); $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('title','Yearly PPIs'); + $this->t->set_var('title',$this->ppi_frequency_label . ' 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); @@ -2376,12 +2652,11 @@ class tc $this->t->set_var('lang_num_months','Years of History'); } - $sql = "SELECT * FROM tc_presidency where president=1 and valid=1"; + $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'); - $interviewer = $this->db->f('indiv'); - $interview_type = 'ppi'; + $interviewer = $this->db->f('individual'); } else { print "

-E- Unable to locate President in tc_presidency table

"; return; @@ -2389,23 +2664,22 @@ class tc $this->t->set_var('district_number','*'); $this->t->set_var('district_name',$president_name); - // TODO: changed this so it picks the quorum dynamically - $sql = "SELECT * FROM tc_indiv where steward='Elder' and valid=1 ORDER BY indiv ASC"; + $sql = "SELECT * FROM tc_individual AS ti JOIN tc_scheduling_priority as tsp where ti.scheduling_priority=tsp.scheduling_priority and ti.steward='$this->default_stewardship' and ti.valid=1 ORDER BY ti.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_ppi_pri[$indiv_id[$i]] = $this->db->f('ppi_pri'); - $indiv_ppi_notes[$indiv_id[$i]] = $this->db->f('ppi_notes'); + $indiv_phone[$individual[$i]] = $this->db->f('phone'); + $indiv_priority[$individual[$i]] = $this->db->f('priority'); + $indiv_notes[$individual[$i]] = $this->db->f('notes'); $i++; } $total_indivs=$i; - array_multisort($indiv_name, $indiv_id); - //var_dump($indiv_name); print "

"; var_dump($indiv_id); + 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=""; @@ -2415,17 +2689,17 @@ class tc $ppis[$m] = 0; } - for ($j=0; $j < count($indiv_id); $j++) { - $id = $indiv_id[$j]; + for ($j=0; $j < count($individual); $j++) { + $id = $individual[$j]; $name = $indiv_name[$j]; $phone = $indiv_phone[$id]; $link_data['menuaction'] = 'tc.tc.ppi_update'; $link_data['interviewer'] = $interviewer; - $link_data['indiv'] = $id; + $link_data['individual'] = $id; $link_data['name'] = $name; $link_data['interview'] = ''; - $link_data['interview_type'] = $interview_type; + $link_data['interview_type'] = 'ppi'; $link_data['action'] = 'add'; $link = $GLOBALS['phpgw']->link('/tc/index.php',$link_data); $this->nextmatchs->template_alternate_row_color(&$this->t); @@ -2436,7 +2710,7 @@ class tc $year = date('Y') - $m; $year_start = $year - 1 . "-12-31"; $year_end = $year + 1 . "-01-01"; $sql = "SELECT * FROM tc_interview WHERE date > '$year_start' AND date < '$year_end' ". - "AND indiv=" . $id . " AND interview_type='ppi'"; + "AND individual=" . $id . " AND interview_type='ppi' ORDER BY date DESC"; $this->db2->query($sql,__LINE__,__FILE__); if(!$total_ppis[$m]) { $total_ppis[$m] = 0; } @@ -2448,7 +2722,7 @@ class tc $link_data['indiv'] = $id; $link_data['name'] = $name; $link_data['interview'] = $this->db2->f('interview'); - $link_data['interview_type'] = $interview_type; + $link_data['interview_type'] = 'ppi'; $link_data['action'] = 'view'; $date = $this->db2->f('date'); $date_array = explode("-",$date); @@ -2495,34 +2769,38 @@ class tc $interviewer = get_var('interviewer',array('GET','POST')); $name = get_var('name',array('GET','POST')); $interview = get_var('interview',array('GET','POST')); - $indiv = get_var('indiv',array('GET','POST')); + $individual = get_var('individual',array('GET','POST')); $date = get_var('date',array('GET','POST')); $notes = get_var('notes',array('GET','POST')); $interview_type = get_var('interview_type',array('GET','POST')); - $sql = "SELECT * FROM tc_presidency where valid=1 and (president=1 or counselor=1 or 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('indiv'); + $indiv = $this->db2->f('individual'); $interviewer_name = $this->db2->f('name'); if($indiv == $interviewer) { - $this->t->set_var('interviewer',$interviewer . ' selected'); + $this->t->set_var('interviewer',$indiv . ' selected'); } else { - $this->t->set_var('interviewer',$interviewer); + $this->t->set_var('interviewer',$indiv); } + #print "indiv: $indiv interviewer: $interviewer
"; $this->t->set_var('interviewer_name',$interviewer_name); - $this->t->set_var('interview_type_checked',''); + $this->t->set_var('eqpresppi_checked','checked'); $this->t->fp('int_list','interviewer_list',True); } - + #print "selected interviewer: $interviewer
"; if($action == 'save') { $notes = get_var('notes',array('POST')); $this->db->query("UPDATE tc_interview set " . " interview='" . $interview . "'" . ", interviewer='" . $interviewer . "'" . - ", indiv='" . $indiv . "'" . + ", individual='" . $individual . "'" . ", date='" . $date . "'" . - ", notes='" . $notes . "'" . + ", notes=\"" . $notes . "\"" . ", interview_type='" . $interview_type . "'" . " WHERE interview=" . $interview,__LINE__,__FILE__); $this->ppi_view(); @@ -2531,9 +2809,9 @@ class tc if($action == 'insert') { $notes = get_var('notes',array('POST')); - $this->db->query("INSERT INTO tc_interview (interviewer,indiv,date,notes,interview_type) " . - "VALUES ('" . $interviewer . "','" . $indiv . "','" . - $date . "','" . $notes . "','" . $interview_type ."')",__LINE__,__FILE__); + $this->db->query("INSERT INTO tc_interview (interviewer,individual,date,notes,interview_type) " . + "VALUES ('" . $interviewer . "','" . $individual . "','" . + $date . "',\"" . $notes . "\",'" . $interview_type ."')",__LINE__,__FILE__); $this->ppi_view(); return false; } @@ -2543,11 +2821,11 @@ class tc $this->t->set_var('interview', ''); $this->t->set_var('interviewer', $interviewer); $this->t->set_var('name',$name); - $this->t->set_var('indiv',$indiv); + $this->t->set_var('individual',$individual); $this->t->set_var('date',''); $this->t->set_var('notes',''); $this->t->set_var('interview_type',$interview_type); - $this->t->set_var('interview_type_checked','checked'); + $this->t->set_var('eqpresppi_checked','checked'); $this->t->set_var('lang_done','Cancel'); $this->t->set_var('lang_action','Adding New PPI'); $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.ppi_update&interview=' . @@ -2555,17 +2833,17 @@ class tc } if($action == 'edit' || $action == 'view') { - $sql = "SELECT * FROM tc_interview WHERE interview=".$interview; + $sql = "SELECT * FROM tc_interview WHERE interview=" . $interview . " AND interview_type='ppi'"; $this->db->query($sql,__LINE__,__FILE__); $this->db->next_record(); $this->t->set_var('interview',$interview); $this->t->set_var('name',$name); $this->t->set_var('interviewer', $this->db->f('interviewer')); - $this->t->set_var('indiv',$this->db->f('indiv')); + $this->t->set_var('individual',$this->db->f('individual')); $this->t->set_var('date',$this->db->f('date')); $this->t->set_var('notes',$this->db->f('notes')); $this->t->set_var('interview_type',$this->db->f('interview_type')); - if($this->db->f('interview_type') == 1) { $this->t->set_var('interview_type_checked','checked'); } + if($this->db->f('interview_type') == 'ppi') { $this->t->set_var('eqpresppi_checked','checked'); } } if($action == 'edit') { @@ -2633,7 +2911,7 @@ class tc else if($current_month >= 7 && $current_month <= 9) { $current_month=9; } else if($current_month >= 10 && $current_month <= 12) { $current_month=12; } - $sql = "SELECT * FROM tc_district where valid=1 ORDER BY district ASC"; + $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()) { @@ -2643,18 +2921,18 @@ 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); - for($i=0; $i < count($indiv_id); $i++) { - $id = $indiv_id[$i]; + array_multisort($indiv_name, $individual); + for($i=0; $i < count($individual); $i++) { + $id = $individual[$i]; $indivs[$id] = $indiv_name[$i]; } @@ -2679,7 +2957,7 @@ class tc for($m=$num_months; $m >= 0; $m--) { $ints[$m] = 0; } for ($j=0; $j < count($unique_companionships); $j++) { // 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__); $k=0; @@ -2689,15 +2967,16 @@ class tc // Get this companions information $num_indivs++; $companionship = $this->db->f('companionship'); - $indiv_id = $this->db->f('indiv'); - $name = $indivs[$indiv_id]; - $phone = $indiv_phone[$indiv_id]; + $individual = $this->db->f('individual'); + $name = $indivs[$individual]; + $phone = $indiv_phone[$individual]; $link_data['menuaction'] = 'tc.tc.int_update'; $link_data['companionship'] = $companionship; $link_data['interviewer'] = $supervisor; - $link_data['indiv'] = $indiv_id; + $link_data['individual'] = $individual; $link_data['name'] = $name; $link_data['interview'] = ''; + $link_data['interview_type'] = 'hti'; $link_data['action'] = 'add'; $link = $GLOBALS['phpgw']->link('/tc/index.php',$link_data); $table_data.= "$name"; @@ -2717,7 +2996,7 @@ class tc $month_end = "$year"."-"."$month"."-"."31"; $month = "$month"."/"."$year"; $sql = "SELECT * FROM tc_interview WHERE date >= '$month_start' AND date <= '$month_end' ". - "AND indiv=" . $indiv_id; + "AND individual=" . $individual . " AND interview_type='hti' ORDER BY date DESC"; $this->db2->query($sql,__LINE__,__FILE__); $header_row .= "$month"; @@ -2731,10 +3010,11 @@ class tc $link_data['menuaction'] = 'tc.tc.int_update'; $link_data['companionship'] = $companionship; $link_data['interviewer'] = $this->db2->f('interviewer'); - $link_data['indiv'] = $indiv_id; + $link_data['individual'] = $individual; $link_data['name'] = $name; $link_data['interview'] = $this->db2->f('interview'); $link_data['action'] = 'view'; + $link_data['interview_type'] = 'hti'; $date = $this->db2->f('date'); $date_array = explode("-",$date); $month = $date_array[1]; @@ -2811,27 +3091,27 @@ class tc $this->t->set_var('done_action',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.int_view')); $this->t->set_var('readonly',''); $this->t->set_var('disabled',''); - $this->t->set_var('interview_type_checked',''); + $this->t->set_var('eqpresppi',''); $action = get_var('action',array('GET','POST')); $companionship = get_var('companionship',array('GET','POST')); $interviewer = get_var('interviewer',array('GET','POST')); $name = get_var('name',array('GET','POST')); $interview = get_var('interview',array('GET','POST')); - $indiv = get_var('indiv',array('GET','POST')); + $individual = get_var('individual',array('GET','POST')); $date = get_var('date',array('GET','POST')); $notes = get_var('notes',array('GET','POST')); $interview_type = get_var('interview_type',array('GET','POST')); - $sql = "SELECT * FROM tc_presidency where valid=1 and (president=1 or counselor=1 or secretary=1 or district!=0)"; + $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 OR tp.district!=0)"; $this->db2->query($sql,__LINE__,__FILE__); while ($this->db2->next_record()) { - $indiv = $this->db2->f('indiv'); + $indiv = $this->db2->f('individual'); $interviewer_name = $this->db2->f('name'); if($indiv == $interviewer) { - $this->t->set_var('interviewer',$interviewer . ' selected'); + $this->t->set_var('interviewer',$indiv . ' selected'); } else { - $this->t->set_var('interviewer',$interviewer); + $this->t->set_var('interviewer',$indiv); } $this->t->set_var('interviewer_name',$interviewer_name); $this->t->fp('int_list','interviewer_list',True); @@ -2842,9 +3122,9 @@ class tc $this->db->query("UPDATE tc_interview set " . " interview='" . $interview . "'" . ", interviewer='" . $interviewer . "'" . - ", indiv='" . $indiv . "'" . + ", individual='" . $individual . "'" . ", date='" . $date . "'" . - ", notes='" . $notes . "'" . + ", notes=\"" . $notes . "\"" . ", interview_type='" . $interview_type . "'" . " WHERE interview=" . $interview,__LINE__,__FILE__); $this->int_view(); @@ -2853,9 +3133,9 @@ class tc if($action == 'insert') { $notes = get_var('notes',array('POST')); - $this->db->query("INSERT INTO tc_interview (interviewer,indiv,date,notes,interview_type) " . - "VALUES ('" . $interviewer . "','" . $indiv . "','" . - $date . "','" . $notes ."','" . $interview_type . "')",__LINE__,__FILE__); + $this->db->query("INSERT INTO tc_interview (interviewer,individual,date,notes,interview_type) " . + "VALUES ('" . $interviewer . "','" . $individual . "','" . + $date . "',\"" . $notes ."\",'" . $interview_type . "')",__LINE__,__FILE__); $this->int_view(); return false; } @@ -2865,9 +3145,10 @@ class tc $this->t->set_var('interview', ''); $this->t->set_var('interviewer', $interviewer); $this->t->set_var('name',$name); - $this->t->set_var('indiv',$indiv); + $this->t->set_var('individual',$individual); $this->t->set_var('date',''); $this->t->set_var('notes',''); + $this->t->set_var('interview_type',$interview_type); $this->t->set_var('lang_done','Cancel'); $this->t->set_var('lang_action','Adding New Interview'); $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.int_update&interview=' . @@ -2875,16 +3156,17 @@ class tc } if($action == 'edit' || $action == 'view') { - $sql = "SELECT * FROM tc_interview WHERE interview=".$interview; + $sql = "SELECT * FROM tc_interview WHERE interview=" . $interview . " AND interview_type='hti'"; $this->db->query($sql,__LINE__,__FILE__); $this->db->next_record(); $this->t->set_var('interview',$interview); $this->t->set_var('name',$name); $this->t->set_var('interviewer', $this->db->f('interviewer')); - $this->t->set_var('indiv',$this->db->f('indiv')); + $this->t->set_var('individual',$this->db->f('individual')); $this->t->set_var('date',$this->db->f('date')); $this->t->set_var('notes',$this->db->f('notes')); - if($this->db->f('interview_type') == 1) { $this->t->set_var('interview_type_checked','checked'); } + $this->t->set_var('interview_type',$this->db->f('interview_type')); + if($this->db->f('interview_type') == 'ppi') { $this->t->set_var('eqpresppi_checked','checked'); } } if($action == 'edit') { @@ -2965,7 +3247,7 @@ class tc for ($i=0; $i < count($visit_list); $i++) { $this->nextmatchs->template_alternate_row_color(&$this->t); - $sql = "SELECT * FROM tc_family WHERE family=".$visit_list[$i]['family']; + $sql = "SELECT * FROM tc_family AS tf JOIN tc_individual AS ti WHERE tf.individual=ti.individual AND tf.family=".$visit_list[$i]['family']." AND ti.steward='$this->default_stewardship'"; $this->db->query($sql,__LINE__,__FILE__); $this->db->next_record(); @@ -2993,7 +3275,7 @@ class tc } // List the families that are available to record a visit against - $sql = "SELECT * FROM tc_family WHERE companionship != 0 and valid=1"; + $sql = "SELECT * FROM tc_family AS tf JOIN tc_individual AS ti WHERE tf.individual=ti.individual AND tf.companionship != 0 AND tf.valid=1 AND ti.steward='$this->default_stewardship'"; $this->db->query($sql,__LINE__,__FILE__); $total_records = $this->db->num_rows(); @@ -3049,7 +3331,7 @@ class tc $notes = get_var('notes',array('POST')); $this->db->query("UPDATE tc_visit set " . " date='" . $date . "'" . - ", notes='" . $notes . "'" . + ", notes=\"" . $notes . "\"" . " WHERE visit=" . $visit,__LINE__,__FILE__); $this->vis_view(); return false; @@ -3059,7 +3341,7 @@ class tc $notes = get_var('notes',array('POST')); $this->db->query("INSERT INTO tc_visit (family,companionship,date,notes) " . "VALUES ('" . $family . "','" . $companionship . "','" . - $date . "','" . $notes . "')",__LINE__,__FILE__); + $date . "',\"" . $notes . "\")",__LINE__,__FILE__); $this->vis_view(); return false; } @@ -3133,7 +3415,7 @@ class tc $this->t->set_block('att_view_t','month_list','list1'); $this->t->set_block('att_view_t','header_list','list2'); - $this->t->set_block('att_view_t','indiv_list','list3'); + $this->t->set_block('att_view_t','individual_list','list3'); $this->t->set_var('linkurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.att_view')); $num_quarters = get_var('num_quarters',array('GET','POST')); @@ -3153,16 +3435,15 @@ class tc else if($current_month >= 7 && $current_month <= 9) { $current_month=9; } else if($current_month >= 10 && $current_month <= 12) { $current_month=12; } - // TODO: changed this so it picks the quorum dynamically - $sql = "SELECT * FROM tc_indiv where steward='Elder' and valid=1"; + $sql = "SELECT * FROM tc_individual where steward='$this->default_stewardship' and valid=1"; $this->db->query($sql,__LINE__,__FILE__); $i=0; while ($this->db->next_record()) { - $indiv_name[$i] = $this->db->f('name'); - $indiv_id[$i] = $this->db->f('indiv'); + $individual_name[$i] = $this->db->f('name'); + $individual[$i] = $this->db->f('individual'); $i++; } - array_multisort($indiv_name, $indiv_id); + array_multisort($individual_name, $individual); // Create a list of sunday dates for a window of 3 months back and current month $i=0; @@ -3188,7 +3469,7 @@ class tc if($found_sunday) { $i++; $found_sunday=0; } } - $total_indivs = count($indiv_id); + $total_individuals = count($individual); $old_month=$sunday_list[0]['month']; $span=0; for ($i=0; $i < count($sunday_list); $i++) { $date = $sunday_list[$i]['date']; @@ -3213,10 +3494,10 @@ class tc } $span++; } - $this->t->set_var('total_indivs',$total_indivs); + $this->t->set_var('total_individuals',$total_individuals); $this->t->set_var('header_row',$header_row); - $indiv_width=200; $att_width=25; $total_width=$indiv_width; + $individual_width=200; $att_width=25; $total_width=$individual_width; for ($i=0; $i < count($sunday_list); $i++) { $link_data['menuaction'] = 'tc.tc.att_update'; $link_data['month'] = $sunday_list[$i]['month']; @@ -3234,17 +3515,17 @@ class tc $attendance[$monthnum[$sunday_list[$i]['month']]]=0; } - for ($i=0; $i < count($indiv_id); $i++) { + for ($i=0; $i < count($individual); $i++) { $att_table = ""; $this->nextmatchs->template_alternate_row_color(&$this->t); - $this->t->set_var('indiv_name',$indiv_name[$i]); - #print "checking for indiv: " . $indiv_id[$i] . "
"; + $this->t->set_var('individual_name',$individual_name[$i]); + #print "checking for individual: " . $individual[$i] . "
"; for ($j=0; $j < count($sunday_list); $j++) { #print "checking for date: " . $sunday_list[$j]['date'] . "
"; #print "SELECT * FROM tc_attendance WHERE date='" - # . $sunday_list[$j]['date'] . "' AND indiv=" . $indiv_id[$i] . "
"; + # . $sunday_list[$j]['date'] . "' AND individual=" . $individual[$i] . "
"; $sql = "SELECT * FROM tc_attendance WHERE date='" . - $sunday_list[$j]['date'] . "' AND indiv=" . $indiv_id[$i]; + $sunday_list[$j]['date'] . "' AND individual=" . $individual[$i]; $this->db->query($sql,__LINE__,__FILE__); if($this->db->next_record()) { $cur_month = $sunday_list[$j]['month']; @@ -3258,10 +3539,10 @@ class tc } } $this->t->set_var('att_table',$att_table); - $this->t->fp('list3','indiv_list',True); + $this->t->fp('list3','individual_list',True); } $this->t->set_var('total_width',$total_width); - $this->t->set_var('indiv_width',$indiv_width); + $this->t->set_var('individual_width',$individual_width); $this->t->set_var('att_width',$att_width); # Now calculate attendance for these months @@ -3275,17 +3556,17 @@ class tc foreach($attendance as $att => $value) { $total_attended = $attendance[$att]; $ave_total_attended += $attendance[$att]; $num_months++; - $percent = ceil(($total_attended / $total_indivs)*100); + $percent = ceil(($total_attended / $total_individuals)*100); $attendance_str.="$total_attended ($percent%)"; - $total_nonattended = $total_indivs - $total_attended; - $percent = ceil(($total_nonattended / $total_indivs)*100); + $total_nonattended = $total_individuals - $total_attended; + $percent = ceil(($total_nonattended / $total_individuals)*100); $nonattendance_str.="$total_nonattended ($percent%)"; $total_attended = ceil(($ave_total_attended / $num_months)); - $percent = ceil(($total_attended / $total_indivs)*100); + $percent = ceil(($total_attended / $total_individuals)*100); $aveattendance_str .= "$total_attended ($percent%)"; - $total_attended = $total_indivs - ceil(($ave_total_attended / $num_months)); - $percent = ceil(($total_attended / $total_indivs)*100); + $total_attended = $total_individuals - ceil(($ave_total_attended / $num_months)); + $percent = ceil(($total_attended / $total_individuals)*100); $avenonattendance_str .= "$total_attended ($percent%)"; } @@ -3309,7 +3590,7 @@ class tc $this->t->set_block('form','month_list','list1'); $this->t->set_block('form','header_list','list2'); - $this->t->set_block('form','indiv_list','list3'); + $this->t->set_block('form','individual_list','list3'); $this->t->set_var('done_action',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.att_view')); @@ -3320,7 +3601,7 @@ class tc $date = get_var('date',array('GET','POST')); if($action == 'save_month' || $action == 'save_day') { - $new_data = get_var('indivs_attended',array('POST')); + $new_data = get_var('individuals_attended',array('POST')); $month = $monthnum[$month]; if($month < 10) { $month = "0" . $month; } if($action == 'save_month') { @@ -3335,7 +3616,7 @@ class tc $data_array = explode("-",$data); $indiv = $data_array[0]; $date = "$data_array[1]-$data_array[2]-$data_array[3]"; - $this->db->query("INSERT INTO tc_attendance (indiv,date) " . + $this->db->query("INSERT INTO tc_attendance (individual,date) " . "VALUES (" . $indiv . ",'". $date . "')",__LINE__,__FILE__); } @@ -3343,17 +3624,16 @@ class tc return false; } - // TODO: changed this so it picks the quorum dynamically - $sql = "SELECT * FROM tc_indiv where steward='Elder' and valid=1"; + $sql = "SELECT * FROM tc_individual where steward='$this->default_stewardship' and valid=1"; $this->db->query($sql,__LINE__,__FILE__); $i=0; while ($this->db->next_record()) { $indiv_name[$i] = $this->db->f('name'); - $indiv_id[$i] = $this->db->f('indiv'); - $indiv_attending[$indiv_id[$i]] = $this->db->f('attending'); + $individual[$i] = $this->db->f('individual'); + $indiv_attending[$individual[$i]] = $this->db->f('attending'); $i++; } - array_multisort($indiv_name, $indiv_id); + array_multisort($indiv_name, $individual); if($action == 'update_month') { $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/tc/index.php','menuaction=tc.tc.att_update&action=save_month')); @@ -3414,25 +3694,25 @@ class tc $this->t->fp('list2','header_list',True); } - for ($i=0; $i < count($indiv_id); $i++) { + for ($i=0; $i < count($individual); $i++) { $att_table = ""; $this->nextmatchs->template_alternate_row_color(&$this->t); - $this->t->set_var('indiv_name',$indiv_name[$i]); + $this->t->set_var('individual_name',$indiv_name[$i]); for ($j=0; $j < count($sunday_list); $j++) { $sql = "SELECT * FROM tc_attendance WHERE date='" . - $sunday_list[$j]['date'] . "' AND indiv=" . $indiv_id[$i]; + $sunday_list[$j]['date'] . "' AND individual=" . $individual[$i]; $this->db->query($sql,__LINE__,__FILE__); - $value = $indiv_id[$i] . "-" . $sunday_list[$j]['date']; + $value = $individual[$i] . "-" . $sunday_list[$j]['date']; if($this->db->next_record()) { - $att_table .= ''; - } else if($indiv_attending[$indiv_id[$i]] == 1) { - $att_table .= ''; + $att_table .= ''; + } else if($indiv_attending[$individual[$i]] == 1) { + $att_table .= ''; } else { - $att_table .= ''; + $att_table .= ''; } } $this->t->set_var('att_table',$att_table); - $this->t->fp('list3','indiv_list',True); + $this->t->fp('list3','individual_list',True); } $this->t->set_var('lang_done', 'Cancel'); @@ -3450,11 +3730,11 @@ class tc $this->t->set_file(array('dir_view_t' => 'dir_view.tpl')); $this->t->set_block('dir_view_t','dir_list','list'); - $sql = "SELECT * FROM tc_indiv where valid=1 and hh_position='Head of Household' ORDER BY name ASC"; + $sql = "SELECT * FROM tc_individual where valid=1 and hh_position='Head of Household' ORDER BY name ASC"; $this->db->query($sql,__LINE__,__FILE__); $i=0; while ($this->db->next_record()) { - $parent[$i]['id'] = $this->db->f('indiv'); + $parent[$i]['id'] = $this->db->f('individual'); $parent[$i]['name'] = $this->db->f('name'); $parent[$i]['phone'] = $this->db->f('phone'); $parent[$i]['address'] = $this->db->f('address'); @@ -3484,11 +3764,10 @@ class tc $this->t->set_block('org_view_t','org_list','list2'); # Display a list ordered alphabetically - $sql = "SELECT * FROM tc_calling ORDER BY name ASC"; + $sql = "SELECT * FROM tc_calling AS tc JOIN tc_individual AS ti WHERE tc.individual=ti.individual ORDER BY name ASC"; $this->db->query($sql,__LINE__,__FILE__); $i=0; while ($this->db->next_record()) { - $calling[$i]['id'] = $this->db->f('indiv_id'); $calling[$i]['name'] = $this->db->f('name'); $calling[$i]['position'] = $this->db->f('position'); $calling[$i]['sustained'] = $this->db->f('sustained'); @@ -3510,11 +3789,10 @@ class tc } # Display a list ordered by organization - $sql = "SELECT * FROM tc_calling ORDER BY sequence ASC"; + $sql = "SELECT * FROM tc_calling AS tc JOIN tc_individual AS ti where tc.individual=ti.individual ORDER BY organization ASC"; $this->db->query($sql,__LINE__,__FILE__); $i=0; while ($this->db->next_record()) { - $calling[$i]['id'] = $this->db->f('indiv_id'); $calling[$i]['name'] = $this->db->f('name'); $calling[$i]['position'] = $this->db->f('position'); $calling[$i]['sustained'] = $this->db->f('sustained'); @@ -3559,41 +3837,37 @@ class tc $this->t->set_var('schedule_int_link_title','Schedule Hometeaching Interviews'); $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'); - $date_width=150; $time_width=220; $indiv_width=170; $family_width=180; $location_width=100; + $date_width=160; $time_width=220; $indiv_width=170; $family_width=180; $location_width=100; $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 = ""; - $sql = "SELECT * FROM tc_presidency where valid=1"; + $sql = "SELECT * FROM tc_presidency AS tp JOIN tc_individual AS ti WHERE tp.individual=ti.individual AND tp.valid=1 GROUP BY tp.individual ORDER BY ti.name ASC"; $this->db->query($sql,__LINE__,__FILE__); $i=0; while ($this->db->next_record()) { $presidency_data[$i]['id'] = $this->db->f('presidency'); $presidency_data[$i]['name'] = $this->db->f('name'); - $presidency_data[$i]['indiv'] = $this->db->f('indiv'); + $presidency_data[$i]['indiv'] = $this->db->f('individual'); $presidency2name[$presidency_data[$i]['id']] = $presidency_data[$i]['name']; $presidency2indiv[$presidency_data[$i]['id']] = $presidency_data[$i]['indiv']; $i++; } - $sql = "SELECT * FROM tc_family where valid=1 and indiv_id != 0 ORDER BY name ASC"; + $sql = "SELECT * FROM tc_family AS tf JOIN tc_individual AS ti WHERE tf.individual=ti.individual AND ti.steward='$this->default_stewardship' AND tf.valid=1 AND tf.individual != 0 ORDER BY ti.name ASC"; $this->db->query($sql,__LINE__,__FILE__); $i=0; 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 tc_indiv where family='$family_id[$i]' and hh_position='Head of Household'"; - $this->db2->query($sql,__LINE__,__FILE__); - if($this->db2->next_record()) { - $familyid2address[$family_id[$i]] = $this->db2->f('address'); - } + $familyid2address[$family_id[$i]] = $this->db->f('address'); $i++; } array_multisort($family_name, $family_id); @@ -3609,13 +3883,17 @@ class tc $hour = $entry['hour']; $minute = $entry['minute']; $pm = $entry['pm']; - $indiv = $entry['indiv']; + $indiv = $entry['individual']; $family = $entry['family']; $location = $entry['location']; if($pm) { $hour = $hour + 12; } $time = $hour.':'.$minute.':'.'00'; $uid = 0; + // Zero out family or individual if they are invalid + if($indiv == "") { $indiv=0; } + if($family == "") { $family=0; } + // Update our location if($location == "") { if($family > 0) { @@ -3626,12 +3904,8 @@ class tc } else if($indiv > 0) { $supervisor_name_array = explode(",",$presidency2name[$presidency]); $supervisor_last_name = $supervisor_name_array[0]; - $sql = "SELECT * FROM tc_indiv where indiv='$presidency2indiv[$presidency]'"; - $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'"; + #print "presidency2indiv: $presidency $presidency2indiv[$presidency]
"; + $sql = "SELECT * FROM tc_individual where individual='$presidency2indiv[$presidency]'"; $this->db2->query($sql,__LINE__,__FILE__); if($this->db2->next_record()) { $supervisor_address = $this->db2->f('address'); @@ -3656,7 +3930,7 @@ class tc $sql = "SELECT * FROM tc_appointment where " . "appointment='$appointment'" . " and presidency='$presidency'" . - " and indiv='$indiv'" . + " and individual='$indiv'" . " and family='$family'" . " and date='$date'" . " and time='$time'" . @@ -3667,7 +3941,7 @@ class tc $old_time = $this->db->f('time'); $this->db2->query("UPDATE tc_appointment set" . " family=" . $family . - " ,indiv=" . $indiv . + " ,individual=" . $indiv . " ,date='" . $date . "'" . " ,time='" . $time . "'" . " ,location='" . $location . "'" . @@ -3682,15 +3956,15 @@ class tc // Add a new appointment else if(($appointment >= $this->max_appointments) && ($date != "") && ($time != "")) { - //print "adding entry: appt=$appointment date: $date time: $time indiv: $indiv family: $family
"; - $this->db2->query("INSERT INTO tc_appointment (appointment,presidency,family,indiv,date,time,location,uid) " . + //print "adding entry: appt=$appointment date: $date time: $time individual: $indiv family: $family
"; + $this->db2->query("INSERT INTO tc_appointment (appointment,presidency,family,individual,date,time,location,uid) " . "VALUES (NULL,'" . $presidency . "','" . $family . "','" . $indiv . "','" . $date . "','" . $time . "','" . $location . "','" . $uid ."')",__LINE__,__FILE__); // Now reselect this entry from the database to see if we need // to send an appointment out for it. $sql = "SELECT * FROM tc_appointment where " . - "indiv='$indiv'" . + "individual='$indiv'" . " and family='$family'" . " and presidency='$presidency'" . " and date='$date'" . @@ -3712,21 +3986,20 @@ class tc //Header('Location: ' . $take_me_to_url); } - // TODO: changed this so it picks the quorum dynamically - $sql = "SELECT * FROM tc_indiv where steward='Elder' and valid=1 ORDER BY indiv ASC"; + $sql = "SELECT * FROM tc_individual where steward='$this->default_stewardship' and 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); for ($i=0; $i < count($presidency_data); $i++) { $presidency = $presidency_data[$i]['id']; - $interviewer = $presidency_data[$i]['indiv']; + $interviewer = $presidency_data[$i]['individual']; $name = $presidency_data[$i]['name']; $this->t->set_var('presidency_name',$name); $table_data=""; @@ -3738,7 +4011,7 @@ class tc // Prefill any existing appointment slots while ($this->db->next_record()) { $appointment = $this->db->f('appointment'); - $indiv = $this->db->f('indiv'); + $indiv = $this->db->f('individual'); $family = $this->db->f('family'); $location = $this->db->f('location'); @@ -3751,12 +4024,7 @@ class tc } else if($indiv > 0) { $supervisor_name_array = explode(",",$presidency2name[$presidency]); $supervisor_last_name = $supervisor_name_array[0]; - $sql = "SELECT * FROM tc_indiv where indiv='$presidency2indiv[$presidency]'"; - $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'"; + $sql = "SELECT * FROM tc_individual where individual='$presidency2indiv[$presidency]'"; $this->db2->query($sql,__LINE__,__FILE__); if($this->db2->next_record()) { $supervisor_address = $this->db2->f('address'); @@ -3791,12 +4059,12 @@ class tc $table_data.= ""; // individual drop down list (for PPIs) - $table_data.= ''; $table_data.= ''; - for ($j=0; $j < count($indiv_id); $j++) { - $id = $indiv_id[$j]; + for ($j=0; $j < count($individual); $j++) { + $id = $individual[$j]; $name = $indiv_name[$j]; - if($indiv_id[$j] == $indiv) { + if($individual[$j] == $indiv) { $selected[$id] = 'selected="selected"'; } else { $selected[$id] = ''; @@ -3808,7 +4076,7 @@ class tc // Family drop down list (for Visits) $table_data.= ''; + $table_data.= ''; $table_data.= ''; - for ($j=0; $j < count($indiv_id); $j++) { + for ($j=0; $j < count($individual); $j++) { $id = $family_id[$j]; $name = $family_name[$j]; $table_data.= ''; @@ -3890,7 +4158,7 @@ class tc function email() { $this->t->set_file(array('email_t' => 'email.tpl')); - $this->t->set_block('email_t','indiv_list','list'); + $this->t->set_block('email_t','individual_list','list'); $action = get_var('action',array('GET','POST')); @@ -3934,17 +4202,16 @@ class tc $this->t->pfp('out','admin_t'); - // TODO: changed this so it picks the quorum dynamically - $sql = "SELECT * FROM tc_indiv where steward='Elder' and valid=1 ORDER BY indiv ASC"; + $sql = "SELECT * FROM tc_individual where steward='$this->default_stewardship' and 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'); - $indiv2name[$indiv_id[$i]] = $indiv_name[$i]; + $indiv2name[$individual[$i]] = $indiv_name[$i]; $i++; } - array_multisort($indiv_name, $indiv_id); + array_multisort($indiv_name, $individual); if($action == 'upload') { $target_path = $this->upload_target_path . '/' . basename( $_FILES['uploadedfile']['name']); @@ -4079,9 +4346,8 @@ class tc if($id < $this->max_presidency_members) { //print "Updating Existing Entry
"; $this->db2->query("UPDATE tc_presidency set" . - " indiv=" . $indiv . + " individual=" . $indiv . " ,district=" . $district . - " ,name='" . $name . "'" . " ,email='" . $email . "'" . " ,president='" . $president . "'" . " ,counselor='" . $counselor . "'" . @@ -4089,10 +4355,10 @@ class tc " WHERE presidency=" . $id,__LINE__,__FILE__); } else { //print "Adding New Entry
"; - $this->db2->query("INSERT INTO tc_presidency (presidency,indiv,district,name," . + $this->db2->query("INSERT INTO tc_presidency (presidency,individual,district," . "email,president,counselor,secretary,valid) " . "VALUES (NULL,'" . $indiv . "','" . $district . "','" . - $name . "','" . $email . "','" . $president . "','" . + $email . "','" . $president . "','" . $counselor . "','" . $secretary . "','1'" . ")",__LINE__,__FILE__); } @@ -4112,27 +4378,26 @@ class tc $name = "High Priests"; $indiv = 0; $valid = 0; - $this->db2->query("INSERT INTO tc_district (district,name,supervisor,valid) " . - "VALUES ('" . $district . "','" . $name . "','" . + $this->db2->query("INSERT INTO tc_district (district,supervisor,valid) " . + "VALUES ('" . $district . "','" . $indiv . "','" . $valid . "'" . ")",__LINE__,__FILE__); // Requery the tc_presidency table - $sql = "SELECT * FROM tc_presidency where valid=1"; + $sql = "SELECT * FROM tc_presidency AS tp JOIN tc_individual AS ti WHERE tp.individual=ti.individual AND tp.valid=1"; $this->db->query($sql,__LINE__,__FILE__); while ($this->db->next_record()) { // Extract the data for each presidency record $id = $this->db->f('presidency'); - $indiv = $this->db->f('indiv'); + $indiv = $this->db->f('individual'); $name = $this->db->f('name'); $district = $this->db->f('district'); - $name = $this->db->f('name'); $valid = 1; // If we have a valid district, add it to the district table if($district > 0) { - $this->db2->query("INSERT INTO tc_district (district,name,supervisor,valid) " . - "VALUES ('" . $district . "','" . $name . "','" . + $this->db2->query("INSERT INTO tc_district (district,supervisor,valid) " . + "VALUES ('" . $district . "','" . $indiv . "','" . $valid . "'" . ")",__LINE__,__FILE__); } @@ -4147,16 +4412,16 @@ class tc $this->t->pfp('adminhandle','admin'); } - // Now save off the data needed for an EQ Presidency Table Update + // Now save off the data needed for a Presidency Table Update - $sql = "SELECT * FROM tc_presidency where valid=1"; + $sql = "SELECT tp.*, ti.name FROM tc_presidency AS tp JOIN tc_individual AS ti WHERE tp.individual=ti.individual AND tp.valid=1"; $this->db->query($sql,__LINE__,__FILE__); $table_data = ""; $header_row = "IndividualEmailDistrictPresidentCounselorSecretary"; while ($this->db->next_record()) { // Extract the data for each presidency record $id = $this->db->f('presidency'); - $indiv = $this->db->f('indiv'); + $indiv = $this->db->f('individual'); $district = $this->db->f('district'); $name = $this->db->f('name'); $email = $this->db->f('email'); @@ -4174,10 +4439,10 @@ class tc if($eqpresidency == 0) { $table_data.= ''; $table_data.= ''; - for ($j=0; $j < count($indiv_id); $j++) { - $tmp_id = $indiv_id[$j]; + for ($j=0; $j < count($individual); $j++) { + $tmp_id = $individual[$j]; $name = $indiv_name[$j]; $table_data.= ''; } @@ -4298,7 +4563,7 @@ class tc $location = $this->db->f('location'); $interviewer = ""; $email = ""; - $indiv = $this->db->f('indiv'); + $indiv = $this->db->f('individual'); $indiv_name = ""; $family = $this->db->f('family'); $family_name = ""; @@ -4319,10 +4584,14 @@ class tc $dtstart = gmdate("Ymd"."\T"."His"."\Z", mktime($hour,$minute,$seconds,$month,$day,$year)); $dtstartstr = date("l, F d, o g:i A", mktime($hour,$minute,$seconds,$month,$day,$year)); - $sql = "SELECT * FROM tc_presidency where presidency='$presidency'"; + $sql = "SELECT tp.email AS email1, ti.email AS email2, ti.name AS name FROM tc_presidency AS tp JOIN tc_individual AS ti WHERE tp.individual=ti.individual AND tp.presidency='$presidency'"; $this->db2->query($sql,__LINE__,__FILE__); if($this->db2->next_record()) { - $email = $this->db2->f('email'); + if ($this->db2->f('email1') != "") { + $email = $this->db2->f('email1'); + } else { + $email = $this->db2->f('email2'); + } $interviewer = $this->db2->f('name'); } @@ -4330,7 +4599,7 @@ class tc $from = $email; if($indiv > 0) { - $sql = "SELECT * FROM tc_indiv where indiv='$indiv'"; + $sql = "SELECT * FROM tc_individual where individual='$indiv'"; $this->db2->query($sql,__LINE__,__FILE__); if($this->db2->next_record()) { $indiv_name = $this->db2->f('name'); @@ -4341,18 +4610,18 @@ class tc } if($family > 0) { - $sql = "SELECT * FROM tc_family where family='$family'"; + $sql = "SELECT * FROM tc_family WHERE family='$family'"; $this->db2->query($sql,__LINE__,__FILE__); if($this->db2->next_record()) { - $family_name = $this->db2->f('name'); - $phone = $this->db2->f('phone'); - $indiv_id = $this->db2->f('indiv_id'); - $appt_name = $family_name . " Family Visit"; - $sql = "SELECT * FROM tc_indiv where indiv='$indiv_id'"; + $individual = $this->db2->f('individual'); + $sql = "SELECT * FROM tc_individual where individual='$individual'"; $this->db3->query($sql,__LINE__,__FILE__); if($this->db3->next_record()) { $phone = $this->db3->f('phone'); + $family_name = $this->db3->f('name'); + $phone = $this->db3->f('phone'); } + $appt_name = $family_name . " Family Visit"; $duration = $this->default_visit_appt_duration * 60; } }