+ function int_view()
+ {
+ $this->t->set_file(array('int_view_t' => 'int_view.tpl'));
+ $this->t->set_block('int_view_t','district_list','list');
+
+ $this->t->set_var('linkurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.int_view'));
+ $num_months = get_var('num_months',array('GET','POST'));
+ if($num_months == '') { $num_months = $this->default_int_num_months; }
+ $this->t->set_var('num_months',$num_months);
+ if($num_months == 1) { $this->t->set_var('lang_num_months','Month of History'); }
+ else { $this->t->set_var('lang_num_months','Months of History'); }
+ $this->t->set_var('lang_filter','Filter');
+ $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.int_view'));
+
+ $this->t->set_var('title','Hometeaching Interviews');
+
+ $sql = "SELECT * FROM eq_district where valid=1 ORDER BY district ASC";
+ $this->db->query($sql,__LINE__,__FILE__);
+ $i=0;
+ while ($this->db->next_record())
+ {
+ $districts[$i]['district'] = $this->db->f('district');
+ $districts[$i]['name'] = $this->db->f('name');
+ $districts[$i]['supervisor'] = $this->db->f('supervisor');
+ $i++;
+ }
+
+ $sql = "SELECT * FROM eq_elder where valid=1 ORDER BY elder ASC";
+ $this->db->query($sql,__LINE__,__FILE__);
+ $i=0;
+ while ($this->db->next_record())
+ {
+ $elder_id[$i] = $this->db->f('elder');
+ $elder_name[$i] = $this->db->f('name');
+ $elder_phone[$elder_id[$i]] = $this->db->f('phone');
+ $i++;
+ }
+ array_multisort($elder_name, $elder_id);
+ for($i=0; $i < count($elder_id); $i++) {
+ $id = $elder_id[$i];
+ $elders[$id] = $elder_name[$i];
+ }
+
+ $sql = "SELECT * FROM eq_aaronic where valid=1 ORDER BY aaronic ASC";
+ $this->db->query($sql,__LINE__,__FILE__);
+ while ($this->db->next_record())
+ {
+ $aaronic_id = $this->db->f('aaronic');
+ $aaronic[$aaronic_id]['name'] = $this->db->f('name');
+ $aaronic[$aaronic_id]['phone'] = $this->db->f('phone');
+ }
+
+ $total_companionships = 0;
+ $this->nextmatchs->template_alternate_row_color(&$this->t);
+ for ($i=0; $i < count($districts); $i++) {
+ $this->t->set_var('district_number',$districts[$i]['district']);
+ $this->t->set_var('district_name',$districts[$i]['name']);
+ $supervisor = $districts[$i]['supervisor'];
+ $unique_companionships='';
+
+ // Select all the unique companionship numbers for this district
+ $sql = "SELECT distinct companionship FROM eq_companionship where valid=1 and district=". $districts[$i]['district'];
+
+ $this->db->query($sql,__LINE__,__FILE__);
+ $j=0;
+ while ($this->db->next_record())
+ {
+ $unique_companionships[$j]['companionship'] = $this->db->f('companionship');
+ $j++;
+ }
+
+ $comp_width=250; $int_width=75; $table_width=$comp_width + $num_months*$int_width;
+ $table_data=""; $num_companionships = $j; $num_elders = 0;
+ 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 eq_companionship where valid=1 and ".
+ "companionship=". $unique_companionships[$j]['companionship'];
+ $this->db->query($sql,__LINE__,__FILE__);
+ $k=0;
+ $comp = $unique_companionships[$j]['companionship'];
+ for($m=$num_months; $m >= 0; $m--) { $int_recorded[$comp][$m] = 0; }
+ while ($this->db->next_record())
+ {
+ // Get this companions information
+ $num_elders++;
+ $companionship = $this->db->f('companionship');
+ $elder_id = $this->db->f('elder');
+ $aaronic_id = $this->db->f('aaronic');
+ if($elder_id) {
+ $name = $elders[$elder_id];
+ $phone = $elder_phone[$elder_id];
+ }
+ else if($aaronic_id) {
+ $name = $aaronic[$aaronic_id]['name'];
+ $phone = $aaronic[$aaronic_id]['phone'];
+ }
+ $link_data['menuaction'] = 'eq.eq.int_update';
+ $link_data['companionship'] = $companionship;
+ $link_data['interviewer'] = $supervisor;
+ $link_data['elder'] = $elder_id;
+ $link_data['aaronic'] = $aaronic_id;
+ $link_data['name'] = $name;
+ $link_data['interview'] = '';
+ $link_data['action'] = 'add';
+ $link = $GLOBALS['phpgw']->link('/eq/index.php',$link_data);
+ $table_data.= "<tr bgcolor=". $this->t->get_var('tr_color') ."><td title=\"$phone\"><a href=$link>$name</a></td>";
+
+ // Find out how many times Interviews were performed in the past $num_months for this Elder
+ $header_row="<th width=$comp_width><font size=-2>Companionship</th>";
+ for($m=$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";
+ $sql = "SELECT * FROM eq_interview WHERE date >= '$month_start' AND date <= '$month_end' ".
+ "AND elder=" . $elder_id . " AND aaronic=" . $aaronic_id;
+ $this->db2->query($sql,__LINE__,__FILE__);
+ $header_row .= "<th width=$int_width><font size=-2>$month</th>";
+
+ if(!$total_ints[$m]) { $total_ints[$m] = 0; }
+ if($this->db2->next_record()) {
+ if(!$int_recorded[$companionship][$m]) {
+ $ints[$m]++; $total_ints[$m]++; $int_recorded[$companionship][$m]=1;
+ }
+ $link_data['menuaction'] = 'eq.eq.int_update';
+ $link_data['companionship'] = $companionship;
+ $link_data['interviewer'] = $this->db2->f('interviewer');
+ $link_data['elder'] = $elder_id;
+ $link_data['aaronic'] = $aaronic_id;
+ $link_data['name'] = $name;
+ $link_data['interview'] = $this->db2->f('interview');
+ $link_data['action'] = 'view';
+ $date = $this->db2->f('date');
+ $date_array = explode("-",$date);
+ $month = $date_array[1];
+ $day = $date_array[2];
+ $link = $GLOBALS['phpgw']->link('/eq/index.php',$link_data);
+ $table_data .= '<td align=center><a href='.$link.'><img src="checkmark.gif"> '.$month.'-'.$day.'</a></td>';
+ }
+ else { $table_data .= "<td> </td>"; }
+ }
+ $table_data .= "</tr>";
+ $k++;
+ }
+ $table_data .= "<tr><td colspan=20><hr></td></tr>";
+ }
+ $total_companionships += $num_companionships;
+ $stat_data = "<tr><td><b><font size=-2>$num_companionships Companionships<br>Interview Quarterly Totals:</font></b></td>";
+
+ for($m=$num_months; $m >=0; $m--) {
+ $month = $this->current_month - $m;
+ if(($month % 3) == 1) { $quarter_total = $ints[$m]; }
+ else { $quarter_total += $ints[$m]; }
+ $percent = ceil(($quarter_total / $num_companionships)*100);
+ $stat_data .= "<td align=center><font size=-2><b>$quarter_total<br>$percent%</font></b></td>";
+ }
+ $stat_data .= "</tr>";
+
+ $this->t->set_var('table_width',$table_width);
+ $this->t->set_var('header_row',$header_row);
+ $this->t->set_var('table_data',$table_data);
+ $this->t->set_var('stat_data',$stat_data);
+ $this->t->fp('list','district_list',True);
+ }
+
+ // Display the totals, cummulative per quarter
+ $quarter_total = 0;
+ $totals = "<tr><td><b><font size=-2>$total_companionships Total Comps<br>Interview Quarterly Totals:</font></b></td>";
+ for($m=$num_months; $m >=0; $m--) {
+ $month = $this->current_month - $m;
+ if(($month % 3) == 1) { $quarter_total = $total_ints[$m]; }
+ else { $quarter_total += $total_ints[$m]; }
+ $percent = ceil(($quarter_total / $total_companionships)*100);
+ $totals .= "<td align=center><font size=-2><b>$quarter_total<br>$percent%</font></b></td>";
+ }
+ $totals .= "</tr>";
+
+ $this->t->set_var('totals',$totals);
+ $this->t->pfp('out','int_view_t');
+ $this->save_sessiondata();
+ }
+
+ function int_update()
+ {
+ $this->t->set_file(array('form' => 'int_update.tpl'));
+ $this->t->set_block('form','interviewer_list','int_list');
+ $this->t->set_block('form','add','addhandle');
+ $this->t->set_block('form','edit','edithandle');
+
+ $this->t->set_var('done_action',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.int_view'));
+ $this->t->set_var('readonly','');
+ $this->t->set_var('disabled','');
+
+ $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'));
+ $elder = get_var('elder',array('GET','POST'));
+ $aaronic = get_var('aaronic',array('GET','POST'));
+ $date = get_var('date',array('GET','POST'));
+ $notes = get_var('notes',array('GET','POST'));
+
+ $sql = "SELECT * FROM eq_district where valid=1 ORDER BY district ASC";
+ $this->db->query($sql,__LINE__,__FILE__);
+ while ($this->db->next_record())
+ {
+ $supervisor = $this->db->f('supervisor');
+ $sql = "SELECT * FROM eq_elder WHERE elder=" . $supervisor;
+ $this->db2->query($sql,__LINE__,__FILE__);
+ $this->db2->next_record();
+ $interviewer_name = $this->db2->f('name');
+
+ if($supervisor == $interviewer) {
+ $this->t->set_var('interviewer',$supervisor . ' selected');
+ } else {
+ $this->t->set_var('interviewer',$interviewer);
+ }
+ $this->t->set_var('interviewer_name',$interviewer_name);
+ $this->t->fp('int_list','interviewer_list',True);
+ }
+
+ if($action == 'save')
+ {
+ $notes = $this->db->db_addslashes(get_var('notes',array('POST')));
+ $this->db->query("UPDATE eq_interview set " .
+ " interview='" . $interview . "'" .
+ ", interviewer='" . $interviewer . "'" .
+ ", elder='" . $elder . "'" .
+ ", aaronic='" . $aaronic . "'" .
+ ", date='" . $date . "'" .
+ ", notes='" . $notes . "'" .
+ " WHERE interview=" . $interview,__LINE__,__FILE__);
+ $this->int_view();
+ return false;
+ }
+
+ if($action == 'insert')
+ {
+ $notes = $this->db->db_addslashes(get_var('notes',array('POST')));
+ $this->db->query("INSERT INTO eq_interview (interviewer,elder,aaronic,date,notes) "
+ . "VALUES ('" . $interviewer . "','" . $elder . "','" . $aaronic . "','"
+ . $date . "','" . $notes ."')",__LINE__,__FILE__);
+ $this->int_view();
+ return false;
+ }
+
+ if($action == 'add')
+ {
+ $this->t->set_var('cal_date',$this->jscal->input('date','','','','','','',$this->cal_options));
+ $this->t->set_var('interview', '');
+ $this->t->set_var('interviewer', $interviewer);
+ $this->t->set_var('name',$name);
+ $this->t->set_var('elder',$elder);
+ $this->t->set_var('aaronic',$aaronic);
+ $this->t->set_var('date','');
+ $this->t->set_var('notes','');
+ $this->t->set_var('lang_done','Cancel');
+ $this->t->set_var('lang_action','Adding New Interview');
+ $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.int_update&interview='
+ . $interview . '&action=' . 'insert'));
+ }
+
+ if($action == 'edit' || $action == 'view')
+ {
+ $sql = "SELECT * FROM eq_interview WHERE interview=".$interview;
+ $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('elder',$this->db->f('elder'));
+ $this->t->set_var('aaronic',$this->db->f('aaronic'));
+ $this->t->set_var('date',$this->db->f('date'));
+ $this->t->set_var('notes',$this->db->f('notes'));
+ }
+
+ if($action == 'edit')
+ {
+ $this->t->set_var('cal_date',$this->jscal->input('date',$date,'','','','','',$this->cal_options));
+ $this->t->set_var('lang_done','Cancel');
+ $this->t->set_var('lang_action','Editing Interview');
+ $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.int_update&interview='
+ . $interview . '&action=' . 'save'));
+ }
+
+ if($action == 'view')
+ {
+ $date = $this->db->f('date');
+ $this->t->set_var('cal_date','<input type=text size="10" maxlength="10" name="date" value="'.$date.'" readonly>');
+ $this->t->set_var('readonly','READONLY');
+ $this->t->set_var('disabled','DISABLED');
+ $this->t->set_var('lang_done','Done');
+ $this->t->set_var('lang_action','Viewing Interview');
+ $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.int_update&interview='
+ . $interview . '&action=' . 'edit'));
+ }
+
+ $this->t->set_var('lang_reset','Clear Form');
+ $this->t->set_var('lang_add','Add Interview');
+ $this->t->set_var('lang_save','Save Changes');
+ $this->t->set_var('edithandle','');
+ $this->t->set_var('addhandle','');
+
+ $this->t->pfp('out','form');
+
+ if($action == 'view') { $this->t->set_var('lang_save','Edit Interview'); }
+ if($action == 'edit' || $action == 'view') { $this->t->pfp('addhandle','edit'); }
+ if($action == 'add') { $this->t->pfp('addhandle','add'); }
+
+ $this->save_sessiondata();
+ }
+