fixed updating tc_scheduling_priority so we don't get jumbled information
[eq/.git] / inc / class.tc.inc.php
index cf456d0a24c20ecf2607ec542459236a7cabcd76..c47ef9552c14ac35c527bc07dbc28b4cad865a95 100644 (file)
@@ -15,6 +15,7 @@ class tc
 {
        var $db;
        var $db2;
+       var $db3;
        var $t;
        var $nextmatchs;
        var $grants;
@@ -108,6 +109,18 @@ class tc
                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()
        {
@@ -258,7 +271,7 @@ class tc
                                $table_data.= "<tr bgcolor=#d3dce3><td colspan=20><table><tr>$companion_table_entry</tr></table><hr></td></tr>";
 
                                // 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;
@@ -474,8 +487,8 @@ class tc
                        $table_data.= "<tr bgcolor=#d3dce3><td colspan=20><table><tr>$companion_table_entry</tr></table><hr></td></tr>";
 
                        // 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');
@@ -584,7 +597,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 +651,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');
@@ -792,7 +805,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++;
                }
 
@@ -870,7 +883,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 +893,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 +934,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 +946,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 +957,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 +970,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=' .
@@ -1012,7 +1025,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++;
                }
 
@@ -1020,7 +1033,7 @@ class tc
                $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;
                }
@@ -1112,7 +1125,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,7 +1146,7 @@ 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;
@@ -1261,7 +1274,7 @@ 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.="<tr bgcolor=". $this->t->get_var('tr_color') ."><td>$assignment_name</td>";
@@ -1406,18 +1419,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'];
+                               $notes = $entry['notes'];
                                $individual = $entry['individual'];
-                               $ppi_pri = $entry['pri'];
+                               $priority = $entry['pri'];
 
                                // Perform database save actions here
-                               $this->db->query("UPDATE tc_individual set " .
-                                                " ppi_notes='" . $ppi_notes . "'" .
-                                                ",ppi_pri='" . $ppi_pri . "'" .
-                                                " WHERE individual=" . $individual,__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');
@@ -1508,7 +1523,7 @@ class tc
 
                // PPI SCHEDULING TABLE
                // TODO:  changed this so it picks the quorum dynamically
-               $sql = "SELECT * FROM tc_individual 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='Elder' AND valid=1 ORDER BY tsp.priority ASC, ti.name ASC";
                $this->db->query($sql,__LINE__,__FILE__);
 
                $i=0; 
@@ -1517,8 +1532,8 @@ class tc
                        $individual[$i] = $this->db->f('individual');
                        $indiv_name[$i] = $this->db->f('name');
                        $indiv_phone[$individual[$i]] = $this->db->f('phone');
-                       $indiv_ppi_pri[$individual[$i]] = $this->db->f('ppi_pri');
-                       $indiv_ppi_notes[$individual[$i]] = $this->db->f('ppi_notes');
+                       $indiv_priority[$individual[$i]] = $this->db->f('priority');
+                       $indiv_notes[$individual[$i]] = $this->db->f('notes');
                        $i++;
                        $total_indivs++;
                }
@@ -1529,8 +1544,8 @@ class tc
                        $id = $individual[$i];
                        $name = $indiv_name[$i];
                        $phone = $indiv_phone[$id];
-                       $ppi_pri = $indiv_ppi_pri[$id];
-                       $ppi_notes = $indiv_ppi_notes[$id];
+                       $priority = $indiv_priority[$id];
+                       $notes = $indiv_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";
@@ -1558,12 +1573,12 @@ class tc
                                $this->t->set_var('tr_color',$tr_color);
                                $table_data.= "<tr bgcolor=". $this->t->get_var('tr_color') ."><td title=\"$phone\"><a href=$link>$name</a></td>";
                                $table_data.= "<td align=center>$phone</td>";
-                               //$table_data.= "<td align=center>$ppi_pri</td>";
+                               //$table_data.= "<td align=center>$priority</td>";
                                $table_data.= "<td align=center>";
-                               $table_data.= '<select name=ppi_notes['.$i.'][pri]>';
+                               $table_data.= '<select name=notes['.$i.'][pri]>';
                                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,9 +1587,9 @@ class tc
                                }
                                $table_data.= '</select></td>';
                                $table_data.= "<td align=center>$date</td>";
-                               $table_data.= '<td><input type=text size="50" maxlength="128" name="ppi_notes['.$i.'][notes]" value="'.$ppi_notes.'">';
-                               $table_data.= '<input type=hidden name="ppi_notes['.$i.'][individual]" value="'.$id.'">';
-                               $table_data.= '<input type=hidden name="ppi_notes['.$i.'][indiv_name]" value="'.$name.'">';
+                               $table_data.= '<td><input type=text size="50" maxlength="128" name="notes['.$i.'][notes]" value="'.$notes.'">';
+                               $table_data.= '<input type=hidden name="notes['.$i.'][individual]" value="'.$id.'">';
+                               $table_data.= '<input type=hidden name="notes['.$i.'][indiv_name]" value="'.$name.'">';
                                $table_data.= '</td>';
                                $table_data.= '</tr>';
                        } else {
@@ -1588,14 +1603,14 @@ 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.= "<tr bgcolor=". $this->t->get_var('tr_color2') ."><td title=\"$phone\"><a href=$link>$name</a></td>";
                                $completed_data.= "<td align=center>$phone</td>";
                                $completed_data.= "<td align=center><a href=".$link.">$date</a></td>";
-                               $completed_data.= "<td align=left>$ppi_notes</td>";
+                               $completed_data.= "<td align=left>$notes</td>";
                                $completed_data.= '</tr>';
                        }
                } // End for individuals Loop
