From 91304044f2ea32e703e55e2d16b1cb3e7c113829 Mon Sep 17 00:00:00 2001 From: Alan Jack Pippin Date: Mon, 13 Nov 2006 00:11:54 -0700 Subject: [PATCH] Added a new ppi_sched tool for scheduling (via priority) EQ President Yearly PPIs --- import_ward_data | 22 +++-- inc/class.eq.inc.php | 162 ++++++++++++++++++++++++++++++-- templates/default/ht_view.tpl | 6 +- templates/default/ppi_sched.tpl | 51 ++++++++++ templates/default/ppi_view.tpl | 13 ++- 5 files changed, 229 insertions(+), 25 deletions(-) create mode 100644 templates/default/ppi_sched.tpl diff --git a/import_ward_data b/import_ward_data index c04da9f..8cf3d0d 100755 --- a/import_ward_data +++ b/import_ward_data @@ -128,14 +128,18 @@ sub update_eq_aaronic_table } # EQ_ELDER -#+------------+------------------+------+-----+---------+-------+ -#| Field | Type | Null | Key | Default | Extra | -#+------------+------------------+------+-----+---------+-------+ -#| elder | int(16) unsigned | | PRI | 0 | A | -#| name | varchar(60) | YES | | NULL | | -#| phone | varchar(12) | YES | | NULL | | -#| valid | tinyint(1) | YES | | NULL | | -#+------------+------------------+------+-----+---------+-------+ +#+-------------+------------------+------+-----+---------+----------------+ +#| Field | Type | Null | Key | Default | Extra | +#+-------------+------------------+------+-----+---------+----------------+ +#| elder | int(16) unsigned | | PRI | NULL | auto_increment | +#| name | varchar(60) | YES | | NULL | | +#| phone | varchar(12) | YES | | NULL | | +#| ppi_pri | int(10) unsigned | YES | | 1 | | +#| visit_pri | int(10) unsigned | YES | | 1 | | +#| ppi_notes | varchar(128) | YES | | NULL | | +#| visit_notes | varchar(128) | YES | | NULL | | +#| valid | tinyint(1) | YES | | NULL | | +#+-------------+------------------+------+-----+---------+----------------+ sub update_eq_elder_table { print "\n-> Updating eq_elder table\n"; @@ -161,7 +165,7 @@ sub update_eq_elder_table if($rows == 0) { # No existing records found for this elder, make a new entry print " Adding new Elder: $elder_name\n"; - $sth = $dbh->prepare("insert into eq_elder values (NULL,'$elder_name','$phone',1)"); + $sth = $dbh->prepare("insert into eq_elder values (NULL,'$elder_name','$phone','1','1','','',1)"); $sth->execute or die "-E- DB error: $DBI::errstr\n"; } elsif($rows == 1) { # An existing record was found for this elder, update it diff --git a/inc/class.eq.inc.php b/inc/class.eq.inc.php index d6bf500..7b40acb 100644 --- a/inc/class.eq.inc.php +++ b/inc/class.eq.inc.php @@ -38,6 +38,7 @@ class eq 'par_view' => True, 'ppi_view' => True, 'ppi_update' => True, + 'ppi_sched' => True, 'vis_view' => True, 'vis_update' => True, 'att_view' => True, @@ -849,7 +850,144 @@ class eq $this->t->pfp('out','par_view_t'); $this->save_sessiondata(); } + + function ppi_sched() + { + $this->t->set_file(array('ppi_sched_t' => 'ppi_sched.tpl')); + $this->t->set_block('ppi_sched_t','elder_list','list'); + $action = get_var('action',array('GET','POST')); + + $this->t->set_var('lang_save','Save Priorities & Notes'); + $this->t->set_var('lang_reset','Clear Changes'); + + $this->t->set_var('ppi_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_view')); + $this->t->set_var('ppi_link_title','Hometeaching PPIs'); + + $this->t->set_var('eqpres_ppi_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_view&eqpresppi=1')); + $this->t->set_var('eqpres_ppi_link_title','EQ President Yearly PPIs'); + + $this->t->set_var('schedule_ppi_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_sched')); + $this->t->set_var('schedule_ppi_link_title','Schedule Yearly PPIs'); + + $this->t->set_var('actionurl',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_sched&action=save')); + $this->t->set_var('title','EQ President Yearly PPIs Scheduler'); + + $elder_width=450; $phone_width=25; $pri_width=10; $notes_width=128; + $table_width=$elder_width + $phone_width + $pri_width + $notes_width; + $header_row = "Elder Name"; + $header_row.= "Phone"; + $header_row.= "Priority"; + $header_row.= "Scheduling Notes"; + $table_data=""; + + $year = date('Y'); + + if($action == 'save') + { + $new_data = get_var('ppi_notes',array('POST')); + foreach ($new_data as $entry) + { + $ppi_notes = $entry['notes']; + $elder_id = $entry['elder_id']; + $ppi_pri = $entry['pri']; + + // Perform database save actions here + $this->db->query("UPDATE eq_elder set " . + " ppi_notes='" . $ppi_notes . "'" . + ",ppi_pri='" . $ppi_pri . "'" . + " WHERE elder=" . $elder_id,__LINE__,__FILE__); + + } + + $take_me_to_url = $GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_sched'); + Header('Location: ' . $take_me_to_url); + } + + $sql = "SELECT * FROM eq_elder where valid=1 ORDER BY ppi_pri ASC"; + $this->db->query($sql,__LINE__,__FILE__); + + $total_elders=0; $elders_with_yearly_ppi=0; + + $i=0; + $elder_id = NULL; + 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'); + $elder_ppi_pri[$elder_id[$i]] = $this->db->f('ppi_pri'); + $elder_ppi_notes[$elder_id[$i]] = $this->db->f('ppi_notes'); + $i++; + $total_elders++; + } + + $max = count($elder_id); + + for($i=0; $i < $max; $i++) { + $id = $elder_id[$i]; + $name = $elder_name[$i]; + $phone = $elder_phone[$id]; + $ppi_pri = $elder_ppi_pri[$id]; + $ppi_notes = $elder_ppi_notes[$id]; + + // If this elder 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 eq_ppi WHERE date > '$year_start' AND date < '$year_end' ". + "AND elder=" . $id . " AND eqpresppi=1"; + $this->db2->query($sql,__LINE__,__FILE__); + + if(!$this->db2->next_record()) { + $table_data.= "$name"; + $table_data.= "$phone"; + //$table_data.= "$ppi_pri"; + $table_data.= ""; + $table_data.= ''; + $table_data.= ''; + $table_data.= ''; + $table_data.= ''; + $table_data.= ''; + $tr_color = $this->nextmatchs->alternate_row_color($tr_color); + $this->t->set_var('tr_color',$tr_color); + $table_data.= ''; + } else { + $elders_with_yearly_ppi++; + } + } + $elders_width=300; $totals_width=100; + $totals_table_width=$elders_width + $totals_width; + $totals_header_row = "Elders"; + $totals_header_row.= "$year"; + $totals_data.= ""; + $totals_data.= "Total Elders with yearly PPIs completed:"; + $totals_data.= "$elders_with_yearly_ppi / $total_elders"; + $percent = ceil(($elders_with_yearly_ppi / $total_elders)*100); + $tr_color = $this->nextmatchs->alternate_row_color($tr_color); + $this->t->set_var('tr_color',$tr_color); + $totals_data.= ""; + $totals_data.= "Percentage:"; + $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('totals',$totals_data); + $this->t->fp('list','elder_list',True); + + $this->t->pfp('out','ppi_sched_t'); + $this->save_sessiondata(); + + } + function ppi_view() { $this->t->set_file(array('ppi_view_t' => 'ppi_view.tpl')); @@ -862,24 +1000,28 @@ class eq 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.ppi_view')); + + $this->t->set_var('ppi_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_view')); + $this->t->set_var('ppi_link_title','Hometeaching PPIs'); + $this->t->set_var('eqpres_ppi_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_view&eqpresppi=1')); + $this->t->set_var('eqpres_ppi_link_title','EQ President Yearly PPIs'); $eqpresppi = get_var('eqpresppi',array('GET','POST')); + + $this->t->set_var('schedule_ppi_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_sched')); + $this->t->set_var('schedule_ppi_link_title','Schedule Yearly PPIs'); if($eqpresppi == 1) { + $this->t->set_var('title','EQ President Yearly 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); - $this->t->set_var('ppi_link_title','PPIs'); - $this->t->set_var('title','EQ President Yearly PPIs'); if($num_months == 1) { $this->t->set_var('lang_num_months','Year of History'); } - else { $this->t->set_var('lang_num_months','Years of History'); } - $this->t->set_var('eqpres_ppi_link',$GLOBALS['phpgw']->link('/eq/index.php','menuaction=eq.eq.ppi_view')); + else { $this->t->set_var('lang_num_months','Years of History'); } } else { - $this->t->set_var('ppi_link_title','EQ President Yearly PPIs'); - $this->t->set_var('title','PPIs'); + $this->t->set_var('title','Hometeaching PPIs'); } $sql = "SELECT * FROM eq_district where valid=1 ORDER BY district ASC"; @@ -887,7 +1029,7 @@ class eq $i=0; while ($this->db->next_record()) { - if($eqpresppi == 1 && $this->db->f('district') == 1) { + if(($eqpresppi == 1) && ($this->db->f('district') == 1)) { $districts[$i]['district'] = $this->db->f('district'); $districts[$i]['name'] = $this->db->f('name'); $districts[$i]['supervisor'] = $this->db->f('supervisor'); @@ -907,6 +1049,8 @@ class eq $elder_id[$i] = $this->db->f('elder'); $elder_name[$i] = $this->db->f('name'); $elder_phone[$elder_id[$i]] = $this->db->f('phone'); + $elder_ppi_pri[$elder_id[$i]] = $this->db->f('ppi_pri'); + $elder_ppi_notes[$elder_id[$i]] = $this->db->f('ppi_notes'); $i++; } array_multisort($elder_name, $elder_id); @@ -1050,7 +1194,7 @@ class eq } // Now add Elders not assigned to any companionship to the table if we are in eqpresppi mode if($eqpresppi == 1) { - $table_data .= "
Unassigned Potential Home Teachers
"; + $table_data .= "Unassigned Potential Home Teachers
"; foreach($elders as $elder_id => $value) { $sql = "SELECT * FROM eq_companionship where valid=1 and elder=".$elder_id; $this->db->query($sql,__LINE__,__FILE__); diff --git a/templates/default/ht_view.tpl b/templates/default/ht_view.tpl index 56b34ee..4dd8d4b 100644 --- a/templates/default/ht_view.tpl +++ b/templates/default/ht_view.tpl @@ -8,13 +8,13 @@
- +
- - diff --git a/templates/default/ppi_sched.tpl b/templates/default/ppi_sched.tpl new file mode 100644 index 0000000..be7281d --- /dev/null +++ b/templates/default/ppi_sched.tpl @@ -0,0 +1,51 @@ +
+ +
+ Showing {lang_num_months} +
+ + + +
{title}
+ + {ppi_link_title} +   |   + {eqpres_ppi_link_title} +   |   + {schedule_ppi_link_title} +

+ + + + + + + + + + {header_row} + {table_data} + {stat_data} + + + + +
+ All Elders +
+ +     + + +
+ + + + + + {totals_header_row} + {totals} +
+ Total EQ President Yearly PPIs +
+
+ + diff --git a/templates/default/ppi_view.tpl b/templates/default/ppi_view.tpl index 0a1c64a..844b65d 100644 --- a/templates/default/ppi_view.tpl +++ b/templates/default/ppi_view.tpl @@ -6,16 +6,21 @@ - {ppi_link_title}
+ {ppi_link_title} +   |   + {eqpres_ppi_link_title} +   |   + {schedule_ppi_link_title} +

- +
- - -- 2.34.1
+ Showing {lang_num_months} +