@@ -1756,10 +1771,12 @@ class tc
                                $hti_pri = $entry['pri'];
                                //print "hti_notes: $hti_notes indiv_name: $indiv_name <Br>";
                                // Perform database save actions here
-                               $this->db->query("UPDATE tc_individual set " .
-                                                " hti_notes='" . $hti_notes . "'" .
-                                                ",hti_pri='" . $hti_pri . "'" .
-                                                " WHERE individual=" . $individual,__LINE__,__FILE__);
+                               $this->db->query("SELECT * FROM tc_companionship 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');
@@ -1885,7 +1902,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_companionship 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'];
@@ -1896,20 +1913,11 @@ class tc
                                        // Get this companions information
                                        $individual = $this->db->f('individual');
 
-                                       $sql = "SELECT * FROM tc_individual where individual='$individual'";
-                                       $this->db2->query($sql,__LINE__,__FILE__);      
-                                       if($this->db2->next_record()) {
-                                               $individual = $this->db2->f('individual');
-                                               $indiv_name = $this->db2->f('name');
-                                               $indiv_phone[$individual] = $this->db2->f('phone');
-                                               $indiv_hti_pri[$individual] = $this->db2->f('hti_pri');
-                                               $indiv_hti_notes[$individual] = $this->db2->f('hti_notes');
-                                       }
-                                       $id = $individual;
-                                       $name = $indiv_name;
-                                       $phone = $indiv_phone[$id];
-                                       $hti_pri = $indiv_hti_pri[$id];
-                                       $hti_notes = $indiv_hti_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.
@@ -2061,7 +2069,7 @@ class tc
                $year = date('Y');
 
                // create the family id -> family name mapping
-               $sql = "SELECT * FROM tc_family where valid=1 and individual != 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 ORDER BY ti.name ASC";
                $this->db->query($sql,__LINE__,__FILE__);
                $i=0;
                $family_id = NULL;
@@ -2069,11 +2077,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_individual 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);
@@ -2118,10 +2122,12 @@ class tc
                                $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->logToFile("vis_sched", "UPDATE tc_scheduling_priority SET priority='$visit_pri', notes=\"$visit_notes\" WHERE scheduling_priority='$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');
@@ -2203,43 +2209,18 @@ class tc
 
 
                // VISIT SCHEDULING TABLE
-               $sql = "SELECT * FROM tc_family where valid=1 and individual != 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 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_individual 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 +2230,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 = ""; 
                                }
@@ -2390,15 +2371,15 @@ class tc
                $this->t->set_var('district_name',$president_name);
 
                // TODO:  changed this so it picks the quorum dynamically
-               $sql = "SELECT * FROM tc_individual where steward='Elder' and valid=1 ORDER BY individual ASC";
+               $sql = "SELECT * FROM tc_individual AS ti JOIN tc_scheduling_priority as tsp where ti.scheduling_priority=tsp.scheduling_priority and ti.steward='Elder' and ti.valid=1 ORDER BY ti.individual ASC";
                $this->db->query($sql,__LINE__,__FILE__);
                $i=0;
                while ($this->db->next_record()) {
                        $individual[$i] = $this->db->f('individual');
                        $indiv_name[$i] = $this->db->f('name');
                        $indiv_phone[$individual[$i]] = $this->db->f('phone');
-                       $indiv_ppi_pri[$individual[$i]] = $this->db->f('ppi_pri');
-                       $indiv_ppi_notes[$individual[$i]] = $this->db->f('ppi_notes');
+                       $indiv_priority[$individual[$i]] = $this->db->f('priority');
+                       $indiv_notes[$individual[$i]] = $this->db->f('notes');
                        $i++;
                }
                $total_indivs=$i;
@@ -2965,7 +2946,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'];
                        $this->db->query($sql,__LINE__,__FILE__);
                        $this->db->next_record();
 
@@ -2993,7 +2974,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";
                $this->db->query($sql,__LINE__,__FILE__);
                $total_records = $this->db->num_rows();
 
@@ -3488,7 +3469,6 @@ class tc
                $this->db->query($sql,__LINE__,__FILE__);
                $i=0;
                while ($this->db->next_record()) {
-                       $calling[$i]['id'] = $this->db->f('individual');
                        $calling[$i]['name'] = $this->db->f('name');
                        $calling[$i]['position'] = $this->db->f('position');
                        $calling[$i]['sustained'] = $this->db->f('sustained');
@@ -3510,11 +3490,10 @@ class tc
                }
 
                # Display a list ordered by organization
-               $sql = "SELECT * FROM tc_calling ORDER BY sequence ASC";
+               $sql = "SELECT * FROM tc_calling ORDER BY organization ASC";
                $this->db->query($sql,__LINE__,__FILE__);
                $i=0;
                while ($this->db->next_record()) {
-                       $calling[$i]['id'] = $this->db->f('individual');
                        $calling[$i]['name'] = $this->db->f('name');
                        $calling[$i]['position'] = $this->db->f('position');
                        $calling[$i]['sustained'] = $this->db->f('sustained');
@@ -3582,18 +3561,14 @@ class tc
                        $i++;
                }
 
-               $sql = "SELECT * FROM tc_family where valid=1 and individual != 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 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_individual 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);
@@ -4341,18 +4316,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');
                                        $individual = $this->db2->f('individual');
-                                       $appt_name = $family_name . " Family Visit";
                                        $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;
                                }
                        }